/* =========================================================================
   ANIMIX — magazine.css
   Tutti i colori, font e dimensioni provengono da tema.json via tema-css.php
   ========================================================================= */

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
    background: var(--color-bg-page);
    color: var(--color-text-primary);
    font-family: var(--font-corpo);
    font-size: 17px;
    line-height: 1.65;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--color-accent); text-decoration: none; transition: color var(--transizione); }
a:hover { color: var(--color-accent-hover); }

button { font: inherit; cursor: pointer; border: 0; background: transparent; color: inherit; }

h1, h2, h3, h4, h5, h6 { font-family: var(--font-titoli); line-height: 1.2; color: var(--color-text-primary); font-weight: 700; }

.visually-hidden {
    position: absolute !important; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0;
}

.skip-link {
    position: absolute; top: -40px; left: 0;
    background: var(--color-bg-dark); color: var(--color-text-on-dark);
    padding: 8px 16px; z-index: 9999;
}
.skip-link:focus { top: 0; }

.container {
    width: 100%;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 var(--gutter);
}

.main-content { flex: 1; padding: 32px 0 64px; }

/* =====================================================
   HEADER
   ===================================================== */

.site-header {
    background: var(--color-bg-page);
    border-bottom: 1px solid var(--color-border-soft);
    position: sticky; top: 0; z-index: 100;
}

.header-top {
    background: var(--color-bg-dark);
    color: var(--color-text-on-dark);
    font-family: var(--font-ui);
    font-size: 13px;
}

.header-top-inner {
    display: flex; justify-content: space-between; align-items: center;
    padding: 8px var(--gutter);
}

.header-meta { display: flex; gap: 16px; align-items: center; }
.header-data { text-transform: capitalize; }
.header-ora { opacity: 0.85; font-variant-numeric: tabular-nums; }

.header-utility { display: flex; gap: 16px; align-items: center; }
.header-link { color: var(--color-text-on-dark); opacity: 0.85; }
.header-link:hover { opacity: 1; color: var(--color-text-on-dark); }

.header-search-toggle {
    color: var(--color-text-on-dark);
    padding: 4px;
    display: inline-flex; align-items: center;
}

.header-main-inner {
    display: flex; justify-content: space-between; align-items: center;
    padding: 24px var(--gutter);
}

.site-logo {
    display: flex; flex-direction: column; gap: 4px;
    color: var(--color-text-primary);
}
.site-logo:hover { color: var(--color-text-primary); }
.logo-text {
    font-family: var(--font-titoli);
    font-size: 36px; font-weight: 700; letter-spacing: -0.02em;
    line-height: 1;
}
.logo-tagline {
    font-family: var(--font-ui);
    font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em;
    color: var(--color-text-secondary);
}

.menu-toggle { display: none; }

.site-nav {
    border-top: 1px solid var(--color-border-soft);
    border-bottom: 1px solid var(--color-border-soft);
    background: var(--color-bg-page);
}
.nav-list {
    display: flex; flex-wrap: wrap; gap: 0;
    list-style: none; justify-content: center;
}
.nav-list li { margin: 0; }
.nav-list a {
    display: block;
    padding: 14px 18px;
    font-family: var(--font-ui);
    font-size: 14px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.05em;
    color: var(--color-text-primary);
}
.nav-list a:hover { color: var(--color-accent); }

.search-bar {
    background: var(--color-bg-soft);
    padding: 16px 0;
    border-bottom: 1px solid var(--color-border-soft);
}
.search-bar form { display: flex; gap: 8px; }
.search-bar input[type="search"] {
    flex: 1; padding: 10px 14px;
    border: 1px solid var(--color-border-soft); border-radius: var(--radius);
    font-family: var(--font-ui); font-size: 15px;
    background: var(--color-bg-page); color: var(--color-text-primary);
}
.search-bar button {
    padding: 10px 20px;
    background: var(--color-accent); color: var(--color-text-on-dark);
    border-radius: var(--radius);
    font-family: var(--font-ui); font-size: 14px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.05em;
}
.search-bar button:hover { background: var(--color-accent-hover); }

