/* Il blog (#471): l'indice /blog e le pagine dei contenuti, generate da
 * scripts/landing/blog.mjs. Un foglio solo per tutte, in cache, invece dello
 * stile ripetuto in ogni pagina. Solo le variabili di /base.css: il tema scuro
 * viene da lì senza righe in più.
 *
 * Impaginazione rifatta il 2026-11-01 (Gabriele: «sempre troppo piccolo e centrale…
 * noioso, solo testi»; scelta la direzione «B» del mockup
 * https://claude.ai/artifact/VqmrWmJ5SwoF5Zy4YuwL7B): la griglia larga della home,
 * un articolo in evidenza e le copertine disegnate in build (copertina.mjs): dalla sera
 * dell'1/11 un'illustrazione per articolo, sul suo argomento, al posto del percorso
 * uguale per tutti (e senza più la scena 3D).
 * Niente gradienti arcobaleno né titoli con gradient-clip (design system dell'app). */

html{scroll-padding-top:96px}
p{margin:0}
h1,h2,h3{margin:0;font-weight:500}

/* La copertina: l'illustrazione (copertina.mjs) riempie la scatola, sempre a 16:10 come
   è disegnata, così niente resta tagliato fuori. I colori sono quelli di base.css. */
.copbox{border-radius:20px;overflow:hidden;background:var(--tint);min-width:0;max-width:100%;aspect-ratio:16/10}
.cop{display:block;width:100%;height:100%}
.cop text{font-family:var(--sans)}
.cop .f{font-family:var(--display)}

/* Le righe sopra i titoli: categoria in «notte» (orienta), poi data e tempo di lettura. */
.sopra{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:14px;color:var(--muted)}
.chip{font-size:13px;font-weight:600;color:var(--blu-testo);background:var(--blu-tint);padding:4px 10px;border-radius:999px;white-space:nowrap}
.firma{margin-top:22px;font-size:15px;color:var(--muted)}
.firma b{color:var(--fg);font-weight:600}

/* ── L'indice ── */
.testa{padding-block:clamp(32px,4vw,64px) clamp(24px,3vw,40px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 48px;align-items:end}
.testa h1{font-size:clamp(48px,6vw,104px);line-height:1;letter-spacing:-.03em}
.testa h1 em{font-style:italic;color:var(--viola)}
.testa .sub{font-size:clamp(18px,.55vw + 13px,23px);color:var(--fg-soft);max-width:30em;margin-top:16px}
.testa .conta{font-size:15px;color:var(--muted);text-align:right}
@media (max-width:700px){.testa{grid-template-columns:minmax(0,1fr)}.testa .conta{text-align:left}}
.sezione+.sezione{margin-top:clamp(56px,6vw,96px)}
.sezione>h2{font-size:clamp(28px,2.4vw,40px);margin-bottom:clamp(20px,2vw,32px)}

/* L'articolo in evidenza: copertina larga a sinistra, testo a destra. */
.evidenza{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,4vw,72px);align-items:center;text-decoration:none;color:inherit}
.evidenza h2{font-size:clamp(30px,3vw,54px);line-height:1.08;margin:14px 0 16px}
.evidenza .sintesi{font-size:clamp(17px,.4vw + 14px,21px);color:var(--fg-soft);max-width:34em}
.leggi{display:inline-block;margin-top:24px;font-weight:600;color:var(--viola-deep)}
@media (max-width:900px){.evidenza{grid-template-columns:minmax(0,1fr)}}

/* Le altre: card grandi, due per riga. */
.griglia{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,4vw,64px) clamp(24px,3vw,48px)}
.evidenza+.griglia{margin-top:clamp(56px,6vw,96px);padding-top:clamp(32px,3vw,48px);border-top:1px solid var(--line)}
@media (max-width:760px){.griglia{grid-template-columns:minmax(0,1fr)}}
.card{display:flex;flex-direction:column;gap:16px;text-decoration:none;color:inherit;min-width:0}
.card h3{font-family:var(--display);font-size:clamp(24px,1.6vw,32px);line-height:1.15;letter-spacing:-.015em}
.card .sintesi{color:var(--fg-soft);font-size:17px;max-width:38em}
.card .copbox,.evidenza .copbox{transition:transform 240ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){
  .card:hover .copbox,.evidenza:hover .copbox{transform:translateY(-3px)}
  .card:hover h3,.evidenza:hover h2{color:var(--viola-deep)}
}

/* ── La pagina di un contenuto ── */
.atesta{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,4vw,80px);align-items:center;padding-block:clamp(24px,3vw,56px)}
.back{display:inline-flex;align-items:center;gap:6px;color:var(--fg-soft);text-decoration:none;font-size:15px;margin-bottom:22px}
@media (hover:hover) and (pointer:fine){.back:hover{color:var(--viola-deep)}}
.atesta h1{font-size:clamp(36px,3.8vw,72px);line-height:1.06;letter-spacing:-.025em;margin:16px 0 20px}
.atesta .dek{font-size:clamp(18px,.55vw + 13px,23px);color:var(--fg-soft);max-width:30em}
@media (max-width:900px){.atesta{grid-template-columns:minmax(0,1fr)}.atesta .copbox{order:-1}}

