/* =============================================================
   NovaWebDesign — intrările spre NOVA Origins (pe toate paginile publice)
   Perechea JS: js/origins.js (adresa ORIGINS_URL, funcția de deschidere și panoul „în curând” sunt acolo).

   Aceeași iconiță a porții (arcadă cu lumină) și aceeași strălucire discretă peste tot:
   - .nav-origins   butonul din antet (în locul vechiului „Descoperă exemplul”)
   - .nvo-menu      cardul mare din meniul de pe telefon (primul element)
   - .nvo-band      banda cinematografică de pe prima pagină (clip în buclă, pornește doar în ecran)
   - .nvo-foot      blocul din subsol, deasupra linkurilor
   - .nvo-card      cardul din /showcase, /mentenanta și 404
   - .nvo-dlg       panoul „NOVA Origins se deschide în curând”
   Doar culori din variabilele temei; strălucirea respiră din opacitate (fără filtre); mișcare redusă → static.
   ============================================================= */
:root { --nvo-img: url(/img/portal/lume-nova.webp); }
html[data-sezon="halloween"] { --nvo-img: url(/img/portal/lume-halloween.webp); }

/* ---------- iconița porții + strălucirea ---------- */
.nvo-ico { position: relative; display: inline-block; flex: none; width: 20px; height: 24px; }
.nvo-ico svg { position: relative; z-index: 1; display: block; width: 100%; height: 100%; overflow: visible; }
.nvo-ic__in { fill: rgba(var(--nv-ember-rgb), .92); }
.nvo-ic__arch { fill: none; stroke: var(--nv-acc-hi); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nvo-glow {
  position: absolute; left: 50%; top: 50%; width: 170%; height: 150%;
  margin: -75% 0 0 -85%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(var(--nv-ember-rgb), .65), rgba(var(--nv-glow-rgb), .22) 58%, transparent);
  opacity: .5;
  pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
  .nvo-glow { animation: nvo-breathe 3.2s ease-in-out infinite; }
  .nvo-ic__in { animation: nvo-lamp 3.2s ease-in-out infinite; }
}
@keyframes nvo-breathe { 0%, 100% { opacity: .28; } 50% { opacity: .9; } }
@keyframes nvo-lamp { 0%, 100% { opacity: .6; } 50% { opacity: 1; } }

/* ---------- butonul din antet ---------- */
.nav-origins {
  position: relative;
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  margin: 0 auto 0 14px;
  padding: 0 14px 0 11px;
  border: 1px solid transparent;
  border-radius: 999px;
  font: 600 13px/1 var(--font-body);
  letter-spacing: .01em;
  color: var(--nv-tx);
  text-decoration: none;
  white-space: nowrap;
  isolation: isolate;
  background:
    linear-gradient(rgba(var(--nv-raised-rgb), .96), rgba(var(--nv-raised-rgb), .96)) padding-box,
    linear-gradient(135deg, var(--nv-acc-hi), var(--nv-acc) 55%, var(--nv-ember, var(--nv-acc))) border-box;
  box-shadow: 0 6px 22px -10px rgba(var(--nv-glow-rgb), .7);
  transition: transform .25s ease, box-shadow .25s ease;
}
.nav-origins::before { content: ''; position: absolute; inset: -6px -4px; }           /* zonă de atingere mai mare */
.nav-origins:hover { transform: translateY(-1px); box-shadow: 0 10px 28px -10px rgba(var(--nv-glow-rgb), .9); }
.nav-origins:focus-visible { outline: 2px solid var(--nv-acc-hi); outline-offset: 3px; }
.nav-origins .nvo-ico { width: 18px; height: 22px; }
@media (min-width: 1024px) and (max-width: 1279.98px) { .nav-origins { margin-left: 10px; padding: 0 12px 0 10px; font-size: 12.5px; } }
@media (max-width: 1023.98px) { .nav-origins { min-height: 36px; margin-left: 10px; font-size: 12.5px; } }
@media (max-width: 359.98px) { .nav-origins { font-size: 11.5px; padding: 0 10px 0 8px; gap: 6px; margin-left: 6px; } }

