/* ===========================================================
   SUNDANCE ACRES — Cinematic Forest design system
   =========================================================== */
:root{
  --bg:#0d0f0c; --bg-2:#13160f; --bg-soft:#191d15; --bg-card:#171b13;
  --cream:#f2ede1; --cream-dim:#cfc7b6; --muted:#928e7c;
  --gold:#c2a878; --gold-lt:#d8b97f; --gold-dk:#9c8253;
  --line:rgba(214,196,160,.20); --line-strong:rgba(214,196,160,.4);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
  --pad:clamp(24px,6vw,90px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--cream);line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:300;line-height:1.02;letter-spacing:.005em}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:1240px;margin:0 auto;padding:0 var(--pad)}
.narrow{max-width:760px;margin:0 auto;padding:0 var(--pad)}

/* ---- type helpers ---- */
.over{font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);font-weight:400}
.serif em{font-style:italic;color:var(--gold-lt)}
.lead{font-size:clamp(17px,1.4vw,20px);color:var(--cream-dim);font-weight:300}
.hairline{width:64px;height:1px;background:var(--gold);border:0}
.center{text-align:center}

/* ---- buttons ---- */
.btn{display:inline-block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;padding:16px 34px;border:1px solid var(--gold);border-radius:1px;transition:.3s;cursor:pointer}
.btn-solid{background:var(--gold);color:#15170f;border-color:var(--gold)}
.btn-solid:hover{background:var(--gold-lt);border-color:var(--gold-lt)}
.btn-ghost{background:transparent;color:var(--cream);border-color:rgba(214,196,160,.5)}
.btn-ghost:hover{background:rgba(214,196,160,.1);border-color:var(--gold)}
.link-u{font-family:var(--serif);font-style:italic;font-size:21px;color:var(--gold-lt);border-bottom:1px solid var(--gold-dk);padding-bottom:2px;transition:.25s}
.link-u:hover{color:var(--cream);border-color:var(--cream)}

/* ===================== NAV ===================== */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:.4s;padding:24px 0}
.nav.scrolled{background:rgba(10,12,9,.92);backdrop-filter:blur(10px);padding:15px 0;border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between}
.brand{font-family:var(--serif);font-size:23px;letter-spacing:.06em;color:var(--cream)}
.brand span{color:var(--gold);font-style:italic}
.nav-links{display:flex;gap:30px;align-items:center}
.nav-links a{font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--cream-dim);transition:.25s;position:relative}
.nav-links a:hover,.nav-links a.active{color:var(--gold-lt)}
.nav-links a.active::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--gold)}
.nav-cta{border:1px solid var(--gold);padding:10px 20px;color:var(--cream)!important}
.nav-cta:hover{background:var(--gold);color:#15170f!important}
.burger{display:none;background:none;border:0;color:var(--cream);font-size:26px;cursor:pointer}
.mobile{position:fixed;inset:0;z-index:99;background:rgba(8,10,7,.98);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;opacity:0;pointer-events:none;transition:.4s}
.mobile.open{opacity:1;pointer-events:auto}
.mobile a{font-family:var(--serif);font-size:30px;color:var(--cream)}
.mobile a:hover{color:var(--gold-lt)}
@media(max-width:900px){.nav-links{display:none}.burger{display:block}}

/* ===================== HERO ===================== */
.hero{height:100vh;min-height:620px;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;will-change:transform}
.hero-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(120% 95% at 50% 25%,rgba(6,8,6,.25),rgba(6,8,6,.8)),linear-gradient(rgba(6,8,6,.35),rgba(6,8,6,.5))}
.hero-ct{position:relative;z-index:3;padding:0 24px;max-width:900px}
.hero h1{font-size:clamp(46px,8vw,116px);margin:26px 0}
.hero .sub{font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--cream-dim);font-weight:300;margin-bottom:40px}
.hero .hairline{margin:0 auto}
.hero-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.hero-bar{position:absolute;left:0;right:0;bottom:0;z-index:4;display:flex;justify-content:space-between;align-items:center;padding:20px var(--pad);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--cream-dim);border-top:1px solid var(--line)}
.hero-bar .blink{color:var(--gold-lt)}
/* compact hero for interior pages */
.hero.sm{height:72vh;min-height:480px}
.hero.sm h1{font-size:clamp(42px,6.5vw,86px)}

/* ===================== SECTIONS ===================== */
section{position:relative}
.sec{padding:clamp(70px,11vw,150px) 0}
.sec-head{max-width:680px;margin:0 auto clamp(40px,6vw,70px)}
.sec-head.center{text-align:center}
.sec-head h2{font-size:clamp(34px,5vw,62px);margin:18px 0}
.sec-head .lead{margin-top:10px}

