/*!
 * NikoStudio Visszaszámláló – frontend stílusok
 * Minden szabály a .nsc-countdown gyökérelemre szűkítve, minden CSS-változó --nsc- prefixes.
 * A téma html/body stílusait nem írja felül.
 */

/* ---------- Gyökérelem (a forrás body-stílusai) ---------- */
.nsc-countdown{
  --nsc-red:#d42a3a; --nsc-red-dark:#8f1424; --nsc-green:#1e7a45; --nsc-green-dark:#12502c; --nsc-lime:#9ccc3c;
  --nsc-cream:#fff6e6; --nsc-gold:#ffc23d; --nsc-ink:#3a1a12; --nsc-mint:#3fd6a5; --nsc-pink:#ff6fae;
  --nsc-blue:#62a8ff; --nsc-foot-bg:rgba(18,80,44,.85);
  --nsc-bg1:#b3172b; --nsc-bg2:#e0384a; --nsc-bg3:#9e1230; --nsc-bg4:#d42a3a;
  --nsc-font:"Luckiest Guy","Arial Black",Impact,sans-serif;
  --nsc-body-font:"Nunito",system-ui,sans-serif;
  --nsc-vw:1vw; --nsc-vh:1vh;
  box-sizing:border-box;margin:0;padding:0;
  font-family:var(--nsc-body-font);color:var(--nsc-ink);
  font-size:16px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;
  text-transform:none;text-align:left;text-decoration:none;word-spacing:normal;
  display:flex;flex-direction:column;position:relative;
  min-height:var(--nsc-minh,100vh);
  background:linear-gradient(135deg,var(--nsc-bg1),var(--nsc-bg2),var(--nsc-bg3),var(--nsc-bg4));
  color-scheme:light;
}
.nsc-countdown *,.nsc-countdown *::before,.nsc-countdown *::after{box-sizing:border-box;margin:0;padding:0}

/* Beágyazott mód: minden a widget dobozán belül marad */
.nsc-countdown.nsc-embedded{
  --nsc-vw:1cqw; --nsc-vh:1%;
  min-height:var(--nsc-minh,0px);overflow:hidden;
  container-type:inline-size;container-name:nsc;
}

/* ---------- Animált háttér ---------- */
.nsc-countdown .nsc-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.nsc-countdown .nsc-bg::before{content:"";position:absolute;inset:-60%;will-change:transform;
  background:linear-gradient(135deg,var(--nsc-bg1) 20%,var(--nsc-bg2) 40%,var(--nsc-bg3) 60%,var(--nsc-bg4) 80%);animation:nsc-bgmove 18s ease-in-out infinite}
@keyframes nsc-bgmove{0%,100%{transform:translate(-12%,-8%)}50%{transform:translate(12%,8%)}}

.nsc-countdown .nsc-blob{position:absolute;border-radius:50%;opacity:.4;animation:nsc-float 20s ease-in-out infinite;will-change:transform;
  background:radial-gradient(closest-side,var(--nsc-c),transparent)!important}
.nsc-countdown .nsc-b1{width:calc(60 * var(--nsc-vw));height:calc(60 * var(--nsc-vw));--nsc-c:#ff8a5c;left:calc(-14 * var(--nsc-vw));bottom:calc(-14 * var(--nsc-vw));opacity:.35}
.nsc-countdown .nsc-b2{width:calc(46 * var(--nsc-vw));height:calc(46 * var(--nsc-vw));--nsc-c:var(--nsc-gold);right:calc(-10 * var(--nsc-vw));top:calc(10 * var(--nsc-vh));opacity:.3;animation-delay:-7s}
.nsc-countdown .nsc-b3{width:calc(40 * var(--nsc-vw));height:calc(40 * var(--nsc-vw));--nsc-c:var(--nsc-pink);left:calc(30 * var(--nsc-vw));top:calc(-10 * var(--nsc-vw));opacity:.3;animation-delay:-13s}
@keyframes nsc-float{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(5vw,-4vw) scale(1.1)}66%{transform:translate(-4vw,3vw) scale(.92)}}