/* PC: pastila Origins, mai vizibilă (puțin mai mare, cu strălucirea porții) */
@media (min-width: 1024px) {
  .nav-origins {
    min-height: 44px; padding: 0 17px 0 13px; gap: 10px; font-size: 14px; font-weight: 700;
    box-shadow: 0 0 0 1px rgba(var(--nv-acc-hi-rgb), .25), 0 8px 26px -8px rgba(var(--nv-glow-rgb), .9), 0 0 30px -6px rgba(var(--nv-glow-rgb), .55);
  }
  .nav-origins .nvo-ico { width: 22px; height: 27px; }
  .nav-origins:hover { box-shadow: 0 0 0 1px rgba(var(--nv-acc-hi-rgb), .45), 0 12px 32px -8px rgba(var(--nv-glow-rgb), 1), 0 0 38px -4px rgba(var(--nv-glow-rgb), .75); }
}

/* ---------- antetul pe PC: „Acasă” cu submeniu (secțiunile primei pagini) ---------- */
.nav-dd { position: relative; display: inline-flex; align-items: center; }
.nav-dd__btn {
  display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; cursor: pointer;
  font: inherit; color: inherit; letter-spacing: inherit;
}
.nav-links .nav-dd__btn { font-size: inherit; font-weight: inherit; color: var(--nv-tx2, inherit); transition: color .2s ease; }
.nav-links .nav-dd__btn:hover, .nav-dd.is-open .nav-dd__btn { color: var(--nv-tx, #fff); }
.nav-dd__btn svg { transition: transform .25s ease; }
.nav-dd.is-open .nav-dd__btn svg { transform: rotate(180deg); }
.nav-dd__lnk { margin-right: 2px; }
/* regulile vechi care scot ancorele #hero / #proces / #incredere / #faq din rândul de sus nu ating „Acasă” și submeniul (exceptate) */
.navbar .nav-links .nav-dd__lnk { display: inline !important; }
.navbar .nav-links .nav-dd__menu a { display: block !important; }
.nav-links .nav-dd__caret { padding: 8px 5px; margin-left: -2px; }
.nav-dd__btn:focus-visible { outline: 2px solid var(--nv-acc-hi); outline-offset: 4px; border-radius: 6px; }
.nav-dd::after { content: ''; position: absolute; left: -12px; right: -12px; top: 100%; height: 14px; }   /* puntea: mouse-ul nu pierde meniul */
.nav-dd__menu {
  position: absolute; left: 50%; top: calc(100% + 12px); z-index: 20;
  display: grid; gap: 2px; min-width: 190px; padding: 8px;
  border-radius: 16px; background: rgba(var(--nv-raised-rgb), .98);
  box-shadow: inset 0 0 0 1px rgba(var(--nv-tx-rgb), .09), 0 24px 50px -20px rgba(0, 0, 0, .9);
  opacity: 0; visibility: hidden; transform: translate(-50%, 6px);
  transition: opacity .2s ease, transform .25s cubic-bezier(.16, 1, .3, 1), visibility 0s linear .25s;
}
.nav-dd:hover .nav-dd__menu, .nav-dd:focus-within .nav-dd__menu, .nav-dd.is-open .nav-dd__menu {
  opacity: 1; visibility: visible; transform: translate(-50%, 0); transition-delay: 0s;
}
.nav-links .nav-dd__menu a { display: block; padding: 9px 12px; border-radius: 10px; white-space: nowrap; color: var(--nv-tx2); font-size: .9rem; }
.nav-links .nav-dd__menu a::after { display: none; }
.nav-links .nav-dd__menu a:hover, .nav-links .nav-dd__menu a:focus-visible { background: rgba(var(--nv-acc-rgb), .14); color: var(--nv-tx); }
@media (prefers-reduced-motion: reduce) { .nav-dd__menu, .nav-dd__btn svg { transition: none; } }

/* ---------- cardul mare din meniu (telefon) ---------- */
.nvo-menu {
  position: relative;
  display: block;
  margin: 0 0 14px;
  border-radius: 20px;
  overflow: hidden;
  isolation: isolate;
  color: var(--nv-tx);
  text-decoration: none;
  background: var(--nvo-img) center 55% / cover no-repeat, var(--nv-card);
  box-shadow: inset 0 0 0 1px rgba(var(--nv-acc-rgb), .5), 0 18px 40px -22px rgba(0, 0, 0, .9), 0 0 38px -16px rgba(var(--nv-glow-rgb), .65);
}
.nvo-menu::before {                      /* scrim: textul rămâne lizibil peste imagine */
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(95deg, rgba(var(--nv-bg-rgb), .94) 0, rgba(var(--nv-bg-rgb), .8) 52%, rgba(var(--nv-bg-rgb), .3) 100%);
}
.nvo-menu__body { display: grid; gap: 4px; padding: 14px 16px 14px; max-width: 78%; }
.nvo-menu__kick { display: inline-flex; align-items: center; gap: 8px; font: 700 .68rem/1.2 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--nv-acc-hi); }
.nvo-menu__t { font: 560 1.45rem/1.1 var(--font-display); letter-spacing: -.012em; }
.nvo-menu__s { font: 400 .86rem/1.4 var(--font-body); color: var(--nv-tx2); }
.nvo-menu__go {
  justify-self: start; margin-top: 6px; display: inline-flex; align-items: center; gap: 8px;
  min-height: 40px; padding: 0 16px; border-radius: 999px;
  font: 700 .9rem/1 var(--font-body); color: var(--nv-on-acc); background: var(--nv-btn);
}
.nvo-menu:focus-visible { outline: 2px solid var(--nv-acc-hi); outline-offset: 3px; }

/* ---------- banda cinematografică (prima pagină) ---------- */
.nvo-band {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  align-items: center;
  min-height: clamp(380px, 56svh, 560px);
  padding: clamp(48px, 8svh, 88px) 0;
  background: var(--nvo-img) 62% 40% / cover no-repeat, var(--nv-bg);
  border-block: 1px solid rgba(var(--nv-acc-rgb), .22);
}
.nvo-band__video {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%;
  object-fit: cover; object-position: 62% 38%;
  opacity: 0; transition: opacity .8s ease;
  pointer-events: none;
}
.nvo-band__video.is-on { opacity: 1; }
.nvo-band::before {                      /* scrim: titlul se citește pe orice cadru al clipului */
  content: ''; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(var(--nv-bg-rgb), .94) 0, rgba(var(--nv-bg-rgb), .78) 38%, rgba(var(--nv-bg-rgb), .18) 78%, rgba(var(--nv-bg-rgb), .05) 100%),
    linear-gradient(180deg, rgba(var(--nv-bg-rgb), .6), transparent 22%, transparent 72%, rgba(var(--nv-bg-rgb), .75));
}
.nvo-band__in { width: min(1180px, 100% - 2 * clamp(20px, 5vw, 64px)); margin-inline: auto; }
.nvo-band__copy { max-width: 33rem; }
.nvo-band__kick { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 .9rem; font: 700 .74rem/1.2 var(--font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--nv-acc-hi); }
.nvo-band__t { margin: 0 0 .8rem; font: 540 clamp(2rem, 5.6vw, 3.6rem)/1.05 var(--font-display); letter-spacing: -.02em; color: var(--nv-tx); text-wrap: balance; }
.nvo-band__s { margin: 0 0 1.5rem; max-width: 28em; font: 400 clamp(1rem, 1.5vw, 1.15rem)/1.55 var(--font-body); color: var(--nv-tx2); }
.nvo-btn {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center; gap: .7rem;
  min-height: 56px; padding: 0 1.7rem 0 1.4rem;
  border: 0; border-radius: 999px;
  font: 700 1.02rem/1 var(--font-body);
  color: var(--nv-on-acc); background: var(--nv-btn);
  text-decoration: none; cursor: pointer; isolation: isolate;
  box-shadow: 0 16px 40px -16px rgba(var(--nv-glow-rgb), .85), 0 0 0 1px rgba(var(--nv-acc-hi-rgb), .4);
  transition: transform .3s var(--nv-ease, ease), background-color .25s ease, box-shadow .3s ease;
}
.nvo-btn:hover { background: var(--nv-btn-hi); transform: translateY(-2px); }
.nvo-btn:focus-visible { outline: 2px solid var(--nv-acc-hi); outline-offset: 4px; }
.nvo-btn .nvo-ic__arch { stroke: currentColor; }
.nvo-btn .nvo-ic__in { fill: currentColor; opacity: .85; }
.nvo-btn .nvo-glow { display: none; }
@media (max-width: 760px) {
  .nvo-band { min-height: 0; padding: 56px 0 60px; background-position: 70% 30%; }
  .nvo-band::before { background: linear-gradient(180deg, rgba(var(--nv-bg-rgb), .82), rgba(var(--nv-bg-rgb), .72) 40%, rgba(var(--nv-bg-rgb), .94)); }
  .nvo-band__video { object-position: 50% 30%; }
  .nvo-band__copy { max-width: none; text-align: center; }
  .nvo-band__s { margin-inline: auto; }
  .nvo-band .nvo-btn { width: 100%; max-width: 360px; }
}

