

/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --black:#0a0806;
  --charcoal:#17120d;
  --charcoal-2:#1f1811;
  --ivory:#f4ede0;
  --ivory-2:#ece2cf;
  --gold:#c69a44;
  --gold-soft:#e3c98a;
  --gold-dim:#8a6b32;
  --walnut-1:#2c1c12;
  --walnut-2:#40291a;
  --walnut-3:#1c120b;
  --stone:#b7ab98;
  --stone-2:#dcd3c1;
  --water:#16333a;
  --ink:#171310;
  --line-on-dark: rgba(198,154,68,.28);
  --line-on-light: rgba(23,18,13,.14);
  --serif:'Fraunces', Georgia, 'Times New Roman', serif;
  --sans:'Jost', 'Helvetica Neue', Arial, sans-serif;
  --ease: cubic-bezier(.22,.61,.36,1);
}

:root:not([data-theme="light"]){
  color-scheme: dark;
}

*,*::before,*::after{box-sizing:border-box; margin:0; padding:0;}

html{
  scroll-behavior:smooth;
  scroll-padding-top: calc(84px + env(safe-area-inset-top,0px));
}

body{
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}

img,svg{display:block; max-width:100%;}

a{color:inherit; text-decoration:none;}

.wrap{
  max-width:1240px;
  margin:0 auto;
  padding-left:clamp(20px,5vw,64px);
  padding-right:clamp(20px,5vw,64px);
}

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  line-height:1.08;
  letter-spacing:-.01em;
}

p{ line-height:1.7; }

.eyebrow{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:500;
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--sans);
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:500;
  padding:16px 30px;
  border:1px solid var(--gold-dim);
  color:var(--ivory);
  background:linear-gradient(180deg, var(--charcoal-2), var(--black));
  cursor:pointer;
  transition: border-color .4s var(--ease), box-shadow .4s var(--ease), color .4s var(--ease);
}
.btn:hover{
  border-color:var(--gold);
  box-shadow:0 0 0 1px var(--gold-dim), 0 6px 26px -8px rgba(198,154,68,.45);
  color:var(--gold-soft);
}
.btn.ghost{
  background:transparent;
  border:1px solid rgba(23,18,13,.35);
  color:var(--ink);
}
.btn.ghost:hover{
  border-color:var(--gold-dim);
  box-shadow:0 0 0 1px var(--gold-dim);
  color:var(--walnut-2);
}

::selection{ background:var(--gold); color:var(--black); }

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}

/* ============================================================
   TEXTURES  (wood grain / stone / water — SVG generated, no external images)
   ============================================================ */

.tex-wood{ position:relative; }
.tex-wood::before{
  content:"";
  position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.008 0.09' numOctaves='3' seed='7' result='n'/%3E%3CfeColorMatrix in='n' type='matrix' values='0 0 0 0 0.16, 0 0 0 0 0.10, 0 0 0 0 0.06, 0 0 0 0.9 0'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23w)'/%3E%3C/svg%3E");
  background-size:340px 340px;
  mix-blend-mode:overlay;
  opacity:.55;
  pointer-events:none;
}

.tex-grain{ position:relative; }
.tex-grain::after{
  content:"";
  position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)' opacity='0.5'/%3E%3C/svg%3E");
  opacity:.05;
  mix-blend-mode:overlay;
  pointer-events:none;
}

.panel-wood{
  background:
    radial-gradient(120% 140% at 15% 0%, rgba(198,154,68,.10), transparent 55%),
    linear-gradient(115deg, var(--walnut-2) 0%, var(--walnut-1) 45%, var(--walnut-3) 100%);
}