.nsc-countdown .nsc-floaty{position:absolute;font-size:var(--nsc-s);line-height:normal;opacity:.55;animation:nsc-floaty var(--nsc-t) ease-in-out infinite;animation-delay:var(--nsc-d)}
@keyframes nsc-floaty{0%,100%{transform:translateY(0) rotate(-12deg)}50%{transform:translateY(-28px) rotate(14deg)}}

/* Hópehely: a burkoló a nézet (vagy a doboz) magas, így a 110%-os eltolás = 110vh */
.nsc-countdown .nsc-snow{position:fixed;top:-12px;z-index:1;width:var(--nsc-sz);height:100vh;
  opacity:.8;pointer-events:none;animation:nsc-fall linear infinite}
.nsc-countdown .nsc-snow::before{content:"";display:block;width:var(--nsc-sz);height:var(--nsc-sz);border-radius:50%;background:#fff}
@keyframes nsc-fall{to{transform:translate(var(--nsc-dx),110%)}}

/* Fényfüzér */
.nsc-countdown .nsc-lights{position:relative;z-index:3;height:70px;width:100%;overflow:hidden;flex:none}
.nsc-countdown .nsc-lights svg{width:100%;height:100%;display:block}
.nsc-countdown .nsc-bulb{animation:nsc-blink 1.2s steps(1) infinite}
@keyframes nsc-blink{50%{opacity:.25}}

/* Lógó gömbdíszek */
.nsc-countdown .nsc-bauble{position:fixed;top:0;z-index:2;transform-origin:top center;animation:nsc-swing var(--nsc-t) ease-in-out infinite;pointer-events:none}
.nsc-countdown .nsc-bauble .nsc-string{width:2px;height:var(--nsc-h);background:rgba(255,246,230,.7);margin:0 auto}
.nsc-countdown .nsc-bauble .nsc-ball{width:var(--nsc-w);height:var(--nsc-w);border-radius:50%;position:relative;
  background:radial-gradient(circle at 32% 30%,rgba(255,255,255,.85) 0 8%,transparent 22%),var(--nsc-c);
  box-shadow:inset -6px -8px 0 rgba(0,0,0,.18),0 8px 18px rgba(0,0,0,.25)}
.nsc-countdown .nsc-bauble .nsc-ball::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%);
  width:14px;height:9px;border-radius:3px;background:var(--nsc-gold)}
@keyframes nsc-swing{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}

.nsc-countdown .nsc-main{position:relative;z-index:4;flex:1;display:flex;flex-direction:column;align-items:center;
  padding:6px 16px 40px;text-align:center}

.nsc-countdown .nsc-tag{display:inline-block;background:var(--nsc-cream);color:var(--nsc-green);font-weight:900;
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;padding:7px 16px;border-radius:999px;
  transform:rotate(-2deg);box-shadow:0 4px 0 var(--nsc-green-dark);line-height:normal}
.nsc-countdown .nsc-title{font-family:var(--nsc-font);color:var(--nsc-cream);font-weight:400;font-style:normal;line-height:1.05;
  font-size:clamp(40px,calc(7.5 * var(--nsc-vw)),84px);margin:16px 0 26px;padding:0;letter-spacing:.02em;
  text-transform:none;text-align:center;border:0;background:none;
  text-shadow:0 5px 0 var(--nsc-red-dark),0 10px 24px rgba(0,0,0,.25)}
.nsc-countdown .nsc-title::before,.nsc-countdown .nsc-title::after{content:none}
.nsc-countdown .nsc-dots span{display:inline-block;animation:nsc-hop 1.4s ease-in-out infinite}
.nsc-countdown .nsc-dots span:nth-child(2){animation-delay:.15s}
.nsc-countdown .nsc-dots span:nth-child(3){animation-delay:.3s}
@keyframes nsc-hop{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-14px)}}

