/* Diwali offer page: extra polish (progress bar, reveals, hover depth, spacing, phone fixes) */
.dw-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1200; pointer-events: none; }
.dw-progress span { display: block; height: 100%; transform-origin: left; transform: scaleX(var(--p, 0)); background: linear-gradient(90deg, #f4c45d, #ffe395, #2fc24a); box-shadow: 0 0 12px rgba(244, 196, 93, .6); }

/* scroll reveals (only when JS marks the page) */
.dw-js .dw-reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--i, 0) * 70ms); }
.dw-js .dw-reveal.is-in { opacity: 1; transform: none; }

/* hero */
.diwali-hero h1 { letter-spacing: -0.03em; text-wrap: balance; }
.diwali-hero h1 em { background: linear-gradient(100deg, #ffe395, #f4c45d 45%, #ffd98a); -webkit-background-clip: text; background-clip: text; color: transparent; }
.diwali-eyebrow { backdrop-filter: blur(6px); }
.diwali-offer-card { animation: dw-float 7s ease-in-out infinite; }
@keyframes dw-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
.diwali-code { letter-spacing: .14em; }

/* buttons: soft sheen on hover */
.diwali-button { position: relative; overflow: hidden; }
.diwali-button::after { content: ""; position: absolute; top: 0; left: -70%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .28), transparent); transform: skewX(-20deg); transition: left .6s ease; pointer-events: none; }
.diwali-button:hover::after { left: 130%; }

/* cards: depth on hover */
.diwali-feature-grid article, .diwali-workspace-grid article, .diwali-industry-grid article, .diwali-review-grid figure, .diwali-plan { transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s ease, border-color .3s ease; }
.diwali-feature-grid article:hover, .diwali-workspace-grid article:hover, .diwali-industry-grid article:hover, .diwali-review-grid figure:hover { transform: translateY(-6px); border-color: rgba(244, 196, 93, .55); box-shadow: 0 24px 44px -26px rgba(0, 0, 0, .7), 0 0 0 1px rgba(244, 196, 93, .18); }
.diwali-plan:hover { transform: translateY(-8px); box-shadow: 0 34px 60px -30px rgba(0, 0, 0, .75), 0 0 0 1px rgba(244, 196, 93, .3); }
.diwali-plan-featured { box-shadow: 0 30px 60px -34px rgba(244, 196, 93, .45); }
.diwali-feature-icon, .diwali-industry-icon { transition: transform .3s ease; }
article:hover > .diwali-feature-icon, article:hover > .diwali-industry-icon { transform: scale(1.1) rotate(-4deg); }

/* billing period switch and faq */
.diwali-periods button { transition: background-color .25s ease, color .25s ease, transform .2s ease; }
.diwali-periods button:active { transform: scale(.96); }
.diwali-faq details { transition: background-color .25s ease, border-color .25s ease; }
.diwali-faq details[open] { border-color: rgba(244, 196, 93, .5); }
.diwali-faq summary { cursor: pointer; }

/* focus visibility */
.diwali-button:focus-visible, .diwali-copy:focus-visible, .diwali-periods button:focus-visible, .diwali-faq summary:focus-visible { outline: 3px solid #f4c45d; outline-offset: 3px; }

/* phones */
@media (max-width: 640px) {
    .diwali-hero h1 { font-size: clamp(2.1rem, 9.4vw, 2.9rem); }
    .diwali-hero-copy .diwali-button { width: 100%; }
    .diwali-offer-card { animation: none; }
    .diwali-feature-grid article:hover, .diwali-workspace-grid article:hover, .diwali-industry-grid article:hover, .diwali-plan:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .diwali-offer-card { animation: none; }
    .dw-js .dw-reveal { opacity: 1; transform: none; transition: none; }
    .diwali-button::after { display: none; }
}

/* countdown */
.dw-countdown { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 22px; padding: 10px 16px; border: 1px solid rgba(244, 196, 93, .4); border-radius: 12px; background: rgba(244, 196, 93, .08); font-variant-numeric: tabular-nums; }
.dw-cd-label { margin-right: 6px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #f4c45d; }
.dw-countdown b { min-width: 34px; padding: 5px 6px; border-radius: 8px; background: rgba(0, 0, 0, .35); text-align: center; font-size: 18px; color: #fff; }
.dw-countdown i { font-style: normal; font-size: 12px; color: #b3c6b9; margin-right: 4px; }

/* hero sparkles */
.diwali-hero { position: relative; }
.dw-sparks { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.dw-sparks i { position: absolute; left: var(--x); top: var(--y); width: 4px; height: 4px; border-radius: 50%; background: #ffe395; box-shadow: 0 0 10px 2px rgba(255, 227, 149, .7); opacity: 0; animation: dw-twinkle var(--s) var(--d) ease-in-out infinite; }
@keyframes dw-twinkle { 0%, 100% { opacity: 0; transform: scale(.4) translateY(0); } 50% { opacity: .9; transform: scale(1.1) translateY(-14px); } }

/* sticky offer bar */
.dw-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1100; padding: 10px 14px; transform: translateY(110%); transition: transform .4s cubic-bezier(.2, .7, .2, 1); pointer-events: none; }
.dw-sticky.is-on { transform: none; }
.dw-sticky-in { pointer-events: auto; max-width: 720px; margin: 0 auto; display: flex; align-items: center; gap: 12px; padding: 10px 12px 10px 18px; border: 1px solid rgba(244, 196, 93, .45); border-radius: 16px; background: rgba(4, 27, 22, .92); backdrop-filter: blur(12px); box-shadow: 0 20px 50px -10px rgba(0, 0, 0, .7); }
.dw-sticky-t { flex: 1; font-size: 14px; color: #d6e3dc; }
.dw-sticky-t b { color: #f4c45d; }
.dw-sticky-code { padding: 9px 14px; border: 1px dashed #f4c45d; border-radius: 10px; background: transparent; color: #ffe395; font-weight: 700; letter-spacing: .1em; font-size: 13px; cursor: pointer; }
.dw-sticky-code small { margin-left: 6px; letter-spacing: 0; font-weight: 500; color: #b3c6b9; }
.dw-sticky-cta { padding: 11px 18px; border-radius: 10px; background: linear-gradient(#ffe395, #edb541); color: #142f20; font-weight: 700; font-size: 13px; white-space: nowrap; }
@media (max-width: 640px) {
    .dw-countdown { flex-wrap: wrap; }
    .dw-cd-label { width: 100%; }
    .dw-sticky-t { display: none; }
    .dw-sticky-in { padding: 8px; }
    .dw-sticky-code { flex: 1; }
    .dw-sticky-cta { flex: 1; text-align: center; }
    .diwali-finale { padding-bottom: 90px; }
}
@media (prefers-reduced-motion: reduce) { .dw-sparks { display: none; } .dw-sticky { transition: none; } }
