/* Fiducia fondativa — stile del minisito "fiducia".
   Scopo tutto sotto .fd per non interferire con altri minisiti (vedi
   ISTANZE.md, "Come e' organizzato root/static/"). Variabili di colore
   derivate dal mockup di progetto; supporto dark mode per chi lo richiede
   al sistema (nessun toggle in pagina: e' lo stesso principio di
   root/lib/site/html, che non introduce stato lato client senza bisogno). */

.fd{
  --paper:#F1F2EE; --paper-2:#E9EBE5; --paper-3:#F7F8F5;
  --ink:#191D1B; --ink-soft:#2E3431; --muted:#6B7470; --muted-2:#4E5753;
  --faint:#8C9490; --rule:#D5D8D2; --rule-strong:#191D1B; --rule-soft:#C9CDC6;
  --accent:#115E56; --accent-dark:#0B3F3A; --accent-soft:#115E560D;
  --sans:Archivo,"Helvetica Neue",Arial,sans-serif;
  --serif:Spectral,Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --measure:66ch;
  background:var(--paper); color:var(--ink);
  font-family:var(--serif); font-size:17px; line-height:1.62;
  -webkit-font-smoothing:antialiased;
  min-height:100vh; display:flex; flex-direction:column;
}
@media (prefers-color-scheme: dark){
  .fd:not([data-theme="light"]){
    --paper:#14181A; --paper-2:#1B2023; --paper-3:#191F21;
    --ink:#E7EAE6; --ink-soft:#CDD3CE; --muted:#9AA49F; --muted-2:#AEB7B2;
    --faint:#74807A; --rule:#2B3235; --rule-strong:#E7EAE6; --rule-soft:#394045;
    --accent:#63C3B4; --accent-dark:#8FD8CC; --accent-soft:#63c3b412;
  }
}
.fd a{color:var(--accent); text-underline-offset:3px}
.fd a:hover{color:var(--accent-dark)}
.fd ::selection{background:var(--accent-soft)}
.fd *{box-sizing:border-box}