/* split image + text */
.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(34px,5vw,80px)}
.split.flip .s-img{order:2}
.s-img{position:relative;overflow:hidden}
.s-img img{width:100%;height:clamp(360px,52vw,640px);object-fit:cover;transition:transform 1.2s ease}
.s-img:hover img{transform:scale(1.05)}
.s-img .cap{position:absolute;left:18px;bottom:14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--cream);text-shadow:0 1px 6px rgba(0,0,0,.7)}
.s-txt h2{font-size:clamp(30px,4vw,52px);margin:16px 0 22px}
.s-txt p{color:var(--cream-dim);margin-bottom:18px;font-weight:300}
.s-num{font-family:var(--serif);font-size:15px;color:var(--gold);letter-spacing:.2em}
@media(max-width:820px){.split{grid-template-columns:1fr;gap:30px}.split.flip .s-img{order:0}}

/* full-bleed quote / parallax band */
.band{position:relative;padding:clamp(90px,16vw,200px) 0;text-align:center;overflow:hidden}
.band-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.band-bg::after{content:'';position:absolute;inset:0;background:rgba(8,10,7,.62)}
.band .wrap{position:relative;z-index:2}
.band q{font-family:var(--serif);font-style:italic;font-size:clamp(28px,4.4vw,54px);font-weight:300;display:block;max-width:900px;margin:0 auto;quotes:none}
.band cite{display:block;margin-top:26px;font-style:normal;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-lt)}

