/* Touch-first experience; larger screens extend the same visitor flow. */
.hero-visual picture{display:block;width:100%;height:100%}.original-photo img{position:static;width:100%;height:100%;object-fit:cover;object-position:center}.scene-image.original-photo img{width:100%;height:100%;position:static;object-fit:cover;object-position:center 45%}.menu-toggle{display:none}.photo-story{background:#eeece3}.gallery-intro{display:flex;justify-content:space-between;align-items:end;gap:35px}.gallery-intro p{max-width:270px;color:var(--muted);font-size:13px}.photo-rail{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:38px 0 20px;scrollbar-width:thin;scrollbar-color:#929e8c transparent;overscroll-behavior-inline:contain}.photo-card{flex:0 0 36%;scroll-snap-align:start;min-width:260px;padding:0;text-align:left}.photo-card img{height:350px;object-fit:cover;transition:filter .3s}.photo-card:hover img{filter:brightness(.94)}.photo-card>span{display:flex;justify-content:space-between;font-size:12px;padding:15px 0}.photo-card b{font-size:18px;font-weight:400}.gallery-hint{font-size:8px;letter-spacing:.18em;color:var(--muted);margin-top:15px}.gallery-hint span{padding-left:12px}.stay-summary{font-size:12px;padding:12px 0 0;color:var(--ink)}#mobile-menu{inset:0 0 0 auto;width:min(420px,100vw);height:100svh;max-height:100svh;margin:0;padding:40px 28px;background:var(--paper)}#mobile-menu>img{width:180px;height:180px;object-fit:contain;margin:0 auto 20px}#mobile-menu nav{display:grid;margin-bottom:30px}#mobile-menu nav a{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);font:300 26px Manrope,Arial}#mobile-menu nav span{font:10px Arial;align-self:center;color:var(--muted)}.menu-close{position:absolute;right:15px;top:12px;width:44px;height:44px;font-size:30px}#photo-viewer{width:min(1100px,100vw);max-width:100vw;background:#13261f;color:white;overflow:hidden}#photo-viewer .photo-close{position:absolute;top:8px;right:10px;z-index:2;width:44px;height:44px;background:#13261fcc;border-radius:50%;font-size:28px;color:white}.photo-view-frame{height:75svh}.photo-view-frame img{width:100%;height:100%;object-fit:contain}.photo-view-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;gap:20px}.photo-view-bar button{width:44px;height:44px;flex:none;color:white;font-size:24px}.photo-view-bar p{font-size:13px;text-align:center}
@media(max-width:640px){body{font-size:16px}.site-header{display:grid;grid-template-columns:1fr auto 1fr;padding:12px 5%;align-items:center}.site-header .wordmark{grid-column:2;grid-row:1;width:104px;height:106px}.wordmark img.brand-standalone{width:182px;height:182px;left:-38px;top:-32px}.menu-toggle{display:flex;grid-column:1;grid-row:1;align-items:center;gap:8px;justify-self:start;min-height:44px;font-size:11px;padding:8px 0;color:inherit}.menu-toggle span{font-size:16px}.site-header .header-reserve{display:none}.site-header.scrolled{padding:7px 5%}.scrolled .wordmark{width:88px;height:90px}.scrolled .wordmark img.brand-standalone{width:154px;height:154px;left:-32px;top:-27px}.hero{height:92svh;min-height:620px}.hero-topline{top:145px;left:6%;right:6%;font-size:8px}.hero h1{font-size:clamp(64px,15.8vw,97px);line-height:1.08}.hero-copy{bottom:100px}.hero-copy .eyebrow{font-size:9px}.hero-bottom p{font-size:13px}.hero-index{display:none}.circle-link{width:90px;height:90px;flex:none}.hero-visual img{object-position:55% center;animation:none}.scroll-cue{bottom:30px}.mobile-book{transform:none!important;padding:11px 5% max(11px,env(safe-area-inset-bottom));gap:10px}.mobile-book>span{font-size:12px}.mobile-book button{font-size:13px;min-height:46px;padding:11px 19px}.section{padding:62px 6%}.section-meta{font-size:8px;letter-spacing:.1em}.section-meta>span:last-child{display:none}.essence h2{font-size:clamp(33px,9.5vw,45px)}.essence-text p,.essence-text .muted,.chalet-copy>p,.moments-heading p,.arrival-title p,.arrival-notes p,.faq details p{font-size:15px;line-height:1.8}.amenity-line{gap:12px 20px;font-size:8px;letter-spacing:.09em}.chalet-photo{min-height:0;height:520px;max-height:70svh}.chalet-copy{padding:42px 6% 52px}.chalet-copy h2,.moments-heading h2,.arrival-title h2,.faq h2,.gallery-intro h2{font-size:clamp(34px,9.5vw,44px)}.specs{margin:28px 0}.specs span{font-size:11px}.feature-grid{font-size:12px;gap:13px 18px}.text-link{min-height:44px;font-size:13px;gap:28px}.scene-tabs{gap:8px}.scene-tabs button{min-height:60px;font-size:10px}.scene-tabs button span{font-size:11px;line-height:1.4}.scene-controls button{height:44px;width:44px}.scene-caption h3{font-size:28px}.scene-caption .eyebrow{font-size:9px}.scene{height:450px}.arrival-notes h3{font-size:17px}.arrival-notes>div>span{font-size:11px}.faq{padding-top:0}.faq summary{font-size:15px;line-height:1.5;padding:22px 0}.closing .eyebrow{font-size:9px}.closing h2{font-size:clamp(65px,19vw,90px)}.closing .reserve{font-size:13px;min-height:48px}.gallery-intro{display:block}.gallery-intro h2{margin-top:20px}.gallery-intro p{max-width:none;font-size:15px;margin-top:22px}.photo-rail{margin-right:-6.8%;gap:14px;padding-top:26px;scroll-padding-left:0}.photo-card{flex-basis:86%;min-width:0}.photo-card img{height:330px}.photo-card>span{font-size:13px;line-height:1.5;min-height:56px}.gallery-hint{font-size:9px}.booking-content{padding:50px 6% max(28px,env(safe-area-inset-bottom))}.booking-content h2{font-size:34px}.booking-content>p{font-size:14px;line-height:1.65}.close-dialog{width:44px;height:44px}.date-grid{gap:12px}label{font-size:12px}input,select{font-size:16px;min-height:48px}.submit{font-size:13px;min-height:50px}.form-note{font-size:12px}.other-chalet{font-size:12px;display:inline-block;min-height:44px;padding:9px 0}.stay-summary{font-size:13px}.photo-view-frame{height:70svh}#photo-viewer{max-height:90svh;margin:auto}.photo-view-bar{padding:10px}.photo-view-bar p{font-size:12px}footer{padding-bottom:105px}html{scroll-padding-top:115px}}
@media(min-width:641px){.photo-card:first-child img{object-position:center 55%}.photo-card img{border-radius:1px}}@media(prefers-reduced-motion:reduce){.photo-rail{scroll-behavior:auto}.hero-visual{transform:none!important}}

.film-section{background:var(--paper);padding-top:30px}.film-player{position:relative;aspect-ratio:16/9;margin-top:35px;background:#13261f}.film-player video{display:block;width:100%;height:100%;object-fit:contain}.film-start{position:absolute;inset:0;display:flex;gap:18px;align-items:center;justify-content:center;color:white;background:linear-gradient(transparent,#10201966);text-shadow:0 1px 10px #0008}.film-start[hidden]{display:none}.film-play-icon{width:72px;height:72px;border:1px solid #ffffffaa;border-radius:50%;display:flex;align-items:center;justify-content:center;padding-left:4px;font-size:20px;backdrop-filter:blur(8px);background:#10201933}.film-start>span:last-child{text-align:left;font-size:16px}.film-start small{display:block;font-size:9px;letter-spacing:.15em;margin-top:7px}.film-note{font-size:12px;color:var(--muted);margin-top:15px}@media(max-width:640px){.film-section{padding-top:0}.film-player{margin-top:25px}.film-play-icon{width:52px;height:52px;font-size:15px}.film-start{gap:12px}.film-start>span:last-child{font-size:13px}.film-start small{font-size:8px}.film-note{font-size:12px;line-height:1.7}}

.nearby{background:#eeece3}
.nearby h2{margin:20px 0}
.nearby>p{color:var(--muted)}
.nearby-grid{display:grid;gap:14px;margin-top:28px}
.nearby-grid article{padding:22px;background:var(--paper);border:1px solid var(--line)}
.nearby-grid h3{font-size:19px;margin:10px 0 8px}
.nearby-grid p{font-size:14px;color:var(--muted)}
.nearby-grid a{margin-top:12px}
.nearby .nearby-note{font-size:12px;margin-top:18px}
#direct-contact[hidden]{display:none}
#booking-action{font:inherit}
#booking .submit:disabled{opacity:.6;cursor:wait}
@media(min-width:641px){.nearby-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.nearby-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){#direct-contact{grid-template-columns:1fr}.booking-content{padding-top:48px}}

.skip-content {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 100;
  transform: translateY(-200%);
  padding: 0.75rem 1rem;
  background: #fff;
  color: #16271f;
}
.skip-content:focus { transform: none; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.65rem 1rem; }
.contact-purpose { font-size: 0.85rem; }
#airbnb-listings ul { padding-inline-start: 1.25rem; }
#airbnb-listings a { display: inline-block; padding-block: 0.4rem; }

.nature-toggle {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-top: .65rem;
  min-height: 44px;
  padding: .45rem .75rem;
  border: 1px solid #ffffff70;
  border-radius: 99px;
  color: #fff;
  background: #16271f9c;
  font: inherit;
  font-size: .75rem;
  cursor: pointer;
}
.nature-toggle[hidden] { display: none; }
.nature-toggle[aria-pressed="true"] { background: #16271f; }
.nature-toggle svg { width: 1rem; height: 1rem; }
.nature-status { display: block; font-size: .75rem; }

.swallow-pair {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: clamp(6px, 1.5vw, 22px);
  margin: 0 0 .5rem;
  pointer-events: none;
}
.swallow-pair img,
.closing-swallow {
  display: block;
  height: auto;
  mix-blend-mode: multiply;
}
.swallow-pair img:first-child { width: clamp(38px, 5vw, 65px); opacity: .64; }
.swallow-pair img:last-child { width: clamp(80px, 10vw, 144px); margin-top: .65rem; opacity: .82; }
.closing-swallow {
  position: absolute;
  top: clamp(28px, 6vw, 90px);
  right: clamp(18px, 12vw, 180px);
  width: clamp(46px, 9vw, 126px);
  opacity: .52;
  pointer-events: none;
}

/* Reading and booking on small screens. */
@media (max-width: 640px) {
  :root { --muted: #4b5b52; }

  .hero {
    display: flex;
    align-items: flex-end;
    height: auto;
    min-height: max(620px, 92svh);
  }
  .hero-copy {
    position: relative;
    inset: auto;
    width: 88%;
    margin: 11.25rem auto 5.75rem;
  }
  .hero h1 { font-size: clamp(2.8rem, 15vw, 5.5rem); }
  .hero-shade {
    background: linear-gradient(180deg, #0b1e2077, #0b16182b 25%, #0c191cdc 74%);
  }
  .hero-bottom { gap: .75rem; flex-wrap: wrap; }
  .hero-bottom p { line-height: 1.5; }
  .circle-link {
    width: auto;
    height: auto;
    min-height: 48px;
    padding: .65rem .9rem;
    gap: .65rem;
    border-radius: 99px;
    background: #16271f;
  }
  .circle-link br { display: none; }
  .circle-link span { max-width: 8ch; text-align: center; }
  .hero-copy .eyebrow,
  .section-meta,
  .amenity-line,
  .specs span,
  .feature-grid,
  .gallery-hint,
  .photo-card > span,
  .photo-view-bar p,
  .film-note,
  .nearby .nearby-note,
  .closing .eyebrow,
  .closing p,
  .nature-status {
    font-size: .875rem;
    line-height: 1.5;
  }
  .hero-bottom p,
  .menu-toggle,
  .circle-link,
  .nature-toggle,
  .mobile-book button,
  .text-link,
  .scene-tabs button,
  .scene-tabs button span,
  .faq summary,
  .closing .reserve,
  .booking-content label,
  .booking-content input,
  .booking-content select,
  .booking-content .submit,
  .form-note,
  .stay-summary,
  .contact-purpose,
  #airbnb-listings,
  .footer-links {
    font-size: 1rem;
  }
  .essence-text p,
  .essence-text .muted,
  .chalet-copy > p,
  .moments-heading p,
  .arrival-title p,
  .arrival-notes p,
  .faq details p,
  .gallery-intro p,
  .nearby-grid p,
  .booking-content > p {
    font-size: 1.0625rem;
    line-height: 1.65;
  }
  .mobile-book > span { font-size: .875rem; }
  .mobile-book button { flex-shrink: 0; }
  .mobile-book { flex-wrap: wrap; }
  .scene-tabs { grid-template-columns: repeat(auto-fit, minmax(min(100%, 5.5rem), 1fr)); }
  .scene-tabs button { height: auto; }
  .date-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr)); }
  .date-grid label,
  .date-grid input,
  .date-grid select { min-width: 0; max-width: 100%; }
  .closing h2 { font-size: clamp(2.75rem, 16vw, 5.625rem); }
}

.table-story { margin: 1rem 0 0; }
.table-story > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}
.table-story img { display: block; width: 100%; height: auto; }
.table-story figcaption {
  margin-top: .65rem;
  font-size: .875rem;
  line-height: 1.55;
  color: var(--muted);
}

.hero-visual img { object-position: 55% 76%; }
@media (max-width: 640px) {
  .hero-visual img { object-position: 58% 76%; }
}

.table-story-lead { margin-bottom: .65rem; }

.whatsapp-contact {
  position: fixed;
  z-index: 46;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  min-height: 48px;
  padding: .65rem .95rem;
  border: 1px solid #ffffff50;
  border-radius: 99px;
  background: #176749;
  color: #fff;
  box-shadow: 0 4px 15px #15251f33;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
}
.whatsapp-contact:hover { background: #10523a; }
.whatsapp-contact:focus-visible { outline: 3px solid white; outline-offset: 3px; }
.whatsapp-contact svg { flex-shrink: 0; }
@media (max-width: 640px) {
  .whatsapp-contact { font-size: .875rem; }
  .mobile-book.visible ~ .whatsapp-contact {
    bottom: calc(6rem + env(safe-area-inset-bottom));
  }
}