.fd-container{max-width:1180px; margin:0 auto; padding:0 clamp(18px,4vw,44px)}
.fd-eyebrow{font-family:var(--mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.fd-lead{font-size:clamp(18px,2.2vw,22px); line-height:1.4; color:var(--muted-2); margin:14px 0 0; max-width:48ch}

/* header */
.fd > header{border-bottom:1px solid var(--rule); background:var(--paper); position:sticky; top:0; z-index:5}
.fd-header__bar{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 28px; min-height:60px}
.fd-wordmark{font-family:var(--sans); font-weight:700; font-size:17px; letter-spacing:-.01em; color:var(--ink); text-decoration:none}
.fd-nav{display:flex; flex-wrap:wrap; gap:4px 22px}
.fd-nav a{font-family:var(--sans); font-size:14px; font-weight:500; text-decoration:none; padding:18px 0 16px; color:var(--muted-2); border-bottom:2px solid transparent}
.fd-nav a.is-active{color:var(--ink); border-bottom-color:var(--accent)}
.fd-strip{border-top:1px solid var(--rule); background:var(--paper-2)}
.fd-strip__inner{padding:7px clamp(18px,4vw,44px); display:flex; flex-wrap:wrap; gap:4px 22px; font-family:var(--mono); font-size:11.5px; color:var(--muted-2)}
.fd-strip__inner b{color:var(--ink); font-weight:500}
.fd-strip__path{margin-left:auto}

/* main regions */
.fd > main{flex:1}
.fd-hero{padding:clamp(40px,7vw,80px) 0 34px; border-bottom:1px solid var(--rule)}
.fd-hero h1{font-family:var(--sans); font-size:clamp(38px,7vw,72px); line-height:1.02; font-weight:700; letter-spacing:-.022em; margin:16px 0 0; max-width:16ch}
.fd-page-head{padding:clamp(36px,6vw,64px) 0 0}
.fd-page-head .fd-eyebrow + h1{margin:12px 0 10px}
.fd-page-head h1{font-family:var(--sans); font-size:clamp(32px,5vw,48px); line-height:1.05; letter-spacing:-.02em; margin:0}
.fd-page-head p{margin:0 0 36px; max-width:60ch; color:var(--muted-2)}

.fd-infogrid{margin-top:36px; display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); border:1px solid var(--rule); background:var(--paper-3)}
.fd-infogrid > div{padding:16px 18px; border-right:1px solid var(--rule)}
.fd-infogrid > div:last-child{border-right:none}
.fd-infogrid__val{font-family:var(--sans); font-size:22px; font-weight:600; margin-top:4px}
.fd-infogrid__links{display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:8px; font-family:var(--sans); font-size:15px; font-weight:500}
.fd-infogrid__sub{font-family:var(--mono); font-size:12px; color:var(--muted-2)}

/* guida layout: sticky tappe nav + content column */
.fd-guida-layout{display:flex; flex-wrap:wrap; gap:0 clamp(28px,5vw,72px); align-items:flex-start}
.fd-tappenav{flex:0 0 200px; position:sticky; top:100px; padding:40px 0}
.fd-tappenav__label{padding:0 9px 12px}
.fd-tappenav__list{display:flex; flex-direction:column; gap:2px}
.fd-tappenav a{display:flex; gap:10px; align-items:baseline; text-decoration:none; color:var(--muted-2); font-family:var(--sans); font-size:13.5px; font-weight:500; line-height:1.3; padding:7px 9px; border-radius:2px}
.fd-tappenav a:hover{background:var(--accent-soft); color:var(--ink)}
.fd-tappenav a span:first-child{font-family:var(--mono); font-size:11px; color:var(--accent)}
.fd-tappenav__note{font-family:var(--mono); font-size:11px; color:var(--muted); padding:18px 9px 0; line-height:1.5}
.fd-guida-col{flex:1 1 520px; min-width:0; max-width:66ch; padding:clamp(30px,5vw,56px) 0 0}

.fd-section{padding:clamp(40px,6vw,64px) 0 clamp(48px,8vw,90px); border-top:1px solid var(--rule)}
.fd-section:first-child{padding-top:0; border-top:none}
.fd-section__meta{display:flex; align-items:baseline; gap:12px; margin-bottom:6px; font-family:var(--mono); font-size:12px}
.fd-section__meta .tappa{color:var(--accent); letter-spacing:.06em}
.fd-section__meta .src{color:var(--muted)}
.fd-section h2{font-family:var(--sans); font-size:clamp(26px,3.4vw,34px); line-height:1.12; letter-spacing:-.015em; margin:0}
.fd-section .fd-lead{margin:14px 0 28px}
.fd-section p{margin:0 0 18px}
.fd-section h3{font-family:var(--sans); font-size:19px; font-weight:600; line-height:1.3; margin:34px 0 12px}
.fd-section h3 a.ref{font-family:var(--mono); font-size:12.5px; font-weight:400; margin-left:8px}

.fd article p, .fd article li{text-wrap:pretty}
.fd article{max-width:70ch}
.fd article p{margin:0 0 18px}
.fd article ul, .fd article ol{margin:0 0 18px; padding-left:1.3em}
.fd article li{margin-bottom:6px}
.fd article strong{font-weight:600}

/* quote component */
.fd-quote{margin:0 0 24px; padding:2px 0 2px 20px; border-left:2px solid var(--accent); font-size:19px; font-style:italic; line-height:1.5}
.fd-quote cite{display:block; font-style:normal; font-family:var(--mono); font-size:12px; color:var(--muted); margin-top:8px}

/* generic bordered card grid */
.fd-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; margin:26px 0}
.fd-card{border:1px solid var(--rule); background:var(--paper-3); padding:16px 18px; display:block; text-decoration:none; color:var(--ink)}
.fd-card:hover{color:var(--accent)}
.fd-card__eyebrow{font-family:var(--mono); font-size:11px; color:var(--muted); letter-spacing:.08em; text-transform:uppercase}
.fd-card__title{font-family:var(--sans); font-size:16px; margin:6px 0 6px; font-weight:600}
.fd-card__title a{text-decoration-style:dotted}
.fd-card__body{margin:0; font-size:15.5px; line-height:1.5; color:var(--ink-soft)}
.fd-card--big .fd-card__title{font-size:22px}
.fd-card--big .fd-card__body{color:var(--muted-2); font-size:15px}
.fd-card__file{font-family:var(--mono); font-size:12px; color:var(--accent); margin-top:6px}

