/* ============================================================
   certo.acquisizioniforensi.com — design system "Dossier Forense"
   Estratto e ampliato da www/index.html (.it).
   ============================================================ */
:root{
  --blue:#1A4FB0;
  --blue-700:#133B88;
  --blue-900:#0D2A63;
  --ink:#0E1526;
  --ink-soft:#1A2236;
  --red:#E81D2C;
  --red-700:#C2121F;
  --paper:#F5F2EB;
  --paper-2:#ECE7DC;
  --paper-line:#DED7C7;
  --white:#FFFFFF;
  --muted:#5C6376;
  --muted-2:#878D9C;
  --line:rgba(14,21,38,.12);
  --line-strong:rgba(14,21,38,.22);

  --serif:"Fraunces",Georgia,serif;
  --sans:"Hanken Grotesk",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;

  --maxw:1240px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
/* sticky footer: su pagine corte il footer resta ancorato in basso */
.footer{margin-top:auto}
body::before{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
::selection{background:var(--red);color:#fff}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.container-x{max-width:var(--maxw);margin:0 auto;padding:0 28px}

/* tipografia */
.display{font-family:var(--serif);font-weight:600;line-height:.96;letter-spacing:-.02em}
.mono{font-family:var(--mono)}
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--blue);font-weight:600}
.ink-tag{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* ---------- utility bar ---------- */
.topbar{background:var(--ink);color:#cdd3e0}
.topbar .container-x{display:flex;align-items:center;justify-content:space-between;height:38px;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em}
.topbar .dot{width:7px;height:7px;border-radius:50%;background:#39d98a;display:inline-block;margin-right:7px;box-shadow:0 0 0 0 rgba(57,217,138,.6);animation:pulse 2.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(57,217,138,.55)}70%{box-shadow:0 0 0 7px rgba(57,217,138,0)}100%{box-shadow:0 0 0 0 rgba(57,217,138,0)}}
.topbar .sep{opacity:.35;margin:0 12px}
.topbar a{display:inline-flex;align-items:center}
.topbar a:hover{color:#fff}
@media(max-width:760px){.topbar .hide-sm{display:none}}

/* ---------- navbar ---------- */
.nav-wrap{position:sticky;top:0;z-index:1000;background:rgba(245,242,235,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:11px}
.brand .mark{width:38px;height:38px;border-radius:7px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:600;font-size:.74rem;letter-spacing:.02em;box-shadow:0 6px 18px -8px rgba(13,42,99,.6)}
.brand .mark b{color:#ffd0d3}
.brand .mark--logo{background:none;box-shadow:none;padding:0}
.brand .mark--logo img{width:38px;height:38px;object-fit:contain;display:block;border-radius:7px}
.brand .wm{font-family:var(--serif);font-weight:600;font-size:1.18rem;letter-spacing:-.01em;color:var(--ink)}
.brand .wm small{display:block;font-family:var(--mono);font-weight:500;font-size:.54rem;letter-spacing:.22em;color:var(--muted);text-transform:uppercase;margin-top:1px}
.nav-links{display:flex;align-items:center;gap:34px;list-style:none;margin:0;padding:0}
.nav-links a{font-weight:600;font-size:.95rem;color:var(--ink);position:relative;padding:6px 0}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--red);transition:width .28s ease}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-cta{display:flex;align-items:center;gap:14px}
.btn-x{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:.95rem;padding:13px 22px;border-radius:2px;border:1.5px solid transparent;transition:all .22s ease;cursor:pointer;line-height:1}
.btn-blue{background:var(--blue);color:#fff;border-color:var(--blue)}
.btn-blue:hover{background:var(--blue-700);border-color:var(--blue-700);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--ink);transform:translateY(-2px)}
.btn-red{background:var(--red);color:#fff;border-color:var(--red)}
.btn-red:hover{background:var(--red-700);border-color:var(--red-700);transform:translateY(-2px)}
.btn-sm{padding:9px 15px;font-size:.85rem}

/* lang toggle */
.lang-toggle{display:inline-flex;align-items:center;border:1.5px solid var(--line-strong);border-radius:2px;overflow:hidden;font-family:var(--mono);font-size:.72rem;font-weight:600}
.lang-toggle a{padding:7px 10px;color:var(--muted);letter-spacing:.06em}
.lang-toggle a.on{background:var(--ink);color:#fff}
.lang-toggle a:not(.on):hover{color:var(--ink)}

.burger{display:none;background:none;border:0;font-size:1.6rem;color:var(--ink);cursor:pointer;line-height:1}
@media(max-width:980px){
  .nav-links,.nav-cta .btn-ghost,.nav-cta .desk{display:none}
  .burger{display:block}
}
/* mobile drawer */
.mobile-menu{position:fixed;inset:0;z-index:2000;background:var(--paper);transform:translateX(100%);transition:transform .3s ease;display:flex;flex-direction:column;padding:24px 28px}
.mobile-menu.open{transform:none}
.mobile-menu .mm-top{display:flex;align-items:center;justify-content:space-between;height:50px}
.mobile-menu .mm-close{background:none;border:0;font-size:1.8rem;color:var(--ink);cursor:pointer}
.mobile-menu nav{display:flex;flex-direction:column;gap:4px;margin-top:24px}
.mobile-menu nav a{font-family:var(--serif);font-size:1.5rem;font-weight:600;padding:12px 0;border-bottom:1px solid var(--line)}
.mobile-menu .mm-cta{display:flex;flex-direction:column;gap:12px;margin-top:28px}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding:78px 0 96px;background:radial-gradient(120% 90% at 88% -10%, rgba(26,79,176,.10), transparent 55%),radial-gradient(80% 70% at 0% 110%, rgba(232,29,44,.07), transparent 55%)}
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(120% 90% at 70% 20%,#000,transparent 80%);mask-image:radial-gradient(120% 90% at 70% 20%,#000,transparent 80%)}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;gap:46px}}
.hero h1{font-size:clamp(2.9rem,6.4vw,5.4rem);margin:18px 0 0}
.hero h1 .it{font-style:italic;color:var(--red);font-weight:500}
.hero h1 .u{position:relative;white-space:nowrap}
.hero h1 .u::after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.10em;background:var(--red);opacity:.28}
.hero-lead{font-size:1.16rem;line-height:1.6;color:#39414f;max-width:34em;margin:26px 0 0}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.hero-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}
.chip{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;color:var(--blue-900);border:1px solid var(--line-strong);border-radius:2px;padding:7px 11px;background:rgba(255,255,255,.5)}
.chip b{color:var(--red)}

.reveal{opacity:0;transform:translateY(16px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes rise{to{opacity:1;transform:none}}
.d1{animation-delay:.05s}.d2{animation-delay:.16s}.d3{animation-delay:.27s}.d4{animation-delay:.38s}.d5{animation-delay:.5s}.d6{animation-delay:.62s}

.hero-art{position:relative;min-height:440px;display:flex;align-items:center;justify-content:center}
.fp{position:absolute;width:560px;max-width:118%;opacity:.9;filter:drop-shadow(0 24px 50px rgba(13,42,99,.18))}
.fp .ridge{fill:none;stroke:var(--blue);stroke-width:5;opacity:.5}
.fp .ridge.r{stroke:var(--red);opacity:.6}
.fp .loupe{fill:none;stroke:var(--blue);stroke-width:7}
.fp .spin{transform-origin:280px 250px;animation:fpspin 60s linear infinite}
@keyframes fpspin{to{transform:rotate(360deg)}}
.exhibit{position:relative;z-index:3;width:340px;max-width:92%;background:var(--white);border:1px solid var(--line-strong);border-radius:3px;box-shadow:0 30px 60px -24px rgba(13,42,99,.4);transform:rotate(-2.2deg)}
.exhibit::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--red)}
.exhibit .x-top{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 12px;border-bottom:1px dashed var(--line-strong)}
.exhibit .x-id{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}
.exhibit .x-state{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;font-weight:600;color:#0a7d4b;display:inline-flex;align-items:center;gap:6px}
.exhibit .x-state .d{width:7px;height:7px;border-radius:50%;background:#0a7d4b}
.exhibit .x-body{padding:16px}
.exhibit .row{margin-bottom:13px}
.exhibit .k{font-family:var(--mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2)}
.exhibit .v{font-family:var(--mono);font-size:.82rem;color:var(--ink);word-break:break-all;margin-top:3px;line-height:1.45}
.exhibit .v .b{color:var(--blue)}
.barcode{height:42px;margin-top:6px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 9px,var(--ink) 9px 12px,transparent 12px 14px)}
.seal{position:absolute;right:-22px;bottom:-22px;width:96px;height:96px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;line-height:1.5;text-transform:uppercase;border:3px solid #fff;box-shadow:0 14px 30px -8px rgba(13,42,99,.55);transform:rotate(8deg)}
.seal span{font-weight:600}

/* ---------- standards strip ---------- */
.standards{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.4)}
.standards .container-x{display:flex;align-items:center;gap:18px 32px;flex-wrap:nowrap;justify-content:space-between;padding-top:20px;padding-bottom:20px}
.standards .std{font-family:var(--mono);font-size:.82rem;letter-spacing:.06em;color:var(--ink);display:inline-flex;flex-direction:row;align-items:center;gap:9px;background:none;border:0;border-radius:0;padding:0;white-space:nowrap}
.standards .std:hover{transform:none;box-shadow:none}
.standards .std i{color:var(--red);font-size:1rem}
@media(max-width:760px){.standards .container-x{flex-wrap:wrap;gap:10px 0}.standards .std{flex:0 0 46%;margin:6px 0;white-space:normal}}

/* ---------- section frame ---------- */
.section{padding:104px 0;position:relative}
.section.tight{padding:76px 0}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:54px}
.sec-head h2{font-size:clamp(2rem,4.4vw,3.3rem);margin:12px 0 0;max-width:16ch}
.sec-head p{color:var(--muted);max-width:34ch;margin:0;font-size:1.02rem;line-height:1.6}
@media(max-width:760px){.sec-head{flex-direction:column;align-items:flex-start;gap:14px}}
#moduli .sec-head{align-items:flex-start}
#moduli .sec-head p{margin-top:calc(.72rem * 1.4 + 12px)}
@media(max-width:760px){#moduli .sec-head p{margin-top:0}}
.idx{font-family:var(--mono);font-size:.78rem;color:var(--red);font-weight:600;letter-spacing:.12em}

/* ---------- services index ---------- */
.svc-list{margin-top:30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px}
.svc{position:relative;display:flex;flex-direction:column;gap:10px;background:var(--white);border:1px solid var(--line-strong);border-radius:4px;padding:26px 24px 28px;text-decoration:none;color:inherit;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;cursor:pointer}
.svc::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--blue);transition:width .3s ease}
.svc:hover{transform:translateY(-4px);border-color:rgba(26,79,176,.35);box-shadow:0 26px 50px -32px rgba(13,42,99,.4)}
.svc:hover::before{width:100%}
.svc:hover .svc-name{color:var(--blue)}
.svc:hover .svc-go{color:var(--red);transform:translate(3px,-3px)}
.svc-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.svc-ico{font-size:1.65rem;color:var(--blue)}
.svc-go{font-size:1.2rem;color:var(--muted-2);transition:transform .25s ease,color .25s ease}
.svc .idx{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;color:var(--red)}
.svc-name{font-family:var(--serif);font-weight:600;font-size:1.4rem;letter-spacing:-.01em;margin:0;transition:color .25s ease}
.svc-desc{color:var(--muted);font-size:.95rem;line-height:1.55;margin:0;flex:1}
@media(max-width:880px){.svc-list{grid-template-columns:1fr}.svc-name{font-size:1.3rem}}

/* ---------- process / chain of custody ---------- */
.chain{background:var(--ink);color:#cfd5e3;position:relative;overflow:hidden}
.chain::before{content:"";position:absolute;inset:0;opacity:.5;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:46px 46px}
.chain .eyebrow{color:#6f9bff}
.chain h2{color:#fff}
.chain .sec-head p{color:#9aa3b8}
.steps{position:relative;z-index:2;display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:30px}
.step{padding:30px 22px 30px 0;border-top:2px solid rgba(255,255,255,.16);position:relative}
.step::before{content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px var(--ink)}
.step .n{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;color:#6f9bff}
.step h4{font-family:var(--serif);font-weight:600;font-size:1.32rem;color:#fff;margin:14px 0 8px}
.step p{font-size:.9rem;line-height:1.55;color:#9aa3b8;margin:0}
@media(max-width:980px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.steps{grid-template-columns:1fr}}

/* ---------- CERTO desktop block ---------- */
.certo{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
@media(max-width:900px){.certo{grid-template-columns:1fr;gap:40px}}
.terminal{background:var(--ink);border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.12);box-shadow:0 40px 80px -30px rgba(13,42,99,.45)}
.terminal .bar{display:flex;align-items:center;gap:8px;padding:13px 16px;background:#0a0f1d;border-bottom:1px solid rgba(255,255,255,.08)}
.terminal .bar .c{width:11px;height:11px;border-radius:50%;background:#33394a}
.terminal .bar .c.r{background:#E8554f}.terminal .bar .c.y{background:#E8b84f}.terminal .bar .c.g{background:#54c98a}
.terminal .bar .t{margin-left:10px;font-family:var(--mono);font-size:.72rem;color:#717a90}
.terminal pre{margin:0;padding:22px;font-family:var(--mono);font-size:.82rem;line-height:1.75;color:#aeb6c9;white-space:pre-wrap}
.terminal .gr{color:#54c98a}.terminal .bl{color:#6f9bff}.terminal .rd{color:#ff6b73}.terminal .dim{color:#5a6378}.terminal .wt{color:#eef1f7}
.certo h2{font-size:clamp(1.9rem,3.8vw,2.9rem);margin:14px 0 0}
.certo-lead{margin:18px 0 0;font-size:1.05rem;line-height:1.5;color:var(--muted)}
.certo ul{list-style:none;padding:0;margin:18px 0 30px}
.certo li{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line);font-size:1rem}
.certo li i{color:var(--red);font-size:1.15rem;margin-top:2px}

/* ---------- personas ---------- */
.persona-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:760px){.persona-grid{grid-template-columns:1fr}}
.persona{background:var(--white);border:1px solid var(--line-strong);border-radius:3px;padding:28px;position:relative;transition:.25s ease;overflow:hidden}
.persona::before{content:"";position:absolute;left:0;top:24px;bottom:24px;width:4px;background:var(--blue);transition:.25s}
.persona:hover{transform:translateY(-3px);box-shadow:0 24px 50px -28px rgba(13,42,99,.35)}
.persona:hover::before{background:var(--red)}
.persona .p-top{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.persona .p-ico{width:46px;height:46px;border-radius:50%;background:var(--paper-2);display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--blue);flex:0 0 auto}
.persona h4{font-family:var(--serif);font-weight:600;font-size:1.35rem;margin:0}
.persona .p-rec{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-top:3px}
.persona ul{list-style:none;padding:0;margin:16px 0 0}
.persona li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;font-size:.95rem;color:#39414f;border-top:1px solid var(--line)}
.persona li i{color:var(--blue);font-size:.95rem;margin-top:3px}

/* ---------- stats ---------- */
.stats{border-top:1px solid var(--line)}
.stats .grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:46px 26px;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat .num{font-family:var(--serif);font-weight:600;font-size:clamp(2.4rem,4.5vw,3.4rem);line-height:1;letter-spacing:-.02em}
.stat .num .red{color:var(--red)}
.stat .lab{margin-top:12px;color:var(--muted);font-size:.92rem;line-height:1.5}
@media(max-width:860px){.stats .grid{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat{border-bottom:1px solid var(--line)}}

/* ---------- final CTA ---------- */
.cta{position:relative;overflow:hidden;background:var(--blue);color:#fff}
.cta::before{content:"";position:absolute;inset:0;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:radial-gradient(80% 120% at 100% 0,#000,transparent 70%);mask-image:radial-gradient(80% 120% at 100% 0,#000,transparent 70%)}
.cta .container-x{position:relative;z-index:2;padding:84px 28px;text-align:center}
.cta h2{font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,5vw,3.8rem);letter-spacing:-.02em;line-height:1;margin:0 auto;max-width:18ch}
.cta p{max-width:46ch;margin:22px auto 34px;color:#d6e0f7;font-size:1.1rem}
.cta .hash{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:rgba(255,255,255,.45);margin-top:34px;word-break:break-all}

/* ---------- footer ---------- */
.footer{background:var(--ink);color:#aab2c6;padding:72px 0 30px}
.footer .top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.1)}
@media(max-width:860px){.footer .top{grid-template-columns:1fr 1fr;gap:32px}}
@media(max-width:520px){.footer .top{grid-template-columns:1fr}}
.footer .f-brand .f-logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none;margin-bottom:18px}
.footer .f-brand .f-logo img{display:block;flex:0 0 auto}
.footer .f-brand .wm{font-family:var(--serif);font-weight:600;font-size:1.4rem;color:#fff;line-height:1}
.footer .f-brand .wm small{display:block;font-family:var(--mono);font-weight:500;font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:#8a92a8;margin-top:5px}
.footer .f-motto{font-family:var(--serif);font-style:italic;font-size:1.08rem;color:#dfe4ef;margin:0 0 12px;max-width:30ch;line-height:1.4}
.footer .desc{font-size:.92rem;line-height:1.6;color:#8a92a8;max-width:32ch;margin:0}
.footer h5{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#fff;margin:0 0 18px}
.footer ul{list-style:none;padding:0;margin:0}
.footer li{margin-bottom:11px}
.footer a{color:#aab2c6;font-size:.95rem;transition:.2s}
.footer a:hover{color:#fff;padding-left:4px}
.footer .bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:26px;flex-wrap:wrap}
.footer .bottom .mono{font-size:.72rem;color:#666e84;letter-spacing:.06em}
.footer .bottom .hash{color:#454d63;word-break:break-all;max-width:60%}
@media(max-width:760px){.footer .bottom .hash{max-width:100%}}

/* ============================================================
   AGGIUNTE per il sito multi-pagina
   ============================================================ */

/* ---------- page head (sotto-pagine) ---------- */
.page-head{position:relative;overflow:hidden;padding:64px 0 52px;background:radial-gradient(110% 90% at 90% -20%, rgba(26,79,176,.10), transparent 60%);border-bottom:1px solid var(--line)}
.page-head::before{content:"";position:absolute;inset:0;opacity:.4;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(120% 90% at 80% 0,#000,transparent 75%);mask-image:radial-gradient(120% 90% at 80% 0,#000,transparent 75%)}
.page-head .container-x{position:relative;z-index:2}
.page-head h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.4rem,5vw,3.8rem);letter-spacing:-.02em;line-height:1;margin:14px 0 0}
.page-head .lead{font-size:1.14rem;line-height:1.6;color:#39414f;max-width:46ch;margin:20px 0 0}
.crumb{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.crumb a:hover{color:var(--red)}

/* ---------- screenshot placeholder ---------- */
.shot{position:relative;border:2px dashed var(--line-strong);border-radius:6px;background:repeating-linear-gradient(45deg,rgba(26,79,176,.03) 0 14px,rgba(26,79,176,.06) 14px 28px);min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px;color:var(--muted)}
.shot .badge-shot{position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;background:var(--ink);color:#fff;padding:5px 9px;border-radius:2px}
.shot .ic{font-size:2.6rem;color:var(--blue);opacity:.55}
.shot .sd{font-family:var(--sans);font-weight:600;font-size:1.02rem;color:var(--ink);max-width:34ch;margin-top:14px;line-height:1.4}
.shot .sn{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;color:var(--muted-2);margin-top:10px}
.shot.small{min-height:210px}

/* ---------- module detail ---------- */
.mod-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
@media(max-width:900px){.mod-hero{grid-template-columns:1fr;gap:34px}}
.mod-ico{width:60px;height:60px;border-radius:12px;background:var(--paper-2);display:flex;align-items:center;justify-content:center;font-size:1.7rem;color:var(--blue);box-shadow:0 10px 26px -14px rgba(13,42,99,.5)}
.feature-list{list-style:none;padding:0;margin:24px 0 0}
.feature-list li{display:flex;gap:13px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--line);font-size:1.02rem;line-height:1.5}
.feature-list li i{color:var(--red);font-size:1.18rem;margin-top:2px;flex:0 0 auto}

/* griglia card moduli (indice) */
.mod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:900px){.mod-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.mod-grid{grid-template-columns:1fr}}
.mod-card{background:var(--white);border:1px solid var(--line-strong);border-radius:4px;padding:26px;transition:.25s ease;position:relative;overflow:hidden;display:block}
.mod-card::before{content:"";position:absolute;left:0;top:0;height:100%;width:4px;background:var(--blue);transform:scaleY(0);transform-origin:top;transition:.25s}
.mod-card:hover{transform:translateY(-3px);box-shadow:0 24px 50px -28px rgba(13,42,99,.35)}
.mod-card:hover::before{transform:scaleY(1);background:var(--red)}
.mod-card .mc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.mod-card .mc-ico{font-size:1.5rem;color:var(--blue)}
.mod-card h3{font-family:var(--serif);font-weight:600;font-size:1.4rem;margin:0 0 8px}
.mod-card p{color:var(--muted);font-size:.96rem;line-height:1.55;margin:0}
.mod-card .mc-go{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--red);margin-top:16px;display:inline-flex;align-items:center;gap:6px;text-transform:uppercase}

/* prose generica (legal / contenuti) */
.prose{max-width:none;font-size:1.02rem;line-height:1.75;color:#2b3242}
.prose h2{scroll-margin-top:90px}
.toc{background:var(--white);border:1px solid var(--line-strong);border-radius:5px;padding:22px 26px;margin:0 0 38px}
.toc-title{font-family:var(--mono)!important;font-size:.72rem!important;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)!important;margin:0 0 14px!important}
.toc-list{margin:0;padding-left:22px;columns:2;column-gap:38px}
@media(max-width:680px){.toc-list{columns:1}}
.toc-list li{margin-bottom:8px;break-inside:avoid}
.toc-list a{color:var(--blue);text-decoration:none}
.toc-list a:hover{text-decoration:underline}
.prose h2{font-family:var(--serif);font-weight:600;font-size:1.7rem;margin:42px 0 14px;color:var(--ink)}
.prose h3{font-family:var(--serif);font-weight:600;font-size:1.3rem;margin:30px 0 10px;color:var(--ink)}
.prose p{margin:0 0 16px}
.prose ul{margin:0 0 16px;padding-left:22px}
.prose li{margin-bottom:8px}
.prose a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.prose code{font-family:var(--mono);font-size:.86em;background:var(--paper-2);padding:1px 5px;border-radius:3px}

/* contatti */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;gap:30px}}
.field{margin-bottom:18px}
.field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:7px;color:var(--ink)}
.field input,.field textarea{width:100%;font:inherit;font-size:.98rem;padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:3px;background:var(--white);color:var(--ink);transition:border-color .2s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--blue)}
.info-row{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}
.info-row i{font-size:1.3rem;color:var(--blue);flex:0 0 auto;margin-top:2px}
.info-row .k{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.info-row .v{font-size:1.02rem;margin-top:3px}

/* download */
.dl-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:8px}
@media(max-width:680px){.dl-cards{grid-template-columns:1fr}}
.dl-card2{background:var(--white);border:1px solid var(--line-strong);border-radius:4px;padding:26px;display:flex;flex-direction:column;gap:16px;transition:.25s}
.dl-card2:hover{transform:translateY(-3px);box-shadow:0 24px 50px -28px rgba(13,42,99,.35)}
.dl-card2 .dl-ico{width:48px;height:48px;border-radius:10px;background:var(--paper-2);display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--ink)}
.dl-card2 h3{font-family:var(--serif);font-weight:600;font-size:1.35rem;margin:0}
.dl-card2 .dl-meta{font-family:var(--mono);font-size:.74rem;color:var(--muted);letter-spacing:.04em}
.note-box{background:rgba(26,79,176,.06);border:1px solid rgba(26,79,176,.18);border-radius:6px;padding:16px 18px;font-size:.95rem;line-height:1.6;color:#2b3242}
.note-box i{color:var(--blue);margin-right:6px}

/* Download gate — il download è riservato agli utenti registrati (no link pubblici) */
.dl-gate{background:#fff;border:1px solid var(--line);border-radius:12px;padding:40px 32px;text-align:center;max-width:760px;margin:0 auto;box-shadow:0 18px 48px -28px rgba(13,42,99,.35)}
.dl-gate-ico{width:64px;height:64px;border-radius:14px;background:rgba(26,79,176,.08);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:1.9rem;margin:0 auto 18px}
.dl-gate h2{font-family:var(--serif);font-size:1.6rem;letter-spacing:-.01em;margin:0 0 10px}
.dl-gate p{font-size:1rem;line-height:1.65;color:#2b3242;max-width:560px;margin:0 auto 22px}
.dl-gate-cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.dl-gate-platforms{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;margin:36px 0 0;padding-top:22px;border-top:1px solid var(--line);font-family:var(--mono);font-size:.8rem;color:var(--ink-50,#5a6172)}
.dl-gate-platforms span{display:inline-flex;align-items:center;gap:7px}

/* ===== Modulo Pagine web: figure reali + lightbox + bag-tree ===== */
.web-fig{margin:0}
.web-fig-btn{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;cursor:zoom-in;position:relative;box-shadow:0 18px 48px -30px rgba(13,42,99,.4);transition:transform .25s ease,box-shadow .25s ease}
.web-fig-btn:hover{transform:translateY(-3px);box-shadow:0 26px 60px -30px rgba(13,42,99,.5)}
.web-fig-btn img{display:block;width:100%;height:auto}
/* Variante "cap": anteprima ad altezza limitata (per screenshot molto alti);
   mostra la parte alta + zoom sempre visibile → il full si apre nel lightbox. */
.web-fig.cap .web-fig-btn img{max-height:480px;object-fit:cover;object-position:top center}
.web-fig.cap .web-fig-zoom{opacity:1}
.web-fig-zoom{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:8px;background:rgba(14,21,38,.72);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.95rem;opacity:0;transition:opacity .2s ease}
.web-fig-btn:hover .web-fig-zoom{opacity:1}
.web-fig figcaption{margin-top:10px;font-size:.86rem;line-height:1.5;color:var(--ink-60,#5a6172)}
.web-lightbox{position:fixed;inset:0;z-index:5000;background:rgba(8,12,22,.92);display:flex;align-items:flex-start;justify-content:center;padding:32px;overflow:auto}
.web-lightbox[hidden]{display:none}
.web-lightbox figure{margin:0;max-width:1400px}
.web-lightbox img{display:block;max-width:100%;height:auto;border-radius:8px;box-shadow:0 30px 80px -20px rgba(0,0,0,.6)}
.web-lightbox figcaption{margin-top:12px;color:#cdd3e0;font-size:.9rem;line-height:1.55;text-align:center;max-width:900px;margin-left:auto;margin-right:auto}
.wl-close{position:fixed;top:18px;right:24px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:1.8rem;line-height:1;cursor:pointer;transition:background .2s ease}
.wl-close:hover{background:rgba(255,255,255,.24)}
.persona .path{margin:10px 0 0;font-family:var(--mono);font-size:.74rem;color:var(--blue);word-break:break-all}
.bag-tree{margin-top:30px;background:var(--ink);border-radius:12px;padding:22px 24px;overflow:auto}
.bag-tree pre{margin:0;font-family:var(--mono);font-size:.82rem;line-height:1.7;color:#cdd3e0;white-space:pre}
.bag-tree pre b{color:#fff;font-weight:600}
.bag-tree pre .c{color:#7c89a4;font-style:italic}

/* ===== Modulo Pagine web: intro SEO + FAQ ===== */
.certo.certo-top{align-items:flex-start}
.web-intro{border-left:3px solid var(--red);padding-left:30px}
.web-intro p{font-family:var(--serif);font-size:clamp(1.34rem,2.1vw,1.7rem);line-height:1.5;font-weight:400;color:var(--ink-soft);margin:0;letter-spacing:-.01em}
.web-intro b{font-weight:600;color:var(--ink)}
@media(max-width:560px){.web-intro{padding-left:20px}.web-intro p{font-size:1.2rem}}
.web-faq{max-width:880px;margin-top:8px}
.web-faq details{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:10px;transition:border-color .2s ease,box-shadow .2s ease}
.web-faq details:hover{border-color:rgba(26,79,176,.28)}
.web-faq details[open]{border-color:rgba(26,79,176,.32);box-shadow:0 16px 40px -30px rgba(13,42,99,.5)}
.web-faq summary{list-style:none;cursor:pointer;padding:20px 22px;font-family:var(--sans);font-weight:600;font-size:1.06rem;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:16px;line-height:1.4}
.web-faq summary::-webkit-details-marker{display:none}
.web-faq summary::after{content:"+";flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:rgba(26,79,176,.08);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:400;line-height:1;transition:transform .25s ease,background .2s ease}
.web-faq details[open] summary::after{transform:rotate(45deg);background:rgba(26,79,176,.16)}
.web-faq .faq-a{padding:2px 22px 22px;font-size:1rem;line-height:1.72;color:#3a4252;max-width:64ch}

/* ===== Modulo Email/PEC: galleria struttura PEC ===== */
.email-gallery{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start;margin-top:8px}
@media(max-width:760px){.email-gallery{grid-template-columns:1fr}}
.chain .web-fig figcaption{color:#9aa3b8}
.pec-notes{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px}
@media(max-width:760px){.pec-notes{grid-template-columns:1fr}}
.pec-notes > div{display:flex;gap:13px;align-items:flex-start}
.pec-notes i{color:#6f9bff;font-size:1.4rem;margin-top:2px;flex:0 0 auto}
.pec-notes h4{font-family:var(--serif);font-weight:600;font-size:1.08rem;color:#fff;margin:0 0 5px}
.pec-notes p{font-size:.9rem;line-height:1.55;color:#9aa3b8;margin:0}

/* ===== Modulo Immagini: note analisi su sfondo chiaro ===== */
.an-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}
@media(max-width:760px){.an-notes{grid-template-columns:1fr}}
.an-notes > div{display:flex;gap:13px;align-items:flex-start}
.an-notes i{color:var(--blue);font-size:1.4rem;margin-top:2px;flex:0 0 auto}
.an-notes h4{font-family:var(--serif);font-weight:600;font-size:1.08rem;color:var(--ink);margin:0 0 5px}
.an-notes p{font-size:.9rem;line-height:1.55;color:#3a4252;margin:0}

/* ===== Modulo Immagini: blocco GPS / geolocalizzazione ===== */
.gps-info h3{font-family:var(--serif);font-weight:600;font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:-.01em;margin:10px 0 12px;color:var(--ink)}
.gps-info > p{font-size:1.02rem;line-height:1.65;color:#39414f;margin:0 0 18px}
.gps-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:13px}
.gps-list li{display:flex;gap:12px;align-items:flex-start;font-size:.95rem;line-height:1.55;color:#3a4252}
.gps-list li i{color:var(--blue);font-size:1.15rem;margin-top:2px;flex:0 0 auto}
.gps-list li:last-child i{color:#cf8a00}
.gps-list b{color:var(--ink);font-weight:700}

/* ===== Modulo Cloud: striscia provider gestiti ===== */
.cloud-providers{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 30px}
.cloud-providers > div{display:inline-flex;align-items:center;gap:11px;padding:14px 22px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:700;font-size:1.02rem;color:var(--ink);box-shadow:0 14px 38px -30px rgba(13,42,99,.4)}
.cloud-providers i{font-size:1.5rem;color:var(--blue)}

/* ============ How it works — schemi tecnici (SVG) ============ */
.hiw-fig{margin:34px 0 0}
.hiw-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 26px 22px;box-shadow:0 22px 60px -44px rgba(13,42,99,.5)}
.chain .hiw-card{background:#121a2e;border-color:rgba(255,255,255,.1);box-shadow:none}
.hiw-card svg{display:block;width:100%;height:auto}
.hiw-fig figcaption{margin-top:16px;color:var(--muted);font-size:.92rem;line-height:1.55;max-width:880px}
.chain .hiw-fig figcaption{color:#9aa3b8}
.hiw-fig figcaption code,.hiw-prose code{font-family:var(--mono);font-size:.84em;background:var(--paper-2);padding:1px 6px;border-radius:6px;color:var(--blue-900)}
.chain .hiw-fig figcaption code{background:rgba(255,255,255,.08);color:#cfe0ff}
.hiw-prose{margin-top:26px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px 34px}
.hiw-prose p{margin:0;color:var(--muted);font-size:.98rem;line-height:1.66}
.chain .hiw-prose p{color:#aab2c4}
.hiw-prose b{color:var(--ink)}
.chain .hiw-prose b{color:#fff}

/* matrice moduli */
.mod-matrix{margin-top:32px;border:1px solid var(--line);border-radius:16px;overflow-x:auto;background:#fff;box-shadow:0 22px 60px -46px rgba(13,42,99,.5)}
.mod-matrix table{width:100%;min-width:760px;border-collapse:collapse;font-size:.93rem}
.mod-matrix th,.mod-matrix td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.5}
.mod-matrix thead th{background:var(--paper-2);font-weight:700;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.mod-matrix tbody tr:last-child td{border-bottom:0}
.mod-matrix tbody tr:hover{background:var(--paper)}
.mod-matrix .m-name{font-weight:700;color:var(--ink);white-space:nowrap}
.mod-matrix .m-name i{color:var(--blue);margin-right:9px;font-size:1.05rem;vertical-align:-1px}
.mod-matrix code{font-family:var(--mono);font-size:.82em;background:var(--paper-2);padding:1px 6px;border-radius:6px;color:var(--blue-900);white-space:nowrap}

/* griglia standard */
.std-grid{margin-top:30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(252px,1fr));gap:16px}
.std{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px 22px;display:flex;flex-direction:column;gap:13px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.std:hover{transform:translateY(-3px);border-color:rgba(26,79,176,.4);box-shadow:0 26px 50px -34px rgba(13,42,99,.55)}
.std-top{display:flex;align-items:center;gap:12px}
.std-ico{flex:none;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:1.18rem;color:var(--blue);background:linear-gradient(150deg,rgba(26,79,176,.12),rgba(26,79,176,.05));border:1px solid rgba(26,79,176,.16)}
.std-code{font-family:var(--mono);font-weight:700;font-size:.92rem;line-height:1.25;color:var(--blue-900);letter-spacing:-.01em}
.std p{margin:0;color:var(--muted);font-size:.93rem;line-height:1.56}

/* ============ Use cases — scenari narrativi ============ */
.cases{margin-top:18px;display:flex;flex-direction:column}
.case{display:grid;grid-template-columns:288px 1fr;gap:48px;padding:50px 0;border-top:1px solid var(--line)}
.case:first-child{border-top:0;padding-top:8px}
.case-aside{position:relative}
.case-ico{width:58px;height:58px;border-radius:15px;display:grid;place-items:center;font-size:1.62rem;color:var(--blue);background:linear-gradient(150deg,rgba(26,79,176,.13),rgba(26,79,176,.05));border:1px solid rgba(26,79,176,.18)}
.case-num{position:absolute;top:6px;right:0;font-family:var(--mono);font-size:.82rem;color:var(--muted-2);letter-spacing:.04em}
.case-kind{margin-top:18px;font-family:var(--sans);font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.case-mod{margin-top:7px;font-family:var(--serif);font-weight:600;font-size:1.34rem;color:var(--ink);line-height:1.15}
.case-who{margin-top:12px;color:var(--muted);font-size:.9rem;line-height:1.5;display:flex;align-items:center;gap:8px}
.case-who i{color:var(--blue)}
.case-body h3{font-family:var(--serif);font-weight:600;font-size:clamp(1.4rem,2.5vw,1.92rem);line-height:1.18;color:var(--ink);margin:0 0 16px;letter-spacing:-.01em}
.case-body p{margin:0 0 15px;color:#39414f;font-size:1.04rem;line-height:1.72}
.case-body p b{color:var(--ink);font-weight:600}
.case-foot{margin-top:22px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding-top:18px;border-top:1px dashed var(--line)}
.case-bag{font-size:.9rem;color:var(--muted);line-height:1.5;flex:1 1 320px}
.case-bag b{color:var(--ink);font-weight:600}
.case-bag code{font-family:var(--mono);font-size:.82em;background:var(--paper-2);padding:1px 6px;border-radius:6px;color:var(--blue-900)}
.case-link{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-weight:700;font-size:.92rem;color:var(--blue);text-decoration:none}
.case-link:hover{color:var(--red)}
.case-link i{transition:transform .18s ease}
.case-link:hover i{transform:translateX(3px)}
@media(max-width:820px){
  .case{grid-template-columns:1fr;gap:22px;padding:38px 0}
  .case-num{position:static;display:block;margin-bottom:8px}
}

/* ============================================================
   Home: sotto-headline hero + sezione "verificabile dalla controparte"
   ============================================================ */
.hero-sub{margin:16px 0 0;font-size:1.04rem;line-height:1.65;color:#39414f;max-width:48ch}
.hero-sub b{color:var(--ink);font-weight:700}
.chain{padding-bottom:60px}
.adversary{background:rgba(255,255,255,.55);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:64px}
.adv-grid{display:grid;grid-template-columns:1.25fr .85fr;gap:48px;align-items:center}
.adversary h2{color:var(--ink);font-size:clamp(2rem,4vw,3rem);margin:14px 0 18px}
.adv-copy p{color:#39414f;font-size:1.06rem;line-height:1.72;margin:0 0 16px;max-width:54ch}
.adv-copy p b{color:var(--ink);font-weight:600}
.adv-copy .btn-ghost{margin-top:6px}
.adv-card{display:flex;flex-direction:column;gap:14px}
.advc-row{background:var(--white);border:1px solid var(--line-strong);border-left:4px solid var(--red);border-radius:8px;padding:15px 20px;box-shadow:0 12px 32px -26px rgba(13,42,99,.4)}
.advc-row.ok{border-left-color:#0a7d4b;background:rgba(10,125,75,.045)}
.advc-kind{display:inline-block;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:2px 8px;border-radius:3px;margin-bottom:8px}
.advc-kind--no{color:var(--red);background:rgba(232,29,44,.10)}
.advc-kind--yes{color:#0a7d4b;background:rgba(10,125,75,.12)}
.advc-row b{display:block;color:var(--ink);font-size:1rem;margin-bottom:3px}
.advc-row .advc-d{display:block;color:var(--muted);font-size:.92rem;line-height:1.5}
@media(max-width:820px){.adv-grid{grid-template-columns:1fr;gap:30px}}

/* ============================================================
   Pricing — listino dal DB articoli
   ============================================================ */
.price-explain{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.pe-item{background:var(--white);border:1px solid var(--line-strong);border-radius:6px;padding:26px 24px}
.pe-ico{display:inline-flex;width:46px;height:46px;border-radius:10px;background:rgba(26,79,176,.08);color:var(--blue);align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:14px}
.pe-item h3{font-family:var(--serif);font-weight:600;font-size:1.25rem;margin:0 0 10px;color:var(--ink)}
.pe-item p{margin:0;color:#39414f;font-size:.98rem;line-height:1.66}
.pe-item p b{color:var(--ink);font-weight:600}
@media(max-width:880px){.price-explain{grid-template-columns:1fr}}

.tier-list{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.tier-row{display:grid;grid-template-columns:1.1fr 2.2fr auto;gap:22px;align-items:center;background:var(--white);border:1px solid var(--line-strong);border-radius:6px;padding:22px 26px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.tier-row:hover{transform:translateY(-2px);box-shadow:0 18px 44px -28px rgba(13,42,99,.35)}
.tier-row.is-pop{border-color:var(--blue)}
.tier-row.is-best{border-color:var(--red)}
.tier-row__name{display:flex;flex-direction:column;gap:6px}
.tier-row__name h3{font-family:var(--serif);font-weight:600;font-size:1.4rem;margin:0;color:var(--ink)}
.tier-row__badge{align-self:flex-start;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;padding:4px 9px;border-radius:3px;background:var(--blue);color:#fff}
.tier-row.is-best .tier-row__badge{background:var(--red)}
.tier-row__numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.tier-row__cell{display:flex;flex-direction:column;gap:4px}
.tier-row__cell .tcl{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2)}
.tier-row__cell .tcv{font-size:1.05rem;color:var(--ink);font-weight:600}
.tier-row__cell .tcv--lg{font-size:1.45rem;color:var(--blue-900)}
.tier-row__cell--save .tcv{color:var(--red)}
.tier-row__cta{justify-self:end}
.price-foot{margin-top:22px;font-size:.78rem;line-height:1.6;color:var(--muted);letter-spacing:.02em;max-width:80ch}
@media(max-width:900px){
  .tier-row{grid-template-columns:1fr;gap:16px;align-items:start}
  .tier-row__cta{justify-self:start}
}
@media(max-width:520px){.tier-row__numbers{grid-template-columns:repeat(2,1fr)}}

.price-faq{display:grid;grid-template-columns:1fr 1fr;gap:22px 40px}
.pf h4{font-family:var(--serif);font-weight:600;font-size:1.12rem;margin:0 0 7px;color:var(--ink)}
.pf p{margin:0;color:#39414f;font-size:.98rem;line-height:1.62}
@media(max-width:760px){.price-faq{grid-template-columns:1fr}}

/* ============================================================
   Blog / Guide — indice + articolo (rendering curato del corpo Summernote)
   ============================================================ */
.guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
.guide-card{display:flex;flex-direction:column;gap:12px;background:var(--white);border:1px solid var(--line-strong);border-radius:8px;padding:28px 26px 22px;color:inherit;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.guide-card:hover{transform:translateY(-4px);box-shadow:0 26px 56px -30px rgba(13,42,99,.4);border-color:var(--blue)}
.gc-cat{align-self:flex-start;font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--blue);background:rgba(26,79,176,.08);padding:5px 10px;border-radius:3px}
.gc-title{font-family:var(--serif);font-weight:600;font-size:1.42rem;line-height:1.2;letter-spacing:-.01em;margin:0;color:var(--ink)}
.guide-card:hover .gc-title{color:var(--blue)}
.gc-excerpt{margin:0;color:#39414f;font-size:.98rem;line-height:1.62;flex:1}
.gc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding-top:14px;border-top:1px solid var(--line)}
.gc-date{font-size:.72rem;color:var(--muted);letter-spacing:.04em}
.gc-go{display:inline-flex;align-items:center;gap:3px;font-weight:700;font-size:.9rem;color:var(--blue)}
.guide-empty{text-align:center;max-width:560px;margin:0 auto;padding:30px 0}
.ge-ico{display:inline-flex;width:64px;height:64px;border-radius:14px;background:rgba(26,79,176,.08);color:var(--blue);align-items:center;justify-content:center;font-size:1.9rem;margin-bottom:18px}
.guide-empty h2{font-family:var(--serif);font-size:1.6rem;margin:0 0 10px;color:var(--ink)}
.guide-empty p{color:#39414f;line-height:1.65;margin:0 0 22px}

.article-meta{font-size:.74rem;letter-spacing:.06em;color:var(--muted);margin:16px 0 0}
.article-meta .am-cat{color:var(--blue);font-weight:600;text-transform:uppercase}
.article-wrap{max-width:760px}

/* corpo articolo: riveste l'HTML grezzo di Summernote */
.guide-content{font-size:1.08rem;line-height:1.8;color:#2b3242}
.guide-content > *:first-child{margin-top:0}
.guide-content h2{font-family:var(--serif);font-weight:600;font-size:1.7rem;line-height:1.25;margin:42px 0 14px;color:var(--ink);scroll-margin-top:90px}
.guide-content h3{font-family:var(--serif);font-weight:600;font-size:1.32rem;margin:32px 0 10px;color:var(--ink)}
.guide-content h4{font-weight:700;font-size:1.05rem;margin:24px 0 8px;color:var(--ink)}
.guide-content p{margin:0 0 18px}
.guide-content a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.guide-content a:hover{color:var(--red)}
.guide-content b,.guide-content strong{color:var(--ink);font-weight:700}
.guide-content ul,.guide-content ol{margin:0 0 18px;padding-left:24px}
.guide-content li{margin-bottom:8px}
.guide-content ul li::marker{color:var(--blue)}
.guide-content blockquote{margin:24px 0;padding:14px 22px;border-left:4px solid var(--blue);background:rgba(26,79,176,.05);border-radius:0 6px 6px 0;color:var(--ink-soft);font-size:1.06rem}
.guide-content blockquote p:last-child{margin-bottom:0}
.guide-content img{display:block;max-width:100%;height:auto;border-radius:10px;border:1px solid var(--line);box-shadow:0 16px 40px -28px rgba(13,42,99,.4);margin:24px auto}
.guide-content figure{margin:24px 0}
.guide-content figcaption{margin-top:8px;font-size:.86rem;color:var(--muted);text-align:center;line-height:1.5}
.guide-content hr{border:0;border-top:1px solid var(--line);margin:34px 0}
.guide-content code{font-family:var(--mono);font-size:.86em;background:var(--paper-2);padding:1px 6px;border-radius:4px;color:var(--blue-900)}
.guide-content pre{background:var(--ink);color:#e7ebf3;padding:18px 20px;border-radius:8px;overflow:auto;font-family:var(--mono);font-size:.88rem;line-height:1.6;margin:24px 0}
.guide-content pre code{background:none;padding:0;color:inherit}
.gc-table-scroll{overflow-x:auto;margin:24px 0}
.guide-content table{border-collapse:collapse;width:100%;font-size:.96rem}
.guide-content th,.guide-content td{border:1px solid var(--line-strong);padding:10px 14px;text-align:left;vertical-align:top}
.guide-content thead th{background:var(--paper-2);font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.guide-content tbody tr:nth-child(even){background:rgba(14,21,38,.02)}

.guide-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin:46px 0 0;padding:30px 32px;background:rgba(26,79,176,.06);border:1px solid rgba(26,79,176,.18);border-radius:10px}
.guide-cta h3{font-family:var(--serif);font-weight:600;font-size:1.3rem;margin:0 0 7px;color:var(--ink)}
.guide-cta p{margin:0;color:#39414f;font-size:.98rem;line-height:1.6;max-width:46ch}
.guide-cta-btns{display:flex;flex-wrap:wrap;gap:12px}
.guide-related{margin:40px 0 0;padding-top:24px;border-top:1px solid var(--line)}
.gr-label{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.guide-related ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.guide-related a{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:1.04rem;color:var(--blue)}
.guide-related a:hover{color:var(--red)}
