/* calendar-theme-active.css - Active calendar theme: typography, slots, services list, sparks, hero responsive lock */

/* ------------------- CALENDAR TYPOGRAPHY BOOST ------------------- */
.layout-container #bookingCalendar .calendar-title .cal-month,
.layout-container #bookingCalendar .calendar-title .cal-selected-day,
.form-calendar-overlay__mount #bookingCalendar .calendar-title .cal-month,
.form-calendar-overlay__mount #bookingCalendar .calendar-title .cal-selected-day {
    font-size: 1.25rem !important;
    line-height: 1.1 !important;
    letter-spacing: 0.055em !important;
}

.layout-container #bookingCalendar .cal-day-name,
.form-calendar-overlay__mount #bookingCalendar .cal-day-name {
    font-size: 0.88rem !important;
    letter-spacing: 0.1em !important;
}

.layout-container #bookingCalendar .cal-day,
.form-calendar-overlay__mount #bookingCalendar .cal-day {
    font-size: 1.18rem !important;
    font-weight: 800 !important;
}


.layout-container #bookingCalendar .slots-grid .slot-btn,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn {
    min-height: 6.42rem !important;
    padding: 0.94rem 1.06rem !important;
}

.layout-container #bookingCalendar .slot-icon-wrapper,
.form-calendar-overlay__mount #bookingCalendar .slot-icon-wrapper {
    width: 3.5rem !important;
    height: 3.5rem !important;
}

.layout-container #bookingCalendar .slot-clock,
.form-calendar-overlay__mount #bookingCalendar .slot-clock {
    width: 100% !important;
    height: 100% !important;
}

.layout-container #bookingCalendar .slot-time,
.form-calendar-overlay__mount #bookingCalendar .slot-time {
    font-size: 1.24rem !important;
    line-height: 1.12 !important;
}

.layout-container #bookingCalendar .slot-time .slot-time-main,
.form-calendar-overlay__mount #bookingCalendar .slot-time .slot-time-main {
    font-size: 1.56rem !important;
    letter-spacing: 0.03em !important;
}

.layout-container #bookingCalendar .slot-date-legal,
.form-calendar-overlay__mount #bookingCalendar .slot-date-legal {
    font-size: 0.96rem !important;
    letter-spacing: 0.03em !important;
    opacity: 0.84 !important;
}



/* Keep the same framed gradient style after dynamic calendar load */
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded {
    background: var(--calendar-min-bg) !important;
    border: 1px solid var(--calendar-min-border) !important;
    /* TODO-DELETE if stable after test: box-shadow: 0 0.28rem 0.72rem rgba(var(--site-bg-shadow-rgb), 0.12) !important */
    /* TODO-DELETE if stable after test: backdrop-filter: none !important */
    /* TODO-DELETE if stable after test: -webkit-backdrop-filter: none !important */
}

.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-header,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-grid,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-nav,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-block,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-header,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-nav,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-block {
    /* TODO-DELETE if stable after test: background: rgba(251, 245, 236, 0.98) !important */
    border-color: rgba(118, 86, 57, 0.22) !important;
    /* TODO-DELETE if stable after test: box-shadow: none !important */
    /* TODO-DELETE if stable after test: backdrop-filter: none !important */
    /* TODO-DELETE if stable after test: -webkit-backdrop-filter: none !important */
}


.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn {
    /* TODO-DELETE if stable after test: background: transparent !important */
    /* TODO-DELETE if stable after test: border: none !important */
    /* TODO-DELETE if stable after test: box-shadow: none !important */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible {
    /* TODO-DELETE if stable after test: background: transparent !important */
    /* TODO-DELETE if stable after test: border: none !important */
    /* TODO-DELETE if stable after test: color: var(--calendar-min-ink) !important */
    opacity: 1 !important;
    transform: none !important;
    /* TODO-DELETE if stable after test: box-shadow: 0 0 0 2px rgba(118, 86, 57, 0.22) !important */
}

/* Remove glitchy slot underlays/frames and heading frame in slots section */
.layout-container #bookingCalendar .slots-nav,
.form-calendar-overlay__mount #bookingCalendar .slots-nav,
.layout-container #bookingCalendar .slots-block,
.form-calendar-overlay__mount #bookingCalendar .slots-block {
    /* TODO-DELETE if stable after test: background: transparent !important */
    /* TODO-DELETE if stable after test: border: 0 !important */
    /* TODO-DELETE if stable after test: box-shadow: none !important */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.layout-container #bookingCalendar .slots-block,
.form-calendar-overlay__mount #bookingCalendar .slots-block {
    /* TODO-DELETE if stable after test: padding: 0 !important */
    min-height: 0 !important;
}

.layout-container #bookingCalendar .slots-grid .slot-btn,
.layout-container #bookingCalendar .slots-grid .slot-btn:focus-visible,
.layout-container #bookingCalendar .slots-grid .slot-btn:hover,
.layout-container #bookingCalendar .slots-grid .slot-btn:active,
.layout-container #bookingCalendar .slots-grid .slot-btn.slot-btn--clicked,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:hover,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:active,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn.slot-btn--clicked {
    /* TODO-DELETE if stable after test: background: transparent !important */
    border: 0 !important;
    /* TODO-DELETE if stable after test: box-shadow: none !important */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.layout-container #bookingCalendar .slots-grid .slot-btn::before,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn::before {
    content: none !important;
}


.layout-container #bookingCalendar .slots-shell .slots-nav,
.form-calendar-overlay__mount #bookingCalendar .slots-shell .slots-nav {
    /* no outer margin so nav and slots appear as a single unified zone */
    /* TODO-DELETE if stable after test: margin: 0 !important */
    padding: 0.3rem 0.4rem !important;
    min-height: 2.44rem !important;
}

/* Calendar palette lock: align with booking modal form shell */
.layout-container #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper {
    --calendar-min-bg: rgba(246, 237, 224, 0.9);
    --calendar-min-bg-strong: rgba(249, 240, 229, 0.98);
    --calendar-min-border: rgba(118, 86, 57, 0.26);
    --calendar-min-border-soft: rgba(118, 86, 57, 0.2);
    --calendar-min-ink: rgba(62, 45, 30, 0.96);
    --calendar-min-ink-muted: rgba(97, 73, 48, 0.68);
    --calendar-min-accent: rgba(118, 86, 57, 0.9);
    --calendar-min-accent-soft: rgba(118, 86, 57, 0.8);
    /* TODO-DELETE if stable after test: background: var(--calendar-min-bg) !important */
    border-color: var(--calendar-min-border) !important;
    /* TODO-DELETE if stable after test: box-shadow: 0 0.28rem 0.72rem rgba(var(--site-bg-shadow-rgb), 0.12) !important */
}











.layout-container #bookingCalendar .slot-clock .clock-file-mark,
.layout-container #bookingCalendar .slot-clock .clock-file-core,
.layout-container #bookingCalendar .slot-clock .clock-hand-shape,
.form-calendar-overlay__mount #bookingCalendar .slot-clock .clock-file-mark,
.form-calendar-overlay__mount #bookingCalendar .slot-clock .clock-file-core,
.form-calendar-overlay__mount #bookingCalendar .slot-clock .clock-hand-shape,
.layout-container #bookingCalendar .slot-clock .clock-center,
.form-calendar-overlay__mount #bookingCalendar .slot-clock .clock-center {
    fill: var(--calendar-min-ink) !important;
    stroke: none !important;
}

/* Keep deadline visually centered in the field */
#bookingModal #deadlineInputMain {
    text-align: center !important;
    text-align-last: center !important;
    padding-left: 0.95rem !important;
    padding-right: 0.95rem !important;
}

#bookingModal #deadlineInputMain::placeholder {
    text-align: center !important;
    text-align-last: center !important;
}

/* Keep booking field placeholders visually consistent. */
#bookingModal :is(input[name="name"],
    input[name="occupation"],
    textarea[name="notes"],
    input[name="phone"],
    input[name="email"],
    input[name="address_unit"],
    input[name="address_street"],
    input[name="address_zip"])::placeholder {
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    opacity: 0.82 !important;
    font-family: inherit !important;
    font-size: var(--booking-form-font-size) !important;
    font-weight: 400 !important;
    letter-spacing: 0.01em !important;
    font-style: normal !important;
    text-transform: none !important;
    text-align: left !important;
    text-align-last: left !important;
}

#bookingModal :is(input[name="address_zip"],
    input[name="dob"]) {
    text-align: left !important;
    text-align-last: left !important;
    padding-left: 0.9rem !important;
    padding-right: 0.9rem !important;
}

/* Final booking-form palette lock: match modal surface/element tones */
#bookingModal {
    --form-surface-bg:
        rgba(246, 237, 224, 0.9);
    --form-control-bg:
        rgba(251, 245, 236, 0.98);
    --form-control-bg-active:
        rgba(251, 245, 236, 0.98);
    --form-control-border: rgba(118, 86, 57, 0.26);
    --form-control-border-active: rgba(118, 86, 57, 0.48);
    --form-control-text: rgba(62, 45, 30, 0.98);
    --form-control-placeholder: rgba(97, 73, 48, 0.62);
}

#bookingModal .contact-form__group,
#bookingModal #bookingForm>.contact-form__group:first-child>div[onclick*="openCalendarBtn"],
#bookingModal .file-attach {
    background: var(--form-surface-bg) !important;
    border: 1px solid rgba(118, 86, 57, 0.22) !important;
    box-shadow: none !important;
}




#bookingModal .contact-form__input:focus::placeholder,
#bookingModal .contact-form__textarea:focus::placeholder {
    color: transparent !important;
    opacity: 0 !important;
}

#bookingModal .custom-select {
    --dropdown-trigger-bg: var(--form-control-bg);
    --dropdown-trigger-bg-active: var(--form-control-bg-active);
    --dropdown-trigger-border: var(--form-control-border);
    --dropdown-trigger-border-active: var(--form-control-border-active);
    --dropdown-panel-bg: rgba(251, 245, 236, 0.98);
    --dropdown-panel-border: rgba(118, 86, 57, 0.24);
    --dropdown-option-text: rgba(62, 45, 30, 0.98);
    --dropdown-placeholder: rgba(97, 73, 48, 0.62);
    --dropdown-option-hover-bg: rgba(182, 151, 121, 0.2);
    --dropdown-option-selected-bg: rgba(182, 151, 121, 0.3);
    --dropdown-option-selected-text: rgba(55, 39, 25, 0.99);
}


/* Main-page background palette lock for booking form + checkbox */
#bookingModal {
    --form-surface-bg:
        rgba(246, 237, 224, 0.9);
    --form-control-bg:
        rgba(251, 245, 236, 0.98);
    --form-control-bg-active:
        rgba(251, 245, 236, 0.98);
    --form-control-border: rgba(118, 86, 57, 0.26);
    --form-control-border-active: rgba(118, 86, 57, 0.48);
    --form-control-text: rgba(62, 45, 30, 0.98);
    --form-control-placeholder: rgba(97, 73, 48, 0.62);
    --form-checkbox-tone: rgba(var(--site-bg-dark-rgb), 0.78);
    --form-checkbox-tone-hover: rgba(var(--site-bg-dark-rgb), 0.88);
    --form-checkbox-check: rgba(255, 250, 244, 0.99);
}





/* Keep BOOK buttons synced with main-page BOOK color */
#headerBookBtn,
#footerBookBtn,
#bookingModal #confirmBookingBtn:not(:disabled):not([aria-disabled="true"]) {
    background: var(--book-main-tone) !important;
    border-color: var(--book-main-tone) !important;
}

#headerBookBtn:hover,
#headerBookBtn:focus-visible,
#footerBookBtn:hover,
#footerBookBtn:focus-visible,
#bookingModal #confirmBookingBtn:not(:disabled):not([aria-disabled="true"]):hover,
#bookingModal #confirmBookingBtn:not(:disabled):not([aria-disabled="true"]):focus-visible,
#bookingModal #confirmBookingBtn:not(:disabled):not([aria-disabled="true"]):active {
    background: var(--book-main-tone-hover) !important;
    border-color: var(--book-main-tone-hover) !important;
}





/* Unified redesign: booking form + calendar in site style */
#bookingModal {
    --site-ui-shell-bg:
        linear-gradient(158deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0.12) 42%, rgba(255, 255, 255, 0.05) 100%),
        linear-gradient(136deg, rgba(var(--site-bg-light-rgb), 0.28) 0%, rgba(var(--site-bg-mid-rgb), 0.24) 56%, rgba(var(--site-bg-dark-rgb), 0.2) 100%),
        rgba(var(--site-bg-light-rgb), 0.26);
    --site-ui-panel-bg: rgba(246, 237, 224, 0.88);
    --site-ui-control-bg: rgba(252, 247, 240, 0.98);
    --site-ui-control-bg-strong: rgba(255, 251, 246, 0.99);
    --site-ui-border: rgba(var(--site-bg-dark-rgb), 0.28);
    --site-ui-border-strong: rgba(var(--site-bg-dark-rgb), 0.46);
    --site-ui-ink: rgba(var(--modal-design-tone-rgb), 0.96);
    --site-ui-ink-muted: rgba(var(--modal-design-tone-rgb), 0.72);
}


#bookingModal #bookingForm>.contact-form__group,
#bookingModal #bookingForm>.contact-form__group:first-child>div[onclick*="openCalendarBtn"],
#bookingModal .file-attach {
    /* TODO-DELETE if stable after test: background: var(--site-ui-panel-bg) !important */
    /* TODO-DELETE if stable after test: border: 1px solid var(--site-ui-border) !important */
    /* TODO-DELETE if stable after test: box-shadow: none !important */
    border-radius: 0.92rem !important;
}




#bookingModal .custom-select {
    --dropdown-trigger-bg: var(--site-ui-control-bg);
    --dropdown-trigger-bg-active: var(--site-ui-control-bg-strong);
    --dropdown-trigger-border: var(--site-ui-border);
    --dropdown-trigger-border-active: var(--site-ui-border-strong);
    --dropdown-panel-bg: rgba(252, 247, 240, 0.98);
    --dropdown-panel-border: rgba(var(--site-bg-dark-rgb), 0.28);
    --dropdown-option-text: var(--site-ui-ink);
    --dropdown-placeholder: var(--site-ui-ink-muted);
    --dropdown-option-hover-bg: rgba(var(--site-bg-light-rgb), 0.18);
    --dropdown-option-selected-bg: rgba(var(--site-bg-light-rgb), 0.28);
    --dropdown-option-selected-text: rgba(var(--modal-design-tone-rgb), 0.98);
}




.layout-container #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper {
    --calendar-min-bg:
        linear-gradient(158deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0.12) 42%, rgba(255, 255, 255, 0.05) 100%),
        linear-gradient(136deg, rgba(var(--site-bg-light-rgb), 0.28) 0%, rgba(var(--site-bg-mid-rgb), 0.24) 56%, rgba(var(--site-bg-dark-rgb), 0.2) 100%),
        rgba(var(--site-bg-light-rgb), 0.26);
    --calendar-min-bg-strong: rgba(255, 251, 246, 0.99);
    --calendar-min-border: rgba(var(--site-bg-dark-rgb), 0.28);
    --calendar-min-border-soft: rgba(var(--site-bg-dark-rgb), 0.2);
    --calendar-min-ink: rgba(var(--modal-design-tone-rgb), 0.96);
    --calendar-min-ink-muted: rgba(var(--modal-design-tone-rgb), 0.72);
    --calendar-min-accent: rgba(var(--modal-design-tone-rgb), 0.9);
    --calendar-min-accent-soft: rgba(var(--modal-design-tone-rgb), 0.78);
    /* TODO-DELETE if stable after test: background: var(--calendar-min-bg) !important */
    /* TODO-DELETE if stable after test: border: 1px solid var(--calendar-min-border) !important */
    /* TODO-DELETE if stable after test: box-shadow: 0 1rem 2.2rem rgba(var(--site-bg-shadow-rgb), 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.36) !important */
}








/* Header hint shown with the first spark burst on BOOK button */
.header-spark-intro-hint {
    width: min(94vw, var(--calendar-main-max-width));
    max-width: min(94vw, var(--calendar-main-max-width));
    margin: 0 0 0.12rem;
    min-height: 1.3rem;
    text-align: center;
    font-family: 'Lato', sans-serif;
    font-size: clamp(0.94rem, 2.1vw, 1.06rem);
    font-weight: 700;
    letter-spacing: 0.015em;
    color: rgba(255, 255, 255, 0.96);
    opacity: 0;
    transform: translateY(0.16rem);
    transition: opacity 0.34s ease, transform 0.34s ease;
    pointer-events: none;
}

.header-spark-intro-hint.header-spark-intro-hint--visible {
    opacity: 1;
    transform: translateY(0);
}



/* 2026-03: Full palette refresh for booking calendar + intake form */
#bookingModal,
.layout-container #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper {
    --booking-rework-shell-bg:
        linear-gradient(155deg, rgba(116, 219, 255, 0.24) 0%, rgba(116, 219, 255, 0.06) 44%, rgba(8, 21, 35, 0.04) 100%),
        linear-gradient(138deg, rgba(7, 24, 40, 0.94) 0%, rgba(12, 33, 54, 0.92) 56%, rgba(18, 47, 72, 0.9) 100%);
    --booking-rework-panel-bg: rgba(14, 36, 58, 0.9);
    --booking-rework-panel-bg-strong: rgba(20, 47, 72, 0.94);
    --booking-rework-control-bg: rgba(23, 52, 79, 0.96);
    --booking-rework-control-bg-strong: rgba(31, 67, 97, 0.98);
    --booking-rework-border: rgba(120, 188, 224, 0.36);
    --booking-rework-border-strong: rgba(158, 226, 255, 0.62);
    --booking-rework-ink: rgba(236, 248, 255, 0.98);
    --booking-rework-ink-muted: rgba(170, 205, 226, 0.82);
    --booking-rework-accent: rgba(67, 201, 231, 0.92);
    --booking-rework-accent-soft: rgba(40, 176, 208, 0.92);
    --booking-rework-focus: rgba(95, 205, 239, 0.35);
    --booking-rework-shadow: rgba(4, 11, 20, 0.45);
}

#bookingModal {
    --site-ui-shell-bg: var(--booking-rework-shell-bg);
    --site-ui-panel-bg: var(--booking-rework-panel-bg);
    --site-ui-control-bg: var(--booking-rework-control-bg);
    --site-ui-control-bg-strong: var(--booking-rework-control-bg-strong);
    --site-ui-border: var(--booking-rework-border);
    --site-ui-border-strong: var(--booking-rework-border-strong);
    --site-ui-ink: var(--booking-rework-ink);
    --site-ui-ink-muted: var(--booking-rework-ink-muted);
    --book-main-tone: var(--booking-rework-accent);
    --book-main-tone-hover: var(--booking-rework-accent-soft);
    --form-hint-tone: var(--booking-rework-accent);
    --form-hint-tone-hover: var(--booking-rework-accent-soft);
}





#bookingModal .contact-form__input:focus,
#bookingModal .contact-form__textarea:focus,
#bookingModal .contact-form__input:focus-visible,
#bookingModal .contact-form__textarea:focus-visible,
#bookingModal .custom-select__trigger:focus-visible,
#bookingModal .custom-select.open .custom-select__trigger,
#bookingModal .contact-form__input--has-content,
#bookingModal .custom-select__trigger.contact-form__input--has-content {
    /* TODO-DELETE if stable after test: background: var(--site-ui-control-bg-strong) !important */
    /* TODO-DELETE if stable after test: border-color: var(--site-ui-border-strong) !important */
    /* TODO-DELETE if stable after test: color: var(--site-ui-ink) !important */
    /* TODO-DELETE if stable after test: -webkit-text-fill-color: var(--site-ui-ink) !important */
    caret-color: var(--site-ui-ink) !important;
    /* TODO-DELETE if stable after test: box-shadow: 0 0 0 2px var(--booking-rework-focus) !important */
}


#bookingModal .custom-select {
    --dropdown-trigger-bg: var(--site-ui-control-bg);
    --dropdown-trigger-bg-active: var(--site-ui-control-bg-strong);
    --dropdown-trigger-border: var(--site-ui-border);
    --dropdown-trigger-border-active: var(--site-ui-border-strong);
    --dropdown-panel-bg: rgba(19, 44, 67, 0.97);
    --dropdown-panel-border: var(--site-ui-border);
    --dropdown-option-text: var(--site-ui-ink);
    --dropdown-placeholder: var(--site-ui-ink-muted);
    --dropdown-option-hover-bg: rgba(95, 205, 239, 0.2);
    --dropdown-option-selected-bg: rgba(95, 205, 239, 0.3);
    --dropdown-option-selected-text: rgba(240, 252, 255, 0.99);
}
















#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked+.contact-form__checkbox-label,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked+.contact-form__checkbox-label span,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked+.contact-form__checkbox-label .contact-form__terms-link,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked+.contact-form__checkbox-label .contact-form__terms-link:hover {
    color: var(--site-ui-ink) !important;
    -webkit-text-fill-color: var(--site-ui-ink) !important;
}

.layout-container #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper {
    --calendar-min-bg: var(--booking-rework-shell-bg);
    --calendar-min-bg-strong: var(--booking-rework-panel-bg-strong);
    --calendar-min-border: var(--booking-rework-border);
    --calendar-min-border-soft: rgba(120, 188, 224, 0.26);
    --calendar-min-ink: var(--booking-rework-ink);
    --calendar-min-ink-muted: var(--booking-rework-ink-muted);
    --calendar-min-accent: var(--booking-rework-accent);
    --calendar-min-accent-soft: var(--booking-rework-accent-soft);
    /* TODO-DELETE if stable after test: background: var(--calendar-min-bg) !important */
    /* TODO-DELETE if stable after test: border: 1px solid var(--calendar-min-border) !important */
    /* TODO-DELETE if stable after test: box-shadow: 0 1rem 2.2rem var(--booking-rework-shadow), inset 0 1px 0 rgba(198, 235, 255, 0.28) !important */
}












.layout-container #bookingCalendar .slots-shell .slots-nav,
.form-calendar-overlay__mount #bookingCalendar .slots-shell .slots-nav {
    /* TODO-DELETE if stable after test: background: var(--booking-rework-control-bg) !important */
    border: 1px solid var(--calendar-min-border-soft) !important;
    border-radius: 0.72rem !important;
}










/* 2026-03.2: final brown lock (site background palette) */
#bookingModal,
.layout-container #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper {
    --booking-rework-shell-bg:
        linear-gradient(156deg, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.12) 38%, rgba(255, 255, 255, 0.04) 100%),
        linear-gradient(140deg, rgba(var(--site-bg-light-rgb), 0.34) 0%, rgba(var(--site-bg-mid-rgb), 0.3) 56%, rgba(var(--site-bg-dark-rgb), 0.4) 100%),
        rgba(var(--site-bg-mid-rgb), 0.32) !important;
    --booking-rework-panel-bg: rgba(246, 237, 224, 0.9) !important;
    --booking-rework-panel-bg-strong: rgba(251, 244, 235, 0.96) !important;
    --booking-rework-control-bg: rgba(252, 247, 240, 0.98) !important;
    --booking-rework-control-bg-strong: rgba(255, 250, 245, 0.99) !important;
    --booking-rework-border: rgba(118, 86, 57, 0.28) !important;
    --booking-rework-border-strong: rgba(118, 86, 57, 0.5) !important;
    --booking-rework-ink: rgba(62, 45, 30, 0.96) !important;
    --booking-rework-ink-muted: rgba(97, 73, 48, 0.72) !important;
    --booking-rework-accent: #5a3d2a !important;
    --booking-rework-accent-soft: #72523a !important;
    --booking-rework-focus: rgba(118, 86, 57, 0.22) !important;
    --booking-rework-shadow: rgba(58, 42, 29, 0.34) !important;
}

@keyframes bookingBrownCtaBreathV2 {

    0%,
    100% {
        box-shadow: 0 0.66rem 1.36rem rgba(58, 42, 29, 0.24);
    }

    50% {
        box-shadow: 0 0.86rem 1.58rem rgba(58, 42, 29, 0.32);
    }
}

@keyframes bookingBrownSelectedPulseV2 {

    0%,
    100% {
        box-shadow: 0 0.42rem 0.9rem rgba(58, 42, 29, 0.18);
    }

    50% {
        box-shadow: 0 0.56rem 1.06rem rgba(58, 42, 29, 0.28);
    }
}

#bookingModal {
    --site-ui-shell-bg: var(--booking-rework-shell-bg) !important;
    --site-ui-panel-bg: var(--booking-rework-panel-bg) !important;
    --site-ui-control-bg: var(--booking-rework-control-bg) !important;
    --site-ui-control-bg-strong: var(--booking-rework-control-bg-strong) !important;
    --site-ui-border: var(--booking-rework-border) !important;
    --site-ui-border-strong: var(--booking-rework-border-strong) !important;
    --site-ui-ink: var(--booking-rework-ink) !important;
    --site-ui-ink-muted: var(--booking-rework-ink-muted) !important;
    --book-main-tone: var(--booking-rework-accent) !important;
    --book-main-tone-hover: var(--booking-rework-accent-soft) !important;
    --form-hint-tone: var(--booking-rework-accent) !important;
    --form-hint-tone-hover: var(--booking-rework-accent-soft) !important;
}

#bookingModal .modal__content,
.form-calendar-overlay__panel,
.form-calendar-overlay:not(.form-calendar-overlay--quick-slots) .form-calendar-overlay__panel,
.form-calendar-overlay__panel.form-calendar-overlay__panel--compact {
    background: var(--booking-rework-shell-bg) !important;
    border-color: var(--booking-rework-border) !important;
    box-shadow:
        0 1rem 2.2rem var(--booking-rework-shadow),
        inset 0 1px 0 rgba(255, 242, 226, 0.32) !important;
}








#bookingModal[data-state="form"] #bookingForm .modal-sticky-actions #confirmBookingBtn,
#bookingModal .contact-form__submit-button {
    /* TODO-DELETE if stable after test: background: linear-gradient(180deg, rgba(146, 112, 84, 0.98) 0%, rgba(111, 79, 57, 0.96) 100%) !important */
    /* TODO-DELETE if stable after test: border: 1px solid rgba(229, 204, 178, 0.65) !important */
    /* TODO-DELETE if stable after test: color: rgba(255, 248, 239, 0.98) !important */
    animation: bookingBrownCtaBreathV2 3.8s ease-in-out infinite !important;
}


#bookingModal[data-state="form"] #bookingForm .modal-sticky-actions #confirmBookingBtn:disabled,
#bookingModal .contact-form__submit-button:disabled {
    /* TODO-DELETE if stable after test: background: rgba(188, 163, 139, 0.64) !important */
    /* TODO-DELETE if stable after test: border-color: rgba(204, 176, 150, 0.52) !important */
    /* TODO-DELETE if stable after test: color: rgba(99, 76, 57, 0.66) !important */
    animation: none !important;
}