/* "nel testo integrale" box */
.fd-intext{margin-top:36px; border-top:1px solid var(--rule); padding-top:14px}
.fd-intext__title{font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:8px}
.fd-intext__list{display:flex; flex-direction:column; gap:2px; font-family:var(--sans); font-size:15px}
.fd-intext a{text-decoration:none; display:flex; gap:14px; color:var(--ink)}
.fd-intext a:hover{color:var(--accent)}
.fd-intext__n{font-family:var(--mono); font-size:12.5px; min-width:44px; padding-top:2px; color:var(--ink)}
.fd-intext small{font-family:var(--mono); font-size:12px; color:var(--muted); font-weight:400}

/* indice del testo */
.fd-indice{border-top:1px solid var(--rule-strong)}
.fd-indice-row{display:grid; grid-template-columns:64px minmax(0,1fr) auto; gap:6px 24px; padding:18px 0; border-bottom:1px solid var(--rule); align-items:baseline}
.fd-indice-row__n{font-family:var(--mono); font-size:14px; color:var(--accent)}
.fd-indice-row__title{font-family:var(--sans); font-size:19px; font-weight:600; line-height:1.3; color:var(--ink); text-decoration:none}
.fd-indice-row__title:hover{color:var(--accent)}
.fd-indice-row__subs{display:flex; flex-wrap:wrap; gap:2px 16px; margin-top:6px; font-size:15px; color:var(--muted-2)}
.fd-indice-row__subs a{color:var(--muted-2); text-decoration:none}
.fd-indice-row__subs a:hover{color:var(--accent); text-decoration:underline}
.fd-indice-row__subs span{font-family:var(--mono); font-size:12px; color:var(--muted)}
.fd-indice-row__meta{display:flex; gap:14px; font-family:var(--mono); font-size:12px; white-space:nowrap; color:var(--muted)}

/* capitolo: article + aside */
.fd-cap-layout{display:flex; flex-wrap:wrap; gap:40px clamp(28px,4vw,64px); align-items:flex-start}
.fd-crumb{font-family:var(--mono); font-size:12px; color:var(--muted); display:flex; flex-wrap:wrap; gap:4px 14px}
.fd-crumb .here{color:var(--accent)}
.fd article > h1{font-family:var(--sans); font-size:clamp(28px,4.4vw,42px); line-height:1.1; letter-spacing:-.018em; margin:14px 0 14px}
.fd-cap-meta{font-family:var(--mono); font-size:12px; color:var(--muted-2); padding:10px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); margin-bottom:34px; display:flex; flex-wrap:wrap; gap:4px 18px}
.fd article h2{font-family:var(--sans); font-size:23px; font-weight:600; line-height:1.25; margin:44px 0 16px; display:flex; gap:14px; align-items:baseline}
.fd article h2:first-of-type{margin-top:0}
.fd article h2 > a.ref{font-family:var(--mono); font-size:14px; font-weight:400; text-decoration:none; color:var(--muted)}
.fd article h3{font-family:var(--sans); font-size:18px; font-weight:600; line-height:1.3; margin:28px 0 12px; padding-left:16px; display:flex; gap:14px; align-items:baseline}
.fd article h3 > a.ref{font-family:var(--mono); font-size:13px; font-weight:400; text-decoration:none; color:var(--muted)}
.fd-dl{margin:0 0 22px; border-top:1px solid var(--rule)}
.fd-dl > div{padding:12px 0; border-bottom:1px solid var(--rule)}
.fd-dl dt{font-family:var(--sans); font-weight:600; font-size:16px; margin:0}
.fd-dl dd{margin:2px 0 0}
.fd article .footnotes{margin-top:48px; padding-top:18px; border-top:1px solid var(--rule); font-size:14px; color:var(--muted-2)}
.fd article .footnotes ol{padding-left:1.3em}
.fd article .footnotes li{margin-bottom:10px}

