/*
Theme Name: Giulio Cavalli
Theme URI: https://www.giuliocavalli.net/
Author: Claude per Giulio Cavalli
Description: Tema su misura per giuliocavalli.net (ottobre 2026). Inchiostro nero, rosso serigrafia, Schibsted Grotesk e Newsreader.
Version: 1.0.202610131753
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: giuliocavalli
*/

/* ---------- caratteri (ospitati sul sito, licenza SIL Open Font) */
@font-face { font-family: "Schibsted"; font-style: normal; font-weight: 400 900; font-display: swap;
  src: url(assets/fonts/schibsted-grotesk-latin-wght-normal.woff2) format("woff2-variations");
  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: "Schibsted"; font-style: normal; font-weight: 400 900; font-display: swap;
  src: url(assets/fonts/schibsted-grotesk-latin-ext-wght-normal.woff2) format("woff2-variations");
  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: "Newsreader"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url(assets/fonts/newsreader-latin-opsz-normal.woff2) format("woff2-variations");
  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: "Newsreader"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url(assets/fonts/newsreader-latin-ext-opsz-normal.woff2) format("woff2-variations");
  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: "Newsreader"; font-style: italic; font-weight: 200 800; font-display: swap;
  src: url(assets/fonts/newsreader-latin-opsz-italic.woff2) format("woff2-variations");
  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: "Newsreader"; font-style: italic; font-weight: 200 800; font-display: swap;
  src: url(assets/fonts/newsreader-latin-ext-opsz-italic.woff2) format("woff2-variations");
  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; }

/* ---------- gettoni */
:root {
  --carta: #ffffff;
  --inchiostro: #000000;
  --grafite: #4a4a4a;
  --rete: #d4d4d4;
  --velina: #f1f1ef;
  --rosso: #b3201e;
  --rosso-cupo: #8a1715;
  --petrolio: #1e7f8c;
  --grotesk: "Schibsted", "Helvetica Neue", Arial, sans-serif;
  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --margine: clamp(16px, 4.2vw, 64px);
  --larghezza: 1440px;
  --misura: 40rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: var(--carta); color: var(--inchiostro); font-family: var(--serif); font-size: 1.1875rem; line-height: 1.55; font-optical-sizing: auto; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; text-decoration-color: var(--rosso); }
