/* =============================================================
   NovaWebDesign — primul ecran: POARTA SPRE NOVA ORIGINS (pereche cu js/portal.js)
   Povestea, legată de derulare: o flacără (Halloween) / o scânteie (Nova) pulsează în fața porții →
   se sparge în licurici care aprind dovlecii / felinarele de pe cărare, rând cu rând → poarta se
   deschide spre o lume vie (clip în buclă), luna urcă → mesajul de sezon ia locul textului.
   Totul e făcut din straturi pre-randate (img/portal/), mișcate DOAR cu transform / opacity
   (plus un clip-path simplu pe deschidere). Secțiunea e mai înaltă decât ecranul; scena stă fixată
   cu position: sticky (înălțimi în svh, nimic legat de bara de adresă).
   Geometria (aceeași ca la randarea imaginilor): --g = înălțimea porții, --gx = centrul ei pe orizontală,
   --gb = linia solului; rama e o imagine g × 0,8g, solul la 92% din ea, deschiderea la 21–79% × 12–91,2%.
   Fără JS sau cu „mișcare redusă”: imaginea finală, statică, mesajul de sezon sub primul ecran.
   ============================================================= */
.nvh {
  position: relative;
  z-index: 1;
  height: calc(100vh + 100vh);      /* Runda 7: povestea ține ~2 ecrane (înainte 2,4) */
  height: calc(100svh + 100svh);
}
.nvh-pin {
  --g: min(62svh, 36vw, 640px);
  --gx: 70%;
  --gb: calc(100svh - clamp(110px, 19svh, 210px));
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  min-height: 520px;
  overflow: hidden;
  isolation: isolate;
}

/* ---------- scena ---------- */
.nvh-scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(calc(var(--g) * 1.25) calc(var(--g) * .95) at var(--gx) calc(var(--gb) - var(--g) * .42), rgba(var(--nv-glow-rgb), .16), transparent 72%),
    linear-gradient(180deg, var(--nv-bg) 0%, rgba(var(--nv-card-rgb), 1) 58%, var(--nv-bg) 100%);
}
.nvh-cam, .nvh-push { position: absolute; inset: 0; }
.nvh-cam { transform-origin: 70% 50%; }
.nvh-push { will-change: transform; }
.nvh-moon, .nvh-decor, .nvh-drum, .nvh-ghost, .nvh-gate, .nvh-rama, .nvh-lamps, .nvh-sparks, .nvh-flies, .nvh-fog { position: absolute; }
/* decorul mare (pădurea, rama, poarta închisă) e desenat cu border-image „fill”: e pură decorație,
   iar browserul nu o tratează drept conținut (LCP) — primul conținut mare rămâne textul, pictat imediat */
.nvh-decor, .nvh-ghost, .nvh-rama { border-image: var(--img) 0 fill / 0 / 0 stretch; }

/* pădurea din spate + pământul cu cărarea (o singură imagine, lată de 5g, cu solul la 0,85g de sus) */
.nvh-decor {
  --iw: 5;
  z-index: 2;
  left: calc(var(--gx) - var(--g) * var(--iw) / 2);
  top: calc(var(--gb) - var(--g) * .85);
  width: calc(var(--g) * var(--iw));
  height: calc(var(--g) * 1.6);
}

/* luna: în spatele porții, sus-dreapta; urcă odată cu povestea (js: transform) */
.nvh-moon {
  z-index: 1;
  left: calc(var(--gx) + var(--g) * var(--mx, .4) - var(--g) * .19);
  top: calc(var(--gb) - var(--g) * var(--my, .9) - var(--g) * .19);
  width: calc(var(--g) * .38);
  height: calc(var(--g) * .38);
  background: center / 100% 100% no-repeat;
  opacity: .75;
  will-change: transform;
}
html[data-sezon="halloween"] .nvh-moon { opacity: .92; }

/* lumina care iese din poartă pe cărare (opacitatea crește când poarta se deschide) */
.nvh-drum {
  z-index: 3;
  left: calc(var(--gx) - var(--g) * 1.2);
  top: calc(var(--gb) - var(--g) * .08);
  width: calc(var(--g) * 2.4);
  height: calc(var(--g) * .9);
  background: center / 100% 100% no-repeat;
  opacity: 0;            /* lumina slabă de la început e pictată în decor; stratul ăsta crește doar la deschidere */
  will-change: opacity;
}
/* poarta închisă: lumea se ghicește prin ceață (imagine în forma deschiderii) */
.nvh-ghost {
  z-index: 3;
  left: calc(var(--gx) - var(--g) * .2368);
  top: calc(var(--gb) - var(--g) * .8);
  width: calc(var(--g) * .4736);
  height: calc(var(--g) * .796);
}

