/* ---------- Tokens ---------- */
:root{
  --ivory:#FAF8F3;
  --stone:#DFD1BC;
  --cream:#DFD1BC;
  --taupe:#A38B75;
  --sage:#5B845C;
  --forest:#32592A;
  --charcoal:#353935;

  --display: "Cormorant Garamond", serif;
  --body: "Montserrat", sans-serif;

  --max: 1180px;
  --pad: clamp(24px, 5vw, 72px);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:72px;}
body{
  margin:0;
  background:var(--ivory);
  color:var(--charcoal);
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{
  font-family:var(--display);
  font-weight:600;
  color:var(--forest);
  margin:0 0 0.5em;
  letter-spacing:-0.01em;
  line-height:1.08;
  text-wrap:balance;
}
h1{font-weight:700;}
h1 em, h2 em, h3 em{
  font-style:italic;
  font-weight:500;
}
p{margin:0 0 1em;}
strong{font-weight:700;}
:focus-visible{outline:2px solid var(--sage);outline-offset:3px;}

.section-label{
  font-family:var(--body);
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--sage);
  margin:0 0 0.9em;
}

.button{
  display:inline-block;
  background:var(--forest);
  color:var(--ivory);
  font-family:var(--body);
  font-weight:600;
  font-size:0.92rem;
  letter-spacing:0.02em;
  padding:0.9em 1.8em;
  border:1px solid var(--forest);
  border-radius:2px;
  cursor:pointer;
  transition:background 0.25s ease, color 0.25s ease;
}
.button:hover{background:var(--charcoal);border-color:var(--charcoal);}
.button--outline{
  background:transparent;
  color:var(--forest);
}
.button--outline:hover{background:var(--forest);color:var(--ivory);}

/* ---------- Header ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(244,242,237,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--stone);
}
.header-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:16px var(--pad);
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brand-mark{
  display:flex;
  align-items:center;
  gap:12px;
}
.brand-mark__glyph{width:34px;height:auto;}
.brand-mark__type{
  font-family:var(--display);
  font-size:1.5rem;
  font-weight:600;
  letter-spacing:0.05em;
  color:var(--forest);
  display:flex;
  flex-direction:column;
  line-height:1.05;
}
.brand-mark__type em{
  font-style:normal;
  font-family:var(--body);
  font-size:0.7rem;
  font-weight:600;
  letter-spacing:0.26em;
  text-transform:uppercase;
  color:var(--forest);
  opacity:1;
}
.site-nav{
  display:flex;
  align-items:center;
  gap:26px;
  font-size:0.92rem;
  font-weight:500;
}
.site-nav a{
  color:var(--charcoal);
  padding-bottom:2px;
  border-bottom:1px solid transparent;
  transition:border-color 0.2s ease, color 0.2s ease;
}
.site-nav a:hover{border-color:var(--sage);color:var(--forest);}
.site-nav__cta{
  color:var(--forest) !important;
  font-weight:600;
}
.site-nav .site-nav__book{
  background:var(--forest);
  color:var(--ivory);
  padding:10px 20px;
  border:1px solid var(--forest);
  font-weight:600;
  letter-spacing:0.02em;
  transition:background 0.2s ease, border-color 0.2s ease;
}
.site-nav .site-nav__book:hover{background:var(--charcoal);border-color:var(--charcoal);color:var(--ivory);}
.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:0;
  cursor:pointer;
  padding:8px;
}
.nav-toggle span{
  width:22px;
  height:1.5px;
  background:var(--forest);
}
.mobile-nav{
  display:none;
  flex-direction:column;
  padding:0 var(--pad) 20px;
  gap:14px;
  font-size:1rem;
}
.mobile-nav a{padding:6px 0;}
.mobile-nav .mobile-nav__book{color:var(--forest);font-weight:600;}
.site-header.nav-open .mobile-nav{display:flex;}

/* ---------- Hero ---------- */
.hero{background:var(--ivory);}
.hero__art{
  position:relative;
  height:clamp(320px, 52vw, 560px);
  overflow:hidden;
  background:var(--stone);
}
.hero__art img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 70%;
  display:block;
  opacity:0;
  transition:opacity 0.5s ease;
}
.hero__art img.is-loaded{opacity:1;}
.hero__content{
  max-width:var(--max);
  margin:0 auto;
  padding:72px var(--pad) 100px;
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:56px;
  align-items:start;
}
.kicker{
  color:var(--sage);
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:0.2em;
  text-transform:uppercase;
  margin-bottom:1.3em;
}
.hero h1{
  color:var(--forest);
  font-size:clamp(2.6rem, 5vw, 4.2rem);
  font-weight:700;
  line-height:1.05;
  letter-spacing:-0.015em;
  margin-bottom:0.4em;
}
.hero h1 em{color:var(--sage);}
.hero__lede{
  color:var(--charcoal);
  font-size:1.05rem;
  max-width:46ch;
  margin-bottom:1.6em;
}
.enquiry-float{
  background:var(--stone);
  padding:28px;
  border-top:2px solid var(--forest);
}
.enquiry-float__label{
  font-family:var(--display);
  font-weight:600;
  font-size:1.2rem;
  color:var(--forest);
  margin-bottom:0.4em;
}
.enquiry-float__text{
  font-size:0.88rem;
  color:var(--charcoal);
  margin-bottom:1em;
}
.enquiry-float__link{
  font-size:0.85rem;
  font-weight:600;
  color:var(--forest);
  border-bottom:1px solid var(--forest);
  padding-bottom:2px;
}