/* Számláló */
.nsc-countdown .nsc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,calc(2 * var(--nsc-vw)),18px);width:100%;max-width:840px}
.nsc-countdown .nsc-unit{background:var(--nsc-cream);border-radius:24px;padding:clamp(16px,calc(3 * var(--nsc-vw)),26px) 6px clamp(12px,calc(2 * var(--nsc-vw)),18px);
  position:relative;box-shadow:0 8px 0 var(--nsc-green-dark),0 16px 28px rgba(0,0,0,.25);
  animation:nsc-bob 3.2s ease-in-out infinite}
.nsc-countdown .nsc-unit:nth-child(1){--nsc-r:-2deg;animation-delay:0s}
.nsc-countdown .nsc-unit:nth-child(2){--nsc-r:1.5deg;animation-delay:-.8s}
.nsc-countdown .nsc-unit:nth-child(3){--nsc-r:-1.5deg;animation-delay:-1.6s}
.nsc-countdown .nsc-unit:nth-child(4){--nsc-r:2deg;animation-delay:-2.4s}
@keyframes nsc-bob{0%,100%{transform:rotate(var(--nsc-r)) translateY(0)}50%{transform:rotate(calc(var(--nsc-r) * -1)) translateY(-6px)}}
.nsc-countdown .nsc-unit::after{content:"";position:absolute;top:-10px;right:14px;width:26px;height:26px;border-radius:50%;
  background:var(--nsc-c);box-shadow:inset -3px -4px 0 rgba(0,0,0,.18)}
.nsc-countdown .nsc-unit:nth-child(1)::after{--nsc-c:var(--nsc-gold)}
.nsc-countdown .nsc-unit:nth-child(2)::after{--nsc-c:var(--nsc-lime)}
.nsc-countdown .nsc-unit:nth-child(3)::after{--nsc-c:var(--nsc-pink)}
.nsc-countdown .nsc-unit:nth-child(4)::after{--nsc-c:var(--nsc-blue)}
.nsc-countdown .nsc-num{font-family:var(--nsc-font);font-size:clamp(42px,calc(8.5 * var(--nsc-vw)),84px);line-height:1;color:var(--nsc-red);font-weight:400;
  font-variant-numeric:tabular-nums;display:inline-block;text-shadow:0 4px 0 var(--nsc-green)}
.nsc-countdown .nsc-num.nsc-tick{animation:nsc-pop .35s cubic-bezier(.3,1.7,.5,1)}
@keyframes nsc-pop{0%{transform:scale(.75)}100%{transform:scale(1)}}
.nsc-countdown .nsc-label{font-weight:900;font-size:clamp(11px,calc(1.5 * var(--nsc-vw)),14px);letter-spacing:.12em;text-transform:uppercase;color:var(--nsc-green);margin-top:6px;line-height:normal}

/* Manó + buborék */
.nsc-countdown .nsc-stage{display:flex;align-items:center;justify-content:center;gap:18px;margin:30px 0 4px;flex-wrap:wrap}
.nsc-countdown .nsc-elf-wrap{position:relative;width:clamp(170px,calc(22 * var(--nsc-vw)),230px);cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none}
.nsc-countdown .nsc-elf-wrap:focus-visible{outline:3px dashed var(--nsc-cream);outline-offset:4px;border-radius:12px}
.nsc-countdown .nsc-elf-wrap::before{content:"";position:absolute;inset:8% -18% 2%;border-radius:50%;
  background:radial-gradient(closest-side,rgba(255,214,90,.75),rgba(156,204,60,.35) 55%,transparent);
  filter:blur(10px);animation:nsc-glow 3s ease-in-out infinite;will-change:transform,opacity}