/* =====================================================
   APERTURA
   ===================================================== */

.apertura {
    margin-bottom: 48px;
    background: var(--color-bg-page);
    border-bottom: 1px solid var(--color-border-soft);
    padding-bottom: 48px;
}
.apertura-link { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: center; color: inherit; }
.apertura-link:hover { color: inherit; }
.apertura-link:hover .apertura-title { color: var(--color-accent); }
.apertura-media { overflow: hidden; border-radius: var(--radius); aspect-ratio: 16/10; background: var(--color-bg-soft); }
.apertura-media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transizione); }
.apertura-link:hover .apertura-media img { transform: scale(1.03); }

.apertura-category {
    display: inline-block;
    font-family: var(--font-ui);
    font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em;
    color: var(--color-accent); margin-bottom: 16px;
}
.apertura-title {
    font-size: clamp(32px, 4vw, 52px);
    line-height: 1.1; letter-spacing: -0.02em;
    margin-bottom: 16px;
    transition: color var(--transizione);
}
.apertura-summary {
    font-size: 19px; line-height: 1.55;
    color: var(--color-text-secondary);
    margin-bottom: 16px;
}
.apertura-meta {
    font-family: var(--font-ui); font-size: 13px;
    color: var(--color-text-tertiary);
    display: flex; gap: 12px; flex-wrap: wrap;
}

/* =====================================================
   SEZIONI HOME
   ===================================================== */

.sezione-home { margin-bottom: 56px; }

.sezione-titolo {
    font-size: 14px; font-weight: 700;
    font-family: var(--font-ui);
    text-transform: uppercase; letter-spacing: 0.18em;
    margin-bottom: 24px; padding-bottom: 12px;
    border-bottom: 2px solid var(--color-text-primary);
    display: inline-block;
}

.grid-evidenza { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; }
.grid-primo-piano { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.grid-zoom { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

/* =====================================================
   CARD ARTICOLO
   ===================================================== */

.card { background: transparent; transition: transform var(--transizione); }
.card-link { display: block; color: inherit; }
.card-link:hover { color: inherit; }
.card:hover { transform: translateY(-2px); }
.card:hover .card-title { color: var(--color-accent); }

.card-media { overflow: hidden; border-radius: var(--radius); aspect-ratio: 16/10; background: var(--color-bg-soft); margin-bottom: 14px; }
.card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transizione); }
.card:hover .card-media img { transform: scale(1.04); }

.card-square .card-media { aspect-ratio: 1/1; }
.card-large .card-media { aspect-ratio: 16/9; }

.card-placeholder {
    width: 100%; height: 100%;
    background: linear-gradient(135deg, var(--color-bg-soft) 0%, rgba(0,0,0,0.05) 100%);
}
.card-placeholder-large { aspect-ratio: 16/9; }

.card-body { padding: 0 4px; }

.card-category {
    display: inline-block;
    font-family: var(--font-ui);
    font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.1em;
    color: var(--cat-color, var(--color-accent));
    margin-bottom: 8px;
}
.card-title {
    font-size: 21px; line-height: 1.25; letter-spacing: -0.01em;
    margin-bottom: 8px;
    transition: color var(--transizione);
}
.card-small .card-title { font-size: 17px; }
.card-square .card-title { font-size: 19px; }
.card-excerpt {
    font-size: 15px; line-height: 1.5;
    color: var(--color-text-secondary);
    margin-bottom: 10px;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
    line-clamp: 3; overflow: hidden;
}
.card-meta {
    font-family: var(--font-ui); font-size: 12px;
    color: var(--color-text-tertiary);
    display: flex; gap: 10px; flex-wrap: wrap;
}
.card-author { font-weight: 600; color: var(--color-text-secondary); }

/* =====================================================
   ARTICOLO SINGOLO
   ===================================================== */

.container-articolo { max-width: 880px; }

