/*
 * CeciStyle shared public holiday foundation.
 * Individual holiday files define the palette and decorative treatment.
 */

body.holiday-theme {
    --holiday-primary: #25364a;
    --holiday-secondary: #eef1f4;
    --holiday-accent: #9c6a3b;
    --holiday-accent-two: #c7a968;
    --holiday-surface: #ffffff;
    --holiday-text: #26313d;
    --holiday-muted: #626d78;
    --holiday-border: rgba(37, 54, 74, 0.25);
    --holiday-topbar-background: rgba(255, 255, 255, 0.97);
    --holiday-topbar-text: var(--holiday-primary);
    --holiday-topbar-icon-filter: none;
    --holiday-header-background: linear-gradient(125deg, #f8f6f2, #eceff2);
    --holiday-header-text: var(--holiday-primary);
    --holiday-header-muted: var(--holiday-muted);
    --holiday-page-background: linear-gradient(180deg, #fafafa, #f1f3f5);
    --holiday-hero-filter: saturate(0.95) contrast(1.04) brightness(0.88);
    --holiday-hero-overlay:
        linear-gradient(115deg, rgba(22, 41, 62, 0.7), rgba(82, 53, 38, 0.4)),
        linear-gradient(to bottom, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.64));
    --holiday-stripe:
        linear-gradient(90deg, var(--holiday-primary), var(--holiday-accent-two), var(--holiday-accent));
    --theme-primary: var(--holiday-primary);
    --theme-secondary: var(--holiday-secondary);
    --theme-accent: var(--holiday-accent);
    --theme-background: var(--holiday-surface);
    --theme-surface: var(--holiday-surface);
    --theme-text: var(--holiday-text);
    --theme-muted-text: var(--holiday-muted);
    --theme-border: var(--holiday-border);
    color: var(--holiday-text);
    background: var(--holiday-page-background);
}

body.holiday-theme .holiday-notice {
    position: relative;
    z-index: 41;
    display: flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 8px 18px;
    border-bottom: 1px solid var(--holiday-border);
    color: var(--holiday-text);
    background: var(--holiday-secondary);
    text-align: center;
    box-shadow: 0 5px 18px rgba(20, 31, 44, 0.08);
}

body.holiday-theme .holiday-notice__title {
    color: var(--holiday-primary);
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

body.holiday-theme .holiday-notice__divider {
    width: 5px;
    height: 5px;
    flex: 0 0 5px;
    border-radius: 50%;
    background: var(--holiday-accent-two);
}

body.holiday-theme .holiday-notice__message {
    color: var(--holiday-muted);
    font-size: 13px;
    line-height: 1.35;
}

body.holiday-theme .topbar {
    color: var(--holiday-topbar-text);
    border-bottom-color: var(--holiday-border);
    background: var(--holiday-topbar-background);
    box-shadow:
        inset 0 -3px 0 var(--holiday-accent),
        0 8px 22px rgba(20, 31, 44, 0.1);
}

body.holiday-theme .topbar__center {
    border-color: var(--holiday-border);
    background: color-mix(in srgb, var(--holiday-topbar-background) 90%, var(--holiday-secondary));
    box-shadow: 0 3px 14px rgba(20, 31, 44, 0.1);
}

body.holiday-theme .topbar__link,
body.holiday-theme .heroHeader__logoTop,
body.holiday-theme .findUsTextTop,
body.holiday-theme .heroHeader__icon,
body.holiday-theme .heroHeader__menu,
body.holiday-theme .heroHeader__menuTextTop {
    color: var(--holiday-topbar-text);
}

body.holiday-theme .findUsIcon,
body.holiday-theme .topbar .heroHeader__icon .icon {
    filter: var(--holiday-topbar-icon-filter);
}

body.holiday-theme .burger span {
    background: var(--holiday-topbar-text);
}

body.holiday-theme.home-page:not(.is-scrolled) .topbar {
    box-shadow: none;
}

body.holiday-theme.home-page:not(.is-scrolled) .topbar__center {
    border-color: rgba(255, 255, 255, 0.46);
    background: rgba(15, 27, 42, 0.56);
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
}

body.holiday-theme.home-page:not(.is-scrolled) .topbar__link {
    color: #fff;
}

body.holiday-theme.home-page #withoutScroll {
    opacity: var(--booking-o, calc(1 - var(--morph, 0)));
}

body.holiday-theme.home-page #withScroll {
    opacity: var(--top-logo-o, var(--morph, 0));
}

