@charset "utf-8";

/*
Theme Name: Hiboski - Ski Resort HTML5 Template
Author: Metropolitanthemes
Version: 1.0.0

%%%%%%% Table of CSS %%%%%%%

1. General
2. Common Class
3. Preloader
4. Topbar
5. Header
6. Offcanvas Menu
7. House Buttons
8. Custom Select
9. Forms
10. Breadcrumb
11. Summit Hero
12. Pass Quote
13. Hero Slider
14. Booking Strip
15. Panorama Hero
16. About
17. Marquee
18. Cutout Block
19. School Track
20. Chalet Cards
21. Film Band
22. About Collage
23. Room Picks
24. Intro Film
25. Services
26. Apres Menu
27. Room Tab
28. Piste Finder
29. Call To Action Two
30. Text Block
31. Video
32. Testimonial
33. Ticket Reviews
34. Latest Post
35. Room Slider
36. Counter
37. Pass Builder
38. Season Strip
39. Pass Types
40. FAQ
41. Snow Dashboard
42. Lift Status
43. Ski School Page
44. Chalet Pages
45. Inner Pages
46. Restaurant
47. Footer
48. Back To Top
49. Aria Accessibility Enhancements
50. Cursor
51. Frost On The Glass
*/

/*======================
1. General
========================*/
/* tokens: passport 1.1 roles (base navy + cyan kept) and 1.2 fonts */
:root {
  --hs-color-navy: #063856;
  --hs-color-navy-rgb: 6, 56, 86;
  --hs-color-cyan: #00B4D5;
  --hs-color-cyan-rgb: 0, 180, 213;
  --hs-color-cyan-text: #0089A8;
  --hs-color-ice: #F2F7FA;
  --hs-color-ice-rgb: 242, 247, 250;
  --hs-color-frost: #E3EDF3;
  --hs-color-frost-rgb: 227, 237, 243;
  --hs-color-slate: #4E6070;
  --hs-color-slate-rgb: 78, 96, 112;
  --hs-color-ink: #0B2233;
  --hs-color-ink-rgb: 11, 34, 51;
  --hs-color-body: #5A6B78;
  --hs-color-white: #FFFFFF;
  --hs-color-white-rgb: 255, 255, 255;
  --hs-color-line: #DDE7EE;
  --hs-color-line-2: #C5D4DE;
  /* piste grades, used as a colour code for runs and levels */
  --hs-color-green: #2E9E5B;
  --hs-color-green-rgb: 46, 158, 91;
  --hs-color-blue: #1F6FD1;
  --hs-color-red: #D63C3C;
  --hs-color-black: #10171D;
  --hs-color-gold: #F2A900;
  --hs-color-trip: #00AA6C;
  --hs-ff-heading: 'Archivo', sans-serif;
  --hs-ff-body: 'Barlow', sans-serif;
  --hs-fs-h1: clamp(44px, 5vw, 84px);
  --hs-fs-h2: clamp(32px, 3.3vw, 50px);
  --hs-fs-h3: 26px;
  --hs-fs-h4: 21px;
  --hs-fs-h5: 18px;
  --hs-fs-h6: 16px;
  --hs-radius: 0px;
  --hs-skew: -8deg;
  --hs-shadow: 0 18px 44px rgba(6, 56, 86, 0.09);
  --hs-shadow-lg: 0 30px 70px rgba(6, 56, 86, 0.16);
  --hs-ease: cubic-bezier(0.22, 0.9, 0.26, 1);
}

html{
    overflow-x: clip;
    width: 100%;
}

/* :root, not html: Bootstrap sets :root { scroll-behavior: smooth }, which outranks html and would turn every
   instant jump (ScrollTrigger's re-measuring, back to top) into a glide */
:root {
  scroll-behavior: auto;
}

body {
    font-family: var(--hs-ff-body);
    font-weight: normal;
    font-style: normal;
    color: var(--hs-color-body);
    overflow-x: clip;
    font-size: 16px;
    line-height: 1.65;
    background-color: var(--hs-color-white);
}

* {
    margin: 0;
    padding: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

img {
    max-width: 100%;
    -webkit-transition: all 0.4s ease-out 0s;
    transition: all 0.4s ease-out 0s;
}

a:focus,
input:focus,
textarea:focus,
button:focus,
.slick-initialized .slick-slide:focus,
.btn:focus {
    text-decoration: none;
    outline: none;
    -webkit-box-shadow: none;
    box-shadow: none;
}

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

i,
span,
a {
    display: inline-block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--hs-ff-heading);
    font-weight: 800;
    font-stretch: 112%;
    letter-spacing: -0.015em;
    line-height: 1.12;
    margin: 0px;
}

h1,
h1 a,
h2,
h2 a,
h3,
h3 a,
h4,
h4 a,
h5,
h5 a,
h6,
h6 a {
    color: var(--hs-color-ink);
}

h1 {
    font-size: var(--hs-fs-h1);
}

h2 {
    font-size: var(--hs-fs-h2);
}

h3 {
    font-size: var(--hs-fs-h3);
}

h4 {
    font-size: var(--hs-fs-h4);
}

h5 {
    font-size: 18px;
}

h6 {
    font-size: 16px;
}

ul,
ol {
    margin: 0px;
    padding: 0px;
    list-style-type: none;
}

p {
    margin: 0px;
}

a {
    -webkit-transition: all 0.3s ease-out 0s;
    transition: all 0.3s ease-out 0s;
}

a,
a:hover {
    color: var(--hs-color-navy);
}

input,
select,
textarea,
select {
    border: none;
    width: 100%;
    height: 70px;
    background-color: var(--hs-color-ice);
    padding: 0 40px;
}

textarea {
    height: 250px;
    padding-top: 25px;
}

::-webkit-input-placeholder,
input,
textarea,
select {
    font-family: var(--hs-ff-body);
    color: var(--hs-color-body);
}

:-ms-input-placeholder,
input,
textarea,
select {
    font-family: var(--hs-ff-body);
    color: var(--hs-color-body);
}

::-ms-input-placeholder,
input,
textarea,
select {
    font-family: var(--hs-ff-body);
    color: var(--hs-color-body);
}

::placeholder,
input,
textarea,
select {
    font-family: var(--hs-ff-body);
    color: var(--hs-color-body);
}

/* utilities */
.hs-reset {
  list-style: none;
  margin: 0;
  padding: 0;
}
.container-wide {
  width: 100%;
  max-width: 1760px;
  margin: 0 auto;
  padding-left: 40px;
  padding-right: 40px;
}
@media (min-width: 1600px) {
  .container {
    max-width: 1320px;
  }
}
[class^="flaticon-"]::before,
[class*=" flaticon-"]::before {
  position: relative;
  top: 0.08em;
}
::selection {
  background-color: var(--hs-color-cyan);
  color: var(--hs-color-navy);
}
/* a country flag beside the name it belongs to (4:3) */
img.flag,
img.option-flag {
  display: inline-block;
  width: 20px;
  height: 15px;
  margin: 0 8px 0 0;
  object-fit: cover;
  vertical-align: -2px;
  box-shadow: 0 0 0 1px rgba(var(--hs-color-ink-rgb), 0.12);
}
.is-filtered-out {
  display: none !important;
}
.visually-hidden-label {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/*======================
2. Common Class
========================*/

.hs-section-title span.hs-title-tag,
.hs-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--hs-color-cyan-text);
}
/* the eyebrow's mark: a short bar cut on the slope angle */
.hs-section-title span.hs-title-tag::before,
.hs-eyebrow::before {
    content: "";
    flex-shrink: 0;
    width: 26px;
    height: 6px;
    background-color: var(--hs-color-cyan);
    transform: skewX(var(--hs-skew));
}
.hs-section-title h2,
.hs-title-lg {
    font-size: var(--hs-fs-h2);
    line-height: 1.06;
    letter-spacing: -0.02em;
}
.hs-section-title .hs-lead,
.hs-lead {
    margin-top: 18px;
    font-size: 17.5px;
    line-height: 1.7;
    max-width: 560px;
}
.text-center .hs-lead,
.hs-section-title.text-center .hs-lead {
    margin-left: auto;
    margin-right: auto;
}
.hs-section-title.hs-white-color span.hs-title-tag,
.hs-eyebrow.is-light {
    color: var(--hs-color-cyan);
}
.hs-section-title.hs-white-color h2,
.hs-section-title.hs-white-color .hs-lead {
    color: var(--hs-color-white);
}
.hs-section-title.hs-white-color .hs-lead {
    opacity: 0.8;
}

/* Slider arrows: square plates cut on the slope angle */
.sl-prev,
.sl-next {
  position: relative;
  z-index: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 0;
  background: none;
  font-size: 15px;
  color: var(--hs-color-navy);
  transition: color 0.35s var(--hs-ease);
}
.sl-prev::before,
.sl-next::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  border: 2px solid var(--hs-color-navy);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.35s var(--hs-ease), border-color 0.35s var(--hs-ease), transform 0.4s var(--hs-ease);
}
.sl-prev:hover,
.sl-next:hover {
  color: var(--hs-color-white);
}
.sl-prev:hover::before,
.sl-next:hover::before {
  background-color: var(--hs-color-navy);
  transform: skewX(-12deg);
}
.sl-prev:focus-visible,
.sl-next:focus-visible {
  outline: 2px solid var(--hs-color-cyan-text);
  outline-offset: 4px;
}
/* dots are short dashes on the slope angle */
.sl-dots {
  position: static !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto !important;
}
.sl-dots .swiper-pagination-bullet {
  width: 24px;
  height: 5px;
  margin: 0 !important;
  border-radius: 0;
  background-color: var(--hs-color-line-2);
  opacity: 1;
  transform: skewX(var(--hs-skew));
  transition: width 0.35s var(--hs-ease), background-color 0.35s var(--hs-ease);
}
.sl-dots .swiper-pagination-bullet-active {
  width: 40px;
  background-color: var(--hs-color-navy);
}
.hs-arrow-style {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}
/* a photograph laid faintly under a plain section */
.has-photo {
  position: relative;
  z-index: 0;
  isolation: isolate;
}
.section-photo {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}
.section-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.08;
  filter: saturate(0.5);
}
/* the photograph fades out towards the section's foot */
.section-photo::after {
  position: absolute;
  content: "";
  inset: 0;
  background: linear-gradient(180deg, rgba(var(--hs-color-white-rgb), 0) 40%, rgba(var(--hs-color-white-rgb), 1) 100%);
}
.hs-ticket-reviews .section-photo::after {
  background: linear-gradient(180deg, rgba(var(--hs-color-ice-rgb), 0) 40%, rgba(var(--hs-color-ice-rgb), 1) 100%);
}
/* word reveals: each word sits in its own window while it drops in */
.hs-words .w {
  display: inline-block;
  overflow: hidden;
  /* room inside the mask for glyphs that lean or hang past the word (italics, descenders), taken back by the
     margin so the words keep their places */
  padding: 0 0.1em 0.12em 0.06em;
  margin: 0 -0.1em -0.12em -0.06em;
  vertical-align: top;
}
.hs-words .wi {
  display: inline-block;
}
.section-photo.is-ice::after {
  background: linear-gradient(180deg, rgba(var(--hs-color-ice-rgb), 0) 40%, rgba(var(--hs-color-ice-rgb), 1) 100%);
}
.section-photo.is-dark img {
  opacity: 0.16;
  filter: saturate(0.3);
}
.section-photo.is-dark::after {
  display: none;
}
/* slider controls on a photograph */
.sl-prev.is-light,
.sl-next.is-light,
.is-light .sl-prev,
.is-light .sl-next {
  color: var(--hs-color-white);
}
.is-light .sl-prev::before,
.is-light .sl-next::before {
  border-color: rgba(var(--hs-color-white-rgb), 0.6);
}
.is-light .sl-prev:hover,
.is-light .sl-next:hover {
  color: var(--hs-color-navy);
}
.is-light .sl-prev:hover::before,
.is-light .sl-next:hover::before {
  background-color: var(--hs-color-white);
  border-color: var(--hs-color-white);
}
.is-light .sl-dots .swiper-pagination-bullet {
  background-color: rgba(var(--hs-color-white-rgb), 0.4);
}
.is-light .sl-dots .swiper-pagination-bullet-active {
  background-color: var(--hs-color-cyan);
}
/* Snow piles (assets/img/snow): drawn in 3D, laid on a few edges only.
   --snow-w sets the width; each pile's height and lift follow from it so its
   base sits on the edge whatever the size. */
.has-snow-cap,
.has-snow-corner {
  position: relative;
}
.has-snow-cap::before,
.has-snow-corner::before {
  position: absolute;
  content: "";
  z-index: 4;
  pointer-events: none;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
.has-snow-cap::before {
  left: calc(var(--snow-w, 360px) * -0.02);
  top: calc(var(--snow-w, 360px) * -0.17);
  width: var(--snow-w, 360px);
  height: calc(var(--snow-w, 360px) * 0.288);
  background-image: url(../img/snow/snow-cap.png);
}
.has-snow-corner::before {
  left: calc(var(--snow-w, 300px) * -0.1);
  top: calc(var(--snow-w, 300px) * -0.3);
  width: var(--snow-w, 300px);
  height: calc(var(--snow-w, 300px) * 0.46);
  background-image: url(../img/snow/snow-corner.png);
}
.has-snow-cap.is-right::before,
.has-snow-corner.is-right::before {
  left: auto;
  right: calc(var(--snow-w, 300px) * -0.1);
  transform: scaleX(-1);
}
.has-snow-cap.is-right::before {
  right: calc(var(--snow-w, 360px) * -0.02);
}
.hs-pass-quote.has-snow-cap {
  --snow-w: 380px;
}
.booking-bar.has-snow-cap {
  --snow-w: 400px;
}
.hs-room-mosaic.has-snow-corner {
  --snow-w: 320px;
}
.collage-card.has-snow-corner {
  --snow-w: 230px;
}
.hs-piste-finder.has-snow-cap {
  --snow-w: 420px;
}
.hs-video-snow.has-snow-corner {
  --snow-w: 300px;
}
.hs-footer .footer-news {
  --snow-w: 300px;
}
.snow-drift-foot {
  position: absolute;
  left: -3%;
  right: -3%;
  bottom: calc(clamp(110px, 13vw, 230px) * -0.08);
  z-index: 1;
  height: clamp(110px, 13vw, 230px);
  background: url(../img/snow/snow-bank.png) no-repeat center bottom / 100% 100%;
  pointer-events: none;
}
/* the subheader: a ledge of snow lying on its sloped foot, at the LOW end, where
   snow piles up - mirrored so its deep end sits in the corner (translateX(-100%) then
   scaleX(-1) flips it in place about its left edge) */
.hs-breadcrumb-area .crumb-snow {
  position: absolute;
  left: -1%;
  bottom: calc(-14px - 3.9vw);
  z-index: 0;
  width: 44%;
  aspect-ratio: 1520 / 480;
  background: url(../img/snow/snow-ledge.png) no-repeat center / 100% 100%;
  transform: rotate(-2.5deg) scaleX(-1) translateX(-100%);
  transform-origin: left bottom;
  pointer-events: none;
}

/*======================
3. Preloader
========================*/
/* P9 - the altitude meter: the readout climbs from the village to the summit
   while the snowflake rides the rising track; the panel then leaves downhill */
.hs-preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--hs-color-navy);
  color: var(--hs-color-white);
}
.hs-preloader .pre-meter {
  width: 340px;
  max-width: calc(100% - 60px);
}
.hs-preloader .pre-alt {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 22px;
  font-weight: 700;
  font-stretch: 112%;
  line-height: 1;
  color: rgba(var(--hs-color-white-rgb), 0.6);
}
.hs-preloader .pre-alt-num {
  font-size: 76px;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--hs-color-white);
  font-variant-numeric: tabular-nums;
}
/* the track rises to the right like the fall line read uphill */
.hs-preloader .pre-track {
  position: relative;
  display: block;
  height: 3px;
  margin: 46px 0 22px;
  background-color: rgba(var(--hs-color-white-rgb), 0.16);
  transform: rotate(-8deg);
  transform-origin: left center;
}
.hs-preloader .pre-track i {
  position: absolute;
  inset: 0;
  background-color: var(--hs-color-cyan);
  transform-origin: left center;
}
.hs-preloader .pre-flake {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 0;
  margin: -15px 0 0 -14px;
  font-size: 28px;
  line-height: 1;
  color: var(--hs-color-cyan);
}
.hs-preloader .pre-ends {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(var(--hs-color-white-rgb), 0.55);
}
.hs-preloader .pre-ends span {
  display: block;
}
/* without scripts the page is never covered */
.no-js .hs-preloader {
  display: none;
}

/*======================
4. Topbar
========================*/
/* Above the header: today's lift status on the left, the desk on the right */
.hs-topbar {
  background-color: var(--hs-color-navy);
  font-size: 13.5px;
  color: rgba(var(--hs-color-white-rgb), 0.72);
}
.hs-topbar .topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 46px;
}
.hs-topbar .topbar-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 0;
}
.hs-topbar .topbar-status span + span::before,
.hs-topbar .topbar-right > a + a::before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 14px;
  margin: 0 16px;
  vertical-align: -2px;
  background-color: rgba(var(--hs-color-white-rgb), 0.2);
}
.hs-topbar b {
  font-weight: 700;
  color: var(--hs-color-white);
}
.hs-topbar i {
  margin-right: 6px;
  color: var(--hs-color-cyan);
}
.hs-topbar .topbar-right {
  display: flex;
  align-items: center;
}
.hs-topbar .topbar-right > a {
  color: rgba(var(--hs-color-white-rgb), 0.72);
}
.hs-topbar .topbar-right > a:hover {
  color: var(--hs-color-cyan);
}
.hs-topbar .topbar-social {
  display: flex;
  gap: 4px;
  margin-left: 22px;
  padding-left: 18px;
  border-left: 1px solid rgba(var(--hs-color-white-rgb), 0.2);
}
.hs-topbar .topbar-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  color: var(--hs-color-white);
}
.hs-topbar .topbar-social a i {
  margin: 0;
  color: inherit;
}
.hs-topbar .topbar-social a:hover {
  color: var(--hs-color-cyan);
}

/*======================
5. Header
========================*/
/* The sticky header shrinks as the page scrolls; margin-bottom gives the page
   back exactly what the header gives up, so the content below never moves */
