/* Automatic holidays: countdown strip and falling decoration. Colours come from --dv-accent / --dv-fest-bg. */
.dv-fest-bar{position:relative;overflow:hidden;box-sizing:border-box;width:min(var(--dv-width,1200px),calc(100% - 32px));margin:14px auto 22px;background:var(--dv-fest-bg);color:#fff;border-radius:14px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dv-accent) 45%,transparent),0 10px 26px -14px rgba(0,0,0,.55)}
.dv-fest-bar::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 140% at 85% 50%,color-mix(in srgb,var(--dv-accent) 35%,transparent),transparent 70%);pointer-events:none}
.dv-fest-bar__inner{position:relative;z-index:1;display:flex;align-items:center;gap:16px;padding:10px 52px 10px 18px}
.dv-fest-bar__icon{font-size:30px;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4));animation:dv-fest-bob 2.4s ease-in-out infinite}
.dv-fest-bar__text{margin:0;flex:1;font-weight:700;font-size:16px;letter-spacing:.01em}
.dv-fest-bar__clock{display:flex;gap:6px}
.dv-fest-bar__clock[hidden]{display:none}
.dv-fest-bar__unit{display:flex;flex-direction:column;align-items:center;min-width:50px;padding:5px 6px;border-radius:8px;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.dv-fest-bar__unit b{font-size:19px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--dv-accent)}
.dv-fest-bar__unit:first-child{background:var(--dv-accent)}
.dv-fest-bar__unit:first-child b,.dv-fest-bar__unit:first-child small{color:var(--dv-on-accent)}
.dv-fest-bar__unit small{font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.8}
.dv-fest-bar__close{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:20px;line-height:1;cursor:pointer}
.dv-fest-bar__close:hover{background:rgba(255,255,255,.25)}
.dv-fest-bar.is-hidden{display:none}
@keyframes dv-fest-bob{50%{transform:translateY(-3px) rotate(-6deg)}}
@media(max-width:700px){.dv-fest-bar{width:calc(100% - 24px);margin:10px auto 16px;border-radius:12px}.dv-fest-bar__inner{flex-wrap:wrap;gap:8px 12px;padding:9px 44px 10px 14px}.dv-fest-bar__icon{font-size:24px}.dv-fest-bar__text{font-size:14px}.dv-fest-bar__clock{width:100%}.dv-fest-bar__unit{flex:1;min-width:0}}

.dv-fest-fx{position:fixed;inset:0;width:100%;height:100%;z-index:60;pointer-events:none}
@media(prefers-reduced-motion:reduce){.dv-fest-fx{display:none}.dv-fest-bar__icon{animation:none}}

