/* ============================================================
   SINOSSI · landing site
   Token coerenti con design/tokens.css (Apple-like, chiaro)
   ============================================================ */
:root{
  --c-bg:#f5f5f7; --c-bg-elev:#fff; --c-bg-sunken:#eef0f3;
  --c-ink:#1d1d1f; --c-ink-2:#6e6e73; --c-ink-3:#a1a1a6;
  --c-line:rgba(0,0,0,.09); --c-line-2:rgba(0,0,0,.05);
  --c-accent:#0071e3; --c-accent-hover:#0077ed; --c-accent-soft:rgba(0,113,227,.10);
  /* scala GRAVITA' (severità crescente): verde → giallo → arancio → rosso.
     g1 era ciano (sembrava "categoria"): ora verde tenue = severità minima. */
  --c-grav-1:#67c98f; --c-grav-2:#34c759; --c-grav-3:#ffcc00; --c-grav-4:#ff9f0a; --c-grav-5:#ff453a;
  --c-mark:rgba(255,214,10,.45);
  --font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI",Roboto,system-ui,sans-serif;
  --font-mono:"SF Mono",ui-monospace,"JetBrains Mono",Menlo,Consolas,monospace;
  --r-sm:11px; --r-md:15px; --r-lg:22px; --r-pill:999px;
  --sh-s:0 1px 2px rgba(0,0,0,.04),0 6px 22px rgba(0,0,0,.06);
  --sh-m:0 10px 44px rgba(0,0,0,.13);
  --sh-l:0 24px 80px rgba(0,0,0,.20);
  --ease:cubic-bezier(.22,.9,.25,1);
  --dur:250ms;
  --maxw:1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--c-bg); color:var(--c-ink);
  font-family:var(--font-sans); font-size:16px; line-height:1.5;
  letter-spacing:-.012em; -webkit-font-smoothing:antialiased;
}
a{color:var(--c-accent); text-decoration:none}
a:hover{color:var(--c-accent-hover)}
h1,h2,h3{letter-spacing:-.03em; line-height:1.12; margin:0}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px}
code{font-family:var(--font-mono); font-size:.86em; background:var(--c-bg-sunken);
  padding:2px 6px; border-radius:6px}

/* ---------- LOGO ---------- */
.logo{
  display:inline-grid; place-items:center;
  width:38px; height:38px; border-radius:var(--r-pill);
  background:conic-gradient(from 210deg,#34c759,#ffcc00,#ff9f0a,#ff453a,#0a84ff,#34c759);
  box-shadow:var(--sh-s);
  animation:logoPulse 3.6s ease-in-out infinite;
}
.logo__txt{
  display:grid; place-items:center;
  color:#fff; font-weight:700; font-size:27px; line-height:1;
  font-family:Verdana,Geneva,Tahoma,sans-serif;
  letter-spacing:-.03em; text-indent:-.03em;
  width:100%; height:100%; text-shadow:0 1px 3px rgba(0,0,0,.32);
  transform:translateY(-3%);
}
.logo--xl{width:104px; height:104px; box-shadow:var(--sh-m)}
.logo--xl .logo__txt{font-size:82px}
@keyframes logoPulse{
  0%,100%{transform:scale(.96); box-shadow:0 0 0 0 rgba(0,113,227,0)}
  50%{transform:scale(1.07); box-shadow:0 0 0 7px rgba(0,113,227,.14)}
}
@media (prefers-reduced-motion:reduce){.logo{animation:none}}

/* ---------- NAV ---------- */
.nav{
  position:sticky; top:0; z-index:60;
  background:rgba(245,245,247,.78);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--c-line-2);
}
.nav__inner{display:flex; align-items:center; justify-content:space-between; height:60px}
.brand{display:flex; align-items:center; gap:10px; color:var(--c-ink); font-weight:600; cursor:pointer}

/* ---------- Torna in cima ---------- */
.totop{
  position:fixed; right:22px; bottom:22px; width:46px; height:46px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%; border:1px solid var(--c-line);
  background:var(--c-bg-elev); color:var(--c-accent);
  font-size:20px; line-height:1; cursor:pointer; box-shadow:var(--sh-m);
  opacity:0; visibility:hidden; transform:translateY(8px); z-index:55;
  transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur), background var(--dur);
}
.totop.show{opacity:1; visibility:visible; transform:none}
.totop:hover{background:var(--c-accent-soft); transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.totop{transition:opacity var(--dur)}}