/* Il corpo: l'indice dei paragrafi a sinistra, il testo a ~68 caratteri, l'invito a destra.
   Sotto i 1360px l'invito scende dopo il testo, sotto i 960px sparisce l'indice. */
.corpo{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,68ch) minmax(240px,320px);grid-template-areas:"indice testo lato";justify-content:space-between;gap:clamp(32px,4vw,80px);margin-top:clamp(16px,2vw,32px);padding-top:clamp(28px,3vw,48px);border-top:1px solid var(--line)}
.corpo.senza-indice{grid-template-columns:minmax(0,68ch) minmax(240px,320px);grid-template-areas:"testo lato"}
.indice{grid-area:indice}.testo{grid-area:testo}.lato{grid-area:lato}
@media (max-width:1359px){
  .corpo{grid-template-columns:minmax(190px,240px) minmax(0,68ch);grid-template-areas:"indice testo" ". lato";justify-content:start}
  .corpo.senza-indice{grid-template-columns:minmax(0,68ch);grid-template-areas:"testo" "lato"}
}
@media (max-width:959px){.corpo,.corpo.senza-indice{grid-template-columns:minmax(0,1fr);grid-template-areas:"testo" "lato"}.indice{display:none}}

/* L'indice è un percorso: ogni «##» una tappa, che si spunta mentre si legge (/blog.js). */
.indice{position:sticky;top:96px;align-self:start;font-size:15px;max-height:calc(100vh - 120px);overflow-y:auto}
.indice h2{font:600 14px var(--sans);letter-spacing:0;color:var(--muted);margin:0 0 14px}
.indice ol{list-style:none;margin:0;padding:0;position:relative}
.indice ol::before{content:"";position:absolute;left:11px;top:12px;bottom:12px;width:2px;background:var(--line)}
.indice li{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;padding:5px 0;line-height:1.35}
.indice li a{color:var(--fg-soft);text-decoration:none;padding-top:2px}
@media (hover:hover) and (pointer:fine){.indice li a:hover{color:var(--viola-deep)}}
.indice .n{width:24px;height:24px;border-radius:50%;background:var(--bg);border:2px solid var(--line);position:relative;z-index:1;display:grid;place-items:center;transition:background-color 200ms ease,border-color 200ms ease}
.indice li.fatta .n{background:var(--viola);border-color:var(--viola)}
.indice li.fatta .n::after{content:"";width:8px;height:4px;border:2px solid var(--on-viola);border-top:0;border-right:0;transform:translate(0,-1px) rotate(-45deg)}
.indice li.qui .n{border-color:var(--blu);background:var(--blu-tint);box-shadow:0 0 0 4px var(--blu-tint)}
.indice li.qui a{color:var(--fg);font-weight:600}

/* La lettura lunga: ~68 caratteri per riga, corpo grande, aria fra i titoli. */
.testo{font-size:19px;line-height:1.7;min-width:0;overflow-wrap:break-word}
.testo>p:first-child::first-letter{font-family:var(--display);float:left;font-size:4.1em;line-height:.82;padding:6px 12px 0 0;color:var(--viola)}
.testo h2{font-size:clamp(26px,2vw,34px);line-height:1.2;margin:56px 0 14px}
.testo h3{font-size:21px;line-height:1.3;margin:32px 0 8px}
.testo p,.testo ul,.testo ol{margin:0 0 20px}
.testo li{margin-bottom:8px}
.testo li::marker{color:var(--viola)}
.testo strong{color:var(--fg)}
.testo blockquote{margin:0 0 20px;padding-left:16px;border-left:3px solid var(--line);color:var(--fg-soft)}

/* Le tabelle scorrono di lato sul telefono, senza allargare la pagina. */
.tabella{overflow-x:auto;margin:0 0 24px;-webkit-overflow-scrolling:touch}
.testo table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.5}
.testo th,.testo td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top;background:var(--surface)}
.testo th{background:var(--soft);font-weight:650}
@media (max-width:600px){.testo table{min-width:520px}}

/* L'invito: lavanda come la chiusura della home; accanto al testo sugli schermi larghi. */
.lato{align-self:start;min-width:0}
@media (min-width:1360px){.lato{position:sticky;top:96px}}
.invito{background:var(--tint);border-radius:20px;padding:28px;max-width:560px}
.invito h2{font-size:26px;line-height:1.2;margin:0 0 8px}
.invito p{margin:0 0 20px;color:var(--fg-soft);font-size:17px}
.invito .micro{margin:12px 0 0;font-size:14px;color:var(--muted)}

/* «Da leggere dopo»: le stesse card dell'indice. */
.dopo{margin-top:clamp(56px,6vw,96px);padding-top:clamp(32px,3vw,48px);border-top:1px solid var(--line)}
.dopo>h2{font-size:clamp(28px,2.4vw,40px);margin-bottom:clamp(20px,2vw,32px)}