/* ---------- Ethos ---------- */
.ethos{
  background:var(--ivory);
  padding:120px var(--pad);
}
.ethos__inner{max-width:var(--max);margin:0 auto;}
.ethos h2{
  font-size:clamp(2.2rem, 4vw, 3.1rem);
  font-weight:500;
  max-width:680px;
}
.ethos h2 em{color:var(--sage);}
.ethos__body{
  max-width:60ch;
  color:var(--charcoal);
  font-size:1.02rem;
  margin-bottom:3.5em;
}
.ethos__body strong{color:var(--forest);}
.pillars{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  border-top:1px solid var(--stone);
  padding-top:48px;
}
.pillar{
  padding:0 40px 0 0;
}
.pillar + .pillar{
  padding-left:40px;
  border-left:1px solid var(--stone);
}
.pillar__art{
  aspect-ratio:4/3;
  overflow:hidden;
  margin-bottom:26px;
}
.pillar__art img{width:100%;height:100%;object-fit:cover;display:block;}
.pillar h3{
  font-size:1.5rem;
  font-weight:500;
  margin-bottom:0.45em;
}
.pillar p{
  color:var(--charcoal);
  font-size:0.94rem;
  line-height:1.6;
  margin:0;
}

/* ---------- Statement band ---------- */
.statement{
  position:relative;
  background:var(--forest);
  color:var(--ivory);
  padding:150px var(--pad);
  overflow:hidden;
}
.statement__inner{
  max-width:600px;
  position:relative;
  z-index:1;
}
.statement h2{
  color:var(--ivory);
  font-size:clamp(2.3rem, 4.4vw, 3.6rem);
  font-weight:500;
  max-width:none;
}
.statement h2 em{color:var(--stone);}
.statement__rule{
  border:none;
  border-top:1px solid var(--sage);
  width:80px;
  margin:0 0 32px;
}
.statement p{
  color:var(--ivory);
  opacity:0.85;
  max-width:46ch;
  font-size:1.05rem;
  margin:0;
}
.statement__mark{
  position:absolute;
  right:-60px;
  top:50%;
  transform:translateY(-50%);
  width:560px;
  max-width:48vw;
  pointer-events:none;
}
.statement__mark img{width:100%;height:auto;display:block;}

