/* ============================================================================
   03-webid · theme.css — CSS DE LA ZERO (FUNDATIE §2/§3; nimic din warmth).
   Fiecare valoare de mai jos răspunde unui punct din §3 — praguri MĂSURABILE:
     §3.1  corp 18px (17px <640) · lh 1.65 · scara 1.200 · niciun titlu < corp,
           niciun titlu muted · greutăți doar 400/600/700 · system-ui · max 62ch
     §3.2  corp ≥12:1 · titluri ≥8:1 · text pe fundal colorat ≥4.5:1
           (AMENDAT r32: brandul navy+oranj; navy pe capetele gradientului oranj = 5.3-6.4:1)
     §3.3  spațiere pe 4px · secțiuni clamp(3.5rem,7vw,6rem) PE CLASE, nu pe
           elementul section (capcana `section{padding}` din warmth NU se copiază)
     §3.4  fără fotografii/stock · iconografie linie 1.75 · UN gradient radial
           difuz per pagină (primul bloc) · fără emoji · fără embleme demo
     §3.5  UN SINGUR .btn-primary pe pagină (poartă la build) · secundar = contur
           · terțiar = link cu săgeată
     §3.7  praguri 390/640/900/1180/1440 · clamp() înaintea media-query-urilor
           · :has() cu degradare · text-wrap:balance pe titluri
   ⚠ EXCEPȚIE de la §3.7 (praguri): drawerul de meniu se deschide la 1024px
     (1200px cu .nav-many) — contract cu app.js `navBp()`, nu prag de design.
   ========================================================================== */

