/* A quieter palette, compact chapters, and a reversible native apartment stack. */
:root{--cream:#e7e4d9;--paper:#dcdcd0;--paper-soft:#d8d9cc}
.hero-wordmark{font-size:16.2vw;color:#f1e9d9;letter-spacing:-.062em}
.hero-shade{background:linear-gradient(180deg,rgba(23,31,34,.5),rgba(23,31,34,.08) 35%,transparent 53%,rgba(18,25,20,.7))}
.hero-media{transform:none;will-change:auto}
[data-photo-motion]{animation:alpine-drift 18s cubic-bezier(.45,0,.55,1) infinite alternate both;animation-play-state:paused;transform-origin:50% 58%;will-change:transform;backface-visibility:hidden}
[data-photo-motion].motion-running{animation-play-state:running}
.hero-photo[data-photo-motion]{animation-duration:16s}
.cinema>.ambient-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.arrival-image>.ambient-photo{width:100%;height:100%;object-fit:cover}
.cinema-copy{transform:none;will-change:auto}
@keyframes alpine-drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(0,0,0) scale(1.035)}}
@media(prefers-reduced-motion:reduce){[data-photo-motion]{animation:none!important;transform:none!important;will-change:auto}}
.prices,.region,.detail-amenities{background:var(--paper)}
.inquiry{background:var(--paper-soft)}
.prices.section-space{padding-top:48px;padding-bottom:50px}
.prices .section-label{margin-bottom:28px}
.price-layout{gap:9%;align-items:start}
.price-layout p{color:#5c5e52}
.price-layout h2{font-size:clamp(40px,4.2vw,62px);margin-bottom:20px}
.price-row{padding:16px 0}.price-row strong{font-size:36px}
.price-note{margin:16px 0;font-size:14px;line-height:1.4}
.price-table .underlined{margin-top:12px;padding:12px 0}
.region.section-space{padding-top:38px;padding-bottom:36px}
.region .section-label{margin-bottom:25px}
.region .section-heading{margin-bottom:28px}
.region .section-heading h2{font-size:clamp(48px,5.6vw,82px);line-height:.98}
.region .season-panel{grid-template-columns:1.06fr 1fr;gap:7%;align-items:center}
.region .season-image{height:clamp(320px,40svh,405px);border-radius:130px 130px 22px 22px}
.region .season-text h3{font-size:clamp(36px,3.1vw,46px);margin:14px 0}
.region .season-text>p{font-size:16px;line-height:1.4}
.region .feature-list{margin:14px 0}.region .feature-list li{padding:7px 0;font-size:15px}
.region .season-text>.small-note{font-size:13px;line-height:1.4}
.region .family-program{grid-template-columns:.48fr .85fr 1.4fr;gap:5%;padding-top:26px;margin-top:26px;border-top:1px solid #22231e26}
.region .family-program h3{font-size:32px}.region .family-program p{font-size:14px;line-height:1.45}
.season-tabs{margin-bottom:0}.season-tabs button{padding:8px 21px}
.inquiry.section-space{padding-top:38px;padding-bottom:40px}
.inquiry .section-label{margin-bottom:30px}
.inquiry-layout{grid-template-columns:.95fr 1.05fr;gap:8%;align-items:start}
.inquiry h2{font-size:clamp(43px,4.7vw,68px);margin-bottom:23px}
.inquiry-layout>div>p{font-size:17px;line-height:1.45}
.inquiry .contact-block{margin:30px 0;gap:5px}.inquiry .contact-block>span{margin-bottom:5px}
.inquiry .contact-block>a{font-size:21px}
.inquiry .underlined{font-size:15px;line-height:1.4}
.inquiry .form-grid{gap:14px 22px}
.inquiry .form-grid label{font-size:13px;line-height:1.4}
.inquiry input,.inquiry select,.inquiry textarea{min-height:40px;padding:8px 0;font-size:16px;line-height:1.3}
.inquiry textarea{height:62px;min-height:62px}
.inquiry .form-note{margin:16px 0;font-size:12px;line-height:1.4}
.inquiry .form-alternative{font-size:12px;margin-top:14px}
.inquiry .form-submit{font-size:15px}
.inquiry .contact-pair{grid-column:auto}
.inquiry .children-age{grid-column:auto}
.inquiry .children-count{grid-column:auto}
@media(min-width:1101px){.inquiry .form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.inquiry .form-grid label{grid-column:span 2}.inquiry .form-grid .full{grid-column:span 4}.inquiry .form-grid .party-count,.inquiry .form-grid .children-count{grid-column:span 1}.inquiry .form-grid .children-age{grid-column:span 2}}
@media(min-width:901px) and (prefers-reduced-motion:no-preference){
  .apartment-stack.has-sticky-panels{position:relative;isolation:isolate}
  .has-sticky-panels .apartment-panel{height:100svh;min-height:0}
  .has-sticky-panels .apartment-panel:first-child{position:sticky;top:4px;z-index:1}
  .has-sticky-panels .apartment-panel:nth-child(2){position:relative;z-index:2}
  .has-sticky-panels .apartment-visual{position:relative;height:calc(100svh - 24px);min-height:0;border-radius:44px;will-change:transform,opacity;backface-visibility:hidden;transform-origin:50% 50%}
  .has-sticky-panels .apartment-panel:first-child .apartment-visual{border-radius:44px}
}
@media(min-width:1101px) and (max-height:800px){
  .region.section-space{padding-top:27px;padding-bottom:26px}
  .region .section-label{margin-bottom:17px}
  .region .section-heading{margin-bottom:21px}
  .region .section-heading h2{font-size:56px}
  .region .season-image{height:280px}
  .region .season-text h3{font-size:39px;margin:10px 0}
  .region .season-text>p{font-size:15px;line-height:1.35}
  .region .feature-list{margin:10px 0}.region .feature-list li{padding:5px 0;font-size:14px}
  .region .family-program{padding-top:14px;margin-top:14px}.region .family-program h3{font-size:29px}
  .inquiry.section-space{padding-top:28px;padding-bottom:30px}.inquiry .section-label{margin-bottom:23px}
  .inquiry .form-grid{gap:11px 22px}.inquiry h2{font-size:58px}
  .inquiry .form-note{margin:12px 0}
}
@media(min-width:1800px){.hero-wordmark{font-size:260px}}
@media(min-width:751px) and (max-width:1100px){
  .region .family-program{grid-template-columns:1fr 1.4fr}.region .family-program>.eyebrow{grid-column:1/-1}
  .region .season-text h3{font-size:35px}.region .season-text .eyebrow{font-size:11px}
  .inquiry-layout{gap:6%}.inquiry .form-grid{gap:14px}.inquiry .contact-pair{grid-column:span 2}
  .inquiry .contact-block>a{font-size:18px}
}
@media(max-width:750px){
  .hero-wordmark{font-size:21vw;top:108px}
  .prices.section-space{padding-top:36px;padding-bottom:36px}.prices .section-label{margin-bottom:25px}
  .price-layout{gap:26px}.price-layout h2{font-size:40px;margin-bottom:15px}
  .price-row{padding:14px 0}.price-row strong{font-size:33px}
  .price-note{font-size:13px}.price-table .underlined{font-size:14px}
  .region.section-space{padding-top:35px;padding-bottom:35px}
  .region .section-heading h2{font-size:50px}.region .section-heading{margin-bottom:25px}
  .region .season-panel{grid-template-columns:1fr;gap:25px}
  .region .season-image{height:300px;border-radius:110px 110px 18px 18px}
  .region .season-text h3{font-size:40px}.region .season-text>p{font-size:16px}
  .region .family-program{grid-template-columns:1fr;gap:16px;margin-top:25px;padding-top:25px}
  .region .family-program>.eyebrow{grid-column:auto}.region .family-program h3{font-size:34px}
  .region .family-program p{font-size:15px}.season-tabs{margin-top:23px}
  .inquiry.section-space{padding-top:35px;padding-bottom:38px}
  .inquiry .section-label{margin-bottom:25px}.inquiry-layout{grid-template-columns:1fr;gap:30px}
  .inquiry h2{font-size:46px;margin-bottom:20px}.inquiry .contact-block{margin:24px 0}
  .inquiry .contact-pair{grid-column:span 2}.inquiry .form-grid{gap:16px 18px}
  .inquiry .children-age{grid-column:span 2}
  .inquiry .form-note,.inquiry .form-alternative{font-size:12px}.inquiry .form-submit{font-size:14px}
}
@media(max-width:360px){.inquiry h2{font-size:40px}.inquiry .form-grid{grid-template-columns:1fr}.inquiry .contact-pair,.inquiry .children-age{grid-column:auto}.region .section-heading h2{font-size:44px}.inquiry .contact-block>a{font-size:19px}}
@media(prefers-reduced-motion:reduce){.hero-media,.hero-photo{transform:none!important;will-change:auto}}
@media(max-width:750px){.footer-info>div:last-child{flex-wrap:wrap;row-gap:14px}}

/* Client updates: summer-only family programme and arrival information. */
.region .season-panel{row-gap:26px}
#panel-sommer .season-image img{object-position:70% center}
#panel-sommer>.family-program{grid-column:1/-1;margin-top:0}
.arrival-note{margin-top:28px;padding-top:22px;border-top:1px solid var(--line);max-width:52ch}
.arrival-note h3{font:inherit;font-size:17px;line-height:1.4;font-weight:500;letter-spacing:-.01em;margin:0 0 10px}
.arrival-note p{font-size:14px;line-height:1.55;color:var(--muted);margin:0 0 12px}
.arrival-note a{font-size:13px;text-decoration:underline;text-underline-offset:4px;line-height:1.6}
.arrival-video-links{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:12px;color:var(--muted)}
.arrival-video-links a{color:var(--cream);display:inline-flex;align-items:center;min-height:32px}
@media(max-width:900px){.arrival{grid-template-columns:1fr;gap:40px}.arrival-image{height:auto;aspect-ratio:1600/902}.arrival-note{margin-top:24px}.arrival-video-links a{min-height:40px}}

/* Keyboard focus follows each section's contrasting text colour. Photo controls
   use an inset two-colour ring so their rounded crop cannot hide it. */
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid currentColor;outline-offset:4px}
.gallery-open:focus-visible{outline:3px solid var(--cream);outline-offset:-5px}
.gallery-open:focus-visible:before{content:'';position:absolute;inset:2px;z-index:2;pointer-events:none;border:3px solid var(--ink);box-shadow:inset 0 0 0 3px var(--cream);border-radius:inherit}
.dialog-close{min-width:44px;min-height:44px;justify-content:center}