/* ---------- Steps (How it works) ---------- */
.steps{background:var(--ivory);padding:120px var(--pad);}
.steps__inner{max-width:var(--max);margin:0 auto;}
.steps h2{font-size:clamp(2.2rem, 4vw, 3.1rem);font-weight:600;max-width:680px;}
.steps h2 em{color:var(--sage);}
.steps__intro{max-width:60ch;color:var(--charcoal);font-size:1.02rem;margin-bottom:3.5em;}
.steps__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  border-top:1px solid var(--stone);
  padding-top:48px;
  gap:0;
}
.step{padding:0 40px 0 0;}
.step + .step{padding-left:40px;border-left:1px solid var(--stone);}
.step__num{
  display:block;
  font-family:var(--display);
  font-size:1.6rem;
  color:var(--sage);
  margin-bottom:0.6em;
}
.step h3{font-size:1.25rem;font-weight:500;margin-bottom:0.5em;}
.step p{color:var(--charcoal);font-size:0.94rem;line-height:1.6;margin:0;}

/* ---------- Benefits (Why partner) — solid accent block ---------- */
.benefits{background:var(--charcoal);padding:120px var(--pad);}
.benefits__inner{max-width:var(--max);margin:0 auto;}
.benefits .section-label{color:var(--sage);}
.benefits h2{font-size:clamp(2.2rem, 4vw, 3.1rem);font-weight:600;max-width:680px;color:var(--ivory);}
.benefits h2 em{color:var(--sage);font-style:italic;}
.benefits__intro{max-width:62ch;color:var(--ivory);opacity:0.85;font-size:1.02rem;margin-bottom:3.5em;}
.benefits__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  border-top:1px solid rgba(250,248,243,0.22);
}
.benefit{
  padding:32px 32px 32px 0;
  border-bottom:1px solid rgba(250,248,243,0.22);
}
.benefit:nth-child(2n){padding-left:32px;border-left:1px solid rgba(250,248,243,0.22);}
.benefit__icon{
  width:48px;
  height:48px;
  border-radius:10px;
  background:rgba(250,248,243,0.12);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--ivory);
  margin-bottom:18px;
}
.benefit__icon svg{width:22px;height:22px;}
.benefit h3{font-size:1.15rem;font-weight:500;margin-bottom:0.5em;color:var(--ivory);}
.benefit p{color:var(--ivory);opacity:0.8;font-size:0.94rem;line-height:1.6;margin:0;}

/* ---------- FAQ ---------- */
.faq{background:var(--ivory);padding:100px var(--pad) 110px;}
.faq__inner{max-width:780px;margin:0 auto;}
.faq__eyebrow{font-size:0.86rem;margin-bottom:0;}
.faq__list{border-top:1px solid var(--taupe);margin-top:1.4em;}
.faq__item{border-bottom:1px solid var(--taupe);padding:22px 0;}
.faq__item summary{
  cursor:pointer;
  font-family:var(--body);
  font-weight:600;
  font-size:1rem;
  color:var(--forest);
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
}
.faq__item summary::-webkit-details-marker{display:none;}
.faq__item summary::after{
  content:"+";
  font-family:var(--display);
  font-size:1.4rem;
  color:var(--sage);
  flex:0 0 auto;
  transition:transform 0.2s ease;
}
.faq__item[open] summary::after{content:"–";}
.faq__item p{
  color:var(--charcoal);
  font-size:0.95rem;
  line-height:1.65;
  margin:1em 0 0;
  max-width:64ch;
}

/* ---------- Gallery items (used by the Residence gallery) ---------- */
.gallery__item{
  margin:0;
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  background:var(--stone);
}
.gallery__item img{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:0;transition:opacity 0.5s ease, transform 0.6s ease;
}
.gallery__item img.is-loaded{opacity:1;}
.gallery__item.img-fallback{background:var(--stone);}
.gallery__item:hover img{transform:scale(1.04);}
.gallery__item figcaption{
  position:absolute;left:0;right:0;bottom:0;
  padding:14px 16px;
  font-family:var(--body);
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ivory);
  background:linear-gradient(0deg, rgba(53,57,53,0.65) 0%, rgba(53,57,53,0) 100%);
}

.hero__art.img-fallback{background:var(--stone);}

.hero__actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}

/* ---------- The Residence ---------- */
.residence{background:var(--ivory);padding:120px var(--pad) 110px;border-top:1px solid var(--stone);}
.residence__inner{max-width:var(--max);margin:0 auto;}
.residence h2{font-size:clamp(2.2rem, 4vw, 3.1rem);font-weight:600;max-width:720px;}
.residence h2 em{color:var(--sage);}
.residence__intro{max-width:64ch;color:var(--charcoal);font-size:1.04rem;margin-bottom:2.4em;}