/* ============ 1 · TOKENI (§3.2 — paleta cu contrastele calculate) ============ */
:root{
  /* PALETA BRANDULUI (amendament §3.2, r32 — logo-ul livrat de Razvan 19 aug):
     navy #031d3d = CERNEALA (text, titluri, linkuri) · oranj #fd5804 = ACCENTUL grafic + CTA.
     ⚠ Distribuția e dictată de praguri: oranjul pe alb = 3.19:1 ⇒ NU poartă text niciodată;
     pe CTA-ul oranj textul e NAVY (5.3:1 ✓ ≥4.5). Neutralii sunt tentați spre navy. */
  /* ⚖ r49 — COACEREA variantei G ("Studio gradient pe toată lățimea"), verdictul lui Razvan
     după 3 serii de variante randate (r43-r48, GO explicit 23 aug): paleta site-ului se
     DESPRINDE de culorile logo-ului (ancoră re-deschisă chiar de el, #1344) — lavandă +
     violet→magenta. Contrastele de mai jos sunt măsurate; pragurile §3.2 rămân legea. */
  --bg:            #f6f4ff;   /* fundal pagină, lavandă pală */
  --surface:       #ffffff;   /* suprafață card */
  --surface-2:     #fbfaff;   /* treapta intermediară de luminozitate */
  --line:          #e4defa;   /* linii, borduri */
  --line-strong:   #cfc5f2;   /* borduri de input */
  --navy:          #201a4d;   /* CERNEALA (numele tokenului rămâne — îl consumă tot fișierul): ~15:1 pe alb */
  --text:          #201a4d;   /* corp: ~15:1 pe alb, ~13:1 pe --bg (prag ≥12:1 ✓) */
  --muted:         #5d5680;   /* ~6.7:1 — DOAR metadate (dată/etichetă/subsol), NICIODATĂ corp sau titluri */
  --accent:        #6d28d9;   /* violetul: fundal de CTA (alb ≈6:1 ✓) + accente */
  --accent-deep:   #5b21b6;   /* treapta lui pentru hover/active (8.35:1 pe --bg — poate purta titluri) */
  --title-accent:  #6d28d9;   /* accent pe TEXT (eyebrow/linkuri/iconițe): 6:1 pe alb (bold/mare) */
  --grad-cta:      linear-gradient(135deg, #6d28d9, #a21caf);   /* alb pe ambele capete ≥4.5:1 ✓ */
  --grad-title:    linear-gradient(100deg, #341f7a 15%, #5b21b6 55%, #831843 100%);  /* titluri: toate capetele ≥8:1 pe --bg (prag §3.2 titluri) */
  --ring:          rgba(109,40,217,.5);
  /* umbre STRATIFICATE + colorate în violet (design-webid regulile 2-3) */
  --shadow-1:      0 4px 18px rgba(109,40,217,.10);
  --shadow-2:      0 14px 44px rgba(109,40,217,.16);
  --sheen:         inset 0 1px 0 rgba(255,255,255,.55);
  --chip-bg:       rgba(109,40,217,.09);

  /* Inter self-hosted (verdictul lui Razvan, r33 — ales dintre 4 variante randate) */
  --font:          'Inter', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  /* spațiere pe 4px (§3.3) */
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.25rem;
  --s6:1.5rem; --s8:2rem; --s10:2.5rem; --s12:3rem; --s16:4rem;
  --sec-pad:       clamp(3.5rem, 7vw, 6rem);   /* ritmul secțiunilor — pe CLASE */

  --radius:        16px;      /* r49: formele G, mai moi */
  --radius-lg:     22px;
  --shadow-soft:   var(--shadow-1);
  --shadow-cta:    0 1px 2px rgba(32,26,77,.16), 0 10px 30px rgba(109,40,217,.4);
}

/* ============ 2 · BAZA + TIPOGRAFIA (§3.1) ============ */
*,*::before,*::after{ box-sizing:border-box; }
html{ font-size:18px; scroll-behavior:smooth; }             /* r25.1: corpul e 18px */
@media (max-width:639px){ html{ font-size:17px; } }
body{
  margin:0; font-family:var(--font); font-weight:400;
  font-size:1rem; line-height:1.65;
  color:var(--text); background:var(--bg);
  -webkit-text-size-adjust:100%;
}
/* ⚠ NU `balance` pe titluri (măsurat, #1285/r35): balance egalizează liniile forțând ruperi la
   ORICE punct permis — inclusiv după cratime ("n-␊au"); în română titlurile sunt pline de cratime.
   `pretty` păstrează tipografia fără ruperi premature; browserele fără el cad pe wrap, la fel curat. */
h1,h2,h3,h4{ margin:0 0 .5em; line-height:1.2; color:var(--text); text-wrap:pretty; }
h1{ font-size:clamp(2.2rem, 4.5vw, 3.4rem); font-weight:700; letter-spacing:-.015em; }
h2{ font-size:clamp(1.55rem, 2.6vw, 2.2rem); font-weight:700; letter-spacing:-.01em; }
h3{ font-size:1.3rem; font-weight:600; }
/* r25.4: niciun titlu sub mărimea corpului — h4+ nu coboară sub 1rem */
h4{ font-size:1rem; font-weight:600; }
p{ margin:0 0 1em; }
main p, main li{ max-width:62ch; }                          /* §3.1: rândul de citit */
/* linkuri: cerneală albastră + sublinierea trece pe oranj la hover (oranjul NU poartă text — 3.19:1) */
a{ color:var(--title-accent); text-decoration:underline; text-underline-offset:2px; }
a:hover{ color:var(--navy); text-decoration-color:var(--accent); }
strong,b{ font-weight:600; }
img,svg{ max-width:100%; height:auto; }
/* §3.4: iconografia de linie — icoanele inline din fragmente sunt viewBox 24×24 FĂRĂ width;
   fără regula asta, `max-width:100%` le lasă să umple containerul (verdict Razvan r29: "enorme").
   Specificitate (0,1,1) = egală cu regulile de componentă ⇒ cele de mai jos câștigă prin ORDINE. */
svg[viewBox="0 0 24 24"]{ width:1.25em; height:1.25em; flex:0 0 auto; }
svg[viewBox="0 0 64 64"]{ width:3rem; height:3rem; }
/* emblema-monogramă din antetele moștenite = limbajul demo-urilor (§3.4 ⛔) — nu e identitatea webid.ro */
.ph-mono{ display:none; }
[hidden]{ display:none !important; }
::selection{ background:rgba(253,88,4,.25); }

:focus-visible{ outline:3px solid var(--ring); outline-offset:2px; border-radius:4px; }

.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.skip{ position:absolute; left:-9999px; top:0; z-index:200; background:var(--surface); color:var(--text); padding:.6rem 1rem; border-radius:0 0 var(--radius) 0; }
.skip:focus{ left:0; }

/* containerul */
.inner{ max-width:min(96vw, 1760px); margin-inline:auto; padding-inline:clamp(1rem, 4vw, 2rem); }  /* r49 (G): întreaga lățime pe ecrane mari — cerința lui explicită; textul rămâne pe 62ch */

/* etichete de secțiune */
/* r44: eyebrow = PASTILĂ, nu literă plutitoare (feedback "draft"; design-webid regula 8 —
   eticheta orfană pe alb citește neterminat, chip-ul tentat citește finisat) */
.eyebrow{
  display:inline-block; font-size:.85rem; font-weight:600; letter-spacing:.07em;
  text-transform:uppercase; color:var(--title-accent); margin-bottom:var(--s3);
  background:var(--chip-bg); border:1px solid rgba(13,60,116,.12);
  padding:.35em .9em; border-radius:999px;
}
.eyebrow.center{ display:table; }
.eyebrow:empty{ display:none; }                             /* eticheta goală nu randează o pastilă goală */
.lead{ font-size:1.2rem; line-height:1.6; max-width:62ch; }
.sec-head{ margin-bottom:var(--s10); }
.sec-head .lead{ margin-bottom:0; }

/* ============ 3 · CTA — TREI NIVELURI (§3.5) ============ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font:inherit; font-weight:600; font-size:1.05rem; line-height:1.2;
  padding:.85em 1.7em; border-radius:var(--radius); border:0;
  cursor:pointer; text-decoration:none; transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}
/* PRIMAR — gradient + sheen + umbră colorată stratificată + press real (design-webid: butonul
   finisat are lumina de sus, hover lift și active care "apasă"). 🔴 UNUL pe pagină (poarta build). */
.btn-primary{ background:var(--grad-cta); color:#fff; font-weight:700; box-shadow:var(--sheen), var(--shadow-cta); }  /* r39: alb pe oranj — feedback estetic Razvan; ≥19px bold = large text, 3.19-3.97:1 ≥ 3:1 AA */
.btn-primary:hover{ transform:translateY(-1px); color:#fff; box-shadow:var(--sheen), 0 2px 4px rgba(3,29,61,.16), 0 6px 16px rgba(253,88,4,.3), 0 14px 34px rgba(253,88,4,.26); }
.btn-primary:active{ transform:translateY(1px); box-shadow:inset 0 2px 4px rgba(3,29,61,.3); }
/* SECUNDAR — fundal tentat, nu contur gol (design-webid regula 7: conturul gol pe alb citește
   "neterminat"; propus lui Razvan pe preview — §3.5 spunea "contur", verdictul e al lui, r31) */
.btn-ghost{ background:var(--surface); color:var(--navy); border:1.5px solid var(--line-strong); box-shadow:var(--shadow-1); }
.btn-ghost:hover{ background:var(--surface-2); border-color:var(--title-accent); }
.btn-sm{ font-size:.95rem; padding:.55em 1.1em; }
/* consent: prezență egală pentru ambele opțiuni — deliberat NU btn-primary */
.btn-consent{ background:var(--surface); color:var(--navy); border:1.5px solid var(--line-strong); font-size:.95rem; padding:.55em 1.1em; }
.btn-consent:hover{ background:rgba(13,60,116,.06); }
/* TERȚIAR — link cu săgeată (ca "Vezi site-ul" de pe hub) */
.link-arrow{ font-weight:600; text-decoration:none; }
.link-arrow::after{ content:"→"; margin-left:.35em; transition:margin .15s ease; }
.link-arrow:hover::after{ margin-left:.55em; }

/* ============ 4 · HEADER (§3.6 — refăcut din temelii) ============ */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.92); backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--line);
  transition:transform .25s ease, box-shadow .25s ease;
}
.site-header.stuck{ box-shadow:0 4px 20px rgba(22,26,35,.07); }
/* r32 (verdict Razvan): meniul RĂMÂNE vizibil la scroll — clasa .hide pe care o pune app.js
   la scroll-în-jos nu mai are efect vizual (regula de translate a fost scoasă deliberat). */
.site-header.nav-open{ transform:none; }
.nav{
  max-width:1180px; margin-inline:auto; padding:var(--s4) clamp(1rem,4vw,2rem);
  display:flex; align-items:center; gap:var(--s6);
}
.logo{ display:inline-flex; align-items:center; gap:.5rem; text-decoration:none; }
.logo-text{ font-size:1.4rem; font-weight:700; letter-spacing:-.03em; color:var(--text); }
.logo-img{ display:none; }
.logo-img[src]:not([src=""]){ display:block; height:40px; width:auto; }
.foot-logo .logo-img[src]:not([src=""]){ height:34px; }
/* CLASA (audit r34): oriunde există logo-imagine, textul-fallback dispare — TOATE gazdele de
   logo, nu doar headerul (în footer apăreau amândouă, unul lângă altul) */
:is(.logo,.nav-drawer-logo,.foot-logo):has(.logo-img[src]:not([src=""])) .logo-text{ display:none; }

.nav-links{ list-style:none; display:flex; align-items:center; gap:var(--s5); margin:0 0 0 auto; padding:0; }
.nav-links > li > a{
  display:inline-block; padding:.4rem .65rem; font-size:1rem; color:var(--text);
  text-decoration:none; border-radius:8px; transition:background-color .15s ease, color .15s ease;
}
.nav-links > li > a:hover{ color:var(--title-accent); background:var(--chip-bg); }
.nav-links > li > a.active{ font-weight:600; color:var(--title-accent); background:var(--chip-bg); }
.nav-drawer-head,.nav-drawer-search,.nav-drawer-social{ display:none; }

/* submeniu: dropdown pe desktop (hover/focus-within), acordeon în drawer (.is-open — app.js) */
.nav-has-sub{ position:relative; display:flex; align-items:center; }
.nav-sub-toggle{
  background:none; border:0; padding:.2rem; cursor:pointer; color:var(--muted);
  display:inline-flex; align-items:center;
}
.nav-sub-chev{ width:16px; height:16px; transition:transform .2s ease; }
.nav-sub{
  list-style:none; margin:0; padding:var(--s2);
  position:absolute; top:100%; left:-.75rem; min-width:230px;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
  z-index:60;
}
.nav-has-sub:hover > .nav-sub,
.nav-has-sub:focus-within > .nav-sub{ opacity:1; visibility:visible; transform:translateY(0); }
.nav-sub li{ position:relative; }
.nav-sub a{
  display:block; padding:.5rem .75rem; border-radius:8px;
  font-size:.95rem; color:var(--text); text-decoration:none;
}
.nav-sub a:hover{ background:rgba(13,60,116,.06); color:var(--title-accent); }
/* nivelul 2 (categorii → servicii): panou lateral pe desktop */
.nav-lvl2{ display:flex; align-items:center; }
.nav-lvl2 > .nav-sub{ top:-.5rem; left:100%; }

/* CTA de meniu = SECUNDAR FINISAT: fundal tentat + sheen, nu contur gol (design-webid r31 —
   conturul subțire era exact ce "zgâria" în screenshotul lui Razvan). Primarul paginii rămâne
   în conținut (§3.5). */
.nav-cta-li{ display:flex; align-items:center; gap:var(--s3); }
.nav-cta{
  display:inline-flex; align-items:center; gap:.4em;
  padding:.55em 1.2em; border-radius:999px;
  font-weight:600; font-size:.98rem; text-decoration:none;
  color:var(--navy); background:var(--surface);
  border:1px solid var(--line-strong); box-shadow:var(--sheen), var(--shadow-1);
  transition:background-color .15s ease, border-color .15s ease, transform .15s ease;
}
.nav-cta:hover{ background:var(--surface-2); border-color:var(--title-accent); color:var(--navy); transform:translateY(-1px); }
.nav-cta:active{ transform:translateY(0); }
.nav-cta-call{ background:transparent; border-color:transparent; box-shadow:none; padding-inline:.4em; }
.nav-cta-call svg{ width:17px; height:17px; }
.nav-search,.nav-search-mobile,.nav-toggle,.nav-close{
  background:none; border:0; cursor:pointer; color:var(--text); padding:.4rem;
  display:inline-flex; align-items:center; border-radius:8px;
}
.nav-search svg,.nav-search-mobile svg{ width:20px; height:20px; }
.nav-search:hover,.nav-search-mobile:hover,.nav-toggle:hover{ color:var(--title-accent); background:rgba(13,60,116,.06); }
.nav-toggle,.nav-search-mobile,.nav-lang-mobile{ display:none; }

.x-btn{ background:none; border:0; cursor:pointer; color:var(--text); padding:.4rem; display:inline-flex; border-radius:8px; }
.x-btn svg{ width:22px; height:22px; }
.x-btn:hover{ color:var(--title-accent); background:rgba(13,60,116,.06); }

.nav-backdrop{
  position:fixed; inset:0; z-index:90; background:rgba(22,26,35,.45);
  opacity:0; transition:opacity .25s ease;
}
.nav-backdrop.show{ opacity:1; }

/* ============ 5 · CĂUTAREA (overlay) ============ */
.search-overlay{
  position:fixed; inset:0; z-index:150; display:none;
  background:rgba(22,26,35,.55); backdrop-filter:blur(6px);
  padding:clamp(4rem,15vh,9rem) clamp(1rem,4vw,2rem) 2rem;
}
.search-overlay.open{ display:block; }
.search-close{ position:absolute; top:1rem; right:1rem; color:#fff; }
.search-close:hover{ color:#fff; background:rgba(255,255,255,.12); }
.search-form{
  max-width:640px; margin-inline:auto; display:flex; align-items:center; gap:var(--s2);
  background:var(--surface); border-radius:var(--radius-lg); padding:var(--s2) var(--s4);
  box-shadow:var(--shadow-soft);
}
.search-form input{
  flex:1; font:inherit; font-size:1.2rem; border:0; outline:0; padding:.7rem .25rem; background:none; color:var(--text);
}
.search-go{ background:none; border:0; cursor:pointer; color:var(--title-accent); display:inline-flex; padding:.5rem; }
.search-go svg{ width:22px; height:22px; }
.search-go:disabled{ color:var(--muted); cursor:default; }

/* ============ 6 · RITMUL SECȚIUNILOR (§3.3 — pe CLASE) ============ */
.cnt-sec,.values,.faq-sec,.page-header,.contact,.hero,.sec-surface,.sec-bg,
.story,.stats-band,.about-cta,.art-sec,.svc-body,.cat-block,.pt-block,
.price-note-sec,.svc-cat-intro-sec,.res-cat-sec,.res-cat-intro-sec,
.cat-nav-sec,.search-results{ padding-block:var(--sec-pad); }
/* alternanța de fundal (mecanismul cad3ab8 decide la asamblare; aici doar hainele) — r25.2 */
.sec-bg{ background:var(--surface); border-block:1px solid var(--line); }

/* ============ 7 · PAGE-HEADER (primul bloc: gradientul radial unic — §3.4) ============ */
.page-header{
  position:relative; overflow:hidden; background-color:var(--surface);
  border-bottom:1px solid var(--line);
  /* audit r33 (Razvan): distanța meniu → breadcrumb n-are rost — sus intră mai puțin decât
     ritmul plin de secțiune; jos rămâne ritmul întreg spre conținut */
  padding-block:clamp(1.25rem, 2.5vw, 2rem) var(--sec-pad);
}
.page-header::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(56rem 26rem at 18% -10%, rgba(13,60,116,.10), transparent 60%),
    radial-gradient(44rem 22rem at 90% 0%, rgba(253,88,4,.07), transparent 55%);
}
.page-header .inner{ position:relative; }
.ph-title{ margin-bottom:.35em; }
.ph-lead{ font-size:1.2rem; line-height:1.6; max-width:62ch; margin-bottom:0; }

/* ============ 8 · FORMULARE (interviul = pâlnia; §3.1 pe câmpuri) ============ */
.cnt-form-wrap{ max-width:840px; }
.cnt-form{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(1.25rem, 4vw, 2.5rem); box-shadow:var(--shadow-soft);
}
.cf-groups{ display:grid; gap:var(--s8); }
.cf-group{ border:0; padding:0; margin:0; min-width:0; }
.cf-group legend{ font-size:1.3rem; font-weight:600; padding:0; margin-bottom:var(--s2); }
.cf-group-note{ max-width:62ch; margin-bottom:var(--s6); }
.cf-fields{ display:grid; gap:var(--s5); }
.field label{ display:block; font-weight:600; font-size:1rem; margin-bottom:var(--s2); }
.field .opt{ font-weight:400; color:var(--muted); font-size:.9rem; }  /* etichetă = metadată */
.field input,.field select,.field textarea{
  width:100%; font:inherit; font-size:1rem; color:var(--text);
  background:var(--surface); border:1.5px solid var(--line-strong); border-radius:10px;
  padding:.7rem .85rem; box-shadow:inset 0 1px 2px rgba(3,29,61,.06);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--ring);
}
.cnt-form .btn-primary{ margin-top:var(--s6); min-width:12rem; }
.cf-success{ margin:var(--s4) 0 0; font-weight:600; color:var(--title-accent); }
/* honeypotul NU se vede niciodată */
.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* eroarea de formular */
.nl-err,.form-err{ color:#b3261e; font-weight:600; }

/* ============ 9 · VALUES ("Ce primești") — grilă fără orfani (§3.3) ============ */
.val-grid{ display:grid; gap:var(--s5); grid-template-columns:1fr; }
@media (min-width:640px){
  .val-grid{ grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); }
  /* exact 4 itemi → 2×2, niciodată 3+1 (generalizarea bf0a58d; degradare: auto-fit) */
  .val-grid:has(> :nth-child(4):last-child){ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
.val{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:var(--s8) var(--s6); box-shadow:var(--shadow-1);
}
.values:not(.sec-bg) .val{ background:var(--surface); }
.sec-bg .val{ background:var(--surface-2); }
.val-num{ display:block; font-size:.95rem; font-weight:700; letter-spacing:.06em; color:var(--title-accent); margin-bottom:var(--s3); }
.val h3{ margin-bottom:.4em; }
.val p{ margin:0; }

/* ============ 10 · PROCESS ("Ce urmează") — r25.5: pași aerisiți, titluri mari ============ */
.process-steps{ list-style:none; margin:0; padding:0; display:grid; gap:var(--s5); counter-reset:step; }
@media (min-width:900px){
  .process-steps:has(> :nth-child(4):last-child){ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
.process-step{
  display:flex; gap:var(--s5); align-items:flex-start;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:var(--s8) var(--s6); box-shadow:var(--shadow-1);
}
.ps-num{
  flex:0 0 auto; width:2.5rem; height:2.5rem; border-radius:50%;
  display:grid; place-items:center;
  background:var(--navy); color:#fff; font-weight:700; font-size:1.1rem;
  box-shadow:var(--sheen), 0 2px 6px rgba(3,29,61,.3);
}
.ps-body{ min-width:0; }
/* r25.4: titlul pasului NU coboară sub corp și NU e muted */
.ps-title{ font-size:1.3rem; font-weight:700; color:var(--text); margin-bottom:.4em; }
.ps-body p{ margin-bottom:.75em; }
.ps-body p:last-child{ margin-bottom:0; }
.ps-note{
  background:var(--bg); border-left:3px solid var(--accent); border-radius:0 10px 10px 0;
  padding:var(--s3) var(--s4); font-size:1rem;
}

/* ============ 11 · FAQ ============ */
.faq-wrap{ max-width:840px; display:grid; gap:var(--s3); }
.faq{
  background:var(--bg); border:1px solid var(--line); border-radius:var(--radius);
  padding:0;
}
.faq summary{
  list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:var(--s4);
  font-size:1.15rem; font-weight:600; padding:var(--s5) var(--s6);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; flex:0 0 auto; width:12px; height:12px;
  border-right:2px solid var(--title-accent); border-bottom:2px solid var(--title-accent);
  transform:rotate(45deg); transition:transform .2s ease; margin-top:-4px;
}
.faq[open] summary::after{ transform:rotate(-135deg); margin-top:4px; }
.faq .ans{ padding:0 var(--s6) var(--s5); max-width:62ch; }

/* ============ 12 · PROSE (note, pagini editoriale — completat în editorial.css) ============ */
.prose{ max-width:62ch; }
.prose p:last-child{ margin-bottom:0; }
/* audit r33/r34 (Razvan): șirul de secțiuni prose consecutive arăta ca "paragrafe cu spații de
   secțiune", apoi ca "o bucată boring" — interimar: o singură zonă cu SEPARATOARE și ritm intern
   (rezolvarea de fond = restructurarea §3bis, la Conținut prin bus #r34) */
.cnt-prose + .cnt-prose{ padding-top:0; }
.cnt-prose + .cnt-prose > .inner{ border-top:1px solid var(--line); padding-top:var(--s10); }
.sb-contact:empty{ display:none; }
/* audit r34: ultima secțiune nu se lipește de footer — clasa "capătul paginii respiră" */
main > section:last-child{ padding-bottom:calc(var(--sec-pad) + var(--s6)); }

/* ============ 13 · CONTACT + HARTĂ (paginile cu formular global; porneste = contact:false) ====== */
.contact-sec .contact-form,.contact-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.25rem,4vw,2rem); }
.map-facade{ border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line); }

/* ============ 14 · FOOTER (§3.6 — refăcut: fără newsletter, fără flotante) ============ */
.site-footer{
  background:var(--surface); border-top:1px solid var(--line);
  padding-block:var(--s16) var(--s8); margin-top:0;
  font-size:.95rem;
}
.foot-top{ display:grid; gap:var(--s10); grid-template-columns:1fr; }
@media (min-width:900px){ .foot-top{ grid-template-columns:1.2fr 2fr; } }
.foot-logo{ display:inline-flex; text-decoration:none; margin-bottom:var(--s3); }
.foot-logo .logo-text{ font-size:1.2rem; }
.foot-about{ max-width:38ch; }
.foot-contact p{ margin:0 0 .35em; }
.foot-cline a{ text-decoration:none; font-weight:600; }
.fsoc{ display:flex; gap:var(--s3); margin-top:var(--s4); }
.soc-ic{ display:inline-flex; padding:.45rem; border:1px solid var(--line); border-radius:10px; color:var(--text); }
.soc-ic:hover{ color:var(--title-accent); border-color:rgba(13,60,116,.45); }
.soc-ic svg{ width:18px; height:18px; }
/* linkurile sociale fără adresă reală nu se afișează */
.fsoc a[href=""],.nav-drawer-social a[href=""]{ display:none; }

/* coloanele: "Pentru cine" nu mai cade singură pe rândul ei (audit r34 — la 4 coloane grila
   încăpea doar 3 cu minmax 160) */
.foot-cols2{ display:grid; gap:var(--s6) var(--s5); grid-template-columns:repeat(2, minmax(0,1fr)); }
@media (min-width:900px){ .foot-cols2{ grid-template-columns:repeat(auto-fit, minmax(135px,1fr)); } }
.foot-cols2 h3{ font-size:1rem; font-weight:600; margin-bottom:var(--s3); }
.foot-cols2 h3 a{ color:inherit; text-decoration:none; }
.foot-cols2 ul{ list-style:none; margin:0; padding:0; display:grid; gap:var(--s2); }
.foot-cols2 ul a{ color:var(--text); text-decoration:none; }
.foot-cols2 ul a:hover{ color:var(--title-accent); text-decoration:underline; }

/* bannerele ANPC: centrate pe orizontală (audit r34) */
.foot-consumer{ display:flex; flex-wrap:wrap; gap:var(--s4); margin-top:var(--s10); justify-content:center; }
.anpc-pic img{ height:44px; width:auto; border-radius:6px; }

/* subsolul de copyright: centrat; separatorul "|" NU se randează orfan când backlink-ul e gol
   (audit r34 — clasa: niciun separator fără AMBII vecini) */
.foot-bottom{
  margin-top:var(--s10); padding-top:var(--s5); border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:var(--s2) var(--s3); align-items:center; justify-content:center;
  color:var(--muted); font-size:.9rem;                       /* subsol = metadată (§3.2) */
}
.backlink a{ color:inherit; }
.backlink:empty{ display:none; }
.foot-bottom .sep:has(+ .backlink:empty), .foot-bottom .sep:last-child{ display:none; }

/* ============ 15 · CONSENT (non-blocant) ============ */
.consent{
  position:fixed; left:50%; bottom:1rem; transform:translate(-50%, 130%);
  z-index:120; width:min(680px, calc(100vw - 2rem));
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:0 12px 40px rgba(22,26,35,.18);
  padding:var(--s5) var(--s6);
  transition:transform .3s ease; visibility:hidden;
}
.consent.show{ transform:translate(-50%, 0); visibility:visible; }
.consent p{ margin:0 0 var(--s3); font-size:.95rem; }
.consent-actions{ display:flex; gap:var(--s3); flex-wrap:wrap; }

/* ============ 16 · RESPONSIVE (§3.7: 390/640/900/1180/1440 + pragul JS al drawerului) ====== */
/* drawerul: 1024 implicit / 1200 cu .nav-many — SINCRON cu app.js navBp() */
@media (max-width:1023px){
  .nav-toggle,.nav-search-mobile{ display:inline-flex; }
  .nav-lang-mobile{ display:inline-flex; margin-left:auto; }
  .nav-search-mobile{ order:98; }
  .nav-toggle{ order:99; }
  .nav-links{
    position:fixed; inset:0 auto 0 0; z-index:110; width:min(360px, 88vw);
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--surface); box-shadow:0 0 60px rgba(22,26,35,.25);
    transform:translateX(-102%); transition:transform .28s ease;
    overflow-y:auto; padding:var(--s4);
  }
  .nav-links.open{ transform:translateX(0); }
  .nav-drawer-head{
    display:flex; align-items:center; justify-content:space-between;
    padding-bottom:var(--s4); border-bottom:1px solid var(--line); margin-bottom:var(--s2);
  }
  .nav-drawer-logo{ text-decoration:none; }
  .nav-links > li > a{ display:block; padding:.7rem .5rem; font-size:1.05rem; border-bottom:0; }
  .nav-has-sub{ flex-wrap:wrap; }
  .nav-has-sub > a{ flex:1; }
  .nav-sub{
    position:static; min-width:0; width:100%; opacity:1; visibility:visible; transform:none;
    border:0; box-shadow:none; background:var(--bg); border-radius:10px;
    display:none; margin:.15rem 0 .5rem;
  }
  .nav-has-sub.is-open > .nav-sub{ display:block; }
  .nav-has-sub.is-open > .nav-sub-toggle .nav-sub-chev{ transform:rotate(180deg); }
  .nav-lvl2 > .nav-sub{ background:var(--surface); }
  .nav-cta-li{ margin-top:var(--s4); padding:0 .5rem; }
  .nav-cta{ justify-content:center; flex:1; }
  .nav-search-li{ display:none; }
  .nav-drawer-search{ display:block; margin-top:var(--s4); padding:0 .5rem; }
  .nav-drawer-search form{ display:flex; gap:var(--s2); border:1.5px solid var(--line); border-radius:10px; padding:.2rem .3rem; }
  .nav-drawer-search input{ flex:1; border:0; outline:0; font:inherit; padding:.5rem; background:none; }
  .nav-drawer-search button{ background:none; border:0; color:var(--title-accent); display:inline-flex; padding:.4rem; cursor:pointer; }
  .nav-drawer-search button svg{ width:18px; height:18px; }
  .nav-drawer-social{ display:flex; gap:var(--s3); margin-top:var(--s6); padding:0 .5rem; }
  .nav-drawer-social a{ display:inline-flex; padding:.45rem; border:1px solid var(--line); border-radius:10px; color:var(--text); }
  .nav-drawer-social a svg{ width:18px; height:18px; }
}
@media (max-width:1199px){
  .nav.nav-many .nav-toggle,.nav.nav-many .nav-search-mobile{ display:inline-flex; }
  .nav.nav-many .nav-lang-mobile{ display:inline-flex; margin-left:auto; }
  .nav.nav-many .nav-search-mobile{ order:98; }
  .nav.nav-many .nav-toggle{ order:99; }
  .nav.nav-many .nav-links{
    position:fixed; inset:0 auto 0 0; z-index:110; width:min(360px, 88vw);
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--surface); box-shadow:0 0 60px rgba(22,26,35,.25);
    transform:translateX(-102%); transition:transform .28s ease;
    overflow-y:auto; padding:var(--s4);
  }
  .nav.nav-many .nav-links.open{ transform:translateX(0); }
  .nav.nav-many .nav-drawer-head{
    display:flex; align-items:center; justify-content:space-between;
    padding-bottom:var(--s4); border-bottom:1px solid var(--line); margin-bottom:var(--s2);
  }
  .nav.nav-many .nav-links > li > a{ display:block; padding:.7rem .5rem; font-size:1.05rem; border-bottom:0; }
  .nav.nav-many .nav-has-sub{ flex-wrap:wrap; }
  .nav.nav-many .nav-has-sub > a{ flex:1; }
  .nav.nav-many .nav-sub{
    position:static; min-width:0; width:100%; opacity:1; visibility:visible; transform:none;
    border:0; box-shadow:none; background:var(--bg); border-radius:10px;
    display:none; margin:.15rem 0 .5rem;
  }
  .nav.nav-many .nav-has-sub.is-open > .nav-sub{ display:block; }
  .nav.nav-many .nav-has-sub.is-open > .nav-sub-toggle .nav-sub-chev{ transform:rotate(180deg); }
  .nav.nav-many .nav-lvl2 > .nav-sub{ background:var(--surface); }
  .nav.nav-many .nav-cta-li{ margin-top:var(--s4); padding:0 .5rem; }
  .nav.nav-many .nav-cta{ justify-content:center; flex:1; }
  .nav.nav-many .nav-search-li{ display:none; }
  .nav.nav-many .nav-drawer-search{ display:block; margin-top:var(--s4); padding:0 .5rem; }
  .nav.nav-many .nav-drawer-search form{ display:flex; gap:var(--s2); border:1.5px solid var(--line); border-radius:10px; padding:.2rem .3rem; }
  .nav.nav-many .nav-drawer-search input{ flex:1; border:0; outline:0; font:inherit; padding:.5rem; background:none; }
  .nav.nav-many .nav-drawer-search button{ background:none; border:0; color:var(--title-accent); display:inline-flex; padding:.4rem; cursor:pointer; }
  .nav.nav-many .nav-drawer-search button svg{ width:18px; height:18px; }
  .nav.nav-many .nav-drawer-social{ display:flex; gap:var(--s3); margin-top:var(--s6); padding:0 .5rem; }
  .nav.nav-many .nav-drawer-social a{ display:inline-flex; padding:.45rem; border:1px solid var(--line); border-radius:10px; color:var(--text); }
  .nav.nav-many .nav-drawer-social a svg{ width:18px; height:18px; }
}
@media (max-width:639px){
  .process-step{ flex-direction:column; gap:var(--s3); padding:var(--s6) var(--s5); }
  .faq summary{ padding:var(--s4) var(--s5); }
  .faq .ans{ padding:0 var(--s5) var(--s4); }
  .consent{ bottom:0; width:100vw; border-radius:var(--radius-lg) var(--radius-lg) 0 0; }
}