.layout-container #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper {
    --calendar-min-bg: var(--booking-rework-shell-bg) !important;
    --calendar-min-bg-strong: var(--booking-rework-panel-bg-strong) !important;
    --calendar-min-border: var(--booking-rework-border) !important;
    --calendar-min-border-soft: rgba(118, 86, 57, 0.24) !important;
    --calendar-min-ink: var(--booking-rework-ink) !important;
    --calendar-min-ink-muted: var(--booking-rework-ink-muted) !important;
    --calendar-min-accent: var(--booking-rework-accent) !important;
    --calendar-min-accent-soft: var(--booking-rework-accent-soft) !important;
    /* TODO-DELETE if stable after test: background: var(--calendar-min-bg) !important */
    /* TODO-DELETE if stable after test: border: 1px solid var(--calendar-min-border) !important */
    /* TODO-DELETE if stable after test: box-shadow: 0 1rem 2.2rem var(--booking-rework-shadow), inset 0 1px 0 rgba(255, 242, 226, 0.28) !important */
}


.layout-container #bookingCalendar .calendar-nav-btn,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn,
.layout-container #bookingCalendar .cal-day:not(.cal-day--empty):not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy),
.form-calendar-overlay__mount #bookingCalendar .cal-day:not(.cal-day--empty):not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy),
.layout-container #bookingCalendar .slots-shell .slots-nav,
.form-calendar-overlay__mount #bookingCalendar .slots-shell .slots-nav {
    background: var(--booking-rework-control-bg) !important;
    border-color: var(--calendar-min-border-soft) !important;
    color: var(--calendar-min-ink) !important;
}


.layout-container #bookingCalendar .cal-day--selected,
.form-calendar-overlay__mount #bookingCalendar .cal-day--selected {
    /* TODO-DELETE if stable after test: background: var(--calendar-min-accent) !important */
    /* TODO-DELETE if stable after test: border-color: var(--calendar-min-accent) !important */
    /* TODO-DELETE if stable after test: color: rgba(255, 248, 239, 0.99) !important */
    animation: bookingBrownSelectedPulseV2 2.9s ease-in-out infinite !important;
}

.layout-container #bookingCalendar .cal-day--today,
.form-calendar-overlay__mount #bookingCalendar .cal-day--today {
    border-color: rgba(161, 126, 96, 0.76) !important;
}






.form-quick-slots__header-divider {
    background: rgba(118, 86, 57, 0.24) !important;
}

.form-quick-slots__no-date-btn,
.form-quick-slots__item {
    background: var(--booking-rework-control-bg) !important;
    border-color: rgba(118, 86, 57, 0.32) !important;
    color: var(--booking-rework-ink) !important;
}

.form-quick-slots__no-date-btn:hover,
.form-quick-slots__no-date-btn:focus-visible,
.form-quick-slots__item:hover,
.form-quick-slots__item:focus-visible {
    background: var(--booking-rework-control-bg-strong) !important;
    border-color: var(--booking-rework-border-strong) !important;
}



/* Booking form color pass: beige shell with lighter input fields */
#bookingModal {
    --booking-visual-shell-bg:
        linear-gradient(160deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0.08) 34%, rgba(255, 255, 255, 0.02) 100%),
        linear-gradient(138deg, rgba(212, 191, 169, 0.56) 0%, rgba(191, 167, 146, 0.5) 58%, rgba(157, 132, 108, 0.52) 100%),
        rgba(196, 173, 150, 0.48) !important;
    --booking-visual-panel-bg:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.02) 100%),
        rgba(209, 188, 166, 0.12) !important;
    --booking-visual-control-bg:
        linear-gradient(180deg, rgba(236, 223, 207, 0.26) 0%, rgba(220, 202, 182, 0.16) 100%),
        rgba(229, 214, 196, 0.14) !important;
    --booking-visual-control-bg-strong:
        linear-gradient(180deg, rgba(245, 235, 223, 0.34) 0%, rgba(227, 210, 190, 0.22) 100%),
        rgba(235, 220, 204, 0.18) !important;
    --booking-visual-border: rgba(255, 242, 226, 0.28) !important;
    --booking-visual-border-strong: rgba(255, 245, 233, 0.52) !important;
    --booking-visual-ink: rgba(255, 248, 239, 0.98) !important;
    --booking-visual-ink-muted: rgba(248, 235, 219, 0.78) !important;
}

#bookingModal .modal__content {
    /* TODO-DELETE if stable after test: background: var(--booking-visual-shell-bg) !important */
    border-color: rgba(255, 242, 226, 0.22) !important;
}








/* Quick slots window: color-only lock to Terms/Privacy modal palette */
.form-calendar-overlay.form-calendar-overlay--quick-slots {
    background: var(--intake-shell-overlay) !important;
    backdrop-filter: var(--intake-shell-overlay-backdrop) !important;
    -webkit-backdrop-filter: var(--intake-shell-overlay-backdrop) !important;
}



.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__hint,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__empty,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item-date,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item-time,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__loading .global-spinner__value {
    color: rgba(var(--modal-design-text-rgb), 0.95) !important;
    text-shadow: 0 1px 8px rgba(var(--site-bg-shadow-rgb), 0.12) !important;
}


.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__no-date-btn {
    /* TODO-DELETE if stable after test: background: radial-gradient(120% 140% at 18% 12%, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 48%), linear-gradient(180deg, rgba(var(--site-bg-light-rgb), 0.34) 0%, rgba(var(--site-bg-mid-rgb), 0.2) 46%, rgba(var(--site-bg-dark-rgb), 0.28) 100%), rgba(var(--site-bg-dark-rgb), 0.3) !important */
    border-color: rgba(var(--site-bg-light-rgb), 0.46) !important;
    /* TODO-DELETE if stable after test: color: rgba(var(--modal-design-text-rgb), 0.98) !important */
    /* TODO-DELETE if stable after test: box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.32), inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.14), 0 0.55rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.24) !important */
    /* TODO-DELETE if stable after test: text-shadow: none !important */
}


.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item:active,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__no-date-btn:active {
    background:
        radial-gradient(120% 140% at 18% 12%, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0) 46%),
        linear-gradient(180deg, rgba(var(--site-bg-mid-rgb), 0.28) 0%, rgba(var(--site-bg-dark-rgb), 0.34) 100%),
        rgba(var(--site-bg-dark-rgb), 0.34) !important;
    border-color: rgba(var(--site-bg-light-rgb), 0.58) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.22),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.22),
        0 0.36rem 0.82rem rgba(var(--site-bg-shadow-rgb), 0.2) !important;
}





/* Final unified modal + calendar theme lock aligned to Terms / Privacy */
:root {
    --modal-lock-overlay: var(--intake-shell-overlay);
    --modal-lock-surface: var(--intake-shell-surface);
    --modal-lock-shadow:
        0 1.24rem 2.72rem rgba(var(--site-bg-shadow-rgb), 0.38),
        0 0.2rem 0.52rem rgba(var(--site-bg-shadow-rgb), 0.16);
    --modal-lock-panel-bg:
        linear-gradient(146deg, rgba(var(--site-bg-light-rgb), 0.18) 0%, rgba(var(--site-bg-light-rgb), 0.05) 36%, transparent 74%),
        linear-gradient(58deg, rgba(var(--site-bg-light-rgb), 0.1) 0%, transparent 32%),
        linear-gradient(180deg, rgba(var(--site-bg-mid-rgb), 0.18) 0%, rgba(var(--site-bg-dark-rgb), 0.28) 100%),
        rgba(var(--site-bg-dark-rgb), 0.18);
    --modal-lock-control-bg:
        linear-gradient(146deg, rgba(var(--site-bg-light-rgb), 0.24) 0%, rgba(var(--site-bg-light-rgb), 0.08) 34%, transparent 74%),
        linear-gradient(58deg, rgba(var(--site-bg-light-rgb), 0.1) 0%, transparent 30%),
        linear-gradient(180deg, rgba(var(--site-bg-mid-rgb), 0.2) 0%, rgba(var(--site-bg-dark-rgb), 0.32) 100%),
        rgba(var(--site-bg-dark-rgb), 0.28);
    --modal-lock-control-bg-active:
        linear-gradient(146deg, rgba(var(--site-bg-light-rgb), 0.28) 0%, rgba(var(--site-bg-light-rgb), 0.1) 36%, transparent 74%),
        linear-gradient(58deg, rgba(var(--site-bg-light-rgb), 0.12) 0%, transparent 30%),
        linear-gradient(180deg, rgba(var(--site-bg-mid-rgb), 0.22) 0%, rgba(var(--site-bg-dark-rgb), 0.34) 100%),
        rgba(var(--site-bg-dark-rgb), 0.3);
    --modal-lock-button-bg:
        radial-gradient(120% 120% at 32% 18%, rgba(255, 255, 255, 0.45) 0%, rgba(255, 255, 255, 0) 52%),
        linear-gradient(180deg, rgb(var(--site-bg-light-rgb)) 0%, rgb(var(--site-bg-mid-rgb)) 100%);
    --modal-lock-button-bg-hover:
        radial-gradient(120% 120% at 34% 16%, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0) 54%),
        linear-gradient(180deg, rgb(var(--site-bg-light-rgb)) 0%, rgb(var(--site-bg-mid-rgb)) 100%);
    --modal-lock-button-bg-active:
        linear-gradient(180deg, rgb(var(--site-bg-light-rgb)) 0%, rgb(var(--site-bg-mid-rgb)) 100%);
    --modal-lock-ink: rgba(var(--modal-design-text-rgb), 0.98);
    --modal-lock-ink-muted: rgba(var(--modal-design-text-rgb), 0.84);
    --modal-lock-button-text: rgb(var(--modal-design-tone-rgb));
    --modal-lock-border-soft: rgba(var(--site-bg-light-rgb), 0.22);
    --modal-lock-border: rgba(var(--site-bg-light-rgb), 0.34);
    --modal-lock-border-strong: rgba(var(--site-bg-light-rgb), 0.58);
    --modal-lock-focus-ring: rgba(var(--site-bg-light-rgb), 0.22);
}

@keyframes bookingFormShellBreathFinal {

    0%,
    100% {
        box-shadow:
            0 1.24rem 2.72rem rgba(var(--site-bg-shadow-rgb), 0.38),
            0 0.2rem 0.52rem rgba(var(--site-bg-shadow-rgb), 0.16);
    }

    50% {
        box-shadow:
            0 1.5rem 3rem rgba(var(--site-bg-shadow-rgb), 0.44),
            0 0.26rem 0.7rem rgba(var(--site-bg-shadow-rgb), 0.2);
    }
}

@keyframes bookingFormFieldRiseFinal {
    from {
        opacity: 0;
        transform: translateY(0.6rem);
        filter: blur(0.18rem);
    }

    to {
        opacity: 1;
        transform: none;
        filter: none;
    }
}

@keyframes bookingPrimaryGlowFinal {

    0%,
    100% {
        filter: saturate(1) brightness(1);
    }

    50% {
        filter: saturate(1.08) brightness(1.05);
    }
}

.modal,
.camera-capture-modal,
.form-calendar-overlay {
    background: var(--modal-lock-overlay) !important;
    backdrop-filter: var(--intake-shell-overlay-backdrop) !important;
    -webkit-backdrop-filter: var(--intake-shell-overlay-backdrop) !important;
}

.modal__content,
#bookingModal .modal__content,
#intakeNoticeModal .modal__content,
#termsModal .modal__content,
#privacyModal .modal__content,
.camera-capture__panel,
.form-calendar-overlay__panel,
.form-calendar-overlay:not(.form-calendar-overlay--quick-slots) .form-calendar-overlay__panel,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-calendar-overlay__panel.form-calendar-overlay__panel--compact,
#bookingCalendar.calendar-wrapper,
.layout-container #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper {
    background: var(--modal-lock-surface) !important;
    border: 1px solid var(--modal-lock-border-soft) !important;
    box-shadow: var(--modal-lock-shadow) !important;
    backdrop-filter: var(--intake-shell-backdrop) !important;
    -webkit-backdrop-filter: var(--intake-shell-backdrop) !important;
}

.modal__title,
.modal__section-title,
.modal__body,
.modal__text,
.modal__footer-text,
.camera-capture__title,
.camera-capture__status,
.form-quick-slots__title,
.form-quick-slots__hint,
.form-quick-slots__empty,
.form-quick-slots__item-date,
.form-quick-slots__item-time,
.form-quick-slots__loading .global-spinner__value,
.layout-container #bookingCalendar .calendar-title,
.layout-container #bookingCalendar .calendar-title span,
.layout-container #bookingCalendar .cal-day-name,
.layout-container #bookingCalendar #slotsDayDisplay,
.layout-container #bookingCalendar .slot-time,
.layout-container #bookingCalendar .slot-time .slot-time-main,
.layout-container #bookingCalendar .slot-date-legal,
.form-calendar-overlay__mount #bookingCalendar .calendar-title,
.form-calendar-overlay__mount #bookingCalendar .calendar-title span,
.form-calendar-overlay__mount #bookingCalendar .cal-day-name,
.form-calendar-overlay__mount #bookingCalendar #slotsDayDisplay,
.form-calendar-overlay__mount #bookingCalendar .slot-time,
.form-calendar-overlay__mount #bookingCalendar .slot-time .slot-time-main,
.form-calendar-overlay__mount #bookingCalendar .slot-date-legal {
    color: var(--modal-lock-ink) !important;
    text-shadow: 0 1px 10px rgba(var(--site-bg-shadow-rgb), 0.18) !important;
}

.modal__body,
.modal__text,
.modal__footer-text,
.camera-capture__status,
.form-quick-slots__hint,
.form-quick-slots__empty,
.layout-container #bookingCalendar .slot-date-legal,
.form-calendar-overlay__mount #bookingCalendar .slot-date-legal,
.layout-container #bookingCalendar .cal-day-name,
.form-calendar-overlay__mount #bookingCalendar .cal-day-name {
    color: var(--modal-lock-ink-muted) !important;
}

/* Terms/Privacy modal closing note should match normal modal paragraphs. */
#termsModal .modal__footer-text,
#privacyModal .modal__footer-text {
    margin: 0.72rem 0 0 !important;
    padding-top: 0 !important;
    border-top: none !important;
    font-family: 'Lato', sans-serif !important;
    font-size: 1.2rem !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
    letter-spacing: 0.01em !important;
    text-align: left !important;
    color: rgba(255, 244, 231, 0.95) !important;
    text-shadow: 0 1px 8px rgba(var(--site-bg-shadow-rgb), 0.12) !important;
}

.modal__close,
.form-calendar-overlay__close {
    background: var(--modal-lock-button-bg) !important;
    border: 1px solid rgba(var(--site-bg-light-rgb), 0.74) !important;
    color: var(--modal-lock-button-text) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.24),
        0 0.56rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.34),
        0 0.12rem 0.28rem rgba(var(--site-bg-shadow-rgb), 0.22) !important;
    text-shadow: none !important;
}

.modal__close:hover,
.modal__close:focus-visible,
.form-calendar-overlay__close:hover,
.form-calendar-overlay__close:focus-visible {
    background: var(--modal-lock-button-bg-hover) !important;
    border-color: rgba(var(--site-bg-light-rgb), 0.82) !important;
    color: var(--modal-lock-button-text) !important;
}

.modal__close:active,
.form-calendar-overlay__close:active {
    background: var(--modal-lock-button-bg-active) !important;
    border-color: rgba(var(--site-bg-light-rgb), 0.76) !important;
}

#bookingModal .modal__title,
#bookingModal #modalAppointmentTime,
#bookingModal #modalAppointmentTime strong,
#bookingModal #bookingForm>.contact-form__group:first-child p,

#bookingModal .final-result-form__hello,
#bookingModal .final-result-form__lead {
    color: var(--modal-lock-ink) !important;
    -webkit-text-fill-color: var(--modal-lock-ink) !important;
    text-shadow: 0 1px 10px rgba(var(--site-bg-shadow-rgb), 0.2) !important;
}

#bookingModal .modal__title,
#bookingModal #modalAppointmentTime,
#bookingModal #modalAppointmentTime strong {
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
}


#bookingModal .contact-form__label,
#bookingModal .contact-form__checkbox-label,
#bookingModal .contact-form__terms-link,
#bookingModal .file-attach__title,
#bookingModal .file-attach__name,
#bookingModal .file-attach__drop-zone,
#bookingModal .file-attach__drop-zone p,
#bookingModal .booking-row__deadline-label,
#bookingModal .booking-row__deadline-optional,
#bookingModal .contact-form__terms-word {
    color: var(--modal-lock-ink) !important;
    text-shadow: 0 1px 8px rgba(var(--site-bg-shadow-rgb), 0.14) !important;
}

#bookingModal #bookingForm>.contact-form__group,
#bookingModal #bookingForm>.contact-form__group:first-child>div[onclick*="openCalendarBtn"],
#bookingModal .file-attach,
#bookingModal[data-state="form"] .modal-sticky-actions,
.camera-capture__video-wrap,
.layout-container #bookingCalendar .calendar-header,
.layout-container #bookingCalendar .calendar-grid,
.layout-container #bookingCalendar .slots-shell,
.layout-container #bookingCalendar .slots-nav,
.layout-container #bookingCalendar .slots-block,
.form-calendar-overlay__mount #bookingCalendar .calendar-header,
.form-calendar-overlay__mount #bookingCalendar .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar .slots-shell,
.form-calendar-overlay__mount #bookingCalendar .slots-nav,
.form-calendar-overlay__mount #bookingCalendar .slots-block {
    background: var(--modal-lock-panel-bg) !important;
    border-color: var(--modal-lock-border-soft) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        0 0.38rem 0.9rem rgba(var(--site-bg-shadow-rgb), 0.12) !important;
}

#bookingModal .contact-form__input,
#bookingModal .contact-form__textarea,
#bookingModal .custom-select__trigger,
#bookingModal .booking-static-province,
#bookingModal .file-attach__drop-zone,
.layout-container #bookingCalendar .calendar-nav-btn,
.layout-container #bookingCalendar .cal-day:not(.cal-day--empty):not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy),
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn,
.form-calendar-overlay__mount #bookingCalendar .cal-day:not(.cal-day--empty):not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy) {
    /* TODO-DELETE if stable after test: background: var(--modal-lock-control-bg) !important */
    border-color: var(--modal-lock-border) !important;
    /* TODO-DELETE if stable after test: color: var(--modal-lock-ink) !important */
    /* TODO-DELETE if stable after test: -webkit-text-fill-color: var(--modal-lock-ink) !important */
    /* TODO-DELETE if stable after test: box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 0.32rem 0.82rem rgba(var(--site-bg-shadow-rgb), 0.16) !important */
}

#bookingModal .contact-form__input:focus,
#bookingModal .contact-form__textarea:focus,
#bookingModal .contact-form__input:focus-visible,
#bookingModal .contact-form__textarea:focus-visible,
#bookingModal .custom-select__trigger:focus-visible,
#bookingModal .custom-select.open .custom-select__trigger,
#bookingModal .contact-form__input--has-content,
#bookingModal .custom-select__trigger.contact-form__input--has-content,
#bookingModal .file-attach__drop-zone:hover,
#bookingModal .file-attach__drop-zone:focus-visible,
.layout-container #bookingCalendar .calendar-nav-btn:hover,
.layout-container #bookingCalendar .calendar-nav-btn:focus-visible,
.layout-container #bookingCalendar .cal-day:hover:not(.cal-day--empty):not(.cal-day--disabled),
.layout-container #bookingCalendar .cal-day:focus-visible:not(.cal-day--empty):not(.cal-day--disabled),
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn:hover,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar .cal-day:hover:not(.cal-day--empty):not(.cal-day--disabled),
.form-calendar-overlay__mount #bookingCalendar .cal-day:focus-visible:not(.cal-day--empty):not(.cal-day--disabled) {
    background: var(--modal-lock-control-bg-active) !important;
    border-color: var(--modal-lock-border-strong) !important;
    color: var(--modal-lock-ink) !important;
    -webkit-text-fill-color: var(--modal-lock-ink) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.24),
        0 0 0 1px var(--modal-lock-focus-ring),
        0 0.62rem 1.24rem rgba(var(--site-bg-shadow-rgb), 0.22) !important;
}



#bookingModal .custom-options,
#bookingModal .custom-option,
#bookingModal .custom-option:hover,
#bookingModal .custom-option:focus-visible,
#bookingModal .custom-option.selected {
    color: var(--modal-lock-ink) !important;
    -webkit-text-fill-color: var(--modal-lock-ink) !important;
}




#bookingModal .contact-form__checkbox:checked,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked:hover,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked:active {
    /* TODO-DELETE if stable after test: background: var(--modal-lock-button-bg) !important */
    border-color: rgba(var(--site-bg-light-rgb), 0.74) !important;
    /* TODO-DELETE if stable after test: box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78), inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.24), 0 0.56rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.28) !important */
}


#bookingModal[data-state="form"] #bookingForm .modal-sticky-actions #confirmBookingBtn,
#bookingModal .contact-form__submit-button,
#intakeNoticeModal .intake-notice-modal__ok,
.camera-capture__actions .contact-form__submit-button,
#bookingModal[data-state="success"] .final-result-call,
#bookingModal[data-state="success"] .final-result-done,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__no-date-btn,
.layout-container #bookingCalendar .slots-grid .slot-btn,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item {
    background: var(--modal-lock-button-bg) !important;
    border: 1px solid rgba(var(--site-bg-light-rgb), 0.74) !important;
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.24),
        0 0.56rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.28) !important;
    text-shadow: none !important;
}

#bookingModal[data-state="form"] #bookingForm .modal-sticky-actions #confirmBookingBtn:hover,
#bookingModal[data-state="form"] #bookingForm .modal-sticky-actions #confirmBookingBtn:focus-visible,
#bookingModal[data-state="form"] #bookingForm .modal-sticky-actions #confirmBookingBtn:active,
#bookingModal .contact-form__submit-button:hover,
#bookingModal .contact-form__submit-button:focus-visible,
#bookingModal .contact-form__submit-button:active,
#intakeNoticeModal .intake-notice-modal__ok:hover,
#intakeNoticeModal .intake-notice-modal__ok:focus-visible,
.camera-capture__actions .contact-form__submit-button:hover,
.camera-capture__actions .contact-form__submit-button:focus-visible,
#bookingModal[data-state="success"] .final-result-call:hover,
#bookingModal[data-state="success"] .final-result-call:focus-visible,
#bookingModal[data-state="success"] .final-result-done:hover,
#bookingModal[data-state="success"] .final-result-done:focus-visible,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__no-date-btn:hover,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__no-date-btn:focus-visible,
.layout-container #bookingCalendar .slots-grid .slot-btn:hover,
.layout-container #bookingCalendar .slots-grid .slot-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:hover,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:focus-visible,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item:hover,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item:focus-visible {
    background: var(--modal-lock-button-bg-hover) !important;
    border-color: rgba(var(--site-bg-light-rgb), 0.82) !important;
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.86),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.26),
        0 0.7rem 1.34rem rgba(var(--site-bg-shadow-rgb), 0.34) !important;
}

/* Camera modal actions: remove lower inset outline, keep the same overall look. */
#cameraSnapBtn,
#cameraCancelBtn {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        0 0.56rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.28) !important;
}

#cameraSnapBtn:hover,
#cameraSnapBtn:focus-visible,
#cameraSnapBtn:active,
#cameraCancelBtn:hover,
#cameraCancelBtn:focus-visible,
#cameraCancelBtn:active {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.86),
        0 0.7rem 1.34rem rgba(var(--site-bg-shadow-rgb), 0.34) !important;
}

/* Camera modal layout: Capture centered at the bottom, Cancel as top-left close icon. */
#cameraCaptureModal .camera-capture__panel {
    position: relative !important;
    padding-top: clamp(2.5rem, 6.6vw, 3rem) !important;
}

#cameraCaptureModal .camera-capture__actions {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0 !important;
    margin-top: 0.55rem;
}

#cameraCaptureModal #cameraSnapBtn {
    width: min(14.5rem, 100%) !important;
    max-width: 100% !important;
    margin: 0 auto !important;
}

#cameraCaptureModal #cameraCancelBtn {
    position: absolute !important;
    top: clamp(0.74rem, 2vw, 0.95rem) !important;
    left: clamp(0.74rem, 2vw, 0.95rem) !important;
    right: auto !important;
    width: 2.1rem !important;
    height: 2.1rem !important;
    min-width: 2.1rem !important;
    min-height: 2.1rem !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 999px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0 !important;
    line-height: 0 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    z-index: 12 !important;
}

#cameraCaptureModal #cameraCancelBtn::before {
    content: "\00d7";
    font-size: 1.22rem;
    line-height: 1;
    font-weight: 800;
}

/* Main-page BOOK buttons: match Form Notice button style (no border). */
#headerBookBtn:not(:disabled):not([aria-disabled="true"]),
#footerBookBtn:not(:disabled):not([aria-disabled="true"]) {
    /* TODO-DELETE if stable after test: background: var(--modal-lock-button-bg) !important */
    /* TODO-DELETE if stable after test: color: var(--modal-lock-button-text) !important */
    /* TODO-DELETE if stable after test: -webkit-text-fill-color: var(--modal-lock-button-text) !important */
    /* TODO-DELETE if stable after test: border: none !important */
    /* TODO-DELETE if stable after test: box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78), inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.24), 0 0.56rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.28) !important */
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}


#headerBookBtn:not(:disabled):not([aria-disabled="true"]) #headerBookBtnText,
#headerBookBtn:not(:disabled):not([aria-disabled="true"]) #headerBookBtnText span,
#footerBookBtn:not(:disabled):not([aria-disabled="true"]) #footerBookBtnText,
#footerBookBtn:not(:disabled):not([aria-disabled="true"]) #footerBookBtnText span {
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    text-shadow: none !important;
    letter-spacing: 0.06em !important;
}

#bookingModal #bookingStatus {
    /* TODO-DELETE if stable after test: background: var(--modal-lock-panel-bg) !important */
    border-color: var(--modal-lock-border) !important;
    /* TODO-DELETE if stable after test: color: var(--modal-lock-ink) !important */
    /* TODO-DELETE if stable after test: -webkit-text-fill-color: var(--modal-lock-ink) !important */
    /* TODO-DELETE if stable after test: text-shadow: 0 1px 8px rgba(var(--site-bg-shadow-rgb), 0.18) !important */
    /* TODO-DELETE if stable after test: box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 0.34rem 0.84rem rgba(var(--site-bg-shadow-rgb), 0.14) !important */
}




#bookingModal[data-state="form"] #bookingForm .modal-sticky-actions #confirmBookingBtn:disabled,
#bookingModal .contact-form__submit-button:disabled {
    background: rgba(var(--site-bg-light-rgb), 0.42) !important;
    border-color: rgba(var(--site-bg-light-rgb), 0.42) !important;
    color: rgba(var(--modal-design-tone-rgb), 0.58) !important;
    -webkit-text-fill-color: rgba(var(--modal-design-tone-rgb), 0.58) !important;
    box-shadow: none !important;
}