.facts{
  list-style:none;margin:0 0 56px;padding:0;
  display:grid;grid-template-columns:repeat(4, 1fr);
  border-top:1px solid var(--stone);border-bottom:1px solid var(--stone);
  max-width:720px;
}
.facts li{padding:22px 0;text-align:left;}
.facts li + li{padding-left:28px;border-left:1px solid var(--stone);}
.facts__num{display:block;font-family:var(--display);font-weight:600;font-size:2.4rem;line-height:1;color:var(--forest);}
.facts__label{display:block;margin-top:8px;font-size:0.72rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--sage);}

.residence__gallery{
  max-width:var(--max);margin:0 auto 72px;
  display:grid;grid-template-columns:repeat(4, 1fr);gap:14px;
}
.residence__gallery .gallery__item{aspect-ratio:3/2;cursor:zoom-in;}
.residence__gallery .gallery__item--lead{grid-column:span 2;grid-row:span 2;aspect-ratio:auto;}
.residence__gallery .gallery__item figcaption{pointer-events:none;}

.residence__details{display:grid;grid-template-columns:1.5fr 1fr;gap:72px;}
.detail-col h3{font-size:1.5rem;font-weight:600;margin-bottom:0.7em;}
.checklist{list-style:none;margin:0;padding:0;}
.checklist li{
  position:relative;padding:11px 0 11px 30px;
  border-bottom:1px solid var(--stone);
  font-size:0.96rem;color:var(--charcoal);line-height:1.5;
}
.checklist li::before{
  content:"";position:absolute;left:2px;top:17px;width:9px;height:5px;
  border-left:1.5px solid var(--sage);border-bottom:1.5px solid var(--sage);
  transform:rotate(-45deg);
}
.checklist--plain li{padding-left:0;}
.checklist--plain li::before{display:none;}
.checklist strong{color:var(--forest);font-weight:600;}

/* ---------- Book a stay ---------- */
.book{background:var(--stone);padding:110px var(--pad);}
.book__inner{
  max-width:var(--max);margin:0 auto;
  display:grid;grid-template-columns:0.9fr 1.1fr;gap:80px;align-items:start;
}
.book h2{font-size:clamp(2.2rem, 3.6vw, 3rem);font-weight:600;}
.book h2 em{color:var(--forest);}
.book .section-label{color:var(--forest);}
.book__intro p{color:var(--charcoal);max-width:46ch;}
.book .enquiry-form input,
.book .enquiry-form select,
.book .enquiry-form textarea{border-bottom-color:var(--charcoal);}
.optional{font-style:normal;font-weight:400;opacity:0.7;}

/* ---------- Lightbox ---------- */
.lightbox{
  border:0;padding:0;background:transparent;
  max-width:min(1200px, 94vw);max-height:92vh;
  margin:auto;overflow:visible;
}
.lightbox::backdrop{background:rgba(30,33,30,0.88);}
.lightbox__img{display:block;max-width:100%;max-height:82vh;margin:0 auto;object-fit:contain;}
.lightbox__cap{margin:12px 0 0;text-align:center;color:var(--ivory);font-size:0.82rem;letter-spacing:0.12em;text-transform:uppercase;}
.lightbox__close{
  position:absolute;top:-8px;right:-4px;transform:translateY(-100%);
  background:none;border:0;color:var(--ivory);font-size:2.4rem;line-height:1;cursor:pointer;padding:4px 10px;
}

