/* ===== BOOKING PAGE — extends styles.css ===== */
.book-page{padding:clamp(28px,5vh,56px) 0 clamp(64px,8vh,110px);min-height:calc(100dvh - var(--header-h))}
.book-intro{max-width:640px;margin:0 auto clamp(28px,4vh,44px);text-align:center}
.book-intro h1{font-size:clamp(30px,4vw,46px);margin:14px 0 12px}
.book-intro p{color:var(--ink-60);font-size:16px}

/* step tracker */
.tracker{max-width:760px;margin:0 auto clamp(32px,4vh,48px);display:flex;align-items:center}
.tk-step{display:flex;flex-direction:column;align-items:center;gap:8px;flex:0 0 auto;text-align:center}
.tk-dot{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--ink-30);display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:var(--ink-60);background:var(--paper);transition:all .3s}
.tk-label{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-60);transition:color .3s;white-space:nowrap}
.tk-line{flex:1 1 auto;height:1.5px;background:var(--ink-30);margin:0 8px;position:relative;top:-13px;transition:background .3s}
.tk-step.done .tk-dot{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.tk-step.active .tk-dot{background:var(--green-hi);border-color:var(--green-hi);color:var(--ink);box-shadow:0 0 0 5px rgba(107,181,229,.15)}
.tk-step.active .tk-label{color:var(--ink)}
.tk-line.done{background:var(--ink)}
@media(max-width:560px){.tk-label{display:none}.tk-line{top:0}}

/* layout: panel + summary */
.book-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(24px,3vw,40px);max-width:1080px;margin:0 auto;align-items:start}
@media(max-width:900px){.book-grid{grid-template-columns:1fr}}

/* main panel = job card look */
.panel{background:var(--white);border:1px solid var(--ink);border-radius:10px;box-shadow:8px 8px 0 rgba(11,29,20,.1);overflow:hidden}
.panel-head{background:var(--ink);color:var(--paper);padding:16px 26px;display:flex;justify-content:space-between;align-items:center}
.panel-head .mono{color:rgba(241,243,239,.75)}
.panel-body{padding:clamp(26px,3vw,38px)}
.step{display:none;animation:stepIn .4s cubic-bezier(.2,.8,.3,1)}
.step.on{display:block}
@keyframes stepIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.step{animation:none}}
.step h2{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(22px,2.4vw,30px);letter-spacing:-.02em;margin-bottom:6px}
.step .lede{color:var(--ink-60);font-size:14.5px;margin-bottom:26px}

/* option cards (service + time) */
.opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.opt-grid{grid-template-columns:1fr}}
.opt{border:1px solid var(--line);border-radius:8px;padding:18px 18px;cursor:pointer;transition:border-color .2s,background .2s,transform .2s;background:var(--paper);display:flex;gap:14px;align-items:flex-start}
.opt:hover{transform:translateY(-2px);border-color:var(--ink-30)}
.opt.sel{border-color:var(--green);background:#fff;box-shadow:inset 0 0 0 1px var(--green)}
.opt .ic{width:40px;height:40px;flex-shrink:0;border-radius:9px;background:rgba(107,181,229,.12);display:flex;align-items:center;justify-content:center}
.opt .ic svg{width:22px;height:22px;stroke:var(--green-deep,#16A34A)}
.opt .ic svg{stroke:var(--green)}
.opt h4{font-family:'Archivo',sans-serif;font-weight:700;font-size:15.5px;margin-bottom:3px}
.opt p{font-size:12.5px;color:var(--ink-60);line-height:1.4}
.opt .tick{margin-left:auto;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--ink-30);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s}
.opt.sel .tick{background:var(--green);border-color:var(--green)}
.opt.sel .tick::after{content:"✓";color:#fff;font-size:12px;font-weight:700}

/* day/slot pickers */
.pick-label{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60);margin:22px 0 12px;display:block}
.pick-label:first-child{margin-top:0}
.chip-row{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:1px solid var(--line);background:var(--paper);border-radius:7px;padding:12px 16px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;text-align:center;min-width:76px}
.chip:hover{border-color:var(--ink-30);transform:translateY(-2px)}
.chip.sel{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chip .d{display:block;font-family:'Archivo',sans-serif;font-weight:700;font-size:15px}
.chip .m{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.06em;opacity:.7;margin-top:2px}

/* fields */
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:520px){.f-row{grid-template-columns:1fr}}
.f{margin-bottom:16px}
.f label{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-60);margin-bottom:6px}
.f input,.f select,.f textarea{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:7px;background:var(--paper);font-family:'Inter',sans-serif;font-size:14.5px;color:var(--ink);appearance:none}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--green);background:#fff}
.f .err{color:#B91C1C;font-size:12px;margin-top:5px;display:none}
.f.invalid input,.f.invalid select{border-color:#B91C1C}
.f.invalid .err{display:block}

/* nav buttons */
.step-nav{display:flex;justify-content:space-between;gap:14px;margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}
.step-nav .btn{padding:15px 28px}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink-60)}
.btn-ghost:hover{border-color:var(--ink);color:var(--ink)}
.btn[disabled]{opacity:.4;pointer-events:none}

/* confirm review */
.review{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.review-row{display:flex;justify-content:space-between;gap:16px;padding:15px 18px;border-bottom:1px solid var(--line);font-size:14.5px}
.review-row:last-child{border-bottom:none}
.review-row .k{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60);padding-top:2px}
.review-row .v{font-weight:600;text-align:right}
.review-row .v.muted{color:var(--ink-60);font-weight:400}
.review-edit{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--green);cursor:pointer;border:none;background:none;margin-top:4px}

/* done state */
.done-state{text-align:center;padding:20px 0}
.done-state .badge{width:64px;height:64px;border-radius:50%;background:var(--green-hi);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:30px;color:var(--ink)}
.done-state h2{margin-bottom:10px}
.done-state p{color:var(--ink-60);max-width:42ch;margin:0 auto 24px}
.done-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ===== summary rail ===== */
.summary{position:sticky;top:calc(var(--header-h) + 20px);display:flex;flex-direction:column;gap:16px}
.sum-card{background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.sum-head{background:var(--paper-2);padding:14px 20px;border-bottom:1px solid var(--line)}
.sum-head .mono{color:var(--ink-60)}
.sum-body{padding:20px}
.sum-line{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}
.sum-line:last-child{border-bottom:none}
.sum-line .k{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60)}
.sum-line .v{font-weight:600;text-align:right;color:var(--ink)}
.sum-line .v.empty{color:var(--ink-30);font-weight:400;font-style:italic}
.sum-foot{background:var(--ink);color:var(--paper);padding:16px 20px;font-size:13px}
.sum-foot .mono{color:var(--green-hi);display:block;margin-bottom:4px}

/* trust notes */
.trust-card{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:20px}
.trust-card .mono{color:var(--ink-60);display:block;margin-bottom:14px}
.trust-note{display:flex;gap:12px;padding:9px 0;font-size:13.5px}
.trust-note svg{width:18px;height:18px;stroke:var(--green);flex-shrink:0;margin-top:2px}
.trust-note strong{font-weight:600}
.trust-note span{color:var(--ink-60)}