.panel-stone{
  background:
    linear-gradient(160deg, var(--stone-2), var(--stone) 60%, #a89b86 100%);
}

.panel-garden{
  background:
    radial-gradient(120% 100% at 20% 0%, rgba(198,154,68,.08), transparent 55%),
    linear-gradient(160deg, #22301f 0%, #13200f 55%, #0b1409 100%);
}

.panel-water{
  background:
    linear-gradient(180deg, #0d2226 0%, var(--water) 45%, #0a1b1f 100%);
}

/* generic scene frame used in place of photography */
.scene{
  position:relative;
  overflow:hidden;
  background:var(--charcoal);
}
.scene svg{ width:100%; height:100%; display:block; }

/* ============================================================
   INTRO
   ============================================================ */
#intro{
  position:fixed; inset:0; z-index:200;
  background:var(--black);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .9s var(--ease), visibility .9s var(--ease);
}
#intro.hide{ opacity:0; visibility:hidden; }
#intro .mark{
  width:min(30vw,190px);
  opacity:0;
  filter:drop-shadow(0 0 26px rgba(198,154,68,.35));
  animation: markIn 1.7s var(--ease) forwards .15s;
}
#intro .mark{ aspect-ratio:1; border-radius:50%; overflow:hidden; background:#080808; }
#intro .mark img{ width:100%; height:100%; object-fit:cover; border-radius:50%; }
@keyframes markIn{
  0%{ opacity:0; transform:scale(.94); filter:drop-shadow(0 0 0 rgba(198,154,68,0));}
  60%{ opacity:1; transform:scale(1); filter:drop-shadow(0 0 30px rgba(198,154,68,.45));}
  100%{ opacity:1; transform:scale(1); filter:drop-shadow(0 0 18px rgba(198,154,68,.3));}
}
#skip-intro{
  position:absolute; bottom:36px; right:36px;
  font-family:var(--sans); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--stone-2); opacity:.6;
  background:none; border:none; cursor:pointer;
  padding:8px 4px;
  transition:opacity .3s;
}
#skip-intro:hover{ opacity:1; color:var(--gold-soft); }

/* ============================================================
   NAV
   ============================================================ */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding-top:env(safe-area-inset-top,0px);
  transition: background-color .5s var(--ease), border-color .5s var(--ease), box-shadow .5s var(--ease);
  border-bottom:2px solid transparent;
  background-color:transparent;
}
header.solid{
  background-color:#17120d;
  border-color:rgba(198,154,68,.55);
  box-shadow:0 8px 28px rgba(0,0,0,.28);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:98px;
}
.nav-links{
  display:none; gap:clamp(14px,2vw,38px); list-style:none;
}
@media(min-width:620px){ .nav-links{ display:flex; } }
.nav-links a{
  font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ivory-2);
  text-shadow:0 1px 8px rgba(0,0,0,.9);
  position:relative;
  padding-bottom:6px;
}
.nav-links a::after{
  content:"";
  position:absolute; left:0; right:100%; bottom:0;
  height:1px; background:var(--gold);
  transition:right .35s var(--ease);
}
.nav-links a:hover::after, .nav-links a.active::after{ right:0; }
.nav-links a.active{ color:var(--gold-soft); }
.nav-logo{ display:flex; align-items:center; gap:12px; }
.nav-logo img{
  height:54px; width:auto;
  filter:brightness(1.8) contrast(1.3) drop-shadow(0 1px 3px rgba(0,0,0,.9));
  mask-image:url('../assets/images/logo.png');
  mask-mode:luminance;
  mask-size:contain;
  mask-repeat:no-repeat;
  -webkit-mask-image:url('../assets/images/logo.png');
  -webkit-mask-size:contain;
  -webkit-mask-repeat:no-repeat;
}
.nav-logo .word{
  font-family:var(--serif); font-size:16px; letter-spacing:.04em; color:var(--ivory);
  text-shadow:0 1px 8px rgba(0,0,0,.9);
  display:none;
}
@media(min-width:1000px){ .nav-logo .word{ display:block; } }
.nav-cta{ display:none; }
@media(min-width:1100px){ .nav-cta{ display:inline-flex; padding:12px 24px; font-size:11px; } }
.nav-toggle{
  display:flex; background:none; border:none; color:var(--ivory); cursor:pointer; padding:8px;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.9));
}
@media(max-width:619px){ .nav-inner{height:88px;} .nav-logo img{height:48px;} }
@media(min-width:620px){ .nav-toggle{ display:none; } }
#mobile-menu{
  position:fixed; inset:0; z-index:99; background:var(--black);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:28px;
  opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s;
}
#mobile-menu.open{ opacity:1; visibility:visible; }
#mobile-menu a{ font-family:var(--serif); font-size:26px; color:var(--ivory); }
#mobile-menu a:hover{ color:var(--gold); }

