/* ==== Caratteri ospitati in locale =========================================
   Inter e Figtree sono serviti da questo dominio, non da fonts.gstatic.com.
   Motivo: caricarli da Google trasmette l'indirizzo IP di ogni visitatore a
   un terzo senza base giuridica. Cosi il sito non fa alcuna chiamata esterna
   e non ha bisogno di un banner cookie. Entrambi sono sotto SIL Open Font
   License 1.1: vedi assets/fonts/LICENSE-OFL.txt
   ========================================================================= */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/inter-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/inter-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/inter-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/inter-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/figtree-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/figtree-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/figtree-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/figtree-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* Struttura */
  --ink: #14243A; --muted-ink: #5C6878; --paper: #FFFFFF; --surface: #FFFFFF;
  --surface-2: #FBFCFE; --wash: #F5F7FA; --line: #DCE3EC; --hairline: #C9D3DF;
  /* Colori semantici */
  --human: #1F6B75; --ai: #4653A8; --evidence: #A87722; --solution: #336B50; --warn: #A9554D;
  /* Tinte di sfondo dei colori semantici */
  --human-bg: #EAF3F5; --ai-bg: #EEEFF8; --evidence-bg: #F8F2E5; --solution-bg: #EAF2ED; --warn-bg: #F8EEEC;
  /* Varianti scure, per testo sopra le tinte */
  --on-evidence: #7E5716; --on-solution: #24503C; --ai-soft: #7C86C9;
  /* Neutri di servizio */
  --label: #8B95A6; --grid: #8794A8; --grid-soft: #A6B0BE; --muted-soft: #AEB8C4; --ink-soft: #D4DEEC;
  /* Tipografia */
  --display: Figtree, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --shadow: 0 12px 35px rgba(20,36,58,.08); --radius: 18px; --max: 1180px;
}
* { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; background: var(--paper); color: var(--ink); font-family: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size: 16px; line-height: 1.6; } a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; } a:hover { color: var(--ai); } img { max-width: 100%; display: block; } h1,h2,h3 { line-height: 1.15; letter-spacing: -.025em; } h1 { font-size: clamp(2.35rem,5vw,4.75rem); margin: .2rem 0 1.25rem; max-width: 14ch; } h2 { font-size: clamp(1.65rem,3vw,2.5rem); margin: 0 0 1rem; } h3 { font-size: 1.22rem; margin: .35rem 0 .75rem; } p { margin: 0 0 1rem; } button { font: inherit; } .container { width: min(var(--max),calc(100% - 3rem)); margin-inline: auto; } .narrow { width: min(760px,100%); } .skip-link { position:absolute; left:-9999px; top:0; background:var(--ink); color:#fff; padding:.75rem 1rem; z-index:10; } .skip-link:focus { left:1rem; top:1rem; } .site-header { border-bottom:1px solid var(--line); background:rgba(255,255,255,.96); position:sticky; top:0; z-index:5; backdrop-filter:blur(10px); } .header-inner { padding:1rem 0; display:flex; gap:1.5rem; align-items:center; justify-content:space-between; } .brand { text-decoration:none; display:grid; line-height:1.15; min-width:235px; } .brand-name { font-size:1.05rem; font-weight:760; letter-spacing:-.02em; } .brand-claim { font-size:.7rem; color:var(--muted-ink); text-transform:uppercase; letter-spacing:.07em; margin-top:.2rem; } nav { display:flex; align-items:center; flex-wrap:wrap; gap:.3rem .9rem; justify-content:flex-end; } nav a { text-decoration:none; font-size:.9rem; color:var(--muted-ink); padding:.25rem 0; } nav a.active { color:var(--ink); font-weight:700; border-bottom:2px solid var(--ai); } .hero { padding:clamp(4rem,9vw,8rem) 0 clamp(3rem,7vw,6rem); background:linear-gradient(135deg,#FBFCFE 0%,#F1F4FA 55%,#EEEFF8 100%); } .hero-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,6vw,6rem); align-items:center; } .page-hero { padding:clamp(4rem,9vw,7rem) 0 3rem; background:linear-gradient(135deg,#FBFCFE,#EFF1F9); } .lesson-hero h1 { max-width:none; } .eyebrow { color:var(--ai); font-size:.75rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; margin-bottom:.8rem; } .lead { color:var(--muted-ink); font-size:clamp(1.13rem,2vw,1.4rem); line-height:1.55; max-width:60ch; } .actions { display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1.8rem; } .button { border-radius:999px; display:inline-block; font-weight:750; padding:.75rem 1.15rem; text-decoration:none; cursor:pointer; border:1px solid transparent; } .button:focus-visible,.lesson-index button:focus-visible { outline:3px solid var(--ai-soft); outline-offset:3px; } .button:disabled { cursor:not-allowed; opacity:.45; } .button.primary { background:var(--ai); color:white; } .button.primary:hover { background:#363F84; color:white; } .button.secondary { border-color:var(--line); background:white; color:var(--ink); } .hero-visual { margin:0; background:rgba(255,255,255,.72); border:1px solid rgba(96,70,167,.14); border-radius:var(--radius); padding:1.25rem; box-shadow:var(--shadow); } .hero-visual figcaption { color:var(--muted-ink); font-size:.85rem; margin-top:1rem; text-align:center; } .section { padding:clamp(3.5rem,7vw,6rem) 0; } .muted { background:var(--wash); } .card-grid { display:grid; gap:1rem; margin-top:2rem; } .card-grid.three { grid-template-columns:repeat(3,1fr); } .card { background:white; border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem; } .card:hover { box-shadow:var(--shadow); transform:translateY(-2px); transition:.2s ease; } .card-number { display:inline-grid; place-items:center; width:2rem; height:2rem; border-radius:50%; background:var(--ai-bg); color:var(--ai); font-size:.78rem; font-weight:800; } .link-card h3 a { text-decoration:none; } .coming { color:var(--muted-ink); font-size:.86rem; font-style:italic; margin-bottom:0; } .visual-section { overflow:hidden; } .method-steps { list-style:none; display:grid; grid-template-columns:repeat(5,1fr); gap:.6rem; padding:0; margin:2rem 0 0; position:relative; } .method-steps::before { content:""; position:absolute; height:2px; top:1.35rem; left:8%; right:8%; background:var(--line); z-index:-1; } .method-steps li { background:var(--paper); border:1px solid var(--line); border-radius:14px; min-height:150px; padding:1rem; transition:background .35s ease,border-color .35s ease,transform .35s ease; } .method-steps li.is-active { border-color:var(--ai); background:var(--ai-bg); transform:translateY(-4px); } .method-steps span { display:grid; place-items:center; width:2.6rem; height:2.6rem; border-radius:50%; background:var(--ink); color:white; font-size:.85rem; font-weight:800; margin-bottom:1rem; } .method-steps strong { display:block; } .method-steps small { display:block; color:var(--muted-ink); line-height:1.35; margin-top:.4rem; } .method-steps.vertical { display:grid; grid-template-columns:1fr; gap:.7rem; max-width:680px; } .method-steps.vertical::before { width:2px; height:calc(100% - 6rem); top:3rem; left:1.3rem; right:auto; } .method-steps.vertical li { min-height:0; display:grid; grid-template-columns:3.2rem 1fr; column-gap:.8rem; align-items:center; } .method-steps.vertical span { grid-row:span 2; margin:0; } .method-steps.vertical small { grid-column:2; } .prose p { border-left:3px solid var(--evidence); padding-left:1rem; } .source-template { display:grid; gap:.8rem; margin:1.5rem 0 2.5rem; } .source-template section { border-left:4px solid var(--human); background:var(--wash); padding:1rem 1.1rem; } .source-template section:nth-child(2) { border-color:var(--evidence); } .source-template section:nth-child(3) { border-color:var(--ai); } .source-template section:nth-child(4) { border-color:var(--solution); } .source-template section:nth-child(5) { border-color:var(--ink); } .source-template h3 { margin-top:0; } .site-footer { background:var(--ink); color:var(--ink-soft); padding:1.8rem 0; } .footer-inner { display:flex; justify-content:space-between; gap:1rem; align-items:center; } .footer-inner p { margin:0; font-size:.86rem; } .status { color:var(--grid-soft); }
.lesson-section { background:var(--surface-2); } .lesson-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:2rem; align-items:start; } .lesson-side { position:sticky; top:6.5rem; } .lesson-index { list-style:none; padding:0; margin:1rem 0; display:grid; gap:.28rem; } .lesson-index button { width:100%; display:flex; gap:.6rem; align-items:flex-start; text-align:left; background:transparent; color:var(--muted-ink); border:0; border-radius:10px; padding:.58rem; cursor:pointer; font-size:.82rem; line-height:1.25; } .lesson-index button:hover,.lesson-index button.is-active { background:var(--ai-bg); color:var(--ink); } .lesson-index button span { flex:0 0 auto; display:grid; place-items:center; width:1.4rem; height:1.4rem; border-radius:50%; color:white; background:var(--label); font-size:.7rem; font-weight:800; } .lesson-index button.is-active span { background:var(--ai); } .lesson-time { color:var(--muted-ink); font-size:.8rem; margin-top:1rem; } .lesson-card { border:1px solid var(--line); background:white; border-radius:22px; padding:clamp(1.35rem,4vw,2.7rem); box-shadow:var(--shadow); min-height:620px; } .lesson-progress { display:grid; gap:.45rem; color:var(--muted-ink); font-size:.82rem; margin-bottom:2rem; } .progress-track { height:.42rem; border-radius:99px; overflow:hidden; background:var(--wash); } .progress-track span { display:block; height:100%; width:0; border-radius:inherit; background:linear-gradient(90deg,var(--ai),var(--ai-soft)); transition:width .35s ease; } .lesson-card h2 { max-width:22ch; } .lesson-diagram { min-height:265px; margin:2rem 0; border:1px solid var(--line); border-radius:18px; background:linear-gradient(135deg,#FBFCFE,#F3F4FB); padding:1.25rem; display:grid; place-items:center; overflow:auto; } .lesson-copy { font-size:1.06rem; max-width:68ch; } .lesson-copy p:last-child { margin-bottom:0; } .lesson-takeaway { margin-top:1.5rem; border-left:4px solid var(--solution); padding:.85rem 1rem; background:var(--solution-bg); color:var(--on-solution); font-weight:650; } .lesson-controls { display:flex; justify-content:space-between; gap:1rem; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line); } .diagram-arrow.down { line-height:1; } .diagram-request.compact { max-width:370px; }
.article-hero h1 { max-width:none; } .article-body { font-size:1.06rem; } .article-body h2 { margin:3rem 0 1rem; max-width:26ch; } .article-body > p:first-of-type { font-size:1.13rem; color:var(--muted-ink); } .article-body .lesson-diagram { margin:2.2rem 0; min-height:0; background:#fdfdfb; } .article-body code { background:var(--ai-bg); color:var(--ai); border-radius:6px; padding:.1rem .35rem; font-size:.92em; } .article-list { display:grid; gap:.55rem; margin:0 0 1.5rem; padding-left:1.2rem; } .article-list li::marker { color:var(--ai); } .article-quote { margin:1.6rem 0; border-left:4px solid var(--evidence); background:var(--wash); padding:.9rem 1.1rem; } .article-quote p { margin:0; } .article-table { border-collapse:collapse; width:100%; margin:1.5rem 0; } .article-table td { width:50%; border:1px solid var(--line); background:var(--paper); padding:.85rem 1rem; vertical-align:top; } .article-note { margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--line); color:var(--muted-ink); font-size:.92rem; }
@media (max-width:620px) { .article-table td { display:block; width:auto; } .article-table td + td { border-top:0; } }
@media (prefers-reduced-motion:reduce) { .lesson-diagram svg, .lesson-diagram svg * { animation-delay:0s !important; } }
@media (max-width:620px) { .lesson-diagram svg { min-width:560px; } .lesson-diagram { justify-items:start; } }
@media (max-width:900px) { .header-inner { align-items:flex-start; flex-direction:column; } nav { justify-content:flex-start; } .hero-grid,.card-grid.three { grid-template-columns:1fr; } .method-steps { grid-template-columns:1fr; } .method-steps::before { display:none; } .method-steps li { min-height:0; } .lesson-layout { grid-template-columns:minmax(0,1fr); } .lesson-side { position:static; } .lesson-index { grid-template-columns:repeat(2,1fr); } .lesson-card { min-height:0; } }
@media (max-width:620px) { .container { width:min(var(--max),calc(100% - 2rem)); } .site-header { position:static; } .brand-claim { max-width:260px; } nav { gap:.3rem .75rem; } .footer-inner { align-items:flex-start; flex-direction:column; } .lesson-index { grid-template-columns:1fr; } .lesson-diagram { min-height:215px; padding:.8rem; } .diagram-arrow.down { transform:none; } .lesson-controls { flex-direction:column-reverse; } .lesson-controls button { width:100%; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
/* ===== V2 — tipografia editoriale ==================================== */
body { font-family: var(--sans); }
/* pesi tarati su Figtree: un sans geometrico rende più leggero di un serif
   allo stesso peso nominale, quindi i titoli salgono di un gradino */
h1, h2, h3 { font-family: var(--display); letter-spacing: -.021em; }
h1 { font-weight: 800; }
h2, h3 { font-weight: 700; }
.brand-name { font-family: var(--display); font-weight: 700; letter-spacing: -.01em; }
.tesi { font-family: var(--display); font-style: italic; }
.lead { color: var(--muted-ink); }

/* ===== V2 — hero e banco di lavoro =================================== */
.hero-v2 { padding: clamp(3.5rem,8vw,6.5rem) 0 clamp(3rem,6vw,5rem); background: linear-gradient(160deg,#FBFCFE 0%,#F3F5FB 60%,#EFF1F9 100%); border-bottom: 1px solid var(--line); }
.hero-v2 .hero-grid { display: grid; grid-template-columns: 1.02fr .98fr; gap: clamp(2rem,5vw,4.5rem); align-items: center; }
.hero-v2 h1 { font-size: clamp(2.1rem,4.2vw,3.5rem); max-width: 17ch; line-height: 1.12; margin: .4rem 0 1.3rem; }
.hero-v2 .lead { font-size: clamp(1.02rem,1.5vw,1.18rem); max-width: 46ch; color: var(--muted-ink); }
.banco { margin: 0; }
.banco svg { width: 100%; height: auto; display: block; }
.banco figcaption { margin-top: 1rem; font-size: .84rem; color: var(--muted-ink); text-align: center; }
.ciclo-verso { position: absolute; color: var(--hairline); font-size: 1.5rem; line-height: 1; pointer-events: none; }

/* ===== V2 — manifesto: tre verbi, non tre schede ===================== */
.manifesto { display: grid; gap: 0; margin-top: 2.2rem; border-top: 1px solid var(--line); }
.manifesto-riga { display: grid; grid-template-columns: 76px 200px 1fr; gap: clamp(1rem,3vw,2.4rem); align-items: center; padding: clamp(1.5rem,3vw,2.2rem) 0; border-bottom: 1px solid var(--line); }
.manifesto-riga svg { width: 76px; height: 76px; display: block; }
.manifesto-verbo { font-family: var(--display); font-size: clamp(1.5rem,2.6vw,2.05rem); font-weight: 700; letter-spacing: -.015em; margin: 0; }
.manifesto-tesi { margin: 0; font-size: 1.02rem; color: var(--muted-ink); max-width: 54ch; }

/* ===== V2 — ciclo del metodo ========================================= */
.ciclo-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.85fr); gap: clamp(2rem,5vw,4rem); align-items: center; margin-top: 2rem; }
.ciclo { position: relative; aspect-ratio: 1 / .88; max-width: 480px; margin-inline: auto; width: 100%; }
.ciclo-anello { position: absolute; inset: 0; width: 100%; height: 100%; }
.ciclo-nodo { position: absolute; transform: translate(-50%,-50%); background: var(--surface); border: 2px solid var(--line); border-radius: 999px; padding: .55rem 1rem; font: inherit; font-size: .88rem; font-weight: 650; color: var(--muted-ink); cursor: pointer; white-space: nowrap; transition: border-color .2s, color .2s, box-shadow .2s; }
.ciclo-nodo:hover { border-color: var(--ai); color: var(--ink); }
.ciclo-nodo[aria-selected="true"] { border-color: var(--ai); background: var(--ai-bg); color: var(--ai); box-shadow: 0 4px 14px rgba(70,83,168,.14); }
.ciclo-nodo:focus-visible { outline: 3px solid var(--ai-soft); outline-offset: 3px; }
.ciclo-nota { border-left: 3px solid var(--ai); padding: .2rem 0 .2rem 1.4rem; }
.ciclo-nota p.eyebrow { margin-bottom: .5rem; }
.ciclo-nota h3 { font-size: 1.45rem; margin: 0 0 .6rem; }
.ciclo-nota p:last-child { margin-bottom: 0; color: var(--muted-ink); }

/* ===== V2 — percorso in evidenza ===================================== */
.evidenza { background: var(--ink); color: var(--ink-soft); border-radius: var(--radius); padding: clamp(1.8rem,4vw,3rem); margin-top: 2rem; }
.evidenza .eyebrow { color: var(--ai-soft); }
.evidenza h2 { color: #fff; margin-bottom: .8rem; }
.evidenza p { color: var(--ink-soft); max-width: 62ch; }
.evidenza-tappe { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 1.6rem 0; }
.evidenza-tappe li { border: 1px solid rgba(212,222,236,.28); border-radius: 999px; padding: .34rem .8rem; font-size: .8rem; color: var(--ink-soft); }
.evidenza-tappe li b { color: #fff; font-weight: 700; margin-right: .35rem; }
.evidenza .button.primary { background: #fff; color: var(--ink); }
.evidenza .button.primary:hover { background: var(--ink-soft); color: var(--ink); }
.evidenza .button.secondary { background: transparent; border-color: rgba(212,222,236,.4); color: #fff; }

/* ===== V2 — aree ===================================================== */
.area-icona { width: 42px; height: 42px; display: block; margin-bottom: .9rem; }

/* ===== V2 — mobile =================================================== */
@media (max-width:900px) {
  .hero-v2 .hero-grid { grid-template-columns: 1fr; }
  .ciclo-layout { grid-template-columns: 1fr; }
  .manifesto-riga { grid-template-columns: 56px 1fr; row-gap: .5rem; }
  .manifesto-riga svg { width: 56px; height: 56px; }
  .manifesto-tesi { grid-column: 2; }
}
@media (max-width:620px) {
  .ciclo { aspect-ratio: auto; max-width: none; display: grid; gap: .55rem; }
  .ciclo-anello { display: none; }
  .ciclo-nodo { position: static; transform: none; width: 100%; text-align: left; white-space: normal; }
  .ciclo-nodo::after { content: " ↓"; color: var(--label); }
  .ciclo-nodo:last-of-type::after { content: " ↺ nuova domanda"; font-size: .78rem; }
  .banco { overflow-x: auto; }
  .banco svg { min-width: 520px; }
  .manifesto-riga { grid-template-columns: 1fr; }
  .manifesto-riga svg { width: 48px; height: 48px; }
  .manifesto-tesi { grid-column: 1; }
}
@media (prefers-reduced-motion:reduce) { .banco svg, .banco svg *, .manifesto-riga svg * { animation-delay: 0s !important; } }

/* ===== Fonti: una voce di bibliografia ============================== */
.article-body .fonte { border-left: 3px solid var(--evidence); padding: .15rem 0 .15rem 1.35rem; margin: 1.7rem 0; }
.article-body .fonte h3 { font-size: 1.06rem; margin: 0 0 .3rem; letter-spacing: -.005em; }
.article-body .fonte h3 a { text-decoration-thickness: .06em; }
.article-body .fonte .meta { font-size: .82rem; color: var(--label); margin: 0 0 .65rem; letter-spacing: .01em; }
.article-body .fonte p { margin: 0 0 .5rem; }
.article-body .fonte .dove { font-size: .9rem; color: var(--muted-ink); margin-bottom: 0; }
.article-body .fonte .dove b { color: var(--ink); font-weight: 650; }
.article-body .fonte.propria { border-left-color: var(--human); }
.article-body .fonte.giudizio { border-left-color: var(--warn); }

/* ===== Fonti: ancoraggio evidenziato e piè di pagina per contenuto ==== */
/* l'intestazione resta in alto: le voci raggiunte da un collegamento
   devono fermarsi sotto di essa, non dietro */
.article-body .fonte { scroll-margin-top: 92px; }
.article-body .fonte:target { background: var(--evidence-bg); border-left-width: 5px; border-radius: 0 10px 10px 0; padding: .8rem 1rem .8rem 1.35rem; }
.article-body .fonte.giudizio:target { background: var(--warn-bg); }
.fonti-pagina { border-top: 1px solid var(--line); }
.fonti-elenco { list-style: none; padding: 0; margin: 1.1rem 0 1.5rem; display: grid; gap: .6rem; }
.fonti-elenco li { position: relative; padding-left: 1.2rem; font-size: .93rem; color: var(--muted-ink); line-height: 1.45; }
.fonti-elenco li::before { content: "—"; position: absolute; left: 0; color: var(--evidence); }
.fonti-elenco li.non-documentato::before { color: var(--warn); }
.fonti-elenco a { color: var(--ink); }

/* ===== Pie' di pagina con collegamenti di servizio ==================== */
.footer-inner { flex-wrap: wrap; align-items: flex-start; row-gap: 1rem; }
.footer-nome { font-family: var(--display); font-weight: 700; font-size: 1rem; color: #fff; margin: 0 0 .15rem; }
.footer-nav { display: flex; gap: 1.15rem; justify-content: flex-start; }
.footer-nav a { color: var(--ink-soft); font-size: .86rem; text-decoration: none; border-bottom: 1px solid transparent; padding-bottom: 1px; }
.footer-nav a:hover, .footer-nav a:focus-visible { color: #fff; border-bottom-color: var(--ai-soft); }
.footer-nota { max-width: 32ch; text-align: right; }
.contatto-riga:empty { display: none; }
@media (max-width: 760px) { .footer-inner { flex-direction: column; gap: .9rem; } .footer-nota { text-align: left; max-width: none; } }
.data-pagina { color: var(--label); font-size: .82rem; margin: .55rem 0 0; letter-spacing: .01em; }
.data-pagina + p { margin-top: 1.1rem; }
