/* ============================================================
   Baseclip — home pubblica (baseclip.it)
   Costruita sopra theme.css, che porta marchio, tinte e raggi.

   IL FILO CON LA CONSOLE, E IL VESTITO DIVERSO
   La console (app.baseclip.it) e questa pagina condividono il marchio,
   l'indaco e la regola che IL COLORE SIGNIFICA. Non condividono il
   vestito: la console deve far lavorare, questa deve convincere. Qui
   c'e' piu' aria, tipografia piu' grande, e la fotografia del prodotto.

   REGOLE DI QUESTA PAGINA
   1. UN accento solo: l'indaco. Il verde compare SOLO nel blocco
      trasparenza, dove significa "al sicuro, a norma" (come nella
      console significa "linea viva, consegnato"). Niente pesca, niente
      lilla, niente colore assegnato a rotazione.
   2. UNA famiglia di layout per sezione. Prima erano cinque griglie di
      riquadri identiche: scorrendo, quattro sezioni sembravano la stessa.
   3. Il prodotto si mostra, non si racconta: le immagini sono schermate
      vere della console, renderizzate con clienti inventati (nessun dato
      di persone reali e' mai uscito da qui).
   ============================================================ */

:root{
  /* i "fatti" tecnici in mono, come nella console: e' il filo tipografico */
  --mono:'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  --nav-h:68px;
}

/* ---------- impianto ---------- */
.band{padding:var(--pad-section) 0}
.band.stretta{padding:calc(var(--pad-section) * .66) 0}
h2{font-size:clamp(28px,3.5vw,44px); letter-spacing:-.025em; line-height:1.08}
h3{font-size:19px; letter-spacing:-.015em}
.lede{font-size:clamp(17px,1.5vw,19px); color:var(--muted); line-height:1.6; max-width:34rem; margin-top:16px}
.sec-head{max-width:46rem; margin-bottom:clamp(34px,4.5vw,56px)}
.kicker{font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase; color:var(--faint); margin-bottom:14px}
em{font-style:normal; color:var(--brand)}

/* ---------- barra alta ---------- */
.nav{position:sticky; top:0; z-index:50; height:var(--nav-h); display:flex; align-items:center;
  background:rgba(253,253,255,.86); backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent; transition:border-color .2s ease, background .2s ease}
.nav.scrolled{border-bottom-color:var(--line); background:rgba(253,253,255,.94)}
/* flex:1 perché .wrap qui è un ELEMENTO flex: senza, si stringe sul contenuto
   e i margini auto lo centrano invece di allinearlo al resto della pagina. */
.nav-in{flex:1; display:flex; align-items:center; gap:26px}
.logo{font-size:21px; font-weight:800; letter-spacing:-.03em; color:var(--ink); text-decoration:none}
.logo span{color:var(--brand)}
.nav-links{display:flex; gap:4px; margin-left:14px}
.nav-links .lnk{font-size:15px; font-weight:500; color:var(--muted); text-decoration:none;
  padding:8px 12px; border-radius:var(--r-xs); transition:color .15s ease, background .15s ease}
.nav-links .lnk:hover{color:var(--ink); background:var(--soft)}
.nav-cta{margin-left:auto; display:flex; align-items:center; gap:14px}
.nav-login{font-size:15px; font-weight:600; color:var(--ink); text-decoration:none}
.nav-login:hover{color:var(--brand)}

/* Menu del telefono: <details>, funziona anche senza JS.
   Prima sotto gli 860px sparivano le voci e sotto i 520 anche "Accedi":
   da telefono non c'era piu' modo di entrare nell'app. */
.menu{display:none; position:relative}
.menu>summary{list-style:none; cursor:pointer; width:42px; height:42px; display:flex; align-items:center;
  justify-content:center; border:1px solid var(--line); border-radius:var(--r-xs); background:var(--surface)}
.menu>summary::-webkit-details-marker{display:none}
.menu[open]>summary{background:var(--soft)}
.menu-panel{position:absolute; right:0; top:calc(100% + 10px); width:238px; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--r-sm); box-shadow:var(--shadow); padding:8px; display:grid; gap:2px}
.menu-panel a{padding:11px 12px; border-radius:var(--r-xs); font-size:15px; font-weight:500;
  color:var(--ink); text-decoration:none}
.menu-panel a:hover{background:var(--soft)}
.menu-panel .sep{height:1px; background:var(--line); margin:6px 4px}

/* ---------- A. hero: split asimmetrico ---------- */
.hero{position:relative; overflow:hidden; padding:clamp(32px,4vw,52px) 0 clamp(36px,4vw,56px)}
.hero::before{content:""; position:absolute; inset:-10% -20% auto -20%; height:72%;
  background:radial-gradient(760px 420px at 22% 30%, rgba(79,70,229,.09), transparent 62%),
             radial-gradient(620px 380px at 88% 8%, rgba(37,211,102,.07), transparent 60%); z-index:0}
