/* Hallmark · GC Lab locked design 0.1.0 · theme: brand · scope: app · shape: app screen · redesign: restyle · copy: verbatim */
/* Critique: a calm shared booking shell retains all genuine forms and recovery states. */
/* Hallmark · waive 24b · retained legacy form and calendar spacing beside the pinned reference layout · preserve established booking control geometry while applying the shared brand system */
@import url("assets/brand/fonts/fonts.css");
:root{font-family:system-ui,sans-serif;color:#282522;background:#f7f3ea;color-scheme:light}*{box-sizing:border-box}body{margin:0}header{background:var(--cream);border-bottom:1px solid var(--line);padding:1.4rem;font-size:1.6rem;font-weight:650}main{max-width:850px;margin:2rem auto;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:2rem}h1{font-size:2rem}p{line-height:1.65;overflow-wrap:anywhere}.notice{padding:1rem;border-left:3px solid var(--gold);background:var(--attention)}[role=alert]{border-left:3px solid var(--red);padding:1rem}label{display:block;margin:.8rem 0}select,textarea{display:block;padding:.7rem;border:1px solid var(--control);border-radius:6px;font:inherit}textarea{width:100%;min-height:5rem}button{font:inherit;font-weight:600;background:var(--gold);color:var(--ink);border:1px solid var(--gold-dark);padding:.8rem 1.1rem;border-radius:6px;cursor:pointer}a{color:var(--gold-dark)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--red);outline-offset:3px}fieldset{border:1px solid var(--line);margin:1.5rem 0;max-height:24rem;overflow:auto}.test{font-weight:400}.test input{margin-right:.7rem}section{padding:1rem;background:var(--attention);margin-top:1.5rem}section p{font-size:1.6rem}@media(max-width:700px){main{margin:1rem;padding:1.2rem}}
input[type=checkbox]{accent-color:var(--gold)}#booking-total{scroll-margin-top:1rem}
input:not([type=checkbox]):not([type=hidden]){display:block;width:100%;padding:.75rem;border:1px solid var(--control);border-radius:6px;margin-top:.4rem;font:inherit}select{width:100%;margin-top:.4rem}form+form{margin-top:1rem}

.payment-link{display:inline-block;text-decoration:none;font-weight:600;background:var(--gold);color:var(--ink);border:1px solid var(--gold-dark);padding:.8rem 1.1rem;border-radius:6px}.payment-refresh button{background:var(--white)}

html{scroll-padding-top:9rem}.booking-support{position:sticky;top:0;z-index:5;background:var(--cream);border-bottom:1px solid var(--line);color:var(--ink)}.booking-support-inner{max-width:850px;margin:0 auto;padding:.75rem 1.2rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem}.booking-support strong{font-size:1rem;line-height:1.4}.booking-support a{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;max-width:100%;min-height:44px;padding:.6rem .8rem;border:1px solid var(--gold-dark);border-radius:6px;background:var(--white);color:var(--gold-dark);font-size:.95rem;font-weight:600;text-decoration:none}.booking-support a:hover{background:var(--attention)}.booking-support svg{flex-shrink:0}#booking-total{scroll-margin-top:9rem}

.booking-calendar h2{font-size:1.15rem;margin-top:1.75rem}.booking-days{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem}.booking-days form,.booking-days form+form{margin:0}.booking-days button{width:100%;min-height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.6rem .3rem;background:var(--white);color:var(--ink);border-color:var(--control)}.booking-days button:hover{background:var(--attention);border-color:var(--gold-dark)}.booking-days button[aria-pressed=true]{background:var(--attention);border:2px solid var(--gold-dark)}.booking-weekday,.booking-year{font-size:.78rem;font-weight:400}.booking-date{font-size:1.15rem;font-weight:650}.booking-calendar-nav{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin:1rem 0 1.75rem}.booking-calendar-nav form+form{margin:0}.booking-calendar-nav button{background:var(--white);border-color:var(--control);font-size:.9rem}.booking-times{max-height:none;overflow:visible;border:0;padding:0;margin:1.75rem 0 1rem;min-width:0}.booking-times legend{font-size:1.15rem;font-weight:650}.booking-zone{font-size:.85rem;margin:.4rem 0 1rem}.booking-time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(83px,1fr));gap:.5rem}.booking-time-option{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:46px;margin:0;padding:.5rem;border:1px solid var(--control);border-radius:6px;cursor:pointer;font-variant-numeric:tabular-nums}.booking-time-option:hover{background:var(--attention)}.booking-time-option:has(input:checked){background:var(--attention);border-color:var(--gold-dark)}.booking-time-option input[type=radio]{display:inline-block;width:auto;margin:0;padding:0;accent-color:var(--gold-dark)}.booking-time-option:focus-within{outline:3px solid var(--red);outline-offset:2px}@media(max-width:700px){.booking-days{grid-template-columns:repeat(3,minmax(0,1fr))}}
.booking-calendar+form{margin-top:1rem}.booking-calendar+form button{background:var(--white);border-color:var(--control);font-weight:500}.booking-calendar+form+details{margin-top:1.5rem}