#bookingModal[data-state="success"] .final-result-form__icon,
#bookingModal[data-state="success"] .final-result-form__icon svg,
#bookingModal[data-state="success"] .final-result-warning,
#bookingModal[data-state="success"] .final-result-referral__status--success,
#bookingModal[data-state="success"] .final-result-referral__status--warning,
#bookingModal[data-state="success"] .final-result-referral__status--error {
    color: var(--modal-lock-ink) !important;
    -webkit-text-fill-color: var(--modal-lock-ink) !important;
}

#bookingModal[data-state="success"] .final-result-warning {
    background: var(--modal-lock-panel-bg) !important;
    border-color: var(--modal-lock-border) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        0 0.34rem 0.86rem rgba(var(--site-bg-shadow-rgb), 0.14) !important;
}

#bookingModal[data-state="success"] .final-result-form__icon svg {
    filter: drop-shadow(0 0 18px rgba(var(--site-bg-light-rgb), 0.48)) !important;
}




.month-switch-overlay,
.global-spinner {
    /* TODO-DELETE if stable after test: background: rgba(var(--modal-design-tone-rgb), 0.46) !important */
    backdrop-filter: blur(12px) saturate(118%) !important;
    -webkit-backdrop-filter: blur(12px) saturate(118%) !important;
}

.month-switch-overlay__track,
.global-spinner__track,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__loading .global-spinner__track {
    stroke: rgba(var(--site-bg-light-rgb), 0.24) !important;
}

.month-switch-overlay__fill,
.global-spinner__glow,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__loading .global-spinner__glow {
    stroke: rgba(var(--modal-design-text-rgb), 0.98) !important;
    filter:
        drop-shadow(0 0 14px rgba(var(--site-bg-light-rgb), 0.46)) drop-shadow(0 0 28px rgba(var(--site-bg-light-rgb), 0.24)) !important;
}


#bookingModal.modal--active[data-state="form"] .modal__content {
    animation: none !important;
}

#bookingModal.modal--active[data-state="form"] #bookingForm .modal-sticky-actions #confirmBookingBtn {
    animation: bookingPrimaryGlowFinal 3.2s ease-in-out infinite 1s !important;
}

#bookingModal.modal--active[data-state="form"] #bookingForm>.contact-form__group,
#bookingModal.modal--active[data-state="form"] #bookingForm>.contact-form__checkbox-wrapper,
#bookingModal.modal--active[data-state="form"] #bookingForm>.file-attach,
#bookingModal.modal--active[data-state="form"] #bookingForm .modal-sticky-actions {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
}

/* ======== MOBILE RESPONSIVE STYLES ======== */
@media (max-width: 768px) {

    /* Root Variables for Mobile */
    :root {
        --major-block-gap: clamp(1.5rem, 3.8vw, 2.5rem);
        --layout-stack-gap: clamp(1.5rem, 3.5vw, 2.2rem);
        --hero-contact-gap-bottom: clamp(1rem, 3vw, 1.5rem);
        --hero-book-gap-top: clamp(0.8rem, 2.5vw, 1.3rem);
        --hero-book-gap-bottom: clamp(1.5rem, 4vw, 2.2rem);
        --calendar-main-max-width: 100%;
    }

    /* Header Responsive */
    .header {
        padding: clamp(0.8rem, 2vw, 1.5rem) clamp(1rem, 3vw, 1.5rem) clamp(1rem, 3vw, 1.5rem);
        width: min(100%, 100vw);
        max-width: 100%;
    }

    .header__title {
        font-size: clamp(1.1rem, 4vw, 1.5rem);
        margin-bottom: 0.2rem;
        letter-spacing: 1px;
    }

    .header__subtitle {
        font-size: clamp(1.8rem, 7vw, 3.0rem);
        margin-bottom: 1.5rem;
        letter-spacing: -1px;
    }

    .header__description {
        font-size: 10.5pt;
        margin-bottom: 1.8rem;
        padding: 0 clamp(1rem, 3vw, 1.5rem);
        line-height: 1;
    }

    .header__description span {
        margin: 0.25rem 0 0;
    }

    /* Content Blocks Mobile */
    .header__content-block {
        width: min(100%, 100vw);
        max-width: 100%;
        padding: 0 clamp(1rem, 3vw, 1.5rem);
        margin: 2.5rem auto 2rem;
    }

    .header__content-header {
        font-size: clamp(1.2rem, 4vw, 1.5rem);
        margin: 2.5rem 0 1.5rem;
    }

    .header__content-subheader {
        font-size: clamp(1rem, 3vw, 1.15rem);
        margin-bottom: 0.8rem;
    }

    .header__content-text {
        font-size: 0.95rem;
        line-height: 1.5;
        margin-bottom: 1rem;
    }

    /* Layout Container Mobile */
    .layout-container {
        width: min(100%, 100vw);
        max-width: 100%;
        padding: 0 clamp(1rem, 3vw, 1.5rem);
    }

    /* Contact Form Mobile */
    .contact-form {
        padding: 0;
    }

    #calendarHeaderTitle {
        font-size: clamp(1.4rem, 5vw, 1.8rem);
        margin-bottom: 1.5rem;
    }

    /* Calendar Wrapper Mobile */
    .calendar-wrapper {
        width: 100%;
        max-width: 100%;
        padding: 0;
    }

    .calendar-scale-wrapper {
        width: 100%;
        max-width: 100%;
        padding: 0;
    }

    .calendar-grid {
        grid-template-columns: repeat(7, 1fr);
        gap: clamp(0.3rem, 1vw, 0.5rem);
        padding: clamp(1rem, 3vw, 1.5rem) clamp(0.5rem, 2vw, 1rem);
    }

    .calendar-day {
        min-height: clamp(3rem, 8vw, 3.5rem);
        font-size: clamp(0.75rem, 2vw, 0.85rem);
        padding: clamp(0.3rem, 1vw, 0.5rem);
    }

    /* Form Inputs Mobile */
    .contact-form__input,
    .contact-form__textarea,
    .custom-select__trigger {
        font-size: 16px;
        /* Prevent iOS zoom */
        padding: clamp(0.8rem, 2.5vw, 1rem);
    }

    .contact-form__input,
    .custom-select__trigger {
        min-height: clamp(2.8rem, 8vw, 3.2rem);
        height: auto;
    }

    .contact-form__textarea {
        min-height: clamp(6rem, 15vw, 8rem);
    }

    .file-attach__btn {
        min-height: clamp(4.5rem, 12vw, 5.5rem);
    }

    /* Buttons Mobile */
    .footer-book-btn,
    .contact-form__submit-button {
        font-size: clamp(0.9rem, 3vw, 1rem);
        padding: clamp(0.7rem, 2vw, 0.9rem) clamp(1.5rem, 4vw, 2rem);
        margin: clamp(1.5rem, 3vw, 2.5rem) auto clamp(1.5rem, 3vw, 2rem);
    }

    #confirmBookingBtn {
        font-size: clamp(1rem, 3.5vw, 1.4rem);
        padding: clamp(0.7rem, 2.5vw, 0.9rem) clamp(1.5rem, 4vw, 2rem);
        min-height: clamp(4rem, 10vw, 4.2rem);
        width: auto;
    }

    /* Modal Mobile */
    .modal__content {
        width: min(100%, calc(100vw - 2rem)) !important;
        max-width: none !important;
        margin: 0 auto;
        padding: clamp(1.5rem, 3vw, 2rem);
        max-height: 90vh;
        overflow-y: auto;
    }

    .modal__body {
        padding: 0;
    }

    .modal__title {
        font-size: clamp(1.3rem, 4vw, 1.6rem);
        margin-bottom: 1.5rem;
    }

    .modal__section-title {
        font-size: clamp(1rem, 3vw, 1.2rem);
        margin-bottom: 1.2rem;
    }

    .modal__text {
        font-size: 0.95rem;
        line-height: 1.5;
    }

    /* FAQ Mobile */
    .faq__question {
        font-size: clamp(1rem, 2.8vw, 1.1rem);
        gap: 0.5rem;
    }

    .faq__answer {
        font-size: 0.95rem !important;
        padding-left: clamp(0.8rem, 2vw, 1.2rem) !important;
        padding-right: clamp(0.5rem, 2vw, 1rem) !important;
    }

    #faqSpoiler .faq__question {
        max-width: min(95%, 35rem);
        font-size: clamp(0.95rem, 2.5vw, 1rem);
        padding: 0.6rem 0.8rem;
        border-radius: 0.9rem 0.9rem 0.15rem 0.9rem;
    }

    #faqSpoiler .faq__answer {
        max-width: min(93%, 35rem);
        /* TODO-DELETE if stable after test: font-size: 0.95rem !important */
        padding: 0.7rem 0.85rem !important;
        border-radius: 0.9rem 0.9rem 0.9rem 0.15rem;
    }

    /* Section Title Mobile */
    .section-title {
        font-size: clamp(1.2rem, 4.5vw, 1.5rem);
        margin: 3rem 0 1.8rem;
    }


    .services-list .header__content-subheader {
        font-size: clamp(1rem, 3vw, 1.15rem);
        margin-bottom: 0.6rem;
    }

    .services-list .header__content-text {
        font-size: 0.95rem;
        line-height: 1.5;
        /* TODO-DELETE if stable after test: margin-bottom: 0.8rem !important */
    }

    /* Footer Mobile */
    .footer {
        padding: clamp(1.5rem, 3vw, 2rem) clamp(1rem, 3vw, 1.5rem);
        margin-bottom: 0;
    }

    .footer__hours,
    .footer__copyright,
    .footer__privacy-note-block .privacy-note {
        font-size: 0.85rem;
        line-height: 1.4;
    }

    /* Top and Bottom Bars */
    .top-bar,
    .bottom-bar {
        padding: 0;
        min-height: 0;
    }

    /* Check for overflow issues */
    body {
        overflow-x: hidden;
    }

    .header,
    .layout-container,
    .contact-form {
        overflow-x: hidden;
    }

    /* Ensure no horizontal scroll */
    * {
        max-width: 100%;
    }




    .contact-form__checkbox {
        min-width: 1.3rem;
        min-height: 1.3rem;
        width: 1.3rem;
        height: 1.3rem;
        flex-shrink: 0;
    }

    /* Book Button Mobile */
    .book-btn-wrapper {
        margin-top: var(--hero-book-gap-top);
        margin-bottom: var(--hero-book-gap-bottom);
    }

    /* Dropdown Mobile */
    .custom-select__trigger {
        padding: clamp(0.75rem, 2vw, 1rem);
        min-height: clamp(2.8rem, 8vw, 3.2rem);
        font-size: 16px;
    }

    .custom-options {
        max-height: clamp(200px, 50vh, 400px);
        overflow-y: auto;
    }

    #cityCustomSelect .custom-options {
        max-height: clamp(250px, 60vh, 450px);
    }

    /* Post Success Screen Mobile */
    .post-success-screen__content {
        padding: clamp(1rem, 3vw, 2rem);
        gap: 0.5rem;
    }

    .post-success-screen__brand {
        font-size: clamp(1.5rem, 6vw, 3rem);
        letter-spacing: 0.15rem;
    }

    .post-success-screen__brand-sub {
        font-size: clamp(0.85rem, 2.5vw, 1.2rem);
        margin-top: 0.15rem;
    }

    .post-success-screen__title {
        font-size: clamp(0.95rem, 3vw, 1.2rem);
        margin-top: 0.2rem;
    }

    .post-success-screen__message {
        font-size: clamp(0.95rem, 3vw, 1.1rem);
    }

    .post-success-screen__phone {
        font-size: clamp(1.3rem, 5vw, 2rem);
        margin-top: clamp(0.5rem, 2vw, 1rem);
    }

    .post-success-screen__reminder {
        font-size: clamp(0.8rem, 2.5vw, 0.9rem);
        padding: clamp(0.6rem, 1.5vw, 0.8rem);
        margin-top: clamp(0.5rem, 1.5vw, 0.8rem);
    }

    /* Prevent pinch zoom on inputs */
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="date"],
    textarea {
        font-size: 16px;
    }
}

/* Extra Small Devices (< 480px) */
@media (max-width: 480px) {
    .header {
        padding: 0.8rem 1rem 1rem;
    }

    .header__title {
        font-size: 1rem;
        letter-spacing: 0.5px;
    }

    .header__subtitle {
        font-size: clamp(1.5rem, 6vw, 2.2rem);
        margin-bottom: 1rem;
        letter-spacing: -0.5px;
    }

    .header__description {
        font-size: 10.5pt;
        margin-bottom: 1.2rem;
        padding: 0 1rem;
        line-height: 1.3;
    }

    .header__content-block {
        margin: 1.5rem auto 1rem;
        padding: 0 1rem;
    }

    .header__content-header {
        font-size: 1.1rem;
        margin: 1.5rem 0 1rem;
    }

    #calendarHeaderTitle {
        font-size: 1.3rem;
        margin-bottom: 1rem;
    }

    .calendar-grid {
        padding: 1rem 0.5rem;
    }

    .contact-form__input,
    .contact-form__textarea,
    .custom-select__trigger {
        font-size: 16px;
        padding: 0.7rem;
        border-radius: 0.6rem;
    }

    .footer-book-btn,
    .contact-form__submit-button {
        font-size: 0.9rem;
        padding: 0.65rem 1.5rem;
        margin: 1.2rem auto 1rem;
    }

    .modal__content {
        width: calc(100vw - 1.5rem) !important;
        padding: 1.2rem !important;
    }

    /* Checkbox mobile friendly */
    .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox {
        width: 1.2rem;
        height: 1.2rem;
    }

}

/* Landscape Mobile (max-height approach) */
@media (max-height: 500px) and (orientation: landscape) {
    .header {
        padding: 0.5rem clamp(1rem, 3vw, 1.5rem) 0.8rem;
    }

    .header__subtitle {
        margin-bottom: 0.5rem;
    }

    .header__description {
        margin-bottom: 0.8rem;
        font-size: 10.5pt;
    }

    .book-btn-wrapper {
        margin-top: 0.5rem;
        margin-bottom: 0.8rem;
    }

    .header__content-block {
        margin: 1rem auto 0.8rem;
    }

    .layout-container {
        margin-top: 1rem;
    }
}

/* iPad/Tablet Optimization (769px to 1024px) */
@media (min-width: 769px) and (max-width: 1024px) {
    :root {
        --calendar-main-max-width: 90%;
    }

    .header {
        width: min(95vw, 42rem);
        padding: clamp(1.2rem, 2.5vw, 1.8rem) clamp(1.2rem, 3vw, 1.8rem);
    }

    .layout-container {
        width: min(95vw, 42rem);
        padding: 0 clamp(1.2rem, 3vw, 1.8rem);
    }

    .calendar-grid {
        grid-template-columns: repeat(7, 1fr);
        gap: 0.4rem;
    }

    .modal__content {
        max-width: min(95vw, 700px) !important;
    }
}

/* Touch Device Improvements */
@media (hover: none) and (pointer: coarse) {

    button,
    a,
    .faq__question,
    .custom-option {
        min-height: 44px;
        min-width: 44px;
        padding: clamp(0.6rem, 2vw, 0.9rem) clamp(1rem, 3vw, 1.5rem);
    }

    .contact-form__checkbox {
        min-width: 1.5rem;
        min-height: 1.5rem;
    }

    .faq__question {
        padding: clamp(0.7rem, 2vw, 1rem);
    }
}
    

/* Final warm booking form + calendar lock loaded after external CSS */
:root {
    --booking-warm-shell:
        linear-gradient(180deg, rgba(228, 211, 193, 0.96) 0%, rgba(205, 184, 163, 0.95) 100%);
    --booking-warm-panel:
        linear-gradient(180deg, rgba(245, 236, 225, 0.62) 0%, rgba(213, 193, 172, 0.42) 100%),
        rgba(205, 184, 163, 0.34);
    --booking-warm-input:
        linear-gradient(180deg, rgba(255, 250, 243, 0.96) 0%, rgba(239, 227, 212, 0.94) 100%);
    --booking-warm-input-hover:
        linear-gradient(180deg, rgba(255, 252, 246, 0.98) 0%, rgba(243, 232, 217, 0.96) 100%);
    --booking-warm-button:
        linear-gradient(180deg, rgba(148, 111, 82, 0.98) 0%, rgba(114, 82, 58, 0.98) 100%);
    --booking-warm-button-hover:
        linear-gradient(180deg, rgba(160, 122, 91, 0.98) 0%, rgba(124, 90, 64, 0.98) 100%);
    --booking-warm-border: rgba(140, 109, 83, 0.34);
    --booking-warm-border-strong: rgba(126, 96, 72, 0.52);
    --booking-warm-shadow: rgba(90, 66, 47, 0.22);
    --booking-warm-shadow-soft: rgba(90, 66, 47, 0.12);
    --booking-warm-ink: #4e392a;
    --booking-warm-ink-soft: rgba(78, 57, 42, 0.78);
    --booking-warm-ink-strong: #fffaf3;
    --booking-warm-cream: #fff8ef;
    --booking-warm-highlight: rgba(184, 146, 111, 0.18);
    --booking-warm-highlight-strong: rgba(184, 146, 111, 0.28);
}

#bookingModal .modal__content,
#bookingModal.booking-modal--flat .modal__content,
#bookingModal.booking-modal--flat[data-state="form"] .modal__content {
    background: var(--booking-warm-shell) !important;
    border: 1px solid rgba(255, 248, 239, 0.44) !important;
    box-shadow:
        0 1.4rem 3rem rgba(90, 66, 47, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.32) !important;
}

#bookingModal .modal__title,
#bookingModal .modal__title *,
#bookingModal .modal__body,
#bookingModal .contact-form__label,
#bookingModal .contact-form__checkbox-label,
#bookingModal .contact-form__terms-link,
#bookingModal .contact-form__terms-word,
#bookingModal .file-attach__title,
#bookingModal .file-attach__drop-zone,
#bookingModal .file-attach__drop-zone p,

#bookingModal #bookingStatus,
#bookingModal .final-result-form__hello,
#bookingModal .final-result-form__lead,
#bookingModal .final-result-warning {
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    text-shadow: none !important;
}

#bookingModal .modal__title,
#bookingModal .modal__title *,
#bookingModal #modalAppointmentTime,
#bookingModal #modalAppointmentTime * {
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
}

#bookingModal .booking-row__deadline-optional,
#bookingModal .contact-form__input::placeholder,
#bookingModal .contact-form__textarea::placeholder,
#bookingModal .custom-select__trigger:not(.contact-form__input--has-content) span {
    color: var(--booking-warm-ink-soft) !important;
    -webkit-text-fill-color: var(--booking-warm-ink-soft) !important;
    opacity: 1 !important;
}

#bookingModal #bookingForm>.contact-form__group,
#bookingModal #bookingForm>.contact-form__group:first-child>div[onclick*="openCalendarBtn"],
#bookingModal .file-attach,
#bookingModal .modal-sticky-actions,
#bookingModal #bookingStatus,
#bookingModal .final-result-warning {
    background: var(--booking-warm-panel) !important;
    border: 1px solid rgba(255, 248, 239, 0.28) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 0.7rem 1.5rem var(--booking-warm-shadow-soft) !important;
}

.confirm-later-btn {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 0.15rem;
    cursor: pointer;
    box-shadow: none !important;
    outline: none !important;
    border-radius: 0 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    min-width: 0 !important;
    min-height: 0 !important;
}

#bookingModal .contact-form__input,
#bookingModal .contact-form__textarea,
#bookingModal .custom-select__trigger,
#bookingModal .booking-static-province,
#bookingModal .file-attach__drop-zone {
    background: var(--booking-warm-input) !important;
    border: 1px solid var(--booking-warm-border) !important;
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    caret-color: var(--booking-warm-ink) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.68),
        0 0.42rem 1rem rgba(90, 66, 47, 0.09) !important;
}

#bookingModal .contact-form__input:focus,
#bookingModal .contact-form__textarea:focus,
#bookingModal .contact-form__input:focus-visible,
#bookingModal .contact-form__textarea:focus-visible,
#bookingModal .custom-select__trigger:hover,
#bookingModal .custom-select__trigger:focus-visible,
#bookingModal .custom-select.open .custom-select__trigger,
#bookingModal .custom-select__trigger.contact-form__input--has-content,
#bookingModal .booking-static-province:focus-visible,
#bookingModal .file-attach__drop-zone:hover,
#bookingModal .file-attach__drop-zone:focus-visible {
    background: var(--booking-warm-input-hover) !important;
    border-color: var(--booking-warm-border-strong) !important;
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    outline: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        0 0 0 0.18rem rgba(184, 146, 111, 0.14),
        0 0.6rem 1.24rem rgba(90, 66, 47, 0.14) !important;
}

/* Keep dashed upload outlines uniform (no brighter top edge). */
#bookingModal .file-attach:not(.file-attach--drag-over) .file-attach__drop-zone-file,
#bookingModal .file-attach:not(.file-attach--drag-over) .file-attach__drop-zone-file:hover,
#bookingModal .file-attach:not(.file-attach--drag-over) .file-attach__drop-zone-file:focus-visible,
#bookingModal .file-attach__drop-zone-camera,
#bookingModal .file-attach__drop-zone-camera:hover,
#bookingModal .file-attach__drop-zone-camera:focus-visible {
    border-style: dashed !important;
    border-width: 3px !important;
    border-color: var(--form-hint-tone, #5a3d2a) !important;
    border-top-color: var(--form-hint-tone, #5a3d2a) !important;
    border-right-color: var(--form-hint-tone, #5a3d2a) !important;
    border-bottom-color: var(--form-hint-tone, #5a3d2a) !important;
    border-left-color: var(--form-hint-tone, #5a3d2a) !important;
    border-image: none !important;
    box-shadow: 0 0.42rem 1rem rgba(90, 66, 47, 0.09) !important;
    outline: none !important;
}

#bookingModal .custom-select,
#bookingModal #customSelect,
#bookingModal #cityCustomSelect {
    --dropdown-trigger-bg: var(--booking-warm-input) !important;
    --dropdown-trigger-bg-active: var(--booking-warm-input-hover) !important;
    --dropdown-trigger-border: var(--booking-warm-border) !important;
    --dropdown-trigger-border-active: var(--booking-warm-border-strong) !important;
    --dropdown-panel-bg:
        linear-gradient(180deg, rgba(255, 251, 246, 0.98) 0%, rgba(239, 228, 214, 0.97) 100%) !important;
    --dropdown-panel-border: rgba(131, 99, 74, 0.26) !important;
    --dropdown-option-text: var(--booking-warm-ink) !important;
    --dropdown-placeholder: var(--booking-warm-ink-soft) !important;
    --dropdown-option-hover-bg:
        linear-gradient(180deg, rgba(239, 226, 210, 0.98) 0%, rgba(229, 214, 198, 0.98) 100%) !important;
    --dropdown-option-selected-bg:
        linear-gradient(180deg, rgba(228, 210, 191, 0.98) 0%, rgba(216, 195, 174, 0.98) 100%) !important;
    --dropdown-option-selected-text: var(--booking-warm-ink) !important;
    --dropdown-panel-shadow:
        0 1.2rem 2.8rem rgba(90, 66, 47, 0.22),
        0 0.36rem 0.82rem rgba(90, 66, 47, 0.14) !important;
}

#bookingModal .custom-select__trigger,
#bookingModal .custom-select__trigger span,
#bookingModal .custom-select.open .custom-select__trigger,
#bookingModal .custom-select.open .custom-select__trigger span,
#bookingModal .custom-select__trigger.contact-form__input--has-content span {
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    text-shadow: none !important;
}

#bookingModal .custom-select__trigger::after,
#bookingModal .custom-select__trigger:hover::after,
#bookingModal .custom-select__trigger:focus-visible::after,
#bookingModal .custom-select__trigger.contact-form__input--has-content::after,
#bookingModal .custom-select.open .custom-select__trigger::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23553f2d' stroke-width='4.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 8 12 15 19 8'/%3E%3C/svg%3E") !important;
}

#bookingModal .custom-options {
    background: var(--dropdown-panel-bg) !important;
    border: 1px solid var(--dropdown-panel-border) !important;
    box-shadow: var(--dropdown-panel-shadow) !important;
    backdrop-filter: blur(10px) saturate(110%) !important;
    -webkit-backdrop-filter: blur(10px) saturate(110%) !important;
}

#bookingModal .custom-options::-webkit-scrollbar-thumb {
    background: rgba(131, 99, 74, 0.44) !important;
}

#bookingModal .custom-options::-webkit-scrollbar-track {
    background: rgba(196, 176, 155, 0.26) !important;
}

/* Inset dropdown scrollbars so the thumb starts/ends inside the panel. */
.custom-options::-webkit-scrollbar-track,
#bookingModal .custom-options::-webkit-scrollbar-track,
#floatingCustomSelectLayer .custom-options.custom-options--floating::-webkit-scrollbar-track {
    margin-block: 0.9rem;
    border-radius: 999px;
}

#bookingModal .custom-option {
    background: transparent !important;
    border: 1px solid transparent !important;
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
}

#bookingModal .custom-option:hover,
#bookingModal .custom-option:focus-visible {
    background: var(--dropdown-option-hover-bg) !important;
    border-color: rgba(131, 99, 74, 0.22) !important;
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    outline: none !important;
}

#bookingModal .custom-option.selected {
    background: var(--dropdown-option-selected-bg) !important;
    border-color: rgba(118, 87, 64, 0.28) !important;
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.42),
        0 0.22rem 0.44rem rgba(90, 66, 47, 0.08) !important;
}

#bookingModal .custom-option.selected::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23553f2d' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7.2'/%3E%3C/svg%3E") !important;
    filter: none !important;
}

#bookingModal :is(button, input, textarea, .custom-select__trigger, .custom-option, .contact-form__checkbox) {
    -webkit-tap-highlight-color: rgba(184, 146, 111, 0.18);
}

#bookingModal #bookingStatus.status-alert--success {
    --booking-status-fg: #5a412e !important;
    --booking-status-border: rgba(131, 99, 74, 0.34) !important;
    --booking-status-bg: rgba(241, 231, 218, 0.96) !important;
    --booking-status-pulse: rgba(184, 146, 111, 0.2) !important;
}

#bookingModal #bookingStatus.status-alert--warning {
    --booking-status-fg: #5a412e !important;
    --booking-status-border: rgba(156, 117, 85, 0.36) !important;
    --booking-status-bg: rgba(244, 229, 210, 0.96) !important;
    --booking-status-pulse: rgba(184, 146, 111, 0.22) !important;
}

#bookingModal #bookingStatus.status-alert--error {
    --booking-status-fg: #5c3b32 !important;
    --booking-status-border: rgba(148, 95, 83, 0.34) !important;
    --booking-status-bg: rgba(238, 219, 212, 0.96) !important;
    --booking-status-pulse: rgba(148, 95, 83, 0.18) !important;
}