.hs-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background-color: rgba(var(--hs-color-white-rgb), 0.98);
  transition: box-shadow 0.4s var(--hs-ease), background-color 0.4s var(--hs-ease), margin-bottom 0.4s var(--hs-ease);
}
.hs-header .header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  height: 100px;
  transition: height 0.4s var(--hs-ease);
}
.hs-header.is-scrolled {
  margin-bottom: 18px;
  box-shadow: 0 12px 34px rgba(var(--hs-color-ink-rgb), 0.08);
}
.hs-header.is-scrolled .header-inner {
  height: 82px;
}
.hs-logo {
  position: relative;
  display: block;
  flex-shrink: 0;
}
.hs-logo img {
  display: block;
  height: 50px;
  width: auto;
  transition: height 0.4s var(--hs-ease);
}
.hs-header.is-scrolled .hs-logo img {
  height: 44px;
}
.hs-logo .logo-light {
  display: none;
}
.hs-nav > ul {
  display: flex;
  align-items: center;
  gap: 4px;
}
.hs-nav li {
  position: relative;
}
/* each top item fills the bar's height, so its menu drops from the header's foot */
.hs-nav > ul > li {
  display: flex;
  align-items: center;
  height: 100px;
  transition: height 0.4s var(--hs-ease);
}
.hs-header.is-scrolled .hs-nav > ul > li {
  height: 82px;
}
.hs-nav > ul > li > a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 12px 13px;
  font-family: var(--hs-ff-heading);
  font-size: 14px;
  white-space: nowrap;
  font-weight: 700;
  font-stretch: 106%;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--hs-color-navy);
}
/* the active page: a short bar cut on the slope under its name */
.hs-nav > ul > li > a::after {
  position: absolute;
  content: "";
  left: 13px;
  bottom: 4px;
  width: 22px;
  height: 4px;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew)) scaleX(0);
  transform-origin: left center;
  transition: transform 0.4s var(--hs-ease);
}
.hs-nav > ul > li.active > a::after,
.hs-nav > ul > li:hover > a::after {
  transform: skewX(var(--hs-skew)) scaleX(1);
}
.hs-nav > ul > li > a i {
  font-size: 9px;
  transition: transform 0.35s var(--hs-ease);
}
.hs-nav > ul > li:hover > a,
.hs-nav > ul > li.active > a {
  color: var(--hs-color-cyan-text);
}
.hs-nav > ul > li:hover > a i {
  transform: rotate(180deg);
}
.hs-nav .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 20;
  min-width: 250px;
  padding: 16px 0;
  list-style: none;
  background-color: var(--hs-color-white);
  border-top: 2px solid var(--hs-color-cyan);
  box-shadow: var(--hs-shadow-lg);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 0.35s var(--hs-ease), transform 0.35s var(--hs-ease), visibility 0.35s;
}
.hs-nav li:hover > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.hs-nav .sub-menu .sub-menu {
  top: -18px;
  left: 100%;
}
.hs-nav .sub-menu li a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 28px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--hs-color-ink);
  transition: color 0.3s var(--hs-ease);
}
/* a short cyan dash cut on the slope marks the item under the pointer */
.hs-nav .sub-menu li a::before {
  position: absolute;
  content: "";
  left: 12px;
  top: 50%;
  width: 8px;
  height: 3px;
  margin-top: -1.5px;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew)) scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s var(--hs-ease);
}
.hs-nav .sub-menu li:hover > a::before,
.hs-nav .sub-menu li.active > a::before {
  transform: skewX(var(--hs-skew)) scaleX(1);
}
.hs-nav .sub-menu li a i {
  font-size: 9px;
}
.hs-nav .sub-menu li:hover > a,
.hs-nav .sub-menu li.active > a {
  color: var(--hs-color-cyan-text);
}
.hs-header .header-right {
  display: flex;
  align-items: center;
  gap: 22px;
}
.hs-currency {
  position: relative;
}
.hs-currency select {
  height: 44px;
  padding: 0 26px 0 14px;
  border: 1px solid var(--hs-color-line-2);
  border-radius: 0;
  background-color: transparent;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--hs-color-ink);
  cursor: pointer;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  transition: border-color 0.3s var(--hs-ease);
}
.hs-currency select:hover,
.hs-currency select:focus {
  border-color: var(--hs-color-cyan);
}
.hs-currency i {
  position: absolute;
  top: 50%;
  right: 11px;
  margin-top: -5px;
  font-size: 9px;
  color: var(--hs-color-cyan-text);
  pointer-events: none;
}
.hs-offcanvas .oc-currency {
  margin-bottom: 22px;
}
.hs-offcanvas .oc-currency label {
  display: block;
  margin-bottom: 6px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--hs-color-body);
}
.hs-offcanvas .oc-currency select {
  width: 160px;
}
.hs-offcanvas .oc-currency i {
  top: auto;
  bottom: 17px;
  right: auto;
  left: 138px;
  margin-top: 0;
}
.hs-menu-toggle {
  padding: 0;
  border: 0;
  background: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  gap: 6px;
  width: 44px;
  height: 44px;
}
.hs-menu-toggle span {
  display: block;
  height: 1.5px;
  width: 28px;
  background-color: var(--hs-color-ink);
  transition: width 0.35s var(--hs-ease), background-color 0.35s var(--hs-ease);
}
.hs-menu-toggle span:nth-child(2) {
  width: 20px;
}
.hs-menu-toggle span:nth-child(3) {
  width: 14px;
}
.hs-menu-toggle:hover span {
  width: 28px;
  background-color: var(--hs-color-cyan-text);
}
/* Reading progress rides on the logo's hairline, drawn along the header foot */
.hs-header .header-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1.5px;
  background-color: var(--hs-color-cyan);
  transform: scaleX(0);
  transform-origin: left center;
}
/* Today's summit temperature and new snow, straight from the snow report */
.header-snow {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  height: 50px;
  padding: 0 20px 0 16px;
  color: var(--hs-color-white);
  white-space: nowrap;
}
.header-snow::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background-color: var(--hs-color-navy);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.35s var(--hs-ease);
}
.header-snow:hover {
  color: var(--hs-color-white);
}
.header-snow:hover::before {
  background-color: var(--hs-color-ink);
}
.header-snow > i {
  font-size: 22px;
  color: var(--hs-color-cyan);
}
.header-snow > span {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.header-snow b {
  font-family: var(--hs-ff-heading);
  font-size: 17px;
  font-weight: 800;
  font-stretch: 110%;
}
.header-snow small {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--hs-color-white-rgb), 0.7);
}
.hs-header .hs-currency {
  padding-left: 20px;
  border-left: 1px solid var(--hs-color-line);
}
.hs-header .hs-currency.hs-select .select-button {
  min-width: 0;
  height: 44px;
  padding: 0 4px;
  border: 0;
  background: none;
  font-family: var(--hs-ff-heading);
  font-size: 14px;
  font-weight: 700;
  font-stretch: 106%;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--hs-color-navy);
}
.hs-header .hs-currency.hs-select:hover .select-button,
.hs-header .hs-currency.hs-select.is-open .select-button {
  color: var(--hs-color-cyan-text);
}
.hs-header .hs-currency.hs-select .select-list {
  left: auto;
  right: 0;
  top: calc(100% + 18px);
}
.hs-menu-toggle span {
  background-color: var(--hs-color-navy);
}
@media (max-width: 1599.98px) {
  .hs-header .header-right > .hs-btn {
    display: none;
  }
}
/* .hs-snow-chip-done */
/* Home 3: the header sits transparent over the hero until the page scrolls;
   its negative margin gives the hero the room, and changes with the height */
.hs-header.is-overlay {
  margin-bottom: -100px;
  background-color: transparent;
}
.hs-header.is-overlay.is-scrolled {
  margin-bottom: -82px;
  background-color: rgba(var(--hs-color-white-rgb), 0.98);
}
.hs-header.is-overlay:not(.is-scrolled) .hs-nav > ul > li > a,
.hs-header.is-overlay:not(.is-scrolled) .hs-currency.hs-select .select-button {
  color: var(--hs-color-white);
}
.hs-header.is-overlay:not(.is-scrolled) .hs-nav > ul > li:hover > a,
.hs-header.is-overlay:not(.is-scrolled) .hs-nav > ul > li.active > a {
  color: var(--hs-color-cyan);
}
.hs-header.is-overlay:not(.is-scrolled) .logo-main {
  display: none;
}
.hs-header.is-overlay:not(.is-scrolled) .logo-light {
  display: block;
}
.hs-header.is-overlay:not(.is-scrolled) .hs-menu-toggle span {
  background-color: var(--hs-color-white);
}
.hs-header.is-overlay:not(.is-scrolled) .hs-currency {
  border-left-color: rgba(var(--hs-color-white-rgb), 0.25);
}
.hs-header.is-overlay:not(.is-scrolled) .header-snow::before {
  background-color: rgba(var(--hs-color-white-rgb), 0.14);
  box-shadow: inset 0 0 0 1px rgba(var(--hs-color-white-rgb), 0.3);
}

/*======================
6. Offcanvas Menu
========================*/
.hs-offcanvas {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1000;
  width: 440px;
  max-width: 90vw;
  height: 100vh;
  padding: 38px 44px 44px;
  overflow-x: hidden;
  overflow-y: auto;
  background-color: var(--hs-color-ice);
  visibility: hidden;
  transform: translateX(104%);
  transition: transform 0.7s var(--hs-ease), visibility 0.7s;
}
.hs-offcanvas.is-open {
  visibility: visible;
  transform: translateX(0);
}
.hs-offcanvas .offcanvas-head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 26px;
  margin-bottom: 30px;
  border-bottom: 1px solid var(--hs-color-line);
}
.hs-offcanvas .offcanvas-head img {
  display: block;
  height: 60px;
  width: auto;
}
.hs-offcanvas .offcanvas-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--hs-color-line-2);
  color: var(--hs-color-ink);
  font-size: 15px;
  transition: background-color 0.35s var(--hs-ease), border-color 0.35s var(--hs-ease), transform 0.5s var(--hs-ease);
}
.hs-offcanvas .offcanvas-close:hover {
  background-color: var(--hs-color-cyan);
  border-color: var(--hs-color-cyan);
  transform: rotate(90deg);
}
.hs-offcanvas .offcanvas-nav {
  position: relative;
}
.hs-offcanvas .oc-group + .oc-group {
  margin-top: 26px;
  padding-top: 24px;
  border-top: 1px solid var(--hs-color-line);
}
.hs-offcanvas .oc-label {
  display: block;
  margin-bottom: 10px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--hs-color-cyan-text);
}
.hs-offcanvas .oc-group ul {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
}
.hs-offcanvas .oc-group li {
  width: calc(50% - 10px);
}
.hs-offcanvas .oc-group li a {
  display: inline-block;
  font-family: var(--hs-ff-heading);
  font-size: 18px;
  line-height: 1.5;
  color: var(--hs-color-ink);
  transition: color 0.3s var(--hs-ease), transform 0.3s var(--hs-ease);
}
.hs-offcanvas .oc-group li a:hover,
.hs-offcanvas .oc-group li a.is-current {
  color: var(--hs-color-cyan-text);
  transform: translateX(5px);
}
.hs-offcanvas .offcanvas-foot {
  position: relative;
  margin-top: 34px;
  padding-top: 26px;
  border-top: 1px solid var(--hs-color-line);
}
.hs-offcanvas .offcanvas-foot .label {
  display: block;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--hs-color-body);
}
.hs-offcanvas .offcanvas-foot .oc-contact {
  display: block;
  margin-top: 4px;
  font-family: var(--hs-ff-heading);
  font-size: 21px;
  color: var(--hs-color-ink);
}
.hs-offcanvas .offcanvas-foot .hs-social {
  margin-top: 18px;
}
.hs-offcanvas-overlay {
  position: fixed;
  inset: 0;
  z-index: 999;
  background-color: rgba(var(--hs-color-navy-rgb), 0.55);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s var(--hs-ease), visibility 0.5s;
}
.hs-offcanvas-overlay.is-open {
  opacity: 1;
  visibility: visible;
}
.hs-social {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.hs-social a {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  font-size: 14px;
  color: var(--hs-color-navy);
  transition: color 0.35s var(--hs-ease), transform 0.35s var(--hs-ease);
}
.hs-social a::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  border: 1px solid rgba(var(--hs-color-slate-rgb), 0.35);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.35s var(--hs-ease), border-color 0.35s var(--hs-ease);
}
.hs-social a:hover {
  color: var(--hs-color-navy);
  transform: translateY(-3px);
}
.hs-social a:hover::before {
  background-color: var(--hs-color-cyan);
  border-color: var(--hs-color-cyan);
}

/*======================
7. House Buttons
========================*/
.hs-btn {
  position: relative;
  z-index: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  height: 56px;
  padding: 0 34px;
  font-family: var(--hs-ff-heading);
  font-size: 13.5px;
  font-weight: 800;
  font-stretch: 110%;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--hs-color-white);
  background: none;
  border: 0;
  isolation: isolate;
  white-space: nowrap;
  transition: color 0.45s var(--hs-ease);
}
/* the plate is cut on the slope angle; a hover steepens it (the skew nudge) */
.hs-btn::before,
.hs-btn::after {
  position: absolute;
  content: "";
  inset: 0;
  transform: skewX(var(--hs-skew));
  transition: transform 0.5s var(--hs-ease), background-color 0.4s var(--hs-ease);
}
.hs-btn::before {
  z-index: -2;
  background-color: var(--hs-color-navy);
}
.hs-btn::after {
  z-index: -1;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew)) scaleX(0);
  transform-origin: left center;
}
.hs-btn:hover {
  color: var(--hs-color-navy);
}
.hs-btn:hover::before {
  transform: skewX(-12deg);
}
.hs-btn:hover::after {
  transform: skewX(-12deg) scaleX(1);
}
.hs-btn:focus-visible {
  outline: 2px solid var(--hs-color-cyan-text);
  outline-offset: 4px;
}
.hs-btn .btn-ic {
  position: relative;
  display: block;
  width: 13px;
  height: 12px;
  overflow: hidden;
}
.hs-btn .btn-ic i {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 12px;
  line-height: 12px;
  transition: transform 0.45s var(--hs-ease);
}
.hs-btn .btn-ic i + i {
  transform: translateX(-140%);
}
.hs-btn:hover .btn-ic i:first-child {
  transform: translateX(140%);
}
.hs-btn:hover .btn-ic i + i {
  transform: translateX(0);
}
.hs-btn-cyan {
  color: var(--hs-color-navy);
}
.hs-btn-cyan::before {
  background-color: var(--hs-color-cyan);
}
.hs-btn-cyan::after {
  background-color: var(--hs-color-white);
}
.hs-btn-line {
  color: var(--hs-color-navy);
}
.hs-btn-line::before {
  background-color: transparent;
  box-shadow: inset 0 0 0 2px var(--hs-color-navy);
}
.hs-btn-line::after {
  background-color: var(--hs-color-navy);
}
.hs-btn-line:hover {
  color: var(--hs-color-white);
}
.hs-btn-light {
  color: var(--hs-color-white);
}
.hs-btn-light::before {
  background-color: transparent;
  box-shadow: inset 0 0 0 2px rgba(var(--hs-color-white-rgb), 0.7);
}
.hs-btn-light:hover {
  color: var(--hs-color-navy);
}
.hs-btn-sm {
  height: 46px;
  padding: 0 24px;
  font-size: 12.5px;
}
.hs-btn.is-disabled {
  opacity: 0.45;
  pointer-events: none;
}
.hs-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-ink);
  padding-bottom: 5px;
}
.hs-link::after {
  position: absolute;
  content: "";
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background-color: var(--hs-color-cyan);
  transform: scaleX(0.35);
  transform-origin: left center;
  transition: transform 0.5s var(--hs-ease);
}
.hs-link:hover {
  color: var(--hs-color-cyan-text);
}
.hs-link:hover::after {
  transform: scaleX(1);
}
.hs-link.is-light {
  color: var(--hs-color-white);
}
.hs-link.is-light:hover {
  color: var(--hs-color-cyan);
}

.hs-frame {
  position: relative;
  display: block;
  overflow: hidden;
}
.hs-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transform-origin: center top;
  transition: transform 1.2s var(--hs-ease);
}
.hs-frame:hover img {
  transform: scale(1.06);
}

/*======================
8. Custom Select
========================*/
/* Native selects stay in the form (value, name, submit); a styled button and
   listbox are drawn over them and keep them in sync. */
.hs-select {
  position: relative;
}
.hs-select > select {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0 !important;
}
.hs-select .select-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  height: 36px;
  padding: 0;
  font-size: 18px;
  font-weight: 500;
  text-align: left;
  color: var(--hs-color-ink);
}
.hs-select .select-button .select-value {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.hs-select .select-button i {
  flex-shrink: 0;
  font-size: 10px;
  color: var(--hs-color-cyan-text);
  transition: transform 0.35s var(--hs-ease);
}
.hs-select.is-open .select-button i {
  transform: rotate(180deg);
}
.hs-select .select-list {
  position: absolute;
  top: calc(100% + 18px);
  left: -30px;
  z-index: 30;
  min-width: calc(100% + 60px);
  max-height: 340px;
  padding: 10px 0;
  overflow-y: auto;
  list-style: none;
  background-color: var(--hs-color-white);
  border-top: 2px solid var(--hs-color-cyan);
  box-shadow: var(--hs-shadow-lg);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.3s var(--hs-ease), transform 0.3s var(--hs-ease), visibility 0.3s;
}
.hs-select.opens-up .select-list {
  top: auto;
  bottom: calc(100% + 18px);
  border-top: 0;
  border-bottom: 2px solid var(--hs-color-cyan);
  transform: translateY(-10px);
}
.hs-select.is-open .select-list {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.hs-select .select-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 10px 26px;
  font-size: 16px;
  color: var(--hs-color-ink);
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.2s var(--hs-ease), color 0.2s var(--hs-ease);
}
.hs-select .select-option .option-meta {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-green);
}
.hs-select .select-option .option-meta.is-none {
  color: var(--hs-color-body);
}
.hs-select .select-option.is-focused,
.hs-select .select-option:hover {
  background-color: var(--hs-color-ice);
}
.hs-select .select-option.is-disabled {
  cursor: not-allowed;
  opacity: 0.45;
}
.hs-select .select-option.is-disabled:hover {
  background-color: transparent;
}
.hs-select .select-option.is-selected {
  color: var(--hs-color-cyan-text);
}
.hs-select .select-option.is-selected::after {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 11px;
  color: var(--hs-color-cyan-text);
}
/* the currency switch keeps its outlined box */
.hs-currency.hs-select .select-button {
  width: auto;
  min-width: 98px;
  height: 44px;
  padding: 0 14px;
  gap: 10px;
  border: 1px solid var(--hs-color-line-2);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  transition: border-color 0.3s var(--hs-ease);
}
/* the chevron sits in the button's flow, after the flag and code (the absolute
   rule above is for the native select's icon, which the custom select hides) */
.hs-currency.hs-select .select-button i {
  position: static;
  margin: 0;
}
/* the flag and code never shrink under the chevron */
.hs-currency.hs-select .select-value {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  overflow: visible;
}
.hs-currency.hs-select:hover .select-button,
.hs-currency.hs-select.is-open .select-button {
  border-color: var(--hs-color-cyan);
}
.hs-currency.hs-select .select-list {
  top: calc(100% + 8px);
  left: 0;
  min-width: 100%;
}
.hs-currency.hs-select .select-option {
  padding: 8px 18px;
  font-size: 14.5px;
}
.hs-select > i {
  display: none;
}
.hs-offcanvas .oc-currency.hs-select .select-button {
  width: 160px;
}

/*======================
9. Forms
========================*/
/* Custom checkboxes and radios: the native input stays for keyboard and form */
.hs-check {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 0;
  font-size: 15.5px;
  color: var(--hs-color-ink);
  cursor: pointer;
}
.hs-check input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.hs-check .check-box {
  position: relative;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border: 1.5px solid var(--hs-color-line-2);
  background-color: var(--hs-color-white);
  transition: border-color 0.25s var(--hs-ease), background-color 0.25s var(--hs-ease);
}
.hs-check .check-box::after {
  position: absolute;
  content: "";
  left: 6px;
  top: 2px;
  width: 5px;
  height: 10px;
  border: solid var(--hs-color-ink);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0);
  transition: transform 0.25s var(--hs-ease);
}
.hs-check.is-radio .check-box {
  border-radius: 50%;
}
.hs-check.is-radio .check-box::after {
  left: 4px;
  top: 4px;
  width: 9px;
  height: 9px;
  border: 0;
  border-radius: 50%;
  background-color: var(--hs-color-ink);
  transform: scale(0);
}
.hs-check input:checked + .check-box {
  border-color: var(--hs-color-cyan);
  background-color: var(--hs-color-cyan);
}
.hs-check input:checked + .check-box::after {
  transform: rotate(45deg) scale(1);
}
.hs-check.is-radio input:checked + .check-box::after {
  transform: scale(1);
}
.hs-check input:focus-visible + .check-box {
  outline: 2px solid var(--hs-color-cyan-text);
  outline-offset: 2px;
}
.hs-check .check-label {
  flex: 1 1 auto;
}
.hs-check.is-empty {
  opacity: 0.45;
}
/* a select dressed as a bordered field (filters, sort, planner) */
.filter-select.hs-select .select-button {
  height: 50px;
  padding: 0 18px;
  border: 1px solid var(--hs-color-line-2);
  background-color: var(--hs-color-white);
  font-size: 15.5px;
  transition: border-color 0.3s var(--hs-ease);
}
.filter-select.hs-select:hover .select-button,
.filter-select.hs-select.is-open .select-button {
  border-color: var(--hs-color-cyan);
}
.filter-select.hs-select .select-list {
  top: calc(100% + 6px);
  left: 0;
  min-width: 100%;
}
.filter-select.hs-select.opens-up .select-list {
  bottom: calc(100% + 6px);
}
.filter-select.hs-select .select-option {
  padding: 9px 18px;
  font-size: 15px;
}

/* Number stepper: minus / field / plus */
.hs-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 7px 0;
  clear: left;
}
.hs-stepper .stepper-label {
  font-size: 12.5px;
  line-height: 1.35;
  color: var(--hs-color-body);
}
.hs-stepper .stepper-label b {
  display: block;
  font-size: 15.5px;
  font-weight: 600;
  color: var(--hs-color-ink);
}
.hs-stepper .stepper-ctrl {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  border: 1px solid var(--hs-color-line-2);
  background-color: var(--hs-color-ice);
}
.hs-stepper .stepper-ctrl button {
  width: 36px;
  height: 38px;
  font-size: 11px;
  color: var(--hs-color-ink);
  transition: background-color 0.25s var(--hs-ease);
}
.hs-stepper .stepper-ctrl button:hover:not(:disabled) {
  background-color: var(--hs-color-cyan);
}
.hs-stepper .stepper-ctrl button:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.hs-stepper .stepper-ctrl input {
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 16px;
  font-weight: 600;
  text-align: center;
  color: var(--hs-color-ink);
  -moz-appearance: textfield;
  appearance: textfield;
}
.hs-stepper .stepper-ctrl input::-webkit-outer-spin-button,
.hs-stepper .stepper-ctrl input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}
/* On / off switch */
.hs-switch {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 15px;
  color: var(--hs-color-ink);
  cursor: pointer;
}
.hs-switch input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.hs-switch .switch-track {
  position: relative;
  flex-shrink: 0;
  width: 40px;
  height: 22px;
  border-radius: 11px;
  background-color: var(--hs-color-line-2);
  transition: background-color 0.3s var(--hs-ease);
}
.hs-switch .switch-track::after {
  position: absolute;
  content: "";
  left: 3px;
  top: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: var(--hs-color-white);
  box-shadow: 0 1px 3px rgba(var(--hs-color-ink-rgb), 0.25);
  transition: transform 0.3s var(--hs-ease);
}
.hs-switch input:checked + .switch-track {
  background-color: var(--hs-color-cyan);
}
.hs-switch input:checked + .switch-track::after {
  transform: translateX(18px);
}
.hs-switch input:focus-visible + .switch-track {
  outline: 2px solid var(--hs-color-cyan-text);
  outline-offset: 2px;
}