.breadcrumb {
    font-family: var(--font-ui); font-size: 13px;
    color: var(--color-text-tertiary);
    margin-bottom: 24px;
}
.breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 0; }
.breadcrumb li { display: flex; align-items: center; }
.breadcrumb li:not(:last-child)::after { content: "›"; margin: 0 8px; opacity: 0.5; }
.breadcrumb a { color: var(--color-text-secondary); }
.breadcrumb a:hover { color: var(--color-accent); }

.articolo-testata { margin-bottom: 32px; }

.articolo-categoria {
    display: inline-block;
    font-family: var(--font-ui);
    font-size: 12px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.12em;
    color: var(--cat-color, var(--color-accent));
    background: rgba(0,0,0,0.04);
    padding: 6px 12px; border-radius: var(--radius);
    margin-bottom: 20px;
}

.articolo-occhiello {
    font-family: var(--font-ui); font-size: 13px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.18em;
    color: var(--color-text-secondary);
    margin-bottom: 12px;
}

.articolo-titolo {
    font-size: clamp(32px, 5vw, 52px);
    line-height: 1.1; letter-spacing: -0.02em;
    margin-bottom: 20px;
}

.articolo-sommario {
    font-size: 21px; line-height: 1.5; font-weight: 500;
    color: var(--color-text-primary);
    margin-bottom: 24px;
    padding-left: 16px;
    border-left: 4px solid var(--color-accent);
}

.articolo-meta {
    font-family: var(--font-ui); font-size: 14px;
    color: var(--color-text-secondary);
    display: flex; gap: 16px; flex-wrap: wrap;
    padding: 16px 0;
    border-top: 1px solid var(--color-border-soft);
    border-bottom: 1px solid var(--color-border-soft);
}
.articolo-meta a { color: var(--color-text-primary); text-decoration: underline; text-decoration-thickness: 1px; }
.articolo-meta a:hover { color: var(--color-accent); }
.articolo-aggiornato { font-style: italic; color: var(--color-text-tertiary); }
.articolo-tempo { color: var(--color-text-tertiary); }

.articolo-foto-principale {
    margin: 32px 0;
    border-radius: var(--radius); overflow: hidden;
}
.articolo-foto-principale img { width: 100%; height: auto; }
.articolo-foto-principale figcaption {
    font-family: var(--font-ui); font-size: 13px;
    color: var(--color-text-tertiary);
    padding: 12px 4px;
    font-style: italic;
}