body.holiday-theme.home-page.is-scrolled .heroHeader,
body.holiday-theme.home-page.is-scrolled .heroHeader__logo,
html[data-morph="1"] body.holiday-theme.home-page .heroHeader,
html[data-morph="1"] body.holiday-theme.home-page .heroHeader__logo {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

body.holiday-theme .hero__video {
    filter: var(--holiday-hero-filter);
}

body.holiday-theme .hero__overlay {
    background: var(--holiday-hero-overlay);
}

body.holiday-theme .hero::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 5;
    height: 7px;
    background: var(--holiday-stripe);
}

body.holiday-theme .heroHeader__logo,
body.holiday-theme .hero__word {
    color: #fff;
    text-shadow: 0 5px 28px rgba(4, 16, 31, 0.48);
}

body.holiday-theme .afterHero {
    background: var(--holiday-page-background);
}

body.holiday-theme .afterHero .card {
    border-color: var(--holiday-border);
    background: var(--holiday-surface);
    box-shadow: 0 14px 34px rgba(20, 31, 44, 0.09);
}

body.holiday-theme .drawer__backdrop {
    background: rgba(4, 17, 34, 0.42);
}

body.holiday-theme .drawer__panel {
    color: var(--holiday-text);
    border-left-color: var(--holiday-border);
    background: linear-gradient(155deg, var(--holiday-surface), var(--holiday-secondary));
    box-shadow: -18px 0 44px rgba(15, 28, 43, 0.2);
}

body.holiday-theme .drawer__close,
body.holiday-theme .drawer__item {
    color: var(--holiday-primary);
}

body.holiday-theme .drawer__item {
    border-bottom-color: var(--holiday-border);
}

body.holiday-theme .drawer__item:hover,
body.holiday-theme .drawer__item:focus-visible {
    color: var(--holiday-accent);
    opacity: 1;
}

body.holiday-theme .drawer__small {
    color: var(--holiday-muted);
}

body.holiday-theme #f-cover {
    border-top: 5px solid var(--holiday-primary);
    color: var(--holiday-primary);
    background: linear-gradient(120deg, var(--holiday-surface), var(--holiday-secondary));
    box-shadow:
        inset 0 2px 0 var(--holiday-accent-two),
        inset 0 5px 0 var(--holiday-accent);
}

/*
 * The uploaded black logo has a white raster background. All holiday footers
 * use light surfaces, so multiply visually removes that white box while
 * preserving the original black artwork and its antialiasing.
 */
body.holiday-theme .footer-brand-logo,
body.holiday-theme #footer-logo {
    background: transparent;
    mix-blend-mode: multiply;
}

body.holiday-theme #f-cover a:hover,
body.holiday-theme #f-cover a:focus-visible {
    color: var(--holiday-accent);
}

body.holiday-theme .page-header-card {
    position: relative;
    overflow: hidden;
    border-color: var(--holiday-border);
    color: var(--holiday-header-text);
    background: var(--holiday-header-background);
    box-shadow: 0 16px 36px rgba(20, 31, 44, 0.12);
}

body.holiday-theme .page-header-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: var(--holiday-stripe);
}

body.holiday-theme .page-header-card__title {
    color: var(--holiday-header-text);
}

body.holiday-theme .page-header-card__subtitle {
    color: var(--holiday-header-muted);
}

body.holiday-theme.booking-page,
body.holiday-theme .gallery-hero,
body.holiday-theme .gallery-section,
body.holiday-theme .terms-page {
    background: var(--holiday-page-background);
}

body.holiday-theme .booking h2,
body.holiday-theme .booking .chosen-day,
body.holiday-theme .gallery-hero h1,
body.holiday-theme .gallery-card__content h2,
body.holiday-theme .terms-page__header h1,
body.holiday-theme .terms-card h2 {
    color: var(--holiday-primary);
}

body.holiday-theme .booking .book-days,
body.holiday-theme .booking .book-time,
body.holiday-theme .gallery-hero p {
    color: var(--holiday-muted);
    opacity: 1;
}

