/* Nova K9 Academy | Public booking flow (/book and any booking-widget section).
   Uses the site's own tokens from site.css (navy, blue, blue-soft, cream, paper, ink, muted, line, ease) and its
   .button / .text-link / .eyebrow classes so the flow reads as part of the page, not a widget. Mobile first. */

.booking-section { background:var(--paper) }
.booking-intro { max-width:720px; margin-bottom:42px }
.booking-intro h2 { font-size:clamp(34px,3vw,46px) }
.booking-sub { margin-top:14px; font-size:17px; line-height:1.7; color:var(--muted) }
.booking-fineprint { margin-top:22px; font-size:13px; line-height:1.6; color:var(--muted) }
.nk-book-loading { font-size:15px; color:var(--muted) }
.nk-book-closed { font-size:17px; line-height:1.7; max-width:560px }
.nk-book-closed a { font-weight:600; color:var(--navy); border-bottom:1px solid currentColor }

/* ---------- steps ---------- */
.nk-book-steps { display:flex; flex-wrap:wrap; gap:6px 4px; margin:0 0 26px; padding:0; list-style:none; counter-reset:none }
.nk-book-steps li { display:flex; align-items:center }
.nk-book-steps li+li::before { content:""; width:18px; height:1px; margin:0 6px 0 2px; background:var(--line) }
.nk-book-steps button {
  display:inline-flex; align-items:center; gap:9px; padding:7px 12px 7px 7px; border:1px solid transparent; border-radius:99px;
  background:none; font-size:13px; font-weight:600; color:var(--muted); white-space:nowrap
}
.nk-book-steps button:not(:disabled):hover { color:var(--navy); background:var(--blue-soft) }
.nk-book-steps button:disabled { cursor:default }
.nk-book-step-n {
  display:inline-grid; place-items:center; width:24px; height:24px; border-radius:50%; border:1px solid var(--line);
  font-size:11px; font-weight:700; color:var(--muted); background:#fff
}
.nk-book-steps .is-done button { color:var(--ink) }
.nk-book-steps .is-done .nk-book-step-n { background:var(--navy); border-color:var(--navy); color:var(--paper) }
.nk-book-steps .is-current button { color:var(--navy); border-color:var(--line); background:#fff }
.nk-book-steps .is-current .nk-book-step-n { background:var(--blue); border-color:var(--blue); color:var(--navy) }

/* ---------- layout ---------- */
.nk-book-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:22px; align-items:start }
.nk-book-summary,.nk-book-panel { min-width:0 }
.nk-book-panel {
  background:#fff; border:1px solid var(--line); border-radius:9px; padding:28px 24px 30px;
  box-shadow:0 18px 60px rgba(16,47,64,.06)
}
.nk-book-step[hidden] { display:none }
.nk-book-title { font-size:clamp(26px,2.2vw,32px); letter-spacing:-.04em; line-height:1.1; margin-bottom:18px; outline-offset:8px }
.nk-book-title:focus { outline:0 }
.nk-book-title:focus-visible { outline:3px solid #234fba }
.nk-book-note:empty { display:none }
.nk-book-note { margin:0 0 18px; padding:11px 14px; border-radius:5px; background:var(--blue-soft); color:var(--navy); font-size:14px; line-height:1.6 }
[data-day-note] { margin:0 0 16px }
.nk-book-note a,.nk-book-inline { font-weight:600; color:var(--navy); border:0; border-bottom:1px solid currentColor; background:none; padding:0; font-size:inherit; line-height:inherit }
.nk-book-error { padding:12px 15px; border-radius:5px; background:#fbeeed; color:#913f36; font-size:14px; line-height:1.6 }
.nk-book-error[hidden] { display:none }
.nk-book-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 26px; margin-top:26px }
.nk-book-actions .button { gap:18px }
.nk-book-actions .text-link { font-size:13px; color:var(--navy) }
.nk-book-busy { font-size:15px; color:var(--muted) }
.nk-book-state { padding:12px 0 }
.nk-book-opt { font-weight:400; color:var(--muted) }

/* ---------- summary (your choices) ---------- */
.nk-book-summary { background:var(--cream); border-radius:9px; padding:20px 22px; display:grid; gap:14px }
.nk-book-summary[hidden] { display:none }
.nk-book-summary[hidden]+.nk-book-panel { grid-column:1/-1 }
.nk-book-sum-service { display:flex; justify-content:space-between; align-items:start; gap:14px }
.nk-book-svc-name { font-size:17px; font-weight:600; letter-spacing:-.02em; line-height:1.3 }
.nk-book-svc-meta { margin-top:4px; font-size:13px; line-height:1.6; color:var(--muted) }
.nk-book-svc-desc { margin-top:10px; font-size:14px; line-height:1.65; color:var(--ink) }
.nk-book-sum-row { display:grid; grid-template-columns:52px minmax(0,1fr) auto; gap:10px; align-items:baseline; padding-top:12px; border-top:1px solid var(--line) }
.nk-book-sum-label { font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted) }
.nk-book-sum-value { font-size:15px; font-weight:500; line-height:1.4 }
.nk-book-sum-change { border:0; border-bottom:1px solid currentColor; background:none; padding:0; font-size:12px; font-weight:600; color:var(--navy); white-space:nowrap }
.nk-book-sum-fine { padding-top:12px; border-top:1px solid var(--line); font-size:13px; line-height:1.6; color:var(--muted) }
.nk-book-sum-fine a { font-weight:600; color:var(--navy) }

