/* HERO 2026 (port v2 „Linia") — totul prefixat .hv-, izolat; revert = scoate link+script din index.php + secțiunile hv */

@font-face { font-family:'Inter'; font-weight:400; font-style:normal; font-display:swap; src:url('../fonts-2026/Inter-Regular.woff2') format('woff2'), url('../fonts/Inter-Regular.ttf') format('truetype'); }
@font-face { font-family:'Inter'; font-weight:500; font-style:normal; font-display:swap; src:url('../fonts-2026/Inter-Medium.woff2') format('woff2'), url('../fonts/Inter-Medium.ttf') format('truetype'); }
@font-face { font-family:'Inter'; font-weight:600; font-style:normal; font-display:swap; src:url('../fonts-2026/Inter-SemiBold.woff2') format('woff2'), url('../fonts/Inter-SemiBold.ttf') format('truetype'); }
@font-face { font-family:'Inter'; font-weight:700; font-style:normal; font-display:swap; src:url('../fonts-2026/Inter-Bold.woff2') format('woff2'), url('../fonts/Inter-Bold.ttf') format('truetype'); }

.hv-hero, .hv-apps, .hv-news {
  /* ---- tokens warm-dark, împărțite de hero + aplicații + noutăți ---- */
  --hv-bg0: #0e0d0b;
  --hv-bg1: #16140f;
  --hv-panel: #1a1815;
  --hv-surface: #22201b;
  --hv-ink: #e8e4d9;
  --hv-ink2: #a8a49a;
  --hv-ink3: #7a7770;
  --hv-hair: rgba(255,255,255,.07);
  --hv-hair-strong: #44403a;
  --hv-dot: rgba(255,255,255,.055);
  --hv-accent: #7aaad4;
  --hv-accent-hover: #8ab8e0;
  --hv-accent-ink: #0e0d0b;
  --hv-accent-soft: rgba(122,170,212,.10);
  --hv-ok: #6aaa6a;
  --hv-glow-a: rgba(122,170,212,.13);
  --hv-glow-b: rgba(212,168,85,.07);
  --hv-shadow-win: 0 40px 90px -30px rgba(0,0,0,.6);
  --hv-f-sans: 'Inter', system-ui, -apple-system, sans-serif;
  --hv-f-mono: ui-monospace, 'Cascadia Mono', 'JetBrains Mono', Menlo, Consolas, monospace;
  --hv-ease-a: cubic-bezier(0.16, 1, 0.3, 1);
  --hv-t-fast: 150ms;
  --hv-rise-dur: 900ms;
  --hv-rise-stagger: 100ms;

  background: var(--hv-bg0);
  color: var(--hv-ink);
  font-family: var(--hv-f-sans);
  /* mărimile sunt în px, NU rem: bootstrap-ul site-ului setează html{font-size:10px},
     deci orice rem ar ieși la 62.5% din intenție (bugul de proporții prins 08-18) */
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.hv-hero {
  position: relative;
  overflow: clip;
  /* navbar-ul fix al site-ului plutește deasupra — îi lăsăm loc */
  padding-top: clamp(122px, 14vw, 170px);
  padding-bottom: clamp(10px, 2vw, 26px);
}
.hv-hero *, .hv-hero *::before, .hv-hero *::after,
.hv-apps *, .hv-apps *::before, .hv-apps *::after,
.hv-news *, .hv-news *::before, .hv-news *::after { box-sizing: border-box; }
.hv-hero ::selection, .hv-apps ::selection, .hv-news ::selection { background: var(--hv-accent); color: var(--hv-accent-ink); }

/* aurora „linear-style" în spatele titlului — un singur halou rece + ecou cald, accentuează mesajul */
.hv-hero::after {
  content: ''; position: absolute; z-index: 1; pointer-events: none;
  left: 50%; top: clamp(20px, 5vw, 70px); transform: translateX(-50%);
  width: min(1150px, 98vw); height: 560px;
  background:
    radial-gradient(ellipse 46% 40% at 50% 30%, rgba(122,170,212,.17), transparent 68%),
    radial-gradient(ellipse 26% 26% at 50% 58%, rgba(212,168,85,.05), transparent 72%);
}

/* dot-grid șoaptă în spatele titlului, estompat radial */
.hv-hero::before {
  content: ''; position: absolute; inset: 0 0 30%; z-index: 0; pointer-events: none;
  background-image: radial-gradient(circle, var(--hv-dot) 1.2px, transparent 1.2px);
  background-size: 24px 24px;
  -webkit-mask-image: radial-gradient(58% 52% at 50% 32%, black 30%, transparent 100%);
          mask: radial-gradient(58% 52% at 50% 32%, black 30%, transparent 100%);
}

/* fundalul cartografic al site-ului (inc/hero-map.svg, generat de build/generate-hero-map.js) — tehnica login-ului, compoziție proprie */
.hv-map {
  /* FIX pe viewport (cerința 08-19): nu se mișcă la scroll și acoperă ecranul până jos */
  position: fixed; top: 0; left: 0; width: 100%; height: 100vh;
  pointer-events: none; z-index: 0;
  opacity: 0; animation: hv-map-in 2s cubic-bezier(.2, .8, .2, 1) 700ms forwards; /* [cc 2026-09-30] fundalul vine DUPA text */
}
@keyframes hv-map-in { to { opacity: 1; } }
.hv-map-vignette {
  position: fixed; top: 0; left: 0; width: 100%; height: 100vh;
  pointer-events: none; z-index: 0;
  background:
    radial-gradient(ellipse 60% 26% at 50% 67%, rgba(122,170,212,.09), transparent 70%),
    radial-gradient(ellipse 30% 22% at 56% 76%, rgba(212,168,85,.06), transparent 72%);
}
/* lumea se rotește lent (du-te-vino subtil în fereastra sferei) */
.hv-hero .w-world { animation: hv-world-drift 85s ease-in-out infinite alternate; }
@keyframes hv-world-drift { from { transform: translateX(9px); } to { transform: translateX(-17px); } }
.hv-hero .w-sphere { fill: rgba(96,148,192,.1); stroke: none; }
.hv-hero .w-grat { fill: none; stroke: rgba(122,170,212,.14); stroke-width: .5; }
.hv-hero .w-land { fill: rgba(232,228,217,.12); stroke: none; }
.hv-hero .w-rim { fill: none; stroke: rgba(122,170,212,.55); stroke-width: 1.2; }
.hv-hero .w-rim-glow { fill: none; stroke: rgba(122,170,212,.3); stroke-width: 7; filter: blur(6px); }
.hv-hero .w-borders {
  fill: none; stroke: rgba(232,228,217,.62); stroke-width: .6;
  stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke;
}
.hv-hero .w-ro { fill: rgba(122,170,212,.16); stroke: rgba(122,170,212,.85); stroke-width: 1; vector-effect: non-scaling-stroke; }
.hv-hero .wr {
  fill: none; stroke: rgba(122,170,212,.4); stroke-width: 1.2;
  stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 3 9;
  filter: drop-shadow(0 0 3px rgba(122,170,212,.3));
  animation: hv-wr-drift 40s linear infinite;
}
.hv-hero .wr-hot {
  stroke: rgba(212,168,85,.75); stroke-width: 1.6;
  filter: drop-shadow(0 0 5px rgba(212,168,85,.5));
}
@keyframes hv-wr-drift { to { stroke-dashoffset: -300; } }
.hv-hero .wp { fill: rgba(122,170,212,.9); filter: drop-shadow(0 0 4px rgba(122,170,212,.6)); }
.hv-hero .wp-hot { fill: #e9c887; filter: drop-shadow(0 0 5px rgba(212,168,85,.8)); }
.hv-hero .wc { fill: rgba(208,224,240,.9); }
.hv-hero .wc-hot { fill: #e9c887; filter: drop-shadow(0 0 6px rgba(212,168,85,.7)); }
.hv-hero .wc-halo { fill: none; stroke: rgba(170,195,220,.25); stroke-width: 1; }
.hv-hero .wc-halo-hot { stroke: rgba(212,168,85,.4); }
.hv-hero .wpulse { fill: none; stroke: rgba(212,168,85,.55); stroke-width: 1.2; opacity: 0; animation: hv-wpulse 5.2s ease-out infinite; }
.hv-hero .w-hq-dot { fill: #d4a855; filter: drop-shadow(0 0 9px rgba(212,168,85,.8)); }
.hv-hero .w-hq-pulse { fill: none; stroke: rgba(212,168,85,.6); stroke-width: 1.3; opacity: 0; animation: hv-wpulse 3.6s ease-out infinite; }
@keyframes hv-wpulse {
  0% { r: 6; opacity: .7; }
  80%, 100% { r: 26; opacity: 0; }
}
.hv-hero .w-hq-label {
  font-family: var(--hv-f-mono); font-size: 11px; font-weight: 500;
  letter-spacing: .14em; fill: rgba(232,228,217,.7);
}

/* tema deschisă — aceeași planetă pe slate: albastru profund dominant, amber închis pe coridorul cald */
html.hv-light .hv-hero .w-sphere { fill: rgba(31,127,176,.05); }
html.hv-light .hv-hero .w-rim { stroke: rgba(31,127,176,.5); }
html.hv-light .hv-hero .w-rim-glow { stroke: rgba(31,127,176,.22); }
html.hv-light .hv-hero .w-borders { stroke: rgba(29,39,51,.42); }
html.hv-light .hv-hero .w-ro { fill: rgba(31,127,176,.12); stroke: rgba(31,127,176,.7); }
html.hv-light .hv-hero .wr { stroke: rgba(31,127,176,.42); filter: drop-shadow(0 0 3px rgba(31,127,176,.22)); }
html.hv-light .hv-hero .wr-hot { stroke: rgba(158,94,22,.7); filter: drop-shadow(0 0 4px rgba(158,94,22,.35)); }
html.hv-light .hv-hero .wp { fill: rgba(31,127,176,.85); filter: none; }
html.hv-light .hv-hero .wp-hot { fill: #9e5e16; filter: none; }
html.hv-light .hv-hero .wc { fill: rgba(29,39,51,.45); }
html.hv-light .hv-hero .wc-hot { fill: #9e5e16; filter: none; }
html.hv-light .hv-hero .wpulse, html.hv-light .hv-hero .w-hq-pulse { stroke: rgba(158,94,22,.5); }
html.hv-light .hv-hero .w-hq-dot { fill: #9e5e16; filter: drop-shadow(0 0 6px rgba(158,94,22,.4)); }
html.hv-light .hv-hero .w-hq-label { fill: rgba(29,39,51,.65); }
html.hv-light .hv-map-vignette {
  background:
    radial-gradient(ellipse 46% 42% at 74% 60%, rgba(158,94,22,.04), transparent 70%),
    radial-gradient(ellipse 85% 55% at 50% 100%, rgba(31,127,176,.05), transparent 68%);
}
@media (prefers-reduced-motion: reduce) {
  .hv-hero .hv-map *, .hv-hero .wpulse, .hv-hero .w-hq-pulse, .hv-hero .w-world { animation: none !important; }
  .hv-hero .hv-map { opacity: 1; }
  .hv-hero .w-particles { display: none; }
}

.hv-wrap { max-width: 1128px; margin-inline: auto; padding-inline: clamp(20px, 4vw, 32px); }
.hv-inner { text-align: center; display: grid; justify-items: center; gap: 22px; position: relative; z-index: 2; }

.hv-eyebrow {
  font-family: var(--hv-f-mono);
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--hv-ink2);
  display: inline-flex; align-items: center; gap: 10px;
}
.hv-eyebrow::before { content: ''; width: 18px; height: 1px; background: var(--hv-accent); flex: 0 0 auto; }

.hv-hero h1 {
  margin: 0;
  font-family: var(--hv-f-sans);
  font-weight: 600;
  font-size: clamp(41px, 5.6vw, 67px);
  line-height: 1.04;
  letter-spacing: -0.026em;
  color: var(--hv-ink);
  text-wrap: balance;
  text-shadow: none;
}
.hv-dot { color: var(--hv-accent); }

.hv-lede {
  margin: 0 auto;
  font-size: 18.5px;
  line-height: 1.62;
  color: var(--hv-ink2);
  max-width: 58ch;
  text-wrap: pretty;
}

/* ---- butoane ---- */
.hv-ctas { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin-top: 8px; }
.hv-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: var(--hv-f-sans); font-size: 15.5px; font-weight: 600; letter-spacing: .002em;
  padding: 13px 22px; border-radius: 9px;
  border: 1px solid transparent; cursor: pointer; white-space: nowrap;
  transition: background-color var(--hv-t-fast) ease, border-color var(--hv-t-fast) ease, color var(--hv-t-fast) ease;
}
.hv-btn, .hv-btn:hover, .hv-btn:focus, .hv-btn:active { text-decoration: none; outline-offset: 3px; }
.hv-btn-solid { background: var(--hv-accent); color: var(--hv-accent-ink); }
.hv-btn-solid:hover, .hv-btn-solid:focus { background: var(--hv-accent-hover); color: var(--hv-accent-ink); }
.hv-btn-ghost { border-color: var(--hv-hair-strong); color: var(--hv-ink); background: transparent; }
.hv-btn-ghost:hover, .hv-btn-ghost:focus { border-color: var(--hv-accent); color: var(--hv-accent); background: transparent; }
.hv-arr { transition: none; }

.hv-proof {
  display: flex; flex-wrap: wrap; gap: 8px 22px; justify-content: center;
  font-family: var(--hv-f-mono); font-size: .75rem; letter-spacing: .06em;
  color: var(--hv-ink2); margin-top: 10px;
}
.hv-proof span { display: inline-flex; align-items: center; gap: 7px; }
.hv-proof i { width: 4px; height: 4px; border-radius: 50%; background: var(--hv-ok); }

/* ---- fereastra aplicației — FĂRĂ transform 3D (rasterizează textul; feedback David 08-08) ---- */
.hv-showcase {
  position: relative; z-index: 1;
  /* loc de respirat sub linia de dovezi — globul cu rutele trăiește în banda asta */
  margin-top: clamp(120px, 13vw, 190px);
  margin-inline: auto;
  padding-inline: clamp(20px, 4vw, 32px);
  /* suprafața ferestrei = EXACT ca pe linear.app (măsurat pe screenshot David 08-19:
     1314px lățime la 1863vw = 70.5vw, raport 1314/716 = 1.835) */
  max-width: min(1460px, max(calc(70.5vw + 64px), 1180px));
}
@media (max-width: 1200px) { .hv-showcase { max-width: 96vw; } }
.hv-glow {
  position: absolute; inset: -8% -12% -20%; z-index: 0; pointer-events: none;
  background:
    radial-gradient(46% 42% at 50% 38%, var(--hv-glow-a), transparent 70%),
    radial-gradient(30% 30% at 68% 30%, var(--hv-glow-b), transparent 70%);
  filter: blur(20px);
}
.hv-window {
  position: relative; z-index: 1; margin: 0;
  border: 1px solid var(--hv-hair-strong);
  border-radius: 14px;
  background: var(--hv-panel);
  box-shadow: var(--hv-shadow-win);
  overflow: hidden;
}
/* aplicația se așază SINGURĂ pe lățimea vizibilă; mărirea prin zoom
   (re-layout = text nativ, crisp), NU transform scale (rasterizează) */
.hv-app { aspect-ratio: 1314 / 716; overflow: hidden; background: var(--hv-bg1); position: relative; }
.hv-app iframe { width: 100%; height: 100%; border: 0; display: block; }
/* [cc 2026-09-30] poza versiunii 34 stă peste iframe până se încarcă demo-ul (la intenție) */
.hv-app-poster { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity .4s ease; }
.hv-app.hv-app-ready .hv-app-poster { opacity: 0; pointer-events: none; }
.hv-window .hv-app:not(.hv-app-ready) { cursor: default; }
/* [cc 2026-10-01] alb pe alb, negru pe negru: fereastra are tema paginii */
html.hv-light .hv-app-poster-dark, html:not(.hv-light) .hv-app-poster-light { display: none; }

/* [cc 2026-08-28] Rotita trece PRIN fereastra demo, ca peste restul paginii.
   Un iframe inghite wheel-ul: cu cursorul pe demo pagina se misca ~28% din cat ceri
   (masurat live 28.08: 285px din 1000 ceruti; in afara ferestrei 1000/1000). Releul
   postMessage din shell exista, dar are o pauza de 200ms dupa fiecare miscare interna,
   deci pe touchpad (delte mici si dese) mananca majoritatea gesturilor.
   Fix: demo-ul e INERT la pointer pana il ceri printr-un clic -> wheel-ul ajunge direct
   la document = scroll NATIV 1:1, cu inertia de touchpad. Clic = interactiv; iesirea cu
   mouse-ul, Esc, un clic in afara sau o rotita pe care demo-ul n-o poate folosi il elibereaza. */
.hv-app iframe { pointer-events: none; }
.hv-window.hv-live .hv-app iframe { pointer-events: auto; }
.hv-window:not(.hv-live) .hv-app { cursor: pointer; }

.hv-window.hv-live { box-shadow: var(--hv-shadow-win), 0 0 0 1px var(--hv-accent); }

/* [cc 2026-10-01] TELEFON (decizia D1): poza rămâne, peste ea un link real (tab nou, demo pe tot ecranul) cu o pastilă.
   Clasa .hv-tap o pune js/hero-2026.js doar pe ecran îngust / tactil fără hover; pe desktop linkul nu există vizual. */
.hv-app-open { display: none; }
.hv-window.hv-tap .hv-app-open {
  position: absolute; inset: 0; z-index: 3;
  display: flex; align-items: flex-end; justify-content: center;
  padding: 0 12px 12px;
  color: inherit; text-decoration: none;
  touch-action: manipulation;              /* tragerea și zoom-ul cu două degete rămân ale paginii */
  -webkit-tap-highlight-color: transparent;
  background: linear-gradient(to top, rgba(14,13,11,.46), rgba(14,13,11,0) 48%);
}
.hv-window.hv-tap .hv-app-open:hover, .hv-window.hv-tap .hv-app-open:focus { color: inherit; text-decoration: none; outline: none; }
html.hv-light .hv-window.hv-tap .hv-app-open { background: linear-gradient(to top, rgba(29,39,51,.22), rgba(29,39,51,0) 48%); }
.hv-app-pill {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 14px 8px 12px; border-radius: 999px;
  background: var(--hv-accent); color: var(--hv-accent-ink);
  font-family: var(--hv-f-sans); font-size: 13.5px; font-weight: 600; line-height: 1; letter-spacing: .002em; white-space: nowrap;
  box-shadow: 0 8px 20px -6px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.10);
  transition: background-color var(--hv-t-fast) ease, transform var(--hv-t-fast) ease;
}
html.hv-light .hv-app-pill { box-shadow: 0 8px 18px -6px rgba(23,60,90,.45), inset 0 0 0 1px rgba(255,255,255,.14); }
.hv-app-pill svg { width: 14px; height: 14px; flex: 0 0 auto; }
.hv-app-open:active .hv-app-pill { background: var(--hv-accent-hover); transform: scale(.97); }
.hv-app-open:focus-visible .hv-app-pill { outline: 2px solid var(--hv-accent); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .hv-app-pill { transition: none; } }


/* ---- coregrafia de intrare — stările ascunse DOAR sub .hv-js;
        fără JavaScript pagina se vede integral (robustețe + SEO) ---- */
.hv-hero.hv-js .hv-rise {
  opacity: 0; transform: translateY(14px); filter: blur(7px);
  transition:
    opacity var(--hv-rise-dur) var(--hv-ease-a),
    transform var(--hv-rise-dur) var(--hv-ease-a),
    filter var(--hv-rise-dur) var(--hv-ease-a);
  transition-delay: calc(var(--i, 0) * var(--hv-rise-stagger));
}
.hv-hero.hv-js .hv-rise-window { transform: translateY(30px); transition-duration: 950ms; }
.hv-hero.hv-js.hv-loaded .hv-rise,
.hv-hero.hv-js.hv-loaded .hv-rise-window { opacity: 1; transform: none; filter: none; }

@media (prefers-reduced-motion: reduce) {
  .hv-hero .hv-rise, .hv-hero .hv-rise-window {
    opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important;
  }
}

/* [cc 2026-09-30] intrarea „linear”: fără ecran de încărcare; textul urcă din blur imediat ce fonturile sunt gata (plasă 600 ms) */
html.hv-pre:not(.hv-go) .hv-hero .hv-rise { opacity: 0; }
html.hv-pre .hv-hero.hv-js .hv-rise, html.hv-pre .hv-hero.hv-js .hv-rise-window { transition: none; }
html.hv-pre.hv-go .hv-hero .hv-rise {
  animation: hv-rise-in var(--hv-rise-dur) var(--hv-ease-a) both;
  animation-delay: calc(60ms + var(--i, 0) * var(--hv-rise-stagger));
}
html.hv-pre.hv-go .hv-hero .hv-rise-window { animation-name: hv-rise-in-window; animation-duration: 1200ms; }
@keyframes hv-rise-in { from { opacity: 0; transform: translateY(16px); filter: blur(8px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes hv-rise-in-window { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  html.hv-pre .hv-hero .hv-rise { opacity: 1 !important; animation: none !important; }
}

/* ---- responsive ---- */
@media (max-width: 640px) {
  .hv-ctas { width: 100%; }
  .hv-ctas .hv-btn { flex: 1 1 100%; }
  /* pe mobil creasta planetei coboară sub linia de dovezi, să nu se amestece cu textul mic */
  .hv-map, .hv-map-vignette { top: 130px; }
}

/* APLICAȚII MOBILE (port v2) — iPhone real navigabil; fără filter pe .hv-phone (aplatizează preserve-3d) */
.hv-apps { padding-block: clamp(76px, 11vw, 132px); }
.hv-apps-grid {
  max-width: 1128px; margin-inline: auto; padding-inline: clamp(20px, 4vw, 32px);
  display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(32px, 6vw, 72px); align-items: center;
}
.hv-apps-copy { display: grid; gap: 18px; justify-items: start; }
.hv-apps h2 {
  margin: 0; font-family: var(--hv-f-sans); font-weight: 600;
  font-size: clamp(29px, 3.2vw, 38px); line-height: 1.12; letter-spacing: -0.018em;
  color: var(--hv-ink); text-wrap: balance;
}
.hv-apps .hv-lede { margin: 0; }
.hv-apps-list { display: grid; gap: 13px; margin: 6px 0 0; padding: 0; }
.hv-apps-list li { list-style: none; display: flex; gap: 12px; align-items: flex-start; color: var(--hv-ink2); font-size: 16px; line-height: 1.5; }
.hv-apps-list svg { width: 16px; height: 16px; color: var(--hv-accent); flex: 0 0 auto; margin-top: 3px; }
.hv-apps-list b { color: var(--hv-ink); font-weight: 600; }
.hv-store-badges { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.hv-store-badge {
  display: inline-flex; align-items: center; gap: 10px;
  border: 1px solid var(--hv-hair-strong); border-radius: 9px; padding: 10px 16px;
  color: var(--hv-ink); transition: border-color var(--hv-t-fast) ease, background-color var(--hv-t-fast) ease;
}
.hv-store-badge, .hv-store-badge:hover, .hv-store-badge:focus { text-decoration: none; }
.hv-store-badge:hover { border-color: var(--hv-accent); background: var(--hv-accent-soft); color: var(--hv-ink); }
.hv-store-badge svg { width: 19px; height: 19px; }
.hv-store-badge .hv-sb { display: grid; line-height: 1.15; }
.hv-store-badge .hv-sb small { font-family: var(--hv-f-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--hv-ink3); }
.hv-store-badge .hv-sb b { font-size: 14.5px; font-weight: 600; color: var(--hv-ink); }

/* ---- telefonul: bezel real + laterale extrudate + umbră de sol ---- */
.hv-phone-wrap { display: grid; justify-items: center; position: relative; perspective: 1200px;
  /* [cc 2026-08-27] latimea telefonului, o singura sursa: si telefonul si umbra de sol o citesc */
  /* [cc 2026-08-31] David: telefonul la ~70% (era prea mare). 400 -> 280px si 78 -> 55vw,
     ca sa scada proportional si pe mobil, nu doar pe desktop. */
  --ph-w: min(280px, 55vw); }
.hv-phone-wrap::before {
  content: ''; position: absolute; inset: 8% 12%; z-index: 0;
  background: radial-gradient(50% 50% at 50% 50%, var(--hv-glow-a), transparent 75%);
  filter: blur(18px);
}
.hv-phone-wrap::after { /* umbra de sol, ca în pozele de produs Apple */
  content: ''; position: absolute; z-index: 0;
  left: 50%; top: calc(var(--ph-w) / 0.4891 - 8px);
  width: 72%; height: 30px; transform: translateX(-55%);
  background: radial-gradient(50% 50% at 50% 50%, rgba(0,0,0,.4), transparent 72%);
  filter: blur(7px);
}
.hv-phone {
  /* [cc 2026-08-27] mai putin inclinat: la -26deg textul din poza se pierdea */
  /* [cc 2026-08-27] 340 -> 400px: la 340 ecranul avea 298px si poza (600px) cadea la 2.01x -> etichetele mici (PUNCT/ADRESA) ajungeau ~6px. La 400 ecranul e 351px, 1.71x. Coloana grilei are 421.6px, deci incape fara sa miste layout-ul. */
  --ph-ry: -16deg; --ph-rx: 2deg;
  position: relative; z-index: 1;
  width: var(--ph-w); aspect-ratio: 1350 / 2760;
  transform-style: preserve-3d;
  transform: rotateY(var(--ph-ry)) rotateX(var(--ph-rx));
  transition: transform .6s var(--hv-ease-a);
}
/* [cc 2026-08-27] hover = fata la privitor (David: "still angular"); -8deg citea tot inclinat */
.hv-phone:hover { --ph-ry: 0deg; --ph-rx: 0deg; }
.hv-phone-depth {
  position: absolute; inset: 0; width: 100%; height: 100%;
  /* geometria aprobată (0811a): 16 straturi × 2.25px ≈ grosimea reală de 8.25mm */
  transform: translateZ(calc(var(--i) * -2.25px));
  filter: brightness(.55) saturate(.78);
  pointer-events: none; user-select: none; -webkit-user-drag: none;
}
/* șanfrenul prinde lumină lângă fața din față — muchia citește metal, nu cauciuc */
.hv-phone > .hv-phone-depth:nth-child(-n+2) { filter: brightness(.95) saturate(.85); }
.hv-phone-screen {
  position: absolute; left: 5.3333%; top: 2.5%; width: 89.3333%; height: 95%;
  background: #000; overflow: hidden; cursor: pointer;
  /* colțurile ecranului urmează gaura de sticlă a bezel-ului */
  border-radius: 20% / 9.2%;
  transform: translateZ(0.1px);
}
.hv-phone-bezel {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; z-index: 5; display: block;
  user-select: none; -webkit-user-drag: none;
  transform: translateZ(0.1px);
}
.hv-ps {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: top;
  opacity: 0; transition: opacity .28s var(--hv-ease-a);
}
.hv-ps.hv-on { opacity: 1; }
.hv-ps-tap { position: absolute; top: 0; bottom: 0; width: 50%; z-index: 3; }
.hv-ps-tap.hv-l { left: 0; } .hv-ps-tap.hv-r { right: 0; }
.hv-ps-dots { display: flex; gap: 7px; justify-content: center; margin-top: 14px; }
.hv-ps-dots i { width: 7px; height: 7px; border-radius: 50%; background: var(--hv-hair-strong); cursor: pointer; transition: background var(--hv-t-fast), transform var(--hv-t-fast); }
.hv-ps-dots i.hv-on { background: var(--hv-accent); transform: scale(1.25); }
.hv-ps-cap { margin: 10px 0 0; text-align: center; font-size: 13px; color: var(--hv-ink3); min-height: 1.4em; }

/* ---- dezvăluirea la scroll — doar sub .hv-js (no-JS = totul vizibil) ---- */
.hv-apps.hv-js .hv-reveal {
  opacity: 0; transform: translateY(16px);
  transition: opacity .65s var(--hv-ease-a), transform .65s var(--hv-ease-a);
  transition-delay: calc(var(--i, 0) * 70ms);
}
.hv-apps.hv-js .hv-reveal.hv-in { opacity: 1; transform: none; }

@media (max-width: 1024px) {
  .hv-apps-grid { grid-template-columns: 1fr; }
  .hv-phone-wrap { order: -1; }
}
@media (prefers-reduced-motion: reduce) {
  .hv-apps .hv-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .hv-phone { transition: none; }
  .hv-phone:hover { --ph-ry: -16deg; --ph-rx: 2deg; }
}

/* ---- tema deschisă (html.hv-light, paleta v2 „profesional rece") — doar secțiunile hv; nav-ul rămâne închis ---- */
html.hv-light .hv-hero, html.hv-light .hv-apps {
  --hv-bg0: #f5f7f9;
  --hv-bg1: #fafbfc;
  --hv-panel: #ffffff;
  --hv-surface: #ffffff;
  --hv-ink: #1d2733;
  --hv-ink2: #4f5b68;
  --hv-ink3: #7f8b99;
  --hv-hair: rgba(23,32,43,.10);
  --hv-hair-strong: #d6dce4;
  --hv-dot: rgba(23,32,43,.07);
  --hv-accent: #1f7fb0;
  --hv-accent-hover: #186a95;
  --hv-accent-ink: #ffffff;
  --hv-accent-soft: #e9f3fa;
  --hv-ok: #27764c;
  --hv-glow-a: rgba(31,127,176,.10);
  --hv-glow-b: rgba(70,181,224,.08);
  --hv-shadow-win:
    0 0 0 6px rgba(255,255,255,.6),
    0 2px 8px rgba(23,60,90,.05),
    0 8px 24px rgba(23,60,90,.07),
    0 24px 48px rgba(30,45,60,.10),
    0 48px 96px rgba(30,45,60,.12);
}
html.hv-light .hv-phone-wrap::after { opacity: .55; }

/* butoanele din nav + baza light comună: mutate în css/theme-2026.css (site-wide) */

/* NOUTĂȚI ÎN PROGRAM — cele mai noi capabilități (sursa: v33/ghid-noutati.html), teren opac după planetă */
.hv-news {
  position: relative; z-index: 1;
  background: var(--hv-bg0);
  padding: clamp(70px, 9vw, 118px) 0 clamp(64px, 7vw, 96px);
  border-top: 1px solid var(--hv-hair);
}
.hv-news-head { text-align: center; display: grid; justify-items: center; gap: 16px; margin-bottom: clamp(34px, 4vw, 52px); }
.hv-news-head h2 {
  margin: 0; font-weight: 600; font-size: clamp(29px, 3.2vw, 38px);
  letter-spacing: -0.02em; line-height: 1.12; color: var(--hv-ink); text-wrap: balance;
}
.hv-news-lede { margin: 0; color: var(--hv-ink2); font-size: 17px; line-height: 1.6; max-width: 54ch; text-wrap: pretty; }
.hv-news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.hv-news-card {
  position: relative; text-align: left;
  background: var(--hv-panel); border: 1px solid var(--hv-hair); border-radius: 12px;
  padding: 22px 22px 20px;
  transition: border-color var(--hv-t-fast) ease, transform var(--hv-t-fast) ease;
}
.hv-news-card:hover { border-color: var(--hv-hair-strong); transform: translateY(-2px); }
.hv-news-card h3 { margin: 0 0 8px; font-size: 18px; font-weight: 600; letter-spacing: -0.01em; color: var(--hv-ink); padding-right: 44px; }
.hv-news-card p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--hv-ink2); }
.hv-news-chip {
  position: absolute; top: 19px; right: 18px;
  font-family: var(--hv-f-mono); font-size: 11px; letter-spacing: .14em;
  color: var(--hv-accent); border: 1px solid rgba(122,170,212,.35); border-radius: 999px; padding: 3px 9px;
}
.hv-news-ai { border-color: rgba(122,170,212,.22); }
.hv-news-ai:hover { border-color: rgba(122,170,212,.45); }
@media (max-width: 980px) { .hv-news-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .hv-news-grid { grid-template-columns: 1fr; } }

/* [cc 2026-10-01] tema deschisă — Noutăți primește tokenurile deschise (rămăsese cu cardurile închise: titlu 1.17:1, text 2.56:1) */
html.hv-light .hv-news {
  --hv-bg0: #f5f7f9;
  --hv-bg1: #fafbfc;
  --hv-panel: #ffffff;
  --hv-surface: #ffffff;
  --hv-ink: #1d2733;
  --hv-ink2: #4f5b68;
  --hv-ink3: #637080;
  --hv-hair: rgba(23,32,43,.10);
  --hv-hair-strong: #d6dce4;
  --hv-dot: rgba(23,32,43,.07);
  --hv-accent: #1a74a2;
  --hv-accent-hover: #186a95;
  --hv-accent-ink: #ffffff;
  --hv-accent-soft: #e9f3fa;
  --hv-ok: #27764c;
  --hv-glow-a: rgba(31,127,176,.10);
  --hv-glow-b: rgba(70,181,224,.08);
}
html.hv-light .hv-news-card { border-color: var(--hv-hair-strong); box-shadow: 0 6px 18px rgba(30,45,60,.06); }
html.hv-light .hv-news-card:hover { border-color: var(--hv-accent); }
html.hv-light .hv-news-ai { border-color: rgba(26,116,162,.35); }
html.hv-light .hv-news-ai:hover { border-color: var(--hv-accent); }
html.hv-light .hv-news-chip { border-color: rgba(26,116,162,.40); background: var(--hv-accent-soft); }
/* [cc 2026-10-01] contrast pe deschis: accentul #1f7fb0 dădea 4.45:1 cu alb pe butonul „Vezi beneficiile”, gri-3 #7f8b99 dădea 3.23:1 („Descarcă din”) */
html.hv-light .hv-hero, html.hv-light .hv-apps { --hv-accent: #1a74a2; --hv-ink3: #637080; }
