/* ============================================================
   SafeX360 — funnel-uri „o întrebare pe ecran” + secțiunile noi
   (generator AI, lansatorul de programare, CTA-urile noi).

   Overlay-ul are tema LUMINOASĂ, caldă — un „mod de concentrare”
   separat de site-ul întunecat, în stilul Hims & Hers: o întrebare
   mare, opțiuni late, progres sus, nimic altceva pe ecran.
   Stratul (z-index 1400) stă peste nav (1000), meniul mobil (1050) și
   CTA-ul fix (950), dar sub preloader (1500), cursorul custom (1600 în
   versiunea comisă a style.css, maxim în cea nouă — vezi
   tests/cursor_layer_test.js) și bannerul de cookie-uri (9999).
   ============================================================ */

.fnl{
  --f-bg:#F6F2EC; --f-card:#FFFFFF; --f-ink:#16181C; --f-muted:#5D626B; --f-faint:#8A8F98;
  --f-line:#E3DCD2; --f-line-strong:#CFC6B9; --f-accent:#E07A1F; --f-accent-soft:#FCEBDA;
  --f-ok:#2F8F4E; --f-bad:#C2412D;
  position:fixed; inset:0; z-index:1400; display:flex; flex-direction:column;
  background:var(--f-bg); color:var(--f-ink); font-family:var(--font-body);
  opacity:0; transform:translateY(14px); transition:opacity .26s var(--ease-standard), transform .32s var(--ease-reveal);
}
.fnl[hidden]{display:none}
.fnl.is-open{opacity:1; transform:none}
html.fnl-open{overflow:hidden}

.fnl__top{display:flex; align-items:center; justify-content:space-between; height:64px; padding:0 clamp(12px,3vw,28px); flex:none}
.fnl__brand{font-family:var(--font-display); font-weight:700; font-size:1.1rem; color:var(--f-accent); letter-spacing:-.01em}
.fnl__brand em{font-style:normal; color:var(--f-ink)}
.fnl__back,.fnl__close{display:inline-flex; align-items:center; gap:.4rem; min-width:44px; height:44px; padding:0 .7rem;
  border:0; border-radius:999px; background:transparent; color:var(--f-ink); font:600 .92rem var(--font-body); cursor:pointer;
  transition:background-color .2s}
.fnl__back:hover,.fnl__close:hover{background:rgba(22,24,28,.06)}
.fnl__close{justify-content:center; font-size:1.05rem}
.fnl__progress{height:3px; background:var(--f-line); flex:none}
.fnl__progress span{display:block; height:100%; width:4%; background:var(--f-ink); border-radius:0 3px 3px 0;
  transition:width .45s var(--ease-reveal)}

.fnl__stage{position:relative; flex:1; overflow-y:auto; overflow-x:hidden; -webkit-overflow-scrolling:touch}
.fnl__step{max-width:600px; margin:0 auto; padding:clamp(28px,7vh,72px) 20px 120px;
  transition:opacity .22s var(--ease-standard), transform .3s var(--ease-reveal)}
.fnl__step.is-entering{opacity:0; transform:translateX(36px)}
.fnl__step.is-entering-back{opacity:0; transform:translateX(-36px)}
.fnl__step.is-leaving,.fnl__step.is-leaving-back{position:absolute; left:0; right:0; top:0; pointer-events:none; opacity:0}
.fnl__step.is-leaving{transform:translateX(-36px)}
.fnl__step.is-leaving-back{transform:translateX(36px)}

.fnl__kicker{font-family:var(--font-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--f-accent); margin-bottom:.9rem}
.fnl__q{font-family:var(--font-display); font-size:clamp(1.65rem,4.6vw,2.45rem); font-weight:600; line-height:1.12;
  letter-spacing:-.02em; margin-bottom:.75rem; outline:none}