.fd-prevnext{display:flex; justify-content:space-between; gap:20px; margin-top:56px; padding-top:18px; border-top:1px solid var(--rule-strong); font-family:var(--sans); font-size:15px}
.fd-prevnext a{text-decoration:none}
.fd-prevnext .next{text-align:right}

.fd-aside{flex:0 1 280px; min-width:240px; position:sticky; top:120px; display:flex; flex-direction:column; gap:26px}
.fd-aside__title{font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:8px}
.fd-toc{display:flex; flex-direction:column; gap:3px; font-family:var(--sans); font-size:13.5px; line-height:1.35}
.fd-toc a{text-decoration:none; color:var(--muted-2); display:flex; gap:10px}
.fd-toc a:hover{color:var(--accent)}
.fd-toc a.is-sub{padding-left:16px}
.fd-toc__n{font-family:var(--mono); font-size:11px; color:var(--accent); min-width:34px}
.fd-cite-box p{margin:0; font-size:14.5px; line-height:1.5; color:var(--ink-soft)}
.fd-cite-box a{font-family:var(--mono); font-size:12px; display:inline-block; margin-top:6px}
.fd-aside-links{display:flex; flex-direction:column; gap:4px; font-family:var(--mono); font-size:12.5px}

/* audio: disabilitato di proposito (mp3 non ancora disponibili) */
.fd-audio{border:1px solid var(--rule); background:var(--paper-3); padding:14px 16px}
.fd-audio__row{display:flex; align-items:center; gap:12px}
.fd-audio__btn{width:36px; height:36px; border-radius:50%; border:1px solid var(--rule-soft); background:transparent; color:var(--faint); font-size:12px; flex:none; cursor:not-allowed}
.fd-audio__track{flex:1; height:3px; background:var(--rule); position:relative}
.fd-audio__note{font-family:var(--mono); font-size:11.5px; color:var(--muted); margin-top:8px}
.fd-audio-badge{font-family:var(--mono); font-size:12px; color:var(--faint); cursor:not-allowed; text-decoration:line-through}
.fd-audio-row-btn{width:30px; height:30px; border-radius:50%; border:1px solid var(--rule-soft); background:transparent; color:var(--faint); font-size:10px; cursor:not-allowed}

/* glossario */
.fd-gloss-filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px}
.fd-gloss-filters button{font-family:var(--sans); font-size:13.5px; font-weight:500; padding:7px 13px; border:1px solid var(--rule-soft); background:transparent; color:var(--ink); cursor:pointer; border-radius:2px}
.fd-gloss-filters button.is-active{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.fd-gloss-list{border-top:1px solid var(--rule-strong)}
.fd-gloss-item{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:10px clamp(24px,4vw,56px); padding:26px 18px; border-bottom:1px solid var(--rule); margin:0 -18px}
.fd-gloss-item__head h2{font-family:var(--sans); font-size:21px; font-weight:600; line-height:1.25; margin:0}
.fd-gloss-item__tema{font-family:var(--mono); font-size:12px; color:var(--muted); margin-top:6px}
.fd-gloss-item__url{font-family:var(--mono); font-size:12px; display:inline-block; margin-top:10px}
.fd-gloss-item__body{grid-column:span 2; min-width:0}
.fd-gloss-item__body p{margin:0 0 14px; text-wrap:pretty}
.fd-gloss-item__dove{display:flex; flex-wrap:wrap; gap:4px 16px; align-items:baseline; font-size:15px; color:var(--muted-2)}
.fd-gloss-item__dove-label{font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted)}
.fd-gloss-item__refs{display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:10px; font-family:var(--mono); font-size:12.5px}
.fd-gloss-item__refs .sep{color:var(--rule-soft)}
.fd-gloss-item__refs .vicino{font-family:var(--sans); font-size:13.5px; color:var(--muted-2)}

