/* Parker PC Pros booking page: builds on site.css + luxury.css variables */
.bk-wrap { max-width: 46rem; margin-inline: auto; }
.bk-card { background: var(--ground-2, rgba(255,255,255,.03)); border: 1px solid var(--rule); border-radius: 18px;
  padding: clamp(1.25rem, 4vw, 2.5rem); box-shadow: var(--shadow, none); }
.bk-progress { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; padding: 0; margin: 0 0 1.75rem;
  counter-reset: s; font-size: var(--t-sm, .9rem); color: var(--muted); }
.bk-progress li { counter-increment: s; border-top: 3px solid var(--rule); padding-top: .55rem; }
.bk-progress li::before { content: counter(s) ". "; font-weight: 700; }
.bk-progress li.is-current { color: var(--ink); border-color: var(--brass); font-weight: 600; }
.bk-progress li.is-done { color: var(--ink); border-color: var(--seafoam); }
.bk-step h2 { font-size: clamp(1.5rem, 3.4vw, 2.1rem); margin: 0 0 .4rem; outline: none; }
.bk-step > p { color: var(--muted); margin: 0 0 1.25rem; }
.bk-label { display: block; font-weight: 600; margin: 1rem 0 .35rem; }
.bk-label small { font-weight: 400; color: var(--muted); }
.bk-input { width: 100%; box-sizing: border-box; font: inherit; font-size: max(1rem, 16px); color: var(--ink);
  background: transparent; border: 1.5px solid var(--rule); border-radius: 10px; padding: .85rem 1rem; min-height: 3.1rem; }
textarea.bk-input { min-height: 7rem; resize: vertical; }
.bk-input:focus { outline: none; border-color: var(--brass); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brass) 30%, transparent); }
.bk-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-top: 1.5rem; }
.bk-actions .btn { min-height: 3.1rem; font-size: 1.05rem; }
.bk-back { background: none; border: 0; color: var(--muted); font: inherit; text-decoration: underline; cursor: pointer; padding: .5rem 0; }
.bk-grid { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr)); }
.bk-day, .bk-time { font: inherit; color: var(--ink); background: transparent; border: 1.5px solid var(--rule); border-radius: 12px;
  padding: .8rem .5rem; cursor: pointer; text-align: center; min-height: 3.2rem; transition: border-color .15s, background .15s; }