/* Text fields */
.hs-input {
  display: block;
  width: 100%;
  height: 50px;
  padding: 0 18px;
  border: 1px solid var(--hs-color-line-2);
  border-radius: 0;
  background-color: var(--hs-color-ice);
  font-family: var(--hs-ff-body);
  font-size: 15.5px;
  color: var(--hs-color-ink);
  transition: border-color 0.3s var(--hs-ease), box-shadow 0.3s var(--hs-ease);
}
.hs-input:focus {
  outline: none;
  border-color: var(--hs-color-cyan-text);
  box-shadow: 0 0 0 3px rgba(var(--hs-color-cyan-rgb), 0.2);
}
.hs-input::placeholder {
  color: #9A8F86;
}
textarea.hs-input {
  height: auto;
  min-height: 140px;
  padding: 14px 18px;
  line-height: 1.6;
  resize: vertical;
}
input[type="date"].hs-input::-webkit-calendar-picker-indicator {
  opacity: 0.6;
  cursor: pointer;
}
/* A field with its icon: the icon sits inside, on the left */
.hs-field {
  position: relative;
  clear: left;
}
.hs-field .field-icon,
.filter-select .field-icon,
.hs-subscribe .field-icon {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 50px;
  font-size: 15px;
  color: var(--hs-color-cyan-text);
  pointer-events: none;
}
.hs-field .hs-input,
.hs-field textarea.hs-input {
  padding-left: 48px;
}
.filter-select.has-icon.hs-select .select-button {
  padding-left: 48px;
}
/* What an AJAX form says after sending */
.form-status {
  margin: 14px 0 0;
  font-size: 14.5px;
}
.form-status:empty {
  display: none;
}
.form-status.is-success {
  color: var(--hs-color-green);
}
.form-status.is-error {
  color: var(--hs-color-cyan-text);
}

/*======================
10. Breadcrumb
========================*/
/* Inner pages open on a mountain photograph under a navy veil; the band's foot
   is cut on the slope angle, like every section edge on Hiboski */
.hs-breadcrumb-area {
  position: relative;
  z-index: 1;
  overflow: hidden;
  background-color: var(--hs-color-navy);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 64px), 0 100%);
}
/* the section under the band runs up beneath the slope (a transparent border
   its own ground shows through), so no white wedge is left under the cut */
.hs-breadcrumb-area + * {
  margin-top: -64px;
  border-top: 64px solid transparent;
}
.hs-breadcrumb-area .breadcrumb-bg {
  position: absolute;
  inset: -10% 0;
  z-index: -2;
}
.hs-breadcrumb-area .breadcrumb-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* the photo with a skier at its top edge: framed from the top, so the hat stays in view */
.hs-breadcrumb-area .breadcrumb-bg img[src$="bg/05.jpg"] {
  object-position: center top;
}
.hs-breadcrumb-area::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  /* the overlay carries the slope cut itself: some browsers paint it in a layer of
     its own while the photo scrolls, and there the band's cut did not reach it */
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 64px), 0 100%);
  background: linear-gradient(100deg, rgba(var(--hs-color-navy-rgb), 0.94) 0%, rgba(var(--hs-color-navy-rgb), 0.72) 45%, rgba(var(--hs-color-navy-rgb), 0.2) 100%);
}
.hs-breadcrumb-area .hs-breadcrumb-text {
  max-width: 780px;
  padding: 120px 0 170px;
  color: var(--hs-color-white);
}
.hs-breadcrumb-area .hs-breadcrumb-text > span {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--hs-color-cyan);
}
.hs-breadcrumb-area .hs-breadcrumb-text > span::before {
  content: "";
  width: 26px;
  height: 6px;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
}
.hs-breadcrumb-area .hs-page-title {
  font-size: clamp(42px, 5.2vw, 84px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.025em;
  color: var(--hs-color-white);
}
.hs-breadcrumb-area .hs-breadcrumb-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 0;
  margin-top: 30px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.hs-breadcrumb-area .hs-breadcrumb-nav li {
  display: flex;
  align-items: center;
  color: rgba(var(--hs-color-white-rgb), 0.7);
}
.hs-breadcrumb-area .hs-breadcrumb-nav li a {
  color: var(--hs-color-white);
}
.hs-breadcrumb-area .hs-breadcrumb-nav li a:hover {
  color: var(--hs-color-cyan);
}
.hs-breadcrumb-area .hs-breadcrumb-nav li + li::before {
  content: "";
  width: 12px;
  height: 2px;
  margin: 0 14px;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
}
.hs-breadcrumb-area .hs-breadcrumb-nav li.active {
  color: var(--hs-color-cyan);
}

/*======================
11. Summit Hero
========================*/
/* Home 1: the mountain full-bleed with snow falling across it, the headline on
   the left, today's snow report on the right; the foot is cut on the slope */
.hs-summit {
  position: relative;
  z-index: 0;
  height: 900px;
  overflow: hidden;
  background-color: var(--hs-color-navy);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 120px), 0 100%);
}
.hs-summit .summit-slides {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hs-summit .swiper-slide {
  position: relative;
  z-index: 0;
  overflow: hidden;
  padding-top: 90px;
}
.hs-summit .summit-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.hs-summit .summit-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.1);
  transition: transform 8s linear;
}
.hs-summit .swiper-slide-active .summit-bg img {
  transform: scale(1);
}
.hs-summit .swiper-slide::after {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background: linear-gradient(95deg, rgba(var(--hs-color-navy-rgb), 0.92) 0%, rgba(var(--hs-color-navy-rgb), 0.62) 48%, rgba(var(--hs-color-navy-rgb), 0.18) 100%);
}
.hs-summit .hs-snowfall {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
/* the card and the slide controls sit over the slides and stay put */
.hs-summit .summit-layer {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
.hs-summit .summit-layer .container,
.hs-summit .summit-layer .row {
  height: 100%;
}
.hs-summit .summit-layer .col-lg-5 {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-bottom: 110px;
}
.hs-summit .summit-report,
.hs-summit .summit-foot {
  pointer-events: auto;
}
.hs-summit .summit-foot-col {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 176px;
}
.hs-summit .summit-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-top: 26px;
  border-top: 1px solid rgba(var(--hs-color-white-rgb), 0.22);
}
.hs-summit .summit-nav {
  display: flex;
  align-items: center;
  gap: 12px;
}
.hs-summit .summit-nav .sl-count {
  margin-right: 10px;
  font-family: var(--hs-ff-heading);
  font-size: 14px;
  font-weight: 700;
  color: rgba(var(--hs-color-white-rgb), 0.6);
}
.hs-summit .summit-nav .sl-count b {
  font-size: 26px;
  font-weight: 900;
  color: var(--hs-color-white);
}
/* a title is set on its own lines, each kept whole */
.hs-summit .summit-title {
  font-size: clamp(50px, 5.6vw, 94px);
  font-weight: 900;
  line-height: 0.96;
  letter-spacing: -0.035em;
  color: var(--hs-color-white);
}
.summit-title .line,
.slide-title .line {
  display: block;
  white-space: nowrap;
}
.summit-title .line.is-cyan,
.slide-title .line.is-cyan:last-child {
  color: var(--hs-color-cyan);
}
.hs-summit .summit-lead {
  max-width: 520px;
  margin-top: 26px;
  font-size: 18px;
  color: rgba(var(--hs-color-white-rgb), 0.8);
}
.hs-summit .summit-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 24px;
  margin-top: 38px;
}
.hs-summit .summit-btns .hs-btn-cyan::after {
  background-color: var(--hs-color-white);
}
/* each slide's words come in downhill when it becomes the active one */
.summit-slides.swiper-initialized .summit-copy > * {
  opacity: 0;
  transform: translate(-34px, -14px) skewX(6deg);
  transition: opacity 0.8s var(--hs-ease), transform 0.9s var(--hs-ease);
}
.summit-slides.swiper-initialized .swiper-slide-active .summit-copy > * {
  opacity: 1;
  transform: none;
}
.summit-slides .swiper-slide-active .summit-copy > :nth-child(2) {
  transition-delay: 0.12s;
}
.summit-slides .swiper-slide-active .summit-copy > :nth-child(3) {
  transition-delay: 0.24s;
}
.summit-slides .swiper-slide-active .summit-copy > :nth-child(4) {
  transition-delay: 0.36s;
}
@media (prefers-reduced-motion: reduce) {
  .summit-slides.swiper-initialized .summit-copy > * {
    transform: none;
  }
  .hs-summit .summit-bg img {
    transition: none;
  }
}
.hs-summit .summit-alt {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 44px;
}
.hs-summit .summit-alt b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 26px;
  font-weight: 800;
  font-stretch: 110%;
  line-height: 1.1;
  color: var(--hs-color-white);
}
.hs-summit .summit-alt span {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(var(--hs-color-white-rgb), 0.62);
}
/* today's snow report: a white card with its top-right corner cut off */
.summit-report {
  position: relative;
  padding: 30px;
  background-color: rgba(var(--hs-color-white-rgb), 0.97);
  box-shadow: var(--hs-shadow-lg);
  clip-path: polygon(0 0, calc(100% - 36px) 0, 100% 36px, 100% 100%, 0 100%);
}
.summit-report .report-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px 16px;
}
.summit-report .report-head > div {
  white-space: nowrap;
}
.summit-report .report-label {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 22px;
  font-weight: 800;
  font-stretch: 110%;
  color: var(--hs-color-navy);
}
.summit-report .report-date {
  font-size: 13.5px;
}
.summit-report .report-demo {
  flex-shrink: 0;
  margin-right: 22px;
  padding: 5px 10px;
  border-left: 3px solid var(--hs-color-cyan);
  background-color: var(--hs-color-ice);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-cyan-text);
}
.summit-report .report-fresh {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 24px 0 26px;
  padding: 20px 24px;
  background-color: var(--hs-color-navy);
  color: var(--hs-color-white);
}
.summit-report .report-fresh > i {
  font-size: 46px;
  line-height: 1;
  color: var(--hs-color-cyan);
}
.summit-report .report-fresh b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 44px;
  font-weight: 900;
  line-height: 1;
}
.summit-report .report-fresh span {
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--hs-color-white-rgb), 0.7);
}
.summit-report .report-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 28px;
}
.summit-report .report-grid li > span:first-child {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.summit-report .report-grid b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 25px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--hs-color-navy);
}
.report-bar {
  display: block;
  height: 5px;
  margin-top: 8px;
  background-color: var(--hs-color-line);
}
.report-bar i {
  display: block;
  width: calc(var(--share, 0) * 100%);
  height: 100%;
  background-color: var(--hs-color-cyan);
  transition: width 1.2s var(--hs-ease);
}
.summit-report .report-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 22px;
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--hs-color-line);
  font-size: 14.5px;
}
.summit-report .report-foot i {
  color: var(--hs-color-cyan-text);
}
.summit-report .report-foot b {
  color: var(--hs-color-navy);
}
.summit-report .report-foot .hs-link {
  margin-left: auto;
}

/*======================
12. Pass Quote
========================*/
/* The base's booking bar, now a lift pass quick quote riding the hero's foot */
.hs-quote-bar {
  position: relative;
  z-index: 3;
  margin-top: -150px;
}
.hs-pass-quote {
  display: grid;
  grid-template-columns: auto 1.25fr 0.9fr 1.1fr auto auto;
  align-items: end;
  gap: 24px;
  padding: 30px 34px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
  border-bottom: 5px solid var(--hs-color-cyan);
}
.hs-pass-quote .quote-title {
  display: flex;
  align-items: center;
  gap: 14px;
  align-self: center;
  padding-right: 8px;
}
.hs-pass-quote .quote-title > i {
  font-size: 42px;
  line-height: 1;
  color: var(--hs-color-cyan-text);
}
.hs-pass-quote .quote-title span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.3;
}
.hs-pass-quote .quote-title b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 21px;
  font-weight: 800;
  font-stretch: 110%;
  letter-spacing: 0;
  text-transform: none;
  color: var(--hs-color-navy);
}
.hs-pass-quote label,
.hs-field-label {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--hs-color-ink);
}
.hs-pass-quote .quote-result {
  align-self: center;
  min-width: 130px;
}
.hs-pass-quote .quote-total {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 34px;
  font-weight: 900;
  line-height: 1;
  color: var(--hs-color-navy);
}
.hs-pass-quote .quote-note {
  display: block;
  margin-top: 6px;
  font-size: 12.5px;
  line-height: 1.3;
}

/*======================
13. Hero Slider
========================*/
/* Home 2: the base's full-bleed slider, words centred over the photograph;
   each slide's copy comes in downhill when it becomes the active one */
.hs-hero-slider {
  position: relative;
  z-index: 0;
  height: clamp(640px, calc(100vh - 146px), 880px);
  background-color: var(--hs-color-navy);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 100px), 0 100%);
}
.hs-hero-slider .hero-slides {
  height: 100%;
}
.hs-hero-slider .swiper-slide {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding-bottom: 90px;
}
.hs-hero-slider .slide-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.hs-hero-slider .slide-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.12);
  transition: transform 8s linear;
}
.hs-hero-slider .swiper-slide-active .slide-bg img {
  transform: scale(1);
}
.hs-hero-slider .swiper-slide::after {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background: radial-gradient(ellipse at center, rgba(var(--hs-color-navy-rgb), 0.55) 0%, rgba(var(--hs-color-navy-rgb), 0.78) 100%);
}
.hs-hero-slider .slide-copy {
  max-width: 940px;
  margin: 0 auto;
  text-align: center;
}
.hs-hero-slider .slide-title {
  font-size: clamp(46px, 5.8vw, 94px);
  font-weight: 900;
  line-height: 0.96;
  letter-spacing: -0.035em;
  color: var(--hs-color-white);
}
.hs-hero-slider .slide-btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px 24px;
  margin-top: 42px;
}
.hs-hero-slider .hs-btn-cyan::after {
  background-color: var(--hs-color-white);
}
.hero-slides.swiper-initialized .slide-copy > * {
  opacity: 0;
  transform: translate(-34px, -14px) skewX(6deg);
  transition: opacity 0.8s var(--hs-ease), transform 0.9s var(--hs-ease);
}
.hero-slides.swiper-initialized .swiper-slide-active .slide-copy > * {
  opacity: 1;
  transform: none;
}
.hero-slides .swiper-slide-active .slide-copy > :nth-child(2) {
  transition-delay: 0.15s;
}
.hero-slides .swiper-slide-active .slide-copy > :nth-child(3) {
  transition-delay: 0.3s;
}
@media (prefers-reduced-motion: reduce) {
  .hero-slides.swiper-initialized .slide-copy > * {
    transform: none;
  }
  .hs-hero-slider .slide-bg img {
    transition: none;
  }
}
.hs-hero-slider .hero-controls {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 150px;
  z-index: 5;
}
.hero-controls .controls-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.hero-controls .sl-count {
  font-family: var(--hs-ff-heading);
  font-size: 15px;
  font-weight: 700;
  color: rgba(var(--hs-color-white-rgb), 0.6);
}
.hero-controls .sl-count b {
  font-size: 28px;
  font-weight: 900;
  color: var(--hs-color-white);
}
.hero-controls .controls-arrows {
  display: flex;
  gap: 12px;
}

/*======================
14. Booking Strip
========================*/
/* Home 2: the base's dark booking bar, now chalet dates priced by the rate engine */
.hs-booking-strip {
  position: relative;
  z-index: 3;
  margin-top: -80px;
}
.booking-bar {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1.1fr auto;
  align-items: end;
  gap: 22px;
  padding: 32px 36px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
}
.booking-bar label {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--hs-color-ink);
}
.booking-bar .bar-note {
  align-self: center;
  line-height: 1.35;
}
.booking-bar .bb-nights {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 17px;
  font-weight: 800;
  color: var(--hs-color-navy);
}
.booking-bar .bb-nights b {
  font-size: 22px;
  font-weight: 900;
  color: var(--hs-color-cyan-text);
}
.booking-bar .bar-note small {
  font-size: 12.5px;
}
.booking-bar.is-dark {
  background-color: var(--hs-color-navy);
}
.booking-bar.is-dark label,
.booking-bar.is-dark .bb-nights {
  color: var(--hs-color-white);
}
.booking-bar.is-dark .bb-nights b {
  color: var(--hs-color-cyan);
}
.booking-bar.is-dark .bar-note small {
  color: rgba(var(--hs-color-white-rgb), 0.6);
}
.booking-bar.is-dark .hs-btn-cyan::after {
  background-color: var(--hs-color-white);
}

/*======================
15. Panorama Hero
========================*/
/* Home 3: the base's slider with the header over it; the slides are chosen
   from thumbnails stacked at the right, each with a bar timed to the autoplay */
.hs-panorama {
  position: relative;
  z-index: 0;
  height: 940px;
  overflow: hidden;
  background-color: var(--hs-color-navy);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 110px), 0 100%);
}
.hs-panorama .panorama-slides {
  height: 100%;
}
.hs-panorama .swiper-slide {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 100px 0 110px;
}
.hs-panorama .panorama-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.hs-panorama .panorama-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.1);
  transition: transform 8s linear;
}
.hs-panorama .swiper-slide-active .panorama-bg img {
  transform: scale(1);
}
.hs-panorama .swiper-slide::after {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(var(--hs-color-navy-rgb), 0.9) 0%, rgba(var(--hs-color-navy-rgb), 0.55) 55%, rgba(var(--hs-color-navy-rgb), 0.3) 100%);
}
.hs-panorama .panorama-copy {
  max-width: 720px;
}
.hs-panorama .panorama-title {
  font-size: clamp(50px, 5.8vw, 96px);
  font-weight: 900;
  line-height: 0.96;
  letter-spacing: -0.035em;
  color: var(--hs-color-white);
}
.panorama-title .line {
  display: block;
  white-space: nowrap;
}
.panorama-title .line.is-cyan {
  color: var(--hs-color-cyan);
}
.hs-panorama .panorama-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 24px;
  margin-top: 42px;
}
.hs-panorama .hs-btn-cyan::after {
  background-color: var(--hs-color-white);
}
.panorama-slides.swiper-initialized .panorama-copy > * {
  opacity: 0;
  transform: translate(-34px, -14px) skewX(6deg);
  transition: opacity 0.8s var(--hs-ease), transform 0.9s var(--hs-ease);
}
.panorama-slides.swiper-initialized .swiper-slide-active .panorama-copy > * {
  opacity: 1;
  transform: none;
}
.panorama-slides .swiper-slide-active .panorama-copy > :nth-child(2) {
  transition-delay: 0.14s;
}
.panorama-slides .swiper-slide-active .panorama-copy > :nth-child(3) {
  transition-delay: 0.28s;
}
@media (prefers-reduced-motion: reduce) {
  .panorama-slides.swiper-initialized .panorama-copy > * {
    transform: none;
  }
  .hs-panorama .panorama-bg img {
    transition: none;
  }
}
.hs-panorama .panorama-side {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 170px;
  z-index: 5;
  pointer-events: none;
}
.hs-panorama .side-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 18px;
}
.hs-panorama .sl-thumbs,
.hs-panorama .side-arrows {
  pointer-events: auto;
}
.hs-panorama .sl-thumbs {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 310px;
}
.hs-panorama .sl-thumbs button {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: 10px;
  overflow: hidden;
  border: 1px solid rgba(var(--hs-color-white-rgb), 0.18);
  background-color: rgba(var(--hs-color-navy-rgb), 0.35);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  text-align: left;
  color: var(--hs-color-white);
  transition: background-color 0.35s var(--hs-ease), border-color 0.35s var(--hs-ease), transform 0.4s var(--hs-ease);
}
.hs-panorama .sl-thumbs button:hover {
  transform: translateX(-6px);
}
.hs-panorama .sl-thumbs button.is-active {
  background-color: rgba(var(--hs-color-white-rgb), 0.16);
  border-color: var(--hs-color-cyan);
}
.hs-panorama .sl-thumbs img {
  flex-shrink: 0;
  width: 74px;
  height: 56px;
  object-fit: cover;
}
.hs-panorama .sl-thumbs span {
  display: flex;
  flex-direction: column;
  font-family: var(--hs-ff-heading);
  font-size: 17px;
  font-weight: 800;
  font-stretch: 108%;
  line-height: 1.2;
}
.hs-panorama .sl-thumbs small {
  font-size: 12px;
  font-weight: 700;
  color: var(--hs-color-cyan);
}
.hs-panorama .thumb-bar {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 3px;
  background-color: var(--hs-color-cyan);
}
.hs-panorama .is-active .thumb-bar {
  animation: hs-thumb-bar var(--hs-autoplay, 7000ms) linear forwards;
}
@keyframes hs-thumb-bar {
  to {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hs-panorama .is-active .thumb-bar {
    width: 100%;
    animation: none;
  }
}
.hs-panorama .side-arrows {
  display: flex;
  gap: 12px;
}
.hs-booking-strip.is-flat {
  margin-top: -70px;
}

/*======================
16. About
========================*/
.hs-about-section {
  padding: 130px 0 120px;
}
.hs-about-section .hs-section-title {
  max-width: 920px;
  margin: 0 auto;
}
/* five tiles set in a V, like the valley they sit in */
.hs-about-features {
  display: flex;
  justify-content: center;
  gap: 26px;
  margin-top: 70px;
}
.hs-about-features li {
  flex: 0 1 200px;
}
.hs-about-features li:nth-child(2),
.hs-about-features li:nth-child(4) {
  margin-top: 44px;
}
.hs-about-features li:nth-child(3) {
  margin-top: 88px;
}
.hs-about-features a {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 38px 18px 32px;
  text-align: center;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  color: var(--hs-color-body);
  transition: transform 0.5s var(--hs-ease), background-color 0.4s var(--hs-ease), box-shadow 0.5s var(--hs-ease);
}
.hs-about-features a::after {
  position: absolute;
  content: "";
  left: 50%;
  bottom: 0;
  width: 44px;
  height: 5px;
  margin-left: -22px;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
}
.hs-about-features a > i {
  font-size: 50px;
  line-height: 1;
  color: var(--hs-color-cyan-text);
  transition: color 0.4s var(--hs-ease), transform 0.5s var(--hs-ease);
}
.hs-about-features .feature-title {
  margin-top: 20px;
  font-family: var(--hs-ff-heading);
  font-size: 18px;
  font-weight: 800;
  font-stretch: 108%;
  color: var(--hs-color-navy);
  transition: color 0.4s var(--hs-ease);
}
.hs-about-features small {
  margin-top: 4px;
  font-size: 13.5px;
}
.hs-about-features a:hover {
  transform: translateY(-10px);
  background-color: var(--hs-color-navy);
  box-shadow: var(--hs-shadow-lg);
  color: rgba(var(--hs-color-white-rgb), 0.75);
}
.hs-about-features a:hover > i {
  color: var(--hs-color-cyan);
  transform: rotate(-8deg);
}
.hs-about-features a:hover .feature-title {
  color: var(--hs-color-white);
}

/*======================
17. Marquee
========================*/
/* Two bands of resort words crossing on the slope angle: navy running left,
   cyan running right; GSAP drives them and leans them with the scroll */
.hs-marquee {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 60px 0;
  background-color: var(--hs-color-ice);
}
.hs-marquee .marquee-row {
  overflow: hidden;
  padding: 22px 0;
  background-color: var(--hs-color-navy);
  transform: rotate(-2deg);
  box-shadow: var(--hs-shadow-lg);
}
.hs-marquee .marquee-row.is-cyan {
  position: relative;
  z-index: -1;
  margin-top: -18px;
  background-color: var(--hs-color-cyan);
  transform: rotate(1.5deg);
}
.hs-marquee .marquee-track {
  display: flex;
  width: max-content;
}
.hs-marquee .marquee-set {
  display: flex;
  flex-shrink: 0;
  align-items: center;
}
.hs-marquee .marquee-set span {
  padding: 0 34px;
  font-family: var(--hs-ff-heading);
  font-size: clamp(30px, 3.6vw, 58px);
  font-weight: 900;
  font-stretch: 112%;
  line-height: 1;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--hs-color-white);
}
.hs-marquee .marquee-set span:nth-of-type(even) {
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(var(--hs-color-white-rgb), 0.85);
}
.hs-marquee .marquee-set i {
  font-size: clamp(24px, 2.6vw, 40px);
  line-height: 1;
  color: var(--hs-color-cyan);
}
.hs-marquee .is-cyan .marquee-set span {
  font-size: clamp(20px, 2.2vw, 32px);
  color: var(--hs-color-navy);
}
.hs-marquee .is-cyan .marquee-set span:nth-of-type(even) {
  -webkit-text-stroke: 1.5px var(--hs-color-navy);
}
.hs-marquee .is-cyan .marquee-set i {
  font-size: clamp(18px, 1.8vw, 26px);
  color: var(--hs-color-white);
}
/* inside Our Chalets: the bands cross along the top of the cyan band */
.hs-marquee.is-inset {
  padding: 70px 0 150px;
  background: none;
}
.hs-marquee.is-inset .marquee-row {
  margin: 0 -2%;
}
.hs-marquee.is-inset .marquee-row.is-white {
  position: relative;
  z-index: -1;
  margin-top: -18px;
  background-color: var(--hs-color-white);
  transform: rotate(1.5deg);
}
.hs-marquee .is-white .marquee-set span {
  font-size: clamp(20px, 2.2vw, 32px);
  color: var(--hs-color-navy);
}
.hs-marquee .is-white .marquee-set span:nth-of-type(even) {
  -webkit-text-stroke: 1.5px var(--hs-color-navy);
}
.hs-marquee .is-white .marquee-set i {
  font-size: clamp(18px, 1.8vw, 26px);
  color: var(--hs-color-cyan-text);
}