/* ---------- poarta ---------- */
.nvh-gate {
  z-index: 4;
  left: calc(var(--gx) - var(--g) * .4);
  top: calc(var(--gb) - var(--g) * .92);
  width: calc(var(--g) * .8);
  height: var(--g);
}
.nvh-world {
  position: absolute;
  left: 20.4%;
  top: 12%;
  width: 59.2%;
  height: 79.6%;
  border-radius: 50% 50% 3% 3% / 41.4% 41.4% 2% 2%;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(white, black);   /* Safari: colțurile rotunjite rămân tăiate și cu transform pe copii */
}
.nvh-world__in {
  position: absolute;
  inset: 0;
  /* deschiderea: ca o ușă dublă, dintr-o fantă de lumină la mijloc spre margini (js: inset) */
  clip-path: inset(0 50% 0 50%);
  -webkit-clip-path: inset(0 50% 0 50%);
  background: center / cover no-repeat;
  visibility: hidden;    /* apare doar când poarta începe să se deschidă (js) */
}
html:not(.nvh-js) .nvh-world__in { visibility: visible; }
.nvh-video {
  position: absolute;
  left: -4%;
  top: -3%;
  width: 108%;
  height: 106%;
  object-fit: cover;
  will-change: transform;
}
.nvh-video:not(.is-on) { opacity: 0; }
.nvh-video.is-on { opacity: 1; transition: opacity .6s ease; }
/* marginile ușii: două fâșii de lumină care pleacă din mijloc spre margini cât se deschide (js: transform) */
.nvh-rim {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  will-change: opacity;
}
.nvh-rim b {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 9%;
  margin-left: -4.5%;
  background: linear-gradient(90deg, rgba(var(--nv-glow-rgb), 0), rgba(var(--nv-ember-rgb), .5) 50%, rgba(var(--nv-glow-rgb), 0));
  will-change: transform;
}
/* lumina care iese din ușă spre privitor (crește cât se deschide, apoi se așază) */
.nvh-bloom {
  position: absolute;
  left: -40%;
  top: -6%;
  width: 180%;
  height: 120%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(var(--nv-ember-rgb), .5), rgba(var(--nv-glow-rgb), .22) 42%, rgba(var(--nv-glow-rgb), .06) 70%, transparent);
  opacity: 0;
  transform: scale(.4);
  pointer-events: none;
  will-change: transform, opacity;
}
.nvh-rama-lumina { position: absolute; inset: 0; background: center / 100% 100% no-repeat; }
/* rama (cu lumina ei de bază pictată în imagine): strat pe tot ecranul, imaginea 0,8g × g peste poartă */
.nvh-rama {
  z-index: 5;
  left: calc(var(--gx) - var(--g) * .4);
  top: calc(var(--gb) - var(--g) * .92);
  width: calc(var(--g) * .8);
  height: var(--g);
}
.nvh-gate--front { z-index: 6; }
.nvh-rama-lumina {
  opacity: 0;
  will-change: opacity;
}
/* lumina ramei „respiră”: un strat de lumină (gradient) a cărui opacitate pulsează */
.nvh-breathe {
  position: absolute;
  inset: 4% 6% 2%;
  border-radius: 50% 50% 12% 12% / 40% 40% 8% 8%;
  background:
    radial-gradient(48% 46% at 50% 54%, transparent 62%, rgba(var(--nv-glow-rgb), .34) 78%, transparent 100%),
    radial-gradient(40% 24% at 50% 92%, rgba(var(--nv-glow-rgb), .32), transparent 100%);
  opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .nvh-breathe { animation: nvh-breathe 5s ease-in-out infinite; }
}
@keyframes nvh-breathe { 0%, 100% { opacity: .08; } 50% { opacity: .62; } }
.nvh-gate--front:hover .nvh-breathe { opacity: .9; animation-play-state: paused; }

/* flacăra / scânteia din fața porții */
.nvh-flame {
  position: absolute;
  left: 41.5%;
  top: 63.6%;
  width: 17%;
  height: 21%;
  will-change: transform, opacity;
}
.nvh-flame::before {
  content: '';
  position: absolute;
  inset: -120% -160%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(var(--nv-glow-rgb), .42), rgba(var(--nv-glow-rgb), .1) 45%, transparent);
}
.nvh-flame i {
  position: absolute;
  inset: 0;
  background: center / contain no-repeat;
  transform-origin: 50% 70%;
}
@media (prefers-reduced-motion: no-preference) {
  .nvh-flame::before { animation: nvh-halo 2.6s ease-in-out infinite; }
  .nvh-flame i { animation: nvh-spark 3.2s ease-in-out infinite; }
  html[data-sezon="halloween"] .nvh-flame i { animation: nvh-flicker 1.9s ease-in-out infinite; }
}
@keyframes nvh-halo { 0%, 100% { opacity: .75; transform: scale(.94); } 50% { opacity: 1; transform: scale(1.06); } }
@keyframes nvh-flicker {
  0%, 100% { transform: scale(1, 1) rotate(0); }
  20% { transform: scale(.96, 1.06) rotate(-2deg); }
  45% { transform: scale(1.03, .95) rotate(1.5deg); }
  70% { transform: scale(.98, 1.04) rotate(-1deg); }
}
@keyframes nvh-spark { 0%, 100% { transform: scale(.9) rotate(0); } 50% { transform: scale(1.08) rotate(22deg); } }
/* zona pe care se poate da click (intră în portal); decor pentru cititoarele de ecran — butonul e accesibil */
.nvh-gate-hit {
  position: absolute;
  left: 18%;
  top: 9%;
  width: 64%;
  height: 84%;
  border-radius: 50% 50% 4% 4% / 40% 40% 3% 3%;
  pointer-events: auto;
  cursor: pointer;
}

/* ---------- dovlecii / felinarele de pe cărare: stins + aprins (crossfade) ---------- */
.nvh-lamps { z-index: 5; left: var(--gx); top: var(--gb); width: 0; height: 0; }
.nvh-lamp {
  position: absolute;
  left: calc(var(--x) * var(--lx, 1) * var(--g) - var(--s) * var(--g) / 2);
  top: calc(var(--y) * var(--ly, 1) * var(--g) - var(--s) * var(--g) * .716);
  width: calc(var(--s) * var(--g));
  height: calc(var(--s) * var(--g) * .833);
  background: center / 100% 100% no-repeat;
}
.nvh-lamp b {
  position: absolute;
  inset: 0;
  background: center / 100% 100% no-repeat;
  opacity: 0;
  will-change: opacity;
}
.nvh-lamp--flip { transform: scaleX(-1); }

/* licuricii (canvas mic, doar zona porții și a cărării) */
.nvh-sparks {
  z-index: 6;
  left: calc(var(--gx) - var(--g) * 1.1);
  top: calc(var(--gb) - var(--g) * .8);
  width: calc(var(--g) * 2.2);
  height: calc(var(--g) * 1.3);
}
/* licurici liniștiți, în jurul porții (animații CSS, fără JS) */
.nvh-flies {
  z-index: 6;
  left: calc(var(--gx) - var(--g) * .9);
  top: calc(var(--gb) - var(--g) * .7);
  width: calc(var(--g) * 1.8);
  height: calc(var(--g) * .95);
  opacity: .35;
  will-change: opacity;
}
.nvh-flies i {
  position: absolute;
  width: 14px;
  height: 14px;
  margin: -7px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(var(--nv-ember-rgb), 1), rgba(var(--nv-ember-rgb), .35) 35%, rgba(var(--nv-ember-rgb), 0));
  opacity: 0;
}
.nvh-flies i:nth-child(1) { left: 8%; top: 70%; --dx: 26px; --dy: -34px; animation-delay: -1s; }
.nvh-flies i:nth-child(2) { left: 18%; top: 40%; --dx: -20px; --dy: -26px; animation-delay: -3.4s; }
.nvh-flies i:nth-child(3) { left: 30%; top: 82%; --dx: 30px; --dy: -20px; animation-delay: -5.1s; }
.nvh-flies i:nth-child(4) { left: 74%; top: 30%; --dx: -24px; --dy: -30px; animation-delay: -2.2s; }
.nvh-flies i:nth-child(5) { left: 86%; top: 62%; --dx: -30px; --dy: -24px; animation-delay: -4.6s; }
.nvh-flies i:nth-child(6) { left: 66%; top: 88%; --dx: 22px; --dy: -36px; animation-delay: -6.3s; }
.nvh-flies i:nth-child(7) { left: 94%; top: 18%; --dx: -18px; --dy: 24px; animation-delay: -1.7s; }
.nvh-flies i:nth-child(8) { left: 4%; top: 22%; --dx: 24px; --dy: 20px; animation-delay: -3.9s; }
.nvh-flies i:nth-child(9) { left: 40%; top: 96%; --dx: -26px; --dy: -22px; animation-delay: -5.8s; }
.nvh-flies i:nth-child(10) { left: 58%; top: 6%; --dx: 20px; --dy: 26px; animation-delay: -0.6s; }
@media (prefers-reduced-motion: no-preference) {
  .nvh-flies i { animation: nvh-fly 7.2s ease-in-out infinite; }
  .nvh-flies i:nth-child(even) { animation-duration: 8.6s; }
}
@keyframes nvh-fly {
  0% { transform: translate3d(0, 0, 0) scale(.6); opacity: 0; }
  20% { opacity: .95; }
  50% { transform: translate3d(var(--dx), var(--dy), 0) scale(1); opacity: .25; }
  70% { opacity: .9; }
  100% { transform: translate3d(calc(var(--dx) * -.4), calc(var(--dy) * 1.6), 0) scale(.6); opacity: 0; }
}