@keyframes nsc-glow{50%{opacity:.6;transform:scale(1.06)}}
.nsc-countdown .nsc-elf{position:relative;display:block;width:100%;max-width:none;height:auto;transform-origin:50% 95%;border:0;border-radius:0;box-shadow:none;
  filter:drop-shadow(0 14px 16px rgba(0,0,0,.35));animation:nsc-sway 3s ease-in-out infinite;will-change:transform;user-select:none;-webkit-user-drag:none}
@keyframes nsc-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg) translateY(-6px)}}
.nsc-countdown .nsc-elf-wrap.nsc-mischief .nsc-elf{animation:nsc-mischief .7s}
@keyframes nsc-mischief{
  0%{transform:none}15%{transform:translateY(-26px) rotate(-10deg) scale(1.04)}
  35%{transform:translateY(0) rotate(8deg)}50%{transform:translateY(-12px) rotate(-6deg)}
  70%{transform:rotate(4deg)}100%{transform:none}}
.nsc-countdown .nsc-hint{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);white-space:nowrap;
  background:var(--nsc-gold);color:var(--nsc-ink);font-weight:900;font-size:12px;letter-spacing:.06em;text-transform:uppercase;line-height:normal;
  padding:5px 12px;border-radius:999px;box-shadow:0 3px 0 var(--nsc-red-dark);animation:nsc-hop 2s ease-in-out infinite}

.nsc-countdown .nsc-bubble{position:relative;background:var(--nsc-cream);border:4px solid var(--nsc-ink);border-radius:24px;
  padding:16px 20px;max-width:340px;font-weight:800;font-size:17px;line-height:1.35;text-align:left;
  box-shadow:6px 6px 0 var(--nsc-green-dark)}
.nsc-countdown .nsc-bubble::before{content:"";position:absolute;left:-26px;top:38px;border:12px solid transparent;border-right:14px solid var(--nsc-ink)}
.nsc-countdown .nsc-bubble::after{content:"";position:absolute;left:-15px;top:42px;border:8px solid transparent;border-right:10px solid var(--nsc-cream)}
.nsc-countdown .nsc-bubble.nsc-pop{animation:nsc-pop .35s cubic-bezier(.3,1.7,.5,1)}
.nsc-countdown .nsc-bubble .nsc-who{display:block;font-family:var(--nsc-font);font-weight:400;font-size:15px;color:var(--nsc-green);letter-spacing:.04em;margin-bottom:4px}
.nsc-countdown .nsc-bubble .nsc-count{display:block;margin-top:8px;font-size:12px;color:var(--nsc-red);letter-spacing:.06em;text-transform:uppercase}

/* Pánikmérő */
.nsc-countdown .nsc-panic{margin-top:30px;width:100%;max-width:580px;background:var(--nsc-cream);border-radius:20px;
  padding:16px 18px;box-shadow:0 6px 0 var(--nsc-green-dark)}
.nsc-countdown .nsc-panic-top{display:flex;justify-content:space-between;align-items:baseline;font-weight:900;
  font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--nsc-green)}
