/**************************************************
  BREAKPOINTS
*/
/* above 1921px (27") */
/* @media (min-width: 120.0625em) {} */

/* to 1536px */
/* @media (max-width: 96em) {} */

/* to 1280px */
/* @media (max-width: 80em) {} */

/* to 1024px */
/* @media (max-width: 64em) {} */

/* to 849px */
/* @media (max-width: 53.0625em) {} */

/* to 640px */
/* @media (max-width: 40em) {} */

/* to 480px */
/* @media (max-width: 30em) {} */

/* to 384px */
/* @media (max-width: 24em) {} */

/**************************************************
  SETUP IDENTITY & GLOBAL VARIABLES
*/
:root {
  /* Header */
  --header-height: 88px;
  /* Logo width */
  --logowidth: 240px;
  /* Colors */
  /* Place color variables also in acf-styles.css to sync color swatches (section background) */
  --dark-color: #000000; /*rgba(0, 0, 0, 1)*/
  --light-color: #F3F3F3; /* rgba(243, 243, 243, 1)*/
  --highlight-color: #79B7D2; /*rgba(121, 183, 210, 1)*/
  --grey-color: #d5d5d5; /*rgba(190, 178, 169, 1)*/
  --white-color: #F4F4F4; /*rgba(244, 244, 244, 1)*/
  --black-color: #000000;
  /* Utility colors */
  --skeleton-color: #eeeeee;
  /* Alert colors */
  --success-color: #0f834d;
  --error-color: #e2401c;
  --warning-color: #f1b055;
  --info-color: #3d9cd2;
  /* CF7 Setup */
  --cf7-font: var(--altfont);
  --cf7-field-bg: transparent;
  --cf7-field-border-color: var(--body-color);
  --cf7-field-radius: 0;
  --cf7-focus-color: var(--body-color);
  --cf7-focus-bg: var(--skeleton-color);
  --cf7-chevron-size: 24px;
  --cf7-chevron-opacity: 0.80;
  /* Filters */
  --filter-to-dark: brightness(0) saturate(100%) invert(0%) sepia(4%) saturate(0%) hue-rotate(293deg) brightness(94%) contrast(106%);
  --filter-to-light: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(2%) hue-rotate(55deg) brightness(117%) contrast(91%);
  --filter-to-highlight: brightness(0) saturate(100%) invert(81%) sepia(6%) saturate(2893%) hue-rotate(167deg) brightness(86%) contrast(90%);
  /*
  --filter-to-alt: brightness(0) saturate(100%) invert(78%) sepia(8%) saturate(403%) hue-rotate(340deg) brightness(96%) contrast(87%);
  */
  /* Theme default body/main/alt */
  --body-color: var(--black-color);
  --bodyreverse-color: var(--light-color);
  --filter-to-bg: var(--filter-to-light);
  --filter-to-body: var(--filter-to-dark);
  /* Font families */
  --titlefont: "Leiko", serif;
  --scriptfont: "Leiko", serif;
  --bodyfont: "Work Sans", sans-serif;
  --altfont: "Leiko", serif;
  /* Font sizing/weight */
  --titlesize: 72px;
  --titleweight: normal;
  --titlelineheight: 1.06em;
  --titleletterspacing: 0.0001em;
  --bodysize: 22px;
  --bodylineheight: 1.00em;
  --scriptsize: 1em;
  --scriptlineheight: 1.15em;
  --smallsize: max(calc(var(--bodysize) * 0.90), 15px);
  --xsmallsize: max(calc(var(--bodysize) * 0.70), 14px);
  --b-weight: 600;
  -webkit-font-smoothing: antialiased;
  /* Image ratio (different value defined in some sections) */
  --ratio-hr-w: 809;
  --ratio-hr-h: 529;
  --ratio-hr: var(--ratio-hr-w)/var(--ratio-hr-h);
  --ratio-vr-w: 433;
  --ratio-vr-h: 587;
  --ratio-vr: var(--ratio-vr-w)/var(--ratio-vr-h);
  --ratio-sq-w: 705;
  --ratio-sq-h: 691;
  --ratio-sq: var(--ratio-sq-w)/var(--ratio-sq-h);
  /* Image radius */
  --img-radius: 0;
  /* Box Shadows */
  --shadow: 0px -3px 8px 0px rgba(156, 156, 156, 0.4);
  /* Button radius */
  --btn-radius: 0;
  /* Transitions & Effects */
  --default-trans: all 0.3s;
  --slow-trans: all 1s;
  --scale-up: 1.05;
  --scale-down: 0.97;
  --opacity-disabled: 0.5;
  /* Animations */
  /* Animations defined in GLOBAL ANIMATION */
  --fadeIn: fadeIn 0.35s ease-out forwards;
  --fadeInSlow: fadeIn 0.80s ease-out forwards;
  --enterUp: enterUp 0.5s ease forwards;
  --enterLeft: enterLeft 0.5s ease forwards;
  --enterRight: enterRight 0.5s ease forwards;
  --revealRight: revealRight 0.8s ease forwards;
  --marqueeText: marqueeText 16s linear infinite;
  --marqueeText-5rep: marqueeText-5rep 16s linear infinite;
  --marqueeText-10rep: marqueeText-5rep 16s linear infinite;
  --width100: width100 0.6s ease forwards;
  --height100: height100 1s ease forwards;
  --scale100: scale100 0.35s ease forwards;
  --header-animation-duration: 0.7s;
  --header-animation-delay: 0s;
  --enterHero: enterHero var(--enterHero-speed) ease-out forwards;
  --enterHero-speed: 1.2s;
  --enterHero-start-w: 0.15;
  --enterHero-index-1-start-y: 15vh;
  /* Swiper colors / sizes */
  --swiper-theme-color: var(--black-color) !important;
  --swiper-pagination-progressbar-bg-color: var(--grey-color) !important;
  --swiper-navigation-size: 30px !important;
  /* Swiper customs */
  --swiper-custom-navigation-size: 48px;
  --swiper-custom-navigation-height: calc(var(--swiper-custom-navigation-size) * 1);
}

/* above 1921px (27") */
@media (min-width: 120.0625em) {
  :root {
    /* --titlesize: 78px; */
  }  
}

/* to 1280px */
@media (max-width: 80em) {
  :root {
    --titlesize: 62px;
    --header-height: 72px;
    --bodysize: 20px;
  }
}

/* to 1024px */
@media (max-width: 64em) {
  :root {
    --titlesize: 48px;
    --scriptsize: calc(1em * 1.20);
    --swiper-custom-navigation-size: 36px;
  }
} 

/* to 480px */
@media (max-width: 30em) {
  :root {
    --logowidth: 200px;
    --titlesize: 36px;
    --scriptsize: calc(1em * 1.15);
  }
}

/* to 384px */
@media (max-width: 24em) {
  :root {
    --titlesize: 32px;
  }
}

/**************************************************
  HEADINGS FONT SIZE
*/
h1 {
  font-size: var(--titlesize);
  line-height: 1em;
}

h2 {
  font-size: calc(var(--titlesize) * 0.62);
}

h3 {
  font-size: calc(var(--bodysize) * 1.75);
}

h4 {
  font-size: calc(var(--bodysize) * 1.40);
  font-family: var(--altfont) !important;
  font-weight: 400 !important;
  text-transform: uppercase;
  margin-bottom: var(--spacing) !important;
}

/* to 1024px */
@media (max-width: 64em) {
  h2 {
    font-size: var(--titlesize);
  }

  h3 {
    font-size: calc(var(--bodysize) * 1.50);
  }
}

