.booking-page { background:#f1f9fc;color:#173454; }
.booking-page .booking-main { padding:42px 0 72px;background:radial-gradient(circle at 83% 18%,rgba(9,135,194,.15),transparent 46%),radial-gradient(circle at 12% 83%,rgba(14,158,141,.08),transparent 48%),linear-gradient(135deg,#f8fcff 0%,#eaf7ff 55%,#e8fbf8 100%); }
.booking-page .booking-container { width:min(1180px,100%);padding:0 24px;margin:auto; }
.booking-page .booking-hero { margin-bottom:30px;max-width:850px; }
.booking-page .booking-eyebrow { display:block;font-size:11px;font-weight:800;letter-spacing:1.7px;text-transform:uppercase;color:#087bb3;margin-bottom:12px; }
.booking-page h1 { font-size:clamp(28px,3.3vw,42px);line-height:1.22;letter-spacing:-.8px;margin-bottom:14px;color:#173454; }
.booking-page .booking-main p { color:#587087;line-height:1.65; }
.booking-page .booking-hero p { font-size:16px;max-width:690px; }
.booking-page .booking-shell { display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:28px;align-items:start; }
.booking-page .booking-form-card,.booking-page .booking-info-card,.booking-page .booking-fee-card { min-width:0;background:white;border:1px solid #d8e8ef;border-radius:22px;padding:30px;box-shadow:0 12px 36px #17345408; }
.booking-page h2 { font-size:22px;line-height:1.35;color:#173454;margin-bottom:12px; }
.booking-page .booking-intro { font-size:13px;margin-bottom:24px; }
.booking-page .booking-form { display:grid;gap:18px; }
.booking-page .booking-field-row { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px; }
.booking-page .booking-field { min-width:0; }
.booking-page .booking-field label { display:block;font-weight:650;font-size:14px;margin-bottom:8px; }
.booking-page .booking-field label span { font-weight:400;color:#587087; }
.booking-page .booking-field :is(input,select,textarea) { display:block;min-width:0;width:100%;min-height:48px;max-width:100%;padding:12px;border:1px solid #cbdfe9;border-radius:12px;background:#fbfdff;color:#173454;font:16px Inter,sans-serif; }
.booking-page .booking-field textarea { resize:vertical;min-height:96px; }
.booking-page .booking-field small { display:block;color:#587087;font-size:12px;margin-top:6px; }
.booking-page .booking-field [aria-invalid=true] { border-color:#b3473c; }
.booking-page .booking-error { font-size:12px;color:#a33b30!important;margin-top:5px; }
.booking-page .booking-error:empty { display:none; }
.booking-page :is(input,select,textarea,button,a):focus-visible { outline:3px solid #38a9d6;outline-offset:3px; }
.booking-page .booking-submit { width:100%;min-height:50px;display:flex;justify-content:center;align-items:center;gap:12px;border:0;cursor:pointer; }
.booking-page .booking-submit:disabled { opacity:.65;cursor:wait;transform:none; }
.booking-page .booking-submit-note { text-align:center;font-size:12px; }
.booking-page .booking-side-panel { display:grid;gap:20px; }
.booking-page .booking-fee-card { background:#f8fcff; }
.booking-page .booking-fee-card strong { display:block;font:700 38px/1.2 Poppins,sans-serif;margin-bottom:14px; }
.booking-page .booking-fee-card p,.booking-page .booking-contact-help p { font-size:14px; }
.booking-page .booking-next-steps ol { list-style:none;display:grid;gap:22px;margin-top:22px; }
.booking-page .booking-next-steps li { display:flex;align-items:flex-start;gap:14px; }
.booking-page .booking-next-steps li>span { width:32px;height:32px;display:grid;place-items:center;flex-shrink:0;border-radius:10px;background:#e8f6fc;color:#087bb3;font-weight:700; }
.booking-page .booking-next-steps h3 { font-size:14px;margin-bottom:4px;color:#173454; }
.booking-page .booking-next-steps p { font-size:13px; }
.booking-page .booking-actions { display:flex;flex-wrap:wrap;gap:10px;margin-top:18px; }
.booking-page .booking-secondary { display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid #cce2ee;border-radius:12px;color:#0369a1;font-size:13px;font-weight:650;background:#f7fcff; }
.booking-page .booking-urgent { margin-top:24px;padding-top:20px;border-top:1px solid #e0edf3; }
.booking-page .booking-urgent strong { font-size:13px; }
.booking-page .booking-urgent p { margin-top:5px;font-size:12px; }
.booking-page .booking-doctor-login { display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;border-radius:12px;background:#eaf7fd;border:1px solid #d2e8f2;color:#087bb3;font-size:13px;font-weight:650;white-space:nowrap; }
.booking-page .booking-status { padding:14px;border:1px solid #e5bab4;border-radius:12px;background:#fff7f5;font-size:14px; }
.booking-page [hidden] { display:none!important; }
.booking-page .booking-success-icon { display:grid;place-items:center;width:58px;height:58px;background:#e1f7f1;color:#177360;font-size:29px;border-radius:18px;margin-bottom:22px; }
.booking-page .booking-success dl { margin:24px 0;background:#f2f9fc;padding:18px;border-radius:14px; }
.booking-page .booking-success dl div { padding:8px 0; }
.booking-page .booking-success dt { font-size:12px;color:#587087; }
.booking-page .booking-success dd { font-size:15px;font-weight:650;overflow-wrap:anywhere; }
.booking-page .booking-another { background:none;border:0;color:#087bb3;cursor:pointer;min-height:44px;margin-top:18px;text-decoration:underline; }
.booking-page .booking-success { scroll-margin-top:110px; }
/* Keep the discovery prompt from covering fields while booking. */
.booking-page .spark-discovery { display:none!important; }
.booking-page .booking-submit:hover { transform:translateY(-2px); }
@media(max-width:900px) { .booking-page .booking-shell { grid-template-columns:1fr; }.booking-page .booking-side-panel { grid-template-columns:repeat(2,minmax(0,1fr)); }.booking-page .booking-contact-help { grid-column:1/-1; } }
@media(max-width:600px) { .booking-page .booking-container { padding:0 16px; }.booking-page .booking-main { padding:30px 0 65px; }.booking-page .booking-form-card,.booking-page .booking-info-card,.booking-page .booking-fee-card { padding:22px 18px; }.booking-page .booking-field-row,.booking-page .booking-side-panel { grid-template-columns:1fr; }.booking-page .booking-submit { width:calc(100% - 64px);justify-self:start;font-size:13px;padding-inline:12px; }.booking-page .booking-doctor-login { padding:8px;font-size:11px; }.booking-page .booking-success .booking-actions { padding-right:58px; }.booking-page .booking-success .btn { font-size:13px;padding:12px 16px; } }
@media(prefers-reduced-motion:reduce) { .booking-page .booking-main * { transition:none!important; } }
