:root{
  --bg:#F7EEE0; --paper:#FFF8EC; --ink:#14261C; --muted:#5B695E; --gold:#A57424; --gold-2:#D4A94F;
  --line:#E2D2B6; --btn-bg:#14261C; --btn-ink:#F7EEE0; --ok:#2C6A49; --warn:#9A3B2E; --warn-bg:#F8E3DD;
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0E1912; --paper:#152519; --ink:#F3E8D5; --muted:#A8B4A9; --gold:#DDB463; --gold-2:#EBC983;
    --line:#2B3E31; --btn-bg:#DDB463; --btn-ink:#0E1912; --ok:#7CC49B; --warn:#F0A596; --warn-bg:#3A1F1A;
  }
}
:root[data-theme="dark"]{
  --bg:#0E1912; --paper:#152519; --ink:#F3E8D5; --muted:#A8B4A9; --gold:#DDB463; --gold-2:#EBC983;
  --line:#2B3E31; --btn-bg:#DDB463; --btn-ink:#0E1912; --ok:#7CC49B; --warn:#F0A596; --warn-bg:#3A1F1A;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 'Jost',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
h1,h2,h3{font-family:'Cormorant Garamond',Georgia,'Times New Roman',serif;font-weight:600;line-height:1.05;margin:0 0 .45em;letter-spacing:-.01em}
h1{font-size:clamp(2.7rem,6.2vw,4.8rem)}
h2{font-size:clamp(2rem,3.8vw,2.8rem)}
h3{font-size:1.55rem;line-height:1.15}
p{margin:0 0 1em}
a{color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
.narrow{max-width:760px}
.muted{color:var(--muted)}
.small{font-size:.92rem}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px}

/* header */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:6px 22px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
.brand{margin-right:auto;text-decoration:none;display:flex;align-items:baseline;gap:4px;line-height:1}
.brand .big{font-family:'Cormorant Garamond',Georgia,serif;font-weight:700;font-size:2.1rem}
.brand .sis{font-family:'Pinyon Script','Snell Roundhand',cursive;font-size:2.3rem;padding:0 .08em;background:linear-gradient(180deg,var(--gold-2),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.nav a.link{text-decoration:none;font-weight:500;padding:6px 2px;border-bottom:2px solid transparent}
.nav a.link:hover,.nav a.link[aria-current="page"]{border-bottom-color:var(--gold)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:.8em 1.6em;border-radius:999px;font:600 .98rem/1.2 'Jost',system-ui,sans-serif;border:1.5px solid var(--ink);cursor:pointer;text-decoration:none;color:var(--ink);background:transparent;transition:background .15s,color .15s,filter .15s}
.btn.primary{background:var(--btn-bg);color:var(--btn-ink);border-color:var(--btn-bg)}
.btn.primary:hover{filter:brightness(1.12)}
.btn.ghost:hover{background:var(--ink);color:var(--bg)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.sm{padding:.5em 1.1em;font-size:.88rem}

/* hero */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;padding-top:54px;padding-bottom:60px}
.lede{font-size:1.2rem;max-width:34em;color:var(--muted)}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0 30px}
.openings{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{font:500 .9rem 'Jost',system-ui,sans-serif;padding:.45em 1em;border-radius:999px;border:1.5px solid var(--gold);background:transparent;color:var(--ink);cursor:pointer}
.chip:hover{background:var(--gold);color:#fff}
.hero-art img{display:block;width:100%;height:auto}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .hero-art{background:#F6ECDC;border-radius:30px;padding:16px;border:1px solid var(--line)}
}
:root[data-theme="dark"] .hero-art{background:#F6ECDC;border-radius:30px;padding:16px;border:1px solid var(--line)}

/* promise strip */
.promise{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.promise div{padding:26px 16px;text-align:center;border-left:1px solid var(--line)}
.promise div:first-child{border-left:0}
.promise svg{width:34px;height:34px;stroke:var(--gold);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:8px}
.promise b{display:block;font-weight:600}

.section{padding:70px 0}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:34px 0 0;padding:0;list-style:none;counter-reset:s}
.steps li{counter-increment:s;border-top:2px solid var(--gold);padding-top:16px}
.steps li::before{content:counter(s);font-family:'Cormorant Garamond',Georgia,serif;font-size:2.4rem;font-weight:600;color:var(--gold);display:block;line-height:1;margin-bottom:6px}
.steps b{display:block;font-size:1.1rem;margin-bottom:4px}
.band{background:var(--btn-bg);color:var(--btn-ink);padding:56px 0;text-align:center}
.band h2{margin-bottom:.3em}
.band .btn{background:var(--btn-ink);color:var(--btn-bg);border-color:var(--btn-ink)}

/* services */
.page-head{padding:56px 0 18px}
.svc{display:grid;grid-template-columns:1fr auto;gap:10px 32px;align-items:center;padding:28px 0;border-top:1px solid var(--line)}
.svc h3{margin:0 0 4px}
.svc p{margin:0;color:var(--muted);max-width:40em}
details{border-top:1px solid var(--line);padding:16px 0}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:600;font-size:1.05rem}
details p{margin:10px 0 0;color:var(--muted)}

/* booking */
.book-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:start;padding-bottom:70px}
.step{margin-bottom:34px}
.step-h{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.step-h .n{flex:none;width:32px;height:32px;border-radius:50%;background:var(--gold);color:#fff;display:grid;place-items:center;font-weight:600;font-size:.95rem}
.step-h h3{margin:0}
.opts{display:flex;gap:8px;flex-wrap:wrap}
.opt{font:500 .98rem 'Jost',system-ui,sans-serif;min-width:64px;padding:.55em 1em;border-radius:999px;border:1.5px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.opt:hover{border-color:var(--gold)}
.opt[aria-pressed="true"]{background:var(--btn-bg);color:var(--btn-ink);border-color:var(--btn-bg)}
.calbox{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:18px}
.calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.calhead b{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;font-weight:700}
.iconbtn{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;font-size:1.1rem}
.iconbtn:hover:not(:disabled){border-color:var(--gold)}
.iconbtn:disabled{opacity:.35;cursor:not-allowed}
.cal,.dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.dow{margin-bottom:4px;text-align:center;font-size:.8rem;color:var(--muted);font-weight:500}
.day{aspect-ratio:1;border-radius:50%;border:1.5px solid transparent;background:transparent;color:var(--ink);font:500 .98rem 'Jost',system-ui,sans-serif;cursor:pointer;position:relative;padding:0}
.day.open{border-color:var(--gold)}
.day.open:hover{background:var(--gold);color:#fff}
.day.off{color:var(--muted);opacity:.4;cursor:not-allowed;text-decoration:line-through}
.day.sel{background:var(--btn-bg);color:var(--btn-ink);border-color:var(--btn-bg)}
.day.today::after{content:"";position:absolute;bottom:18%;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor}
.legend{display:flex;gap:18px;margin-top:12px;font-size:.85rem;color:var(--muted);flex-wrap:wrap}
.legend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.slots{display:flex;gap:8px;flex-wrap:wrap}
.slot{font:500 .95rem 'Jost',system-ui,sans-serif;padding:.5em 1em;border-radius:999px;border:1.5px solid var(--gold);background:transparent;color:var(--ink);cursor:pointer}
.slot:hover{background:var(--gold);color:#fff}
.slot[aria-pressed="true"]{background:var(--btn-bg);color:var(--btn-ink);border-color:var(--btn-bg)}
.summary{position:sticky;top:calc(env(safe-area-inset-top,0px) + 84px);background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:26px}
.summary h3{margin-bottom:10px}
.pick{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:6px}
.pick .when{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;font-weight:700;line-height:1.15}
label{display:block;font-weight:500;font-size:.92rem;margin:14px 0 6px}
input,select,textarea{width:100%;padding:.7em .85em;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;font-size:1rem}
textarea{min-height:84px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.alert{border-left:4px solid var(--warn);background:var(--warn-bg);padding:12px 16px;border-radius:8px;margin:14px 0;font-size:.95rem}
.alert ul{margin:6px 0 0;padding-left:18px}
.note{border-left:4px solid var(--gold);background:var(--paper);padding:12px 16px;border-radius:8px;margin:14px 0;font-size:.95rem}
.sent-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}
.msgbox{font:.9rem/1.5 ui-monospace,Menlo,Consolas,monospace;min-height:230px}

footer{border-top:1px solid var(--line);padding:38px 0 44px;margin-top:10px}
footer .wrap{display:flex;gap:20px 40px;justify-content:space-between;flex-wrap:wrap;align-items:flex-start}
footer a{text-decoration:none;border-bottom:1px solid var(--line)}

@media (max-width:900px){
  .hero{grid-template-columns:1fr;gap:34px;padding-top:34px}
  .book-grid{grid-template-columns:1fr}
  .summary{position:static}
  .steps{grid-template-columns:1fr;gap:26px}
  .promise{grid-template-columns:1fr 1fr}
  .promise div:nth-child(3){border-left:0}
  .promise div:nth-child(n+3){border-top:1px solid var(--line)}
  .svc{grid-template-columns:1fr}
  .section{padding:48px 0}
}
@media (max-width:520px){
  .two{grid-template-columns:1fr}
  .nav .wrap{gap:4px 16px}
  .brand .big{font-size:1.8rem}.brand .sis{font-size:2rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