/**************************************************
  GLOBAL ANIMATIONS
*/
.section[section-index="0"],
.section[section-index="1"],
.section[section-index="2"] {
  animation: var(--fadeIn);
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes enterHero {
  0% {
    opacity: 0;
    scale: var(--enterHero-start-w);
    transform: translateY(var(--enterHero-index-1-start-y));
  }
  100% {
    opacity: 1;
    scale: 1;
    transform: translateY(0);
  }
}

@keyframes enterUp {
  0% {
    transform: translateY(10vh);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes enterLeft {
  0% {
    transform: translateX(-5vw);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes enterRight {
  0% {
    transform: translateX(5vw);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes revealRight {
  0% {
    clip-path: inset(-80% 100% -80% 0);
  }
  100% {
    clip-path: inset(-80% 0 -80% 0);
  }
}

@keyframes marqueeText {
  0% {
    transform: translateX(0);
  }
  100% {
    /* translateX(100% / total number of repetitions) */
    transform: translateX(-33.333%);
  }
}
@keyframes marqueeText-5rep {
  0% {
    transform: translateX(0);
  }
  100% {
    /* translateX(100% / total number of repetitions) */
    transform: translateX(-20%);
  }
}
@keyframes marqueeText-10rep {
  0% {
    transform: translateX(0);
  }
  100% {
    /* translateX(100% / total number of repetitions) */
    transform: translateX(-10%);
  }
}

@keyframes width100 {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}

@keyframes height100 {
  0% {
    height: 0;
  }
  100% {
    height: 100%;
  }
}

@keyframes scale100 {
  0% {
    scale: 0;
  }
  100% {
    scale: 1;
  }
}

/**************************************************
  CONTAINER
*/
:root {
  /* Global spacing */
  --padding: 120px;
  --container: 12vw;
  --spacing: 45px;
  --container-xs: 0 calc(var(--container) * 1.8);
}

.container {
  padding: 0 var(--container);
  position: relative;
  z-index: 50;
}

.container.container-xs {
  padding: var(--container-xs);
}

.container.container-fullwidth {
  padding: 0;
}

/* above 1921px (27") */
@media (min-width: 120.0625em) {
  :root {
    --container: 15vw;
  }
}

/* to 1680px */
@media (max-width: 105em) {
  :root {
    --padding: 100px;
    --container: 7.5vw;
  }
}

/* to 1280px */
@media (max-width: 80em) {
  :root {
    --padding: 75px;
    --container: 5vw;
    --spacing: 36px;
  }
}

/* to 640px */
@media (max-width: 40em) {
  :root {
    --container: 4vw;
    --spacing: 28px;
    --container-xs: 0 var(--container);
  }
}

/* to 384px */
@media (max-width: 24em) {
  :root {
    --padding: 65px;
  }
}

/**************************************************
  SECTION
*/
.section {
  padding: var(--padding) 0;
  position: relative;
}

.section-light {
  background-color: var(--light-color);
  --body-color: var(--black-color);
  --bodyreverse-color: var(--light-color);
  --filter-to-bg: var(--filter-to-light);
  --filter-to-body: var(--filter-to-dark);
}
.section-dark {
  background-color: var(--dark-color);
  --body-color: var(--light-color);
  --bodyreverse-color: var(--dark-color);
  --filter-to-bg: var(--filter-to-dark);
  --filter-to-body: var(--filter-to-light);
}
.section-highlight {
  background-color: var(--highlight-color);
  --body-color: var(--light-color);
  --filter-to-bg: var(--filter-to-dark);
  --filter-to-body: var(--filter-to-light);
}

.section-light + .section-light,
.section-dark + .section-dark,
.section-highlight + .section-highlight {
  padding-top: 0;
}

.section + .section {
  padding-top: 0;
}

.section.is-afterpadding + .section {
  /* Restore padding after specific <section> (es. hero, banner) */
  padding-top: var(--padding);
}

.section h1,
.section h2,
.section h3,
.section h4,
.section h5,
.section h6,
.section p {
  color: var(--body-color);
}

/* .section-dark */
.section-dark button.cta-muted.cta-button {
  background-color: transparent;
  border-color: var(--light-color);
}
.section-dark button.cta-muted.cta-button:hover {
  background-color: var(--light-color);
  border-color: var(--light-color);
}
.section-dark button.cta-muted.cta-button::before {
  display: none;
}
.section-dark button.cta-muted.cta-button .cta-label {
  color: var(--light-color);
}
.section-dark button.cta-muted.cta-button:hover .cta-label {
  color: var(--dark-color);
}
.section-dark button.cta-muted.cta-button .cta-mark {
  filter: var(--filter-to-light);
}
.section-dark button.cta-muted.cta-button:hover .cta-mark {
  filter: var(--filter-to-dark);
}

/* .section-highlight */
.section-highlight em {
  color: var(--light-color);
}

.section-highlight button.cta-highlight.cta-button {
  background-color: var(--light-color);
  border-color: var(--light-color);
}
.section-highlight button.cta-highlight.cta-button:hover {
  background-color: transparent;
  border-color: var(--light-color);
}
.section-highlight button.cta-highlight.cta-button::before {
  display: none;
}
.section-highlight button.cta-highlight.cta-button .cta-label {
  color: var(--dark-color);
}
.section-highlight button.cta-highlight.cta-button:hover .cta-label {
  color: var(--light-color);
}
.section-highlight button.cta-highlight.cta-button .cta-mark {
  filter: var(--filter-to-dark);
}
.section-highlight button.cta-highlight.cta-button:hover .cta-mark {
  filter: var(--filter-to-light);
}

.section-highlight button.cta-muted.cta-button {
  background-color: transparent;
  border-color: var(--light-color);
}
.section-highlight button.cta-muted.cta-button:hover {
  background-color: var(--light-color);
  border-color: var(--light-color);
}
.section-highlight button.cta-muted.cta-button::before {
  display: none;
}
.section-highlight button.cta-muted.cta-button .cta-label {
  color: var(--light-color);
}
.section-highlight button.cta-muted.cta-button:hover .cta-label {
  color: var(--dark-color);
}
.section-highlight button.cta-muted.cta-button .cta-mark {
  filter: var(--filter-to-light);
}
.section-highlight button.cta-muted.cta-button:hover .cta-mark {
  filter: var(--filter-to-dark);
}

/**************************************************
  ALIGNMENT CLASS
*/
.grid {
  display: grid;
}

.flex {
  display: flex;
  flex-wrap: wrap;
}

.flex-center {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.flex-end {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.flex-between {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.flex-around {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}

/**************************************************
  HIDE RULES
*/
@media (min-width: 64.0625em) {
  /* above 1025px */
  .hide-for-desktop {
    display: none !important;
  }
}

@media (min-width: 40.0625em) and (max-width: 64em) {
  /* 641px to 1024px */
  .hide-for-tablet {
    display: none !important;
  }
}

@media (max-width: 40em) {
  /* below 640px */
  .hide-for-mobile {
    display: none !important;
  }
}

/**************************************************
  PAGINATION (functions.php)
*/
.archive-pagination {
  width: 100%;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 20px;
}

/* Pages link */
.archive-pagination.is-paged {
  margin-top: calc(var(--spacing) * 2);
}

.archive-pagination > a,
.archive-pagination > span {
  display: block;
  text-align: center;
  font-family: var(--altfont);
  font-size: var(--smallsize);
  letter-spacing: var(--titleletterspacing);
  color: var(--body-color);
  line-height: var(--smallsize);
  transition: var(--default-trans);
  opacity: var(--opacity-disabled);
}

.archive-pagination > a:hover {
  opacity: 1;
}

/* .archive-pagination > span.dots, */
.archive-pagination > span.current {
  color: var(--black-color);
}

/* to 640px */
@media (max-width: 40em) {
  /* .archive-pagination a:not(.prev):not(.next):not(.first):not(.last),
  .archive-pagination span.dots {
    display: none;
  } */
}

/* Load more button */
.archive-pagination.is-loadmore button#load-more {
  font-size: var(--bodysize);
  margin-top: calc(var(--spacing) * 2);
}

.archive-pagination button#load-more.is-loading .cta-label {
  opacity: 0;
}

/**************************************************
  Loading / Loader animation
*/
.loader {
  display: none;
}
.loader.is-loading {
  --unit: 24px;
  display: block;
  position: absolute;
  left: calc(50% - var(--unit) / 2 - 2px);
  transform: translateX(-50%) translateY(-50%);
  width: var(--unit);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 4px solid var(--body-color);
  opacity: var(--opacity-disabled);
  animation:
    l20-1 0.8s infinite linear alternate,
    l20-2 1.6s infinite linear;
}
@keyframes l20-1{
  0%    {clip-path: polygon(50% 50%,0       0,  50%   0%,  50%    0%, 50%    0%, 50%    0%, 50%    0% )}
  12.5% {clip-path: polygon(50% 50%,0       0,  50%   0%,  100%   0%, 100%   0%, 100%   0%, 100%   0% )}
  25%   {clip-path: polygon(50% 50%,0       0,  50%   0%,  100%   0%, 100% 100%, 100% 100%, 100% 100% )}
  50%   {clip-path: polygon(50% 50%,0       0,  50%   0%,  100%   0%, 100% 100%, 50%  100%, 0%   100% )}
  62.5% {clip-path: polygon(50% 50%,100%    0, 100%   0%,  100%   0%, 100% 100%, 50%  100%, 0%   100% )}
  75%   {clip-path: polygon(50% 50%,100% 100%, 100% 100%,  100% 100%, 100% 100%, 50%  100%, 0%   100% )}
  100%  {clip-path: polygon(50% 50%,50%  100%,  50% 100%,   50% 100%,  50% 100%, 50%  100%, 0%   100% )}
}
@keyframes l20-2{ 
  0%    {transform:scaleY(1)  rotate(0deg)}
  49.99%{transform:scaleY(1)  rotate(135deg)}
  50%   {transform:scaleY(-1) rotate(0deg)}
  100%  {transform:scaleY(-1) rotate(-135deg)}
}

/**************************************************
  HTML MARKUP
*/
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

*:focus:not(:focus-visible) {
  /* Accessibility: hide outline on mouse click, show on keyboard TAB */
  outline: none;
}

html {
  max-width: 100%;
  overflow-x: clip;
  overflow-y: visible;
  scroll-behavior: smooth;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  font-family: var(--bodyfont);
  font-size: var(--bodysize);
}

body {
  max-width: 100%;
  overflow-x: clip;
  overflow-y: visible;
  line-height: var(--bodylineheight);
  color: var(--body-color);
  background-color: var(--light-color);
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

audio,
canvas,
progress {
  display: inline-block;
  vertical-align: baseline;
}

video {
  display: block;
}

audio:not([controls]) {
  display: none;
  height: 0;
}

[hidden],
template {
  display: none;
}

abbr[title] {
  border-bottom: 1px dotted;
}

b,
strong,
optgroup {
  font-weight: var(--b-weight);
}

dfn {
  font-style: italic;
}

mark {
  background: var(--highlight-color);
  color: var(--light-color);
  padding: 0 3px;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

img {
  border: 0;
  vertical-align: middle;
}

svg:not(:root) {
  overflow: hidden;
}

figure {
}

hr {
  box-sizing: content-box;
  height: 0;
  margin-top: var(--spacing);
  margin-bottom: var(--spacing);
  border: 0;
  border-top: 1px solid var(--grey-color);
  opacity: 1;
}

pre {
  overflow: auto;
}

code,
kbd,
pre,
samp {
  font-family: var(--bodyfont);
  font-size: 1em;
}

button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
}

button {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}

button[disabled],
html input[disabled] {
  cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

input {
  line-height: normal;
}

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

fieldset {
  border: 1px solid var(--grey-color);
  padding: 20px;
}

legend {
  border: 0;
  padding: 0;
}

textarea {
  overflow: auto;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

input,
textarea,
select,
button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  border-radius: 0px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
}

[role="button"] {
  cursor: pointer;
}

iframe {
  border: none;
}

summary::-webkit-details-marker {
  display: none;
}

ul {
  list-style-type: none;
}

ul li {
  display: inline-block;
  left: 0;
}

/**************************************************
  GLOBALS
*/
em {
  font-family: var(--scriptfont);
  font-size: var(--scriptsize);
  font-style: italic;
}

.logo {
  width: var(--logowidth);
}

.ancora {
  display: block;
  width: 100%;
  transform: translateY(calc(-1 * var(--header-height) - 0.4 * var(--padding))) !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
  font-family: var(--titlefont);
  font-weight: var(--titleweight);
  line-height: var(--titlelineheight);
  letter-spacing: var(--titleletterspacing);
  color: var(--body-color);
}

p {
  padding: 0;
  margin: 0 0 calc(var(--spacing) * 0.4) 0;
  font-size: var(--bodysize);
  font-family: var(--bodyfont);
}

p:last-of-type {
  margin-bottom: 0;
}

p a {
  display: inline;
  text-decoration: none;
  padding-bottom: 1px;
  background-image: linear-gradient(currentColor, currentColor), repeating-linear-gradient(to right, currentColor 0%, currentColor 2px, transparent 2px, transparent 4px);
  background-repeat: no-repeat;
  background-position:
    left bottom,
    left bottom;
  background-size:
    0% 1px,
    100% 1px;
  transition: var(--default-trans);
}

p a:hover {
  background-size:
    100% 1px,
    100% 1px;
}

ul,
ol {
  display: inline-block;
  text-align: left;
  list-style-position: outside;
  margin-left: 30px;
  margin-top: calc(var(--padding) * 0.25);
  margin-bottom: calc(var(--padding) * 0.25);
}

ul {
  list-style-type: initial;
}

ol {
  list-style-type: decimal;
}

ul li,
ol li {
  line-height: 1.6em;
  display: list-item;
}

p:not(:last-of-type) + ul,
p:not(:last-of-type) + ol {
  margin-top: 0;
}

blockquote {
  position: relative;
}

blockquote::before {
  content: "";
  display: block;
  width: 84px;
  height: 76px;
  background-image: url("../images/quote.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-origin: content-box;
  filter: var(--filter-to-body);
  opacity: 1;
}

blockquote > p {
  margin: calc(var(--spacing) * 2) 0 var(--spacing) !important;
  font-size: calc(1.2 * var(--bodysize));
}

blockquote > .signature {
  color: var(--grey-color);
}

blockquote button {
  margin-top: var(--spacing);
}

a {
  display: inline-block;
  line-height: 1;
  text-decoration: none;
  background-color: transparent;
  position: relative;
  color: inherit;
}

a p {
  line-height: var(--bodylineheight);
}

a.link {
  display: inline;
  text-decoration: none;
  padding-bottom: 1px;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0% 1px;
  transition: var(--default-trans);
}

a.link:hover {
  background-size: 100% 1px;
}

a.link:has(h1, h2, h3, h4, h5, h6) {
  display: block;
  background-image: none !important;
}

a.link > h1,
a.link > h2,
a.link > h3,
a.link > h4,
a.link > h5,
a.link > h6 {
  display: inline;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0% 1px;
  transition: var(--default-trans);
}

a.link:hover > h1,
a.link:hover > h2,
a.link:hover > h3,
a.link:hover > h4,
a.link:hover > h5,
a.link:hover > h6 {
  background-size: 100% 1px;
}

a.link::after {
  content: "";
  display: inline-block;
  width: 32px;
  height: 18px;
  margin-left: 12px;
  background-image: url("../images/arrow.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-origin: content-box;
  filter: var(--filter-to-body);
  position: relative;
  top: 0;
  left: 0;
  rotate: -45deg;
  transition: transform 0.7s;
}

a.link:hover::after {
  transform: rotateY(-360deg);
}

a.link-nomark::after {
  display: none;
}

a.link-dotted {
  border-bottom-width: 1px;
  border-bottom-style: dotted;
}

a:focus,
a:active,
a:hover {
  text-decoration: none;
  outline: 0;
}

a.link.link-main {
  color: var(--body-color);
}
a.link.link-main::before {
  background-color: var(--body-color);
}

a.link.link-dark {
  color: var(--black-color);
}
a.link.link-dark::before {
  background-color: var(--black-color);
}

a.link.link-light {
  color: var(--light-color);
}
a.link.link-light::before {
  background-color: var(--light-color);
}

a.link.link-grey {
  color: var(--grey-color);
}
a.link.link-grey::before {
  background-color: var(--grey-color);
}

a.link.link-alpha {
  opacity: var(--opacity-disabled);
}
a.link.link-alpha:hover {
  opacity: 1;
}

a.link-noint {
  background-image: none !important;
}

a.anchor {
  position: relative;
  top: calc(-1 * var(--header-height));
}

button {
  background-color: transparent;
  border: none;
}

button.cta {
  font-family: var(--titlefont);
  line-height: var(--titlelineheight);
  font-size: calc(var(--bodysize) * 1.08);
  position: relative;
}

button.cta::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background: transparent;
  position: absolute;
  left: 0;
  bottom: -4px;
  transition: var(--default-trans);
}

button.cta:hover::before {
  animation: cta-hover 1.2s;
}

@keyframes cta-hover {
  0% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}

button.cta .cta-label {
  font-family: var(--altfont);
  color: var(--body-color);
  transition: var(--default-trans);
}

button.cta.cta-button {
  padding: 8px 16px 8px;
  transition: var(--default-trans);
  border-radius: var(--btn-radius);
  border-width: 1px;
  border-style: solid;
}

button.cta.cta-button::before {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  opacity: 0;
  border-radius: var(--btn-radius);
  transition: var(--default-trans);
  z-index: -1;
}

button.cta.cta-button:hover::before {
  opacity: 1;
  /* Disable cta-hover default animation */
  animation: none;
}

button.cta-light.cta-button {
  background-color: var(--light-color);
  border-color: var(--light-color);
}
button.cta-light.cta-button:hover {
  background-color: var(--dark-color);
  border-color: var(--dark-color);
}
button.cta-light.cta-button::before {
  display: none;
}
button.cta-light.cta-button .cta-label {
  color: var(--dark-color);
}
button.cta-light.cta-button:hover .cta-label {
  color: var(--light-color);
}
button.cta-light.cta-button .cta-mark {
  filter: var(--filter-to-dark);
}
button.cta-light.cta-button:hover .cta-mark {
  filter: var(--filter-to-light);
}

button.cta-dark.cta-button {
  background-color: var(--dark-color);
  border-color: var(--dark-color);
}
button.cta-dark.cta-button:hover {
  background-color: var(--highlight-color);
  border-color: var(--highlight-color);
}
button.cta-dark.cta-button::before {
  display: none;
}
button.cta-dark.cta-button .cta-label {
  color: var(--light-color);
}
button.cta-dark.cta-button:hover .cta-label {
  color: var(--light-color);
}
button.cta-dark.cta-button .cta-mark {
  filter: var(--filter-to-light);
}
button.cta-dark.cta-button:hover .cta-mark {
  filter: var(--filter-to-light);
}

button.cta-main.cta-button {
  background-color: transparent;
  border-color: var(--highlight-color);
}
button.cta-main.cta-button:hover {
  background-color: var(--highlight-color);
  border-color: var(--highlight-color);
}
button.cta-main.cta-button::before {
  display: none;
}
button.cta-main.cta-button .cta-label {
  color: var(--body-color);
}
button.cta-main.cta-button:hover .cta-label {
  color: var(--light-color);
}
button.cta-main.cta-button .cta-mark {
  filter: var(--filter-to-dark);
}
button.cta-main.cta-button:hover .cta-mark {
  filter: var(--filter-to-light);
}

button.cta-highlight.cta-button {
  background-color: var(--highlight-color);
  border-color: var(--highlight-color);
}
button.cta-highlight.cta-button:hover {
  background-color: transparent;
  border-color: var(--dark-color);
}
button.cta-highlight.cta-button::before {
  display: none;
}
button.cta-highlight.cta-button .cta-label {
  color: var(--light-color);
}
button.cta-highlight.cta-button:hover .cta-label {
  color: var(--dark-color);
}
button.cta-highlight.cta-button .cta-mark {
  filter: var(--filter-to-light);
}
button.cta-highlight.cta-button:hover .cta-mark {
  filter: var(--filter-to-dark);
}

button.cta-muted.cta-button {
  background-color: transparent;
  border-color: var(--dark-color);
}
button.cta-muted.cta-button:hover {
  background-color: var(--highlight-color);
  border-color: var(--highlight-color);
}
button.cta-muted.cta-button::before {
  display: none;
}
button.cta-muted.cta-button .cta-label {
  color: var(--dark-color);
}
button.cta-muted.cta-button:hover .cta-label {
  color: var(--light-color);
}
button.cta-muted.cta-button .cta-mark {
  filter: var(--filter-to-dark);
}
button.cta-muted.cta-button:hover .cta-mark {
  filter: var(--filter-to-light);
}

button.cta-blur.cta-button {
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  background: rgba(243, 243, 243, 0.25);
  border-color: var(--body-color);
}
button.cta-blur.cta-button:hover {
  background-color: var(--body-color);
  border-color: var(--body-color);
}
button.cta-blur.cta-button::before {
  display: none;
}
button.cta-blur.cta-button .cta-label {
  color: var(--body-color);
}
button.cta-blur.cta-button:hover .cta-label {
  color: var(--bodyreverse-color) !important;
}
button.cta-blur.cta-button .cta-mark {
  filter: var(--filter-to-body);
}
button.cta-blur.cta-button:hover .cta-mark {
  filter: var(--filter-to-bg);
}

button.cta-underlined.cta-button {
  background-color: transparent;
  border-color: transparent;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
button.cta-underlined.cta-button:hover {
  background-color: transparent;
  border-color: transparent;
}
button.cta-underlined.cta-button::before {
  display: none;
}
button.cta-underlined.cta-button .cta-label {
  color: var(--body-color);
  position: relative;
}
button.cta-underlined.cta-button:hover .cta-label {
  color: var(--body-color);
}
@keyframes cta-underlined {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}
button.cta-underlined.cta-button .cta-label::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  position: absolute;
  bottom: -4px;
  background-color: var(--body-color);
  transition: var(--default-trans);
}
button.cta-underlined.cta-button:hover .cta-label::before {
  animation: cta-underlined 1s 0s ease;
}
button.cta-underlined.cta-button .cta-mark {
  filter: var(--filter-to-light);
}
button.cta-underlined.cta-button:hover .cta-mark {
  filter: var(--filter-to-dark);
}

button.cta-active {
  background-color: transparent !important;
  border-color: var(--highlight-color) !important;
}
button.cta-active:hover {
  background-color: var(--highlight-color) !important;
  border-color: var(--highlight-color) !important;
}
button.cta-active:hover .cta-label {
  color: var(--light-color) !important;
}

button.cta-button {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
}

button.cta-button .cta-mark {
  --unit: 32px;
  width: var(--unit);
  height: calc(var(--unit) * 0.56);
  margin-left: 12px;
  position: relative;
  transition: var(--default-trans);
}

button.cta-button .cta-mark::before {
  content: "";
  display: inline-block;
  width: var(--unit);
  height: calc(var(--unit) * 0.56);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  background-image: url("../images/arrow.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-origin: content-box;
  filter: var(--filter-to-dark);
  transition: var(--default-trans);
}

button.cta-button:hover .cta-mark::before {
  filter: var(--filter-to-light);
}

.modal-link {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.modal-link .modal-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 100px;
  height: 100px;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.modal-link .modal-icon img {
  width: 100%;
  height: 100%;
  display: block;
}

.grecaptcha-badge {
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: var(--default-trans);
}

.grecaptcha-badge.in {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  /* Optional */
  bottom: 120px !important;
}

.fancybox-infobar {
  display: none;
}

.fancybox-toolbar .fancybox-button--play,
.fancybox-toolbar .fancybox-button--fullscreen,
.fancybox-toolbar .fancybox-button--thumbs,
.fancybox-toolbar .fancybox-button--share {
  display: none !important;
}

.fancybox-show-thumbs .fancybox-inner {
  right: 0 !important;
  bottom: 120px;
}

.fancybox-thumbs__list a::before {
  transition: all 0s;
  border: 0;
  opacity: 0;
}

.fancybox-thumbs__list a.fancybox-thumbs-active::before {
  border: 3px solid var(--white-color);
  transition: all 0s;
}

.fancybox-thumbs {
  position: absolute;
  background-color: transparent;
  text-align: center;
  top: unset;
  bottom: 0;
  right: 0;
  width: 100%;
  height: auto !important;
  margin: 0;
  padding: 10px 0 30px;
  -webkit-tap-highlight-color: transparent;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  box-sizing: border-box;
}

.fancybox-thumbs .fancybox-thumbs__list {
  display: inline-block;
}

body.hide-scrollbar {
  /* Fix fancybox body shift under overlay */
  margin-right: var(--f-scrollbar-compensate) !important;
}

/* to 1280px */
@media (max-width: 80em) {
  button.cta.cta-button {
    /* padding: 6px 12px; */
  }

  button.cta {
    font-size: calc(var(--bodysize) * 1);
  }
}

/* to 849px */
@media (max-width: 53.0625em) {
  blockquote::before {
    width: 63px;
    height: 57px;
  }
}

/**************************************************
  GSAP SETUP
*/
/* Fix blink on viewport enter before animation */
.gs_reveal {
  opacity: 0;
  visibility: hidden;
}

/**************************************************
  CF7 Form
*/
::placeholder,
::-webkit-input-placeholder {
  color: var(--body-color);
  opacity: 0.75;
}

.wpcf7-not-valid-tip,
.wpcf7-validation-errors,
.wpcf7-response-output {
  display: none !important;
}

.wpcf7-not-valid {
  border-bottom: 1px solid var(--error-color) !important;
}

.wpcf7-list-item {
  margin: 0;
  display: block;
}

.wpcf7-list-item:not(:only-of-type) {
  margin-bottom: 10px;
}

.cf7-form .wpcf7-spinner::before {
  display: none;
}

.cf7-form {
  --cf7-fontsize: var(--smallsize);
  --cf7-letterspacing: unset;
  --field-margin: calc(var(--spacing) * 0.65);
  --field-padding-v: 10px;
  --field-padding-h: 4px;
  --loader-color: var(--body-color);
  font-family: var(--cf7-font);
}

.cf7-form .form-area + .form-area {
  margin-top: calc(var(--spacing) * 1.5);
}

.cf7-form .form-area-title {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  column-gap: calc(var(--spacing) * 0.5);
  width: 100%;
  margin-bottom: calc(var(--spacing) * 0.5);
}

.cf7-form .form-area-title h4 {
  font-size: calc(var(--cf7-fontsize) * 1.5);
}

.cf7-form .form-area-title h5 {
  margin-top: calc(var(--spacing) * 0.3);
  margin-bottom: 6px;
  color: var(--body-color);
}

.cf7-form .form-area-title h4 + h5 {
  margin-top: 0;
}

.cf7-form .form-area-title .form-area-desc {
  font-size: var(--cf7-fontsize);
  color: var(--grey-color);
}

.cf7-form .form-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.cf7-form .form-row.single-input {
  display: flex;
  flex-wrap: wrap;
  position: relative;
}

.cf7-form .form-row.single-input .field-submit {
  --unit: 12px;
  /* cursor: pointer; */
}

.cf7-form .form-row.single-input .field-submit button {
  font-size: 0;
  position: absolute;
  right: var(--field-padding-h);
  top: 50%;
  height: var(--unit);
  width: var(--unit);
  margin: 0;
  transform: translateY(calc(-50% - (var(--field-margin) * 0.5)));
  transition: var(--default-trans);
}

.cf7-form .form-row.single-input .field-submit button::after {
  content: "";
  height: 100%;
  width: 100%;
  background-image: url("../images/arrow-45deg.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-origin: content-box;
  filter: var(--filter-to-dark);
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  rotate: -90deg;
  transition: transform 0.7s;
}

.cf7-form .form-row.single-input .field-submit button:hover::after {
  transform: rotateY(-360deg);
}

.cf7-form .form-row.last {
  margin-top: calc(var(--spacing) * 0.5);
  align-items: center;
  row-gap: calc(var(--padding) * 0.5);
}

.cf7-form .field {
  width: 49%;
  margin-bottom: var(--field-margin);
  position: relative;
}

.cf7-form .field-100 {
  width: 100%;
}

.cf7-form .field-40 {
  width: 39%;
}

.cf7-form .field-33 {
  width: 32%;
}

.cf7-form .field-20 {
  width: 19%;
}

.cf7-form .field:not(.field-acceptance):not(.field-sided) label {
  pointer-events: none;
  font-size: var(--cf7-fontsize);
  letter-spacing: var(--cf7-letterspacing);
  color: var(--body-color);
  opacity: 0.65;
  display: block;
  position: absolute;
  left: var(--field-padding-h);
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  transition: var(--default-trans);
}

.cf7-form .field.field-textarea {
  padding-top: 2em;
}

.cf7-form .field.field-textarea label {
  top: 0.5em !important;
  transform: translateY(0) !important;
}

.cf7-form .field:not(.field-acceptance):not(.field-sided).is-focused label {
  top: 0;
  font-size: calc(var(--cf7-fontsize) * 0.7);
  transform: translateY(-50%);
}

.cf7-form .field-input input,
.cf7-form .field-textarea textarea,
.cf7-form .field-select select,
.cf7-form .field-dropdown button {
  -webkit-appearance: none;
  -moz-appearance: none;
  font-size: var(--cf7-fontsize);
  letter-spacing: var(--cf7-letterspacing);
  width: 100%;
  position: relative;
  background-color: var(--cf7-field-bg);
  color: var(--body-color);
  padding: var(--field-padding-v) var(--field-padding-h);
  border: 1px solid transparent;
  border-bottom: 1px solid var(--cf7-field-border-color);
  border-radius: calc(var(--cf7-field-radius) * 0.75);
  transition:
    var(--default-trans),
    border-color var(--default-trans),
    box-shadow var(--default-trans);
  outline: none;
}

.cf7-form .field-input input[type="date"] {
  color: transparent;
  padding: calc(var(--field-padding-v) - 1px) var(--field-padding-h);
}
.cf7-form .field-input.is-focused input[type="date"] {
  color: var(--body-color);
}

.cf7-form .field-textarea,
.cf7-form .field-upload {
  width: 100%;
}

.cf7-form .field-upload .wpcf7-file {
  width: 100%;
}

.cf7-form .field-upload {
  --unit: 18px;
  pointer-events: none;
  text-align: left !important;
}

.cf7-form .field-upload .wpcf7-form-control-wrap {
  position: unset;
}

.cf7-form .field-upload > span::before {
  content: "";
  display: block;
  width: var(--unit);
  height: var(--unit);
  background-image: url("../images/icon-upload.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  position: absolute;
  left: var(--unit);
  top: calc(var(--unit) * 0.7 + var(--unit) * 0.05);
  filter: var(--filter-to-dark);
}

.cf7-form .field-upload input {
  color: var(--grey-color);
  font-size: calc(0.7 * var(--bodysize));
  cursor: default;
  white-space: normal;
}

.cf7-form .field-upload input::-webkit-file-upload-button {
  visibility: hidden;
}

html[lang="it"] .cf7-form .field-upload input::before {
  content: "Carica file";
}
html[lang="en"] .cf7-form .field-upload input::before {
  content: "Upload file";
}
html[lang="fr"] .cf7-form .field-upload input::before {
  content: "Chargez file";
}

html[lang="it"] .cf7-form .field-upload.field-cv input::before {
  content: "Carica il tuo CV";
}
html[lang="en"] .cf7-form .field-upload.field-cv input::before {
  content: "Upload your CV";
}
html[lang="fr"] .cf7-form .field-upload.field-cv input::before {
  content: "Chargez votre CV";
}

.cf7-form .field-upload input::before {
  font-family: var(--altfont);
  font-size: var(--smallsize);
  letter-spacing: 0.025em;
  color: var(--body-color);
  display: inline-block;
  background: transparent;
  border: 2px solid var(--body-color);
  border-radius: var(--cf7-field-radius);
  padding: calc(var(--unit) * 0.7) var(--unit) calc(var(--unit) * 0.7) calc(2.5 * var(--unit));
  outline: none;
  margin-bottom: 10px;
  white-space: nowrap;
  -webkit-user-select: none;
  cursor: pointer;
  transition: all 0.3s;
  pointer-events: auto;
}

.cf7-form .field-upload input:active {
  outline: 0;
}

.cf7-form .field-upload input:hover::before {
  background-color: var(--cf7-field-bg);
}

.cf7-form .field-upload input:active::before {
  background-color: var(--cf7-field-bg);
}

.cf7-form .field-caption {
  font-size: var(--xsmallsize);
  margin-top: 10px;
}

.cf7-form .field-select::before {
  content: "";
  display: block;
  position: absolute;
  width: var(--cf7-chevron-size);
  height: var(--cf7-chevron-size);
  top: 50%;
  right: 0;
  z-index: 1;
  transform: translateY(-50%);
  pointer-events: none;
  transition: var(--default-trans);
  background-color: var(--body-color);
  opacity: var(--cf7-chevron-opacity);
  -webkit-mask-image: url("/chevron.svg");
  mask-image: url("/chevron.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.cf7-form .field-select:focus-within::before {
  transform: translateY(-50%) scaleY(-1);
}

.cf7-form .field-select::after {
  /* Pseudo element border */
  content: "";
  width: 100%;
  height: 100%;
  background-color: var(--cf7-field-bg);
  position: absolute;
  bottom: 0;
  left: 0;
  border-radius: calc(var(--cf7-field-radius) * 0.75);
  border-bottom: 1px solid var(--cf7-field-border-color);
  opacity: 1;
  transition: var(--default-trans);
  pointer-events: none;
}
.cf7-form .field-select:has(.wpcf7-not-valid)::after {
  border-bottom: 1px solid var(--error-color);
}

.cf7-form .field-select.is-focused::after {
  opacity: 0;
}

.cf7-form .field-select:not(.is-focused) select {
  opacity: 0;
}
.cf7-form .field-select.is-focused select {
  opacity: 1;
}

/* Fake multiselect field from CF7 [checkbox] */
.cf7-form .field.field-dropdown .is-dropdown:not(.js-initialized) .wpcf7-list-item {
  /* Avoid blink checkbox onload */
  display: none !important;
}
.cf7-form .field.field-dropdown .wpcf7-form-control-wrap,
.cf7-form .field.field-dropdown .is-dropdown {
  display: block !important;
  width: 100%;
}
.cf7-form .field.field-dropdown .is-dropdown:not(.js-initialized) {
  min-height: calc((var(--cf7-fontsize) * 1.5) + (var(--field-padding-v) * 2));
  border-bottom: 1px solid var(--cf7-field-border-color);
}

.cf7-form .field.field-dropdown .dropdown-toggle {
  font-size: var(--cf7-fontsize);
  letter-spacing: var(--cf7-letterspacing);
  width: 100%;
  position: relative;
  background-color: var(--cf7-field-bg);
  color: var(--body-color);
  padding: var(--field-padding-v) var(--field-padding-h);
  border: 1px solid transparent;
  border-bottom: 1px solid var(--cf7-field-border-color);
  border-radius: calc(var(--cf7-field-radius) * 0.75);
  cursor: pointer;
  display: flex;
  align-items: center;
  transition: var(--default-trans);
}

.cf7-form .field.field-dropdown .dropdown-toggle .placeholder {
  opacity: 0.75;
}

.cf7-form .field.field-dropdown .is-dropdown::before {
  content: "";
  display: block;
  position: absolute;
  width: var(--cf7-chevron-size);
  height: var(--cf7-chevron-size);
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  pointer-events: none;
  z-index: 2;
  transition: var(--default-trans);
  background-color: var(--body-color);
  opacity: var(--cf7-chevron-opacity);
  -webkit-mask-image: url("/chevron.svg");
  mask-image: url("/chevron.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.cf7-form .field.field-dropdown .is-dropdown.is-open::before {
  transform: translateY(-50%) scaleY(-1);
}

.cf7-form .field.field-dropdown.is-focused .dropdown-toggle {
  border-bottom-color: var(--cf7-focus-color);
  background-color: var(--cf7-focus-bg);
}

.cf7-form .field.field-dropdown .dropdown-menu {
  position: absolute;
  top: calc(100% - 1px);
  left: 0;
  width: 100%;
  background-color: var(--light-color);
  border: 1px solid var(--cf7-field-border-color);
  border-radius: var(--cf7-field-radius);
  padding: calc(var(--spacing) * 0.5);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  max-height: 250px;
  overflow-y: auto;
  z-index: 90;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: var(--default-trans);
}

.cf7-dark .cf7-form .field.field-dropdown .dropdown-menu {
  background-color: var(--dark-color);
}

.cf7-form .field.field-dropdown .is-dropdown.is-open .dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.cf7-form .field.field-dropdown input[type="checkbox"] {
  -webkit-appearance: checkbox !important;
  appearance: checkbox !important;
  width: 18px;
  height: 18px;
  margin-right: 12px;
  accent-color: var(--body-color);
  cursor: pointer;
}

/* Layout list items CF7 */
.cf7-form .field.field-dropdown .wpcf7-list-item {
  margin: 0 !important;
  display: block;
}

.cf7-form .field.field-dropdown .wpcf7-list-item-label {
  display: inline-flex;
  position: relative;
  top: 0.15em;
}

.cf7-form .field.field-dropdown.has-value label,
.cf7-form .field.field-dropdown:has(.is-open) label,
.cf7-form .field.field-dropdown:focus-within label {
  top: 0;
  font-size: calc(var(--cf7-fontsize) * 0.7);
  transform: translateY(-50%);
}

.cf7-form .field.field-dropdown:not(:has(.is-open)):not(.has-value):not(:focus-within) .dropdown-toggle .placeholder {
  opacity: 0;
}
.cf7-form .field.field-dropdown.has-value .dropdown-toggle .placeholder {
  display: none;
}

.cf7-form .field-acceptance,
.cf7-form .field-toggle {
  --flag-w: 20px;
  --toggle-w: 30px;
  color: var(--body-color);
  font-size: calc(var(--cf7-fontsize) * 0.8);
  line-height: calc(var(--cf7-fontsize) * 0.8);
  letter-spacing: var(--cf7-letterspacing);
  position: relative;
}

.cf7-form .field-acceptance > span {
  display: inline-block;
}

.cf7-form .field-acceptance span.wpcf7-list-item {
  margin-left: 0;
}

.cf7-form .field-acceptance input[type="checkbox"] {
  width: var(--flag-w);
  height: var(--flag-w);
  position: relative;
  top: 4px;
  margin-right: 8px;
  background-color: var(--cf7-field-bg);
  border: 1px solid var(--cf7-field-border-color);
  border-radius: 999vw;
  cursor: pointer;
}

.cf7-form .field-acceptance input[flag="checked"] {
  background-color: var(--body-color);
  border-color: var(--body-color);
}

.cf7-form .field-acceptance input[flag="checked"]::before {
  width: 12px;
  height: 12px;
  position: absolute;
  font-size: 12px;
  content: "✔";
  color: var(--bodyreverse-color);
  line-height: 15px;
  padding: 0;
  top: 1px;
  left: 4px;
}

.cf7-form .field-acceptance,
.cf7-form .field-toggle,
.cf7-form .field-submit {
  width: unset;
  margin-bottom: 0;
}

.cf7-form .field-acceptance + .field-acceptance,
.cf7-form .field-toggle + .field-toggle {
  margin-top: calc(var(--field-margin) * 1);
}

.cf7-form .field-submit {
  color: var(--body-color);
}

.cf7-form .form-row.single-input .field-submit {
  --unit: 56px;
  /* cursor: pointer; */
}

.cf7-form .form-row.single-input .field-submit button {
  font-size: 0;
  position: absolute;
  right: 0;
  top: 0;
  height: calc(var(--unit) - var(--field-padding-v));
  aspect-ratio: 1;
  margin: 0;
  background-color: transparent;
  border-radius: 999vw;
  border: 1px solid var(--light-color);
  transition: var(--default-trans);
}

.cf7-form .form-row.single-input .field-submit button:hover {
  background-color: var(--light-color);
}

.cf7-form .form-row.single-input .field-submit button::after {
  content: "";
  height: 40%;
  width: 40%;
  background-image: url("../images/arrow.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-origin: content-box;
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  filter: var(--filter-to-dark);
  transition: var(--default-trans);
}

.cf7-form .form-row.single-input .field-submit button:hover::after {
  filter: var(--filter-to-light);
}

/* CF7 Status (same as .loader) */
.cf7-light {
  --loader-color: var(--black-color);
}
.cf7-dark {
  --loader-color: var(--light-color);
}
form.wpcf7-form .cf7-form .field-submit button.form-button {
  /* Avoid border blink when data-status changes */
  transition: unset;
}
form.wpcf7-form:not([data-status="submitting"]) .cf7-form .field-submit button.form-button::before,
form.wpcf7-form[data-status="invalid"] .cf7-form .field-submit button.form-button::before {
  display: none;
}
form.wpcf7-form[data-status="submitting"] .cf7-form .field-submit button.form-button::before {
  content: "";
  --unit: 24px;
  display: block;
  position: absolute;
  left: calc(50% - var(--unit) * 0.5);
  top: calc(50% - var(--unit) * 0.5);
  width: var(--unit);
  height: var(--unit);
  border-radius: 50%;
  border: 4px solid var(--loader-color);
  opacity: var(--opacity-disabled);
  animation:
    l20-1 0.8s infinite linear alternate,
    l20-2 1.6s infinite linear;
  z-index: 1;
}

form.wpcf7-form[data-status="submitting"] .cf7-form .form-row .field-submit button {
  background-color: transparent !important;
  border-color: transparent !important;
  border: none !important;
}

form.wpcf7-form[data-status="submitting"] .cf7-form .field-submit button.form-button .cta-label,
form.wpcf7-form[data-status="submitting"] .cf7-form .field-submit button.form-button .cta-mark {
  opacity: 0;
}

form.wpcf7-form[data-status="submitting"] .cf7-form .form-row.single-input .field-submit button {
  border-width: 0;
}
form.wpcf7-form[data-status="submitting"] .cf7-form .form-row.single-input .field-submit button:hover {
  background-color: transparent;
}
form.wpcf7-form[data-status="submitting"] .cf7-form .form-row.single-input .field-submit button::after {
  opacity: 0;
}

.cf7-form .field-toggle {
  margin-top: 12px;
  display: flex;
  align-items: center;
}

.cf7-form .field-toggle .wpcf7-list-item {
  margin: 0 12px 0 0;
  display: inline-block;
}

.cf7-form .field-toggle > span input[type="checkbox"] {
  width: 40px;
  height: 24px;
  position: relative;
}

.cf7-form .field-toggle > span input[type="checkbox"]::before,
.cf7-form .field-toggle > span input[type="checkbox"]:checked::before {
  content: "";
  font-size: 0;
  cursor: pointer;
  display: inline-block;
  background-color: var(--cf7-field-bg);
  border-radius: 100px;
  padding: 12px 20px;
  position: relative;
  transition:
    border 0.3s,
    color 0.3s;
}

.cf7-form .field-toggle > span input[type="checkbox"]::after,
.cf7-form .field-toggle > span input[type="checkbox"]:checked::after {
  content: "";
  display: block;
  position: absolute;
  width: 17px;
  height: 17px;
  background-color: var(--bodyreverse-color);
  border-radius: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: left 0.3s;
  pointer-events: none;
}

.cf7-form .field-toggle > span input[type="checkbox"]::after {
  left: 30%;
}

.cf7-form .field-toggle > span input[flag="checked"]:checked::after {
  left: 70%;
  background-color: var(--body-color);
}

/* .cf7-alt .cf7-form .field-submit .cta-label {
  color: var(--light-color);
} */

/* .cf7-alt .cf7-form .field-submit button.cta::before {
  background: var(--light-color);
} */

.cf7-form .field-sided {
  --unit: 50px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: calc(var(--spacing) * 0.5);
  color: var(--body-color);
  padding-bottom: var(--field-margin);
}

[data-class="wpcf7cf_group"] {
  width: 100%;
  margin-top: calc(var(--field-margin) * -1);
  margin-bottom: calc(var(--field-margin) * 2);
  color: var(--body-color);
}

[data-class="wpcf7cf_group"] .field-group-title {
  margin-bottom: var(--field-margin);
  color: var(--body-color);
  font-size: var(--smallsize);
}

.cf7-form .field-sided > label {
  width: 79%;
}
.cf7-form .field-sided > span {
  width: 15%;
}

.cf7-form .field-sided .wpcf7-radio {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  align-items: center;
}

.cf7-form .field-sided .wpcf7-radio.wpcf7-not-valid {
  border: none !important;
}

.cf7-form .field-sided .wpcf7-list-item {
  margin: 0;
  width: var(--unit);
  height: var(--unit);
  text-align: center;
  background-color: var(--cf7-field-bg);
  border: 1px solid var(--cf7-field-border-color);
  border-radius: calc(var(--cf7-field-radius) * 0.75);
  align-items: center;
  justify-content: center;
  display: flex;
  position: relative;
  justify-self: center;
}
.cf7-form .field-sided .wpcf7-list-item.first {
  justify-self: start;
}
.cf7-form .field-sided .wpcf7-list-item.last {
  justify-self: end;
}

.cf7-form .field-sided .wpcf7-radio.wpcf7-not-valid .wpcf7-list-item {
  border: 1px solid var(--error-color) !important;
}

.cf7-form .field-sided .wpcf7-list-item input[type="radio"] {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  border-radius: calc(var(--cf7-field-radius) * 0.75);
  cursor: pointer;
}

.cf7-form .field-sided .wpcf7-list-item input[type="radio"]:checked::before {
  content: "✔";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  font-size: calc(var(--bodysize) * 2);
  transform: translateX(-50%) translateY(-50%);
  opacity: 0.5;
}

.cf7-form .field-sided .wpcf7-radio:has(input[type="radio"]:checked) .wpcf7-list-item-label {
  opacity: 0.25;
}
.cf7-form .field-sided .wpcf7-radio input[type="radio"]:checked + .wpcf7-list-item-label {
  opacity: 0.4;
}

.cf7-form .field-sided .wpcf7-list-item-label {
  color: var(--body-color);
  pointer-events: none;
  white-space: nowrap;
  z-index: 1;
}

.cf7-form .field input[type="email"],
.cf7-form .field input[type="text"],
.cf7-form .field input[type="tel"] {
}

form[data-status="submitting"] {
  pointer-events: none;
}

/* Single field form - Pill style */
.cf7-form .field-single-pill {
  --unit: 56px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  width: 100%;
  height: calc(var(--unit) - var(--field-padding-v));
  border: 1px solid var(--light-color);
  border-radius: var(--unit);
  background: rgba(243, 243, 243, 0.05);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  overflow: hidden;
  transition: var(--default-trans);
}

.cf7-form .field-single-pill .wpcf7-form-control-wrap {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  align-items: center;
  min-width: 0;
  height: 100%;
}

.cf7-form .field-single-pill input:not([type="submit"]) {
  flex: 1;
  width: 100%;
  background: transparent;
  border: none;
  outline: none;
  padding: 0 20px;
  font-family: var(--altfont);
  font-size: var(--type-label-m);
  font-weight: 400;
  color: var(--bodyreverse-color);
  height: 100%;
}

.cf7-form .field-single-pill input[type="submit"],
.cf7-form .field-single-pill .wpcf7-submit {
  grid-column: 2;
  grid-row: 1;
  height: 46px;
  padding: 0 24px;
  background: rgba(243, 243, 243, 0.1);
  border: 1px solid var(--light-color);
  border-radius: var(--unit);
  font-family: var(--altfont);
  font-size: var(--type-label-m);
  font-weight: 400;
  text-transform: uppercase;
  cursor: pointer;
  letter-spacing: 0.04em;
  margin: -1px;
  transition: var(--default-trans);
}

.cf7-form .field-single-pill input[type="submit"]:hover,
.cf7-form .field-single-pill .wpcf7-submit:hover {
  background: rgba(243, 243, 243, 0.2);
}
form.wpcf7-form[data-status="submitting"] .cf7-form .field-single-pill input[type="submit"],
form.wpcf7-form[data-status="submitting"] .cf7-form .field-single-pill .wpcf7-submit {
  opacity: 0;
  pointer-events: none;
}

.cf7-form .field-single-pill .wpcf7-spinner {
  --unit: 24px;
  grid-column: 2;
  grid-row: 1;
  place-self: center;
  width: var(--unit) !important;
  height: var(--unit) !important;
  background: none !important;
  background-image: none !important;
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  font-size: 0;
}

.cf7-form .field-single-pill .wpcf7-spinner::after {
  content: "";
  display: block;
  width: var(--unit) !important;
  height: var(--unit) !important;
  border-radius: 50%;
  border: 2px solid rgba(243, 243, 243, 0.2);
  border-top-color: var(--light-color);
  animation:
    /* same as .loader */
    l20-1 0.8s infinite linear alternate,
    l20-2 1.6s infinite linear;
}

form.wpcf7-form[data-status="submitting"] .cf7-form .field-single-pill input[type="submit"] {
  opacity: 0;
  pointer-events: none;
  transition: none;
}

.cf7-form .field-single-pill input.wpcf7-not-valid {
  border: none !important;
}

.cf7-form .field-single-pill:has(input.wpcf7-not-valid) {
  border-color: var(--error-color);
  box-shadow: 0 0 0 1.5px var(--error-color);
}

/* Focused fields */
.cf7-form .field-input input:focus,
.cf7-form .field-textarea textarea:focus,
.cf7-form .field.field-dropdown:focus-within .dropdown-toggle,
.cf7-form .field.field-dropdown .dropdown-toggle:focus {
  border-bottom-color: var(--cf7-focus-color);
  background-color: var(--cf7-focus-bg);
}

.cf7-form .field-submit button:focus-visible {
  outline: 1px solid var(--cf7-focus-color);
  outline-offset: 8px;
}
.cf7-dark .cf7-form .field-submit button:focus-visible {
  outline-color: var(--light-color);
}

/* CF7 Dark */
.cf7-dark ::placeholder,
.cf7-dark ::-webkit-input-placeholder {
  color: var(--bodyreverse-color);
}

.cf7-dark .cf7-form {
  color: var(--bodyreverse-color);
  color-scheme: dark;
}

.cf7-dark .cf7-form .form-row.single-input .field-submit button:hover {
  border-color: var(--light-color);
  background-color: var(--light-color);
}

.cf7-dark .cf7-form .form-row.single-input .field-submit button::after {
  filter: var(--filter-to-light);
}

.cf7-dark .cf7-form .form-row.single-input .field-submit button:hover::after {
  filter: var(--filter-to-dark);
}

.cf7-dark .cf7-form .field-input input,
.cf7-dark .cf7-form .field-textarea textarea,
.cf7-dark .cf7-form .field-select select {
  color: var(--bodyreverse-color);
}

.cf7-dark .cf7-form .field-select::before {
  filter: var(--filter-to-light);
}

.cf7-dark .cf7-form .field-acceptance,
.cf7-dark .cf7-form .field-toggle {
  color: var(--bodyreverse-color);
}

.cf7-dark .cf7-form .field-acceptance input[type="checkbox"] {
  border-color: var(--bodyreverse-color);
}

.cf7-dark .cf7-form .field-acceptance input[flag="checked"] {
  border-color: var(--body-color);
}

.cf7-dark .cf7-form .field-submit {
  color: var(--bodyreverse-color);
}

.cf7-dark .cf7-form .field-toggle > span input[type="checkbox"]::after,
.cf7-dark .cf7-form .field-toggle > span input[type="checkbox"]:checked::after {
  background-color: var(--bodyreverse-color);
}

.cf7-dark .cf7-form .field-toggle > span input[flag="checked"]:checked::after {
  background-color: var(--bodyreverse-color);
}

/* to 1024px */
@media (max-width: 64em) {
  .cf7-form .field-acceptance + .field-acceptance,
  .cf7-form .field-toggle + .field-toggle {
    margin-top: calc(var(--field-margin) * 1.5);
  }
}

/* to 849px */
@media (max-width: 53.0625em) {
  .cf7-form .field-sided {
    flex-wrap: wrap;
  }

  .cf7-form .field-sided > label {
    width: 100%;
  }
  .cf7-form .field-sided > span {
    width: 100%;
  }

  .cf7-form .field-sided .wpcf7-radio {
    display: flex;
    flex-wrap: nowrap;
    gap: 16px;
    align-items: center;
  }

  .cf7-form .field-sided .wpcf7-list-item {
    justify-self: unset;
  }
}

/* to 640px */
@media (max-width: 40em) {
  .cf7-form .form-row.last > div {
    width: 100%;
  }
}

/* to 480px */
@media (max-width: 30em) {
  .cf7-form .form-area + .form-area {
    margin-top: 0;
  }

  .cf7-form .form-area:first-of-type h4 {
    margin-top: 0;
  }

  .cf7-form .form-area-title {
    margin-top: calc(var(--spacing) * 1.2);
  }

  .cf7-form h5.form-area-title {
    margin-top: calc(var(--spacing) * 0.8);
  }

  .cf7-form .field.field-textarea {
    padding-top: 3em;
  }

  .cf7-form .field-acceptance,
  .cf7-form .field-toggle {
    font-size: calc(var(--cf7-fontsize) * 0.9);
  }

  .cf7-form .field:not(.field-submit) {
    width: 100%;
  }
}

/**************************************************
  SWIPER SLIDER
*/
.swiper-wrapper {
  align-items: center;
}

.swiper-button-prev,
.swiper-button-next {
  --swiper-navigation-sides-offset: 20px;
  border-radius: 0;
}

/* Swiper custom navigation  */
.swiper-button-prev.swiper-custom-prev,
.swiper-button-next.swiper-custom-next {
  --swiper-navigation-sides-offset: calc(var(--container) * 0.5);
  --swiper-navigation-size: var(--swiper-custom-navigation-size);
  width: var(--swiper-custom-navigation-size);
  height: var(--swiper-custom-navigation-height);
  margin-top: calc(var(--swiper-custom-navigation-height) * -0.5) !important;
  border-radius: 0;
  transition: var(--default-trans);
}

.swiper-button-prev.swiper-custom-prev:hover::before {
  transform: scaleX(-1) scaleY(-1);
}
.swiper-button-next.swiper-custom-next:hover::before {
  transform: scaleY(-1);
}

.swiper-button-prev.swiper-custom-prev::before,
.swiper-button-next.swiper-custom-next::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-image: url("../images/arrow-carousel.svg");
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: center right;
  transition: var(--default-trans);
}

.swiper-button-prev.swiper-custom-prev::before {
  transform: scaleX(-1);
}

.swiper-button-next.swiper-custom-next::before {
  left: unset;
  right: 0;
}

.swiper-button-prev.swiper-custom-prev::after,
.swiper-button-next.swiper-custom-next::after,
.swiper-button-prev.swiper-custom-prev svg,
.swiper-button-next.swiper-custom-next svg {
  display: none;
}

/**************************************************
  HEADER
*/
#main-header {
  --logoheight: 49px;
  --header-padding-v: calc(var(--spacing) * 0.50);
  --btn-unit: 38px;
  background-color: transparent;
  position: fixed;
  display: block;
  color: var(--dark-color);
  z-index: 95;
  top: 0;
  width: 100%;
  transition: var(--default-trans);
}

#main-header.is-sticky {
  --body-color: var(--light-color);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  background: rgba(243, 243, 243, 0.35);
}

#main-header.menu-layer-is-active {
  position: fixed;
  backdrop-filter: unset;
  -webkit-backdrop-filter: unset;
  background: transparent;
}

#main-header.is-sticky.menu-layer-is-active {
  border-bottom: none;
}

#main-header > .grid {
  grid-template-columns: auto auto;
  justify-items: center;
  align-items: center;
  padding: var(--header-padding-v) var(--container);
  transform: translateY(-100%);
  opacity: 0;
}

#main-header > .grid .left-items {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  justify-self: start;
  column-gap: calc(var(--spacing) * 0.50);
  min-height: var(--btn-unit);
}

#main-header > .grid .right-items {
  display: flex;
  flex-wrap: nowrap;
  justify-self: flex-end;
  align-items: center;
  gap: var(--spacing);
}

#main-header > .grid.is-entered {
  transition: transform var(--header-animation-duration);
  opacity: 1;
  transform: translateY(0);
}

/* Entrance animation for section-hero[section-index="1"] */
body:has(main section.section-hero[section-index="1"]:not([data-layout="error"])):not(.hero-header-static) #main-header {
  transform: translateY(-100%);
}
body:has(main section.section-hero[section-index="1"]:not([data-layout="error"])):not(.hero-header-static) #main-header.is-sticky {
  transition: transform var(--header-animation-duration) var(--header-animation-delay);
  transform: translateY(0);
}

body:has(main section.section-hero[section-index="1"]:not([data-layout="error"])):not(.hero-header-static) #main-header > .grid {
  transform: translateY(-100%);
}
body:has(main section.section-hero[section-index="1"]:not([data-layout="error"])):not(.hero-header-static) #main-header > .grid.is-entered {
  opacity: 1;
  transition: transform var(--header-animation-duration) var(--header-animation-delay);
  transform: translateY(0);
}

/* Logo */
#main-header .logo > a {
  display: block;
  width: 100%;
  height: 100%;
}

#main-header .logo > a > img {
  width: 100%;
  transition: var(--default-trans);
}

#main-header.is-sticky .logo > a > img {
  filter: none;
}

#main-header.is-sticky.menu-layer-is-active .logo > a > img,
#main-header.menu-layer-is-active .logo > a > img {
  filter: var(--filter-to-light);
}

#main-header .logo > a:hover > img {
  scale: var(--scale-up);
}