body.holiday-theme .booking .box-hour {
    color: var(--holiday-primary);
    border-color: var(--holiday-border);
    background: var(--holiday-surface);
    box-shadow: 0 4px 12px rgba(20, 31, 44, 0.06);
}

body.holiday-theme .booking .box-hour:hover {
    color: var(--holiday-accent);
    border-color: var(--holiday-accent);
    background: var(--holiday-secondary);
}

body.holiday-theme .booking .box-hour.box-hour--selected,
body.holiday-theme .booking .box-hour.box-hour--selected:hover {
    color: #fff;
    border-color: var(--holiday-primary);
    background: var(--holiday-primary);
}

body.holiday-theme .book-info .info-user,
body.holiday-theme .column-flex #area-info-user,
body.holiday-theme .booking #bday {
    color: var(--holiday-primary);
    border-color: var(--holiday-border);
    background: var(--holiday-surface);
}

body.holiday-theme .book-info .info-user:focus,
body.holiday-theme .column-flex #area-info-user:focus,
body.holiday-theme .booking #bday:focus {
    border-color: var(--holiday-accent);
    outline: 3px solid color-mix(in srgb, var(--holiday-accent) 20%, transparent);
}

body.holiday-theme .booking input[type="submit"],
body.holiday-theme .confirmation-button {
    border-color: var(--holiday-primary);
    color: #fff;
    background: var(--holiday-primary);
    box-shadow: 0 8px 20px rgba(20, 31, 44, 0.18);
}

body.holiday-theme .booking input[type="submit"]:hover,
body.holiday-theme .confirmation-button:hover {
    border-color: var(--holiday-accent);
    color: #fff;
    background: var(--holiday-accent);
}

body.holiday-theme .booking-cover-title-reviews,
body.holiday-theme.booking-confirmation-page .confirmation-card,
body.holiday-theme.booking-confirmation-page .confirmation-notice,
body.holiday-theme.booking-confirmation-page .confirmation-social {
    border-color: var(--holiday-border);
    background: color-mix(in srgb, var(--holiday-surface) 94%, transparent);
    box-shadow: 0 13px 31px rgba(20, 31, 44, 0.09);
}

body.holiday-theme .page-header-card .google-rating,
body.holiday-theme .page-header-card .google-rating__score,
body.holiday-theme .page-header-card .google-rating__count,
body.holiday-theme .page-header-card .booking-trust__text {
    color: var(--holiday-header-text);
    opacity: 1;
}

body.holiday-theme .page-header-card .google-rating__star-icon {
    fill: var(--holiday-accent-two);
}

body.holiday-theme .page-header-card .booking-cover-title-reviews {
    border-color: var(--holiday-border);
    background: color-mix(in srgb, var(--holiday-surface) 18%, transparent);
}

body.holiday-theme .gallery-card,
body.holiday-theme .terms-nav,
body.holiday-theme .terms-card {
    border-color: var(--holiday-border);
    background: var(--holiday-surface);
    box-shadow: 0 15px 34px rgba(20, 31, 44, 0.1);
}

body.holiday-theme .gallery-card__content span,
body.holiday-theme .terms-page__eyebrow,
body.holiday-theme .terms-card h3,
body.holiday-theme .terms-card a {
    color: var(--holiday-accent);
}

body.holiday-theme .terms-nav a:hover,
body.holiday-theme .terms-nav a:focus {
    color: var(--holiday-accent);
    background: var(--holiday-secondary);
}

body.holiday-theme a:focus-visible,
body.holiday-theme button:focus-visible,
body.holiday-theme input:focus-visible,
body.holiday-theme select:focus-visible,
body.holiday-theme textarea:focus-visible {
    outline: 3px solid var(--holiday-accent-two);
    outline-offset: 3px;
}

@media (max-width: 700px) {
    body.holiday-theme .holiday-notice {
        flex-wrap: wrap;
        gap: 4px 9px;
        padding: 8px 14px;
    }

    body.holiday-theme .holiday-notice__message {
        flex-basis: 100%;
    }

    body.holiday-theme .holiday-notice__divider {
        display: none;
    }

    body.holiday-theme .topbar__center {
        width: min(440px, 62vw);
    }

    body.holiday-theme .page-header-card {
        border-radius: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.holiday-theme *,
    body.holiday-theme *::before,
    body.holiday-theme *::after {
        scroll-behavior: auto;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