.fnl__sub{color:var(--f-muted); font-size:1.02rem; line-height:1.55; margin-bottom:1.6rem; max-width:52ch}
.fnl__sub b{color:var(--f-ink)}
.fnl__body{margin-top:1.4rem}
.fnl__err{min-height:1.4em; margin-top:.8rem; color:var(--f-bad); font-size:.92rem; font-weight:500}
.fnl__err.is-shake{animation:fnl-shake .38s var(--ease-standard)}
@keyframes fnl-shake{20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
.fnl__trust{margin-top:1.4rem; font-size:.84rem; color:var(--f-faint)}
.fnl__hpform{position:absolute!important; left:-9999px; top:0; width:1px; height:1px; overflow:hidden; margin:0}
.fnl__hp{position:absolute!important; left:-9999px; width:1px; height:1px; opacity:0}

/* ---------- opțiuni ---------- */
.fopts{display:grid; gap:10px}
.fopts--2{grid-template-columns:1fr 1fr}
.fopt{display:flex; align-items:center; gap:14px; width:100%; min-height:62px; padding:14px 16px; text-align:left;
  background:var(--f-card); color:var(--f-ink); border:1.5px solid var(--f-line); border-radius:14px; cursor:pointer;
  font:inherit; transition:border-color .18s, box-shadow .18s, transform .18s var(--ease-magnet), background-color .18s}
.fopt:hover{border-color:var(--f-ink); box-shadow:0 6px 18px rgba(22,24,28,.07); transform:translateY(-1px)}
.fopt:active{transform:scale(.99)}
.fopt.is-selected{border-color:var(--f-ink); background:#FFFDFB; box-shadow:inset 0 0 0 1.5px var(--f-ink)}
.fopt__body{flex:1; display:flex; flex-direction:column; gap:2px}
.fopt__body b{font-weight:600; font-size:1rem; line-height:1.3}
.fopt__body small{color:var(--f-muted); font-size:.85rem; line-height:1.35}
.fopt__icon{display:flex; width:40px; height:40px; flex:none; align-items:center; justify-content:center; border-radius:10px;
  background:var(--f-accent-soft); color:var(--f-accent)}
.fopt__icon svg{width:22px; height:22px}
.fopt__key{flex:none; width:24px; height:24px; border:1px solid var(--f-line-strong); border-radius:6px; display:flex;
  align-items:center; justify-content:center; font-family:var(--font-mono); font-size:.7rem; color:var(--f-faint)}
.fopt.is-selected .fopt__key{background:var(--f-ink); color:#fff; border-color:var(--f-ink)}
.fopt__check{flex:none; width:22px; height:22px; border:1.5px solid var(--f-line-strong); border-radius:6px; position:relative; transition:background-color .15s, border-color .15s}
.fopt.is-selected .fopt__check{background:var(--f-ink); border-color:var(--f-ink)}
.fopt.is-selected .fopt__check::after{content:""; position:absolute; left:6px; top:2px; width:6px; height:11px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg)}
.fopt--multi{min-height:56px}

/* ---------- câmpuri text ---------- */
.finput{width:100%; height:62px; padding:0 18px; background:var(--f-card); color:var(--f-ink); border:1.5px solid var(--f-line);
  border-radius:14px; font:500 1.15rem var(--font-body); transition:border-color .18s, box-shadow .18s}
.finput::placeholder{color:#A9ADB4; font-weight:400}
.finput:focus{outline:none; border-color:var(--f-ink); box-shadow:0 0 0 4px rgba(22,24,28,.08)}
.finput--sm{height:52px; font-size:1rem; margin-top:12px}
.fchips{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px}
.fchip{padding:8px 14px; border-radius:999px; border:1px solid var(--f-line-strong); background:transparent; color:var(--f-ink);
  font:500 .88rem var(--font-body); cursor:pointer; transition:background-color .15s, border-color .15s}
.fchip:hover{background:var(--f-card); border-color:var(--f-ink)}
.fcheck{display:flex; gap:12px; align-items:flex-start; margin-top:18px; font-size:.9rem; line-height:1.5; color:var(--f-muted); cursor:pointer}
.fcheck input{flex:none; width:20px; height:20px; margin-top:2px; accent-color:var(--f-ink)}
.fcheck a{color:var(--f-ink); text-decoration:underline}
.fcheck--soft{font-size:.84rem; color:var(--f-faint)}

/* ---------- butoane ---------- */
.fnl__foot{display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:1.4rem}
.fnl__foot--stack{flex-direction:column; align-items:stretch}
.fnl__next{display:inline-flex; align-items:center; justify-content:center; min-width:200px; height:56px; padding:0 28px;
  border:0; border-radius:999px; background:var(--f-ink); color:#fff; font:600 1rem var(--font-body); cursor:pointer;
  text-decoration:none; transition:transform .2s var(--ease-magnet), box-shadow .2s, background-color .2s}
.fnl__next:hover{transform:translateY(-1px); box-shadow:0 10px 24px rgba(22,24,28,.18)}
.fnl__next:active{transform:scale(.98)}
.fnl__next--accent{background:var(--f-accent)}
.fnl__skip{border:0; background:transparent; color:var(--f-muted); font:600 .95rem var(--font-body); padding:12px 14px;
  cursor:pointer; text-decoration:underline; text-underline-offset:3px}
.fnl__skip:hover{color:var(--f-ink)}

/* ---------- calendar + ore ---------- */
.fdays{display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:10px}
.fday{display:flex; flex-direction:column; align-items:center; gap:2px; padding:14px 8px; background:var(--f-card);
  border:1.5px solid var(--f-line); border-radius:14px; color:var(--f-ink); font:inherit; cursor:pointer;
  transition:border-color .18s, transform .18s var(--ease-magnet), box-shadow .18s}
.fday:hover{border-color:var(--f-ink); transform:translateY(-1px); box-shadow:0 6px 18px rgba(22,24,28,.07)}
.fday small{font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; color:var(--f-muted)}
.fday b{font-family:var(--font-display); font-size:1.6rem; line-height:1.1}
.fday span{font-size:.8rem; color:var(--f-muted)}
.fday.is-selected{background:var(--f-ink); color:#fff; border-color:var(--f-ink)}
.fday.is-selected small,.fday.is-selected span{color:#D9DCE1}
.fslots{display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:10px}
.fslot{height:52px; border-radius:12px; border:1.5px solid var(--f-line); background:var(--f-card); color:var(--f-ink);
  font:600 1rem var(--font-mono); cursor:pointer; transition:border-color .15s, background-color .15s}
.fslot:hover{border-color:var(--f-ink)}
.fslot.is-selected{background:var(--f-ink); color:#fff; border-color:var(--f-ink)}
.fday--skeleton,.fslot--skeleton{height:86px; border-radius:14px; background:linear-gradient(90deg,#ECE6DD 0%,#F4EFE8 50%,#ECE6DD 100%);
  background-size:200% 100%; animation:fnl-skel 1.2s linear infinite}
.fslot--skeleton{height:52px}
@keyframes fnl-skel{to{background-position:-200% 0}}

/* ---------- ecranul „boost” ---------- */
.fpaper{position:relative; max-width:340px; margin:1.6rem 0; padding:22px 22px 26px; background:var(--f-card); border:1px solid var(--f-line);
  border-radius:12px; box-shadow:0 18px 40px rgba(22,24,28,.08); transform:rotate(-1.2deg)}
.fpaper__type{font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; color:var(--f-accent); margin-bottom:.3rem}
.fpaper__title{font-family:var(--font-display); font-weight:600; font-size:1.15rem; margin-bottom:.9rem}
.fpaper__line{display:block; height:7px; width:var(--w); margin-bottom:8px; border-radius:4px; background:#EEE9E1;
  animation:fnl-line 1.4s var(--ease-reveal) both}
.fpaper__line:nth-child(4){animation-delay:.15s}.fpaper__line:nth-child(5){animation-delay:.3s}.fpaper__line:nth-child(6){animation-delay:.45s}
@keyframes fnl-line{from{width:0}}
.fbenefits{list-style:none; display:grid; gap:10px; margin:0 0 .4rem}
.fbenefits li{position:relative; padding-left:30px; color:var(--f-muted); line-height:1.45}
.fbenefits li::before{content:""; position:absolute; left:0; top:2px; width:20px; height:20px; border-radius:50%; background:var(--f-accent-soft)}
.fbenefits li::after{content:""; position:absolute; left:7px; top:6px; width:5px; height:9px; border:solid var(--f-accent); border-width:0 2px 2px 0; transform:rotate(45deg)}
.fbenefits b{color:var(--f-ink)}

/* ---------- încărcare ---------- */
.fload{display:flex; flex-direction:column; align-items:flex-start}
.fload__ring{width:56px; height:56px; border-radius:50%; border:3px solid var(--f-line); border-top-color:var(--f-ink);
  animation:fnl-spin .9s linear infinite; margin-bottom:1.6rem}
@keyframes fnl-spin{to{transform:rotate(360deg)}}
.fload__list{list-style:none; display:grid; gap:12px; align-content:start; margin:1rem 0 1.6rem; min-height:170px}
.fload__list li{position:relative; padding-left:32px; color:var(--f-ink); animation:fnl-in .35s var(--ease-reveal)}
.fload__list li::before{content:""; position:absolute; left:0; top:2px; width:18px; height:18px; border-radius:50%;
  border:2px solid var(--f-line-strong); border-top-color:var(--f-ink); animation:fnl-spin .8s linear infinite}
.fload__list li.is-done{color:var(--f-muted)}
.fload__list li.is-done::before{animation:none; border-color:var(--f-ok); background:var(--f-ok)}
.fload__list li.is-done::after{content:""; position:absolute; left:6px; top:5px; width:5px; height:9px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg)}
@keyframes fnl-in{from{opacity:0; transform:translateY(6px)}}
.fload__bar{width:100%; height:6px; border-radius:6px; background:var(--f-line); overflow:hidden}
.fload__bar span{display:block; height:100%; width:0; background:var(--f-ink); border-radius:6px; transition:width .3s var(--ease-standard)}

/* ---------- rezultate ---------- */
.fdone{width:64px; height:64px; color:var(--f-ok); margin-bottom:1.2rem; animation:fnl-pop .5s var(--ease-magnet)}
.fdone svg{width:100%; height:100%}
@keyframes fnl-pop{from{transform:scale(.6); opacity:0}}
.fupsell{margin-top:2rem; padding:24px; border-radius:18px; background:var(--f-ink); color:#F4F4F5}
.fupsell__eyebrow{font-family:var(--font-mono); font-size:.7rem; letter-spacing:.12em; color:#FFB36B; margin-bottom:.5rem}
.fupsell h3{font-family:var(--font-display); font-size:1.35rem; line-height:1.2; margin-bottom:.5rem}
.fupsell p{color:#C9CCD2; margin-bottom:1.1rem; line-height:1.5}
.fupsell .fnl__next{width:100%; margin-bottom:6px}
.fupsell .fnl__skip{color:#C9CCD2; width:100%}
.fticket{display:flex; flex-direction:column; gap:2px; margin:1rem 0 1.2rem; padding:18px 20px; border-radius:14px;
  background:var(--f-card); border:1.5px dashed var(--f-line-strong)}
.fticket b{font-family:var(--font-display); font-size:1.3rem; text-transform:capitalize}
.fticket b.fticket__doc{font-size:1.1rem; text-transform:none; line-height:1.3}
/* „Ce urmează” după cererea de document: pregătim → email → telefon */
.fnext{list-style:none; counter-reset:n; display:grid; gap:12px; margin:0 0 1.2rem}
.fnext li{counter-increment:n; position:relative; padding-left:40px; color:var(--f-muted); line-height:1.45}
.fnext li::before{content:counter(n); position:absolute; left:0; top:-2px; width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; background:var(--f-ink); color:#fff; font:700 .8rem var(--font-mono)}
.fnext b{color:var(--f-ink)}
.fticket span{color:var(--f-muted); font-family:var(--font-mono); font-size:.9rem}
.fplan{margin:1.2rem 0 .6rem; padding:24px; border-radius:18px; background:var(--f-card); border:1.5px solid var(--f-ink); box-shadow:0 18px 40px rgba(22,24,28,.08)}
.fplan__name{font-family:var(--font-display); font-weight:700; font-size:1.6rem; letter-spacing:.03em}
.fplan__fit{color:var(--f-muted); margin-bottom:1rem}
.fplan__row{display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-top:1px solid var(--f-line)}
.fplan__row span{color:var(--f-muted)}
.fplan__row b{font-family:var(--font-mono)}
.fplan ul{list-style:none; display:grid; gap:8px; margin-top:1rem}
.fplan li{position:relative; padding-left:24px; color:var(--f-ink); font-size:.95rem}
.fplan li::before{content:"✓"; position:absolute; left:0; color:var(--f-ok); font-weight:700}
.fplan__promo{margin-top:.9rem; padding:.75rem .9rem; border-radius:12px; background:rgba(255,90,54,.1); border:1px solid rgba(255,90,54,.35); color:var(--f-ink); font-size:.9rem; line-height:1.45}
.fplan__promo b{color:#D9431F}

@media (max-width:640px){
  .fnl__backtxt{display:none}
  .fopts--2{grid-template-columns:1fr}
  .fnl__step{padding-bottom:140px}
  /* Pe telefon butonul principal stă jos, la îndemâna degetului mare. */
  .fnl__step--text .fnl__foot,.fnl__step--multi .fnl__foot,.fnl__step--info .fnl__foot{position:fixed; left:0; right:0; bottom:0; z-index:2;
    margin:0; padding:14px 20px calc(14px + env(safe-area-inset-bottom)); background:linear-gradient(180deg,rgba(246,242,236,0),var(--f-bg) 34%)}
  .fnl__step--text .fnl__next,.fnl__step--multi .fnl__next,.fnl__step--info .fnl__next{flex:1}

}
@media (prefers-reduced-motion:reduce){
  .fnl,.fnl__step,.fnl__progress span{transition:none}
  .fload__ring,.fload__list li::before,.fday--skeleton,.fslot--skeleton{animation:none}
}

/* ============================================================
   Site (temă întunecată): secțiunea „generator” + CTA-urile noi
   ============================================================ */

/* nav: eticheta „gratuit” */
.nav__link--gen{display:inline-flex; align-items:center; gap:.4rem}
.nav__badge{font-family:var(--font-mono); font-size:.58rem; letter-spacing:.08em; padding:.12rem .4rem; border-radius:999px;
  background:var(--signal); color:#14100a; font-weight:700}

/* hero: pastila „NOU” */
.hero__new{display:inline-flex; align-items:center; gap:.6rem; margin-bottom:1.3rem; padding:.42rem .5rem .42rem .42rem;
  border:1px solid rgba(255,158,64,.45); border-radius:999px; background:rgba(255,158,64,.08); color:var(--text);
  font-size:.86rem; transition:border-color .25s, background-color .25s, transform .25s var(--ease-magnet)}
.hero__new:hover{border-color:var(--signal); background:rgba(255,158,64,.14); transform:translateY(-1px)}
.hero__new b{font-family:var(--font-mono); font-size:.62rem; letter-spacing:.1em; padding:.22rem .55rem; border-radius:999px; background:var(--signal); color:#14100a}
.hero__new i{font-style:normal; color:var(--signal); transition:transform .25s var(--ease-reveal)}
.hero__new:hover i{transform:translateX(3px)}

/* demo: CTA spre documentul real — bandă plină sub demo, text scurt;
   se aprinde (.is-hot) imediat după o generare, când interesul e maxim */
.demo__real{position:relative; display:flex; align-items:center; gap:1rem; margin-top:clamp(.8rem,1.4vw,1.1rem);
  padding:1rem 1rem 1rem 1.1rem; border:1px solid rgba(255,158,64,.55); border-radius:var(--r-lg); overflow:hidden;
  background:linear-gradient(100deg,rgba(255,158,64,.2),rgba(255,158,64,.05) 55%,rgba(255,158,64,.13)); color:var(--text);
  transition:border-color .25s, transform .25s var(--ease-magnet), box-shadow .3s}
.demo__real::after{content:""; position:absolute; inset:0; pointer-events:none; transform:translateX(-100%);
  background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%); animation:real-sheen 4.5s 1s ease-in-out infinite}
@keyframes real-sheen{0%,60%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.demo__real:hover{border-color:var(--signal); transform:translateY(-2px); box-shadow:0 14px 40px rgba(255,158,64,.18)}
.demo__real-ico{display:grid; place-items:center; width:46px; height:46px; flex:none; border-radius:12px;
  background:var(--signal); color:#14100a; box-shadow:0 0 22px var(--signal-glow)}
.demo__real-txt{display:flex; flex-direction:column; flex:1; min-width:0; line-height:1.3}
.demo__real-txt b{font-family:var(--font-display); font-size:clamp(1.05rem,1.6vw,1.25rem); font-weight:650}
.demo__real-txt span{color:var(--muted); font-size:.88rem}
.demo__real-go{display:inline-flex; align-items:center; gap:.45rem; flex:none; padding:.75rem 1.3rem; border-radius:999px;
  background:var(--signal); color:#14100a; font-weight:600; font-size:.92rem; transition:box-shadow .3s}
.demo__real-go svg{transition:transform .25s var(--ease-reveal)}
.demo__real:hover .demo__real-go{box-shadow:0 0 24px var(--signal-glow)}
.demo__real:hover .demo__real-go svg{transform:translateX(3px)}
.demo__real.is-hot{animation:real-hot 1.4s var(--ease-reveal) 2}
@keyframes real-hot{0%{box-shadow:0 0 0 0 rgba(255,158,64,.6)}70%{box-shadow:0 0 0 18px rgba(255,158,64,0)}100%{box-shadow:0 0 0 0 rgba(255,158,64,0)}}
@media (max-width:560px){
  .demo__real{flex-wrap:wrap}
  .demo__real-go{width:100%; justify-content:center}
}
@media (prefers-reduced-motion:reduce){.demo__real::after{display:none}}

/* secțiunea generatorului */
.section--gen{background:radial-gradient(80% 70% at 85% 15%,rgba(255,158,64,.07),transparent 60%),var(--bg-deep);
  border-top:1px solid var(--border-soft); border-bottom:1px solid var(--border-soft)}
.gen{display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(1.4rem,3vw,2.6rem); align-items:start}
.gen__cards{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
.gcard{position:relative; display:flex; flex-direction:column; gap:.5rem; min-height:172px; padding:1.4rem; text-align:left;
  background:var(--panel); border:1px solid var(--border); border-radius:var(--r-lg); color:var(--text); font:inherit; cursor:pointer;
  overflow:hidden; transition:border-color .3s, transform .2s ease-out, box-shadow .3s}
.gcard::after{content:""; position:absolute; inset:0; background:radial-gradient(70% 60% at 100% 0%,rgba(255,158,64,.12),transparent 70%);
  opacity:0; transition:opacity .3s}
.gcard:hover{border-color:rgba(255,158,64,.55); box-shadow:0 18px 50px rgba(0,0,0,.35)}
.gcard:hover::after{opacity:1}
.gcard__icon{display:flex; width:42px; height:42px; align-items:center; justify-content:center; border-radius:12px;
  background:var(--signal-soft); color:var(--signal); margin-bottom:.3rem}
.gcard__icon svg{width:22px; height:22px}
.gcard b{font-family:var(--font-display); font-size:1.12rem; font-weight:650; line-height:1.25}
.gcard span{color:var(--muted); font-size:.88rem; line-height:1.45}
/* `.gcard .gcard__go` / `.gcard .gcard__txt`: `.gcard span` e mai specific
   decât o singură clasă și făcea gri și „CERE GRATUIT", și titlul cardului lat. */
.gcard .gcard__go{margin-top:auto; padding-top:.6rem; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em; color:var(--signal)}
.gcard .gcard__txt{color:var(--text)}
.gcard--wide{grid-column:1 / -1; min-height:auto; flex-direction:row; align-items:center; gap:1rem}
.gcard--wide .gcard__icon{margin:0; flex:none}
.gcard--wide .gcard__go{margin:0 0 0 auto; padding:0; white-space:nowrap}
.gcard__txt{display:flex; flex-direction:column; gap:.3rem}
.gen__aside{position:sticky; top:calc(var(--nav-h) + 1.5rem); background:var(--panel); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:1.6rem}
.gen__aside h3{font-family:var(--font-display); font-size:1.2rem; font-weight:650; margin-bottom:1rem}
.gen__steps{list-style:none; counter-reset:g; display:grid; gap:1rem; margin-bottom:1.4rem}
.gen__steps li{counter-increment:g; position:relative; padding-left:2.6rem; color:var(--muted); font-size:.92rem; line-height:1.45}
.gen__steps li::before{content:counter(g); position:absolute; left:0; top:-2px; width:1.8rem; height:1.8rem; border-radius:50%;
  display:flex; align-items:center; justify-content:center; background:var(--signal-soft); color:var(--signal);
  font-family:var(--font-mono); font-size:.78rem; font-weight:700}
.gen__steps b{color:var(--text)}
.gen__trust{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.2rem}
.gen__trust span{font-size:.74rem; color:var(--faint); border:1px solid var(--border); border-radius:999px; padding:.25rem .65rem}

/* prețuri: testul */
.pricing__quiz{display:inline-flex; align-items:center; gap:.5rem; margin-left:.4rem; color:var(--signal); font-weight:600;
  border-bottom:1px solid rgba(255,158,64,.4); transition:border-color .25s}
.pricing__quiz:hover{border-color:var(--signal)}

/* contact: lansatorul de programare */
.launch__eyebrow{font-size:.7rem; letter-spacing:.14em; color:var(--signal); margin-bottom:.8rem}
.launch__days{display:grid; grid-template-columns:repeat(5,1fr); gap:.6rem; margin:1.2rem 0 1rem; min-height:92px}
.launch__day{display:flex; flex-direction:column; align-items:center; gap:2px; padding:.9rem .3rem; background:var(--bg);
  border:1px solid var(--border); border-radius:var(--r-md); color:var(--text); font:inherit; cursor:pointer;
  transition:border-color .2s, transform .2s var(--ease-magnet), background-color .2s}
.launch__day:hover{border-color:var(--signal); background:var(--signal-soft); transform:translateY(-2px)}
.launch__day small{font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--faint)}
.launch__day b{font-family:var(--font-display); font-size:1.5rem; line-height:1.1}
.launch__day span{font-size:.75rem; color:var(--muted)}
.launch__skel{min-height:92px; border-radius:var(--r-md); background:linear-gradient(90deg,var(--panel) 0%,var(--panel-2) 50%,var(--panel) 100%);
  background-size:200% 100%; animation:fnl-skel 1.2s linear infinite}
.launch__more{width:100%; padding:.95rem 1rem; border-radius:999px; border:1px solid var(--border); background:transparent;
  color:var(--text); font:600 .92rem var(--font-body); cursor:pointer; transition:border-color .25s, background-color .25s}
.launch__more:hover{border-color:var(--signal); background:var(--signal-soft)}
.launch__empty{grid-column:1 / -1; color:var(--muted); font-size:.9rem}
.launch__or{display:flex; align-items:center; gap:.8rem; margin:1.2rem 0; color:var(--faint); font-size:.78rem}
.launch__or::before,.launch__or::after{content:""; flex:1; height:1px; background:var(--border)}

@media (max-width:1080px){
  .gen{grid-template-columns:1fr}
  .gen__aside{position:static}
}
@media (max-width:640px){
  .gen__cards{grid-template-columns:1fr}
  .gcard{min-height:auto}
  .gcard--wide{flex-direction:column; align-items:flex-start; gap:.5rem}
  .gcard--wide .gcard__icon{margin-bottom:.3rem}
  .gcard--wide .gcard__go{margin:0; padding-top:.6rem}
  .launch__days{grid-template-columns:repeat(3,1fr)}
  .launch__days .launch__day:nth-child(n+4){display:none}
  /* Telefon: cele 5 documente încap pe un ecran — icon în stânga, rând compact,
     ca alegerea să se vadă dintr-o privire, ca pe desktop. */
  .gen__cards{gap:.6rem}
  .gen__cards .gcard{display:grid; grid-template-columns:auto 1fr; column-gap:.9rem; row-gap:.15rem; align-items:start;
    min-height:0; padding:1rem 1.05rem}
  .gen__cards .gcard__icon{grid-row:span 3; width:38px; height:38px; margin:0}
  .gen__cards .gcard b{font-size:1.04rem}
  .gen__cards .gcard span{font-size:.85rem}
  .gen__cards .gcard .gcard__go{margin:0; padding-top:.3rem; font-size:.68rem}
  .gen__aside{padding:1.3rem 1.2rem}
}