/* ============================================================================
   17 · BAZA PAGINILOR MOȘTENITE (r30) — stratul care face TOATE fragmentele
   warmth să se așeze pe identitatea §3 până le vine rândul la finisare (§4.1).
   Nu e "designul final" al fiecărei pagini; e garanția că nimic nu arată rupt.
   ========================================================================== */

/* ---- centrat (sec-head center de pe Acasă) ---- */
.sec-head.center{ text-align:center; }
.sec-head.center .lead{ margin-inline:auto; }
.eyebrow.center{ margin-inline:auto; }

/* ---- fără fotografii pe webid.ro (§3.4): placeholder-ele și figurile moștenite nu se randează ---- */
.ph,.hero-media,.about-figure{ display:none !important; }
.about-grid{ display:block; }

/* ---- breadcrumb + navigarea secvențială (pe TOATE paginile — și cele fără editorial.css) ---- */
.seq-nav{ display:flex; align-items:center; justify-content:space-between; gap:var(--s4); margin-bottom:var(--s6); }
.seq-link{ display:inline-flex; align-items:center; gap:.35em; font-size:.9rem; color:var(--muted); text-decoration:none; }
.seq-link:hover{ color:var(--title-accent); }
.seq-link svg{ width:16px; height:16px; }
.seq-link:not([href]),.seq-link[href="#"]:is([data-nav-prev],[data-nav-next]):not([data-nav-ready]){ visibility:hidden; }
.crumbs ol{ list-style:none; display:flex; flex-wrap:wrap; gap:.35em; margin:0; padding:0; font-size:.9rem; }
.crumbs li{ display:inline-flex; align-items:center; gap:.35em; max-width:100%; }
.crumbs li + li::before{ content:"›"; color:var(--muted); }
.crumbs a{ color:var(--muted); text-decoration:none; }
.crumbs a:hover{ color:var(--title-accent); text-decoration:underline; }
.crumbs [aria-current="page"]{ color:var(--text); font-weight:600; }
@media (max-width:639px){ .crumbs{ display:none; } }