/* ---------- About ---------- */
.about{
  background:var(--ivory);
  padding:130px var(--pad);
}
.about__inner{
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.2fr 0.9fr;
  gap:64px;
  align-items:center;
}
.about h2{
  color:var(--forest);
  font-size:clamp(2.3rem, 4vw, 3.2rem);
  font-weight:600;
  max-width:460px;
}
.about h2 em{color:var(--sage);}
.about p{
  color:var(--charcoal);
  max-width:56ch;
  font-size:1.05rem;
}
.about p strong{color:var(--forest);}
.about__art{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.about__monogram{
  width:100%;
  max-width:380px;
  height:auto;
}

/* ---------- About teaser (homepage) ---------- */
.about-teaser{background:var(--ivory);padding:100px var(--pad);}
.about-teaser__inner{
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns:0.4fr 1fr;
  gap:48px;
  align-items:center;
  border-top:1px solid var(--stone);
  border-bottom:1px solid var(--stone);
  padding:64px 0;
}
.about-teaser__art{display:flex;align-items:center;justify-content:center;}
.about-teaser__monogram{width:100%;max-width:150px;height:auto;}
.about-teaser h2{
  font-size:clamp(1.8rem, 3vw, 2.4rem);
  font-weight:600;
  max-width:520px;
}
.about-teaser h2 em{color:var(--sage);}
.about-teaser__text p{
  color:var(--charcoal);
  max-width:60ch;
  font-size:1.02rem;
}
.about-teaser__link{
  display:inline-block;
  font-size:0.9rem;
  font-weight:600;
  color:var(--forest);
  border-bottom:1px solid var(--forest);
  padding-bottom:2px;
}

/* ---------- Enquire ---------- */
.enquire{
  background:var(--ivory);
  padding:120px var(--pad);
}
.enquire__inner{max-width:680px;margin:0 auto;}
.enquire h2{font-size:clamp(2.2rem, 3.6vw, 3rem);font-weight:600;}
.enquire__lede{color:var(--charcoal);max-width:52ch;margin-bottom:2.4em;}

.enquiry-form{display:flex;flex-direction:column;gap:22px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.enquiry-form label{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:0.85rem;
  font-weight:600;
  color:var(--forest);
}
.form-full{width:100%;}
.enquiry-form input,
.enquiry-form select,
.enquiry-form textarea{
  font-family:var(--body);
  font-size:0.98rem;
  color:var(--charcoal);
  background:transparent;
  border:none;
  border-bottom:1px solid var(--taupe);
  padding:10px 2px;
  resize:vertical;
}
.enquiry-form input:focus,
.enquiry-form select:focus,
.enquiry-form textarea:focus{
  border-color:var(--forest);
  outline:none;
}
.enquiry-form button{align-self:flex-start;margin-top:8px;}
.hp-field{position:absolute;left:-9999px;}

/* ---------- Footer ---------- */
.site-footer{
  background:#F4F2ED;
  color:var(--charcoal);
  border-top:1px solid var(--taupe);
}
.footer-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:72px var(--pad) 40px;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:40px;
}
.brand-mark--footer{margin-bottom:4px;}
.brand-mark--footer .brand-mark__glyph{width:30px;}
.brand-mark--footer .brand-mark__type{color:var(--forest);}
.brand-mark--footer .brand-mark__type em{color:var(--forest);}
.footer-heading{
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--forest);
  margin-bottom:1em;
}
.footer-col{display:flex;flex-direction:column;gap:10px;font-size:0.94rem;}
.footer-col a{opacity:0.9;}
.footer-col .social a{color:var(--forest);}
.footer-col a:hover{opacity:1;text-decoration:underline;}
.footer-col .footer-locality{margin:0;opacity:0.7;}
.footer-bottom{
  border-top:1px solid rgba(53,57,53,0.2);
  padding:20px var(--pad) 32px;
  font-size:0.82rem;
  color:var(--charcoal);
}

/* ---------- Multi-page additions ---------- */
.site-nav a[aria-current="page"]{color:var(--forest);font-weight:600;border-color:var(--sage);}
.mobile-nav a[aria-current="page"]{color:var(--forest);font-weight:600;}
.button--light{background:var(--ivory);color:var(--forest);border-color:var(--ivory);}
.button--light:hover{background:var(--stone);border-color:var(--stone);color:var(--forest);}
.statement .button{margin-top:28px;}
.facts-inline{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 1.4em;font-size:0.72rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--sage);}
.facts-inline span + span::before{content:"\00b7";margin-right:14px;color:var(--taupe);}