/* Navigation */
#main-header .navigation,
#main-header .navigation ul.menu {
  display: flex;
  align-items: center;
  gap: calc(var(--spacing) * 1.25);
  list-style: none;
  margin: 0;
  padding: 0;
}

#main-header .navigation ul.menu > .menu-item > a,
#main-header .navigation a.header-cta .cta-label {
  font-family: var(--altfont);
  font-size: var(--bodysize);
  font-weight: 400;
  -webkit-text-stroke: 0px transparent;
  color: var(--body-color);
  text-decoration: none;
  transition: var(--default-trans);
}
#main-header .navigation ul.menu > .menu-item > a {
  /* Underline dotted */
  /*
  background-image: linear-gradient(currentColor, currentColor), repeating-linear-gradient(to right, currentColor 0%, currentColor 2px, transparent 2px, transparent 4px);
  */
  /**/
  background-repeat: no-repeat;
  background-position:
    left bottom,
    left bottom;
  background-size:
    0% 1px,
    100% 1px;
}
#main-header .navigation ul.menu > .menu-item > a:hover,
#main-header .navigation ul.menu > .menu-item > a:active {
  background-size:
    100% 1px,
    100% 1px;
}

/* Header CTA */
#main-header .navigation a.header-cta button {
  background: transparent !important;
  backdrop-filter: unset;
}
#main-header .navigation a.header-cta:hover button {
  background: var(--body-color) !important;
}
#main-header .navigation a.header-cta:hover .cta-label {
  color: var(--bodyreverse-color);
}