/* ---- HERO (Acasă): o coloană, copy-ul duce mesajul; UN gradient radial difuz în primul
        bloc (§3.4 — bugetul decorativ al paginii, ca antetul hub-ului validat) ---- */
.hero{ display:block; }
main:has(> section.hero){ position:relative; z-index:0; }   /* r40: FARA :first-child — canvasul shaderului se insereaza inaintea hero-ului si il rupea (masurat: main static, radial none, canvas sub fundal) */
/* r42: shaderul "liquid glow" SCOS (verdict Razvan: "pete albe care se mișcă… dead weight pe
   șablonul actual") — rămâne DOAR radialul static de mai jos. Posibil revizitat pe un șablon
   mai bogat / în customizerul clienților, nu aici. */
main:has(> section.hero)::before{
  content:""; position:absolute; z-index:-1; inset:0 0 auto 0; height:34rem; pointer-events:none;
  background:
    radial-gradient(52rem 24rem at 15% -8%, rgba(13,60,116,.09), transparent 60%),
    radial-gradient(40rem 20rem at 92% -4%, rgba(253,88,4,.06), transparent 55%);
}
.hero-copy{ max-width:70ch; }
.hero-sub{ font-size:1.25rem; font-weight:600; line-height:1.5; max-width:62ch; margin-bottom:.6em; }
.hero-desc{ max-width:62ch; }
.actions{ display:flex; flex-wrap:wrap; gap:var(--s3); margin-top:var(--s6); }
.hero-cta-note{ display:flex; align-items:center; gap:.5em; margin-top:var(--s4); font-size:.95rem; }
.hero-cta-note svg{ color:var(--title-accent); }
.stats:not(:has(*)){ display:none; }

/* ---- banda de încredere (trust.badge) — LISTĂ de garanții, nu pseudo-butoane (audit r33:
        "par butoane dar nu sunt" — pastilele cu bordură mimau elemente clicabile) ---- */
/* audit r34: banda nu merită ritmul PLIN de secțiune — e o linie de garanții, nu un capitol */
.cnt-trust{ padding-block:var(--s10); }
.sec-surface + .cnt-trust{ padding-top:var(--s4); }
.trust-badges{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:var(--s3) var(--s8); justify-content:center; }
.trust-badge{ display:inline-flex; align-items:center; gap:.5em; font-weight:600; font-size:.95rem; }
.trust-badge .tb-ico{ color:var(--title-accent); display:inline-flex; }
.trust-badge a{ color:inherit; }
.trust-badge a:hover{ color:var(--title-accent); }

