/* ============================================================
   dussehra festival FULL theme overlay
   Enable:  FESTIVAL_THEME=dussehra
   Disable: FESTIVAL_THEME=off   (+ php artisan config:clear)
   ============================================================ */

body.festival-theme-dussehra {
    --festival-saffron: #ff9f43;
    --festival-gold: #f6c945;
    --festival-amber: #ffb347;
    --festival-maroon: #8b1e1e;
    --festival-deep: #1a0505;
    --festival-rose: #c0392b;
    --festival-flame: #ff6b1a;
    background-color: #080303 !important;
    position: relative;
    /* Keep festive layers behind content without forcing position on every child
       (that was breaking fixed cart pills / modals / floating UI). */
    isolation: isolate;
}

/* Clean theme isolation */


body.festival-theme-dussehra .festival-home-hero__inner {
    padding-top: clamp(35px, 7vh, 80px);
    z-index: 8;
}

body.festival-theme-dussehra .festival-home-hero__eyebrow {
    color: #ffe7a1;
    letter-spacing: .22em;
    text-transform: uppercase;
}

body.festival-theme-dussehra .festival-home-hero__title {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(3.8rem, 9vw, 8rem);
    line-height: .86;
    letter-spacing: .02em;
    color: #fff0ad;
    text-shadow: 0 3px 0 #a15a08, 0 0 24px rgba(255, 210, 72, .45);
}

body.festival-theme-dussehra .festival-home-hero__title span {
    font-style: italic;
    color: #ffd447;
    background: none;
    -webkit-text-fill-color: initial;
}

body.festival-theme-dussehra .festival-home-hero__sub {
    color: #ffe5ef;
}

/* Hero content structure */


/* Hide default homepage promo â€” festival cover owns first view */
body.festival-theme-dussehra .fb-hero-promo,
body.festival-theme-dussehra .fb-hero-promo__copy,
body.festival-theme-dussehra .container:has(.fb-hero-promo) {
    display: none !important;
}

/* Full-page festive atmosphere â€” behind page content, never on floating UI */
body.festival-theme-dussehra::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(ellipse 100% 60% at 50% -5%, rgba(255, 140, 40, 0.28) 0%, transparent 55%),
        radial-gradient(ellipse 45% 40% at 0% 25%, rgba(139, 30, 30, 0.4) 0%, transparent 55%),
        radial-gradient(ellipse 45% 40% at 100% 45%, rgba(192, 57, 43, 0.28) 0%, transparent 55%),
        radial-gradient(ellipse 80% 50% at 50% 110%, rgba(246, 201, 69, 0.12) 0%, transparent 50%),
        linear-gradient(180deg, #160606 0%, #080303 45%, #0c0404 100%);
}

/* Sparkle / diya-light dust */
body.festival-theme-dussehra::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: 0.55;
    background-image:
        radial-gradient(circle at 10% 15%, rgba(246, 201, 69, 0.7) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 90% 18%, rgba(255, 159, 67, 0.55) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 25% 68%, rgba(246, 201, 69, 0.45) 0 1px, transparent 2px),
        radial-gradient(circle at 75% 72%, rgba(255, 107, 26, 0.5) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 48% 35%, rgba(246, 201, 69, 0.35) 0 1px, transparent 2px),
        radial-gradient(circle at 62% 88%, rgba(255, 159, 67, 0.4) 0 1px, transparent 2px);
    background-size: 100% 100%;
    animation: festivalSparkle 6s ease-in-out infinite alternate;
}

@keyframes festivalSparkle {
    from { opacity: 0.35; }
    to { opacity: 0.65; }
}

/* Do NOT set position/z-index on all body > div/section â€” that overrides
   position:fixed on #global-cart-pill, #global-sell-cart-pill, .fb-app-nav, modals. */

/* Guard: keep sticky cart pills fixed + centered even if other theme rules change */
body.festival-theme-dussehra .global-cart-pill,
body.festival-theme-dussehra #global-cart-pill,
body.festival-theme-dussehra #global-sell-cart-pill {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    width: auto !important;
    max-width: 90% !important;
    min-width: 320px !important;
    z-index: 99999 !important;
    transform: translateX(-50%);
}

body.festival-theme-dussehra .global-cart-pill:hover {
    transform: translateX(-50%) scale(1.03);
}

@media (max-width: 767px) {
    body.festival-theme-dussehra .global-cart-pill,
    body.festival-theme-dussehra #global-cart-pill,
    body.festival-theme-dussehra #global-sell-cart-pill {
        min-width: 0 !important;
        width: calc(100% - 32px) !important;
        max-width: 360px !important;
    }
}

/* ========== Header â€” ONE continuous festive band ========== */
/* App strip + shipping + nav share the same warm maroon wash (no flat black slabs) */

body.festival-theme-dussehra .fb-app-store-strip {
    background:
        radial-gradient(ellipse 60% 120% at 80% 50%, rgba(255, 140, 40, 0.22) 0%, transparent 55%),
        linear-gradient(90deg, #3a100c 0%, #6b1c12 28%, #8b2a14 50%, #5c1810 75%, #2b0a08 100%) !important;
    border-bottom: none !important;
    box-shadow: inset 0 -1px 0 rgba(246, 201, 69, 0.25);
    position: relative;
    z-index: 2;
}

body.festival-theme-dussehra .fb-app-store-strip__title {
    color: #fff5e6 !important;
    font-weight: 600 !important;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35), 0 0 14px rgba(255, 160, 40, 0.25);
}

body.festival-theme-dussehra .fb-app-store-strip__badge {
    background: linear-gradient(180deg, #2a1008 0%, #140605 100%) !important;
    border: 1px solid rgba(246, 201, 69, 0.55) !important;
    box-shadow: 0 0 14px rgba(246, 201, 69, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
}

body.festival-theme-dussehra .fb-app-store-strip__badge:hover {
    border-color: #f6c945 !important;
    box-shadow: 0 0 20px rgba(246, 201, 69, 0.4) !important;
}

/* Parent header = continuous festive canvas */
body.festival-theme-dussehra .fixedHeader {
    background:
        radial-gradient(ellipse 90% 70% at 50% -10%, rgba(255, 150, 40, 0.35) 0%, transparent 50%),
        radial-gradient(ellipse 40% 60% at 0% 40%, rgba(192, 57, 43, 0.35) 0%, transparent 55%),
        radial-gradient(ellipse 40% 60% at 100% 50%, rgba(246, 201, 69, 0.18) 0%, transparent 55%),
        linear-gradient(180deg, #5c1810 0%, #3a100c 22%, #220a07 55%, #160605 100%) !important;
    border-bottom: none !important;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.4);
    overflow: visible;
}

body.festival-theme-dussehra .fixedHeader.sticky {
    background:
        radial-gradient(ellipse 80% 60% at 50% 0%, rgba(255, 140, 40, 0.28) 0%, transparent 50%),
        linear-gradient(180deg, #4a1410 0%, #220a07 55%, #160605 100%) !important;
    backdrop-filter: blur(14px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5), 0 0 28px rgba(255, 107, 26, 0.18);
}

/* Children transparent so parent gradient reads as one piece */
body.festival-theme-dussehra .fixedHeader .hdr-top {
    background: transparent !important;
    background-color: transparent !important;
    border-bottom: 1px solid rgba(246, 201, 69, 0.18) !important;
    box-shadow: none !important;
    padding-top: 10px;
    padding-bottom: 2px;
}

body.festival-theme-dussehra .fixedHeader .hdr-top p,
body.festival-theme-dussehra .fixedHeader .hdr-top a {
    color: #fff5e6 !important;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.3);
}

body.festival-theme-dussehra .fixedHeader .hdr-top .sell {
    background: linear-gradient(180deg, #ff4a4a 0%, #fe0000 100%) !important;
    border: 1px solid rgba(246, 201, 69, 0.45) !important;
    box-shadow: 0 0 16px rgba(255, 80, 40, 0.45), 0 0 0 1px rgba(246, 201, 69, 0.2) !important;
    color: #fff !important;
    border-radius: 6px !important;
}

body.festival-theme-dussehra .fixedHeader .hdr-top-cnt li a:hover {
    color: var(--festival-gold) !important;
}

body.festival-theme-dussehra .fixedHeader .hdr-top-cnt li a.sell:hover {
    background: #fff !important;
    color: #fe0000 !important;
}

/* Kill Bootstrap / style.css black nav slab */
body.festival-theme-dussehra .fixedHeader .fb-header-nav,
body.festival-theme-dussehra .fixedHeader .fb-header-nav.bg-light,
body.festival-theme-dussehra .fixedHeader .navbar.fb-header-nav,
body.festival-theme-dussehra .fixedHeader .navbar-expand-lg.bg-light.fb-header-nav {
    background: transparent !important;
    background-color: transparent !important;
    border-bottom: none !important;
    box-shadow: none !important;
}

body.festival-theme-dussehra .fixedHeader .fb-header-nav .nav-link,
body.festival-theme-dussehra .fixedHeader .fb-header-nav .nav-link span,
body.festival-theme-dussehra .fixedHeader .fb-coins-label,
body.festival-theme-dussehra .fixedHeader .show-wallet {
    color: #fff5e6 !important;
}

body.festival-theme-dussehra .fixedHeader .fb-header-nav .nav-link:hover,
body.festival-theme-dussehra .fixedHeader .fb-header-nav .nav-link:hover span {
    color: var(--festival-gold) !important;
}

/* String lights draped under shipping bar / above logo row */
.festival-header-lights {
    display: none;
}

body.festival-theme-dussehra .festival-header-lights {
    display: flex;
    position: relative;
    z-index: 5;
    height: 28px;
    align-items: flex-start;
    justify-content: space-evenly;
    padding: 0 1% 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.12) 0%, transparent 100%);
}

body.festival-theme-dussehra .festival-header-lights__wire {
    position: absolute;
    top: 5px;
    left: 1%;
    right: 1%;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(90, 45, 20, 0.95) 6%, rgba(90, 45, 20, 0.95) 94%, transparent);
    border-radius: 2px;
}

body.festival-theme-dussehra .festival-header-lights__bulb {
    position: relative;
    width: 10px;
    height: 13px;
    margin-top: 4px;
    border-radius: 40% 40% 45% 45%;
    animation: festivalBulbFlicker 2s ease-in-out infinite;
    animation-delay: calc(var(--i) * 0.11s);
}

body.festival-theme-dussehra .festival-header-lights__bulb::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 50%;
    width: 1.5px;
    height: 6px;
    transform: translateX(-50%);
    background: rgba(90, 50, 25, 0.9);
}