/* Language switcher (WPML) */
#main-header .menu-lang {
  display: flex;
  align-items: center;
}

#main-header .menu-lang .current-lang,
#main-header .menu-lang .select-lang {
  display: flex;
  align-items: center;
}

#main-header .menu-lang a {
  font-family: var(--altfont);
  font-size: var(--bodysize);
  font-weight: 400;
  text-transform: uppercase;
  color: var(--body-color);
  transition: var(--default-trans);
}

#main-header .menu-lang .select-lang {
  position: relative;
  margin-left: calc(var(--spacing) * 0.35);
  padding-left: calc(var(--spacing) * 0.35);
}

#main-header .menu-lang .select-lang::before {
  content: "|";
  position: absolute;
  left: 0;
  color: var(--body-color);
  opacity: var(--opacity-disabled);
}

#main-header .menu-lang .select-lang a {
  opacity: var(--opacity-disabled);
}
#main-header .menu-lang .select-lang a:hover {
  opacity: 1;
}

#main-header.menu-layer-is-active .menu-lang a {
  color: var(--light-color) !important;
}

#main-header.menu-layer-is-active .menu-lang .select-lang::before {
  color: var(--light-color) !important;
}

/* Menu toggle */
#main-header .menu-toggle-container {
  position: relative;
}

#main-header .menu-toggle {
  --padding-h: 0px;
  --line-h: 2px;
  --border-w: 0px;
  --line-spacing: 8px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  min-width: var(--btn-unit);
  min-height: var(--btn-unit);
  padding-left: var(--padding-h);
  padding-right: var(--padding-h);
  padding-top: calc(var(--btn-unit) * 0.50 - var(--bodysize) * 0.50 - var(--border-w));
  padding-bottom: calc(var(--btn-unit) * 0.50 - var(--bodysize) * 0.50 - var(--border-w));
  font-family: var(--bodyfont);
  font-size: var(--bodysize);
  line-height: var(--bodysize);
  text-align: center;
  text-transform: capitalize;
  border: var(--border-w) solid var(--body-color);
  background: transparent;
  cursor: pointer;
  position: relative;
  transition: var(--default-trans);
}

#main-header .menu-toggle > div {
  position: relative;
  transition: var(--default-trans);
}

#main-header .menu-toggle.is-open .toggle-lines {
  top: calc(var(--line-h) * 0.50);
}

#main-header .menu-toggle .toggle-lines > span {
  display: block;
  height: var(--line-h);
  width: calc(var(--btn-unit) - var(--padding-h) * 2 - var(--border-w) * 2);
  border-radius: 999vw;
  margin-bottom: var(--line-spacing);
  background: var(--body-color);
  margin-left: auto;
  transition: var(--default-trans);
}

#main-header .menu-toggle .toggle-lines > span:last-of-type {
  margin: 0;
}

#main-header .menu-toggle.is-open .toggle-lines > span {
  rotate: 45deg;
  scale: 0.95;
  margin-bottom: 0;
}

#main-header .menu-toggle.is-open .toggle-lines > span:nth-of-type(2) {
  display: none;
}

#main-header .menu-toggle.is-open .toggle-lines > span:last-of-type {
  rotate: -45deg;
  position: relative;
  top: calc(-1 * var(--line-h));
}

#main-header.menu-layer-is-active .menu-toggle .toggle-lines > span {
  background: var(--light-color) !important;
}

/* Default header */
#main-header.is-sticky:not(.menu-layer-is-active) {
  --body-color: var(--dark-color);
  --filter-to-body: var(--filter-to-dark);
  /* box-shadow: var(--shadow); */
}

/* Transparent header */
#main-header.is-transparent:not(.is-sticky):not(.menu-layer-is-active) {
  --body-color: var(--dark-color);
  --filter-to-body: var(--filter-to-dark)
}

body:has(main .section-hero[section-index="1"]) #main-header.is-transparent:not(.is-sticky):not(.menu-layer-is-active) {
  --body-color: var(--light-color);
  --bodyreverse-color: var(--dark-color);
  --filter-to-bg: var(--filter-to-dark);
  --filter-to-body: var(--filter-to-light);
}