/* ---------- blocul din subsol ---------- */
.nvo-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 18px 28px; flex-wrap: wrap;
  margin: 0 0 clamp(28px, 4vw, 44px);
  padding: 18px clamp(18px, 3vw, 28px);
  border-radius: 22px;
  background:
    radial-gradient(60% 140% at 0% 50%, rgba(var(--nv-glow-rgb), .2), transparent 70%),
    rgba(var(--nv-raised-rgb), .7);
  box-shadow: inset 0 0 0 1px rgba(var(--nv-acc-rgb), .4);
}
.nvo-foot__l { display: flex; align-items: center; gap: 14px; min-width: 0; }
.nvo-foot__l .nvo-ico { width: 26px; height: 31px; }
.nvo-foot__t { margin: 0; font: 560 1.2rem/1.2 var(--font-display); color: var(--nv-tx); }
.nvo-foot__t span { color: var(--nv-acc-hi); font-family: var(--font-body); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; display: block; margin-bottom: 3px; }
.nvo-foot__s { margin: 3px 0 0; font: 400 .9rem/1.4 var(--font-body); color: var(--nv-tx2); }
.nvo-foot .nvo-btn { min-height: 48px; font-size: .95rem; padding: 0 1.4rem; }
@media (max-width: 560px) { .nvo-foot .nvo-btn { width: 100%; } }