/* ---------- services ---------- */
.nk-book-services { display:grid; gap:12px }
.nk-book-service {
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:center; width:100%; text-align:left;
  padding:18px 20px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink);
  transition:border-color .2s,background .2s,transform .25s var(--ease)
}
.nk-book-service:hover { border-color:var(--navy) }
.nk-book-service[aria-pressed=true] { border-color:var(--navy); background:var(--blue-soft) }
.nk-book-service-body { display:block; min-width:0 }
.nk-book-service-go { font-size:20px; color:var(--navy) }
.nk-book-service .nk-book-svc-desc { max-width:62ch }

/* ---------- calendar ---------- */
.nk-book-first {
  display:inline-flex; align-items:center; gap:12px; margin:0 0 18px; padding:9px 14px 9px 12px; border:1px solid var(--line);
  border-radius:99px; background:var(--blue-soft); color:var(--navy); font-size:13px; font-weight:600; transition:background .2s,border-color .2s
}
.nk-book-first span { font-weight:500; color:var(--muted) }
.nk-book-first:hover { border-color:var(--navy) }
.nk-book-cal { max-width:460px }
.nk-book-cal-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:12px }
.nk-book-cal-head strong { font-size:17px; font-weight:600; letter-spacing:-.02em; outline-offset:6px }
.nk-book-cal-nav {
  width:40px; height:40px; border:1px solid var(--line); border-radius:50%; background:#fff; color:var(--navy); font-size:16px;
  display:grid; place-items:center; transition:background .2s
}
.nk-book-cal-nav:not(:disabled):hover { background:var(--blue-soft) }
.nk-book-cal-nav:disabled { opacity:.35 }
.nk-book-cal-week,.nk-book-cal-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px }
.nk-book-cal-week span { text-align:center; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); padding:6px 0 }
.nk-book-day {
  aspect-ratio:1; min-height:42px; border:1px solid transparent; border-radius:50%; background:none; color:var(--muted);
  font-size:15px; font-weight:500; display:grid; place-items:center; transition:background .2s,color .2s
}
.nk-book-day:disabled { color:#aab4ba; cursor:default }
.nk-book-day.is-open { background:var(--blue-soft); color:var(--navy); font-weight:700 }
.nk-book-day.is-open:hover { background:var(--blue) }
.nk-book-day.is-today { border-color:var(--navy) }
.nk-book-day[aria-pressed=true] { background:var(--navy); color:var(--paper) }
.nk-book-day[aria-pressed=true]:hover { background:var(--navy-deep) }

/* ---------- times ---------- */
.nk-book-when { margin:-8px 0 18px; font-size:16px; font-weight:500; color:var(--ink) }
.nk-book-group+.nk-book-group { margin-top:22px }
.nk-book-group h4 { font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:10px }
.nk-book-slots { display:grid; grid-template-columns:repeat(auto-fill,minmax(104px,1fr)); gap:8px; max-width:560px }
.nk-book-slot {
  min-height:46px; padding:10px 8px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--navy);
  font-size:14px; font-weight:600; transition:background .2s,border-color .2s,color .2s
}
.nk-book-slot:hover { border-color:var(--navy) }
.nk-book-slot[aria-pressed=true] { background:var(--navy); border-color:var(--navy); color:var(--paper) }
.nk-book-tz { margin-top:22px; font-size:13px; line-height:1.6; color:var(--muted) }
.nk-book-back { margin-top:16px; font-size:13px; color:var(--navy) }