/* ---- MODULE (srv-grid de pe Acasă) ---- */
.srv-grid{ display:grid; gap:var(--s5); grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); margin-top:var(--s8); }
/* grila fără orfani (§3.3): 5 module → 3+2, nu 4+1 */
@media (min-width:900px){
  .srv-grid:has(> :nth-child(5):last-child){ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
.srv-card{
  display:flex; flex-direction:column; gap:var(--s2);
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:var(--s6); text-decoration:none; color:var(--text);
  box-shadow:var(--shadow-1); transition:transform .15s ease, box-shadow .15s ease;
}
.srv-card:hover{ transform:translateY(-2px); box-shadow:var(--shadow-2); color:var(--text); }
.srv-card h3{ margin-bottom:0; }
.srv-card p{ margin:0; }
.srv-from{ font-weight:600; color:var(--title-accent); }
.srv-cta{ margin-top:auto; padding-top:var(--s2); display:inline-flex; align-items:center; gap:.35em; font-weight:600; color:var(--title-accent); }

/* ---- PLANURI de preț (pricing.plan) ---- */
.pricing-grid{ display:grid; gap:var(--s5); grid-template-columns:repeat(auto-fit, minmax(270px,1fr)); align-items:start; margin-top:var(--s8); }
/* audit r34 (Razvan, pe verticale): PRODUSUL și modulul lui NU sunt alternative egale — două
   cutii identice cu badge "Recomandat" citeau ca o alegere între ele. Vizual: featured = oferta
   (lat, dominant), non-featured = subordonat (îngust, preț mic). Semantica etichetelor ("modul
   opțional") e copy — cerută la Conținut pe bus. */
@media (min-width:900px){
  .pricing-grid:has(> :nth-child(2):last-child):has(.is-featured){ grid-template-columns:1.6fr 1fr; }
}
.price-plan:not(.is-featured){ padding:var(--s6) var(--s5); }
.price-plan:not(.is-featured) .pp-price b{ font-size:1.4rem; }
.price-plan{
  display:flex; flex-direction:column; gap:var(--s3); position:relative;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:var(--s8) var(--s6); box-shadow:var(--shadow-1);
}
.price-plan.is-featured{ border:2px solid var(--accent); box-shadow:var(--shadow-2); }
.pp-price b{ font-variant-numeric:tabular-nums; }
.pp-badge{
  position:absolute; top:-0.85rem; left:var(--s6);
  background:var(--grad-cta); color:var(--navy); font-size:.85rem; font-weight:600;
  padding:.25rem .8rem; border-radius:999px;
}
.pp-name{ margin-bottom:0; }
.pp-price{ margin:0; }
.pp-price b{ font-size:2.1rem; font-weight:700; }
.pp-period{ color:var(--muted); font-size:.95rem; }        /* metadată */
.pp-features{ list-style:none; margin:0; padding:0; display:grid; gap:var(--s2); }
.pp-features li{ padding-left:1.5em; position:relative; }
.pp-features li::before{ content:"✓"; position:absolute; left:0; color:var(--title-accent); font-weight:700; }
.price-plan .btn{ margin-top:var(--s3); align-self:flex-start; }
.price-note,.price-note-sec p{ max-width:62ch; }

/* ---- AMENITIES (lista "ce-ți facem") ---- */
.amenity-grid{ list-style:none; margin:var(--s8) 0 0; padding:0; display:grid; gap:var(--s4); grid-template-columns:1fr; }
@media (min-width:900px){ .amenity-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
.amenity{
  display:flex; gap:var(--s3); align-items:flex-start;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:var(--s5) var(--s5);
}
/* iconiță în PASTILĂ, nu orfană pe alb (design-webid regula 8) */
.amenity-ico{
  width:2.25rem; height:2.25rem; border-radius:10px; background:var(--chip-bg);
  display:inline-grid; place-items:center; color:var(--title-accent); flex:0 0 auto;
}
.amenity-lbl{ max-width:62ch; }

/* ---- ZONES (chips de linkuri) ---- */
.zone-chips{ list-style:none; margin:var(--s6) 0 0; padding:0; display:flex; flex-wrap:wrap; gap:var(--s3); }
.zone-chip a{
  display:inline-block; padding:.55em 1.1em; border:1.5px solid rgba(13,60,116,.45);
  border-radius:999px; font-weight:600; text-decoration:none; color:var(--title-accent);
}
.zone-chip a:hover{ background:rgba(13,60,116,.07); border-color:var(--accent); }
.zones-note{ margin-top:var(--s5); max-width:62ch; }

/* ---- BLOG (carusel) + RESURSE (carduri) ---- */
.car{ position:relative; margin-top:var(--s8); }
.car-vp{ overflow:hidden; }
.car-track{ display:flex; gap:var(--s5); transition:transform .3s ease; }
.posts > *{
  flex:0 0 min(340px, 85%); background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:var(--s6); box-sizing:border-box;
}
.posts:not(:has(*)){ min-height:0; }
.car:not(:has(.car-track > *)){ display:none; }            /* fără articole → fără carusel gol */
.car-arr{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:40px; height:40px; border-radius:50%; border:1px solid var(--line);
  background:var(--surface); color:var(--title-accent); cursor:pointer;
  display:grid; place-items:center; box-shadow:var(--shadow-soft);
}
.car-prev{ left:-8px; } .car-next{ right:-8px; }
.car-arr:hover{ border-color:rgba(13,60,116,.45); }
.blog-foot{ text-align:center; margin-top:var(--s8); }
.res-items{ display:grid; gap:var(--s5); grid-template-columns:repeat(auto-fit, minmax(300px,1fr)); margin-top:var(--s8); }
.res-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-1); }
.res-card-link{ display:flex; flex-direction:column; gap:var(--s2); padding:var(--s6); text-decoration:none; color:var(--text); }
.res-card-link:hover .item-title{ color:var(--title-accent); }
.res-card-ico{
  width:2.25rem; height:2.25rem; border-radius:10px; background:var(--chip-bg);
  display:inline-grid; place-items:center; color:var(--title-accent);
}
.res-card-date{ color:var(--muted); font-size:.9rem; }     /* dată = metadată */
.item-title{ margin-bottom:0; }
.item-desc{ margin:0; }
.res-card-cta{ font-weight:600; color:var(--title-accent); }

/* ---- blocul de CONTACT (partajat; rămâne doar pe /contact după flip) ---- */
.urgent-band{ background:rgba(13,60,116,.06); border-block:1px solid var(--line); padding-block:var(--s4); margin-bottom:var(--s10); }
.ub-inner{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--s4); }
.ub-badge{ display:inline-flex; align-items:center; gap:.5em; font-weight:600; }
.ub-text{ margin:0; }
.contact-grid{ display:grid; gap:var(--s10); grid-template-columns:1fr; }
@media (min-width:900px){ .contact-grid{ grid-template-columns:1fr 1.2fr; } }
.contact-urgency,.contact-trust,.form-note,.bk-note,.reassure-note{
  display:flex; align-items:flex-start; gap:.5em; font-size:.95rem;
}
.contact-urgency svg,.contact-trust svg,.form-note svg,.bk-note svg,.reassure-note svg{ color:var(--title-accent); margin-top:.2em; }
.contact-points{ margin-block:var(--s5); display:grid; gap:var(--s2); }
.cp-group{ list-style:none; margin:0; padding:0; }
.cp-group a{ font-weight:600; text-decoration:none; }
.cp-group a:hover{ text-decoration:underline; }
.cp-addr-btn{ background:none; border:0; padding:0; font:inherit; color:var(--title-accent); cursor:pointer; }
.cp-group:not(:has(li)){ display:none; }
.cp-addr:has(> .cp-addr-btn > span:empty){ display:none; } /* adresă goală → nu randa un buton gol */
.hours-exceptions:not(:has(.hx-list li)){ display:none; }  /* fără excepții de program → fără titlu orfan */
.hx-title{ font-weight:600; }
.hours{ list-style:none; margin:0; padding:0; }
.contact-form,.contact-main form{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(1.25rem, 4vw, 2rem); box-shadow:var(--shadow-1);
}
.cf-row{ display:grid; gap:var(--s4); grid-template-columns:1fr; }
@media (min-width:640px){ .cf-row{ grid-template-columns:repeat(auto-fit, minmax(200px,1fr)); } }
.contact-form .field{ margin-bottom:var(--s4); }
input[type="checkbox"],input[type="radio"]{ width:auto; accent-color:var(--accent); }
.field:has(> input[type="checkbox"]),label:has(> input[type="checkbox"]){
  display:flex; align-items:center; gap:.5em; font-weight:400;
}

/* ---- GROUPS (S2/S5/S8 pe Acasă, #1296) — coloane etichetate; raportul de LUNGIMI e argumentul
        (Conținut #1081/#1090) ⇒ align-items:start OBLIGATORIU, fără egalizare ---- */
.grp-grid{ display:grid; gap:var(--s5); grid-template-columns:1fr; align-items:start; margin-top:var(--s8); }
@media (min-width:900px){ .grp-grid{ grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); } }
.grp{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:var(--s6); box-shadow:var(--shadow-1);
}
.sec-bg .grp{ background:var(--surface-2); }
.grp-label{ font-size:1.15rem; font-weight:700; margin-bottom:var(--s3); }
.grp-list{ list-style:none; margin:0; padding:0; display:grid; gap:var(--s2); }
.grp-list li{ padding-left:1.35em; position:relative; }
.grp-list li::before{
  content:""; position:absolute; left:.15em; top:.62em;
  width:.45em; height:.45em; border-radius:50%; background:var(--accent);
}
.grp-note{ margin:var(--s3) 0 0; font-size:.95rem; }
.grp-closing{ margin:var(--s8) auto 0; max-width:62ch; text-align:center; }

/* ---- STATS / STORY / ABOUT-CTA ---- */
.sb-list{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:var(--s8); justify-content:center; text-align:center; }
.stats-band{ background:var(--surface); border-block:1px solid var(--line); }
.stats-band:not(:has(.sb-list li)){ display:none; }        /* fără cifre → fără bandă goală (webid n-are stats) */
.story-head{ margin-bottom:var(--s8); }
.about-cta .actions{ margin-top:var(--s5); }

/* ---- CATALOG /produse (r40 — verdictele #1301/#1302) ---- */
/* ancorele de categorii: chips reale, nu text lipit (— #1302.2 "BazaCliențiVizibilitate…") */
.cat-nav{ display:flex; flex-wrap:wrap; gap:var(--s3); }
.cat-nav .chip{
  display:inline-block; padding:.5em 1.1em; border-radius:999px;
  background:var(--surface); border:1px solid var(--line-strong);
  font-weight:600; font-size:.95rem; color:var(--navy); text-decoration:none;
}
.cat-nav .chip:hover{ border-color:var(--title-accent); background:var(--surface-2); }
.cat-nav-sec{ padding-block:var(--s6); }
/* litera-inițială pe carduri = limbaj de demo, fără beneficiu aici (#1302.4) — hook-ul rămâne în DOM */
.ii-init{ display:none; }
.item-img:not(:has(img[src]:not([src=""]))){ display:none; }   /* fără imagine → fără cutia goală */
/* "Plătește online" per card iese PÂNĂ LA COȘ (#1302.3/#1303) — markerii data-pay-item rămân în DOM
   (poarta add-on-ului din build_base numără markeri, nu pixeli) */