/* Holiday surfaces: secondary colour glows on the header, menu, hero and banner. */
.dv-fest-bar{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dv-fest-2) 45%,transparent),0 12px 30px -14px color-mix(in srgb,var(--dv-fest-2) 60%,#000)}
.dv-fest-bar::after{background:radial-gradient(60% 140% at 85% 50%,color-mix(in srgb,var(--dv-fest-2) 40%,transparent),transparent 70%),radial-gradient(40% 120% at 8% 50%,color-mix(in srgb,var(--dv-accent) 35%,transparent),transparent 70%)}
.dv-fest-bar__unit b{color:var(--dv-fest-2)}
.dv-fest-bar__icon{filter:drop-shadow(0 0 10px var(--dv-fest-2))}
body.dv-fest .smc-top-strip{box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--dv-fest-2) 40%,transparent)}
body.dv-fest .smc-main-nav{box-shadow:inset 0 1px 0 color-mix(in srgb,var(--dv-fest-2) 35%,transparent),0 0 0 1px color-mix(in srgb,var(--dv-accent) 30%,transparent),0 14px 30px -12px color-mix(in srgb,var(--dv-accent) 55%,#000)!important}
body.dv-fest .smc-home-hero{background-image:radial-gradient(520px 260px at 92% 8%,color-mix(in srgb,var(--dv-fest-2) 20%,transparent),transparent 70%),radial-gradient(480px 300px at 0 100%,color-mix(in srgb,var(--dv-accent) 16%,transparent),transparent 70%)!important}
html:not(.s-dark) body.dv-fest{background-image:linear-gradient(180deg,color-mix(in srgb,var(--dv-accent) 7%,transparent),transparent 520px)}
html.s-dark body.dv-fest{background-image:linear-gradient(180deg,color-mix(in srgb,var(--dv-accent) 14%,transparent),transparent 620px)}
body.dv-fest .custom-software-card:hover .software-card-inner{box-shadow:0 14px 34px -12px color-mix(in srgb,var(--dv-fest-2) 70%,transparent)!important}
.dv-fest-bar__icon.is-spooky{cursor:pointer;transition:transform .2s}
.dv-fest-bar__icon.is-spooky:hover{transform:scale(1.25)}
.dv-fest-bar__icon.is-scaring{animation:dv-fest-scare 1.1s ease-in-out;filter:drop-shadow(0 0 16px var(--dv-fest-2)) drop-shadow(0 0 4px #fff)}
@keyframes dv-fest-scare{0%,100%{transform:scale(1.25)}15%{transform:scale(1.45) rotate(-12deg)}30%{transform:scale(1.4) rotate(10deg)}45%{transform:scale(1.45) rotate(-8deg)}60%{transform:scale(1.35) rotate(6deg)}}

/* Trick or treat bubble and candy burst. */
.dv-fest-bubble{position:relative;flex:none;margin-left:-4px;padding:5px 11px;border-radius:999px;background:#fff;color:#2e1065;font-size:12px;font-weight:800;white-space:nowrap;box-shadow:0 4px 14px -4px var(--dv-fest-2);animation:dv-fest-ask 4s ease-in-out infinite}
.dv-fest-bubble::before{content:"";position:absolute;left:-5px;top:50%;width:10px;height:10px;background:inherit;transform:translateY(-50%) rotate(45deg);border-radius:2px}
.dv-fest-bubble.is-treat{background:var(--dv-fest-2);color:#1a1206;animation:none}
.dv-fest-bubble.is-trick{background:#111;color:#fff;animation:none;box-shadow:0 0 0 1px var(--dv-accent),0 4px 18px -2px var(--dv-accent)}
.dv-fest-bubble.is-pop{animation:dv-fest-pop .4s cubic-bezier(.3,1.6,.5,1)}
.dv-fest-bar__icon.is-spooky:focus-visible{outline:2px solid var(--dv-fest-2);outline-offset:4px;border-radius:50%}
.dv-fest-bar__icon.is-treat{animation:dv-fest-treat .6s ease-out}
.dv-fest-bar.is-trick{animation:dv-fest-flash .7s ease-out}
.dv-fest-candy{position:fixed;z-index:9999;font-size:22px;pointer-events:none;will-change:transform,opacity}
@keyframes dv-fest-ask{0%,70%,100%{transform:none}75%{transform:rotate(-4deg) scale(1.06)}80%{transform:rotate(4deg) scale(1.06)}85%{transform:rotate(-2deg)}}
@keyframes dv-fest-pop{from{transform:scale(.6)}}
@keyframes dv-fest-treat{40%{transform:scale(1.5) translateY(-4px)}}
@keyframes dv-fest-flash{0%{filter:brightness(2.2) saturate(1.6)}20%{filter:brightness(.4)}40%{filter:brightness(1.6)}100%{filter:none}}
@media(prefers-reduced-motion:reduce){.dv-fest-bubble{animation:none}}
@media(max-width:700px){.dv-fest-bubble{font-size:11px;padding:4px 9px}}

/* Día de Muertos ofrenda: five candles that light one by one, papel picado when complete. */
.dv-fest-ofrenda{display:flex;align-items:flex-end;gap:7px;flex:none;height:30px;padding:0 4px}
.dv-fest-candle{position:relative;width:9px;height:17px;border-radius:2px 2px 1px 1px;background:linear-gradient(90deg,#f3e3c3,#fff7e6 45%,#d9c39a);box-shadow:0 2px 0 rgba(0,0,0,.25)}
.dv-fest-candle:nth-child(2n){height:21px}.dv-fest-candle:nth-child(3){height:24px}
.dv-fest-candle::before{content:"";position:absolute;left:50%;top:-4px;width:1px;height:4px;background:#3b2a1a}
.dv-fest-candle i{position:absolute;left:50%;bottom:100%;width:8px;height:13px;margin:0 0 2px -4px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 75%,#fff 0 18%,#ffd166 35%,#ff7a00 75%);transform-origin:50% 100%;opacity:0;transform:scale(.2)}
.dv-fest-candle.is-lit i{opacity:1;transform:scale(1);box-shadow:0 0 12px 4px rgba(255,159,28,.55),0 0 26px 8px rgba(255,122,0,.25);animation:dv-fest-flicker 1.4s ease-in-out infinite alternate;transition:opacity .25s,transform .35s cubic-bezier(.3,1.6,.5,1)}
.dv-fest-candle.is-lit:nth-child(2n) i{animation-duration:1.1s}
@keyframes dv-fest-flicker{0%{transform:scale(1) rotate(-3deg)}35%{transform:scale(1.08,.94) rotate(2deg)}70%{transform:scale(.95,1.06) rotate(-1deg)}100%{transform:scale(1.04) rotate(3deg)}}
.dv-fest-picado{position:absolute;left:0;right:0;top:0;z-index:2;height:18px;pointer-events:none;transform:translateY(-110%);
 background:repeating-linear-gradient(90deg,#e6287f 0 30px,#ff9f1c 30px 60px,#8b5cf6 60px 90px,#22c55e 90px 120px,#06b6d4 120px 150px);
 -webkit-mask:conic-gradient(from 135deg at 50% 100%,#000 90deg,transparent 0) 0 100%/15px 7px repeat-x,linear-gradient(#000 0 0) 0 0/100% 11px no-repeat;
 mask:conic-gradient(from 135deg at 50% 100%,#000 90deg,transparent 0) 0 100%/15px 7px repeat-x,linear-gradient(#000 0 0) 0 0/100% 11px no-repeat}
.dv-fest-bar.is-ofrenda .dv-fest-picado{animation:dv-fest-picado 5s cubic-bezier(.3,1.4,.5,1) forwards}
.dv-fest-bar.is-ofrenda .dv-fest-bar__icon{filter:drop-shadow(0 0 14px #ff9f1c) drop-shadow(0 0 4px #fff)}
@keyframes dv-fest-picado{0%{transform:translateY(-110%)}12%,85%{transform:translateY(0)}100%{transform:translateY(-110%)}}
@media(prefers-reduced-motion:reduce){.dv-fest-candle.is-lit i{animation:none}}
/* Sidebar member card (dv-core) wears the holiday: its background, an accent ring and the holiday icon as a watermark. */
html body.dv-fest-card .main-sidebar>.widget.dv-acc-side:not(.dv-acc-side--guest){position:relative;background:radial-gradient(90% 70% at 100% 0,color-mix(in srgb,var(--dv-accent) 38%,transparent),transparent 70%),var(--dv-fest-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dv-accent) 40%,transparent),0 12px 28px -16px color-mix(in srgb,var(--dv-accent) 70%,#000)}
html body.dv-fest-card .main-sidebar>.widget.dv-acc-side.is-vip{background:radial-gradient(90% 70% at 100% 0,color-mix(in srgb,var(--dv-accent) 30%,transparent),transparent 70%),radial-gradient(130% 140% at 0 0,#3b2a10,#14100a 70%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dv-accent) 35%,#eab308 30%),0 12px 28px -16px color-mix(in srgb,var(--dv-accent) 70%,#000)}
body.dv-fest-card .dv-acc-side:not(.dv-acc-side--guest)::before{content:var(--dv-fest-icon);position:absolute;top:46px;right:-6px;font-size:68px;line-height:1;opacity:.16;transform:rotate(14deg);pointer-events:none}
body.dv-fest-card .dv-acc-side:not(.dv-acc-side--guest)>*{position:relative}
body.dv-fest-card .dv-acc-side:not(.is-vip):not(.dv-acc-side--guest) .dv-acc-side__strip{background:linear-gradient(90deg,color-mix(in srgb,var(--dv-accent) 45%,#1e293b),color-mix(in srgb,var(--dv-fest-2) 30%,#334155))}
@media (prefers-reduced-motion:no-preference){body.dv-fest-card .dv-acc-side:not(.dv-acc-side--guest)::before{animation:dv-fest-card-bob 4s ease-in-out infinite}}
@keyframes dv-fest-card-bob{50%{transform:rotate(8deg) translateY(-4px)}}
/* Comments (dv-core): holiday icon by the title, a soft glow in the corner, ringed avatars, a festive «Publicar» and a glow on team/VIP comments. */
body.dv-fest-cmts .dv-comments-box{position:relative;isolation:isolate}
body.dv-fest-cmts .dv-comments-box::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:radial-gradient(55% 160px at 100% 0,color-mix(in srgb,var(--dv-accent) 12%,transparent),transparent 70%),radial-gradient(40% 120px at 0 100%,color-mix(in srgb,var(--dv-fest-2) 8%,transparent),transparent 70%);pointer-events:none}
body.dv-fest-cmts #dv-comments-title::after{content:var(--dv-fest-icon);display:inline-block;margin-left:8px;font-size:.85em;line-height:1}
@media (prefers-reduced-motion:no-preference){body.dv-fest-cmts #dv-comments-title::after{animation:dv-fest-card-bob 4s ease-in-out infinite}}
body.dv-fest-cmts .dv-cmt__body>.dv-acc-avatar,body.dv-fest-cmts .dv-cmt-form__av>.dv-acc-avatar{box-shadow:0 0 0 2px var(--c-body,#fff),0 0 0 4px color-mix(in srgb,var(--dv-accent) 55%,transparent)}
body.dv-fest-cmts .dv-cmt-form .dv-acc-submit:not(.dv-acc-submit--plain){border-color:transparent;background:linear-gradient(135deg,var(--dv-accent),color-mix(in srgb,var(--dv-fest-2) 70%,var(--dv-accent)));color:var(--dv-on-accent,#fff);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 8px 18px -10px var(--dv-accent)}
body.dv-fest-cmts .dv-cmt__body:has(>.dv-cmt__main>.dv-cmt__head .dv-cmt__badge.is-team),body.dv-fest-cmts .dv-cmt__body:has(>.dv-cmt__main>.dv-cmt__head .dv-cmt__badge.is-vip){margin:-8px -10px;padding:8px 10px;border-radius:12px;background:linear-gradient(90deg,color-mix(in srgb,var(--dv-accent) 9%,transparent),transparent 65%)}
/* Download view (dv-core): holiday icon in the header, accent ring, progress bar and waiting box in the holiday colours. */
body.dv-fest-dl .dv-dlv__hero{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dv-accent) 45%,transparent),0 14px 30px -18px color-mix(in srgb,var(--dv-accent) 80%,#000)}
body.dv-fest-dl .dv-dlv__hero>*{position:relative;z-index:1}
body.dv-fest-dl .dv-dlv__hero::before{content:var(--dv-fest-icon);position:absolute;right:28px;top:50%;font-size:92px;line-height:1;opacity:.24;transform:translateY(-50%) rotate(12deg);filter:drop-shadow(0 6px 14px rgba(0,0,0,.35));pointer-events:none}
@media (prefers-reduced-motion:no-preference){body.dv-fest-dl .dv-dlv__hero::before{animation:dv-fest-dl-bob 4s ease-in-out infinite}}
@keyframes dv-fest-dl-bob{50%{transform:translateY(calc(-50% - 5px)) rotate(6deg)}}
@media (max-width:600px){body.dv-fest-dl .dv-dlv__hero::before{right:10px;top:22px;font-size:58px;transform:rotate(12deg);animation:none}}
body.dv-fest-dl .dv-dlv__wait{border-color:color-mix(in srgb,var(--dv-accent) 40%,transparent);background:radial-gradient(70% 120% at 50% 0,color-mix(in srgb,var(--dv-accent) 9%,transparent),transparent 70%)}
body.dv-fest-dl .dv-dlv__wait p::before{content:var(--dv-fest-icon);margin-right:6px}
body.dv-fest-dl .dv-dlv__bar i{background:repeating-linear-gradient(-45deg,rgba(255,255,255,.22) 0 8px,transparent 8px 16px),linear-gradient(90deg,var(--dv-accent),color-mix(in srgb,var(--dv-fest-2) 80%,var(--dv-accent)));background-size:22px 22px,auto;box-shadow:0 0 12px color-mix(in srgb,var(--dv-accent) 55%,transparent)}
@media (prefers-reduced-motion:no-preference) and (min-width:601px){body.dv-fest-dl .dv-dlv__hero.is-boo::before{animation:dv-fest-boo .9s cubic-bezier(.3,1.6,.5,1) .6s both}}
@keyframes dv-fest-boo{0%{transform:translateY(-50%) rotate(12deg) scale(1);opacity:.24}35%{transform:translateY(-50%) rotate(-8deg) scale(1.45);opacity:.85}60%{transform:translateY(-50%) rotate(10deg) scale(1.2)}100%{transform:translateY(-50%) rotate(12deg) scale(1);opacity:.24}}
/* Home hero: holiday icon in the badge instead of the flame, the screen in the holiday colours and holiday icons floating by the device. */
body.dv-fest-hero .smc-home-hero__badge .smc-fire-icon{display:none}
body.dv-fest-hero .smc-home-hero__badge::before{content:var(--dv-fest-icon);font-size:1.15em;line-height:1}
body.dv-fest-hero .smc-hero-device__screen{background:radial-gradient(70% 90% at 70% 20%,color-mix(in srgb,var(--dv-fest-2) 45%,transparent),transparent 70%),var(--dv-fest-bg);box-shadow:0 20px 45px color-mix(in srgb,var(--dv-accent) 30%,rgba(0,0,0,.4)),0 0 0 1px color-mix(in srgb,var(--dv-accent) 40%,transparent)}
body.dv-fest-hero .smc-hero-device__windows{color:#fff;filter:drop-shadow(0 0 14px color-mix(in srgb,var(--dv-accent) 80%,transparent))}
body.dv-fest-hero .smc-hero-device::after{content:var(--dv-fest-icon);position:absolute;top:-34px;left:50%;z-index:2;font-size:46px;line-height:1;transform:translateX(-50%) rotate(-8deg);pointer-events:none}
@media (prefers-reduced-motion:no-preference){body.dv-fest-hero .smc-hero-device::after{animation:dv-fest-hero-a 5s ease-in-out infinite}}
@keyframes dv-fest-hero-a{50%{transform:translateX(-50%) translateY(-6px) rotate(4deg)}}
@media (max-width:767px){body.dv-fest-hero .smc-hero-device::after{top:-26px;font-size:34px}}
