:root{
  --paper:#EFEDE5;
  --surface:#F8F7F2;
  --surface-2:#E6E4DA;
  --ink:#2B302A;
  --ink-soft:#5E6459;
  --ink-faint:#8B9084;
  --sage:#7B8A72;
  --sage-deep:#5E6B57;
  --stone:#C0A67F;
  --rule:rgba(43,48,42,.16);
  --rule-soft:rgba(43,48,42,.09);
  --display:"Italiana",Georgia,"Times New Roman",serif;
  --script:"Pinyon Script","Snell Roundhand",cursive;
  --body:"Karla",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --gutter:clamp(18px,5vw,64px);
  --maxw:1080px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#1B1F1A; --surface:#232821; --surface-2:#2C322A;
    --ink:#E9E8DF; --ink-soft:#B4B8AC; --ink-faint:#878C80;
    --sage:#A6B79A; --sage-deep:#C2D0B6; --stone:#D2B78F;
    --rule:rgba(233,232,223,.18); --rule-soft:rgba(233,232,223,.10);
  }
}
:root[data-theme="dark"]{
  --paper:#1B1F1A; --surface:#232821; --surface-2:#2C322A;
  --ink:#E9E8DF; --ink-soft:#B4B8AC; --ink-faint:#878C80;
  --sage:#A6B79A; --sage-deep:#C2D0B6; --stone:#D2B78F;
  --rule:rgba(233,232,223,.18); --rule-soft:rgba(233,232,223,.10);
}

*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--sage);outline-offset:3px;border-radius:2px}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--sage);margin:0 0 14px}
h2{font-family:var(--display);font-weight:400;font-size:clamp(28px,4.4vw,42px);
   line-height:1.14;margin:0 0 18px;text-wrap:balance}
h3{font-family:var(--display);font-weight:400;font-size:clamp(20px,2.6vw,25px);
   line-height:1.2;margin:0 0 10px;text-wrap:balance}
p{margin:0 0 16px;max-width:64ch;color:var(--ink-soft)}
p strong{color:var(--ink);font-weight:600}
section{padding-block:clamp(52px,8vw,92px)}

/* masthead */
.masthead{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;
  background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--rule-soft)}
.masthead-in{display:flex;align-items:center;gap:16px;justify-content:space-between;padding-block:11px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;min-width:0}
.brand .mark{width:26px;height:auto;color:var(--sage);flex:none}
.brand-name{font-family:var(--script);font-size:23px;line-height:1;color:var(--ink);white-space:nowrap}
.brand-sub{display:block;font-size:8.5px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ink-faint);margin-top:3px}
nav{display:flex;align-items:center;gap:clamp(12px,2.2vw,26px)}
nav a{font-size:12px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none}
nav a:hover{color:var(--sage-deep)}
.nav-hide{display:none}
@media (min-width:720px){.nav-hide{display:inline}}

/* hero */
.hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-end;
  width:100%;max-width:100%;aspect-ratio:4/5;min-height:540px;max-height:88vh;
  padding-block:clamp(34px,6vw,60px)}
@media (min-width:700px){.hero{aspect-ratio:16/10;max-height:78vh}}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:50% 45%;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to bottom,rgba(26,30,25,.30) 0%,rgba(26,30,25,.10) 24%,
             rgba(26,30,25,.50) 58%,rgba(26,30,25,.84) 100%)}
.hero-in{color:#F7F5EF;text-align:center;width:100%}
.hero .mark{width:clamp(54px,7.5vw,74px);height:auto;margin:0 auto 16px;color:#F3F0E7;
  filter:drop-shadow(0 1px 8px rgba(20,24,19,.55))}
.hero-script{font-family:var(--script);font-size:clamp(44px,9.5vw,84px);line-height:.95;margin:0;
  text-shadow:0 2px 22px rgba(20,24,19,.55)}
.hero-at{font-family:var(--display);font-size:clamp(14px,2.5vw,20px);letter-spacing:.34em;
  text-transform:uppercase;margin:14px 0 0;text-shadow:0 1px 14px rgba(20,24,19,.6)}
.hero-line{width:44px;height:1px;background:rgba(247,245,239,.6);margin:20px auto}
.hero p{color:rgba(247,245,239,.95);max-width:36ch;margin:0 auto;font-size:15.5px;
  text-shadow:0 1px 12px rgba(20,24,19,.6)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:26px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--body);
  font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:14px 26px;
  border-radius:1px;cursor:pointer;text-decoration:none;border:1px solid transparent;
  transition:background .18s,color .18s,border-color .18s}