a:hover { color: var(--rosso); }
:focus-visible { outline: 3px solid var(--petrolio); outline-offset: 3px; }
h1, h2, h3 { margin: 0; font-weight: inherit; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; list-style: none; }
.nascosto { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.salta { position: absolute; left: -999px; top: 0; z-index: 99; background: var(--inchiostro); color: #fff; padding: 12px 16px; font-family: var(--grotesk); }
.salta:focus { left: 8px; top: 8px; }

/* ---------- testata */
.testata { border-bottom: 1px solid var(--inchiostro); background: var(--carta); position: relative; z-index: 20; }
.testata-in { max-width: var(--larghezza); margin: 0 auto; padding: 18px var(--margine); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.marchio { text-decoration: none; display: flex; flex-direction: column; line-height: 1; }
.marchio:hover { color: var(--inchiostro); }
.marchio-nome { font-family: var(--grotesk); font-weight: 800; font-size: 1.5rem; letter-spacing: -.03em; }
.marchio-motto { font-family: var(--serif); font-style: italic; font-size: .95rem; color: var(--grafite); margin-top: 5px; }
.menu { display: flex; align-items: center; gap: clamp(16px, 2.4vw, 36px); }
.menu ul { display: flex; gap: clamp(14px, 2.2vw, 32px); }
.menu a { font-family: var(--grotesk); font-weight: 500; font-size: 1.0625rem; text-decoration: none; padding: 6px 0; border-bottom: 3px solid transparent; }
.menu ul a[aria-current="page"] { border-bottom-color: var(--rosso); }
.menu ul a:hover { border-bottom-color: var(--inchiostro); color: var(--inchiostro); }
.menu .menu-nl { background: var(--inchiostro); color: #fff; padding: 9px 14px; border: 0; border-radius: 2px; font-weight: 600; }
.menu .menu-nl:hover { background: var(--rosso); color: #fff; }
.menu-apri { display: none; font-family: var(--grotesk); font-weight: 600; font-size: 1rem; background: none; border: 2px solid var(--inchiostro); padding: 8px 14px; border-radius: 2px; color: var(--inchiostro); cursor: pointer; }

/* ---------- apertura */
.apertura { max-width: var(--larghezza); margin: 0 auto; padding: clamp(32px, 6vw, 88px) var(--margine) clamp(40px, 6vw, 96px); display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; align-items: end; }
.apertura-testo { grid-column: 1 / 8; position: relative; z-index: 2; }
.apertura-nome { font-family: var(--grotesk); font-weight: 850; font-size: clamp(4rem, 12.4vw, 11.5rem); line-height: .84; letter-spacing: -.052em; margin: 0 0 .32em -.04em; width: 9ch; }
.apertura-mestieri { font-family: var(--grotesk); font-weight: 650; font-size: clamp(1.25rem, 2vw, 1.75rem); letter-spacing: -.015em; margin-bottom: .6em; }
.apertura-voce { font-family: var(--serif); font-style: italic; font-weight: 380; font-size: clamp(1.5rem, 2.6vw, 2.25rem); line-height: 1.22; max-width: 24ch; margin-bottom: .8em; font-variation-settings: "opsz" 48; }
.apertura-fatti { font-family: var(--grotesk); font-size: 1.0625rem; line-height: 1.5; color: var(--grafite); max-width: 36rem; }
.apertura-fatti strong { color: var(--inchiostro); font-weight: 650; }
.apertura-foto { grid-column: 8 / 13; margin: 0; position: relative; align-self: stretch; min-height: 420px; }
.apertura-foto::before { content: ""; position: absolute; inset: 0; background: var(--rosso); transform: translate(-22px, 22px); z-index: 0; }
.apertura-foto img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; filter: grayscale(1) contrast(1.08); }
@media (prefers-reduced-motion: no-preference) {
  .apertura-foto::before { animation: registro 900ms cubic-bezier(.2,.7,.2,1) 250ms both; }
  @keyframes registro { from { transform: translate(0, 0); } to { transform: translate(-22px, 22px); } }
}
.porte { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.porta { display: inline-block; font-family: var(--grotesk); font-weight: 600; font-size: 1rem; line-height: 1; padding: 15px 20px; border: 2px solid var(--inchiostro); border-radius: 2px; text-decoration: none; color: var(--inchiostro); background: transparent; }
.porta:hover { background: var(--inchiostro); color: #fff; }
.porta--piena { background: var(--inchiostro); color: #fff; }
.porta--piena:hover { background: var(--rosso); border-color: var(--rosso); color: #fff; }

/* ---------- adesso */
.adesso { border-top: 2px solid var(--inchiostro); border-bottom: 1px solid var(--inchiostro); }
.adesso-in { max-width: var(--larghezza); margin: 0 auto; padding: 0 var(--margine); display: grid; grid-template-columns: repeat(4, 1fr); }
.adesso-voce { display: flex; flex-direction: column; gap: 6px; padding: 22px 24px 24px; text-decoration: none; border-left: 1px solid var(--rete); }
.adesso-voce:first-child { border-left: 0; padding-left: 0; }
.adesso-cosa { font-family: var(--grotesk); font-size: .875rem; font-weight: 600; color: var(--rosso); }
.adesso-titolo { font-family: var(--serif); font-weight: 560; font-size: 1.3rem; line-height: 1.2; }
.adesso-nota { font-family: var(--grotesk); font-size: .9rem; color: var(--grafite); }
.adesso-voce:hover .adesso-titolo { text-decoration: underline; text-decoration-color: var(--rosso); text-decoration-thickness: 2px; text-underline-offset: .15em; }
.adesso-voce:hover { color: var(--inchiostro); }

/* ---------- sezioni */
.sezione { max-width: var(--larghezza); margin: 0 auto; padding: clamp(56px, 8vw, 120px) var(--margine); }
.sezione-testa, .indice-testa { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; align-items: end; margin-bottom: clamp(32px, 4vw, 56px); }
.parola { grid-column: 1 / 8; font-family: var(--grotesk); font-weight: 850; font-size: clamp(3.25rem, 9.5vw, 8.25rem); line-height: .88; letter-spacing: -.05em; margin-left: -.03em; }
.parola--media { font-size: clamp(2.5rem, 6vw, 4.75rem); letter-spacing: -.045em; margin-bottom: .35em; }
.sezione-intro { grid-column: 8 / 13; font-size: 1.3rem; line-height: 1.42; margin: 0; max-width: 32rem; }
.sezione-piede { margin: 40px 0 0; display: flex; flex-wrap: wrap; gap: 28px; }
.freccia { font-family: var(--grotesk); font-weight: 650; font-size: 1.0625rem; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .25em; text-decoration-color: var(--rosso); }

/* articoli */
.scrivo-griglia { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; }
.scrivo-griglia .articoli { grid-column: 1 / 9; }
.firme { grid-column: 10 / 13; border-top: 2px solid var(--inchiostro); padding-top: 16px; }
.firme-titolo, .piede-titolo { font-family: var(--grotesk); font-weight: 700; font-size: 1rem; margin: 0 0 12px; }
.firme-oggi { margin-bottom: 28px; }
.firme-oggi li { padding: 10px 0; border-bottom: 1px solid var(--rete); font-family: var(--grotesk); }
.firme-oggi a { font-weight: 700; font-size: 1.375rem; letter-spacing: -.02em; text-decoration: none; display: block; }
.firme-oggi span { font-size: .95rem; color: var(--grafite); }
.firme-con { font-size: 1.1rem; line-height: 1.5; }
.articoli { border-top: 2px solid var(--inchiostro); }
.art { display: grid; grid-template-columns: 9.5rem 1fr 8rem; gap: 6px 24px; padding: 18px 0 20px; border-bottom: 1px solid var(--rete); align-items: baseline; }
.art-testata { grid-column: 1; font-family: var(--grotesk); font-weight: 650; font-size: .9rem; color: var(--rosso); margin: 0; }
.art-titolo { grid-column: 2; font-family: var(--serif); font-weight: 560; font-size: clamp(1.25rem, 1.9vw, 1.6rem); line-height: 1.18; letter-spacing: -.005em; font-variation-settings: "opsz" 36; }
.art-titolo a { text-decoration: none; }
.art-titolo a:hover { text-decoration: underline; text-decoration-thickness: 2px; color: var(--inchiostro); }
.art-sommario { grid-column: 2; margin: 4px 0 0; font-size: 1.05rem; color: var(--grafite); line-height: 1.45; }
.art-data { grid-column: 3; grid-row: 1; font-family: var(--grotesk); font-size: .9rem; color: var(--grafite); margin: 0; text-align: right; }

/* racconto: palcoscenico nero */
.sezione--racconto { max-width: none; background: var(--inchiostro); color: #fff; }
.sezione--racconto > * { max-width: calc(var(--larghezza) - 2 * var(--margine)); margin-left: auto; margin-right: auto; }
.sezione--racconto a { color: #fff; }
.sezione--racconto a:hover { color: #ffb3a8; }
.locandine { display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; }
.locandine--griglia { grid-template-columns: repeat(4, 1fr); gap: 32px 24px; margin-bottom: 32px; }
.locandina { text-decoration: none; display: flex; flex-direction: column; gap: 4px; }
.locandina img { aspect-ratio: 1 / 1.414; object-fit: cover; width: 100%; margin-bottom: 10px; background: #222; }
.locandina-titolo { font-family: var(--grotesk); font-weight: 700; font-size: 1.1rem; line-height: 1.15; letter-spacing: -.01em; }
.locandina-genere { font-family: var(--grotesk); font-size: .875rem; opacity: .72; }
.locandina-sinossi { font-size: 1rem; line-height: 1.4; margin-top: 6px; color: var(--grafite); }
.locandina:hover .locandina-titolo { text-decoration: underline; text-decoration-color: var(--rosso); text-decoration-thickness: 2px; }
.racconto-voce { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 48px; margin-top: 56px; border-top: 1px solid rgba(255,255,255,.35); padding-top: 28px; }
.racconto-voce p { max-width: 34rem; }
.racconto-titolo { font-family: var(--grotesk); font-weight: 800; font-size: 2rem; letter-spacing: -.035em; margin-bottom: 8px; }
.racconto-titolo a { text-decoration: none; }

/* date: fondo rosso */
.sezione--date { max-width: none; background: var(--rosso); color: #fff; }
.sezione--date > * { max-width: calc(var(--larghezza) - 2 * var(--margine)); margin-left: auto; margin-right: auto; }
.sezione--date a { color: #fff; text-decoration-color: rgba(255,255,255,.6); }
.sezione--date a:hover { color: #fff; text-decoration-color: #fff; }
.sezione--date .sezione-testa { margin-bottom: 32px; }
.date { border-top: 2px solid currentColor; }
.data { display: grid; grid-template-columns: 11rem 1fr; gap: 0 32px; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.4); }
.data-quando { display: flex; align-items: flex-start; gap: 14px; font-family: var(--grotesk); }
.data-giorno { font-weight: 850; font-size: 4.25rem; line-height: .82; letter-spacing: -.05em; min-width: 2ch; }
.data-mese { font-size: .95rem; line-height: 1.25; padding-top: 4px; }
.data-citta { font-family: var(--grotesk); font-weight: 750; font-size: clamp(1.5rem, 2.6vw, 2.1rem); letter-spacing: -.03em; line-height: 1.05; margin: 0 0 6px; }
.data-titolo { font-size: 1.25rem; line-height: 1.3; margin: 0 0 4px; }
.data-dove { font-family: var(--grotesk); font-size: .95rem; margin: 0; opacity: .85; }
.pagina--date .date { border-top-color: var(--inchiostro); }
.pagina--date .data { border-bottom-color: var(--rete); }
.pagina--date .data-giorno { color: var(--rosso); }
.pagina--date .data-dove { color: var(--grafite); opacity: 1; }
.date--passate .data { grid-template-columns: 8rem 1fr; padding: 14px 0; }
.date--passate .data-giorno { font-size: 2.25rem; color: var(--inchiostro) !important; }
.date--passate .data-citta { font-size: 1.3rem; }
.date--passate .data-titolo { font-size: 1.05rem; }

/* libri */
.scaffale { display: grid; grid-template-columns: repeat(7, 1fr); gap: 28px 24px; align-items: end; }
.libro { text-decoration: none; display: flex; flex-direction: column; gap: 4px; }
.libro img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border: 1px solid rgba(0,0,0,.14); margin-bottom: 12px; background: var(--velina); }
.libro--primo { grid-column: span 2; }
.libro-titolo { font-family: var(--serif); font-weight: 600; font-size: 1.2rem; line-height: 1.15; }
.libro--primo .libro-titolo { font-size: 1.6rem; }
.libro-dati { font-family: var(--grotesk); font-size: .875rem; color: var(--grafite); }
.libro-sinossi { font-size: 1rem; line-height: 1.4; margin-top: 6px; }
.libro:hover .libro-titolo { text-decoration: underline; text-decoration-color: var(--rosso); }
.scaffale--tutti { grid-template-columns: repeat(4, 1fr); gap: 48px 32px; align-items: start; }
.scaffale--tutti .libro--primo { grid-column: span 1; }
.scaffale--tutti .libro-titolo { font-size: 1.4rem; }

/* chi sono (home) */
.sezione--chi { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; align-items: center; border-top: 2px solid var(--inchiostro); }
.chi-foto { grid-column: 1 / 6; margin: 0; }
.chi-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(1); }
.chi-testo { grid-column: 7 / 13; }
.chi-lead { font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.3; font-style: italic; }
.chi-testo .freccia { margin-right: 24px; }

/* ---------- indice articoli */
.indice, .pagina { max-width: var(--larghezza); margin: 0 auto; padding: clamp(40px, 6vw, 88px) var(--margine) clamp(64px, 8vw, 120px); }
.filtri { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; border-top: 2px solid var(--inchiostro); border-bottom: 1px solid var(--rete); padding: 16px 0; margin-bottom: 40px; font-family: var(--grotesk); }
.filtri-testate { display: flex; flex-wrap: wrap; gap: 8px; }
.filtri-testate a { text-decoration: none; font-weight: 600; font-size: .95rem; padding: 8px 12px; border: 1px solid var(--rete); border-radius: 2px; }
.filtri-testate a[aria-current="page"] { background: var(--inchiostro); color: #fff; border-color: var(--inchiostro); }
.filtri-testate a:hover { border-color: var(--inchiostro); color: var(--inchiostro); }
.filtri-altro { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.filtri-anno { display: flex; align-items: center; gap: 8px; font-size: .95rem; }
select, input[type="search"], input[type="email"] { font: inherit; font-family: var(--grotesk); font-size: 1rem; height: 44px; padding: 0 12px; border: 1px solid var(--inchiostro); border-radius: 2px; background: #fff; color: var(--inchiostro); }
.cerca { display: flex; gap: 0; }
.cerca input { width: min(16rem, 60vw); border-right: 0; }
button[type="submit"], .nl button { font-family: var(--grotesk); font-weight: 650; font-size: 1rem; height: 44px; padding: 0 18px; border: 0; background: var(--inchiostro); color: #fff; border-radius: 0 2px 2px 0; cursor: pointer; }
button[type="submit"]:hover { background: var(--rosso); }
.indice-mese { font-family: var(--grotesk); font-weight: 750; font-size: 1.5rem; letter-spacing: -.02em; margin: 48px 0 0; padding-bottom: 10px; }
.indice-mese:first-of-type { margin-top: 0; }
.articoli--indice { border-top-width: 2px; }
.pagine { margin-top: 48px; display: flex; flex-wrap: wrap; gap: 6px; font-family: var(--grotesk); }
.pagine .page-numbers { padding: 10px 14px; border: 1px solid var(--rete); text-decoration: none; border-radius: 2px; }
.pagine .current { background: var(--inchiostro); color: #fff; border-color: var(--inchiostro); }
.pagine .dots { border: 0; }
.vuoto { font-size: 1.3rem; max-width: 36rem; }

/* ---------- articolo */
.pezzo { max-width: 46rem; margin: 0 auto; padding: clamp(40px, 6vw, 80px) var(--margine) 80px; }
.pezzo-testa { margin-bottom: 32px; }
.pezzo-testata { font-family: var(--grotesk); font-weight: 700; font-size: 1rem; color: var(--rosso); margin-bottom: 14px; }
.pezzo-testata a { text-decoration: none; }
.pezzo-titolo { font-family: var(--serif); font-weight: 600; font-size: clamp(2.1rem, 5vw, 3.6rem); line-height: 1.06; letter-spacing: -.018em; margin-bottom: 18px; font-variation-settings: "opsz" 72; text-wrap: balance; }
.pezzo-data { font-family: var(--grotesk); font-size: .95rem; color: var(--grafite); padding-bottom: 20px; border-bottom: 2px solid var(--inchiostro); }
.pezzo-foto { margin: 0 0 32px; }
.pezzo-testo { font-size: 1.25rem; line-height: 1.62; }
.pezzo-testo p, .pagina-testo p { margin: 0 0 1.05em; }
.pezzo-testo h2, .pezzo-testo h3, .pagina-testo h2, .pagina-testo h3 { font-family: var(--grotesk); font-weight: 750; letter-spacing: -.02em; line-height: 1.15; margin: 1.6em 0 .6em; }
.pezzo-testo h2, .pagina-testo h2 { font-size: 1.6rem; }
.pezzo-testo h3, .pagina-testo h3 { font-size: 1.3rem; }
.pezzo-testo strong { font-weight: 640; }
.pezzo-testo blockquote, .pagina-testo blockquote { margin: 1.4em 0; padding-left: 20px; border-left: 3px solid var(--rosso); font-style: italic; }
.pezzo-testo img { margin: 1.5em 0; }
.pezzo--ripreso .pezzo-testo > p:last-of-type { margin-bottom: 0; }
.pezzo-continua { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--rete); font-family: var(--grotesk); font-size: 1.05rem; }
.pezzo-continua p { margin-bottom: 16px; }
.pezzo-piede { margin-top: 72px; display: grid; gap: 56px; }
.pezzo-nl { background: var(--velina); padding: 28px; }

/* ---------- pagine */
.pagina-testa { margin-bottom: 32px; }
.pagina-testo { max-width: var(--misura); font-size: 1.25rem; line-height: 1.6; }
.pagina-testo--larga { max-width: 48rem; }
.pagina-testo a { text-decoration-thickness: 1px; }
.pagina-testo ul { list-style: disc; padding-left: 1.2em; margin-bottom: 1em; }
.chi-apertura { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; align-items: end; margin-bottom: 56px; }
.chi-apertura-testo { grid-column: 1 / 7; }
.chi-apertura-testo .parola { margin-bottom: .2em; }
.chi-apertura-foto { grid-column: 7 / 13; margin: 0; position: relative; }
.chi-apertura-foto::before { content: ""; position: absolute; inset: 0; background: var(--rosso); transform: translate(-18px, 18px); }
.chi-apertura-foto img { position: relative; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; filter: grayscale(1) contrast(1.06); }
.chi-corpo, .urto-griglia { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; }
.chi-corpo .pagina-testo, .urto-griglia .pagina-testo { grid-column: 1 / 8; }
.chi-schede, .urto-ascolta { grid-column: 9 / 13; display: grid; gap: 32px; align-content: start; }
.chi-schede section, .urto-ascolta { border-top: 2px solid var(--inchiostro); padding-top: 16px; }
.lista-link li { padding: 8px 0; border-bottom: 1px solid var(--rete); font-family: var(--grotesk); }
.blocco { margin-top: clamp(56px, 7vw, 104px); }
.blocco-intro { max-width: 40rem; font-size: 1.25rem; }
.radio-griglia { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin: 24px 0 32px; }
.repertorio { columns: 2; column-gap: 48px; border-top: 2px solid var(--inchiostro); padding-top: 8px; }
.repertorio li { padding: 10px 0; border-bottom: 1px solid var(--rete); break-inside: avoid; font-size: 1.15rem; }
.invito { margin: 64px 0; padding: 32px; background: var(--velina); display: grid; gap: 8px; justify-items: start; }
.invito-titolo { font-family: var(--grotesk); font-weight: 750; font-size: 1.7rem; letter-spacing: -.025em; line-height: 1.1; }
.passate { margin-top: 32px; }
.passate .sezione-intro { margin-bottom: 24px; }
.passate-anno { border-top: 2px solid var(--inchiostro); }
.passate-anno summary { font-family: var(--grotesk); font-weight: 800; font-size: 2rem; letter-spacing: -.03em; padding: 14px 0; cursor: pointer; }
.passate-anno summary span { font-weight: 500; font-size: 1rem; color: var(--grafite); letter-spacing: 0; margin-left: 10px; }
.libro-scheda { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; margin-bottom: 48px; align-items: start; }
.libro-scheda-copertina { grid-column: 1 / 5; margin: 0; }
.libro-scheda-copertina img { width: 100%; border: 1px solid rgba(0,0,0,.14); }
.libro-scheda-testo { grid-column: 6 / 13; }
.libro-scheda-dati { font-family: var(--grotesk); color: var(--grafite); }
.libro-scheda-sinossi { font-size: 1.4rem; line-height: 1.4; font-style: italic; }
.libro-scheda-azioni { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.pagina--libro .pagina-testo { margin-left: calc((100% + 24px) * 5 / 12); }
.foto-stampa { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.foto-stampa a { text-decoration: none; font-family: var(--grotesk); font-size: .875rem; color: var(--grafite); display: grid; gap: 8px; }
.foto-stampa img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }

/* contenuti esterni al clic */
.esterno { min-height: var(--h, 232px); background: var(--velina); display: grid; place-content: center; justify-items: center; gap: 10px; padding: 24px; text-align: center; margin: 16px 0; color: var(--inchiostro); }
.esterno-carica { font-family: var(--grotesk); font-weight: 650; font-size: 1rem; padding: 13px 18px; background: var(--inchiostro); color: #fff; border: 0; border-radius: 2px; cursor: pointer; }
.esterno-carica:hover { background: var(--rosso); }
.esterno-nota { font-family: var(--grotesk); font-size: .85rem; color: var(--grafite); max-width: 26rem; margin: 0; }
.esterno--caricato { display: block; padding: 0; background: none; }
.esterno iframe { border: 0; display: block; }
.sezione--racconto .esterno { background: #1b1b1b; color: #fff; }
.sezione--racconto .esterno-nota { color: #bbb; }

/* newsletter */
.nl { max-width: 30rem; }
.nl-etichetta { display: block; font-family: var(--grotesk); font-size: .9rem; font-weight: 600; margin-bottom: 6px; }
.nl-riga { display: flex; }
.nl-riga input { flex: 1; min-width: 0; border-right: 0; border-radius: 2px 0 0 2px; }
.nl-nota { font-family: var(--grotesk); font-size: .85rem; color: var(--grafite); margin-top: 8px; }

/* ---------- piede */
.piede { background: var(--inchiostro); color: #fff; margin-top: 0; }
.piede a { color: #fff; text-decoration-color: rgba(255,255,255,.45); }
.piede a:hover { color: #fff; text-decoration-color: var(--rosso); }
.piede-in { max-width: var(--larghezza); margin: 0 auto; padding: 72px var(--margine) 48px; display: grid; grid-template-columns: 5fr 4fr 3fr; gap: 48px; font-family: var(--grotesk); font-size: 1rem; }
.piede .piede-titolo { font-size: 1.1rem; }
.piede .nl-nota { color: #b5b5b5; }
.piede input[type="email"] { border-color: #fff; }
.piede .nl button { background: var(--rosso); }
.piede .nl button:hover { background: #fff; color: var(--inchiostro); }
.piede dl { margin: 0; }
.piede dt { color: #b5b5b5; font-size: .9rem; margin-top: 14px; }
.piede dd { margin: 2px 0 0; font-size: 1.05rem; }
.piede-social ul { columns: 2; column-gap: 24px; }
.piede-social li { padding: 4px 0; }
.piede-fondo { max-width: var(--larghezza); margin: 0 auto; padding: 0 var(--margine) 32px; overflow: hidden; }
.piede-firma { font-family: var(--grotesk); font-weight: 850; font-size: clamp(3.5rem, 15.6vw, 14.5rem); letter-spacing: -.055em; line-height: .78; margin: 0 0 24px -.04em; white-space: nowrap; }
.piede-note { font-family: var(--grotesk); font-size: .9rem; display: flex; flex-wrap: wrap; gap: 20px; color: #b5b5b5; margin: 0; }

/* ---------- schermi medi */
@media (max-width: 1100px) {
  .locandine { grid-template-columns: repeat(3, 1fr); }
  .scaffale { grid-template-columns: repeat(4, 1fr); }
  .scaffale .libro:nth-child(n+6) { display: none; }
  .scaffale--tutti .libro { display: flex !important; }
  .scaffale--tutti { grid-template-columns: repeat(3, 1fr); }
  .adesso-in { grid-template-columns: 1fr 1fr; }
  .adesso-voce:nth-child(3) { border-left: 0; padding-left: 0; }
  .adesso-voce:nth-child(n+3) { border-top: 1px solid var(--rete); }
  .locandine--griglia { grid-template-columns: repeat(3, 1fr); }
  .foto-stampa { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- telefono */
@media (max-width: 860px) {
  body { font-size: 1.125rem; }
  .menu-apri { display: block; }
  .menu { position: fixed; inset: 0; top: 0; background: var(--carta); flex-direction: column; align-items: flex-start; justify-content: flex-start; padding: 96px var(--margine) 40px; gap: 32px; transform: translateY(-100%); visibility: hidden; transition: transform .25s ease, visibility 0s .25s; z-index: 10; }
  .menu-aperto .menu { transform: none; visibility: visible; transition: transform .25s ease; }
  .menu ul { flex-direction: column; gap: 4px; }
  .menu ul a { font-size: 2.6rem; font-weight: 800; letter-spacing: -.04em; border-bottom-width: 4px; }
  .menu-apri { position: relative; z-index: 30; }
  .marchio { position: relative; z-index: 30; }
  .menu-aperto body { overflow: hidden; }
  .apertura { grid-template-columns: 1fr; padding-top: 28px; gap: 40px; }
  .apertura-testo, .apertura-foto { grid-column: 1; }
  .apertura-foto { order: -1; min-height: 0; margin: 0 0 0 22px; }
  .apertura-foto img { aspect-ratio: 4 / 3.4; height: auto; }
  .apertura-nome { font-size: clamp(3.6rem, 19vw, 6rem); width: auto; }
  .adesso-in { grid-template-columns: 1fr; }
  .adesso-voce { border-left: 0 !important; padding: 18px 0 !important; border-top: 1px solid var(--rete); }
  .adesso-voce:first-child { border-top: 0; }
  .sezione-testa, .indice-testa { grid-template-columns: 1fr; gap: 16px; }
  .parola, .sezione-intro { grid-column: 1; }
  .sezione-intro { font-size: 1.15rem; }
  .scrivo-griglia { grid-template-columns: 1fr; }
  .scrivo-griglia .articoli, .firme { grid-column: 1; }
  .firme { margin-top: 32px; }
  .art { grid-template-columns: 1fr; gap: 4px; }
  .art-testata, .art-titolo, .art-sommario, .art-data { grid-column: 1; grid-row: auto; text-align: left; }
  .locandine { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; margin: 0 calc(-1 * var(--margine)); padding: 0 var(--margine) 8px; }
  .locandine .locandina { flex: 0 0 62%; scroll-snap-align: start; }
  .locandine--griglia { display: grid; grid-template-columns: 1fr 1fr; overflow: visible; margin: 0 0 32px; padding: 0; }
  .locandine--griglia .locandina { flex: none; }
  .racconto-voce, .radio-griglia { grid-template-columns: 1fr; }
  .data { grid-template-columns: 1fr; gap: 10px; }
  .data-giorno { font-size: 3.25rem; }
  .date--passate .data { grid-template-columns: 6rem 1fr; }
  .scaffale, .scaffale--tutti { grid-template-columns: 1fr 1fr; gap: 28px 16px; }
  .libro--primo { grid-column: span 2; }
  .scaffale--tutti .libro--primo { grid-column: span 2; }
  .sezione--chi, .chi-apertura, .chi-corpo, .urto-griglia, .libro-scheda { grid-template-columns: 1fr; }
  .chi-foto, .chi-testo, .chi-apertura-testo, .chi-apertura-foto, .chi-corpo .pagina-testo, .chi-schede, .urto-griglia .pagina-testo, .urto-ascolta, .libro-scheda-copertina, .libro-scheda-testo { grid-column: 1; }
  .chi-apertura-foto { margin-left: 18px; }
  .libro-scheda-copertina { max-width: 60%; }
  .pagina--libro .pagina-testo { margin-left: 0; }
  .repertorio { columns: 1; }
  .foto-stampa { grid-template-columns: 1fr 1fr; }
  .piede-in { grid-template-columns: 1fr; gap: 40px; padding-top: 56px; }
  .filtri { flex-direction: column; }
  .pezzo-testo, .pagina-testo { font-size: 1.15rem; }
}
@media (prefers-reduced-motion: reduce) { .menu { transition: none !important; } }
@media print { .testata, .piede, .pezzo-piede, .filtri { display: none; } body { font-size: 12pt; } }
.pezzo-altri .art { grid-template-columns: 1fr; gap: 4px; }
.pezzo-altri .art-testata, .pezzo-altri .art-titolo, .pezzo-altri .art-data { grid-column: 1; grid-row: auto; text-align: left; }
@media (max-width: 860px) { .apertura-foto img { object-position: 50% 22%; } }

/* ---------- movimento (ottobre 2026): pochi gesti, tutti legati al senso */
.apertura-nome .riga { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .04em; }
.apertura-nome .riga > span { display: inline-block; }
.video { border-top: 1px solid currentColor; margin: 12px 0 16px; }
.video li { border-bottom: 1px solid rgba(127,127,127,.35); }
.video a { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 10px 0; text-decoration: none; align-items: baseline; }
.video-titolo { font-size: 1.05rem; line-height: 1.3; }
.video-data { font-family: var(--grotesk); font-size: .85rem; opacity: .7; white-space: nowrap; }
.video a:hover .video-titolo { text-decoration: underline; text-decoration-color: var(--rosso); }
.in-onda { display: inline-flex; align-items: center; gap: 6px; margin-left: 8px; font-weight: 700; color: var(--inchiostro); }
.in-onda::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--rosso); }
.copertina-vuota { display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 2 / 3; width: 100%; background: var(--rosso); color: #fff; padding: 14px; margin-bottom: 12px; font-family: var(--grotesk); font-weight: 800; font-size: 1.05rem; line-height: 1.05; letter-spacing: -.02em; }
.copertina-vuota span:last-child { font-weight: 500; font-size: .8rem; letter-spacing: 0; }
.tabellone { overflow: hidden; border-bottom: 1px solid rgba(255,255,255,.4); margin: calc(-1 * clamp(56px, 8vw, 120px)) calc(-1 * var(--margine)) clamp(40px, 5vw, 72px) !important; max-width: none !important; padding: 14px 0; }
.tabellone-nastro { display: flex; width: max-content; gap: 0; font-family: var(--grotesk); font-size: 1.15rem; white-space: nowrap; }
.tab-voce { padding: 0 28px; position: relative; }
.tab-voce::after { content: ""; position: absolute; right: -4px; top: 50%; width: 8px; height: 8px; background: #fff; transform: translateY(-50%); }
.tab-voce b { font-weight: 800; }
.locandina img { transition: transform .25s ease, box-shadow .25s ease; }
.locandina:hover img, .locandina:focus-visible img { transform: translate(-6px, -6px); box-shadow: 6px 6px 0 var(--rosso); }
.libro img, .copertina-vuota { transition: transform .25s ease; }
.libro:hover img, .libro:hover .copertina-vuota { transform: translateY(-6px); }
.lettura { position: fixed; top: 0; left: 0; height: 4px; width: 100%; background: var(--rosso); transform-origin: 0 50%; transform: scaleX(0); z-index: 50; }
@media (prefers-reduced-motion: no-preference) {
  .js .apertura-nome .riga > span { animation: sale 900ms cubic-bezier(.2,.75,.15,1) both; }
  .js .apertura-nome .riga + .riga > span { animation-delay: 140ms; }
  @keyframes sale { from { transform: translateY(105%); } to { transform: none; } }
  .js .apertura-mestieri, .js .apertura-voce, .js .apertura-fatti, .js .porte { animation: appare 700ms ease both; animation-delay: 520ms; }
  @keyframes appare { from { opacity: 0; } to { opacity: 1; } }
  .js .parola { clip-path: inset(0 100% 0 0); transition: clip-path 1000ms cubic-bezier(.65,0,.25,1); }
  .js .parola.visto { clip-path: inset(0 0 0 0); }
  .js .apertura-nome.parola { clip-path: none; }
  .tabellone-nastro { animation: nastro 55s linear infinite; }
  .tabellone:hover .tabellone-nastro { animation-play-state: paused; }
  @keyframes nastro { to { transform: translateX(-50%); } }
  .in-onda::before { animation: battito 1.4s ease-in-out infinite; }
  @keyframes battito { 50% { opacity: .25; transform: scale(.7); } }
}
.locandina-dove { font-family: var(--grotesk); font-size: .8rem; color: var(--rosso); margin-top: 2px; }
.sezione--racconto .locandina-dove { color: #ff8f80; }
.in-onda[hidden] { display: none; }
.pagina-testo .pt-cv-readmore, .pagina-testo .btn { background: var(--inchiostro) !important; color: #fff !important; border: 0 !important; border-radius: 2px !important; font-family: var(--grotesk); font-size: .85rem; padding: 6px 10px; text-decoration: none; }
.pagina-testo .pt-cv-title a { text-decoration: none; }
@media (max-width: 860px) {
  .sezione.sezione--racconto > .locandine { max-width: none; margin-left: calc(-1 * var(--margine)); margin-right: calc(-1 * var(--margine)); padding-left: var(--margine); padding-right: var(--margine); scroll-padding-left: var(--margine); }
}
