/* ---------- /book-call ---------- */
:root{ --card:#FBFAF6; --line:rgba(0,0,0,.14); --soft:rgba(0,0,0,.05); --accent:#000; --accent-ink:#fff; --avail:rgba(168,131,58,.16); --err:#B42318; }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --card:#26221D; --line:rgba(255,255,255,.16); --soft:rgba(255,255,255,.06); --accent:#EEE8DA; --accent-ink:#141210; --avail:rgba(226,190,110,.18); --err:#F97066; }
}
:root[data-theme="dark"]{ --card:#26221D; --line:rgba(255,255,255,.16); --soft:rgba(255,255,255,.06); --accent:#EEE8DA; --accent-ink:#141210; --avail:rgba(226,190,110,.18); --err:#F97066; }

body.book-page{background-color:var(--paper);color:var(--ink);min-height:100vh;
  background-image:linear-gradient(var(--paper-line) 1px,transparent 1px),linear-gradient(90deg,var(--paper-line) 1px,transparent 1px);background-size:96px 96px}
.book-page .topnav{color:var(--ink);background:color-mix(in srgb,var(--paper) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.book-page .topnav .pill-cta{background:var(--accent);color:var(--accent-ink)}

.book{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:56px;align-items:start;max-width:1180px;margin:0 auto;
  padding:calc(120px + env(safe-area-inset-top,0px)) 24px 96px}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--gold);margin:0 0 10px}
.book-intro{position:sticky;top:110px}
.book-intro h1{display:flow-root;font-family:var(--serif);font-weight:400;padding-top:.32em;font-size:clamp(48px,6vw,84px);line-height:.95;margin:0 0 22px}
.book-intro h1 .h-init{color:var(--gold)}
.lede{font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.25;margin:0 0 26px;max-width:28ch}
.facts{list-style:none;margin:0 0 26px;padding:0;border-top:1px solid var(--line)}
.facts li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.facts span{color:var(--muted)}
.direct{font-size:14px;color:var(--muted);margin:0}
.direct a{color:var(--ink);font-weight:600}

.book-card{background:var(--card);border-radius:22px;padding:34px;box-shadow:0 1px 0 rgba(0,0,0,.05),0 30px 70px rgba(40,30,10,.14);min-height:560px;position:relative}
.book-card h2{font-family:var(--serif);font-weight:400;font-size:34px;line-height:1.05;margin:0 0 26px}

/* calendar + times */
.picker{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:32px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-weight:600;font-size:17px}
.nav-btn{width:40px;height:40px;border-radius:50%;border:0;background:var(--soft);color:var(--ink);font-size:22px;line-height:1;cursor:pointer}
.nav-btn:disabled{opacity:.3;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;text-align:center}
.cal-grid .wd{font-size:12px;font-weight:600;color:var(--muted);padding:4px 0 8px}
.day{aspect-ratio:1;border-radius:50%;border:0;background:none;color:var(--muted);opacity:.45;font:inherit;font-size:15px;cursor:default;max-width:52px;margin:0 auto;width:100%}
.day.on{opacity:1;color:var(--ink);background:var(--avail);font-weight:700;cursor:pointer}
.day.on:hover{box-shadow:inset 0 0 0 1.5px var(--gold)}
.day.sel{background:var(--accent);color:var(--accent-ink)}
.day.today{text-decoration:underline;text-underline-offset:4px}
.tz{display:flex;flex-direction:column;gap:6px;margin-top:22px;font-size:13px;font-weight:600}
.tz select{font:inherit;font-weight:400;font-size:14px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);max-width:100%}

.times-head{margin:6px 0 14px;font-weight:600;font-size:15px;min-height:1.5em}
.times-list{display:flex;flex-direction:column;gap:10px;max-height:420px;overflow-y:auto;padding-right:6px}
.slot{display:flex;gap:8px}
.slot button{flex:1;min-height:48px;border-radius:12px;font:inherit;font-weight:600;font-size:15px;cursor:pointer;transition:background .15s,color .15s}
.slot .t{border:1.5px solid var(--gold);background:none;color:var(--ink)}
.slot .t:hover{background:var(--avail)}
.slot.sel .t{background:var(--muted);border-color:var(--muted);color:var(--card)}
.slot .go{display:none;border:0;background:var(--accent);color:var(--accent-ink)}
.slot.sel .go{display:block}
.status{font-size:14px;color:var(--muted);margin:18px 0 0}
.status:empty{display:none}

/* details form */
.back{position:absolute;top:26px;right:28px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--ink);font-size:20px;cursor:pointer}
.chosen{margin:-14px 0 26px;font-weight:600;color:var(--gold)}
form{display:flex;flex-direction:column;gap:20px;max-width:640px}
.row.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}
.field>span,.field legend{font-size:14px;font-weight:600;padding:0}
.field legend{margin-bottom:10px}
.field em{font-weight:400;color:var(--muted)}
.field input,.field textarea,.phone-row select{font:inherit;font-size:16px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:transparent;color:var(--ink);width:100%}
.field textarea{resize:vertical}
.field input:focus,.field textarea:focus,.phone-row select:focus{outline:2px solid var(--gold);outline-offset:0;border-color:transparent}
.phone-row{display:flex;gap:8px}
.phone-row select{width:auto;flex:none;max-width:42%}
.choices{display:flex;flex-direction:column;gap:8px}
.choices label{display:flex;align-items:center;gap:10px;font-size:15px;cursor:pointer}
.choices input{width:18px;height:18px;accent-color:var(--accent);margin:0}
.choices.chips{flex-direction:row;flex-wrap:wrap}
.chips label{padding:8px 14px;border-radius:999px;border:1px solid var(--line);gap:8px}
.chips label:has(input:checked){background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.chips input{position:absolute;opacity:0;pointer-events:none}
.field.bad input,.field.bad textarea,.field.bad .phone-row input{border-color:var(--err)}
.field .msg{color:var(--err);font-size:13px;font-weight:500}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{color:var(--err);font-size:14px;margin:0}
.form-error:empty{display:none}
.submit{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;min-height:52px;padding:0 28px;border-radius:999px;border:0;
  background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:600;font-size:16px;text-decoration:none;cursor:pointer}
.submit:hover{background:var(--gold);color:#fff}
.submit:disabled{opacity:.5;cursor:wait}

/* done */
.done h2{font-size:clamp(34px,4vw,52px)}
.done .submit{margin:4px 0 22px}
.done .home{display:inline-block;margin-top:26px;font-size:14px;font-weight:600;text-decoration:none}

@media (max-width:899px){
  .book{grid-template-columns:minmax(0,1fr);gap:32px;padding-top:calc(96px + env(safe-area-inset-top,0px))}
  .book-intro{position:static}
  .lede{font-size:20px}
  .book-card{padding:24px 18px;border-radius:18px}
  .picker{grid-template-columns:minmax(0,1fr)}
  .times-list{max-height:none;overflow:visible}
  .row.two{grid-template-columns:1fr}
  .back{top:18px;right:16px}
}
