:root{
  --paper:#f3f0e8;
  --ink:#243a31;
  --muted:#697064;
  --line:#d5d6c9;
  --sage:#a9b59a}
*{
  box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:30px}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:15px/1.8 Arial,Helvetica,sans-serif}
a{
  color:inherit;
  text-decoration:none}
button{
  font:inherit;
  cursor:pointer}
a,button{
  -webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{
  outline:2px solid #b89461;
  outline-offset:6px}
img{
  display:block;
  max-width:100%}
figure,p{
  margin:0}
h1,h2,blockquote{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400}
h1,h2{
  margin:0;
  line-height:1.06;
  letter-spacing:-.055em}
h2{
  font-size:clamp(42px,5vw,76px)}
em{
  font-weight:400}
h2 em{
  color:#88947b}
.eyebrow{
  font-size:12px;
  letter-spacing:2.5px;
  font-weight:400;
  line-height:1.8;
  margin-bottom:25px}
.skip{
  position:fixed;
  top:-100px;
  z-index:30;
  background:white;
  padding:10px}
.skip:focus{
  top:5px}
.reading-progress{
  position:fixed;
  top:0;
  left:0;
  height:2px;
  width:100%;
  transform:scaleX(0);
  transform-origin:left;
  background:#bdc9a9;
  z-index:25}
header{
  position:absolute;
  z-index:10;
  top:0;
  left:0;
  right:0;
  padding:35px 5%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  color:white}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  font:23px/1 Georgia,serif;
  letter-spacing:2px}
.brand svg{
  width:43px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.15}
.brand small{
  display:block;
  font:12px Arial,sans-serif;
  letter-spacing:4px;
  text-align:center;
  margin-top:12px}
nav{
  display:flex;
  gap:28px;
  font-size:13px}
nav a{
  position:relative}
nav a:after{
  content:'';
  position:absolute;
  bottom:-7px;
  height:1px;
  left:0;
  right:0;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s}
nav a:hover:after{
  transform:scaleX(1)}
.menu-toggle{
  display:none}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:45px;
  padding:18px 26px;
  font-size:13px;
  letter-spacing:.4px;
  line-height:1.4;
  border:1px solid transparent;
  transition:background .3s,color .3s}
.button span{
  font-size:20px;
  line-height:1}
.button.small{
  border-color:#ffffff70;
  padding:15px 20px}
.button.small:hover{
  background:var(--paper);
  color:var(--ink)}
.button.cream{
  background:var(--paper);
  color:var(--ink)}