/* formati */
.fd-format-row{display:grid; grid-template-columns:34px 48px minmax(0,1fr) auto; gap:12px; align-items:center; padding:11px 0; border-bottom:1px solid var(--rule)}
.fd-format-row__label{font-family:var(--mono); font-size:13px; color:var(--accent)}
.fd-format-row__title{font-family:var(--sans); font-size:15px; color:var(--ink); text-decoration:none; line-height:1.3}
.fd-format-row__title:hover{color:var(--accent)}
.fd-sources p{margin:0 0 8px; font-size:15.5px; line-height:1.5}
.fd-lang-badge{font-family:var(--mono); font-size:10.5px; font-weight:500; letter-spacing:.06em; border:1px solid var(--rule-soft); color:var(--muted); padding:1px 6px; border-radius:2px; margin-left:8px; vertical-align:1px}
.fd-media-row{display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--rule)}
.fd-media-row__icon{font-family:var(--mono); font-size:11px; color:var(--muted); text-align:center}
.fd-media-row__title{font-family:var(--sans); font-size:15px; color:var(--ink); text-decoration:none; line-height:1.3}
.fd-media-row__title:hover{color:var(--accent)}
.fd-media-row__meta{font-family:var(--mono); font-size:12px; color:var(--muted); white-space:nowrap}

/* cita */
.fd-kv{border-top:1px solid var(--rule-strong); display:grid; grid-template-columns:minmax(120px,auto) minmax(0,1fr); font-size:15.5px}
.fd-kv > div{padding:10px 0; border-bottom:1px solid var(--rule)}
.fd-kv > div:nth-child(odd){font-family:var(--mono); font-size:13px; color:var(--muted)}
.fd-cite-sample{margin:0 0 14px; font-size:16px; line-height:1.55; padding:14px 16px; background:var(--paper-3); border:1px solid var(--rule)}
.fd-bibtex{margin:0; font-family:var(--mono); font-size:12.5px; line-height:1.6; padding:14px 16px; background:var(--ink); color:var(--paper); overflow:auto; border-radius:2px}
.fd-machine-list{border-top:1px solid var(--rule-strong); font-size:14.5px; line-height:1.45}
.fd-machine-list > div{padding:10px 0; border-bottom:1px solid var(--rule)}
.fd-machine-list code{font-family:var(--mono); font-size:12.5px; color:var(--accent); display:block}
.fd-robots-sample{margin:18px 0 0; font-family:var(--mono); font-size:12px; line-height:1.6; padding:12px 14px; background:var(--paper-2); color:var(--ink-soft); overflow:auto}

/* footer */
.fd > footer{border-top:1px solid var(--rule); background:var(--paper-2)}
.fd-footer__inner{padding:28px clamp(18px,4vw,44px); display:flex; flex-wrap:wrap; gap:10px 32px; justify-content:space-between; font-family:var(--mono); font-size:12px; color:var(--muted-2)}
.fd-footer__links{display:flex; gap:16px}

@media (max-width: 760px){
  .fd-tappenav{position:static; flex-basis:100%}
  .fd-aside{position:static; flex-basis:100%}
}