/* ============================================================
   HERO
   ============================================================ */
#hero{
  position:relative; min-height:100vh; min-height:100svh;
  display:flex; align-items:center; justify-content:center;
  background:var(--black);
  overflow:hidden;
}
#hero .backdrop{ position:absolute; inset:0; }
#hero .backdrop svg{ width:100%; height:100%; }
#hero .veil{
  position:absolute; inset:0;
  background:radial-gradient(120% 90% at 50% 30%, rgba(0,0,0,0) 0%, rgba(10,8,6,.35) 55%, rgba(10,8,6,.92) 100%);
}
.hero-content{
  position:relative; z-index:2; text-align:center;
  padding-top:84px;
  display:flex; flex-direction:column; align-items:center; gap:30px;
}
.hero-content .mark{ width:min(46vw,240px); filter:drop-shadow(0 0 34px rgba(198,154,68,.3)); }
.hero-content .tagline{
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(14px,1.6vw,18px);
  color:var(--stone-2);
  letter-spacing:.03em;
}
.hero-scroll{
  position:absolute; bottom:38px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color:var(--stone-2); font-size:10px; letter-spacing:.2em; text-transform:uppercase;
  z-index:2;
}
.hero-scroll .line{ width:1px; height:34px; background:linear-gradient(var(--gold), transparent); }

/* ============================================================
   SECTION SCAFFOLD
   ============================================================ */
section{ position:relative; }
.section-pad{ padding-top:clamp(88px,12vw,140px); padding-bottom:clamp(88px,12vw,140px); }
.dark{ background:var(--black); color:var(--ivory); }
.charcoal{ background:var(--charcoal); color:var(--ivory); }
.rule{ height:1px; background:linear-gradient(90deg, var(--gold-dim), transparent); width:80px; margin:18px 0 26px; }
.rule.center{ margin-left:auto; margin-right:auto; }