/* stat strip */
.stats{display:flex;justify-content:space-around;flex-wrap:wrap;gap:24px;text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:46px 0}
.stats b{font-family:var(--serif);font-size:clamp(36px,5vw,56px);color:var(--gold-lt);display:block;font-weight:300}
.stats small{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* package cards */
.pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.pkg{background:var(--bg);padding:clamp(30px,3vw,46px) clamp(24px,2.4vw,38px);transition:.35s}
.pkg:hover{background:var(--bg-2)}
.pkg.feat{background:var(--bg-2);outline:1px solid var(--gold-dk);outline-offset:-1px}
.pkg .tag{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.pkg h3{font-size:30px;margin-bottom:6px}
.pkg .price{font-family:var(--serif);font-size:46px;color:var(--cream);margin:6px 0}
.pkg .price small{font-size:14px;font-family:var(--sans);color:var(--muted)}
.pkg ul{list-style:none;margin:22px 0 30px}
.pkg li{font-size:14.5px;color:var(--cream-dim);padding:9px 0;border-top:1px solid var(--line);font-weight:300}
@media(max-width:820px){.pkgs{grid-template-columns:1fr}}

/* gallery */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:10px}
.gal img{width:100%;height:100%;object-fit:cover;cursor:pointer;filter:saturate(.9) brightness(.92);transition:.5s}
.gal img:hover{filter:saturate(1.05) brightness(1.05)}
.gal .big{grid-column:span 2;grid-row:span 2}
.gal .tall{grid-row:span 2}
@media(max-width:820px){.gal{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(6,8,5,.95);display:none;align-items:center;justify-content:center;padding:30px}
.lightbox.open{display:flex}
.lightbox img{max-width:92%;max-height:88%;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lightbox .x{position:absolute;top:22px;right:30px;color:var(--cream);font-size:34px;cursor:pointer}
.gal-filter{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:40px}
.gal-filter button{background:none;border:1px solid var(--line);color:var(--cream-dim);padding:9px 20px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;border-radius:30px;cursor:pointer;transition:.25s}
.gal-filter button.on,.gal-filter button:hover{border-color:var(--gold);color:var(--gold-lt)}

/* journal cards */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.post{display:block;transition:.35s}
.post:hover{transform:translateY(-6px)}
.post .pimg{height:280px;overflow:hidden}
.post .pimg img{width:100%;height:100%;object-fit:cover;transition:transform 1s}
.post:hover .pimg img{transform:scale(1.06)}
.post .ptag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:18px 0 8px}
.post h3{font-size:24px;margin-bottom:8px;line-height:1.2}
.post p{font-size:14.5px;color:var(--muted);font-weight:300}
.feat-post{display:grid;grid-template-columns:1.2fr 1fr;gap:0;margin-bottom:60px;border:1px solid var(--line)}
.feat-post .pimg{height:auto;min-height:380px}
.feat-post .fp-body{padding:clamp(30px,4vw,60px);display:flex;flex-direction:column;justify-content:center}
.feat-post h3{font-size:clamp(28px,3vw,44px);font-family:var(--serif);font-weight:300;margin:14px 0 16px}
@media(max-width:820px){.posts{grid-template-columns:1fr}.feat-post{grid-template-columns:1fr}}

/* article body */
.article{max-width:740px;margin:0 auto;padding:clamp(50px,8vw,90px) var(--pad)}
.article p{color:var(--cream-dim);font-weight:300;margin-bottom:24px;font-size:18px}
.article h2{font-size:clamp(26px,3vw,38px);margin:44px 0 18px}
.article figure{margin:40px 0}
.article figure img{width:100%;height:auto}
.article figcaption{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:10px}
.article .drop::first-letter{font-family:var(--serif);font-size:74px;float:left;line-height:.7;padding:8px 14px 0 0;color:var(--gold-lt)}

/* ===================== ANSWER ENGINE / FAQ ===================== */
.faq-sec{background:var(--bg-2);border-top:1px solid var(--line)}
.faq{max-width:840px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line);padding:6px 0}
.faq summary{list-style:none;cursor:pointer;padding:24px 44px 24px 0;position:relative;font-family:var(--serif);font-size:clamp(20px,2.2vw,27px);font-weight:400;color:var(--cream)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:6px;top:22px;font-size:28px;color:var(--gold);font-family:var(--sans);font-weight:300;transition:.3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{padding:0 44px 26px 0;color:var(--cream-dim);font-weight:300;font-size:16.5px}
.faq .ans a{color:var(--gold-lt);border-bottom:1px solid var(--gold-dk)}

/* contact */
.cgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,70px)}
.ci{display:flex;gap:16px;margin-bottom:22px}
.ci .ic{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold);flex-shrink:0}
.ci b{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:2px}
.ci span{font-size:16px;color:var(--cream)}
form .fld{margin-bottom:18px}
form label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:7px}
form input,form textarea,form select{width:100%;padding:14px 16px;background:var(--bg-2);border:1px solid var(--line);color:var(--cream);font-family:var(--sans);font-size:15px;border-radius:1px}
form input:focus,form textarea:focus,form select:focus{outline:none;border-color:var(--gold)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
form .btn{width:100%;margin-top:8px}
@media(max-width:820px){.cgrid{grid-template-columns:1fr}}

/* booking calendar */
.cal{background:var(--bg-2);border:1px solid var(--line);padding:28px}
.cal-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.cal-h h3{font-size:24px}
.cal-h span{color:var(--gold);cursor:pointer;font-size:22px}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}
.cal-g .d{font-size:11px;color:var(--muted);text-transform:uppercase;padding:6px 0}
.cal-g .day{padding:11px 0;font-size:14px;border-radius:3px;cursor:pointer;color:var(--cream-dim);transition:.15s}
.cal-g .day:hover{background:var(--bg-soft)}
.cal-g .open{background:rgba(120,150,90,.18);color:#bcd6a0}
.cal-g .booked{color:#7a5b56;text-decoration:line-through;cursor:not-allowed}
.cal-g .sel{background:var(--gold);color:#15170f}
.cal-leg{display:flex;gap:18px;margin-top:16px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.cal-leg i{width:11px;height:11px;border-radius:2px;display:inline-block;margin-right:6px;vertical-align:-1px}

/* ===================== FOOTER ===================== */
footer{background:#090b08;border-top:1px solid var(--line);padding:clamp(60px,8vw,90px) 0 36px}
.f-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:50px}
.f-brand{font-family:var(--serif);font-size:30px;margin-bottom:14px}
.f-brand span{color:var(--gold);font-style:italic}
.f-top p{color:var(--muted);font-weight:300;max-width:320px;font-size:15px}
.f-col h4{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;font-weight:500}
.f-col a{display:block;color:var(--cream-dim);font-size:14.5px;margin-bottom:11px;font-weight:300;transition:.2s}
.f-col a:hover{color:var(--gold-lt)}
.f-bottom{border-top:1px solid var(--line);padding-top:26px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--muted)}
.socials{display:flex;gap:14px}
.socials a{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.25s}
.socials a:hover{background:var(--gold);border-color:var(--gold);color:#15170f}
.socials svg{width:16px;height:16px;fill:currentColor}
@media(max-width:820px){.f-top{grid-template-columns:1fr 1fr}.f-brand-col{grid-column:span 2}}

/* ===================== STRIPE DEPOSIT CHECKOUT ===================== */
.sco{background:#fff;color:#1a1a25;border-radius:14px;padding:26px 26px 22px;max-width:440px;width:100%;box-shadow:0 30px 70px rgba(0,0,0,.35);font-family:var(--sans)}
.sco-sum{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid #e6e6ef;margin-bottom:18px}
.sco-sum .l small{font-size:12px;color:#6a6a80;letter-spacing:.04em}
.sco-sum .l b{display:block;font-size:15px;font-weight:500;margin-top:3px;color:#1a1a25}
.sco-sum .l span{font-size:13px;color:#6a6a80}
.sco-sum .amt{font-size:26px;font-weight:600;color:#1a1a25;white-space:nowrap}
.sco .exp{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.sco .exp button{border:0;border-radius:7px;padding:11px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}
.sco .ap{background:#000;color:#fff}
.sco .gp{background:#fff;color:#3c4043;border:1px solid #dadce0!important}
.sco .lk{grid-column:span 2;background:#00d66f;color:#011e0f}
.sco .div{display:flex;align-items:center;gap:12px;color:#8a8a9c;font-size:12px;margin:14px 0}
.sco .div::before,.sco .div::after{content:'';flex:1;height:1px;background:#e6e6ef}
.sco-fld{margin-bottom:12px}
.sco-fld label{font-size:12.5px;color:#3a3a4d;font-weight:500;display:block;margin-bottom:5px}
.sco-fld .inp{position:relative}
.sco-fld input{width:100%;padding:11px 13px;border:1px solid #d7d7e0;border-radius:7px;font-size:14.5px;color:#1a1a25;background:#fff;font-family:var(--sans);box-shadow:0 1px 2px rgba(10,10,40,.04)}
.sco-fld input:focus{outline:none;border-color:#635bff;box-shadow:0 0 0 3px rgba(99,91,255,.18)}
.sco-fld .brands{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:18px;letter-spacing:2px}
.sco-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sco .pay{width:100%;background:#635bff;color:#fff;border:0;border-radius:8px;padding:14px;font-size:15px;font-weight:600;cursor:pointer;margin-top:6px;transition:.2s}
.sco .pay:hover{background:#544dff}
.sco .secure{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:14px;font-size:12px;color:#8a8a9c}
.sco .secure b{color:#635bff;font-weight:600}
.sco .ok{text-align:center;padding:18px 6px}
.sco .ok .ring{width:58px;height:58px;border-radius:50%;background:#e7fff2;color:#00b368;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 16px}
.sco .ok h4{font-size:21px;font-weight:600;color:#1a1a25;margin-bottom:8px;font-family:var(--sans)}
.sco .ok p{font-size:14px;color:#6a6a80}
.reserve-note{font-size:13px;color:var(--muted);margin-top:18px}
.reserve-note b{color:var(--gold-lt);font-weight:500}

/* ===================== SCROLL REVEAL ===================== */
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.12s}.reveal.d2{transition-delay:.24s}.reveal.d3{transition-delay:.36s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.hero-bg{transform:none!important}}

/* ===================== LIGHT THEME (toggle) ===================== */
:root[data-theme="light"]{
  --bg:#f7f3ea; --bg-2:#efe7d8; --bg-soft:#e9e0cf; --bg-card:#fffdf8;
  --cream:#23291f; --cream-dim:#4c5142; --muted:#857f6c;
  --gold:#9c7a3c; --gold-lt:#866024; --gold-dk:#c6ad77;
  --line:rgba(35,41,31,.14); --line-strong:rgba(35,41,31,.30);
}
body{transition:background .4s ease,color .4s ease}
/* keep text light over hero & band images in both themes */
:root[data-theme="light"] .hero,
:root[data-theme="light"] .band{
  --cream:#f4efe3; --cream-dim:#d3ccbb; --muted:#b3ad9c;
  --gold:#c8ab78; --gold-lt:#dcbd82;
}
/* nav: light text at top (over hero image), dark once scrolled (light bar) */
:root[data-theme="light"] .nav{ --cream:#f5f0e5; --cream-dim:#ece5d4; --gold:#d8b97f; }
:root[data-theme="light"] .nav.scrolled{
  background:rgba(247,243,234,.94); border-bottom-color:var(--line);
  --cream:#23291f; --cream-dim:#4c5142; --gold:#9c7a3c;
}
:root[data-theme="light"] footer{ background:#ece3d1; }
:root[data-theme="light"] .mobile{ background:rgba(247,243,234,.98); }
:root[data-theme="light"] .mobile a{ color:#23291f; }
.theme-tog{ background:none; border:1px solid var(--line); color:var(--cream-dim); width:38px; height:38px; border-radius:50%; cursor:pointer; font-size:15px; line-height:1; display:inline-flex; align-items:center; justify-content:center; transition:.25s; flex-shrink:0; }
.theme-tog:hover{ border-color:var(--gold); color:var(--gold-lt); }