.btn-solid{background:var(--sage-deep);color:#F7F5EF;border-color:var(--sage-deep)}
.btn-solid:hover{background:var(--ink);border-color:var(--ink)}
.btn-ghost{border-color:rgba(247,245,239,.7);color:#F7F5EF}
.btn-ghost:hover{background:rgba(247,245,239,.16)}
.btn-line{border-color:var(--rule);color:var(--ink)}
.btn-line:hover{border-color:var(--sage);color:var(--sage-deep)}

/* facts */
.facts{background:var(--surface);border-block:1px solid var(--rule-soft)}
.facts-in{display:grid;gap:26px 34px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));padding-block:30px}
.fact dt{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:5px}
.fact dd{margin:0;font-family:var(--display);font-size:20px;line-height:1.25;color:var(--ink)}
.fact dd small{display:block;font-family:var(--body);font-size:12.5px;color:var(--ink-soft);
  letter-spacing:0;margin-top:3px}

/* two-column */
.split{display:grid;gap:clamp(28px,5vw,58px);align-items:center;grid-template-columns:1fr}
@media (min-width:860px){
  .split{grid-template-columns:1fr 1fr}
  .split.narrow-first{grid-template-columns:.92fr 1.08fr}
  .split.flip > .figure{order:-1}
}
.figure{position:relative;margin:0}
.figure img{width:100%;border-radius:1px}
.figure figcaption{font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-faint);margin-top:10px}

/* light */
.light{background:var(--surface)}
.hours{list-style:none;margin:26px 0 0;padding:0}
.hours li{display:grid;grid-template-columns:minmax(78px,auto) 1fr;gap:18px;padding:16px 0;
  border-top:1px solid var(--rule-soft);align-items:baseline}
.hours li:last-child{border-bottom:1px solid var(--rule-soft)}
.hours time{font-family:var(--display);font-size:17px;color:var(--sage-deep);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.hours span{color:var(--ink-soft);font-size:15px}
.hours b{color:var(--ink);font-weight:600}

/* specs */
.specs{margin:0;padding:0}
.specs div{display:grid;grid-template-columns:minmax(104px,34%) 1fr;gap:16px;padding:13px 0;
  border-bottom:1px solid var(--rule-soft)}
.specs dt{font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--ink-faint);padding-top:2px}
.specs dd{margin:0;color:var(--ink);font-size:15px}

/* rates */
.rates{display:grid;gap:22px;grid-template-columns:1fr;margin-top:34px}
@media (min-width:760px){.rates{grid-template-columns:1fr 1fr}}
.rate{background:var(--surface);border:1px solid var(--rule-soft);padding:clamp(24px,3.4vw,34px);
  display:flex;flex-direction:column}
.rate .kicker{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);margin-bottom:12px}
.rate ul{list-style:none;margin:2px 0 22px;padding:0;display:grid;gap:9px}
.rate li{position:relative;padding-left:24px;font-size:14.5px;line-height:1.6;
  color:var(--ink-soft)}
.rate li::before{content:"";position:absolute;left:0;top:.58em;width:5px;height:5px;
  border:1px solid var(--sage);border-radius:50%}
.price{margin-top:auto;padding-top:18px;border-top:1px solid var(--rule-soft)}
.price b{font-family:var(--display);font-size:29px;font-weight:400;color:var(--ink);display:block;line-height:1.1}
.price small{font-size:12.5px;color:var(--ink-faint);letter-spacing:.05em}

.headline-rate{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin:4px 0 6px;
  padding:22px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.headline-rate b{font-family:var(--display);font-weight:400;font-size:clamp(46px,8vw,68px);
  line-height:1;color:var(--ink)}
.headline-rate span{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-deep)}
.headline-rate small{display:block;margin-top:9px;font-size:14.5px;letter-spacing:0;
  text-transform:none;color:var(--ink-soft);max-width:44ch;line-height:1.55}

/* gallery */
.gallery{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:700px){.gallery{grid-template-columns:1fr 1fr}}

