/* CSS per software.php */
:root{
  --paper:#FFFFFF; --ink:#141210; --graphite:#6E6862;
  --red:#C8341E; --red-soft:#F4E2DC;
  --grid-fine:#F6E7E1; --edge:#D8D2CB; --tint:#FAF8F6;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper); color:var(--ink);
  font-family:'Public Sans',system-ui,sans-serif; font-size:15.5px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
  background-image:
    repeating-linear-gradient(to right, var(--grid-fine) 0 1px, transparent 1px 19px),
    repeating-linear-gradient(to bottom, var(--grid-fine) 0 1px, transparent 1px 19px);
}
h1,h2,h3{font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 112;margin:0;letter-spacing:-.015em;line-height:1.08;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;}
.wrap{max-width:900px;margin:0 auto;padding:0 24px;}

.masthead{border-bottom:1px solid var(--edge);background:rgba(255,255,255,.9);backdrop-filter:blur(6px);position:sticky;top:0;z-index:40;}
.mast-in{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 24px;max-width:1180px;margin:0 auto;flex-wrap:wrap;}
.wordmark{display:flex;align-items:center;gap:11px;text-decoration:none;}
.wordmark img{height:40px;width:auto;display:block;flex:none;}
.wm-txt{display:flex;flex-direction:column;line-height:1.18;}
.wordmark b{font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 118;font-weight:800;font-size:16px;letter-spacing:-.02em;text-transform:uppercase;}
.wm-sub{font-family:'Azeret Mono',monospace;font-size:9px;color:var(--graphite);letter-spacing:.11em;text-transform:uppercase;margin-top:3px;}
.mast-nav{display:flex;gap:4px;flex-wrap:wrap;}
.mast-nav a{font-size:13.5px;text-decoration:none;color:var(--graphite);padding:7px 11px;}
.mast-nav a:hover{color:var(--ink);background:var(--tint);}
.mast-nav a.on{color:var(--ink);background:var(--tint);font-weight:600;}

.sheet{background:var(--paper);border:1.5px solid var(--ink);margin:38px 0 0;box-shadow:0 1px 0 var(--edge),0 14px 34px -22px rgba(20,18,16,.5);}
.sheet-inner{border:.5px solid var(--edge);margin:7px;padding:34px 34px 30px;}
.stamp{font-family:'Azeret Mono',monospace;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--red);margin-bottom:16px;}
h1{font-size:clamp(27px,4.2vw,42px);font-weight:800;font-variation-settings:'wdth' 108;}
.lede{margin:18px 0 0;color:var(--graphite);font-size:16px;max-width:64ch;}
.acts{display:flex;gap:8px;margin-top:24px;flex-wrap:wrap;}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--ink);color:#fff;text-decoration:none;font-size:13.5px;font-weight:600;padding:10px 16px;border:1px solid var(--ink);}
.btn:hover{background:var(--red);border-color:var(--red);}
.btn-ghost{background:transparent;color:var(--ink);}
.btn-ghost:hover{background:var(--tint);}
.btn-sm{font-size:12.5px;padding:8px 13px;}

section{padding:40px 0 4px;}
section h2{font-size:clamp(21px,3vw,28px);margin-bottom:14px;}
section p{margin:0 0 15px;}

/* --- salto rapido --- */
.jumprow{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px;}
.jumprow a{font-family:'Azeret Mono',monospace;font-size:11.5px;letter-spacing:.02em;text-decoration:none;color:var(--graphite);border:1px solid var(--edge);padding:6px 11px;background:#fff;}
.jumprow a:hover{border-color:var(--ink);color:var(--ink);}

/* --- concetti generali --- */
.concept-grid{border-top:1.5px solid var(--ink);margin-top:6px;}
.concept{border-bottom:1px solid var(--edge);padding:22px 0;}
.concept:last-child{border-bottom:0;}
.concept h3{font-size:16.5px;font-weight:700;margin-bottom:8px;}
.concept p{color:var(--graphite);font-size:14.8px;margin:0;max-width:74ch;}

/* --- tabella riassuntiva --- */
.qtable{width:100%;border-collapse:collapse;margin-top:6px;font-size:14px;}
.qtable th{text-align:left;font-family:'Azeret Mono',monospace;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--graphite);font-weight:600;padding:9px 12px;border-bottom:1.5px solid var(--ink);}
.qtable td{padding:11px 12px;border-bottom:.6px solid var(--edge);vertical-align:top;}
.qtable tr:hover td{background:var(--tint);}
.qtable td a{font-weight:700;color:var(--ink);text-decoration:underline;text-decoration-color:var(--edge);text-underline-offset:3px;}
.qtable td a:hover{color:var(--red);text-decoration-color:var(--red);}
.qtable .p{color:var(--graphite);font-size:13px;}
@media(max-width:640px){.qtable{font-size:13px;}.qtable td,.qtable th{padding:8px 8px;}}