.nsc-countdown .nsc-panic-top b{font-family:var(--nsc-font);font-weight:400;font-size:24px;color:var(--nsc-red);letter-spacing:0}
.nsc-countdown .nsc-meter{height:18px;border-radius:999px;background:#ead9b8;margin:10px 0;overflow:hidden;border:3px solid var(--nsc-ink)}
.nsc-countdown .nsc-meter i{display:block;height:100%;width:0;transition:width 1s;
  background:repeating-linear-gradient(-45deg,var(--nsc-red) 0 10px,var(--nsc-cream) 10px 20px);
  background-size:28px 100%;animation:nsc-candy 1s linear infinite}
@keyframes nsc-candy{to{background-position:28px 0}}
.nsc-countdown .nsc-panic p{font-weight:700;font-size:15px;text-align:left;margin:0;line-height:normal;color:var(--nsc-ink)}

.nsc-countdown .nsc-done{display:none;font-family:var(--nsc-font);color:var(--nsc-cream);font-size:clamp(34px,calc(6 * var(--nsc-vw)),60px);
  text-shadow:0 4px 0 var(--nsc-green-dark)}
.nsc-countdown.nsc-finished .nsc-grid{display:none}
.nsc-countdown.nsc-finished .nsc-done{display:block;margin:26px 0 6px;line-height:1.1}
.nsc-countdown.nsc-finished .nsc-title,.nsc-countdown.nsc-finished .nsc-hint,
.nsc-countdown.nsc-finished .nsc-bubble,.nsc-countdown.nsc-finished .nsc-tag{display:none}
.nsc-countdown.nsc-finished .nsc-elf-wrap{width:clamp(230px,calc(30 * var(--nsc-vw)),320px)}
.nsc-countdown.nsc-finished .nsc-main{padding-top:20px}

/* Lábléc a dátummal */
.nsc-countdown .nsc-footer{position:relative;z-index:4;text-align:center;color:var(--nsc-cream);
  background:linear-gradient(180deg,transparent,var(--nsc-foot-bg) 40%);padding:50px 16px 24px}
.nsc-countdown .nsc-date{font-family:var(--nsc-font);font-size:clamp(26px,calc(4.4 * var(--nsc-vw)),42px);color:var(--nsc-gold);
  text-shadow:0 3px 0 var(--nsc-red-dark);letter-spacing:.02em}
.nsc-countdown .nsc-foot-line{margin-top:10px;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:2px 8px}
.nsc-countdown .nsc-logo-glow{display:inline-block;padding:12px 44px 12px 30px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(255,255,255,.97) 72%,rgba(255,255,255,.65) 88%,rgba(255,255,255,0))}
.nsc-countdown .nsc-logo-glow img{height:34px;width:auto;max-width:none;display:block;border:0;border-radius:0;box-shadow:none}
.nsc-countdown .nsc-foot-link{margin-top:6px;display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:15px}
.nsc-countdown .nsc-foot-link a,.nsc-countdown .nsc-foot-link a:link,.nsc-countdown .nsc-foot-link a:visited{color:var(--nsc-gold) !important;text-decoration:none !important;border-bottom:2px dotted var(--nsc-gold);display:inline-block;
  font-weight:800;font-size:15px;box-shadow:none;background:none;
  transform-origin:right bottom;transition:transform .25s cubic-bezier(.3,1.6,.5,1),color .2s,border-color .2s,text-shadow .2s}