/* Home: availability search card */
.search-card{
  background:var(--stone);padding:28px;border-top:2px solid var(--forest);
  display:flex;flex-direction:column;gap:18px;
}
.search-card__label{font-family:var(--display);font-weight:600;font-size:1.3rem;color:var(--forest);margin:0;}
.search-card button{align-self:stretch;margin-top:4px;text-align:center;}
.search-card input,.search-card select{border-bottom-color:var(--charcoal);}

/* Home: featured stay */
.featured{background:var(--ivory);padding:40px var(--pad) 110px;}
.featured__inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;gap:72px;align-items:center;}
.featured__art{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--stone);}
.featured__art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.6s ease;}
.featured__art:hover img{transform:scale(1.03);}
.featured h2{font-size:clamp(2rem, 3.4vw, 2.8rem);font-weight:600;}
.featured h2 em{color:var(--sage);}
.featured p{color:var(--charcoal);max-width:48ch;}

/* Home: perks */
.perks{background:var(--ivory);padding:0 var(--pad) 110px;}
.perks__inner{max-width:var(--max);margin:0 auto;}
.perks h2{font-size:clamp(2.2rem, 4vw, 3.1rem);font-weight:600;max-width:680px;}
.perks h2 em{color:var(--sage);}
.perks__grid{display:grid;grid-template-columns:repeat(3, 1fr);margin-top:2.4em;border-top:1px solid var(--stone);}
.perk{padding:36px 36px 0 0;}
.perk + .perk{padding-left:36px;border-left:1px solid var(--stone);}
.perk__icon{width:48px;height:48px;border-radius:10px;background:var(--stone);color:var(--forest);display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.perk__icon svg{width:22px;height:22px;}
.perk h3{font-size:1.25rem;font-weight:600;margin-bottom:0.5em;}
.perk p{color:var(--charcoal);font-size:0.95rem;line-height:1.6;margin:0;}

/* Home: photo strip */
.strip{max-width:var(--max);margin:0 auto 24px;padding:0 var(--pad);display:grid;grid-template-columns:repeat(4, 1fr);gap:14px;box-sizing:content-box;}
.strip .gallery__item{aspect-ratio:3/2;display:block;}
.strip .gallery__item a{display:block;width:100%;height:100%;}
.strip .gallery__item figcaption{pointer-events:none;}

/* Inner-page header */
.page-head{background:var(--stone);padding:84px var(--pad) 72px;}
.page-head__inner{max-width:var(--max);margin:0 auto;}
.page-head h1{font-size:clamp(2.4rem, 4.6vw, 3.8rem);font-weight:700;max-width:820px;margin-bottom:0.3em;}
.page-head h1 em{color:var(--forest);}
.page-head .section-label{color:var(--forest);}
.page-head__lede{max-width:56ch;color:var(--charcoal);font-size:1.05rem;margin:0;}
.page-head--stay{padding:56px var(--pad) 48px;}
.page-head--stay .facts{margin:28px 0 0;border-color:rgba(53,57,53,0.25);}
.page-head--stay .facts li + li{border-color:rgba(53,57,53,0.25);}
.crumbs{font-size:0.82rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--forest);margin-bottom:1.2em;}
.crumbs a{border-bottom:1px solid var(--forest);}

/* Stays index */
.stay-cards{background:var(--ivory);padding:90px var(--pad) 120px;}
.stay-cards__grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:32px;align-items:stretch;}
.stay-card{background:var(--ivory);border:1px solid var(--stone);display:flex;flex-direction:column;}
.stay-card__art{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--stone);}
.stay-card__art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.6s ease;}
.stay-card__art:hover img{transform:scale(1.03);}
.stay-card__body{padding:32px;}
.stay-card h3{font-size:1.7rem;font-weight:600;}
.stay-card p{color:var(--charcoal);}
.stay-card--note{background:var(--stone);border-color:var(--stone);justify-content:center;}