#main-header.is-transparent:not(.is-sticky):not(.menu-layer-is-active) > .grid::after {
  background-color: var(--body-color);
}

#main-header.is-transparent:not(.is-sticky):not(.menu-layer-is-active) .logo > a > img {
  filter: none;
}

#main-header.is-transparent.is-sticky:not(.menu-layer-is-active) {
  --body-color: var(--dark-color);
  --filter-to-body: var(--filter-to-dark)
}

#main-header.is-transparent.is-sticky:not(.menu-layer-is-active) > .grid::after {
  background-color: var(--body-color);
}

#main-header.is-transparent.is-sticky:not(.menu-layer-is-active) .logo > a > img {
  filter: none;
}

/* Menu Layer */
.menu-layer {
  --menu-w: 100%;
  --bg-unit: 105vh;
  --menu-bg: var(--highlight-color);
  --menu-color: var(--light-color);
  --menufont-size: calc(var(--bodysize) * 1.50);
  --menutext-transform: none;
  --items-gap: calc(var(--spacing) * 1.50);
  position: fixed;
  display: block;
  width: 100%;
  height: 100vh;
  z-index: 94;
  /* Menu layer start position */
  top: -100%;
  left: 0;
  overflow: hidden;
  -webkit-overflow-scrolling: touch !important;
  pointer-events: none;
  transition: var(--slow-trans);
}

.menu-layer::before {
  content: '';
  /* display: block; */
  display: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(100%);
  transition: var(--default-trans);
  background-color: #000;
  opacity: 0.20;
}

.menu-layer.is-active {
  top: 0;
  pointer-events: auto;
}

.menu-layer .menu-bg {
  overflow: hidden;
  width: var(--menu-w);
  height: 100%;
  position: absolute;
  background-color: var(--menu-bg);
  pointer-events: none;
  opacity: 0;
}

.menu-layer .menu-bg.is-active {
  opacity: 1;
}

.menu-layer .menu-container {
  overflow-y: auto;
  overflow-x: hidden;
  width: var(--menu-w);
  height: 100%;
  position: relative;
  padding-top: calc(var(--header-height) + var(--spacing));
  padding-bottom: calc(var(--padding) * 2);
  padding-left: var(--container);
  padding-right: var(--container);
  /* Hide scrollbar (IE, Edge, Firefox) */
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.menu-layer .menu-container::-webkit-scrollbar {
  /* Hide scrollbar (Chrome, Safari, Opera) */
  display: none;
}

.menu-layer .menu-container > .navigation {
  width: 100%;
  font-family: var(--altfont);
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  row-gap: var(--items-gap);
  position: relative;
  /* Navigation menu start position/opacity */
  opacity: 0;
  /* transform: translateY(-50%); */
  transition: var(--default-trans), transform 1s 0.5s, opacity 2s;
}
.menu-layer.is-active .menu-container > .navigation {
  /* transform: translateY(0%); */
  opacity: 1;
}

.menu-layer .menu-container > .navigation a {
  color: var(--menu-color);
  position: relative;
  transition: var(--default-trans);
}

.menu-layer .menu-container > .navigation ul.menu {
  width: 100%;
  list-style-type: none;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: start;
  position: relative;
  transition: var(--default-trans);
}

.menu-layer .menu-container > .navigation ul.menu li {
  display: inline-block;
  left: 0;
  line-height: 1;
  position: relative;
}

.menu-layer .menu-container > .navigation .main-menu {
  gap: var(--items-gap);
}

.menu-layer .menu-container > .navigation .main-menu > li {
  width: 100%;
  text-align: center;
  font-size: var(--menufont-size);
  text-transform: var(--menutext-transform);
}

.menu-layer .menu-container > .navigation ul.menu > li > a {
  opacity: 1;
}

.menu-layer .menu-container > .navigation ul.menu > li > a:not(.is-active) {
  opacity: var(--opacity-disabled);
}

/* Header CTA (menu-layer) */
.menu-layer .menu-container > .navigation .header-cta {
  width: 100%;
}

.menu-layer .menu-container > .navigation .header-cta button {
  margin: 0 auto;
  background: transparent !important;
  backdrop-filter: unset;
  border-color: var(--menu-color);
}
.menu-layer .menu-container > .navigation .header-cta:hover button {
  background: var(--menu-color) !important;
  border-color: var(--menu-color) !important;
}

.menu-layer .menu-container > .navigation .header-cta .cta-label {
  color: var(--menu-color);
}
.menu-layer .menu-container > .navigation .header-cta:hover .cta-label {
  color: var(--menu-bg);
}

.menu-layer .menu-container > .navigation .socials {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 0 var(--container);
  font-size: var(--bodysize);
  gap: calc(var(--spacing) * 0.50);
  transform: translateY(100%);
}

/* above 1025px */
@media (min-width: 64.0625em) {
  #main-header .menu-toggle.is-open:hover > div {
    rotate: 90deg;
  }

  #main-header .menu-toggle:not(.is-open):hover .toggle-lines > span {
    margin-top: calc(var(--line-spacing) * 0.50);
    margin-bottom: calc(var(--line-spacing) * 0.50);
  }
}

/* to 1024px */
@media (max-width: 64em) {
  #main-header .menu-lang .current-lang {
    display: none;
  }
  #main-header .menu-lang .select-lang {
    margin-left: 0;
    padding-left: 0;
  }
  #main-header .menu-lang .select-lang::before {
    display: none;
  }
  #main-header .menu-lang .select-lang a {
    opacity: 1;
  }
}

/* to 480px */
@media (max-width: 30em) {
  .menu-layer {
    --items-gap: calc(var(--spacing) * 1.35);
  }
}

/* to 384px */
@media (max-width: 24em) {
  .menu-layer .menu-container {
    padding-top: calc(var(--header-height) * 1.50);
  }
}

/**************************************************
  BREADCRUMBS
*/
#breadcrumbs {
  width: 100%;
  margin-bottom: calc(var(--spacing) * 0.50);
}

#breadcrumbs,
#breadcrumbs a {
  position: relative;
  border-bottom: none !important;
  font-family: var(--altfont);
  font-size: calc(var(--bodysize) * 0.80);
  color: var(--body-color);
  text-transform: uppercase;
  transition: var(--default-trans);
}

#breadcrumbs a:hover {
  color: var(--body-color);
}

#breadcrumbs .breadcrumb_last {
  color: var(--body-color);
}

#breadcrumbs a::before {
  content: '';
  position: absolute;
  bottom: -2px;
  width: 0;
  height: 1px;
  transition: var(--default-trans);
  background-color: var(--body-color);
}

#breadcrumbs a:hover::before {
  width: 100%;
}

#breadcrumbs > span > span {
  margin-left: 4px;
  margin-right: 4px;
}

#breadcrumbs > span > span:first-of-type {
  margin-left: 0;
}

#breadcrumbs > span > span.breadcrumb_last {
  margin-right: 0;
}

#breadcrumbs .breadcrumbs-separator {
  margin: 0;
}

/**************************************************
  SECTION pagetitle
*/
section.section-pagetitle {
  padding: calc(var(--padding) * 1.5) 0 0;
}
section.section-pagetitle + section.section-dark,
section.section-pagetitle + section.section-hero,
section.section-pagetitle + section.section-banner,
section.section-pagetitle + section.section-linkvscroll {
  margin-top: var(--padding);
}

section.section-pagetitle .section-heading {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

section.section-pagetitle .section-heading > div {
  width: 48%;
}

section.section-pagetitle .section-heading > div:only-of-type {
  width: 100%;
}

section.section-pagetitle .section-heading #breadcrumbs {
  animation: var(--enterRight);
}

section.section-pagetitle .section-heading .title {
  font-size: var(--titlesize);
  text-transform: uppercase;
  animation: var(--enterRight);
}

section.section-pagetitle .section-heading .text {
  animation: var(--enterLeft);
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-pagetitle .section-heading > div {
    width: 100%;
  }

  section.section-pagetitle .section-heading > div + div {
    margin-top: var(--spacing);
  }
}

/* BLOG pagetitle (single-post) */
body.single-post .section-pagetitle .section-heading {
  justify-content: center;
  text-align: center;
}

body.single-post .section-pagetitle .section-heading > div {
    width: 100%;
}

body.single-post .section-pagetitle .section-heading > div + div {
    margin-top: var(--spacing);
}

body.single-post .section-pagetitle .section-heading #breadcrumbs,
body.single-post .section-pagetitle .section-heading .title,
body.single-post .section-pagetitle .section-heading .text {
    animation: var(--enterUp);
}

body.single-post .section-pagetitle .section-heading .post-medium {
  position: relative;
  animation: var(--enterHero);
}

body.single-post .section-pagetitle .section-heading .post-medium a {
  display: inline-block;
  position: relative;
  width: auto;
  overflow: hidden;
}

body.single-post .section-pagetitle .section-heading .post-medium a img {
  width: 100%;
  height: 100%;
  transition: var(--default-trans);
}
body.single-post .section-pagetitle .section-heading .post-medium a:hover img {
  scale: var(--scale-up);
}

/**************************************************
  MODULE text
*/
section.section-text {
  --title-w: 55%;
  --text-w: 60%;
}

section.section-text .container + .container {
  margin-top: var(--spacing);
}

section.section-text .section-heading {
  width: 100%;
}

section.section-text .tagline {
  width: var(--title-w);
  font-size: var(--bodysize);
  color: var(--body-color);
}

section.section-text .tagline + div {
  margin-top: calc(var(--spacing) * 0.50);
}

section.section-text .title {
  width: var(--title-w);
}

section.section-text .text-container {
  width: var(--text-w);
  margin-left: auto;
}

section.section-text .text-container .text + a button {
  margin-top: var(--spacing);
}

/* Besided text */
section.section-text.is-sided {
  --title-w: 45%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  padding-left: var(--container);
  padding-right: var(--container);
}

section.section-text.is-sided > .container {
  width: var(--title-w);
  padding: 0;
}

section.section-text.is-sided .container + .container {
  margin: 0;
}

section.section-text.is-sided .tagline,
section.section-text.is-sided .title,
section.section-text.is-sided .text-container {
  width: 100%;
}

/* Centerd text */
section.section-text.is-centered {
  --title-w: 100%;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  padding-left: calc(var(--container) * 1.50);
  padding-right: calc(var(--container) * 1.50);
}

section.section-text.is-centered > .container {
  width: var(--title-w);
  padding: 0;
}

section.section-text.is-centered .tagline,
section.section-text.is-centered .title,
section.section-text.is-centered .text-container {
  width: 100%;
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-text {
    --title-w: 70%;
    --text-w: 70%;
  }
  
  section.section-text.is-sided {
    --title-w: 100%;
  }

  section.section-text.is-sided .container + .container {
    margin-top: var(--spacing);
  }
}

/* to 640px */
@media (max-width: 40em) {
  section.section-text {
    --title-w: 100%;
    --text-w: 100%;
  }
}

/**************************************************
  MODULE banner
*/
section.section-banner {
  /* --parallax-amount set in module-banner.php */
  --body-color: var(--white-color);
  --bodyreverse-color: var(--black-color);
  padding: 0;
  min-height: 75vh;
}
section.section-banner.is-background {
  --body-color: var(--black-color);
  --bodyreverse-color: var(--white-color);
}

section.section-banner .backdrop-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 0;
}

section.section-banner[section-index="1"] .backdrop-container,
section.section-banner[section-index="2"] .backdrop-container {
  opacity: 0;
  animation: var(--enterHero);
}

section.section-banner:not([section-index="1"]) .backdrop-container,
section.section-banner:not([section-index="2"]) .backdrop-container {
  opacity: 0;
}

section.section-banner:not([section-index="1"]) .backdrop-container[data-animation="1"],
section.section-banner:not([section-index="2"]) .backdrop-container[data-animation="1"] {
  animation: var(--enterHero);
}

section.section-banner .backdrop-item {
  position: absolute;
  left: 0;
  width: 100%;
  will-change: transform;
  top: calc(var(--parallax-amount) * -1%);
  height: calc(100% + (var(--parallax-amount) * 2%));
}

section.section-banner .backdrop-item video,
section.section-banner .backdrop-item img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
}

section.section-banner .overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: #000000;
  opacity: 0.25;
  pointer-events: none;
}

section.section-banner .banner-container {
  padding: var(--padding) 0;
  align-content: center;
  text-align: center;
  color: var(--body-color);
  opacity: 0;
}

section.section-banner .banner-container[data-animation="1"] {
  animation: var(--enterUp);
  animation-delay: var(--enterHero-speed);
}
section.section-banner.is-background .banner-container[data-animation="1"] {
  animation-delay: unset;
}

section.section-banner .banner-container .title {
  color: var(--body-color);
  font-size: calc(var(--titlesize) * 0.80);
}

section.section-banner .banner-container > div + div {
  margin-top: var(--spacing);
}

section.section-banner .banner-container .text p {
  color: var(--body-color);
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-banner .banner-container .title {
    font-size: var(--titlesize);
  }  
}

/**************************************************
  MODULE media
*/
section.section-media .container {
  align-items: center;
  color: var(--body-color);
  position: relative;
}

section.section-media .media-content {
  width: 50%;
  margin: calc(var(--padding) * 0.50) 0;
  opacity: 0;
}

section.section-media.text-right[section-index="1"] .media-content,
section.section-media.text-right[section-index="2"] .media-content {
  animation: var(--enterLeft);
}
section.section-media.text-left[section-index="1"] .media-content,
section.section-media.text-left[section-index="2"] .media-content {
  animation: var(--enterRight);
}
section.section-media.text-right .media-content[data-animation="1"] {
  animation: var(--enterLeft);
}
section.section-media.text-left .media-content[data-animation="1"] {
  animation: var(--enterRight);
}

section.section-media.text-right .media-content {
  order: 2;
}

section.section-media .media-content > div {
  width: 100%;
}

section.section-media .media-content > div + div {
  margin-top: var(--spacing);
}

section.section-media .media-content .tagline + div {
  margin-top: calc(var(--spacing) * 0.50);
}

section.section-media .media-content .title {
  font-family: var(--altfont);
  font-weight: 400;
  text-transform: uppercase;
  margin-bottom: calc(var(--spacing) * 2);
}
section.section-media .media-content .title em {
  text-transform: none;
}

section.section-media .media-medium {
  width: 45%;
  position: relative;
  background-color: var(--skeleton-color);
  opacity: 0;
}

section.section-media.text-right[section-index="1"] .media-medium,
section.section-media.text-right[section-index="2"] .media-medium {
  animation: var(--enterRight);
}
section.section-media.text-left[section-index="1"] .media-medium,
section.section-media.text-left[section-index="2"] .media-medium {
  animation: var(--enterLeft);
}
section.section-media.text-right .media-medium[data-animation="1"] {
  animation: var(--enterRight);
}
section.section-media.text-left .media-medium[data-animation="1"] {
  animation: var(--enterLeft);
}

section.section-media .media-medium a {
  display: block;
  position: relative;
  overflow: hidden;
  height: 100%;
}

section.section-media .media-medium img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--img-radius);
  transition: var(--default-trans);
}

section.section-media .media-medium a:hover img {
  scale: var(--scale-up);
}

section.section-media .media-medium video {
  height: 100%;
  width: 100%;
  position: relative;
  top: 0;
  left: 0;
  object-fit: cover;
}

/* Featured */
section.section-media.is-featured.is-fullwidth.text-left > .container {
  justify-content: flex-end;
}
section.section-media.is-featured.is-fullwidth.text-right > .container {
  justify-content: flex-start;
}
section.section-media.is-featured.is-fullwidth .media-medium {
    width: 54%;
}
section.section-media.is-featured.is-fullwidth .media-medium[data-orientation="vr"] {
    width: 40%;
}

section.section-media.is-featured.text-left .media-content {
  margin-right: calc(var(--spacing) * -2.50);
}
section.section-media.is-featured.text-right .media-content {
  margin-left: calc(var(--spacing) * -2.50);
}

section.section-media.is-featured .media-content {
  --featured-fontsize: calc(var(--titlesize) * 0.90);
  z-index: 1;
}

section.section-media.is-featured .title {
  font-size: var(--featured-fontsize);
  line-height: 1em;
  position: relative;
  width: calc(100% + 10vw);
  margin-bottom: 0;
}

section.section-media.is-featured .text,
section.section-media.is-featured .cta-container {
  padding-left: calc(var(--spacing) * 1.50);
}

/* Fullwidth */
section.section-media.is-fullwidth .container {
  padding: 0;
}
section.section-media.is-fullwidth .media-content {
  width: 45%;
}
section.section-media.is-fullwidth.text-left .media-content {
  padding-left: var(--container);
}
section.section-media.is-fullwidth.text-right .media-content {
  padding-right: var(--container);
}
section.section-media.is-fullwidth .media-medium {
  width: 50%;
}

/* Parallax */
section.section-media .parallax-medium {
  width: 35vw;
  height: 100%;
  max-height: 45vh;
  position: absolute;
  bottom: 0;
  animation: var(--fadeInSlow);
}

section.section-media.text-left .parallax-medium {
  left: 0;
}
section.section-media.text-right .parallax-medium {
  right: 0;
}

section.section-media.text-left .parallax-medium > * {
  object-position: left bottom;
}
section.section-media.text-right .parallax-medium > * {
  object-position: right bottom;
}

