.booking-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-top:26px; padding-bottom:26px; border-bottom:1px solid #ffffff20; }
.booking-header a { color:#d9e8f1; text-decoration:none; font-size:.85rem; }
.booking-layout { display:grid; grid-template-columns: .72fr 1.38fr; gap:48px; padding-top:52px; padding-bottom:70px; align-items:start; }
.booking-intro h1 { font-size:3.5rem; letter-spacing:-.04em; margin-bottom:25px; }
.booking-intro > p { margin-bottom:28px; color:#bfccda; }
.booking-intro h2 { font-size:1.1rem; margin-bottom:15px; }
.booking-intro ul { padding-left:20px; color:#bfccda; }
.booking-intro li { padding:5px 0; }
.booking-expectations { margin:20px 0; }
.booking-expectations summary { color:#eef7ff; cursor:pointer; font-size:.95rem; padding:8px 0; }
.booking-contact a, .booking-panel a { color:#71e1c3; }
.booking-panel h2 { font-size:1.7rem; margin:0 0 20px; }
.booking-panel p { margin:16px 0; }
.booking-panel label { display:block; color:#dde8f1; font-size:.82rem; margin:18px 0 8px; }
.booking-panel label span { color:#a7b8ca; }
.booking-panel input, .booking-panel select, .booking-panel textarea { display:block; margin-top:8px; width:100%; min-width:0; }
.booking-panel textarea { resize:vertical; }
.booking-progress { display:flex; gap:22px; padding:0 0 24px; list-style:none; border-bottom:1px solid #ffffff20; margin-bottom:25px; font-size:.8rem; color:#a9b6c7; }
.booking-progress [aria-current] { color:#71e1c3; font-weight:700; }
.booking-step-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:22px; }
.booking-step-heading h2, .booking-step-heading p { margin-bottom:6px; }
.booking-step-heading label { min-width:210px; margin:0; }
.booking-picker { display:grid; grid-template-columns:minmax(330px,1fr) minmax(155px,.48fr); gap:20px; align-items:start; }
.booking-calendar, .booking-times { border:1px solid #ffffff1c; background:#08181f70; border-radius:16px; padding:16px; }
.calendar-toolbar { display:grid; grid-template-columns:38px 1fr 38px; align-items:center; gap:8px; margin-bottom:14px; }
.calendar-toolbar strong { text-align:center; color:#f3f8fc; font-size:.95rem; }
.calendar-toolbar button { width:38px; height:36px; border:1px solid #ffffff24; border-radius:9px; background:#132730; color:#eaf5fb; cursor:pointer; font:inherit; }
.calendar-toolbar button:disabled { visibility:hidden; }
.calendar-weekdays, .calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.calendar-weekdays { margin-bottom:6px; color:#879aaa; font-size:.66rem; text-align:center; text-transform:uppercase; letter-spacing:.04em; }
.calendar-day, .calendar-blank { aspect-ratio:1; min-width:0; }
.calendar-day { border:1px solid #71e1c340; border-radius:9px; background:#142b33; color:#eef9ff; font:inherit; font-size:.82rem; cursor:pointer; }
.calendar-day:hover { border-color:#71e1c3; background:#1e443b; }
.calendar-day[aria-pressed="true"] { color:#061711; background:#71e1c3; border-color:#71e1c3; font-weight:800; box-shadow:0 0 0 3px #71e1c322; }
.calendar-day:disabled { opacity:.22; background:transparent; border-color:transparent; cursor:default; }
.booking-times .kc-eyebrow { margin:0 0 5px; }
.booking-times h3 { min-height:42px; margin:0 0 14px; color:#eef7ff; font-size:.95rem; line-height:1.35; }
.time-options { display:grid; gap:8px; }
.booking-slot { cursor:pointer; font:inherit; font-size:.85rem; background:#182d35; color:#edf9ff; border:1px solid #71e1c350; padding:13px 8px; border-radius:10px; }
.booking-slot:hover { background:#245044; border-color:#71e1c3; }
.booking-refresh { margin-top:13px; border:0; background:none; color:#8fb8ad; font:inherit; font-size:.76rem; cursor:pointer; padding:5px 0; }
.booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.full-width { grid-column:1/-1; }
.booking-back { background:none; border:0; color:#71e1c3; font:inherit; font-size:.85rem; padding:10px 0; cursor:pointer; }
.booking-summary { padding:15px; border-left:2px solid #71e1c3; background:#71e1c309; }
#booking-error { padding:16px; border:1px solid #efad77; color:#ffe1c2; border-radius:10px; margin-bottom:20px; font-size:.87rem; }
#booking-status:empty { display:none; }
.booking-trap { position:absolute; left:-10000px; }
#confirm-call { width:100%; justify-content:center; margin-top:20px; }
#cancel-confirm { padding-top:20px; border-top:1px solid #ffffff30; margin-top:20px; }
.booking-panel button:disabled { opacity:.6; cursor:wait; }
.booking-panel .btn { white-space:normal; }
@media(max-width:850px) { .booking-layout { grid-template-columns:1fr; gap:16px; padding-top:18px; } .booking-intro { display:grid; grid-template-columns:1fr auto; column-gap:20px; align-items:end; } .booking-intro .kc-eyebrow, .booking-intro h1, .booking-intro > p:first-of-type { grid-column:1; } .booking-intro .kc-eyebrow { margin:0 0 5px; } .booking-intro h1 { font-size:2.2rem; margin:0 0 8px; } .booking-intro h1 br { display:none; } .booking-intro > p:first-of-type { margin:0; font-size:.86rem; } .booking-intro .booking-contact { grid-column:2; grid-row:1/4; margin:0; font-size:.78rem; text-align:right; } .booking-expectations, .booking-intro > .kc-note { display:none; } }
@media(max-width:620px) { .booking-step-heading { display:block; } .booking-step-heading label { margin-top:14px; } .booking-picker { grid-template-columns:1fr; } .booking-times { padding:14px; } .booking-times h3 { min-height:0; } .time-options { grid-template-columns:repeat(3,1fr); } }
@media(max-width:480px) { .booking-layout { padding-left:16px; padding-right:16px; } .booking-intro { display:block; } .booking-intro h1 { font-size:1.95rem; } .booking-intro .booking-contact { display:none; } .booking-panel { padding:20px 14px; } .booking-fields { grid-template-columns:1fr; } .booking-header { padding:18px 16px; } .booking-calendar { padding:12px 9px; } .calendar-weekdays, .calendar-grid { gap:4px; } .calendar-day { border-radius:8px; } .time-options { grid-template-columns:repeat(2,1fr); } }