#bookingModal .contact-form__checkbox,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox {
    /* TODO-DELETE if stable after test: background: var(--booking-warm-input) !important */
    border-color: var(--booking-warm-border) !important;
    /* TODO-DELETE if stable after test: box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.64) !important */
}



.form-calendar-overlay {
    background: rgba(82, 60, 43, 0.34) !important;
    backdrop-filter: blur(18px) saturate(116%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(116%) !important;
}

.form-calendar-overlay__close {
    background: var(--booking-warm-input) !important;
    border: 1px solid var(--booking-warm-border) !important;
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.7),
        0 0.46rem 1rem rgba(90, 66, 47, 0.14) !important;
}

.form-calendar-overlay__close:hover,
.form-calendar-overlay__close:focus-visible {
    background: var(--booking-warm-input-hover) !important;
    border-color: var(--booking-warm-border-strong) !important;
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        0 0 0 0.18rem rgba(184, 146, 111, 0.12),
        0 0.62rem 1.2rem rgba(90, 66, 47, 0.16) !important;
}

.form-calendar-overlay__panel,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-calendar-overlay__panel.form-calendar-overlay__panel--compact,
.layout-container #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper {
    background: var(--booking-warm-shell) !important;
    border: 1px solid rgba(255, 248, 239, 0.4) !important;
    box-shadow:
        0 1.5rem 3.1rem rgba(90, 66, 47, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
    backdrop-filter: blur(18px) saturate(110%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(110%) !important;
}




.layout-container #bookingCalendar .calendar-nav-btn,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn,
.layout-container #bookingCalendar .cal-day:not(.cal-day--empty):not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy),
.form-calendar-overlay__mount #bookingCalendar .cal-day:not(.cal-day--empty):not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy) {
    background: var(--booking-warm-input) !important;
    border: 1px solid var(--booking-warm-border) !important;
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.68),
        0 0.42rem 0.96rem rgba(90, 66, 47, 0.08) !important;
    text-shadow: none !important;
}

.layout-container #bookingCalendar .calendar-nav-btn:hover,
.layout-container #bookingCalendar .calendar-nav-btn:focus-visible,
.layout-container #bookingCalendar .cal-day:hover:not(.cal-day--empty):not(.cal-day--disabled),
.layout-container #bookingCalendar .cal-day:focus-visible:not(.cal-day--empty):not(.cal-day--disabled),
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn:hover,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar .cal-day:hover:not(.cal-day--empty):not(.cal-day--disabled),
.form-calendar-overlay__mount #bookingCalendar .cal-day:focus-visible:not(.cal-day--empty):not(.cal-day--disabled) {
    /* TODO-DELETE if stable after test: background: var(--booking-warm-input-hover) !important */
    /* TODO-DELETE if stable after test: border-color: var(--booking-warm-border-strong) !important */
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    outline: none !important;
    /* TODO-DELETE if stable after test: box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78), 0 0 0 0.18rem rgba(184, 146, 111, 0.12), 0 0.62rem 1.2rem rgba(90, 66, 47, 0.14) !important */
}


.layout-container #bookingCalendar .cal-day::before,
.form-calendar-overlay__mount #bookingCalendar .cal-day::before {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0) 100%) !important;
}




.layout-container #bookingCalendar .cal-day--has-slots:not(.cal-day--selected):not(.cal-day--disabled),
.layout-container #bookingCalendar .cal-day--closed:not(.cal-day--selected):not(.cal-day--disabled),
.form-calendar-overlay__mount #bookingCalendar .cal-day--has-slots:not(.cal-day--selected):not(.cal-day--disabled),
.form-calendar-overlay__mount #bookingCalendar .cal-day--closed:not(.cal-day--selected):not(.cal-day--disabled) {
    border-color: rgba(148, 111, 82, 0.42) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.7),
        0 0.46rem 0.92rem rgba(90, 66, 47, 0.1) !important;
}

.layout-container #bookingCalendar .cal-day--busy,
.layout-container #bookingCalendar .cal-day--disabled,
.form-calendar-overlay__mount #bookingCalendar .cal-day--busy,
.form-calendar-overlay__mount #bookingCalendar .cal-day--disabled {
    /* TODO-DELETE if stable after test: background: rgba(227, 216, 202, 0.42) !important */
    border-color: rgba(164, 134, 107, 0.14) !important;
    /* TODO-DELETE if stable after test: color: rgba(110, 85, 64, 0.4) !important */
    /* TODO-DELETE if stable after test: -webkit-text-fill-color: rgba(110, 85, 64, 0.4) !important */
    /* TODO-DELETE if stable after test: box-shadow: none !important */
}

.layout-container #bookingCalendar .slots-grid .slot-btn,
.layout-container #bookingCalendar .slots-grid .slot-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:focus-visible {
    /* TODO-DELETE if stable after test: background: var(--booking-warm-input) !important */
    /* TODO-DELETE if stable after test: border: 1px solid var(--booking-warm-border) !important */
    /* TODO-DELETE if stable after test: color: var(--booking-warm-ink) !important */
    /* TODO-DELETE if stable after test: -webkit-text-fill-color: var(--booking-warm-ink) !important */
    /* TODO-DELETE if stable after test: box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.68), 0 0.46rem 1rem rgba(90, 66, 47, 0.08) !important */
    text-shadow: none !important;
}



.layout-container #bookingCalendar .slot-clock,
.form-calendar-overlay__mount #bookingCalendar .slot-clock {
    color: currentColor !important;
}

.layout-container #bookingCalendar .slot-clock .clock-rim,
.layout-container #bookingCalendar .slot-clock .clock-mark,
.layout-container #bookingCalendar .slot-clock .clock-hand,
.layout-container #bookingCalendar .slot-clock .clock-file-mark,
.layout-container #bookingCalendar .slot-clock .clock-file-core,
.layout-container #bookingCalendar .slot-clock .clock-hand-shape,
.form-calendar-overlay__mount #bookingCalendar .slot-clock .clock-rim,
.form-calendar-overlay__mount #bookingCalendar .slot-clock .clock-mark,
.form-calendar-overlay__mount #bookingCalendar .slot-clock .clock-hand,
.form-calendar-overlay__mount #bookingCalendar .slot-clock .clock-file-mark,
.form-calendar-overlay__mount #bookingCalendar .slot-clock .clock-file-core,
.form-calendar-overlay__mount #bookingCalendar .slot-clock .clock-hand-shape {
    stroke: currentColor !important;
    fill: none !important;
}


.layout-container #bookingCalendar .cal-key,
.form-calendar-overlay__mount #bookingCalendar .cal-key,
.layout-container #bookingCalendar .cal-key-svg,
.form-calendar-overlay__mount #bookingCalendar .cal-key-svg,
.layout-container #bookingCalendar .cal-key-img,
.form-calendar-overlay__mount #bookingCalendar .cal-key-img {
    color: var(--booking-warm-ink) !important;
    filter: none !important;
}

.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__title,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__hint,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__empty,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item-date,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item-time {
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    text-shadow: none !important;
}

.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__header-divider {
    background: rgba(131, 99, 74, 0.18) !important;
}

.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__no-date-btn {
    background: var(--booking-warm-input) !important;
    border: 1px solid var(--booking-warm-border) !important;
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.68),
        0 0.46rem 1rem rgba(90, 66, 47, 0.08) !important;
}

.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item:hover,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__item:focus-visible,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__no-date-btn:hover,
.form-calendar-overlay.form-calendar-overlay--quick-slots .form-quick-slots__no-date-btn:focus-visible {
    background: var(--booking-warm-input-hover) !important;
    border-color: var(--booking-warm-border-strong) !important;
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        0 0 0 0.18rem rgba(184, 146, 111, 0.12),
        0 0.62rem 1.2rem rgba(90, 66, 47, 0.12) !important;
}

.month-switch-overlay__value,
.global-spinner__value,
.global-spinner__meta {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
}

.month-switch-overlay,
.global-spinner {
    background: rgba(86, 63, 46, 0.3) !important;
}

.month-switch-overlay__track,
.global-spinner__track {
    stroke: transparent !important;
    display: none !important;
}

.month-switch-overlay__fill,
.global-spinner__glow {
    stroke: rgba(255, 248, 239, 0.96) !important;
    filter: drop-shadow(0 0 10px rgba(184, 146, 111, 0.28)) !important;
}

/* Remove legacy sticky slab visuals under the booking actions block. */
#bookingModal[data-state="form"] #bookingForm .modal-sticky-actions,
#bookingModal.booking-modal--flat[data-state="form"] #bookingForm .modal-sticky-actions {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

#bookingModal[data-state="form"] .modal-sticky-actions::before,
#bookingModal[data-state="form"] .modal-sticky-actions::after {
    content: none !important;
    display: none !important;
}

/* Collapse the status slot when it has no visible message so BOOK stays close to the form. */
#bookingModal[data-state="form"] #bookingForm .booking-status-slot,
#bookingModal.booking-modal--flat[data-state="form"] #bookingForm .booking-status-slot {
    width: min(calc(100% - 1.2rem), 37.5rem) !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0.55rem auto 0.3rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

#bookingModal[data-state="form"] #confirmBookingBtn,
#bookingModal.booking-modal--flat[data-state="form"] #confirmBookingBtn {
    margin: 1rem auto 0.85rem !important;
}

#bookingModal #bookingStatus.status-alert--visible {
    animation: none !important;
    transform: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.6rem !important;
    min-height: 2.8rem !important;
    padding: 0.6rem 1.2rem !important;
    border: none !important;
    border-radius: 1rem !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    color: var(--booking-status-fg) !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    text-align: center !important;
    line-height: 1.4 !important;
    z-index: 100 !important;
}

/* Force readable BOOK label on the real booking form button in every state. */
#bookingModal #confirmBookingBtn,
#bookingModal #confirmBookingBtn:hover,
#bookingModal #confirmBookingBtn:focus-visible,
#bookingModal #confirmBookingBtn:active,
#bookingModal #confirmBookingBtn:disabled,
#bookingModal #confirmBookingBtn[aria-disabled="true"] {
    color: #fffaf3 !important;
    -webkit-text-fill-color: #fffaf3 !important;
    text-shadow: 0 1px 0 rgba(90, 66, 47, 0.22) !important;
    opacity: 0.98 !important;
}

/* Restore breathing room between the day heading bar and the slots card. */
.layout-container #bookingCalendar .slots-shell .slots-nav,
.form-calendar-overlay__mount #bookingCalendar .slots-shell .slots-nav {
    margin: 0 0 0.55rem !important;
}

/* Remove the inner frame around the "Pick a time..." heading. */
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-nav,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell .slots-nav,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-nav,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell .slots-nav {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}


/* Remove the extra panel around the slot list while keeping the outer shell. */
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-block,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell .slots-block,
.layout-container #bookingCalendar .slots-block,
.layout-container #bookingCalendar .slots-shell .slots-block,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-block,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell .slots-block,
.form-calendar-overlay__mount #bookingCalendar .slots-block,
.form-calendar-overlay__mount #bookingCalendar .slots-shell .slots-block {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    /* TODO-DELETE if stable after test: box-shadow: none !important */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    margin: 0 !important;
    padding: 0 !important;
}




/* Match helper buttons to BOOK button style in booking form. */
#bookingModal #openCalendarBtn,
#bookingModal #attachFilesBtn,
#bookingModal #takePhotoBtn {
    background: var(--modal-lock-button-bg) !important;
    border: 1px solid rgba(var(--site-bg-light-rgb), 0.74) !important;
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    transform: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        0 0.56rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.28) !important;
}

#bookingModal #openCalendarBtn:hover,
#bookingModal #openCalendarBtn:focus-visible,
#bookingModal #attachFilesBtn:hover,
#bookingModal #attachFilesBtn:focus-visible,
#bookingModal #takePhotoBtn:hover,
#bookingModal #takePhotoBtn:focus-visible {
    background: var(--modal-lock-button-bg-hover) !important;
    border-color: rgba(var(--site-bg-light-rgb), 0.82) !important;
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    transform: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.86),
        0 0.7rem 1.34rem rgba(var(--site-bg-shadow-rgb), 0.34) !important;
}

#bookingModal #openCalendarBtn .file-attach__title,
#bookingModal #attachFilesBtn .file-attach__title,
#bookingModal #takePhotoBtn .file-attach__title,
#bookingModal #openCalendarBtn .file-attach__icon,
#bookingModal #attachFilesBtn .file-attach__icon,
#bookingModal #takePhotoBtn .file-attach__icon,
#bookingModal #openCalendarBtn .file-attach__icon-svg,
#bookingModal #attachFilesBtn .file-attach__icon-svg,
#bookingModal #takePhotoBtn .file-attach__icon-svg {
    color: var(--modal-lock-button-text) !important;
    stroke: var(--modal-lock-button-text) !important;
    fill: none !important;
    filter: none !important;
    transform: translateZ(0);
}

@keyframes paperclipPulseLift {
    0% {
        transform: translateY(0) rotate(0deg) scale(1);
    }

    30% {
        transform: translateY(-1px) rotate(-8deg) scale(1.07);
    }

    55% {
        transform: translateY(0) rotate(7deg) scale(1.04);
    }

    80% {
        transform: translateY(-1px) rotate(-4deg) scale(1.05);
    }

    100% {
        transform: translateY(0) rotate(0deg) scale(1);
    }
}

#bookingModal #attachFilesBtn .file-attach__icon-svg--paperclip {
    transform-origin: 50% 50%;
    animation: none !important;
}



/* Static heading between calendar grid and slots list. */
.layout-container #bookingCalendar .slots-nav,
.form-calendar-overlay__mount #bookingCalendar .slots-nav {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0.18rem 0 0.58rem !important;
    padding: 0 !important;
    min-height: 1.2rem !important;
    background: transparent !important;
    border: 0 !important;
    /* TODO-DELETE if stable after test: box-shadow: none !important */
}

.layout-container #bookingCalendar #slotsDayDisplay,
.form-calendar-overlay__mount #bookingCalendar #slotsDayDisplay {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 1.25rem !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    font-weight: 800 !important;
    color: var(--calendar-frame-ink-muted) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink-muted) !important;
    opacity: 1 !important;
    text-align: center !important;
    text-shadow: none !important;
}

.layout-container #bookingCalendar .slots-shell,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell,
.form-calendar-overlay__mount #bookingCalendar .slots-shell,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell {
    /* TODO-DELETE if stable after test: margin: 0.74rem 0 0 !important */
    /* TODO-DELETE if stable after test: padding: 0 !important */
    /* TODO-DELETE if stable after test: border: 0 !important */
    /* TODO-DELETE if stable after test: border-radius: 0 !important */
    /* TODO-DELETE if stable after test: background: transparent !important */
    background-image: none !important;
    /* TODO-DELETE if stable after test: box-shadow: none !important */
    /* TODO-DELETE if stable after test: backdrop-filter: none !important */
    /* TODO-DELETE if stable after test: -webkit-backdrop-filter: none !important */
}

/* Unified glass calendar skin for all visible calendar elements. */
.layout-container #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper {
    --calendar-frame-bg: rgba(255, 246, 235, 0.16);
    --calendar-frame-panel: rgba(255, 248, 238, 0.14);
    --calendar-frame-panel-strong: rgba(255, 249, 239, 0.2);
    --calendar-frame-border: rgba(255, 242, 226, 0.34);
    --calendar-frame-border-strong: rgba(255, 241, 223, 0.52);
    --calendar-frame-ink: rgba(73, 53, 36, 0.96);
    --calendar-frame-ink-muted: rgba(102, 77, 57, 0.74);
    --calendar-frame-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.42),
        0 0.7rem 1.5rem rgba(87, 62, 40, 0.16);
    --calendar-frame-shadow-strong:
        inset 0 1px 0 rgba(255, 255, 255, 0.54),
        0 0.9rem 1.9rem rgba(87, 62, 40, 0.24);
    background: var(--calendar-frame-bg) !important;
    border: 1px solid var(--calendar-frame-border) !important;
    /* TODO-DELETE if stable after test: border-radius: 1.12rem !important */
    /* TODO-DELETE if stable after test: box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 0.84rem 1.9rem rgba(87, 62, 40, 0.22) !important */
    /* TODO-DELETE if stable after test: backdrop-filter: blur(16px) saturate(135%) !important */
    /* TODO-DELETE if stable after test: -webkit-backdrop-filter: blur(16px) saturate(135%) !important */
}

.layout-container #bookingCalendar .calendar-header,
.layout-container #bookingCalendar .calendar-grid,
.layout-container #bookingCalendar .slots-shell,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-header,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-grid,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell,
.form-calendar-overlay__mount #bookingCalendar .calendar-header,
.form-calendar-overlay__mount #bookingCalendar .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar .slots-shell,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-header,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell {
    /* TODO-DELETE if stable after test: background: var(--calendar-frame-panel-strong) !important */
    border: 1px solid var(--calendar-frame-border) !important;
    /* TODO-DELETE if stable after test: border-radius: 1rem !important */
    /* TODO-DELETE if stable after test: box-shadow: var(--calendar-frame-shadow) !important */
    /* TODO-DELETE if stable after test: backdrop-filter: blur(12px) saturate(126%) !important */
    /* TODO-DELETE if stable after test: -webkit-backdrop-filter: blur(12px) saturate(126%) !important */
}

.layout-container #bookingCalendar .calendar-header,
.form-calendar-overlay__mount #bookingCalendar .calendar-header {
    padding: 0.62rem 0.7rem !important;
}

.layout-container #bookingCalendar .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar .calendar-grid {
    padding: 0.62rem !important;
}

.layout-container #bookingCalendar .slots-shell,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell,
.form-calendar-overlay__mount #bookingCalendar .slots-shell,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell {
    margin: 0.84rem 0 0.3rem !important;
    padding: 0.56rem !important;
    border: 1px solid var(--calendar-frame-border) !important;
    /* TODO-DELETE if stable after test: border-radius: 1rem !important */
    /* TODO-DELETE if stable after test: background: var(--calendar-frame-panel-strong) !important */
    /* TODO-DELETE if stable after test: box-shadow: var(--calendar-frame-shadow) !important */
}

.layout-container #bookingCalendar .slots-block,
.layout-container #bookingCalendar .slots-shell .slots-block,
.form-calendar-overlay__mount #bookingCalendar .slots-block,
.form-calendar-overlay__mount #bookingCalendar .slots-shell .slots-block {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.layout-container #bookingCalendar .calendar-title,
.layout-container #bookingCalendar .calendar-title span,
.layout-container #bookingCalendar .cal-day-name,
.layout-container #bookingCalendar .cal-day,
.layout-container #bookingCalendar .slot-time,
.layout-container #bookingCalendar .slot-time .slot-time-main,
.layout-container #bookingCalendar .slot-date-legal,
.form-calendar-overlay__mount #bookingCalendar .calendar-title,
.form-calendar-overlay__mount #bookingCalendar .calendar-title span,
.form-calendar-overlay__mount #bookingCalendar .cal-day-name,
.form-calendar-overlay__mount #bookingCalendar .cal-day,
.form-calendar-overlay__mount #bookingCalendar .slot-time,
.form-calendar-overlay__mount #bookingCalendar .slot-time .slot-time-main,
.form-calendar-overlay__mount #bookingCalendar .slot-date-legal {
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
    text-shadow: none !important;
}

.layout-container #bookingCalendar .cal-day-name,
.layout-container #bookingCalendar .slot-date-legal,
.form-calendar-overlay__mount #bookingCalendar .cal-day-name,
.form-calendar-overlay__mount #bookingCalendar .slot-date-legal {
    color: var(--calendar-frame-ink-muted) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink-muted) !important;
}

.layout-container #bookingCalendar .calendar-nav-btn,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn {
    /* TODO-DELETE if stable after test: background: var(--calendar-frame-panel-strong) !important */
    border: 1px solid var(--calendar-frame-border) !important;
    /* TODO-DELETE if stable after test: border-radius: 0.86rem !important */
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
    /* TODO-DELETE if stable after test: box-shadow: var(--calendar-frame-shadow) !important */
}

.layout-container #bookingCalendar .calendar-nav-btn:hover,
.layout-container #bookingCalendar .calendar-nav-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn:hover,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn:focus-visible {
    background: rgba(255, 250, 242, 0.28) !important;
    border-color: var(--calendar-frame-border-strong) !important;
    box-shadow: var(--calendar-frame-shadow-strong) !important;
    outline: none !important;
}

.layout-container #bookingCalendar .calendar-nav-btn:disabled,
.layout-container #bookingCalendar .calendar-nav-btn[aria-disabled="true"],
.layout-container #bookingCalendar #prevBtn.calendar-nav-btn--muted,
.layout-container #bookingCalendar #prevBtn.calendar-nav-btn--muted:disabled,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn:disabled,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn[aria-disabled="true"],
.form-calendar-overlay__mount #bookingCalendar #prevBtn.calendar-nav-btn--muted,
.form-calendar-overlay__mount #bookingCalendar #prevBtn.calendar-nav-btn--muted:disabled {
    background: rgba(255, 248, 238, 0.08) !important;
    border-color: rgba(255, 240, 224, 0.18) !important;
    color: rgba(102, 77, 57, 0.56) !important;
    -webkit-text-fill-color: rgba(102, 77, 57, 0.56) !important;
    box-shadow: none !important;
}


.layout-container #bookingCalendar .cal-day:not(.cal-day--empty):not(.cal-day--disabled):not(.cal-day--busy),
.form-calendar-overlay__mount #bookingCalendar .cal-day:not(.cal-day--empty):not(.cal-day--disabled):not(.cal-day--busy) {
    background: var(--calendar-frame-panel-strong) !important;
    border: 1px solid var(--calendar-frame-border) !important;
    box-shadow: var(--calendar-frame-shadow) !important;
}

.layout-container #bookingCalendar .cal-day:hover:not(.cal-day--empty):not(.cal-day--disabled),
.layout-container #bookingCalendar .cal-day:focus-visible:not(.cal-day--empty):not(.cal-day--disabled),
.form-calendar-overlay__mount #bookingCalendar .cal-day:hover:not(.cal-day--empty):not(.cal-day--disabled),
.form-calendar-overlay__mount #bookingCalendar .cal-day:focus-visible:not(.cal-day--empty):not(.cal-day--disabled) {
    background: rgba(255, 250, 242, 0.28) !important;
    border-color: var(--calendar-frame-border-strong) !important;
    box-shadow: var(--calendar-frame-shadow-strong) !important;
    transform: none !important;
}

.layout-container #bookingCalendar .cal-day--selected,
.form-calendar-overlay__mount #bookingCalendar .cal-day--selected {
    /* TODO-DELETE if stable after test: background: rgba(255, 249, 238, 0.34) !important */
    border-color: var(--calendar-frame-border-strong) !important;
    /* TODO-DELETE if stable after test: color: rgba(64, 45, 30, 0.98) !important */
    /* TODO-DELETE if stable after test: -webkit-text-fill-color: rgba(64, 45, 30, 0.98) !important */
    /* TODO-DELETE if stable after test: box-shadow: var(--calendar-frame-shadow-strong) !important */
    /* TODO-DELETE if stable after test: transform: none !important */
}

.layout-container #bookingCalendar .cal-day--today:not(.cal-day--selected),
.layout-container #bookingCalendar .cal-day--nearest:not(.cal-day--selected),
.form-calendar-overlay__mount #bookingCalendar .cal-day--today:not(.cal-day--selected),
.form-calendar-overlay__mount #bookingCalendar .cal-day--nearest:not(.cal-day--selected) {
    border-color: var(--calendar-frame-border-strong) !important;
    box-shadow:
        inset 0 0 0 1px rgba(173, 143, 113, 0.22),
        var(--calendar-frame-shadow) !important;
}

.layout-container #bookingCalendar .cal-day--busy,
.layout-container #bookingCalendar .cal-day--disabled,
.form-calendar-overlay__mount #bookingCalendar .cal-day--busy,
.form-calendar-overlay__mount #bookingCalendar .cal-day--disabled {
    background: rgba(255, 248, 238, 0.07) !important;
    border: 1px solid rgba(255, 240, 224, 0.18) !important;
    color: rgba(102, 77, 57, 0.5) !important;
    -webkit-text-fill-color: rgba(102, 77, 57, 0.5) !important;
    box-shadow: none !important;
}

.layout-container #bookingCalendar .slots-grid .slot-btn,
.layout-container #bookingCalendar .slots-grid .slot-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:focus-visible {
    /* TODO-DELETE if stable after test: background: var(--calendar-frame-panel-strong) !important */
    border: 1px solid var(--calendar-frame-border) !important;
    border-radius: 1rem !important;
    /* TODO-DELETE if stable after test: color: var(--calendar-frame-ink) !important */
    /* TODO-DELETE if stable after test: -webkit-text-fill-color: var(--calendar-frame-ink) !important */
    /* TODO-DELETE if stable after test: box-shadow: var(--calendar-frame-shadow) !important */
}



.layout-container #bookingCalendar .slot-icon-wrapper,
.form-calendar-overlay__mount #bookingCalendar .slot-icon-wrapper {
    background: rgba(255, 249, 240, 0.24) !important;
    border: 1px solid var(--calendar-frame-border) !important;
    border-radius: 0.8rem !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.42),
        0 0.28rem 0.68rem rgba(87, 62, 40, 0.12) !important;
    backdrop-filter: blur(8px) saturate(122%) !important;
    -webkit-backdrop-filter: blur(8px) saturate(122%) !important;
}

/* Hard lock against late network style overrides: keep one corner style everywhere. */
.layout-container #bookingCalendar .cal-day,
.layout-container #bookingCalendar .cal-day--empty,
.layout-container #bookingCalendar .cal-day--disabled,
.layout-container #bookingCalendar .cal-day--busy,
.layout-container #bookingCalendar .cal-day--has-slots,
.layout-container #bookingCalendar .cal-day--closed,
.layout-container #bookingCalendar .cal-day--today,
.layout-container #bookingCalendar .cal-day--nearest,
.layout-container #bookingCalendar .cal-day--selected,
.layout-container #bookingCalendar .cal-day.cal-day--saturday-key,
.form-calendar-overlay__mount #bookingCalendar .cal-day,
.form-calendar-overlay__mount #bookingCalendar .cal-day--empty,
.form-calendar-overlay__mount #bookingCalendar .cal-day--disabled,
.form-calendar-overlay__mount #bookingCalendar .cal-day--busy,
.form-calendar-overlay__mount #bookingCalendar .cal-day--has-slots,
.form-calendar-overlay__mount #bookingCalendar .cal-day--closed,
.form-calendar-overlay__mount #bookingCalendar .cal-day--today,
.form-calendar-overlay__mount #bookingCalendar .cal-day--nearest,
.form-calendar-overlay__mount #bookingCalendar .cal-day--selected,
.form-calendar-overlay__mount #bookingCalendar .cal-day.cal-day--saturday-key {
    border-radius: 0.86rem !important;
    clip-path: none !important;
}