/*======================
18. Cutout Block
========================*/
/* Home 2: the base's skier cut-out, now sitting on a slope drawn behind it */
.hs-cutout-block {
  padding: 140px 0 120px;
}
.hs-cutout-block .text-img {
  position: relative;
  z-index: 0;
  padding: 30px 0 0;
  text-align: center;
}
.hs-cutout-block .cutout-slope {
  position: absolute;
  left: -10%;
  right: 0;
  bottom: 0;
  height: 72%;
  z-index: -1;
  background: linear-gradient(160deg, var(--hs-color-frost) 0%, var(--hs-color-ice) 100%);
  clip-path: polygon(0 100%, 100% 12%, 100% 100%);
}
.hs-cutout-block .text-img img {
  position: relative;
  max-width: 100%;
}
.hs-cutout-block .cutout-stat {
  position: absolute;
  right: 4%;
  top: 8%;
  z-index: 1;
  padding: 22px 28px 20px;
  text-align: left;
  background-color: var(--hs-color-navy);
  color: rgba(var(--hs-color-white-rgb), 0.7);
  box-shadow: var(--hs-shadow-lg);
  clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%);
}
.hs-cutout-block .cutout-stat b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 40px;
  font-weight: 900;
  line-height: 1;
  color: var(--hs-color-white);
}
.hs-cutout-block .cutout-stat span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/*======================
19. School Track
========================*/
/* Home 2: the base's core features grid, recomposed as the ski school's five
   levels - each card a step higher up the slope drawn behind them */
.hs-school-track {
  padding: 130px 0;
  background-color: var(--hs-color-ice);
}
.school-steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: end;
  gap: 22px;
  margin-top: 70px;
}
.school-steps::before {
  position: absolute;
  content: "";
  inset: -30px 0 0;
  z-index: -1;
  background: linear-gradient(to top right, transparent calc(50% - 1.5px), rgba(var(--hs-color-navy-rgb), 0.22) calc(50% - 1.5px), rgba(var(--hs-color-navy-rgb), 0.22) calc(50% + 1.5px), transparent calc(50% + 1.5px));
}
.school-step {
  position: relative;
  padding: 30px 24px 26px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  border-top: 5px solid var(--hs-color-navy);
  transition: transform 0.5s var(--hs-ease), box-shadow 0.5s var(--hs-ease);
}
.school-step:nth-child(2) {
  margin-bottom: 40px;
}
.school-step:nth-child(3) {
  margin-bottom: 80px;
}
.school-step:nth-child(4) {
  margin-bottom: 120px;
}
.school-step:nth-child(5) {
  margin-bottom: 160px;
}
.school-step:hover {
  transform: translateY(-8px);
  box-shadow: var(--hs-shadow-lg);
}
.school-step.is-green {
  border-top-color: var(--hs-color-green);
}
.school-step.is-blue {
  border-top-color: var(--hs-color-blue);
}
.school-step.is-red {
  border-top-color: var(--hs-color-red);
}
.school-step.is-black {
  border-top-color: var(--hs-color-black);
}
.school-step .step-marker {
  position: absolute;
  top: 26px;
  right: 24px;
  width: 16px;
  height: 16px;
  background-color: var(--hs-color-navy);
  transform: skewX(var(--hs-skew));
}
.school-step.is-green .step-marker {
  background-color: var(--hs-color-green);
}
.school-step.is-blue .step-marker {
  background-color: var(--hs-color-blue);
}
.school-step.is-red .step-marker {
  background-color: var(--hs-color-red);
}
.school-step.is-black .step-marker {
  background-color: var(--hs-color-black);
}
.school-step .step-level {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.school-step h3 {
  margin: 8px 0 10px;
  font-size: 20px;
  color: var(--hs-color-navy);
}
.school-step p {
  font-size: 14.5px;
  line-height: 1.6;
}
.school-step .step-price {
  display: block;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--hs-color-line);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.school-step .step-price b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 0;
  color: var(--hs-color-navy);
}
.school-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 34px;
  margin-top: 56px;
}
.school-cta .school-note {
  font-size: 15.5px;
}
.school-cta .school-note i {
  margin-right: 8px;
  font-size: 22px;
  color: var(--hs-color-cyan-text);
}
.school-cta .school-note b {
  color: var(--hs-color-navy);
}

/*======================
20. Chalet Cards
========================*/
.hs-feature-room-section {
  padding: 130px 0;
}
.hs-feature-room-section .chalet-rail {
  margin-top: 56px;
  padding: 0 4px 34px;
}
.hs-chalet-card {
  height: 100%;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  transition: transform 0.5s var(--hs-ease), box-shadow 0.5s var(--hs-ease);
}
.hs-chalet-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--hs-shadow-lg);
}
.hs-chalet-card .card-media {
  aspect-ratio: 4 / 3;
}
.hs-chalet-card .card-tag {
  position: absolute;
  left: 22px;
  top: 22px;
  z-index: 1;
  padding: 7px 14px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-white);
  isolation: isolate;
}
.hs-chalet-card .card-tag::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background-color: var(--hs-color-navy);
  transform: skewX(var(--hs-skew));
}
.hs-chalet-card .card-body {
  padding: 26px 28px 28px;
}
.hs-chalet-card .card-icons {
  display: flex;
  gap: 8px;
  margin-bottom: 18px;
}
.hs-chalet-card .card-icons li {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  background-color: var(--hs-color-ice);
  font-size: 19px;
  color: var(--hs-color-cyan-text);
}
.hs-chalet-card h3 {
  font-size: 23px;
}
.hs-chalet-card h3 a {
  color: var(--hs-color-navy);
}
.hs-chalet-card h3 a:hover {
  color: var(--hs-color-cyan-text);
}
.hs-chalet-card .card-meta {
  margin: 8px 0 20px;
  font-size: 14.5px;
}
.hs-chalet-card .card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 18px;
  border-top: 1px solid var(--hs-color-line);
}
.hs-chalet-card .card-price {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.hs-chalet-card .card-price b {
  font-family: var(--hs-ff-heading);
  font-size: 22px;
  font-weight: 900;
  letter-spacing: 0;
  color: var(--hs-color-navy);
}

/*======================
21. Film Band
========================*/
/* Home 2: the base's full-width video band - a big play plate on the mountain */
.hs-film-band {
  position: relative;
  z-index: 0;
  padding: 200px 0;
  background-size: cover;
  background-position: center;
  text-align: center;
}
.hs-film-band::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(var(--hs-color-navy-rgb), 0.45), rgba(var(--hs-color-navy-rgb), 0.75));
}
.hs-film-band .film-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.hs-film-band .film-play {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 116px;
  height: 116px;
  margin-bottom: 34px;
  font-size: 30px;
  color: var(--hs-color-navy);
}
.hs-film-band .film-play::before,
.hs-film-band .film-play::after {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.35s var(--hs-ease);
}
.hs-film-band .film-play::after {
  z-index: -2;
  background-color: transparent;
  border: 2px solid var(--hs-color-cyan);
  animation: hs-play-pulse 2.4s var(--hs-ease) infinite;
}
.hs-film-band .film-play:hover::before {
  background-color: var(--hs-color-white);
}
@media (prefers-reduced-motion: reduce) {
  .hs-film-band .film-play::after {
    animation: none;
  }
}
.hs-film-band h2 {
  font-size: clamp(38px, 5vw, 78px);
  font-weight: 900;
  line-height: 1;
  color: var(--hs-color-white);
}

/*======================
22. About Collage
========================*/
/* Home 3: the base's four-tile collage - two cards, two photographs, the
   second column set lower - beside the story */
.hs-about-collage {
  padding: 140px 0 150px;
}
.collage-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.collage-grid > :nth-child(even) {
  margin-top: 44px;
  margin-bottom: -44px;
}
.collage-card {
  padding: 36px 30px 32px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
}
.collage-card > i {
  font-size: 50px;
  line-height: 1;
  color: var(--hs-color-cyan-text);
}
.collage-card h3 {
  margin: 18px 0 10px;
  font-size: 21px;
}
.collage-card h3 a {
  color: var(--hs-color-navy);
}
.collage-card.is-cyan {
  background-color: var(--hs-color-cyan);
  color: rgba(var(--hs-color-navy-rgb), 0.85);
}
.collage-card.is-cyan > i,
.collage-card.is-cyan h3 a {
  color: var(--hs-color-navy);
}
.collage-photo {
  overflow: hidden;
}
.collage-photo img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 37 / 35;
  object-fit: cover;
}
.collage-text {
  padding-left: 30px;
}
.collage-text > p {
  margin-top: 4px;
}
.collage-figures {
  display: flex;
  gap: 50px;
  margin: 32px 0 38px;
  padding: 24px 0;
  border-top: 1px solid var(--hs-color-line);
  border-bottom: 1px solid var(--hs-color-line);
}
.collage-figures b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 48px;
  font-weight: 900;
  line-height: 1;
  color: var(--hs-color-navy);
}
.collage-figures div > span {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/*======================
23. Room Picks
========================*/
/* Home 3: the base's hand picked rooms - a centred rail, the slide in front
   full size with its card, the ones beside it stepped back */
.hs-room-picks {
  padding: 130px 0 120px;
  overflow: hidden;
  background-color: var(--hs-color-ice);
}
.hs-room-picks .picks-rail {
  margin-top: 60px;
}
.pick-card {
  position: relative;
  transform: scale(0.9);
  opacity: 0.45;
  transition: transform 0.8s var(--hs-ease), opacity 0.8s var(--hs-ease);
}
.swiper-slide-active .pick-card {
  transform: none;
  opacity: 1;
}
.pick-card .pick-media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.pick-card .pick-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pick-card .pick-info {
  position: absolute;
  left: 30px;
  right: 30px;
  bottom: 30px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 28px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
  clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%);
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s var(--hs-ease) 0.2s, transform 0.6s var(--hs-ease) 0.2s;
}
.swiper-slide-active .pick-info {
  opacity: 1;
  transform: none;
}
.pick-card .pick-meta {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.pick-card h3 {
  margin-top: 4px;
  font-size: 26px;
}
.pick-card h3 a {
  color: var(--hs-color-navy);
}
.pick-card .pick-price {
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
}
.pick-card .pick-price b {
  font-family: var(--hs-ff-heading);
  font-size: 28px;
  font-weight: 900;
  color: var(--hs-color-navy);
}
.picks-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-top: 44px;
}

/*======================
24. Intro Film
========================*/
.hs-intro-film {
  padding: 130px 0;
  background-color: var(--hs-color-navy);
}
.hs-intro-film .film-lead {
  margin: 6px 0 36px;
  color: rgba(var(--hs-color-white-rgb), 0.75);
}

/*======================
25. Services
========================*/
/* Home 3: the base's core features - six services on a ruled grid, no numerals */
.hs-services {
  padding: 130px 0;
  background-color: var(--hs-color-ice);
}
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 60px;
  border-top: 1px solid var(--hs-color-line-2);
  border-left: 1px solid var(--hs-color-line-2);
}
.service-item {
  position: relative;
  padding: 44px 40px 40px;
  border-right: 1px solid var(--hs-color-line-2);
  border-bottom: 1px solid var(--hs-color-line-2);
  background-color: rgba(var(--hs-color-white-rgb), 0.55);
  transition: background-color 0.4s var(--hs-ease);
}
.service-item::before {
  position: absolute;
  content: "";
  left: -1px;
  right: -1px;
  top: -1px;
  height: 4px;
  background-color: var(--hs-color-cyan);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.5s var(--hs-ease);
}
.service-item:hover {
  background-color: var(--hs-color-white);
}
.service-item:hover::before {
  transform: scaleX(1);
}
.service-item > i {
  display: inline-block;
  font-size: 50px;
  line-height: 1;
  color: var(--hs-color-cyan-text);
  transition: transform 0.5s var(--hs-ease);
}
.service-item:hover > i {
  transform: translateY(-6px) rotate(-6deg);
}
.service-item h3 {
  margin: 22px 0 10px;
  font-size: 21px;
  color: var(--hs-color-navy);
}

/*======================
26. Apres Menu
========================*/
/* Home 3: the base's food menu - two pages on a rail, the dishes in two
   columns, the gallery beneath */
.hs-apres-menu {
  padding: 130px 0;
}
.hs-apres-menu .menu-rail {
  margin-top: 50px;
}
.menu-page-title {
  display: block;
  margin-bottom: 10px;
  font-family: var(--hs-ff-heading);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--hs-color-cyan-text);
}
.menu-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 60px;
}
.menu-row {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px dashed var(--hs-color-line-2);
}
.menu-row img {
  width: 72px;
  height: 72px;
  object-fit: cover;
}
.menu-row h3 {
  font-size: 18px;
  color: var(--hs-color-navy);
}
.menu-row p {
  margin-top: 4px;
  font-size: 14px;
}
.menu-row .menu-price {
  font-family: var(--hs-ff-heading);
  font-size: 20px;
  font-weight: 900;
  color: var(--hs-color-navy);
}
.menu-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 50px;
}
.menu-gallery .hs-frame {
  aspect-ratio: 1 / 1;
}
.menu-gallery .menu-more {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  background-color: var(--hs-color-navy);
  font-family: var(--hs-ff-heading);
  font-size: 20px;
  font-weight: 800;
  color: var(--hs-color-white);
  transition: background-color 0.35s var(--hs-ease), color 0.35s var(--hs-ease);
}
.menu-gallery .menu-more i {
  color: var(--hs-color-cyan);
  transition: transform 0.35s var(--hs-ease);
}
.menu-gallery .menu-more:hover {
  background-color: var(--hs-color-cyan);
  color: var(--hs-color-navy);
}
.menu-gallery .menu-more:hover i {
  color: var(--hs-color-navy);
  transform: translateX(6px);
}

/*======================
27. Room Tab
========================*/
.hs-room-type-section {
  position: relative;
  z-index: 0;
  padding: 120px 0 130px;
  background-size: cover;
  background-position: center;
}
.hs-room-type-section::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(var(--hs-color-ice-rgb), 0.97) 0%, rgba(var(--hs-color-ice-rgb), 0.9) 100%);
}
.hs-room-filter {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}
.hs-room-filter .nav-link {
  position: relative;
  z-index: 0;
  height: 46px;
  padding: 0 22px;
  border: 0;
  border-radius: 0;
  background: none;
  font-family: var(--hs-ff-heading);
  font-size: 13.5px;
  font-weight: 700;
  font-stretch: 106%;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hs-color-navy);
}
.hs-room-filter .nav-link::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  border: 2px solid var(--hs-color-line-2);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.35s var(--hs-ease), border-color 0.35s var(--hs-ease);
}
.hs-room-filter .nav-link:hover::before {
  border-color: var(--hs-color-navy);
}
.hs-room-filter .nav-link.active {
  color: var(--hs-color-white);
}
.hs-room-filter .nav-link.active::before {
  background-color: var(--hs-color-navy);
  border-color: var(--hs-color-navy);
}
/* the base's mosaic: a wide card and two halves beside a tall one */
.hs-room-mosaic {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 300px 300px;
  gap: 30px;
  margin-top: 60px;
}
.hs-room-mosaic .hs-room-box:nth-child(1) {
  grid-column: 1 / span 2;
  grid-row: 1;
}
.hs-room-mosaic .hs-room-box:nth-child(2) {
  grid-column: 3;
  grid-row: 1 / span 2;
}
.hs-room-mosaic .hs-room-box:nth-child(3) {
  grid-column: 1;
  grid-row: 2;
}
.hs-room-mosaic .hs-room-box:nth-child(4) {
  grid-column: 2;
  grid-row: 2;
}
.hs-room-mosaic.is-flipped .hs-room-box:nth-child(1) {
  grid-column: 2 / span 2;
}
.hs-room-mosaic.is-flipped .hs-room-box:nth-child(2) {
  grid-column: 1;
}
.hs-room-mosaic.is-flipped .hs-room-box:nth-child(3) {
  grid-column: 2;
}
.hs-room-mosaic.is-flipped .hs-room-box:nth-child(4) {
  grid-column: 3;
}
.hs-room-mosaic .hs-room-box {
  position: relative;
  z-index: 0;
  display: block;
  overflow: hidden;
  color: var(--hs-color-white);
}
.hs-room-mosaic .hs-room-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.hs-room-mosaic .hs-room-box::after {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(var(--hs-color-navy-rgb), 0) 35%, rgba(var(--hs-color-navy-rgb), 0.88) 100%);
}
.hs-room-mosaic .hs-room-content {
  position: absolute;
  left: 30px;
  right: 96px;
  bottom: 28px;
}
.hs-room-mosaic .room-count,
.hs-room-mosaic .room-price {
  display: block;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(var(--hs-color-white-rgb), 0.82);
}
.hs-room-mosaic .room-count i {
  margin-right: 8px;
  color: var(--hs-color-cyan);
}
.hs-room-mosaic .room-name {
  display: block;
  margin: 6px 0 4px;
  font-family: var(--hs-ff-heading);
  font-size: 27px;
  font-weight: 800;
  font-stretch: 110%;
  line-height: 1.1;
  color: var(--hs-color-white);
}
.hs-room-mosaic .room-price b {
  font-family: var(--hs-ff-heading);
  font-size: 16px;
  color: var(--hs-color-cyan);
}
.hs-room-mosaic .hs-room-link {
  position: absolute;
  right: 30px;
  bottom: 30px;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  color: var(--hs-color-navy);
}
.hs-room-mosaic .hs-room-link::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.35s var(--hs-ease), transform 0.4s var(--hs-ease);
}
.hs-room-mosaic .hs-room-box:hover .hs-room-link::before {
  background-color: var(--hs-color-white);
  transform: skewX(-14deg);
}
.hs-room-mosaic .hs-room-box:focus-visible {
  outline: 3px solid var(--hs-color-cyan-text);
  outline-offset: 3px;
}