section.section-media .parallax-medium > * {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Section background color */
.section-light + .section-media.section-dark,
.section-dark + .section-media.section-light,
.section-highlight + .section-media.section-dark,
.section-highlight + .section-media.section-light {
  padding-top: var(--padding);
}

section.section-media.is-gradient::before {
  --gradient-height: 35vh;
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: var(--gradient-height);
  background-repeat: no-repeat;
  pointer-events: none;
}

section.section-media.is-gradient.section-light::before {
  background: linear-gradient(to bottom, transparent 0, var(--dark-color) 85%);
}
section.section-media.is-gradient.section-dark::before {
  background: linear-gradient(to bottom, transparent 0, var(--light-color) 85%);
}

section.section-media.is-gradient + section.section {
  padding-top: 0;
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-media.text-right[section-index="3"] .media-content {
    animation: var(--enterLeft);
  }
  section.section-media.text-left[section-index="3"] .media-content {
    animation: var(--enterRight);
  }

  section.section-media.text-right[section-index="3"] .media-medium {
    animation: var(--enterRight);
  }
  section.section-media.text-left[section-index="3"] .media-medium {
    animation: var(--enterLeft);
  }
  
  section.section-media .media-medium img {
    aspect-ratio: var(--ratio-sq) !important;
  }

  /* Parallax */
  section.section-media.is-parallax {
    padding-bottom: calc(var(--padding) * 4);
  }

  section.section-media .parallax-medium {
    max-height: 25vh;
    bottom: unset;
    top: 120%;
  }

  section.section-media.text-right .parallax-medium > * {
    object-position: right top;
  }

  /* Section background color */
  section.section-media.is-gradient::before {
    --gradient-height: 18vh;
  }
}

/* to 849px */
@media (max-width: 53.0625em) {
  section.section-media .media-content {
    order: 2;
    width: 100% !important;
    margin: 0 !important;
    padding: calc(var(--padding) * 0.50) 0 0;
  }

  section.section-media.is-fullwidth .media-content {
    padding: calc(var(--padding) * 0.50) var(--container) 0;
  }

  section.section-media .media-medium {
    width: 100% !important;
  }

  section.section-media.is-fullwidth {
    padding: 0;
    padding-bottom: calc(var(--padding) * 0.50);
  }

  /* Featured */
  section.section-media.is-featured .media-content {
    --featured-fontsize: calc(var(--titlesize) * 1.20);
    padding-top: 0;
    position: relative;
    top: calc(var(--featured-fontsize) * -0.75);
  }

  section.section-media.is-featured .title {
    width: unset;
  }

  /* Parallax */
  section.section-media.is-parallax {
    padding-bottom: calc(var(--padding) * 0.5);
  }

  section.section-media .parallax-medium {
    max-height: 30vh;
  }

  section.section-media.text-left .parallax-medium {
    top: 62vw;
  }
  section.section-media.text-right .parallax-medium {
    top: 80vw;
  }

  /* Section background color */
  section.section-media.is-gradient::before {
    display: none;
  }
  
  section.section-media.is-gradient + section.section {
    padding-top: var(--padding);
  }
}

/* to 640px */
@media (max-width: 40em) {
  section.section-media.is-fullwidth {
    padding-bottom: var(--padding);
  }

  /* Parallax */
  section.section-media .parallax-medium {
    width: 50vw;
  }
}

/**************************************************
  MODULE .section-gallery (masonry)
*/
section.section-gallery .container + .container {
  margin-top: calc(var(--spacing) * 1);
}

section.section-gallery .title {
  width: 100%;
  text-align: center;
}

/* Masonry */
section.section-gallery .gallery-container {
  width: 100%;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: calc(var(--spacing) * 0.50);
}

section.section-gallery .gallery-container .single-item {
  --unit: 38vw;
}

section.section-gallery .gallery-container .single-item:nth-child(odd).is-last {
  width: 100%;
  padding: 0 var(--spacing);
}
section.section-gallery .gallery-container .single-item:nth-child(odd).is-last .item-img {
  --ratio-hr: 782/460;
  width: 100% !important;
  aspect-ratio: var(--ratio-hr) !important;
}

section.section-gallery .gallery-container .single-item:nth-child(odd) {
  position: relative;
  margin-left: auto;
}
section.section-gallery .gallery-container .single-item:nth-child(even) {
  margin-right: auto;
}

section.section-gallery .gallery-container .single-item:nth-child(odd)[data-ratio="sq"] {
  align-self: flex-end;
}
section.section-gallery .gallery-container .single-item:nth-child(even)[data-ratio="sq"] {
  align-self: flex-start;
}

section.section-gallery .gallery-container .single-item:nth-child(even)[data-ratio="vr"] {
  padding-right: calc(var(--spacing) * 1);
}
section.section-gallery .gallery-container .single-item:nth-child(odd)[data-ratio="vr"] {
  padding-left: calc(var(--spacing) * 1);
}

section.section-gallery .gallery-container .single-item:nth-child(5n) + .single-item {
  margin-top: calc(var(--spacing) * -0.50);
}

section.section-gallery .gallery-container .single-item a {
  position: relative;
  width: 100%;
  overflow: hidden;
}

section.section-gallery .gallery-container .single-item .item-img {
  width: var(--unit);
  display: block;
  overflow: hidden;
  position: relative;
  transition: var(--default-trans);
}

section.section-gallery .gallery-container .single-item[data-ratio="sq"] .item-img {
  aspect-ratio: 627/563;
  width: var(--unit);
}
section.section-gallery .gallery-container .single-item[data-ratio="vr"] .item-img {
  aspect-ratio: 458/607;
  width: calc(var(--unit) * 0.70);
}

section.section-gallery .gallery-container .single-item .item-img img {
  width: 100%;
  height: 100%;
  object-position: center;
  object-fit: cover;
  position: absolute;
  border-radius: var(--img-radius);
  transition: var(--default-trans);
}
section.section-gallery .gallery-container .single-item:hover .item-img img {
  scale: var(--scale-up);
}

/* to 849px */
@media (max-width: 53.0625em) {
  section.section-gallery .gallery-container .single-item {
    --unit: 48vw;
  }
}

/* to 640px */
@media (max-width: 40em) {
  section.section-gallery .container + .container {
    padding: 0;
  }

  section.section-gallery .gallery-container {
    gap: 2vw;
  }

  section.section-gallery .gallery-container .single-item {
    margin: unset !important;
    padding: unset !important;
  }

  section.section-gallery .gallery-container .single-item[data-ratio="sq"] .item-img {
    width: 57vw;
  }
  section.section-gallery .gallery-container .single-item[data-ratio="vr"] .item-img {
    width: 41vw;
  }
}

/* Slider */
section.section-gallery.is-slider {
  overflow-x: hidden;
  max-width: 100vw;
}

section.section-gallery.is-slider .slider-container {
  --slider-h: 70vh;
  opacity: 0;
}
section.section-gallery.is-slider[section-index="1"] .slider-container,
section.section-gallery.is-slider[section-index="2"] .slider-container {
  animation: var(--enterRight);
}
section.section-gallery.is-slider .slider-container[data-animation="1"] {
  animation: var(--enterRight);
}

section.section-gallery.is-slider .swiper {
  padding-left: var(--container);
  padding-right: calc(var(--container) + var(--spacing) * 2);
  overflow: visible;
}

section.section-gallery.is-slider .swiper-slide {
  width: auto;
  height: 100%;
  display: flex;
}

section.section-gallery.is-slider .single-item a {
  display: block;
  position: relative;
  width: auto;
  height: var(--slider-h);
  aspect-ratio: var(--ratio-hr);
  background-color: var(--skeleton-color);
  overflow: hidden;
}
section.section-gallery.is-slider .single-item a.vr {
  aspect-ratio: var(--ratio-vr);
}
section.section-gallery.is-slider .single-item a.sq {
  aspect-ratio: var(--ratio-sq);
}

section.section-gallery.is-slider .single-item a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  position: absolute;
  border-radius: var(--img-radius);
  transition: var(--default-trans);
}

section.section-gallery.is-slider .single-item a:hover img {
  scale: var(--scale-up);
}

section.section-gallery.is-slider .galleryslider-navigation {
  width: 100%;
  height: var(--swiper-custom-navigation-height);
  margin-top: 0;
  position: absolute;
  top: calc(50% - var(--swiper-custom-navigation-height) * 0.50);
}

.swiper-button-prev.swiper-custom-prev,
.swiper-button-next.swiper-custom-next {
  --swiper-navigation-sides-offset: var(--container);
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-gallery.is-slider .slider-container {
    --slider-h: 62vh;
  }
}

/**************************************************
  MODULE carousel
*/
section.section-carousel .container:has(.carousel-content) {
  justify-content: center;
  text-align: center;
  position: relative;
  z-index: 55;
}

section.section-carousel .carousel-content {
  width: 100%;
  opacity: 0;
}

section.section-carousel[section-index="1"] .carousel-content,
section.section-carousel[section-index="2"] .carousel-content {
  animation: var(--enterUp);
}

section.section-carousel .carousel-content[data-animation="1"] {
  animation: var(--enterUp);
}

section.section-carousel .title {
  font-size: calc(var(--titlesize) * 1.35);
  color: var(--white-color);
  text-transform: uppercase;
  padding: 0 var(--container);
  margin-bottom: -0.53em;
}

section.section-carousel .carousel-navigation {
  width: 100%;
  height: var(--swiper-custom-navigation-height);
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  pointer-events: none;
}

/* Prev/Next alignment based on 'slideperview' in main.js  */
section.section-carousel .carousel-navigation .swiper-button-prev.swiper-custom-prev,
section.section-carousel .carousel-navigation .swiper-button-next.swiper-custom-next {
  --swiper-navigation-sides-offset: calc(50vw - 50vw / 1.15 - var(--swiper-custom-navigation-size) * 0.50);
  pointer-events: auto;
}
@media (min-width: 40em) {
  section.section-carousel .carousel-navigation .swiper-button-prev.swiper-custom-prev,
  section.section-carousel .carousel-navigation .swiper-button-next.swiper-custom-next {
    --swiper-navigation-sides-offset: calc(50vw / 3 - var(--swiper-custom-navigation-size) * 0.50);
  }
}
@media (min-width: 64.0625em) {
  section.section-carousel .carousel-navigation .swiper-button-prev.swiper-custom-prev,
  section.section-carousel .carousel-navigation .swiper-button-next.swiper-custom-next {
    --swiper-navigation-sides-offset: calc(25vw - var(--swiper-custom-navigation-size) * 0.50);
  }
}

section.section-carousel .single-item {
  /* --item-ratio: var(--ratio-hr); */
  --item-ratio: 892/596;
  transition: var(--default-trans);
}

section.section-carousel .carousel-slider .single-item:not(.swiper-slide-active) {
  scale: 0.85;
}

section.section-carousel .single-item .item-medium a {
  position: relative;
  width: 100%;
  overflow: hidden;
  display: block;
}

section.section-carousel .single-item .item-video {
  display: block;
  aspect-ratio: var(--item-ratio);
  overflow: hidden;
  position: relative;
  transition: var(--default-trans);
}

section.section-carousel .single-item:hover:has(.item-img) .item-video {
  opacity: 0;
}

section.section-carousel .single-item .item-video video {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  filter: grayscale(1);
}

section.section-carousel .single-item .item-img {
  display: block;
  aspect-ratio: var(--item-ratio);
  overflow: hidden;
  position: relative;
  transition: var(--default-trans);
}

section.section-carousel .single-item:has(.item-video) .item-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

section.section-carousel .single-item:hover:has(.item-video) .item-img {
  opacity: 1;
}

section.section-carousel .single-item:has(.item-content) .item-img::before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
  background: #000000;
  opacity: 0.20;
}

section.section-carousel .single-item .item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 0;
  transform: translate(-50%, -50%);
  transform-origin: 0 0;
  background-color: var(--skeleton-color);
  transition: var(--default-trans);
}

section.section-carousel .single-item .item-img:hover img {
  scale: var(--scale-up);
}

section.section-carousel .single-item .item-content {
  --body-color: var(--light-color);
  color: var(--body-color);
  display: grid;
  gap: calc(var(--spacing) * 0.35);
  position: absolute;
  z-index: 1;
  bottom: 0;
  padding: 0 var(--spacing) calc(var(--spacing) * 1.15);
  transition: var(--default-trans);
}

section.section-carousel .single-item .item-content .item-title {
  width: 100%;
}

section.section-carousel .carousel-pictogram {
  width: 5vw;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 50%);
  z-index: 1;
  pointer-events: none;
  opacity: 0;
}
section.section-carousel .carousel-pictogram[data-animation="1"] {
  animation: var(--fadeIn);
}

section.section-carousel .carousel-pictogram img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

section.section-carousel .cta-container {
  margin-top: calc(var(--spacing) * 2);
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-carousel .single-item {
    --item-ratio: var(--ratio-vr);
  }

  section.section-carousel .carousel-pictogram {
    width: 8vw;
  }

  section.section-carousel .cta-container {
    margin-top: calc(var(--spacing) * 3);
  }
}

/* to 849px */
@media (max-width: 53.0625em) {
  section.section-carousel .single-item .item-content {
    white-space: normal;
  }
}

/* to 640px */
@media (max-width: 40em) {
  section.section-carousel .carousel-pictogram {
    width: 10vw;
  }

  section.section-carousel .cta-container {
    margin-top: calc(var(--spacing) * 4);
  }
}

/* to 480px */
@media (max-width: 30em) {
  section.section-carousel .carousel-pictogram {
    width: 15vw;
  }

  section.section-carousel .cta-container {
    margin-top: calc(var(--spacing) * 3);
  }
}

/**************************************************
  MODULE form
*/
section.section-form {
  padding-top: var(--spacing) !important;
  padding-bottom: calc(var(--padding) + var(--spacing)) !important;
}

section.section-form .form-text {
  width: 30%;
}

section.section-form .section-heading {
  width: 100%;
  margin-bottom: 0;
}

section.section-form .section-heading > div + div {
  margin-top: var(--spacing);
}

section.section-form .section-heading .tagline {
  width: 100%;
  font-size: var(--bodysize);
  color: var(--body-color);
}

section.section-form .section-heading .tagline + div {
  margin-top: calc(var(--spacing) * 0.50);
}

section.section-form .text-container {
  width: 100%;
  margin-top: var(--spacing);
}

section.section-form .text-container .text p {
  color: var(--body-color);
}

section.section-form .text-container .text + a button {
  margin-top: var(--spacing);
}

section.section-form .form-container {
  width: 50%;
}
section.section-form .container > div.form-container:only-of-type {
  margin: 0 auto;
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-form .form-text {
    width: 40%;
  }
}

/* to 640px */
@media (max-width: 40em) {
  section.section-form .form-text {
    width: 100%;
    margin-bottom: calc(var(--spacing) * 3);
  }

  section.section-form .form-container {
    width: 100%;
  }
}

/**************************************************
  MODULE team
*/
section.section-team {
  --ratio-vr: 310/431;
}

section.section-team .team-content {
  width: 100%;
  text-align: center;
  padding: 0 var(--container);
  margin-bottom: var(--spacing);
}

section.section-team .team-content h1,
section.section-team .team-content h2 {
  line-height: 1;
  text-transform: uppercase;
}

section.section-team .team-content .title em {
  font-family: var(--scriptfont);
  line-height: 1;
  text-transform: none;
}

/* Member slider */
section.section-team .team-slider {
  position: relative;
}

section.section-team .team-slider .swiper-pagination-bullet {
  --swiper-pagination-bullet-width: 12px;
  --swiper-pagination-bullet-border-radius: 999vw;
  transition: var(--default-trans);
}
section.section-team .team-slider .swiper-pagination-bullet-active {
  --swiper-pagination-bullet-width: 30px;
}

section.section-team .swiper-slide.single-item {
  padding: 0 calc(var(--spacing) * 0.10);
  scale: 0.93;
  transition: var(--default-trans);
}
section.section-team .swiper-slide.single-item:hover {
  scale: 1;
}

section.section-team .item-medium {
  aspect-ratio: var(--ratio-vr);
  overflow: hidden;
  position: relative;
  background-color: var(--skeleton-color);
}

section.section-team .item-medium img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: var(--img-radius);
}

section.section-team .item-content {
  margin-top: calc(var(--spacing) * 0.50);
}

section.section-team .item-name {
  text-transform: uppercase;
}

section.section-team .item-role {
  margin-top: calc(var(--spacing) * 0.25);
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-team .swiper-pagination {
    display: block;
    position: static;
    margin-top: calc(var(--spacing) * 1.5);
    text-align: center;
  }

  section.section-team .swiper-slide.single-item {
    padding: 0 0 0 var(--container);
    scale: 1;
  }
}

/**************************************************
  MODULE related
*/
section.section-related .related-container {
  gap: calc(var(--spacing) * 2);
}

/* Title */
section.section-related .title {
  width: 30%;
  flex-shrink: 0;
  padding-left: calc(var(--container) * 0.30);
  text-align: center;
  color: var(--body-color);
  opacity: 0;
}
section.section-related .title[data-animation="1"] {
  animation: var(--enterRight);
}

section.section-related .title h2 {
  display: block;
  font-family: var(--altfont);
  font-weight: 400;
  line-height: 1;
}

section.section-related .title em {
  display: block;
  font-family: var(--scriptfont);
  line-height: 1;
}

/* Related items */
section.section-related .related {
  display: flex;
  flex: 1;
  gap: var(--spacing);
  min-width: 0;
}

section.section-related .related-item {
  flex: 1;
  min-width: 0;
  opacity: 0;
}
section.section-related .related-item[data-animation="1"] {
  animation: var(--enterLeft);
}

section.section-related .related-item a {
  display: block;
  text-decoration: none;
}

section.section-related .related-item .item-medium {
  position: relative;
  aspect-ratio: var(--ratio-sq);
  background-color: var(--skeleton-color);
  overflow: hidden;
}

section.section-related .related-item .item-medium img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--default-trans);
}

section.section-related .related-item:hover .item-medium img {
  transform: translate(-50%, -50%) scale(var(--scale-up));
}