.layout-container #bookingCalendar .cal-day::before,
.form-calendar-overlay__mount #bookingCalendar .cal-day::before {
    content: none !important;
    display: none !important;
}

/* Final anti-white lock for calendar surfaces (after all network/state styles). */
.layout-container #bookingCalendar .calendar-header,
.layout-container #bookingCalendar .calendar-grid,
.layout-container #bookingCalendar .slots-shell,
.layout-container #bookingCalendar .calendar-nav-btn,
.layout-container #bookingCalendar .cal-day,
.form-calendar-overlay__mount #bookingCalendar .calendar-header,
.form-calendar-overlay__mount #bookingCalendar .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar .slots-shell,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn,
.form-calendar-overlay__mount #bookingCalendar .cal-day {
    background-image: none !important;
    background-color: var(--calendar-frame-panel-strong) !important;
}

/* Match disclosure text style to the "I agree ..." row above it. */
#bookingModal {
    --booking-terms-font-size: clamp(0.58rem, 1.6vw, 0.92rem);
    --booking-terms-letter-spacing: 0;
    --booking-terms-google-max-width: 27ch;
    --booking-hint-max-width: 28ch;
}

#bookingModal .contact-form__checkbox-label {
    font-size: var(--booking-terms-font-size) !important;
    letter-spacing: var(--booking-terms-letter-spacing) !important;
    white-space: normal;
    text-wrap: pretty;
}


#bookingModal .booking-status-slot,
#bookingModal #bookingStatus {
    text-align: center !important;
}







/* FINAL OVERRIDE: keep terms block centered and uniform on all viewports */
.contact-form__checkbox-wrapper.file-attach__terms,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.35rem !important;
    text-align: center !important;
    width: 100% !important;
    max-width: 32rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1.2rem !important;
    padding-right: 1.2rem !important;
}

.contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-row,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-row {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.55rem !important;
    width: 100% !important;
    text-align: center !important;
}

.contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox-label,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox-label {
    display: inline-block !important;
    white-space: normal !important;
    text-align: center !important;
    line-height: 1.35 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 0.01em !important;
}

.contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-disclaimer,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-disclaimer {
    margin: 0 !important;
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    line-height: 1.35 !important;
    font-weight: 900 !important;
    font-size: 13px !important;
    letter-spacing: 0.01em !important;
    font-family: 'Lato', sans-serif !important;
    width: 100% !important;
}

.contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-link,
.contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-link .contact-form__terms-word,
.contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-plain,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-link,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-link .contact-form__terms-word,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-plain {
    font-size: 12px !important;
    letter-spacing: 0.01em !important;
    text-align: center !important;
}

.contact-form__terms-disclaimer {
    width: 100% !important;
    max-width: 32rem !important;
    margin: 0 auto !important;
    display: block !important;
    text-align: center !important;
    line-height: 1.35 !important;
}

/* Main-page BOOK buttons: keep modal-lock palette and glow. */
#headerBookBtn:not(:disabled):not([aria-disabled="true"]),
#footerBookBtn:not(:disabled):not([aria-disabled="true"]) {
    /* TODO-DELETE if stable after test: opacity: 1 !important */
    /* TODO-DELETE if stable after test: background: var(--modal-lock-button-bg) !important */
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    border: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.24),
        0 0.56rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.28) !important;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

#headerBookBtn:not(:disabled):not([aria-disabled="true"]):hover,
#headerBookBtn:not(:disabled):not([aria-disabled="true"]):focus-visible,
#headerBookBtn:not(:disabled):not([aria-disabled="true"]):active,
#footerBookBtn:not(:disabled):not([aria-disabled="true"]):hover,
#footerBookBtn:not(:disabled):not([aria-disabled="true"]):focus-visible,
#footerBookBtn:not(:disabled):not([aria-disabled="true"]):active {
    /* TODO-DELETE if stable after test: background: var(--modal-lock-button-bg-hover) !important */
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    border: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.86),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.26),
        0 0.7rem 1.34rem rgba(var(--site-bg-shadow-rgb), 0.34) !important;
}

#headerBookBtn #headerBookBtnText,
#headerBookBtn #headerBookBtnText span,
#footerBookBtn #footerBookBtnText,
#footerBookBtn #footerBookBtnText span {
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    text-shadow: none !important;
    letter-spacing: 0.06em !important;
}


/* Modal checkbox: match BOOK button dark-brown styling. */
#bookingModal .contact-form__checkbox,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox {
    background: var(--booking-warm-button) !important;
    border: 1px solid rgba(118, 87, 64, 0.62) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 0.46rem 1.02rem rgba(var(--site-bg-shadow-rgb), 0.18) !important;
    outline: none !important;
}

#bookingModal .contact-form__checkbox:hover,
#bookingModal .contact-form__checkbox:active,
#bookingModal .contact-form__checkbox:focus-visible,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:hover,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:active,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:focus-visible {
    background: var(--booking-warm-button-hover) !important;
    border-color: rgba(118, 87, 64, 0.74) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.22),
        0 0 0 2px rgba(255, 255, 255, 0.24),
        0 0 0 4px rgba(118, 87, 64, 0.24),
        0 0.56rem 1.12rem rgba(var(--site-bg-shadow-rgb), 0.2) !important;
}

#bookingModal .contact-form__checkbox:checked,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked {
    /* TODO-DELETE if stable after test: background: var(--booking-warm-button) !important */
    border-color: rgba(118, 87, 64, 0.62) !important;
    /* TODO-DELETE if stable after test: box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 0.46rem 1.02rem rgba(var(--site-bg-shadow-rgb), 0.18) !important */
}


/* Slots under the calendar: match BOOK button styling after calendar load. */
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible {
    /* TODO-DELETE if stable after test: background: var(--calendar-frame-panel-strong) !important */
    border: 1px solid var(--calendar-frame-border) !important;
    border-radius: 1rem !important;
    /* TODO-DELETE if stable after test: color: var(--calendar-frame-ink) !important */
    /* TODO-DELETE if stable after test: -webkit-text-fill-color: var(--calendar-frame-ink) !important */
    /* TODO-DELETE if stable after test: box-shadow: var(--calendar-frame-shadow) !important */
    text-shadow: none !important;
    font-size: 0.98rem !important;
    font-weight: 800 !important;
    min-height: 3.4rem !important;
}


.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn .slot-time,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn .slot-time .slot-time-main,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn .slot-date-legal,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn .slot-time,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn .slot-time .slot-time-main,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn .slot-date-legal {
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
    text-shadow: none !important;
}

.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:hover .slot-time,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:hover .slot-time .slot-time-main,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:hover .slot-date-legal,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible .slot-time,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible .slot-time .slot-time-main,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible .slot-date-legal,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:hover .slot-time,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:hover .slot-time .slot-time-main,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:hover .slot-date-legal,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible .slot-time,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible .slot-time .slot-time-main,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible .slot-date-legal {
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
}

.layout-container #bookingCalendar .slots-grid .slot-btn.slot-btn--clicked::after,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn.slot-btn--clicked::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%235A3D2A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7.2'/%3E%3C/svg%3E") !important;
    opacity: 0.9 !important;
}

/* Nearest available day: match regular available days. */
.layout-container #bookingCalendar .cal-day--nearest:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy),
.form-calendar-overlay__mount #bookingCalendar .cal-day--nearest:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy) {
    background: var(--calendar-frame-panel-strong) !important;
    /* TODO-DELETE if stable after test: border: 1px solid var(--calendar-frame-border) !important */
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
    /* TODO-DELETE if stable after test: box-shadow: var(--calendar-frame-shadow) !important */
    text-shadow: none !important;
    transform: none !important;
    /* TODO-DELETE if stable after test: animation: none !important */
}


.layout-container #bookingCalendar .cal-day--nearest:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy):hover,
.layout-container #bookingCalendar .cal-day--nearest:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy):focus-visible,
.form-calendar-overlay__mount #bookingCalendar .cal-day--nearest:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy):hover,
.form-calendar-overlay__mount #bookingCalendar .cal-day--nearest:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy):focus-visible {
    background: rgba(255, 250, 242, 0.28) !important;
    border-color: var(--calendar-frame-border-strong) !important;
    box-shadow: var(--calendar-frame-shadow-strong) !important;
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
}

/* Booking form BOOK button: no hover style changes, only slight scale. */
#bookingModal #confirmBookingBtn {
    background: var(--modal-lock-button-bg) !important;
    border: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.24),
        0 0.56rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.28) !important;
    transition: none !important;
}

#bookingModal #confirmBookingBtn:hover,
#bookingModal #confirmBookingBtn:focus-visible,
#bookingModal #confirmBookingBtn:active {
    background: var(--modal-lock-button-bg) !important;
    border: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.24),
        0 0.56rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.28) !important;
    transform: none !important;
}

/* Footer copyright: match "Hours of Operation:" styling on all screens. */
.footer__hours strong {
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
}

.footer__copyright,
.footer__official-meta .footer__copyright,
.footer__official-meta .footer__copyright--emphasis {
    font-weight: 400 !important;
    letter-spacing: 0.01em !important;
    color: rgba(255, 255, 255, 0.92) !important;
    text-shadow: none !important;
}

/* Default hypnotic spinner keeps the compact ring-only presentation. */
#globalSpinner.global-spinner--hypnotic:not(.global-spinner--submit-progress) .global-spinner__progress {
    display: none;
}

#globalSpinner.global-spinner--hypnotic:not(.global-spinner--submit-progress) .global-spinner__track {
    stroke: transparent;
}

#globalSpinner.global-spinner--hypnotic:not(.global-spinner--submit-progress) .global-spinner__glow {
    animation: none !important;
    filter: none !important;
    transition: stroke-dashoffset 1000ms linear;
}

#globalSpinner.global-spinner--hypnotic:not(.global-spinner--submit-progress) .global-spinner__ring-wrap {
    animation: none !important;
    transform: none !important;
}

#globalSpinner.global-spinner--hypnotic:not(.global-spinner--submit-progress) .global-spinner__ring-wrap::after {
    content: none !important;
    animation: none !important;
    box-shadow: none !important;
    border: 0 !important;
}

/* Form submit spinner keeps the ring-only presentation. */
#globalSpinner.global-spinner--submit-progress .global-spinner__progress {
    display: none !important;
    background: rgba(255, 255, 255, 0.14);
    box-shadow:
        inset 0 0.16rem 0.38rem rgba(0, 0, 0, 0.2),
        0 0 0.9rem rgba(255, 255, 255, 0.08);
    opacity: 0.94;
    transform-origin: center;
    animation: globalSpinnerSubmitTrackBreathe 3.8s ease-in-out infinite;
}

#globalSpinner.global-spinner--submit-progress .global-spinner__progress-fill {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.28) 0%, rgba(255, 255, 255, 0.86) 52%, rgba(255, 255, 255, 0.38) 100%);
    box-shadow:
        0 0 0.42rem rgba(255, 255, 255, 0.22),
        0 0 1rem rgba(255, 255, 255, 0.1);
    transition: width 0.74s cubic-bezier(0.22, 1, 0.36, 1);
    transform-origin: center;
    animation: globalSpinnerSubmitFillBreathe 2.9s ease-in-out infinite;
}

#globalSpinner.global-spinner--submit-progress .global-spinner__track {
    stroke: rgba(255, 255, 255, 0.16);
}

#globalSpinner.global-spinner--submit-progress .global-spinner__glow {
    stroke: rgba(255, 255, 255, 0.98);
    animation: globalSpinnerSubmitGlowBreathe 3.4s ease-in-out infinite !important;
    filter:
        drop-shadow(0 0 0.46rem rgba(255, 255, 255, 0.22)) drop-shadow(0 0 1rem rgba(255, 255, 255, 0.1)) !important;
    transition: stroke-dashoffset 150ms linear !important;
    transform-origin: 60px 60px;
}

#globalSpinner.global-spinner--submit-progress .global-spinner__ring-wrap {
    animation: globalSpinnerSubmitRingBreathe 3.8s ease-in-out infinite !important;
    transform-origin: 50% 50%;
    overflow: visible;
    isolation: isolate;
}

#globalSpinner.global-spinner--submit-progress .global-spinner__ring-wrap::before,
#globalSpinner.global-spinner--submit-progress .global-spinner__ring-wrap::after {
    content: '' !important;
    position: absolute;
    left: 50%;
    top: 50%;
    width: 220vmax;
    height: 220vmax;
    border-radius: 50%;
    border: 0.08rem solid rgba(255, 255, 255, 0.28) !important;
    box-shadow:
        0 0 1.4rem rgba(255, 255, 255, 0.2),
        inset 0 0 1.8rem rgba(255, 255, 255, 0.08) !important;
    pointer-events: none;
    mix-blend-mode: screen;
    transform: translate(-50%, -50%) scale(0.05);
    transform-origin: 50% 50%;
    opacity: 0;
    z-index: 0;
    will-change: transform, opacity;
    animation: globalSpinnerSubmitSonarWave 4.6s cubic-bezier(0.22, 1, 0.36, 1) infinite !important;
}

#globalSpinner.global-spinner--submit-progress .global-spinner__ring-wrap::after {
    animation-delay: 2.3s !important;
}

#globalSpinner.global-spinner--submit-progress .global-spinner__svg {
    z-index: 2;
}

#globalSpinner.global-spinner--submit-progress .global-spinner__value {
    z-index: 3;
}

#globalSpinner.global-spinner--submit-progress .global-spinner__value {
    display: grid !important;
    animation: globalSpinnerSubmitValueBreathe 3.4s ease-in-out infinite;
    text-shadow:
        0 0 0.56rem rgba(255, 255, 255, 0.36),
        0 0 1.2rem rgba(255, 255, 255, 0.12);
}

#globalSpinner.global-spinner--submit-progress .global-spinner__meta {
    display: block;
    margin: -0.18rem 0 0;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: clamp(0.8rem, 2.3vw, 0.92rem);
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.1;
    text-transform: uppercase;
    text-shadow:
        0 0 0.44rem rgba(255, 255, 255, 0.12),
        0 0 0.9rem rgba(255, 255, 255, 0.06);
}

@keyframes globalSpinnerSubmitRingBreathe {

    0%,
    100% {
        transform: scale(0.988);
    }

    50% {
        transform: scale(1.028);
    }
}

@keyframes globalSpinnerSubmitGlowBreathe {

    0%,
    100% {
        transform: scale(0.992);
        filter:
            drop-shadow(0 0 0.4rem rgba(255, 255, 255, 0.18)) drop-shadow(0 0 0.88rem rgba(255, 255, 255, 0.08));
    }

    50% {
        transform: scale(1.024);
        filter:
            drop-shadow(0 0 0.62rem rgba(255, 255, 255, 0.28)) drop-shadow(0 0 1.3rem rgba(255, 255, 255, 0.14));
    }
}

@keyframes globalSpinnerSubmitHaloBreathe {

    0%,
    100% {
        transform: scale(0.94);
        opacity: 0.14;
    }

    50% {
        transform: scale(1.035);
        opacity: 0.28;
    }
}

@keyframes globalSpinnerSubmitTrackBreathe {

    0%,
    100% {
        transform: scaleX(0.992) scaleY(1);
        box-shadow:
            inset 0 0.16rem 0.38rem rgba(0, 0, 0, 0.2),
            0 0 0.8rem rgba(255, 255, 255, 0.06);
    }

    50% {
        transform: scaleX(1) scaleY(1.08);
        box-shadow:
            inset 0 0.16rem 0.38rem rgba(0, 0, 0, 0.18),
            0 0 1.08rem rgba(255, 255, 255, 0.1);
    }
}

@keyframes globalSpinnerSubmitFillBreathe {

    0%,
    100% {
        opacity: 0.9;
        transform: scaleY(1);
    }

    50% {
        opacity: 1;
        transform: scaleY(1.14);
    }
}

@keyframes globalSpinnerSubmitValueBreathe {

    0%,
    100% {
        opacity: 0.9;
        transform: scale(1);
    }

    50% {
        opacity: 1;
        transform: scale(1.032);
    }
}

/* Form Notice OK button: match main BOOK button style. */
#intakeNoticeModal .intake-notice-modal__ok {
    background: var(--modal-lock-button-bg) !important;
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    border: 1px solid var(--modal-lock-button-bg) !important;
    outline: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.24),
        0 0.56rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.28) !important;
    font-size: 0.9rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 0.72rem 1.85rem !important;
    min-width: 14rem !important;
}

#intakeNoticeModal .intake-notice-modal__ok:hover,
#intakeNoticeModal .intake-notice-modal__ok:focus-visible,
#intakeNoticeModal .intake-notice-modal__ok:active {
    background: var(--modal-lock-button-bg-hover) !important;
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    border: 1px solid var(--modal-lock-button-bg-hover) !important;
    outline: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.86),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.26),
        0 0.7rem 1.34rem rgba(var(--site-bg-shadow-rgb), 0.34) !important;
}

/* Final result buttons: match Form Notice OK button style. */
#bookingModal .final-result-call,
#bookingModal .final-result-done {
    background: #5a3d2a !important;
    border-color: #5a3d2a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border-radius: 999px !important;
    text-transform: uppercase !important;
    font-weight: 800 !important;
}

#bookingModal .final-result-call:hover,
#bookingModal .final-result-call:focus-visible,
#bookingModal .final-result-done:hover,
#bookingModal .final-result-done:focus-visible,
#bookingModal .final-result-done:active {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: #5a3d2a !important;
    -webkit-text-fill-color: #5a3d2a !important;
}

/* Checked checkbox: match BOOK outline and do not change on hover. */
#bookingModal .contact-form__checkbox:checked,
#bookingModal .contact-form__checkbox:checked:hover,
#bookingModal .contact-form__checkbox:checked:active,
#bookingModal .contact-form__checkbox:checked:focus-visible,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked:hover,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked:active,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked:focus-visible {
    background: var(--booking-warm-button) !important;
    border: 1px solid rgba(118, 87, 64, 0.62) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 0.46rem 1.02rem rgba(var(--site-bg-shadow-rgb), 0.18) !important;
    transform: none !important;
    filter: none !important;
}

#bookingModal .contact-form__checkbox:checked::after,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked::after {
    border-right-color: #fffaf3 !important;
    border-bottom-color: #fffaf3 !important;
}

/* Safari/iOS fixes: stabilize calendar keys and footer BOOK sizing. */
.layout-container #bookingCalendar .cal-day--nearest,
.layout-container #bookingCalendar .cal-day--nearest.cal-day--selected,
.form-calendar-overlay__mount #bookingCalendar .cal-day--nearest,
.form-calendar-overlay__mount #bookingCalendar .cal-day--nearest.cal-day--selected {
    background: var(--calendar-frame-panel-strong) !important;
    border: 1px solid var(--calendar-frame-border) !important;
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
    box-shadow: var(--calendar-frame-shadow) !important;
    text-shadow: none !important;
    transform: none !important;
}

.layout-container #bookingCalendar .cal-day--today:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy),
.form-calendar-overlay__mount #bookingCalendar .cal-day--today:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy) {
    background: var(--calendar-frame-panel-strong) !important;
    /* TODO-DELETE if stable after test: border: 1px solid var(--calendar-frame-border) !important */
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
    /* TODO-DELETE if stable after test: box-shadow: var(--calendar-frame-shadow) !important */
    text-shadow: none !important;
    transform: none !important;
}

.layout-container #bookingCalendar .cal-day--selected,
.form-calendar-overlay__mount #bookingCalendar .cal-day--selected {
    /* TODO-DELETE if stable after test: background: var(--calendar-frame-panel-strong) !important */
    /* TODO-DELETE if stable after test: border: 1px solid var(--calendar-frame-border) !important */
    /* TODO-DELETE if stable after test: color: var(--calendar-frame-ink) !important */
    /* TODO-DELETE if stable after test: -webkit-text-fill-color: var(--calendar-frame-ink) !important */
    /* TODO-DELETE if stable after test: box-shadow: var(--calendar-frame-shadow) !important */
    /* TODO-DELETE if stable after test: text-shadow: none !important */
    transform: none !important;
}

.layout-container #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper {
    /* TODO-DELETE if stable after test: box-shadow: none !important */
    --apple-cal-shadow: none !important;
    --apple-cal-shadow-soft: none !important;
    --apple-cal-shadow-hover: none !important;
    --calendar-frame-shadow: none !important;
    /* TODO-DELETE if stable after test: backdrop-filter: none !important */
    /* TODO-DELETE if stable after test: -webkit-backdrop-filter: none !important */
    /* TODO-DELETE if stable after test: overflow: hidden !important */
    /* TODO-DELETE if stable after test: background-clip: padding-box !important */
}



/* Final centering normalization for all major site blocks on every breakpoint. */
.header,
.layout-container,
.layout-container>.contact-form,
.layout-container>.faq,
.layout-container>.privacy-block,
.layout-container>.privacy-block--map,
.layout-container>#faqSectionTitle,
.footer,
.footer__container,
.footer__official-meta,
.footer__privacy-note-block,
.header__content-block,
.header__site-purpose {
    margin-left: auto !important;
    margin-right: auto !important;
}



.layout-container>.contact-form,
.layout-container>.faq,
.layout-container>.privacy-block {
    width: 100% !important;
    max-width: 100% !important;
}

#calendarScaleWrapper,
.form-calendar-overlay__mount .calendar-scale-wrapper {
    width: 100% !important;
    /* TODO-DELETE if stable after test: margin-left: auto !important */
    /* TODO-DELETE if stable after test: margin-right: auto !important */
    /* TODO-DELETE if stable after test: display: flex !important */
    /* TODO-DELETE if stable after test: justify-content: center !important */
}


#bookingCalendar,
.form-calendar-overlay__mount #bookingCalendar {
    width: 100% !important;
    /* TODO-DELETE if stable after test: margin-left: auto !important */
    /* TODO-DELETE if stable after test: margin-right: auto !important */
}

.layout-container #faqSpoiler .faq__question {
    align-self: flex-start !important;
    margin-left: 0 !important;
    margin-right: auto !important;
}

.layout-container #faqSpoiler .faq__answer,
.layout-container #faqSpoiler .faq__item.is-open .faq__answer {
    align-self: flex-end !important;
    margin-left: auto !important;
    margin-right: 0 !important;
}

.layout-container #faqSpoiler .faq__answer--map,
.layout-container #faqSpoiler .faq__item.is-open .faq__answer--map {
    align-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Larger spacing between FAQ Q/A pairs. */
.layout-container #faqSpoiler {
    gap: 1.9rem !important;
}

/* Footer BOOK must stay above all decorative sparks/embers. */
.book-btn-container--footer {
    position: relative !important;
    z-index: 10030 !important;
    isolation: isolate;
}

/* Main BOOK interactions must stay responsive even while preloaders animate. */
#headerBookBtnWrap,
#footerBookBtnWrap,
#headerBookBtn,
#footerBookBtn {
    touch-action: manipulation;
}

#headerBookBtnWrap {
    overflow: visible !important;
    isolation: isolate;
    z-index: 6;
}

#headerBookBtnWrap .spark {
    z-index: 7 !important;
}

#headerBookBtnPreloader,
#footerBookBtnPreloader {
    pointer-events: none !important;
}

.book-btn-container--footer .spark {
    z-index: 1 !important;
}

#footerBookBtnPreloader {
    position: relative !important;
    z-index: 3 !important;
}

#footerBookBtn {
    position: relative !important;
    z-index: 4 !important;
}

/* Final calendar hotfix: keep calendar centered and remove corner glow artifacts. */
.layout-container>.contact-form {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.layout-container>.contact-form>#calendarScaleWrapper,
.form-calendar-overlay__mount #calendarScaleWrapper,
.form-calendar-overlay__mount .calendar-scale-wrapper {
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: visible !important;
}


#calendarScaleInner,
.form-calendar-overlay__mount #calendarScaleInner,
.form-calendar-overlay__mount .calendar-scale-inner {
    width: min(100%, var(--calendar-main-max-width)) !important;
    max-width: min(100%, var(--calendar-main-max-width)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: none !important;
    transform-origin: top center !important;
    overflow: visible !important;
}

.layout-container #bookingCalendar.calendar-wrapper,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded {
    width: min(100%, var(--calendar-main-max-width)) !important;
    max-width: min(100%, var(--calendar-main-max-width)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-shadow: var(--intake-shell-shadow) !important;
    backdrop-filter: var(--intake-shell-backdrop) !important;
    -webkit-backdrop-filter: var(--intake-shell-backdrop) !important;
    /* TODO-DELETE if stable after test: overflow: hidden !important */
    /* TODO-DELETE if stable after test: background-clip: padding-box !important */
}

.layout-container #bookingCalendar.calendar-wrapper::before,
.layout-container #bookingCalendar.calendar-wrapper::after,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded::before,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded::after,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper::before,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper::after,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded::before,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded::after {
    /* TODO-DELETE if stable after test: content: none !important */
    /* TODO-DELETE if stable after test: display: none !important */
    opacity: 0 !important;
    /* TODO-DELETE if stable after test: animation: none !important */
    filter: none !important;
}

.layout-container #bookingCalendar .calendar-header,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-header,
.layout-container #bookingCalendar .calendar-nav-btn,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-nav-btn,
.layout-container #bookingCalendar .calendar-grid,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-grid,
.layout-container #bookingCalendar .slots-shell,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell,
.form-calendar-overlay__mount #bookingCalendar .calendar-header,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-header,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-nav-btn,
.form-calendar-overlay__mount #bookingCalendar .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar .slots-shell,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell {
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: hidden !important;
    background-clip: padding-box !important;
}

.layout-container #bookingCalendar .slots-block,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell .slots-block,
.form-calendar-overlay__mount #bookingCalendar .slots-block,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell .slots-block {
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: hidden !important;
    background-clip: padding-box !important;
}

#calendarScaleWrapper.calendar-scale-wrapper--hidden,
.form-calendar-overlay__mount #calendarScaleWrapper.calendar-scale-wrapper--hidden,
.form-calendar-overlay__mount .calendar-scale-wrapper.calendar-scale-wrapper--hidden {
    display: none !important;
}

/* Final footer hours centering on all devices. */
.footer__container {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
}

.footer__hours,
.footer__hours.dynamic-text,
.footer__hours p {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

.footer__hours p {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Match Form Notice typography to "Sunday is Closed" style on all devices. */
.header__content-block--intake-inline .header__content-text,
#intakeNoticeModal .modal__text {
    font-family: 'Lato', sans-serif !important;
    font-size: 0.8rem !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.01em !important;
    color: rgba(255, 255, 255, 0.92) !important;
    text-transform: none !important;
}

/* Form Notice main title: 3x larger than base text. */
.header__content-block--intake-inline .header__content-header,
#intakeNoticeModal .modal__title {
    font-size: 2.4rem !important;
}

