/* AiHealth.clinic /book: two booking paths + first-visit assistant.
   Uses the site's tokens from /assets/style.css. Mobile-first. */
.ba-vh { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.ba [hidden], #book-assistant[hidden] { display:none !important; }

.book-paths { display:grid; grid-template-columns:1fr; gap:14px; margin-top:28px; max-width:760px; }
.book-path { background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:18px; display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
.book-path.primary { border-color:var(--teal-deep); box-shadow:0 0 0 1px var(--teal-deep) inset; }
.book-path-label { font-family:var(--mono); font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--teal-deep); }
.book-path-note { font-size:0.95rem; color:var(--ink-soft); }
.book-path .btn { width:100%; justify-content:center; min-height:48px; }
@media (min-width:700px) {
  .book-paths { grid-template-columns:1.2fr 1fr; }
  .book-path .btn { width:auto; }
}

.ba-sec { padding-bottom:clamp(36px,5vh,60px); scroll-margin-top:16px; }
.ba { max-width:760px; background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius); padding:22px 18px; }
.ba h2 { margin:12px 0 8px; }
.ba-note { font-size:0.95rem; color:var(--ink-soft); border-left:3px solid var(--teal); padding-left:12px; margin:8px 0 18px; }
.ba-progress { font-family:var(--mono); font-size:12px; letter-spacing:0.06em; color:var(--ink-soft); margin-bottom:10px; }
.ba-step { border:0; padding:0; margin:0; min-width:0; }
.ba-q { display:block; font-size:1.2rem; font-weight:600; letter-spacing:-0.02em; line-height:1.3; margin-bottom:12px; color:var(--ink); }
.ba-hint { font-size:0.92rem; color:var(--ink-soft); margin:-4px 0 10px; }
.ba-input { width:100%; font:inherit; font-size:17px; color:var(--ink); background:#fff; border:1px solid #6f6b63; border-radius:var(--radius); padding:13px 14px; min-height:48px; }
.ba-input[aria-invalid="true"] { border-color:var(--bad); box-shadow:0 0 0 1px var(--bad) inset; }
.ba-opts { display:grid; gap:10px; }
.ba-opt { display:flex; align-items:center; gap:12px; padding:12px 14px; min-height:48px; background:#fff; border:1px solid #b9b3a8; border-radius:var(--radius); cursor:pointer; font-size:1rem; color:var(--ink); }
.ba-opt input { width:20px; height:20px; flex:none; accent-color:var(--teal-deep); margin:0; }
.ba-opt:has(input:checked) { border-color:var(--teal-deep); box-shadow:0 0 0 1px var(--teal-deep) inset; background:#eef7f5; }
.ba-sub { margin-top:14px; }
.ba-sub label { display:block; font-size:0.95rem; color:var(--ink-soft); margin-bottom:6px; }
.ba-err { color:var(--bad); font-size:0.95rem; margin-top:8px; min-height:1px; }
.ba-err:empty { margin:0; }
.ba-nav { display:flex; gap:10px; margin-top:20px; flex-wrap:wrap; }
.ba-nav .btn { min-height:48px; justify-content:center; flex:1 1 auto; }
.ba-review { margin:4px 0 16px; border-top:1px solid var(--line); }
.ba-review > div { display:grid; grid-template-columns:1fr auto; gap:2px 12px; padding:10px 0; border-bottom:1px solid var(--line); align-items:center; }
.ba-review dt { font-family:var(--mono); font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); grid-column:1; }
.ba-review dd { grid-column:1; font-size:1rem; color:var(--ink); overflow-wrap:anywhere; }
.ba-edit { grid-column:2; grid-row:1 / span 2; font:inherit; font-family:var(--mono); font-size:12.5px; color:var(--teal-deep); background:none; border:1px solid var(--line); border-radius:var(--radius); padding:8px 12px; min-height:40px; cursor:pointer; }
.ba-edit:hover { border-color:var(--teal-deep); }
.ba-send { width:100%; justify-content:center; min-height:52px; font-size:14px; }
.ba-send-help { font-size:0.92rem; color:var(--ink-soft); margin-top:10px; }
.ba-call { display:inline-block; margin-top:12px; font-weight:500; color:var(--teal-deep); border-bottom:1px solid currentColor; padding:4px 0; }
.ba-done { margin-top:14px; padding:12px 14px; background:#eef7f5; border:1px solid var(--teal-deep); border-radius:var(--radius); color:var(--ink); font-size:0.97rem; }

/* Visible keyboard focus for everything in the booking block */
.book-paths a:focus-visible, .book-paths button:focus-visible,
.ba a:focus-visible, .ba button:focus-visible, .ba input:focus-visible,
.ba [tabindex="-1"]:focus-visible {
  outline:3px solid var(--teal-deep); outline-offset:2px;
}
.ba-opt:has(input:focus-visible) { outline:3px solid var(--teal-deep); outline-offset:2px; }
.ba-q[tabindex="-1"]:focus { outline:none; }
.ba-q[tabindex="-1"]:focus-visible { outline:3px solid var(--teal-deep); outline-offset:2px; }

@media (min-width:700px) {
  .ba { padding:32px; }
  .ba-opts.two { grid-template-columns:1fr 1fr; }
  .ba-send { width:auto; }
  .ba-nav .btn { flex:0 0 auto; }
}