.hero-in{position:relative; z-index:1; display:grid; grid-template-columns:1.04fr .96fr;
  gap:clamp(28px,4vw,64px); align-items:center}
.eyebrow{display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:var(--brand-ink);
  background:var(--surface); border:1px solid var(--brand-tint); border-radius:var(--r-pill);
  padding:8px 15px; box-shadow:var(--shadow-sm)}
h1{font-size:clamp(38px,5.4vw,64px); line-height:1.03; letter-spacing:-.035em; margin:22px 0 0}
.hero .sub{font-size:clamp(17px,1.6vw,20px); color:var(--muted); line-height:1.55; max-width:31rem; margin-top:20px}
.hero-cta{display:flex; gap:13px; flex-wrap:wrap; margin-top:32px}

/* il telefono: e' il prodotto in un colpo d'occhio, resta */
.phone-stage{display:flex; justify-content:center}
.phone{position:relative; width:min(330px,100%); background:#0f1115; border-radius:42px; padding:11px;
  box-shadow:0 40px 80px -32px rgba(20,18,50,.45), 0 0 0 1px rgba(20,18,50,.06)}
.phone::before{content:""; position:absolute; top:22px; left:50%; transform:translateX(-50%);
  width:96px; height:5px; border-radius:99px; background:rgba(255,255,255,.28)}
/* alto abbastanza da far stare le tre bolle SOPRA la card della proposta:
   più corto, la terza finiva coperta e la conversazione non si capiva */
.screen{background:#ece5dd; border-radius:32px; overflow:hidden; min-height:530px}
.wa-top{background:#075e54; color:#fff; padding:32px 15px 13px; display:flex; align-items:center; gap:11px}
.wa-ava{width:37px; height:37px; border-radius:50%; background:var(--brand); display:flex; align-items:center;
  justify-content:center; font-size:13px; font-weight:700}
.wa-name{font-size:15px; font-weight:700; line-height:1.2}
.wa-sub{font-size:11.5px; opacity:.75}
.wa-body{padding:15px 13px; display:flex; flex-direction:column; gap:9px}
.bub{max-width:84%; font-size:14px; line-height:1.45; padding:9px 12px 17px; border-radius:12px; position:relative;
  background:#fff; box-shadow:0 1px 1px rgba(0,0,0,.07)}
.bub .t{position:absolute; right:10px; bottom:5px; font-size:10.5px; color:#8b9199; font-family:var(--mono)}
.bub.them{align-self:flex-start; border-top-left-radius:3px}
.bub.me{align-self:flex-end; background:#dcf8c6; border-top-right-radius:3px}
html.js .phone .bub{opacity:0; transform:translateY(9px)}
html.js .phone.play .bub{animation:bubIn .5s cubic-bezier(.16,1,.3,1) forwards; animation-delay:var(--d,0s)}
@keyframes bubIn{to{opacity:1; transform:none}}
.proposal{position:absolute; left:-26px; right:34px; bottom:38px; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--r-sm); padding:14px; box-shadow:var(--shadow-lg)}
html.js .phone .proposal{opacity:0; transform:translateY(14px)}
html.js .phone.play .proposal{animation:bubIn .6s cubic-bezier(.16,1,.3,1) .95s forwards}
.pp-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:9px}
.pp-badge{font-size:11.5px; font-weight:700; color:var(--brand); background:var(--brand-soft);
  border-radius:var(--r-pill); padding:4px 10px}
.pp-for{font-size:11.5px; color:var(--faint); font-family:var(--mono)}
.pp-text{font-size:13.5px; line-height:1.5; color:var(--ink)}
.pp-actions{display:flex; gap:8px; margin-top:13px}
.pp-btn{flex:1; display:inline-flex; align-items:center; justify-content:center; gap:7px; font-size:13.5px;
  font-weight:600; padding:10px; border-radius:var(--r-xs)}
.pp-approve{background:var(--brand); color:#fff}
.pp-edit{background:var(--soft); color:var(--ink)}

/* ---------- striscia di stato ---------- */
.trust-strip{background:var(--soft); border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2);
  padding:15px 0; font-size:15px; color:var(--muted)}
.trust-strip .wrap{display:flex; align-items:center; gap:11px; flex-wrap:wrap}

/* ---------- B. il problema: dichiarazione + elenco con filetti ---------- */
.problema h2{max-width:20ch}
.perdite{display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(32px,5vw,72px);
  border-top:1px solid var(--line); margin-top:8px}
.perdita{display:flex; gap:16px; align-items:baseline; padding:21px 0; border-bottom:1px solid var(--line)}
.perdita .n{font-family:var(--mono); font-size:13px; color:var(--brand); font-weight:500; flex:none}
.perdita b{font-size:17px; font-weight:700; letter-spacing:-.01em; display:block; margin-bottom:3px}
.perdita span{font-size:15px; color:var(--muted); line-height:1.5}

/* ---------- C. come funziona: sequenza con filo ---------- */
.mosse{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,38px); position:relative}
.mossa{position:relative; padding-top:52px}
.mossa::before{content:""; position:absolute; left:0; right:0; top:19px; height:2px; background:var(--line)}
.mossa:first-child::before{left:19px}
.mossa:last-child::before{right:calc(100% - 19px)}
.mossa .n{position:absolute; top:0; left:0; width:38px; height:38px; border-radius:50%; background:var(--brand);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:700;
  box-shadow:0 0 0 6px var(--bg)}
.mossa h3{margin-bottom:8px}
.mossa p{font-size:15.5px; color:var(--muted); line-height:1.6}

/* ---------- D. il prodotto: media a tutta larghezza ---------- */
.vetrina{background:var(--soft); border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2)}
.schermo{border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line);
  box-shadow:var(--shadow-lg); background:var(--surface); margin-top:clamp(26px,3.5vw,42px)}