.patient-name-fields{border:0;padding:0;margin:1.5rem 0;max-height:none;overflow:visible;min-width:0}.patient-name-fields legend{font-weight:600}.name-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}.name-fields-grid label{min-width:0}@media(max-width:550px){.name-fields-grid{grid-template-columns:1fr}}

.verification-secondary button{background:var(--white)}.payment-link{min-height:44px}.payment-link:hover{background:var(--gold-dark)}

.booking-price-breakdown{margin:1.5rem 0;border-block:1px solid var(--line);padding:.5rem 0}.booking-price-breakdown>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:baseline;padding:.65rem 0}.booking-price-breakdown dt{line-height:1.5}.booking-price-breakdown dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}.booking-price-deposit{font-weight:650}.booking-recovery-help,.booking-secondary-details{margin-top:1.5rem}.booking-secondary button{background:var(--white);font-weight:500}details+details{margin-top:1rem}

.booking-appointment-summary{font-weight:600}

:root{--wine:#49232D;--gold:#E5BA3C;--cream:#FBF3E6;--paper:#F6F4EF;--surface:#FFFEFD;--ink:#2D2C27;--muted:#656259;--line:#DCD8D0;--control:#8D887C;--attention:#FBF5E6;--focus:#792D38;--gold-dark:#76551D;--font-body:'Hanken Grotesk',sans-serif;font-family:var(--font-body);color:var(--ink);background:var(--paper);font-size:16px}
html,body{overflow-x:clip}body{font-family:var(--font-body)}header{background:var(--wine);color:var(--cream);min-height:88px;padding:20px max(24px,calc((100% - 850px)/2));border:0}header a{display:inline-flex;align-items:center;min-height:48px}.brand-logo{display:block;width:180px;height:auto}main{max-width:850px;margin:32px auto;padding:40px;background:var(--surface);border:1px solid var(--line);border-radius:6px}h1{font-size:28px;line-height:1.2;letter-spacing:-.025em;font-weight:600}h2{font-size:20px;font-weight:600}button,input,select,textarea,.payment-link{border-radius:4px;font-family:var(--font-body);min-height:44px}button,.payment-link{background:var(--gold);border-color:var(--gold-dark);color:var(--ink);font-weight:600}button:hover,.payment-link:hover{background:var(--attention)}a{color:var(--gold-dark)}input:not([type=checkbox]):not([type=hidden]),select,textarea{border-color:var(--control);background:var(--surface);color:var(--ink)}.notice,section{background:var(--attention);border-color:var(--gold-dark);border-radius:4px}.booking-support{background:var(--cream);color:var(--ink);border-color:var(--line)}.booking-support a{background:var(--surface);color:var(--gold-dark);border-color:var(--control);border-radius:4px}.booking-support a:hover{background:var(--attention)}.booking-days button,.booking-calendar-nav button,.verification-secondary button,.payment-refresh button,.booking-secondary button,.booking-calendar+form button{background:var(--surface);border-color:var(--control);color:var(--ink)}.booking-days button:hover,.booking-days button[aria-pressed=true],.booking-time-option:hover,.booking-time-option:has(input:checked){background:var(--attention);border-color:var(--gold-dark)}.booking-time-option,fieldset{border-color:var(--line)}.booking-price-breakdown{border-color:var(--line)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}header a:focus-visible{outline-color:var(--gold)}input[type=checkbox],input[type=radio]{accent-color:var(--gold-dark)}[role=alert]{border-color:var(--focus);color:var(--focus)}@media(max-width:700px){header{min-height:80px;padding:16px}.brand-logo{width:156px}main{margin:16px;padding:24px}h1{font-size:26px}.booking-support-inner{padding:12px 16px}.booking-support strong{font-size:14px}.booking-support a{font-size:14px}.booking-days{grid-template-columns:repeat(3,minmax(0,1fr))}input:not([type=checkbox]),select,textarea{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

:root{--white:#FFFEFD;--cream:#FBF3E6;--attention:#FBF5E6;--control:#8D887C;--line:#DCD8D0;--red:#792D38;--wine:#49232D;--shadow:#49232D26;--backdrop:#49232D99;}
button:active,.button:active{transform:translateY(1px)}h1,h2{text-wrap:balance}
input[type=checkbox],input[type=radio]{min-height:0;width:18px;height:18px;flex-shrink:0}label:has(input[type=checkbox]){display:flex;align-items:flex-start;gap:12px;min-height:44px}label:has(input[type=checkbox]) input{margin:4px 0 0}

/* Explicit confirmation reuses the existing booking summary and focus tokens. */
.booking-confirmation-help{margin-top:1.5rem}
.booking-confirmation-help>summary{min-height:44px;padding:12px 0;box-sizing:border-box;cursor:pointer}
@media(max-width:44rem){.booking-confirmation-breakdown>div:first-child{grid-template-columns:1fr;gap:.25rem}.booking-confirmation-breakdown>div:first-child dd{white-space:normal}}