.webid-pay{ display:none; }
/* "de la" se afișează DOAR la preț variabil (regula B7, pierdută la rescrierea CSS — #1302.7) */
.price[data-price-type="fixed"] .from{ display:none; }
/* grila cardurilor de catalog */
.cat-items{ display:grid; gap:var(--s6); grid-template-columns:1fr; margin-top:var(--s6); align-items:stretch; }
@media (min-width:900px){ .cat-items{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
.cat-items .item{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:var(--s6); box-shadow:var(--shadow-1);
  display:flex; flex-direction:column;                      /* r44 (verdict Razvan pe /produse): */
}
/* rândul preț+CTA se ALINIAZĂ LA BAZA cardului — carduri vecine cu texte inegale își țin
   acțiunea pe aceeași linie, nu la 3 înălțimi diferite. ⚠ item-foot e NEPOT (în .item-body),
   deci lanțul flex trebuie dus prin body — flex doar pe .item nu mișcă nimic (r44, măsurat). */
.cat-items .item-body{ display:flex; flex-direction:column; flex:1 1 auto; min-width:0; }
.cat-items .item-foot{ display:flex; align-items:center; justify-content:space-between; gap:var(--s4); margin-top:auto; padding-top:var(--s4); flex-wrap:wrap; }
.cat-items .price{ font-weight:700; font-variant-numeric:tabular-nums; }

/* ---- pagini editoriale/legale moștenite: lățimea de citit ---- */
.art-body{ max-width:62ch; }
.art-sec .inner > *{ max-width:72ch; }

/* ---- LISTA DE PREȚURI (/preturi, familia .pt-*) — r43: era complet nestilizată, span-urile
        cădeau inline lipite ("SEOde la 149 €"); rândul = nume · punctele-ghid · preț ---- */
.pt-block{ padding-block:var(--s10); }                      /* categoriile nu-s capitole: ritm redus */
.pt-block:first-of-type{ padding-top:var(--sec-pad); }
.pt-block:last-of-type{ padding-bottom:var(--sec-pad); }
.pt-inner{ max-width:780px; margin-inline:auto; }
.pt-cat{ font-size:1.55rem; margin-bottom:var(--s5); }
.pt-rows{ display:grid; gap:var(--s3); }
.pt-row,.pt-opt-row{ display:flex; align-items:baseline; gap:.6em; }
.pt-name{ font-weight:600; }
.pt-dots{ flex:1 1 auto; min-width:2rem; border-bottom:2px dotted var(--line-strong); transform:translateY(-.28em); }
.pt-price{ white-space:nowrap; }
.pt-price b{ font-variant-numeric:tabular-nums; }
.pt-price .from{ color:var(--muted); font-size:.95rem; }
.pt-dur{ color:var(--muted); font-size:.9rem; }             /* durata = metadată */
.pt-opt-row{ padding-left:var(--s5); }
.pt-opt-row .pt-opt-name{ font-size:.95rem; }
.pt-opt-row .pt-opt-price{ font-size:.95rem; font-variant-numeric:tabular-nums; }

/* ---- ECHILIBRUL GRILELOR (r43, lista lui Razvan: "boxuri inegale pe rândul 2") — clasa
        generală: RÂND INCOMPLET în grilă de 3 → rândul 2 se lățește și umple (3 sus + 2 late
        jos), nu lasă golul din dreapta ---- */
@media (min-width:900px){
  .grp-grid:has(> :nth-child(5):last-child),
  .srv-grid:has(> :nth-child(5):last-child){ grid-template-columns:repeat(6, minmax(0,1fr)); }
  .grp-grid:has(> :nth-child(5):last-child) > :nth-child(-n+3),
  .srv-grid:has(> :nth-child(5):last-child) > :nth-child(-n+3){ grid-column:span 2; }
  .grp-grid:has(> :nth-child(5):last-child) > :nth-child(n+4),
  .srv-grid:has(> :nth-child(5):last-child) > :nth-child(n+4){ grid-column:span 3; }
  /* 3 carduri de catalog → 3 pe un rând, nu 2+1 orfan */
  .cat-items:has(> :nth-child(3):last-child){ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
/* un singur card într-o grilă → centrat pe lățime de card, nu cârnat full-width */
.cat-items:has(> :only-child){ grid-template-columns:minmax(0,560px); justify-content:center; }

/* ---- bullet solitar (r43): UN singur item în listă nu e listă — punctul dispare,
        itemul citește ca paragraf (markupul/hook-urile rămân neatinse) ---- */
.grp-list:has(> li:only-child) li{ padding-left:0; }
.grp-list:has(> li:only-child) li::before{ display:none; }

/* ---- FAQ pe Acasă: heading centrat cu acordeonul tras stânga = rupt; acordeonul se centrează ---- */
.faq-wrap{ margin-inline:auto; }

/* mișcare redusă */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
}

/* ============================================================================
   18 · COACEREA VARIANTEI G (r49) — verdictul rundei de design (r43-r48).
   Limbajul "Studio gradient pe toată lățimea": lavandă + violet→magenta,
   ax central, titluri în gradient, carduri cu dungă degrade, full-width la
   ≥1600. Tokenii sunt în §1; aici stau regulile structurale. Regulile de mai
   jos SUPRASCRIU deliberat părți din §2-§17 (cascadă, nu duplicare) — la o
   trecere de curățenie se topesc în secțiunile lor.
   ========================================================================== */

/* ---- titlurile poartă gradientul (cu plasă: fără suport, rămân cerneală) ---- */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  h1, h2, .h{
    background:var(--grad-title);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
}
h1{ font-size:clamp(2.6rem, 4.2vw, 4.2rem); }

/* ---- axul central: hero + antetele de secțiune ---- */
.hero{ text-align:center; }
.hero-copy{ margin-inline:auto; }
.hero-copy > *{ margin-inline:auto; }
.actions, .hero-cta-note{ justify-content:center; }
.hero-cta-note{ margin-top:var(--s6); }
main:has(> section.hero)::before{
  height:42rem;
  background:
    radial-gradient(44rem 26rem at 78% -12%, rgba(162,28,175,.16), transparent 60%),
    radial-gradient(40rem 24rem at 12% -6%, rgba(109,40,217,.16), transparent 62%);
}
.sec-head{ text-align:center; }
.sec-head .lead{ margin-inline:auto; }
.sec-head .eyebrow{ margin-inline:auto; display:table; }
/* r50 (#1385, prins de Conținut): regula veche `.inner > p` nu prindea NIMIC — paragrafele
   sunt nepoți (.inner > .prose > p). Titlul centrat cere coloana CENTRATĂ sub el (verdict
   Razvan pe /pentru/instalator; textul rămâne la stânga ÎN coloană — .prose are 62ch). */
.cnt-prose .prose{ margin-inline:auto; }
.prose-cta, .blog-foot{ text-align:center; }

/* r50 (#1384.2, cerință Razvan): blocul `prose` cu IMAGINE lângă text — textul stânga,
   captura dreapta, imaginea linkabilă la aceeași adresă ca butonul blocului. Fără imagine
   în date → markupul nu se emite deloc (fără gaură; slotul se umple când apar capturile). */
@media (min-width:900px){
  .cnt-prose--media .inner{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:var(--s6) var(--s10); align-items:center; }
  .cnt-prose--media .sec-head,.cnt-prose--media .prose-cta{ grid-column:1 / -1; }
  .cnt-prose--media .prose{ grid-column:1; margin-inline:0; }
  .cnt-prose--media .prose-media{ grid-column:2; }
}
.prose-media img{ display:block; width:100%; height:auto; border-radius:var(--radius-lg); box-shadow:var(--shadow-2); border:1px solid var(--line); }
.prose-media a{ display:block; transition:transform .15s ease, box-shadow .15s ease; }
.prose-media a:hover{ transform:translateY(-2px); }
@media (max-width:899px){ .prose-media{ margin-top:var(--s6); max-width:520px; } }
/* r53 (verdict Razvan): capturile se amână — placeholder DESENAT până le finalizăm (fără
   text — o etichetă ar fi copy); același footprint ca imaginea reală, forma paginii nu se
   schimbă când captura o înlocuiește */
.prose-media--ph .ph-box{
  display:flex; align-items:center; justify-content:center; aspect-ratio:16/10;
  border:2px dashed var(--line-strong); border-radius:var(--radius-lg);
  background:var(--chip-bg); color:var(--muted);
}
.prose-media--ph .ph-box svg{ width:3rem; height:3rem; opacity:.55; }

/* r54 (#1439): banda de preț a blocului `catalog_price` — cifra din catalog pe pagina
   editorială de produs; bandă compactă (nu capitol), numărul e vedeta */
.cnt-catalog-price{ padding-block:var(--s10); }
.cnt-catalog-price .inner{ text-align:center; }
.cp-price{ margin:0; font-size:1.25rem; max-width:none; }  /* 62ch global pe p l-ar trage din centru (clasa proc-more, r48) */
.cp-price b{ font-size:2rem; font-weight:700; font-variant-numeric:tabular-nums; }
.cp-price .from{ color:var(--muted); font-size:1rem; font-weight:600; }
.cp-price small{ color:var(--muted); font-size:1rem; }
/* portat 4f1ccd2 (warmth, #1583/#1584): nota de pret LANGA pret, nu doar in locul lui — la un
   pret COMPUS («149 € o data, apoi 59 €/luna») nota E jumatatea produsului. Propozitie, nu unitate. */
.price .price-note{ text-transform:none; letter-spacing:0; font-size:.85rem; display:block; margin-top:.25rem; line-height:1.35; color:var(--muted); }
.pt-price .price-note{ display:inline; font-size:.85rem; color:var(--muted); font-weight:400; margin-left:.3rem; }
.cp-price .price-note{ display:block; font-size:1rem; color:var(--muted); margin-top:.35rem; margin-inline:auto; }   /* r62: blocul de 62ch se centreaza, nu sta la stanga */
.cnt-catalog-price.has-variants .price-note{ display:none; }   /* r62: chip-urile spun deja variantele + preturile — nota ar repeta */
/* #1864/#1865: nota MARCATA cu «*» nu repeta chip-urile — poarta CONDITIA pretului («doar odata cu site-ul»);
   r62 o ascundea pe /oferta/multi-limba/, deci verdictul lui Razvan nu ajungea la client (masurat pe randare). */
.cnt-catalog-price.has-variants .price-note.has-ast{ display:block; }
/* «*» = legatura cifra↔conditie, nu text: marcaj mic, tentat, fara sa ridice linia */
.price-ast{ font-size:.62em; line-height:0; font-weight:600; color:var(--muted); margin-left:.06em; }

/* ============ r56 · COȘUL WEBID (#1303) — pagina /cos + badge-ul din header ============ */
.nav-cart{ display:inline-flex; align-items:center; gap:.3em; position:relative; text-decoration:none; }
.nav-cart svg{ width:1.35em; height:1.35em; }
.nav-cart-n{
  min-width:1.35em; height:1.35em; padding:0 .3em; border-radius:999px;
  background:var(--grad-cta); color:#fff; font-size:.75rem; font-weight:700;
  display:inline-grid; place-items:center; font-variant-numeric:tabular-nums;
}
.cart-sec .inner{ max-width:820px; }
.cart-empty{ text-align:center; padding-block:var(--s10); }
.cart-lines{ display:grid; gap:var(--s3); }
.cart-line{
  display:flex; align-items:center; justify-content:space-between; gap:var(--s4);
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:var(--s4) var(--s5); box-shadow:var(--shadow-1);
}
.cl-name{ min-width:0; }
.cl-var,.cl-kind{ color:var(--muted); font-size:.85rem; margin-left:.4em; }
.cl-qty{ display:inline-flex; align-items:center; gap:.4em; margin-left:var(--s4); font-size:.9rem; color:var(--muted); }
.cl-qty input{ width:4.2em; padding:.25em .4em; }
.cl-side{ display:flex; align-items:center; gap:var(--s4); flex:0 0 auto; }
.cl-price{ font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cl-rm{ background:none; border:0; padding:.2em; font:inherit; font-size:.85rem; color:var(--muted); cursor:pointer; text-decoration:underline; text-underline-offset:2px; }
.cl-rm:hover{ color:var(--title-accent); }
.cart-summary{ margin-top:var(--s6); text-align:right; }
.cart-total{ font-size:1.15rem; margin:0; }
.cart-total b{ font-size:1.5rem; font-variant-numeric:tabular-nums; margin-left:.4em; }
.cart-rate{ font-size:.85rem; margin:.3em 0 0; max-width:none; }
.cart-form{ margin-top:var(--s10); }
.cart-form h2{ font-size:1.25rem; margin-bottom:var(--s4); }
.cart-legal{ margin-top:var(--s8); }
.cart-check{ display:flex; align-items:flex-start; gap:.6em; margin-bottom:var(--s3); font-weight:400; }
.cart-check input{ margin-top:.3em; }
.cart-blocking{
  margin-top:var(--s6); padding:var(--s4) var(--s5); border-radius:var(--radius);
  background:rgba(217,119,6,.09); border:1px solid rgba(217,119,6,.3);
}
.cart-blocking p{ margin:0; max-width:none; }
.cart-blocking p + p{ margin-top:.4em; }
.cart-actions{ margin-top:var(--s8); }
.cart-secure{ font-size:.85rem; margin-top:var(--s3); max-width:none; }
.cart-error{ margin-top:var(--s4); color:#b42318; font-weight:600; max-width:none; }
/* r57 (#1455): linia ADĂUGATĂ AUTOMAT (mentenanța aliniată pe termenul prepay-ului) — vizual
   distinctă (fundal tentat, fără «Scoate»), cu explicația într-o frază sub nume */
.cart-line--auto{ background:var(--surface-2); border-style:dashed; }
/* r59 (contract S2/S2b): termenul cosului (UN singur termen — Stripe refuza intervale
   diferite), linia scutita pe 0 (ramane afisata), alinierea abonamentelor */
.cart-terms{ border:1px solid var(--line); border-radius:var(--radius); padding:var(--s4) var(--s5); margin:0 0 var(--s6); background:var(--surface); }
.cart-terms legend{ font-weight:700; padding:0 .4em; }
.ct-opts{ display:flex; flex-wrap:wrap; gap:var(--s3); margin-top:var(--s2); }
.ct-opt{ display:inline-flex; align-items:center; gap:.45em; padding:.5em .9em; border:1.5px solid var(--line-strong); border-radius:999px; cursor:pointer; font-weight:400; }
.ct-opt.is-on{ border-color:var(--accent); background:var(--chip-bg); }
.ct-opt input{ margin:0; accent-color:var(--accent); }
.ct-opt small{ color:var(--title-accent); font-weight:700; }
.ct-hint{ font-size:.85rem; margin:.6em 0 0; max-width:none; }
.cl-pct{ color:var(--title-accent); font-weight:700; font-size:.85rem; margin-left:.4em; }
.cl-waived{ color:var(--muted); font-size:.85rem; margin-left:.4em; }
.cart-line--waived .cl-price s{ color:var(--muted); font-weight:400; margin-right:.4em; }
.cart-align{ margin-top:var(--s8); padding:var(--s5); border:1px solid var(--line); border-radius:var(--radius); background:var(--surface-2); }
.cart-align h2{ font-size:1.15rem; margin-bottom:var(--s3); }
.ca-lead{ max-width:none; margin-bottom:var(--s4); }
.ca-note{ font-size:.85rem; max-width:none; }
.cl-reason{ margin:.35em 0 0; font-size:.9rem; color:var(--muted); max-width:none; }
/* r57/r58: pagina de dupa plata (/comanda/trimisa/) */
.thanks-sec .inner{ max-width:820px; }
.thanks-ref{ font-size:.9rem; font-variant-numeric:tabular-nums; margin-bottom:var(--s6); }
.thanks-steps{ grid-template-columns:1fr !important; }
.thanks-help{ margin-top:var(--s8); }

/* r50 (#1386, directiva "în lucru"): marcaj DISCRET — o promisiune, nu o reclamă */
b.soon,.soon{
  display:inline-block; font-weight:600; font-size:.78em; letter-spacing:.02em;
  color:var(--muted); background:var(--chip-bg); border-radius:999px;
  padding:.12em .65em; vertical-align:middle; white-space:nowrap;
}

/* ---- chrome: header/footer pe limbajul nou ---- */
.site-header{ background:rgba(246,244,255,.9); backdrop-filter:blur(10px); }
.site-footer{ background:var(--navy); }
.site-footer, .site-footer a{ color:#cfc8ee; }
.site-footer img{ filter:brightness(0) invert(1); }   /* logo alb pe închis — până la logo-ul nou (task amânat de Razvan) */

/* ---- eyebrow = pastilă albă cu umbră (peste chip-ul din §2) ---- */
.eyebrow{ background:var(--surface); border:1px solid var(--line-strong); color:var(--title-accent); box-shadow:var(--shadow-1); }

/* ---- butoane: pastile ---- */
.btn{ border-radius:999px; }
.btn-ghost{ color:var(--accent-deep); }

/* ---- cardurile: dunga în degrade sus (semnătura limbajului) ---- */
.grp, .cat-items .item, .srv-card, .res-card, .posts > *{
  border:0; border-top:3px solid; border-image:linear-gradient(90deg,#6d28d9,#db2777) 1;
  box-shadow:var(--shadow-1); border-radius:0 0 var(--radius-lg) var(--radius-lg);
}
.sec-bg .grp{ background:var(--surface-2); }
.grp-list li::before{ background:linear-gradient(135deg,#6d28d9,#db2777); }
.faq, details.faq{ background:var(--surface); border-color:var(--line); box-shadow:var(--shadow-1); }
.trust-badge{ background:var(--surface); border-radius:999px; padding:.45em 1em; box-shadow:var(--shadow-1); }
.trust-badge .tb-ico{ color:#a21caf; }

/* ---- finisajele verdictului r48 ---- */
.srv-card h3, .grp-label, .cat-items .item-title{ text-align:center; }
.srv-card .srv-from{ margin-top:auto; align-self:center; padding-top:var(--s3); }
.srv-card .srv-cta{ margin-top:0; align-self:center; }
.reassure-row{ display:flex; justify-content:center; margin-top:var(--s8); }
.grp-closing{ margin-top:var(--s10); max-width:80ch; }
/* grupul LAT ("Ce nu facem" — apare când Conținut pune `wide:true` pe grup în _groups.json) */
.grp-grid:has(> .grp-wide){ grid-template-columns:repeat(2, minmax(0,1fr)); align-items:stretch; }
.grp-wide{ grid-column:1 / -1; }
.grp-wide p{ max-width:none; margin:0; }

/* ---- infograficul de proces pe Acasă (clasa proc-flow o emite asamblorul) ---- */
.proc-flow{ counter-reset:step; }
.proc-flow .process-step{ background:transparent; border:0; box-shadow:none; padding:0; }
.proc-more{ text-align:center; margin-top:var(--s8); max-width:none; }   /* 62ch global l-ar îngusta și l-ar lipi stânga (măsurat r48) */
@media (min-width:1180px){
  .proc-flow{ grid-template-columns:repeat(4, minmax(0,1fr)) !important; gap:var(--s6); position:relative; }
  .proc-flow::before{ content:""; position:absolute; top:1.25rem; left:12.5%; right:12.5%;   /* DOAR între cifre (centrele coloanelor 1/4) — verdict r48 */
    border-top:2px dashed rgba(109,40,217,.35); }
  .proc-flow .process-step{ flex-direction:column; align-items:center; text-align:center; }
  .proc-flow .ps-num{ position:relative; z-index:1; outline:6px solid var(--bg); }
  .proc-flow .ps-note{ text-align:left; }
  .sec-bg .proc-flow .ps-num{ outline-color:var(--surface); }
}
.proc-flow .ps-num{ background:var(--grad-cta); color:#fff; box-shadow:0 6px 20px rgba(109,40,217,.35); }
.ps-note{ background:#faf7ff; border-left-color:#a21caf; }
.proc-more .link-arrow{ color:#a21caf; }

/* ---- întreaga lățime pe ecrane mari (≥1600) ---- */
@media (min-width:1600px){
  .grp-grid:has(> :nth-child(5):last-child),
  .srv-grid:has(> :nth-child(5):last-child){ grid-template-columns:repeat(5, minmax(0,1fr)); }
  .grp-grid:has(> :nth-child(5):last-child) > :nth-child(n),
  .srv-grid:has(> :nth-child(5):last-child) > :nth-child(n){ grid-column:auto; }  /* egalează specificitatea span-urilor din §17 — `> *` pierdea */
  .cat-items{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .grp-grid{ gap:var(--s8); }
  .faq-wrap{ max-width:1100px; }
  .proc-flow{ gap:var(--s10); }
}

/* ===== LAYERUL DE HELP (r60, verdict Razvan #1658 pe INVENTAR_HELP.md) — primitive comune: ⓘ+popover (H-04/H-05),
   banda de reluare (H-01), toastul de coș (H-03). Un singur stil de adâncime (bordură + umbră + fundal, regula 4),
   iconița în pastilă tentată (regula 8), stări vii (regula 10). Închiderea nu se blochează: Esc / ✕ / click în afară. ===== */
.help-wrap{ position:relative; display:inline-block; vertical-align:middle; }
.help-tip{
  display:inline-flex; align-items:center; justify-content:center; width:1.35em; height:1.35em; margin-left:.35em; padding:0;
  border:1px solid transparent; border-radius:999px; background:var(--chip-bg); color:var(--accent);
  font:700 .78em/1 inherit; font-family:inherit; cursor:pointer; vertical-align:-.1em;
  transition:background-color .15s, transform .15s, box-shadow .15s;
}
.help-tip:hover{ background:rgba(109,40,217,.16); transform:translateY(-1px); }
.help-tip:active{ transform:translateY(1px); box-shadow:inset 0 1px 2px rgba(30,27,75,.18); }
.help-tip[aria-expanded="true"]{ background:var(--accent); color:#fff; }
.help-pop{
  position:absolute; top:calc(100% + 8px); left:0; z-index:60; width:max-content; max-width:min(38ch, calc(100vw - 2rem));
  padding:var(--s3) var(--s4); border:1px solid var(--line); border-radius:12px; background:var(--surface);
  box-shadow:var(--shadow-2), inset 0 1px 0 rgba(255,255,255,.55); color:var(--text);
  font-size:.9rem; line-height:1.45; font-weight:400; text-align:left;
}
.help-pop.is-right{ left:auto; right:0; }
.help-pop p{ margin:0; max-width:none; }
.help-pop p + p{ margin-top:.5em; }
.help-band{
  display:flex; align-items:center; gap:var(--s3) var(--s4); flex-wrap:wrap; margin:0 0 var(--s5);
  padding:var(--s3) var(--s4); border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:12px;
  background:var(--surface-2); box-shadow:var(--shadow-1);
}
.help-band > p{ flex:1 1 24ch; margin:0; max-width:none; font-size:.95rem; }
.help-band > p b{ display:block; }
.help-band .btn{ padding:.45em .95em; font-size:.9rem; }
.help-band .x-btn{ margin-left:auto; }
.toast{
  position:fixed; left:50%; bottom:calc(var(--s5) + env(safe-area-inset-bottom, 0px)); z-index:150;
  display:flex; align-items:center; gap:var(--s3); max-width:calc(100vw - 2rem);
  padding:var(--s3) var(--s5); border:1px solid var(--line); border-radius:999px; background:var(--surface);
  box-shadow:var(--shadow-2), inset 0 1px 0 rgba(255,255,255,.55); color:var(--text); font-size:.95rem;
  transform:translate(-50%, 12px); opacity:0; pointer-events:none; transition:transform .2s, opacity .2s;
}
.toast.show{ transform:translate(-50%, 0); opacity:1; pointer-events:auto; }
.toast span,.toast a{ white-space:nowrap; }
.toast a{ color:var(--accent); font-weight:700; }
@media (prefers-reduced-motion: reduce){ .toast, .help-tip{ transition:none; } }

/* codul de recomandare/outreach in cos (#1665): camp rostibil + Aplica; starea sub camp */
.cart-code{ margin:var(--s6) 0 0; }
.cart-code > label{ display:block; font-weight:700; margin-bottom:var(--s2); }
.cart-code-row{ display:flex; gap:var(--s2); flex-wrap:wrap; }
.cart-code-row input{ flex:1 1 16ch; min-width:0; text-transform:uppercase; }
.cart-code-row input::placeholder{ text-transform:none; }
.cart-code-ok{ margin:var(--s2) 0 0; font-size:.9rem; color:var(--title-accent); font-weight:700; max-width:none; }
.cart-code .cart-error{ margin-top:var(--s2); }

/* «Adauga in cos» pe pagina de oferta (r62, H-03): sub pret, centrat; chip-urile de varianta refolosesc .ct-opt din cos */
.cp-buy{ margin-top:var(--s4); display:flex; flex-direction:column; align-items:center; gap:var(--s3); }
.cp-variants{ justify-content:center; }
.cp-buy .btn small{ font-weight:600; opacity:.85; margin-left:.35em; }
.cp-buy-name{ font-weight:700; }
.cp-buy + .cp-buy{ margin-top:var(--s5); padding-top:var(--s5); border-top:1px solid var(--line); }

/* H-06: «Esti aici» pe pasul curent (doar cu tokenul interviului) */
.process-step.is-here{ border-color:var(--accent); box-shadow:var(--shadow-2), inset 0 1px 0 rgba(255,255,255,.55); }
.process-step.is-here .ps-num{ background:var(--accent); }
.ps-here{ display:inline-block; margin-bottom:var(--s2); padding:.2em .7em; border-radius:999px; background:var(--chip-bg); color:var(--accent); font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
/* H-07: intentia de iesire (pagina de produs, desktop, o data) */
.exit-intent{ position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:var(--s5); }
.exit-backdrop{ position:absolute; inset:0; background:rgba(32,26,77,.45); backdrop-filter:blur(2px); }
.exit-box{ position:relative; max-width:34rem; width:100%; padding:var(--s8) var(--s8) var(--s6); border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow-2), inset 0 1px 0 rgba(255,255,255,.55); text-align:center; }
.exit-x{ position:absolute; top:var(--s3); right:var(--s3); }
.exit-title{ margin:0 0 var(--s3); font-size:1.5rem; line-height:1.2; text-wrap:pretty; }
.exit-body{ margin:0 auto var(--s5); max-width:40ch; color:var(--muted); }
/* H-02: randul de stare «salvat» — aceeasi familie cu .help-band (bordura + fundal), fara actiuni */
.cnt-form [data-interview-saved]{ margin:0 0 var(--s5); padding:var(--s3) var(--s4); border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:12px; background:var(--surface-2); font-size:.95rem; max-width:none; }

/* #1702.1: comutatorul de gazduire pe linia automata de mentenanta */
.cl-host{ display:flex; align-items:flex-start; gap:.5em; margin:.5em 0 0; padding:.45em .8em; border:1px solid var(--line-strong); border-radius:12px; font-size:.85rem; font-weight:400; line-height:1.4; cursor:pointer; background:var(--surface); max-width:none; }
.cl-host-off{ margin:.35em 0 0; font-size:.85rem; color:var(--muted); max-width:none; }
.cl-host input{ margin:.25em 0 0; accent-color:var(--accent); }
.cl-host:has(input:checked){ border-color:var(--accent); background:var(--chip-bg); }
.cp-buy .cp-note{ margin:0; font-size:.9rem; color:var(--muted); max-width:none; text-align:center; }
/* selectorul de TERMEN pe pagina de produs (verdict Razvan 22 sep): acelasi limbaj ca in /cos (.ct-opt),
   dar SUBORDONAT variantei — legenda mica, spatiere mai stransa: intai alegi CE iei, apoi CUM platesti. */
.cp-terms{ border:0; margin:var(--s4) 0 0; padding:0; text-align:center; }
.cp-terms legend{ padding:0; font-size:.85rem; font-weight:600; color:var(--muted); }
.cp-terms .ct-opts{ justify-content:center; }
.cp-terms .ct-opt{ padding:.35em .75em; font-size:.9rem; }
.cp-terms .ct-opt small{ color:var(--accent); font-weight:700; }

/* nota de TERMEN sub controlul de cumparare (#1861 pct. 2): de ce «de la 9 €» de sus difera de «€15/luna» de pe
   chip/buton. Sub chip-uri, mai mica decat ele, o singura data pe ecran — explica, nu concureaza. */
.cp-term-note{ margin:var(--s3) auto 0; font-size:.85rem; line-height:1.45; color:var(--muted); max-width:44ch; text-align:center; text-wrap:pretty; }
.toast-msg{ white-space:normal; }

/* #1721: TVA in sumar — subtotalul devine rand secundar, totalul cu TVA e cel mare */
.cart-summary:has(.cart-total--vat:not([hidden])) .cart-sub{ font-size:1rem; color:var(--muted); }
.cart-summary:has(.cart-total--vat:not([hidden])) .cart-sub b{ font-weight:600; }
.cart-vat{ margin:0; font-size:1rem; color:var(--muted); max-width:none; }
.cart-total--vat{ margin-top:var(--s2); padding-top:var(--s2); border-top:1px solid var(--line); }
.cart-credit b{ color:var(--title-accent); }
.cart-credit-note{ margin:0; font-size:.85rem; max-width:none; text-align:right; }
.ps-avans{ margin:var(--s3) 0 var(--s2); }

/* rambursarea avansului (#1754): banda + confirmarea in doi pasi */
.refund-band{ border-left-color:var(--title-accent); }
.refund-confirm{ display:inline-flex; gap:var(--s2); flex-wrap:wrap; }
.refund-msg{ flex-basis:100%; margin:0; max-width:none; font-size:.95rem; }
.refund-msg.is-bad{ color:#b42318; font-weight:600; }

/* #1760: bifele de credit (§6g) + pasul parolei pe multumire */
.cart-credit-note{ text-align:left; display:grid; gap:.35em; }
.cc-row{ display:flex; justify-content:space-between; gap:var(--s3); flex-wrap:wrap; align-items:center; }
.cc-kept{ color:var(--text); }
.cc-keep{ display:inline-flex; align-items:center; gap:.4em; font-weight:400; white-space:nowrap; cursor:pointer; }
.cc-keep input{ margin:0; accent-color:var(--accent); }
.thanks-pass{ margin-bottom:var(--s6); }
.thanks-pass.is-done{ border-left-color:#1f8a4c; }
.thanks-google{ margin-bottom:var(--s6); }
.thanks-progress{ font-size:.85rem; margin-left:auto; }