.schermo img{width:100%; height:auto; display:block}
.didascalia{font-family:var(--mono); font-size:12.5px; color:var(--faint); margin-top:14px; text-align:center}

/* ---------- E. trasparenza: split media + elenco (l'unico blocco verde) ---------- */
.compliance{background:var(--mint); position:relative; overflow:hidden}
.compliance::before{content:""; position:absolute; inset:0;
  background:radial-gradient(760px 440px at 12% 6%, rgba(31,154,98,.10), transparent 60%); z-index:0}
.compliance .wrap{position:relative; z-index:1}
.compliance h2 em{color:var(--mint-ink)}
.compliance .kicker{color:var(--mint-ink)}
.law-badges{display:flex; gap:10px; flex-wrap:wrap; margin-top:22px}
.law-badge{font-size:13.5px; font-weight:600; color:var(--mint-ink); background:var(--surface);
  border:1px solid var(--mint-2); border-radius:var(--r-pill); padding:7px 14px 7px 11px;
  display:inline-flex; gap:7px; align-items:center; box-shadow:var(--shadow-sm)}
.garanzie-in{display:grid; grid-template-columns:1.06fr .94fr; gap:clamp(28px,4vw,56px); align-items:center}
.garanzia{display:flex; gap:14px; padding:15px 0; border-bottom:1px solid var(--mint-2)}
.garanzia:last-child{border-bottom:none}
.garanzia .gk{flex:none; width:26px; height:26px; border-radius:50%; background:var(--surface); color:var(--mint-ink);
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm)}
.garanzia b{font-size:16px; font-weight:700; display:block; margin-bottom:2px; letter-spacing:-.01em}
.garanzia span{font-size:14.5px; color:#4a5c53; line-height:1.5}

/* ---------- F. la lettera del fondatore ---------- */
.lettera{background:var(--bg)}
.lettera-in{max-width:52rem; margin:0 auto; display:grid; grid-template-columns:auto 1fr;
  gap:clamp(22px,3.5vw,44px); align-items:start}
/* finché non c'è la foto del fondatore: una colonna sola, niente buco a sinistra */
.lettera-in.senza-ritratto{grid-template-columns:1fr; max-width:46rem}
.ritratto{width:132px; aspect-ratio:4/5; object-fit:cover; border-radius:var(--r);
  border:1px solid var(--line); box-shadow:var(--shadow-sm); background:var(--soft)}
.lettera p{font-size:17.5px; line-height:1.66; color:var(--ink); margin-bottom:16px}
.lettera p:last-of-type{margin-bottom:0}
.firma{display:flex; align-items:center; gap:12px; margin-top:26px; padding-top:20px; border-top:1px solid var(--line)}
.firma b{display:block; font-size:16px}
.firma span{font-size:14px; color:var(--faint)}
.mono-badge{width:44px; height:44px; border-radius:50%; background:var(--brand-soft); color:var(--brand);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px}

/* ---------- G. offerta pilota ---------- */
.offer{background:var(--soft)}
.offer-card{max-width:880px; margin:0 auto; background:linear-gradient(158deg,var(--brand),var(--brand-2));
  color:#fff; border-radius:var(--r-xl); padding:clamp(30px,4.4vw,52px); box-shadow:var(--shadow-brand);
  position:relative; overflow:hidden}
.offer-card::before{content:""; position:absolute; inset:0;
  background:radial-gradient(560px 320px at 92% -6%, rgba(255,255,255,.16), transparent 60%)}
.offer-card>*{position:relative; z-index:1}
.offer-card .kicker{color:rgba(255,255,255,.78)}
.offer-card h2{color:#fff; font-size:clamp(28px,3.6vw,42px)}
.offer-card .lede{color:rgba(255,255,255,.9); max-width:40rem}
.offer-list{list-style:none; padding:0; margin:26px 0 4px; display:grid; grid-template-columns:1fr 1fr; gap:13px 26px}
.offer-list li{display:flex; gap:12px; align-items:flex-start; font-size:16px; color:rgba(255,255,255,.96)}
.ck{flex:none; width:24px; height:24px; border-radius:50%; background:rgba(255,255,255,.2); color:#fff;
  display:flex; align-items:center; justify-content:center; margin-top:1px}
.offer-foot{display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:30px}
.offer-card .btn{background:#fff; color:var(--brand); box-shadow:0 16px 30px -12px rgba(0,0,0,.3)}
.offer-card .btn:hover{background:#fff; transform:translateY(-2px); box-shadow:0 22px 40px -14px rgba(0,0,0,.36)}
.offer-note{font-size:14.5px; color:rgba(255,255,255,.82)}

/* ---------- H. domande: due colonne ---------- */
.faq-cols{columns:2; column-gap:clamp(30px,4vw,64px)}
.faq{break-inside:avoid; border-bottom:1px solid var(--line)}
.faq summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:flex-start;
  gap:16px; padding:17px 0; font-size:16.5px; font-weight:600; letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq .pm{flex:none; width:20px; height:20px; position:relative; margin-top:3px}
.faq .pm::before,.faq .pm::after{content:""; position:absolute; background:var(--faint); border-radius:2px;
  transition:transform .18s cubic-bezier(.16,1,.3,1), opacity .18s ease}
.faq .pm::before{left:3px; right:3px; top:9px; height:2px}
.faq .pm::after{top:3px; bottom:3px; left:9px; width:2px}
.faq[open] .pm::after{transform:scaleY(0); opacity:0}
.faq .ans{font-size:15.5px; color:var(--muted); line-height:1.62; padding:0 0 19px; max-width:38rem}

/* ---------- I. contatto ---------- */
.contact{background:var(--bg); border-top:1px solid var(--line)}
.contact-in{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,72px); align-items:start}
.reassure{display:grid; gap:11px; margin-top:26px}
.reassure div{display:flex; align-items:flex-start; gap:11px; font-size:15.5px; color:var(--ink)}
.reassure .ck{background:var(--ok-soft); color:var(--ok); width:22px; height:22px}
.or{margin-top:26px; font-size:15px; color:var(--faint)}
.lead{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(22px,3vw,34px); box-shadow:var(--shadow-sm)}
.lead .btn{width:100%; margin-top:6px}
.hp{position:absolute; left:-9999px}
.form-msg{display:none; margin-top:14px; font-size:15px; border-radius:var(--r-xs); padding:12px 14px}
.form-msg.show{display:block}
.form-msg.ok{background:var(--ok-soft); color:var(--ok); border:1px solid var(--ok-line)}
.form-msg.err{background:var(--err-soft); color:var(--err); border:1px solid var(--err-line)}
.privacy{margin-top:14px; font-size:13.5px; color:var(--faint); text-align:center}
.lead.sending{opacity:.6; pointer-events:none}

/* ---------- piede ---------- */
.foot{background:var(--surface); border-top:1px solid var(--line); padding:44px 0 34px}
.foot-in{display:flex; justify-content:space-between; gap:26px; flex-wrap:wrap; align-items:flex-start}
.foot-claim{font-size:15px; color:var(--muted); margin-top:9px}
.foot-links{display:flex; gap:22px; flex-wrap:wrap}
.foot-links a{font-size:15px; color:var(--muted); text-decoration:none}
.foot-links a:hover{color:var(--brand)}
.copy{margin-top:30px; padding-top:22px; border-top:1px solid var(--line-2); font-size:13.5px; color:var(--faint)}

/* ---------- adattamenti ---------- */
@media(max-width:980px){
  .hero-in{grid-template-columns:1fr; gap:44px}
  .hero .sub{max-width:none}
  .garanzie-in,.contact-in,.lettera-in{grid-template-columns:1fr}
  .ritratto{width:112px}
  .faq-cols{columns:1}
}
@media(max-width:900px){
  .nav-links,.nav-login{display:none}
  .menu{display:block}
}
@media(max-width:760px){
  .perdite{grid-template-columns:1fr}
  .mosse{grid-template-columns:1fr; gap:26px}
  .mossa{padding-top:0; padding-left:56px}
  .mossa::before{left:19px; right:auto; top:0; bottom:0; width:2px; height:auto}
  .mossa:first-child::before{top:19px}
  .mossa:last-child::before{bottom:calc(100% - 19px); right:auto}
  .offer-list{grid-template-columns:1fr}
}
