.booking-page{
    --booking-max:1300px;
    --booking-border:#ded8e4;
    --booking-soft:#faf8fc;
    --booking-ink:#0c0c0c;
    --booking-muted:#655d6b;
    background:#fff;
    color:var(--booking-ink);
}
.booking-shell{width:min(calc(100% - 40px),var(--booking-max));margin-inline:auto}
/* Booking-first: compact title and the live form share one continuous section. */
.booking-page__primary{padding:24px 0 48px;background:linear-gradient(180deg,#fff 0%,#faf9fc 100%)}
.booking-page__intro{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;margin-bottom:20px}
.booking-page__heading{min-width:0}
.booking-page__support-kicker{margin:0 0 6px;font-size:14px;font-weight:600;color:#514fa2}
.booking-page__heading h1{margin:0;font-size:clamp(25px,2.35vw,34px);line-height:1.5;font-weight:700;text-align:right}
.booking-type-switch{display:inline-flex;align-items:center;gap:5px;margin:0;padding:4px;border:1px solid var(--booking-border);border-radius:999px;background:#fff;box-shadow:0 5px 18px rgba(18,2,50,.05)}
.booking-type-switch__item{min-width:126px;padding:9px 14px;border-radius:999px;font-size:14px;font-weight:600;white-space:nowrap;text-align:center;color:#514fa2;transition:background-color .18s ease,color .18s ease}
.booking-type-switch__item:hover,.booking-type-switch__item:focus-visible{background:#f6f3fc}
.booking-type-switch__item.is-active{background:#514fa2;color:#fff}
.booking-type-switch__item:focus-visible{outline:3px solid rgba(81,79,162,.16);outline-offset:2px}
.booking-page__form-card{padding:24px;border:1px solid var(--booking-border);border-radius:22px;background:#fff;box-shadow:0 12px 34px rgba(18,2,50,.065)}
.booking-page__form-card :is(.pbf-form,.abf-form){margin:0;font-family:inherit;color:var(--booking-ink)}
.booking-page__form-card :is(.pbf-title,.abf-title),
.booking-page__form-card :is(.pbf-form,.abf-form)>h1{display:none!important}
.booking-page__form-card :is(.pbf-form,.abf-form)>form{display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,.9fr);gap:26px;align-items:start}
.booking-page__form-card :is(.pbf-column,.abf-column){min-width:0;margin:0}
.booking-page__form-card :is(.pbf-note-heading,.abf-note-heading){display:block;margin:0 0 8px;font-size:15px;font-weight:600;color:#2b2430;text-align:right;line-height:1.7}
.booking-page__form-card :is(.pbf-note,.abf-note){margin:0 0 18px;padding:14px 18px 14px 14px;border:1px solid #e7e1eb;border-radius:14px;background:#faf8fc;color:#342c39;font-size:14.5px;line-height:1.85;list-style-position:inside}
.booking-page__form-card :is(.pbf-note,.abf-note) li+li{margin-top:4px}
.booking-page__form-card :is(.pbf-mom-row,.abf-flex-row){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 14px}
.booking-page__form-card :is(.pbf-row,.abf-row){min-width:0}
.booking-page__form-card :is(.pbf-row,.abf-row,.pbf-row-status,.abf-row-status)>label,
.booking-page__form-card :is(.pbf-column,.abf-column)>label{display:block;margin-bottom:8px;font-size:15px;font-weight:600;color:#2b2430}
.booking-page__form-card :is(.pbf-input,.abf-input){width:100%;min-height:48px;margin:0;padding:10px 14px;border:1px solid #cfc6d6;border-radius:12px;background:#fff;color:#0c0c0c;outline:none;transition:border-color .18s ease,box-shadow .18s ease}
.booking-page__form-card :is(.pbf-input,.abf-input):focus{border-color:#514fa2;box-shadow:0 0 0 3px rgba(81,79,162,.12)}
.booking-page__form-card :is(.pbf-row-status,.abf-row-status){margin-top:4px}
/* Visit status: one shared field box; the heading stays outside. */
.booking-page__form-card :is(.pbf-seg,.abf-seg){
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    margin-top:8px;
    border:1px solid #ddd6e3;
    border-radius:12px;
    background:#fff;
    overflow:hidden;
}
.booking-page__form-card :is(.pbf-seg,.abf-seg)>label{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:0;
    min-height:56px;
    margin:0;
    padding:12px 14px;
    border:0;
    border-radius:0;
    background:transparent;
    line-height:1.7;
    cursor:pointer;
}
.booking-page__form-card :is(.pbf-seg,.abf-seg) input{
    flex:none;
    margin:0;
    accent-color:#514fa2;
}
.booking-page__form-card :is(#pbf-date-inline,#abf-date-inline){padding:14px;border:1px solid #cfc6d6!important;border-radius:16px;background:#fff;box-shadow:0 6px 18px rgba(18,2,50,.045)}
.booking-page__form-card :is(.pbf-cal-head,.abf-cal-head){margin-bottom:14px}
.booking-page__form-card :is(.pbf-cal-title,.abf-cal-title){font-size:17px}
.booking-page__form-card :is(.pbf-cal-nav button,.abf-cal-nav button){min-width:38px;min-height:36px;border-color:#cfc6d6!important;border-radius:10px!important;background:#fff!important;color:#0c0c0c!important}
.booking-page__form-card :is(.pbf-day,.abf-day){min-height:56px;border-color:#e0dae5!important;border-radius:11px;background:#fff}
.booking-page__form-card :is(.pbf-day,.abf-day):not(.disabled):hover{background:#f6f3fc}
.booking-page__form-card :is(.pbf-day.selected,.abf-day.selected){outline:2px solid #514fa2;background:#f6f3fc}
.booking-page__form-card :is(.pbf-btn,.abf-btn){display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border:0;border-radius:999px;background:#514fa2;color:#fff;font-weight:600;cursor:pointer;text-decoration:none}
.booking-page__form-card :is(.pbf-success,.abf-success,.pbf-alert,.abf-alert,.pbf-error,.abf-error){padding:18px 20px;border-radius:16px;line-height:1.9}
.booking-page__form-card :is(.pbf-success,.abf-success){background:#edf8ef;color:#155724;border:1px solid #cce8d2}
.booking-page__form-card :is(.pbf-alert,.abf-alert){background:#fff8e8;color:#704f00;border:1px solid #f1dfae}
.booking-page__form-card :is(.pbf-error,.abf-error){background:#fff0f0;color:#8a1d1d;border:1px solid #f0caca}
.booking-page :is(.pbf-modal,.abf-modal){position:fixed;inset:0;z-index:99999;align-items:center;justify-content:center;padding:20px;background:rgba(18,2,50,.48);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.booking-page :is(.pbf-modal,.abf-modal) .box{width:min(100%,520px);padding:26px;border:1px solid #e0dae5;border-radius:22px;background:#fff;box-shadow:0 22px 70px rgba(18,2,50,.22)}
.booking-page :is(.pbf-modal,.abf-modal) h3{margin:0 0 14px;font-size:23px}
.booking-page :is(.pbf-modal,.abf-modal) .row{margin-top:10px;line-height:1.8}
.booking-page :is(.pbf-modal,.abf-modal) .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}
.booking-page :is(.pbf-link,.abf-link){border:0;background:transparent;color:#514fa2;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.booking-page__support{padding:0 0 76px}
.booking-page__support-card{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px 34px;border:1px solid var(--booking-border);border-radius:24px;background:#faf8fc}
.booking-page__support-card h2{margin:0;font-size:27px;line-height:1.6}
.booking-page__support-card p:not(.booking-page__support-kicker){margin:8px 0 0;color:var(--booking-muted);font-size:16px;line-height:1.9}
.booking-page__notice{padding:18px 20px;border-radius:16px;line-height:1.9}
.booking-page__notice--error{background:#fff0f0;color:#8a1d1d;border:1px solid #f0caca}
@media (max-width:900px){
    .booking-page__primary{padding-top:20px}
    .booking-page__intro{grid-template-columns:1fr;gap:12px;margin-bottom:16px}
    .booking-type-switch{justify-self:start}
    .booking-page__form-card :is(.pbf-form,.abf-form)>form{grid-template-columns:1fr;gap:18px}
    /* Put date choice first on narrow screens without altering the form DOM or submission. */
    .booking-page__form-card :is(.pbf-column,.abf-column):nth-child(2){order:-1}
    .booking-page__support-card{align-items:flex-start;flex-direction:column}
}
@media (max-width:640px){
    .booking-shell{width:min(calc(100% - 28px),var(--booking-max))}
    .booking-page__primary{padding:15px 0 28px}
    .booking-page__intro{gap:12px;margin-bottom:13px}
    .booking-page__heading h1{font-size:clamp(23px,6vw,29px);line-height:1.5}
    .booking-type-switch{display:grid;grid-template-columns:1fr 1fr;width:100%;border-radius:16px}
    .booking-type-switch__item{min-width:0;padding:9px 8px;font-size:13px}
    .booking-page__form-card{padding:14px;border-radius:18px}
    .booking-page__form-card :is(.pbf-mom-row,.abf-flex-row){grid-template-columns:1fr}
    .booking-page__form-card :is(.pbf-seg,.abf-seg){grid-template-columns:1fr}
    .booking-page__form-card :is(.pbf-note,.abf-note){padding:13px;font-size:13.5px}
    .booking-page__form-card :is(#pbf-date-inline,#abf-date-inline){padding:9px}
    .booking-page__form-card :is(.pbf-cal-grid,.abf-cal-grid){gap:4px}
    .booking-page__form-card :is(.pbf-day,.abf-day){min-height:48px;padding-inline:2px}
    .booking-page__support{padding-bottom:54px}
    .booking-page__support-card{padding:22px}
    .booking-page__support-card h2{font-size:23px}
    .booking-page :is(.pbf-modal,.abf-modal) .box{padding:20px}
}
