:root {
            /* Variable definitions logically bound to actual colors */
            --country-navy: #1c2d3d; /* Original slate-navy blue */
            --country-red: #822310;  /* Original rich country red */
            --country-cream: #eae5d9;
            --light-linen: #fcfaf6;
            --font-display: 'Oswald', sans-serif;
            --font-script: 'Satisfy', cursive;
            --font-body: 'Plus Jakarta Sans', sans-serif;
        }

        [data-bs-theme="dark"] {
            --country-navy: #111a24; /* Dark slate-navy */
            --country-cream: #212529;
            --light-linen: #121212;
            --country-red: #822310;  /* Dark red */
        }

        body {
            font-family: var(--font-body);
            background-color: var(--light-linen);
            color: var(--text-color);
            overflow-x: hidden;
            font-size: 1.05rem;
        }

        h1, h2, h3, h4, h5, h6, .display-font {
            font-family: var(--font-display);
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .script-font {
            font-family: var(--font-script) !important;
            text-transform: none !important;
        }        

        [data-bs-theme="dark"] .script-font {
            color: #eae5d9 !important; /* Ensure script font is legible in dark mode */
        }

        /* --- UTILITY TOP BAR --- */
        .utility-bar {
            background-color: #ffffff;
            border-bottom: 1px solid #e0e0e0;
            font-size: 0.85rem;
            color: #555555;
        }
        [data-bs-theme="dark"] .utility-bar {
            background-color: #1a1a1a;
            border-bottom: 1px solid #333;
            color: #bbbbbb;
        }

        /* --- BRANDING HEADER ROW --- */
        .brand-header-row {
            background-color: #ffffff;
            padding: 20px 0;
            transition: padding 0.4s ease;
        }
        [data-bs-theme="dark"] .brand-header-row {
            background-color: var(--country-navy);
        }
        /* Scrolled state adjusts padding */
        .brand-header-row.header-scrolled {
            padding: 1px 0 !important; 
        }

        .header-logo {
            max-height: 95px;
            width: auto;
            object-fit: contain;
            transition: max-height 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
        }

        .fair-dates-header {
            font-family: var(--font-display);
            font-weight: 700;
            color: var(--country-red); /* Swapped to red */
            font-size: 1.5rem;
            letter-spacing: 1px;
        }
        [data-bs-theme="dark"] .fair-dates-header {
            color: #ffffff;
        }

        /* Countdown Widget */
        .header-countdown {
            display: flex;
            gap: 15px;
            justify-content: flex-end;
        }
        .countdown-item {
            text-align: center;
            min-width: 90px;
        }
        .countdown-num {
            display: block;
            font-family: var(--font-display);
            font-size: 2rem;
            font-weight: 700;
            color: var(--country-red); /* Swapped to red */
            line-height: 1;
        }
        [data-bs-theme="dark"] .countdown-num {
            color: #ffffff;
        }
        .countdown-label {
            font-size: 0.75rem;
            text-transform: uppercase;
            color: #777777;
            font-weight: 600;
        }

        /* --- NAVIGATION BAR --- */
        .sticky-navbar {
            background-color: var(--country-red) !important; /* Swapped to red */
            padding: 0;
            box-shadow: 0 4px 10px rgba(0,0,0,0.1);
        }
        .sticky-navbar .nav-link {
            color: #ffffff !important;
            font-family: var(--font-display);
            font-size: 1.05rem;
            font-weight: 600;
            padding: 18px 20px !important;
            letter-spacing: 0.5px;
            transition: background-color 0.2s ease;
        }
        .sticky-navbar .nav-link:hover, 
        .sticky-navbar .nav-link.active {
            background-color: rgba(255, 255, 255, 0.08);
        }

        /* --- FIXED HERO HEIGHT CAROUSEL --- */
        .hero-slider-container {
            height: 480px; /* Locked Height on desktop */
            width: 100%;
            overflow: hidden;
            position: relative;
        }
        @media (max-width: 992px) {
            .hero-slider-container {
                height: 400px;
            }
        }
        @media (max-width: 768px) {
            .hero-slider-container {
                height: 340px;
            }
        }
        .hero-slider-container .carousel-item {
            height: 100%;
        }
        .hero-slider-container img {
            height: 100% !important;
            width: 100% !important;
            object-fit: cover !important;
            object-position: center !important;
        }
        .hero-overlay-dark {
            position: absolute;
            top: 0; left: 0; right: 0; bottom: 0;
            background: rgba(0, 0, 0, 0.45);
        }

        /* Hero Text Content Overlay */
        .hero-text-content {
            position: absolute;
            top: 50%;
            left: 5%;
            transform: translateY(-50%);
            z-index: 10;
            max-width: 650px;
            color: #ffffff;
        }
        .hero-script-tag {
            color: #ffd34f; /* Warm golden yellow for the script tag */
            font-size: 2.2rem;
            margin-bottom: 5px;            
            text-shadow: 2px 2px 8px rgba(0,0,0,0.6);
        }
        .hero-title-main {
            font-family: var(--font-display);
            font-size: 3.5rem;
            font-weight: 700;
            line-height: 1;
            margin-bottom: 12px;
            text-shadow: 2px 2px 8px rgba(0,0,0,0.6);
        }
        @media (max-width: 768px) {
            /* Position text content wrapper slightly higher for better bottom clearance */
            .hero-text-content {
                top: 50% !important;
            }

            /* Adjust heading size */
            .hero-title-main {
                font-size: 2.0rem !important;
            }

            /* Adjust paragraph text sizes and margin constraints */
            .hero-text-content p {
                font-size: 0.9rem !important;
                margin-bottom: 0.4rem !important;
            }

            /* Adjust badge layout margins and sizes */
            .hero-badge-block {
                margin-bottom: 5px !important;
                font-size: 1.0rem !important;
            }
            .hero-script-tag {
                font-size: 1.6rem !important;
            }
            .hero-overlay-dark {
                background: rgba(0, 0, 0, 0.55) !important; /* Slightly darker overlay on mobile for improved text contrast */
            }
            /* Darker overlay on mobile for just the 1st slide to improve text contrast */
            .carousel-item:first-child .hero-overlay-dark {
                background: rgba(0, 0, 0, 0.65) !important;
            }
        }
        .hero-badge-block {
            background-color: var(--country-navy); /* Swapped to navy */
            display: inline-block;
            padding: 8px 18px;
            font-family: var(--font-display);
            font-weight: 700;
            font-size: 1.25rem;
            border-radius: 4px;
            margin-bottom: 15px;
            letter-spacing: 1px;
        }
        .btn-slate-blue {
            background-color: var(--country-navy); /* Swapped to navy */
            color: #ffffff;
            font-family: var(--font-display);
            font-weight: 600;
            padding: 10px 24px;
            border-radius: 4px;
            transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), background-color 0.2s ease, box-shadow 0.3s ease;
            text-transform: uppercase;
            border: none;
        }
        .btn-slate-blue:hover {
            background-color: var(--country-red) !important; /* Force-preserves the solid slate-navy background */
            transform: translateY(-3px);
            box-shadow: 0 6px 15px rgba(0,0,0,0.15);
            opacity: 0.95;
            color: #ffffff;
        }

        /* --- DOWNLOAD SCHEDULE BANNER --- */
        .download-schedule-bar {
            background-color: var(--country-red); /* Swapped to red */
            background-image: radial-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 0);
            background-size: 20px 20px;
            padding: 40px 0;
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        }
        .pointing-hand-wrapper {
            display: flex;
            align-items: center;
            gap: 15px;
        }
        .pointing-hand-icon {
            font-size: 3.5rem;
            color: var(--country-navy); /* Swapped to navy */
            transform: scaleX(-1);
        }
        .download-title {
            font-family: var(--font-display);
            font-size: 2.4rem;
            font-weight: 700;
            color: #ffffff;
            margin-bottom: 0;
        }

        /* Notched Entry Ticket Style Containers */
        .notched-ticket-container {
            background-color: #eae5d9; /* Always light cream for paper stub contrast */
            color: var(--country-navy); /* High contrast navy text */
            padding: 25px 35px;
            font-family: var(--font-display);
            font-size: 1.25rem;
            font-weight: 700;
            text-align: center;
            border-radius: 6px;
            position: relative;
            background-image: 
                radial-gradient(circle at 0 50%, transparent 12px, #eae5d9 13px),
                radial-gradient(circle at 100% 50%, transparent 12px, #eae5d9 13px);
            background-position: left, right;
            background-size: 100% 100%;
            background-repeat: no-repeat;
        }
        [data-bs-theme="dark"] .notched-ticket-container {
            background-color: #eae5d9 !important; /* Maintained contrast in dark mode */
            color: #111a24 !important;
            background-image: 
                radial-gradient(circle at 0 50%, transparent 12px, #eae5d9 13px),
                radial-gradient(circle at 100% 50%, transparent 12px, #eae5d9 13px);
        }

        /* --- BLUE DOTTED CARD SECTION --- */
        .red-dotted-section {
            background-color: var(--country-navy); /* Swapped to navy */
            background-image: radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 16%);
            background-size: 12px 12px;
            padding: 70px 0;
        }

        /* Ticket Notched Cards */
        .notched-card {
            background-color: var(--country-cream);
            padding: 40px 30px;
            position: relative;
            border-radius: 4px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.06);
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            align-items: center;
            text-align: center;
            transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), 
                        box-shadow 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
            /* Four Corner Notches */
            background-image: 
                radial-gradient(circle at 0 0, transparent 15px, var(--country-cream) 16px),
                radial-gradient(circle at 100% 0, transparent 15px, var(--country-cream) 16px),
                radial-gradient(circle at 100% 100%, transparent 15px, var(--country-cream) 16px),
                radial-gradient(circle at 0 100%, transparent 15px, var(--country-cream) 16px);
            background-position: top left, top right, bottom right, bottom left;
            background-size: 50% 50%;
            background-repeat: no-repeat;
        }
        .notched-card:hover {
            transform: translateY(-10px);
            box-shadow: 0 15px 35px rgba(0,0,0,0.18);
        }
        .notched-card-icon {
            font-size: 3.5rem;
            color: var(--country-red); /* Swapped to red */
            margin-bottom: 20px;
        }
        .notched-card-title {
            font-family: var(--font-display);
            font-size: 1.8rem;
            font-weight: 700;
            color: var(--country-red); /* Swapped to red */
            margin-bottom: 15px;
        }
        [data-bs-theme="dark"] .notched-card-title {
            color: #ffffff !important; /* Force highly legible white headers in dark mode */
        }
        .notched-card-text {
            font-size: 0.95rem;
            color: #4f4c44;
            line-height: 1.6;
            margin-bottom: 25px;
        }
        [data-bs-theme="dark"] .notched-card-text {
            color: #d1d5db !important; /* Force light gray body text in dark mode */
        }
        /* Button style resets for the notched container */
        button.notched-ticket-container {
            border: none;
            outline: none;
            cursor: pointer;
            display: block;
            width: 100%;
            transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.3s ease;
        }

        /* Smooth continuous bounce on hover */
        @keyframes custom-bounce {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-8px); }
        }

        .notched-ticket-container:hover {
            transform: translateY(-8px);
            box-shadow: 0 8px 20px rgba(0,0,0,0.15);
        }

        /* --- UPCOMING EVENTS ON PARCHMENT/LINEN --- */
        .linen-section {
            background-color: var(--light-linen);
            /* Textured background effect */
            background-image: linear-gradient(rgba(0,0,0,0.01) 1px, transparent 1px),
                              linear-gradient(90deg, rgba(0,0,0,0.01) 1px, transparent 1px);
            background-size: 20px 20px;
            padding: 80px 0;
            border-bottom: 1px solid rgba(0,0,0,0.05);
        }
        .linen-section-title {
            font-family: var(--font-display);
            font-size: 2.8rem;
            font-weight: 700;
            color: var(--country-red); /* Swapped to red */
            margin-bottom: 40px;
        }
        [data-bs-theme="dark"] .linen-section-title {
            color: #ffffff;
        }

        /* Mini Event Cards */
        .mini-event-card {
            background-color: #ffffff;
            border-radius: 4px;
            overflow: hidden;
            box-shadow: 0 4px 15px rgba(0,0,0,0.05);
            transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.3s ease;
            position: relative;
            height: 100%;
        }
        [data-bs-theme="dark"] .mini-event-card {
            background-color: #1e1e1e;
        }
        .mini-event-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 12px 25px rgba(0,0,0,0.12);
        }
        .mini-event-img-wrap {
            height: 200px;
            overflow: hidden;
            position: relative;
        }
        .mini-event-img-wrap img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        /* Top Left Date Badge */
        .mini-date-badge {
            position: absolute;
            top: 0;
            left: 0;
            background-color: var(--country-red); /* Swapped to red */
            color: #ffffff;
            padding: 8px 14px;
            font-family: var(--font-display);
            text-align: center;
            font-weight: 600;
            line-height: 1.2;
            z-index: 5;
        }
        .mini-date-badge span {
            display: block;
            text-transform: uppercase;
        }
        .mini-date-badge .day-num {
            font-size: 1.25rem;
            font-weight: 700;
        }
        .mini-date-badge .month-lbl {
            font-size: 0.75rem;
        }
        .mini-event-info {
            padding: 20px;
        }
        .mini-event-time {
            font-size: 0.85rem;
            color: var(--country-navy); /* Swapped to navy */
            font-weight: 600;
            margin-bottom: 5px;
        }
        .mini-event-title {
            font-family: var(--font-display);
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--country-red); /* Swapped to red */
            margin-bottom: 8px;
            line-height: 1.2;
        }
        [data-bs-theme="dark"] .mini-event-title {
            color: #ffffff;
        }
        .mini-event-loc {
            font-size: 0.85rem;
            color: #666666;
        }
        [data-bs-theme="dark"] .mini-event-loc {
            color: #aaaaaa;
        }

        /* --- COUNTY FULL HERO SECTION --- */
        .full-spotlight-hero {
            background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('/images/IMG_0314.jpg') no-repeat center center;
            background-size: cover;
            padding: 120px 0;
            color: #ffffff;
            text-align: center;
        }
        .spotlight-title {
            font-family: var(--font-display);
            font-size: 3.5rem;
            font-weight: 700;
            margin-bottom: 15px;
        }
        .spotlight-badge {
            background-color: var(--country-navy); /* Swapped to navy */
            font-family: var(--font-display);
            font-weight: 700;
            font-size: 1.4rem;
            padding: 8px 25px;
            display: inline-block;
            margin-bottom: 25px;
            border-radius: 4px;
        }

        /* Theme Toggle Styling */
        #theme-toggle {
            background: none;
            border: none;
            color: #ffffff;
            font-size: 1.2rem;
            padding: 18px 20px;
            transition: color 0.2s ease;
        }
        #theme-toggle:hover {
            color: var(--country-navy);
        }

        /* Footer styling (Adjusted explicitly to preserve contrast in light mode) */
        footer {
            background-color: #121a24 !important; /* Preserved deep navy background in both themes */
            color: #a0aec0 !important; /* Base gray font color */
            font-size: 0.9rem;
            border-top: 5px solid var(--country-red);
        }
        footer h5 {
            color: #ffffff !important; /* High contrast headings */
            font-weight: 600;
            margin-bottom: 1.5rem;
        }
        footer p, footer span, footer div {
            color: #a0aec0 !important; /* High contrast descriptive columns */
        }
        footer a {
            color: #a0aec0 !important; /* High contrast footer navigation links */
            text-decoration: none;
            transition: color 0.2s ease;
        }
        footer a:hover {
            color: #ffffff !important;
        }
        footer .text-muted {
            color: #90a0b2 !important; /* Keep copyright and helper details legible */
        }

        /* --- SCROLL ANIMATIONS --- */
        .scroll-fade {
            opacity: 0;
            transform: translateY(60px); /* Height offset increased to 60px for more noticeable movement */
            transition: opacity 1.1s cubic-bezier(0.215, 0.61, 0.355, 1), 
                        transform 1.1s cubic-bezier(0.215, 0.61, 0.355, 1);
            will-change: transform, opacity;
        }
        .scroll-fade.visible {
            opacity: 1;
            transform: translateY(0);
        }
        .delay-1 { transition-delay: 0.15s; }
        .delay-2 { transition-delay: 0.3s; }
        .delay-3 { transition-delay: 0.45s; }

        /* --- DALLAS-STYLE FEATURED SCHEDULE SECTION --- */
        .schedule-section {
            background-color: var(--country-navy); /* Slate-navy background */
            background-image: radial-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 0);
            background-size: 24px 24px;
            padding: 80px 0;
            color: #ffffff;
        }

        .schedule-date-badge {
            background-color: var(--country-red); /* Rich red */
            color: #ffffff;
            width: 64px;
            padding: 10px 5px;
            border-radius: 6px;
            font-family: var(--font-display);
            text-transform: uppercase;
            line-height: 1.1;
        }

        .schedule-row {
            display: flex;
            align-items: center;
            gap: 20px;
            padding-bottom: 20px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
            margin-bottom: 20px;
        }

        .schedule-thumbnail {
            width: 80px;
            height: 80px;
            object-fit: cover;
            border-radius: 6px;
            box-shadow: 0 4px 10px rgba(0,0,0,0.25);
        }

        @media (max-width: 576px) {
            .schedule-row {
                flex-direction: column;
                align-items: flex-start;
                gap: 12px;
            }
            .schedule-thumbnail {
                width: 100% !important;
                height: 180px !important;
            }
        }

        /* Dallas-Style Featured Event Notched Card */
        .schedule-featured-card {
            background-color: #eae5d9; /* Always light cream */
            color: #1c2d3d; /* Slate-navy text */
            padding: 30px;
            border-radius: 6px;
            position: relative;
            box-shadow: 0 10px 30px rgba(0,0,0,0.15);
            transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s ease;
            /* Four corner concave notched stub shapes */
            background-image: 
                radial-gradient(circle at 0 0, transparent 15px, #eae5d9 16px),
                radial-gradient(circle at 100% 0, transparent 15px, #eae5d9 16px),
                radial-gradient(circle at 100% 100%, transparent 15px, #eae5d9 16px),
                radial-gradient(circle at 0 100%, transparent 15px, #eae5d9 16px);
            background-position: top left, top right, bottom right, bottom left;
            background-size: 50% 50%;
            background-repeat: no-repeat;
        }
        .schedule-featured-card:hover {
            transform: translateY(-8px); /* Raises card on mouse hover */
            box-shadow: 0 15px 35px rgba(0,0,0,0.3);
        }

        .schedule-featured-img {
            border-radius: 6px;
            box-shadow: 0 6px 15px rgba(0,0,0,0.15);
            margin-bottom: 20px;
            width: 100%;
            height: auto;
        }

        .btn-featured-card {
            background-color: var(--country-red); /* Rich red background */
            color: #ffffff;
            font-family: var(--font-display);
            font-weight: 600;
            width: 100%;
            padding: 12px;
            border: none;
            border-radius: 4px;
            text-transform: uppercase;
            transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.3s ease;
        }
        .btn-featured-card:hover {
            transform: translateY(-3px); /* Raises button slightly on mouse hover */
            box-shadow: 0 6px 15px rgba(130, 35, 16, 0.25);
            color: #ffffff;
        }
        /* --- ENJOY THE FAIR (WELCOME SPLIT SECTION) --- */
        .welcome-split-section {
            background-color: #ffffff;
            padding: 80px 0;
        }
        [data-bs-theme="dark"] .welcome-split-section {
            background-color: #121212;
        }
        .welcome-split-img {
            border-radius: 8px;
            box-shadow: 0 8px 25px rgba(0,0,0,0.08);
            width: 100%;
            height: auto;
        }
        .btn-enjoy-fair {
            background-color: var(--country-red); /* Swapped to red */
            color: #ffffff;
            font-family: var(--font-display);
            font-weight: 600;
            padding: 12px 28px;
            border-radius: 4px;
            text-transform: uppercase;
            border: none;
            transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.3s ease;
        }
        .btn-enjoy-fair:hover {
            transform: translateY(-4px); /* Hover raise effect */
            box-shadow: 0 8px 20px rgba(130, 35, 16, 0.25);
            color: #ffffff;
        }
        /* --- SAVE THE DATE BANNER --- */
        .save-date-banner {
            background-color: var(--country-navy); /* Slate-navy background */
            background-image: radial-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 0);
            background-size: 20px 20px;
            padding: 55px 0;
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        }

        /* Static pointing hand pointing in the correct direction (no animations) */
        .save-date-banner .pointing-hand-icon {
            font-size: 4.2rem;
            color: var(--country-red) !important; /* Rich red */
            margin-right: 20px;
            vertical-align: middle;
        }

        /* Detailed perforated-edge ticket-stub container */
        .save-date-banner .notched-ticket-container {
            background-color: #faf6ee; /* Warm vintage ivory paper */
            padding: 20px 30px;
            border-radius: 8px;
            position: relative;
            box-shadow: 0 10px 30px rgba(0,0,0,0.25);
            background-image: 
                radial-gradient(circle at 0 50%, transparent 12px, #faf6ee 13px),
                radial-gradient(circle at 100% 50%, transparent 12px, #faf6ee 13px);
            background-position: left, right;
            background-size: 100% 100%;
            background-repeat: no-repeat;
            transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.3s ease;
        }
        .save-date-banner .notched-ticket-container:hover {
            transform: translateY(-6px); /* Hover raise effect */
            box-shadow: 0 15px 35px rgba(0,0,0,0.35);
        }
        .save-date-banner .ticket-inner-border {
            border: 1px dashed rgba(28, 45, 61, 0.25); /* Dashed perforated border */
            padding: 15px 25px;
            border-radius: 4px;
        }

        /* --- GATE SPONSORS SLIDING CAROUSEL --- */
        .sponsors-carousel-section {
            background-color: #ffffff;
            padding: 80px 0;
            position: relative;
        }
        [data-bs-theme="dark"] .sponsors-carousel-section {
            background-color: #121212;
        }

        /* Adds horizontal padding so cards do not overlap controls */
        .sponsors-carousel-section .carousel-inner {
            padding: 0 55px;
        }

        /* Styles standard carousel controls as custom sleek circular buttons outside the cards */
        .sponsors-carousel-section .carousel-control-prev,
        .sponsors-carousel-section .carousel-control-next {
            width: 44px;
            height: 44px;
            background-color: var(--country-navy);
            border-radius: 50%;
            top: 50%;
            transform: translateY(-50%);
            opacity: 0.85;
            transition: opacity 0.2s, background-color 0.2s;
            border: none;
        }
        .sponsors-carousel-section .carousel-control-prev {
            left: 0;
        }
        .sponsors-carousel-section .carousel-control-next {
            right: 0;
        }
        [data-bs-theme="dark"] .sponsors-carousel-section .carousel-control-prev,
        [data-bs-theme="dark"] .sponsors-carousel-section .carousel-control-next {
            background-color: var(--country-red);
        }
        .sponsors-carousel-section .carousel-control-prev:hover,
        .sponsors-carousel-section .carousel-control-next:hover {
            background-color: var(--country-red);
            opacity: 1;
        }
        [data-bs-theme="dark"] .sponsors-carousel-section .carousel-control-prev:hover,
        [data-bs-theme="dark"] .sponsors-carousel-section .carousel-control-next:hover {
            background-color: #ffffff;
        }

        /* Refined, high-contrast sponsor cards */
        .sponsor-badge-card {
            background-color: #ffffdf; /* Light cream background for high contrast */
            border: 1px solid rgba(0, 0, 0, 0.05);
            border-left: 5px solid var(--country-red); /* Thick red accent line */
            box-shadow: 0 4px 15px rgba(0,0,0,0.03);
            border-radius: 6px;
            padding: 20px 15px;
            text-align: center;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            height: 120px;
            transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), 
                        box-shadow 0.3s ease, 
                        border-color 0.3s ease;
        }
        [data-bs-theme="dark"] .sponsor-badge-card {
            background-color: #1e1e1e;
            border: 1px solid rgba(255, 255, 255, 0.05);
            border-left: 5px solid var(--country-red);
        }
        .sponsor-badge-card:hover {
            transform: translateY(-8px); /* Hover raise effect */
            box-shadow: 0 15px 30px rgba(0,0,0,0.1);
            border-color: rgba(0, 0, 0, 0.12);
        }
        .sponsor-badge-icon {
            font-size: 1.4rem;
            color: var(--country-navy); /* Slate-navy blue */
            margin-bottom: 8px;
            transition: transform 0.3s ease, color 0.3s ease;
        }
        [data-bs-theme="dark"] .sponsor-badge-icon {
            color: var(--country-red);
        }
        .sponsor-badge-card:hover .sponsor-badge-icon {
            transform: scale(1.2);
            color: var(--country-red);
        }
        [data-bs-theme="dark"] .sponsor-badge-card:hover .sponsor-badge-icon {
            color: #ffffff;
        }
        .sponsor-badge-name {
            font-family: var(--font-display); /* Oswald display font */
            font-size: 1.15rem;
            font-weight: 700;
            color: var(--country-navy);
            text-transform: uppercase;
            letter-spacing: 0.8px;
            margin-bottom: 0;
            transition: color 0.2s ease;
        }
        [data-bs-theme="dark"] .sponsor-badge-name {
            color: #ffffff;
        }
        .sponsor-badge-card:hover .sponsor-badge-name {
            color: var(--country-red); /* Color shift on card hover */
        }
        [data-bs-theme="dark"] .sponsor-badge-card:hover .sponsor-badge-name {
            color: #ffffff;
        }
        /* Force high-contrast white text for the sponsors heading in dark mode */
        [data-bs-theme="dark"] .sponsors-carousel-section h4 {
            color: #ffffff !important;
        }

        /* --- PUBLIC ADMISSION PRICES SECTION --- */
        .admission-section {
            background-color: #ffffff;
            padding: 80px 0;
            border-bottom: 1px solid rgba(0,0,0,0.05);
        }
        [data-bs-theme="dark"] .admission-section {
            background-color: #121212;
            border-bottom: 1px solid #232323;
        }

        .admission-card {
            background-color: #faf6ee; /* Warm ivory paper color matching tickets */
            border: 1px dashed rgba(28, 45, 61, 0.25); /* Dashed perforated border */
            border-radius: 8px;
            padding: 35px 25px;
            text-align: center;
            box-shadow: 0 8px 25px rgba(0,0,0,0.05);
            height: 100%;
            transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.3s ease;
            position: relative;
        }
        [data-bs-theme="dark"] .admission-card {
            background-color: #1e1e1e;
            border: 1px dashed rgba(255, 255, 255, 0.15);
        }
        .admission-card:hover {
            transform: translateY(-8px); /* Mouseover elevation */
            box-shadow: 0 15px 35px rgba(0,0,0,0.12);
        }

        .admission-title {
            font-family: var(--font-display);
            font-weight: 700;
            color: var(--country-navy);
            font-size: 1.5rem;
            margin-bottom: 25px;
            border-bottom: 2px solid var(--country-red);
            padding-bottom: 10px;
            text-transform: uppercase;
        }
        [data-bs-theme="dark"] .admission-title {
            color: #ffffff;
        }

        .admission-price-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 15px;
            font-family: var(--font-body);
        }
        .admission-label {
            font-weight: 600;
            color: #4f4c44;
            font-size: 0.95rem;
            text-align: left;
        }
        [data-bs-theme="dark"] .admission-label {
            color: #d1d5db;
        }
        .admission-val {
            font-family: var(--font-display);
            font-weight: 700;
            font-size: 1.4rem;
            color: var(--country-red);
        }

        .admission-special-banner {
            background-color: var(--country-navy);
            color: #ffffff;
            border-radius: 6px;
            padding: 20px 30px;
            margin-top: 30px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.05);
        }
        [data-bs-theme="dark"] .admission-special-banner {
            background-color: #1a1a1a;
            border: 1px solid rgba(255, 255, 255, 0.05);
        }

/* =====================================================================
   ADDENDUM - September 2026 fix pass
   1. Upcoming Events lightbox + calendar captions
   2. Download banner: Download / View actions, smooth hover
   3. Navigation dropdown hover + active states
   4. Mobile menu scrolling
   5. Dark mode contrast corrections
   ===================================================================== */

/* ---------------------------------------------------------------------
   UPCOMING EVENTS - lightbox affordance + calendar caption
   --------------------------------------------------------------------- */
a.mini-event-img-wrap {
    display: block;
    cursor: zoom-in;
    text-decoration: none;
}
.mini-event-zoom {
    position: absolute;
    right: 10px;
    bottom: 10px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(28, 45, 61, 0.85);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    opacity: 0;
    transition: opacity 0.25s ease;
    pointer-events: none;
    z-index: 6;
}
.mini-event-card:hover .mini-event-zoom { opacity: 1; }

.mini-event-cta {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed rgba(28, 45, 61, 0.2);
    font-size: 0.8rem;
    line-height: 1.45;
    color: #5c5750;
}
.mini-event-cta a {
    color: var(--country-red);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}
.mini-event-cta a:hover { color: var(--country-navy); text-decoration: underline; }
[data-bs-theme="dark"] .mini-event-cta { color: #b9b4a8; border-top-color: rgba(255, 255, 255, 0.14); }
[data-bs-theme="dark"] .mini-event-cta a { color: #e07a5f; }
[data-bs-theme="dark"] .mini-event-cta a:hover { color: #ffffff; }

/* Sidebar wrapper uses .bg-white, which does not follow the theme */
[data-bs-theme="dark"] .upcoming-sidebar-wrapper {
    background-color: #1a1a1a !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}
[data-bs-theme="dark"] .mini-event-time { color: #cfd6de !important; }

/* ---------------------------------------------------------------------
   DOWNLOAD BANNER - two ticket actions, and a genuinely smooth hover
   The anchor form of .notched-ticket-container previously had no
   transition (only the button form did), so its hover lift snapped.
   --------------------------------------------------------------------- */
.notched-ticket-container {
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1),
                box-shadow 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    will-change: transform;
    backface-visibility: hidden;
    transform: translateZ(0);
}
a.notched-ticket-container,
span.notched-ticket-container { text-decoration: none; }

.download-banner-actions .notched-ticket-container {
    padding: 22px 10px;
    height: 100%;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
}
.download-action-icon { font-size: 2rem; color: var(--country-red); }
.download-action-label {
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.download-banner-actions .notched-ticket-container.is-disabled {
    opacity: 0.75;
    cursor: default;
    transform: none;
}
.download-banner-actions .notched-ticket-container.is-disabled:hover {
    transform: none;
    box-shadow: none;
}
@media (max-width: 400px) {
    .download-action-label { font-size: 0.95rem; }
    .download-action-icon { font-size: 1.6rem; }
}

/* ---------------------------------------------------------------------
   BUTTON HOVER - Bootstrap's .btn:hover resets background-color to
   var(--bs-btn-hover-bg) (transparent by default), which left these
   buttons as white text on a white section. Pin the values explicitly.
   --------------------------------------------------------------------- */
.btn-slate-blue {
    --bs-btn-bg: var(--country-navy);
    --bs-btn-color: #ffffff;
    --bs-btn-hover-bg: var(--country-red);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-active-bg: var(--country-red);
    --bs-btn-active-color: #ffffff;
    --bs-btn-border-color: transparent;
    --bs-btn-hover-border-color: transparent;
}
.btn-slate-blue:hover,
.btn-slate-blue:focus,
.btn-slate-blue:active {
    background-color: var(--country-red) !important;
    color: #ffffff !important;
}

.btn-enjoy-fair {
    --bs-btn-bg: var(--country-red);
    --bs-btn-color: #ffffff;
    --bs-btn-hover-bg: #6d1d0d;
    --bs-btn-hover-color: #ffffff;
    --bs-btn-active-bg: #6d1d0d;
    --bs-btn-active-color: #ffffff;
    --bs-btn-border-color: transparent;
    --bs-btn-hover-border-color: transparent;
}
.btn-enjoy-fair:hover,
.btn-enjoy-fair:focus,
.btn-enjoy-fair:active {
    background-color: #6d1d0d !important;
    color: #ffffff !important;
}

.btn-featured-card {
    --bs-btn-bg: var(--country-red);
    --bs-btn-color: #ffffff;
    --bs-btn-hover-bg: #6d1d0d;
    --bs-btn-hover-color: #ffffff;
}
.btn-featured-card:hover,
.btn-featured-card:focus {
    background-color: #6d1d0d !important;
    color: #ffffff !important;
}

.btn-featured-all {
    --bs-btn-hover-bg: #ffffff;
    --bs-btn-hover-color: var(--country-red);
}

/* ---------------------------------------------------------------------
   NAVIGATION - dropdown hover + active page highlighting
   --------------------------------------------------------------------- */
.sticky-navbar .nav-link {
    transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.sticky-navbar .nav-link:hover,
.sticky-navbar .nav-link:focus {
    background-color: rgba(255, 255, 255, 0.18);
    color: #ffffff !important;
}
.sticky-navbar .nav-link.active,
.sticky-navbar .nav-item.dropdown .nav-link.show {
    background-color: var(--country-navy);
    color: #ffffff !important;
    box-shadow: inset 0 -4px 0 #ffd34f;
}
.sticky-navbar .nav-link.dropdown-toggle.active::after { opacity: 1; }

.sticky-navbar .dropdown-menu {
    background-color: var(--country-navy);
    border: none;
    border-top: 3px solid #ffd34f;
    border-radius: 0 0 5px 5px;
    padding: 6px 0;
    margin-top: 0;
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.3);
}
.sticky-navbar .dropdown-item {
    color: #f2efe8;
    font-family: var(--font-display);
    font-size: 0.98rem;
    letter-spacing: 0.4px;
    padding: 11px 22px;
    white-space: normal;
    transition: background-color 0.18s ease, color 0.18s ease, padding-left 0.18s ease;
}
.sticky-navbar .dropdown-item:hover,
.sticky-navbar .dropdown-item:focus {
    background-color: var(--country-red);
    color: #ffffff;
    padding-left: 28px;
}
.sticky-navbar .dropdown-item.active,
.sticky-navbar .dropdown-item:active {
    background-color: var(--country-red);
    color: #ffffff;
    box-shadow: inset 4px 0 0 #ffd34f;
}

/* ---------------------------------------------------------------------
   MOBILE MENU - let the collapsed nav scroll to its last item.
   max-height is also set precisely by JS in SEC_menu.php.
   --------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .sticky-navbar .navbar-collapse {
        max-height: calc(100vh - 170px);
        max-height: calc(100dvh - 170px);
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 14px;
    }
    .sticky-navbar .navbar-collapse::-webkit-scrollbar { width: 6px; }
    .sticky-navbar .navbar-collapse::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.35);
        border-radius: 3px;
    }
    .sticky-navbar .navbar-nav { align-items: stretch !important; }
    .sticky-navbar .dropdown-menu {
        border-top: none;
        border-left: 3px solid #ffd34f;
        box-shadow: none;
        margin: 0 0 6px 12px;
    }
}

/* =====================================================================
   DARK MODE CONTRAST CORRECTIONS
   Inline style="color: var(--country-navy)" resolves to near-black in
   dark mode. These rules re-point those headings, while the cream
   "paper" surfaces below keep their dark ink.
   ===================================================================== */
[data-bs-theme="dark"] h1[style*="--country-navy"],
[data-bs-theme="dark"] h2[style*="--country-navy"],
[data-bs-theme="dark"] h3[style*="--country-navy"],
[data-bs-theme="dark"] h4[style*="--country-navy"],
[data-bs-theme="dark"] h5[style*="--country-navy"],
[data-bs-theme="dark"] h6[style*="--country-navy"] {
    color: #e8e3d7 !important;
}

[data-bs-theme="dark"] h1[style*="--country-red"],
[data-bs-theme="dark"] h2[style*="--country-red"],
[data-bs-theme="dark"] h3[style*="--country-red"],
[data-bs-theme="dark"] h4[style*="--country-red"],
[data-bs-theme="dark"] h5[style*="--country-red"],
[data-bs-theme="dark"] h6[style*="--country-red"] {
    color: #e07a5f !important;
}

[data-bs-theme="dark"] .text-danger { color: #f08a70 !important; }
[data-bs-theme="dark"] .admission-val { color: #e07a5f !important; }
[data-bs-theme="dark"] .welcome-split-section [style*="#4f4c44"] { color: #c8c2b6 !important; }

/* Year / category pill tabs sit on the dark page background */
[data-bs-theme="dark"] .results-year-nav .nav-link,
[data-bs-theme="dark"] .gallery-cat-nav .nav-link {
    color: #e8e3d7;
    border-color: rgba(232, 227, 215, 0.5);
}
[data-bs-theme="dark"] .results-year-nav .nav-link:hover,
[data-bs-theme="dark"] .results-year-nav .nav-link.active,
[data-bs-theme="dark"] .gallery-cat-nav .nav-link:hover,
[data-bs-theme="dark"] .gallery-cat-nav .nav-link.active {
    color: #ffffff !important;
}
[data-bs-theme="dark"] .gallery-card-caption { color: #e8e3d7; }

/* --- Cream paper surfaces keep light-theme ink --- */
[data-bs-theme="dark"] .notched-ticket-container,
[data-bs-theme="dark"] .schedule-featured-card,
[data-bs-theme="dark"] .results-card,
[data-bs-theme="dark"] .special-event-imgwrap,
[data-bs-theme="dark"] [style*="#faf6ee"],
[data-bs-theme="dark"] [style*="faf6ee"] {
    color: #1c2d3d;
}
[data-bs-theme="dark"] .notched-ticket-container h1[style*="--country-navy"],
[data-bs-theme="dark"] .notched-ticket-container h2[style*="--country-navy"],
[data-bs-theme="dark"] .notched-ticket-container h3[style*="--country-navy"],
[data-bs-theme="dark"] .notched-ticket-container h4[style*="--country-navy"],
[data-bs-theme="dark"] .notched-ticket-container h5[style*="--country-navy"],
[data-bs-theme="dark"] .notched-ticket-container h6[style*="--country-navy"],
[data-bs-theme="dark"] .schedule-featured-card h1[style*="--country-navy"],
[data-bs-theme="dark"] .schedule-featured-card h2[style*="--country-navy"],
[data-bs-theme="dark"] .schedule-featured-card h3[style*="--country-navy"],
[data-bs-theme="dark"] .schedule-featured-card h4[style*="--country-navy"],
[data-bs-theme="dark"] .schedule-featured-card h5[style*="--country-navy"],
[data-bs-theme="dark"] .schedule-featured-card h6[style*="--country-navy"],
[data-bs-theme="dark"] .results-card h1[style*="--country-navy"],
[data-bs-theme="dark"] .results-card h2[style*="--country-navy"],
[data-bs-theme="dark"] .results-card h3[style*="--country-navy"],
[data-bs-theme="dark"] .results-card h4[style*="--country-navy"],
[data-bs-theme="dark"] .results-card h5[style*="--country-navy"],
[data-bs-theme="dark"] .results-card h6[style*="--country-navy"],
[data-bs-theme="dark"] .special-event-imgwrap h1[style*="--country-navy"],
[data-bs-theme="dark"] .special-event-imgwrap h2[style*="--country-navy"],
[data-bs-theme="dark"] .special-event-imgwrap h3[style*="--country-navy"],
[data-bs-theme="dark"] .special-event-imgwrap h4[style*="--country-navy"],
[data-bs-theme="dark"] .special-event-imgwrap h5[style*="--country-navy"],
[data-bs-theme="dark"] .special-event-imgwrap h6[style*="--country-navy"],
[data-bs-theme="dark"] [style*="#faf6ee"] h1[style*="--country-navy"],
[data-bs-theme="dark"] [style*="#faf6ee"] h2[style*="--country-navy"],
[data-bs-theme="dark"] [style*="#faf6ee"] h3[style*="--country-navy"],
[data-bs-theme="dark"] [style*="#faf6ee"] h4[style*="--country-navy"],
[data-bs-theme="dark"] [style*="#faf6ee"] h5[style*="--country-navy"],
[data-bs-theme="dark"] [style*="#faf6ee"] h6[style*="--country-navy"],
[data-bs-theme="dark"] [style*="faf6ee"] h1[style*="--country-navy"],
[data-bs-theme="dark"] [style*="faf6ee"] h2[style*="--country-navy"],
[data-bs-theme="dark"] [style*="faf6ee"] h3[style*="--country-navy"],
[data-bs-theme="dark"] [style*="faf6ee"] h4[style*="--country-navy"],
[data-bs-theme="dark"] [style*="faf6ee"] h5[style*="--country-navy"],
[data-bs-theme="dark"] [style*="faf6ee"] h6[style*="--country-navy"] {
    color: #1c2d3d !important;
}
[data-bs-theme="dark"] .notched-ticket-container h1[style*="--country-red"],
[data-bs-theme="dark"] .notched-ticket-container h2[style*="--country-red"],
[data-bs-theme="dark"] .notched-ticket-container h3[style*="--country-red"],
[data-bs-theme="dark"] .notched-ticket-container h4[style*="--country-red"],
[data-bs-theme="dark"] .notched-ticket-container h5[style*="--country-red"],
[data-bs-theme="dark"] .notched-ticket-container h6[style*="--country-red"],
[data-bs-theme="dark"] .schedule-featured-card h1[style*="--country-red"],
[data-bs-theme="dark"] .schedule-featured-card h2[style*="--country-red"],
[data-bs-theme="dark"] .schedule-featured-card h3[style*="--country-red"],
[data-bs-theme="dark"] .schedule-featured-card h4[style*="--country-red"],
[data-bs-theme="dark"] .schedule-featured-card h5[style*="--country-red"],
[data-bs-theme="dark"] .schedule-featured-card h6[style*="--country-red"],
[data-bs-theme="dark"] .results-card h1[style*="--country-red"],
[data-bs-theme="dark"] .results-card h2[style*="--country-red"],
[data-bs-theme="dark"] .results-card h3[style*="--country-red"],
[data-bs-theme="dark"] .results-card h4[style*="--country-red"],
[data-bs-theme="dark"] .results-card h5[style*="--country-red"],
[data-bs-theme="dark"] .results-card h6[style*="--country-red"],
[data-bs-theme="dark"] .special-event-imgwrap h1[style*="--country-red"],
[data-bs-theme="dark"] .special-event-imgwrap h2[style*="--country-red"],
[data-bs-theme="dark"] .special-event-imgwrap h3[style*="--country-red"],
[data-bs-theme="dark"] .special-event-imgwrap h4[style*="--country-red"],
[data-bs-theme="dark"] .special-event-imgwrap h5[style*="--country-red"],
[data-bs-theme="dark"] .special-event-imgwrap h6[style*="--country-red"],
[data-bs-theme="dark"] [style*="#faf6ee"] h1[style*="--country-red"],
[data-bs-theme="dark"] [style*="#faf6ee"] h2[style*="--country-red"],
[data-bs-theme="dark"] [style*="#faf6ee"] h3[style*="--country-red"],
[data-bs-theme="dark"] [style*="#faf6ee"] h4[style*="--country-red"],
[data-bs-theme="dark"] [style*="#faf6ee"] h5[style*="--country-red"],
[data-bs-theme="dark"] [style*="#faf6ee"] h6[style*="--country-red"],
[data-bs-theme="dark"] [style*="faf6ee"] h1[style*="--country-red"],
[data-bs-theme="dark"] [style*="faf6ee"] h2[style*="--country-red"],
[data-bs-theme="dark"] [style*="faf6ee"] h3[style*="--country-red"],
[data-bs-theme="dark"] [style*="faf6ee"] h4[style*="--country-red"],
[data-bs-theme="dark"] [style*="faf6ee"] h5[style*="--country-red"],
[data-bs-theme="dark"] [style*="faf6ee"] h6[style*="--country-red"] {
    color: var(--country-red) !important;
}
[data-bs-theme="dark"] .notched-ticket-container .text-muted,
[data-bs-theme="dark"] .schedule-featured-card .text-muted,
[data-bs-theme="dark"] .results-card .text-muted,
[data-bs-theme="dark"] .special-event-imgwrap .text-muted,
[data-bs-theme="dark"] [style*="#faf6ee"] .text-muted,
[data-bs-theme="dark"] [style*="faf6ee"] .text-muted {
    color: #6f6a60 !important;
}
[data-bs-theme="dark"] .notched-ticket-container .text-danger,
[data-bs-theme="dark"] .schedule-featured-card .text-danger,
[data-bs-theme="dark"] .results-card .text-danger,
[data-bs-theme="dark"] .special-event-imgwrap .text-danger,
[data-bs-theme="dark"] [style*="#faf6ee"] .text-danger,
[data-bs-theme="dark"] [style*="faf6ee"] .text-danger {
    color: #9c2a13 !important;
}
[data-bs-theme="dark"] .schedule-featured-card .script-font,
[data-bs-theme="dark"] .notched-ticket-container .script-font {
    color: var(--country-red) !important;
}
[data-bs-theme="dark"] .schedule-featured-card,
[data-bs-theme="dark"] .results-card,
[data-bs-theme="dark"] .notched-ticket-container,
[data-bs-theme="dark"] [style*="#faf6ee"] {
    color: #1c2d3d;
}
[data-bs-theme="dark"] [style*="#faf6ee"] .list-group-item,
[data-bs-theme="dark"] [style*="#faf6ee"] li,
[data-bs-theme="dark"] [style*="#faf6ee"] span,
[data-bs-theme="dark"] [style*="#faf6ee"] strong,
[data-bs-theme="dark"] [style*="#faf6ee"] p {
    background-color: transparent !important;
    color: #1c2d3d !important;
}

/* Results tables paint --bs-table-bg over the cream card in dark mode */
[data-bs-theme="dark"] .results-card .table {
    --bs-table-bg: transparent;
    --bs-table-color: #1c2d3d;
    --bs-table-striped-color: #1c2d3d;
    --bs-table-hover-color: #1c2d3d;
    --bs-table-hover-bg: rgba(28, 45, 61, 0.07);
    --bs-table-border-color: rgba(28, 45, 61, 0.2);
    color: #1c2d3d;
}
[data-bs-theme="dark"] .results-card .table td,
[data-bs-theme="dark"] .results-card .table th { color: #1c2d3d !important; }
[data-bs-theme="dark"] .results-card .table thead tr { color: #6f6a60 !important; }

/* The Save the Date stub is ivory in both themes */
[data-bs-theme="dark"] .save-date-banner .notched-ticket-container span { color: #1c2d3d !important; }
[data-bs-theme="dark"] .save-date-banner .notched-ticket-container .script-font { color: var(--country-red) !important; }

/* Camping arrival callout: give it a real dark surface instead of ivory */
[data-bs-theme="dark"] #camping-arrival-notice {
    background-color: #1a1a1a !important;
    border-left-color: #e07a5f !important;
}
[data-bs-theme="dark"] #camping-arrival-notice,
[data-bs-theme="dark"] #camping-arrival-notice p,
[data-bs-theme="dark"] #camping-arrival-notice span { color: #d5d0c6 !important; }
[data-bs-theme="dark"] #camping-arrival-notice h3,
[data-bs-theme="dark"] #camping-arrival-notice h5 { color: #e8e3d7 !important; }
[data-bs-theme="dark"] #camping-arrival-notice .bg-body { background-color: #242424 !important; }

/* --- Second pass: remaining dark-mode contrast offenders --------------- */

/* Script accents sitting on the navy / red banners read better in gold */
[data-bs-theme="dark"] .save-date-banner .script-font,
[data-bs-theme="dark"] .download-schedule-bar .script-font,
[data-bs-theme="dark"] .schedule-section .script-font {
    color: #ffd34f !important;
}
/* ...but the ivory ticket stub inside Save the Date keeps brand red */
[data-bs-theme="dark"] .save-date-banner .notched-ticket-container .script-font {
    color: var(--country-red) !important;
}

/* Featured page date line */
[data-bs-theme="dark"] .featured-when { color: #e07a5f !important; }

/* Gallery cards are hard-coded cream; give them a real dark surface */
[data-bs-theme="dark"] .gallery-card {
    background-color: #1b1b1b !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
}
[data-bs-theme="dark"] .gallery-card-caption {
    color: #e8e3d7 !important;
    border-top-color: rgba(255, 255, 255, 0.12) !important;
}

/* Links inside the cream paper surfaces must not use the dark-theme blue */
[data-bs-theme="dark"] .schedule-featured-card a,
[data-bs-theme="dark"] .results-card a,
[data-bs-theme="dark"] .notched-ticket-container a,
[data-bs-theme="dark"] [style*="#faf6ee"] a {
    color: var(--country-red) !important;
}
[data-bs-theme="dark"] .schedule-featured-card a:hover,
[data-bs-theme="dark"] .results-card a:hover,
[data-bs-theme="dark"] [style*="#faf6ee"] a:hover {
    color: #1c2d3d !important;
}

/* --- Third pass ------------------------------------------------------- */

/* Script accents (Enjoy The *Fair*, Save the *Date*, Exhibition Music
   *Schedule*). The colour used to be an inline !important, which no
   stylesheet could override for dark mode. */
.script-accent { color: var(--country-red) !important; }
[data-bs-theme="dark"] .script-accent { color: #ffd34f !important; }
/* On the ivory ticket stub the brand red still reads best */
[data-bs-theme="dark"] .notched-ticket-container .script-accent,
[data-bs-theme="dark"] .schedule-featured-card .script-accent {
    color: var(--country-red) !important;
}

/* Buttons inside the cream paper surfaces keep their own colours - the
   generic "links in paper stay red" rule would make a red button invisible. */
[data-bs-theme="dark"] .schedule-featured-card a.btn,
[data-bs-theme="dark"] .results-card a.btn,
[data-bs-theme="dark"] .notched-ticket-container a.btn,
[data-bs-theme="dark"] [style*="#faf6ee"] a.btn {
    color: #ffffff !important;
}
[data-bs-theme="dark"] .schedule-featured-card a.btn-featured-card,
[data-bs-theme="dark"] .schedule-featured-card a.btn-featured-card:hover {
    color: #ffffff !important;
}

/* Script accents inside a cream card must not use the gold section colour */
[data-bs-theme="dark"] .schedule-section .schedule-featured-card .script-font,
[data-bs-theme="dark"] .save-date-banner .notched-ticket-container .script-font {
    color: var(--country-red) !important;
}

/* FullCalendar keeps light grid cells in dark mode - keep its text dark */
[data-bs-theme="dark"] .fc .fc-daygrid-day-number,
[data-bs-theme="dark"] .fc .fc-col-header-cell-cushion,
[data-bs-theme="dark"] .fc .fc-list-day-text,
[data-bs-theme="dark"] .fc .fc-list-day-side-text {
    color: #1c2d3d !important;
}