/* Stay detail */
.stay{background:var(--ivory);padding:56px var(--pad) 110px;}
.stay .residence__gallery{margin-bottom:72px;}
.stay__layout{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.7fr 1fr;gap:72px;align-items:start;}
.stay__main h2{font-size:clamp(1.8rem, 3vw, 2.4rem);font-weight:600;}
.stay__intro{max-width:60ch;color:var(--charcoal);font-size:1.03rem;margin-bottom:2.4em;}
.stay__cols{display:flex;flex-direction:column;gap:44px;}
.stay-faq{margin-top:64px;}
.stay-faq h3{font-size:1.5rem;font-weight:600;}
.booking-card{
  position:sticky;top:96px;
  background:var(--stone);padding:32px;border-top:2px solid var(--forest);
}
.booking-card h2{font-size:1.8rem;font-weight:600;margin-bottom:0.2em;}
.booking-card__sub{margin:0 0 1.6em;font-size:0.9rem;color:var(--charcoal);}
.booking-card .enquiry-form{gap:18px;}
.booking-card .form-row{gap:16px;}
.booking-card input,.booking-card select,.booking-card textarea{border-bottom-color:var(--charcoal);}
.booking-card button{align-self:stretch;text-align:center;}
.booking-card__note{margin:0;font-size:0.8rem;color:var(--charcoal);opacity:0.85;text-align:center;}

/* Contact */
.contact{background:var(--ivory);padding:90px var(--pad) 120px;}
.contact__inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:0.8fr 1.2fr;gap:80px;align-items:start;}
.contact__details h2{font-size:1.8rem;font-weight:600;}
.contact__details p{color:var(--charcoal);line-height:1.6;}
.contact__details a{color:var(--forest);border-bottom:1px solid var(--forest);}
.contact__details hr{border:none;border-top:1px solid var(--stone);margin:28px 0;}

/* ---------- Offers, socials, booking methods ---------- */
.social{display:flex;gap:12px;margin:0 0 14px;}
.social a{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:50%;opacity:0.9;transition:opacity .2s,background .2s;}
.social a:hover{opacity:1;background:rgba(50,89,42,0.1);}
.social svg{width:20px;height:20px;}
.contact .social a{color:var(--forest);}
.ready{background:var(--stone);padding:100px var(--pad);text-align:center;}
.ready__inner{max-width:680px;margin:0 auto;}
.ready h2{margin:0.2em 0 0.4em;}
.ready .hero__actions{justify-content:center;}
.booking-alt{margin-top:22px;padding-top:20px;border-top:1px solid var(--taupe);text-align:center;}
.booking-alt p{margin:0 0 12px;font-size:0.9rem;}
.offer{border:0;padding:44px 40px 36px;max-width:440px;width:calc(100% - 32px);background:var(--ivory);color:var(--charcoal);box-shadow:0 24px 60px rgba(0,0,0,.28);}
.offer::backdrop{background:rgba(30,40,30,.55);}
.offer h2{font-size:2rem;margin:0.2em 0 0.4em;}
.offer p{margin:0 0 1.2em;}
.offer__close{position:absolute;top:10px;right:14px;background:none;border:0;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--forest);}