/*======================
28. Piste Finder
========================*/
.hs-cta-section {
  padding: 130px 0;
}
.hs-cta-inner {
  position: relative;
  padding: 60px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
}
/* the base's navy rule along the foot, with a cyan run cut into it */
.hs-cta-inner::after {
  position: absolute;
  content: "";
  left: 0;
  right: 0;
  bottom: -8px;
  height: 8px;
  background: linear-gradient(90deg, var(--hs-color-cyan) 0 22%, var(--hs-color-navy) 22% 100%);
}
.hs-cta-text > p {
  margin: 6px 0 28px;
}
.grade-picks {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.grade-pick {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 42px;
  padding: 0 14px 0 34px;
  border: 0;
  background-color: var(--hs-color-ice);
  font-family: var(--hs-ff-heading);
  font-size: 13px;
  font-weight: 700;
  font-stretch: 106%;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hs-color-navy);
  transition: background-color 0.3s var(--hs-ease), color 0.3s var(--hs-ease);
}
/* the grade's own colour, as a marker cut on the slope */
.grade-pick::before,
.piste-grade {
  width: 12px;
  height: 12px;
  background-color: var(--hs-color-navy);
  transform: skewX(var(--hs-skew));
}
.grade-pick::before {
  position: absolute;
  content: "";
  left: 14px;
  top: 50%;
  margin-top: -6px;
}
.grade-pick.is-green::before,
.piste-row.is-green .piste-grade {
  background-color: var(--hs-color-green);
}
.grade-pick.is-blue::before,
.piste-row.is-blue .piste-grade {
  background-color: var(--hs-color-blue);
}
.grade-pick.is-red::before,
.piste-row.is-red .piste-grade {
  background-color: var(--hs-color-red);
}
.grade-pick.is-black::before,
.piste-row.is-black .piste-grade {
  background-color: var(--hs-color-black);
}
.grade-pick[data-grade="all"]::before {
  background: linear-gradient(90deg, var(--hs-color-green) 0 25%, var(--hs-color-blue) 25% 50%, var(--hs-color-red) 50% 75%, var(--hs-color-black) 75% 100%);
}
.grade-pick small {
  font-family: var(--hs-ff-body);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--hs-color-body);
}
.grade-pick:hover {
  background-color: var(--hs-color-frost);
}
.grade-pick.is-active {
  background-color: var(--hs-color-navy);
  color: var(--hs-color-white);
}
.grade-pick.is-active small {
  color: rgba(var(--hs-color-white-rgb), 0.7);
}
.hs-cta-text .piste-open {
  margin: 20px 0 30px;
}
.piste-board .board-head,
.piste-row {
  display: grid;
  grid-template-columns: 14px minmax(0, 2.3fr) 1fr 1.1fr 1.2fr;
  align-items: center;
  gap: 18px;
}
.piste-board .board-head {
  padding-bottom: 14px;
  border-bottom: 2px solid var(--hs-color-navy);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.piste-board .board-head span:first-child {
  grid-column: 1 / span 2;
}
.piste-row {
  padding: 16px 0;
  border-bottom: 1px solid var(--hs-color-line);
  font-size: 14px;
}
.piste-grade {
  display: block;
}
.piste-name b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 17px;
  font-weight: 800;
  font-stretch: 106%;
  line-height: 1.2;
  color: var(--hs-color-navy);
}
.piste-name small {
  font-size: 13px;
}
.piste-name small i {
  margin-right: 4px;
  color: var(--hs-color-cyan-text);
}
.piste-stat b {
  font-family: var(--hs-ff-heading);
  font-size: 18px;
  font-weight: 800;
  color: var(--hs-color-navy);
}
.piste-state {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--hs-color-green);
}
.piste-row.is-closed {
  opacity: 0.5;
}
.piste-row.is-closed .piste-state {
  color: var(--hs-color-red);
}
.piste-empty {
  padding: 30px 0;
}
.piste-board .board-foot {
  margin-top: 18px;
  font-size: 13.5px;
}
/* Home 1: the finder's board on a navy band with snow falling around it */
.hs-cta-section.is-dark {
  position: relative;
  z-index: 0;
  overflow: hidden;
  background-color: var(--hs-color-navy);
}
.hs-cta-section.is-dark .hs-snowfall {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.hs-cta-section.is-dark .hs-cta-inner {
  box-shadow: 0 40px 80px rgba(0, 0, 0, 0.3);
}

/*======================
29. Call To Action Two
========================*/
.hs-room-gallery-cta {
  position: relative;
  z-index: 0;
  overflow: hidden;
  padding: 0 0 300px;
  background-color: var(--hs-color-cyan);
  background-size: cover;
  background-position: center;
}
.hs-room-gallery-cta > .container {
  position: relative;
  z-index: 2;
}
/* the photograph under a cyan veil; the edges stay straight so nothing shows
   between this band and the sections either side */
.hs-room-gallery-cta::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -2;
  background: linear-gradient(180deg, rgba(var(--hs-color-cyan-rgb), 0.9), rgba(var(--hs-color-cyan-rgb), 0.84));
}
.hs-room-gallery-cta .hs-cta-text h2 {
  max-width: 900px;
  margin: 0 auto;
  font-size: clamp(30px, 3vw, 46px);
  font-weight: 900;
  line-height: 1.1;
  color: var(--hs-color-navy);
}
.hs-room-gallery-cta .hs-eyebrow {
  color: var(--hs-color-navy);
}
.hs-room-gallery-cta .hs-eyebrow::before {
  background-color: var(--hs-color-white);
}
.hs-room-gallery-cta .cta-btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px 24px;
  margin-top: 46px;
}
.hs-room-gallery-cta .hs-btn::after {
  background-color: var(--hs-color-white);
}
.hs-room-gallery-cta .hs-btn-line:hover {
  color: var(--hs-color-navy);
}
.hs-room-gallery-cta .hs-btn-line::after {
  background-color: var(--hs-color-white);
}
.hs-rotate-images img {
  position: absolute;
  z-index: -1;
  object-fit: cover;
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}
.hs-rotate-images .hs-rotate-image-one {
  left: 2%;
  top: 240px;
  width: 320px;
  height: 320px;
}
.hs-rotate-images .rotate-image-two {
  left: 13%;
  bottom: 120px;
  width: 210px;
  height: 210px;
}
.hs-rotate-images .hs-rotate-image-three {
  right: 2%;
  top: 50%;
  width: 360px;
  height: 360px;
  margin-top: -60px;
}
/* a white frame line around each diamond */
.hs-rotate-images img {
  filter: drop-shadow(0 18px 30px rgba(var(--hs-color-navy-rgb), 0.25));
}

/*======================
30. Text Block
========================*/
.hs-text-block.hs-with-bg {
    background-size: cover;
    background-position: center;
    position: relative;
    z-index: 1;
}

.hs-text-block.hs-with-bg::after {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    content: '';
    background-color: var(--hs-color-white);
    z-index: -1;
    opacity: 0.94;
}

/*======================
31. Video
========================*/
.hs-video-wrap {
  position: relative;
  z-index: 0;
  display: block;
  overflow: hidden;
  color: var(--hs-color-white);
}
.hs-video-wrap img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
  transition: transform 1.2s var(--hs-ease);
}
.hs-video-wrap::after {
  position: absolute;
  content: "";
  inset: 0;
  background: linear-gradient(180deg, rgba(var(--hs-color-navy-rgb), 0.05) 40%, rgba(var(--hs-color-navy-rgb), 0.7) 100%);
}
.hs-video-wrap:hover img {
  transform: scale(1.05);
}
.hs-video-wrap .video-play {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 96px;
  margin: -48px 0 0 -48px;
  font-size: 24px;
  color: var(--hs-color-navy);
}
.hs-video-wrap .video-play::before,
.hs-video-wrap .video-play::after {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
}
/* a second plate pulses out from the first */
.hs-video-wrap .video-play::after {
  z-index: -2;
  background-color: transparent;
  border: 2px solid var(--hs-color-cyan);
  animation: hs-play-pulse 2.4s var(--hs-ease) infinite;
}
@keyframes hs-play-pulse {
  0% {
    opacity: 0.9;
    transform: skewX(var(--hs-skew)) scale(1);
  }
  100% {
    opacity: 0;
    transform: skewX(var(--hs-skew)) scale(1.6);
  }
}
@media (prefers-reduced-motion: reduce) {
  .hs-video-wrap .video-play::after {
    animation: none;
  }
}
.hs-video-wrap .video-label {
  position: absolute;
  left: 28px;
  bottom: 24px;
  z-index: 1;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.hs-text-block.hs-with-bg {
  position: relative;
  z-index: 0;
  padding: 130px 0;
  background-size: cover;
  background-position: center;
}
.hs-text-block.hs-with-bg::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background-color: rgba(var(--hs-color-white-rgb), 0.92);
}
.hs-block-text > p {
  margin: 4px 0 34px;
}

/*======================
32. Testimonial
========================*/
.testimonial-section {
  padding: 130px 0 120px;
  background-color: var(--hs-color-ice);
}
.testimonial-section .review-rail {
  margin-top: 60px;
  padding: 12px 4px 34px;
}
.hs-testimonial-box {
  position: relative;
  height: 100%;
  padding: 44px 34px 38px;
  text-align: center;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  transition: transform 0.5s var(--hs-ease), box-shadow 0.5s var(--hs-ease);
}
.hs-testimonial-box::before {
  position: absolute;
  content: "";
  left: 50%;
  top: 0;
  width: 60px;
  height: 5px;
  margin-left: -30px;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
}
.hs-testimonial-box:hover {
  transform: translateY(-6px);
  box-shadow: var(--hs-shadow-lg);
}
.hs-testimonial-box .hs-client-img {
  position: relative;
  width: 96px;
  height: 96px;
  margin: 0 auto 22px;
}
.hs-testimonial-box .hs-client-img img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.hs-testimonial-box .client-mark {
  position: absolute;
  right: -6px;
  bottom: 2px;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  font-size: 11px;
  color: var(--hs-color-navy);
}
.hs-testimonial-box .client-mark::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
}
.hs-testimonial-box h3 {
  font-size: 20px;
}
.hs-testimonial-box .hs-clinet-post {
  display: block;
  margin: 6px 0 10px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-cyan-text);
}
.hs-testimonial-box p {
  margin-top: 16px;
}
.testimonial-section .review-dots {
  margin-top: 16px;
}

/*======================
33. Ticket Reviews
========================*/
/* Reviews written on lift tickets, clipped to the cable like chairs on a lift */
.hs-ticket-reviews {
  padding: 130px 0 120px;
  background-color: var(--hs-color-ice);
  overflow: hidden;
}
.review-mini {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 14px;
}
.review-panel.is-slim {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
}
.review-panel.is-slim .panel-logo {
  height: 24px;
  width: auto;
}
.review-panel .score-value {
  font-family: var(--hs-ff-heading);
  font-size: 24px;
  font-weight: 900;
  line-height: 1;
  color: var(--hs-color-navy);
}
.score-symbols,
.chalet-rating {
  display: inline-flex;
  gap: 2px;
  font-size: 13px;
  color: var(--hs-color-gold);
}
.score-symbols.is-bubbles {
  color: var(--hs-color-trip);
}
.score-symbols .is-empty,
.chalet-rating .is-empty {
  opacity: 0.35;
}
.ticket-line {
  position: relative;
  height: 3px;
  margin: 70px -60px 0;
  background-color: var(--hs-color-navy);
}
.ticket-line::before,
.ticket-line::after {
  position: absolute;
  content: "";
  top: -8px;
  width: 18px;
  height: 18px;
  border: 3px solid var(--hs-color-navy);
  border-radius: 50%;
  background-color: var(--hs-color-ice);
}
.ticket-line::before {
  left: 40px;
}
.ticket-line::after {
  right: 40px;
}
.ticket-rail {
  margin: -3px -14px 0;
  padding: 0 14px 40px;
}
.lift-ticket {
  position: relative;
  margin-top: 36px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  transform-origin: 50% -36px;
  transition: transform 0.6s var(--hs-ease), box-shadow 0.5s var(--hs-ease);
}
.swiper-slide:nth-child(odd) .lift-ticket {
  transform: rotate(-1.6deg);
}
.swiper-slide:nth-child(even) .lift-ticket {
  transform: rotate(1.2deg);
}
.swiper-slide .lift-ticket:hover {
  transform: rotate(0deg) translateY(-4px);
  box-shadow: var(--hs-shadow-lg);
}
/* the clip from the cable to the ticket's punched hole */
.lift-ticket .ticket-clip {
  position: absolute;
  left: 50%;
  top: -39px;
  z-index: 2;
  width: 16px;
  height: 52px;
  margin-left: -8px;
  border: 3px solid var(--hs-color-navy);
  border-radius: 8px;
}
.lift-ticket .ticket-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 26px 24px 14px;
  background-color: var(--hs-color-navy);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-white);
}
.lift-ticket .ticket-head span + span {
  color: var(--hs-color-cyan);
}
.lift-ticket .ticket-body {
  padding: 26px 24px 22px;
}
.lift-ticket .ticket-who {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.lift-ticket .ticket-who img {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  object-fit: cover;
}
.lift-ticket h3 {
  margin-bottom: 4px;
  font-size: 18px;
}
.lift-ticket .ticket-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 24px;
  border-top: 2px dashed var(--hs-color-line-2);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.lift-ticket .ticket-code {
  width: 110px;
  height: 22px;
  background: repeating-linear-gradient(90deg, var(--hs-color-navy) 0 2px, transparent 2px 4px, var(--hs-color-navy) 4px 5px, transparent 5px 8px, var(--hs-color-navy) 8px 11px, transparent 11px 13px);
}
.ticket-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-top: 30px;
}

/*======================
34. Latest Post
========================*/
.hs-latest-news {
  padding: 130px 0;
}
.hs-latest-news .news-rail {
  margin-top: 56px;
  padding: 0 4px 30px;
}
.hs-latest-post-box {
  height: 100%;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  transition: transform 0.5s var(--hs-ease), box-shadow 0.5s var(--hs-ease);
}
.hs-latest-post-box:hover {
  transform: translateY(-8px);
  box-shadow: var(--hs-shadow-lg);
}
.hs-latest-post-box .hs-post-img {
  aspect-ratio: 4 / 3;
}
.hs-latest-post-box .hs-post-desc {
  position: relative;
  padding: 30px 30px 34px;
}
/* a slope cut where the photograph meets the words */
.hs-latest-post-box .hs-post-desc::before {
  position: absolute;
  content: "";
  left: 0;
  right: 0;
  top: -26px;
  height: 27px;
  background-color: var(--hs-color-white);
  clip-path: polygon(0 100%, 100% 0, 100% 100%);
}
.hs-latest-post-box .hs-post-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.hs-latest-post-box .hs-post-meta i {
  margin-right: 7px;
  color: var(--hs-color-cyan-text);
}
.hs-latest-post-box h3 {
  margin: 14px 0 12px;
  font-size: 21px;
  line-height: 1.25;
}
.hs-latest-post-box h3 a {
  color: var(--hs-color-navy);
}
.hs-latest-post-box h3 a:hover {
  color: var(--hs-color-cyan-text);
}

/*======================
35. Room Slider
========================*/
.hs-room-slider {
  position: relative;
  overflow: hidden;
}
.hs-room-slider .hs-slider-img {
  height: 640px;
  overflow: hidden;
}
.hs-room-slider .hs-slider-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--hs-ease);
}
.hs-room-slider .swiper-slide:not(.swiper-slide-active) .hs-slider-img img {
  transform: scale(1.06);
}
.hs-room-slider .hs-rooms-content-wrap {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  pointer-events: none;
}
.hs-room-slider .hs-room-content-box {
  position: relative;
  width: 430px;
  padding: 54px 46px 46px;
  background-color: var(--hs-color-cyan);
  color: rgba(var(--hs-color-navy-rgb), 0.85);
  pointer-events: auto;
  box-shadow: var(--hs-shadow-lg);
}
.hs-room-slider .box-count {
  position: absolute;
  z-index: 2;
  top: 30px;
  right: 36px;
  font-family: var(--hs-ff-heading);
  font-size: 14px;
  font-weight: 700;
  color: rgba(var(--hs-color-navy-rgb), 0.6);
}
.hs-room-slider .box-count b {
  font-size: 26px;
  font-weight: 900;
  color: var(--hs-color-navy);
}
.hs-room-slider .room-words .swiper-slide {
  background-color: var(--hs-color-cyan);
}
.hs-room-slider .room-words i {
  font-size: 56px;
  line-height: 1;
  color: var(--hs-color-navy);
}
.hs-room-slider .room-words h3 {
  margin: 20px 0 12px;
  font-size: 32px;
}
.hs-room-slider .room-words h3 a {
  color: var(--hs-color-navy);
}
.hs-room-slider .room-words h3 a:hover {
  color: var(--hs-color-white);
}
.hs-room-slider .box-price {
  display: block;
  margin-top: 20px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--hs-color-navy);
}
.hs-room-slider .box-price b {
  font-family: var(--hs-ff-heading);
  font-size: 18px;
}
.hs-room-slider .box-nav {
  display: flex;
  gap: 12px;
  margin-top: 30px;
}
.hs-room-slider .box-nav .sl-prev,
.hs-room-slider .box-nav .sl-next {
  color: var(--hs-color-white);
}
.hs-room-slider .box-nav .sl-prev::before,
.hs-room-slider .box-nav .sl-next::before {
  background-color: var(--hs-color-navy);
}
.hs-room-slider .box-nav .sl-prev:hover,
.hs-room-slider .box-nav .sl-next:hover {
  color: var(--hs-color-navy);
}
.hs-room-slider .box-nav .sl-prev:hover::before,
.hs-room-slider .box-nav .sl-next:hover::before {
  background-color: var(--hs-color-white);
  border-color: var(--hs-color-white);
}