/* ---- About / editorial two column ---- */
.editorial{
  display:grid; grid-template-columns:1fr; gap:56px; align-items:center;
}
@media(min-width:920px){ .editorial{ grid-template-columns:0.95fr 1.05fr; gap:80px; } }
.editorial h2{ font-size:clamp(30px,4vw,46px); }
.editorial .lead{ font-family:var(--serif); font-size:19px; color:#3a2f22; max-width:46ch; margin-top:20px; }
.editorial .body{ margin-top:20px; max-width:48ch; color:#4b4033; font-size:15px; }
.frame{
  position:relative; aspect-ratio:4/5; border:1px solid var(--line-on-light);
  padding:14px;
}
.frame .inner{ position:relative; height:100%; overflow:hidden; }
.frame.wood-border{ padding:16px; background:var(--walnut-1); }
.frame.wood-border .inner{ border:1px solid rgba(198,154,68,.35); }

/* ---- Dark statement ---- */
.statement{
  text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:22px;
}
.statement h2{
  font-size:clamp(32px,6vw,64px);
  color:var(--ivory);
}
.statement h2 em{ font-style:italic; color:var(--gold-soft); }
.statement .cap{ font-size:13px; }

/* ---- Wood + gold CTA ---- */
.stay-panel{
  position:relative;
  padding:clamp(56px,8vw,100px) clamp(24px,6vw,80px);
  border:1px solid var(--line-on-dark);
  text-align:center;
  overflow:hidden;
}
.stay-panel h2{ color:var(--ivory); font-size:clamp(28px,4.4vw,44px); }
.stay-panel .sub{ color:var(--stone-2); font-family:var(--serif); font-style:italic; margin-top:12px; font-size:17px; }
.stay-form{
  margin-top:46px; display:grid; gap:1px;
  grid-template-columns:repeat(1,1fr);
  border:1px solid var(--line-on-dark);
  max-width:760px; margin-left:auto; margin-right:auto;
  background:var(--line-on-dark);
}
@media(min-width:720px){ .stay-form{ grid-template-columns:repeat(3,1fr) auto; } }
.stay-form .field{
  background:rgba(10,8,6,.55);
  padding:18px 20px;
  text-align:left;
}
.stay-form label{
  display:block; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:6px;
}
.stay-form input, .stay-form select{
  width:100%; background:transparent; border:none; color:var(--ivory);
  font-family:var(--sans); font-size:16px; outline:none;
}
.stay-form input::placeholder{ color:rgba(244,237,224,.4); }
.stay-form select option{ background:var(--charcoal); }
.stay-form .submit-cell{ display:flex; }
.stay-form .submit-cell .btn{ width:100%; border:none; padding:0 26px; }
@media(min-width:720px){ .stay-form.no-submit-col{ grid-template-columns:repeat(3,1fr); } }
.stay-form .field.full{ grid-column:1/-1; }
.stay-form textarea{
  width:100%; background:transparent; border:none; color:var(--ivory);
  font-family:var(--sans); font-size:16px; outline:none; resize:vertical; min-height:84px;
  font-family:inherit;
}
.stay-form textarea::placeholder{ color:rgba(244,237,224,.4); }
.form-submit{ margin-top:28px; text-align:center; }

/* ---- Pages (single-file multi-page routing) ---- */
.page{ display:none; }
.page.active{ display:block; }

/* ---- Find us / map ---- */
.location-section{
  padding-block:clamp(76px,9vw,120px);
}
.find-us{
  display:grid; grid-template-columns:1fr; gap:0;
  border:1px solid var(--line-on-dark);
  background:var(--charcoal);
  color:var(--ivory);
  overflow:hidden;
}
@media(min-width:860px){ .find-us{ grid-template-columns:1fr 1fr; } }
.find-us .fu-text{
  padding:clamp(40px,6vw,72px);
  display:flex; flex-direction:column; justify-content:center; gap:18px;
}
.find-us h2{ color:var(--ivory); font-size:clamp(28px,3.8vw,40px); }
.find-us .fu-text p{ color:var(--ivory-2); font-size:15px; max-width:40ch; }
.find-us .fu-text .eyebrow{ color:var(--gold-soft); }
.find-us .coords{ font-family:var(--sans); font-size:13px; letter-spacing:.08em; color:var(--gold-soft); text-transform:uppercase; }
.find-us .fu-map{
  position:relative; min-height:320px; overflow:hidden;
  background:var(--charcoal-2);
}
.find-us .fu-map iframe{ width:100%; height:100%; min-height:320px; position:absolute; inset:0; border:0; }
@media(max-width:859px){ .find-us .fu-map{ min-height:360px; } .find-us .fu-map iframe{ min-height:360px; } }

/* ---- Restaurant photo hero ---- */
.rest-hero{
  position:relative; min-height:62vh; min-height:62svh;
  display:flex; align-items:flex-end;
  background-size:cover; background-position:center;
  background-color:var(--charcoal);
}
.rest-hero .rh-veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,8,6,.1) 0%, rgba(10,8,6,.45) 55%, rgba(10,8,6,.94) 100%);
}
.rest-hero .rh-content{
  position:relative; z-index:1; width:100%;
  padding:0 clamp(20px,5vw,64px) clamp(40px,6vw,72px);
}
.rest-hero h1{
  font-family:var(--serif); font-weight:500; color:var(--ivory);
  font-size:clamp(34px,5.5vw,58px); line-height:1.05;
}
.rest-hero .rh-tag{
  font-family:var(--serif); font-style:italic; color:var(--stone-2);
  font-size:clamp(14px,1.6vw,17px); margin-top:14px; max-width:44ch;
}