/* Form Notice section subtitles: 2x larger than base text. */
.header__content-block--intake-inline .faq__question,
#intakeNoticeModal .modal__section-title {
    font-size: 1.5rem !important;
}

/* Intake Notice modal: these two headings are intentionally 2x smaller. */
#intakeNoticeModal .modal__section-title.intake-notice-modal__core-heading {
    font-size: clamp(0.7rem, 3.7vw, 1.5rem) !important;
}

@keyframes globalSpinnerSubmitSonarWave {

    0% {
        transform: translate(-50%, -50%) scale(0.05);
        opacity: 0;
        border-color: rgba(255, 255, 255, 0.44);
    }

    12% {
        opacity: 0.34;
    }

    46% {
        opacity: 0.2;
    }

    100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 0;
        border-color: rgba(255, 255, 255, 0.02);
    }
}

/* Keep Terms links on the same baseline as surrounding words in the first row. */
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-row .contact-form__terms-link,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-row .contact-form__terms-link .contact-form__terms-word,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-row .contact-form__terms-plain {
    line-height: 1.35 !important;
    vertical-align: baseline !important;
}

#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-row .contact-form__terms-link {
    display: inline !important;
}

#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-row .contact-form__terms-link .contact-form__terms-word {
    display: inline !important;
}

/* Selected calendar day: solid white fill without border. */
.layout-container #bookingCalendar .cal-day--selected,
.layout-container #bookingCalendar .cal-day--nearest.cal-day--selected,
.form-calendar-overlay__mount #bookingCalendar .cal-day--selected,
.form-calendar-overlay__mount #bookingCalendar .cal-day--nearest.cal-day--selected {
    background: #ffffff !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
}

/* Final mobile typography override for loaded calendar states. */
@media (max-width: 768px) {

    .layout-container #bookingCalendar .calendar-title .cal-month,
    .layout-container #bookingCalendar .calendar-title .cal-selected-day,
    .form-calendar-overlay__mount #bookingCalendar .calendar-title .cal-month,
    .form-calendar-overlay__mount #bookingCalendar .calendar-title .cal-selected-day {
        font-size: clamp(0.9rem, 3.5vw, 1.1rem) !important;
        line-height: 1.12 !important;
        letter-spacing: 0.03em !important;
        font-weight: 700 !important;
    }

    .layout-container #bookingCalendar .cal-day-name,
    .form-calendar-overlay__mount #bookingCalendar .cal-day-name {
        font-size: 0.68rem !important;
        line-height: 1.1 !important;
        letter-spacing: 0.06em !important;
        font-weight: 700 !important;
    }

    .layout-container #bookingCalendar .cal-day,
    .form-calendar-overlay__mount #bookingCalendar .cal-day {
        font-size: 0.95rem !important;
        line-height: 1.1 !important;
        font-weight: 700 !important;
    }

    .layout-container #bookingCalendar #slotsDayDisplay,
    .form-calendar-overlay__mount #bookingCalendar #slotsDayDisplay {
        font-size: clamp(0.9rem, 3.5vw, 1.1rem) !important;
        font-weight: 700 !important;
        line-height: 1.15 !important;
        letter-spacing: 0.055em !important;
        font-weight: 700 !important;
    }

    .layout-container #bookingCalendar .slots-grid .slot-btn,
    .form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn {
        min-height: 4.7rem !important;
        padding: 0.72rem 0.82rem !important;
    }

    .layout-container #bookingCalendar .slot-time,
    .form-calendar-overlay__mount #bookingCalendar .slot-time {
        font-size: 0.92rem !important;
        line-height: 1.14 !important;
        font-weight: 700 !important;
    }

    .layout-container #bookingCalendar .slot-time .slot-time-main,
    .form-calendar-overlay__mount #bookingCalendar .slot-time .slot-time-main {
        font-size: 1.14rem !important;
        line-height: 1.12 !important;
        letter-spacing: 0.018em !important;
        font-weight: 700 !important;
    }

    .layout-container #bookingCalendar .slot-date-legal,
    .form-calendar-overlay__mount #bookingCalendar .slot-date-legal {
        font-size: 0.74rem !important;
        line-height: 1.15 !important;
        letter-spacing: 0.02em !important;
        font-weight: 600 !important;
    }
}

@media (max-width: 480px) {

    .layout-container #bookingCalendar .calendar-title .cal-month,
    .layout-container #bookingCalendar .calendar-title .cal-selected-day,
    .form-calendar-overlay__mount #bookingCalendar .calendar-title .cal-month,
    .form-calendar-overlay__mount #bookingCalendar .calendar-title .cal-selected-day {
        font-size: 0.88rem !important;
    }

    .layout-container #bookingCalendar .cal-day,
    .form-calendar-overlay__mount #bookingCalendar .cal-day {
        font-size: 0.88rem !important;
    }

    .layout-container #bookingCalendar #slotsDayDisplay,
    .form-calendar-overlay__mount #bookingCalendar #slotsDayDisplay {
        font-size: 0.88rem !important;
        font-weight: 700 !important;
    }

    .layout-container #bookingCalendar .slots-grid .slot-btn,
    .form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn {
        min-height: 4.25rem !important;
        padding: 0.62rem 0.72rem !important;
    }

    .layout-container #bookingCalendar .slot-time,
    .form-calendar-overlay__mount #bookingCalendar .slot-time {
        font-size: 0.86rem !important;
    }

    .layout-container #bookingCalendar .slot-time .slot-time-main,
    .form-calendar-overlay__mount #bookingCalendar .slot-time .slot-time-main {
        font-size: 1.02rem !important;
    }

    .layout-container #bookingCalendar .slot-date-legal,
    .form-calendar-overlay__mount #bookingCalendar .slot-date-legal {
        font-size: 0.7rem !important;
    }
}

/* Absolute fallback: slots underlay must match day-cell surface color in every design/state. */
.layout-container #bookingCalendar .calendar-header,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-header,
.layout-container #bookingCalendar .calendar-nav-btn,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-nav-btn,
.layout-container #bookingCalendar .calendar-grid,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-grid,
.layout-container #bookingCalendar .slots-shell,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell,
.form-calendar-overlay__mount #bookingCalendar .calendar-header,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-header,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-nav-btn,
.form-calendar-overlay__mount #bookingCalendar .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar .slots-shell,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell {
    background: var(--calendar-frame-panel-strong) !important;
    background-color: var(--calendar-frame-panel-strong) !important;
}

/* Absolute fallback: selected calendar day must stay white in every theme/state. */
#bookingCalendar .cal-day.cal-day--selected,
#bookingCalendar .cal-day.cal-day--nearest.cal-day--selected {
    background: #ffffff !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
    text-shadow: none !important;
    transform: none !important;
}

/* Remove delayed "previous day" frame artifacts on day switching. */
#bookingCalendar .cal-day,
.layout-container #bookingCalendar .cal-day,
.form-calendar-overlay__mount #bookingCalendar .cal-day {
    transition:
        background 0.12s ease,
        color 0.12s ease,
        transform 0.12s ease !important;
}

#bookingCalendar .cal-day.cal-day--today:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy),
#bookingCalendar .cal-day.cal-day--nearest:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy),
.layout-container #bookingCalendar .cal-day--today:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy),
.layout-container #bookingCalendar .cal-day--nearest:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy),
.form-calendar-overlay__mount #bookingCalendar .cal-day--today:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy),
.form-calendar-overlay__mount #bookingCalendar .cal-day--nearest:not(.cal-day--selected):not(.cal-day--disabled):not(.cal-day--busy) {
    border: 1px solid var(--calendar-frame-border) !important;
    box-shadow: var(--calendar-frame-shadow) !important;
    outline: none !important;
    animation: none !important;
}

/* Final slot shadow lock: keep calendar slots flat in every state. */
.layout-container #bookingCalendar .slots-grid .slot-btn,
.layout-container #bookingCalendar .slots-grid .slot-btn:hover,
.layout-container #bookingCalendar .slots-grid .slot-btn:focus-visible,
.layout-container #bookingCalendar .slots-grid .slot-btn:active,
.layout-container #bookingCalendar .slots-grid .slot-btn.slot-btn--clicked,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:hover,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:active,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn.slot-btn--clicked,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:hover,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:active,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn.slot-btn--clicked,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:hover,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:active,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn.slot-btn--clicked {
    box-shadow: none !important;
}

.layout-container #bookingCalendar .slots-grid .slot-btn.slot-btn--hypnotic,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn.slot-btn--hypnotic {
    animation: none !important;
}

/* Final slot palette lock: mirror nearest available calendar day colors. */
.layout-container #bookingCalendar .slots-grid .slot-btn,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn {
    background: var(--calendar-frame-panel-strong) !important;
    border: 1px solid var(--calendar-frame-border) !important;
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
}

.layout-container #bookingCalendar .slots-grid .slot-btn:hover,
.layout-container #bookingCalendar .slots-grid .slot-btn:focus-visible,
.layout-container #bookingCalendar .slots-grid .slot-btn:active,
.layout-container #bookingCalendar .slots-grid .slot-btn.slot-btn--clicked,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:hover,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:active,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn.slot-btn--clicked,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:hover,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn:active,
.form-calendar-overlay__mount #bookingCalendar .slots-grid .slot-btn.slot-btn--clicked,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:hover,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:focus-visible,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn:active,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-grid .slot-btn.slot-btn--clicked {
    background: rgba(255, 250, 242, 0.28) !important;
    border-color: var(--calendar-frame-border-strong) !important;
    color: var(--calendar-frame-ink) !important;
    -webkit-text-fill-color: var(--calendar-frame-ink) !important;
}

/* Final iPad 5 / Apple tablet cleanup: normalize spacing, wrapping and heavy effects. */
@media (min-width: 744px) and (max-width: 1024px) {

    html,
    body {
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }

    .top-bar,
    .bottom-bar {
        display: flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: none !important;
    }

    .header,
    .header__content-block,
    .layout-container,
    .header__site-purpose {
        /* TODO-DELETE if stable after test: width: 100% !important */
        /* TODO-DELETE if stable after test: max-width: 42rem !important */
        /* TODO-DELETE if stable after test: margin-left: auto !important */
        /* TODO-DELETE if stable after test: margin-right: auto !important */
        padding-left: clamp(0.9rem, 2.2vw, 1.2rem) !important;
        padding-right: clamp(0.9rem, 2.2vw, 1.2rem) !important;
    }

    .header {
        padding-top: clamp(1rem, 2.3vw, 1.5rem) !important;
        padding-bottom: clamp(1.5rem, 3.2vw, 2rem) !important;
    }

    .header__title {
        font-size: clamp(1.18rem, 2.4vw, 1.52rem) !important;
        letter-spacing: 0.07em !important;
    }

    .header__subtitle {
        font-size: clamp(2.2rem, 6.2vw, 3.35rem) !important;
        letter-spacing: -0.03em !important;
        line-height: 0.96 !important;
        margin-bottom: clamp(1.2rem, 2.8vw, 1.9rem) !important;
    }

    .header__description {
        font-size: 12pt !important;
        line-height: 1 !important;
        margin-bottom: 1.8rem !important;
        width: min(92vw, 39rem) !important;
        max-width: min(92vw, 39rem) !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .header__description span {
        display: block !important;
        width: fit-content !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        white-space: normal !important;
        text-wrap: balance !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        margin-top: 0.18rem !important;
    }

    .header__description-phone {
        text-align: center !important;
    }

    .header+.layout-container {
        margin-top: clamp(-1.2rem, -2.1vw, -0.6rem) !important;
    }

    #calendarHeaderTitle,
    #servicesSectionTitle,
    #faqSectionTitle {
        font-size: clamp(2rem, 4.4vw, 2.45rem) !important;
        line-height: 1.18 !important;
    }

    #calendarScaleWrapper,
    .form-calendar-overlay__mount .calendar-scale-wrapper {
        width: 100% !important;
        /* TODO-DELETE if stable after test: display: flex !important */
        /* TODO-DELETE if stable after test: justify-content: center !important */
        /* TODO-DELETE if stable after test: align-items: flex-start !important */
        /* TODO-DELETE if stable after test: margin-left: auto !important */
        /* TODO-DELETE if stable after test: margin-right: auto !important */
    }

    #calendarScaleInner,
    .form-calendar-overlay__mount .calendar-scale-inner {
        width: min(100%, 41rem) !important;
        max-width: min(100%, 41rem) !important;
        /* TODO-DELETE if stable after test: margin-left: auto !important */
        /* TODO-DELETE if stable after test: margin-right: auto !important */
        transform: none !important;
    }

    .layout-container #bookingCalendar.calendar-wrapper,
    .form-calendar-overlay__mount #bookingCalendar.calendar-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .layout-container #bookingCalendar .calendar-grid,
    .form-calendar-overlay__mount #bookingCalendar .calendar-grid {
        justify-items: stretch !important;
        align-items: start !important;
        grid-auto-rows: auto !important;
        align-content: start !important;
    }

    .layout-container #bookingCalendar .cal-day,
    .form-calendar-overlay__mount #bookingCalendar .cal-day {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        line-height: 1 !important;
        padding: 0 !important;
        aspect-ratio: 1 / 1 !important;
        width: 100% !important;
        min-height: clamp(2.65rem, 5.2vw, 3.45rem) !important;
    }

    .layout-container #bookingCalendar .cal-day.cal-day--saturday-key,
    .form-calendar-overlay__mount #bookingCalendar .cal-day.cal-day--saturday-key {
        overflow: hidden !important;
    }

    .layout-container #bookingCalendar .cal-key,
    .form-calendar-overlay__mount #bookingCalendar .cal-key {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        height: 100% !important;
        line-height: 0 !important;
        margin: 0 auto !important;
    }

    .layout-container #bookingCalendar .cal-key-img,
    .layout-container #bookingCalendar .cal-key-svg,
    .form-calendar-overlay__mount #bookingCalendar .cal-key-img,
    .form-calendar-overlay__mount #bookingCalendar .cal-key-svg {
        display: block !important;
        margin: 0 auto !important;
        width: clamp(1.65rem, 68%, 2.35rem) !important;
        max-width: 74% !important;
        max-height: 74% !important;
        height: auto !important;
        object-fit: contain !important;
    }

    #faqSpoiler .faq__question,
    #faqSpoiler .faq__answer,
    #faqSpoiler .faq__item.is-open .faq__answer {
        max-width: min(100%, 38rem) !important;
    }

    .footer {
        padding: clamp(2.2rem, 4.4vw, 3rem) 1rem 1.15rem !important;
    }

    .footer__contact-link {
        font-size: clamp(1.4rem, 3.4vw, 1.78rem) !important;
    }

    .footer__hours,
    .footer__copyright,
    .footer__privacy-note-block .privacy-note {
        font-size: clamp(0.95rem, 1.9vw, 1.04rem) !important;
        line-height: 1.45 !important;
    }

    .modal--active {
        padding: clamp(0.8rem, 2.3vh, 1.2rem) !important;
    }

    #bookingModal .modal__content {
        width: min(100%, 43.5rem) !important;
        max-height: calc(100dvh - 1.8rem) !important;
    }
}

@supports (-webkit-touch-callout: none) {
    @media (min-width: 744px) and (max-width: 1024px) {

        .spark,
        .post-success-screen::before,
        .post-success-screen::after {
            animation: none !important;
            transform: none !important;
        }

        .background,
        .layout-container #bookingCalendar.calendar-wrapper,
        .layout-container #bookingCalendar .calendar-header,
        .layout-container #bookingCalendar .calendar-grid,
        .layout-container #bookingCalendar .slots-nav,
        .layout-container #bookingCalendar .slots-block,
        .form-calendar-overlay__mount #bookingCalendar.calendar-wrapper,
        .form-calendar-overlay__mount #bookingCalendar .calendar-header,
        .form-calendar-overlay__mount #bookingCalendar .calendar-grid,
        .form-calendar-overlay__mount #bookingCalendar .slots-nav,
        .form-calendar-overlay__mount #bookingCalendar .slots-block {
            backdrop-filter: none !important;
            -webkit-backdrop-filter: none !important;
        }

        .book-btn-container,
        .book-btn-container--footer {
            height: auto !important;
            min-height: 7.4rem !important;
        }

        .layout-container #bookingCalendar .cal-day,
        .form-calendar-overlay__mount #bookingCalendar .cal-day {
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
            padding: 0 !important;
            line-height: 1 !important;
        }
    }
}

/* Final cross-browser lock: keep calendar, numbers, and SVG icons centered. */
#calendarScaleWrapper,
.form-calendar-overlay__mount #calendarScaleWrapper,
.form-calendar-overlay__mount .calendar-scale-wrapper {
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

#calendarScaleInner,
.form-calendar-overlay__mount #calendarScaleInner,
.form-calendar-overlay__mount .calendar-scale-inner,
#bookingCalendar,
.form-calendar-overlay__mount #bookingCalendar {
    margin-left: auto !important;
    margin-right: auto !important;
}

#bookingCalendar .calendar-grid {
    justify-items: stretch !important;
    align-items: start !important;
    grid-auto-rows: auto !important;
    align-content: start !important;
}

#bookingCalendar .cal-day {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
    min-height: 2.8rem !important;
    padding: 0 !important;
    line-height: 1 !important;
    text-align: center !important;
    font-variant-numeric: tabular-nums;
}

#bookingCalendar .cal-day .cal-day-value {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    line-height: 1 !important;
    text-align: center !important;
}

#bookingCalendar .cal-day.cal-day--saturday-key .cal-key {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    line-height: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

#bookingCalendar .cal-day.cal-day--saturday-key .cal-key-img,
#bookingCalendar .cal-day.cal-day--saturday-key .cal-key-svg {
    display: block !important;
    width: clamp(1.55rem, 68%, 2.3rem) !important;
    max-width: 74% !important;
    max-height: 74% !important;
    height: auto !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: translateZ(0);
}

#bookingCalendar .slot-icon-wrapper {
    display: grid !important;
    place-items: center !important;
}

#bookingCalendar .slot-clock {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 auto !important;
    overflow: visible !important;
}

/* Keep Form Notice modal width aligned with the booking form shell. */
#intakeNoticeModal .modal__content {
    width: min(100%, 37.5rem) !important;
    max-width: 37.5rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

@media (max-width: 768px) {
    #intakeNoticeModal .modal__content {
        width: min(100%, calc(100vw - 2rem)) !important;
        max-width: calc(100vw - 2rem) !important;
    }
}

@media (max-width: 480px) {
    #intakeNoticeModal .modal__content {
        width: calc(100vw - 1.5rem) !important;
        max-width: calc(100vw - 1.5rem) !important;
    }
}

@media (min-width: 744px) and (max-width: 1024px) {
    #intakeNoticeModal .modal__content {
        width: min(100%, 37.5rem) !important;
        max-width: 37.5rem !important;
    }
}

/* Final booking shell lock: keep full form inside one continuous modal card. */
#bookingModal.booking-modal--flat .modal__content,
#bookingModal.booking-modal--flat[data-state="form"] .modal__content,
#bookingModal.booking-modal--flat[data-state="success"] .modal__content {
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
}

#bookingModal.booking-modal--flat .modal__body,
#bookingModal.booking-modal--flat[data-state="form"] .modal__body,
#bookingModal.booking-modal--flat[data-state="success"] .modal__body {
    overflow: visible !important;
}

/* Final calendar palette lock: match all calendar text/icons to main BOOK text color. */
:root {
    --calendar-book-text-color: var(--modal-lock-button-text);
}

/* Final booking form copy lock: use the same tone as main BOOK button text.
   Keep user-entered control values unchanged. */
#bookingModal[data-state="form"] #bookingForm :is(.contact-form__outside-title,
    .contact-form__label,
    .contact-form__checkbox-label,
    .contact-form__terms-link,
    .contact-form__terms-word,
    .contact-form__terms-plain,
    .contact-form__terms-disclaimer,
    .file-attach__title,
    .file-attach__name,
    .file-attach__drop-zone p,
    .booking-row__deadline-label,
    .booking-row__deadline-optional,
    .contact-form__group>p,
    .booking-status-slot,
    #bookingStatus) {
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    text-shadow: none !important;
}

#bookingModal[data-state="form"] .modal__title,
#bookingModal[data-state="form"] #modalAppointmentTime,
#bookingModal[data-state="form"] #modalAppointmentTime strong {
    color: rgba(var(--modal-design-text-rgb), 0.98) !important;
    -webkit-text-fill-color: rgba(var(--modal-design-text-rgb), 0.98) !important;
    text-shadow: 0 1px 8px rgba(var(--site-text-shadow-rgb), 0.12) !important;
}

#bookingModal[data-state="form"] #bookingForm div[onclick*="openCalendarBtn"]>p,
#bookingModal[data-state="form"] #bookingForm #openCalendarBtn~p {
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    text-shadow: none !important;
}

#bookingModal[data-state="form"] #bookingForm .custom-select__trigger:not(.contact-form__input--has-content) span,
#bookingModal[data-state="form"] #bookingForm :is(.contact-form__input, .contact-form__textarea)::placeholder {
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    opacity: 0.82 !important;
}


.layout-container #bookingCalendar,
.form-calendar-overlay__mount #bookingCalendar {
    --calendar-frame-ink: var(--calendar-book-text-color) !important;
    --calendar-frame-ink-muted: var(--calendar-book-text-color) !important;
}

.layout-container #bookingCalendar :is(.calendar-title, .calendar-title span, .cal-day-name, .cal-day, .cal-day-value, .calendar-nav-btn, #slotsDayDisplay, .slot-time, .slot-time-main, .slot-date-legal, .cal-key, .cal-key-svg, .slot-clock),
.form-calendar-overlay__mount #bookingCalendar :is(.calendar-title, .calendar-title span, .cal-day-name, .cal-day, .cal-day-value, .calendar-nav-btn, #slotsDayDisplay, .slot-time, .slot-time-main, .slot-date-legal, .cal-key, .cal-key-svg, .slot-clock) {
    color: var(--calendar-book-text-color) !important;
    -webkit-text-fill-color: var(--calendar-book-text-color) !important;
}

.layout-container #bookingCalendar .slot-clock :is(.clock-rim, .clock-mark, .clock-hand, .clock-file-mark, .clock-file-core, .clock-hand-shape),
.form-calendar-overlay__mount #bookingCalendar .slot-clock :is(.clock-rim, .clock-mark, .clock-hand, .clock-file-mark, .clock-file-core, .clock-hand-shape) {
    stroke: var(--calendar-book-text-color) !important;
}

.layout-container #bookingCalendar .cal-key-svg :is(circle, path),
.form-calendar-overlay__mount #bookingCalendar .cal-key-svg :is(circle, path) {
    fill: var(--calendar-book-text-color) !important;
    stroke: none !important;
}

@keyframes calendarSkeletonShimmerSweep {
    from {
        transform: translateX(-130%);
    }

    to {
        transform: translateX(130%);
    }
}

.layout-container #bookingCalendar .cal-day.cal-day--selected-remote-anim,
.form-calendar-overlay__mount #bookingCalendar .cal-day.cal-day--selected-remote-anim {
    position: relative !important;
    overflow: hidden !important;
}

.layout-container #bookingCalendar .cal-day.cal-day--selected-remote-anim::before,
.form-calendar-overlay__mount #bookingCalendar .cal-day.cal-day--selected-remote-anim::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(115deg, rgba(255, 255, 255, 0) 18%, rgba(255, 255, 255, 0.72) 50%, rgba(255, 255, 255, 0) 82%) !important;
    transform: translateX(-130%);
    animation: calendarSkeletonShimmerSweep 3.8s ease-in-out infinite !important;
    pointer-events: none !important;
    z-index: 1 !important;
}

/* Final footer contacts lock: keep contacts visually identical to Hours of Operation. */
.footer__privacy-note-block .privacy-note.privacy-note--contacts {
    --footer-contacts-row-gap: 0.42rem;
    --footer-contacts-line-height: 1.62;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: var(--footer-contacts-row-gap) !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    text-align: center !important;
    line-height: var(--footer-contacts-line-height) !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    text-wrap: balance !important;
}

.footer__privacy-note-block .privacy-note.privacy-note--contacts .privacy-note__phone,
.footer__privacy-note-block .privacy-note.privacy-note--contacts .privacy-note__email,
.footer__privacy-note-block .privacy-note.privacy-note--contacts .privacy-note__location {
    display: block !important;
    white-space: nowrap !important;
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    font: inherit !important;
    line-height: var(--footer-contacts-line-height) !important;
    letter-spacing: inherit !important;
    text-decoration: none !important;
    text-shadow: inherit !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Final mobile/iOS address-row lock: prevent overlaps in booking form. */
@media (max-width: 768px) {
    #bookingModal .booking-row--address-main {
        display: grid !important;
        grid-template-columns: 1fr !important;
        align-items: stretch !important;
        gap: 0.6rem !important;
        width: 100% !important;
        margin-bottom: 0.6rem !important;
    }

    #bookingModal .booking-row--address-main input[name="address_unit"] {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }

    #bookingModal .booking-row--address-main input[name="address_street"] {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    #bookingModal .booking-row--address-city {
        display: block !important;
        width: 100% !important;
        margin-bottom: 0.6rem !important;
    }

    #bookingModal .booking-row--address-city .custom-select-wrapper--city,
    #bookingModal .booking-row--address-city #cityCustomSelect,
    #bookingModal .booking-row--address-city .custom-select__trigger {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    #bookingModal .booking-row--address-secondary.booking-row--province-zip {
        display: grid !important;
        grid-template-columns: 1fr !important;
        align-items: stretch !important;
        justify-content: stretch !important;
        gap: 0.6rem !important;
        width: 100% !important;
        margin-bottom: 0 !important;
        flex-wrap: wrap !important;
    }

    #bookingModal .custom-select-wrapper--province {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        flex: 1 1 auto !important;
    }

    #bookingModal .booking-row--province-zip input[name="address_zip"] {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        flex: 1 1 auto !important;
    }

    #bookingModal .booking-static-province {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    #bookingModal .booking-row.booking-row--dob {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0.6rem !important;
        width: 100% !important;
        padding: 0 !important;
        justify-content: stretch !important;
        align-items: stretch !important;
    }

    #bookingModal .booking-row.booking-row--dob input {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        flex: 1 1 auto !important;
    }
}

/* DO NOT TOUCH: CHOOSE SERVICE DROPDOWN GOLDEN STYLE LOCK.
   City and Province must match Choose Service exactly. */
#bookingModal .custom-select-wrapper.dropdown-open,
#bookingModal .contact-form__group.dropdown-open {
    z-index: 2147483000 !important;
}

#bookingModal #customSelect,
#bookingModal #cityCustomSelect,
#bookingModal #provinceCustomSelect {
    isolation: isolate;
}