.button.cream:hover{
  background:#dbe0ce}
.hero{
  height:100svh;
  min-height:720px;
  position:relative;
  overflow:hidden;
  color:white}
.hero-photo,.hero-shade{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover}
.hero-photo{
  object-position:center;
  animation:opening 2.2s ease-out both}
.hero-shade{
  background:linear-gradient(180deg,#0e251b70,transparent 35%),linear-gradient(0deg,#0a211be0,transparent 70%),linear-gradient(90deg,#0d261b35,transparent)}
.hero-copy{
  position:absolute;
  left:7%;
  right:7%;
  bottom:18%;
  display:grid;
  grid-template-columns:1.5fr 1fr;
  column-gap:7%;
  align-items:end}
.hero-copy .eyebrow{
  grid-column:1/-1;
  letter-spacing:3px;
  margin-bottom:28px}
.hero h1{
  grid-column:1;
  font-size:clamp(72px,9.5vw,150px);
  line-height:.93;
  letter-spacing:-.055em}
.hero h1 em{
  color:#e7e9dc}
.hero-copy>p:not(.eyebrow){
  grid-column:2;
  grid-row:2;
  font-size:14px;
  line-height:2;
  align-self:end;
  padding-bottom:66px;
  max-width:290px}
.hero .button{
  grid-column:2;
  grid-row:2;
  align-self:end;
  justify-self:start;
  background:none;
  color:white;
  border:0;
  border-bottom:1px solid #fff8;
  padding:10px 0;
  min-width:165px}
.hero .button:hover{
  color:#c8d3b5}
.hero-bottom{
  position:absolute;
  left:7%;
  right:7%;
  bottom:33px;
  display:flex;
  justify-content:space-between;
  align-items:end;
  font-size:12px;
  letter-spacing:1.5px;
  line-height:2}
.hero-bottom a{
  font-size:12px;
  letter-spacing:.5px;
  display:flex;
  align-items:center;
  gap:22px}
.hero-bottom a span{
  font-size:23px}
.arrival{
  min-height:52svh;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  padding:90px 7%;
  text-align:center}
.arrival>span{
  font-size:12px;
  letter-spacing:2px;
  max-width:130px}
.arrival p{
  font:clamp(26px,3.4vw,51px)/1.35 Georgia,serif;
  letter-spacing:-1.5px}
.arrival em{
  color:#879079}
.section{
  max-width:1440px;
  margin:auto;
  padding:110px 8%}
.intro{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:100px;
  padding-top:30px;
  padding-bottom:120px}
.intro h2{
  font-size:clamp(38px,3.8vw,58px)}
.intro-text p{
  color:var(--muted);
  margin-bottom:22px}
.text-link{
  display:inline-flex;
  gap:30px;
  align-items:center;
  border-bottom:1px solid #9ca68e;
  padding:8px 0;
  font-size:13px}
.text-link span{
  font-size:20px}
.text-link:hover{
  color:#83916d}
.cinematic{
  position:relative;
  min-height:100svh;
  overflow:hidden}
.nature-scene>img,.garden-scene>img,.winter-scene>img,.booking-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover}
.nature-scene{
  color:white}
.nature-scene>img{
  object-position:65% center}
.scene-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#10281d9e,transparent 95%),linear-gradient(0deg,#0e251c80,transparent 70%)}
.scene-copy{
  position:relative;
  padding:19svh 9% 100px}
.scene-copy h2{
  font-size:clamp(70px,9vw,140px)}
.scene-copy h2 em{
  color:#e1e7d7}
.scene-copy p:not(.eyebrow){
  margin-top:35px;
  line-height:2;
  font-size:14px}
.scene-note{
  display:block;
  margin-top:65px;
  font-size:12px;
  letter-spacing:1.5px}
.garden-scene{
  color:white;
  min-height:100svh}
.garden-scene>img{
  object-position:center 58%}
.garden-scene:after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,#10251caa,transparent 80%)}
.garden-label{
  position:absolute;
  z-index:1;
  left:8%;
  bottom:15%}
.garden-label h2{
  font-size:clamp(80px,10vw,160px)}
.garden-label h2 em{
  color:#e9ecdc}
.image-caption{
  position:absolute;
  z-index:1;
  right:7%;
  bottom:45px;
  font-size:12px;
  letter-spacing:1px}
.wildlife{
  display:grid;
  grid-template-columns:1fr 1.6fr;
  gap:100px;
  padding-top:130px;
  padding-bottom:130px}
.wildlife>.eyebrow{
  max-width:220px;
  padding-top:10px}
.wildlife h2{
  margin-bottom:35px;
  font-size:clamp(44px,5vw,74px)}
.wildlife p:not(.eyebrow){
  max-width:570px;
  color:var(--muted);
  margin-bottom:20px}
.wildlife small{
  font-size:12px;
  color:var(--muted);
  display:block;
  margin-top:28px}
.together,.story{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch}
.together{
  background:#243a31;
  color:var(--paper)}
.together-copy{
  align-self:center;
  padding:100px 14%}
.together h2,.story h2{
  font-size:clamp(39px,4.2vw,65px);
  margin-bottom:30px}
.together h2 em{
  color:#bdc7a9}
.together p:not(.eyebrow){
  font-size:14px;
  line-height:1.9;
  color:#d1d7c7;
  margin-bottom:22px}
.together .text-link{
  margin-top:10px;
  border-color:#829174}
.together figure,.story figure{
  position:relative;
  min-height:100svh}
.together figure img,.story figure img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover}
.together figure img{
  object-position:48% center}
.together figure:after,.story figure:after{
  content:'';
  position:absolute;
  inset:60% 0 0;
  background:linear-gradient(transparent,#10251c77)}
.together figcaption,.story figcaption{
  position:absolute;
  z-index:1;
  bottom:35px;
  left:7%;
  right:7%;
  font-size:12px;
  letter-spacing:.5px;
  color:white}
.story{
  background:#e8e9dd}
.story figure img{
  object-position:52% center}
.story-copy{
  align-self:center;
  padding:90px 14%}
.story-copy>p:not(.eyebrow){
  color:var(--muted);
  font-size:14px;
  margin-bottom:25px}
.stay-facts{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 30px;
  margin-top:40px}
.stay-facts>div{
  border-top:1px solid #bdc5b2;
  padding:14px 0;
  display:flex;
  gap:14px;
  align-items:center}
.stay-facts strong{
  font:38px Georgia,serif}
.stay-facts span{
  font-size:12px;
  color:var(--muted)}
.story-copy .capacity-note{
  font-size:12px;
  margin-top:22px}
.gallery-section{
  max-width:none;
  padding:100px 0 110px}
.section-heading{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:35px;
  margin-bottom:40px}
.gallery-section .section-heading{
  padding:0 8%}
.section-heading p:not(.eyebrow){
  font-size:12px;
  color:var(--muted)}
.gallery-tools{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 8%;
  margin-bottom:22px;
  font-size:12px;
  color:var(--muted)}
.gallery-tools>div{
  display:flex;
  gap:12px}
.gallery-tools button{
  width:44px;
  height:44px;
  border:1px solid #c6cbbb;
  background:none;
  color:var(--ink);
  font-size:20px;
  transition:background .2s}
.gallery-tools button:hover{
  background:#e3e7d7}
.gallery-track{
  display:flex;
  gap:24px;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  padding:0 8% 25px;
  scrollbar-width:thin;
  scrollbar-color:#a2ae94 transparent}
.gallery,.room-gallery{
  display:contents}
.gallery-item{
  position:relative;
  flex:0 0 61vw;
  height:68svh;
  max-height:800px;
  min-height:440px;
  border:0;
  background:var(--ink);
  padding:0;
  overflow:hidden;
  color:white;
  text-align:left;
  scroll-snap-align:center;
  cursor:zoom-in}
.gallery-item:nth-child(2){
  flex-basis:36vw}
.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.2s ease}
.gallery-item:hover img{
  transform:scale(1.035)}
.gallery-item:after{
  content:'';
  position:absolute;
  inset:50% 0 0;
  background:linear-gradient(transparent,#10251c80)}
.gallery-item>span{
  position:absolute;
  z-index:1;
  left:30px;
  right:30px;
  bottom:25px;
  display:flex;
  justify-content:space-between;
  font:23px Georgia,serif}
.gallery-item b{
  font-weight:400}
.winter-scene{
  color:white}
.winter-scene>img{
  object-position:center 40%}
.winter-scene .scene-shade{
  background:linear-gradient(0deg,#122928d9,transparent 85%)}
.winter-copy{
  position:absolute;
  left:8%;
  right:7%;
  bottom:13%}
.winter-copy h2{
  font-size:clamp(54px,6.5vw,100px)}
.winter-copy h2 em{
  color:#e0e7d8}
.winter-copy>p:last-child{
  margin-top:28px;
  font-size:14px;
  line-height:2}
.testimonials{
  padding-top:120px;
  padding-bottom:120px}
.testimonials h2{
  font-size:clamp(38px,4.3vw,62px)}
.quotes{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px;
  margin-top:55px}
.quotes figure{
  margin:0;
  border-top:1px solid var(--line);
  padding-top:25px;
  display:flex;
  flex-direction:column}
.quote-mark{
  font:70px/.8 Georgia,serif;
  color:#8e9b7e}
.quotes blockquote{
  font-size:26px;
  line-height:1.45;
  margin:15px 0 28px;
  letter-spacing:-.5px}
.quotes figure>p{
  font-size:12px;
  color:var(--muted);
  margin-bottom:25px}
.quotes figcaption{
  margin-top:auto}
.quotes figcaption strong{
  display:block;
  font-size:12px;
  letter-spacing:1.6px;
  font-weight:400;
  text-transform:uppercase}
.quotes figcaption span{
  display:block;
  font-size:12px;
  color:var(--muted);
  margin-top:7px}
.source-note{
  margin-top:35px;
  color:var(--muted);
  font-size:12px}
.booking{
  display:grid;
  place-items:center;
  color:var(--paper);
  text-align:center}
.booking-photo{
  object-position:center;
  filter:brightness(.38)}
.booking-content{
  position:relative;
  padding:100px 7%;
  width:100%}
.booking h2{
  font-size:clamp(50px,7.3vw,110px)}
.booking h2 em{
  color:#d6dec7}
.booking-content>p:not(.eyebrow){
  margin:35px 0;
  font-size:14px;
  color:#e0e5d7}
.booking .button{
  margin-top:10px}
.booking-note{
  display:block;
  margin-top:22px;
  font-size:12px;
  color:#d0d8c7}
footer{
  background:#1c3028;
  color:#dce2d1;
  padding:45px 7%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  font-size:12px}
.footer-brand{
  font:21px Georgia,serif;
  letter-spacing:1px}
.footer-brand span{
  display:block;
  font:12px Arial,sans-serif;
  letter-spacing:4px;
  margin-top:9px}
footer p{
  color:#aab7a0}
dialog{
  border:0;
  background:var(--paper);
  padding:20px;
  max-width:95vw;
  max-height:95svh;
  color:var(--ink)}
dialog::backdrop{
  background:#102219ed}
dialog img{
  max-width:87vw;
  max-height:75svh;
  object-fit:contain}
.dialog-bar,.dialog-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px}
.dialog-bar{
  margin-bottom:15px;
  font-size:13px}
.close{
  background:none;
  border:0;
  padding:5px;
  font-size:13px}
.dialog-bottom p{
  font-size:12px;
  margin:12px 0}
.dialog-bottom button{
  border:1px solid var(--line);
  background:none;
  padding:8px 15px;
  color:var(--ink)}
.motion-ready .reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity 1s,transform 1s}
.motion-ready .reveal.is-visible{
  opacity:1;
  transform:none}
@keyframes opening{
  from{
  transform:scale(1.05)}
to{
  transform:scale(1)}
}
@media(min-width:1700px){
  .section{
  padding-left:100px;
  padding-right:100px}
}
@media(max-width:1000px){
  header{
  padding:28px 5%;
  gap:20px}
nav{
  gap:17px;
  font-size:12px}
.brand{
  font-size:19px}
.brand svg{
  width:35px}
.button.small{
  padding:12px;
  gap:20px}
.hero-copy{
  column-gap:4%;
  grid-template-columns:1.4fr 1fr}
.hero h1{
  font-size:100px}
.hero-copy>p:not(.eyebrow){
  font-size:12px}
.arrival>span{
  font-size:12px}
.section{
  padding:80px 7%}
.intro,.wildlife{
  gap:45px}
.intro{
  padding-top:10px}
.together-copy,.story-copy{
  padding:65px 10%}
.together h2,.story h2{
  font-size:42px}
.stay-facts{
  gap:5px 15px}
.quotes{
  gap:25px}
.quotes blockquote{
  font-size:23px}
.gallery-item{
  flex-basis:73vw}
.gallery-item:nth-child(2){
  flex-basis:50vw}
}
@media(max-width:700px){
  html{
  scroll-padding-top:15px}
header{
  padding:25px 6%;
  gap:15px}
.brand{
  font-size:19px;
  gap:8px}
.brand small{
  font-size:12px}
.brand svg{
  width:33px}
header>.button{
  display:none}
.menu-toggle{
  display:flex;
  gap:18px;
  align-items:center;
  border:0;
  background:none;
  color:inherit;
  font-size:13px;
  padding:10px 0;
  z-index:12}
.menu-toggle span{
  font-size:18px}
nav{
  display:none}
.menu-open{
  overflow:hidden}
.menu-open header{
  position:fixed;
  color:var(--paper)}
.menu-open nav{
  position:fixed;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  inset:0;
  background:var(--ink);
  z-index:-1;
  padding:100px 9%;
  gap:23px;
  font:39px/1.3 Georgia,serif}
.hero{
  min-height:740px;
  height:100svh}
.hero-photo{
  object-position:58% center}
.hero-copy{
  display:block;
  left:8%;
  right:6%;
  bottom:17%}
.hero-copy .eyebrow{
  font-size:12px;
  letter-spacing:1.8px;
  margin-bottom:25px}
.hero h1{
  font-size:clamp(72px,18vw,110px)}
.hero-copy>p:not(.eyebrow){
  font-size:12px;
  padding:0;
  margin-top:28px;
  line-height:1.9}
.hero .button{
  display:none}
.hero-bottom{
  left:8%;
  right:8%;
  bottom:25px;
  font-size:12px}
.hero-bottom a{
  font-size:12px;
  gap:12px}
.arrival{
  display:block;
  min-height:0;
  padding:65px 8% 55px}
.arrival>span{
  font-size:12px}
.arrival>span:last-child{
  display:none}
.arrival p{
  font-size:30px;
  letter-spacing:-1px;
  margin-top:30px;
  line-height:1.45}
.arrival p br{
  display:none}
.section{
  padding:65px 8%}
.intro{
  grid-template-columns:1fr;
  gap:30px;
  padding-top:10px}
.intro h2{
  font-size:39px}
.intro-text p{
  font-size:14px}
.cinematic{
  min-height:100svh}
.scene-copy{
  padding:24svh 8% 90px}
.scene-copy h2{
  font-size:clamp(62px,15vw,90px)}
.scene-copy .eyebrow{
  font-size:12px;
  letter-spacing:1.7px}
.scene-copy p:not(.eyebrow){
  font-size:13px;
  margin-top:30px}
.scene-note{
  font-size:12px;
  letter-spacing:.7px;
  margin-top:50px}
.nature-scene>img{
  object-position:58% center}
.garden-label{
  left:8%;
  bottom:18%}
.garden-label h2{
  font-size:100px}
.garden-label .eyebrow{
  font-size:12px}
.image-caption{
  font-size:12px;
  left:8%;
  right:auto;
  bottom:35px}
.garden-scene>img{
  object-position:45% center}
.wildlife{
  grid-template-columns:1fr;
  gap:12px}
.wildlife>.eyebrow{
  max-width:260px}
.wildlife h2{
  font-size:43px}
.wildlife p:not(.eyebrow){
  font-size:14px}
.together,.story{
  grid-template-columns:1fr}
.together figure{
  order:0;
  min-height:70svh}
.together-copy{
  order:1;
  padding:65px 8% 75px}
.together figure img{
  object-position:center}
.together h2,.story h2{
  font-size:44px}
.story figure{
  min-height:82svh}
.story-copy{
  padding:65px 8%}
.story-copy>p:not(.eyebrow){
  font-size:14px}
.stay-facts{
  gap:10px 25px}
.stay-facts span{
  font-size:13px}
.gallery-section{
  padding:65px 0}
.gallery-section .section-heading{
  display:block;
  margin-bottom:30px}
.gallery-section h2{
  font-size:40px}
.section-heading p:not(.eyebrow){
  margin-top:22px}
.gallery-tools{
  margin-bottom:18px}
.gallery-tools p{
  font-size:12px}
.gallery-tools button{
  width:38px;
  height:38px}
.gallery-track{
  gap:15px;
  padding-bottom:20px}
.gallery-item,.gallery-item:nth-child(2){
  flex-basis:84vw;
  height:68svh;
  min-height:420px;
  max-height:700px}
.gallery-item>span{
  font-size:20px;
  left:22px;
  right:22px;
  bottom:24px}
.winter-copy{
  left:8%;
  bottom:17%}
.winter-copy h2{
  font-size:clamp(40px,10.5vw,60px)}
.winter-copy .eyebrow{
  font-size:12px;
  max-width:250px}
.winter-copy>p:last-child{
  font-size:13px}
.winter-scene>img{
  object-position:55% center}
.testimonials h2{
  font-size:38px}
.section-heading{
  display:block}
.section-heading .text-link{
  margin-top:28px}
.quotes{
  grid-template-columns:1fr;
  gap:40px;
  margin-top:35px}
.quotes blockquote{
  font-size:27px}
.booking h2{
  font-size:clamp(44px,11vw,65px)}
.booking-content{
  padding:90px 8%}
.booking-content>p:not(.eyebrow){
  font-size:13px}
.booking-content>p:not(.eyebrow) br{
  display:none}
.booking .eyebrow{
  font-size:12px}
.booking .button{
  font-size:12px;
  gap:25px;
  padding:18px 20px}
footer{
  flex-wrap:wrap;
  padding:35px 8%;
  gap:25px}
footer p{
  font-size:12px}
footer>a:last-child{
  flex-basis:100%}
.dialog-bottom{
  gap:10px}
.dialog-bottom p{
  font-size:12px}
.dialog-bottom button{
  padding:6px 10px}
.motion-ready .reveal{
  transform:translateY(15px)}
}
@media(prefers-reduced-motion:reduce){
  html{
  scroll-behavior:auto}
*,*:before,*:after{
  animation:none!important;
  transition:none!important}
.motion-ready .reveal{
  opacity:1;
  transform:none}
}

/* Each chapter now has its own original photograph. */
.intro { padding-top: 105px; padding-bottom: 105px; }
.hero-photo { object-position: 62% center; }
.nature-scene > img { object-position: center 62%; }
.booking-photo { filter: brightness(.65); object-position: center 55%; }
.booking::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #0c201bbb, #0c201b20); }
.booking-content { z-index: 1; }
.together figure img { object-position: 55% center; }
@media(max-width:700px) {
  .intro { padding-top: 65px; padding-bottom: 65px; }
  .hero-photo { object-position: 82% center; }
  .nature-scene > img { object-position: 53% center; }
  .booking-photo { object-position: 54% center; }
}
.wildlife { grid-template-columns: 1fr 1.1fr; align-items: center; gap: 8%; }
.wildlife figure img { width: 100%; height: 620px; object-fit: cover; object-position: 48% center; }
.wildlife figcaption { font-size: 12px; color: var(--muted); margin-top: 12px; }
.wildlife .eyebrow { max-width: 280px; }
@media(max-width:700px) {
  .wildlife { grid-template-columns: 1fr; gap: 35px; }
  .wildlife figure img { height: 420px; }
}
/* Language navigation and an editorial gallery: every image is visible on the page. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.language-label { margin-left: auto; }
.language-select { width: 63px; color: white; background: #19332966; border: 1px solid #ffffff80; border-radius: 0; font: 13px Arial,sans-serif; padding: 12px 6px; cursor: pointer; }
.language-select option { color: var(--ink); background: var(--paper); }
.language-links { display: flex; flex-basis: 100%; flex-wrap: wrap; gap: 12px 22px; font-size: 12px; border-top: 1px solid #ffffff25; padding-top: 25px; margin-top: 10px; }
.language-links a[aria-current] { color: #fff; text-decoration: underline; text-underline-offset: 5px; }
footer { flex-wrap: wrap; }
.hero-photo { object-position: center; }
.gallery-section { max-width: 1440px; margin: auto; padding: 100px 8%; }
.gallery-section .section-heading { padding: 0; }
.gallery-track { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; overflow: visible; padding: 0; scroll-snap-type: none; }
.gallery-track .gallery-item { width: 100%; height: auto; min-height: 0; max-height: none; aspect-ratio: 4/3; margin: 0; }
.gallery-track .photo-1 { grid-column: 1/-1; aspect-ratio: 16/8; }
.gallery-track .photo-2 { aspect-ratio: 4/5; }
.gallery-track .photo-3 { align-self: center; aspect-ratio: 4/3; }
.gallery-track .photo-4, .gallery-track .photo-5 { aspect-ratio: 4/3; }
.gallery-track .photo-6 { grid-column: 1/-1; aspect-ratio: 16/8; }
.faq { padding-top: 0; padding-bottom: 110px; }
.faq h2 { font-size: clamp(32px,3.2vw,46px); margin-bottom: 35px; }
.faq details { border-top: 1px solid var(--line); padding: 20px 0; }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; font: 21px/1.5 Georgia,serif; padding-right: 20px; }
.faq details p { font-size: 14px; color: var(--muted); max-width: 740px; margin: 15px 0 5px; }
@media(max-width:1000px) {
  header { gap: 14px; }
  header nav { gap: 14px; }
  header>.button { padding: 12px; gap: 12px; }
}
@media(max-width:700px) {
  .hero-photo { object-position: 58% center; }
  .language-label { order: 1; }
  .menu-toggle { order: 2; }
  .language-select { padding: 9px 5px; width: 58px; }
  .gallery-section { padding: 65px 8%; }
  .gallery-track { grid-template-columns: 1fr; gap: 20px; }
  .gallery-track .gallery-item { grid-column: auto; aspect-ratio: 4/3; }
  .gallery-track .photo-1, .gallery-track .photo-2 { aspect-ratio: 4/5; }
  .language-links { display: flex; gap: 15px 20px; }
  .faq { padding-bottom: 65px; }
  .faq summary { font-size: 20px; }
  .stay-facts span { overflow-wrap: anywhere; }
}
@media(min-width:701px) and (max-width:1100px) {
  header nav { display: none; }
  .menu-toggle { display: flex; gap: 14px; align-items: center; border: 0; background: none; color: inherit; font-size: 13px; padding: 10px 0; z-index: 12; }
  .menu-open { overflow: hidden; }
  .menu-open header { position: fixed; color: var(--paper); }
  .menu-open header nav { position: fixed; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; inset: 0; background: var(--ink); z-index: -1; padding: 100px 9%; gap: 23px; font: 39px/1.3 Georgia,serif; }
  header>.button { display: none; }
}

/* Preserve room for larger captions and navigation on narrow screens. */
.language-select { width: 68px; }
@media(max-width:700px) {
  .hero-copy { bottom: 22%; }
  .hero-bottom { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; }
  .hero-bottom > span { max-width: 180px; }
  .hero-bottom a { max-width: 130px; gap: 12px; line-height: 1.6; }
  .hero-copy .eyebrow { letter-spacing: 1.5px; }
  .scene-note { max-width: 280px; line-height: 1.8; }
  .language-select { width: 63px; }
}

.stay-booking { background: var(--ink); color: var(--paper); margin-top: 12px; max-width: 100%; }
.stay-booking:hover { background: #3c5546; }

.together-booking { margin-top: 12px; max-width: 100%; }

/* A composed right-hand column rather than empty space around the winter photograph. */
.gallery-moment { min-width: 0; display: flex; flex-direction: column; align-self: stretch; }
.gallery-moment-copy { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 30px 5%; }
.gallery-moment-copy .eyebrow { margin-bottom: 15px; }
.gallery-moment-heading { font: clamp(25px,2.7vw,40px)/1.3 Georgia,serif; letter-spacing: -.8px; }
.gallery-moment-heading em { color: #88947b; }
.gallery-moment .photo-3 { flex: none; align-self: auto; }
.source-link { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.source-link:hover { color: #526448; }
@media(max-width:700px) {
  .gallery-moment { gap: 0; }
  .gallery-moment-copy { padding: 30px 0; }
  .gallery-moment-heading { font-size: 30px; }
}

.footer-legal { flex-basis: 100%; padding-top: 12px; text-decoration: underline; text-underline-offset: 4px; }
.legal-top { display: flex; justify-content: space-between; gap: 25px; align-items: center; padding: 40px 8%; border-bottom: 1px solid var(--line); }
.legal-top > a:last-child { font-size: 13px; }
.legal-content { max-width: 1000px; min-height: 75svh; }
.legal-content h1 { font: 400 clamp(45px,7vw,80px)/1.1 Georgia,serif; letter-spacing: -2px; margin: 0 0 55px; }
.legal-content section { margin-top: 40px; }
.legal-content h2 { font-size: 25px; line-height: 1.3; letter-spacing: -.5px; margin-bottom: 18px; }
.legal-content a { text-decoration: underline; text-underline-offset: 4px; }

.footer-bottom { flex-basis: 100%; display: flex; align-items: baseline; justify-content: space-between; gap: 25px; border-top: 1px solid #ffffff25; padding-top: 25px; margin-top: 10px; }
.footer-bottom .language-links { flex: 1; min-width: 0; border: 0; padding: 0; margin: 0; }
.footer-bottom .footer-legal { flex: 0 0 auto; padding: 0; margin-left: auto; text-align: right; }
@media(max-width:700px) { .footer-bottom { gap: 20px; align-items: flex-start; } }
