/* tenant-home-event presentation styles. Rebuild utilities with npm run build:templates. */
* { font-family: 'Inter', sans-serif; }
        body { overflow-x: hidden; background: var(--bg-deep); }

        .font-display { font-family: 'Space Grotesk', sans-serif; }

        /* ===== Scroll Reveal ===== */
        .scroll-reveal {
            opacity: 0;
            transform: translateY(40px);
            transition: all 0.7s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .scroll-reveal.revealed {
            opacity: 1;
            transform: translateY(0);
        }

        /* ===== Hero Section ===== */
        .volia-hero {
            min-height: 100vh;
            background: linear-gradient(135deg, var(--bg-deep) 0%, var(--bg-light) 50%, var(--bg-lighter) 100%);
            position: relative;
            overflow: hidden;
            display: flex;
            align-items: center;
        }

        .hero-circle {
            position: absolute;
            border-radius: 50%;
            border: 1px solid rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.15);
        }
        .hero-circle-1 { width: 600px; height: 600px; top: -200px; right: -100px; }
        .hero-circle-2 { width: 400px; height: 400px; top: 50%; right: 5%; transform: translateY(-50%); border-color: rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.1); }
        .hero-circle-3 { width: 200px; height: 200px; bottom: 10%; right: 15%; border-color: rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.2); }
        .hero-circle-4 { width: 150px; height: 150px; top: 20%; left: -50px; border-color: rgba(var(--acc-r), var(--acc-g), var(--acc-b), 0.1); }

        .hero-dot-grid {
            position: absolute;
            top: 0; left: 0; right: 0; bottom: 0;
            background-image: radial-gradient(rgba(255,255,255,0.03) 1px, transparent 1px);
            background-size: 40px 40px;
        }

        .hero-glow {
            position: absolute;
            width: 500px; height: 500px;
            background: radial-gradient(circle, rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.08) 0%, transparent 70%);
            top: 30%; right: 10%;
            pointer-events: none;
        }

        /* ===== Countdown Boxes ===== */
        .countdown-box {
            background: rgba(255,255,255,0.07);
            border: 1px solid rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.3);
            border-radius: 1rem;
            padding: 1.25rem 1rem;
            text-align: center;
            min-width: 90px;
            /* No backdrop-filter: blurring the backdrop re-runs every scroll/video frame and tanks fps. */
            transition: border-color 0.3s ease, background 0.3s ease;
        }
        .countdown-box:hover {
            border-color: rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.6);
            background: rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.08);
        }
        .countdown-num {
            font-size: 2.5rem;
            font-weight: 800;
            color: var(--secondary-color);
            line-height: 1;
            font-family: 'Space Grotesk', sans-serif;
        }
        .countdown-label {
            font-size: 0.7rem;
            font-weight: 600;
            color: rgba(255,255,255,0.5);
            text-transform: uppercase;
            letter-spacing: 0.1em;
            margin-top: 0.5rem;
        }

        /* ===== Stats Band ===== */
        .stats-band {
            background: linear-gradient(135deg, var(--secondary-color) 0%, var(--accent-color) 100%);
            position: relative;
            overflow: hidden;
        }
        .stats-band::before {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0; bottom: 0;
            background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
        }

        .stat-circle {
            width: 120px; height: 120px;
            border-radius: 50%;
            border: 3px solid rgba(255,255,255,0.3);
            display: flex; flex-direction: column;
            align-items: center; justify-content: center;
            transition: all 0.3s ease;
            position: relative;
        }
        .stat-circle:hover {
            border-color: rgba(255,255,255,0.8);
            transform: scale(1.05);
        }
        .stat-circle .stat-num {
            font-size: 2rem;
            font-weight: 800;
            color: white;
            line-height: 1;
            font-family: 'Space Grotesk', sans-serif;
        }
        .stat-circle .stat-lbl {
            font-size: 0.65rem;
            font-weight: 600;
            color: rgba(255,255,255,0.8);
            text-transform: uppercase;
            letter-spacing: 0.05em;
            margin-top: 0.25rem;
            text-align: center;
        }

        /* ===== Section Headers ===== */
        .section-tag {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.5rem 1.25rem;
            border-radius: 9999px;
            font-size: 0.75rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            margin-bottom: 1rem;
        }
        .section-tag-accent {
            background: rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.1);
            color: var(--secondary-color);
            border: 1px solid rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.3);
        }

        /* ===== Vendor Cards ===== */
        .vendor-card-v {
            background: var(--bg-mid);
            border-radius: 1.25rem;
            overflow: hidden;
            border: 1px solid rgba(255,255,255,0.06);
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .vendor-card-v:hover {
            transform: translateY(-8px);
            border-color: rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.3);
            box-shadow: 0 20px 60px rgba(0,0,0,0.4);
        }
        .vendor-card-v .vendor-img-wrap {
            height: 220px;
            overflow: hidden;
            position: relative;
        }
        .vendor-card-v .vendor-img-wrap img {
            width: 100%; height: 100%; object-fit: cover;
            transition: transform 0.5s ease;
        }
        .vendor-card-v:hover .vendor-img-wrap img {
            transform: scale(1.08);
        }
        .vendor-card-v .vendor-logo-circle {
            width: 56px; height: 56px;
            border-radius: 50%;
            border: 3px solid var(--bg-mid);
            position: absolute;
            bottom: -28px; left: 50%;
            transform: translateX(-50%);
            z-index: 2;
            overflow: hidden;
            background: white;
        }
        .vendor-card-v .vendor-logo-circle img {
            width: 100%; height: 100%; object-fit: cover;
        }
        .vendor-card-v .vendor-card-body {
            padding: 2.25rem 1.5rem 1.5rem;
            text-align: center;
        }

        /* ===== Event Timeline (Vertical) ===== */
        .v-timeline {
            position: relative;
            padding-left: 3rem;
        }
        .v-timeline::before {
            content: '';
            position: absolute;
            left: 15px; top: 0; bottom: 0;
            width: 2px;
            background: linear-gradient(to bottom, rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.5), rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.1));
        }
        .v-timeline-item {
            position: relative;
            margin-bottom: 2.5rem;
        }
        .v-timeline-dot {
            position: absolute;
            left: -2.4rem; top: 0.5rem;
            width: 14px; height: 14px;
            border-radius: 50%;
            background: var(--secondary-color);
            border: 3px solid var(--bg-deep);
            box-shadow: 0 0 0 3px rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.3);
            z-index: 1;
        }
        .v-timeline-card {
            background: var(--bg-mid);
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 1rem;
            padding: 1.75rem;
            transition: all 0.3s ease;
        }
        .v-timeline-card:hover {
            border-color: rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.2);
            background: var(--bg-light);
        }

        /* ===== Product Cards ===== */
        /* Centered, wrapping product row. Card widths reproduce the former
           grid columns (1 on phones, 2 from 640px, 4 from 1024px) minus the
           1.5rem gap, so a full row looks identical and a short row centers. */
        .product-grid-v {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 1.5rem;
        }
        .product-grid-v .product-card-v {
            width: 100%;
            flex: 0 0 auto;
        }
        @media (min-width: 640px) {
            .product-grid-v .product-card-v { width: calc(50% - 0.75rem); }
        }
        @media (min-width: 1024px) {
            .product-grid-v .product-card-v { width: calc(25% - 1.125rem); }
        }
        .product-card-v {
            background: var(--bg-mid);
            border-radius: 1.25rem;
            overflow: hidden;
            border: 1px solid rgba(255,255,255,0.06);
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .product-card-v:hover {
            transform: translateY(-6px);
            border-color: rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.3);
            box-shadow: 0 16px 48px rgba(0,0,0,0.3);
        }
        .product-card-v .product-img-wrap {
            height: 240px;
            overflow: hidden;
            position: relative;
        }
        .product-card-v .product-img-wrap img {
            width: 100%; height: 100%; object-fit: cover;
            transition: transform 0.5s ease;
        }
        .product-card-v:hover .product-img-wrap img {
            transform: scale(1.06);
        }

        /* ===== Gallery ===== */
        .gallery-grid-v {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 0.75rem;
            grid-auto-rows: 200px;
        }
        .gallery-grid-v .g-item:nth-child(1) { grid-column: span 2; grid-row: span 2; }
        .gallery-grid-v .g-item:nth-child(5) { grid-column: span 2; }
        @media (max-width: 768px) {
            .gallery-grid-v { grid-template-columns: repeat(2, 1fr); }
            .gallery-grid-v .g-item:nth-child(1) { grid-column: span 2; grid-row: span 1; }
            .gallery-grid-v .g-item:nth-child(5) { grid-column: span 1; }
        }
        .g-item {
            position: relative;
            overflow: hidden;
            border-radius: 1rem;
            cursor: pointer;
        }
        .g-item img {
            width: 100%; height: 100%; object-fit: cover;
            transition: transform 0.5s ease;
        }
        .g-item:hover img { transform: scale(1.1); }
        .g-item .g-overlay {
            position: absolute; inset: 0;
            background: linear-gradient(to top, rgba(0,0,0,0.85), transparent 60%);
            opacity: 0;
            transition: opacity 0.3s ease;
            display: flex; align-items: flex-end;
            padding: 1.5rem;
        }
        .g-item:hover .g-overlay { opacity: 1; }

        /* ===== CTA Section ===== */
        .cta-gradient {
            background: linear-gradient(135deg, var(--secondary-color) 0%, var(--accent-color) 100%);
            position: relative;
            overflow: hidden;
        }
        .cta-gradient::before {
            content: '';
            position: absolute;
            top: -50%; right: -20%;
            width: 600px; height: 600px;
            border-radius: 50%;
            background: rgba(255,255,255,0.08);
        }
        .cta-gradient::after {
            content: '';
            position: absolute;
            bottom: -30%; left: -10%;
            width: 400px; height: 400px;
            border-radius: 50%;
            background: rgba(255,255,255,0.05);
        }

        /* ===== Sponsor Cards =====
           Light tiles on the dark section so brand logos (most are dark or
           transparent) actually read, with the tile and logo sized by tier.
           Width/height come from --sp-w / --sp-h so the phone rule below can
           reflow to two-up without touching the per-tier logo heights. */
        .sponsor-card-v {
            --sp-w: 200px;
            --sp-h: 84px;
            width: var(--sp-w);
            background: rgba(255,255,255,0.96);
            border: 1px solid rgba(255,255,255,0.14);
            border-radius: 1rem;
            padding: 1.1rem 1.25rem;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 8px 24px rgba(0,0,0,0.28);
            transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
        }
        .sponsor-card-v.sponsor-tier-title,
        .sponsor-card-v.sponsor-tier-platinum { --sp-w: 300px; --sp-h: 128px; }
        .sponsor-card-v.sponsor-tier-gold     { --sp-w: 260px; --sp-h: 110px; }
        .sponsor-card-v.sponsor-tier-silver   { --sp-w: 224px; --sp-h: 96px; }
        .sponsor-card-v.sponsor-tier-bronze   { --sp-w: 200px; --sp-h: 84px; }
        .sponsor-card-v:hover {
            border-color: rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.6);
            transform: translateY(-4px);
            box-shadow: 0 16px 36px rgba(0,0,0,0.38);
        }
        .sponsor-card-v img {
            width: 100%;
            height: var(--sp-h);
            object-fit: contain;
            transition: transform 0.3s ease;
        }
        .sponsor-card-v:hover img {
            transform: scale(1.04);
        }
        .sponsor-card-v .sponsor-name {
            min-height: var(--sp-h);
            display: flex;
            align-items: center;
            text-align: center;
            color: #1e293b;
            font-weight: 700;
            font-size: 1rem;
            line-height: 1.25;
        }
        @media (max-width: 640px) {
            .sponsor-card-v { width: calc(50% - 0.625rem); padding: 0.9rem 1rem; }
            .sponsor-card-v.sponsor-tier-title,
            .sponsor-card-v.sponsor-tier-platinum { width: 100%; }
            .sponsor-card-v img { height: calc(var(--sp-h) * 0.85); }
        }

        /* ===== Lightbox ===== */
        .lightbox-v {
            display: none;
            position: fixed; inset: 0;
            background: rgba(0, 0, 0, 0.97);
            z-index: 9999;
            align-items: center;
            justify-content: center;
        }
        .lightbox-v.active { display: flex; }
        .lightbox-v img {
            max-width: 90%; max-height: 90vh;
            border-radius: 0.75rem;
        }

        /* ===== Buttons ===== */
        .btn-accent {
            background: linear-gradient(135deg, var(--secondary-color), var(--accent-color));
            color: white;
            padding: 1rem 2.5rem;
            border-radius: 9999px;
            font-weight: 700;
            font-size: 0.95rem;
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            transition: all 0.3s ease;
            text-decoration: none;
            border: none;
            cursor: pointer;
        }
        .btn-accent:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 30px rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.3);
        }

        .btn-outline-light {
            background: transparent;
            color: white;
            padding: 1rem 2.5rem;
            border-radius: 9999px;
            font-weight: 600;
            font-size: 0.95rem;
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            transition: all 0.3s ease;
            text-decoration: none;
            border: 2px solid rgba(255,255,255,0.3);
            cursor: pointer;
        }
        .btn-outline-light:hover {
            border-color: var(--secondary-color);
            color: var(--secondary-color);
            background: rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.05);
        }

        /* ===== Featured Event Card ===== */
        .event-feature-card {
            /* Opaque dark gradient instead of a translucent one + backdrop blur.
               A blur(20px) over the autoplaying hero video forced a full-region
               re-blur on every video AND scroll frame — the biggest fps drain on
               this page. The more opaque fill keeps text readable over any media. */
            background: linear-gradient(135deg, rgba(0,0,0,0.86), rgba(0,0,0,0.74));
            border: 1px solid rgba(var(--sec-r), var(--sec-g), var(--sec-b), 0.2);
            border-radius: 1.5rem;
            overflow: hidden;
            position: relative;
        }
        .event-feature-card::before {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 3px;
            background: linear-gradient(90deg, var(--secondary-color), var(--accent-color), var(--secondary-color));
        }

        /* ===== Vendor Avatar Stack (dark) ===== */
        .avatar-stack-dark {
            display: flex;
            align-items: center;
        }
        .avatar-stack-dark .av {
            width: 44px; height: 44px;
            border-radius: 50%;
            border: 2px solid var(--bg-deep);
            margin-left: -10px;
            transition: transform 0.3s ease;
            object-fit: cover;
            background: white;
        }
        .avatar-stack-dark .av:first-child { margin-left: 0; }
        .avatar-stack-dark .av:hover { transform: translateY(-4px); z-index: 10; }
        .avatar-stack-dark .av-more {
            width: 44px; height: 44px;
            border-radius: 50%;
            background: var(--secondary-color);
            color: white;
            display: flex; align-items: center; justify-content: center;
            font-weight: 700; font-size: 0.8rem;
            border: 2px solid var(--bg-deep);
            margin-left: -10px;
        }

        /* ===== Dynamic Color Utility Classes ===== */
        .t2-sec-text { color: var(--secondary-color); }
        .t2-acc-text { color: var(--accent-color); }

        /* ===== Responsive ===== */
        @media (max-width: 768px) {
            .countdown-num { font-size: 1.75rem; }
            .countdown-box { min-width: 70px; padding: 1rem 0.75rem; }
            .stat-circle { width: 90px; height: 90px; }
            .stat-circle .stat-num { font-size: 1.5rem; }
        }