.nsc-countdown .nsc-foot-link a:hover,.nsc-countdown .nsc-foot-link a:focus,.nsc-countdown .nsc-foot-link a:active{transform:scale(1.2);color:var(--nsc-red-dark) !important;border-bottom-color:var(--nsc-red-dark);
  text-shadow:0 0 2px #fff6e6,0 0 8px rgba(255,246,230,.95),0 0 14px rgba(255,246,230,.75);outline:none}
.nsc-countdown .nsc-foot-link img{width:26px;height:26px;max-width:none;display:block;border:0;border-radius:50%;background:#fff;padding:2px;box-shadow:0 0 8px rgba(255,255,255,.5)}

/* Szán-kurzor fénycsóvával (csak egérrel használt eszközökön) */
.nsc-countdown .nsc-trail{position:fixed;inset:0;width:100%;height:100%;z-index:9998;pointer-events:none;display:none}
.nsc-countdown .nsc-sleigh{position:fixed;left:0;top:0;width:66px;z-index:9999;pointer-events:none;opacity:0;
  transition:opacity .15s;will-change:transform;display:none}
.nsc-countdown.nsc-sleigh-on .nsc-trail,.nsc-countdown.nsc-sleigh-on .nsc-sleigh{display:block}
.nsc-countdown .nsc-sleigh svg{display:block;width:100%;height:auto;overflow:visible}
.nsc-countdown .nsc-sleigh .nsc-sl-inner{animation:nsc-slbob 1.1s ease-in-out infinite}
@keyframes nsc-slbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.nsc-countdown .nsc-sleigh .nsc-sl-gifts{transform-origin:50px 36px;animation:nsc-giftwobble .5s ease-in-out infinite}
@keyframes nsc-giftwobble{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2.5deg)}}
.nsc-countdown .nsc-sleigh .nsc-sl-bell{transform-origin:110px 22px;animation:nsc-bell .6s ease-in-out infinite}
@keyframes nsc-bell{0%,100%{transform:rotate(-18deg)}50%{transform:rotate(18deg)}}
.nsc-countdown .nsc-sleigh .nsc-sl-face{transform-box:fill-box;transform-origin:center;animation:nsc-blinkface 4s infinite}
@keyframes nsc-blinkface{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.15)}}
.nsc-countdown .nsc-sleigh.nsc-down .nsc-sl-inner{transform:scale(.88)}
@media (hover:hover) and (pointer:fine){
  /* Teljes oldal mód: a JS csak akkor teszi ki az osztályt, ha a szán ténylegesen fut */
  html.nsc-sleigh-page,html.nsc-sleigh-page body,html.nsc-sleigh-page a,html.nsc-sleigh-page button,
  html.nsc-sleigh-page [role="button"],html.nsc-sleigh-page .nsc-elf-wrap{cursor:none!important}
  /* Beágyazott mód: csak a dobozon belül */
  .nsc-countdown.nsc-embedded.nsc-sleigh-on,.nsc-countdown.nsc-embedded.nsc-sleigh-on a,
  .nsc-countdown.nsc-embedded.nsc-sleigh-on button,.nsc-countdown.nsc-embedded.nsc-sleigh-on [role="button"]{cursor:none!important}
}

/* Emoji-robbanás: teljes oldal módban a body-ra kerül, ezért önálló (prefixes) osztály */
.nsc-fly{position:fixed;z-index:20;pointer-events:none;font-size:28px;line-height:normal;margin:0;padding:0}

/* Beágyazott módban a teljes oldalas rétegek a dobozhoz igazodnak */
.nsc-countdown.nsc-embedded .nsc-bg,.nsc-countdown.nsc-embedded .nsc-snow,.nsc-countdown.nsc-embedded .nsc-bauble,
.nsc-countdown.nsc-embedded .nsc-trail,.nsc-countdown.nsc-embedded .nsc-sleigh,.nsc-countdown.nsc-embedded .nsc-fly{position:absolute}
.nsc-countdown.nsc-embedded .nsc-snow{height:100%}

/* Mobil nézet – teljes oldal mód: a nézet szélessége számít */
@media (max-width:560px){
  .nsc-countdown.nsc-full .nsc-grid{grid-template-columns:repeat(2,1fr)}
  .nsc-countdown.nsc-full .nsc-bubble::before,.nsc-countdown.nsc-full .nsc-bubble::after{display:none}
  .nsc-countdown.nsc-full .nsc-bubble{text-align:center}
  .nsc-countdown.nsc-full .nsc-tag{font-size:11px;letter-spacing:.08em}
  .nsc-countdown.nsc-full .nsc-bauble{display:none}
  .nsc-countdown.nsc-full .nsc-lights{height:56px}
}
/* Mobil nézet – beágyazott mód: a doboz szélessége számít */
@container nsc (max-width:560px){
  .nsc-countdown .nsc-grid{grid-template-columns:repeat(2,1fr)}
  .nsc-countdown .nsc-bubble::before,.nsc-countdown .nsc-bubble::after{display:none}
  .nsc-countdown .nsc-bubble{text-align:center}
  .nsc-countdown .nsc-tag{font-size:11px;letter-spacing:.08em}
  .nsc-countdown .nsc-bauble{display:none}
  .nsc-countdown .nsc-lights{height:56px}
}
@media (prefers-reduced-motion:reduce){
  .nsc-countdown *,.nsc-countdown *::before,.nsc-countdown *::after{animation:none!important;transition:none!important}
}
