/* Seasonal overrides only. Remove the body class/config switch to restore the site. */
body.christmas-theme {
    --christmas-red: #b62039;
    --christmas-red-dark: #94172d;
    --christmas-green: #176347;
    --christmas-green-deep: #082e23;
    --christmas-white: #fffdf8;
    --christmas-snow: rgba(255, 253, 248, .18);
    --christmas-link: #ffd9df;
    --portal-bg: #081e18;
    --portal-bg-deep: #04130f;
    --portal-bg-soft: #102c23;
    --portal-card: #102e25;
    --portal-card-strong: #0c261e;
    --portal-surface: #193a2f;
    --portal-surface-strong: #234b3e;
    --portal-border: rgba(235, 250, 239, .2);
    --portal-text: var(--christmas-white);
    --portal-muted: #d1e2d8;
    --portal-muted-soft: #aac6b8;
    --portal-primary: var(--christmas-red);
    --portal-primary-dark: var(--christmas-red-dark);
    --portal-primary-contrast: var(--christmas-white);
    --portal-primary-soft: rgba(182, 32, 57, .2);
    --portal-accent: #85d5a9;
    --portal-accent-soft: rgba(77, 159, 112, .2);
    --portal-success: #85d5a9;
    --portal-danger: #ffadba;
    --portal-shadow: 0 22px 64px rgba(0, 15, 8, .25);
    --bg: var(--portal-bg);
    --panel: var(--portal-card);
    --panel-soft: var(--portal-surface);
    --text: var(--portal-text);
    --text-muted: var(--portal-muted);
    --border: var(--portal-border);
    --accent: var(--portal-primary);
    --accent-hover: var(--portal-primary-dark);
    color: var(--portal-text);
    background: radial-gradient(ellipse at 0 0, var(--portal-accent-soft), transparent 45%),
        radial-gradient(ellipse at 100% 15%, var(--portal-primary-soft), transparent 35%),
        linear-gradient(180deg, var(--portal-bg), var(--portal-bg-deep));
}
body.christmas-theme.light-mode {
    --portal-bg: #fbfaf5;
    --portal-bg-deep: #edf3ed;
    --portal-bg-soft: #f2f6f0;
    --portal-card: #ffffff;
    --portal-card-strong: #fffdf8;
    --portal-surface: #f0f5ef;
    --portal-surface-strong: #e1ede1;
    --portal-border: rgba(18, 67, 46, .19);
    --portal-text: #173e2e;
    --portal-muted: #496254;
    --portal-muted-soft: #526e5c;
    --portal-primary-soft: rgba(182, 32, 57, .08);
    --portal-accent: var(--christmas-green);
    --portal-accent-soft: rgba(23, 99, 71, .09);
    --portal-success: #176347;
    --portal-danger: #a51c33;
    --christmas-link: #9d1a32;
    --portal-shadow: 0 22px 64px rgba(19, 62, 42, .08);
}
body.christmas-theme .christmas-ribbon {
    color: var(--christmas-white);
    background: var(--christmas-green-deep);
    border-top: 5px solid transparent;
    border-image: repeating-linear-gradient(120deg, var(--christmas-red) 0 16px, var(--christmas-white) 16px 24px, var(--christmas-green) 24px 40px, var(--christmas-white) 40px 48px) 5;
}
.christmas-ribbon-inner { max-width: 1440px; margin: auto; padding: 13px 20px; display: flex; justify-content: center; align-items: center; gap: 22px; font-size: .83rem; line-height: 1.5; }
.christmas-ribbon strong { font-weight: 800; }
.christmas-ribbon a { color: var(--christmas-white); font-weight: 750; text-underline-offset: 4px; white-space: nowrap; }
.christmas-sparkle { color: var(--christmas-white); font-size: 1.45rem; }
body.christmas-theme .public-navbar { background: var(--portal-card-strong) !important; border-bottom: 1px solid var(--portal-border); }
body.christmas-theme .nav-link { color: var(--portal-muted) !important; }
body.christmas-theme .nav-link.active,
body.christmas-theme .nav-link:hover { color: var(--portal-text) !important; background: var(--portal-primary-soft); }
body.christmas-theme .public-main a:not(.btn):not(.btn-home-primary):not(.btn-home-outline) { color: var(--christmas-link); }
body.christmas-theme .public-main a:not(.btn):hover { color: var(--portal-text); }
body.christmas-theme .btn-premium,
body.christmas-theme .btn.btn-primary,
body.christmas-theme .btn-home-primary,
body.christmas-theme .home-newsletter-form button {
    background: var(--christmas-red) !important; border-color: var(--christmas-red) !important; color: var(--christmas-white) !important;
    box-shadow: 0 8px 24px var(--portal-primary-soft);
}
body.christmas-theme .btn-premium:hover,
body.christmas-theme .btn.btn-primary:hover,
body.christmas-theme .btn-home-primary:hover,
body.christmas-theme .home-newsletter-form button:hover { background: var(--christmas-red-dark) !important; border-color: var(--christmas-red-dark) !important; }
body.christmas-theme .btn-glass,
body.christmas-theme .btn.btn-secondary,
body.christmas-theme .btn.btn-outline-light,
body.christmas-theme .btn.btn-outline-secondary,
body.christmas-theme .btn-home-outline { background: var(--portal-surface) !important; border-color: var(--portal-border) !important; color: var(--portal-text) !important; }
body.christmas-theme .btn.btn-success { background: var(--christmas-green); border-color: var(--christmas-green); color: var(--christmas-white) !important; }
body.christmas-theme .public-main .text-primary { color: var(--christmas-link) !important; }
body.christmas-theme .public-main .text-success { color: var(--portal-success) !important; }
body.christmas-theme .public-main .text-danger { color: var(--portal-danger) !important; }
body.christmas-theme .form-control,
body.christmas-theme .form-select,
body.christmas-theme .home-newsletter-form input,
body.christmas-theme .newsletter-form input {
    background: var(--portal-surface) !important; color: var(--portal-text) !important; border-color: var(--portal-border) !important;
}
body.christmas-theme .form-control::placeholder,
body.christmas-theme .newsletter-form input::placeholder { color: var(--portal-muted) !important; }
body.christmas-theme .public-shell :focus-visible { outline: 3px solid var(--portal-accent); outline-offset: 4px; }
body.christmas-theme .home-kicker,
body.christmas-theme .home-section-heading span,
body.christmas-theme .home-enquiry-panel span,
body.christmas-theme .home-act-category { background: var(--christmas-green); color: var(--christmas-white); }
/* The base theme pins these components with !important; match that intentionally. */
body.christmas-theme .public-page-title h1,
body.christmas-theme .portal-page-header h1 { color: var(--portal-text) !important; }
body.christmas-theme .public-page-title p,
body.christmas-theme .portal-page-header p { color: var(--portal-muted) !important; }
body.christmas-theme .public-page-kicker,
body.christmas-theme .public-page-title .home-kicker,
body.christmas-theme .public-page-title .reviews-kicker,
body.christmas-theme .home-section-heading span,
body.christmas-theme .home-enquiry-panel span,
body.christmas-theme .home-logo-strip-header span,
body.christmas-theme .acts-filter-kicker,
body.christmas-theme .public-act-category,
body.christmas-theme .home-act-category,
body.christmas-theme .home-act-fee,
body.christmas-theme .ticket-kicker {
    background: var(--christmas-green) !important; color: var(--christmas-white) !important; border-color: var(--christmas-green) !important;
}
body.christmas-theme .footer-socials a { background: var(--portal-surface) !important; color: var(--portal-text) !important; }
@media (max-width: 1399px) { body.christmas-theme #publicNav { background: var(--portal-card-strong) !important; } }
body.christmas-theme .home-inviting-hero.public-page-title {
    background: radial-gradient(circle at 15px 15px, var(--christmas-snow) 1px, transparent 2px) 0 0 / 90px 90px,
        radial-gradient(ellipse at top right, var(--portal-primary-soft), transparent 60%),
        linear-gradient(135deg, var(--portal-card), var(--portal-bg));
    border-color: var(--portal-border);
}
body.christmas-theme .home-hero-content h1,
body.christmas-theme .home-section-heading h2,
body.christmas-theme .home-enquiry-panel h2,
body.christmas-theme .home-act-body h3,
body.christmas-theme .home-newsletter-copy h2 { color: var(--portal-text); }
body.christmas-theme .home-hero-content p,
body.christmas-theme .home-section-heading p,
body.christmas-theme .home-enquiry-panel p,
body.christmas-theme .home-newsletter-copy p,
body.christmas-theme .home-newsletter-form label { color: var(--portal-muted); }
body.christmas-theme .home-act-card,
body.christmas-theme .home-category-strip,
body.christmas-theme .home-logo-strip { background: var(--portal-card) !important; border-color: var(--portal-border) !important; }
body.christmas-theme .home-category-strip a { background: var(--portal-surface); border-color: var(--portal-border); color: var(--portal-text) !important; }
body.christmas-theme .home-category-strip a:hover { background: var(--christmas-green); color: var(--christmas-white) !important; }
body.christmas-theme .home-newsletter,
body.christmas-theme .home-enquiry-panel { background: radial-gradient(ellipse at top right, var(--portal-primary-soft), transparent 65%), var(--portal-card) !important; border-color: var(--portal-border) !important; }
body.christmas-theme .home-newsletter-copy span { background: var(--portal-primary-soft); color: var(--christmas-link); border-color: var(--portal-border); }
body.christmas-theme .site-footer { background: linear-gradient(135deg, var(--portal-card-strong), var(--portal-bg-deep)); border-top: 1px solid var(--portal-border); color: var(--portal-text); }
body.christmas-theme .footer-column h4,
body.christmas-theme .footer-business-name { color: var(--portal-text); }
body.christmas-theme .footer-text,
body.christmas-theme .footer-small,
body.christmas-theme .footer-links a,
body.christmas-theme .footer-contact,
body.christmas-theme .footer-contact a,
body.christmas-theme .newsletter-form label { color: var(--portal-muted); }
body.christmas-theme .footer-socials a { background: var(--portal-surface); color: var(--portal-text); border-color: var(--portal-border); }
@media (max-width: 700px) {
    body.christmas-theme .home-inviting-hero.public-page-title { grid-template-columns: minmax(0, 1fr) !important; min-height: 0 !important; padding-top: 32px !important; }
    body.christmas-theme .home-inviting-hero.public-page-title .home-hero-content { min-width: 0; max-width: 100% !important; }
    body.christmas-theme .public-page-title h1 { font-size: clamp(2rem, 9vw, 3.5rem) !important; overflow-wrap: anywhere; }
    .christmas-ribbon-inner { gap: 8px 14px; flex-wrap: wrap; text-align: center; padding: 12px 16px; }
    .christmas-ribbon-inner > div { flex-basis: calc(100% - 60px); }
    .christmas-ribbon-inner > div span { display: block; }
    .christmas-ribbon-inner > .christmas-sparkle:last-child { display: none; }
}
@media print { .christmas-ribbon { display: none; } }