/*======================
36. Counter
========================*/
.hs-counter-section {
  position: relative;
  z-index: 0;
  padding: 100px 0;
  background-color: var(--hs-color-navy);
}
.hs-counter-section .counter-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.hs-counter-box {
  padding: 0 34px;
  color: rgba(var(--hs-color-white-rgb), 0.65);
}
.hs-counter-box + .hs-counter-box {
  border-left: 1px solid rgba(var(--hs-color-white-rgb), 0.14);
}
.hs-counter-box > i {
  font-size: 46px;
  line-height: 1;
  color: var(--hs-color-cyan);
}
.hs-counter-box b {
  display: block;
  margin: 18px 0 6px;
  font-family: var(--hs-ff-heading);
  font-size: clamp(40px, 4vw, 60px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--hs-color-white);
  font-variant-numeric: tabular-nums;
}
.hs-counter-box > span {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
/* Home 3: the numbers in a boxed band inside the container */
.hs-counter-section.is-boxed {
  padding: 0 0 20px;
  background-color: transparent;
}
.hs-counter-section.is-boxed .counter-box-wrap {
  padding: 70px 30px;
  background-color: var(--hs-color-navy);
  overflow: hidden;
}

/*======================
37. Pass Builder
========================*/
/* lift-passes.html: the builder in white panels, the bill in a navy card that
   stays in view beside it */
.hs-pass-page {
  padding: 110px 0 120px;
  background-color: var(--hs-color-ice);
}
.builder-panel {
  margin-bottom: 24px;
  padding: 36px 40px 38px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
}
.builder-panel .panel-head {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 28px;
}
.builder-panel .panel-head > i {
  font-size: 42px;
  line-height: 1;
  color: var(--hs-color-cyan-text);
}
.builder-panel .panel-title {
  font-size: 24px;
  color: var(--hs-color-navy);
}
.builder-panel .panel-head p {
  margin-top: 4px;
  font-size: 15px;
}
.days-range label {
  display: flex;
  justify-content: space-between;
}
.days-range label b {
  font-family: var(--hs-ff-heading);
  font-size: 15px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--hs-color-cyan-text);
}
.days-range input[type="range"] {
  width: 100%;
  height: 50px;
  margin: 0;
  background: transparent;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.days-range input[type="range"]::-webkit-slider-runnable-track {
  height: 6px;
  background-color: var(--hs-color-line);
}
.days-range input[type="range"]::-moz-range-track {
  height: 6px;
  background-color: var(--hs-color-line);
}
.days-range input[type="range"]::-moz-range-progress {
  height: 6px;
  background-color: var(--hs-color-cyan);
}
.days-range input[type="range"]::-webkit-slider-thumb {
  width: 24px;
  height: 24px;
  margin-top: -9px;
  border: 0;
  background-color: var(--hs-color-navy);
  transform: skewX(var(--hs-skew));
  -webkit-appearance: none;
  appearance: none;
}
.days-range input[type="range"]::-moz-range-thumb {
  width: 22px;
  height: 22px;
  border: 0;
  border-radius: 0;
  background-color: var(--hs-color-navy);
}
.days-range input[type="range"]:focus-visible {
  outline: 2px solid var(--hs-color-cyan-text);
  outline-offset: 2px;
}
.days-range .range-ends {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.party-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 40px;
}
.party-row {
  border-bottom: 1px solid var(--hs-color-line);
}
.party-row .hs-stepper {
  gap: 12px;
  padding: 14px 0;
}
.party-row .party-price {
  margin-left: auto;
  font-family: var(--hs-ff-heading);
  font-size: 16px;
  font-weight: 800;
  color: var(--hs-color-navy);
}
.grade-pick-set {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 36px;
  margin: 0 0 12px;
  padding: 0;
  border: 0;
}
.grade-pick-set legend {
  float: none;
  width: 100%;
}
.grade-pick-set .check-label b {
  margin-right: 6px;
  color: var(--hs-color-navy);
}
.hs-pass-summary {
  position: sticky;
  top: 110px;
  padding: 34px 32px 30px;
  background-color: var(--hs-color-navy);
  box-shadow: var(--hs-shadow-lg);
  color: rgba(var(--hs-color-white-rgb), 0.75);
}
.hs-pass-summary .summary-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.hs-pass-summary .summary-label {
  font-family: var(--hs-ff-heading);
  font-size: 24px;
  font-weight: 800;
  font-stretch: 110%;
  color: var(--hs-color-white);
}
.hs-pass-summary .summary-season {
  padding: 5px 10px;
  border-left: 3px solid var(--hs-color-cyan);
  background-color: rgba(var(--hs-color-white-rgb), 0.08);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-cyan);
}
.hs-pass-summary .summary-dates {
  margin: 10px 0 20px;
  font-size: 14px;
}
.sum-lines li {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 0;
  border-bottom: 1px solid rgba(var(--hs-color-white-rgb), 0.12);
  font-size: 14.5px;
}
.sum-lines b {
  flex-shrink: 0;
  color: var(--hs-color-white);
}
.sum-lines .is-saving b {
  color: var(--hs-color-cyan);
}
.hs-pass-summary .summary-total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-top: 20px;
}
.hs-pass-summary .summary-total span {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.hs-pass-summary .summary-total b {
  font-family: var(--hs-ff-heading);
  font-size: 42px;
  font-weight: 900;
  line-height: 1;
  color: var(--hs-color-white);
}
.hs-pass-summary .summary-per {
  min-height: 20px;
  margin-top: 6px;
  font-size: 13px;
  text-align: right;
}
.hs-pass-summary .sum-cta {
  width: 100%;
  margin: 22px 0 20px;
}
.hs-pass-summary .sum-cta::after {
  background-color: var(--hs-color-white);
}
.summary-notes li {
  margin-top: 8px;
  font-size: 13.5px;
}
.summary-notes i {
  margin-right: 8px;
  color: var(--hs-color-cyan);
}

/*======================
38. Season Strip
========================*/
.hs-season-strip {
  padding: 120px 0;
  background-color: var(--hs-color-ice);
}
.season-bands {
  display: flex;
  margin: 60px 10px 0;
}
.season-bands .band {
  flex: 1 1 0;
  margin-left: -10px;
  padding: 28px 22px 26px 30px;
  background-color: var(--hs-color-cyan);
  color: var(--hs-color-navy);
  clip-path: polygon(14px 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
}
.season-bands .band[data-days="16"] {
  flex-grow: 16;
}
.season-bands .band[data-days="22"] {
  flex-grow: 22;
}
.season-bands .band[data-days="30"] {
  flex-grow: 30;
}
.season-bands .band[data-days="33"] {
  flex-grow: 33;
}
.season-bands .band[data-days="42"] {
  flex-grow: 42;
}
.season-bands .band.is-high {
  background-color: var(--hs-color-cyan-text);
  color: var(--hs-color-white);
}
.season-bands .band.is-peak {
  background-color: var(--hs-color-navy);
  color: var(--hs-color-white);
}
.season-bands .band-dates {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.8;
}
.season-bands .band b {
  display: block;
  margin: 6px 0 12px;
  font-family: var(--hs-ff-heading);
  font-size: 19px;
  font-weight: 800;
}
.season-bands .band-price {
  font-size: 13px;
}
.season-bands .band-price em {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 24px;
  font-weight: 900;
  font-style: normal;
}

/*======================
39. Pass Types
========================*/
.hs-pass-types {
  padding: 120px 0 130px;
}
.pass-type-row {
  margin-top: 40px;
}
.pass-type {
  height: 100%;
  padding: 44px 36px 40px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  transition: transform 0.5s var(--hs-ease), box-shadow 0.5s var(--hs-ease);
}
.pass-type:hover {
  transform: translateY(-8px);
  box-shadow: var(--hs-shadow-lg);
}
.pass-type > i {
  font-size: 50px;
  line-height: 1;
  color: var(--hs-color-cyan-text);
}
.pass-type h3 {
  margin: 18px 0 8px;
  font-size: 24px;
  color: var(--hs-color-navy);
}
.pass-type .pass-price {
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
}
.pass-type .pass-price b {
  font-family: var(--hs-ff-heading);
  font-size: 44px;
  font-weight: 900;
  color: var(--hs-color-navy);
}
.pass-type ul {
  margin: 22px 0 32px;
}
.pass-type li {
  padding: 9px 0;
  border-bottom: 1px solid var(--hs-color-line);
  font-size: 15px;
}
.pass-type li i {
  margin-right: 10px;
  color: var(--hs-color-cyan-text);
}
.pass-type.is-featured {
  background-color: var(--hs-color-navy);
  color: rgba(var(--hs-color-white-rgb), 0.75);
}
.pass-type.is-featured > i {
  color: var(--hs-color-cyan);
}
.pass-type.is-featured h3,
.pass-type.is-featured .pass-price b {
  color: var(--hs-color-white);
}
.pass-type.is-featured li {
  border-bottom-color: rgba(var(--hs-color-white-rgb), 0.12);
}
.pass-type.is-featured li i {
  color: var(--hs-color-cyan);
}
.pass-type.is-featured .hs-btn-cyan::after {
  background-color: var(--hs-color-white);
}
.pass-type .hs-btn-line:hover {
  color: var(--hs-color-white);
}

/*======================
40. FAQ
========================*/
.hs-faq {
  padding: 120px 0;
  background-color: var(--hs-color-ice);
}
.hs-faq .hs-section-title + p {
  margin: 4px 0 30px;
}
.hs-faq-item {
  margin-bottom: 14px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
}
.hs-faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 28px;
  font-family: var(--hs-ff-heading);
  font-size: 18px;
  font-weight: 800;
  color: var(--hs-color-navy);
  cursor: pointer;
  list-style: none;
}
.hs-faq-item summary::-webkit-details-marker {
  display: none;
}
.hs-faq-item summary i {
  flex-shrink: 0;
  font-size: 14px;
  color: var(--hs-color-cyan-text);
  transition: transform 0.35s var(--hs-ease);
}
.hs-faq-item[open] summary i {
  transform: rotate(45deg);
}
.hs-faq-item summary:focus-visible {
  outline: 2px solid var(--hs-color-cyan-text);
  outline-offset: -2px;
}
.hs-faq-item p {
  padding: 0 28px 24px;
}

/*======================
41. Snow Dashboard
========================*/
/* pistes.html: today's figures as tiles, the weather on a navy rail beneath */
.hs-snow-dash {
  padding: 110px 0 100px;
}
.hs-snow-dash .dash-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px 40px;
}
.dash-updated {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  font-size: 14.5px;
}
.dash-updated b {
  color: var(--hs-color-navy);
}
.dash-updated .report-demo {
  padding: 5px 10px;
  border-left: 3px solid var(--hs-color-cyan);
  background-color: var(--hs-color-ice);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-cyan-text);
}
.dash-tiles {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
  margin-top: 50px;
}
.dash-tile {
  padding: 30px 26px 28px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  border-top: 4px solid var(--hs-color-cyan);
}
.dash-tile > i {
  font-size: 40px;
  line-height: 1;
  color: var(--hs-color-cyan-text);
}
.dash-tile .tile-label {
  display: block;
  margin: 16px 0 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.dash-tile b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 38px;
  font-weight: 900;
  line-height: 1;
  color: var(--hs-color-navy);
}
.dash-tile .tile-note {
  display: block;
  margin: 8px 0 14px;
  font-size: 13.5px;
}
.dash-weather {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  margin-top: 20px;
  background-color: var(--hs-color-navy);
  color: rgba(var(--hs-color-white-rgb), 0.7);
}
.weather-cell {
  padding: 26px 28px;
}
.weather-cell + .weather-cell {
  border-left: 1px solid rgba(var(--hs-color-white-rgb), 0.1);
}
.weather-cell > i {
  display: block;
  margin-bottom: 12px;
  font-size: 26px;
  line-height: 1;
  color: var(--hs-color-cyan);
}
.weather-cell > span {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.weather-cell b {
  display: block;
  margin-top: 4px;
  font-family: var(--hs-ff-heading);
  font-size: 20px;
  font-weight: 800;
  color: var(--hs-color-white);
}
.risk-scale {
  display: flex;
  gap: 5px;
  margin: 12px 0 4px;
}
.risk-scale i {
  width: 24px;
  height: 9px;
  background-color: rgba(var(--hs-color-white-rgb), 0.2);
  transform: skewX(var(--hs-skew));
}
.risk-scale i.is-on {
  background-color: var(--hs-color-gold);
}
.hs-cta-section.is-page {
  padding: 100px 0 120px;
}
.finder-fields {
  margin: 26px 0 10px;
}
.finder-fields .filter-select {
  margin-bottom: 18px;
}

/*======================
42. Lift Status
========================*/
.hs-lift-status {
  padding: 120px 0;
}
.piste-map {
  position: relative;
}
.piste-map img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.piste-map .map-legend {
  position: absolute;
  left: 20px;
  bottom: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  padding: 14px 18px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
}
.map-legend li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.map-legend li::before {
  content: "";
  width: 12px;
  height: 12px;
  transform: skewX(var(--hs-skew));
}
.map-legend .is-green::before {
  background-color: var(--hs-color-green);
}
.map-legend .is-blue::before {
  background-color: var(--hs-color-blue);
}
.map-legend .is-red::before {
  background-color: var(--hs-color-red);
}
.map-legend .is-black::before {
  background-color: var(--hs-color-black);
}
.lift-list {
  margin-top: 30px;
}
.lift-row {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--hs-color-line);
  font-size: 14.5px;
}
.lift-row .lift-state {
  width: 12px;
  height: 12px;
  background-color: var(--hs-color-green);
  transform: skewX(var(--hs-skew));
}
.lift-row .lift-name b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 17px;
  font-weight: 800;
  color: var(--hs-color-navy);
}
.lift-row .lift-name small {
  font-size: 13px;
}
.lift-row .lift-word {
  min-width: 70px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-align: right;
  text-transform: uppercase;
  color: var(--hs-color-green);
}
.lift-row.is-hold .lift-state {
  background-color: var(--hs-color-gold);
}
.lift-row.is-hold .lift-word {
  color: #A56F00;
}

/*======================
43. Ski School Page
========================*/
.hs-lesson-prices {
  padding: 120px 0;
}
.lesson-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.hs-room-filter.lesson-tabs {
  justify-content: flex-start;
  margin: 30px 0 14px;
}
.price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 0;
  border-bottom: 1px solid var(--hs-color-line);
}
.price-row b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 19px;
  font-weight: 800;
  color: var(--hs-color-navy);
}
.price-row small {
  font-size: 14px;
}
.price-row em {
  flex-shrink: 0;
  font-family: var(--hs-ff-heading);
  font-size: 28px;
  font-weight: 900;
  font-style: normal;
  color: var(--hs-color-navy);
}
.hs-coaches {
  padding: 120px 0;
  background-color: var(--hs-color-ice);
}
.hs-coaches .coach-rail {
  margin-top: 50px;
  padding: 0 4px 24px;
}
.coach-card {
  padding-bottom: 28px;
  text-align: center;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  transition: transform 0.5s var(--hs-ease), box-shadow 0.5s var(--hs-ease);
}
.coach-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--hs-shadow-lg);
}
.coach-card .coach-photo {
  position: relative;
  aspect-ratio: 4 / 4.4;
  overflow: hidden;
  background: linear-gradient(180deg, var(--hs-color-frost), var(--hs-color-ice));
}
.coach-card .coach-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s var(--hs-ease);
}
.coach-card:hover .coach-photo img {
  transform: scale(1.05);
}
/* a round-cut portrait in the square frame: zoomed just past the circle's rim so
   the photo fills the frame edge to edge */
.coach-card .coach-photo.is-cutout img {
  transform: scale(1.42);
}
.coach-card:hover .coach-photo.is-cutout img {
  transform: scale(1.49);
}
.coach-card h3 {
  margin: 22px 0 6px;
  font-size: 20px;
}
.coach-card .coach-role {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-cyan-text);
}
.hs-lesson-form {
  padding: 120px 0;
}
.lesson-form-box {
  max-width: 980px;
  margin: 0 auto;
  padding: 60px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
  border-top: 5px solid var(--hs-color-cyan);
}
.lesson-form-box .hs-section-title {
  margin-bottom: 40px;
}
.form-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 24px;
  margin-top: 30px;
}
.form-foot .form-status {
  margin: 0;
}

/*======================
44. Chalet Pages
========================*/
/* chalets.html / chalets-list.html: a filter bar over the cards */
.hs-chalet-page {
  padding: 100px 0 120px;
  background-color: var(--hs-color-ice);
}
.chalet-filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  align-items: end;
  gap: 22px;
  margin-bottom: 44px;
  padding: 28px 30px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
}
.chalet-filters .filter-count {
  margin: 0;
  padding-bottom: 12px;
  font-size: 14.5px;
  white-space: nowrap;
}
.chalet-filters .filter-count b {
  font-family: var(--hs-ff-heading);
  font-size: 18px;
  color: var(--hs-color-navy);
}
.chalet-filters .filter-count .hs-link {
  margin-left: 14px;
}
.chalet-empty {
  padding: 70px 20px;
  text-align: center;
  background-color: var(--hs-color-white);
}
.chalet-empty > i {
  font-size: 56px;
  color: var(--hs-color-cyan-text);
}
.chalet-empty p {
  margin: 14px 0 10px;
  font-family: var(--hs-ff-heading);
  font-size: 20px;
  font-weight: 800;
  color: var(--hs-color-navy);
}
/* the list: photograph, words and price side by side */
.hs-chalet-card.is-row {
  display: grid;
  grid-template-columns: 40% minmax(0, 1fr) 220px;
}
.hs-chalet-card.is-row .card-media {
  aspect-ratio: auto;
  min-height: 280px;
}
.hs-chalet-card.is-row .card-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hs-chalet-card.is-row .card-body {
  padding: 34px 34px 32px;
}
.hs-chalet-card.is-row .card-meta {
  margin-bottom: 14px;
}
.hs-chalet-card .card-aside {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 16px;
  padding: 30px 28px;
  border-left: 1px solid var(--hs-color-line);
}
.hs-pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 60px;
}
.hs-pagination a,
.hs-pagination span {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  font-family: var(--hs-ff-heading);
  font-size: 15px;
  font-weight: 800;
  color: var(--hs-color-navy);
}
.hs-pagination a::before,
.hs-pagination span::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  border: 2px solid var(--hs-color-line-2);
  background-color: var(--hs-color-white);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.3s var(--hs-ease), border-color 0.3s var(--hs-ease);
}
.hs-pagination a:hover::before {
  border-color: var(--hs-color-navy);
}
.hs-pagination .is-current {
  color: var(--hs-color-white);
}
.hs-pagination .is-current::before {
  background-color: var(--hs-color-navy);
  border-color: var(--hs-color-navy);
}

/* chalet-details.html */
.hs-chalet-details {
  padding: 90px 0 110px;
}
.details-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px 40px;
  margin-bottom: 34px;
}
.details-title {
  font-size: clamp(36px, 4vw, 60px);
  font-weight: 900;
  line-height: 1;
  color: var(--hs-color-navy);
}
.details-where {
  margin-top: 12px;
  font-size: 15px;
}
.details-where i {
  margin-right: 6px;
  color: var(--hs-color-cyan-text);
}
.details-price {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.details-price b {
  font-family: var(--hs-ff-heading);
  font-size: 46px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--hs-color-navy);
}
.chalet-gallery-wrap {
  position: relative;
}
.chalet-gallery a {
  display: block;
}
.chalet-gallery img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 8;
  object-fit: cover;
}
.chalet-gallery-wrap .gallery-arrows {
  position: absolute;
  right: 26px;
  top: 26px;
  z-index: 3;
  display: flex;
  gap: 10px;
}
.chalet-thumbs {
  margin-top: 14px;
}
.chalet-thumbs .swiper-slide {
  opacity: 0.5;
  cursor: pointer;
  transition: opacity 0.3s var(--hs-ease);
}
.chalet-thumbs .swiper-slide-thumb-active {
  opacity: 1;
  box-shadow: inset 0 -4px 0 var(--hs-color-cyan);
}
.chalet-thumbs img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.details-body {
  margin-top: 30px;
}
.details-stats {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border: 1px solid var(--hs-color-line);
}
.details-stats li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 22px 20px;
}
.details-stats li + li {
  border-left: 1px solid var(--hs-color-line);
}
.details-stats i {
  font-size: 20px;
  color: var(--hs-color-cyan-text);
}
.details-stats b {
  margin-top: 10px;
  font-family: var(--hs-ff-heading);
  font-size: 22px;
  font-weight: 900;
  color: var(--hs-color-navy);
}
.details-stats span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.details-block {
  margin-top: 50px;
}
.details-block h3 {
  position: relative;
  margin-bottom: 20px;
  padding-bottom: 14px;
  font-size: 26px;
  color: var(--hs-color-navy);
}
.details-block h3::after {
  position: absolute;
  content: "";
  left: 0;
  bottom: 0;
  width: 34px;
  height: 4px;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
}
.details-block p + p {
  margin-top: 16px;
}
.amenity-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px 24px;
}
.amenity-grid li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 15.5px;
  color: var(--hs-color-ink);
}
.amenity-grid i {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  background-color: var(--hs-color-ice);
  font-size: 22px;
  color: var(--hs-color-cyan-text);
}
.week-rules {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background-color: var(--hs-color-line);
  border: 1px solid var(--hs-color-line);
}
.week-rules div {
  padding: 18px 22px;
  background-color: var(--hs-color-white);
}
.week-rules b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 16px;
  font-weight: 800;
  color: var(--hs-color-navy);
}
.week-rules span {
  font-size: 14.5px;
}
.reviews-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px 30px;
}
.hs-testimonial-box.is-left {
  text-align: left;
  padding: 34px 30px 30px;
}
.hs-testimonial-box.is-left::before {
  left: 30px;
  margin-left: 0;
}
.hs-testimonial-box.is-left .hs-client-img {
  width: 72px;
  height: 72px;
  margin: 0 0 16px;
}
/* the chalet's price box: dates in, the stay out */
.book-widget {
  position: sticky;
  top: 110px;
  padding: 32px 30px 28px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
  border-top: 5px solid var(--hs-color-cyan);
  --snow-w: 300px;
}
.book-widget .bw-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 22px;
}
.book-widget .bw-title {
  font-family: var(--hs-ff-heading);
  font-size: 24px;
  font-weight: 800;
  font-stretch: 110%;
  color: var(--hs-color-navy);
}
.book-widget .bw-season {
  padding: 5px 10px;
  border-left: 3px solid var(--hs-color-cyan);
  background-color: var(--hs-color-ice);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-cyan-text);
}
.book-widget .bw-fields {
  display: grid;
  gap: 16px;
}
.bw-lines,
.sc-lines {
  margin: 24px 0 22px;
}
.bw-lines li,
.sc-lines li {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--hs-color-line-2);
  font-size: 14.5px;
}
.bw-lines .val,
.sc-lines .val {
  flex-shrink: 0;
  font-weight: 700;
  color: var(--hs-color-ink);
  text-align: right;
}
.bw-lines .sum-discount .val {
  color: var(--hs-color-green);
}
.bw-lines .sum-total,
.sc-lines .sc-total {
  align-items: baseline;
  border-bottom: 0;
  padding-top: 16px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.bw-lines .sum-total .val,
.sc-lines .sc-total .val {
  font-family: var(--hs-ff-heading);
  font-size: 32px;
  font-weight: 900;
  letter-spacing: 0;
  color: var(--hs-color-navy);
}
.book-widget .bw-cta {
  width: 100%;
}
.book-widget .bw-cta::after {
  background-color: var(--hs-color-navy);
}
.book-widget .bw-cta:hover {
  color: var(--hs-color-white);
}
.book-widget .bw-note {
  margin-top: 14px;
  font-size: 13px;
  text-align: center;
}
.book-widget .bw-note i {
  margin-right: 6px;
  color: var(--hs-color-cyan-text);
}
.hs-feature-room-section.is-related {
  padding-top: 0;
}

/* booking.html */
.hs-booking-page {
  padding: 100px 0 120px;
  background-color: var(--hs-color-ice);
}
.extra-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.hs-check.extra-row {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  grid-template-areas: "box label price" "box label per";
  align-items: center;
  column-gap: 14px;
  padding: 16px 18px;
  border: 1px solid var(--hs-color-line);
}
.hs-check.extra-row {
  z-index: 0;
}
.extra-row .extra-frame {
  position: absolute;
  inset: -1px;
  z-index: -1;
  border: 1px solid transparent;
  pointer-events: none;
  transition: border-color 0.3s var(--hs-ease), background-color 0.3s var(--hs-ease);
}
.extra-row input:checked ~ .extra-frame {
  border-color: var(--hs-color-cyan);
  background-color: rgba(var(--hs-color-cyan-rgb), 0.06);
}
.extra-row .check-box {
  grid-area: box;
}
.extra-row .check-label {
  grid-area: label;
  font-size: 13.5px;
  line-height: 1.4;
}
.extra-row .check-label b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 16px;
  color: var(--hs-color-navy);
}
.extra-row em {
  grid-area: price;
  font-family: var(--hs-ff-heading);
  font-size: 18px;
  font-weight: 900;
  font-style: normal;
  color: var(--hs-color-navy);
  text-align: right;
}
.extra-row small {
  grid-area: per;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: right;
}
.summary-card {
  position: sticky;
  top: 110px;
  padding: 30px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
  border-top: 5px solid var(--hs-color-cyan);
  --snow-w: 300px;
}
.summary-card .sc-chalet {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--hs-color-line);
}
.summary-card .sc-chalet img {
  width: 96px;
  height: 72px;
  object-fit: cover;
}
.summary-card .sc-chalet .name {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 19px;
  font-weight: 800;
  color: var(--hs-color-navy);
}
.summary-card .sc-chalet .spec {
  font-size: 13px;
}
.sc-lines .is-rule {
  border-top: 2px solid var(--hs-color-navy);
}
.summary-card .sc-note {
  font-size: 13.5px;
}
.summary-card .sc-note b {
  color: var(--hs-color-navy);
}