#bookingModal #customSelect .custom-select__trigger,
#bookingModal #cityCustomSelect .custom-select__trigger,
#bookingModal #provinceCustomSelect .custom-select__trigger {
    border: 1px solid var(--dropdown-trigger-border) !important;
    border-radius: 1rem !important;
    background: var(--dropdown-trigger-bg) !important;
    box-shadow: var(--dropdown-trigger-shadow) !important;
}

#bookingModal #customSelect .custom-select__trigger:hover,
#bookingModal #customSelect .custom-select__trigger:focus-visible,
#bookingModal #customSelect.open .custom-select__trigger,
#bookingModal #cityCustomSelect .custom-select__trigger:hover,
#bookingModal #cityCustomSelect .custom-select__trigger:focus-visible,
#bookingModal #cityCustomSelect.open .custom-select__trigger,
#bookingModal #provinceCustomSelect .custom-select__trigger:hover,
#bookingModal #provinceCustomSelect .custom-select__trigger:focus-visible,
#bookingModal #provinceCustomSelect.open .custom-select__trigger {
    background: var(--dropdown-trigger-bg-active) !important;
    border-color: var(--dropdown-trigger-border-active) !important;
    box-shadow: var(--dropdown-trigger-shadow-active) !important;
}

#bookingModal #customSelect .custom-options,
#bookingModal #cityCustomSelect .custom-options,
#bookingModal #provinceCustomSelect .custom-options {
    top: calc(100% + 0.3rem) !important;
    padding: 0.34rem !important;
    border: 1px solid var(--dropdown-panel-border) !important;
    border-radius: 1rem !important;
    background: var(--dropdown-panel-bg) !important;
    box-shadow: var(--dropdown-panel-shadow) !important;
    color: var(--dropdown-option-text) !important;
    overflow-x: hidden;
    overflow-y: auto;
    z-index: 2147483000 !important;
}

/* Corner artifact fix for City/Province dropdown panels (clean rounded clipping). */
#bookingModal #cityCustomSelect .custom-options,
#bookingModal #provinceCustomSelect .custom-options {
    top: calc(100% + 0.12rem) !important;
    background-clip: padding-box !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    overflow: hidden !important;
    overflow-y: auto !important;
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
    transform: translateZ(0) !important;
}

#bookingModal #customSelect.open .custom-options,
#bookingModal #cityCustomSelect.open .custom-options,
#bookingModal #provinceCustomSelect.open .custom-options {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
    z-index: 2147483000 !important;
}

#bookingModal #customSelect .custom-option,
#bookingModal #cityCustomSelect .custom-option,
#bookingModal #provinceCustomSelect .custom-option {
    color: var(--dropdown-option-text) !important;
    -webkit-text-fill-color: var(--dropdown-option-text) !important;
}

#bookingModal #customSelect .custom-option:hover,
#bookingModal #customSelect .custom-option:focus-visible,
#bookingModal #cityCustomSelect .custom-option:hover,
#bookingModal #cityCustomSelect .custom-option:focus-visible,
#bookingModal #provinceCustomSelect .custom-option:hover,
#bookingModal #provinceCustomSelect .custom-option:focus-visible {
    background: var(--dropdown-option-hover-bg) !important;
}

#bookingModal #customSelect .custom-option.selected,
#bookingModal #cityCustomSelect .custom-option.selected,
#bookingModal #provinceCustomSelect .custom-option.selected {
    background: var(--dropdown-option-selected-bg) !important;
    color: var(--dropdown-option-selected-text) !important;
    -webkit-text-fill-color: var(--dropdown-option-selected-text) !important;
}

/* Keep City/Province dropdowns above form cards like Choose Service. DO NOT TOUCH. */
#bookingModal .custom-select-wrapper--city,
#bookingModal .custom-select-wrapper--province,
#bookingModal .booking-row--address-city,
#bookingModal .booking-row--address-secondary.booking-row--province-zip {
    overflow: visible !important;
    position: relative;
}

#bookingModal #cityCustomSelect.open,
#bookingModal #cityCustomSelect.open .custom-options,
#bookingModal .custom-select-wrapper--city.dropdown-open {
    z-index: 2147483000 !important;
}

#bookingModal #provinceCustomSelect.open,
#bookingModal #provinceCustomSelect.open .custom-options,
#bookingModal .custom-select-wrapper--province.dropdown-open {
    z-index: 2147483000 !important;
}

/* Final lock: entered/selected values use the same ink as default Ontario text. */
#bookingModal[data-state="form"] #bookingForm :is(.contact-form__input,
    .contact-form__textarea,
    .custom-select__trigger.contact-form__input--has-content,
    .custom-select__trigger.contact-form__input--has-content span,
    #provinceCustomSelect .custom-select__trigger,
    #provinceCustomSelect .custom-select__trigger span) {
    color: var(--booking-warm-ink) !important;
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    caret-color: var(--booking-warm-ink) !important;
}

#bookingModal[data-state="form"] #bookingForm :is(.contact-form__input:-webkit-autofill,
    .contact-form__textarea:-webkit-autofill) {
    -webkit-text-fill-color: var(--booking-warm-ink) !important;
    caret-color: var(--booking-warm-ink) !important;
}

/* Apple/Safari fix: keep disclaimer spaces normal (no stretched spacing). */
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-disclaimer {
    text-align: center !important;
    text-align-last: center !important;
    text-justify: auto !important;
    white-space: normal !important;
    word-spacing: normal !important;
    letter-spacing: 0 !important;
}

#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-disclaimer .contact-form__terms-plain,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-disclaimer .contact-form__terms-link,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-disclaimer .contact-form__terms-word {
    display: inline !important;
    white-space: normal !important;
    word-spacing: normal !important;
    letter-spacing: 0 !important;
}

/* Terms/Policy modal bottom OK button: match Form Notice OK button style. */
#termsModal .intake-notice-modal__actions,
#privacyModal .intake-notice-modal__actions {
    margin-top: 1rem !important;
    display: flex !important;
    justify-content: center !important;
}

#termsModal .intake-notice-modal__ok,
#privacyModal .intake-notice-modal__ok {
    display: inline-block !important;
    width: auto !important;
    min-width: 15rem !important;
    max-width: 96% !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 0.72rem 1.85rem !important;
    line-height: normal !important;
    font-weight: 900 !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    border-radius: 999px !important;
    background: var(--modal-lock-button-bg) !important;
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    border: none !important;
    outline: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.78),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.24),
        0 0.56rem 1.18rem rgba(var(--site-bg-shadow-rgb), 0.28) !important;
}

#termsModal .intake-notice-modal__ok:hover,
#termsModal .intake-notice-modal__ok:focus-visible,
#termsModal .intake-notice-modal__ok:active,
#privacyModal .intake-notice-modal__ok:hover,
#privacyModal .intake-notice-modal__ok:focus-visible,
#privacyModal .intake-notice-modal__ok:active {
    background: var(--modal-lock-button-bg-hover) !important;
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    border: none !important;
    outline: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.86),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.26),
        0 0.7rem 1.34rem rgba(var(--site-bg-shadow-rgb), 0.34) !important;
}

@supports (-webkit-touch-callout: none) {
    @media (max-width: 768px) {

        #bookingModal .booking-row--address-main,
        #bookingModal .booking-row--address-city,
        #bookingModal .booking-row--address-secondary.booking-row--province-zip,
        #bookingModal .custom-select-wrapper--province,
        #bookingModal .booking-row--province-zip input[name="address_zip"] {
            transform: none !important;
        }
    }
}

/* Final file-attach dashed outline lock:
   default = placeholder tone, selected files = BOOK button tone. */
#bookingModal .file-attach {
    --file-attach-dash-default: rgb(var(--modal-design-tone-rgb));
    --file-attach-dash-active: var(--book-main-tone);
    --form-hint-tone: var(--file-attach-dash-default);
    --file-attach-dash-gap-fill: rgba(255, 250, 243, 0.96);
}

#bookingModal .file-attach.file-attach--has-files {
    --form-hint-tone: var(--file-attach-dash-active);
}

#bookingModal .file-attach:not(.file-attach--drag-over) .file-attach__drop-zone-file,
#bookingModal .file-attach:not(.file-attach--drag-over) .file-attach__drop-zone-file:hover,
#bookingModal .file-attach:not(.file-attach--drag-over) .file-attach__drop-zone-file:focus-visible,
#bookingModal .file-attach:not(.file-attach--drag-over) .file-attach__drop-zone-camera,
#bookingModal .file-attach:not(.file-attach--drag-over) .file-attach__drop-zone-camera:hover,
#bookingModal .file-attach:not(.file-attach--drag-over) .file-attach__drop-zone-camera:focus-visible {
    background-image: none !important;
    background-color: var(--file-attach-dash-gap-fill, rgba(255, 250, 243, 0.96)) !important;
    background-clip: padding-box !important;
    border-style: dashed !important;
    border-width: 3px !important;
    border-color: var(--form-hint-tone, rgb(var(--modal-design-tone-rgb))) !important;
    border-top-color: var(--form-hint-tone, rgb(var(--modal-design-tone-rgb))) !important;
    border-right-color: var(--form-hint-tone, rgb(var(--modal-design-tone-rgb))) !important;
    border-bottom-color: var(--form-hint-tone, rgb(var(--modal-design-tone-rgb))) !important;
    border-left-color: var(--form-hint-tone, rgb(var(--modal-design-tone-rgb))) !important;
    border-image: none !important;
    box-shadow: none !important;
    outline: none !important;
}



.layout-container #bookingCalendar.calendar-wrapper::after,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded::after,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper::after,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded::after {
    /* TODO-DELETE if stable after test: content: "" !important */
    /* TODO-DELETE if stable after test: display: block !important */
    position: absolute !important;
    inset: auto 12% -0.84rem 12% !important;
    height: 1.72rem !important;
    border-radius: 999px !important;
    background: radial-gradient(58% 100% at 50% 0%, rgba(212, 184, 154, 0.34) 0%, rgba(212, 184, 154, 0.14) 50%, rgba(212, 184, 154, 0) 100%) !important;
    filter: blur(7px) !important;
    opacity: 0.86 !important;
    pointer-events: none !important;
    z-index: 0 !important;

    .header__subtitle {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        font-size: clamp(2.5rem, 13vw, 4.5rem) !important;
        line-height: 0.9 !important;
        letter-spacing: -0.04em !important;
    }
}

/* Final narrow-screen centering lock:
   keep calendar and all main blocks centered with symmetric side gutters. */
@media (max-width: 768px) {
    :root {
        --mobile-inline-gutter: clamp(0.5rem, 2vw, 0.75rem);
    }

    .layout-container,
    .header__content-block,
    .header__site-purpose,
    .footer,
    .footer__container,
    .footer__official-meta,
    .footer__privacy-note-block {
        /* TODO-DELETE if stable after test: box-sizing: border-box !important */
        margin-left: auto !important;
        margin-right: auto !important;
    }


    .layout-container>.contact-form,
    .layout-container>.faq,
    .layout-container>.privacy-block,
    .layout-container>.privacy-block--map,
    .layout-container>.privacy-block--full-viewport-note {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    #calendarScaleWrapper,
    .form-calendar-overlay__mount #calendarScaleWrapper {
        display: flex !important;
        justify-content: center !important;
        align-items: flex-start !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    #calendarScaleInner,
    .form-calendar-overlay__mount #calendarScaleInner,
    .layout-container #bookingCalendar.calendar-wrapper,
    .layout-container #bookingCalendar.calendar-wrapper.calendar--loaded,
    .form-calendar-overlay__mount #bookingCalendar.calendar-wrapper,
    .form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        /* TODO-DELETE if stable after test: transform: none !important */
        transform-origin: top center !important;
        box-sizing: border-box !important;
    }

    .layout-container #faqSpoiler,
    .layout-container #faqSpoiler .faq__item {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .layout-container #faqSpoiler .faq__question {
        align-self: flex-start !important;
        width: min(100%, 432px) !important;
        max-width: 432px !important;
        margin-left: 0 !important;
        margin-right: auto !important;
    }

    .layout-container #faqSpoiler .faq__answer,
    .layout-container #faqSpoiler .faq__item.is-open .faq__answer {
        align-self: flex-end !important;
        width: min(100%, 432px) !important;
        max-width: 432px !important;
        margin-left: auto !important;
        margin-right: 0 !important;
    }

    .layout-container #faqSpoiler .faq__answer--map,
    .layout-container #faqSpoiler .faq__item.is-open .faq__answer--map {
        align-self: center !important;
        width: min(100%, 432px) !important;
        max-width: 432px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* Final global centering lock: keep header and main blocks perfectly centered on all devices. */
.header,
.header__site-purpose,
.header__content-block,
.layout-container {
    box-sizing: border-box !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.header {
    width: min(100%, 41rem) !important;
    max-width: 41rem !important;
    text-align: center !important;
}

.header__site-purpose,
.header__content-block,
.layout-container {
    width: min(100%, 41rem) !important;
    max-width: 41rem !important;
}

@media (max-width: 768px) {

    .header,
    .header__site-purpose,
    .header__content-block,
    .layout-container {
        width: 100% !important;
        max-width: 41rem !important;
    }
}

/* Final lock: keep calendar hint text tiny on all screens. */
#bookingModal #bookingForm .booking-row__calendar-hint {
    font-size: 1rem !important;
    line-height: 1.24 !important;
}

/* Final lock: keep file/camera helper descriptions at 1rem on all screens. */
#bookingModal #bookingForm .file-attach__helper-text {
    font-size: 1rem !important;
    line-height: 1.35 !important;
}

/* Final lock: 1rem typography for the whole form content area
   (including file-attach section), excluding the bottom section
   (status + BOOK button + terms block). */
#bookingModal[data-state="form"] #bookingForm :is(.contact-form__group, .file-attach) :is(.contact-form__label,
    .contact-form__input,
    .contact-form__textarea,
    .custom-select__trigger,
    .custom-select__trigger span,
    .custom-option,
    .file-attach__title,
    .file-attach__name,
    .file-attach__drop-zone p,
    .booking-row__deadline-label,
    .booking-row__deadline-optional,
    .booking-row__calendar-hint,
    .file-attach__helper-text,
    p) {
    font-size: 1rem !important;
}

#bookingModal[data-state="form"] #bookingForm :is(.contact-form__group, .file-attach) :is(.contact-form__input,
    .contact-form__textarea)::placeholder {
    font-size: 1rem !important;
}

/* Ultra-narrow phones: keep address and DOB fields one-per-row. */
@media (max-width: 384px) {
    #bookingModal .booking-row--address-main {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0.5rem !important;
        width: 100% !important;
    }

    #bookingModal .booking-row--address-main input[name="address_unit"],
    #bookingModal .booking-row--address-main input[name="address_street"] {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        flex: 1 1 auto !important;
    }

    #bookingModal .booking-row--address-city {
        display: block !important;
        width: 100% !important;
        margin-bottom: 0.5rem !important;
    }

    #bookingModal .booking-row--address-city .custom-select-wrapper--city,
    #bookingModal .booking-row--address-city #cityCustomSelect,
    #bookingModal .booking-row--address-city .custom-select__trigger {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    #bookingModal .booking-row--address-secondary.booking-row--province-zip {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0.5rem !important;
        width: 100% !important;
        margin-bottom: 0 !important;
    }

    #bookingModal .custom-select-wrapper--province,
    #bookingModal .booking-static-province,
    #bookingModal .booking-row--province-zip input[name="address_zip"] {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        flex: 1 1 auto !important;
    }

    #bookingModal .booking-row.booking-row--dob {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0.5rem !important;
        width: 100% !important;
        justify-content: stretch !important;
        align-items: stretch !important;
    }

    #bookingModal .booking-row.booking-row--dob input {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        flex: 1 1 auto !important;
    }
}

/* Narrow phones: place helper text under icons in calendar/files rows. */
@media (max-width: 560px) {

    #bookingModal #bookingForm>.contact-form__group:first-child>div[onclick*="openCalendarBtn"],
    #bookingModal .file-attach .file-attach__drop-zone-file,
    #bookingModal .file-attach .file-attach__drop-zone-camera {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        gap: 0.55rem !important;
    }

    #bookingModal #bookingForm>.contact-form__group:first-child>div[onclick*="openCalendarBtn"]>p,
    #bookingModal .file-attach .file-attach__drop-zone-file>.file-attach__helper-text,
    #bookingModal .file-attach .file-attach__drop-zone-camera>.file-attach__helper-text {
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        flex: 1 1 0 !important;
        margin: 0 !important;
        text-align: left !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        text-wrap: pretty !important;
    }

    #bookingModal #openCalendarBtn,
    #bookingModal #attachFilesBtn,
    #bookingModal #takePhotoBtn {
        flex: 0 0 auto !important;
        margin: 0 auto !important;
    }
}

/* Desktop hero lock: keep "PARALEGAL SERVICES" large and always on one line.
   Font-size grows with viewport width but caps at +20% of the base (4.2rem â†’ max 5.04rem). */
@media (min-width: 1024px) {
    .header {
        width: min(98vw, 72rem) !important;
        max-width: 72rem !important;
        position: relative !important;
        overflow: visible !important;
    }

    .header__subtitle {
        display: block !important;
        position: relative !important;
        z-index: 2 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        transform: none !important;
        white-space: nowrap !important;
        text-wrap: nowrap !important;
        overflow-wrap: normal !important;
        word-break: keep-all !important;
        font-size: clamp(4.2rem, calc(4.2rem + (100vw - 1024px) * 0.012), 5.04rem) !important;
        line-height: 0.88 !important;
        letter-spacing: -0.05em !important;
        text-align: center !important;
    }
}

/* FAQ typography lock: match the "Press the:" helper text style. */
#faqSpoiler .faq__question,
.layout-container #faqSpoiler .faq__question,
#faqSpoiler .faq__answer,
#faqSpoiler .faq__item.is-open .faq__answer,
#faqSpoiler .faq__answer>p,
.layout-container #faqSpoiler .faq__answer,
.layout-container #faqSpoiler .faq__item.is-open .faq__answer,
.layout-container #faqSpoiler .faq__answer>p {
    font-family: 'Lato', sans-serif !important;
    font-size: 1.2rem !important;
    font-weight: 400 !important;
    font-style: normal !important;
    line-height: 1.6 !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
}

.layout-container #bookingCalendar .cal-day.cal-day--empty::before,
.form-calendar-overlay__mount #bookingCalendar .cal-day.cal-day--empty::before,
.layout-container #bookingCalendar .cal-day.cal-day--empty::after,
.form-calendar-overlay__mount #bookingCalendar .cal-day.cal-day--empty::after {
    content: none !important;
    display: none !important;
}

/* Header BOOK button: fully static across devices. */
#headerBookBtn {
    isolation: isolate;
    overflow: visible !important;
    --header-book-glint-duration: 4600ms;
    --header-book-glow-a: rgba(255, 249, 233, 0.56);
    --header-book-glow-b: rgba(255, 240, 214, 0.34);
    will-change: auto;
    animation: none !important;
}

#headerBookBtn #headerBookBtnText,
#headerBookBtn #headerBookBtnText span {
    position: relative;
    z-index: 2;
}

#headerBookBtn::after {
    content: "";
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    border: 2px solid var(--header-book-glow-a);
    pointer-events: none;
    opacity: 0;
    box-shadow:
        0 0 0.24rem rgba(255, 246, 227, 0.12),
        0 0 0.64rem rgba(255, 235, 206, 0.09);
    transform: scale(1);
    z-index: 1;
    animation: none !important;
    opacity: 0 !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

#headerBookBtn.book-btn-perimeter-glint--active {
    animation: none;
}

#headerBookBtn.book-btn-perimeter-glint--active::after {
    animation: none !important;
}

#headerBookBtn:disabled::after,
#headerBookBtn[aria-disabled="true"]::after {
    display: none;
}

#headerBookBtn {
    transition: none !important;
    transform: none !important;
}

#footerBookBtn {
    transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.28s ease, border-color 0.28s ease, color 0.28s ease, box-shadow 0.28s ease !important;
    transform: none !important;
}

#headerBookBtn:hover,
#headerBookBtn:focus-visible,
#headerBookBtn:active,
#footerBookBtn:hover,
#footerBookBtn:focus-visible,
#footerBookBtn:active {
    transform: none !important;
}

#headerBookBtn.header-book-spark-flash {
    transform: scale(1.04) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.3),
        0 0 0.8rem rgba(255, 244, 220, 0.26),
        0 0.82rem 1.5rem rgba(var(--site-bg-shadow-rgb), 0.34) !important;
}

#headerBookBtn.header-book-spark-flash::after {
    opacity: 0.42 !important;
    border-color: rgba(255, 247, 228, 0.56) !important;
    box-shadow:
        0 0 0.5rem rgba(255, 246, 229, 0.2),
        0 0 0.95rem rgba(255, 232, 198, 0.14) !important;
}

@keyframes headerBookDoublePulse {
    0% {
        transform: scale(1);
    }

    24% {
        transform: scale(1.012);
    }

    48% {
        transform: scale(1);
    }

    72% {
        transform: scale(1.01);
    }

    88% {
        transform: scale(1);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes headerBookPerimeterGlint {
    0% {
        opacity: 0;
        border-color: rgba(255, 249, 233, 0);
        box-shadow:
            0 0 0 rgba(255, 255, 255, 0),
            0 0 0 rgba(255, 255, 255, 0);
        transform: scale(1);
    }

    20% {
        opacity: 0.28;
        border-color: rgba(255, 249, 233, 0.48);
        box-shadow:
            0 0 0.44rem rgba(255, 246, 228, 0.18),
            0 0 0.82rem rgba(255, 233, 198, 0.12);
    }

    56% {
        opacity: 0.34;
        border-color: rgba(255, 249, 233, 0.54);
        box-shadow:
            0 0 0.5rem rgba(255, 248, 232, 0.2),
            0 0 0.94rem rgba(255, 236, 206, 0.14);
    }

    100% {
        opacity: 0;
        border-color: rgba(255, 249, 233, 0);
        box-shadow:
            0 0 0 rgba(255, 255, 255, 0),
            0 0 0 rgba(255, 255, 255, 0);
        transform: scale(1);
    }
}

@keyframes headerBookPerimeterBreath {

    0%,
    100% {
        opacity: 0.14;
        border-color: rgba(255, 245, 223, 0.24);
        box-shadow:
            0 0 0.28rem rgba(255, 244, 220, 0.1),
            0 0 0.62rem rgba(255, 233, 198, 0.08);
    }

    50% {
        opacity: 0.3;
        border-color: rgba(255, 247, 228, 0.5);
        box-shadow:
            0 0 0.46rem rgba(255, 246, 228, 0.2),
            0 0 0.96rem rgba(255, 233, 198, 0.14);
    }
}

@media (prefers-reduced-motion: reduce) {

    #headerBookBtn,
    #headerBookBtn::after {
        animation: none !important;
    }

    #globalSpinner.global-spinner--submit-progress .global-spinner__ring-wrap::before,
    #globalSpinner.global-spinner--submit-progress .global-spinner__ring-wrap::after {
        animation: none !important;
        opacity: 0 !important;
    }

    #headerBookBtn::after {
        opacity: 0 !important;
        border-color: transparent !important;
        box-shadow: none !important;
    }
}

/* Final lock: remove transparency from main BOOK buttons without changing their design. */
#headerBookBtn:not(:disabled):not([aria-disabled="true"]),
#footerBookBtn:not(:disabled):not([aria-disabled="true"]),
#intakeNoticeModal .intake-notice-modal__ok:not(:disabled) {
    opacity: 1 !important;
    background: var(--modal-lock-button-bg) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

#headerBookBtn:not(:disabled):not([aria-disabled="true"]):hover,
#headerBookBtn:not(:disabled):not([aria-disabled="true"]):focus-visible,
#headerBookBtn:not(:disabled):not([aria-disabled="true"]):active,
#footerBookBtn:not(:disabled):not([aria-disabled="true"]):hover,
#footerBookBtn:not(:disabled):not([aria-disabled="true"]):focus-visible,
#footerBookBtn:not(:disabled):not([aria-disabled="true"]):active,
#intakeNoticeModal .intake-notice-modal__ok:not(:disabled):hover,
#intakeNoticeModal .intake-notice-modal__ok:not(:disabled):focus-visible,
#intakeNoticeModal .intake-notice-modal__ok:not(:disabled):active {
    opacity: 1 !important;
    background: var(--modal-lock-button-bg-hover) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* Province select: match Choose Service / City trigger color and arrow style. */
#bookingModal .booking-static-province {
    justify-content: space-between !important;
    text-transform: none !important;
    text-align: left !important;
    padding-left: 1rem !important;
    padding-right: 2.8rem !important;
}

#bookingModal #provinceCustomSelect .custom-select__trigger,
#bookingModal #provinceCustomSelect .custom-select__trigger span,
#bookingModal #provinceCustomSelect .custom-select__trigger.contact-form__input--has-content,
#bookingModal #provinceCustomSelect .custom-select__trigger.contact-form__input--has-content span {
    color: var(--dropdown-placeholder, var(--booking-warm-ink-soft)) !important;
    -webkit-text-fill-color: var(--dropdown-placeholder, var(--booking-warm-ink-soft)) !important;
    text-shadow: none !important;
}

#bookingModal #provinceCustomSelect .custom-select__trigger::after,
#bookingModal #provinceCustomSelect .custom-select__trigger:hover::after,
#bookingModal #provinceCustomSelect .custom-select__trigger:focus-visible::after,
#bookingModal #provinceCustomSelect .custom-select__trigger.contact-form__input--has-content::after,
#bookingModal #provinceCustomSelect.open .custom-select__trigger::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23553f2d' stroke-width='4.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 8 12 15 19 8'/%3E%3C/svg%3E") !important;
}

/* Province default text tone lock: Ontario should match City default color. */
#bookingModal[data-state="form"] #bookingForm #provinceCustomSelect .custom-select__trigger,
#bookingModal[data-state="form"] #bookingForm #provinceCustomSelect .custom-select__trigger span,
#bookingModal[data-state="form"] #bookingForm #provinceCustomSelect .custom-select__trigger.contact-form__input--has-content,
#bookingModal[data-state="form"] #bookingForm #provinceCustomSelect .custom-select__trigger.contact-form__input--has-content span {
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    text-shadow: none !important;
}

#bookingModal[data-state="form"] #bookingForm #provinceCustomSelect .custom-select__trigger span,
#bookingModal[data-state="form"] #bookingForm #provinceCustomSelect .custom-select__trigger.contact-form__input--has-content span {
    opacity: 0.82 !important;
}

/* Inactive dropdown indicators: match default (unselected) trigger header tone. */
#bookingModal[data-state="form"] #bookingForm .custom-select:not(.open) .custom-select__trigger:not(.contact-form__input--has-content)::after,
#bookingModal[data-state="form"] #bookingForm #provinceCustomSelect:not(.open) .custom-select__trigger::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%235a3d2a' stroke-width='4.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 8 12 15 19 8'/%3E%3C/svg%3E") !important;
    opacity: 0.82 !important;
}