body.festival-theme-dussehra .festival-header-lights__bulb--1 {
    background: radial-gradient(circle at 40% 35%, #fff6c8, #f6c945 55%, #d4a017);
    box-shadow: 0 0 12px 3px rgba(246, 201, 69, 0.9), 0 6px 16px rgba(246, 201, 69, 0.35);
}
body.festival-theme-dussehra .festival-header-lights__bulb--2 {
    background: radial-gradient(circle at 40% 35%, #ffd0a0, #ff6b1a 55%, #c0392b);
    box-shadow: 0 0 12px 3px rgba(255, 107, 26, 0.85), 0 6px 16px rgba(255, 107, 26, 0.3);
}
body.festival-theme-dussehra .festival-header-lights__bulb--3 {
    background: radial-gradient(circle at 40% 35%, #ffe0b8, #ff9f43 55%, #e67e22);
    box-shadow: 0 0 12px 3px rgba(255, 159, 67, 0.85), 0 6px 16px rgba(255, 159, 67, 0.3);
}
body.festival-theme-dussehra .festival-header-lights__bulb--4 {
    background: radial-gradient(circle at 40% 35%, #fff, #ffe08a 50%, #f0c040);
    box-shadow: 0 0 14px 4px rgba(255, 224, 138, 0.95), 0 6px 16px rgba(255, 224, 138, 0.35);
}

/* Search â€” stronger gold glow */
body.festival-theme-dussehra .fixedHeader .searchbox,
body.festival-theme-dussehra .fixedHeader .selectinput {
    border: 1px solid rgba(246, 201, 69, 0.55) !important;
    box-shadow: 0 0 0 1px rgba(246, 201, 69, 0.15), 0 0 22px rgba(255, 140, 40, 0.28) !important;
    background: rgba(18, 6, 4, 0.55) !important;
    border-radius: 999px;
}

body.festival-theme-dussehra .fixedHeader .searchbox-input,
body.festival-theme-dussehra .fixedHeader .form-control.searchbox-input,
body.festival-theme-dussehra .fixedHeader .form-select {
    background: transparent !important;
    color: #fff !important;
    border-color: rgba(246, 201, 69, 0.3) !important;
}

body.festival-theme-dussehra .fixedHeader .searchbox-input::placeholder {
    color: rgba(255, 220, 180, 0.5) !important;
}

body.festival-theme-dussehra .fixedHeader .searchbox-submit,
body.festival-theme-dussehra .fixedHeader button.submits.searchbox-submit {
    color: var(--festival-gold) !important;
}

/* BUY / SELL & condition toggles */
body.festival-theme-dussehra .fixedHeader .fb-seg {
    border: 1px solid rgba(246, 201, 69, 0.4) !important;
    background: rgba(12, 4, 3, 0.45) !important;
    box-shadow: 0 0 14px rgba(246, 201, 69, 0.15);
}

body.festival-theme-dussehra .fixedHeader .fb-seg__btn.is-active {
    box-shadow: 0 0 16px rgba(254, 0, 0, 0.4), 0 0 10px rgba(246, 201, 69, 0.25);
}

body.festival-theme-dussehra .fixedHeader .fb-seg--condition .fb-seg__btn.is-active {
    background: linear-gradient(180deg, #ffe08a 0%, #f6c945 45%, #e67e22 100%) !important;
    color: #2b0707 !important;
    box-shadow: 0 0 18px rgba(246, 201, 69, 0.55);
}

/* Festival promo strip blends into header (same family) */
body.festival-theme-dussehra .festival-strip {
    background:
        linear-gradient(90deg, #2b0a08 0%, #7a1e12 25%, #c45c12 50%, #a02818 75%, #2b0a08 100%) !important;
    border-top: 1px solid rgba(246, 201, 69, 0.35);
    border-bottom: 1px solid rgba(246, 201, 69, 0.35);
    box-shadow:
        inset 0 1px 0 rgba(255, 220, 140, 0.2),
        0 10px 28px rgba(0, 0, 0, 0.35),
        0 0 40px rgba(255, 120, 30, 0.15) !important;
}

body.festival-theme-dussehra .fb-header-separator {
    height: 3px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        #8b1e1e 8%,
        #f6c945 48%,
        #ff9f43 72%,
        #8b1e1e 92%,
        transparent 100%
    );
    box-shadow: 0 0 22px rgba(246, 201, 69, 0.6), 0 4px 18px rgba(255, 107, 26, 0.25);
}

@media (max-width: 767px) {
    body.festival-theme-dussehra .festival-header-lights__bulb {
        width: 8px;
        height: 10px;
    }

    body.festival-theme-dussehra .festival-header-lights__bulb:nth-child(n+16) {
        display: none;
    }
}

/* ========== Festive strip with mini lights ========== */
.festival-strip {
    display: none;
}

body.festival-theme-dussehra .festival-strip {
    display: block;
    position: relative;
    overflow: hidden;
    z-index: 98;
    color: #fff;
    border-top: 1px solid rgba(246, 201, 69, 0.35);
    border-bottom: 1px solid rgba(246, 201, 69, 0.35);
    background:
        linear-gradient(90deg, #2b0a08 0%, #7a1e12 25%, #c45c12 50%, #a02818 75%, #2b0a08 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 220, 140, 0.2),
        0 10px 28px rgba(0, 0, 0, 0.35),
        0 0 40px rgba(255, 120, 30, 0.15);
}

.festival-strip__lights {
    position: absolute;
    top: 4px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: space-evenly;
    pointer-events: none;
    z-index: 0;
    height: 10px;
}

.festival-strip__bulb {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    animation: festivalBulbFlicker 1.8s ease-in-out infinite;
    animation-delay: calc(var(--i) * 0.12s);
}

.festival-strip__bulb--1 { background: #f6c945; box-shadow: 0 0 8px 2px rgba(246, 201, 69, 0.9); }
.festival-strip__bulb--2 { background: #ff6b1a; box-shadow: 0 0 8px 2px rgba(255, 107, 26, 0.85); }
.festival-strip__bulb--3 { background: #ff9f43; box-shadow: 0 0 8px 2px rgba(255, 159, 67, 0.85); }
.festival-strip__bulb--4 { background: #ffe08a; box-shadow: 0 0 8px 2px rgba(255, 224, 138, 0.9); }

.festival-strip__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
    padding: 18px 16px 14px;
    position: relative;
    z-index: 1;
    text-align: center;
}

.festival-strip__text {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: #fff;
    line-height: 1.4;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.45);
}

.festival-strip__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 18px;
    border-radius: 999px;
    background: linear-gradient(180deg, #ffe08a 0%, #f6c945 40%, #e67e22 100%);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #2b0707 !important;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none !important;
    white-space: nowrap;
    box-shadow: 0 4px 18px rgba(230, 126, 34, 0.55), 0 0 12px rgba(246, 201, 69, 0.35);
    transition: transform 0.15s ease, filter 0.15s ease;
}

.festival-strip__cta:hover,
.festival-strip__cta:focus {
    filter: brightness(1.08);
    transform: translateY(-1px);
    color: #2b0707 !important;
}

@keyframes festivalBulbFlicker {
    0%, 100% { opacity: 1; filter: brightness(1); }
    40% { opacity: 0.55; filter: brightness(0.7); }
    60% { opacity: 1; filter: brightness(1.25); }
}

/* ========== FULL first-viewport festival cover ========== */
.festival-home-hero {
    display: none;
}

body.festival-theme-dussehra .festival-home-hero {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: hidden;
    margin: 0;
    /* Fill remaining first view under header + strip */
    min-height: clamp(420px, calc(100svh - 210px), 720px);
    border-top: none;
    border-bottom: 1px solid rgba(246, 201, 69, 0.25);
    background:
        radial-gradient(ellipse 55% 50% at 50% 42%, rgba(255, 140, 40, 0.22) 0%, transparent 60%),
        radial-gradient(ellipse 40% 45% at 18% 70%, rgba(192, 57, 43, 0.35) 0%, transparent 55%),
        radial-gradient(ellipse 40% 45% at 82% 65%, rgba(246, 201, 69, 0.18) 0%, transparent 55%),
        radial-gradient(circle at 50% 100%, rgba(255, 107, 26, 0.2) 0%, transparent 45%),
        linear-gradient(165deg, #120404 0%, #3a0c0c 28%, #6b1610 55%, #2a0808 78%, #0e0303 100%);
}

/* Mandala / rangoli ring behind copy â€” locked 1:1 circle (never stretch) */
body.festival-theme-dussehra .festival-home-hero::before {
    content: '';
    position: absolute;
    width: min(520px, 78vw);
    aspect-ratio: 1 / 1;
    height: auto;
    max-width: 520px;
    max-height: min(520px, 78vw);
    left: 50%;
    top: 46%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    border-radius: 50%;
    background:
        repeating-radial-gradient(
            circle at center,
            transparent 0,
            transparent 14px,
            rgba(246, 201, 69, 0.07) 14px,
            rgba(246, 201, 69, 0.07) 16px
        );
    border: 1px solid rgba(246, 201, 69, 0.18);
    box-shadow:
        inset 0 0 0 28px rgba(246, 201, 69, 0.04),
        inset 0 0 0 56px rgba(255, 159, 67, 0.03),
        0 0 80px rgba(255, 107, 26, 0.15);
    animation: festivalMandalaSpin 48s linear infinite;
    opacity: 0.85;
}

body.festival-theme-dussehra .festival-home-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, transparent 25%, transparent 70%, rgba(0, 0, 0, 0.45) 100%);
}

@keyframes festivalMandalaSpin {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

/* ---- String lights (top of cover) ---- */
.festival-lights {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 56px;
    z-index: 3;
    pointer-events: none;
    display: flex;
    justify-content: space-evenly;
    align-items: flex-start;
    padding-top: 10px;
}

.festival-lights__wire {
    position: absolute;
    top: 8px;
    left: 2%;
    right: 2%;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(80, 40, 20, 0.9) 8%, rgba(80, 40, 20, 0.9) 92%, transparent);
    border-radius: 2px;
}

.festival-lights__bulb {
    position: relative;
    width: 12px;
    height: 16px;
    margin-top: 6px;
    border-radius: 40% 40% 45% 45%;
    animation: festivalBulbFlicker 2.1s ease-in-out infinite;
    animation-delay: calc(var(--i) * 0.14s);
}

.festival-lights__bulb::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 50%;
    width: 1.5px;
    height: 8px;
    transform: translateX(-50%);
    background: rgba(90, 50, 25, 0.85);
}

.festival-lights__bulb--1 {
    background: radial-gradient(circle at 40% 35%, #fff6c8, #f6c945 55%, #d4a017);
    box-shadow: 0 0 14px 4px rgba(246, 201, 69, 0.85), 0 8px 24px rgba(246, 201, 69, 0.35);
}
.festival-lights__bulb--2 {
    background: radial-gradient(circle at 40% 35%, #ffd0a0, #ff6b1a 55%, #c0392b);
    box-shadow: 0 0 14px 4px rgba(255, 107, 26, 0.8), 0 8px 24px rgba(255, 107, 26, 0.3);
}
.festival-lights__bulb--3 {
    background: radial-gradient(circle at 40% 35%, #ffe0b8, #ff9f43 55%, #e67e22);
    box-shadow: 0 0 14px 4px rgba(255, 159, 67, 0.8), 0 8px 24px rgba(255, 159, 67, 0.3);
}
.festival-lights__bulb--4 {
    background: radial-gradient(circle at 40% 35%, #fff, #ffe08a 50%, #f0c040);
    box-shadow: 0 0 16px 5px rgba(255, 224, 138, 0.9), 0 8px 24px rgba(255, 224, 138, 0.35);
}

/* ---- Glow orbs ---- */
.festival-orbs {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
}

.festival-orbs__blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(40px);
    animation: festivalOrbDrift 9s ease-in-out infinite alternate;
}

.festival-orbs__blob--1 {
    width: 280px;
    height: 280px;
    left: 8%;
    top: 20%;
    background: rgba(255, 107, 26, 0.28);
}

.festival-orbs__blob--2 {
    width: 320px;
    height: 320px;
    right: 5%;
    top: 30%;
    background: rgba(246, 201, 69, 0.2);
    animation-delay: -3s;
}

.festival-orbs__blob--3 {
    width: 220px;
    height: 220px;
    left: 40%;
    bottom: 10%;
    background: rgba(192, 57, 43, 0.25);
    animation-delay: -5s;
}

@keyframes festivalOrbDrift {
    from { transform: translate(0, 0) scale(1); }
    to { transform: translate(18px, -22px) scale(1.08); }
}

/* ---- Side hanging lanterns ---- */
.festival-lantern {
    position: absolute;
    top: 48px;
    z-index: 2;
    width: 44px;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    animation: festivalLanternSway 4.5s ease-in-out infinite;
}

.festival-lantern--left { left: clamp(12px, 4vw, 48px); }
.festival-lantern--right { right: clamp(12px, 4vw, 48px); animation-delay: -2.2s; }

.festival-lantern__cord {
    width: 2px;
    height: 36px;
    background: linear-gradient(#8b5a2b, #5c3a18);
}

.festival-lantern__body {
    width: 36px;
    height: 48px;
    background:
        linear-gradient(180deg, #f6c945 0%, #e67e22 35%, #8b1e1e 70%, #5c1010 100%);
    border-radius: 6px 6px 40% 40%;
    box-shadow:
        0 0 20px rgba(246, 201, 69, 0.55),
        inset 0 0 12px rgba(255, 255, 255, 0.25);
    position: relative;
}

.festival-lantern__body::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 28px;
    height: 8px;
    background: #c9a227;
    border-radius: 3px;
}

.festival-lantern__flame {
    width: 10px;
    height: 16px;
    margin-top: -6px;
    border-radius: 50% 50% 40% 40%;
    background: radial-gradient(circle at 50% 70%, #fff6c8, #ff9f43 45%, #ff6b1a 80%);
    box-shadow: 0 0 16px 6px rgba(255, 140, 40, 0.75);
    animation: festivalFlame 1.1s ease-in-out infinite alternate;
}

@keyframes festivalLanternSway {
    0%, 100% { transform: rotate(-3deg); }
    50% { transform: rotate(3deg); }
}

@keyframes festivalFlame {
    from { transform: scaleY(1) scaleX(1); opacity: 1; filter: brightness(1); }
    to { transform: scaleY(1.15) scaleX(0.9); opacity: 0.85; filter: brightness(1.2); }
}

/* ---- Hero copy ---- */
.festival-home-hero__inner {
    position: relative;
    z-index: 4;
    max-width: 760px;
    margin: 0 auto;
    padding: 72px 24px 88px;
    text-align: center;
}

.festival-home-hero__eyebrow {
    display: inline-block;
    margin: 0 0 16px;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #2b0707;
    background: linear-gradient(90deg, #ffe08a, #f6c945, #ff9f43);
    box-shadow: 0 0 24px rgba(246, 201, 69, 0.45);
}

.festival-home-hero__title {
    margin: 0 0 14px;
    font-size: clamp(32px, 6vw, 56px);
    font-weight: 800;
    line-height: 1.12;
    color: #fff;
    letter-spacing: -0.02em;
    text-shadow:
        0 2px 0 rgba(80, 20, 10, 0.4),
        0 8px 32px rgba(0, 0, 0, 0.55),
        0 0 40px rgba(255, 140, 40, 0.25);
}

.festival-home-hero__title span {
    background: linear-gradient(90deg, #ffe08a, #f6c945, #ff9f43, #f6c945);
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: festivalGoldShimmer 4s linear infinite;
}

@keyframes festivalGoldShimmer {
    to { background-position: 200% center; }
}

.festival-home-hero__sub {
    margin: 0 auto 28px;
    max-width: 520px;
    font-size: 16px;
    line-height: 1.55;
    color: rgba(255, 236, 210, 0.9);
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}

.festival-home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
}

.festival-home-hero__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 26px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.festival-home-hero__btn--primary {
    background: linear-gradient(180deg, #ff3b3b 0%, #fe0000 55%, #c00000 100%);
    color: #fff !important;
    box-shadow:
        0 8px 28px rgba(254, 0, 0, 0.5),
        0 0 20px rgba(255, 107, 26, 0.25);
}

.festival-home-hero__btn--primary:hover {
    transform: translateY(-2px);
    color: #fff !important;
}

.festival-home-hero__btn--ghost {
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(246, 201, 69, 0.55);
    color: #f6c945 !important;
    box-shadow: 0 0 16px rgba(246, 201, 69, 0.15);
}

.festival-home-hero__btn--ghost:hover {
    background: rgba(246, 201, 69, 0.14);
    color: #fff !important;
}

/* ---- Diya row (bottom lighting) ---- */
.festival-diyas {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 18px;
    z-index: 3;
    display: flex;
    justify-content: center;
    gap: clamp(18px, 4vw, 42px);
    pointer-events: none;
}

.festival-diya {
    position: relative;
    width: 36px;
    height: 42px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
}

.festival-diya__flame {
    position: absolute;
    bottom: 18px;
    width: 10px;
    height: 18px;
    border-radius: 50% 50% 20% 20%;
    background: radial-gradient(circle at 50% 75%, #fff8dc 0%, #ffb347 40%, #ff6b1a 75%, transparent 100%);
    box-shadow: 0 0 14px 5px rgba(255, 140, 40, 0.7);
    animation: festivalFlame 0.9s ease-in-out infinite alternate;
    animation-delay: calc(var(--d) * 0.15s);
    transform-origin: center bottom;
}

.festival-diya__glow {
    position: absolute;
    bottom: 8px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 160, 40, 0.45) 0%, transparent 70%);
    animation: festivalDiyaGlow 2s ease-in-out infinite alternate;
    animation-delay: calc(var(--d) * 0.15s);
}

.festival-diya__bowl {
    width: 28px;
    height: 12px;
    background: linear-gradient(180deg, #e8c547 0%, #c9a227 40%, #8b5a2b 100%);
    border-radius: 40% 40% 50% 50%;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.35);
    position: relative;
    z-index: 1;
}

.festival-diya__bowl::before {
    content: '';
    position: absolute;
    top: -3px;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 5px;
    background: #5c3a18;
    border-radius: 50%;
}

@keyframes festivalDiyaGlow {
    from { opacity: 0.55; transform: scale(0.9); }
    to { opacity: 1; transform: scale(1.15); }
}

/* ========== Shop by category festive accents ========== */
body.festival-theme-dussehra #fb-shop-categories.fb-shop-categories {
    background: transparent !important;
}

body.festival-theme-dussehra #fb-shop-categories.fb-shop-categories::before {
    background:
        radial-gradient(ellipse 80% 50% at 50% -5%, rgba(255, 159, 67, 0.2) 0%, transparent 55%),
        radial-gradient(ellipse 45% 35% at 0% 40%, rgba(139, 30, 30, 0.28) 0%, transparent 50%),
        radial-gradient(ellipse 45% 35% at 100% 60%, rgba(246, 201, 69, 0.12) 0%, transparent 50%);
}

body.festival-theme-dussehra .fb-shop-categories__title {
    position: relative;
    display: inline-block;
    text-shadow: 0 0 22px rgba(246, 201, 69, 0.3);
}

body.festival-theme-dussehra .fb-shop-categories__title::after {
    content: '';
    display: block;
    height: 3px;
    margin-top: 8px;
    border-radius: 3px;
    background: linear-gradient(90deg, #f6c945, #ff9f43, transparent 90%);
    box-shadow: 0 0 12px rgba(246, 201, 69, 0.55);
}

body.festival-theme-dussehra .fb-l1-tab.is-active .fb-l1-tab__poster {
    box-shadow: 0 0 0 2px rgba(246, 201, 69, 0.55), 0 0 20px rgba(255, 159, 67, 0.4);
}

body.festival-theme-dussehra .hdr-top .sell {
    box-shadow: 0 0 0 1px rgba(246, 201, 69, 0.45), 0 0 12px rgba(246, 201, 69, 0.2);
}

body.festival-theme-dussehra footer {
    background: rgba(8, 3, 3, 0.96);
    border-top: 1px solid rgba(246, 201, 69, 0.2);
}

@media (max-width: 991px) {
    .festival-lantern {
        display: none;
    }
}

@media (max-width: 767px) {
    /* Shorter cover so %-based glows don't read as tall ovals */
    body.festival-theme-dussehra .festival-home-hero {
        min-height: 0;
        height: auto;
        background:
            radial-gradient(circle 160px at 50% 42%, rgba(255, 140, 40, 0.28) 0%, transparent 70%),
            radial-gradient(circle 110px at 12% 78%, rgba(192, 57, 43, 0.32) 0%, transparent 70%),
            radial-gradient(circle 110px at 88% 72%, rgba(246, 201, 69, 0.16) 0%, transparent 70%),
            linear-gradient(165deg, #120404 0%, #3a0c0c 28%, #6b1610 55%, #2a0808 78%, #0e0303 100%);
    }

    /* True circle on mobile â€” size by width only */
    body.festival-theme-dussehra .festival-home-hero::before {
        width: min(260px, 70vw);
        height: min(260px, 70vw);
        max-width: 70vw;
        max-height: 70vw;
        aspect-ratio: 1 / 1;
        top: 48%;
        background:
            repeating-radial-gradient(
                circle at center,
                transparent 0,
                transparent 10px,
                rgba(246, 201, 69, 0.09) 10px,
                rgba(246, 201, 69, 0.09) 12px
            );
        box-shadow:
            inset 0 0 0 16px rgba(246, 201, 69, 0.05),
            inset 0 0 0 32px rgba(255, 159, 67, 0.04),
            0 0 48px rgba(255, 107, 26, 0.18);
    }

    .festival-strip__inner {
        padding: 16px 12px 12px;
        gap: 10px;
    }

    .festival-strip__text {
        font-size: 13px;
        flex: 1 1 100%;
    }

    .festival-lights__bulb {
        width: 9px;
        height: 12px;
    }

    .festival-home-hero__inner {
        padding: 48px 16px 64px;
    }

    .festival-home-hero__title {
        font-size: clamp(26px, 8vw, 36px);
    }

    .festival-home-hero__sub {
        font-size: 14px;
        margin-bottom: 0;
    }

    .festival-home-hero__btn {
        width: 100%;
    }

    .festival-orbs__blob--1,
    .festival-orbs__blob--2,
    .festival-orbs__blob--3 {
        width: 140px;
        height: 140px;
        filter: blur(28px);
    }

    .festival-diyas {
        gap: 12px;
        bottom: 10px;
    }

    .festival-diya {
        width: 28px;
        height: 34px;
    }

    .festival-diya:nth-child(n+6) {
        display: none;
    }
}
/* ========== Dussehra Dahan stage — 10 heads + dhanus & light arrow ========== */
/* Loop: heads appear L→R, arrow flies R→L & vanishes each head, repeat */

body.festival-theme-dussehra {
    --festival-saffron: #ff8c2a;
    --festival-gold: #ffd56a;
    --festival-amber: #ffb347;
    --festival-maroon: #7a1212;
    --festival-deep: #120303;
    --festival-rose: #c0392b;
    --festival-flame: #ff4d00;
}

body.festival-theme-dussehra .festival-home-hero {
    background:
        radial-gradient(ellipse 55% 50% at 50% 42%, rgba(255, 120, 20, 0.28) 0%, transparent 60%),
        radial-gradient(ellipse 40% 45% at 18% 70%, rgba(160, 30, 20, 0.4) 0%, transparent 55%),
        radial-gradient(ellipse 40% 45% at 82% 65%, rgba(255, 200, 60, 0.2) 0%, transparent 55%),
        radial-gradient(circle at 50% 100%, rgba(255, 60, 0, 0.22) 0%, transparent 45%),
        linear-gradient(165deg, #0e0202 0%, #3a0a08 28%, #6b1408 55%, #2a0604 78%, #0a0101 100%);
}

body.festival-theme-dussehra .festival-home-hero__inner {
    padding-top: clamp(160px, 24vh, 220px);
}

.festival-dahan {
    --dahan-cycle: 14s;
    position: absolute;
    left: 0;
    right: 0;
    top: 40px;
    height: min(180px, 32%);
    z-index: 3;
    pointer-events: none;
    overflow: visible;
}

.festival-dahan__heads {
    position: absolute;
    left: 3%;
    right: 12%;
    top: 50%;
    height: 110px;
    transform: translateY(-50%);
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
}

.festival-dahan__head {
    position: relative;
    width: clamp(52px, 6.5vw, 78px);
    height: clamp(72px, 9vw, 108px);
    flex: 0 0 auto;
    opacity: 0;
    transform: translateY(28px) scale(0.55);
    transform-origin: 50% 100%;
    filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.5));
    animation: festivalDahanHeadLife var(--dahan-cycle) linear infinite;
    animation-delay: calc(var(--h) * 0.32s);
}

.festival-dahan__svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.festival-dahan__mouth {
    transform-origin: 40px 82px;
    animation: festivalDahanLaugh 0.85s ease-in-out infinite alternate;
    animation-delay: calc(var(--h) * 0.07s);
}

.festival-dahan__pupil {
    animation: festivalDahanBlink 3.4s ease-in-out infinite;
    animation-delay: calc(var(--h) * 0.12s);
    transform-box: fill-box;
    transform-origin: center;
}

/* Appear L→R via delay; vanish R→L via keyed hit windows (synced to arrow) */
.festival-dahan__head--0 { animation-name: festivalDahanHead0; animation-delay: 0s; }
.festival-dahan__head--1 { animation-name: festivalDahanHead1; animation-delay: 0s; }
.festival-dahan__head--2 { animation-name: festivalDahanHead2; animation-delay: 0s; }
.festival-dahan__head--3 { animation-name: festivalDahanHead3; animation-delay: 0s; }
.festival-dahan__head--4 { animation-name: festivalDahanHead4; animation-delay: 0s; }
.festival-dahan__head--5 { animation-name: festivalDahanHead5; animation-delay: 0s; }
.festival-dahan__head--6 { animation-name: festivalDahanHead6; animation-delay: 0s; }
.festival-dahan__head--7 { animation-name: festivalDahanHead7; animation-delay: 0s; }
.festival-dahan__head--8 { animation-name: festivalDahanHead8; animation-delay: 0s; }
.festival-dahan__head--9 { animation-name: festivalDahanHead9; animation-delay: 0s; }

/* Hit burst flash (drone-strike spark) */
.festival-dahan__burst {
    position: absolute;
    inset: -18%;
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(255, 255, 255, 0.95) 0%, rgba(255, 220, 100, 0.85) 25%, rgba(255, 80, 20, 0.45) 50%, transparent 72%);
    opacity: 0;
    pointer-events: none;
    z-index: 5;
    mix-blend-mode: screen;
}

/* ---- Head life keyframes (14s): appear steps 0–28%, hold, hit vanish R→L 36–78%, rest ---- */
/* Appear times: h0@2% … h9@27% (≈0.28s each). Hit times: h9@38% … h0@74% (arrow R→L). */

@keyframes festivalDahanHead0 {
    0%, 1% { opacity: 0; transform: translateY(28px) scale(0.55); }
    3%, 73% { opacity: 1; transform: translateY(0) scale(1); }
    74% { opacity: 1; transform: translateY(-4px) scale(1.12); }
    76%, 100% { opacity: 0; transform: translateY(-18px) scale(0.3); }
}
@keyframes festivalDahanHead1 {
    0%, 4% { opacity: 0; transform: translateY(28px) scale(0.55); }
    6%, 69% { opacity: 1; transform: translateY(0) scale(1); }
    70% { opacity: 1; transform: translateY(-4px) scale(1.12); }
    72%, 100% { opacity: 0; transform: translateY(-18px) scale(0.3); }
}
@keyframes festivalDahanHead2 {
    0%, 7% { opacity: 0; transform: translateY(28px) scale(0.55); }
    9%, 65% { opacity: 1; transform: translateY(0) scale(1); }
    66% { opacity: 1; transform: translateY(-4px) scale(1.12); }
    68%, 100% { opacity: 0; transform: translateY(-18px) scale(0.3); }
}
@keyframes festivalDahanHead3 {
    0%, 10% { opacity: 0; transform: translateY(28px) scale(0.55); }
    12%, 61% { opacity: 1; transform: translateY(0) scale(1); }
    62% { opacity: 1; transform: translateY(-4px) scale(1.12); }
    64%, 100% { opacity: 0; transform: translateY(-18px) scale(0.3); }
}
@keyframes festivalDahanHead4 {
    0%, 13% { opacity: 0; transform: translateY(28px) scale(0.55); }
    15%, 57% { opacity: 1; transform: translateY(0) scale(1); }
    58% { opacity: 1; transform: translateY(-4px) scale(1.12); }
    60%, 100% { opacity: 0; transform: translateY(-18px) scale(0.3); }
}
@keyframes festivalDahanHead5 {
    0%, 16% { opacity: 0; transform: translateY(28px) scale(0.55); }
    18%, 53% { opacity: 1; transform: translateY(0) scale(1); }
    54% { opacity: 1; transform: translateY(-4px) scale(1.12); }
    56%, 100% { opacity: 0; transform: translateY(-18px) scale(0.3); }
}
@keyframes festivalDahanHead6 {
    0%, 19% { opacity: 0; transform: translateY(28px) scale(0.55); }
    21%, 49% { opacity: 1; transform: translateY(0) scale(1); }
    50% { opacity: 1; transform: translateY(-4px) scale(1.12); }
    52%, 100% { opacity: 0; transform: translateY(-18px) scale(0.3); }
}
@keyframes festivalDahanHead7 {
    0%, 22% { opacity: 0; transform: translateY(28px) scale(0.55); }
    24%, 45% { opacity: 1; transform: translateY(0) scale(1); }
    46% { opacity: 1; transform: translateY(-4px) scale(1.12); }
    48%, 100% { opacity: 0; transform: translateY(-18px) scale(0.3); }
}
@keyframes festivalDahanHead8 {
    0%, 25% { opacity: 0; transform: translateY(28px) scale(0.55); }
    27%, 41% { opacity: 1; transform: translateY(0) scale(1); }
    42% { opacity: 1; transform: translateY(-4px) scale(1.12); }
    44%, 100% { opacity: 0; transform: translateY(-18px) scale(0.3); }
}
@keyframes festivalDahanHead9 {
    0%, 28% { opacity: 0; transform: translateY(28px) scale(0.55); }
    30%, 37% { opacity: 1; transform: translateY(0) scale(1); }
    38% { opacity: 1; transform: translateY(-4px) scale(1.12); }
    40%, 100% { opacity: 0; transform: translateY(-18px) scale(0.3); }
}

/* Burst flash when each head is struck */
.festival-dahan__head--0 .festival-dahan__burst { animation: festivalDahanBurst0 var(--dahan-cycle) linear infinite; }
.festival-dahan__head--1 .festival-dahan__burst { animation: festivalDahanBurst1 var(--dahan-cycle) linear infinite; }
.festival-dahan__head--2 .festival-dahan__burst { animation: festivalDahanBurst2 var(--dahan-cycle) linear infinite; }
.festival-dahan__head--3 .festival-dahan__burst { animation: festivalDahanBurst3 var(--dahan-cycle) linear infinite; }
.festival-dahan__head--4 .festival-dahan__burst { animation: festivalDahanBurst4 var(--dahan-cycle) linear infinite; }
.festival-dahan__head--5 .festival-dahan__burst { animation: festivalDahanBurst5 var(--dahan-cycle) linear infinite; }
.festival-dahan__head--6 .festival-dahan__burst { animation: festivalDahanBurst6 var(--dahan-cycle) linear infinite; }
.festival-dahan__head--7 .festival-dahan__burst { animation: festivalDahanBurst7 var(--dahan-cycle) linear infinite; }
.festival-dahan__head--8 .festival-dahan__burst { animation: festivalDahanBurst8 var(--dahan-cycle) linear infinite; }
.festival-dahan__head--9 .festival-dahan__burst { animation: festivalDahanBurst9 var(--dahan-cycle) linear infinite; }

@keyframes festivalDahanBurst0 { 0%,73%,77%,100%{opacity:0;transform:scale(.4)} 74%,75%{opacity:1;transform:scale(1.4)} }
@keyframes festivalDahanBurst1 { 0%,69%,73%,100%{opacity:0;transform:scale(.4)} 70%,71%{opacity:1;transform:scale(1.4)} }
@keyframes festivalDahanBurst2 { 0%,65%,69%,100%{opacity:0;transform:scale(.4)} 66%,67%{opacity:1;transform:scale(1.4)} }
@keyframes festivalDahanBurst3 { 0%,61%,65%,100%{opacity:0;transform:scale(.4)} 62%,63%{opacity:1;transform:scale(1.4)} }
@keyframes festivalDahanBurst4 { 0%,57%,61%,100%{opacity:0;transform:scale(.4)} 58%,59%{opacity:1;transform:scale(1.4)} }
@keyframes festivalDahanBurst5 { 0%,53%,57%,100%{opacity:0;transform:scale(.4)} 54%,55%{opacity:1;transform:scale(1.4)} }
@keyframes festivalDahanBurst6 { 0%,49%,53%,100%{opacity:0;transform:scale(.4)} 50%,51%{opacity:1;transform:scale(1.4)} }
@keyframes festivalDahanBurst7 { 0%,45%,49%,100%{opacity:0;transform:scale(.4)} 46%,47%{opacity:1;transform:scale(1.4)} }
@keyframes festivalDahanBurst8 { 0%,41%,45%,100%{opacity:0;transform:scale(.4)} 42%,43%{opacity:1;transform:scale(1.4)} }
@keyframes festivalDahanBurst9 { 0%,37%,41%,100%{opacity:0;transform:scale(.4)} 38%,39%{opacity:1;transform:scale(1.4)} }

@keyframes festivalDahanBlink {
    0%, 88%, 100% { transform: scale(1); }
    92%, 95% { transform: scale(1, 0.12); }
}

@keyframes festivalDahanLaugh {
    from { transform: scale(1, 1); }
    to { transform: scale(1.04, 1.14); }
}

/* ---- Light dhanus (bow of light) ---- */
.festival-dahan__dhanus {
    position: absolute;
    right: 0.5%;
    top: 50%;
    width: 64px;
    height: 130px;
    transform: translateY(-50%);
    animation: festivalDahanBow var(--dahan-cycle) linear infinite;
    filter: drop-shadow(0 0 18px rgba(255, 210, 80, 0.75));
    z-index: 5;
}

.festival-dahan__bow-glow {
    position: absolute;
    inset: -12px;
    border-radius: 50%;
    background: radial-gradient(ellipse at 60% 50%, rgba(255, 220, 100, 0.45), transparent 65%);
    animation: festivalDahanArrowPulse 1.1s ease-in-out infinite alternate;
    mix-blend-mode: screen;
}

.festival-dahan__bow {
    position: relative;
    width: 100%;
    height: 100%;
    display: block;
    z-index: 1;
}

.festival-dahan__string {
    animation: festivalDahanString var(--dahan-cycle) linear infinite;
}

@keyframes festivalDahanBow {
    0%, 30% { transform: translateY(-50%) translateX(0) rotate(0deg); opacity: 0.9; }
    32% { transform: translateY(-50%) translateX(8px) rotate(-5deg); opacity: 1; filter: drop-shadow(0 0 24px rgba(255, 240, 160, 1)); }
    34%, 78% { transform: translateY(-50%) translateX(0) rotate(0deg); opacity: 1; }
    82%, 100% { transform: translateY(-50%) translateX(0); opacity: 0.65; }
}

@keyframes festivalDahanString {
    0%, 30% { transform: translateX(0); }
    32% { transform: translateX(10px); }
    34%, 100% { transform: translateX(0); }
}

/* ---- Drone light-show arrow (swarm of glowing dots) ---- */
.festival-dahan__arrow {
    position: absolute;
    top: 55%;
    right: 7%;
    width: 120px;
    height: 36px;
    margin-top: -18px;
    opacity: 0;
    transform: translateX(0);
    animation: festivalDahanArrow var(--dahan-cycle) linear infinite;
    z-index: 6;
    mix-blend-mode: screen;
}

.festival-dahan__drone-beam {
    position: absolute;
    left: 8px;
    right: 0;
    top: 50%;
    height: 6px;
    margin-top: -3px;
    border-radius: 6px;
    background: linear-gradient(90deg,
        rgba(255, 255, 255, 0.95) 0%,
        rgba(255, 230, 120, 0.9) 18%,
        rgba(255, 140, 40, 0.55) 55%,
        rgba(255, 80, 20, 0.15) 100%);
    box-shadow:
        0 0 12px 4px rgba(255, 220, 100, 0.85),
        0 0 28px 8px rgba(255, 120, 40, 0.45);
    filter: blur(0.4px);
}

.festival-dahan__drone-core {
    position: absolute;
    left: 18px;
    right: 24px;
    top: 50%;
    height: 2px;
    margin-top: -1px;
    background: #fff;
    border-radius: 2px;
    box-shadow: 0 0 10px 2px rgba(255, 255, 255, 0.95);
}

.festival-dahan__drone-tip {
    position: absolute;
    left: 0;
    top: 50%;
    width: 18px;
    height: 18px;
    margin-top: -9px;
    border-radius: 50%;
    background: radial-gradient(circle at 40% 40%, #fff 0%, #ffe08a 35%, #ff6b1a 70%, transparent 75%);
    box-shadow:
        0 0 16px 6px rgba(255, 240, 180, 0.95),
        0 0 36px 12px rgba(255, 120, 40, 0.55);
    animation: festivalDahanArrowPulse 0.28s ease-in-out infinite alternate;
}

/* Drone swarm dots that form the arrow body */
.festival-dahan__drone-dot {
    position: absolute;
    top: 50%;
    width: 5px;
    height: 5px;
    margin-top: -2.5px;
    border-radius: 50%;
    background: #fff6c8;
    box-shadow: 0 0 8px 2px rgba(255, 200, 80, 0.95);
    animation: festivalDahanDroneTwinkle 0.7s ease-in-out infinite alternate;
    animation-delay: calc(var(--p) * 0.05s);
}

/* Tip cluster (arrow head shape) */
.festival-dahan__drone-dot--0 { left: 4px; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; background: #fff; }
.festival-dahan__drone-dot--1 { left: 14px; top: 38%; background: #ffe08a; }
.festival-dahan__drone-dot--2 { left: 14px; top: 62%; background: #ffe08a; }
.festival-dahan__drone-dot--3 { left: 24px; top: 28%; background: #ff9f43; }
.festival-dahan__drone-dot--4 { left: 24px; top: 72%; background: #ff9f43; }
/* Shaft trail */
.festival-dahan__drone-dot--5 { left: 34px; }
.festival-dahan__drone-dot--6 { left: 44px; top: 42%; }
.festival-dahan__drone-dot--7 { left: 44px; top: 58%; }
.festival-dahan__drone-dot--8 { left: 56px; }
.festival-dahan__drone-dot--9 { left: 66px; top: 40%; background: #ff6b1a; }
.festival-dahan__drone-dot--10 { left: 66px; top: 60%; background: #ff6b1a; }
.festival-dahan__drone-dot--11 { left: 78px; opacity: 0.85; }
.festival-dahan__drone-dot--12 { left: 88px; top: 44%; opacity: 0.7; width: 4px; height: 4px; }
.festival-dahan__drone-dot--13 { left: 88px; top: 56%; opacity: 0.7; width: 4px; height: 4px; }
.festival-dahan__drone-dot--14 { left: 98px; opacity: 0.55; width: 3px; height: 3px; }
.festival-dahan__drone-dot--15 { left: 108px; top: 46%; opacity: 0.4; width: 3px; height: 3px; background: #ff4d00; }
.festival-dahan__drone-dot--16 { left: 108px; top: 54%; opacity: 0.4; width: 3px; height: 3px; background: #ff4d00; }
.festival-dahan__drone-dot--17 { left: 116px; opacity: 0.3; width: 2px; height: 2px; }

.festival-dahan__drone-spark {
    position: absolute;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 10px 3px rgba(255, 255, 200, 0.9);
    animation: festivalDahanSpark 0.55s linear infinite;
}
.festival-dahan__drone-spark--1 { left: 30px; top: 20%; animation-delay: 0s; }
.festival-dahan__drone-spark--2 { left: 60px; top: 75%; animation-delay: 0.18s; }
.festival-dahan__drone-spark--3 { left: 90px; top: 30%; animation-delay: 0.35s; }

@keyframes festivalDahanDroneTwinkle {
    from { opacity: 0.55; transform: scale(0.85); filter: brightness(0.9); }
    to { opacity: 1; transform: scale(1.2); filter: brightness(1.35); }
}

@keyframes festivalDahanSpark {
    0% { opacity: 0; transform: translate(0, 0) scale(0.5); }
    30% { opacity: 1; }
    100% { opacity: 0; transform: translate(-18px, -8px) scale(0.2); }
}

@keyframes festivalDahanArrow {
    0%, 33% {
        opacity: 0;
        transform: translateX(24px) scaleX(0.7);
    }
    34% {
        opacity: 1;
        transform: translateX(0) scaleX(1);
    }
    78% {
        opacity: 1;
        transform: translateX(calc(-100vw + 180px)) scaleX(1.05);
    }
    80%, 100% {
        opacity: 0;
        transform: translateX(calc(-100vw + 150px)) scaleX(0.8);
    }
}

@keyframes festivalDahanArrowPulse {
    from { opacity: 0.6; transform: scale(1); }
    to { opacity: 1; transform: scale(1.2); }
}

@media (max-width: 991px) {
    .festival-dahan__heads {
        left: 2%;
        right: 12%;
    }

    .festival-dahan__head {
        width: clamp(40px, 7vw, 58px);
        height: clamp(56px, 9.5vw, 80px);
    }

    .festival-dahan__dhanus {
        width: 48px;
        height: 100px;
        right: 0.5%;
    }

    .festival-dahan__arrow {
        width: 96px;
        height: 30px;
    }
}

@media (max-width: 767px) {
    .festival-dahan {
        top: 36px;
        height: 120px;
    }

    .festival-dahan__heads {
        right: 10%;
    }

    .festival-dahan__head {
        width: 34px;
        height: 48px;
    }

    .festival-dahan__dhanus {
        width: 38px;
        height: 80px;
    }

    .festival-dahan__arrow {
        width: 72px;
        height: 24px;
    }

    body.festival-theme-dussehra .festival-home-hero__inner {
        padding-top: 130px;
    }
}

@media (max-width: 480px) {
    .festival-dahan__head {
        width: 28px;
        height: 40px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .festival-lights__bulb,
    .festival-strip__bulb,
    .festival-diya__flame,
    .festival-diya__glow,
    .festival-lantern,
    .festival-lantern__flame,
    .festival-orbs__blob,
    .festival-dahan__head,
    .festival-dahan__burst,
    .festival-dahan__arrow,
    .festival-dahan__dhanus,
    .festival-dahan__string,
    .festival-dahan__mouth,
    .festival-dahan__pupil,
    .festival-dahan__drone-dot,
    .festival-dahan__drone-spark,
    .festival-dahan__drone-tip,
    .festival-dahan__bow-glow,
    body.festival-theme-dussehra .festival-home-hero::before,
    body.festival-theme-dussehra::after,
    .festival-home-hero__title span {
        animation: none !important;
    }

    .festival-dahan__head {
        opacity: 1;
        transform: none;
    }

    .festival-dahan__arrow,
    .festival-dahan__dhanus {
        opacity: 0.85;
    }
}

/* Arrow launch animation: nock, release, trail and impact pulse. */
body.festival-theme-dussehra .festival-dahan__arrow {
    display: block;
    left: 50%;
    right: auto;
    top: 52%;
    width: min(64vw, 460px);
    height: 28px;
    margin: -14px 0 0;
    opacity: 0;
    z-index: 9;
    animation: festivalArrowLaunch 3.8s ease-in-out infinite;
}

body.festival-theme-dussehra .festival-dahan__drone-beam {
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, #fff8c8 20%, #ffd447 72%, transparent);
    box-shadow: 0 0 12px 3px rgba(255, 211, 71, .9), 0 0 34px 8px rgba(255, 92, 25, .45);
}

body.festival-theme-dussehra .festival-dahan__drone-tip {
    left: auto;
    right: 2px;
    width: 0;
    height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 18px solid #fff1a6;
    background: none;
    box-shadow: none;
}

@keyframes festivalArrowLaunch {
    0%, 18% { opacity: 0; transform: translateX(-18%) scaleX(.25); }
    24% { opacity: .95; transform: translateX(-18%) scaleX(.55); }
    30% { opacity: 1; transform: translateX(-18%) scaleX(1); }
    58% { opacity: 1; transform: translateX(120%) scaleX(1.15); }
    61%, 100% { opacity: 0; transform: translateX(145%) scaleX(.35); }
}

body.festival-theme-dussehra .festival-dahan__dhanus {
    animation: festivalBowRelease 3.8s ease-in-out infinite;
}

@keyframes festivalBowRelease {
    0%, 23% { transform: translate(-50%, -50%) rotate(90deg) scale(1); }
    27% { transform: translate(-50%, -50%) rotate(90deg) scale(1.035) translateX(-7px); }
    33%, 100% { transform: translate(-50%, -50%) rotate(90deg) scale(1); }
}

@media (max-width: 767px) {
    body.festival-theme-dussehra .festival-dahan__arrow { width: 72vw; }
}

/* The arrow rises vertically from the bow toward the greeting. */
body.festival-theme-dussehra .festival-dahan__arrow {
    left: 50%;
    top: 52%;
    width: 24px;
    height: min(34vh, 260px);
    margin: 0 0 0 -12px;
    transform-origin: 50% 100%;
    animation-name: festivalArrowRise;
}

body.festival-theme-dussehra .festival-dahan__drone-beam {
    left: 50%;
    right: auto;
    top: 0;
    bottom: 0;
    width: 3px;
    height: auto;
    margin: 0 0 0 -1.5px;
    background: linear-gradient(180deg, transparent, #fff8c8 25%, #ffd447 78%, transparent);
}

body.festival-theme-dussehra .festival-dahan__drone-tip {
    left: 50%;
    right: auto;
    top: 0;
    width: 0;
    height: 0;
    margin-left: -8px;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-bottom: 18px solid #fff1a6;
    border-top: 0;
}

@keyframes festivalArrowRise {
    0%, 18% { opacity: 0; transform: translateY(12px) scaleY(.2); }
    25% { opacity: 1; transform: translateY(0) scaleY(.55); }
    34% { opacity: 1; transform: translateY(0) scaleY(1); }
    61% { opacity: 1; transform: translateY(-190%) scaleY(1.08); }
    66%, 100% { opacity: 0; transform: translateY(-220%) scaleY(.35); }
}

@media (max-width: 767px) {
    body.festival-theme-dussehra .festival-dahan__arrow {
        width: 24px;
        height: min(30vh, 190px);
    }
}

/* Keep every arrow-light particle on the upward flight path. */
body.festival-theme-dussehra .festival-dahan__drone-core {
    left: 50%;
    right: auto;
    top: 0;
    bottom: 0;
    width: 2px;
    height: auto;
    margin-left: -1px;
    background: linear-gradient(180deg, #fff 0%, #ffe58a 70%, transparent 100%);
}

body.festival-theme-dussehra .festival-dahan__drone-dot,
body.festival-theme-dussehra .festival-dahan__drone-spark {
    left: 50% !important;
    top: calc(12% + (var(--p, 0) * 4%)) !important;
    margin-left: -3px;
}

body.festival-theme-dussehra .festival-dahan__drone-dot:nth-of-type(n+8) {
    opacity: .35;
}

/* Premium layered atmosphere and ceremonial gold detailing. */
body.festival-theme-dussehra .festival-home-hero {
    background:
        repeating-conic-gradient(from 270deg at 50% 54%, rgba(255, 207, 77, .055) 0deg 1deg, transparent 1deg 13deg),
        radial-gradient(ellipse at 50% 52%, rgba(255, 211, 70, .32) 0 4%, rgba(255, 91, 26, .16) 18%, transparent 45%),
        radial-gradient(ellipse at 18% 50%, rgba(255, 58, 19, .28), transparent 35%),
        radial-gradient(ellipse at 82% 50%, rgba(255, 177, 36, .22), transparent 35%),
        linear-gradient(180deg, #240304 0%, #7f190d 46%, #a82d10 68%, #160304 100%);
}

body.festival-theme-dussehra .festival-home-hero__inner {
    position: relative;
    padding: clamp(55px, 9vh, 110px) 20px 70px;
    filter: drop-shadow(0 16px 28px rgba(20, 0, 0, .35));
}

body.festival-theme-dussehra .festival-home-hero__inner::before {
    content: '';
    position: absolute;
    z-index: -1;
    left: 50%;
    top: 50%;
    width: min(620px, 90vw);
    height: 70%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(ellipse, rgba(255, 193, 47, .24), rgba(255, 73, 23, .1) 38%, transparent 70%);
    filter: blur(18px);
}

body.festival-theme-dussehra .festival-home-hero__title {
    text-shadow: 0 2px 0 #9f4b05, 0 5px 0 rgba(100, 25, 0, .32), 0 0 18px rgba(255, 221, 105, .75), 0 0 48px rgba(255, 96, 17, .4);
}

body.festival-theme-dussehra .festival-home-hero__title span {
    background: linear-gradient(180deg, #fff1a7 0%, #ffd02f 42%, #ed8d0a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 5px 0 rgba(116, 32, 0, .28));
}

body.festival-theme-dussehra .festival-home-hero__sub {
    max-width: 620px;
    margin-inline: auto;
    padding: 12px 24px;
    border-top: 1px solid rgba(255, 218, 106, .35);
    border-bottom: 1px solid rgba(255, 218, 106, .35);
    text-shadow: 0 2px 8px #300000;
}

body.festival-theme-dussehra .festival-orbs::before,
body.festival-theme-dussehra .festival-orbs::after {
    background:
        radial-gradient(circle at center, rgba(255, 220, 107, .65) 0 3px, transparent 4px),
        repeating-conic-gradient(from 8deg, rgba(255, 215, 102, .72) 0 3deg, transparent 3deg 18deg);
    box-shadow: inset 0 0 0 18px rgba(255, 215, 102, .08), inset 0 0 0 34px rgba(255, 142, 20, .12), 0 0 45px rgba(255, 180, 30, .28);
    animation: festivalOrnamentPulse 4s ease-in-out infinite alternate;
}

@keyframes festivalOrnamentPulse {
    from { transform: scale(.96) rotate(0deg); filter: brightness(.8); }
    to { transform: scale(1.04) rotate(8deg); filter: brightness(1.25); }
}

body.festival-theme-dussehra .festival-diyas {
    filter: drop-shadow(0 0 14px rgba(255, 181, 32, .55));
}

body.festival-theme-dussehra .festival-home-hero::after {
    background:
        radial-gradient(circle at 12% 28%, rgba(255, 226, 126, .9) 0 2px, transparent 3px),
        radial-gradient(circle at 86% 35%, rgba(255, 157, 38, .8) 0 2px, transparent 3px),
        radial-gradient(circle at 24% 72%, rgba(255, 218, 100, .75) 0 1px, transparent 3px),
        radial-gradient(circle at 78% 68%, rgba(255, 218, 100, .75) 0 1px, transparent 3px),
        linear-gradient(180deg, rgba(0, 0, 0, .08), transparent 30%, rgba(0, 0, 0, .5));
    animation: festivalSparkle 3s ease-in-out infinite alternate;
}

/* Cinematic Ram-versus-Ravana atmosphere, built from CSS layers. */
body.festival-theme-dussehra .festival-dahan {
    top: 19%;
    height: 70%;
    z-index: 3;
    pointer-events: none;
}

body.festival-theme-dussehra .festival-dahan::before {
    content: '';
    position: absolute;
    left: 5%;
    bottom: 5%;
    width: 110px;
    height: 220px;
    opacity: .86;
    background:
        radial-gradient(ellipse at 50% 15%, #170705 0 18px, transparent 19px),
        radial-gradient(ellipse at 50% 48%, #170705 0 29px, transparent 30px),
        linear-gradient(75deg, transparent 46%, #170705 47% 53%, transparent 54%),
        linear-gradient(105deg, transparent 46%, #170705 47% 53%, transparent 54%),
        linear-gradient(90deg, transparent 45%, #170705 46% 54%, transparent 55%);
    filter: drop-shadow(0 0 12px rgba(255, 180, 48, .45));
    transform-origin: 50% 100%;
    animation: festivalArcherAim 3.8s ease-in-out infinite;
}

body.festival-theme-dussehra .festival-dahan::after {
    content: '';
    position: absolute;
    right: -8%;
    top: 28%;
    width: 55%;
    height: 52%;
    opacity: .7;
    background: repeating-conic-gradient(from 248deg at 50% 50%, rgba(255, 225, 128, .5) 0deg 1deg, transparent 1deg 16deg);
    mask-image: radial-gradient(ellipse, #000 0 38%, transparent 72%);
    animation: festivalBattleRays 5s linear infinite;
}

body.festival-theme-dussehra .festival-dahan__heads {
    display: flex;
    left: auto;
    right: 2%;
    top: 30%;
    width: 38%;
    height: 150px;
    opacity: .7;
    filter: drop-shadow(0 0 18px rgba(255, 91, 23, .5));
}

body.festival-theme-dussehra .festival-dahan__head {
    width: clamp(42px, 4.4vw, 66px);
    height: clamp(60px, 7vw, 94px);
}

@keyframes festivalArcherAim {
    0%, 18% { transform: translateX(0) rotate(0); }
    25%, 33% { transform: translateX(4px) rotate(-2deg); }
    38% { transform: translateX(-5px) rotate(3deg); }
    48%, 100% { transform: translateX(0) rotate(0); }
}

@keyframes festivalBattleRays {
    from { transform: rotate(-8deg) scale(1); opacity: .45; }
    to { transform: rotate(8deg) scale(1.12); opacity: .85; }
}

@media (max-width: 767px) {
    body.festival-theme-dussehra .festival-dahan::before { left: -8%; transform: scale(.72); transform-origin: bottom left; }
    body.festival-theme-dussehra .festival-dahan__heads { right: -15%; width: 58%; transform: scale(.8); }
    body.festival-theme-dussehra .festival-dahan::after { right: -35%; width: 85%; }
}

/* ============================================================
   CINEMATIC DUSSEHRA HERO: LORD RAM VS RAVANA & BRAHMASTRA LIGHT SHOW
   ============================================================ */

body.festival-theme-dussehra .festival-home-hero,
body.festival-theme-dussehra .festival-home-hero.festival-home-hero--cinematic {
    position: relative;
    min-height: clamp(540px, calc(100svh - 190px), 820px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background-color: #0c0403 !important;
    border-top: none;
    border-bottom: 1px solid rgba(246, 201, 69, 0.35);
    isolation: isolate;
}

/* Background Plate & Atmosphere */
body.festival-theme-dussehra .festival-cinematic-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
}

body.festival-theme-dussehra .festival-cinematic-bg__art {
    position: absolute;
    inset: -15px;
    background: url('../images/festival-epic-bg.jpg') center bottom / cover no-repeat;
    animation: cinematicSkySlowDrift 22s ease-in-out infinite alternate;
    filter: brightness(0.92) contrast(1.1) saturate(1.15);
}

@keyframes cinematicSkySlowDrift {
    0% { transform: scale(1) translate(0, 0); }
    100% { transform: scale(1.05) translate(-10px, -6px); }
}

body.festival-theme-dussehra .festival-cinematic-bg__overlay {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 90% 75% at 50% 48%, rgba(15, 4, 3, 0.15) 0%, rgba(10, 2, 2, 0.65) 75%, #080202 100%),
        linear-gradient(180deg, rgba(8, 2, 2, 0.55) 0%, transparent 22%, transparent 70%, rgba(8, 2, 2, 0.88) 100%);
}

body.festival-theme-dussehra .festival-cinematic-bg__sunburst {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: clamp(340px, 52vw, 700px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 180, 50, 0.32) 0%, rgba(255, 110, 25, 0.15) 38%, transparent 70%);
    filter: blur(20px);
    animation: cinematicSunGlow 4.8s ease-in-out infinite alternate;
}

@keyframes cinematicSunGlow {
    0% { opacity: 0.65; transform: translate(-50%, -50%) scale(0.95); }
    100% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
}

/* Floating Golden Embers */
body.festival-theme-dussehra .festival-cinematic-bg__embers {
    position: absolute;
    inset: 0;
}

body.festival-theme-dussehra .festival-cinematic-ember {
    position: absolute;
    left: var(--ex);
    top: var(--ey);
    width: var(--esize);
    height: var(--esize);
    border-radius: 50%;
    background: radial-gradient(circle, #fff7d0, #ffb347);
    box-shadow: 0 0 8px 2px rgba(255, 179, 71, 0.85);
    animation: cinematicEmberFloat var(--edur) ease-in-out infinite;
    animation-delay: var(--edelay);
    pointer-events: none;
}

@keyframes cinematicEmberFloat {
    0% { transform: translateY(0) scale(0.6); opacity: 0; }
    30% { opacity: 0.9; }
    80% { opacity: 0.8; }
    100% { transform: translateY(-70px) translateX(15px) scale(1.1); opacity: 0; }
}

/* ============================================================
   BATTLE ARENA: RAM (LEFT) & RAVANA (RIGHT)
   ============================================================ */

body.festival-theme-dussehra .festival-battle-arena {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 3;
    overflow: hidden;
}

/* --- LORD RAM (LEFT) --- */
body.festival-theme-dussehra .festival-ram-warrior {
    position: absolute;
    left: clamp(0px, 2vw, 45px);
    bottom: -10px;
    width: clamp(260px, 25vw, 420px);
    height: clamp(380px, 45vw, 620px);
    z-index: 4;
    animation: ramWarriorAim 4.8s ease-in-out infinite;
}

body.festival-theme-dussehra .festival-ram-warrior__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left bottom;
    filter: drop-shadow(0 0 25px rgba(255, 195, 60, 0.55)) drop-shadow(0 15px 35px rgba(0, 0, 0, 0.85));
    user-select: none;
    -webkit-user-drag: none;
}

body.festival-theme-dussehra .festival-ram-warrior__halo {
    position: absolute;
    left: 20%;
    top: 10%;
    width: 130px;
    height: 130px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 235, 140, 0.65) 0%, rgba(255, 170, 40, 0.28) 45%, transparent 70%);
    filter: blur(8px);
    pointer-events: none;
    animation: ramHaloPulse 4.8s ease-in-out infinite;
}

@keyframes ramHaloPulse {
    0%, 100% { transform: scale(1); opacity: 0.65; }
    22% { transform: scale(1.25); opacity: 0.95; }
    30% { transform: scale(1.05); opacity: 0.7; }
}

/* Concentrated celestial charge right at bow arrowhead */
body.festival-theme-dussehra .festival-ram-warrior__charge {
    position: absolute;
    right: 9%;
    top: 27%;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: radial-gradient(circle, #ffffff 15%, #ffe680 45%, #ff9f43 75%, transparent 100%);
    box-shadow: 0 0 25px 12px rgba(255, 230, 110, 0.95), 0 0 50px 22px rgba(255, 150, 40, 0.6);
    pointer-events: none;
    animation: ramBowCharge 4.8s ease-in-out infinite;
}

@keyframes ramBowCharge {
    0% { transform: scale(0.2); opacity: 0; }
    10% { transform: scale(0.65); opacity: 0.7; }
    21% { transform: scale(1.25); opacity: 1; box-shadow: 0 0 35px 15px #fff, 0 0 60px 25px #ffd447; }
    23% { transform: scale(1.5); opacity: 0; }
    24%, 100% { transform: scale(0.2); opacity: 0; }
}

body.festival-theme-dussehra .festival-ram-warrior__base-glow {
    position: absolute;
    left: 5%;
    bottom: 0;
    width: 80%;
    height: 45px;
    background: radial-gradient(ellipse at center bottom, rgba(255, 170, 40, 0.35) 0%, transparent 70%);
    filter: blur(10px);
}

@keyframes ramWarriorAim {
    0%, 12% { transform: translateY(0) rotate(0deg); }
    20% { transform: translateY(2px) translateX(-3px) rotate(-0.8deg); }
    22% { transform: translateY(-1px) translateX(2px) rotate(0.6deg); }
    26%, 100% { transform: translateY(0) rotate(0deg); }
}

/* --- THE CELESTIAL BRAHMASTRA ARROW --- */
body.festival-theme-dussehra .festival-divine-arrow {
    position: absolute;
    left: clamp(230px, 23vw, 380px);
    top: clamp(230px, 32%, 310px);
    height: 20px;
    width: 140px;
    transform-origin: left center;
    z-index: 5;
    pointer-events: none;
    animation: brahmastraFlight 4.8s cubic-bezier(0.2, 0.05, 0.25, 1) infinite;
}

body.festival-theme-dussehra .festival-divine-arrow__beam {
    position: absolute;
    left: 0;
    right: 18px;
    top: 50%;
    height: 5px;
    margin-top: -2.5px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 170, 40, 0.4) 15%, #ffd54f 60%, #ffffff 100%);
    box-shadow: 0 0 16px 4px rgba(255, 213, 79, 0.85), 0 0 35px 8px rgba(255, 107, 26, 0.5);
}

body.festival-theme-dussehra .festival-divine-arrow__core {
    position: absolute;
    left: 30%;
    right: 18px;
    top: 50%;
    height: 2px;
    margin-top: -1px;
    background: #ffffff;
    box-shadow: 0 0 10px 2px #ffffff;
}

body.festival-theme-dussehra .festival-divine-arrow__head {
    position: absolute;
    right: 0;
    top: 50%;
    width: 0;
    height: 0;
    margin-top: -9px;
    border-left: 22px solid #ffffff;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
    filter: drop-shadow(0 0 10px #ffe082) drop-shadow(0 0 20px #ff6f00);
}

body.festival-theme-dussehra .festival-divine-arrow__head::after {
    content: '';
    position: absolute;
    left: -20px;
    top: -5px;
    width: 0;
    height: 0;
    border-left: 15px solid #ffe082;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
}

body.festival-theme-dussehra .festival-divine-arrow__aura {
    position: absolute;
    right: -10px;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.95) 0%, rgba(255, 215, 64, 0.75) 40%, rgba(255, 109, 0, 0.3) 70%, transparent 100%);
    filter: blur(3px);
}

body.festival-theme-dussehra .festival-divine-arrow__trail span {
    position: absolute;
    top: 50%;
    height: 3px;
    border-radius: 50%;
    background: #ffe082;
    box-shadow: 0 0 8px #ffd54f;
    opacity: 0.85;
}
body.festival-theme-dussehra .festival-divine-arrow__trail span:nth-child(1) { left: -30px; width: 25px; margin-top: -8px; opacity: 0.6; }
body.festival-theme-dussehra .festival-divine-arrow__trail span:nth-child(2) { left: -50px; width: 35px; margin-top: 6px; opacity: 0.5; }
body.festival-theme-dussehra .festival-divine-arrow__trail span:nth-child(3) { left: -75px; width: 45px; margin-top: -3px; opacity: 0.4; }
body.festival-theme-dussehra .festival-divine-arrow__trail span:nth-child(4) { left: -100px; width: 50px; margin-top: 3px; opacity: 0.3; }

/* Arrow flight keyframes across the hero stage */
@keyframes brahmastraFlight {
    0%, 18% {
        opacity: 0.85;
        transform: translate3d(0, 0, 0) scaleX(0.7);
        width: 100px;
    }
    21% {
        opacity: 1;
        transform: translate3d(0, 0, 0) scaleX(1);
        width: 130px;
    }
    22% {
        opacity: 1;
        transform: translate3d(15px, 0, 0) scaleX(1.4);
    }
    34% {
        opacity: 1;
        transform: translate3d(clamp(320px, 48vw, 780px), -6px, 0) scaleX(1.1);
        width: 150px;
    }
    35% {
        opacity: 1;
        transform: translate3d(clamp(350px, 53vw, 840px), -6px, 0) scaleX(0.5);
    }
    36% {
        opacity: 0;
        transform: translate3d(clamp(360px, 54vw, 850px), -6px, 0) scaleX(0.1);
    }
    37%, 100% {
        opacity: 0;
        transform: translate3d(0, 0, 0) scaleX(0.5);
    }
}

/* --- RAVANA TITAN (RIGHT) --- */
body.festival-theme-dussehra .festival-ravana-titan {
    position: absolute;
    right: clamp(0px, 2vw, 45px);
    bottom: -10px;
    width: clamp(280px, 28vw, 470px);
    height: clamp(390px, 47vw, 650px);
    z-index: 4;
    animation: ravanaTitanPresence 4.8s ease-in-out infinite;
}

body.festival-theme-dussehra .festival-ravana-titan__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: right bottom;
    filter: drop-shadow(0 0 25px rgba(255, 95, 20, 0.55)) drop-shadow(0 15px 35px rgba(0, 0, 0, 0.9));
    user-select: none;
    -webkit-user-drag: none;
    transition: filter 0.15s ease;
}

body.festival-theme-dussehra .festival-ravana-titan__aura {
    position: absolute;
    right: 15%;
    top: 8%;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 90, 20, 0.45) 0%, rgba(180, 25, 10, 0.25) 45%, transparent 70%);
    filter: blur(12px);
    pointer-events: none;
    animation: ravanaAuraPulse 4.8s ease-in-out infinite;
}

@keyframes ravanaAuraPulse {
    0%, 33% { transform: scale(1); opacity: 0.6; }
    35% { transform: scale(1.6); opacity: 1; filter: blur(20px); }
    45% { transform: scale(1.3); opacity: 0.8; }
    65%, 100% { transform: scale(1); opacity: 0.6; }
}

body.festival-theme-dussehra .festival-ravana-titan__hit-flash {
    position: absolute;
    inset: 0;
    border-radius: 12px;
    pointer-events: none;
    opacity: 0;
    mix-blend-mode: screen;
    background: radial-gradient(circle at 45% 42%, rgba(255, 255, 255, 0.95) 0%, rgba(255, 220, 80, 0.75) 45%, transparent 70%);
    animation: ravanaHitFlash 4.8s ease-in-out infinite;
}

@keyframes ravanaHitFlash {
    0%, 34% { opacity: 0; }
    35% { opacity: 1; }
    38% { opacity: 0.9; }
    45% { opacity: 0.4; }
    58% { opacity: 0; }
    100% { opacity: 0; }
}

body.festival-theme-dussehra .festival-ravana-titan__base-glow {
    position: absolute;
    right: 5%;
    bottom: 0;
    width: 80%;
    height: 45px;
    background: radial-gradient(ellipse at center bottom, rgba(255, 90, 20, 0.4) 0%, transparent 70%);
    filter: blur(10px);
}

@keyframes ravanaTitanPresence {
    0%, 33% {
        transform: translateY(0);
        filter: brightness(1) contrast(1);
    }
    35% {
        /* Arrow impact moment! Flash with divine radiance! */
        transform: translateY(0) translateX(12px) scale(0.985);
        filter: brightness(2.6) contrast(1.15) drop-shadow(0 0 40px #fff) drop-shadow(0 0 70px #ffd700);
    }
    37% {
        transform: translateY(-4px) translateX(6px) scale(0.995);
        filter: brightness(2.2) contrast(1.1) drop-shadow(0 0 35px #ffe082) drop-shadow(0 0 55px #ff9100);
    }
    44% {
        transform: translateY(0) translateX(2px);
        filter: brightness(1.6) contrast(1.05) drop-shadow(0 0 25px #ffab00);
    }
    58% {
        transform: translateY(0);
        filter: brightness(1.2) contrast(1.02);
    }
    68%, 100% {
        transform: translateY(0);
        filter: brightness(1) contrast(1);
    }
}

/* ============================================================
   IMPACT & SPECTACULAR DIVINE LIGHT SHOW ON RAVANA
   ============================================================ */

body.festival-theme-dussehra .festival-impact-lightshow {
    position: absolute;
    right: clamp(100px, 15vw, 240px);
    top: clamp(230px, 32%, 310px);
    width: 40px;
    height: 40px;
    margin: -20px -20px 0 0;
    z-index: 6;
    pointer-events: none;
}

/* Blinding flash overlay over entire stage */
body.festival-theme-dussehra .festival-impact-lightshow__flash {
    position: fixed;
    inset: 0;
    background: radial-gradient(circle at 75% 45%, rgba(255, 245, 200, 0.5) 0%, rgba(255, 170, 40, 0.25) 45%, transparent 75%);
    opacity: 0;
    pointer-events: none;
    z-index: 5;
    animation: lightshowFlash 4.8s ease-in-out infinite;
}

@keyframes lightshowFlash {
    0%, 34% { opacity: 0; }
    35% { opacity: 1; }
    38% { opacity: 0.6; }
    44% { opacity: 0; }
    100% { opacity: 0; }
}

/* Core fireball burst */
body.festival-theme-dussehra .festival-impact-lightshow__core {
    position: absolute;
    inset: -15px;
    border-radius: 50%;
    background: radial-gradient(circle, #ffffff 20%, #fff176 50%, #ff9800 75%, transparent 100%);
    box-shadow: 0 0 45px 20px #ffffff, 0 0 85px 40px #ffd54f, 0 0 140px 65px #ff6d00;
    opacity: 0;
    animation: lightshowCore 4.8s ease-out infinite;
}

@keyframes lightshowCore {
    0%, 34% { transform: scale(0.1); opacity: 0; }
    35% { transform: scale(1.4); opacity: 1; }
    40% { transform: scale(2.2); opacity: 0.85; }
    50% { transform: scale(3.2); opacity: 0; }
    100% { transform: scale(0.1); opacity: 0; }
}

/* Concentric expanding golden shockwaves */
body.festival-theme-dussehra .festival-impact-lightshow__shockwave {
    position: absolute;
    inset: -30px;
    border-radius: 50%;
    border: 3px solid #ffffff;
    box-shadow: 0 0 25px 6px #ffe082, inset 0 0 20px 4px #ffd54f;
    opacity: 0;
    animation: lightshowShockwave 4.8s cubic-bezier(0.1, 0.8, 0.2, 1) infinite;
}

body.festival-theme-dussehra .festival-impact-lightshow__shockwave--2 {
    animation-delay: 0.12s;
    border-color: #ffd54f;
}

body.festival-theme-dussehra .festival-impact-lightshow__shockwave--3 {
    animation-delay: 0.24s;
    border-color: #ff9800;
}

@keyframes lightshowShockwave {
    0%, 34% { transform: scale(0.1); opacity: 0; }
    35% { transform: scale(0.3); opacity: 1; border-width: 4px; }
    44% { transform: scale(3.5); opacity: 0.85; border-width: 2px; }
    56% { transform: scale(6.2); opacity: 0; border-width: 1px; }
    100% { transform: scale(0.1); opacity: 0; }
}

/* Rotating radial rays of divine light */
body.festival-theme-dussehra .festival-impact-lightshow__rays {
    position: absolute;
    inset: -140px;
    border-radius: 50%;
    background: repeating-conic-gradient(from 0deg, rgba(255, 235, 120, 0.75) 0deg 8deg, transparent 8deg 24deg, rgba(255, 140, 30, 0.6) 24deg 32deg, transparent 32deg 45deg);
    mask-image: radial-gradient(circle, rgba(0, 0, 0, 1) 30%, transparent 70%);
    -webkit-mask-image: radial-gradient(circle, rgba(0, 0, 0, 1) 30%, transparent 70%);
    opacity: 0;
    animation: lightshowRays 4.8s ease-out infinite;
}

@keyframes lightshowRays {
    0%, 34% { transform: scale(0.2) rotate(0deg); opacity: 0; }
    35% { transform: scale(1.6) rotate(15deg); opacity: 1; }
    48% { transform: scale(2.8) rotate(70deg); opacity: 0.8; }
    60% { transform: scale(3.6) rotate(120deg); opacity: 0; }
    100% { transform: scale(0.2) rotate(0deg); opacity: 0; }
}

/* Golden fireworks and spark shower */
body.festival-theme-dussehra .festival-impact-spark {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 6px;
    height: 6px;
    margin: -3px 0 0 -3px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 0 10px 3px #ffe082, 0 0 20px 6px #ff9100;
    opacity: 0;
    animation: lightshowSparkShower 4.8s cubic-bezier(0.2, 0.8, 0.25, 1) infinite;
    animation-delay: var(--delay);
}

@keyframes lightshowSparkShower {
    0%, 34% {
        transform: rotate(var(--angle)) translateY(0) scale(0);
        opacity: 0;
    }
    35% {
        transform: rotate(var(--angle)) translateY(0) scale(1.4);
        opacity: 1;
    }
    44% {
        transform: rotate(var(--angle)) translateY(calc(var(--dist) * -1)) scale(1.1);
        opacity: 0.95;
    }
    55% {
        transform: rotate(var(--angle)) translateY(calc(var(--dist) * -1.35)) scale(0.4);
        opacity: 0;
    }
    100% {
        transform: rotate(var(--angle)) translateY(0) scale(0);
        opacity: 0;
    }
}

/* Sacred glowing mandala flash behind Ravana */
body.festival-theme-dussehra .festival-impact-lightshow__mandala {
    position: absolute;
    inset: -120px;
    border-radius: 50%;
    border: 2px dashed rgba(255, 235, 120, 0.7);
    box-shadow: 0 0 45px rgba(255, 193, 7, 0.5), inset 0 0 45px rgba(255, 152, 0, 0.4);
    opacity: 0;
    animation: lightshowMandala 4.8s ease-out infinite;
}

@keyframes lightshowMandala {
    0%, 34% { transform: scale(0.2) rotate(0deg); opacity: 0; }
    36% { transform: scale(1.8) rotate(35deg); opacity: 0.9; }
    48% { transform: scale(2.6) rotate(90deg); opacity: 0.55; }
    58% { transform: scale(3.2) rotate(135deg); opacity: 0; }
    100% { transform: scale(0.2) rotate(0deg); opacity: 0; }
}

/* ============================================================
   CENTER TYPOGRAPHY & FESTIVE HERO CONTENT
   ============================================================ */

body.festival-theme-dussehra .festival-home-hero__inner {
    position: relative;
    z-index: 7;
    max-width: 640px;
    margin: 0 auto;
    padding: clamp(35px, 6vh, 65px) 24px clamp(50px, 8vh, 85px);
    text-align: center;
    background: radial-gradient(ellipse at center, rgba(16, 4, 4, 0.6) 0%, rgba(12, 3, 3, 0.35) 60%, transparent 85%);
    border-radius: 28px;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

body.festival-theme-dussehra .festival-home-hero__eyebrow {
    display: inline-block;
    margin: 0 0 16px;
    padding: 7px 20px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #2b0808;
    background: linear-gradient(90deg, #fff3c4, #ffd54f, #ff9f43);
    box-shadow: 0 0 24px rgba(255, 213, 79, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

body.festival-theme-dussehra .festival-home-hero__title {
    margin: 0 0 14px;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(3.2rem, 7.5vw, 6.2rem);
    font-weight: 900;
    line-height: 0.94;
    letter-spacing: 0.02em;
    color: #fff8e1;
    text-shadow:
        0 3px 0 #8d4004,
        0 6px 16px rgba(0, 0, 0, 0.8),
        0 0 32px rgba(255, 200, 60, 0.55);
}

body.festival-theme-dussehra .festival-home-hero__title span {
    display: inline-block;
    font-style: italic;
    background: linear-gradient(180deg, #ffffff 0%, #fff176 35%, #ffd54f 65%, #ff9800 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.9));
    animation: titleShine 4s linear infinite;
}

@keyframes titleShine {
    0%, 100% { filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.9)) drop-shadow(0 0 20px rgba(255, 213, 79, 0.4)); }
    50% { filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.9)) drop-shadow(0 0 35px rgba(255, 213, 79, 0.85)); }
}

body.festival-theme-dussehra .festival-home-hero__sub {
    margin: 0 auto 24px;
    max-width: 480px;
    font-size: clamp(14px, 1.8vw, 17px);
    line-height: 1.55;
    color: #fff2df;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.75), 0 0 16px rgba(0, 0, 0, 0.6);
}

body.festival-theme-dussehra .festival-home-hero__actions {
    display: flex;
    justify-content: center;
    gap: 14px;
}

body.festival-theme-dussehra .festival-home-hero__btn--primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 28px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 800;
    color: #240606 !important;
    text-decoration: none !important;
    background: linear-gradient(180deg, #fff3c4 0%, #ffd54f 45%, #ff9800 100%);
    border: 1px solid rgba(255, 255, 255, 0.6);
    box-shadow: 0 6px 24px rgba(255, 152, 0, 0.55), 0 0 16px rgba(255, 213, 79, 0.4);
    transition: transform 0.2s ease, filter 0.2s ease, box-shadow 0.2s ease;
}

body.festival-theme-dussehra .festival-home-hero__btn--primary:hover {
    transform: translateY(-2px) scale(1.03);
    filter: brightness(1.08);
    box-shadow: 0 8px 30px rgba(255, 152, 0, 0.75), 0 0 24px rgba(255, 213, 79, 0.6);
}

/* ============================================================
   RESPONSIVE DESIGN (DESKTOP, TABLET, MOBILE)
   ============================================================ */

@media (max-width: 1199px) {
    body.festival-theme-dussehra .festival-home-hero,
    body.festival-theme-dussehra .festival-home-hero.festival-home-hero--cinematic {
        min-height: 600px;
    }
    body.festival-theme-dussehra .festival-ram-warrior {
        width: 250px;
        height: 380px;
        left: -10px;
    }
    body.festival-theme-dussehra .festival-ravana-titan {
        width: 270px;
        height: 400px;
        right: -10px;
    }
    body.festival-theme-dussehra .festival-divine-arrow {
        left: 210px;
    }
    body.festival-theme-dussehra .festival-impact-lightshow {
        right: 120px;
    }
}

@media (max-width: 991px) {
    body.festival-theme-dussehra .festival-home-hero,
    body.festival-theme-dussehra .festival-home-hero.festival-home-hero--cinematic {
        min-height: 560px;
    }
    body.festival-theme-dussehra .festival-home-hero__inner {
        padding: 28px 16px 36px;
        max-width: 440px;
    }
    body.festival-theme-dussehra .festival-home-hero__title {
        font-size: 3.4rem;
    }
    body.festival-theme-dussehra .festival-ram-warrior {
        width: 185px;
        height: 300px;
        left: -10px;
        opacity: 0.98;
    }
    body.festival-theme-dussehra .festival-ravana-titan {
        width: 205px;
        height: 320px;
        right: -10px;
        opacity: 0.98;
    }
    body.festival-theme-dussehra .festival-divine-arrow {
        left: 155px;
        top: 36%;
        width: 95px;
    }
    body.festival-theme-dussehra .festival-impact-lightshow {
        right: 90px;
        top: 36%;
    }
}

@media (max-width: 767px) {
    body.festival-theme-dussehra .festival-home-hero,
    body.festival-theme-dussehra .festival-home-hero.festival-home-hero--cinematic {
        min-height: 460px;
        max-height: calc(100svh - 140px);
        justify-content: flex-start;
        padding-top: 0;
    }

    /* ---- Text content: compact card above characters ---- */
    body.festival-theme-dussehra .festival-home-hero__inner {
        position: relative;
        z-index: 8;
        max-width: 280px;
        padding: 14px 14px 12px;
        margin: clamp(4px, 1.5vh, 12px) auto 0;
        background: radial-gradient(ellipse at center, rgba(12, 3, 3, 0.72) 0%, rgba(10, 2, 2, 0.38) 65%, transparent 100%);
        border-radius: 18px;
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
    }

    body.festival-theme-dussehra .festival-home-hero__eyebrow {
        font-size: 8.5px;
        padding: 4px 12px;
        letter-spacing: 0.14em;
        margin-bottom: 5px;
        box-shadow: 0 0 14px rgba(255, 213, 79, 0.4);
    }

    body.festival-theme-dussehra .festival-home-hero__title {
        font-size: clamp(2rem, 9vw, 2.6rem);
        line-height: 0.9;
        margin-bottom: 4px;
    }

    body.festival-theme-dussehra .festival-home-hero__sub {
        font-size: 11px;
        line-height: 1.4;
        margin-bottom: 0;
        padding: 5px 8px;
        max-width: 260px;
        border-top: 1px solid rgba(255, 218, 106, .2);
        border-bottom: none;
    }

    body.festival-theme-dussehra .festival-home-hero__btn--primary {
        padding: 6px 18px;
        font-size: 11px;
        font-weight: 700;
    }

    /* ---- Characters: fill the hero, tight to text ---- */
    body.festival-theme-dussehra .festival-ram-warrior {
        width: clamp(140px, 38vw, 180px);
        height: auto;
        top: 38%;
        bottom: 22px;
        left: -8px;
        z-index: 5;
        opacity: 1;
    }

    body.festival-theme-dussehra .festival-ram-warrior__img {
        filter: drop-shadow(0 0 14px rgba(255, 195, 60, 0.45)) drop-shadow(0 8px 18px rgba(0, 0, 0, 0.8));
    }

    body.festival-theme-dussehra .festival-ram-warrior__halo {
        width: 55px;
        height: 55px;
        left: 18%;
        top: 2%;
    }

    body.festival-theme-dussehra .festival-ram-warrior__charge {
        right: 0;
        top: 28%;
        width: 16px;
        height: 16px;
        box-shadow: 0 0 12px 5px rgba(255, 230, 110, 0.8), 0 0 24px 10px rgba(255, 150, 40, 0.4);
    }

    body.festival-theme-dussehra .festival-ram-warrior__base-glow {
        height: 20px;
    }

    body.festival-theme-dussehra .festival-ravana-titan {
        width: clamp(150px, 42vw, 200px);
        height: auto;
        top: 34%;
        bottom: 22px;
        right: -10px;
        z-index: 5;
        opacity: 1;
    }

    body.festival-theme-dussehra .festival-ravana-titan__img {
        filter: drop-shadow(0 0 14px rgba(255, 95, 20, 0.45)) drop-shadow(0 8px 18px rgba(0, 0, 0, 0.8));
    }

    body.festival-theme-dussehra .festival-ravana-titan__aura {
        width: 70px;
        height: 70px;
        right: 10%;
        top: 3%;
    }

    body.festival-theme-dussehra .festival-ravana-titan__base-glow {
        height: 20px;
    }

    /* ---- Arrow: starts at Ram's bow, flies to hit Ravana's chest ---- */
    body.festival-theme-dussehra .festival-divine-arrow {
        left: clamp(105px, 30vw, 145px);
        top: 56%;
        bottom: auto;
        height: 12px;
        width: 50px;
        animation: brahmastraFlightMobile 4.8s cubic-bezier(0.2, 0.05, 0.25, 1) infinite;
    }

    body.festival-theme-dussehra .festival-divine-arrow__beam {
        height: 3px;
        margin-top: -1.5px;
    }

    body.festival-theme-dussehra .festival-divine-arrow__core {
        height: 1.5px;
    }

    body.festival-theme-dussehra .festival-divine-arrow__head {
        border-left-width: 14px;
        border-top-width: 5px;
        border-bottom-width: 5px;
        margin-top: -5px;
    }

    body.festival-theme-dussehra .festival-divine-arrow__head::after {
        border-left-width: 10px;
        border-top-width: 3px;
        border-bottom-width: 3px;
    }

    body.festival-theme-dussehra .festival-divine-arrow__aura {
        width: 24px;
        height: 24px;
    }

    body.festival-theme-dussehra .festival-divine-arrow__trail span:nth-child(3),
    body.festival-theme-dussehra .festival-divine-arrow__trail span:nth-child(4) {
        display: none;
    }

    @keyframes brahmastraFlightMobile {
        0%, 18% {
            opacity: 0.85;
            transform: translate3d(0, 0, 0) scaleX(0.6);
            width: 35px;
        }
        21% {
            opacity: 1;
            transform: translate3d(0, 0, 0) scaleX(1);
            width: 50px;
        }
        22% {
            opacity: 1;
            transform: translate3d(6px, 0, 0) scaleX(1.2);
        }
        34% {
            opacity: 1;
            transform: translate3d(calc(100vw - 240px), -4px, 0) scaleX(1.05);
            width: 60px;
        }
        35% {
            opacity: 1;
            transform: translate3d(calc(100vw - 200px), -4px, 0) scaleX(0.4);
        }
        36% {
            opacity: 0;
            transform: translate3d(calc(100vw - 185px), -4px, 0) scaleX(0.1);
        }
        37%, 100% {
            opacity: 0;
            transform: translate3d(0, 0, 0) scaleX(0.5);
        }
    }

    /* ---- Impact light show: on Ravana's chest where arrow hits ---- */
    body.festival-theme-dussehra .festival-impact-lightshow {
        right: clamp(45px, 14vw, 75px);
        top: 54%;
        bottom: auto;
        width: 24px;
        height: 24px;
    }

    body.festival-theme-dussehra .festival-impact-lightshow__flash {
        background: radial-gradient(circle at 70% 55%, rgba(255, 245, 200, 0.45) 0%, rgba(255, 170, 40, 0.2) 45%, transparent 70%);
    }

    body.festival-theme-dussehra .festival-impact-lightshow__rays {
        inset: -80px;
    }

    body.festival-theme-dussehra .festival-impact-lightshow__mandala {
        inset: -70px;
    }

    /* ---- Background & atmosphere tweaks ---- */
    body.festival-theme-dussehra .festival-cinematic-bg__sunburst {
        width: clamp(200px, 55vw, 300px);
        top: 42%;
    }

    body.festival-theme-dussehra .festival-cinematic-bg__art {
        inset: -8px;
        filter: brightness(0.85) contrast(1.12) saturate(1.2);
    }

    /* ---- Diyas: above character feet, properly visible ---- */
    body.festival-theme-dussehra .festival-diyas {
        bottom: 30px;
        z-index: 6;
        gap: clamp(10px, 3vw, 20px);
    }

    body.festival-theme-dussehra .festival-diya {
        transform: scale(0.75);
    }

    body.festival-theme-dussehra .festival-diya:nth-child(n+6) {
        display: none;
    }

    /* ---- Lights row: scale for mobile ---- */
    body.festival-theme-dussehra .festival-home-hero .festival-lights {
        height: 42px;
    }

    body.festival-theme-dussehra .festival-home-hero .festival-lights__bulb {
        width: 8px;
        height: 11px;
    }

    body.festival-theme-dussehra .festival-home-hero .festival-lights__bulb:nth-child(n+16) {
        display: none;
    }

    /* ---- Mandala ring behind content ---- */
    body.festival-theme-dussehra .festival-home-hero::before {
        width: min(220px, 62vw);
        height: min(220px, 62vw);
        max-width: 62vw;
        max-height: 62vw;
        top: 22%;
        opacity: 0.6;
    }

    /* ---- Hide old dahan elements on mobile for cinematic variant ---- */
    body.festival-theme-dussehra .festival-home-hero--cinematic .festival-dahan {
        display: none;
    }
}

/* Extra-small phones (≤ 380px) — tighter compression */
@media (max-width: 380px) {
    body.festival-theme-dussehra .festival-home-hero__inner {
        max-width: 260px;
        padding: 20px 14px 16px;
    }

    body.festival-theme-dussehra .festival-home-hero__title {
        font-size: 2rem;
    }

    body.festival-theme-dussehra .festival-ram-warrior {
        width: 130px;
        height: 230px;
    }

    body.festival-theme-dussehra .festival-ravana-titan {
        width: 140px;
        height: 245px;
    }
}