/*======================
45. Inner Pages
========================*/
.hs-team-page,
.hs-gallery-page,
.hs-offers-page,
.hs-places-page {
  padding: 110px 0 120px;
}
.hs-offers-page,
.hs-places-page {
  background-color: var(--hs-color-ice);
}
.hs-services.is-white {
  background-color: var(--hs-color-white);
}
/* filter tabs: plates cut on the slope, each with the count it would show */
.hs-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 40px 0 50px;
}
.hs-tab {
  position: relative;
  z-index: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 46px;
  padding: 0 22px;
  border: 0;
  background: none;
  font-family: var(--hs-ff-heading);
  font-size: 13.5px;
  font-weight: 700;
  font-stretch: 106%;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hs-color-navy);
}
.hs-tab::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  border: 2px solid var(--hs-color-line-2);
  background-color: var(--hs-color-white);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.3s var(--hs-ease), border-color 0.3s var(--hs-ease);
}
.hs-tab:hover::before {
  border-color: var(--hs-color-navy);
}
.hs-tab [data-filter-count] {
  font-family: var(--hs-ff-body);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--hs-color-cyan-text);
}
.hs-tab.is-active {
  color: var(--hs-color-white);
}
.hs-tab.is-active::before {
  background-color: var(--hs-color-navy);
  border-color: var(--hs-color-navy);
}
.hs-tab.is-active [data-filter-count] {
  color: var(--hs-color-cyan);
}
.hs-tab.is-empty {
  opacity: 0.4;
}
/* team links sit on the photo. Style two (square photo): a navy band cut on the
   slope slides up over the photo's foot and the links rise into it one by one */
.coach-card .coach-social {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: 12px;
  padding: 46px 0 22px;
  background-color: rgba(var(--hs-color-navy-rgb), 0.94);
  clip-path: polygon(0 34%, 100% 0, 100% 100%, 0 100%);
  transform: translateY(101%);
  transition: transform 0.55s var(--hs-ease);
}
.coach-card .coach-social li {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.4s var(--hs-ease), transform 0.4s var(--hs-ease);
}
.coach-card .coach-social li:nth-child(2) {
  transition-delay: 0.08s;
}
.coach-card .coach-social li:nth-child(3) {
  transition-delay: 0.16s;
}
.coach-card:hover .coach-social,
.coach-card:focus-within .coach-social {
  transform: none;
}
.coach-card:hover .coach-social li,
.coach-card:focus-within .coach-social li {
  opacity: 1;
  transform: none;
}
.coach-card .coach-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: var(--hs-color-white);
  font-size: 14px;
  color: var(--hs-color-navy);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.3s var(--hs-ease), color 0.3s var(--hs-ease);
}
.coach-card .coach-social a i {
  transform: skewX(calc(-1 * var(--hs-skew)));
}
.coach-card .coach-social a:hover,
.coach-card .coach-social a:focus-visible {
  background-color: var(--hs-color-cyan);
  color: var(--hs-color-white);
}
/* Style one (.is-round): the round portrait in a white rim and a cyan ring, over a
   navy band cut on the slope; the links pop out onto the circle's lower rim */
.coach-card.is-round .coach-photo {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  aspect-ratio: 4 / 3.8;
  padding-bottom: 8px;
  overflow: visible;
  background: none;
}
.coach-card.is-round .coach-photo::before {
  position: absolute;
  content: "";
  left: 0;
  right: 0;
  top: 0;
  height: 62%;
  background-color: var(--hs-color-navy);
  clip-path: polygon(0 0, 100% 0, 100% 68%, 0 100%);
}
.coach-card.is-round .coach-circle {
  position: relative;
  z-index: 1;
  width: 74%;
  aspect-ratio: 1;
}
.coach-card.is-round .coach-circle img {
  border: 6px solid var(--hs-color-white);
  border-radius: 50%;
  box-shadow: 0 0 0 2px var(--hs-color-cyan), 0 20px 40px rgba(var(--hs-color-navy-rgb), 0.28);
}
.coach-card.is-round:hover .coach-circle img {
  transform: none;
}
.coach-card.is-round .coach-circle::after {
  position: absolute;
  content: "";
  inset: 6px;
  border-radius: 50%;
  background: linear-gradient(180deg, transparent 38%, rgba(var(--hs-color-navy-rgb), 0.72) 100%);
  opacity: 0;
  transition: opacity 0.45s var(--hs-ease);
}
.coach-card.is-round:hover .coach-circle::after,
.coach-card.is-round:focus-within .coach-circle::after {
  opacity: 1;
}
.coach-card.is-round .coach-social {
  inset: 0;
  display: block;
  padding: 0;
  background: none;
  clip-path: none;
  transform: none;
}
.coach-card.is-round .coach-social li {
  position: absolute;
  transform: translate(-50%, -50%) scale(0);
}
.coach-card.is-round .coach-social li:nth-child(1) {
  left: 17%;
  top: 83%;
}
.coach-card.is-round .coach-social li:nth-child(2) {
  left: 50%;
  top: 97%;
}
.coach-card.is-round .coach-social li:nth-child(3) {
  left: 83%;
  top: 83%;
}
.coach-card.is-round:hover .coach-social li,
.coach-card.is-round:focus-within .coach-social li {
  transform: translate(-50%, -50%) scale(1);
}
.coach-card.is-round .coach-social a {
  border-radius: 50%;
  box-shadow: 0 8px 18px rgba(var(--hs-color-navy-rgb), 0.3);
  transform: none;
}
.coach-card.is-round .coach-social a i {
  transform: none;
}
/* no hover on touch screens: the links are simply there */
@media (hover: none) {
  .coach-card .coach-social {
    transform: none;
  }
  .coach-card .coach-social li {
    opacity: 1;
    transform: none;
  }
  .coach-card.is-round .coach-social li {
    transform: translate(-50%, -50%) scale(1);
  }
}
.team-more {
  margin-top: 40px;
}
.hs-join-band {
  padding: 90px 0;
  background-color: var(--hs-color-navy);
  --snow-w: 420px;
}
.hs-join-band .join-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 30px 60px;
}
.hs-join-band h2 {
  font-size: clamp(30px, 3vw, 46px);
  color: var(--hs-color-white);
}
.hs-join-band p {
  max-width: 560px;
  margin-top: 12px;
  color: rgba(var(--hs-color-white-rgb), 0.72);
}
.hs-join-band .hs-btn-cyan::after {
  background-color: var(--hs-color-white);
}
/* gallery */
.gallery-grid {
  columns: 3;
  column-gap: 20px;
}
.gallery-item {
  display: block;
  margin-bottom: 20px;
  break-inside: avoid;
}
.gallery-item img {
  width: 100%;
}
.gallery-item::after {
  position: absolute;
  content: "";
  inset: 0;
  background-color: rgba(var(--hs-color-navy-rgb), 0.55);
  opacity: 0;
  transition: opacity 0.4s var(--hs-ease);
}
.gallery-item > i {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin: -27px 0 0 -27px;
  background-color: var(--hs-color-cyan);
  color: var(--hs-color-navy);
  opacity: 0;
  transform: scale(0.7) skewX(var(--hs-skew));
  transition: opacity 0.4s var(--hs-ease), transform 0.4s var(--hs-ease);
}
.gallery-item:hover::after,
.gallery-item:hover > i {
  opacity: 1;
}
.gallery-item:hover > i {
  transform: scale(1) skewX(var(--hs-skew));
}
/* offers */
.offer-card {
  height: 100%;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  transition: transform 0.5s var(--hs-ease), box-shadow 0.5s var(--hs-ease);
}
.offer-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--hs-shadow-lg);
}
.offer-card .offer-media {
  aspect-ratio: 16 / 10;
}
.offer-card .offer-flag {
  position: absolute;
  left: 20px;
  top: 20px;
  z-index: 1;
  padding: 7px 14px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--hs-color-white);
  isolation: isolate;
}
.offer-card .offer-flag::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background-color: var(--hs-color-navy);
  transform: skewX(var(--hs-skew));
}
.is-live .offer-card .offer-flag {
  color: var(--hs-color-navy);
}
.is-live .offer-card .offer-flag::before {
  background-color: var(--hs-color-cyan);
}
.is-ended .offer-card {
  opacity: 0.6;
}
.offer-card .offer-body {
  padding: 28px 28px 26px;
}
.offer-card h3 {
  font-size: 22px;
  color: var(--hs-color-navy);
}
.offer-card .offer-body > p {
  margin: 8px 0 18px;
  font-size: 15px;
}
.offer-prices {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 14px;
}
.offer-prices .offer-label {
  flex-basis: 100%;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.offer-prices s {
  font-size: 16px;
}
.offer-prices b {
  font-family: var(--hs-ff-heading);
  font-size: 32px;
  font-weight: 900;
  color: var(--hs-color-navy);
}
.offer-prices .offer-save {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--hs-color-cyan-text);
}
.offer-prices em {
  font-style: normal;
}
.offer-card .offer-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--hs-color-line);
  font-size: 13.5px;
}
.offer-card .offer-foot b {
  color: var(--hs-color-navy);
}
.offers-note {
  margin-top: 30px;
  text-align: center;
}
/* contact */
.hs-contact-page {
  padding: 110px 0 120px;
}
.contact-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.contact-cards li {
  padding: 30px 26px 28px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  border-top: 4px solid var(--hs-color-cyan);
}
.contact-cards i {
  font-size: 38px;
  line-height: 1;
  color: var(--hs-color-cyan-text);
}
.contact-cards li > span {
  display: block;
  margin: 16px 0 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.contact-cards a,
.contact-cards b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 18px;
  font-weight: 800;
  color: var(--hs-color-navy);
}
.contact-cards small {
  display: block;
  margin-top: 4px;
  font-size: 13.5px;
}
.contact-main {
  margin-top: 40px;
}
.contact-form-box {
  height: 100%;
  padding: 50px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
  --snow-w: 380px;
}
.contact-form-box .hs-section-title {
  margin-bottom: 30px;
}
.contact-map iframe {
  display: block;
  width: 100%;
  height: 360px;
  border: 0;
  filter: saturate(0.6);
}
.contact-hours {
  margin-top: 24px;
  padding: 30px;
  background-color: var(--hs-color-navy);
  color: rgba(var(--hs-color-white-rgb), 0.75);
}
.contact-hours h3 {
  margin-bottom: 12px;
  font-size: 20px;
  color: var(--hs-color-white);
}
.contact-hours li,
.resto-hours li {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 0;
  border-bottom: 1px solid rgba(var(--hs-color-white-rgb), 0.12);
  font-size: 14.5px;
}
.contact-hours b {
  color: var(--hs-color-white);
}
/* restaurant */
.hs-restaurant-intro {
  padding: 120px 0;
}
.resto-photos {
  position: relative;
  padding: 0 90px 90px 0;
}
.resto-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.resto-photo.is-main {
  aspect-ratio: 4 / 3.3;
}
.resto-photo.is-small {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 46%;
  aspect-ratio: 1 / 1;
  border: 8px solid var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
  --snow-w: 230px;
}
.resto-hours {
  margin: 26px 0 34px;
  border-top: 1px solid var(--hs-color-line);
}
.resto-hours li {
  border-bottom-color: var(--hs-color-line);
}
.resto-hours b {
  font-family: var(--hs-ff-heading);
  color: var(--hs-color-navy);
}
.hs-apres-menu.is-ice {
  background-color: var(--hs-color-ice);
}
.menu-all {
  margin-top: 40px;
}
.hs-reserve-band {
  position: relative;
  z-index: 0;
  padding: 130px 0;
  background-size: cover;
  background-position: center;
}
.hs-reserve-band::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background-color: rgba(var(--hs-color-navy-rgb), 0.72);
}
.reserve-box {
  max-width: 880px;
  margin: 0 auto;
  padding: 54px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
  --snow-w: 400px;
}
.reserve-box .hs-section-title {
  margin-bottom: 30px;
}
.hs-apres-menu.is-page {
  padding: 110px 0 120px;
}
.hs-room-filter.menu-tabs {
  justify-content: center;
  margin: 40px 0 20px;
}
.menu-note {
  margin-top: 30px;
  font-size: 14px;
  text-align: center;
}
.menu-note i {
  margin-right: 6px;
  color: var(--hs-color-cyan-text);
}
/* places */
.place-card {
  display: block;
  height: 100%;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
  transition: transform 0.5s var(--hs-ease), box-shadow 0.5s var(--hs-ease);
}
.place-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--hs-shadow-lg);
}
.place-card .place-media {
  aspect-ratio: 4 / 3;
}
.place-card .place-body {
  display: flex;
  flex-direction: column;
  padding: 24px 26px 28px;
}
.place-card .place-kind {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--hs-color-cyan-text);
}
.place-card .place-name {
  margin: 6px 0 8px;
  font-family: var(--hs-ff-heading);
  font-size: 22px;
  font-weight: 800;
  font-stretch: 108%;
  color: var(--hs-color-navy);
}
.place-card .place-time {
  font-size: 14px;
  color: var(--hs-color-body);
}
.place-card .place-time i {
  margin-right: 6px;
  color: var(--hs-color-cyan-text);
}
.hs-place-details {
  padding: 100px 0 120px;
}
.place-hero img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.place-map iframe {
  display: block;
  width: 100%;
  height: 360px;
  margin-top: 20px;
  border: 0;
}
.place-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.place-gallery a {
  aspect-ratio: 1 / 1;
}
.place-facts {
  position: sticky;
  top: 110px;
  padding: 32px 30px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
  border-top: 5px solid var(--hs-color-cyan);
  --snow-w: 300px;
}
.place-facts h3 {
  margin-bottom: 12px;
  font-size: 22px;
  color: var(--hs-color-navy);
}
.place-facts li {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--hs-color-line);
  font-size: 14px;
}
.place-facts li i {
  font-size: 22px;
  color: var(--hs-color-cyan-text);
}
.place-facts li b {
  font-family: var(--hs-ff-heading);
  font-size: 15px;
  color: var(--hs-color-navy);
  text-align: right;
}
.place-facts .hs-btn {
  width: 100%;
  margin-top: 24px;
}
.place-facts .hs-btn-cyan::after {
  background-color: var(--hs-color-navy);
}
.place-facts .hs-btn-cyan:hover {
  color: var(--hs-color-white);
}
/* journal */
.hs-journal-page,
.hs-article-page {
  padding: 100px 0 120px;
}
.blog-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
  font-size: 14.5px;
}
.blog-tools b {
  color: var(--hs-color-navy);
}
.post-feature {
  margin-bottom: 30px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
}
.post-feature .post-feature-media {
  aspect-ratio: 16 / 8;
}
.post-feature .post-feature-body {
  padding: 34px 38px 36px;
}
.post-feature-title {
  margin: 12px 0;
  font-size: clamp(26px, 2.4vw, 34px);
}
.post-feature-title a {
  color: var(--hs-color-navy);
}
.post-feature-body > p {
  margin-bottom: 18px;
}
.hs-post-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.hs-post-meta i {
  margin-right: 7px;
  color: var(--hs-color-cyan-text);
}
.hs-post-meta .post-cat {
  color: var(--hs-color-cyan-text);
}
.posts-empty {
  padding: 40px 0;
  text-align: center;
}
.side-widget {
  margin-bottom: 26px;
  padding: 30px 28px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow);
}
.side-title {
  position: relative;
  margin-bottom: 18px;
  padding-bottom: 12px;
  font-size: 19px;
  color: var(--hs-color-navy);
}
.side-title::after {
  position: absolute;
  content: "";
  left: 0;
  bottom: 0;
  width: 30px;
  height: 4px;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
}
.side-search {
  position: relative;
}
.side-search .hs-input {
  padding-right: 58px;
}
.side-search button {
  position: absolute;
  right: 0;
  top: 0;
  width: 50px;
  height: 50px;
  border: 0;
  background-color: var(--hs-color-navy);
  color: var(--hs-color-white);
}
.side-cats a {
  display: flex;
  justify-content: space-between;
  padding: 11px 0;
  border-bottom: 1px dashed var(--hs-color-line-2);
  font-weight: 600;
  color: var(--hs-color-navy);
}
.side-cats a span {
  font-size: 13px;
  color: var(--hs-color-cyan-text);
}
.side-cats a:hover,
.side-cats a.is-active {
  color: var(--hs-color-cyan-text);
}
.side-widget.side-snow {
  background-color: var(--hs-color-navy);
  color: rgba(var(--hs-color-white-rgb), 0.7);
  --snow-w: 260px;
}
.side-snow .side-title {
  color: var(--hs-color-white);
}
.side-snow-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid rgba(var(--hs-color-white-rgb), 0.12);
}
.side-snow-row b {
  font-family: var(--hs-ff-heading);
  font-size: 22px;
  font-weight: 900;
  color: var(--hs-color-white);
}
.side-snow-row span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.side-snow .hs-link {
  margin-top: 18px;
}
.side-recent a {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 0;
}
.side-recent img {
  flex-shrink: 0;
  width: 76px;
  height: 60px;
  object-fit: cover;
}
.side-recent b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 15px;
  line-height: 1.3;
  color: var(--hs-color-navy);
}
.side-recent small {
  font-size: 12.5px;
  color: var(--hs-color-body);
}
.side-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.side-tags a {
  position: relative;
  z-index: 0;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--hs-color-navy);
}
.side-tags a::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  border: 1px solid var(--hs-color-line-2);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.3s var(--hs-ease);
}
.side-tags a:hover {
  color: var(--hs-color-white);
}
.side-tags a:hover::before {
  background-color: var(--hs-color-navy);
}
/* article */
.article-title {
  margin: 14px 0 28px;
  font-size: clamp(30px, 3.4vw, 48px);
  color: var(--hs-color-navy);
}
.article-media {
  display: block;
  margin: 0 0 36px;
}
.article-media > img,
.post-gallery img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.article-body p {
  margin-bottom: 18px;
}
.article-body .article-lead {
  font-size: 20px;
  line-height: 1.6;
  color: var(--hs-color-ink);
}
.article-body h3 {
  margin: 34px 0 14px;
  font-size: 26px;
  color: var(--hs-color-navy);
}
.article-body blockquote {
  margin: 30px 0;
  padding: 30px 34px;
  background-color: var(--hs-color-ice);
  border-left: 5px solid var(--hs-color-cyan);
}
.article-body blockquote p {
  margin: 0;
  font-family: var(--hs-ff-heading);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--hs-color-navy);
}
.article-body cite,
.post-quote cite {
  display: block;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.article-list {
  margin: 0 0 22px;
  padding: 0;
  list-style: none;
}
.article-list li {
  position: relative;
  margin-bottom: 8px;
  padding-left: 26px;
}
.article-list li::before {
  position: absolute;
  content: "";
  left: 2px;
  top: 0.62em;
  width: 10px;
  height: 10px;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
}
.article-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 26px 0;
}
.article-pair img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.article-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 40px;
  padding: 24px 0;
  border-top: 1px solid var(--hs-color-line);
  border-bottom: 1px solid var(--hs-color-line);
}
.article-share {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.article-share > span:first-child {
  margin-right: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.article-share a,
.article-share button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  background-color: var(--hs-color-ice);
  font-size: 14px;
  color: var(--hs-color-navy);
  transition: background-color 0.3s var(--hs-ease), color 0.3s var(--hs-ease);
}
.article-share a:hover,
.article-share button:hover {
  background-color: var(--hs-color-navy);
  color: var(--hs-color-white);
}
.article-share .copy-note {
  font-size: 13px;
}
.author-box {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  margin-top: 40px;
  padding: 34px;
  background-color: var(--hs-color-ice);
}
.author-box img {
  flex-shrink: 0;
  width: 104px;
  height: 104px;
  object-fit: cover;
}
.author-box h3 {
  margin-bottom: 8px;
  font-size: 22px;
}
.article-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 40px;
}
.article-nav a {
  display: block;
  padding: 22px 26px;
  border: 1px solid var(--hs-color-line);
  transition: border-color 0.3s var(--hs-ease);
}
.article-nav a:hover {
  border-color: var(--hs-color-cyan);
}
.article-nav small {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-cyan-text);
}
.article-nav b {
  display: block;
  margin-top: 6px;
  font-family: var(--hs-ff-heading);
  font-size: 17px;
  color: var(--hs-color-navy);
}
.article-nav .is-next {
  text-align: right;
}
.comments {
  margin-top: 60px;
}
.comments-title {
  margin-bottom: 20px;
  font-size: 24px;
  color: var(--hs-color-navy);
}
.comment {
  display: flex;
  gap: 18px;
  padding: 22px 0;
  border-bottom: 1px solid var(--hs-color-line);
}
.comment.is-reply {
  margin-left: 60px;
}
.comment img {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
}
.comment-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 14px;
  margin-bottom: 8px;
}
.comment-head b {
  font-family: var(--hs-ff-heading);
  color: var(--hs-color-navy);
}
.comment-head span {
  font-size: 13px;
}
.comment-head .hs-link {
  margin-left: auto;
  border: 0;
  background: none;
}
.comment-form {
  margin-top: 50px;
  padding: 40px;
  background-color: var(--hs-color-ice);
}
.reply-note {
  margin-bottom: 16px;
}
.post-gallery-wrap {
  position: relative;
}
.post-gallery-nav {
  position: absolute;
  right: 22px;
  bottom: 22px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 10px;
}
.post-gallery-count {
  margin-right: 8px;
  font-family: var(--hs-ff-heading);
  font-weight: 700;
  color: rgba(var(--hs-color-white-rgb), 0.75);
}
.post-gallery-count b {
  font-size: 22px;
  color: var(--hs-color-white);
}
.post-audio {
  position: relative;
}
.post-audio img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 8;
  object-fit: cover;
}
.post-audio .audio-card {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  padding: 16px 20px;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
}
.post-audio iframe {
  display: block;
  width: 100%;
  height: 120px;
  margin-top: 10px;
  border: 0;
}
.audio-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-color-cyan-text);
}
.post-quote {
  padding: 50px 46px;
  background-color: var(--hs-color-navy);
  color: var(--hs-color-cyan);
}
.post-quote > i {
  font-size: 36px;
}
.post-quote p {
  margin: 16px 0 0;
  font-family: var(--hs-ff-heading);
  font-size: clamp(22px, 2.4vw, 32px);
  font-weight: 800;
  line-height: 1.3;
  color: var(--hs-color-white);
}
.post-link {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 36px 40px;
  background-color: var(--hs-color-cyan);
  color: var(--hs-color-navy);
}
.post-link > i {
  font-size: 34px;
}
.post-link b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 24px;
  font-weight: 900;
}
.post-link small {
  font-size: 14px;
}
.post-link:hover {
  color: var(--hs-color-navy);
}
/* account */
.hs-account-page {
  padding: 110px 0 120px;
  background-color: var(--hs-color-ice);
}
.account-card {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  max-width: 1080px;
  margin: 0 auto;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
  --snow-w: 380px;
}
.account-visual {
  position: relative;
  z-index: 0;
  min-height: 540px;
  background-size: cover;
  background-position: center;
}
.account-visual::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(var(--hs-color-navy-rgb), 0.2), rgba(var(--hs-color-navy-rgb), 0.9));
}
.account-visual .visual-copy {
  position: absolute;
  left: 40px;
  right: 40px;
  bottom: 40px;
}
.account-visual .visual-copy i {
  font-size: 46px;
  color: var(--hs-color-cyan);
}
.account-visual .visual-copy p {
  margin-top: 14px;
  font-family: var(--hs-ff-heading);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--hs-color-white);
}
.account-body {
  padding: 56px 54px;
}
.account-title {
  font-size: 34px;
  color: var(--hs-color-navy);
}
.account-lead {
  margin: 10px 0 30px;
}
.account-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.account-foot {
  margin-top: 24px;
  text-align: center;
  font-size: 15px;
}
.password-field .hs-input {
  padding-right: 52px;
}
.password-toggle {
  position: absolute;
  right: 0;
  top: 0;
  z-index: 2;
  width: 50px;
  height: 50px;
  border: 0;
  background: none;
  color: var(--hs-color-body);
}
.password-toggle:hover {
  color: var(--hs-color-navy);
}
.password-meter {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
}
.password-meter .meter-bars {
  display: flex;
  gap: 4px;
}
.password-meter .meter-bars i {
  width: 36px;
  height: 5px;
  background-color: var(--hs-color-line);
  transform: skewX(var(--hs-skew));
}
.password-meter[data-level="1"] .meter-bars i:nth-child(-n+1) {
  background-color: var(--hs-color-red);
}
.password-meter[data-level="2"] .meter-bars i:nth-child(-n+2) {
  background-color: var(--hs-color-gold);
}
.password-meter[data-level="3"] .meter-bars i:nth-child(-n+3) {
  background-color: var(--hs-color-cyan);
}
.password-meter[data-level="4"] .meter-bars i {
  background-color: var(--hs-color-green);
}
.password-meter .meter-label {
  font-size: 12.5px;
}
.match-note {
  display: block;
  margin-top: 6px;
  font-size: 13px;
}
.match-note.is-ok {
  color: var(--hs-color-green);
}
.match-note.is-bad {
  color: var(--hs-color-red);
}
/* 404 */
.hs-error-page {
  padding: 150px 0 170px;
  text-align: center;
}
.error-inner {
  max-width: 720px;
  margin: 0 auto;
}
.error-num {
  display: inline-block;
  font-family: var(--hs-ff-heading);
  font-size: clamp(140px, 20vw, 280px);
  font-weight: 900;
  font-stretch: 115%;
  line-height: 0.9;
  letter-spacing: -0.05em;
  color: var(--hs-color-navy);
  text-shadow: 10px 10px 0 var(--hs-color-cyan);
  --snow-w: 460px;
}
.error-num.has-snow-cap::before {
  left: 50%;
  margin-left: calc(var(--snow-w) * -0.5);
}
.error-title {
  margin-top: 30px;
  font-size: clamp(34px, 4vw, 52px);
  color: var(--hs-color-navy);
}
.error-title span {
  color: var(--hs-color-cyan-text);
}
.error-inner > p {
  max-width: 520px;
  margin: 16px auto 34px;
}
.error-btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px 24px;
}
/* coming soon */
.is-standalone {
  background-color: var(--hs-color-navy);
}
.hs-soon {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  color: rgba(var(--hs-color-white-rgb), 0.75);
  text-align: center;
}
.hs-soon::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -2;
  background: linear-gradient(180deg, rgba(var(--hs-color-navy-rgb), 0.78), rgba(var(--hs-color-navy-rgb), 0.92));
}
.hs-soon .hs-snowfall {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
}
.soon-inner {
  position: relative;
  z-index: 2;
  max-width: 780px;
  padding: 70px 20px 220px;
}
.soon-logo img {
  height: 58px;
  margin-bottom: 44px;
}
.soon-title {
  margin-top: 6px;
  font-size: clamp(46px, 6vw, 92px);
  font-weight: 900;
  line-height: 0.98;
  color: var(--hs-color-white);
}
.soon-lead {
  margin: 18px auto 40px;
}
.soon-lead b {
  color: var(--hs-color-white);
}
.soon-count {
  display: flex;
  justify-content: center;
  gap: 18px;
  margin-bottom: 46px;
}
.soon-count div {
  position: relative;
  z-index: 0;
  width: 122px;
  padding: 20px 0 16px;
}
.soon-count div::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  border: 1px solid rgba(var(--hs-color-white-rgb), 0.2);
  background-color: rgba(var(--hs-color-white-rgb), 0.07);
  transform: skewX(var(--hs-skew));
}
.soon-count b {
  display: block;
  font-family: var(--hs-ff-heading);
  font-size: 50px;
  font-weight: 900;
  line-height: 1;
  color: var(--hs-color-white);
  font-variant-numeric: tabular-nums;
}
.soon-count span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.soon-form {
  max-width: 560px;
  margin: 0 auto;
}
.soon-social {
  justify-content: center;
  margin-top: 30px;
}
.soon-social a {
  color: var(--hs-color-white);
}
.soon-social a::before {
  border-color: rgba(var(--hs-color-white-rgb), 0.3);
}