/* Remove corner shadow artifacts on the "Slots for ..." plaque. */
#bookingCalendar .slots-nav,
.layout-container #bookingCalendar .slots-nav,
.form-calendar-overlay__mount #bookingCalendar .slots-nav,
#bookingCalendar.calendar-wrapper.calendar--loaded .slots-nav {
    box-shadow: none !important;
    filter: none !important;
    -webkit-filter: none !important;
}

/* Final cross-device calendar lock: keep desktop shadow geometry everywhere
   and remove decorative corner artifacts from pseudo layers. */
:root {
    --calendar-desktop-shell-shadow:
        0 0.22rem 0.68rem rgba(212, 184, 154, 0.1),
        inset 0 1px 0 rgba(212, 184, 154, 0.25);
    --calendar-desktop-panel-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        0 0.36rem 0.9rem rgba(var(--site-bg-shadow-rgb), 0.1);
}

#calendarScaleWrapper,
.form-calendar-overlay__mount #calendarScaleWrapper,
#calendarScaleInner,
.form-calendar-overlay__mount #calendarScaleInner {
    transform: none !important;
    will-change: auto !important;
}

.layout-container #bookingCalendar.calendar-wrapper,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded {
    /* TODO-DELETE if stable after test: box-shadow: var(--calendar-desktop-shell-shadow) !important */
    /* TODO-DELETE if stable after test: border-radius: 1.5rem !important */
    /* TODO-DELETE if stable after test: overflow: hidden !important */
    transform: none !important;
    will-change: auto !important;
    filter: none !important;
    -webkit-filter: none !important;
}

.layout-container #bookingCalendar.calendar-wrapper::before,
.layout-container #bookingCalendar.calendar-wrapper::after,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded::before,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded::after,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper::before,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper::after,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded::before,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded::after {
    /* TODO-DELETE if stable after test: content: none !important */
    /* TODO-DELETE if stable after test: display: none !important */
    animation: none !important;
}


.layout-container #bookingCalendar .calendar-nav-btn,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-nav-btn,
.form-calendar-overlay__mount #bookingCalendar .calendar-nav-btn,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-nav-btn {
    border-radius: 999px !important;
}

/* Final shadow parity lock: calendar shadow must match FAQ bubbles on all devices,
   while preventing corner glow artifacts from nested layers/pseudos. */
.layout-container #bookingCalendar.calendar-wrapper,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded {
    box-shadow:
        0 0.3rem 0.82rem rgba(212, 184, 154, 0.15),
        0 0.85rem 1.65rem rgba(212, 184, 154, 0.14),
        inset 0 1px 0 rgba(212, 184, 154, 0.35) !important;
    border-radius: 1.08rem !important;
    overflow: hidden !important;
    background-clip: padding-box !important;
    isolation: isolate !important;
}

.layout-container #bookingCalendar.calendar-wrapper::before,
.layout-container #bookingCalendar.calendar-wrapper::after,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded::before,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded::after,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper::before,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper::after,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded::before,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded::after {
    content: none !important;
    display: none !important;
}

.layout-container #bookingCalendar .calendar-header,
.layout-container #bookingCalendar .calendar-grid,
.layout-container #bookingCalendar .slots-shell,
.layout-container #bookingCalendar .slots-nav,
.layout-container #bookingCalendar .slots-block,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-header,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-grid,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-nav,
.layout-container #bookingCalendar.calendar-wrapper.calendar--loaded .slots-block,
.form-calendar-overlay__mount #bookingCalendar .calendar-header,
.form-calendar-overlay__mount #bookingCalendar .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar .slots-shell,
.form-calendar-overlay__mount #bookingCalendar .slots-nav,
.form-calendar-overlay__mount #bookingCalendar .slots-block,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-header,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .calendar-grid,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-shell,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-nav,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded .slots-block {
    box-shadow: none !important;
    border-radius: 1.08rem !important;
    background-clip: padding-box !important;
}

/* Final lock: keep the second disclaimer on one line with the same typography as the first row. */
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-disclaimer.contact-form__terms-disclaimer--google {
    display: inline-block !important;
    width: auto !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: center !important;
    text-align: center !important;
    text-align-last: auto !important;
    text-justify: auto !important;
    white-space: nowrap !important;
    word-spacing: normal !important;
    letter-spacing: 0.01em !important;
    -webkit-hyphens: none !important;
    hyphens: none !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    text-wrap: nowrap !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;
}

#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-disclaimer.contact-form__terms-disclaimer--google .contact-form__terms-plain,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-disclaimer.contact-form__terms-disclaimer--google .contact-form__terms-link,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__terms-disclaimer.contact-form__terms-disclaimer--google .contact-form__terms-word {
    display: inline !important;
    white-space: inherit !important;
    word-spacing: normal !important;
    letter-spacing: inherit !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    font-size: inherit !important;
    line-height: inherit !important;
    font-weight: inherit !important;
}

/* Final lock: keep booking hints from over-expanding on narrow devices. */
#bookingModal #bookingForm .form-quick-slots__hint {
    width: min(100%, var(--booking-hint-max-width)) !important;
    max-width: var(--booking-hint-max-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    text-wrap: pretty !important;
}

:root {
    --site-block-side-gap: clamp(0.85rem, 2.4vw, 1.3rem);
}

@media (max-width: 768px) {
    :root {
        --site-block-side-gap: clamp(0.8rem, 2vw, 1.2rem);
    }
}

@media (max-width: 720px) {
    :root {
        --site-block-side-gap: clamp(0.4rem, 1.8vw, 0.75rem);
    }
}

.header,
.layout-container,
.footer {
    padding-left: var(--site-block-side-gap) !important;
    padding-right: var(--site-block-side-gap) !important;
    box-sizing: border-box !important;
}

.footer__container,
.footer__official-meta,
.footer__privacy-note-block {
    width: 100% !important;
    max-width: 41rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
}

.layout-container>.privacy-block--map {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
}

/* Final map bubble width lock: never let FAQ map grow wider than desktop. */
.layout-container #faqSpoiler .faq__answer--map,
.layout-container #faqSpoiler .faq__item.is-open .faq__answer--map {
    align-self: center !important;
    width: min(100%, 432px) !important;
    max-width: 432px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.header__site-purpose {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.header__content-block--services {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    position: relative;
    left: auto !important;
    transform: none !important;
    z-index: 5;
    isolation: isolate;
    pointer-events: auto !important;
    margin-bottom: clamp(0.8rem, 2.2vw, 1.35rem) !important;
}

.header__content-block--services #servicesSectionTitle {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto 2rem !important;
    text-align: center !important;
    align-self: center !important;
    display: block !important;
}

.services-list {
    list-style: none !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.8rem !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100%;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: visible;
}

.services-list li {
    display: block;
    width: 100%;
    padding-left: 0;
    overflow: visible;
}

.services-list .header__service-item {
    flex: 1 1 auto;
    min-width: 0;
    margin-bottom: 0 !important;
}

.services-list .header__content-subheader {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.7rem;
    margin-top: 0;
    margin-bottom: 0.8rem;
    line-height: 1.25;
}

.services-list .header__content-subheader::before {
    content: "";
    width: 0.56rem;
    height: 0.56rem;
    border: 1px solid rgba(var(--site-text-rgb), var(--site-text-alpha));
    background: rgba(var(--site-text-rgb), var(--site-text-alpha));
    border-radius: 50%;
    opacity: 1;
    pointer-events: none;
    box-shadow: 0 0 0 1px rgba(var(--site-text-rgb), 0.26);
    flex: 0 0 auto;
}

.services-list .header__content-text {
    line-height: var(--services-line-height) !important;
    margin-bottom: var(--services-paragraph-spacing) !important;
    min-height: auto;
}

.services-list .header__content-text:last-child {
    margin-bottom: 0 !important;
}

.services-form-link {
    color: inherit;
    font-weight: inherit;
    text-decoration: none;
    cursor: pointer !important;
    pointer-events: auto !important;
    position: relative;
    z-index: 6;
}

.services-form-link:hover,
.services-form-link:focus-visible {
    color: inherit;
    text-decoration: none;
}

.services-form-link:focus-visible {
    outline: 1px solid rgba(255, 255, 255, 0.55);
    outline-offset: 2px;
}

/* Final layout + loading fixes:
   prevent footer ember overflow, expand calendar loaders, and restore sparks on tablets. */
@supports (overflow: clip) {

    html,
    body {
        overflow-x: clip;
    }
}

#footerBookBtnWrap.book-btn-container--footer {
    width: min(100%, 32rem) !important;
    max-width: calc(100vw - 1.5rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

#footerEmberLayer {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    max-width: none !important;
    bottom: 0 !important;
    height: min(13rem, 24vh) !important;
    transform: none !important;
    z-index: 10005 !important;
    filter: saturate(1.06) brightness(1.02);
}

#footerEmberLayer::before {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    width: min(34rem, 44vw);
    height: min(3.2rem, 10vh);
    transform: translateX(-50%);
    border-radius: 999px;
    pointer-events: none;
    background:
        radial-gradient(closest-side,
            rgba(255, 222, 150, 0.24) 0%,
            rgba(255, 176, 82, 0.1) 48%,
            rgba(255, 176, 82, 0) 100%);
    opacity: 0.72;
    filter: blur(12px);
}

.footer-ember {
    mix-blend-mode: screen;
    box-shadow:
        0 0 0.42rem rgba(255, 232, 169, 0.72),
        0 0 0.95rem rgba(255, 182, 92, 0.54),
        0 0 1.45rem rgba(255, 130, 46, 0.28);
}

.form-calendar-overlay__mount #calendarScaleInner,
.form-calendar-overlay__mount .calendar-scale-inner,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper,
.form-calendar-overlay__mount #bookingCalendar.calendar-wrapper.calendar--loaded {
    width: min(100%, 62rem) !important;
    max-width: min(100%, 62rem) !important;
}

.form-calendar-overlay.form-calendar-overlay--quick-slots.form-calendar-overlay--quick-slots-loading {
    align-items: stretch;
    justify-content: stretch;
    padding:
        clamp(0.75rem, 2.6vh, 1.2rem) clamp(0.65rem, 2.4vw, 1.05rem) clamp(1rem, 3vh, 1.45rem);
}

.form-calendar-overlay.form-calendar-overlay--quick-slots.form-calendar-overlay--quick-slots-loading .form-calendar-overlay__panel.form-calendar-overlay__panel--compact {
    width: 100%;
    max-width: 100%;
    min-height: calc(100dvh - 1.75rem);
    overflow: hidden;
    display: flex;
}

.form-calendar-overlay__mount--quick-slots.form-calendar-overlay__mount--quick-slots-loading {
    width: 100%;
    flex: 1 1 auto;
    align-items: stretch;
    justify-content: stretch;
}

.form-quick-slots.form-quick-slots--loading {
    display: grid;
    grid-template-rows: auto 1fr;
    min-height: 100%;
}

.form-quick-slots__sticky--loading {
    margin-bottom: 0.95rem;
}

.form-quick-slots__title--loading {
    position: relative;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    text-shadow: none !important;
    min-height: clamp(1.2rem, 3vw, 1.5rem);
    overflow: hidden;
}

.form-quick-slots__title--loading::after {
    content: '';
    display: block;
    width: min(100%, 18rem);
    height: clamp(0.95rem, 2.6vw, 1.15rem);
    border-radius: 999px;
    background:
        linear-gradient(110deg,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0.06) 18%,
            rgba(255, 255, 255, 0.42) 50%,
            rgba(255, 255, 255, 0.06) 82%,
            rgba(255, 255, 255, 0) 100%),
        rgba(255, 255, 255, 0.12);
    background-size: 260% 100%;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    animation: quick-slots-skeleton-shimmer 1.3s linear infinite;
}

.form-quick-slots__loading-state.form-quick-slots__loading-state--skeleton {
    width: 100%;
    min-height: 100%;
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 1rem;
    align-content: start;
}

.form-quick-slots__loading-progress {
    display: grid;
    gap: 0.55rem;
    padding: 0.2rem 0 0;
}

.form-quick-slots__loading-progress-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    flex-wrap: wrap;
}

.form-quick-slots__loading-label {
    color: rgba(255, 248, 239, 0.9);
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1.35;
}

.form-quick-slots__loading-progress-value {
    min-width: 3.8ch;
    color: rgba(255, 248, 239, 0.96);
    font-size: 0.92rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-align: right;
}

.form-quick-slots__loading-progress-track {
    position: relative;
    width: 100%;
    height: 0.5rem;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.12);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.form-quick-slots__loading-progress-fill {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: inherit;
    background:
        linear-gradient(110deg,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0.14) 18%,
            rgba(255, 255, 255, 0.88) 50%,
            rgba(255, 255, 255, 0.16) 82%,
            rgba(255, 255, 255, 0) 100%),
        rgba(255, 255, 255, 0.34);
    background-size: 260% 100%;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    animation: quick-slots-skeleton-shimmer 1.2s linear infinite;
}

.form-quick-slots__skeleton-list {
    display: grid;
    gap: 0.82rem;
    align-content: start;
}

.form-quick-slots__skeleton-card {
    display: grid;
    gap: 0.62rem;
    padding: 0.95rem 0.92rem;
    border-radius: 0.96rem;
    border: 1px solid rgba(var(--booking-plaque-border-rgb), 0.3);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.06) 100%),
        rgba(var(--booking-form-rgb), 0.24);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.form-quick-slots__skeleton-line {
    display: block;
    width: var(--quick-slot-skeleton-width, 60%);
    max-width: 100%;
    height: 0.92rem;
    border-radius: 999px;
    background:
        linear-gradient(110deg,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0.06) 18%,
            rgba(255, 255, 255, 0.42) 50%,
            rgba(255, 255, 255, 0.06) 82%,
            rgba(255, 255, 255, 0) 100%),
        rgba(255, 255, 255, 0.12);
    background-size: 260% 100%;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    animation: quick-slots-skeleton-shimmer 1.2s linear infinite;
}

.form-quick-slots__skeleton-line--date {
    height: 0.8rem;
    opacity: 0.84;
}

.form-quick-slots__skeleton-line--time {
    height: 1.05rem;
}

@supports (-webkit-touch-callout: none) {
    @media (min-width: 744px) and (max-width: 1024px) {
        .spark {
            animation: sparkle var(--spark-duration, 500ms) cubic-bezier(0.18, 0.72, 0.24, 1) var(--spark-delay, 0ms) forwards !important;
            transform: translate(-50%, -50%) translate3d(0, 0, 0) !important;
        }
    }
}

/* Final hard override: keep the top BOOK button static across devices. */
html body #headerBookBtnWrap {
    position: relative !important;
    overflow: visible !important;
    isolation: isolate !important;
}

html body #headerBookBtn {
    position: relative !important;
    z-index: 6 !important;
    transform-origin: 50% 50% !important;
    will-change: auto !important;
    transition: none !important;
    animation: none !important;
}

html body #headerBookBtnWrap .header-book-flash-layer {
    display: none !important;
    position: absolute;
    inset: -0.75rem;
    border-radius: 999px;
    pointer-events: none;
    opacity: 0;
    transform: scale(0.88);
    z-index: 5;
    background:
        radial-gradient(circle at 50% 50%,
            rgba(255, 251, 244, 0.98) 0%,
            rgba(255, 240, 214, 0.82) 20%,
            rgba(255, 218, 160, 0.34) 44%,
            rgba(255, 190, 110, 0.14) 60%,
            rgba(255, 190, 110, 0) 76%);
    box-shadow:
        0 0 0.9rem rgba(255, 243, 216, 0.28),
        0 0 1.7rem rgba(255, 214, 147, 0.18);
    filter: blur(0.58rem) saturate(1.08);
    will-change: auto;
}

html body #headerBookBtnWrap.header-book-spark-flash #headerBookBtn,
html body #headerBookBtn.header-book-spark-flash {
    transform: scale(1.08) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        inset 0 -1px 0 rgba(var(--site-bg-shadow-rgb), 0.28),
        0 0 0.95rem rgba(255, 247, 228, 0.34),
        0 0 1.8rem rgba(255, 226, 174, 0.2),
        0 0.9rem 1.65rem rgba(var(--site-bg-shadow-rgb), 0.34) !important;
    filter: brightness(1.05) saturate(1.05) !important;
}

html body #headerBookBtnWrap.header-book-spark-flash .header-book-flash-layer {
    opacity: 1 !important;
}

html body #headerBookBtnWrap.header-book-spark-flash .spark {
    z-index: 8 !important;
}

/* Final placeholder-style sync for the listed booking fields. */
#bookingModal[data-state="form"] #bookingForm :is(input[name="name"],
    input[name="occupation"],
    textarea[name="notes"],
    input[name="phone"],
    input[name="email"],
    input[name="address_unit"],
    input[name="address_street"],
    input[name="address_zip"],
    input[name="dob"]) {
    font-size: var(--booking-form-font-size) !important;
    letter-spacing: 0.01em !important;
}

#bookingModal[data-state="form"] #bookingForm :is(input[name="name"],
    input[name="occupation"],
    textarea[name="notes"],
    input[name="phone"],
    input[name="email"],
    input[name="address_unit"],
    input[name="address_street"],
    input[name="address_zip"])::placeholder {
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    opacity: 0.82 !important;
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: 400 !important;
    letter-spacing: inherit !important;
    font-style: normal !important;
    text-transform: none !important;
    text-align: left !important;
    text-align-last: left !important;
}

#bookingModal[data-state="form"] #bookingForm :is(input[name="address_zip"],
    input[name="dob"]) {
    text-align: left !important;
    text-align-last: left !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
}

#bookingModal[data-state="form"] #bookingForm input[name="dob"]:not(.booking-dob-has-value) {
    text-align: left !important;
    text-align-last: left !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
}

#bookingModal[data-state="form"] #bookingForm input[name="dob"]::placeholder {
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    opacity: 0.82 !important;
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: 400 !important;
    letter-spacing: inherit !important;
    font-style: normal !important;
    text-transform: none !important;
    text-align: left !important;
    text-align-last: left !important;
}

#bookingModal[data-state="form"] #bookingForm input[name="dob"]::-webkit-input-placeholder {
    text-align: left !important;
}

#bookingModal[data-state="form"] #bookingForm input[name="address_zip"]:placeholder-shown {
    text-align: center !important;
    text-align-last: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

#bookingModal[data-state="form"] #bookingForm input[name="address_zip"]:placeholder-shown::placeholder {
    text-align: center !important;
    text-align-last: center !important;
}

#bookingModal[data-state="form"] #bookingForm input[name="address_zip"]:placeholder-shown::-webkit-input-placeholder {
    text-align: center !important;
}

#bookingModal[data-state="form"] #bookingForm input[name="address_zip"] {
    text-align: center !important;
    text-align-last: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

#bookingModal[data-state="form"] #bookingForm input[name="address_zip"]::placeholder,
#bookingModal[data-state="form"] #bookingForm input[name="address_zip"]::-webkit-input-placeholder {
    text-align: center !important;
    text-align-last: center !important;
}

/* Restore the previous placeholder styling for the About You inputs. */
#bookingModal[data-state="form"] #bookingForm :is(input[name="name"],
    input[name="occupation"])::placeholder {
    color: var(--modal-lock-button-text) !important;
    -webkit-text-fill-color: var(--modal-lock-button-text) !important;
    opacity: 0.82 !important;
    font-family: 'Lato', sans-serif !important;
    font-size: var(--booking-form-font-size) !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
    letter-spacing: 0.01em !important;
    font-style: normal !important;
    text-transform: none !important;
    text-align: left !important;
    text-align-last: left !important;
}

#bookingModal #cityCustomSelect.open .custom-options {
    max-height: 80vh !important;
    max-height: 80dvh !important;
}

/* Mobile header text stretch */
@media (max-width: 768px) {
    .header__subtitle {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-inline: clamp(0.6rem, 2.5vw, 1.2rem) !important;
        box-sizing: border-box !important;
        white-space: normal !important;
        text-wrap: balance !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
        font-size: clamp(1.55rem, 7.4vw, 3.4rem) !important;
        letter-spacing: -0.035em !important;
        text-align: center !important;
    }
}

/* Mobile header text stretch for description block */
@media (max-width: 768px) {
    .header__description {
        font-size: clamp(0.35rem, 3.4vw, 12pt) !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
    }

    .header__description span {
        display: block !important;
        white-space: nowrap !important;
        text-wrap: nowrap !important;
        overflow-wrap: normal !important;
        word-break: keep-all !important;
        width: 100% !important;
        text-align: center !important;
    }
}

/* Intake Notice mobile fit: keep section titles and action buttons on one row. */
@media (max-width: 480px) {
    #intakeNoticeModal .modal__section-title {
        white-space: nowrap !important;
        text-wrap: nowrap !important;
        overflow-wrap: normal !important;
        word-break: keep-all !important;
        font-size: clamp(1.02rem, 4.9vw, 1.12rem) !important;
        letter-spacing: 0 !important;
        line-height: 1.2 !important;
    }

    #intakeNoticeModal .modal__section-title.intake-notice-modal__core-heading {
        font-size: clamp(0.7rem, 3.7vw, 1.5rem) !important;
        line-height: 1.15 !important;
        letter-spacing: -0.01em !important;
    }

    #intakeNoticeModal .intake-notice-modal__actions>div {
        flex-wrap: nowrap !important;
        justify-content: center !important;
        gap: 0.5rem !important;
    }

    #intakeNoticeModal .intake-notice-modal__ok {
        min-width: 0 !important;
        width: calc(50% - 0.25rem) !important;
        max-width: calc(50% - 0.25rem) !important;
        padding: 0.68rem 0.35rem !important;
        font-size: 0.82rem !important;
        letter-spacing: 0.03em !important;
    }
}

/* Final lock: booking terms checkbox matches dark BOOK button tone. */
#bookingModal .contact-form__checkbox,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox,
#bookingModal .contact-form__checkbox:checked,
#bookingModal .contact-form__checkbox:checked:hover,
#bookingModal .contact-form__checkbox:checked:active,
#bookingModal .contact-form__checkbox:checked:focus-visible,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked:hover,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked:active,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked:focus-visible {
    background: #593a2e !important;
    border: 1px solid #593a2e !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 0.46rem 1.02rem rgba(var(--site-bg-shadow-rgb), 0.18) !important;
}

#bookingModal .contact-form__checkbox:hover,
#bookingModal .contact-form__checkbox:active,
#bookingModal .contact-form__checkbox:focus-visible,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:hover,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:active,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:focus-visible {
    background: #593a2e !important;
    border-color: #593a2e !important;
}

#bookingModal .contact-form__checkbox:checked::after,
#bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox:checked::after {
    border-right-color: #fffaf3 !important;
    border-bottom-color: #fffaf3 !important;
    transform: translate(-50%, -62%) rotate(45deg) scale(1) !important;
}

/* Narrow screens: keep camera/paperclip icons pinned to the left and scale helper text instead of clipping. */
@media (max-width: 560px) {
    #bookingModal .file-attach .file-attach__drop-zone-camera,
    #bookingModal .file-attach .file-attach__drop-zone-file {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 0.6rem !important;
    }

    #bookingModal .file-attach .file-attach__drop-zone-camera .file-attach__btn,
    #bookingModal .file-attach .file-attach__drop-zone-file .file-attach__btn,
    #bookingModal .file-attach #takePhotoBtn,
    #bookingModal .file-attach #attachFilesBtn {
        margin: 0 !important;
        margin-left: 0 !important;
        align-self: center !important;
        justify-self: flex-start !important;
        flex: 0 0 auto !important;
    }

    #bookingModal[data-state="form"] #bookingForm .file-attach .file-attach__drop-zone-camera,
    #bookingModal[data-state="form"] #bookingForm .file-attach .file-attach__drop-zone-file,
    #bookingModal #bookingForm .file-attach .file-attach__drop-zone-camera,
    #bookingModal #bookingForm .file-attach .file-attach__drop-zone-file {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
    }

    #bookingModal[data-state="form"] #bookingForm .file-attach .file-attach__helper-text,
    #bookingModal[data-state="form"] #bookingForm .file-attach .file-attach__drop-zone p,
    #bookingModal #bookingForm .file-attach .file-attach__helper-text,
    #bookingModal #bookingForm .file-attach .file-attach__drop-zone p {
        margin: 0 !important;
        flex: 1 1 auto !important;
        align-self: center !important;
        min-width: 0 !important;
        text-align: left !important;
        font-size: clamp(0.66rem, 0.42rem + 1.15vw, 1rem) !important;
        line-height: 1.32 !important;
        display: block !important;
        overflow: visible !important;
        text-overflow: clip !important;
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: anywhere !important;
        text-wrap: pretty !important;
        -webkit-line-clamp: unset !important;
        -webkit-box-orient: initial !important;
    }
}

/* Final mobile lock: keep Terms checkbox size unchanged on phones/tablets. */
@media (max-width: 768px) {
    #bookingModal .contact-form__checkbox,
    #bookingModal .contact-form__checkbox-wrapper.file-attach__terms .contact-form__checkbox {
        width: 1.55rem !important;
        height: 1.55rem !important;
        min-width: 1.55rem !important;
        min-height: 1.55rem !important;
        max-width: 1.55rem !important;
        max-height: 1.55rem !important;
        flex: 0 0 1.55rem !important;
    }
}

/* Final hero responsive lock:
   allow the main service title to wrap on narrow screens
   instead of overflowing past the viewport and getting clipped. */
@media (max-width: 768px) {
    .header__subtitle {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-inline: clamp(0.6rem, 2.5vw, 1.2rem) !important;
        box-sizing: border-box !important;
        white-space: normal !important;
        text-wrap: balance !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
        font-size: clamp(1.7rem, 8vw, 3.2rem) !important;
        line-height: 0.96 !important;
        letter-spacing: -0.035em !important;
        text-align: center !important;
    }
}

/* Final booking file list lock:
   keep checkmarks and filenames left-aligned inside the form on all devices. */
#bookingModal #bookingForm .file-attach__item,
#bookingModal #bookingForm .file-attach__summary,
#bookingModal #bookingForm .file-attach__name {
    text-align: left !important;
}

#bookingModal #bookingForm .file-attach__summary {
    display: grid !important;
    grid-template-columns: 0.92rem minmax(0, 1fr) !important;
    justify-content: start !important;
    justify-items: start !important;
    align-items: center !important;
    width: auto !important;
}

#bookingModal #bookingForm .file-attach__name {
    justify-self: start !important;
    width: 100% !important;
    margin: 0 !important;
}

#bookingModal #bookingForm .file-attach__check {
    justify-self: start !important;
    color: #78c98b !important;
}

#bookingModal #bookingForm .file-attach__item[data-upload-sync-state="failed"] .file-attach__check {
    color: #ff7070 !important;
    filter: drop-shadow(0 0 0.38rem rgba(255, 112, 112, 0.4)) !important;
}
    