section.section-related .related-item .item-title {
  margin-top: calc(var(--spacing) * 0.5);
  text-transform: uppercase;
}

/* to 640px */
@media (max-width: 40em) {
  section.section-related .related-container {
    flex-direction: column;
    gap: var(--spacing);
  }

  section.section-related .title {
    width: auto;
    padding-left: var(--container);
    margin-right: auto;
  }

  section.section-related .related {
    flex: none;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-left: calc(var(--container) * 4);
    padding-bottom: var(--spacing);
  }

  section.section-related .related-item {
    flex: 0 0 68vw;
    min-width: 0;
  }
}

/* to 480px */
@media (max-width: 30em) {
  section.section-related .related {
    padding-left: calc(var(--container) * 3);
  }

  section.section-related .related-item {
    flex: 0 0 60vw;
  }

  section.section-related .related-item .item-medium {
    aspect-ratio: 214/247;
  }
}

/**************************************************
  MODULE mediazoom
*/
section.section-mediazoom {
  --enterMediaZoom: enterMediaZoom var(--enterMediaZoom-speed) ease-out forwards;
  --enterMediaZoom-speed: 1.2s;
  --enterMediaZoom-start-w: 0.20;
  --enterMediaZoom-stop-w: 0.70;
}

@keyframes enterMediaZoom {
  0% {
    scale: var(--enterMediaZoom-start-w);
  }
  100% {
    scale: var(--enterMediaZoom-stop-w);
  }
}

section.section-mediazoom {
  display: block;
  height: 100vh;
  height: 100svh;
  position: relative;
  background-color: var(--light-color);
  overflow: hidden;
}
section.section-mediazoom.is-fullwidth {
  padding: 0;
}

section.section-mediazoom + section.section {
  padding-top: var(--padding) !important;
}

section.section-mediazoom .container {
  height: 100%;
}
section.section-mediazoom.is-fullwidth .container {
  padding: 0;
}

section.section-mediazoom .backdrop-container {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  scale: var(--enterMediaZoom-start-w);
  transform-origin: center center;
}

section.section-mediazoom[section-index="1"] .backdrop-container,
section.section-mediazoom[section-index="2"] .backdrop-container {
  animation: var(--enterMediaZoom);
}

section.section-mediazoom:not([section-index="1"])[data-animation="1"] .backdrop-container,
section.section-mediazoom:not([section-index="2"])[data-animation="1"] .backdrop-container {
  animation: var(--enterMediaZoom);
}

/* Backdrop video */
section.section-mediazoom .backdrop-container a.mediazoom-link {
  width: 100%;
  height: 100%;
}

/* Backdrop video */
section.section-mediazoom a.mediazoom-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* pointer-events: none; */
  cursor: url('../images/play-stroked.png') 24 24, auto;
}

section.section-mediazoom video {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  filter: grayscale(1);
}

/* Backdrop img */
section.section-mediazoom .backdrop-container img {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: contain;
}
section.section-mediazoom.is-fullwidth .backdrop-container img {
  object-fit: cover;
}

/* Backdrop slider */
section.section-mediazoom .mediazoom-slider {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
}

section.section-mediazoom .mediazoom-slider .swiper,
section.section-mediazoom .mediazoom-slider .swiper-wrapper {
  height: 100%;
}

section.section-mediazoom .mediazoom-slider .single-mediazoom-item {
  position: relative;
  width: 100%;
  height: 100%;
}

section.section-mediazoom .mediazoom-slider .single-mediazoom-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  transition: var(--default-trans);
}

/* Title */
section.section-mediazoom.is-titled {
  --enterMediaZoomTitled: enterMediaZoomTitled var(--enterMediaZoomTitled-speed) ease forwards;
  --enterMediaZoomTitled-speed: calc(var(--enterMediaZoom-speed) * 2.2);
  --enterMediaZoom-start-w: 0;
  --enterMediaZoom-middle-w: 0.50;
}
section.section-mediazoom.is-titled[section-index="1"] .backdrop-container {
  animation: var(--enterMediaZoomTitled);
}
section.section-mediazoom.is-titled:not([section-index="1"])[data-animation="1"] .backdrop-container {
  animation: var(--enterMediaZoomTitled);
}
@keyframes enterMediaZoomTitled {
  0% {
    scale: var(--enterMediaZoom-start-w);
  }
  20% {
    scale: calc(1 * var(--enterMediaZoom-middle-w));
  }
  80% {
    scale: calc(1 * var(--enterMediaZoom-middle-w));
  }
  100% {
    scale: 1;
  }
}

section.section-mediazoom .title {
  --fontsize-factor: 1.80;
  width: calc(100% - var(--container) * 2);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  font-family: var(--titlefont);
  font-size: calc(var(--titlesize) * var(--fontsize-factor));
  text-transform: uppercase;
  line-height: 1;
  pointer-events: none;
}

section.section-mediazoom .title div[data-title] {
  --fontsize-factor: 1.80;
  font-family: var(--titlefont);
  font-size: calc(var(--titlesize) * var(--fontsize-factor));
  color: var(--body-color);
  text-transform: uppercase;
  line-height: 1;
  width: 100%;
  text-align: center;
  overflow-wrap: break-word;
  position: absolute;
  transition: var(--slow-trans), opacity 0.8s calc(var(--enterMediaZoomTitled-speed) * 0.60);
}

section.section-mediazoom .title div[data-title="1"] {
  top: -1em;
  left: 50%;
  transform: translateX(-50%);
}
section.section-mediazoom .title div[data-title="2"] {
  left: 50%;
  transform: translateX(-50%);
}

section.section-mediazoom:not([section-index="1"])[data-animation="1"] .backdrop-container {
  animation: var(--enterMediaZoom);
}

section.section-mediazoom[data-animation="1"] .title div[data-title] {
  --body-color: var(--white-color);
  width: 3.55ch;
  top: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
}
section.section-mediazoom[data-animation="1"] .title div[data-title="1"] {
  left: calc(50% - var(--enterMediaZoom-middle-w) * 100vw * 0.50 - 1ch);
}
section.section-mediazoom[data-animation="1"] .title div[data-title="2"] {
  left: calc(50% + var(--enterMediaZoom-middle-w) * 100vw * 0.50 + 1ch);
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-mediazoom.is-titled {
    height: 55vh;
    height: 55svh;
  }
} 

/* to 640px */
@media (max-width: 40em) {
  section.section-mediazoom.is-titled {
    --enterMediaZoomTitled-speed: calc(var(--enterMediaZoom-speed) * 1.5);
  }
  section.section-mediazoom .title div[data-title] {
    --fontsize-factor: 1.20;
  }

  section.section-mediazoom.is-titled {
    height: 35vh;
    height: 35svh;
  }
} 

/**************************************************
  MODULE hero
*/
section.section-hero {
  --body-color: var(--light-color);
  --bodyreverse-color: var(--black-color);
  --filter-to-bg: var(--filter-to-dark);
  --filter-to-body: var(--filter-to-light);
  display: grid;
  align-items: center;
  min-height: 100vh;
  min-height: 100svh;
  position: relative;
  background-color: var(--light-color);
  padding-top: calc(var(--padding) * 1.50) !important;
}

section.section-hero + section.section {
  padding-top: var(--padding) !important;
}

/* Backdrop */
section.section-hero .backdrop-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--skeleton-color);
}

section.section-hero[section-index="1"] .backdrop-container,
section.section-hero[section-index="2"] .backdrop-container {
  opacity: 0;
  animation: var(--enterHero);
}

section.section-hero:not([section-index="1"]) .backdrop-container,
section.section-hero:not([section-index="2"]) .backdrop-container {
  opacity: 0;
}

section.section-hero:not([section-index="1"]) .backdrop-container[data-animation="1"] {
  animation: var(--enterHero);
}

/* Backdrop img */
section.section-hero .backdrop-container img {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
}

/* Backdrop video */
section.section-hero a.hero-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* pointer-events: none; */
  cursor: url('../images/play-stroked.png') 24 24, auto;
}

section.section-hero video {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  filter: grayscale(1);
}

section.section-hero.no-grayscale video {
  filter: unset;
}

/* Backdrop slider */
section.section-hero .hero-slider {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
}

section.section-hero .hero-slider .swiper,
section.section-hero .hero-slider .swiper-wrapper {
  height: 100%;
}

section.section-hero .hero-slider .single-hero-item {
  position: relative;
  width: 100%;
  height: 100%;
}

section.section-hero .hero-slider .single-hero-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}

/* Overlay */
section.section-hero .overlay {
  position: absolute;
  width: 100%;
  height: 70%;
  top: 0;
  left: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
}

/* Content */
section.section-hero .hero-text {
  opacity: 0;
  animation: var(--enterUp);
  animation-delay: var(--enterHero-speed);
}

section.section-hero .section-heading > div {
  width: 100%;
  text-align: center;
}

section.section-hero .section-heading > div + div {
  margin-top: var(--spacing);
}

section.section-hero .container .title {
  font-size: var(--titlesize);
  color: var(--light-color);
}

section.section-hero .container p,
section.section-hero .container span {
  color: var(--light-color);
}

section.section-hero .container .text {
  font-size: var(--bodysize);
  font-family: var(--bodyfont);
  color: var(--light-color);
  position: relative;
}

section.section-hero .container .text + a {
  display: flex;
  justify-content: center;
  margin-top: var(--spacing);
}

section.section-hero .container #breadcrumbs {
  text-align: center;
}

section.section-hero .container #breadcrumbs a,
section.section-hero .container #breadcrumbs .breadcrumb_last {
  color: var(--light-color);
}

section.section-hero .container #breadcrumbs a::before {
  background-color: var(--light-color);
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-hero .hero-text {
    padding-top: var(--padding);
  }
}

/**************************************************
  MODULE decorationtext
*/
/* Desktop layout */
section.section-decorationtext .container[data-device="desktop"] {
  height: 100vh;
  height: 100svh;
}

section.section-decorationtext [data-device="desktop"] .decorationtext-container {
  --item1-w: calc(33% - (var(--spacing) * 0.50));
  --item2-w: calc(33% - (var(--spacing) * 1));
  --item3-w: calc(33% - (var(--spacing) * 0.50));
  --item4-w: calc(33% - (var(--spacing) * 0.50));
  --item5-w: calc(33% - (var(--spacing) * 1));
  --item6-w: calc(33% - (var(--spacing) * 0.50));
  --items-gap: var(--spacing);
  --row1-h: calc(42% - calc(var(--items-gap) * 0.50));
  --row2-h: calc(58% - calc(var(--items-gap) * 0.50));
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  gap: var(--items-gap);
  height: calc(100% - var(--items-gap));
}

section.section-decorationtext [data-device="desktop"] .decorationtext-container > div[data-item="1"] {
  width: var(--item1-w);
  height: var(--row1-h);
  align-self: end;
  text-align: right;
}

section.section-decorationtext [data-device="desktop"] .decorationtext-container > div[data-item="2"] {
  width: var(--item2-w);
  height: var(--row1-h);
  overflow: hidden;
}

section.section-decorationtext [data-device="desktop"] .decorationtext-container > div[data-item="3"] {
  width: var(--item3-w);
  height: var(--row1-h);
  display: flex;
  flex-direction: column;
  row-gap: calc(var(--spacing) * 0.50);
}

section.section-decorationtext [data-device="desktop"] .decorationtext-container > div[data-item="3"] > div {
  width: 100%;
}

section.section-decorationtext [data-device="desktop"] .decorationtext-container > div[data-item="4"] {
  width: var(--item4-w);
  height: var(--row2-h);
  overflow: hidden;
}

section.section-decorationtext [data-device="desktop"] .decorationtext-container > div[data-item="5"] {
  width: var(--item5-w);
  height: var(--row2-h);
  display: flex;
  flex-direction: column;
  gap: calc(var(--spacing) * 0.50);
}

section.section-decorationtext [data-device="desktop"] .decorationtext-container > div[data-item="5"] [data-type="title"] {
  margin-bottom: calc(var(--spacing) * 0.50);
}

section.section-decorationtext [data-device="desktop"] .decorationtext-container > div[data-item="6"] {
  width: var(--item6-w);
  height: var(--row2-h);
  overflow: hidden;
}

/* Tablet/mobile layout */
section.section-decorationtext [data-device="tablet/mobile"] .decorationtext-container > * + * {
  margin-top: var(--spacing);
}

section.section-decorationtext [data-device="tablet/mobile"] .decorationtext-container [data-type="img"] {
  margin-bottom: calc(var(--spacing) * -3);
  position: relative;
  z-index: -1;
}

section.section-decorationtext [data-device="tablet/mobile"] .decorationtext-container > :not([data-type="img"]) {
  margin-left: calc(var(--container) * 1);
}

section.section-decorationtext [data-device="tablet/mobile"] [data-type="title"] {
  white-space: unset;
}

/* Common elements */
section.section-decorationtext [data-type="title"] {
  font-family: var(--titlefont);
  font-size: calc(var(--titlesize) * 2);
  line-height: 1em;
  text-transform: uppercase;
  white-space: nowrap;
}

section.section-decorationtext [data-type="text"] {
  font-size: var(--bodysize);
}

section.section-decorationtext [data-type="img"] {
  width: 100%;
  height: 100%;
}

section.section-decorationtext [data-type="img"] img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
section.section-decorationtext [data-animation="0"] [data-type="img"] img {
  clip-path: inset(0 100% 0 0);
}
section.section-decorationtext [data-animation="1"] [data-type="img"] img {
  animation: var(--revealRight);
}

/* to 1536px */
@media (max-width: 96em) {
  section.section-decorationtext {
    --titlesize: 64px;
  }
}

/* to 1279px */
@media (max-width: 79.99em) {
  section.section-decorationtext {
    --titlesize: 60px;
  }
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-decorationtext {
    --titlesize: 48px;
  }
} 

/* to 480px */
@media (max-width: 30em) {
  section.section-decorationtext {
    --titlesize: 36px;
  }
}

/* to 384px */
@media (max-width: 24em) {
  section.section-decorationtext {
    --titlesize: 32px;
  }
}

/**************************************************
  MODULE linkvscroll
*/
section.section-linkvscroll {
  --body-color: var(--white-color);
  --title-w: 35vw;
  --media-w: 28vw;
  --media-h: calc(var(--media-w) * var(--ratio-vr-h) / var(--ratio-vr-w));
  --content-w: 30vw;
  --item-offset: 0.30;
  position: relative;
  height: 100vh;
  height: 100svh;
}

/* Title */
section.section-linkvscroll .linkvscroll-title {
  width: var(--title-w);
  position: absolute;
  top: 50%;
  left: calc((50% - (var(--media-w) * var(--item-offset)) - var(--title-w)));
  transform: translateY(-50%);
  z-index: 50;
  text-align: right;
  pointer-events: none;
  font-family: var(--titlefont);
  font-size: calc(var(--titlesize) * 1.35);
  line-height: 1;
  color: var(--body-color);
  text-transform: uppercase;  
}

/* Slider */
section.section-linkvscroll .links-slider {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

section.section-linkvscroll .links-slides {
  position: relative;
  width: 100%;
  height: 100%;
}

section.section-linkvscroll .links-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Medium */
section.section-linkvscroll .carousel-medium {
  width: var(--media-w);
  aspect-ratio: var(--ratio-vr);
  overflow: hidden;
  transform-origin: center center;
}

section.section-linkvscroll .carousel-medium .carousel-img,
section.section-linkvscroll .carousel-medium .carousel-img a {
  display: block;
  width: 100%;
  height: 100%;
}

section.section-linkvscroll .carousel-medium .carousel-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Content */
section.section-linkvscroll .carousel-content {
  display: grid;
  gap: calc(var(--spacing) * 0.40);
  width: var(--content-w);
  position: absolute;
  left: calc((50% + (var(--media-w) * var(--item-offset))));
  top: 50%;
  transform: translateY(-50%);
  color: var(--body-color);
}

section.section-linkvscroll .carousel-title h2 {
  font-size: calc(var(--titlesize) * 1.10);
  text-transform: uppercase;
}


/* to 1024px */
@media (max-width: 64em) {
  section.section-linkvscroll {
    --title-w: 100%;
    --media-w: 65vw;
    --content-w: 100%;
    --shift-v: calc(var(--header-height) + var(--spacing) * 1.50);
  }

  section.section-linkvscroll .links-slide {
    align-items: flex-start;
    padding-top: var(--shift-v);
  }

  section.section-linkvscroll .linkvscroll-title {
    margin: 0 auto;
    font-size: calc(var(--titlesize) * 1.50);
    padding: 0 var(--container);
    top: var(--shift-v);
    left: 0;
    transform: translateY(-0.50em);
    text-align: center;
  }

  section.section-linkvscroll .carousel-content {
    justify-items: center;
    gap: calc(var(--spacing) * 1);
    text-align: center;
    padding: 0 var(--container);
    left: 0;
    top: calc(var(--media-h) + var(--shift-v));
    transform: none;
  }

  section.section-linkvscroll .carousel-title h2 {
    margin-top: -1em;
  }
}

/* to 849px */
@media (max-width: 53.0625em) {
  section.section-linkvscroll {
    --media-w: 58vw;
  }
}

/* to 640px */
@media (max-width: 40em) {
  section.section-linkvscroll {
    --media-w: 60vw;
  }
}

/* to 480px */
@media (max-width: 30em) {
  section.section-linkvscroll {
    --media-w: 66vw;
  }
}

/* to 384px */
@media (max-width: 24em) {
  section.section-linkvscroll {
    --media-w: 74vw;
  }
}

/**************************************************
  MODULE logos
*/
section.section-logos .container + .container {
  margin-top: var(--spacing);
}

section.section-logos .section-heading {
  align-items: center;
}

section.section-logos .logos-container {
  display: flex;
  flex-direction: column;
  gap: var(--spacing);
}

section.section-logos .logos-slider {
  overflow: hidden;
  width: 100%;
}

section.section-logos .logos-slider + .logos-slider {
  border-top: 1px solid var(--grey-color);
  padding-top: var(--spacing);
}

section.section-logos .logos-track {
  display: flex;
  gap: var(--spacing);
  width: fit-content;
  animation: logosMarquee 30s linear infinite;
}

section.section-logos .logos-slider.is-reversed .logos-track {
  animation-direction: reverse;
}

section.section-logos .single-item {
  --logo-ratio: 201/144;
  flex: 0 0 auto;
  width: 25vw;
  max-width: 220px;
  position: relative;
  aspect-ratio: var(--logo-ratio);
}

section.section-logos .single-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Layout: griglia */
section.section-logos.is-grid .logos-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: calc(var(--spacing) * 0.75);
}