/* --- schede software: corte --- */
.swlist{border-top:1.5px solid var(--ink);margin-top:10px;}
.swcard{border-bottom:1px solid var(--edge);padding:26px 0;scroll-margin-top:88px;}
.swcard:last-child{border-bottom:0;}
.swhead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:6px;}
.swhead h3{font-size:19px;font-weight:800;display:flex;align-items:center;gap:9px;}
/* L'icona del produttore: non un logo copiato da noi, la favicon vera
   del sito ufficiale, scaricata una sola volta e incorporata come
   data: URI in ogni software/<slug>.php (campo 'icon') — vedi la nota
   su icone e marchi in cima al file, che spiega anche perche' non e'
   un link esterno (la Content-Security-Policy del sito lo vieta). Se
   manca o cambia, l'onerror la nasconde e resta solo il nome: non
   compare mai un'icona rotta. */
.sw-icon{width:22px;height:22px;flex:none;border-radius:5px;border:1px solid var(--edge);background:#fff;object-fit:contain;padding:2px;}
/* Prima il nome sembrava testo normale finche' non ci passavi sopra col
   mouse — niente sottolineatura, niente colore diverso: si vedeva che
   era un link solo all'hover, cioe' mai su un telefono e raramente a
   colpo d'occhio su un computer. Adesso si vede subito. */
.swhead h3 a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--edge);text-underline-offset:4px;text-decoration-thickness:1.5px;}
.swhead h3 a:hover{color:var(--red);text-decoration-color:var(--red);}
.swhead h3 a::after{content:' →';color:var(--red);text-decoration:none;display:inline-block;}
.swtag{font-family:'Azeret Mono',monospace;font-size:10.5px;letter-spacing:.04em;color:var(--red);text-transform:uppercase;white-space:nowrap;padding-top:5px;}
.swbest{background:var(--tint);border-left:2.5px solid var(--red);padding:9px 13px;font-size:13.5px;color:var(--ink);margin:12px 0 12px;}
.swbest b{font-family:'Azeret Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite);display:block;margin-bottom:3px;font-weight:600;}
.swsummary{color:var(--graphite);font-size:14.8px;margin:0 0 14px;}
.swfoot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;}
.swprice{font-family:'Azeret Mono',monospace;font-size:12px;color:var(--graphite);}
.swcta{display:flex;gap:7px;flex-wrap:wrap;align-items:center;}
.swmore{font-size:13px;font-weight:600;text-decoration:none;color:var(--ink);border-bottom:1.5px solid var(--red);padding-bottom:1px;}
.swmore:hover{color:var(--red);}

/* --- come scegliere --- */
.choose{border-top:1px solid var(--edge);margin-top:6px;}
.choose-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:16px 0;border-bottom:1px solid var(--edge);}
.choose-row dt{font-size:14.5px;font-weight:700;}
.choose-row dd{margin:0;font-size:14px;color:var(--graphite);}
@media(max-width:680px){.choose-row{grid-template-columns:1fr;gap:6px;}}

/* --- faq --- */
.faq{margin-top:6px;border-top:1px solid var(--edge);}
.faq details{border-bottom:1px solid var(--edge);}
.faq summary{cursor:pointer;padding:15px 2px;font-weight:600;font-size:15.5px;list-style:none;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before{content:'+';color:var(--red);font-family:'Azeret Mono',monospace;margin-right:10px;}
.faq details[open] summary::before{content:'–';}
.faq p{padding:0 2px 16px;margin:0;color:var(--graphite);font-size:14.8px;max-width:70ch;}

/* --- nota / disclaimer --- */
.note{background:var(--tint);border:1px solid var(--edge);padding:16px 18px;font-size:13.5px;color:var(--graphite);margin-top:18px;}
.note strong{color:var(--ink);}

.cta{border:1.5px solid var(--ink);background:var(--tint);padding:26px 26px 28px;margin:34px 0 10px;}
.cta h2{margin-bottom:8px;}
.cta p{color:var(--graphite);margin-bottom:18px;}

/* Al posto del selettore di lingua vero (lang_menu, sei voci): questa
   pagina esiste solo in inglese, vedi la nota grande in cima al file.
   Un menu che offre sei lingue e ne serve una sola sotto ogni etichetta
   sarebbe proprio la confusione che quella nota dice di evitare — qui
   c'e' un'etichetta ferma, non cliccabile, che lo dice apertamente. */
.langfixed{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--graphite);padding:6px 10px;border:1px solid var(--edge);background:#fff;cursor:default;}
.lgcode{font-family:'Azeret Mono',monospace;font-size:10.5px;letter-spacing:.08em;color:var(--red);}
@media(max-width:560px){.lgname{display:none;}}

footer{border-top:1px solid var(--edge);margin-top:44px;padding:22px 0 40px;font-size:13px;color:var(--graphite);}
footer .foot{display:flex;flex-wrap:wrap;gap:8px 22px;}

/* Erano style="" nel template: spostati qui per la CSP stretta (niente 'unsafe-inline' su style-src). */
.lede-flush{margin-top:0;}
.note-gap{margin-bottom:36px;}
