.booking-page{background:#f8f9fb;min-height:100vh}.booking-shell{padding-block:54px 80px}.booking-header{display:flex;justify-content:space-between;gap:36px;align-items:flex-end;margin-bottom:30px}.booking-header p{max-width:590px}.booking-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:28px;align-items:start}.booking-card,.booking-side-card{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 32px #47145c0b}.booking-card{padding:30px}.booking-side-card{padding:25px}.booking-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin:-6px 0 28px}.booking-tab{background:none;border:0;padding:12px 14px 14px;color:#766d79;font-weight:500;border-bottom:2px solid transparent}.booking-tab[aria-selected="true"]{color:var(--plum);border-color:var(--plum)}.booking-panel[hidden]{display:none}.booking-step{margin-bottom:28px}.booking-step-label{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:var(--deep);font-weight:500}.booking-step-label span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#eef7f7;color:var(--teal);font-size:.78rem;font-weight:700}.booking-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.booking-field{display:grid;gap:7px}.booking-field.full{grid-column:1/-1}.booking-field label{font-size:.8rem;color:#5f5764;font-weight:500}.booking-field input{width:100%;min-height:48px;border:1px solid #d9d7de;border-radius:6px;padding:10px 12px;font:inherit;color:var(--ink);background:#fff}.booking-field input:focus{outline:2px solid #0c8a9029;border-color:var(--teal)}.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.slot-button{min-height:43px;border:1px solid #d8d6dc;background:#fff;border-radius:6px;color:var(--plum);font-weight:500}.slot-button:hover{border-color:var(--teal);color:var(--teal)}.slot-button.selected{background:var(--plum);border-color:var(--plum);color:#fff}.slot-button:disabled{background:#f3f3f5;color:#aaa5ad;border-color:#e8e7ea;cursor:not-allowed;text-decoration:line-through}.booking-note{font-size:.82rem;line-height:1.6;background:#f4f9f9;border:1px solid #dceeee;border-radius:6px;padding:12px 14px;color:#5d6667}.booking-error{font-size:.85rem;line-height:1.55;color:#8b2535;background:#fff1f3;border:1px solid #f1cbd1;border-radius:6px;padding:12px 14px;margin-bottom:18px}.booking-success{background:#f0faf6;border:1px solid #ccebdd;border-radius:8px;padding:22px}.booking-success h3{font-family:var(--serif);font-size:1.65rem;color:var(--deep);margin-bottom:8px}.booking-reference{display:inline-block;margin:12px 0;padding:9px 12px;border-radius:5px;background:#fff;border:1px solid #d7e8df;color:var(--plum);font-weight:700;letter-spacing:.055em}.booking-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px}.privacy-check{display:flex;gap:10px;align-items:flex-start;font-size:.8rem;color:#68616d;line-height:1.5;margin-top:16px}.privacy-check input{margin-top:4px}.booking-side-card h3{font-family:var(--serif);font-size:1.4rem;color:var(--deep);margin-bottom:12px}.booking-side-card+.booking-side-card{margin-top:18px}.booking-side-list{list-style:none;padding:0;margin:0;display:grid;gap:12px;font-size:.88rem;color:#645e68}.booking-side-list li{padding-left:20px;position:relative}.booking-side-list li:before{content:'✓';position:absolute;left:0;color:var(--teal)}.track-result{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.track-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.track-item{background:#f8f9fa;border-radius:6px;padding:12px}.track-item small{display:block;color:#817987;font-size:.7rem;letter-spacing:.08em;margin-bottom:4px}.track-item strong{font-weight:500;color:var(--deep)}.status-pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#eef7f7;color:var(--teal);font-size:.76rem;font-weight:600;text-transform:capitalize}.booking-fallback{margin-top:16px}.booking-fallback a{color:var(--plum);text-decoration:underline;text-underline-offset:3px}.booking-subnav{display:flex;gap:16px;align-items:center}.booking-subnav a{font-size:.86rem;color:#655d68}.booking-subnav a:hover{color:var(--plum)}
@media(max-width:900px){.booking-layout{grid-template-columns:1fr}.booking-header{display:block}.booking-header p{margin-top:16px}.slot-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.booking-shell{padding-block:36px 60px}.booking-card{padding:22px 18px}.booking-field-grid{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(2,1fr)}.track-grid{grid-template-columns:1fr}.booking-subnav{display:none}}

/* Appointment self-service improvements */
.confirmation-kicker{font-size:.72rem;letter-spacing:.13em;font-weight:700;color:var(--teal);margin-bottom:8px}.confirmation-label{font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;color:#7d7480;margin-top:16px}.reference-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.copy-reference{min-height:38px;padding:8px 11px;border:1px solid #cfc9d4;border-radius:5px;background:#fff;color:var(--plum);font-weight:600;cursor:pointer}.copy-reference:hover{border-color:var(--teal);color:var(--teal)}.button-outline{background:#fff;color:var(--plum);border-color:#cbbfd0}.button-outline:hover{background:#faf7fb;color:var(--plum);border-color:var(--plum)}.track-actions{padding-top:4px}.change-card{margin-top:24px;padding:22px;border:1px solid #dcd7e0;border-radius:8px;background:#fbfbfc}.change-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.change-heading h3{font-family:var(--serif);font-size:1.5rem;color:var(--deep)}.change-close{border:0;background:none;color:#716779;font-size:1.65rem;line-height:1;cursor:pointer}.compact-success{margin-bottom:18px;padding:14px 16px}.compact-success strong{color:var(--deep)}
@media(max-width:620px){.reference-row{align-items:stretch}.booking-reference,.copy-reference{width:100%;text-align:center}.track-actions>.button,.track-actions>.text-link{width:100%;justify-content:center}.change-card{padding:18px 14px}}