/* ceața joasă (Halloween: violet stins; Nova: smarald), care curge încet */
.nvh-fog {
  z-index: 7;
  left: -15%;
  width: 130%;
  top: calc(var(--gb) - var(--g) * .1);
  height: calc(var(--g) * .4);
  background:
    radial-gradient(38% 50% at 22% 55%, rgba(var(--nv-fog-rgb), .2), transparent 70%),
    radial-gradient(42% 46% at 68% 50%, rgba(var(--nv-fog-rgb), .17), transparent 70%),
    radial-gradient(30% 40% at 46% 40%, rgba(var(--nv-fog-rgb), .12), transparent 70%);
}
@media (prefers-reduced-motion: no-preference) {
  .nvh-fog { animation: nvh-fog 22s ease-in-out infinite alternate; }
}
@keyframes nvh-fog { from { transform: translate3d(-4%, 0, 0); } to { transform: translate3d(4%, -3%, 0); } }

.nvh-leaves { position: absolute; inset: 0; z-index: 8; }
/* lumina care umple ecranul când „camera” intră în poartă */
.nvh-flash {
  position: absolute;
  inset: 0;
  z-index: 9;
  opacity: 0;
  background:
    radial-gradient(closest-corner circle at 50% 50%, rgb(var(--nv-ember-rgb)) 0%, rgba(var(--nv-glow-rgb), 1) 22%, rgb(var(--nv-card-rgb)) 100%);
}

/* ---------- imaginile scenei: cerute abia după primul cadru (js adaugă html.nvh-ready), ca textul
   să se picteze primul; fără JS, direct. Toate se pot înlocui în img/portal/ fără să schimbi codul. ---------- */
