:root {
    --mobileDisclaimerGap: calc(1000vh / 936); /* 10px on a 936px height screen */
}

.site-disclaimer {
    display:none;
    padding: calc(1.5 * var(--gap));
    background:white;
    position: fixed;
    inset: 0;
    z-index: 1000;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    line-height: 1.38888;
    color: var(--cream);
}
.site-disclaimer.--visible {
    display:flex !important;
}
.site-disclaimer > div:not(.lenoble-loader) {
    flex: 1;
    text-align: center;
    display: flex;
    flex-direction: column;
}
.disclaimer-logo {
    display: block;
    max-width: 200px;
    margin: auto;
}
.disclaimer-text {
    font-size: 12px;
    margin-bottom: calc(var(--mobileDisclaimerGap) * 5);
    padding-inline: calc(var(--gap) * 2);
}
.pll-switcher-select:focus {
    color: var(--cream);
    border-color: var(--cream);
}
.disclaimer-checkbox-text {
    display: block;
    margin-block: calc(var(--mobileDisclaimerGap) * 4);
    font-size: 10px;
    padding-inline: calc(var(--gap) * 2);
}
.disclaimer-checkbox-text input {
    appearance: none !important; 
    -webkit-appearance: none !important;
}
.disclaimer-checkbox-text input::after {
    content: '✓';
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 1px solid var(--cream);
    pointer-events: none;
    color: transparent;
    text-align: center;
}
.disclaimer-checkbox-text input:checked::after {
    background: var(--cream);
    color: var(--brown);
}
.disclaimer-small-mention {
    font-size: 10px;
    margin-top: calc(var(--mobileDisclaimerGap) * 5);
    margin-bottom: calc(var(--mobileDisclaimerGap) * 1);
}
.pll-switcher-select {
    font-size: 12px;
    background: transparent;
    border: none;
    color: var(--cream);
    border-bottom: 1px solid var(--cream);
    text-transform: uppercase;
    min-width: 220px;
    padding-block: calc(var(--gap) * 2) ;
    text-align: center;
}
.site-disclaimer .disclaimer-button {
    font-size: 12px;
    background: var(--cream) !important;
    color: var(--brown);
    padding: 16px 24px;
    min-width: 220px;
    text-transform: uppercase;
    border: none;
    transition: all ease-out 0.15s;
}
.site-disclaimer .disclaimer-button[disabled] {
    background: var(--lightCream) !important;
    color: var(--brown);
    cursor: not-allowed;
}
.site-disclaimer .disclaimer-button:not([disabled]):hover {
    cursor: pointer;
    background: var(--lightCream) !important;
}
.disclaimer-footer {
    font-size: 10px;
    background: var(--darkBrown);
    padding-block: calc(2 * var(--gap));
    margin-top: auto;
    text-transform: uppercase;
}

@media screen  and (min-width: 981px) and (min-height: 982px) { 
    .site-disclaimer {
        padding: calc(4 * var(--gap));
    }
    .disclaimer-logo {
        max-width: none;
        margin: calc(var(--gap) * 8) auto;
    }
    .disclaimer-text {
        font-size: 12px;
        margin-bottom: calc(var(--gap) * 9);
        padding-inline: 0;
    }
    .disclaimer-checkbox-text {
        margin-block: calc(var(--gap) * 4);
        padding-inline: 0;
    }
    .pll-switcher-select {
        font-size: 18px;
    }
    .disclaimer-footer {
        font-size: 18px;
    }
    .disclaimer-small-mention {
        margin-top: calc(var(--gap) * 12);
        margin-bottom: 0;
    }
}

/*
LOADER
*/


.lenoble-loader {
    display: none;
    position: absolute;
    inset: 0;
    background: var(--lightCream);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 10;
    --inner-duration: 2s;
    --outer-duration: 1.5s;
    --text-duration: 1s;
    --text-delay: 0.5s;
    --dots-duration: 1.5s;
    --pause-before-reverse: 2s;
    animation: slideUp 0.3s ease-out forwards calc(calc( 1.5s + var(--inner-duration)) + var(--pause-before-reverse));
    overflow: hidden;
}
.lenoble-loader.--visible {
    display: flex;
}
.loader-logo {
    font-size: 20vw;
	min-width: 150px;
    animation: slideDown 0.3s ease-out forwards calc(calc( 1.5s + var(--inner-duration)) + var(--pause-before-reverse));
  }

  .loader-logo .--inner,
  .loader-logo .--outer {
    opacity: 0;
    stroke-dasharray: 3500;
    stroke-dashoffset: 3500;
    animation: draw ease-out forwards, drawReverse ease-out forwards;
  }
  .loader-logo .--inner {
    animation-duration: var(--inner-duration), var(--inner-duration);
    animation-delay: 0s,
      calc(var(--inner-duration) + var(--pause-before-reverse));
    transform: rotateY(-180deg) rotateZ(-90deg);
    transform-origin: center;
  }
  .loader-logo .--outer {
    animation-duration: var(--outer-duration), var(--outer-duration);
    animation-delay: 0s,
      calc(var(--inner-duration) + var(--pause-before-reverse));
    transform: rotateZ(-90deg);
    transform-origin: center;
  }

  .loader-logo .text {
    opacity: 0;
    transform: scale(0.8);
    transform-origin: center;
    animation: reveal var(--text-duration) ease-out forwards
        var(--text-delay),
      revealReverse var(--text-duration) ease-out forwards
        calc(
          var(--inner-duration) + var(--text-delay) +
            var(--pause-before-reverse)
        );
  }

  .loader-logo .circle {
    fill: none;
    stroke: #755653;
    stroke-miterlimit: 10;
    stroke-width: 8px;
  }
  .loader-logo .text,
  .loader-logo .dots {
    fill: #755653;
  }
  .loader-logo .dots {
    opacity: 0;
    transform: rotate(30deg);
    transform-origin: center;
    animation: turn var(--dots-duration) ease-out forwards,
      turnReverse var(--dots-duration) ease-out forwards
        calc(var(--inner-duration) + var(--pause-before-reverse));
  }

  @keyframes draw {
    to {
      opacity: 1;
      stroke-dashoffset: 0;
    }
  }

  @keyframes drawReverse {
    from {
      opacity: 1;
      stroke-dashoffset: 0;
    }
    to {
      opacity: 0;
      stroke-dashoffset: 3500;
    }
  }

  @keyframes reveal {
    to {
      opacity: 1;
      transform: scale(1);
    }
  }

  @keyframes revealReverse {
    from {
      opacity: 1;
      transform: scale(1);
    }
    to {
      opacity: 0;
      transform: scale(0.8);
    }
  }

  @keyframes turn {
    to {
      opacity: 1;
      transform: rotate(0);
    }
  }

  @keyframes turnReverse {
    from {
      opacity: 1;
      transform: rotate(0);
    }
    to {
      opacity: 0;
      transform: rotate(30deg);
    }
  }
  @keyframes slideUp {
    to {
      transform: translate3d(0,-100vh,0);
      opacity: 0;
    }
  }
  @keyframes slideDown {
    to {
      transform: translate3d(0,100vh,0)
    }
  }