/* ---------- cardul din /showcase, /mentenanta și 404 ---------- */
.nvo-card {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; align-items: center; justify-content: space-between; gap: 20px 32px; flex-wrap: wrap;
  width: min(1100px, 100% - 2 * clamp(20px, 4vw, 48px));
  margin: clamp(20px, 3vw, 36px) auto;
  padding: clamp(22px, 3.4vw, 36px) clamp(20px, 3.4vw, 40px);
  border-radius: 26px;
  color: var(--nv-tx);
  background: var(--nvo-img) 70% 40% / cover no-repeat, var(--nv-card);
  box-shadow: inset 0 0 0 1px rgba(var(--nv-acc-rgb), .45), 0 30px 70px -36px rgba(0, 0, 0, .9), 0 0 60px -30px rgba(var(--nv-glow-rgb), .55);
}
.nvo-card::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(var(--nv-bg-rgb), .94), rgba(var(--nv-bg-rgb), .74) 55%, rgba(var(--nv-bg-rgb), .3));
}
.nvo-card__copy { max-width: 34rem; }
@media (max-width: 600px) {
  .nvo-card::before { background: linear-gradient(180deg, rgba(var(--nv-bg-rgb), .93), rgba(var(--nv-bg-rgb), .88) 60%, rgba(var(--nv-bg-rgb), .94)); }
}
.nvo-card__kick { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 .5rem; font: 700 .72rem/1.2 var(--font-body); letter-spacing: .15em; text-transform: uppercase; color: var(--nv-acc-hi); }
.nvo-card__t { margin: 0 0 .4rem; font: 560 clamp(1.5rem, 3.4vw, 2.1rem)/1.12 var(--font-display); letter-spacing: -.015em; }
.nvo-card__s { margin: 0; font: 400 1rem/1.5 var(--font-body); color: var(--nv-tx2); }
@media (max-width: 600px) { .nvo-card .nvo-btn { width: 100%; } }
/* 404: card centrat sub mesaj */
.nvo-card--404 { margin-top: clamp(22px, 4vw, 40px); }

