/* The landscape belongs to the whole page. Content follows native document scroll. */
body {
  background: #204864;
  isolation: isolate;
}
.site-journey {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  background: #254965 url("/images/scroll-poster.webp") center/cover;
}
.site-journey video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 43%;
}
.journey-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, #092b43ab, #0a2d4445 60%, #0b2b4140),
    linear-gradient(0deg, #0b2b4140, transparent 50%, #0b2b4130);
}
main,
footer {
  position: relative;
}
.hero-scroll {
  height: auto !important;
  background: transparent;
}
.hero-scroll .hero {
  position: relative;
  top: auto;
  height: 100svh;
  min-height: 700px;
  background: transparent;
  overflow: hidden;
}
.hero .hero-shade {
  background: linear-gradient(90deg, #10324980, transparent 80%);
  z-index: -1;
}
.hero .hero-content {
  max-width: 59%;
}
.hero .film-frame {
  transform: none;
}
.hero .film-card {
  height: min(61svh, 610px);
  right: 7vw;
}
.header-brands {
  display: flex;
  gap: 24px;
  align-items: center;
}
.header-resort-logo {
  width: 70px;
  height: auto;
  background: #fff;
  padding: 5px;
  object-fit: contain;
  border-radius: 3px;
}
.site-header .brand {
  font-size: 1.05rem;
}
.hero .site-header nav {
  gap: 25px;
  font-size: 0.8rem;
}
.hero .nav-actions {
  gap: 20px;
}
.intro-toggle {
  position: absolute;
  top: 12px;
  right: 12px;
  border: 1px solid #ffffff90;
  border-radius: 50%;
  background: #16394bd9;
  color: white;
  width: 36px;
  height: 36px;
  font-size: 0.85rem;
  display: grid;
  place-items: center;
}
.hero-bottom {
  justify-content: space-between;
}
.hero-bottom > .scroll-link {
  margin-right: 160px;
}
.hero-bottom .scroll-guide {
  text-align: left;
}
.sequence-track span {
  transform: scaleX(var(--journey-progress, 0));
}
.journey-toggle {
  position: fixed;
  bottom: 22px;
  left: 22px;
  z-index: 5;
  background: #16394bec;
  box-shadow: 0 5px 22px #0c263b33;
  color: white;
  min-height: 42px;
}
.conditions {
  margin: 0 4vw 5vw;
  border: 1px solid #ffffffbb;
  border-radius: 10px;
  background: #fffffff2;
  padding: 28px 3vw;
  box-shadow: 0 15px 50px #09243b14;
  backdrop-filter: blur(8px);
}
main > .section {
  margin: 0 4vw 6vw;
  max-width: none;
  padding: 70px 5vw;
  background: #fafbf9f5;
  border: 1px solid #ffffffa0;
  border-radius: 12px;
  box-shadow: 0 15px 60px #08283d20;
  backdrop-filter: blur(10px);
}
main > .philosophy {
  background: #eef5f8f2;
  padding-top: 55px;
  padding-bottom: 55px;
}
main > .coach-section {
  padding-top: 75px;
  padding-bottom: 75px;
}
.coach-copy p:not(.eyebrow) {
  color: #536973;
}
.mountain-banner {
  height: 60svh;
  min-height: 350px;
  background: transparent;
  margin: 0 0 6vw;
}
.mountain-banner img {
  display: none;
}
.mountain-banner:after {
  background: linear-gradient(90deg, #0c2d4675, transparent);
}
.mountain-banner > div {
  padding: 85px 9vw;
}
.mountain-banner > span {
  right: 9vw;
}
main > .closing {
  background: #e7f1f7ed;
  padding-top: 85px;
  padding-bottom: 85px;
}
.closing-horizon {
  display: none;
}
footer {
  background: #102e40eb;
  backdrop-filter: blur(10px);
  padding-bottom: 80px;
}
.contact-fab {
  bottom: 22px;
  right: 22px;
}
@media (min-width: 1600px) {
  main > .section,
  .conditions {
    margin-left: max(4vw, calc((100vw - 1440px) / 2));
    margin-right: max(4vw, calc((100vw - 1440px) / 2));
  }
}
@media (max-width: 1150px) {
  .header-brands {
    gap: 14px;
  }
  .header-resort-logo {
    width: 56px;
  }
  .site-header .brand {
    font-size: 0.9rem;
  }
  .hero .site-header nav {
    gap: 16px;
    font-size: 0.75rem;
  }
  .hero .nav-actions {
    gap: 12px;
  }
  .hero .site-header .button {
    padding: 11px 18px;
  }
}
@media (max-width: 950px) {
  .hero .site-header nav {
    display: none;
  }
  .hero .hero-content {
    max-width: 60%;
  }
  .hero .film-card {
    right: 5vw;
    max-width: 31vw;
    height: 55svh;
  }
  .hero h1 {
    font-size: 6.6vw;
  }
}
@media (max-width: 700px) {
  .site-journey video {
    object-position: 50% 50%;
  }
  .journey-shade {
    background:
      linear-gradient(90deg, #0c2c439c, #11334b55), linear-gradient(0deg, #0a2b4140, transparent);
  }
  .hero-scroll .hero {
    height: auto;
    min-height: 100svh;
    padding: 132px 0 98px;
  }
  .hero .site-header {
    padding: 17px 5vw;
    background: #14374bc4;
    min-height: 90px;
  }
  .header-brands {
    gap: 10px;
  }
  .header-resort-logo {
    width: 45px;
    padding: 3px;
  }
  .hero .site-header .brand {
    font-size: 0.75rem;
    gap: 6px;
  }
  .hero .site-header .brand svg {
    width: 23px;
  }
  .hero .site-header .brand small {
    font-size: 0.45rem;
    letter-spacing: 0.18em;
  }
  .hero .nav-actions {
    gap: 10px;
  }
  .hero .site-header .button {
    font-size: 0.68rem;
    padding: 10px 12px;
    max-width: 112px;
  }
  .language {
    font-size: 0.7rem;
  }
  .hero .hero-content {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    max-width: none;
    margin: 0 7vw;
    transform: none;
    pointer-events: auto;
  }
  .hero h1 {
    font-size: clamp(2.2rem, 10.3vw, 3.8rem);
  }
  .hero .hero-copy {
    max-width: 350px;
    font-size: 0.94rem;
  }
  .hero .eyebrow {
    font-size: 0.65rem;
    letter-spacing: 0.08em;
  }
  .hero .hero-actions {
    gap: 12px;
  }
  .hero .hero-actions .button {
    font-size: 0.85rem;
    padding: 14px 21px;
  }
  .hero .film-card {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    width: 180px;
    height: 320px;
    max-width: none;
    aspect-ratio: 9/16;
    margin: 30px 7vw 0 auto;
    transform: none;
  }
  .hero .film-frame {
    height: 100%;
    border-radius: 2px;
    border: 1px solid #ffffffa0;
    box-shadow: 0 15px 45px #08233760;
  }
  .hero .film-frame video {
    object-fit: cover;
    object-position: center;
  }
  .hero .film-caption {
    display: flex;
    font-size: 0.65rem;
    letter-spacing: 0;
    gap: 8px;
    margin-top: 10px;
  }
  .hero .film-caption > span:last-child {
    display: none;
  }
  .hero .film-play {
    font-size: 0.65rem;
    padding: 6px 9px;
    right: 8px;
    bottom: 9px;
    min-height: 36px;
    gap: 4px;
  }
  .hero .hero-bottom {
    bottom: 22px;
    left: 7vw;
    right: 7vw;
    justify-content: flex-end;
  }
  .hero-bottom .scroll-guide {
    max-width: none;
    text-align: right;
    flex: 0 1 190px;
  }
  .hero-bottom > .scroll-link {
    display: none;
  }
  .conditions {
    margin: 0 4vw 42px;
    padding: 24px 6vw;
  }
  .courchevel-logo {
    width: 75px;
  }
  main > .section {
    margin: 0 4vw 42px;
    padding: 44px 6vw;
    border-radius: 9px;
  }
  .section-heading {
    gap: 22px;
  }
  .section-heading h2 {
    font-size: 2.7rem;
  }
  .section-heading > p:last-child {
    font-size: 0.95rem;
  }
  .experience-photo {
    min-height: 510px;
  }
  .photo-label {
    left: 14px;
    right: 14px;
    bottom: 14px;
    font-size: 0.75rem;
    padding: 10px 12px;
  }
  .offer-card {
    padding: 24px;
  }
  .offer-card h3 {
    font-size: 2.5rem;
  }
  main > .coach-section {
    padding: 48px 6vw;
  }
  .coach-photo {
    max-width: 270px;
  }
  .coach-copy h2 {
    font-size: 2.6rem;
  }
  .mountain-banner {
    height: 65svh;
    margin-bottom: 42px;
  }
  .mountain-banner > div {
    padding: 70px 8vw;
  }
  .mountain-banner h2 {
    font-size: 3.2rem;
  }
  .mountain-banner > span {
    right: 8vw;
    left: 8vw;
  }
  main > .closing {
    padding: 60px 6vw;
  }
  .closing h2 {
    font-size: 2.55rem;
  }
  .journey-toggle {
    left: 15px;
    bottom: 17px;
    font-size: 0.7rem;
    padding: 10px 13px;
  }
  .contact-fab {
    right: 17px;
    bottom: 17px;
  }
}
@media (max-width: 370px) {
  .hero .site-header {
    gap: 9px;
    padding: 14px 4vw;
  }
  .hero .site-header .brand {
    font-size: 0.63rem;
  }
  .hero .site-header .brand svg {
    display: none;
  }
  .header-brands {
    gap: 9px;
  }
  .header-resort-logo {
    width: 38px;
  }
  .hero .nav-actions {
    gap: 8px;
  }
  .hero .site-header .button {
    font-size: 0.63rem;
    max-width: 105px;
    padding: 9px 11px;
  }
  .hero .hero-content {
    margin: 0 6vw;
  }
  .hero h1 {
    font-size: 2.16rem;
  }
  .hero .eyebrow {
    font-size: 0.58rem;
  }
  .experience-photo {
    min-height: 430px;
  }
  .offer-card {
    padding: 20px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .journey-toggle {
    display: block;
  }
  .intro-toggle {
    display: grid;
  }
  .hero .hero-bottom .scroll-guide {
    display: block;
  }
  .hero .film-card {
    transform: none;
  }
}
