/* V49: curated photography and compact, shared editorial components. */
:root { --header-height: 88px; --space: clamp(64px,6vw,88px); --motion-ease: cubic-bezier(.22,.68,.18,1); }
html { scroll-behavior: auto; scroll-padding-top: 104px; }
.header { min-height: var(--header-height); }
.page-top { position: absolute; top: 0; left: 0; width: 1px; height: 1px; }
.nav-chevron { flex: 0 0 12px; transition: transform .2s ease; }
.nav-group[open] .nav-chevron { transform: rotate(180deg); }
.brand small { letter-spacing: .42em; padding-left: .42em; }
.eyebrow { font-size: .8125rem; letter-spacing: .13em; }
.copy { font-size: 1rem; line-height: 1.75; }
.link-arrow { display: inline-block; margin-left: 12px; transition: transform .25s ease; }
.btn,.book { gap: 0; text-align: center; }
.btn:hover .link-arrow { transform: translateX(3px); }
.booking-link .link-arrow { flex: 0 0 auto; }
.booking-link:hover .link-arrow { transform: translate(2px,-2px); }
.btn[href^="#"]:hover .link-arrow { transform: translateY(3px); }
.text-link { min-height: 44px; }
/* The photograph has its own space; words never cover the room. */
.arrival-heading { display: grid; grid-template-columns: 1.45fr 1fr; align-items: end; gap: 5vw; padding-block: 48px 42px; }
.arrival-heading .display { font-size: clamp(3.25rem,5.2vw,5.25rem); line-height: 1.04; letter-spacing: -.04em; text-wrap: pretty; }
.arrival-heading .eyebrow { margin-bottom: 15px; }
.arrival-aside { max-width: 460px; justify-self: end; padding-bottom: 4px; }
.arrival-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 22px; }
.arrival-photo { height: clamp(400px,43vw,610px); overflow: hidden; }
.arrival-photo img { object-position: 50% 61%; }
.arrival-lodge .arrival-heading { padding-block: 43px 36px; }
.arrival-lodge .arrival-photo { height: clamp(420px,42vw,580px); }
.page-forest-lodge-i .arrival-photo img { object-position: 50% 58%; }
.page-forest-lodge-ii .arrival-photo img { object-position: 50% 53%; }
.page-heading { padding-block: 60px 25px; }
.page-heading .display { font-size: clamp(3rem,5.4vw,5rem); }
.page-heading .copy { margin-top: 22px; }
.facts-inner { padding-block: 19px; gap: 16px 28px; font-size: .875rem; }
.subnav { display: flex; gap: 30px; align-items: center; padding-block: 12px; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.subnav .text-link { flex-shrink: 0; font-size: .875rem; border-bottom: 0; padding-block: 10px; }
/* Equal visual weight for the two houses. */
.lodges { padding-block: var(--space); }
.lodges-head { margin-bottom: 35px; }
.lodge-grid { gap: 48px; }
.lodge-card:nth-child(2) { padding-top: 0; margin-top: 0; }
.lodge-photo { aspect-ratio: 4/3; }
.lodge-card-content { padding-top: 23px; }
.lodge-card-content h3 { font-size: clamp(2rem,3vw,3rem); }
.lodge-card-content .eyebrow { margin-bottom: 12px; font-size: .75rem; }
.lodge-card-content p { max-width: 44ch; font-size: 1rem; }
.lodge-compare-link { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: clamp(48px,5vw,72px); text-align: center; }
.lodge-compare-link h3 { font-size: clamp(1.75rem,2.5vw,2.2rem); line-height: 1.2; }
/* Three deliberate moments, with native horizontal scroll and a lodge switch. */
.journey { padding-block: 55px 40px; background: #23382f; color: var(--paper); }
.journey-heading { display: flex; justify-content: space-between; align-items: end; gap: 28px; margin-bottom: 28px; }
.journey-heading .eyebrow { margin-bottom: 12px; color: #cbd5c7; }
.journey-heading .title { font-size: clamp(2.3rem,3.5vw,3.5rem); }
.lodge-switch { display: flex; flex-shrink: 0; border: 1px solid #9aab94; }
.lodge-switch button { color: var(--paper); background: transparent; border: 0; min-height: 48px; padding: 11px 19px; font-size: .875rem; }
.lodge-switch button[aria-pressed="true"] { background: var(--paper); color: var(--ink); }
.lodge-switch button:hover { background: #dce3d3; color: var(--ink); }
.tour-fallback-title { font-size: 1.8rem; margin-bottom: 20px; }
.journey.is-ready .tour-fallback-title { display: none; }
.tour-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; gap: 24px; }
.tour-panel { display: grid; grid-template-columns: 1.8fr 1fr; flex: 0 0 100%; min-width: 0; scroll-snap-align: start; background: #1b2e25; }
.tour-photo { aspect-ratio: 4/3; overflow: hidden; }
.tour-photo img { object-fit: cover; }
.tour-caption { display: flex; flex-direction: column; justify-content: center; align-items: start; padding: 35px; }
.tour-number { color: #a9bba1; font: 400 3rem/1 var(--serif); margin-bottom: 28px; }
.tour-caption h3 { font-size: clamp(1.9rem,2.7vw,2.9rem); line-height: 1.12; }
.tour-caption p { margin-top: 22px; font-size: 1rem; line-height: 1.7; color: #cdd8c7; }
.tour-caption .text-link { margin-top: 28px; font-size: .875rem; }
.tour-controls { display: flex; justify-content: space-between; align-items: center; gap: 28px; padding-top: 16px; }
.tour-steps { display: flex; gap: 22px; }
.tour-steps button { background: transparent; color: #c5d0be; border: 0; border-bottom: 1px solid transparent; padding: 10px 0; min-height: 44px; font-size: .875rem; }
.tour-steps button[aria-current] { color: #fff; border-bottom-color: #e3ead8; }
.tour-steps span { font-size: .75rem; margin-right: 6px; }
.tour-arrows { display: flex; align-items: center; gap: 15px; }
.tour-arrows button { width: 44px; height: 44px; background: transparent; color: var(--paper); border: 1px solid #88977e; font-size: 1.25rem; }
.tour-count { font-size: .8125rem; letter-spacing: .08em; white-space: nowrap; }
.tour-hint { margin-top: 12px; font-size: .8125rem; color: #b6c4ae; }
.lodge-tour[hidden] { display: none; }
/* One regional invitation; the numbered detail page keeps its geometry. */
.region-teaser { display: grid; grid-template-columns: 1.25fr 1fr; gap: 7vw; align-items: center; padding-block: var(--space); }
.region-teaser-image { aspect-ratio: 4/3; }
.region-teaser-copy .copy { margin-top: 24px; }
.region-teaser-copy .text-link { margin-top: 22px; }
.place > .place-image { width: 100%; aspect-ratio: 4/3; overflow: hidden; }
.place:nth-child(2) > .place-image { grid-column: 2; grid-row: 1; }
.place-image img { object-fit: cover; }
.place-grid { gap: 64px; }
.story-teaser { padding-block: 32px var(--space); grid-template-columns: 1.25fr 1fr; gap: 7vw; }
.teaser-image { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: stretch; gap: 13px; height: auto; }
.teaser-image img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
/* Room mosaics retain their asymmetry without covering images with badges. */
.inside { padding-block: var(--space); }
.inside-top { margin-bottom: 36px; }
.inside-top .title { font-size: clamp(2.8rem,4.4vw,4rem); }
.mosaic { grid-template-columns: 1.45fr 1fr; align-items: start; gap: 25px; }
.mosaic-main,.mosaic-side figure { aspect-ratio: auto; }
.mosaic-main img { height: auto; aspect-ratio: 4/3; }
.mosaic-side { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 18px; padding-top: 0; }
.mosaic-side figure img { height: auto; aspect-ratio: 3/4; object-fit: cover; }
.mosaic-side figure:first-child { margin-top: 60px; }
.mosaic-side figure:last-child { margin-top: 140px; }
.mosaic figure { margin: 0; min-width: 0; }
.mosaic figure img { display: block; width: 100%; }
.photo-caption { position: static; display: block; width: 100%; box-sizing: border-box; margin: 0; padding: 11px 0 0; color: #d0dac9; font-size: .8125rem; line-height: 1.4; text-align: left; }
.inside-facts { margin-top: 40px; padding-top: 22px; }
.inside-fact { min-width: 0; padding-inline: 0; }
.inside-fact b { font-size: .9375rem; }
.inside-fact span { font-size: .9375rem; }
.page-forest-lodge-ii .inside { background: var(--sand); color: var(--ink); }
.page-forest-lodge-ii .inside .copy,.page-forest-lodge-ii .photo-caption,.page-forest-lodge-ii .inside-fact span { color: var(--muted); }
.page-forest-lodge-ii .inside-facts { border-color: var(--line); }
/* Gallery photos keep their natural proportions, including portrait photographs. */
.gallery { --gallery-height: clamp(260px,29vw,370px); padding-block: var(--space); }
.gallery-head { margin-bottom: 30px; }
.gallery .track { gap: 23px; padding-bottom: 15px; }
.gallery .card,.gallery .card.small { flex: 0 0 auto; width: min(calc(var(--ratio) * var(--gallery-height)),calc(100vw - 48px)); }
.gallery .card img { height: var(--gallery-height); width: 100%; object-fit: contain; aspect-ratio: auto; }
.gallery .card span { font-size: .875rem; padding-top: 12px; }
.gallery-bottom { padding-top: 10px; }
.lightbox { overflow: hidden; }
.lb-stage { grid-template-columns: minmax(0,1fr); grid-template-rows: minmax(0,1fr); }
.lb-img {
  min-height: 0;
  min-width: 0;
  width: min(100%, calc(100vw - 24px));
  height: auto;
  max-height: calc(100svh - 168px);
}
.lb-count { text-align: center; max-width: calc(100% - 140px); }
.outside-hero { max-width: 1440px; margin-inline: auto; grid-template-columns: 1.15fr 1fr; }
.outside-hero > img { height: 100%; min-height: 420px; max-height: 590px; aspect-ratio: 4/3; }
.outside-hero-content { padding: clamp(30px,4.5vw,60px); }
.outside-hero-content .title { font-size: clamp(2.6rem,3.5vw,3.8rem); }
/* Whole-image comparison respects the different camera positions. */
.story { padding-block: var(--space); }
.story-head { margin-bottom: 35px; }
.story-pairs { gap: 44px; }
.story-pair { display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 20px; padding-top: 25px; align-items: start; }
.story-pair .pair-title { grid-column: 1; margin-top: 15px; }
.before-after { min-width: 0; grid-column: 2; width: 100%; max-width: 760px; }
.compare-views { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.compare-views figure { aspect-ratio: auto; }
.compare-views img { height: auto; aspect-ratio: 4/3; object-fit: contain; }
.compare-views figcaption { margin-top: 10px; font-size: .875rem; }
.before-after.is-ready .compare-views { position: relative; display: block; aspect-ratio: 4/3; background: #dddfd6; }
.before-after.is-ready figure { position: absolute; inset: 0; margin: 0; opacity: 0; visibility: hidden; transition: opacity .35s ease,visibility .35s; }
.before-after.is-ready figure.is-selected { opacity: 1; visibility: visible; }
.before-after.is-ready figure img { height: 100%; aspect-ratio: auto; object-fit: contain; }
.before-after.is-ready figcaption { position: absolute; top: 15px; left: 15px; margin: 0; background: #20362ce8; color: white; padding: 6px 13px; }
.compare-switch { display: none; }
.before-after.is-ready .compare-switch { display: inline-flex; margin-top: 15px; border: 1px solid var(--ink); }
.compare-switch button { min-height: 46px; min-width: 110px; padding: 9px 20px; border: 0; background: transparent; color: var(--ink); font-size: .875rem; transition: background .2s,color .2s; }
.compare-switch button:hover { background: #dde2d7; }
.compare-switch button[aria-pressed="true"] { background: var(--pine); color: var(--paper); }
.floorplan { padding-block: var(--space); }
.floor-img { padding: 12px; }
/* A factual, compact decision surface for booking. */
.booking-intro { padding-block: 55px 30px; }
.booking-intro .display { font-size: clamp(3rem,5.7vw,5rem); }
.booking-intro .copy { margin-top: 22px; max-width: 62ch; }
.page-infos .info-panels { padding-top: 5px; }
.page-infos .info-grid { gap: 38px; }
.booking-choice { display: flex; flex-direction: column; background: var(--sand); }
.booking-choice-image { height: auto; aspect-ratio: 16/10; overflow: hidden; }
.booking-choice-copy { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 30px; }
.booking-choice .eyebrow { font-size: .75rem; }
.booking-choice .subhead { font-size: 2.6rem; }
.booking-choice .copy { margin-top: 20px; flex: 1; }
.booking-choice .btn { margin-top: 24px; }
.booking-choice:first-child { background: var(--pine); color: var(--paper); }
.booking-choice:first-child .copy { color: #d3decb; }
.booking-choice:first-child .btn { color: var(--ink); background: var(--paper); border-color: var(--paper); }
#anreise { padding-top: 28px; border-top: 1px solid var(--line); }
#anreise .subhead { font-size: 2.5rem; }
#anreise .copy { margin-top: 20px; }
.location-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 40px; align-items: start; }
.location-address { font-style: normal; font-size: 1.125rem; line-height: 1.8; padding-left: 30px; border-left: 1px solid var(--line); }
.location-address .eyebrow { display: block; margin-bottom: 14px; }
.location-links { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 20px; }
.compare { padding-top: 15px; }
.spec { align-content: start; }
.compare-grid { margin-top: 25px; }
.compare-col > img { aspect-ratio: 4/3; height: auto; margin-bottom: 22px; }
.compare-col > .eyebrow { margin-bottom: 8px; }
.compare-col .btn { width: 100%; }
.booking { padding-block: 56px; }
.booking .display { font-size: clamp(2.6rem,4.2vw,4.3rem); }
.footer-main { padding-block: 35px; }
@media (min-width:761px) {
 .arrival-lodge { display: grid; grid-template-columns: 1fr 1.5fr; align-items: center; max-width: 1600px; margin-inline: auto; }
 .arrival-lodge .arrival-heading { display: block; width: 100%; padding: 40px clamp(30px,4.8vw,70px); }
 .arrival-lodge .arrival-heading .display { font-size: clamp(2.8rem,4.6vw,4.6rem); }
 .arrival-lodge .arrival-aside { margin-top: 30px; }
 .arrival-lodge .arrival-photo { height: auto; aspect-ratio: 4/3; }
 .arrival-lodge .arrival-photo img { object-position: center; }
 @supports (grid-template-rows: subgrid) {
  .compare-grid { row-gap: 0; }
  .compare-col { display: grid; grid-template-rows: subgrid; grid-row: span 14; row-gap: 0; }
  .compare-col .btn { align-self: start; }
 }
}
@media (max-width:1100px) {
 .arrival-heading { grid-template-columns: 1.15fr 1fr; gap: 40px; }
 .arrival-heading .display { font-size: clamp(3rem,5.4vw,4.25rem); }
 .arrival-actions { gap: 8px 20px; }
 .journey-heading { align-items: start; }
 .tour-caption { padding: 24px; }
 .tour-number { margin-bottom: 18px; }
 .tour-caption p { margin-top: 15px; }
 .tour-caption .text-link { margin-top: 18px; }
 .mosaic { grid-template-columns: 1.2fr 1fr; }
 .mosaic-side { grid-template-columns: 1fr; }
 .mosaic-side figure:first-child,.mosaic-side figure:last-child { margin-top: 0; }
 .mosaic-side figure img { aspect-ratio: 16/9; }
 .story-pair { grid-template-columns: 130px minmax(0,1fr); }
}
@media (max-width:980px) {
 :root { --header-height: 80px; }
 .arrival-heading { padding-block: 35px; }
 .arrival-aside .copy { font-size: .9375rem; }
 .lodge-grid { gap: 32px; }
 .lodge-card-content h3 { font-size: 2.3rem; }
 .lodge-switch button { padding-inline: 13px; }
 .tour-panel { grid-template-columns: 1.3fr 1fr; }
 .tour-photo { aspect-ratio: 4/3; }
 .tour-steps { gap: 14px; }
 .tour-steps span { display: none; }
 .booking-choice-copy { padding: 26px; }
 .booking-choice .subhead { font-size: 2.2rem; }
}
@media (max-width:760px) {
 :root { --header-height: 76px; --space: 52px; }
 html { scroll-padding-top: 88px; }
 .eyebrow { font-size: .75rem; }
 .arrival { display: flex; flex-direction: column; }
 .arrival-heading,.arrival-lodge .arrival-heading { display: block; order: 2; padding-block: 28px 36px; }
 .arrival-heading .display { font-size: clamp(2.6rem,10.7vw,3.8rem); line-height: 1.09; }
 .arrival-heading .eyebrow { margin-bottom: 15px; }
 .arrival-photo,.arrival-lodge .arrival-photo { order: 1; height: auto; aspect-ratio: 4/3; }
 .arrival-photo img { object-position: center; }
 .arrival-aside { max-width: none; margin-top: 20px; }
 .arrival-aside .copy { font-size: 1rem; line-height: 1.65; }
 .arrival-actions { margin-top: 20px; gap: 10px 20px; }
 .arrival-actions .btn { padding-inline: 18px; }
 .page-heading { padding-block: 37px 20px; }
 .page-heading .display { font-size: 2.8rem; }
 .facts-inner { gap: 12px 20px; padding-block: 18px; font-size: .8125rem; }
 .subnav { gap: 24px; padding-block: 4px; }
 .lodges-head { margin-bottom: 28px; }
 .lodges-head .title { font-size: 2.45rem; }
 .lodges-head { display: block; }
 .lodge-grid { gap: 35px; }
 .lodge-photo { aspect-ratio: 4/3; }
 .lodge-card-content { padding-top: 20px; }
 .lodge-card-content .eyebrow { letter-spacing: .07em; }
 .lodge-card-content p { font-size: 1rem; }
 .lodge-compare-link { margin-top: 24px; }
 .journey { padding-block: 40px 28px; }
 .journey-heading { display: block; margin-bottom: 24px; }
 .journey-heading .title { font-size: 2.3rem; }
 .lodge-switch { width: 100%; margin-top: 22px; }
 .lodge-switch button { flex: 1; padding-inline: 8px; }
 .tour-panel { display: block; }
 .tour-photo { aspect-ratio: 4/3; }
 .tour-caption { padding: 24px; }
 .tour-number { display: none; }
 .tour-caption h3 { font-size: 2rem; }
 .tour-caption p { font-size: 1rem; margin-top: 14px; }
 .tour-caption .text-link { margin-top: 15px; }
 .tour-controls { flex-wrap: wrap; gap: 15px; padding-top: 14px; }
 .tour-steps { width: 100%; justify-content: space-between; gap: 8px; }
 .tour-steps button { font-size: .8125rem; }
 .tour-arrows { width: 100%; justify-content: space-between; }
 .tour-hint { font-size: .75rem; margin-top: 15px; }
 .region-teaser { grid-template-columns: 1fr; gap: 26px; }
 .region-teaser-image { aspect-ratio: 4/3; }
 .region-teaser-copy .title { font-size: 2.7rem; }
 .region-teaser-copy .copy { margin-top: 19px; }
 .story-teaser { grid-template-columns: 1fr; gap: 25px; }
 .teaser-image { gap: 12px; }
 .teaser-copy .title { font-size: 2.4rem; }
 .teaser-copy .copy { margin-top: 18px; }
 .place-grid { gap: 42px; }
 .place > .place-image { aspect-ratio: 4/3; height: auto; }
 .inside-top { gap: 20px; margin-bottom: 26px; }
 .inside-top .title { font-size: 2.6rem; }
 .mosaic { grid-template-columns: 1fr; gap: 24px; }
 .mosaic-main img { aspect-ratio: 4/3; }
 .mosaic-side { grid-template-columns: 1fr 1fr; gap: 17px; }
 .mosaic-side figure img { aspect-ratio: 3/4; }
 .photo-caption { font-size: .8125rem; }
 .inside-facts { margin-top: 26px; gap: 24px 20px; }
 .inside-fact span { font-size: .875rem; }
 .gallery { --gallery-height: 260px; }
 .gallery-head { gap: 20px; margin-bottom: 26px; }
 .gallery-head .title { font-size: 2.4rem; }
 .gallery-bottom { align-items: start; gap: 20px; }
 .gallery-bottom > p { max-width: 22ch; }
 .lb-count { font-size: .75rem; line-height: 1.4; bottom: 17px; }
 .outside-hero { grid-template-columns: 1fr; }
 .outside-hero > img { height: auto; min-height: 0; max-height: none; aspect-ratio: 4/3; }
 .outside-hero-content { padding: 32px 24px 38px; }
 .outside-hero-content .title { font-size: 2.55rem; }
 .story-pairs { gap: 32px; }
 .story-pair { display: block; }
 .story-pair .pair-title { margin: 0 0 22px; }
 .before-after.is-ready .compare-views { aspect-ratio: 4/3; }
 .compare-switch button { min-width: 105px; }
 .floor-grid { gap: 25px; }
 .floor-copy .title { font-size: 2.5rem; }
 .booking-intro { padding-block: 36px 28px; }
 .booking-intro .display { font-size: 2.8rem; }
 .page-infos .info-grid { gap: 28px; }
 .location-grid { grid-template-columns: 1fr; gap: 25px; }
 .location-address { padding-left: 0; border-left: 0; }
 .booking-choice-copy { padding: 25px 23px 28px; }
 .booking-choice .eyebrow { font-size: .75rem; letter-spacing: .08em; }
 .booking-choice .subhead { font-size: 2.3rem; }
 .booking-choice .btn { padding-inline: 16px; }
 .compare-grid { gap: 34px; }
 .compare-col > img { margin-bottom: 22px; }
 .compare-col h3 { font-size: 2.5rem; }
 .booking { padding-block: 38px; }
 .booking .display { font-size: 2.8rem; }
 .booking-grid { gap: 22px; }
 .booking-side .btn { margin-top: 22px; }
 .footer-main { padding-block: 32px; gap: 24px; }
 .footer-meta { font-size: .75rem; padding-block: 20px; }
}
@media (prefers-reduced-motion: reduce) {
 *,*::before,*::after { animation: none !important; transition: none !important; }
 .tour-track { scroll-behavior: auto; }
}

/* V47: a quiet full-screen arrival and a compact, legible brand signature. */
.brand { display: flex; align-items: center; gap: 12px; }
.brand .brand-wordmark { display: block; }
.brand-crest { flex: 0 0 auto; width: 40px; height: 45px; }
.header { color: var(--paper); background: var(--pine); border-color: #ffffff26; }
.header.scrolled { box-shadow: none; }
.header .book { color: var(--ink); background: var(--paper); border-color: var(--paper); }
.header .book:hover { background: #e3e6dd; border-color: #e3e6dd; }
.header .menu { color: var(--paper); }
.home .header { position: fixed; transition: background .25s,color .25s,border-color .25s; }
.home.header-ready .header:not(.scrolled) { color: var(--paper); background: transparent; border-color: #ffffff35; }
.header .dropdown { background: var(--pine); color: var(--paper); border-color: #ffffff35; }
.home-hero { position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: 540px; height: 100vh; height: 100svh; overflow: hidden; background: var(--pine); color: var(--paper); }
.hero-visual { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hero-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 56%; transform: scale(1); animation: lodge-arrival 5s cubic-bezier(.2,.45,.3,1) both; }
.home-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(12,24,18,.72) 0%,rgba(12,24,18,.12) 26%,rgba(12,24,18,.04) 42%,rgba(12,24,18,.68) 100%); pointer-events: none; }
.home-hero-copy { padding-top: calc(var(--header-height) + 64px); padding-bottom: clamp(44px,8vh,96px); }
.home-hero .display { font-size: clamp(3.5rem,6.2vw,6.2rem); line-height: 1.06; letter-spacing: -.035em; max-width: 19ch; text-wrap: balance; }
.lodges-head > .copy { align-self: end; }
.footer-brand { display: flex; align-items: center; gap: 24px; }
.footer-brand .footer-logo { flex: 0 0 auto; width: 120px; height: 120px; border-radius: 50%; object-fit: contain; }
.footer-brand .footer-wordmark { display: block; margin: 0; text-transform: none; color: var(--paper); letter-spacing: normal; }
.footer-wordmark strong { font-size: clamp(1.8rem,3vw,2.8rem); }
@keyframes lodge-arrival { from { transform: scale(1.045); } to { transform: scale(1); } }
@media (max-width: 980px) {
 .header .nav { color: var(--paper); background: var(--pine); border-color: #ffffff35; }
 .footer-brand { gap: 18px; }
 .footer-brand .footer-logo { width: 100px; height: 100px; }
}
@media (max-width: 760px) {
 .brand { gap: 9px; }
 .brand-crest { width: 30px; height: 36px; }
 .brand .brand-wordmark > span { font-size: 1.3rem; }
 .brand small { letter-spacing: .3em; padding-left: .3em; }
 .hero-visual img { object-position: 35% center; animation-name: lodge-arrival-mobile; }
 .home-hero-copy { padding-bottom: 52px; }
 .home-hero .display { font-size: clamp(2.75rem,10.5vw,4rem); max-width: 13ch; }
 .lodges-head > .copy { margin-top: 24px; }
 .story-teaser { grid-template-columns: 1fr; }
 .story-teaser,.region-teaser { gap: 26px; }
 .teaser-copy .title,.region-teaser-copy .title { font-size: 2.7rem; }
 .teaser-copy .copy,.region-teaser-copy .copy { margin-top: 19px; }
 .teaser-copy .text-link,.region-teaser-copy .text-link { margin-top: 22px; }
 .footer-wordmark strong { font-size: 1.8rem; }
 .footer-brand .footer-logo { width: 88px; height: 88px; }
}
@media (max-width: 360px) {
 .brand { gap: 7px; }
 .brand-crest { width: 25px; height: 32px; }
 .brand .brand-wordmark > span { font-size: 1.14rem; }
 .footer-brand { gap: 14px; }
 .footer-wordmark strong { font-size: 1.65rem; }
}
@media (max-height: 500px) and (min-width: 600px) {
 .home-hero { min-height: 420px; }
 .home-hero .display { font-size: 3rem; }
 .home-hero-copy { padding-bottom: 32px; }
}
@keyframes lodge-arrival-mobile { from { transform: scale(1.025); } to { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) {
 .hero-visual img { animation: none; transform: none; }
}

/* V50: centered crest, native full-height menu and shared photographic arrivals. */
:root { --header-height: 98px; }
html { scrollbar-gutter: stable; }
.header { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); height: var(--header-height); min-height: var(--header-height); padding: 12px var(--gutter); gap: 20px; border: 0; }
.has-hero .header { position: fixed; inset: 0 0 auto; transition: background .25s; }
.has-hero.header-ready .header:not(.scrolled) { background: transparent; border: 0; }
.header:has(.menu-disclosure[open]),.has-hero.header-ready .header:has(.menu-disclosure[open]) { background: var(--pine); }
.header .brand { grid-column: 2; justify-self: center; margin: 0; padding: 0; }
.header .brand-crest { width: 54px; height: 61px; }
.header > .book { grid-column: 3; justify-self: end; min-height: 44px; }
.menu-disclosure { grid-column: 1; grid-row: 1; justify-self: start; }
.menu-toggle { display: flex; align-items: center; gap: 14px; min-height: 44px; padding: 8px 0; cursor: pointer; list-style: none; font-size: .9375rem; letter-spacing: .035em; }
.menu-toggle::-webkit-details-marker { display: none; }
.menu-symbol { position: relative; display: block; width: 23px; height: 16px; }
.menu-symbol::before,.menu-symbol::after { content: ''; position: absolute; left: 0; width: 23px; height: 1px; background: currentColor; transition: transform .22s,top .22s; }
.menu-symbol::before { top: 4px; }.menu-symbol::after { top: 12px; }
.menu-disclosure[open] .menu-symbol::before { top: 8px; transform: rotate(45deg); }
.menu-disclosure[open] .menu-symbol::after { top: 8px; transform: rotate(-45deg); }
.menu-panel { position: fixed; inset: var(--header-height) 0 0; overflow-y: auto; overscroll-behavior: contain; background: var(--pine); color: var(--paper); }
.menu-disclosure[open] .menu-panel { animation: menu-arrival .25s ease both; }
.menu-inner { padding-block: clamp(32px,7vh,80px); }
.menu-inner > .eyebrow { opacity: .7; margin-bottom: clamp(24px,5vh,60px); }
body.menu-open,body:has(.menu-disclosure[open]) { overflow: hidden; }
@keyframes menu-arrival { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
.home-hero .display { font-size: clamp(3.5rem,5.3vw,5.3rem); }
.page-hero { position: relative; isolation: isolate; display: flex; align-items: flex-end; height: 88vh; height: 88svh; min-height: 520px; overflow: hidden; background: var(--pine); color: var(--paper); }
.page-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(12,24,18,.62),rgba(12,24,18,.04) 38%,rgba(12,24,18,.55)); pointer-events: none; }
.page-hero-copy { padding-top: calc(var(--header-height) + 40px); padding-bottom: clamp(40px,7vh,80px); }
.page-hero .display { font-size: clamp(3.4rem,6vw,6rem); line-height: 1.05; max-width: 20ch; text-wrap: balance; }
.page-hero .hero-visual img { object-position: 50% 50%; }
.page-hero--compact { height: 46vh; height: 46svh; min-height: 380px; max-height: 490px; }
.page-hero--compact .display { font-size: clamp(2.8rem,4.6vw,4.6rem); }
.page-hero--compact .page-hero-copy { padding-bottom: 38px; }
.page-hero .hero-subnav { width: 100%; justify-content: center; text-align: center; gap: 18px 28px; border-bottom: 0; padding: 10px 0; margin-top: 12px; }
.page-hero .hero-subnav .text-link { border-bottom: 0; border-color: transparent; text-decoration: none; }
.lodge-introduction { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: center; padding-block: 48px; }
.lodge-introduction .copy { max-width: 42ch; margin-top: 15px; }
.lodge-introduction .arrival-actions { margin: 0; justify-content: flex-end; }
.region-introduction { padding-top: 52px; }
.region-introduction .copy { max-width: 65ch; }
.utility-introduction { padding-block: 32px; }
@media (max-width: 760px) {
 :root { --header-height: 80px; }
 .header { height: var(--header-height); min-height: var(--header-height); padding: 10px 20px; gap: 10px; }
 .header .brand-crest { width: 38px; height: 44px; }
 .header > .book { padding: 10px 14px; font-size: .875rem; }
 .menu-toggle { gap: 10px; font-size: .875rem; }
 .menu-symbol,.menu-symbol::before,.menu-symbol::after { width: 20px; }
 .menu-inner { padding-block: 24px 40px; }
 .menu-inner > .eyebrow { margin-bottom: 16px; }
 .home-hero .display { font-size: clamp(2.75rem,10.5vw,4rem); }
 .page-hero { height: 82svh; min-height: 480px; }
 .page-hero .display { font-size: clamp(2.8rem,10vw,4rem); }
 .page-hero-copy { padding-bottom: 42px; }
 .page-hero--compact { height: 44svh; min-height: 330px; }
 .page-hero--compact .display { font-size: clamp(2.5rem,9vw,3.3rem); }
 .lodge-introduction { grid-template-columns: 1fr; gap: 25px; padding-block: 32px; }
 .lodge-introduction .arrival-actions { justify-content: flex-start; }
 .region-introduction { padding-top: 32px; }
 .utility-introduction { padding-block: 26px; }
}
@media (max-width: 360px) { .header { padding-inline: 14px; } .menu-toggle { gap: 8px; } }
@media (max-height: 500px) and (min-width: 600px) { .menu-links a { font-size: 1.8rem; padding-block: 12px; } .menu-inner { padding-block: 16px; } .menu-inner > .eyebrow { margin-bottom: 8px; } }

/* V52: direct navigation, three-stroke control and a more present crest. */
.header .brand-crest { width: 66px; height: 77px; }
.menu-toggle { gap: 10px; }
.menu-symbol { display: block; position: relative; width: 36px; height: 46px; flex: 0 0 36px; border: 1px solid #ffffff65; border-radius: 24px; transition: border-color .4s,transform .4s; }
.menu-symbol::before,.menu-symbol::after,.menu-stroke { position: absolute; content: ''; height: 1px; background: currentColor; left: 50%; top: 50%; transform-origin: center; transition: transform .6s cubic-bezier(.2,.8,.2,1),width .45s,opacity .3s; }
.menu-symbol::before { width: 13px; transform: translate(-50%,-7px); }
.menu-stroke { width: 20px; transform: translate(-50%,0); }
.menu-symbol::after { width: 13px; transform: translate(-50%,7px); }
.menu-label { display: grid; overflow: hidden; line-height: 1.5; min-width: 70px; }
.menu-label > span { grid-area: 1/1; transition: transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s; }
.menu-word-close { transform: translateY(110%); opacity: 0; }
.menu-disclosure[open]:not(.is-closing) > .menu-toggle .menu-symbol::before { top: 50%; width: 21px; transform: translate(-50%,0) rotate(45deg); }
.menu-disclosure[open]:not(.is-closing) > .menu-toggle .menu-symbol::after { top: 50%; width: 21px; transform: translate(-50%,0) rotate(-45deg); }
.menu-disclosure[open]:not(.is-closing) .menu-stroke { transform: translate(-50%,0) scaleX(0); opacity: 0; }
.menu-disclosure[open]:not(.is-closing) .menu-word-open { transform: translateY(-110%); opacity: 0; }
.menu-disclosure[open]:not(.is-closing) .menu-word-close { transform: translateY(0); opacity: 1; }
.menu-disclosure.is-closing > .menu-toggle .menu-symbol::before { top: 50%; transform: translate(-50%,-7px); }
.menu-disclosure.is-closing > .menu-toggle .menu-symbol::after { top: 50%; transform: translate(-50%,7px); }
.menu-inner { max-width: 760px; padding-block: clamp(38px,8vh,90px) 44px; }
.menu-inner > .eyebrow { margin-bottom: 26px; }
.menu-direct { display: grid; gap: 4px; }
.menu-direct a { display: block; width: fit-content; max-width: 100%; padding-block: 13px; font: 400 clamp(1.8rem,3.5vw,3rem)/1.2 Georgia,serif; text-decoration: none; transition: color .25s,transform .25s; }
.menu-direct a[aria-current="page"] { color: #c7d1b9; }
.menu-direct a:hover { color: #c7d1b9; transform: translateX(6px); }
.menu-disclosure[open] .menu-direct a { animation: direct-arrival .5s both; }
.menu-direct a:nth-child(2) { animation-delay: .045s; }.menu-direct a:nth-child(3) { animation-delay: .09s; }.menu-direct a:nth-child(4) { animation-delay: .135s; }.menu-direct a:nth-child(5) { animation-delay: .18s; }
@keyframes direct-arrival { from { opacity: 0; translate: 0 12px; } to { opacity: 1; translate: 0 0; } }
@media (hover: hover) {
 .menu-toggle:hover .menu-symbol { border-color: currentColor; transform: scale(1.06); }
 .menu-disclosure:not([open]) .menu-toggle:hover .menu-symbol::before,.menu-disclosure:not([open]) .menu-toggle:hover .menu-symbol::after { width: 20px; }
}
@media (max-width: 760px) {
 .header .brand-crest { width: 46px; height: 54px; }
 .menu-toggle { gap: 6px; font-size: .8125rem; }
 .menu-label { min-width: 59px; }
 .menu-symbol { width: 32px; flex-basis: 32px; height: 44px; }
 .menu-inner { padding-block: 40px; }
 .menu-direct a { font-size: clamp(1.6rem,6.8vw,2.2rem); padding-block: 15px; }
}
@media (max-height: 500px) { .menu-inner { padding-block: 16px; }.menu-inner > .eyebrow { margin-bottom: 12px; }.menu-direct a { font-size: 1.6rem; padding-block: 8px; } }

/* A quiet outlined reservation control with a green hover fill. */
.header > .book { border: 1px solid #f8f7f3b3; border-radius: 999px; color: var(--paper); background: transparent; padding: 12px 26px; transition: background .3s,border-color .3s; }
.header > .book:hover,.header > .book:focus-visible { background: #4b674f; border-color: #4b674f; color: var(--paper); }
@media (max-width: 760px) { .header > .book { width: 84px; padding: 7px 12px; font-size: .8125rem; line-height: 1.2; text-align: center; white-space: normal; } }

/* V53: additional original detail photographs, without duplicate feature strips. */
.kitchen-details { padding-block: 12px var(--space); }
.detail-heading { margin-bottom: 30px; }
.detail-heading .title { font-size: clamp(2rem,3.6vw,3.4rem); }
.detail-photos { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 24px; }
.detail-photos figure,.terrace-details figure { margin: 0; min-width: 0; }
.detail-photos img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.terrace-details { display: grid; grid-template-columns: 1.3fr 1fr; gap: 30px; padding-block: 40px var(--space); }
.terrace-details img { width: 100%; height: auto; display: block; }
.page-forest-lodge-i .page-hero .hero-visual img { object-position: 60% 50%; }
@media (max-width: 760px) {
 .detail-photos { grid-template-columns: 1fr 1fr; gap: 20px 14px; }
 .detail-photos figure:first-child { grid-column: 1/-1; }
 .detail-photos .photo-caption { font-size: .875rem; }
 .terrace-details { grid-template-columns: 1fr; gap: 24px; padding-top: 28px; }
}

.kitchen-details .photo-caption,.terrace-details .photo-caption { color: var(--muted); }
@media (max-width: 760px) { .page-forest-lodge-i .page-hero .hero-visual img { object-position: 52% 50%; } }
.page-forest-lodge-ii .page-hero::after { background: linear-gradient(180deg,rgba(12,24,18,.78),rgba(12,24,18,.08) 30%,rgba(12,24,18,.04) 45%,rgba(12,24,18,.55)); }

/* V54: a brighter dining-room arrival, with readable edges and a clear table crop. */
.page-forest-lodge-ii .page-hero .hero-visual img { object-position: 58% 52%; }
.page-forest-lodge-ii .page-hero::after { background: linear-gradient(180deg,rgba(12,24,18,.84) 0%,rgba(12,24,18,.12) 24%,transparent 46%,rgba(12,24,18,.50) 100%); }
@media (max-width: 760px) { .page-forest-lodge-ii .page-hero .hero-visual img { object-position: 85% 50%; } }

/* V56: the same lodge crest anchors the header and footer. */
.footer-brand .footer-crest { display: block; flex: 0 0 auto; width: 72px; height: 84px; color: var(--paper); }
@media (max-width: 760px) { .footer-brand .footer-crest { width: 56px; height: 65px; } }

/* V57: Gastgeber, Reiseinformationen und kompakter Kontakt */
.host-section,.stay-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,90px);padding-block:clamp(48px,6vw,88px)}
.host-section{border-top:1px solid var(--line)}
.stay-section{padding-top:0}
.host-copy .copy+.copy{margin-top:18px}
.host-contact{display:flex;flex-direction:column;align-items:flex-start;gap:8px;font-style:normal;margin-block:24px}
.host-contact span{font-weight:500}
.host-contact a,.footer-contact a{overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:4px}
.host-contact a{padding-block:4px}
.stay-facts{margin:0;min-width:0}
.stay-facts>div{padding-block:20px;border-top:1px solid var(--line)}
.stay-facts dt{font-weight:500;margin-bottom:6px}
.stay-facts dd{margin:0;color:var(--muted);line-height:1.85}
.footer-contact{display:flex;flex-wrap:wrap;gap:12px 28px;padding-bottom:28px;font-size:.875rem}
.footer-contact a{padding-block:4px}
.footer-contact span{align-self:center}
.renovation-copy{margin-top:16px}
.guest-voice{padding-block:clamp(48px,6vw,80px)}
.guest-voice-inner{border-top:1px solid var(--line);padding-top:36px;max-width:850px}
.guest-voice blockquote{margin:0 0 20px;font:400 clamp(1.5rem,3vw,2.5rem)/1.4 var(--serif);text-wrap:pretty}
.guest-voice figcaption{font-size:.875rem;color:var(--muted)}
.guest-voice .review-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:18px;font-size:.875rem}
@media(max-width:760px){.host-section,.stay-section{grid-template-columns:minmax(0,1fr);gap:28px}.footer-contact{gap:8px 20px}.footer-contact span{flex-basis:100%}}

/* V58: drei echte Gästestimmen je Lodge */
.guest-voice--three .guest-voice-inner{max-width:none}
.guest-voice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.guest-voice-grid figure{display:flex;flex-direction:column;min-width:0}
.guest-voice-grid blockquote{font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.5;flex:1}
.guest-voice-grid figcaption{margin-top:4px}
.guest-voice--three .review-links{margin-top:30px;color:var(--muted)}
@media(max-width:760px){.guest-voice-grid{grid-template-columns:minmax(0,1fr);gap:24px}.guest-voice-grid figure+figure{border-top:1px solid var(--line);padding-top:24px}}

.guest-voice--link .guest-voice-inner{max-width:none}
.guest-review-bridge{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;margin-top:18px}
.guest-review-bridge .title{max-width:720px;margin-bottom:14px;font-size:clamp(2rem,4vw,4rem);line-height:1.06}
.guest-review-bridge .copy{max-width:660px;margin:0}
@media(max-width:760px){.guest-review-bridge{grid-template-columns:minmax(0,1fr);align-items:start;gap:22px}.guest-review-bridge .title{font-size:clamp(2rem,9vw,3rem)}}

/* V59: eigene Gastgeberseite im bestehenden Schriftbild */
.about-heading{padding-top:clamp(150px,16vw,220px);padding-bottom:clamp(32px,5vw,64px)}
.page-about .host-section{border-top:0;padding-top:0;padding-bottom:var(--space)}
.page-about .host-section .title{font-size:clamp(2rem,3.4vw,3.5rem)}

/* V64: confirmed stay details and arrival guide. */
.page-infos .info-panel.booking-choice:last-child{grid-column:auto;border-top:0;padding-top:0}
.stay-section--details{grid-template-columns:minmax(0,1fr);gap:34px}
.stay-section--details .stay-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(28px,5vw,76px)}
.stay-section--details .stay-fact--wide{grid-column:1/-1}
.stay-fact--wide dd{max-width:88ch}
.arrival-section{padding-bottom:var(--space)}
#anreise.arrival-section{border-top:0;padding-top:0}
.arrival-section .location-grid{border-top:1px solid var(--line);padding-top:40px}
.arrival-section .location-address .text-link{display:table;margin-top:12px}
.arrival-guide{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,90px);align-items:start;margin-top:40px}
.arrival-map{min-width:0;max-width:530px}
.arrival-map-frame{position:relative;isolation:isolate}
.arrival-map-frame img{width:100%;height:auto;object-fit:contain}
.map-lodge,.map-parking{position:absolute;transform:translate(-50%,-50%);border:2px solid var(--paper);box-shadow:0 0 0 2px var(--pine);pointer-events:none}
.map-lodge{width:8%;height:5.5%;border-radius:4px}
.map-lodge b{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);min-width:28px;padding:0 6px;background:var(--paper);color:var(--pine);text-align:center;font-size:1rem;line-height:1.6;box-shadow:0 0 0 2px var(--pine)}
.map-lodge--i{left:72.8%;top:55.8%}
.map-lodge--ii{left:39.2%;top:35.9%}
.map-parking{width:12%;height:7%;border-radius:6px}
.map-parking--north{left:74.5%;top:4.7%}
.map-parking--south{left:93%;top:87.7%;width:8%;height:5.7%}
.arrival-map figcaption{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 18px;margin-top:14px;font-size:.875rem;color:var(--muted)}
.arrival-lodge-note{padding-block:26px;border-top:1px solid var(--line)}
.arrival-lodge-note:first-child{padding-top:0;border-top:0}
.arrival-lodge-note .eyebrow{margin-bottom:10px}
.arrival-lodge-note h3{font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:1.2}
#anreise .arrival-lodge-note .copy{margin-top:16px}
.arrival-lodge-note strong{font-weight:500;color:var(--ink)}
.arrival-key-note{padding-top:24px;border-top:1px solid var(--line);color:var(--muted)}
.sauna-details-link{display:table;margin-top:10px}
@media(max-width:760px){
 .stay-section--details .stay-facts{grid-template-columns:minmax(0,1fr)}
 .arrival-guide{grid-template-columns:minmax(0,1fr);gap:32px;margin-top:30px}
 .arrival-map{max-width:530px;width:100%;margin-inline:auto}
 .arrival-notes{grid-row:1}
 .arrival-section .location-grid{padding-top:30px}
 .map-lodge b{font-size:.875rem;min-width:24px}
}

/* V67: personal host portrait, compact equipment gallery and authentic renovation photos. */
.page-about .about-heading{padding-top:clamp(44px,6vw,88px);padding-bottom:clamp(30px,4vw,48px)}
.page-about .host-section{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);align-items:center}
.host-portrait{width:100%;max-width:440px;margin:0;overflow:hidden}
.host-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 42%}
.host-portrait figcaption{margin-top:12px;color:var(--muted);font-size:.8125rem;letter-spacing:.03em}
.host-copy .title{margin-bottom:26px}
.host-copy .eyebrow{margin-bottom:14px}
.equipment-gallery{--gallery-height:clamp(210px,20vw,280px);padding-block:12px var(--space)}
.equipment-gallery .track{padding-inline:0;scroll-padding-inline:0}
.equipment-gallery .gallery-bottom p{max-width:30ch}
.equipment-gallery .card{align-self:flex-start}
.equipment-gallery .card span{line-height:1.5;margin-top:0}
.renovation-moments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(22px,4vw,52px);max-width:940px;margin:44px auto 58px}
.renovation-moments figure{margin:0;min-width:0}
.renovation-card{display:block;width:100%;overflow:hidden}
.renovation-card img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 18%}
.renovation-card span{font:400 clamp(1.35rem,2vw,1.75rem)/1.3 var(--serif);margin-top:16px}
.renovation-moments figcaption{margin-top:8px;font-size:.9375rem;line-height:1.65;color:var(--muted);max-width:40ch}
.info-jumps{display:flex;flex-wrap:wrap;column-gap:30px;row-gap:4px;margin-bottom:26px}
.info-jumps a{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid var(--line);font-size:.9375rem}
.info-jumps a:hover{border-color:var(--pine);color:var(--pine)}
@media(max-width:760px){
 .page-about .host-section{grid-template-columns:minmax(0,1fr);gap:30px}
 .host-portrait{max-width:430px}
 .host-copy .title{margin-bottom:22px}
 .equipment-gallery{--gallery-height:210px}
 .equipment-gallery .gallery-bottom{align-items:flex-start}
 .equipment-gallery .gallery-controls{flex-shrink:0}
 .renovation-moments{grid-template-columns:minmax(0,1fr);max-width:430px;gap:34px;margin-block:32px 42px}
 .renovation-card img{aspect-ratio:4/5}
 .info-jumps{column-gap:24px;margin-bottom:22px}
}

/* V68: compare each feature across both lodges, including on narrow screens. */
.compare--direct{padding-top:0}
.comparison-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,4vw,56px);margin:10px 0 24px}
.comparison-photos figure{min-width:0}
.comparison-photos img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.comparison-photos figcaption{margin:15px 0 0;letter-spacing:.1em}
.comparison-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:1rem;line-height:1.7}
.comparison-table caption{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.comparison-table col.comparison-feature-col{width:20%}
.comparison-table thead{position:sticky;top:98px;z-index:4;background:var(--paper)}
.comparison-table th,.comparison-table td{text-align:left;vertical-align:top;padding:22px 24px;border-bottom:1px solid var(--line);font-weight:400;overflow-wrap:break-word}
.comparison-table th:first-child{padding-left:0}
.comparison-table th:last-child,.comparison-table td:last-child{padding-right:0}
.comparison-table thead th{vertical-align:middle;padding-block:22px;background:var(--paper);border-bottom:1px solid var(--ink)}
.comparison-table thead h2{font:400 clamp(1.4rem,2.5vw,2.5rem)/1.2 var(--serif);letter-spacing:-.035em}
.comparison-table thead .comparison-corner{color:var(--muted);font-size:.875rem}
.comparison-table tbody th{font-size:.875rem;font-weight:500;color:var(--ink)}
.comparison-table td{color:var(--muted)}
.comparison-table td strong{color:var(--ink);font-weight:500}
.comparison-line{display:block}
.comparison-line+.comparison-line{margin-top:7px}
.comparison-table td.comparison-shared{text-align:center;padding-inline:24px;background:#efeee752}
.comparison-table tfoot td{padding-block:28px 0;border:0}
.comparison-table tfoot .btn{width:100%;min-height:50px}
.page-forest-lodge-i .subnav{flex-wrap:wrap;column-gap:28px;row-gap:0;overflow:visible}
.page-forest-lodge-i .subnav a{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:760px){
 .comparison-photos{gap:16px;margin-bottom:12px}
 .comparison-photos img{aspect-ratio:4/3}
 .comparison-photos figcaption{font-size:.625rem;line-height:1.65;letter-spacing:.06em;margin-top:11px}
 .comparison-table{display:block;font-size:.875rem;line-height:1.65}
 .comparison-table colgroup{display:none}
 .comparison-table thead,.comparison-table tbody,.comparison-table tfoot{display:block}
 .comparison-table thead{top:80px}
 .comparison-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}
 .comparison-table .comparison-corner{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .comparison-table thead th{padding:16px 0;border-bottom:1px solid var(--ink);text-align:center}
 .comparison-table thead h2{font-size:clamp(1.13rem,5vw,1.5rem);line-height:1.25}
 .comparison-table tbody tr{padding-top:18px;border-bottom:1px solid var(--line)}
 .comparison-table tbody th{grid-column:1/-1;font-size:.8125rem;padding:0 0 10px;border:0}
 .comparison-table tbody td{padding:0 0 19px;border:0}
 .comparison-table tbody td.comparison-shared{grid-column:1/-1;text-align:center;padding:12px 14px;margin-bottom:18px}
 .comparison-table tfoot td{padding:24px 0 0}
 .comparison-table tfoot .btn{padding:10px 8px;gap:8px;font-size:.8125rem}
 .comparison-line+.comparison-line{margin-top:6px}
 .page-forest-lodge-i .subnav{column-gap:22px;padding-block:8px}
}

.comparison-measure{white-space:nowrap}

/* Lodge I launch polish: calmer rhythm, clearer facts and modern gallery controls. */
.page-forest-lodge-i .inside-facts{
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(40px,6vw,88px);
  row-gap:0;
  padding-top:0;
  border-top:0;
}
.page-forest-lodge-i .inside-fact{
  display:grid;
  grid-template-columns:minmax(128px,.42fr) minmax(0,1fr);
  gap:18px;
  align-items:start;
  padding-block:22px;
  border-top:1px solid #6b7a69;
}
.page-forest-lodge-i .inside-fact b{margin:0}
.page-forest-lodge-i .inside-fact span{line-height:1.65}
.page-forest-lodge-i .gallery:not(.equipment-gallery){
  padding-block:clamp(72px,7vw,104px) clamp(60px,6vw,88px);
}
.page-forest-lodge-i .gallery-head{
  display:block;
  margin-bottom:clamp(30px,3.5vw,46px);
}
.page-forest-lodge-i .gallery-head .title{
  max-width:none;
  font-size:clamp(2.65rem,4.3vw,4rem);
}
.page-forest-lodge-i .equipment-gallery{
  padding-block:clamp(30px,3vw,48px) clamp(62px,6vw,88px);
}
.page-forest-lodge-i .track{
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.page-forest-lodge-i .track::-webkit-scrollbar{display:none}
.page-forest-lodge-i .gallery-bottom{
  display:grid;
  grid-template-columns:auto minmax(160px,1fr) auto;
  gap:clamp(16px,2.2vw,30px);
  align-items:center;
  margin-top:22px;
}
.page-forest-lodge-i .gallery-bottom.gallery-controls-right{
  grid-template-columns:minmax(180px,clamp(260px,34vw,480px)) auto;
  justify-content:end;
}
.page-forest-lodge-i .equipment-gallery .gallery-bottom{
  grid-template-columns:minmax(0,1fr) minmax(180px,clamp(260px,34vw,480px)) auto;
}
.page-forest-lodge-i .gallery-progress{
  width:100%;
  height:1px;
  overflow:hidden;
  background:var(--line);
}
.page-forest-lodge-i .gallery-progress-fill{
  display:block;
  width:0;
  height:100%;
  background:var(--pine);
  transition:width .18s linear;
}
.page-forest-lodge-i .gallery-controls{
  gap:10px;
  flex-shrink:0;
}
.page-forest-lodge-i .gallery-controls button{
  width:46px;
  height:46px;
  border-radius:50%;
  border-color:#a8ada5;
  font-size:1.1rem;
  transition:background .2s,color .2s,border-color .2s,transform .2s;
}
.page-forest-lodge-i .gallery-controls button:hover:not(:disabled){
  color:var(--paper);
  background:var(--pine);
  border-color:var(--pine);
  transform:translateY(-2px);
}
.page-forest-lodge-i .gallery-controls button:disabled{
  opacity:.32;
  cursor:default;
}
.page-forest-lodge-i .guest-voice .review-links{
  align-items:center;
  justify-content:space-between;
  gap:18px 30px;
}
.page-forest-lodge-i .review-booking-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-height:44px;
  padding:7px 0 5px;
  color:var(--ink);
  border-bottom:1px solid currentColor;
}
.page-forest-lodge-i .review-booking-link > span{
  transition:transform .25s ease;
}
.page-forest-lodge-i .review-booking-link:hover > span{
  transform:translate(3px,-3px);
}
@media(max-width:760px){
  .page-forest-lodge-i .inside-facts{grid-template-columns:minmax(0,1fr);margin-top:28px}
  .page-forest-lodge-i .inside-fact{grid-template-columns:minmax(0,1fr);gap:8px;padding-block:18px}
  .page-forest-lodge-i .gallery:not(.equipment-gallery){padding-block:64px 58px}
  .page-forest-lodge-i .gallery-head .title{font-size:clamp(2.25rem,9.5vw,3rem);line-height:1.12}
  .page-forest-lodge-i .equipment-gallery{padding-block:22px 58px}
  .page-forest-lodge-i .gallery-bottom,
  .page-forest-lodge-i .gallery-bottom.gallery-controls-right,
  .page-forest-lodge-i .equipment-gallery .gallery-bottom{
    grid-template-columns:minmax(0,1fr) auto;
    gap:16px;
  }
  .page-forest-lodge-i .gallery-bottom > p{grid-column:1/-1;margin:0}
  .page-forest-lodge-i .gallery-controls button{width:44px;height:44px}
  .page-forest-lodge-i .guest-voice .review-links{align-items:flex-start}
}

/* Lodge II launch polish: matches Lodge I's calm rhythm while keeping its own imagery. */
.page-forest-lodge-ii .inside-facts{
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(40px,6vw,88px);
  row-gap:0;
  padding-top:0;
  border-top:0;
}
.page-forest-lodge-ii .inside-fact{
  display:grid;
  grid-template-columns:minmax(128px,.42fr) minmax(0,1fr);
  gap:18px;
  align-items:start;
  padding-block:22px;
  border-top:1px solid var(--line);
}
.page-forest-lodge-ii .inside-fact b{margin:0}
.page-forest-lodge-ii .inside-fact span{line-height:1.65}
.page-forest-lodge-ii .gallery{
  padding-block:clamp(72px,7vw,104px) clamp(60px,6vw,88px);
}
.page-forest-lodge-ii .gallery-head{
  display:block;
  margin-bottom:clamp(30px,3.5vw,46px);
}
.page-forest-lodge-ii .gallery-head .title{
  max-width:none;
  font-size:clamp(2.65rem,4.3vw,4rem);
}
.page-forest-lodge-ii .track{
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.page-forest-lodge-ii .track::-webkit-scrollbar{display:none}
.page-forest-lodge-ii .gallery-bottom{
  display:grid;
  grid-template-columns:auto minmax(160px,1fr) auto;
  gap:clamp(16px,2.2vw,30px);
  align-items:center;
  margin-top:22px;
}
.page-forest-lodge-ii .gallery-bottom.gallery-controls-right{
  grid-template-columns:minmax(180px,clamp(260px,34vw,480px)) auto;
  justify-content:end;
}
.page-forest-lodge-ii .gallery-progress{
  width:100%;
  height:1px;
  overflow:hidden;
  background:var(--line);
}
.page-forest-lodge-ii .gallery-progress-fill{
  display:block;
  width:0;
  height:100%;
  background:var(--pine);
  transition:width .18s linear;
}
.page-forest-lodge-ii .gallery-controls{
  gap:10px;
  flex-shrink:0;
}
.page-forest-lodge-ii .gallery-controls button{
  width:46px;
  height:46px;
  border-radius:50%;
  border-color:#a8ada5;
  font-size:1.1rem;
  transition:background .2s,color .2s,border-color .2s,transform .2s;
}
.page-forest-lodge-ii .gallery-controls button:hover:not(:disabled){
  color:var(--paper);
  background:var(--pine);
  border-color:var(--pine);
  transform:translateY(-2px);
}
.page-forest-lodge-ii .gallery-controls button:disabled{
  opacity:.32;
  cursor:default;
}
.page-forest-lodge-ii .terrace-details{
  grid-template-columns:minmax(0,1.35fr) minmax(260px,.75fr);
  gap:clamp(24px,3.5vw,52px);
  align-items:end;
  padding-block:clamp(40px,5vw,72px) clamp(72px,8vw,112px);
}
.page-forest-lodge-ii .terrace-details figure:first-child img{
  aspect-ratio:20/9;
  object-fit:cover;
}
.page-forest-lodge-ii .terrace-details figure:last-child img{
  aspect-ratio:4/3;
  object-fit:cover;
}
.page-forest-lodge-ii .guest-voice .review-links{
  align-items:center;
  justify-content:space-between;
  gap:18px 30px;
}
.page-forest-lodge-ii .review-booking-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-height:44px;
  padding:7px 0 5px;
  color:var(--ink);
  border-bottom:1px solid currentColor;
}
.page-forest-lodge-ii .review-booking-link > span{transition:transform .25s ease}
.page-forest-lodge-ii .review-booking-link:hover > span{transform:translate(3px,-3px)}
@media(max-width:760px){
  .page-forest-lodge-ii .inside-facts{grid-template-columns:minmax(0,1fr);margin-top:28px}
  .page-forest-lodge-ii .inside-fact{grid-template-columns:minmax(0,1fr);gap:8px;padding-block:18px}
  .page-forest-lodge-ii .gallery{padding-block:64px 58px}
  .page-forest-lodge-ii .gallery-head .title{font-size:clamp(2.25rem,9.5vw,3rem);line-height:1.12}
  .page-forest-lodge-ii .gallery-bottom,
  .page-forest-lodge-ii .gallery-bottom.gallery-controls-right{
    grid-template-columns:minmax(0,1fr) auto;
    gap:16px;
  }
  .page-forest-lodge-ii .gallery-bottom > p{grid-column:1/-1;margin:0}
  .page-forest-lodge-ii .gallery-controls button{width:44px;height:44px}
  .page-forest-lodge-ii .terrace-details{
    grid-template-columns:minmax(0,1fr);
    gap:26px;
    align-items:start;
    padding-block:30px 72px;
  }
  .page-forest-lodge-ii .terrace-details figure:first-child img,
  .page-forest-lodge-ii .terrace-details figure:last-child img{aspect-ratio:4/3}
  .page-forest-lodge-ii .guest-voice .review-links{align-items:flex-start}
}