/* ---------- Photo page header ---------- */
.page-head--photo{position:relative;background-size:cover;background-position:center 55%;padding:150px var(--pad) 130px;color:#fff;}
.page-head--photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,38,24,.72),rgba(24,38,24,.35));}
.page-head--photo .page-head__inner{position:relative;}
.page-head--photo h1,.page-head--photo h1 em,.page-head--photo .section-label,.page-head--photo .page-head__lede{color:#fff;}
.contact__details .button{margin-top:6px;text-decoration:none;}
.contact__details a.button{color:#fff;border-bottom:0;}

/* ---------- Wordmark: NAMOUR spans the full width of COLLECTION ---------- */
.brand-mark__type{display:inline-flex;flex-direction:column;align-items:stretch;}
.brand-mark__name{display:flex;justify-content:space-between;contain:inline-size;width:100%;font-weight:700;font-size:1.4rem;letter-spacing:0;line-height:1;margin-bottom:6px;}
.brand-mark__name i{font-style:normal;}
.brand-mark__type em{font-size:0.78rem;letter-spacing:0.3em;margin-right:-0.3em;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

.hero--band .hero__art{height:clamp(220px,30vw,400px);}
.button--caps{text-transform:uppercase;letter-spacing:0.08em;}

.page-head--plain{background:var(--ivory);padding:72px var(--pad) 8px;}

.brand-logo{display:block;height:50px;width:auto;}
.brand-mark--footer .brand-logo{height:56px;}

/* ---------- Responsive ---------- */
@media (max-width: 900px){
  .site-nav{display:none;}
  .nav-toggle{display:flex;}
  .residence{padding:80px var(--pad) 72px;}
  .featured{padding:24px var(--pad) 72px;}
  .featured__inner{grid-template-columns:1fr;gap:32px;}
  .perks{padding:0 var(--pad) 72px;}
  .perks__grid{grid-template-columns:1fr;}
  .perk,.perk + .perk{padding:28px 0;border-left:none;border-bottom:1px solid var(--stone);}
  .strip{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px;}
  .page-head{padding:56px var(--pad) 48px;}
  .stay-cards{padding:56px var(--pad) 80px;}
  .stay-cards__grid{grid-template-columns:1fr;}
  .stay{padding:40px var(--pad) 80px;}
  .stay__layout{grid-template-columns:1fr;gap:48px;}
  .booking-card{position:static;order:-1;}
  .contact{padding:56px var(--pad) 80px;}
  .contact__inner{grid-template-columns:1fr;gap:40px;}
  .residence__gallery{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:56px;}
  .residence__details{grid-template-columns:1fr;gap:48px;}
  .facts{grid-template-columns:repeat(4, 1fr);}
  .facts li + li{padding-left:16px;}
  .book{padding:80px var(--pad);}
  .book__inner{grid-template-columns:1fr;gap:40px;}
  .pillars{grid-template-columns:1fr;padding-top:32px;}
  .pillar{border-bottom:1px solid var(--stone);padding:0 0 28px;margin-bottom:28px;}
  .pillar:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
  .pillar__art{max-width:280px;}
  .steps__grid{grid-template-columns:1fr;padding-top:32px;}
  .step{border-bottom:1px solid var(--stone);padding:0 0 28px;margin-bottom:28px;}
  .step:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
  .step + .step{border-left:none;padding-left:0;}
  .benefits__grid{grid-template-columns:1fr;}
  .benefit,
  .benefit:nth-child(2n){padding:28px 0;border-left:none;}
  .form-row{grid-template-columns:1fr;}
  .footer-inner{grid-template-columns:1fr 1fr;}
  .footer-brand{grid-column:1 / -1;}
  .about__inner{grid-template-columns:1fr;gap:40px;}
  .about__art{order:-1;}
  .about__monogram{max-width:180px;}
  .pillar + .pillar{border-left:none;padding-left:0;}
  .statement{padding:100px var(--pad);}
  .statement__mark{width:280px;max-width:60vw;right:-30px;opacity:0.7;}
  .hero__art{height:260px;}
  .hero__content{grid-template-columns:1fr;padding:48px var(--pad) 64px;gap:32px;}
  .about-teaser{padding:64px var(--pad);}
  .about-teaser__inner{grid-template-columns:1fr;gap:24px;padding:48px 0;text-align:center;}
  .about-teaser__monogram{max-width:100px;}
  .about{padding:80px var(--pad);}
  .ethos{padding:80px var(--pad);}
  .ethos__body{margin-bottom:2.4em;}
  .steps{padding:80px var(--pad);}
  .steps__intro{margin-bottom:2.4em;}
  .benefits{padding:80px var(--pad);}
  .statement{padding:90px var(--pad);}
  .ready{padding:64px var(--pad);}
  .page-head--photo{padding:96px var(--pad) 80px;}
  .brand-logo{height:40px;}
  .brand-mark__name{font-size:1.2rem;}
  .brand-mark__type em{font-size:0.66rem;}
  .offer{padding:40px 24px 28px;}
  .faq{padding:64px var(--pad) 72px;}
  .enquire{padding:80px var(--pad);}
}

@media (max-width: 600px){
  .facts__label{font-size:0.6rem;letter-spacing:0.08em;}
  .facts li + li{padding-left:12px;}
  .facts__num{font-size:2rem;}
  .header-inner{padding:14px var(--pad);}
  .footer-inner{grid-template-columns:1fr;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .button{transition:none;}
}