html:is(.nvh-ready, :not(.nvh-js)) .nvh-decor { --img: url(/img/portal/decor-nova.webp); }
html:is(.nvh-ready, :not(.nvh-js)) .nvh-ghost { --img: url(/img/portal/poarta-nova.webp?v=2); }
html:is(.nvh-ready, :not(.nvh-js)) .nvh-rama { --img: url(/img/portal/rama-nova.webp); }
html:is(.nvh-ready, :not(.nvh-js)) .nvh-moon { background-image: url(/img/portal/luna-nova.webp); }
html:is(.nvh-ready, :not(.nvh-js)) .nvh-drum { background-image: url(/img/portal/drum-lumina-nova.webp); }
html:is(.nvh-ready, :not(.nvh-js)) .nvh-world__in { background-image: url(/img/portal/lume-nova.webp?v=2); }
html:is(.nvh-ready, :not(.nvh-js)) .nvh-rama-lumina { background-image: url(/img/portal/rama-lumina-nova.webp); }
html:is(.nvh-ready, :not(.nvh-js)) .nvh-flame i { background-image: url(/img/portal/flacara-nova.webp); }
html:is(.nvh-ready, :not(.nvh-js)) .nvh-lamp { background-image: url(/img/portal/felinar-stins-nova.webp); }
html:is(.nvh-ready, :not(.nvh-js)) .nvh-lamp b { background-image: url(/img/portal/felinar-aprins-nova.webp); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-decor { --img: url(/img/portal/decor-halloween.webp); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-ghost { --img: url(/img/portal/poarta-halloween.webp?v=2); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-rama { --img: url(/img/portal/rama-halloween.webp); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-moon { background-image: url(/img/portal/luna-halloween.webp); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-drum { background-image: url(/img/portal/drum-lumina-halloween.webp); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-world__in { background-image: url(/img/portal/lume-halloween.webp?v=2); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-rama-lumina { background-image: url(/img/portal/rama-lumina-halloween.webp); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-flame i { background-image: url(/img/portal/flacara-halloween.webp); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-lamp { background-image: url(/img/portal/felinar-stins-halloween.webp); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-lamp b { background-image: url(/img/portal/felinar-aprins-halloween.webp); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-lamp--b { background-image: url(/img/portal/felinar2-stins-halloween.webp); }
html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-lamp--b b { background-image: url(/img/portal/felinar2-aprins-halloween.webp); }
.nvh-push { opacity: 0; transition: opacity .9s ease; }
html:is(.nvh-ready, :not(.nvh-js)) .nvh-push { opacity: 1; }

/* ---------- textul ---------- */
.nvh-copy {
  position: absolute;
  z-index: 10;
  left: clamp(24px, 6.2vw, 112px);
  top: 84px;
  bottom: 28px;
  width: min(640px, 45vw);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.nvh-label {
  margin: 0 0 1rem;
  font: 600 .78rem/1.3 var(--font-body);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--nv-acc-hi);
}
.nvh-title {
  margin: 0 0 1.05rem;
  font: 540 clamp(2.3rem, min(4.3vw, 7.6svh), 4.3rem)/1.04 var(--font-display);
  letter-spacing: -.022em;
  color: var(--nv-tx);
  text-wrap: balance;
}
.nvh-title em {
  font-style: italic;
  font-weight: 480;
  color: var(--nv-acc-hi);
  background: linear-gradient(110deg, var(--nv-acc-hi) 10%, var(--nv-acc) 60%, var(--nv-acc2) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  padding-right: .06em;
}
.nvh-nw { white-space: nowrap; }
.nvh-lead {
  margin: 0 0 1.6rem;
  max-width: 30em;
  font: 400 clamp(1rem, 1.2vw, 1.15rem)/1.6 var(--font-body);
  color: var(--nv-tx2);
}
.nvh-btns { display: flex; flex-wrap: wrap; gap: .75rem; }
.nvh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 1.7rem;
  border-radius: 999px;
  font: 600 1rem/1 var(--font-body);
  letter-spacing: .005em;
  text-decoration: none;
  transition: transform .35s var(--nv-ease), background-color .25s ease, box-shadow .3s ease, border-color .25s ease, color .25s ease;
}
.nvh-btn.btn-primary { padding: 0 1.8rem; }
.nvh-btn--ghost {
  color: var(--nv-tx);
  background: rgba(var(--nv-tx-rgb), .06);
  box-shadow: inset 0 0 0 1px rgba(var(--nv-tx-rgb), .22);
}
.nvh-btn--ghost:hover { background: rgba(var(--nv-acc-rgb), .12); box-shadow: inset 0 0 0 1px rgba(var(--nv-acc-rgb), .6); }
.nvh-btn:focus-visible { outline: 2px solid var(--nv-acc-hi); outline-offset: 3px; }
.nvh-count {
  display: flex;
  align-items: baseline;
  gap: .15rem;
  margin: 1.4rem 0 0;
  font: 400 .98rem/1 var(--font-body);
  color: var(--nv-tx2);
}
.nvh-count b { font: 560 1.6rem/1 var(--font-display); color: var(--nv-tx); font-variant-numeric: tabular-nums; }
.nvh-count b + b { color: var(--nv-acc-hi); margin-right: .35rem; }
.nvh-from { margin: 1.4rem 0 0; font: 400 .98rem/1.4 var(--font-body); color: var(--nv-tx2); }
.nvh-from b { font: 560 1.4rem/1 var(--font-display); color: var(--nv-tx); }
@media (max-height: 820px) { .nvh-count { display: none; } }
/* „Descoperă exemplul” (Fiamma) a trecut în meniu / subsol; în hero rămâne o legătură secundară, doar pe laptop */
.nvh-ex { display: none; margin: 1.1rem 0 0; font: 500 .9rem/1.3 var(--font-body); }
.nvh-ex a { color: var(--nv-tx2); text-decoration: underline; text-decoration-color: rgba(var(--nv-tx-rgb), .3); text-underline-offset: 3px; transition: color .2s ease; }
.nvh-ex a:hover { color: var(--nv-acc-hi); text-decoration-color: currentColor; }
.nvh-ex a:focus-visible { outline: 2px solid var(--nv-acc-hi); outline-offset: 3px; border-radius: 4px; }
@media (min-width: 1024px) and (min-height: 700px) { .nvh-ex { display: block; } }

/* ---------- oferta de sezon (sub butoane) ---------- */
.nvh-offer { margin: 1.25rem 0 0; }
.nvh-offer[hidden] { display: none; }
.nvh-offer__a {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .3rem .9rem;
  padding: .55rem 1.1rem .55rem .95rem;
  border-radius: 18px;
  text-decoration: none;
  color: var(--nv-tx);
  background: rgba(var(--nv-card-rgb), .72);
  box-shadow: inset 0 0 0 1px rgba(var(--nv-acc-rgb), .32);
  transition: box-shadow .3s ease, background-color .3s ease;
}
.nvh-offer__a:hover { background: rgba(var(--nv-raised-rgb), .85); box-shadow: inset 0 0 0 1px rgba(var(--nv-acc-rgb), .7); }
.nvh-offer__a:focus-visible { outline: 2px solid var(--nv-acc-hi); outline-offset: 3px; }
.nvh-offer__prices { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .6rem; }
.nvh-offer__what { font: 600 .9375rem/1.2 var(--font-body); color: var(--nv-tx); }
.nvh-offer__was {
  font: 500 1.2rem/1.1 var(--font-display);
  color: var(--nv-tx2);
  text-decoration-line: line-through;
  text-decoration-thickness: 3px;
  text-decoration-color: var(--nv-acc);
  text-decoration-skip-ink: none;
}
.nvh-offer__now {
  position: relative;
  display: inline-block;
  font: 600 1.75rem/1 var(--font-display);
  letter-spacing: -.01em;
  color: var(--nv-acc-hi);
  transform-origin: 20% 80%;
}
/* puls de lumânare: strat duplicat strălucitor (doar opacitate) + o mică tresărire (transform) */
.nvh-offer__now::after {
  content: attr(data-t);
  position: absolute;
  left: 0;
  top: 0;
  color: var(--nv-ember);
  text-shadow: 0 0 10px rgba(var(--nv-ember-rgb), .7), 0 0 26px rgba(var(--nv-acc-rgb), .6);
  opacity: 0;
  pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
  .nvh-offer__now { animation: nvh-candle 3.4s ease-in-out infinite; }
  .nvh-offer__now::after { animation: nvh-candle-glow 3.4s ease-in-out infinite; }
}
@keyframes nvh-candle {
  0%, 72%, 100% { transform: none; }
  80% { transform: scale(1.07) rotate(-1.4deg); }
  86% { transform: scale(.995) rotate(.5deg); }
  92% { transform: none; }
}
@keyframes nvh-candle-glow { 0%, 70%, 100% { opacity: 0; } 80% { opacity: 1; } 88% { opacity: .55; } 94% { opacity: 0; } }
.nvh-offer__txt { font: 600 .86rem/1.35 var(--font-body); letter-spacing: .01em; color: var(--nv-tx); }

/* ---------- NOVA Origins: la începutul cărării, sub poartă ---------- */
.nvh-origins {
  position: absolute;
  z-index: 11;
  left: var(--gx);
  bottom: calc(clamp(34px, 6.5svh, 76px) + var(--nv-cookie-lift, 0px));
  transition: bottom .3s ease;
  display: grid;
  justify-items: center;
  gap: .45rem;
  transform: translateX(-50%);
  white-space: nowrap;
}
.nvh-origins__tag {
  display: none;                 /* „Experiență 3D · 2 min” e acum în buton (sub-eticheta) */
  margin: 0;
  font: 500 .74rem/1.2 var(--font-body);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--nv-tx2);
  text-shadow: 0 1px 10px rgba(var(--nv-bg-rgb), .9);
}
.nvh-origins__tag b { font-weight: 700; color: var(--nv-tx); }
.nvh-origins__go {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  min-height: 60px;
  padding: .45rem 1.5rem .45rem 1.15rem;
  border: 0;
  border-radius: 999px;
  font: 700 1.06rem/1.1 var(--font-body);
  color: var(--nv-tx);
  background: rgba(var(--nv-bg-rgb), .9);
  box-shadow: inset 0 0 0 1.5px rgba(var(--nv-acc-hi-rgb), .85), 0 12px 34px -12px rgba(0, 0, 0, .85), 0 0 44px -8px rgba(var(--nv-glow-rgb), .7);
  cursor: pointer;
  transition: background-color .3s ease, box-shadow .3s ease;
}
.nvh-origins__go:hover { background: rgba(var(--nv-raised-rgb), .92); box-shadow: inset 0 0 0 1px rgba(var(--nv-acc-hi-rgb), .9), 0 12px 34px -12px rgba(0, 0, 0, .85), 0 0 44px -8px rgba(var(--nv-glow-rgb), .7); }
.nvh-origins__go:focus-visible { outline: 2px solid var(--nv-acc-hi); outline-offset: 4px; }
/* iconița: o mini-poartă (arcadă) cu lumină înăuntru care pulsează lin (doar opacitate / transform) */
.nvh-origins__ic {
  position: relative;
  display: block;
  flex: none;
  width: 26px;
  height: 31px;
}
.nvh-origins__ic svg { position: relative; z-index: 1; display: block; width: 100%; height: 100%; overflow: visible; }
.nvh-ic__in { fill: rgba(var(--nv-ember-rgb), .9); }
.nvh-ic__arch { fill: none; stroke: var(--nv-acc-hi); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nvh-ic__glow {
  position: absolute;
  left: -9px;
  top: -6px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(var(--nv-ember-rgb), .7), rgba(var(--nv-glow-rgb), .25) 55%, transparent);
  opacity: .5;
}
@media (prefers-reduced-motion: no-preference) {
  .nvh-ic__in { animation: nvh-ic-in 2.8s ease-in-out infinite; transform-origin: 50% 100%; transform-box: fill-box; }
  .nvh-ic__glow { animation: nvh-ic-glow 2.8s ease-in-out infinite; }
}
@keyframes nvh-ic-in { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@keyframes nvh-ic-glow { 0%, 100% { opacity: .25; transform: scale(.8); } 50% { opacity: .85; transform: scale(1.08); } }
.nvh-origins__lbl { display: block; text-align: left; }
.nvh-origins__sub { display: block; margin-top: .18rem; font: 600 .66rem/1.1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--nv-acc-hi); }
.nvh-origins__ar { display: inline-block; color: var(--nv-acc-hi); transition: transform .35s var(--nv-ease); }
.nvh-origins__go:hover .nvh-origins__ar { transform: translateX(4px); }

@media (min-width: 1024px) {
  .nvh-origins__go { min-height: 66px; padding: .5rem 1.7rem .5rem 1.3rem; font-size: 1.12rem; }
  .nvh-origins__ic { width: 28px; height: 33px; }
}

/* ---------- mesajul de sezon: cuvintele urcă dintr-o mască, ca în NOVA Origins ---------- */
.nvh-msg {
  position: absolute;
  z-index: 10;
  left: clamp(24px, 6.2vw, 112px);
  top: 50%;
  width: min(700px, 46vw);
  margin: 0;
  transform: translateY(-50%);
  pointer-events: none;
}
.nvh-msg--h { display: none; }
.nvh-msg--i[hidden], .nvh-msg__cd[hidden] { display: none; }       /* iarna: sezoane/iarna.css o arată; numărătoarea doar cât e activ termenul */
html[data-sezon="halloween"] .nvh-msg--h { display: block; }
html[data-sezon="halloween"] .nvh-msg--n { display: none; }
.nvh-msg p { margin: 0; }
.nvh-msg__l {
  display: block;
  overflow: hidden;
  overflow: clip;
  padding: .08em 0 .14em;
  margin: -.08em 0 -.14em;
}
.nvh-msg__big {
  font: 560 clamp(2.2rem, min(4.1vw, 8svh), 4.4rem)/1.08 var(--font-display);
  white-space: nowrap;
  letter-spacing: -.02em;
  color: var(--nv-acc-hi);
  margin-bottom: .55em !important;
}
.nvh-msg__sub {
  font: italic 420 clamp(1.25rem, min(1.9vw, 3.6svh), 1.85rem)/1.32 var(--font-display);
  color: var(--nv-tx);
  max-width: 24em;
}
.nvh-w { display: inline-block; }
.nvh-msg__pk { vertical-align: -.08em; margin-left: .1em; pointer-events: auto; }
.nvh-msg__spark { font-size: .6em; vertical-align: .3em; color: var(--nv-acc2); }
/* numărătoarea „gata de Crăciun” sub mesaj (3 noiembrie – 10 decembrie; text din js/site-config.js): un rând, fără secunde */
.nvh-msg__cd { margin-top: 1.5em !important; font: 600 clamp(.92rem, 1.05vw, 1.02rem)/1.45 var(--font-body); letter-spacing: .005em; color: var(--nv-acc-hi); }
.nvh-msg__cd .nvh-w { max-width: 100%; }
.nvh-msg__cd svg { display: inline-block; vertical-align: -3px; margin-right: .5em; }
/* stările (js): ascuns (jos, în mască) → .is-on (pe loc) → .is-out (urcă și se estompează) */
@media (prefers-reduced-motion: no-preference) {
  html.nvh-js .nvh-msg .nvh-w {
    transform: translate3d(0, 105%, 0);
    opacity: 0;
    transition: transform .32s cubic-bezier(.5, 0, .75, 0), opacity .26s ease;
  }
  /* intră cât textul de deasupra e încă pe jumătate vizibil (js: MSG_ON); fiecare cuvânt în 0,45 s */
  html.nvh-js .nvh-msg.is-on .nvh-w {
    transform: none;
    opacity: 1;
    transition: transform .46s cubic-bezier(.2, .8, .3, 1) calc(.16s + var(--i) * 30ms), opacity .4s ease calc(.16s + var(--i) * 30ms), filter .4s ease calc(.16s + var(--i) * 30ms);
  }
  /* textul hero: iese în sus în ~0,35 s; revine (derulare în sus) după ce mesajul a început să coboare */
  html.nvh-js .nvh-copy {
    transition: opacity .36s ease .14s, transform .5s cubic-bezier(.2, .8, .3, 1) .14s, visibility 0s linear 0s;
  }
  html.nvh-js .nvh-copy.is-out {
    opacity: 0;
    transform: translate3d(0, -40px, 0);
    visibility: hidden;
    pointer-events: none;
    transition: opacity .32s ease, transform .42s cubic-bezier(.5, 0, .75, 0), visibility 0s linear .42s;
  }
  html.nvh-js .nvh-msg.is-out .nvh-w {
    transform: translate3d(0, -40%, 0);
    opacity: 0;
    transition: transform .45s cubic-bezier(.33, 1, .68, 1) calc(var(--i) * 14ms), opacity .4s ease calc(var(--i) * 14ms);
  }
}
/* PC: din blur ușor (cel mult 4 px) în clar; pe telefon doar translate + opacitate */
@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {
  html.nvh-js .nvh-msg .nvh-w { filter: blur(4px); }
  html.nvh-js .nvh-msg.is-on .nvh-w { filter: none; }
}

/* ---------- indiciul de derulare ---------- */
.nvh-hint {
  position: absolute;
  z-index: 10;
  left: clamp(24px, 6.2vw, 112px);
  bottom: 22px;
  display: flex;
  align-items: center;
  gap: 12px;
  font: 600 .66rem/1 var(--font-body);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--nv-tx3);
  transition: opacity .6s ease;
}
.nvh-hint i {
  width: 34px;
  height: 1px;
  background: linear-gradient(90deg, rgba(var(--nv-acc-rgb), .9), transparent);
  transform-origin: left;
}
@media (prefers-reduced-motion: no-preference) {
  .nvh-hint i { animation: nvh-hint 2.2s cubic-bezier(.6, 0, .3, 1) infinite; }
}
@keyframes nvh-hint { 0% { transform: scaleX(0); opacity: 1; } 60% { transform: scaleX(1); opacity: 1; } 100% { transform: scaleX(1); opacity: 0; } }
.nvh.is-scrolled .nvh-hint { opacity: 0; }
@media (max-height: 700px) { .nvh-hint { display: none; } }

/* ---------- „camera” intră în poartă (click pe buton / pe poartă) ---------- */
.nvh-cam { transition: transform 1s cubic-bezier(.16, 1, .3, 1); }
.nvh.is-zoom .nvh-cam { transition: transform .95s cubic-bezier(.87, 0, .13, 1); }
.nvh-flash { transition: opacity .5s ease; }
.nvh.is-zoom .nvh-flash { opacity: 1; transition: opacity .6s cubic-bezier(.5, 0, .2, 1) .4s; }
.nvh-hint { transition: opacity .45s ease; }
.nvh.is-zoom .nvh-origins, .nvh.is-zoom .nvh-hint, .nvh.is-zoom .nvh-msg { opacity: 0 !important; transition: opacity .3s ease; }
.nvh.is-zoom .nvh-copy { visibility: hidden; transition: visibility 0s .3s; }

/* panoul „NOVA Origins se deschide în curând”: css/origins.css (.nvo-dlg), cu js/origins.js */

/* ---------- trecerea spre secțiunea următoare („Firma ta”, înainte „Două servicii”): urcă peste finalul scenei, fără bandă și fără zonă moartă ---------- */
#hero + :is(.svc-section, #firma-ta) { position: relative; z-index: 2; margin-top: -18vh; margin-top: -18svh; padding-top: calc(var(--section-padding, 6rem) + 8svh); }
#hero + :is(.svc-section, #firma-ta)::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 26svh;
  z-index: -1;
  pointer-events: none;
  /* scena se termină la 18svh sub marginea de sus a secțiunii: fundalul paginii e plin deja de acolo */
  background: linear-gradient(180deg, rgba(var(--nv-bg-rgb), 0) 0, rgba(var(--nv-bg-rgb), 0) calc(18svh - 116px), var(--nv-page-bg, var(--nv-bg)) calc(18svh - 6px));
}

/* telefon: imagini mai mici (decorul doar cât încape pe ecran în jurul porții) */
@media (max-width: 760px) {
  .nvh-decor { --iw: 1.9; }
  html:is(.nvh-ready, :not(.nvh-js)) .nvh-decor { --img: url(/img/portal/decor-tel-nova.webp); }
  html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-decor { --img: url(/img/portal/decor-tel-halloween.webp); }
  html:is(.nvh-ready, :not(.nvh-js)) .nvh-rama { --img: url(/img/portal/rama-tel-nova.webp); }
  html[data-sezon="halloween"]:is(.nvh-ready, :not(.nvh-js)) .nvh-rama { --img: url(/img/portal/rama-tel-halloween.webp); }
}

/* ---------- telefon și tabletă: textul sus, poarta dedesubt, cărarea până la bara de jos ---------- */
@media (max-width: 1023.98px) {
  .nvh { height: calc(100vh + 110vh); height: calc(100svh + 110svh); }
  .nvh-pin {
    --g: clamp(210px, min(38svh, 78vw), 420px);
    --gx: 50%;
    --gb: calc(100svh - var(--nova-bar-h, 64px) - env(safe-area-inset-bottom, 0px) - 112px);
    --mx: .34;
    --my: .76;
    --lx: .64;
    --ly: .78;
  }
  .nvh-copy {
    left: 0;
    right: 0;
    top: calc(74px + env(safe-area-inset-top, 0px));
    bottom: auto;
    width: auto;
    max-width: 640px;
    margin: 0 auto;
    padding: 0 20px;
    display: block;
    text-align: center;
  }
  .nvh-label { margin-bottom: .6rem; font-size: .68rem; }
  .nvh-title { font-size: clamp(1.95rem, 8.4vw, 3.2rem); margin-bottom: .6rem; }
  .nvh-lead { margin: 0 auto .95rem; font-size: .98rem; line-height: 1.5; max-width: 26em; }
  .nvh-btns { justify-content: center; gap: .6rem; }
  .nvh-btn { min-height: 48px; padding: 0 .9rem; font-size: .95rem; flex: 1 1 0; max-width: 220px; white-space: nowrap; }
  .nvh-offer { margin-top: .8rem; }
  .nvh-offer__a { gap: .15rem .7rem; justify-content: center; padding: .45rem .95rem; }
  .nvh-offer__was { font-size: 1.05rem; }
  .nvh-offer__now { font-size: 1.5rem; }
  .nvh-offer__txt { font-size: .8125rem; }
  .nvh-offer__prices { justify-content: center; }
  .nvh-offer__what { font-size: .875rem; }
  .nvh-count { display: none; }
  .nvh-from { margin-top: .9rem; font-size: .88rem; }
  .nvh-from b { font-size: 1.2rem; }
  .nvh-msg {
    left: 0;
    right: 0;
    top: calc(84px + env(safe-area-inset-top, 0px));
    width: auto;
    max-width: 560px;
    margin: 0 auto;
    padding: 0 22px;
    transform: none;
    text-align: center;
  }
  .nvh-msg__big { font-size: clamp(1.6rem, 7.5vw, 3.2rem); margin-bottom: .45em !important; }
  .nvh-msg__sub { font-size: clamp(1.12rem, 4.9vw, 1.5rem); margin: 0 auto; }
  /* +16 px față de bara fixă de jos: butonul nu mai stă înghesuit între dovleci */
  .nvh-origins { bottom: calc(var(--nova-bar-h, 64px) + env(safe-area-inset-bottom, 0px) + 30px + var(--nv-cookie-lift, 0px)); gap: .35rem; }
  /* telefon: fără eticheta de deasupra (stătea peste dovleci); „Experiență 3D” e în buton, pe rândul al doilea */
  .nvh-origins__tag { display: none; }
  .nvh-origins__go { min-height: 56px; padding: .4rem 1.3rem .4rem 1rem; font-size: 1rem; line-height: 1.15; gap: .65rem; }
  .nvh-origins__ic { width: 24px; height: 28px; }
  .nvh-hint { display: none; }
}
@media (max-width: 380px) {
  .nvh-offer__txt { font-size: .8125rem; letter-spacing: 0; }
  .nvh-offer__what { font-size: .8125rem; }
  .nvh-offer__prices { gap: .15rem .4rem; }
  .nvh-offer__a { padding: .45rem .7rem; }
  .nvh-offer__was { font-size: .92rem; text-decoration-thickness: 2px; }
  .nvh-offer__now { font-size: 1.32rem; }
  .nvh-btn { font-size: .9rem; }
}
@media (max-width: 1023.98px) and (max-height: 760px) {
  .nvh-lead { display: none; }
}
@media (min-width: 769px) and (max-width: 1023.98px) {   /* tabletă fără bara de jos */
  .nvh-pin { --gb: calc(100svh - 120px); }
  .nvh-origins { bottom: calc(26px + var(--nv-cookie-lift, 0px)); }
}
/* bannerul de cookie-uri e pe ecran (html.nv-cookie, js/consent.js): butonul Origins urcă deasupra lui, nu stă sub el.
   Runda 9: variabila stă pe buton, nu pe <html> (o variabilă schimbată pe rădăcină recalcula stilul întregii pagini: ~0,6 s pe telefon) */
html.nv-cookie .nvh-origins { --nv-cookie-lift: 64px; }
@media (min-width: 769px) and (max-width: 1023.98px) { html.nv-cookie .nvh-origins { --nv-cookie-lift: 122px; } }
@media (min-width: 1024px) { html.nv-cookie .nvh-origins { --nv-cookie-lift: 0px; } }
/* laptopuri scunde */
@media (min-width: 1024px) and (max-height: 780px) {
  .nvh-label { margin-bottom: .7rem; }
  .nvh-title { margin-bottom: .8rem; }
  .nvh-lead { margin-bottom: 1.2rem; font-size: 1rem; line-height: 1.5; }
  .nvh-btn { min-height: 50px; }
  .nvh-offer { margin-top: 1rem; }
  .nvh-origins__tag { display: none; }
}

/* ---------- varianta scurtă (pagina de mentenanță, până la noul ei hero): statică, fără scenă ---------- */
.nvh--scurt { height: auto; }
.nvh--scurt .nvh-pin { position: relative; }
.nvh--scurt .nvh-canvas, .nvh--scurt .nvh-season, .nvh--scurt .nvh-moon, .nvh--scurt .nvh-origins, .nvh--scurt .nvh-enter { display: none; }

/* ---------- fără JS sau cu mișcare redusă: imaginea finală, statică; mesajul de sezon sub primul ecran ---------- */
html:not(.nvh-js) .nvh:not(.nvh--scurt) { height: auto; padding-bottom: clamp(220px, 30svh, 300px); }
html:not(.nvh-js) .nvh-pin { position: relative; overflow: visible; }
html:not(.nvh-js) .nvh-scene { overflow: hidden; }
html:not(.nvh-js) .nvh-msg { top: 100%; transform: none; padding-top: 48px; }
html:not(.nvh-js) .nvh-world__in { clip-path: none; -webkit-clip-path: none; }
/* intrarea în poartă: derularea e oprită din js/portal.js (touchmove / wheel); pe ecranele tactile FĂRĂ overflow: hidden
   (pe telefon făcea pagina să sară și schimba înălțimea vizibilă — bara de adresă); pe PC rămâne ca înainte */
html.nvh-lock, html.nvh-lock body { overscroll-behavior: none; }
@media (hover: hover) and (pointer: fine) {
  html.nvh-lock, html.nvh-lock body { overflow: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  .nvh:not(.nvh--scurt) { height: auto; padding-bottom: clamp(220px, 30svh, 300px); }
  .nvh-pin { position: relative; overflow: visible; }
  .nvh-scene { overflow: hidden; }
  .nvh-msg { top: 100%; transform: none; padding-top: 48px; }
  .nvh-world__in { clip-path: none; -webkit-clip-path: none; }
  .nvh-rim, .nvh-bloom { display: none; }
  .nvh-lamp b { opacity: 1; }
  .nvh-flame { opacity: 0; }
  .nvh-drum { opacity: .78; }
  .nvh-rama-lumina { opacity: .55; }
  .nvh-world__in { visibility: visible; }
  .nvh-flies { opacity: 1; }
  .nvh-hint { display: none; }
  #hero + :is(.svc-section, #firma-ta) { margin-top: 0; padding-top: var(--section-padding, 6rem); }
  #hero + :is(.svc-section, #firma-ta)::before { display: none; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 1023.98px) {
  .nvh-msg { top: 100%; padding-top: 36px; }
}

.nvh-bloom{display:none!important}

/* =============================================================
   Runda 6 · telefon (< 768 px): „scroll & discover”
   1. primul ecran liniștit: titlul, oferta (un rând, fără chenar), butoanele; poarta în fundal, estompată;
   2. la derulare: rândul „Design premium …” urcă cuvânt cu cuvânt din mască, lumina trece peste titlu;
   3. poarta vine în față (flacără → licurici → dovleci → poarta se deschide), mesajul de sezon;
   4. la final, în poartă, butonul mare „Descoperă NOVA Origins”; pastila din antet se retrage cât timp el e pe ecran.
   ============================================================= */
.nvh-origins__lbl .l-p { display: none; }
@media (max-width: 767.98px) {
  .nvh-origins__lbl .l-d { display: none; }
  .nvh-origins__lbl .l-p { display: inline; }
  .nvh-label { display: none; }
  .nvh-count, .nvh-ex { display: none; }
  /* oferta: un rând de text, fără chenar */
  .nvh-offer { margin-top: .8rem; }
  .nvh-offer__a, .nvh-offer__a:hover { padding: 0; border-radius: 0; background: none; box-shadow: none; }
  .nvh-offer__a { gap: .1rem .55rem; }
  .nvh-offer__what { color: var(--nv-tx2); }
  /* rândul care apare la derulare: stă sub butoane, în spațiul rezervat deasupra porții */
  .nvh-lead {
    display: block !important;
    position: absolute; left: 0; right: 0; top: calc(100% + 16px);
    max-width: 23em; margin: 0 auto !important; padding: 0 24px;
    font-size: 1.02rem; line-height: 1.5; text-wrap: balance; pointer-events: none;
  }
  .nvh-lw { display: inline-block; overflow: hidden; overflow: clip; vertical-align: top; padding: 0 0 .22em; margin: 0 0 -.22em; }
  .nvh-lw > span { display: inline-block; transform: translate3d(0, 112%, 0); opacity: 0; transition: transform .8s cubic-bezier(.2, .8, .2, 1) calc(var(--i) * 70ms), opacity .5s ease calc(var(--i) * 70ms); }
  .nvh.is-lead .nvh-lw > span { transform: none; opacity: 1; }
  /* lumina care trece peste litere (o singură dată) */
  .nvh.is-sweep .nvh-title {
    background:
      linear-gradient(100deg, transparent 36%, rgba(255, 246, 220, .98) 50%, transparent 64%) -140% 0 / 260% 100% no-repeat,
      linear-gradient(var(--nv-tx), var(--nv-tx));
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: nvh-sweep 2.4s cubic-bezier(.4, 0, .2, 1) .15s 1 both;
  }
  .nvh.is-sweep .nvh-title em { -webkit-text-fill-color: transparent; }
  /* butonul Origins: în interiorul porții, apare la final */
  .nvh-origins {
    bottom: auto;
    top: calc(var(--gb) - var(--g) * .36);
    opacity: 0; visibility: hidden;
    transform: translate3d(-50%, 18px, 0) scale(.93);
    transition: none;
  }
  .nvh-origins__go { min-height: 62px; padding: .5rem 1.4rem .5rem 1.1rem; box-shadow: inset 0 0 0 1.5px rgba(var(--nv-acc-hi-rgb), .95), 0 0 0 6px rgba(var(--nv-glow-rgb), .12), 0 16px 40px -10px rgba(0, 0, 0, .9), 0 0 54px -6px rgba(var(--nv-glow-rgb), .8); }
  html.nv-cookie .nvh-origins { --nv-cookie-lift: 0px; }
}
@media (max-width: 767.98px) and (prefers-reduced-motion: no-preference) {
  .nvh { height: calc(100vh + 120vh); height: calc(100svh + 120svh); }   /* Runda 7: ~2,2 ecrane (înainte 3,7), aceleași momente, mai strânse */
  .nvh-cam { will-change: opacity; }
}
@keyframes nvh-sweep { from { background-position: -140% 0, 0 0; } to { background-position: 240% 0, 0 0; } }
@media (prefers-reduced-motion: reduce) {
  .nvh-lw > span { transform: none; opacity: 1; transition: none; }
  .nvh.is-sweep .nvh-title { animation: none; background: none; -webkit-text-fill-color: currentColor; }
}

/* Runda 6 · juriu: butonul din poartă e opac (nu se vede drumul prin el), subtitlul lizibil */
@media (max-width: 767.98px) {
  .nvh-origins__go { background: linear-gradient(rgba(var(--nv-raised-rgb), .98), rgba(var(--nv-bg-rgb), .98)); }
  .nvh-origins__go small, .nvh-origins__sub { color: var(--nv-acc-hi); opacity: 1; }
}

/* ---------- Runda 7: „Sari peste ↓” (discret; duce la „Două servicii”) ---------- */
.nvh-skip {
  position: absolute; z-index: 8; right: max(14px, env(safe-area-inset-right, 0px)); bottom: 18px;
  display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; min-width: 44px; padding: 0 .85rem;
  border-radius: 999px; font: 500 .82rem/1 var(--font-body); letter-spacing: .02em; color: var(--nv-tx2);
  background: rgba(var(--nv-bg-rgb), .42); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  opacity: .82; transition: opacity .25s ease, color .25s ease;
}
.nvh-skip:hover, .nvh-skip:focus-visible { opacity: 1; color: var(--nv-tx); }
.nvh-skip:focus-visible { outline: 2px solid var(--nv-acc-hi); outline-offset: 3px; }
.nvh-skip i { font-style: normal; display: inline-block; animation: nvh-skip-b 2.4s ease-in-out infinite; }
@keyframes nvh-skip-b { 0%, 100% { transform: none; } 50% { transform: translateY(2px); } }
@media (prefers-reduced-motion: reduce) { .nvh-skip i { animation: none; } }
@media (max-width: 1023.98px) { .nvh-skip { bottom: calc(var(--nova-bar-h, 64px) + env(safe-area-inset-bottom, 0px) + 14px); } }
html:not(.nvh-js) .nvh-skip, .nvh--scurt .nvh-skip { display: none; }

/* ---------- Runda 7: pe primul ecran (PC) un singur buton principal: „Cere ofertă” din hero ----------
   „Cere ofertă” din antet e contur cât timp ești sus pe prima pagină și se aprinde după prima derulare;
   oferta de sezon e un rând de text (nu mai arată ca un buton). Origins: pastila din antet + butonul din poartă. */
@media (min-width: 769px) {
  #navbar:not(.navbar-scrolled):not(.scrolled) .nav-cta,
  #navbar:not(.navbar-scrolled):not(.scrolled) .nav-cta:hover {
    background: transparent; color: var(--nv-tx) !important;
    box-shadow: inset 0 0 0 1.5px rgba(var(--nv-acc-rgb), .55);
  }
  .nav-cta { transition: transform var(--transition-normal), box-shadow .35s ease, background-color .35s ease, color .35s ease; }
  .nvh-offer__a, .nvh-offer__a:hover { padding: 0; border-radius: 0; background: none; box-shadow: none; }
  .nvh-offer__a:hover .nvh-offer__what { text-decoration: underline; text-underline-offset: 3px; }
}
/* Runda 7: pe PC, cât e bannerul de cookie-uri în colțul din stânga jos, „Derulează” stă la dreapta lui */
@media (min-width: 769px) { html.nv-cookie .nvh-hint { left: max(356px, clamp(24px, 6.2vw, 112px)); } }