/* ---------- Promo incrociata (SINOSSI → AI) ---------- */
.xpromo{display:flex; align-items:center; gap:22px; flex-wrap:wrap;
  background:var(--c-bg-elev); border:1px solid var(--c-line); border-radius:var(--r-lg);
  box-shadow:var(--sh-s); padding:24px 28px}
.xpromo-badge-img{width:58px; height:58px; flex:none; border-radius:13px; display:block}
.xpromo-txt{flex:1 1 320px; min-width:0}
.xpromo-txt .eyebrow{margin-bottom:2px}
.xpromo-h{font-size:21px; letter-spacing:-.02em; margin:2px 0 6px}
.xpromo-txt p{font-size:15px; color:var(--c-ink-2)}
.xpromo-btn{flex:none}
@media (max-width:640px){.xpromo{flex-direction:column; align-items:flex-start; text-align:left}}
.brand__name{font-size:18px; letter-spacing:-.02em}
.nav__links{display:flex; align-items:center; gap:26px}
.nav__links a{color:var(--c-ink-2); font-size:14px; font-weight:500}
.nav__links a:hover{color:var(--c-ink)}
.nav__cta{font-size:14px}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-size:15px; font-weight:600; padding:12px 22px; border-radius:var(--r-pill);
  min-height:44px; cursor:pointer; transition:transform var(--dur) var(--ease), background var(--dur);
  border:1px solid transparent;
}
.btn:hover{transform:translateY(-1px)}
.btn--primary{background:var(--c-accent); color:#fff}
.btn--primary:hover{background:var(--c-accent-hover); color:#fff}
.btn--ghost{background:transparent; color:var(--c-accent); border-color:var(--c-line)}
.btn--ghost:hover{background:var(--c-accent-soft)}
.btn--lg{font-size:17px; padding:16px 30px; min-height:52px}

/* ---------- HERO ---------- */
.hero{
  text-align:center; padding:72px 0 40px;
  background:
    radial-gradient(60% 50% at 50% 0%, rgba(0,113,227,.08), transparent 70%),
    linear-gradient(180deg,#fff,var(--c-bg));
}
.hero__inner{display:flex; flex-direction:column; align-items:center}
.hero__title{font-size:64px; margin:24px 0 4px}
.hero__claim{font-size:26px; color:var(--c-ink-2); font-weight:500; margin:0 0 18px; letter-spacing:-.02em}
.hero__sub{max-width:620px; font-size:19px; color:var(--c-ink-2); margin:0 0 28px}
.hero__sub strong{color:var(--c-ink)}
.hero__actions{display:flex; gap:14px; flex-wrap:wrap; justify-content:center}
.hero__note{margin-top:18px; font-size:13px; color:var(--c-ink-3)}

/* ---------- SHOT (placeholder schermate) ---------- */
.shot{
  background:var(--c-bg-elev); border:1px solid var(--c-line);
  border-radius:var(--r-lg); box-shadow:var(--sh-m); overflow:hidden;
}
.shot--hero{width:100%; max-width:860px; margin:48px auto 0}
/* Niente finta barra-finestra Apple: i mock sono rettangoli puliti. */
.shot__bar{display:none}
.shot__body{padding:28px}
.shot__body--hero{
  display:grid; grid-template-columns:auto 1fr 1.2fr; gap:32px; align-items:center;
  min-height:240px;
}
.shot__cap{margin:0; padding:10px 16px 14px; font-size:13px; color:var(--c-ink-2); text-align:center; border-top:1px solid var(--c-line-2)}

/* mini pulse */
.mini-pulse{display:flex; flex-direction:column; align-items:center; gap:10px}
.orb{
  width:108px; height:108px; border-radius:50%;
  display:grid; place-items:center;
  background:radial-gradient(circle at 35% 30%, #fff, var(--c-accent-soft) 55%, rgba(0,113,227,.18));
  border:1px solid var(--c-line); box-shadow:var(--sh-s);
  animation:breathe 4s var(--ease) infinite;
}
.orb__num{font-size:42px; font-weight:700; color:var(--c-accent); letter-spacing:-.03em}
.mini-pulse__label{font-size:12px; color:var(--c-ink-2)}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}

/* figure / omino */
.figure{width:120px; height:240px; display:block; margin:0 auto}
.figure--sm{width:96px; height:190px}
.fg{fill:var(--c-bg-sunken); stroke:var(--c-line); stroke-width:1}
.seg-1{fill:rgba(100,210,255,.30); stroke:var(--c-grav-1)}
.seg-2{fill:rgba(52,199,89,.28); stroke:var(--c-grav-2)}
.seg-3{fill:rgba(255,204,0,.32); stroke:var(--c-grav-3)}
.seg-4{fill:rgba(255,159,10,.34); stroke:var(--c-grav-4)}
.seg-5{fill:rgba(255,69,58,.30); stroke:var(--c-grav-5)}

/* mini list */
.mini-list{display:flex; flex-direction:column; gap:10px; align-self:center}
.mini-row{display:flex; align-items:center; gap:10px; font-size:14px; color:var(--c-ink)}
.dot{width:11px; height:11px; border-radius:50%; flex:0 0 auto}
.dot.g1{background:var(--c-grav-1)} .dot.g2{background:var(--c-grav-2)}
.dot.g3{background:var(--c-grav-3)} .dot.g4{background:var(--c-grav-4)}
.dot.g5{background:var(--c-grav-5)}

/* ---------- SECTIONS ---------- */
.section{padding:84px 0}
.section--alt{background:var(--c-bg-elev); border-top:1px solid var(--c-line-2); border-bottom:1px solid var(--c-line-2)}
.eyebrow{font-size:14px; font-weight:600; color:var(--c-accent); margin:0 0 12px; letter-spacing:0}
.eyebrow--light{color:#7fc0ff}
.section__title{font-size:38px; margin:0 0 16px}
.section__title--light{color:#fff}
.section__lead{max-width:680px; font-size:19px; color:var(--c-ink-2); margin:0 0 36px}
.section__lead--light{color:rgba(255,255,255,.78)}

/* cards grid */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.card{
  background:var(--c-bg-elev); border:1px solid var(--c-line); border-radius:var(--r-md);
  padding:26px; box-shadow:var(--sh-s); transition:transform var(--dur) var(--ease)
}
.section--alt .card{background:var(--c-bg)}
.card:hover{transform:translateY(-3px)}
.card__icon{font-size:28px; display:block; margin-bottom:12px}
.card h3{font-size:19px; margin-bottom:8px; letter-spacing:-.02em}
.card p{margin:0; color:var(--c-ink-2); font-size:15px}

/* ---------- STEPS ---------- */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:26px}
.step{display:flex; flex-direction:column}
.step__num{
  width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
  background:var(--c-accent); color:#fff; font-weight:700; font-size:18px; margin-bottom:14px
}
.step h3{font-size:21px; margin-bottom:8px}
.step p{color:var(--c-ink-2); font-size:15px; margin:0 0 18px}
.shot--sm{margin-top:auto}
.shot--sm .shot__body{padding:20px; min-height:150px; display:grid; place-items:center}
.shot__body--drop{}
.drop{
  width:100%; border:2px dashed var(--c-line); border-radius:var(--r-md);
  padding:24px; text-align:center; color:var(--c-ink-2); font-size:14px;
  display:flex; flex-direction:column; gap:8px; align-items:center
}
.drop__icon{font-size:30px; color:var(--c-accent)}
.shot__body--map{padding:16px}
.shot__body--src{display:block; padding:18px; align-self:stretch; width:100%}
.src-row{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--c-ink-2); margin:6px 0 4px}
.src-ico{font-size:15px}
.src-quote{font-size:13px; color:var(--c-ink); background:var(--c-bg-sunken); border-radius:8px; padding:8px 10px; margin-bottom:8px}
mark{background:var(--c-mark); border-radius:3px; padding:0 2px; color:inherit}

/* ---------- WHY ---------- */
.why{display:grid; grid-template-columns:repeat(2,1fr); gap:24px}
.why__item{
  padding:28px; border-radius:var(--r-md); background:var(--c-bg-elev);
  border:1px solid var(--c-line); box-shadow:var(--sh-s)
}
.why__item h3{font-size:21px; margin-bottom:10px}
.why__item p{margin:0; color:var(--c-ink-2); font-size:15.5px}
.why__item strong{color:var(--c-ink)}

/* ---------- PRIVACY ---------- */
.section--privacy{
  background:linear-gradient(160deg,#0b3b73,#06203f);
  color:#fff; border:none
}
.privacy{display:grid; grid-template-columns:1.6fr 1fr; gap:48px; align-items:center}
.checklist{list-style:none; padding:0; margin:8px 0 0; display:grid; gap:12px}
.checklist li{position:relative; padding-left:30px; color:rgba(255,255,255,.9); font-size:16px}
.checklist li::before{
  content:"✓"; position:absolute; left:0; top:-1px;
  width:22px; height:22px; border-radius:50%; display:grid; place-items:center;
  background:var(--c-grav-2); color:#06203f; font-weight:700; font-size:13px
}
.privacy__badge{display:flex; flex-direction:column; align-items:center; gap:14px}
.shield{
  width:150px; height:150px; border-radius:36px; display:grid; place-items:center;
  font-size:64px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(10px)
}
.shield__cap{text-align:center; font-weight:700; font-size:18px; line-height:1.2; color:#fff}

/* ---------- DOWNLOAD + REQ ---------- */
.dl{display:grid; grid-template-columns:1.5fr 1fr; gap:40px; align-items:start}
.dl__main .btn{margin-top:8px}
.dl__hint{margin-top:14px; font-size:13px; color:var(--c-ink-3)}
.req{
  background:var(--c-bg); border:1px solid var(--c-line); border-radius:var(--r-md);
  padding:26px; box-shadow:var(--sh-s)
}
.req h3{font-size:18px; margin-bottom:16px}
.req__list{margin:0; display:grid; gap:14px}
.req__list>div{display:flex; flex-direction:column; gap:2px; padding-bottom:14px; border-bottom:1px solid var(--c-line-2)}
.req__list>div:last-child{border-bottom:none; padding-bottom:0}
.req__list dt{font-size:13px; color:var(--c-ink-3); font-weight:500}
.req__list dd{margin:0; font-size:15px; color:var(--c-ink); font-weight:500}
.req__note{margin:16px 0 0; font-size:13px; color:var(--c-ink-2)}

/* ---------- FAQ ---------- */
.faq{display:grid; gap:12px; max-width:780px}
.faq details{
  background:var(--c-bg-elev); border:1px solid var(--c-line); border-radius:var(--r-md);
  padding:4px 22px; box-shadow:var(--sh-s)
}
.faq summary{
  cursor:pointer; font-weight:600; font-size:17px; padding:16px 0; list-style:none;
  display:flex; justify-content:space-between; align-items:center
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"＋"; color:var(--c-accent); font-weight:400; font-size:22px; transition:transform var(--dur)}
.faq details[open] summary::after{content:"−"}
.faq p{margin:0 0 18px; color:var(--c-ink-2); font-size:15.5px}

/* ---------- ACCESSIBILITY HELPERS ---------- */
.skip-link{
  position:absolute; left:12px; top:-48px; z-index:100;
  background:var(--c-accent); color:#fff; padding:10px 16px; border-radius:var(--r-sm);
  font-size:14px; font-weight:600; transition:top var(--dur) var(--ease);
}
.skip-link:focus{top:12px; color:#fff}
.visually-hidden{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
a:focus-visible,.btn:focus-visible,summary:focus-visible{
  outline:3px solid var(--c-accent); outline-offset:3px; border-radius:6px;
}
.faq summary:focus-visible{outline-offset:6px}

/* ---------- HERO CHIPS ---------- */
.hero__chips{
  list-style:none; margin:32px 0 0; padding:0;
  display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:680px;
}
.hero__chips li{
  font-size:13px; font-weight:500; color:var(--c-ink-2);
  background:var(--c-bg-elev); border:1px solid var(--c-line);
  border-radius:var(--r-pill); padding:7px 14px; box-shadow:var(--sh-s);
}

/* ---------- CARDS 2-COL VARIANT ---------- */
.cards--2{grid-template-columns:repeat(2,1fr)}

/* ---------- FEATURE ROWS ---------- */
.feat{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
  padding:40px 0; border-top:1px solid var(--c-line-2);
}
.feat:first-of-type{border-top:none; padding-top:8px}
.feat--rev .feat__text{order:2}
.feat--rev .feat__shot{order:1}
.feat__title{font-size:24px; margin-bottom:12px; display:flex; flex-direction:column; gap:6px}
.feat__kicker{
  font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:var(--c-accent);
}
.feat__text p{color:var(--c-ink-2); font-size:16px; margin:0 0 16px}
.feat__text strong{color:var(--c-ink)}
.feat__pts{list-style:none; margin:0; padding:0; display:grid; gap:9px}
.feat__pts li{position:relative; padding-left:26px; font-size:14.5px; color:var(--c-ink)}
.feat__pts li::before{
  content:""; position:absolute; left:0; top:7px; width:8px; height:8px;
  border-radius:50%; background:var(--c-accent);
}
.shot--feat{max-width:none}
.shot--feat .shot__body{padding:24px; min-height:200px}

/* feature: pulse */
.shot__body--pulse{display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center}
.orb--lg{width:130px; height:130px}
.orb--lg .orb__num{font-size:50px}
.orb--md{width:96px; height:96px}
.orb--md .orb__num{font-size:38px}
.orb__label{margin:12px 0 18px; font-size:13px; color:var(--c-ink-2)}
.stat-row{display:flex; gap:24px}
.stat{display:flex; flex-direction:column; align-items:center}
.stat__n{font-size:26px; font-weight:700; color:var(--c-ink); letter-spacing:-.03em}
.stat__l{font-size:12px; color:var(--c-ink-2)}

/* feature: apparati */
.shot__body--apparati{display:flex; gap:24px; align-items:center}
.figure--md{width:108px; height:216px; flex:0 0 auto}
.appa-list{display:flex; flex-direction:column; gap:11px; flex:1}
.appa{display:flex; align-items:center; gap:10px; font-size:14px; color:var(--c-ink)}
.appa em{margin-left:auto; font-style:normal; font-size:12px; color:var(--c-ink-2);
  background:var(--c-bg-sunken); border-radius:var(--r-pill); padding:2px 9px}

/* feature: score */
.shot__body--score{display:flex; flex-direction:column; gap:18px; justify-content:center}
.pills{display:flex; flex-wrap:wrap; gap:10px}
.pill{
  font-size:13px; font-weight:600; padding:7px 14px; border-radius:var(--r-pill);
  border:1px solid var(--c-line); color:var(--c-ink); background:var(--c-bg-elev);
  display:inline-flex; align-items:center; gap:7px;
}
.pill::before{content:""; width:9px; height:9px; border-radius:50%; background:var(--c-ink-3)}
.pill--g1::before{background:var(--c-grav-1)} .pill--g2::before{background:var(--c-grav-2)}
.pill--g3::before{background:var(--c-grav-3)} .pill--g4::before{background:var(--c-grav-4)}
.pill--g5::before{background:var(--c-grav-5)}
.score-detail{background:var(--c-bg-sunken); border-radius:var(--r-md); padding:14px 16px}
.score-detail__h{margin:0 0 6px; font-size:14px; font-weight:600; color:var(--c-ink)}
.score-detail__r{margin:0; font-size:13px; color:var(--c-ink-2)}

/* feature: lab / sparkline */
.shot__body--lab{display:flex; flex-direction:column; gap:14px; justify-content:center}
.lab-row{display:grid; grid-template-columns:64px 1fr auto; gap:14px; align-items:center}
.lab-name{font-size:13px; font-weight:600; color:var(--c-ink-2)}
.spark{width:100%; height:30px; display:block}
.spark__line{fill:none; stroke:var(--c-ink-3); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round}
.spark__line--down{stroke:var(--c-grav-4)}
.spark__line--up{stroke:var(--c-grav-3)}
.lab-val{font-size:15px; font-weight:700; color:var(--c-ink); white-space:nowrap}
.lab-val em{font-style:normal; font-size:11px; font-weight:500; color:var(--c-ink-2)}
.lab-val--g3{color:var(--c-grav-4)} .lab-val--g4{color:var(--c-grav-5)}

/* feature: drugs */
.shot__body--drugs{display:flex; flex-direction:column; gap:14px}
.filterbar{display:flex; flex-wrap:wrap; gap:8px}
.chip{
  font-size:12px; font-weight:500; padding:6px 12px; border-radius:var(--r-pill);
  border:1px solid var(--c-line); color:var(--c-ink-2); background:var(--c-bg-elev);
}
.chip--on{background:var(--c-accent); color:#fff; border-color:transparent}
.chip--search{color:var(--c-ink-2)}
.drug-grp__h{margin:0 0 6px; font-size:12px; font-weight:700; letter-spacing:.02em;
  text-transform:uppercase; color:var(--c-ink-3)}
.drug-row{display:flex; justify-content:space-between; align-items:baseline;
  font-size:14px; color:var(--c-ink); padding:5px 0; border-bottom:1px solid var(--c-line-2)}
.drug-row:last-child{border-bottom:none}
.drug-row__d{font-size:12px; color:var(--c-ink-2); font-family:var(--font-mono)}

/* feature: timeline (mini) */
.shot__body--tl{display:flex; align-items:center}
.tl{list-style:none; margin:0; padding:0; display:grid; gap:0; width:100%}
.tl__i{display:grid; grid-template-columns:48px 18px 1fr; align-items:center;
  gap:12px; position:relative; padding:8px 0}
.tl__y{font-size:12px; font-weight:700; color:var(--c-ink-2); font-family:var(--font-mono)}
.tl__dot{width:13px; height:13px; border-radius:50%; justify-self:center; z-index:1;
  box-shadow:0 0 0 4px var(--c-bg-elev)}
.tl__i:not(:last-child)::after{
  content:""; position:absolute; left:55px; top:50%; bottom:-50%;
  width:2px; background:var(--c-line);
}
.tl__dot.g1{background:var(--c-grav-1)} .tl__dot.g2{background:var(--c-grav-2)}
.tl__dot.g3{background:var(--c-grav-3)} .tl__dot.g4{background:var(--c-grav-4)}
.tl__dot.g5{background:var(--c-grav-5)}
.tl__t{font-size:14px; color:var(--c-ink)}

/* feature/source: condition head + icd chip */
.cond-head{display:flex; align-items:center; gap:10px; margin-bottom:14px;
  padding-bottom:12px; border-bottom:1px solid var(--c-line-2)}
.cond-head__name{font-size:15px; font-weight:600; color:var(--c-ink)}
.icd{margin-left:auto; font-family:var(--font-mono); font-size:12px; font-weight:600;
  color:var(--c-accent); background:var(--c-accent-soft); border-radius:var(--r-pill);
  padding:3px 10px}

/* feature: evidenze illuminate */
.shot__body--evid{display:flex; flex-direction:column; justify-content:center; gap:10px}
.evid-meta{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--c-ink-2)}
.evid-sec{margin-left:auto; font-family:var(--font-mono); font-size:11px; font-weight:600;
  color:var(--c-ink-2); background:var(--c-bg-sunken); border-radius:var(--r-pill); padding:2px 9px}
.evid-link{margin:2px 0 0; font-size:12px; font-weight:600; color:var(--c-accent)}

/* feature: interventi del medico */
.shot__body--edit{display:flex; flex-direction:column; justify-content:center; gap:14px}
.edit-row{display:flex; align-items:center; gap:10px; font-size:15px; color:var(--c-ink)}
.edit-name{font-weight:600}
.edit-tools{display:flex; flex-wrap:wrap; gap:8px}
.etool{font-size:12px; font-weight:600; padding:6px 11px; border-radius:var(--r-pill);
  border:1px solid var(--c-line); color:var(--c-ink-2); background:var(--c-bg-elev)}
.etool--off{color:var(--c-grav-5); border-color:rgba(255,69,58,.35)}
.etool--restore{margin-left:auto; color:var(--c-accent); border-color:var(--c-line); background:var(--c-bg-elev)}
.edit-row--off{opacity:.6}
.edit-name--off{text-decoration:line-through; font-weight:500; color:var(--c-ink-2)}
.dot--off{background:var(--c-ink-3)}

/* feature: rilevanza invalidante */
.shot__body--rel{display:flex; flex-direction:column; justify-content:center; gap:12px}
.rel-row{display:flex; align-items:center; gap:10px; font-size:14px; color:var(--c-ink)}
.rel-name{font-weight:600}
.rel-tag{margin-left:auto; font-size:11px; font-weight:700; letter-spacing:.01em;
  color:var(--c-accent); background:var(--c-accent-soft); border:1px solid rgba(0,113,227,.18);
  border-radius:var(--r-pill); padding:3px 10px}

/* ---------- REPORT PDF ---------- */
.report{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center}
.report__shot{min-width:0}
.shot--report{max-width:none}
.shot__body--report{padding:22px; display:flex; flex-direction:column; gap:16px; min-height:220px}
.logo--rep{width:30px; height:30px; animation:none}
.logo--rep .logo__txt{font-size:21px}
.rep-head{display:flex; align-items:center; gap:12px; padding-bottom:14px; border-bottom:1px solid var(--c-line-2)}
.rep-head__t{margin:0; font-size:15px; font-weight:700; color:var(--c-ink)}
.rep-head__s{margin:2px 0 0; font-size:12px; color:var(--c-ink-2)}
.rep-grid{display:grid; grid-template-columns:auto 1fr; gap:22px; align-items:center}
.rep-lines{display:flex; flex-direction:column; gap:8px}
.rep-line{margin:0; font-size:13.5px; color:var(--c-ink); display:flex; align-items:center; gap:8px}
.rep-line--h{font-size:12px; font-weight:700; letter-spacing:.02em; text-transform:uppercase; color:var(--c-ink-3)}
.rep-line--mut{font-size:12px; color:var(--c-ink-2)}
.report__text h3{font-size:21px; margin-bottom:14px}
.report__list{list-style:none; margin:0 0 16px; padding:0; display:grid; gap:9px}
.report__list li{position:relative; padding-left:26px; font-size:15px; color:var(--c-ink)}
.report__list li::before{content:""; position:absolute; left:0; top:7px; width:8px; height:8px;
  border-radius:50%; background:var(--c-accent)}
.report__note{margin:0; font-size:14px; color:var(--c-ink-2)}

/* ---------- DOWNLOAD TRIAL ---------- */
.dl__trial{margin-top:14px; font-size:14px; color:var(--c-ink-2)}
.dl__trial strong{color:var(--c-ink)}

/* ---------- GALLERY ---------- */
.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.ga{margin:0}
.shot--ga{max-width:none}
.shot__body--ga{padding:22px; min-height:180px; display:flex; align-items:center; justify-content:center}
.shot__body--ga-pulse{flex-direction:column; gap:14px}
.ga-stats{display:flex; gap:14px; font-size:12px; color:var(--c-ink-2)}
.shot__body--ga-list,.shot__body--ga-lab,.shot__body--ga-tl,.shot__body--ga-src{
  flex-direction:column; align-items:stretch; gap:10px}
.pl-row{display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center;
  font-size:14px; color:var(--c-ink)}
.ga figcaption{margin-top:12px; font-size:13.5px; color:var(--c-ink-2); line-height:1.45}

/* ---------- TECH GRID ---------- */
.tech{display:grid; grid-template-columns:repeat(2,1fr); gap:22px}
.tech__item{
  padding:24px; border-radius:var(--r-md); background:var(--c-bg);
  border:1px solid var(--c-line); box-shadow:var(--sh-s);
}
.tech__item h3{font-size:18px; margin-bottom:8px}
.tech__item p{margin:0; color:var(--c-ink-2); font-size:15px}

/* ---------- COMPARE TABLE ---------- */
.compare__t{
  width:100%; border-collapse:separate; border-spacing:0;
  background:var(--c-bg-elev); border:1px solid var(--c-line);
  border-radius:var(--r-md); overflow:hidden; box-shadow:var(--sh-s);
}
.compare__t th,.compare__t td{
  text-align:left; padding:16px 18px; font-size:14.5px; vertical-align:top;
  border-bottom:1px solid var(--c-line-2);
}
.compare__t thead th{
  font-size:12px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  color:var(--c-ink-3); background:var(--c-bg-sunken);
}
.compare__t tbody tr:last-child th,.compare__t tbody tr:last-child td{border-bottom:none}
.compare__t tbody th{font-weight:600}
.compare__t td{color:var(--c-ink-2)}
.tag{
  display:inline-block; font-size:13px; font-weight:700; padding:4px 11px;
  border-radius:var(--r-pill); background:var(--c-bg-sunken); color:var(--c-ink);
}
.tag--accent{background:var(--c-accent); color:#fff}
.compare__note{margin:18px 0 0; font-size:14px; color:var(--c-ink-2); max-width:760px}

/* ---------- ROADMAP TIMELINE ---------- */
.timeline{list-style:none; margin:0; padding:0; display:grid; gap:0}
.tlx{position:relative; padding:0 0 28px 38px; border-left:2px solid var(--c-line)}
.tlx:last-child{padding-bottom:0}
.tlx::before{
  content:""; position:absolute; left:-9px; top:2px; width:16px; height:16px;
  border-radius:50%; background:var(--c-bg-elev); border:2px solid var(--c-ink-3);
}
.tlx--done::before{background:var(--c-grav-2); border-color:var(--c-grav-2)}
.tlx--next::before{background:var(--c-accent); border-color:var(--c-accent)}
.tlx__badge{
  display:inline-block; font-size:11px; font-weight:700; letter-spacing:.03em;
  text-transform:uppercase; color:var(--c-ink-2); background:var(--c-bg-sunken);
  border-radius:var(--r-pill); padding:3px 10px; margin-bottom:8px;
}
.tlx--done .tlx__badge{color:#0b5d2a; background:rgba(52,199,89,.16)}
.tlx--next .tlx__badge{color:var(--c-accent); background:var(--c-accent-soft)}
.tlx h3{font-size:19px; margin-bottom:6px}
.tlx p{margin:0; color:var(--c-ink-2); font-size:15px; max-width:680px}

/* ---------- FOOTER ---------- */
.footer{background:var(--c-bg-elev); border-top:1px solid var(--c-line); padding:54px 0}
.footer__inner{display:grid; grid-template-columns:1.4fr .8fr 1fr 1.4fr; gap:36px; align-items:start}
.footer__brand{display:flex; gap:12px; align-items:center}
.footer__name{margin:0; font-weight:700; font-size:18px}
.footer__tag{margin:2px 0 0; font-size:13px; color:var(--c-ink-2)}
.footer h3{font-size:15px; margin-bottom:10px}
.footer__nav{display:flex; flex-direction:column; gap:6px}
.footer__nav a{font-size:14px; color:var(--c-ink-2)}
.footer__nav a:hover{color:var(--c-ink)}
.footer__contact p{margin:0 0 6px; font-size:14px; color:var(--c-ink-2)}
.footer__legal p{margin:0 0 8px; font-size:13px; color:var(--c-ink-3)}
.footer__copy{font-size:12px}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .cards,.steps,.gallery{grid-template-columns:1fr 1fr}
  .why,.tech,.cards--2{grid-template-columns:1fr}
  .privacy,.dl,.footer__inner,.report{grid-template-columns:1fr}
  .shot__body--hero{grid-template-columns:1fr; gap:24px; text-align:center}
  .mini-list{align-items:center}
  .nav__links a:not(.nav__cta){display:none}
  .feat{grid-template-columns:1fr; gap:28px}
  .feat--rev .feat__text{order:1}
  .feat--rev .feat__shot{order:2}
}
@media (max-width:680px){
  .compare__t{display:block; overflow-x:auto; white-space:nowrap}
}
@media (max-width:600px){
  .cards,.steps,.gallery{grid-template-columns:1fr}
  .hero__title{font-size:46px}
  .hero__sub{font-size:17px}
  .section{padding:60px 0}
  .section__title{font-size:30px}
  .shot__body--apparati{flex-direction:column; text-align:center}
  .stat-row{gap:16px}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important}
  html{scroll-behavior:auto}
}