/*======================
46. Restaurant
========================*/

.hs-feature-room-section.hs-with-bg {
    background-size: cover;
    background-position: center;
    position: relative;
    z-index: 1;
}

.hs-feature-room-section.hs-with-bg::before {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    content: '';
    background-color: var(--hs-color-ink);
    opacity: 0.6;
    z-index: -1;
}

/*======================
47. Footer
========================*/
/* An Instagram strip across the top, then the mountain at night under a navy
   veil with a thin snowfall drifting over it */
.hs-footer {
  position: relative;
  background-color: var(--hs-color-navy);
  color: rgba(var(--hs-color-white-rgb), 0.74);
}
.hs-footer a {
  color: rgba(var(--hs-color-white-rgb), 0.74);
}
.hs-footer a:hover {
  color: var(--hs-color-cyan);
}
/* Instagram */
.footer-insta {
  position: relative;
}
.footer-insta .insta-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
}
.footer-insta .insta-grid a {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.footer-insta .insta-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s var(--hs-ease);
}
.footer-insta .insta-grid a::after {
  position: absolute;
  content: "";
  inset: 0;
  background-color: rgba(var(--hs-color-navy-rgb), 0.72);
  opacity: 0;
  transition: opacity 0.4s var(--hs-ease);
}
.footer-insta .insta-grid a i {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  font-size: 30px;
  color: var(--hs-color-white);
  opacity: 0;
  transform: translate(-50%, -30%) scale(0.8);
  transition: opacity 0.4s var(--hs-ease), transform 0.5s var(--hs-ease);
}
.footer-insta .insta-grid a:hover img {
  transform: scale(1.08);
}
.footer-insta .insta-grid a:hover::after,
.footer-insta .insta-grid a:hover i {
  opacity: 1;
}
.footer-insta .insta-grid a:hover i {
  transform: translate(-50%, -50%) scale(1);
}
.footer-insta .insta-handle {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 56px;
  padding: 0 30px;
  font-family: var(--hs-ff-heading);
  font-size: 14px;
  font-weight: 800;
  font-stretch: 110%;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hs-color-navy);
  transform: translate(-50%, -50%);
  isolation: isolate;
}
.footer-insta .insta-handle::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background-color: var(--hs-color-white);
  box-shadow: var(--hs-shadow-lg);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.35s var(--hs-ease);
}
.footer-insta .insta-handle i {
  font-size: 20px;
  color: var(--hs-color-cyan-text);
}
.footer-insta .insta-handle:hover {
  color: var(--hs-color-navy);
}
.footer-insta .insta-handle:hover::before {
  background-color: var(--hs-color-cyan);
}
/* the photograph and its veil */
.footer-main {
  position: relative;
  z-index: 0;
  overflow: hidden;
  padding-top: 100px;
}
.footer-main .footer-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.footer-main .footer-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: hs-footer-drift 32s ease-in-out infinite alternate;
}
@keyframes hs-footer-drift {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.12) translateX(-2%);
  }
}
.footer-main::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(var(--hs-color-navy-rgb), 0.9) 0%, rgba(var(--hs-color-navy-rgb), 0.95) 55%, rgba(var(--hs-color-ink-rgb), 0.98) 100%);
}
.footer-main .hs-snowfall {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .footer-main .footer-bg img {
    animation: none;
  }
}
/* the opt-in: a glass panel with one joined field */
.hs-footer .footer-news {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 30px 60px;
  padding: 44px 48px;
  margin-bottom: 80px;
  background-color: rgba(var(--hs-color-white-rgb), 0.06);
  border: 1px solid rgba(var(--hs-color-white-rgb), 0.12);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.hs-footer .news-copy {
  display: flex;
  align-items: center;
  gap: 24px;
  flex: 1 1 380px;
}
.hs-footer .news-badge {
  position: relative;
  z-index: 0;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 76px;
  font-size: 36px;
  color: var(--hs-color-navy);
}
.hs-footer .news-badge::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
}
.hs-footer .news-badge i {
  animation: hs-flake-turn 12s linear infinite;
}
@keyframes hs-flake-turn {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .hs-footer .news-badge i {
    animation: none;
  }
}
.hs-footer .news-eyebrow {
  display: block;
  margin-bottom: 6px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--hs-color-cyan);
}
.hs-footer .footer-news-title {
  font-size: clamp(26px, 2.4vw, 36px);
  color: var(--hs-color-white);
}
.hs-footer .news-copy p {
  margin-top: 6px;
  font-size: 15px;
}
.hs-optin {
  flex: 1 1 480px;
  max-width: 580px;
}
.hs-optin .optin-bar {
  position: relative;
  display: flex;
  align-items: center;
  height: 66px;
  padding: 5px 5px 5px 0;
  background-color: var(--hs-color-white);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.22);
  transition: box-shadow 0.3s var(--hs-ease);
}
.hs-optin .optin-bar:focus-within {
  box-shadow: 0 0 0 3px rgba(var(--hs-color-cyan-rgb), 0.55), 0 20px 40px rgba(0, 0, 0, 0.22);
}
.hs-optin .optin-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 58px;
  font-size: 18px;
  color: var(--hs-color-cyan-text);
}
.hs-optin input[type="email"] {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  padding: 0 12px 0 0;
  border: 0;
  background: transparent;
  font-size: 16px;
  color: var(--hs-color-ink);
}
.hs-optin input[type="email"]:focus {
  outline: none;
}
.hs-optin input[type="email"]::placeholder {
  color: var(--hs-color-body);
}
.hs-optin .hs-btn {
  flex-shrink: 0;
  height: 100%;
  padding: 0 28px;
}
.hs-optin .hs-btn::after {
  background-color: var(--hs-color-navy);
}
.hs-optin .hs-btn:hover {
  color: var(--hs-color-white);
}
.hs-optin .optin-consent {
  margin-top: 14px;
  font-size: 14px;
  color: rgba(var(--hs-color-white-rgb), 0.74);
}
.hs-optin .optin-consent .check-box {
  border-color: rgba(var(--hs-color-white-rgb), 0.4);
  background-color: transparent;
}
.hs-optin .form-status {
  color: var(--hs-color-white);
}
/* columns */
.hs-footer .footer-cols {
  row-gap: 40px;
  padding-bottom: 80px;
}
.hs-footer .footer-logo img {
  height: 54px;
  width: auto;
}
.hs-footer .footer-brand p {
  max-width: 360px;
  margin: 26px 0 30px;
}
.hs-footer .hs-social {
  display: flex;
  gap: 10px;
}
.hs-footer .hs-social a {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  font-size: 15px;
  color: var(--hs-color-white);
  transition: color 0.35s var(--hs-ease), transform 0.4s var(--hs-ease);
}
.hs-footer .hs-social a::before {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -1;
  border: 1px solid rgba(var(--hs-color-white-rgb), 0.24);
  transform: skewX(var(--hs-skew));
  transition: background-color 0.35s var(--hs-ease), border-color 0.35s var(--hs-ease);
}
.hs-footer .hs-social a:hover {
  color: var(--hs-color-navy);
  transform: translateY(-4px);
}
.hs-footer .hs-social a:hover::before {
  background-color: var(--hs-color-cyan);
  border-color: var(--hs-color-cyan);
}
.hs-footer .footer-title {
  position: relative;
  margin-bottom: 28px;
  padding-bottom: 16px;
  font-size: 20px;
  color: var(--hs-color-white);
}
.hs-footer .footer-title::after {
  position: absolute;
  content: "";
  left: 0;
  bottom: 0;
  width: 34px;
  height: 4px;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
}
.hs-footer .footer-two-col {
  columns: 2;
  column-gap: 30px;
}
.hs-footer .footer-two-col li {
  margin-bottom: 13px;
  break-inside: avoid;
}
/* a link slides right and a short dash cut on the slope opens in front of it */
.hs-footer .footer-two-col a {
  display: inline-flex;
  align-items: center;
  transition: color 0.3s var(--hs-ease);
}
.hs-footer .footer-two-col a::before {
  content: "";
  flex-shrink: 0;
  width: 0;
  height: 3px;
  margin-right: 0;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew));
  transition: width 0.35s var(--hs-ease), margin-right 0.35s var(--hs-ease);
}
.hs-footer .footer-two-col a:hover::before {
  width: 12px;
  margin-right: 10px;
}
.hs-footer .footer-reach li {
  display: flex;
  gap: 16px;
  margin-bottom: 22px;
}
.hs-footer .footer-reach li > i {
  flex-shrink: 0;
  font-size: 26px;
  line-height: 1;
  color: var(--hs-color-cyan);
  transition: transform 0.4s var(--hs-ease);
}
.hs-footer .footer-reach li:hover > i {
  transform: rotate(-12deg) scale(1.08);
}
.hs-footer .footer-reach li b {
  display: block;
  margin-bottom: 2px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--hs-color-white);
}
.hs-footer .footer-copyright {
  padding: 24px 0;
  border-top: 1px solid rgba(var(--hs-color-white-rgb), 0.1);
  font-size: 14.5px;
}
.hs-footer .copyright-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 30px;
}
.hs-footer .footer-links {
  display: flex;
  gap: 26px;
}

/*======================
48. Back To Top
========================*/
.hs-back-to-top {
  position: fixed;
  right: 30px;
  bottom: 30px;
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border: 0;
  background: none;
  color: var(--hs-color-white);
  font-size: 15px;
  isolation: isolate;
  opacity: 0;
  visibility: hidden;
  transform: translateY(16px);
  transition: opacity 0.4s var(--hs-ease), transform 0.4s var(--hs-ease), visibility 0.4s, color 0.3s var(--hs-ease);
}
.hs-back-to-top::before,
.hs-back-to-top::after {
  position: absolute;
  content: "";
  inset: 0;
  z-index: -2;
  background-color: var(--hs-color-navy);
  transform: skewX(var(--hs-skew));
  box-shadow: var(--hs-shadow);
}
.hs-back-to-top::after {
  z-index: -1;
  box-shadow: none;
  background-color: var(--hs-color-cyan);
  transform: skewX(var(--hs-skew)) scaleY(var(--hs-progress, 0));
  transform-origin: center bottom;
  opacity: 0.35;
}
.hs-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.hs-back-to-top:hover {
  color: var(--hs-color-cyan);
}

/*======================
49. Aria Accessibility Enhancements
========================*/

/* Keyboard Focus Indicators
   :focus-visible fires only on keyboard navigation, never on mouse click --
   so hover states and button shapes remain completely unaffected.            */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid #0d6efd;
    outline-offset: 2px;
}

/*======================
50. Cursor
========================*/
/* A cyan square on the pointer and a plate cut on the slope angle that trails it, stretching with speed. Hidden until the script decides this is a pointer worth replacing: with JS off, or on a touch
   screen, the ordinary cursor is simply left alone. */
.hs-cursor-dot,
.hs-cursor-ring {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999;
  pointer-events: none;
  opacity: 0;
  will-change: transform;
}
.hs-cursor-dot {
  width: 6px;
  height: 6px;
  margin: -3px 0 0 -3px;
  background-color: var(--hs-color-cyan);
}
.hs-cursor-ring {
  --stretch: 1;
  width: 46px;
  height: 30px;
  margin: -15px 0 0 -23px;
}
/* the plate: cut on the slope angle, stretched by the pointer's speed */
.hs-cursor-ring::before {
  position: absolute;
  content: "";
  inset: 0;
  border: 1.5px solid var(--hs-color-cyan);
  transform: skewX(var(--hs-skew)) scaleX(var(--stretch));
  transition: transform 0.25s var(--hs-ease), inset 0.4s var(--hs-ease), background-color 0.4s var(--hs-ease);
}
/* over something clickable the plate widens and takes a tint of ice */
.hs-cursor-ring.is-active::before {
  inset: -8px -14px;
  background-color: rgba(var(--hs-color-cyan-rgb), 0.16);
}
.hs-cursor-ring.is-drag::before {
  inset: -16px -30px;
  background-color: var(--hs-color-cyan);
}
/* over a slider that can be dragged the shape fills and says so */
.hs-cursor-ring::after {
  position: absolute;
  content: "Drag";
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #FFFFFF;
  opacity: 0;
  transition: opacity 0.3s;
}
.hs-cursor-ring.is-drag::after {
  opacity: 1;
}
.hs-cursor-dot.is-drag {
  visibility: hidden;
}
html.has-cursor,
html.has-cursor * {
  cursor: none !important;
}
/* where the real cursor carries information the shape cannot (a caret in a field, whatever lives inside an embed)
   it stays, and the shape gets out of the way */
html.has-cursor :is(input, select, textarea, iframe, [contenteditable="true"]) {
  cursor: auto !important;
}

/*======================
51. Frost On The Glass
========================*/
/* WebGL: Frost on the chalet glass over the chalets band: ice crystals grow in from the edges and corners and breathe back slowly; a warm hand clears the glass under the pointer (JS block Frost On The Glass) */
.hs-gl {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0;
  transition: opacity 1.6s ease;
}
.hs-gl.is-live {
  opacity: 1;
}