/* ---- Experience grid ---- */
.exp-grid{ display:grid; grid-template-columns:1fr; gap:2px; background:var(--line-on-light); }
@media(min-width:560px){ .exp-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:960px){ .exp-grid{ grid-template-columns:repeat(3,1fr); } }
.exp-card{
  background:var(--ivory); padding:44px 34px; min-height:340px;
  display:flex; flex-direction:column; justify-content:flex-end; gap:14px;
  position:relative; overflow:hidden;
}
.exp-card .scene{ position:absolute; inset:0; }
.exp-card .scene svg{ transition:transform 1.1s var(--ease); }
.exp-card:hover .scene svg{ transform:scale(1.06); }
.exp-card .veil2{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,8,6,0) 30%, rgba(10,8,6,.82) 100%);
}
.exp-card .content{ position:relative; z-index:1; color:var(--ivory); }
.exp-card h3{ font-size:23px; color:var(--ivory); }
.exp-card p{ font-size:13.5px; color:var(--stone-2); margin-top:8px; max-width:32ch; }

/* ---- Villas ---- */
.villa-list{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line-on-light); margin-top:60px; }
.villa-row{
  background:var(--ivory);
  display:grid; grid-template-columns:1fr; gap:0;
}
@media(min-width:840px){ .villa-row{ grid-template-columns:1fr 1.15fr; } }
.villa-row .scene{ aspect-ratio:16/10; }
.villa-info{ padding:clamp(28px,4vw,56px); display:flex; flex-direction:column; justify-content:center; gap:14px; }
.villa-info .top{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.villa-info h3{ font-size:clamp(24px,2.6vw,32px); }
.villa-info .price{ font-family:var(--sans); font-size:12px; letter-spacing:.1em; color:var(--gold-dim); text-transform:uppercase; }
.villa-info p{ font-size:14.5px; color:#4b4033; max-width:44ch; }
.villa-info .specs{ display:flex; gap:22px; margin-top:6px; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:#7a6c58; }

/* ---- Restaurant / tech ---- */
.tech-editorial{
  display:grid; grid-template-columns:1fr; gap:56px; align-items:center;
}
@media(min-width:920px){ .tech-editorial{ grid-template-columns:1.05fr 0.95fr; gap:80px; } }
.tech-list{ display:flex; flex-direction:column; gap:26px; margin-top:32px; }
.tech-item{ display:flex; gap:18px; align-items:flex-start; }
.tech-item .num{
  font-family:var(--serif); font-style:italic; font-size:15px; color:var(--gold-dim);
  min-width:28px;
}
.tech-item h4{ font-family:var(--sans); font-size:14.5px; letter-spacing:.02em; color:var(--ivory); font-weight:500; }
.tech-item p{ font-size:13.5px; color:var(--stone-2); margin-top:5px; max-width:40ch; }

/* ---- Packages ---- */
.pkg-grid{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line-on-light); margin-top:56px; }
@media(min-width:560px){ .pkg-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:960px){ .pkg-grid{ grid-template-columns:repeat(3,1fr); } }
.pkg-card{
  background:var(--ivory); padding:40px 32px;
  display:flex; flex-direction:column; gap:16px;
}
.pkg-card .pkg-tag{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dim); }
.pkg-card h3{ font-size:24px; }
.pkg-card .pkg-price{ font-family:var(--sans); font-size:13px; color:#7a6c58; }
.pkg-card p.desc{ font-size:14px; color:#4b4033; flex-grow:1; }
.pkg-card ul{ list-style:none; display:flex; flex-direction:column; gap:8px; margin-top:4px; }
.pkg-card li{ font-size:12.5px; color:#6b5d49; padding-left:16px; position:relative; }
.pkg-card li::before{ content:"—"; position:absolute; left:0; color:var(--gold-dim); }
.pkg-card .btn{ margin-top:10px; align-self:flex-start; }

/* ---- Additional activities (open / expandable) ---- */
.act-grid{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line-on-dark); margin-top:56px; }
@media(min-width:560px){ .act-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:960px){ .act-grid{ grid-template-columns:repeat(3,1fr); } }
.act-card{
  background:var(--charcoal); padding:36px 30px; min-height:210px;
  display:flex; flex-direction:column; justify-content:space-between; gap:20px;
}
.act-card h4{ font-size:19px; color:var(--ivory); }
.act-card p{ font-size:13px; color:var(--stone-2); margin-top:6px; }
.act-card .tag{ font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dim); }
.act-card.open{
  border:1px dashed rgba(198,154,68,.4);
  background:transparent;
  align-items:flex-start; justify-content:center; text-align:left;
}
.act-card.open .tag{ color:var(--gold); }
.act-card.open h4{ color:var(--ivory); font-family:var(--serif); font-weight:500; font-size:19px; }
.act-card.open p{ font-size:13px; color:rgba(220,212,196,.6); }

/* ---- Quote ---- */
.quote{ text-align:center; max-width:760px; margin:0 auto; }
.quote blockquote{
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(22px,3vw,30px); line-height:1.5; color:var(--ivory);
}
.quote cite{ display:block; margin-top:26px; font-style:normal; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dim); }

/* ---- Mood strip ---- */

/* ---- Footer ---- */
footer{ background:var(--black); color:var(--stone-2); }
.footer-top{
  display:grid; grid-template-columns:1fr; gap:48px;
  padding-top:clamp(64px,8vw,96px); padding-bottom:56px;
  border-bottom:1px solid var(--line-on-dark);
}
@media(min-width:820px){ .footer-top{ grid-template-columns:1.3fr 1fr 1fr 1fr; } }
.footer-brand img{ height:52px; filter:contrast(1.25); mix-blend-mode:screen; }
.footer-brand p{ margin-top:18px; font-size:13.5px; max-width:32ch; color:var(--stone-2); }
.footer-col h5{
  font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:16px;
}
.footer-col ul{ list-style:none; display:flex; flex-direction:column; gap:11px; }
.footer-col a{ font-size:14px; color:var(--stone-2); transition:color .3s; }
.footer-col a:hover{ color:var(--gold-soft); }
.footer-bottom{
  display:flex; flex-direction:column; gap:12px; align-items:center; justify-content:space-between;
  padding:26px 0 calc(26px + env(safe-area-inset-bottom,0px));
  font-size:11.5px; letter-spacing:.04em; color:rgba(220,212,196,.45);
  text-align:center;
}
@media(min-width:640px){ .footer-bottom{ flex-direction:row; text-align:left; } }

/* utility reveal (single orchestrated hero moment only) */
.fade-up{
  opacity:0; transform:translateY(16px);
  animation:fadeUp 1s var(--ease) forwards;
}
@keyframes fadeUp{ to{ opacity:1; transform:none; } }


/* Real photography and responsive finishing */
.scene img{width:100%;height:100%;object-fit:cover;display:block;}
.backdrop video{width:100%;height:100%;object-fit:cover;display:block;}
.media-photo{width:100%;height:100%;object-fit:cover;display:block;}
.nature-section{background:linear-gradient(rgba(8,21,10,.62),rgba(8,21,10,.72)),url('../assets/images/nature.jpeg') center/cover;color:var(--ivory);}
.nature-section .eyebrow{color:var(--gold-soft)}
.nature-section p{max-width:58ch}
.room-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:35px}
.room-gallery img{width:100%;height:220px;object-fit:cover}
.booking-note{color:var(--stone-2);font-size:14px;max-width:60ch;margin:18px auto 0;text-align:center}
.skip-link{position:absolute;z-index:300;top:-100px;left:16px;background:var(--ivory);color:var(--ink);padding:10px 14px}.skip-link:focus{top:12px}
.page[hidden]{display:none!important}
@media(max-width:720px){.room-gallery{grid-template-columns:repeat(2,1fr)}.room-gallery img{height:150px}.hero-content .mark{max-width:210px}}

.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}
#intro[hidden]{display:none!important}

@media(max-width:719px){.stay-form .submit-cell{min-height:56px}.stay-form .submit-cell .btn{padding:12px 20px}}
.dining-gallery{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin-top:38px}.dining-gallery img{width:100%;height:320px;object-fit:cover}@media(max-width:600px){.dining-gallery img{height:180px}}