.bk-day { display: flex; flex-direction: column; gap: .15rem; }
.bk-day__wd { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.bk-day__n { font-size: 1.15rem; font-weight: 600; }
.bk-day__s { font-size: .8rem; color: var(--seafoam); }
.bk-day:disabled { opacity: .4; cursor: not-allowed; }
.bk-day:disabled .bk-day__s { color: var(--muted); }
.bk-time { font-size: 1.1rem; font-weight: 600; }
.bk-day:not(:disabled):hover, .bk-time:hover, .bk-day:focus-visible, .bk-time:focus-visible { border-color: var(--brass); outline: none;
  background: color-mix(in srgb, var(--brass) 10%, transparent); }
.bk-err { color: #e8806a; font-weight: 600; margin: .9rem 0 0; }
.bk-summary { border-left: 3px solid var(--brass); padding: .4rem 0 .4rem 1rem; margin: 0 0 .5rem; }
.bk-summary strong { display: block; font-size: 1.1rem; }
.bk-summary span { color: var(--muted); }
.bk-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bk-note { color: var(--muted); font-size: var(--t-sm, .9rem); margin-top: 1.25rem; }
.bk-call { text-align: center; }
.bk-call .bk-phone { display: inline-block; font-size: clamp(1.6rem, 5vw, 2.4rem); font-weight: 600; margin: .5rem 0 1rem; color: var(--brass); }
.bk-done-ref { font-family: var(--mono, monospace); }
.bk-alt { text-align: center; color: var(--muted); margin-top: 1.25rem; }
.bk-alt a { color: var(--brass); font-weight: 600; }
@media (max-width: 520px) {
  .bk-progress { font-size: .75rem; }
  .bk-grid { grid-template-columns: repeat(3, 1fr); }
  .bk-actions .btn { width: 100%; justify-content: center; }
}
#booking { scroll-margin-top: 5.5rem; }
.bk-request-note { border: 1.5px solid var(--brass); border-radius: 12px; padding: .9rem 1rem; margin: 1.25rem 0 0;
  background: color-mix(in srgb, var(--brass) 8%, transparent); color: var(--ink); line-height: 1.5; }
.bk-request-note a { color: var(--brass); font-weight: 600; white-space: nowrap; }
.bk-call .bk-request-note { text-align: left; margin: 1rem auto; max-width: 34rem; }

/* v8: address suggestions (large, touch-friendly) */
.bk-ac { position: relative; }
.bk-ac__list { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 6px); margin: 0; padding: .35rem; list-style: none;
  background: var(--ground, #0d191c); border: 1.5px solid var(--brass); border-radius: 12px; box-shadow: 0 18px 48px rgba(0,0,0,.35);
  max-height: min(24rem, 60vh); overflow-y: auto; }
.bk-ac__opt { display: flex; flex-direction: column; gap: .15rem; padding: .85rem 1rem; min-height: 3.2rem; justify-content: center;
  border-radius: 9px; cursor: pointer; font-size: max(1.1rem, 17px); line-height: 1.3; color: var(--ink); }
.bk-ac__opt + .bk-ac__opt { border-top: 1px solid var(--rule); }
.bk-ac__main { font-weight: 600; }
.bk-ac__sub { font-size: .9em; color: var(--muted); }
.bk-ac__opt:hover, .bk-ac__opt[aria-selected="true"] { background: color-mix(in srgb, var(--brass) 18%, transparent); }
.bk-ac__opt[aria-selected="true"] { outline: 2px solid var(--brass); outline-offset: -2px; }
.bk-ac__credit { padding: .5rem 1rem .3rem; font-size: .8rem; color: var(--muted); border-top: 1px solid var(--rule); }
.bk-ac__credit a { color: inherit; }
.bk-ac__hint { margin: .45rem 0 0; font-size: var(--t-sm, .9rem); color: var(--muted); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* owner approve page */
.ow-card { max-width: 34rem; margin-inline: auto; font-size: max(1.1rem, 17px); }
.ow-title { font-size: clamp(1.8rem, 5vw, 2.4rem); margin: .4rem 0 .6rem; outline: none; }
.ow-msg { font-size: 1.25em; line-height: 1.45; margin: 0 0 1.25rem; }
.ow-actions { display: grid; gap: 1rem; margin: 1.5rem 0 .5rem; }
.ow-actions[hidden] { display: none; }
.ow-btn { width: 100%; min-height: 4.2rem; font-size: 1.35rem; font-weight: 700; justify-content: center; }
.btn.btn--solid.ow-btn--decline { background: #c0392b !important; border-color: #c0392b !important; color: #fff !important; }
.ow-btn:disabled { opacity: .6; }
.ow-cancel { text-align: center; font-size: 1rem; }
.ow-note { color: var(--muted); font-size: .9em; margin: 1rem 0 0; }
.ow-card[data-state="ok"] .ow-title { color: var(--seafoam); }
.ow-card[data-state="error"] .ow-title { color: #e5867f; }

/* v8 mobile alignment fixes (Oct 2026) */
html, body { overflow-x: clip; }
.bk-wrap { box-sizing: border-box; }
.bk-card { box-sizing: border-box; width: 100%; }
.bk-progress li { text-align: center; line-height: 1.25; }
.bk-back { min-height: 44px; display: inline-flex; align-items: center; padding: .5rem .25rem; }
.bk-request-note a, .bk-alt a { display: inline-block; padding-block: .6rem; margin-block: -.6rem; }
/* day/time buttons: even grid, last short row centered instead of hanging left */
.bk-grid { display: flex; flex-wrap: wrap; justify-content: center; }
.bk-grid > * { flex: 0 0 calc((100% - 1.2rem) / 3); box-sizing: border-box; min-height: 3.5rem; }
@media (min-width: 521px) { .bk-grid > * { flex-basis: calc((100% - 2.4rem) / 5); } }
@media (max-width: 520px) {
  .bk-card { padding: 1.25rem 1rem 1.5rem; border-radius: 16px; }
  .bk-progress { font-size: .78rem; gap: .35rem; }
  .bk-step h2 { text-align: center; }
  .bk-step > p { text-align: center; }
  .bk-label small { display: block; }
  .bk-actions { flex-direction: column; align-items: stretch; }
  .bk-actions .bk-back { justify-content: center; }
  .bk-summary { margin-bottom: .75rem; }
  .bk-alt { padding-inline: var(--gutter, 1.2rem); }
}
