/* booking-buttons-theme.css — BOOK button styles (header, footer, confirm).
   Extracted from calendar-theme-active.css during 2026-05 decomposition. */

/* Main-page BOOK buttons: keep modal-lock palette and glow. */
#headerBookBtn:not(:disabled):not([aria-disabled="true"]),
#footerBookBtn:not(:disabled):not([aria-disabled="true"]) {
    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 {
    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;
}

/* 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;
}

/* 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;
}

/* 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;
}

#bookingModal[data-state="form"] #confirmBookingBtn,
#bookingModal.booking-modal--flat[data-state="form"] #confirmBookingBtn {
    margin: 1rem auto 0.85rem !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;
    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;
}

/* -------- BOOK button @keyframes -------- */
/* LEGACY: headerBookDoublePulse / headerBookPerimeterGlint / headerBookPerimeterBreath
   — 0 animation: references found in any CSS/JS/HTML file. All overridden with animation: none.

@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); }
}

END LEGACY */

/* 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;
}

/* 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;
}

/* Footer BOOK width lock */
#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;
}