/* ---------- panoul „NOVA Origins se deschide în curând” ---------- */
.nvo-dlg {
  position: fixed; inset: 0; z-index: 100001;
  display: grid; place-items: center; padding: 20px;
  background: rgba(var(--nv-bg-rgb), .55);
  opacity: 0; transition: opacity .45s ease;
}
.nvo-dlg[hidden] { display: none; }
.nvo-dlg.is-open { opacity: 1; }
.nvo-dlg__card {
  position: relative; width: min(460px, 100%); max-height: calc(100svh - 40px); overflow: auto;
  padding: 0 0 1.6rem; border-radius: 26px; text-align: center; color: var(--nv-tx); background: var(--nv-card);
  box-shadow: inset 0 0 0 1px rgba(var(--nv-acc-rgb), .3), 0 40px 90px -30px rgba(0, 0, 0, .9), 0 0 80px -30px rgba(var(--nv-glow-rgb), .5);
  transform: translate3d(0, 18px, 0) scale(.97);
  transition: transform .6s cubic-bezier(.16, 1, .3, 1);
}
.nvo-dlg.is-open .nvo-dlg__card { transform: none; }
.nvo-dlg__img { position: relative; height: 190px; margin-bottom: 1.3rem; border-radius: 26px 26px 0 0; background: var(--nvo-img) center 70% / cover no-repeat; }
.nvo-dlg__img::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(180deg, transparent 45%, var(--nv-card)); }
.nvo-dlg__tag { margin: 0 0 .5rem; font: 700 .72rem/1.2 var(--font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--nv-acc-hi); }
.nvo-dlg h2, .nvo-dlg__t { margin: 0 1.6rem .8rem; font: 560 clamp(1.55rem, 5.4vw, 1.95rem)/1.15 var(--font-display); letter-spacing: -.015em; color: var(--nv-tx); }
.nvo-dlg p.nvo-dlg__txt { margin: 0 1.8rem .35rem; font: 400 1rem/1.55 var(--font-body); color: var(--nv-tx2); }
.nvo-dlg__nw { white-space: nowrap; }
.nvo-dlg__back {
  display: inline-flex; align-items: center; gap: .5rem; min-height: 50px; margin-top: 1.2rem; padding: 0 1.5rem;
  border: 0; border-radius: 999px; font: 600 1rem/1 var(--font-body); color: var(--nv-on-acc); background: var(--nv-btn); cursor: pointer;
}
.nvo-dlg__back:hover { background: var(--nv-btn-hi); }
.nvo-dlg__back:focus-visible { outline: 2px solid var(--nv-acc-hi); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  .nvo-dlg, .nvo-dlg__card, .nvo-btn, .nav-origins { transition: none; }
  .nvo-band__video { display: none; }
}
@media print { .nav-origins, .nvo-menu, .nvo-band, .nvo-foot, .nvo-card, .nvo-dlg { display: none !important; } }

/* telefon: cât butonul mare din poartă (hero) e pe ecran, pastila din antet se retrage lin (să nu fie două); revine după poveste */
@media (max-width: 767.98px) {
  .nav-origins { transition: opacity .4s ease, transform .4s ease, box-shadow .25s ease; }
  html.nvh-orig-on .nav-origins { opacity: 0; transform: scale(.9); pointer-events: none; }
}

/* tema Nova: interiorul porții din iconiță în verde (nu bej) */
html:not([data-sezon="halloween"]) .nvo-ic__in, html:not([data-sezon="halloween"]) .nvh-ic__in { fill: rgba(var(--nv-acc-hi-rgb), .85); }

/* ---------- Runda 7: plecarea spre NOVA Origins (subdomeniu) — o lumină caldă din centru, apoi navigarea ---------- */
.nvo-go {
  position: fixed; inset: 0; z-index: 2147483000; pointer-events: none; opacity: 0;
  background:
    radial-gradient(60vmax 60vmax at 50% 55%, rgba(var(--nv-acc-hi-rgb, 255, 196, 120), .55), rgba(var(--nv-acc-rgb), .18) 38%, rgba(var(--nv-bg-rgb), 0) 70%),
    rgba(var(--nv-bg-rgb), .96);
  transform: scale(1.06);
  transition: opacity .34s cubic-bezier(.4, 0, .2, 1), transform .5s cubic-bezier(.16, 1, .3, 1);
}
.nvo-go.is-on { opacity: 1; transform: none; }
/* Runda 7 (juriu): pe 404 butonul din card e centrat, ca titlul și textul */
.nvo-card--404 .nvo-btn { align-self: center; margin-left: auto; margin-right: auto; }