/* ---------- details form (mirrors the contact form fields) ---------- */
.nk-book-fields { display:grid; gap:18px; max-width:560px }
.nk-book-intake { display:grid; gap:18px; padding-top:18px; border-top:1px solid var(--line) }
.nk-book-field { display:block; font-size:13px; font-weight:500; color:var(--ink) }
.nk-book-field>span { display:block }
.nk-book-field input:not([type=checkbox]),.nk-book-field textarea,.nk-book-field select {
  display:block; width:100%; min-width:0; margin-top:7px; border:1px solid #d9dedb; border-radius:4px; background:#fffefb;
  color:var(--ink); padding:11px 13px; font-size:16px; line-height:1.45; min-height:46px; transition:border-color .2s,box-shadow .2s
}
.nk-book-field textarea { resize:vertical; min-height:88px }
.nk-book-field input:focus,.nk-book-field select:focus,.nk-book-field textarea:focus { outline:0; border-color:#5678cb; box-shadow:0 0 0 3px #91acf025 }
.nk-book-field small { display:block; margin-top:6px; font-size:12px; font-weight:400; line-height:1.5; color:var(--muted) }
.nk-book-check { display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px; align-items:start; line-height:1.5 }
.nk-book-check input { width:18px; height:18px; margin-top:2px; accent-color:var(--navy) }
.nk-book-check small { grid-column:2 }
.nk-book-form .nk-book-error { margin-top:18px; max-width:560px }

/* ---------- review ---------- */
.nk-book-review { margin:0; display:grid; gap:0; max-width:620px; border-top:1px solid var(--line) }
.nk-book-review>div { display:grid; grid-template-columns:112px minmax(0,1fr); gap:14px; padding:13px 0; border-bottom:1px solid var(--line) }
.nk-book-review dt { font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); padding-top:3px }
.nk-book-review dd { margin:0; font-size:15px; line-height:1.55; overflow-wrap:anywhere }
.nk-book-review-meta { color:var(--muted) }
.nk-book-submit { min-width:220px }
[data-panel="review"] .nk-book-error { margin-top:18px; max-width:620px }

/* ---------- done ---------- */
.nk-book-done { max-width:620px }
.nk-book-done-mark { width:52px; height:52px; border-radius:50%; display:grid; place-items:center; background:var(--blue); color:var(--navy); font-size:24px; margin-bottom:20px }
.nk-book-done-lead { font-size:18px; line-height:1.6; color:var(--ink); margin-bottom:22px }
.nk-book-done-card { padding:18px 20px; border-radius:8px; background:var(--cream); margin-bottom:26px }
.nk-book-done-when { margin-top:6px; font-size:16px; font-weight:500; line-height:1.5 }
.nk-book-done h4 { font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:8px }
.nk-book-done>p { font-size:15px; line-height:1.7 }
.nk-book-cal-links { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:22px }
.nk-book-cal-links>span { width:100%; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted) }
.nk-book-cal-link {
  display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border:1px solid var(--line); border-radius:6px; background:#fff;
  font-size:13px; font-weight:600; color:var(--navy); transition:background .2s,border-color .2s
}
.nk-book-cal-link:hover { background:var(--blue-soft); border-color:transparent }
.nk-book-done-manage { margin-top:26px; padding-top:18px; border-top:1px solid var(--line); font-size:14px; line-height:1.6; color:var(--muted) }
.nk-book-done-manage a { font-weight:600; color:var(--navy); border-bottom:1px solid currentColor }

/* ---------- larger screens ---------- */
@media (min-width:860px) {
  .nk-book-layout { grid-template-columns:minmax(260px,330px) minmax(0,1fr); gap:28px }
  .nk-book-summary { position:sticky; top:calc(var(--header) + 24px); padding:24px 26px }
  .nk-book-panel { padding:36px 40px 40px; min-height:300px }
  .nk-book-steps { margin-bottom:30px }
  .nk-book-review>div { grid-template-columns:150px minmax(0,1fr) }
  .nk-book-fields { grid-template-columns:1fr 1fr }
  .nk-book-fields>.nk-book-field:nth-child(1) { grid-column:1/-1 }
  .nk-book-intake { grid-column:1/-1 }
  .nk-book-intake .nk-book-field { grid-column:auto }
  .nk-book-services { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)) }
  .nk-book-service { grid-template-columns:1fr; grid-template-rows:1fr auto; align-items:start; min-height:160px; padding:22px 24px }
  .nk-book-service-go { justify-self:end }
}
@media (max-width:859px) {
  .nk-book-summary { order:-1 }
  .nk-book-summary .nk-book-svc-desc { display:none }
  .nk-book-sum-fine { display:none }
  .nk-book-actions .button { width:100%; justify-content:space-between }
  .nk-book-steps li+li::before { width:10px; margin:0 2px 0 0 }
  .nk-book-steps button { padding:6px 9px 6px 6px; font-size:12px; gap:7px }
  .nk-book-step-n { width:22px; height:22px }
}
/* phone: one line of steps; only the current step shows its label (the others keep it for screen readers) */
@media (max-width:520px) {
  .nk-book-steps { flex-wrap:nowrap }
  .nk-book-steps li:not(.is-current) .nk-book-step-l { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap }
  .nk-book-steps li:not(.is-current) button { padding:4px }
}
@media (max-width:420px) {
  .nk-book-panel { padding:24px 18px 26px }
  .nk-book-review>div { grid-template-columns:1fr; gap:4px }
  .nk-book-sum-row { grid-template-columns:48px minmax(0,1fr) auto }
}
@media (prefers-reduced-motion:reduce) {
  .nk-book-ui *,.nk-book-ui *::before,.nk-book-ui *::after { transition:none!important }
}