section.section-logos.is-grid .single-item {
  width: 100%;
  max-width: none;
  background-color: var(--white-color);
}

@keyframes logosMarquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-logos .single-item {
    width: 33vw;
  }

  section.section-logos.is-grid .logos-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  section.section-logos.is-grid .single-item {
    width: 100%;
  }
}

/* to 640px */
@media (max-width: 40em) {
  section.section-logos .single-item {
    width: 45vw;
  }

  section.section-logos.is-grid .logos-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/**************************************************
  MODULE list
*/
section.section-list {
  --title-w: 55%;
  --text-w: 40%;
  --img-unit: 18vw;
}

section.section-list h1,
section.section-list h2 {
  font-family: var(--bodyfont);
  font-size: var(--smallsize);
  text-transform: uppercase;
  padding-bottom: calc(var(--spacing) * 0.50);
  position: relative;
}

section.section-list h1::after,
section.section-list h2::after {
  content: '';
  width: 0;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: var(--body-color);
  z-index: -1;
  transition: var(--slow-trans);
}
section.section-list div[data-animation="1"] > h1::after,
section.section-list div[data-animation="1"] > h2::after {
  width: 100%;
}

section.section-list .list-container {
  display: grid;
  gap: 0;
}

section.section-list .list-container .single-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  position: relative;
  padding: calc(var(--spacing) * 0.75) 0;
  opacity: 1;
  transition: var(--default-trans);
  --img-spacing: 20%;
}
section.section-list .list-container:hover .single-list:not(:hover) {
  opacity: var(--opacity-disabled) !important;
}

section.section-list .list-container .single-list:hover {
  z-index: 1;
}

section.section-list .list-container .single-list::after {
  content: '';
  width: 0;
  height: 1px;
  position: absolute;
  bottom: 0;
  background-color: var(--body-color);
  opacity: 1;
  z-index: -1;
  transition: var(--slow-trans);
}
section.section-list .list-container .single-list[data-animation="1"]::after {
  width: 100%;
}

section.section-list .list-container .list-title {
  font-family: var(--titlefont);
  font-size: calc(var(--bodysize) * 1.40);
  line-height: calc(var(--bodysize) * 1.40);
  color: var(--body-color);
  flex: 1 1 var(--title-w);
  min-width: 0;
}

section.section-list .list-container .list-text {
  flex: 0 0 var(--text-w);
  min-width: var(--text-w);
  font-size: calc(var(--bodysize) * 0.90);
  color: var(--body-color);
  text-align: right;
}
section.section-list .list-container .list-text::before {
  content: '/ ';
}

section.section-list .list-container .list-img {
  width: var(--img-unit);
  height: var(--img-unit);
  border-radius: var(--img-radius);
  position: absolute;
  top: 50%;
  right: var(--img-spacing);
  transform: translateY(-50%);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transition: var(--default-trans);
}

section.section-list .list-container .list-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

section.section-list .list-container .single-list.active .list-img {
  opacity: 1;
  visibility: visible;
}

section.section-list .list-container .single-list.active:nth-of-type(1n) .list-img {
  rotate: 3.29deg;
}
section.section-list .list-container .single-list.active:nth-of-type(2n) .list-img {
  rotate: 2.49deg;
}
section.section-list .list-container .single-list.active:nth-of-type(3n) .list-img {
  rotate: -3.95deg;
}
section.section-list .list-container .single-list.active:nth-of-type(4n) .list-img {
  rotate: 11.98deg;
}
section.section-list .list-container .single-list.active:nth-of-type(5n) .list-img {
  rotate: -4.41deg;
}

section.section-list .cta-container {
  margin-top: var(--spacing);
}

/* to 1024px */
@media (max-width: 64em) {
  section.section-list .list-container .list-title {
    font-size: calc(var(--bodysize) * 1.20);
    line-height: calc(var(--bodysize) * 1.20);
  }
}

/* to 849px */
@media (max-width: 53.0625em) {
  section.section-list {
    --title-w: 100%;
    --text-w: 100%;
    --img-unit: 20vw;
  }

  section.section-list .list-container .list-text {
    text-align: left;
    margin-top: calc(var(--spacing) * 0.50);
  }
}

/* to 640px */
@media (max-width: 40em) {
  section.section-list .list-container .single-list {
    --img-spacing: 5%;
  }
}

/**************************************************
  TPL-HERO
*/
body.page-template-tpl-hero section.section-hero {
  --passpartout-h: 0px;
  --passpartout-v: 0px;
  overflow: hidden;
}

body.page-template-tpl-hero section.section-hero .backdrop-container {
  position: absolute;
  top: calc(var(--passpartout-v) * 0.50);
  left: calc(var(--passpartout-h) * 0.50);
  width: calc(100% - var(--passpartout-h));
  height: calc(100% - var(--passpartout-v));
  background-color: var(--skeleton-color);
}

/* to 640px */
@media (max-width: 40em) {
  body.page-template-tpl-hero section.section-hero {
    --passpartout-h: 0px;
    --passpartout-v: 0px;
  }
}

/**************************************************
  BLOG Featured post
  - enable featured post in functions.php
*/
section.section-featuredpost {
  padding-bottom: calc(var(--spacing) * 1.50);
}

section.section-featuredpost .featured-img {
  width: 57%;
  aspect-ratio: var(--ratio-hr);
  background-color: var(--skeleton-color);
  position: relative;
  overflow: hidden;
}

section.section-featuredpost .featured-img a {
  display: block;
  width: 100%;
  height: 100%;
}

section.section-featuredpost .featured-img img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: var(--img-radius);
  transition: var(--default-trans);
}

section.section-featuredpost .featured-img a:hover img {
  scale: var(--scale-up);
}

section.section-featuredpost .featured-meta {
  width: 40%;
  margin: calc(var(--padding) * 0.50) 0;
}

section.section-featuredpost .featured-meta > div {
  width: 100%;
}

section.section-featuredpost .featured-meta > div + div {
  margin-top: var(--spacing);
}

section.section-featuredpost .featured-meta .title {
  font-weight: 600;
  text-transform: uppercase;
  font-style: italic;
}

/* to 849px */
@media (max-width: 53.0625em) {
  section.section-featuredpost {
    padding-bottom: var(--padding);
  }
  
  section.section-featuredpost .featured-img {
    width: 100%;
    aspect-ratio: var(--ratio-sq);
  }

  section.section-featuredpost .featured-meta {
    width: 100%;
    margin: 0;
    padding: calc(var(--padding) * 0.5) 0 0;
  }
}

/**************************************************
  BLOG & CPT ARCHIVES (custom CSS class in functions.php)
  Blog CSS Class: body.blog-listing
  CPT CSS Class: body.cpt-listing
*/
body.blog-listing .archive-nav .post-taxlist,
body.cpt-listing .archive-nav .post-taxlist {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: var(--spacing);
  row-gap: calc(var(--spacing) * 0.50);
  margin-bottom: calc(var(--spacing) * 1.50);
}

body.blog-listing .archive-nav .post-taxlist button .cta-label,
body.cpt-listing .archive-nav .post-taxlist button .cta-label {
  font-family: var(--altfont);
  font-size: var(--smallsize);
}

body.blog-listing .archive-nav .post-taxlist button .cta-label::before,
body.cpt-listing .archive-nav .post-taxlist button .cta-label::before {
  display: none;
}

body.blog-listing .archive-nav .post-taxlist button,
body.cpt-listing .archive-nav .post-taxlist button {
  transition: var(--default-trans);
}

body.blog-listing .archive-nav .post-taxlist button.is-current,
body.cpt-listing .archive-nav .post-taxlist button.is-current,
body.blog-listing .archive-nav .post-taxlist button:not(.is-current):hover,
body.cpt-listing .archive-nav .post-taxlist button:not(.is-current):hover {
  -webkit-text-stroke: 0.4px var(--body-color);
}
body.blog-listing .archive-nav .post-taxlist button:not(.is-current),
body.cpt-listing .archive-nav .post-taxlist button:not(.is-current) {
  -webkit-text-stroke: 0px transparent;
}

/**************************************************
  BLOG loopitem-post
*/
.posts-grid {
  --ratio-vr: 310/431;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(var(--spacing) * 2) calc(var(--spacing) * 1.5);
  overflow-anchor: none;
}

.posts-grid .single-item a {
  display: block;
}

.posts-grid .single-item .item-medium {
  aspect-ratio: var(--ratio-vr);
  overflow: hidden;
  background-color: var(--skeleton-color);
  margin-bottom: var(--spacing);
}

.posts-grid .single-item .item-medium a {
  height: 100%;
  overflow: hidden;
  cursor: pointer;
}

.posts-grid .single-item .item-img {
  width: 100%;
  height: 100%;
}

.posts-grid .single-item .item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: var(--default-trans);
}

.posts-grid .single-item .item-medium a:hover .item-img img {
  scale: var(--scale-up);
}

.posts-grid .single-item .item-tax {
  font-family: var(--altfont);
  font-size: var(--xsmallsize);
  text-transform: uppercase;
  margin-bottom: calc(var(--spacing) * 0.40);
}

.posts-grid .single-item .item-tax a {
  display: inline-block;
}

.posts-grid .single-item .item-title a h3 {
  text-transform: uppercase;
  margin-bottom: calc(var(--spacing) * 0.5);
  min-height: 2lh;
}

/* to 849px */
@media (max-width: 53.0625em) {
  .posts-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* to 480px */
@media (max-width: 30em) {
  .posts-grid {
    grid-template-columns: 1fr;
  }
}

/**************************************************
  BLOG & CPT .section-nothingfound
*/
section.section-nothingfound {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: column;
  justify-content: center;
  min-height: 50vh;
  animation: var(--enterUp) !important;
}

section.section-nothingfound div {
  width: 100%;
  text-align: center;
}

section.section-nothingfound div + div {
  margin-top: var(--spacing);
}

/**************************************************
  PAGE 404
*/
section.section-hero[data-layout="error"] {
  align-items: center;
}

section.section-hero[data-layout="error"],
section.section-hero[data-layout="error"] .backdrop-container,
section.section-hero[data-layout="error"] .hero-text {
  animation: none;
  opacity: 1;
}

section.section-hero[data-layout="error"] #breadcrumbs {
  text-align: center;
}

section.section-hero[data-layout="error"] .section-heading.flex-center > * {
  width: 100%;
  text-align: center;
}

section.section-hero[data-layout="error"] .section-heading > div + div {
  margin-top: var(--spacing);
}

section.section-hero[data-layout="error"] .section-heading .text + a {
  margin-top: calc(var(--spacing) * 1.30);
  display: flex;
  justify-content: center;
}

section.section-hero[data-layout="error"] button.cta-muted.cta-button {
  border-color: var(--light-color);
}
section.section-hero[data-layout="error"] button.cta-muted.cta-button:hover {
  background-color: var(--light-color);
}
section.section-hero[data-layout="error"] button.cta-muted.cta-button .cta-label {
  color: var(--light-color);
}
section.section-hero[data-layout="error"] button.cta-muted.cta-button:hover .cta-label {
  color: var(--dark-color);
}

/**************************************************
  FOOTER
*/
footer {
  --logo-w: 25%;
  --tagline-w: 30%;
  --inner-spacing: calc(var(--spacing) * 3.50);
  --info-col-w: 22%;
  padding: calc(var(--spacing) * 1.75) var(--container) calc(var(--spacing) * 1);
  background-color: var(--highlight-color);
  color: var(--light-color);
  position: relative;
  overflow: hidden;
}

footer > div + div {
  margin-top: var(--inner-spacing);  
}

.footer-identity {
  align-items: center;
  column-gap: calc(var(--container) * 0.50);
}

.footer-identity .footer-logo {
  width: var(--logo-w);
}

.footer-identity .footer-logo a,
.footer-identity .footer-logo img {
  display: block;
  width: 100%;
  height: auto;
  filter: var(--filter-to-light);
}

.footer-tagline {
  width: var(--tagline-w);
  text-align: right;
}

.footer-tagline p {
  font-family: var(--titlefont);
  font-size: calc(var(--titlesize) * 0.50);
  line-height: var(--titlelineheight);
}

.footer-info {
  --line-height: 130%;
  align-items: start;
  column-gap: calc(var(--container) * 0.50);
  position: relative;
}

.footer-info .side-info[data-side="1"] {
  column-gap: calc(var(--container) * 0.50);
  row-gap: var(--spacing);
}

.footer-info .info-col {
  width: var(--info-col-w);
  display: flex;
  flex-direction: column;
  gap: max(calc(var(--spacing) * 1), 20px);
}

.footer-info .info-col[data-col="form"] {
  width: calc(var(--info-col-w) * 1.50);
}

.footer-info .info-label {
  font-size: var(--smallsize);
  text-transform: uppercase;
  font-weight: var(--b-weight);
}

.footer-info .info-content {
  display: flex;
  flex-direction: column;
  font-size: var(--smallsize);
  line-height: var(--line-height);
}

.footer-info .brand-text,
.footer-info .brand-text p,
.footer-info .address-text,
.footer-info .address-text p {
  font-size: var(--smallsize);
  line-height: var(--line-height);
}

.footer-info .address-text {
  margin-top: max(calc(var(--spacing) * 0.30), 10px);
}

.footer-info .info-col[data-col="links"] [data-link="link"] + [data-link="social"] {
  margin-top: max(calc(var(--spacing) * 0.30), 10px);
}

.footer-legal {
  padding: calc(var(--spacing) * 0.85) calc(var(--spacing) * 0.60);
  gap: calc(var(--spacing) * 1);
  align-items: center;
  font-size: var(--xsmallsize);
  text-transform: uppercase;
}

.footer-legal[data-animation="1"] {
  /* Setup animazione bordo */
  --border-color: var(--light-color);
  --border-width: 1px;
  --duration: 2s;

  background-image:
    /* top, da top-left */
    linear-gradient(var(--border-color), var(--border-color)),
    /* right, da bottom-right */
    linear-gradient(var(--border-color), var(--border-color)),
    /* bottom, da bottom-right */
    linear-gradient(var(--border-color), var(--border-color)),
    /* left, da top-left */
    linear-gradient(var(--border-color), var(--border-color));

  /* Animation direction */
  background-position:
    left 0 top 0,
    right 0 bottom 0,
    right 0 bottom 0,
    left 0 top 0;

  background-repeat: no-repeat;

  /* Set init dimension to 0 */
  background-size:
    0% var(--border-width),
    var(--border-width) 0%,
    0% var(--border-width),
    var(--border-width) 0%;

  /* Play animation */
  animation: drawBorder var(--duration) forwards ease-in-out;
}

@keyframes drawBorder {
  100% {
    background-size:
      100% var(--border-width),
      var(--border-width) 100%,
      100% var(--border-width),
      var(--border-width) 100%;
  }
}

.footer-credits {
  margin-left: auto;
  gap: calc(var(--spacing) * 0.85);
}

.footer-credits a {
  display: flex;
  align-items: baseline;
  gap: max(calc(var(--spacing) * 0.25), 10px);
}

.footer-credits img {
  height: 16px;
  width: auto;
  filter: var(--filter-to-light);
}

/* to 1536px */
@media (max-width: 96em) {
  .footer-legal {
    gap: calc(var(--spacing) * 0.80);
  }

  .footer-credits img {
    height: 13px;
  }
}

/* to 1456px */
@media (max-width: 91em) {
  .footer-legal {
    justify-content: center;
  }

  .footer-credits {
    justify-content: center;
    margin: 0 auto;
  }
}

/* to 1280px */
@media (max-width: 80em) {
  footer {
    --info-col-w: 28%;
  }
}

/* to 1024px */
@media (max-width: 64em) {
  footer {
    --logo-w: 30%;
    --tagline-w: 40%;
    --info-col-w: 30%;
  }

  .footer-info .info-col[data-col="links"] {
    width: unset;
    padding-right: var(--spacing);
  }
}

/* to 849px */
@media (max-width: 53.0625em) {
  footer {
    --info-col-w: 45%;
  }

  .footer-info .side-info[data-side="1"] {
    row-gap: calc(var(--inner-spacing) * 0.60);
  }

  .footer-info .info-col[data-col="links"] {
    width: var(--info-col-w);
    padding-right: unset;
  }

  .footer-info .info-col[data-col="form"] {
    width: var(--info-col-w);
  }
}

/* to 640px */
@media (max-width: 40em) {
  footer {
    --logo-w: 55%;
    --tagline-w: 50%;
  }

  .footer-identity {
    row-gap: var(--spacing);
  }

  .footer-tagline {
    margin-left: auto;
  }

  .footer-info .info-col[data-col="brand"],
  .footer-info .info-col[data-col="address"],
  .footer-info .info-col[data-col="links"],
  .footer-info .info-col[data-col="form"] {
    width: 100%;    
  }
}

/* to 480px */
@media (max-width: 30em) {
  footer {
    --logo-w: 70%;
    --tagline-w: 70%;
  }
}