.articolo-strumenti {
    display: flex; justify-content: space-between; align-items: center;
    flex-wrap: wrap; gap: 16px;
    padding: 16px 0;
    margin-bottom: 32px;
    border-bottom: 1px solid var(--color-border-soft);
    font-family: var(--font-ui); font-size: 13px;
}
.strumenti-share, .strumenti-utility { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.strumenti-label { color: var(--color-text-secondary); font-weight: 600; margin-right: 4px; }

.share-btn, .util-btn {
    padding: 8px 14px; border-radius: var(--radius);
    background: var(--color-bg-soft); color: var(--color-text-primary);
    font-size: 13px; font-weight: 500;
    transition: background var(--transizione), color var(--transizione);
    border: 1px solid var(--color-border-soft);
    text-decoration: none;
}
.share-btn:hover, .util-btn:hover { background: var(--color-accent); color: var(--color-text-on-dark); border-color: var(--color-accent); }
.share-wa:hover { background: #25D366; border-color: #25D366; }
.share-fb:hover { background: #1877F2; border-color: #1877F2; }
.share-x:hover { background: #1A1A1A; border-color: #1A1A1A; }

.articolo-corpo {
    font-size: 18px; line-height: 1.75;
    color: var(--color-text-primary);
}
.articolo-corpo p { margin-bottom: 1.4em; }
.articolo-corpo h2 {
    font-size: 30px; line-height: 1.2;
    margin: 1.8em 0 0.6em;
    letter-spacing: -0.01em;
}
.articolo-corpo h3 {
    font-size: 22px; line-height: 1.3;
    margin: 1.6em 0 0.5em;
}
.articolo-corpo h4 { font-size: 19px; margin: 1.4em 0 0.4em; }
.articolo-corpo a { color: var(--color-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.articolo-corpo a:hover { background: rgba(194, 65, 12, 0.08); }
.articolo-corpo ul, .articolo-corpo ol { margin: 0 0 1.4em 1.6em; }
.articolo-corpo li { margin-bottom: 0.5em; }
.articolo-corpo blockquote {
    border-left: 4px solid var(--color-accent);
    padding: 8px 0 8px 24px; margin: 1.6em 0;
    font-style: italic; font-size: 21px; line-height: 1.5;
    color: var(--color-text-primary);
}
.articolo-corpo img { border-radius: var(--radius); margin: 1.4em 0; }
.articolo-corpo figure { margin: 1.6em 0; }
.articolo-corpo figcaption { font-family: var(--font-ui); font-size: 13px; color: var(--color-text-tertiary); padding-top: 8px; font-style: italic; }
.articolo-corpo .box-info, .articolo-corpo .box-informativo {
    background: var(--color-bg-soft);
    border-left: 4px solid var(--color-accent);
    padding: 20px 24px; margin: 1.8em 0;
    border-radius: var(--radius);
    font-size: 16px;
}

/* Font size adjuster */
.articolo-corpo[data-fs="lg"] { font-size: 19px; }
.articolo-corpo[data-fs="xl"] { font-size: 21px; }
.articolo-corpo[data-fs="sm"] { font-size: 16px; }

.articolo-tags {
    margin: 40px 0 32px;
    padding-top: 24px;
    border-top: 1px solid var(--color-border-soft);
    font-family: var(--font-ui); font-size: 14px;
}
.tags-label { color: var(--color-text-secondary); font-weight: 600; margin-right: 8px; }
.tag-pill {
    display: inline-block;
    background: var(--color-bg-soft);
    color: var(--color-text-primary);
    padding: 6px 14px; border-radius: 999px;
    margin: 4px; font-size: 13px; font-weight: 500;
    text-decoration: none;
    transition: background var(--transizione), color var(--transizione);
}
.tag-pill:hover { background: var(--color-accent); color: var(--color-text-on-dark); }

.articolo-box-autore {
    display: flex; gap: 20px; align-items: flex-start;
    background: var(--color-bg-soft);
    border-radius: var(--radius);
    padding: 28px;
    margin: 40px 0;
}
.box-autore-avatar { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.box-autore-nome { font-size: 22px; margin-bottom: 4px; }
.box-autore-specialita { font-family: var(--font-ui); font-size: 13px; color: var(--color-text-secondary); margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.05em; }
.box-autore-bio { font-size: 15px; line-height: 1.6; margin-bottom: 12px; color: var(--color-text-secondary); }
.box-autore-link { font-family: var(--font-ui); font-size: 14px; font-weight: 600; }

.articoli-correlati { margin-top: 48px; }
.grid-correlati { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }

/* =====================================================
   ARCHIVIO (categoria, autore, tag, ricerca)
   ===================================================== */

.archivio-testata { margin-bottom: 40px; padding-bottom: 24px; border-bottom: 2px solid var(--color-text-primary); }
.archivio-titolo { font-size: clamp(36px, 5vw, 56px); line-height: 1.1; margin-bottom: 12px; color: var(--cat-color, var(--color-text-primary)); }
.archivio-descrizione { font-size: 18px; color: var(--color-text-secondary); margin-bottom: 12px; max-width: 720px; }
.archivio-conta, .ricerca-conta { font-family: var(--font-ui); font-size: 13px; color: var(--color-text-tertiary); text-transform: uppercase; letter-spacing: 0.05em; }

.grid-archivio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-bottom: 48px; }

.archivio-vuoto { text-align: center; padding: 64px 0; color: var(--color-text-secondary); font-size: 18px; }

.autore-testata { display: flex; gap: 24px; align-items: center; padding-bottom: 32px; border-bottom: 2px solid var(--color-text-primary); margin-bottom: 40px; flex-wrap: wrap; }
.autore-avatar { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; }
.autore-body { flex: 1; min-width: 280px; }
.autore-nome { font-size: 36px; line-height: 1.1; margin-bottom: 8px; }
.autore-specialita { font-family: var(--font-ui); font-size: 14px; color: var(--color-accent); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 12px; font-weight: 600; }
.autore-bio { font-size: 16px; line-height: 1.6; color: var(--color-text-secondary); margin-bottom: 12px; }
.autore-conta { font-family: var(--font-ui); font-size: 13px; color: var(--color-text-tertiary); text-transform: uppercase; letter-spacing: 0.05em; }

.grid-firme { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.firma-card {
    display: block; padding: 24px;
    background: var(--color-bg-soft);
    border-radius: var(--radius);
    color: inherit; text-align: center;
    transition: transform var(--transizione), box-shadow var(--transizione);
}
.firma-card:hover { transform: translateY(-4px); box-shadow: var(--ombra-hover); color: inherit; }
.firma-avatar { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin: 0 auto 16px; }
.firma-avatar-placeholder {
    background: var(--color-accent); color: var(--color-text-on-dark);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-titoli); font-size: 36px; font-weight: 700; text-transform: uppercase;
}
.firma-nome { font-size: 22px; margin-bottom: 4px; }
.firma-specialita { font-family: var(--font-ui); font-size: 13px; color: var(--color-accent); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 12px; font-weight: 600; }
.firma-bio { font-size: 14px; line-height: 1.5; color: var(--color-text-secondary); }

/* =====================================================
   PAGINAZIONE
   ===================================================== */

.pagination { margin: 32px 0 0; }
.pagination-list { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; list-style: none; font-family: var(--font-ui); font-size: 14px; }
.pagination-list li { }
.pagination-list a, .pagination-list span {
    display: inline-block; padding: 10px 14px; min-width: 44px; text-align: center;
    background: var(--color-bg-soft); color: var(--color-text-primary);
    border-radius: var(--radius); border: 1px solid var(--color-border-soft);
    font-weight: 500;
    transition: background var(--transizione), color var(--transizione);
}
.pagination-list a:hover { background: var(--color-accent); color: var(--color-text-on-dark); border-color: var(--color-accent); }
.pagination-list .current span { background: var(--color-text-primary); color: var(--color-text-on-dark); border-color: var(--color-text-primary); }
.pagination-list .ellipsis { padding: 10px 6px; color: var(--color-text-tertiary); }

/* =====================================================
   RICERCA
   ===================================================== */

.ricerca-form { display: flex; gap: 8px; max-width: 600px; margin: 16px 0; }
.ricerca-form input[type="search"] {
    flex: 1; padding: 12px 16px;
    border: 1px solid var(--color-border-soft); border-radius: var(--radius);
    font-family: var(--font-ui); font-size: 16px;
    background: var(--color-bg-page); color: var(--color-text-primary);
}
.ricerca-form button {
    padding: 12px 24px;
    background: var(--color-accent); color: var(--color-text-on-dark);
    border-radius: var(--radius);
    font-family: var(--font-ui); font-size: 14px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.05em;
}
.ricerca-form button:hover { background: var(--color-accent-hover); }

/* =====================================================
   PAGINE STATICHE
   ===================================================== */

.container-statica { max-width: 760px; }
.pagina-statica { font-size: 17px; line-height: 1.7; }
.pagina-statica h1 { font-size: clamp(32px, 4vw, 44px); line-height: 1.15; margin-bottom: 16px; }
.pagina-statica h2 { font-size: 24px; margin: 1.6em 0 0.5em; }
.pagina-statica h3 { font-size: 19px; margin: 1.4em 0 0.4em; }
.pagina-statica p { margin-bottom: 1.2em; }
.pagina-statica ul, .pagina-statica ol { margin: 0 0 1.2em 1.6em; }
.pagina-statica li { margin-bottom: 0.4em; }
.pagina-statica-intro { color: var(--color-text-tertiary); font-style: italic; margin-bottom: 1.4em !important; font-family: var(--font-ui); font-size: 14px; }
.pagina-statica-lead { font-size: 19px; color: var(--color-text-secondary); margin-bottom: 1.4em; }
.pagina-statica a { color: var(--color-accent); text-decoration: underline; }

.mappa-list { list-style: none; margin: 0 0 1.6em 0 !important; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.mappa-list li { margin: 0; }
.mappa-list a { font-family: var(--font-ui); font-size: 14px; }
.mappa-tags a { background: var(--color-bg-soft); padding: 4px 12px; border-radius: 999px; }

/* =====================================================
   404
   ===================================================== */

.pagina-404 { text-align: center; padding: 32px 0; }
.errore-codice {
    font-size: clamp(96px, 18vw, 180px);
    line-height: 1; margin-bottom: 8px;
    color: var(--color-accent);
    letter-spacing: -0.04em;
}
.errore-titolo { font-size: 22px; color: var(--color-text-secondary); margin-bottom: 32px; font-family: var(--font-titoli); }
.errore-suggerimento { font-family: var(--font-ui); font-size: 14px; color: var(--color-text-tertiary); text-transform: uppercase; letter-spacing: 0.08em; margin: 32px 0 16px; }
.ricerca-404 { margin: 0 auto 32px; }
.errore-back { font-family: var(--font-ui); font-weight: 600; display: inline-block; margin-top: 24px; }
.grid-404 { grid-template-columns: repeat(3, 1fr); margin-bottom: 32px; }

/* =====================================================
   FOOTER
   ===================================================== */

.site-footer {
    background: var(--color-bg-dark);
    color: var(--color-text-on-dark);
    padding: 56px 0 24px;
    margin-top: 48px;
    font-family: var(--font-ui);
    font-size: 14px;
}
.site-footer a { color: var(--color-text-on-dark); opacity: 0.85; }
.site-footer a:hover { color: var(--color-text-on-dark); opacity: 1; }

.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr; gap: 40px; margin-bottom: 40px; }
.footer-col h4 {
    font-family: var(--font-ui);
    font-size: 12px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.12em;
    margin-bottom: 16px;
    color: var(--color-text-on-dark);
}
.footer-col ul { list-style: none; }
.footer-col li { margin-bottom: 8px; }
.footer-logo {
    font-family: var(--font-titoli);
    font-size: 28px; margin-bottom: 12px; color: var(--color-text-on-dark);
}
.footer-tagline { opacity: 0.75; line-height: 1.5; margin-bottom: 12px; }
.footer-address { opacity: 0.6; font-size: 13px; line-height: 1.5; }
.footer-newsletter-text { opacity: 0.75; margin-bottom: 12px; line-height: 1.5; }
.footer-newsletter { display: flex; flex-direction: column; gap: 8px; }
.footer-newsletter input {
    padding: 10px 14px;
    border: 1px solid var(--color-border-strong);
    background: rgba(255,255,255,0.06);
    color: var(--color-text-on-dark);
    border-radius: var(--radius);
    font-family: inherit; font-size: 14px;
}
.footer-newsletter input::placeholder { color: rgba(255,255,255,0.5); }
.footer-newsletter button {
    padding: 10px;
    background: var(--color-accent); color: var(--color-text-on-dark);
    border-radius: var(--radius);
    font-family: var(--font-ui); font-size: 13px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.05em;
}
.footer-newsletter button:hover { background: var(--color-accent-hover); }

.footer-bottom {
    display: flex; justify-content: space-between; align-items: center;
    padding-top: 24px;
    border-top: 1px solid var(--color-border-strong);
    flex-wrap: wrap; gap: 12px;
}
.footer-copy { opacity: 0.6; font-size: 13px; }
.footer-legal { display: flex; gap: 16px; list-style: none; font-size: 13px; }

/* =====================================================
   COOKIE BANNER
   ===================================================== */

.cookie-banner {
    position: fixed; bottom: 16px; left: 16px; right: 16px;
    max-width: 720px; margin: 0 auto;
    background: var(--color-bg-dark); color: var(--color-text-on-dark);
    border-radius: var(--radius);
    box-shadow: 0 12px 40px rgba(0,0,0,0.3);
    z-index: 1000;
    font-family: var(--font-ui);
}
.cookie-banner-inner { padding: 20px 24px; display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.cookie-banner-text { flex: 1; min-width: 280px; font-size: 14px; line-height: 1.5; opacity: 0.95; }
.cookie-banner-text a { color: var(--color-text-on-dark); text-decoration: underline; }
.cookie-banner-actions { display: flex; gap: 8px; }
.btn-cookie {
    padding: 10px 20px; border-radius: var(--radius);
    font-size: 13px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.05em;
}
.btn-cookie-accept { background: var(--color-accent); color: var(--color-text-on-dark); }
.btn-cookie-accept:hover { background: var(--color-accent-hover); }
.btn-cookie-refuse { background: transparent; color: var(--color-text-on-dark); border: 1px solid var(--color-border-strong); }
.btn-cookie-refuse:hover { background: rgba(255,255,255,0.08); }

/* =====================================================
   RESPONSIVE
   ===================================================== */

@media (max-width: 960px) {
    .apertura-link { grid-template-columns: 1fr; gap: 24px; }
    .grid-primo-piano { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .grid-zoom { grid-template-columns: repeat(2, 1fr); }
    .grid-archivio { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .grid-correlati { grid-template-columns: repeat(2, 1fr); }
    .grid-404 { grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }
}

@media (max-width: 720px) {
    body { font-size: 16px; }
    .header-top-inner { padding: 6px var(--gutter); flex-wrap: wrap; gap: 8px; }
    .header-meta { font-size: 12px; }
    .header-utility { gap: 12px; }
    .logo-text { font-size: 28px; }
    .logo-tagline { font-size: 11px; }

    .menu-toggle {
        display: flex; flex-direction: column; gap: 4px;
        width: 32px; height: 32px;
        align-items: center; justify-content: center;
    }
    .menu-toggle span {
        display: block; width: 24px; height: 2px;
        background: var(--color-text-primary);
        transition: transform var(--transizione), opacity var(--transizione);
    }
    .menu-toggle.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    .menu-toggle.is-open span:nth-child(2) { opacity: 0; }
    .menu-toggle.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

    .site-nav { display: none; }
    .site-nav.is-open { display: block; }
    .nav-list { flex-direction: column; }
    .nav-list a { padding: 12px var(--gutter); border-bottom: 1px solid var(--color-border-soft); }

    .grid-primo-piano,
    .grid-zoom,
    .grid-archivio,
    .grid-correlati,
    .grid-evidenza,
    .grid-404 { grid-template-columns: 1fr; gap: 24px; }

    .articolo-titolo { font-size: 30px; }
    .articolo-sommario { font-size: 18px; }
    .articolo-corpo { font-size: 17px; }
    .articolo-corpo h2 { font-size: 24px; }
    .articolo-corpo h3 { font-size: 20px; }

    .articolo-box-autore { flex-direction: column; align-items: flex-start; padding: 20px; }

    .footer-grid { grid-template-columns: 1fr; gap: 32px; }
    .footer-bottom { flex-direction: column; align-items: flex-start; }

    .strumenti-share, .strumenti-utility { font-size: 12px; }
    .share-btn, .util-btn { padding: 6px 10px; font-size: 12px; }

    .cookie-banner { left: 8px; right: 8px; bottom: 8px; }
    .cookie-banner-inner { padding: 16px; flex-direction: column; align-items: stretch; }
    .cookie-banner-actions { justify-content: stretch; }
    .cookie-banner-actions button { flex: 1; }
}

@media print {
    .site-header, .site-footer, .cookie-banner,
    .articolo-strumenti, .articoli-correlati,
    .breadcrumb, .articolo-box-autore { display: none !important; }
    body { background: white; color: black; }
    .articolo-corpo { font-size: 12pt; }
}