/* booking */
.book{background:var(--surface-2)}
.form{display:grid;gap:18px;grid-template-columns:1fr;margin-top:30px;max-width:720px}
@media (min-width:640px){.form{grid-template-columns:1fr 1fr}.form .full{grid-column:1/-1}}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}
.field input,.field select,.field textarea{font-family:var(--body);font-size:15px;color:var(--ink);
  background:var(--surface);border:1px solid var(--rule);border-radius:1px;padding:11px 13px;width:100%}
.field textarea{min-height:104px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--sage);outline:none}
.form-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:4px}
.hint{font-size:12.5px;color:var(--ink-faint);margin:0}
.outbox{border:1px solid var(--rule);background:var(--surface);padding:18px;margin-top:22px;max-width:720px}
.outbox h4{font-family:var(--display);font-weight:400;font-size:19px;margin:0 0 4px}
.outbox p{font-size:13px;margin:0 0 12px}
.outbox textarea{width:100%;min-height:190px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:12.5px;line-height:1.6;color:var(--ink);background:var(--paper);
  border:1px solid var(--rule-soft);border-radius:1px;padding:12px;resize:vertical}
.outbox .row{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;align-items:center}
.copied{font-size:12px;color:var(--sage-deep);letter-spacing:.08em}

/* notes */
.notes{columns:2 240px;column-gap:40px;margin-top:8px;list-style:none;padding:0}
.notes li{break-inside:avoid;margin-bottom:13px;font-size:14.5px;color:var(--ink-soft)}
.notes li::before{content:"\2014";color:var(--sage);margin-right:9px}

/* footer */
footer{border-top:1px solid var(--rule-soft);background:var(--surface);padding-block:44px 52px;text-align:center}
footer .mark{width:52px;height:auto;margin:0 auto 16px;color:var(--sage)}
.f-script{font-family:var(--script);font-size:32px;line-height:1;margin:0}
.f-at{font-family:var(--display);font-size:12px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--ink-faint);margin:10px 0 18px}
.f-contact{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center;font-size:14px;color:var(--ink-soft)}
.f-contact a{color:var(--sage-deep);text-decoration:none;text-underline-offset:3px}
.f-contact a:hover{text-decoration:underline}
.f-fine{font-size:11.5px;color:var(--ink-faint);margin:22px 0 0;letter-spacing:.06em}

/* ---------- seasonal block ---------- */
:root{--holly:#9E2B23}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--holly:#D9796F}}
:root[data-theme="dark"]{--holly:#D9796F}

.holiday{background:var(--surface);border-bottom:1px solid var(--rule-soft)}
.eyebrow.holly,.kicker.holly{color:var(--holly)}
.holiday-shots{display:grid;gap:12px;grid-template-columns:1fr;margin:30px 0 clamp(34px,5vw,48px)}
@media (min-width:700px){
  .holiday-shots{grid-template-columns:1fr 1fr}
  .holiday-shots .wide{grid-column:1 / -1}
}
.holiday-shots img{width:100%;height:100%;object-fit:cover;border-radius:1px}
.holiday-shots .wide img{max-height:460px}

.offers{display:grid;gap:22px;grid-template-columns:1fr}
@media (min-width:820px){.offers{grid-template-columns:1fr 1fr;align-items:start}}
.offer{background:var(--paper);border:1px solid var(--rule-soft);
  padding:clamp(24px,3.4vw,34px);display:flex;flex-direction:column}
.offer.feature{border-color:var(--holly);border-width:1.5px}
.offer .kicker{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--sage);margin:0 0 10px;font-weight:600}
.offer h3{margin-bottom:6px}
.offer .when{font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-faint);margin:0 0 18px}
.offer ul{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:9px}
.offer li{position:relative;padding-left:24px;font-size:14.5px;line-height:1.6;
  color:var(--ink-soft)}
.offer li::before{content:"";position:absolute;left:0;top:.58em;width:5px;height:5px;
  border:1px solid var(--sage);border-radius:50%}
.offer li strong{color:var(--ink);font-weight:600}
.offer.feature li::before{border-color:var(--holly)}
.offer .price{margin-top:auto;padding-top:16px;border-top:1px solid var(--rule-soft);
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.offer .price b{font-family:var(--display);font-size:34px;font-weight:400;color:var(--ink);
  line-height:1}
.offer.feature .price b{color:var(--holly)}
.offer .price small{font-size:12.5px;color:var(--ink-faint);letter-spacing:.05em}
.offer .btn{align-self:flex-start}
.offer .fineprint{font-size:12.5px;color:var(--ink-faint);margin:14px 0 0}
