/* Orbitek Hub - Festival wish banner (website + dashboards). Effects are shared with the Team & HR holiday card. */
.obfw{position:relative;overflow:hidden;isolation:isolate;color:#fff;font-family:inherit;
	background:radial-gradient(60% 120% at 85% 0%,rgba(255,90,90,.45),transparent 60%),linear-gradient(120deg,#1a0f2e,#2b0f1e 55%,#1d1035);
	box-shadow:inset 0 -1px 0 rgba(255,255,255,.12)}
.obfw *{box-sizing:border-box}
.obfw .obfw-fx{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.obfw .obfw-fx i{position:absolute;left:var(--x);top:var(--y);font-style:normal;line-height:1;will-change:transform,opacity}
.obfw-in{position:relative;z-index:2;max-width:1240px;margin:0 auto;padding:22px 28px;display:flex;align-items:center;gap:22px}
.obfw-ico{flex:none;width:72px;height:72px;display:grid;place-items:center;font-size:40px;border-radius:22px;background:linear-gradient(160deg,rgba(255,255,255,.24),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 0 34px -6px rgba(255,200,90,.85);animation:obfwGlow 2.4s ease-in-out infinite alternate}
@keyframes obfwGlow{to{transform:scale(1.06) rotate(-4deg)}}
.obfw-txt{flex:1;min-width:0}
.obfw-k{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#ffd27a}
.obfw-hi{margin-top:4px;font-size:clamp(22px,2.6vw,34px);font-weight:800;line-height:1.2;background:linear-gradient(90deg,#fff3c4,#ffb36b 45%,#ff7aa8);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.obfw-en{margin-top:4px;font-size:15px;line-height:1.45;color:rgba(255,255,255,.85)}
.obfw-act{flex:none;display:flex;align-items:center;gap:10px}
.obfw-share{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:99px;background:#fff;color:#1a0f2e!important;font-size:14px;font-weight:800;text-decoration:none!important;box-shadow:0 10px 24px -10px rgba(0,0,0,.6);transition:transform .15s}
.obfw-share::before{content:"";width:18px;height:18px;background:#25d366;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15l-1.4 5 5.1-1.3A10 10 0 1 0 12 2zm5.3 14.2c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .2-3.3-.7-2.8-1.1-4.5-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.9 0-1.4.7-2 1-2.3.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.4 0 .5l-.4.6-.4.4c-.1.1-.3.3-.1.6.1.2.6 1 1.4 1.7 1 .9 1.8 1.1 2 1.3.3.1.4.1.6-.1l.8-1c.2-.3.4-.2.6-.1l1.9.9c.3.1.4.2.5.3.1.2.1.7-.1 1.3z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15l-1.4 5 5.1-1.3A10 10 0 1 0 12 2zm5.3 14.2c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .2-3.3-.7-2.8-1.1-4.5-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.9 0-1.4.7-2 1-2.3.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.4 0 .5l-.4.6-.4.4c-.1.1-.3.3-.1.6.1.2.6 1 1.4 1.7 1 .9 1.8 1.1 2 1.3.3.1.4.1.6-.1l.8-1c.2-.3.4-.2.6-.1l1.9.9c.3.1.4.2.5.3.1.2.1.7-.1 1.3z'/%3E%3C/svg%3E") center/contain no-repeat}
.obfw-share:hover{transform:translateY(-2px)}
.obfw-x{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);color:#fff;font-size:24px;line-height:1;cursor:pointer;padding:0}
.obfw-x:hover{background:rgba(255,255,255,.22)}
/* dashboard version: a rounded card inside wp-admin */
.obfw-dash{margin:16px 20px 14px 0;border-radius:24px;box-shadow:0 24px 50px -26px rgba(60,10,30,.8)}
.obfw-dash .obfw-in{max-width:none;padding:22px 26px}
.obfw-admin .obfw-dash{margin:10px 0 6px}
.obfw-admin .obfw-lead{max-width:880px;font-size:14px}
.obfw-admin .obfw-sw label{margin-right:18px;font-weight:600}
.obfw-admin .obfw-tbl input[type=text]{width:100%}
.obfw-admin .obfw-tbl .obfw-wide{min-width:220px}
.obfw-admin .obfw-tbl td:nth-child(2){display:flex;align-items:center;gap:6px;min-width:190px}
.obfw-admin .obfw-ic{width:26px;text-align:center;font-size:18px}
.obfw-admin .obfw-past td{opacity:.5}
.obfw-admin .obfw-new td{background:#fffaf2}
.obfw-admin .obfw-del{color:#b32d2e;white-space:nowrap}
@media(max-width:760px){
	.obfw-in{flex-wrap:wrap;padding:18px 16px;gap:14px}
	.obfw-ico{width:56px;height:56px;font-size:30px;border-radius:18px}
	.obfw-txt{flex-basis:calc(100% - 140px)}
	.obfw-act{width:100%;justify-content:space-between}
	.obfw-share{flex:1;justify-content:center}
	.obfw-dash{margin-right:10px}
}
@media(prefers-reduced-motion:reduce){.obfw-ico{animation:none}}
@keyframes holBurst{0%{opacity:0;transform:scale(.1)}12%{opacity:1}55%{opacity:1;transform:scale(1.7)}100%{opacity:0;transform:scale(2) translateY(14px)}}
/* --- shared motions --- */
.obfw .obfw-fx .fw{width:6px;height:6px;border-radius:50%;opacity:0;color:hsl(var(--h),95%,65%);top:calc(10% + var(--y) * .55);animation:holBurst calc(var(--t) * .5) ease-out var(--d) infinite;
	box-shadow:0 -34px 0 -1px currentColor,24px -24px 0 -1px currentColor,34px 0 0 -1px currentColor,24px 24px 0 -1px currentColor,0 34px 0 -1px currentColor,-24px 24px 0 -1px currentColor,-34px 0 0 -1px currentColor,-24px -24px 0 -1px currentColor,
	0 -18px 0 -2px #fff,13px -13px 0 -2px #fff,18px 0 0 -2px #fff,13px 13px 0 -2px #fff,0 18px 0 -2px #fff,-13px 13px 0 -2px #fff,-18px 0 0 -2px #fff,-13px -13px 0 -2px #fff}
.obfw .obfw-fx .spark{width:3px;height:3px;border-radius:50%;background:#ffe39a;box-shadow:0 0 8px 2px rgba(255,200,90,.8);animation:holTwk calc(var(--t) * .4) ease-in-out var(--d) infinite alternate}
.obfw .obfw-fx .twinkle{font-size:calc(12px * var(--z) + 4px);color:#fff7d6;text-shadow:0 0 10px rgba(255,240,180,.9);animation:holTwk calc(var(--t) * .4) ease-in-out var(--d) infinite alternate}
@keyframes holTwk{0%{opacity:.15;transform:scale(.6)}100%{opacity:1;transform:scale(1.15)}}
.obfw .obfw-fx .diya{top:auto;bottom:6px;font-size:calc(22px * var(--z));filter:drop-shadow(0 0 10px rgba(255,170,40,.95));animation:holFlick 1.2s ease-in-out var(--d) infinite alternate;opacity:.9}
@keyframes holFlick{0%{transform:translateY(0) scale(1);filter:drop-shadow(0 0 6px rgba(255,170,40,.7))}100%{transform:translateY(-2px) scale(1.06);filter:drop-shadow(0 0 16px rgba(255,190,60,1))}}
.obfw .obfw-fx .snow,.obfw .obfw-fx .petal{top:-14%;font-size:calc(14px * var(--z) + 4px);color:#fff;opacity:.9;animation:holFall var(--t) linear var(--d) infinite}
@keyframes holFall{0%{transform:translate(0,0) rotate(0)}50%{transform:translate(18px,95px) rotate(180deg)}100%{transform:translate(-8px,210px) rotate(360deg);opacity:.15}}
.obfw .obfw-fx .confetti{top:-10%;width:7px;height:12px;border-radius:2px;background:hsl(var(--h),90%,62%);animation:holFall calc(var(--t) * .8) linear var(--d) infinite}
.obfw .obfw-fx .rise,.obfw .obfw-fx .balloon,.obfw .obfw-fx .lantern{top:auto;bottom:-20%}
.obfw .obfw-fx .rise{font-size:calc(16px * var(--z) + 4px);animation:holRise var(--t) ease-in var(--d) infinite}
@keyframes holRise{0%{transform:translateY(0) scale(.8);opacity:0}15%{opacity:1}100%{transform:translate(14px,-230px) scale(1.1);opacity:0}}

/* --- Diwali: deep night, gold glow, crackers + diyas --- */
.obfw.obh-fest-diwali{background:radial-gradient(60% 120% at 85% 0%,rgba(255,170,60,.5),transparent 60%),radial-gradient(50% 120% at 10% 100%,rgba(255,60,90,.4),transparent 60%),linear-gradient(120deg,#1a0f2e 0%,#2b0f1e 50%,#40140b 100%)}

/* --- Holi: colour clouds (gulal) --- */
.obfw.obh-fest-holi{background:radial-gradient(45% 90% at 15% 20%,rgba(255,64,160,.55),transparent 65%),radial-gradient(45% 90% at 85% 25%,rgba(255,214,0,.45),transparent 65%),radial-gradient(50% 90% at 60% 100%,rgba(0,200,140,.45),transparent 65%),linear-gradient(120deg,#2a0b3d,#3b0f2c 55%,#0f2b3a)}
.obfw .obfw-fx .gulal{width:calc(90px * var(--z));height:calc(90px * var(--z));border-radius:50%;background:hsl(var(--h),95%,60%);filter:blur(18px);opacity:0;animation:holPuff var(--t) ease-out var(--d) infinite}
@keyframes holPuff{0%{transform:scale(.2);opacity:0}25%{opacity:.75}100%{transform:scale(1.9);opacity:0}}
.obfw .obfw-fx .drop{width:8px;height:8px;border-radius:50%;background:hsl(var(--h),95%,62%);animation:holTwk calc(var(--t) * .35) ease-in-out var(--d) infinite alternate}

/* --- Christmas: snow --- */
.obfw.obh-fest-christmas{background:radial-gradient(60% 120% at 85% 0%,rgba(220,40,50,.45),transparent 60%),radial-gradient(60% 120% at 10% 100%,rgba(30,140,80,.5),transparent 60%),linear-gradient(120deg,#0b1f1a,#13281f 50%,#2a0f12)}

/* --- New Year: midnight blue + gold --- */
.obfw.obh-fest-newyear{background:radial-gradient(60% 120% at 80% 0%,rgba(255,210,90,.4),transparent 60%),linear-gradient(120deg,#0a1030,#151a4a 55%,#2a1840)}

/* --- Eid: emerald night, crescent, lanterns --- */
.obfw.obh-fest-eid{background:radial-gradient(40% 90% at 88% 10%,rgba(255,230,150,.35),transparent 60%),linear-gradient(120deg,#062a2a,#0b3b33 55%,#13233d)}
.obfw .obfw-fx .lantern{bottom:auto;top:-6px;font-size:calc(22px * var(--z) + 6px);transform-origin:50% 0;filter:drop-shadow(0 6px 12px rgba(255,190,90,.8));animation:holSway 3.2s ease-in-out var(--d) infinite alternate}
@keyframes holSway{from{transform:rotate(-9deg)}to{transform:rotate(9deg)}}

/* --- Raksha Bandhan: pink & orange, hearts rising --- */
.obfw.obh-fest-rakhi{background:radial-gradient(60% 120% at 85% 0%,rgba(255,150,60,.45),transparent 60%),linear-gradient(120deg,#3a0b2a,#5a1238 55%,#3d1a0b)}

/* --- National days: tricolour --- */
.obfw.obh-fest-national{background:linear-gradient(180deg,rgba(255,153,51,.55) 0%,rgba(255,153,51,.2) 30%,rgba(255,255,255,.08) 45%,rgba(255,255,255,.08) 55%,rgba(19,136,8,.25) 70%,rgba(19,136,8,.55) 100%),linear-gradient(120deg,#0d1b3d,#10224a)}
.obfw.obh-fest-national::after{content:"";position:absolute;z-index:-1;right:-40px;top:50%;width:220px;height:220px;margin-top:-110px;border-radius:50%;border:6px solid rgba(0,56,168,.45);
	background:repeating-conic-gradient(rgba(0,56,168,.45) 0 2deg,transparent 2deg 15deg);animation:holSpin 18s linear infinite}
@keyframes holSpin{to{transform:rotate(360deg)}}
.obfw .obfw-fx .balloon{width:calc(18px * var(--z) + 6px);aspect-ratio:4/5;border-radius:50%;animation:holRise calc(var(--t) * 1.2) ease-in var(--d) infinite}
.obfw .obfw-fx .balloon:nth-child(3n+1){background:#ff9933}.obfw .obfw-fx .balloon:nth-child(3n+2){background:#f4f4f4}.obfw .obfw-fx .balloon:nth-child(3n){background:#138808}
.obfw.obh-fest-national .obfw-fx .confetti:nth-child(3n+1){background:#ff9933}.obfw.obh-fest-national .obfw-fx .confetti:nth-child(3n+2){background:#fff}.obfw.obh-fest-national .obfw-fx .confetti:nth-child(3n){background:#138808}

/* --- Navratri / Durga Puja / Dussehra / Ganesh: marigold --- */
.obfw.obh-fest-navratri{background:radial-gradient(60% 120% at 85% 0%,rgba(255,180,0,.5),transparent 60%),radial-gradient(50% 120% at 10% 100%,rgba(220,30,30,.45),transparent 60%),linear-gradient(120deg,#3a0a0a,#5a1a05 55%,#3d0b1f)}

/* --- Sankranti / Lohri / Pongal: kites in a sky --- */
.obfw.obh-fest-kite{background:radial-gradient(50% 120% at 85% 0%,rgba(255,220,120,.55),transparent 60%),linear-gradient(160deg,#0e4f8a,#2a7bc4 55%,#f39c4a)}
.obfw .obfw-fx .kite{left:-10%;font-size:calc(24px * var(--z) + 8px);filter:drop-shadow(0 6px 10px rgba(0,0,0,.25));animation:holKite calc(var(--t) * 1.8) ease-in-out var(--d) infinite}
@keyframes holKite{0%{transform:translate(0,0) rotate(-10deg)}25%{transform:translate(30vw,-20px) rotate(8deg)}50%{transform:translate(60vw,10px) rotate(-6deg)}75%{transform:translate(90vw,-14px) rotate(10deg)}100%{transform:translate(120vw,0) rotate(-8deg)}}
.obfw .obfw-fx .cloud{width:calc(120px * var(--z));height:36px;border-radius:40px;background:rgba(255,255,255,.35);filter:blur(4px);animation:holCloud calc(var(--t) * 3) linear var(--d) infinite}
@keyframes holCloud{from{transform:translateX(-30vw)}to{transform:translateX(40vw)}}

/* --- Janmashtami: peacock blue --- */
.obfw.obh-fest-krishna{background:radial-gradient(60% 120% at 85% 0%,rgba(0,200,180,.4),transparent 60%),linear-gradient(120deg,#061a3d,#0a2f5c 55%,#0b3d3a)}

/* --- Chhath: rising sun over water --- */
.obfw.obh-fest-chhath{background:linear-gradient(180deg,#3a0f2e 0%,#a3361e 45%,#f08a24 62%,#1b3550 63%,#0d2238 100%)}
.obfw .obfw-fx .sun{left:78%;top:auto;bottom:22%;width:110px;height:110px;margin-left:-55px;border-radius:50%;background:radial-gradient(circle,#fff3b0,#ffb02e 55%,rgba(255,120,30,0) 72%);animation:holSun 6s ease-in-out infinite alternate}
@keyframes holSun{from{transform:translateY(16px)}to{transform:translateY(-6px)}}
.obfw .obfw-fx .ripple{top:auto;bottom:calc(6% + var(--y) * .12);width:160px;height:8px;margin-left:-80px;border-radius:50%;border:2px solid rgba(255,220,150,.45);animation:holRipple calc(var(--t) * .6) ease-out var(--d) infinite}
@keyframes holRipple{from{transform:scale(.3);opacity:.9}to{transform:scale(1.8);opacity:0}}

/* --- Gurpurab / Baisakhi: saffron and blue light --- */
.obfw.obh-fest-gurpurab{background:radial-gradient(60% 120% at 85% 0%,rgba(255,153,0,.5),transparent 60%),linear-gradient(120deg,#0b1d4a,#16285c 55%,#3a1f05)}

/* --- Maha Shivratri: indigo night --- */
.obfw.obh-fest-shiv{background:radial-gradient(50% 120% at 85% 0%,rgba(140,170,255,.35),transparent 60%),linear-gradient(120deg,#0b0f2a,#1c1f4a 55%,#2a1240)}

/* --- any other celebration --- */
.obfw.obh-fest-party{background:radial-gradient(60% 120% at 85% 0%,rgba(255,90,90,.45),transparent 60%),radial-gradient(50% 120% at 10% 100%,rgba(140,90,255,.4),transparent 60%),linear-gradient(120deg,#1a0f2e,#2b0f1e 55%,#1d1035)}

/* --- Women's Day / Mother's Day: rose and violet --- */
.obfw.obh-fest-women{background:radial-gradient(60% 120% at 85% 0%,rgba(255,120,200,.45),transparent 60%),radial-gradient(50% 120% at 10% 100%,rgba(150,90,255,.45),transparent 60%),linear-gradient(120deg,#2a0b3d,#4a1048 55%,#3a0b2a)}
