:root {
  --inchiostro: #1c2321;
  --grigio: #56615d;
  --verde: #0e4a3b;
  --verde-chiaro: #e3eeea;
  --superficie: #f3f5f4;
  --linea: #d9dedb;
  --ocra: #f2b33d;
  --ocra-scuro: #8a5a00;
  --rosso: #b3261e;
  --carta: #ffffff;
  --serif: "Literata", Georgia, serif;
  --sans: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --max: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--carta);
  color: var(--inchiostro);
  font: 400 1rem/1.55 var(--sans);
}
a { color: inherit; }
a:hover { color: var(--verde); }
:focus-visible { outline: 3px solid var(--ocra); outline-offset: 2px; }
img { max-width: 100%; height: auto; }

.contenitore { max-width: var(--max); margin: 0 auto; padding: 0 16px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.salta { position: absolute; left: -9999px; }
.salta:focus { left: 16px; top: 8px; background: var(--carta); padding: 8px 12px; z-index: 20; }

/* ---------- testata */
.testata { border-bottom: 1px solid var(--linea); background: var(--carta); }
.testata__barra { display: flex; align-items: center; gap: 24px; min-height: 64px; flex-wrap: wrap; }
.marchio {
  display: inline-flex; align-items: center; gap: 10px;
  font: 700 1.45rem/1 var(--serif); color: var(--verde); text-decoration: none; letter-spacing: -0.01em; white-space: nowrap;
}
.marchio__segno {
  width: 22px; height: 22px; flex: none; position: relative;
  background:
    linear-gradient(var(--verde), var(--verde)) 0 100% / 6px 45% no-repeat,
    linear-gradient(var(--verde), var(--verde)) 8px 100% / 6px 70% no-repeat,
    linear-gradient(var(--ocra), var(--ocra)) 16px 100% / 6px 100% no-repeat;
}
.nav ul { list-style: none; display: flex; gap: 22px; margin: 0; padding: 0; flex-wrap: wrap; }
.nav a { text-decoration: none; font-weight: 500; font-size: 0.95rem; color: var(--grigio); }
.nav a:hover { color: var(--verde); }
.nav .nav__cert { color: var(--verde); font-weight: 700; }
.menu-btn { display: none; margin-left: auto; background: none; border: 1px solid var(--linea); border-radius: 6px; padding: 6px 12px; font: 600 0.9rem var(--sans); color: var(--inchiostro); }

@media (max-width: 860px) {
  .menu-btn { display: block; }
  .nav { display: none; width: 100%; padding-bottom: 14px; }
  .nav.aperto { display: block; }
  .nav ul { flex-direction: column; gap: 12px; }
}

/* ---------- elementi comuni */
.cat {
  display: inline-block; font: 600 0.8rem/1 var(--sans); color: var(--verde);
  text-decoration: none; margin-bottom: 8px;
}
.cat::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--verde); margin-right: 6px; vertical-align: 1px; }
.cat--finestra::before { background: var(--ocra); }
.cat--analisi::before { background: #3b6ea8; }
.cat--approfondimenti::before { background: #6a4c93; }
.cat--formazione::before { background: var(--grigio); }
time { font-size: 0.82rem; color: var(--grigio); }
.vuoto { color: var(--grigio); padding: 24px 0; }

.sezione { padding: 28px 0; border-top: 1px solid var(--linea); }
.sezione:first-child { border-top: 0; }
.sezione__testa { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.sezione__testa h2 { font: 700 1.45rem/1.2 var(--serif); margin: 0; }
.sezione__testa a { font-size: 0.9rem; font-weight: 600; color: var(--verde); text-decoration: none; }

.griglia { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px 32px; }
.griglia--lista { grid-template-columns: 1fr; }
@media (max-width: 640px) { .griglia { grid-template-columns: 1fr; } }

.card__titolo { font: 600 1.15rem/1.3 var(--serif); margin: 0 0 6px; }
.card__titolo a { text-decoration: none; }
.card__sommario { margin: 0 0 8px; color: var(--grigio); font-size: 0.95rem; }
.card--min { padding: 14px 0; border-top: 1px solid var(--linea); }
.card--min:first-child { border-top: 0; padding-top: 0; }
.card--min .card__titolo { font-size: 1.02rem; }

/* ---------- primo piano */
.primo { display: grid; grid-template-columns: 1.6fr 1fr; gap: 40px; padding-top: 36px; padding-bottom: 36px; }
.primo__principale { }
.primo__titolo { font: 700 clamp(1.8rem, 3.6vw, 2.7rem)/1.12 var(--serif); margin: 4px 0 14px; letter-spacing: -0.015em; }
.primo__titolo a { text-decoration: none; }
.primo__sommario { font-size: 1.12rem; color: var(--grigio); margin: 0 0 12px; max-width: 60ch; }
@media (max-width: 860px) { .primo { grid-template-columns: 1fr; gap: 24px; } }

/* ---------- certificati */
.fascia-cert { background: var(--verde); color: #fff; padding: 30px 0 36px; }
.fascia-cert .sezione__testa h2 { color: #fff; }
.fascia-cert .sezione__testa a { color: var(--ocra); }
.griglia-cert { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 900px) { .griglia-cert { grid-template-columns: 1fr; } }
.cert {
  background: var(--carta); color: var(--inchiostro); border-radius: 10px; padding: 18px 20px 16px;
  display: flex; flex-direction: column;
}
.cert__emittente { margin: 0 0 6px; font-size: 0.85rem; font-weight: 600; color: var(--grigio); }
.cert__titolo { font: 600 1.08rem/1.3 var(--serif); margin: 0 0 14px; }
.cert__titolo a { text-decoration: none; }
.cert__dati { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 14px; }
.cert__dati div { background: var(--superficie); border-radius: 6px; padding: 8px 10px; }
.cert__dati dt { font-size: 0.75rem; color: var(--grigio); }
.cert__dati dd { margin: 2px 0 0; font-weight: 700; font-size: 1.02rem; font-variant-numeric: tabular-nums; }
.cert__isin { margin: auto 0 0; font-size: 0.82rem; color: var(--grigio); }
.cert__isin span { font-weight: 700; color: var(--inchiostro); letter-spacing: 0.04em; }
.intestazione + .griglia-cert .cert { border: 1px solid var(--linea); }
.tag-esempio, .banner-esempio { background: #fff4d6; color: var(--ocra-scuro); }
.tag-esempio { font-size: 0.72rem; padding: 2px 7px; border-radius: 4px; margin-left: 6px; }
.banner-esempio { padding: 10px 14px; border-radius: 6px; font-size: 0.9rem; }

/* ---------- colonne */
.colonne { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 48px; padding-top: 12px; padding-bottom: 48px; }
.colonne--articolo { padding-top: 36px; }
@media (max-width: 900px) { .colonne { grid-template-columns: 1fr; gap: 28px; } }
.colonne__lato > * + * { margin-top: 28px; }

/* ---------- newsletter */
.nl { background: var(--superficie); border-radius: 10px; padding: 22px; border-top: 4px solid var(--ocra); }
.nl__titolo { font: 700 1.2rem/1.25 var(--serif); margin: 0 0 8px; }
.nl__testo { margin: 0 0 14px; color: var(--grigio); font-size: 0.93rem; }
.nl__label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 6px; }
.nl__riga { display: flex; gap: 8px; }
.nl input[type=email] { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid var(--linea); border-radius: 6px; font: inherit; }
.nl button { background: var(--verde); color: #fff; border: 0; border-radius: 6px; padding: 10px 16px; font: 600 0.95rem var(--sans); cursor: pointer; }
.nl__check { display: block; margin-top: 10px; font-size: 0.8rem; color: var(--grigio); }
.nl__presto { margin: 0; font-weight: 600; color: var(--verde); }

/* ---------- brevi */
.brevi h2 { font: 700 1.2rem var(--serif); margin: 0 0 10px; }
.brevi ul { list-style: none; margin: 0; padding: 0; }
.brevi li { display: grid; grid-template-columns: 48px 1fr; gap: 8px; padding: 10px 0; border-top: 1px solid var(--linea); font-size: 0.93rem; }
.brevi li a { text-decoration: none; }

/* ---------- articolo */
.articolo { max-width: 740px; }
.copertina { margin: 0 0 26px; }
.copertina img { display: block; width: 100%; height: auto; border-radius: 10px; }
.indice { background: var(--superficie); border-radius: 10px; padding: 18px 22px 14px; margin: 0 0 30px; }
.indice__titolo { font: 700 1.05rem var(--serif); margin: 0 0 8px; }
.indice ol { margin: 0; padding-left: 1.3em; font-size: 0.97rem; }
.indice li { margin-bottom: 6px; }
.indice a { text-decoration: none; color: var(--verde); font-weight: 600; }
.indice a:hover { text-decoration: underline; }
.primo__img { display: block; margin: 0 0 18px; }
.primo__img img { display: block; width: 100%; height: auto; border-radius: 10px; }
.articolo__titolo { font: 700 clamp(1.8rem, 3.4vw, 2.5rem)/1.15 var(--serif); margin: 6px 0 14px; letter-spacing: -0.01em; }
.articolo__sommario { font-size: 1.15rem; color: var(--grigio); margin: 0 0 14px; }
.articolo__meta { font-size: 0.88rem; color: var(--grigio); padding-bottom: 18px; border-bottom: 1px solid var(--linea); margin: 0 0 24px; }
.testo { font: 400 1.08rem/1.78 var(--sans); color: #262e2b; }
.testo h2 {
  font: 700 1.45rem/1.25 var(--serif); margin: 2.1em 0 0.7em; color: var(--inchiostro);
  border-left: 5px solid var(--ocra); padding: 2px 0 2px 16px; scroll-margin-top: 80px;
}
.testo strong { font-weight: 700; color: var(--inchiostro); }
.testo ul li, .testo ol li { margin-bottom: 0.45em; }
.testo h3 { font: 600 1.15rem/1.3 var(--sans); margin: 1.6em 0 0.4em; }
.testo p { margin: 0 0 1.1em; }
.testo ul, .testo ol { padding-left: 1.3em; margin: 0 0 1.1em; }
.testo table { width: 100%; border-collapse: collapse; font: 0.95rem/1.4 var(--sans); margin: 0 0 1.4em; font-variant-numeric: tabular-nums; }
.testo th, .testo td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--linea); }
.testo th { background: var(--superficie); }
.testo blockquote { margin: 0 0 1.1em; padding-left: 16px; border-left: 3px solid var(--ocra); color: var(--grigio); }
.fonti { margin-top: 36px; padding-top: 18px; border-top: 1px solid var(--linea); font-size: 0.88rem; }
.fonti h2 { font: 600 0.95rem var(--sans); margin: 0 0 8px; }
.fonti ul { margin: 0; padding-left: 1.1em; color: var(--grigio); }
.avviso-pub { display: inline-block; font-size: 0.78rem; font-weight: 600; border: 1px solid var(--linea); border-radius: 4px; padding: 3px 8px; color: var(--grigio); margin: 0 0 6px; }
.correlati h2 { font: 700 1.1rem var(--serif); margin: 0 0 12px; }
.intestazione { padding: 32px 0 20px; }
.intestazione h1 { font: 700 2.2rem/1.15 var(--serif); margin: 0 0 8px; }
.intestazione p { color: var(--grigio); margin: 0; max-width: 60ch; }
.articolo--statica { padding: 36px 0 56px; }

/* ---------- scheda certificato */
.isin-barra { position: sticky; top: 0; z-index: 10; background: var(--carta); border-bottom: 1px solid var(--linea); }
.isin-barra__dentro { display: flex; align-items: center; gap: 24px; min-height: 58px; flex-wrap: wrap; }
.isin-btn {
  display: inline-flex; align-items: center; gap: 8px; background: var(--ocra); color: var(--inchiostro);
  border: 0; border-radius: 8px; padding: 9px 14px; font: 500 0.95rem var(--sans); cursor: pointer;
}
.isin-btn__val { font-weight: 700; letter-spacing: 0.05em; font-variant-numeric: tabular-nums; }
.isin-btn__azione { font-size: 0.8rem; background: rgba(255,255,255,0.55); border-radius: 4px; padding: 2px 7px; }
.isin-btn.copiato .isin-btn__azione { background: var(--verde); color: #fff; }
.isin-barra__nav { display: flex; gap: 18px; font-size: 0.92rem; }
.isin-barra__nav a { text-decoration: none; color: var(--grigio); }
@media (max-width: 640px) { .isin-barra__nav { display: none; } }
.sottostanti { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0 0 24px; }
.sottostanti li { background: var(--verde-chiaro); color: var(--verde); font-weight: 600; font-size: 0.88rem; padding: 5px 10px; border-radius: 999px; }
.scheda { border: 1px solid var(--linea); border-radius: 10px; padding: 20px; }
.scheda h2 { font: 700 1.1rem var(--serif); margin: 0 0 12px; }
.scheda dl { margin: 0; }
.scheda dl div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid var(--linea); font-size: 0.92rem; }
.scheda dt { color: var(--grigio); }
.scheda dd { margin: 0; font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
.rischio { margin-top: 14px; font-size: 0.88rem; }
.rischio p { margin: 0 0 6px; }
.rischio__scala { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.rischio__scala span { height: 8px; border-radius: 2px; background: var(--linea); }
.rischio__scala span.on { background: var(--rosso); }
.scheda__link { display: grid; gap: 8px; margin-top: 16px; font-size: 0.9rem; font-weight: 600; }
.scheda__link a { color: var(--verde); }
.come-comprare { font-size: 0.9rem; color: var(--grigio); background: var(--superficie); border-radius: 8px; padding: 14px 16px; }
.avvertenza { margin-top: 32px; background: #fbeeed; border-radius: 10px; padding: 18px 20px; font-size: 0.93rem; }
.avvertenza h2 { font: 700 1.1rem var(--serif); margin: 0 0 8px; color: var(--rosso); }
.avvertenza p { margin: 0; }
.pagina-cert .testo details { border-top: 1px solid var(--linea); padding: 12px 0; }
.pagina-cert .testo summary { cursor: pointer; font: 600 1rem var(--sans); }

/* ---------- piede */
.piede { background: var(--inchiostro); color: #cfd6d3; padding: 40px 0 28px; font-size: 0.9rem; }
.piede__griglia { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 48px; }
.piede a { color: #fff; }
.marchio--piede { color: #fff; }
.marchio--piede .marchio__segno { background:
    linear-gradient(#fff, #fff) 0 100% / 6px 45% no-repeat,
    linear-gradient(#fff, #fff) 8px 100% / 6px 70% no-repeat,
    linear-gradient(var(--ocra), var(--ocra)) 16px 100% / 6px 100% no-repeat; }
.piede__link { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.piede__avviso, .piede__copy { grid-column: 1 / -1; margin: 0; font-size: 0.82rem; color: #a9b3af; max-width: 90ch; }
@media (max-width: 640px) { .piede__griglia { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---------- briciole */
.briciole ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; padding: 0; font-size: 0.85rem; color: var(--grigio); }
.briciole li + li::before { content: "›"; margin-right: 6px; color: var(--linea); }
.briciole a { text-decoration: none; color: var(--verde); font-weight: 600; }
.articolo__meta a { color: inherit; }

/* ---------- archivio articoli */
.archivio__giorno { padding: 8px 0 20px; }
.archivio__giorno h2 { font: 700 1.2rem var(--serif); margin: 0 0 6px; }
.archivio__giorno ul { list-style: none; margin: 0; padding: 0; }
.archivio__giorno li { display: grid; grid-template-columns: 52px 1fr; gap: 10px; padding: 12px 0; border-top: 1px solid var(--linea); }
.archivio__giorno li .cat { display: block; margin-bottom: 4px; }
.archivio__titolo { font: 600 1.05rem/1.35 var(--serif); text-decoration: none; }

/* ---------- foto */
.copertina figcaption { font-size: 0.75rem; color: var(--grigio); margin-top: 6px; text-align: right; }
.card__img { display: block; margin: 0 0 12px; }
.card__img img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; background: var(--superficie); }
.copertina img, .primo__img img { aspect-ratio: 16 / 9; object-fit: cover; background: var(--superficie); }
.griglia--lista .card { display: grid; grid-template-columns: 220px 1fr; gap: 0 20px; }
.griglia--lista .card__img { grid-row: 1 / span 4; margin: 0; }
@media (max-width: 640px) { .griglia--lista .card { grid-template-columns: 1fr; } .griglia--lista .card__img { grid-row: auto; margin-bottom: 10px; } }
