/*
Theme Name: il Dittatore
Theme URI: https://ildittatore.it
Author: Ezio
Description: Tema satirico per il portale ufficiale della Nuova Italia. Gazzetta del regime immaginario. Richiede il plugin "il Dittatore — Core" per Decreti, Proclami e Comunicati.
Version: 7.31
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: il-dittatore
*/

*{box-sizing:border-box}
:root{
  --red:#8f1717;
  --red2:#671010;
  --ink:#211c17;
  --paper:#efe2c3;
  --paper2:#e5d3aa;
  --gold:#b48a3b;
  --muted:#655b4e;
}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;
  overflow-x:hidden;
  color:var(--ink);
  background:
    radial-gradient(circle at 10% 20%,rgba(80,50,20,.05) 0 1px,transparent 1.5px),
    radial-gradient(circle at 80% 70%,rgba(80,50,20,.035) 0 1px,transparent 1.5px),
    var(--paper);
  background-size:7px 7px,11px 11px,auto;
  font-family:"Libre Baskerville",Georgia,serif;
}
.grain{position:fixed;inset:0;pointer-events:none;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E");z-index:10}
.masthead{background:var(--paper);border-bottom:6px double var(--red)}
.ricerca-regime{display:flex;align-items:center}
.ricerca-regime input[type="search"]{
  background:rgba(0,0,0,.25);
  border:1px solid rgba(245,231,195,.4);
  color:#f5e7c3;
  font:600 11px "Archivo Narrow",sans-serif;
  letter-spacing:.5px;
  padding:5px 8px;
  width:112px;
}
.ricerca-regime input[type="search"]::placeholder{color:rgba(245,231,195,.65)}
.ricerca-regime button{
  background:transparent;
  border:1px solid rgba(245,231,195,.4);
  border-left:none;
  color:#f5e7c3;
  padding:5px 8px;
  cursor:pointer;
  font-size:12px;
  line-height:1;
}
.ricerca-regime button:hover{background:rgba(0,0,0,.3)}
.masthead-social{display:flex;gap:10px}
.masthead-social a{display:flex;width:19px;height:19px}
.masthead-social svg{width:100%;height:100%;fill:var(--ink)}
.masthead-social a:hover svg{fill:var(--red)}
.brand-date .masthead-social{justify-content:center;margin-top:13px}
.brand{max-width:1320px;margin:auto;min-height:130px;padding:14px 5vw;display:grid;grid-template-columns:150px 1fr 150px;align-items:center;gap:30px}
.overline,.section-kicker{font:700 13px "Archivo Narrow",sans-serif;letter-spacing:3px;color:var(--red)}

/* ---- Nuova testata "il DITTATORE" (v6.1) ---- */
.brand-logo{text-align:center;max-width:100%}
.brand-logo-link{display:inline-block;text-decoration:none;color:inherit;max-width:100%}
.title-row{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:clamp(10px,2vw,30px)}
.side-decor{display:flex;align-items:center;align-self:center;gap:10px}
.side-bar{width:6px;height:60px;background:var(--red)}
.title-text-il{font:700 clamp(26px,6vw,58px)/1 "Playfair Display",serif;color:var(--red)}
.logo-container{width:clamp(44px,9vw,90px);height:clamp(44px,9vw,90px);align-self:center;display:flex;align-items:center;justify-content:center;margin:0 6px;flex-shrink:0}
.logo-container img{max-width:100%;max-height:100%;object-fit:contain}
.title-text-dittatore{font:900 clamp(30px,9vw,72px)/1 "Playfair Display",serif;letter-spacing:-1px;color:var(--ink)}

.banner-bar{background:var(--red);color:#fff;padding:6px 12px;display:flex;align-items:center;justify-content:center;gap:12px;margin-top:10px;position:relative}
.banner-bar::before,.banner-bar::after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--paper)}
.banner-bar::before{top:2px}
.banner-bar::after{bottom:2px}
.banner-line{flex:1;max-width:220px;height:2px;background:var(--paper)}
.banner-text{font:700 13px "Archivo Narrow",sans-serif;letter-spacing:3px;text-transform:uppercase;white-space:nowrap}

.values-row{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:20px;margin-top:10px;font:700 14px "Archivo Narrow",sans-serif;letter-spacing:4px;color:var(--ink)}
.values-row .dot{font-size:10px;color:var(--ink)}

.brand-date{text-align:center;font:600 13px/1.15 "Archivo Narrow",sans-serif;letter-spacing:1px}
.brand-date span{display:block;margin-top:13px;font-size:11px;color:var(--muted)}

/* ---- Menu principale (markup generato da wp_nav_menu) ---- */
.main-nav{background:var(--ink);border-top:3px solid var(--gold)}
.main-nav-bar{display:flex;align-items:center}
.main-nav-toggle{ display:none; }
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;flex:1;flex-wrap:wrap;justify-content:center}
.main-nav-ricerca{flex-shrink:0;padding:8px 28px 8px 12px}
.main-nav li{position:relative}
.main-nav a{display:block;color:#f2e3bd;text-decoration:none;padding:14px 14px;font:600 15px "Archivo Narrow",sans-serif;letter-spacing:1.2px}
.main-nav li:hover>a,
.main-nav li.current-menu-item>a,
.main-nav li.current_page_item>a,
.main-nav li.current-menu-ancestor>a{background:var(--red)}
.main-nav li.menu-item-has-children>a::after{content:" \25BE";font-size:.7em;opacity:.8}
.main-nav .sub-menu{display:none;position:absolute;top:100%;left:0;min-width:270px;background:var(--ink);border-top:2px solid var(--gold);box-shadow:0 8px 18px rgba(0,0,0,.25);z-index:20;list-style:none;margin:0;padding:0}
.main-nav li.sub-menu-open>.sub-menu{display:block}
body.has-hover .main-nav li:hover>.sub-menu{display:block}
.main-nav .sub-menu a{padding:10px 16px;font:600 12px "Archivo Narrow",sans-serif;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.08)}
.main-nav .sub-menu a:hover{background:var(--red)}
.main-nav .sub-menu .sub-menu{top:0;left:100%}
@media(max-width:1180px){
 .main-nav a{padding:14px 10px}
 .main-nav-ricerca{padding:8px 16px 8px 10px}
 .ricerca-regime input[type="search"]{width:88px}
}

main{max-width:1320px;margin:auto;padding:38px 5vw 70px}
.hero{display:grid;grid-template-columns:1.12fr .88fr;gap:50px;align-items:center;padding:15px 0 45px;border-bottom:3px solid var(--ink)}
.red-tag{display:inline-block;background:var(--red);color:#f7e8bf;padding:7px 12px;font:700 13px "Archivo Narrow",sans-serif;letter-spacing:2px}
.hero h2{font:700 clamp(52px,7vw,90px)/.82 "Archivo Narrow",sans-serif;margin:20px 0 18px;color:var(--red);letter-spacing:-1px}
.hero h2 em{font-style:normal;color:var(--ink)}
.lead{font:700 24px/1.25 "Archivo Narrow",sans-serif;max-width:610px}
.hero-copy>p:not(.lead){line-height:1.7;max-width:650px}
.button{display:inline-block;margin-top:14px;padding:13px 19px;background:var(--red);color:#f7e8bf;text-decoration:none;font:700 14px "Archivo Narrow",sans-serif;letter-spacing:1.5px;border:2px solid var(--red)}
.button:hover{background:var(--ink);border-color:var(--ink)}
.portrait-placeholder{padding:12px;background:var(--ink);box-shadow:12px 12px 0 var(--gold)}
.placeholder-frame{min-height:500px;border:2px solid var(--gold);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--gold);position:relative;background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(0,0,0,.12))}
.placeholder-frame.has-image{
  padding:0;
  overflow:hidden;
  background:var(--ink);
}
.leader-portrait{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  mix-blend-mode:normal;
  filter:sepia(.12) contrast(1.05) saturate(1.1);
}
.placeholder-icon{font-size:65px;line-height:1;margin-bottom:20px}
.placeholder-title{font:700 38px/.9 "Archivo Narrow",sans-serif;letter-spacing:2px}
.placeholder-sub{margin-top:20px;font:600 12px/1.5 "Archivo Narrow",sans-serif;letter-spacing:2px;color:#d8bf83}
.corner{position:absolute;width:35px;height:35px;border-color:var(--gold)}
.c1{top:15px;left:15px;border-top:2px solid;border-left:2px solid}.c2{right:15px;bottom:15px;border-right:2px solid;border-bottom:2px solid}
.caption{padding:10px 4px 0;color:#e5d3aa;background:var(--ink);font:600 10px "Archivo Narrow",sans-serif;letter-spacing:1.5px;text-align:center}
.proclamation{margin:45px 0;padding:35px 7%;background:var(--red);color:#f3e4bd;display:grid;grid-template-columns:180px 1fr;gap:35px;position:relative}
.proclamation h2{font:700 44px/1 "Archivo Narrow",sans-serif;margin:8px 0 16px}
.proclamation p{line-height:1.7;max-width:750px}
.stamp{width:145px;height:145px;border:5px double #f3e4bd;border-radius:50%;display:grid;place-content:center;text-align:center;transform:rotate(-9deg);font:700 25px/.9 "Archivo Narrow",sans-serif}
.stamp small{font-size:12px;letter-spacing:2px;margin-top:7px}
.signature{font-weight:bold;text-align:right;margin-left:auto}.signature small{font-weight:normal}
.news-section{padding-top:5px}
.section-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:5px double var(--red);padding-bottom:12px}
.section-heading h2{font:700 48px/.9 "Archivo Narrow",sans-serif;margin:6px 0 0}
.issue{font:700 13px "Archivo Narrow",sans-serif;letter-spacing:2px}
.decrees{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}
.decree{border:2px solid var(--ink);padding:25px;background:rgba(255,255,255,.16);min-height:245px;display:flex;flex-direction:column}
.number{color:var(--red);font:700 15px "Archivo Narrow",sans-serif;letter-spacing:2px}
.decree h3{font:700 27px/1 "Archivo Narrow",sans-serif;margin:15px 0 8px}
.decree p{font-size:14px;line-height:1.6}
.decree a,.text-link{margin-top:auto;color:var(--red);font:700 13px "Archivo Narrow",sans-serif;letter-spacing:1.5px;text-decoration:none}
.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:45px}
.government,.propaganda{padding:38px;min-height:330px;background:var(--ink);color:#f0dfb9;position:relative}
.government h2,.propaganda h2{font:700 53px/.82 "Archivo Narrow",sans-serif;color:#f0dfb9;margin:14px 0}
.government p,.propaganda p{max-width:470px;line-height:1.65}
.government .text-link,.propaganda .text-link{color:#d5ad63}
.propaganda{background:var(--red)}
.propaganda .section-kicker{color:#f0dfb9}
.mini-stamp{position:absolute;right:28px;top:28px;border:2px solid #f0dfb9;padding:9px;text-align:center;transform:rotate(7deg);font:700 13px/1 "Archivo Narrow",sans-serif;letter-spacing:1px}
.constitution{margin-top:45px;padding:40px 7%;border-top:5px double var(--red);border-bottom:5px double var(--red);display:grid;grid-template-columns:150px 1fr;gap:40px;align-items:center}
.constitution-seal img{width:140px;height:155px;object-fit:contain;mix-blend-mode:multiply;opacity:.8}
.constitution h2{font:700 44px "Archivo Narrow",sans-serif;margin:6px 0}
.constitution blockquote{margin:8px 0 15px;font:700 29px/1.15 "Archivo Narrow",sans-serif;color:var(--red)}
.constitution p{font-size:13px}
footer.site-footer{background:var(--ink);color:#e9d9b5;padding:28px 6vw;display:flex;justify-content:space-between;flex-wrap:wrap;gap:15px;font:600 11px "Archivo Narrow",sans-serif;letter-spacing:1.5px}
.footer-nota-satira{color:var(--gold);text-decoration:underline;font-weight:700}
.footer-nota-satira:hover{color:#e9d9b5}
.site-footer a{color:inherit;text-decoration:underline;}
.site-footer a:hover{color:var(--gold);}
.footer-brand{font-size:19px;color:#f1dfb4}
@media(max-width:850px){
 .brand{grid-template-columns:1fr;gap:15px}.brand-spacer{display:none}.brand-date{display:none}.main-nav a{padding:11px 12px;font-size:13px}
 .hero,.two-columns{grid-template-columns:1fr}.portrait-placeholder{max-width:560px;margin:auto;width:100%}.placeholder-frame{min-height:430px}
 .decrees{grid-template-columns:1fr}.proclamation{grid-template-columns:1fr}.stamp{margin:auto}.constitution{grid-template-columns:1fr;text-align:center}.constitution-seal{margin:auto}
}
@media(max-width:600px){
 .side-decor{display:none}.title-row{gap:8px}
}
@media(max-width:520px){
 .hero h2{font-size:55px}.section-heading{display:block}.issue{display:block;margin-top:12px}
 main{padding-left:18px;padding-right:18px}.government,.propaganda{padding:28px}.government h2,.propaganda h2{font-size:45px}
}
@media(max-width:480px){
 .brand{padding:14px 4vw}
 .title-row{gap:6px}
 .title-text-il{font-size:clamp(20px,7vw,58px)}
 .title-text-dittatore{font-size:clamp(24px,10vw,72px);letter-spacing:-.5px}
 .logo-container{width:clamp(36px,10vw,90px);height:clamp(36px,10vw,90px);margin:0 2px}
 .banner-bar{gap:6px;padding:6px 8px}
 .banner-bar .banner-line{max-width:26px}
 .banner-text{font-size:9.5px;letter-spacing:1.2px}
 .values-row{gap:10px;font-size:11px;letter-spacing:2px}
 .main-nav-ricerca{padding:8px 10px}
 .ricerca-regime input[type="search"]{width:96px}
}

/* ================================================================
   Ticker notizie, blocco in evidenza (dinamico dagli ultimi articoli)
   ================================================================ */
.ticker{background:var(--ink);color:var(--paper);overflow:hidden;white-space:nowrap;border-bottom:3px solid var(--red)}
.ticker-inner{display:inline-flex;gap:3rem;padding:8px 0;animation:ticker-scroll 32s linear infinite}
.ticker-inner span{font:600 12px "Archivo Narrow",sans-serif;letter-spacing:1px;display:inline-flex;align-items:center;gap:8px}
.ticker-tag{background:var(--red);color:#fff;padding:2px 8px;font-weight:700;border-radius:2px}
@keyframes ticker-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

.top-features{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin:20px 0 25px}
.feature-main{position:relative;display:flex;align-items:flex-end;min-height:260px;background:var(--ink) center/cover no-repeat;color:#f0dfb9;overflow:hidden;text-decoration:none}
.feature-main::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,#2b241d 0 2px,#211c17 2px 6px);opacity:.55}
.feature-main-inner{position:relative;padding:22px 26px}
.feature-tag{display:inline-block;background:var(--red);color:#f7e8bf;padding:5px 11px;font:700 11px "Archivo Narrow",sans-serif;letter-spacing:2px;margin-bottom:10px}
.feature-main-inner h2{font:700 27px/1.15 "Archivo Narrow",sans-serif;margin-bottom:8px}
.feature-main-inner p{font-size:14px;color:#d8cdae;max-width:38ch;line-height:1.45}
.feature-meta{margin-top:10px;font:600 11px "Archivo Narrow",sans-serif;letter-spacing:1.5px;color:#b7a988}
.feature-side{display:flex;flex-direction:column;gap:20px}
.feature-card{flex:1;display:flex;flex-direction:column;background:rgba(255,255,255,.5);border:2px solid var(--ink);text-decoration:none;color:var(--ink)}
.feature-thumb{height:70px;background:repeating-linear-gradient(45deg,var(--paper2) 0 4px,#ded0a8 4px 8px) center/cover no-repeat}
.feature-card-body{padding:12px 16px}
.feature-cat{font:700 11px "Archivo Narrow",sans-serif;letter-spacing:1.5px;color:var(--red);text-transform:uppercase}
.feature-card-body h3{font:700 17px/1.22 "Archivo Narrow",sans-serif;margin:6px 0 5px}
.feature-card-body p{font-size:12.5px;color:var(--muted);line-height:1.45}
.ad-strip{margin-bottom:35px}
.ad-slot{background:repeating-linear-gradient(45deg,#e4dabf 0 10px,#d9cca3 10px 20px);color:var(--muted);font:600 11px "Archivo Narrow",sans-serif;letter-spacing:1.5px;text-align:center;padding:24px}
.decreti-vuoto{padding:25px;border:2px dashed var(--gold);color:var(--muted);grid-column:1/-1}
.decreti-vuoto a{color:var(--red)}

@media(max-width:850px){
 .top-features{grid-template-columns:1fr}
 .main-nav .sub-menu{position:static;box-shadow:none;min-width:0}
 .main-nav .sub-menu .sub-menu{left:0}

 .main-nav-bar{flex-wrap:wrap}
 .main-nav-toggle{
   display:flex;
   align-items:center;
   gap:8px;
   flex:1;
   background:transparent;
   border:none;
   color:#f2e3bd;
   font:700 14px "Archivo Narrow",sans-serif;
   letter-spacing:1.5px;
   padding:13px 18px;
   cursor:pointer;
 }
 .main-nav-toggle-icona{ font-size:20px; line-height:1; }
 .main-nav-ricerca{ padding:8px 12px; flex-shrink:0; }
 .main-nav ul{
   display:none;
   flex:1 1 100%;
   flex-direction:column;
   flex-wrap:nowrap;
   justify-content:flex-start;
   order:3;
   border-top:1px solid rgba(255,255,255,.12);
 }
 .main-nav.aperto ul{ display:flex; }
 .main-nav li{ width:100%; }
 .main-nav a{ padding:12px 18px; }
 .main-nav .sub-menu a{ padding:10px 18px 10px 30px; }
}

/* ================================================================
   Template singoli: Decreto, Proclama, Comunicato
   ================================================================ */
.decreto-corpo p,
.proclama-corpo p,
.comunicato-corpo p{margin-bottom:14px;line-height:1.7}
.decreto-corpo p:last-child,
.proclama-corpo p:last-child,
.comunicato-corpo p:last-child{margin-bottom:0}

/* ================================================================
   LAYOUT A DUE COLONNE: articolo + sidebar "In Evidenza"
   Usato in single-comunicato.php e single-proclama.php
   ================================================================ */
.dittatore-layout{
  max-width:1320px;
  margin:0 auto;
  padding:0 5vw;
  display:grid;
  grid-template-columns:1fr 300px;
  gap:40px;
  align-items:start;
}
.dittatore-main-col{ min-width:0; }

/* L'articolo non deve più autocentrarsi: ci pensa la colonna */
.dittatore-main-col .comunicato-article,
.dittatore-main-col .comunicato-torna{
  max-width:none;
  margin-left:0;
  margin-right:0;
  padding-left:0;
  padding-right:0;
}

.dittatore-sidebar{
  position:sticky;
  top:20px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.sidebar-titolo{
  font:700 15px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--red);
  border-bottom:3px double var(--red);
  padding-bottom:8px;
  margin:0;
}
.sidebar-lista{ display:flex; flex-direction:column; gap:12px; }
.sidebar-riquadro{
  display:flex;
  gap:10px;
  align-items:flex-start;
  text-decoration:none;
  color:var(--ink);
  background:var(--paper2);
  border:2px solid var(--ink);
  padding:12px;
}
.sidebar-riquadro:hover{ border-color:var(--red); background:#e9d9ba; }
.sidebar-thumb{ flex-shrink:0; width:56px; height:56px; overflow:hidden; display:block; }
.sidebar-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.sidebar-tag{
  display:block;
  font:700 10px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  color:var(--red);
  margin-bottom:3px;
}
.sidebar-titolo-voce{ display:block; font:600 14px/1.3 "Archivo Narrow",sans-serif; }

/* Segnaposto banner pubblicitario: sostituibile in futuro con
   il codice reale del network scelto (es. AdSense) senza toccare
   il layout, che resta invariato. */
.dittatore-ad-slot{
  min-height:250px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:repeating-linear-gradient(45deg,#ded6c7 0 8px,#e7ded0 8px 16px);
  color:var(--muted);
  font:600 12px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

@media(max-width:900px){
  .dittatore-layout{ grid-template-columns:1fr; padding:0 5vw; }
  .dittatore-sidebar{ position:static; }
}

/* ================================================================
   NAVIGAZIONE DECRETO: Precedente / Tutti i Decreti / Prossimo
   ================================================================ */
.decreto-nav{
  max-width:760px;
  margin:20px auto 60px;
  padding:0 5vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.decreto-nav-link{
  font:700 13px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  text-decoration:none;
  color:var(--red);
  white-space:nowrap;
}
.decreto-nav-link:hover{ color:var(--ink); }
.decreto-nav-archivio{
  background:var(--ink);
  color:var(--paper);
  padding:11px 20px;
  border:2px solid var(--ink);
  text-align:center;
}
.decreto-nav-archivio:hover{ background:var(--red); border-color:var(--red); color:#fff; }
.decreto-nav-disabled{ color:#b7ab92; cursor:default; }
@media(max-width:600px){
  .decreto-nav{ flex-wrap:wrap; justify-content:center; text-align:center; }
  .decreto-nav-archivio{ order:3; width:100%; margin-top:6px; }
  .decreto-nav-prev, .decreto-nav-next{ flex:1; }
  .decreto-nav-next{ text-align:right; }
}
.annuncio-popolo-nav{ margin-top:60px; }

/* ================================================================
   GALLERIA DELLA PROPAGANDA: fasce categoria + griglia immagini
   ================================================================ */
.propaganda-fasce{ width:100%; }
.propaganda-fascia{
  display:flex;
  align-items:stretch;
  text-decoration:none;
  color:var(--ink);
  border-bottom:1px solid var(--gold);
}
.propaganda-fascia-inversa{ flex-direction:row-reverse; }
.propaganda-fascia-img{
  width:170px;
  height:170px;
  flex-shrink:0;
  overflow:hidden;
  background:var(--paper2);
  display:flex;
  align-items:center;
  justify-content:center;
}
.propaganda-fascia-img img{ max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; display:block; }
.propaganda-fascia-testo{
  flex:1;
  padding:26px 34px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
}
.propaganda-fascia-conteggio{
  font:700 11px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--red);
}
.propaganda-fascia-titolo{
  font:700 28px "Archivo Narrow",sans-serif;
  text-transform:uppercase;
  letter-spacing:.5px;
}
.propaganda-fascia-link{
  font:700 13px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  color:var(--red);
  margin-top:4px;
}
.propaganda-fascia:hover .propaganda-fascia-titolo{ color:var(--red); }

.propaganda-griglia{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:16px;
  margin-top:30px;
}
.propaganda-cella{
  position:relative;
  display:block;
  border:2px solid var(--ink);
  overflow:hidden;
  text-decoration:none;
}
.propaganda-cella img{ width:100%; height:220px; object-fit:cover; display:block; }

@media(max-width:700px){
  .propaganda-fascia,.propaganda-fascia-inversa{ flex-direction:column; }
  .propaganda-fascia-img{ width:100%; height:180px; }
}

.link-decreto-citato{
  color:var(--red);
  text-decoration:none;
  border-bottom:1px dashed var(--red);
}
.link-decreto-citato:hover{ color:var(--ink); border-bottom-color:var(--ink); }

/* ================================================================
   BANNER DI CONSENSO ANALYTICS
   ================================================================ */
.cookie-banner{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:999;
  background:var(--ink);
  color:var(--paper);
  padding:16px 5vw;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border-top:3px solid var(--gold);
  font:600 13px "Archivo Narrow",sans-serif;
}
.cookie-banner p{ margin:0; flex:1; min-width:240px; line-height:1.5; }
.cookie-banner-azioni{ display:flex; gap:10px; flex-shrink:0; }
.cookie-banner-azioni button{
  font:700 12px "Archivo Narrow",sans-serif;
  letter-spacing:1px;
  padding:10px 16px;
  border:2px solid var(--gold);
  background:var(--ink);
  color:var(--paper);
  cursor:pointer;
  text-transform:uppercase;
}
#dittatore-cookie-accetta{ background:var(--red); border-color:var(--red); }
#dittatore-cookie-accetta:hover{ background:var(--red2); }
#dittatore-cookie-rifiuta{ background:var(--red); border-color:var(--red); }
#dittatore-cookie-rifiuta:hover{ background:var(--red2); }
@media(max-width:600px){
  .cookie-banner{ flex-direction:column; align-items:flex-start; }
  .cookie-banner-azioni{ width:100%; }
  .cookie-banner-azioni button{ flex:1; }
}

.propaganda-lightbox{
  position:fixed;
  inset:0;
  background:rgba(33,28,23,.94);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:1000;
}
.propaganda-lightbox.aperto{ display:flex; }
.propaganda-lightbox-img{
  max-width:82vw;
  max-height:78vh;
  border:4px solid var(--paper);
  display:block;
}
.propaganda-lightbox-chiudi{
  position:absolute;
  top:22px; left:5vw;
  background:transparent;
  border:2px solid var(--gold);
  color:var(--paper);
  font:700 12px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  text-transform:uppercase;
  padding:10px 16px;
  cursor:pointer;
}
.propaganda-lightbox-chiudi:hover{ background:var(--red); border-color:var(--red); }
.propaganda-lightbox-prec,
.propaganda-lightbox-succ{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:transparent;
  border:2px solid var(--gold);
  color:var(--paper);
  font:700 28px/1 sans-serif;
  width:50px;
  height:50px;
  cursor:pointer;
}
.propaganda-lightbox-prec{ left:5vw; }
.propaganda-lightbox-succ{ right:5vw; }
.propaganda-lightbox-prec:hover,
.propaganda-lightbox-succ:hover{ background:var(--red); border-color:var(--red); }

@media(max-width:700px){
  .propaganda-lightbox-chiudi{ top:12px; left:12px; font-size:10px; padding:8px 10px; }
  .propaganda-lightbox-prec,.propaganda-lightbox-succ{ width:40px; height:40px; font-size:22px; }
  .propaganda-lightbox-prec{ left:8px; }
  .propaganda-lightbox-succ{ right:8px; }
}

/* ================================================================
   SONDAGGI UFFICIALI
   ================================================================ */
.sondaggio{
  border:2px solid var(--ink);
  background:var(--paper2);
  padding:26px 30px;
  margin-bottom:30px;
}
.sondaggio-domanda{
  font:700 22px "Archivo Narrow",sans-serif;
  text-transform:uppercase;
  margin-bottom:18px;
}
.sondaggio-opzioni{ display:flex; flex-wrap:wrap; gap:12px; }
.sondaggio-opzione{
  font:700 13px "Archivo Narrow",sans-serif;
  letter-spacing:1px;
  text-transform:uppercase;
  padding:12px 18px;
  border:2px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  cursor:pointer;
}
.sondaggio-opzione:hover:not(:disabled){ background:var(--red); color:#fff; border-color:var(--red); }
.sondaggio-opzione:disabled{ cursor:default; opacity:.55; }
.sondaggio-opzione.selezionata{ background:var(--ink); color:var(--paper); border-color:var(--ink); opacity:1; }

.sondaggio-risultato{ display:none; margin-top:24px; padding-top:20px; border-top:1px dashed var(--gold); }
.sondaggio-risultato-titolo{
  font:700 12px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  color:var(--red);
  margin-bottom:14px;
}
.sondaggio-barra{ display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.sondaggio-barra-etichetta{ width:190px; flex-shrink:0; font:600 13px "Archivo Narrow",sans-serif; }
.sondaggio-barra-track{ flex:1; background:var(--paper); border:1px solid var(--ink); height:22px; position:relative; }
.sondaggio-barra-fill{
  height:100%;
  width:0;
  background:var(--red);
  color:#fff;
  font:700 11px "Archivo Narrow",sans-serif;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding-right:6px;
  transition:width 1s ease;
  white-space:nowrap;
}
.sondaggio-nota{ margin-top:12px; font-style:italic; font-size:13px; color:var(--muted); }

@media(max-width:600px){
  .sondaggio-barra{ flex-direction:column; align-items:flex-start; gap:4px; }
  .sondaggio-barra-etichetta{ width:auto; }
  .sondaggio-barra-track{ width:100%; }
}

/* ================================================================
   METEO UFFICIALE + PRIMA PAGINA DI OGGI (homepage)
   ================================================================ */
.meteo-giornale{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:20px; }
.meteo-box, .giornale-box{ background:var(--ink); color:#f0dfb9; padding:34px; min-height:330px; }

.meteo-titolo{ font:700 26px "Archivo Narrow",sans-serif; text-transform:uppercase; margin:12px 0 18px; color:#f0dfb9; }
.meteo-mappa{
  position:relative;
  height:170px;
  background:var(--paper2);
  border:2px solid var(--gold);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:18px;
  overflow:hidden;
}
.meteo-mappa img{ width:100%; height:100%; object-fit:contain; }
.meteo-sole{ font-size:56px; color:#e8b923; line-height:1; }
.meteo-legenda{
  list-style:none;
  margin:0 0 14px;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px 20px;
}
.meteo-legenda li{
  display:flex;
  justify-content:space-between;
  font:600 13px "Archivo Narrow",sans-serif;
  border-bottom:1px solid rgba(240,223,185,.25);
  padding-bottom:4px;
}
.meteo-legenda strong{ color:var(--gold); }
.meteo-nota{ font-size:12px; font-style:italic; color:#cbb98a; margin:0; }

@media(max-width:850px){ .meteo-giornale{ grid-template-columns:1fr; } }
@media(max-width:480px){ .meteo-box, .giornale-box{ padding:22px 18px; } }

.condividi{
  display:flex;
  align-items:center;
  gap:12px;
  margin:26px 0;
  padding-top:20px;
  border-top:1px dashed var(--gold);
}
.condividi-etichetta{
  font:700 11px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  color:var(--red);
}
.condividi-link{
  display:flex;
  width:30px;
  height:30px;
  align-items:center;
  justify-content:center;
  background:var(--ink);
  border-radius:50%;
  flex-shrink:0;
}
.condividi-link svg{ width:15px; height:15px; fill:#fff; }
.condividi-link:hover{ background:var(--red); }

.propaganda-collage{
  width:100%;
  height:100%;
  display:grid;
  gap:2px;
  background:var(--ink);
}
.propaganda-collage .collage-cella{ overflow:hidden; }
.propaganda-collage img{ width:100%; height:100%; object-fit:cover; display:block; }

.propaganda-collage.collage-1{ grid-template-columns:1fr; grid-template-rows:1fr; }
.propaganda-collage.collage-2{ grid-template-columns:1fr 1fr; grid-template-rows:1fr; }
.propaganda-collage.collage-3{ grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; }
.propaganda-collage.collage-3 .collage-cella:first-child{ grid-row:1 / 3; }
.propaganda-collage.collage-4{ grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; }

/* ================================================================
   GAZZETTA DEL REGIME — prima pagina in stile testata giornalistica
   Corpo condiviso tra la miniatura in home e la pagina a piena
   grandezza (template-parts/prima-pagina-corpo.php)
   ================================================================ */
.gazzetta-completa{
  width:960px;
  max-width:100%;
  margin:0 auto;
  background:#faf6ea;
  border:1px solid #ddd0ab;
  box-shadow:0 14px 34px rgba(33,28,23,.18);
  padding:26px 34px 40px;
}
.pp-pagina-wrap{ padding:40px 5vw 70px; }

.pp-top-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  font:700 9px "Archivo Narrow",sans-serif;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#807a70;
  padding-bottom:10px;
  border-bottom:1px solid #d8d0c2;
}
.pp-top-bar-centro{ display:flex; align-items:center; gap:8px; color:var(--ink); font-weight:700; }
.pp-top-bar-centro img{ width:18px; height:18px; object-fit:contain; }

.pp-masthead{ text-align:center; padding:14px 0 10px; overflow:hidden; }
.pp-masthead-titolo{
  font:900 clamp(20px,7.6vw,46px) "Libre Baskerville",Georgia,serif;
  letter-spacing:-1px;
  text-transform:uppercase;
  color:var(--red);
  line-height:1;
  white-space:nowrap;
}
.pp-sub-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  font:700 10px "Archivo Narrow",sans-serif;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--ink);
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
  padding:8px 0;
}
.pp-sub-bar-tag{ color:var(--red); font-weight:900; }

.pp-strip{
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1fr;
  gap:16px;
  padding:16px 0;
  border-bottom:1px solid #d8d0c2;
}
.pp-annuncio{
  display:flex;
  flex-direction:column;
  gap:4px;
  border:1px dashed #b7ab92;
  padding:8px 10px;
  font:700 8px "Archivo Narrow",sans-serif;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#807a70;
  text-decoration:none;
  transition:border-color .15s ease, background .15s ease;
}
.pp-annuncio:hover{ border-color:var(--red); background:rgba(255,255,255,.5); }
.pp-annuncio strong{ font-family:"Libre Baskerville",Georgia,serif; font-size:11px; text-transform:none; letter-spacing:0; color:var(--ink); line-height:1.3; }
.pp-strip-voce{ display:block; text-decoration:none; color:var(--ink); }
.pp-strip-voce h4{ font:700 13px "Archivo Narrow",sans-serif; line-height:1.25; margin:3px 0 0; }
.pp-strip-voce:hover h4{ color:var(--red); }

.pp-corpo{ display:grid; grid-template-columns:1fr 1.9fr 1fr; gap:28px; padding-top:22px; align-items:start; }

/* Colonna sinistra */
.pp-colonna-sinistra{ display:flex; flex-direction:column; gap:16px; }
.pp-breve{ display:block; text-decoration:none; color:var(--ink); padding-bottom:14px; border-bottom:1px solid #d8d0c2; }
.pp-breve:last-child{ border-bottom:none; }
.pp-breve-img{ display:block; margin-bottom:8px; }
.pp-breve-img img{ width:100%; height:90px; object-fit:cover; display:block; border:1px solid var(--ink); }
.pp-breve h4{ font:700 14px/1.3 "Libre Baskerville",Georgia,serif; margin:3px 0 5px; }
.pp-breve p{ font-size:11.5px; line-height:1.5; color:#5c554e; margin:0; }
.pp-breve:hover h4{ color:var(--red); }

/* Colonna centrale */
.pp-colonna-centrale{ border-left:1px solid #d8d0c2; border-right:1px solid #d8d0c2; padding:0 26px; }
.pp-apertura{ display:block; text-decoration:none; color:var(--ink); }
.pp-apertura-titolo{ font:900 clamp(24px,3vw,34px)/1.08 "Archivo Narrow",sans-serif; text-transform:uppercase; margin:0 0 14px; }
.pp-apertura:hover .pp-apertura-titolo{ color:var(--red); }
.pp-foto-grande{ margin-bottom:14px; }
.pp-foto-grande img{ width:100%; height:auto; display:block; border:1px solid var(--ink); }
.pp-apertura-sommario{ font-size:13.5px; line-height:1.6; color:#3d372f; padding-bottom:18px; border-bottom:1px solid var(--ink); margin-bottom:20px; }
.pp-servizio{ display:block; margin-top:8px; font:700 10px "Archivo Narrow",sans-serif; letter-spacing:.5px; color:#807a70; text-transform:none; }

.pp-secondaria-link{ display:flex; gap:14px; text-decoration:none; color:var(--ink); align-items:flex-start; }
.pp-secondaria-img{ flex-shrink:0; width:110px; display:block; }
.pp-secondaria-img img{ width:100%; height:90px; object-fit:cover; display:block; border:1px solid var(--ink); }
.pp-secondaria-corpo h3{ font:900 18px/1.25 "Libre Baskerville",Georgia,serif; margin:0 0 6px; }
.pp-secondaria-link:hover h3{ color:var(--red); }
.pp-secondaria-testo{ font-size:12.5px; line-height:1.6; color:#3d372f; margin:0; }

.pp-laterale{ background:var(--paper2); border:2px solid var(--ink); padding:20px; align-self:start; }
.pp-laterale-titolo{
  font:700 12px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  color:#fff;
  background:var(--red);
  text-transform:uppercase;
  padding:6px 10px;
  margin:-20px -20px 16px;
}
.pp-laterale-voce{ display:flex; gap:10px; text-decoration:none; color:var(--ink); padding:12px 0; border-bottom:1px solid #cbb98a; align-items:flex-start; }
.pp-laterale-voce:last-child{ border-bottom:none; padding-bottom:0; }
.pp-laterale-voce:first-of-type{ padding-top:0; }
.pp-laterale-img{ flex-shrink:0; width:52px; height:52px; overflow:hidden; display:block; }
.pp-laterale-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.pp-laterale-voce h4{ font:700 14.5px "Archivo Narrow",sans-serif; line-height:1.3; margin:4px 0 4px; }
.pp-laterale-voce:hover h4{ color:var(--red); }
.pp-servizio-in{ display:block; font:600 10px "Archivo Narrow",sans-serif; letter-spacing:.5px; color:#807a70; text-transform:none; }

.pp-fondo{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin-top:26px;
  padding-top:18px;
  border-top:3px double var(--ink);
}
.pp-fondo-voce{ display:flex; gap:10px; align-items:center; text-decoration:none; color:var(--ink); padding:0 14px; border-left:1px solid #d8d0c2; }
.pp-fondo-voce:first-child{ border-left:none; padding-left:0; }
.pp-fondo-img{ flex-shrink:0; width:50px; height:50px; overflow:hidden; display:block; }
.pp-fondo-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.pp-fondo-testo h4{ font:700 12.5px "Archivo Narrow",sans-serif; line-height:1.3; margin:0; }
.pp-fondo-voce:hover h4{ color:var(--red); }

.pp-kicker-piccolo{
  display:block;
  font:700 9px "Archivo Narrow",sans-serif;
  letter-spacing:1px;
  color:var(--red);
  text-transform:uppercase;
  margin-bottom:2px;
}

/* ---- Anteprima in home: miniatura della Gazzetta (v6.7) ----
   Non è un clone leggibile della pagina intera: masthead in scala,
   colonne di testo rese come barrette, per dare l'effetto "prima
   pagina in miniatura" senza dover replicare tutta l'impaginazione.
   Gli annunci sono link indipendenti, il resto rimanda a /prima-pagina/. */
.pp-mini{
  background:#faf8f2;
  border:1px solid var(--gold);
  padding:14px 16px 16px;
  color:var(--ink);
}
.pp-mini-link{ display:block; text-decoration:none; color:inherit; }

.pp-mini-topbar{
  display:flex;
  justify-content:space-between;
  gap:10px;
  font:700 9px "Archivo Narrow",sans-serif;
  letter-spacing:.5px;
  text-transform:uppercase;
  color:#807a70;
  border-bottom:1px solid var(--ink);
  padding-bottom:6px;
  margin-bottom:6px;
}
.pp-mini-masthead{
  font:900 clamp(22px,5vw,30px) "Libre Baskerville",Georgia,serif;
  letter-spacing:-.5px;
  text-transform:uppercase;
  text-align:center;
  color:var(--red);
  line-height:1.05;
  margin-bottom:6px;
}
.pp-mini-subbar{
  display:flex;
  justify-content:space-between;
  gap:10px;
  font:700 8.5px "Archivo Narrow",sans-serif;
  letter-spacing:.5px;
  text-transform:uppercase;
  color:var(--ink);
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  padding:4px 0;
  margin-bottom:10px;
}

.pp-mini-ads{ display:flex; gap:8px; margin-bottom:10px; }
.pp-mini-ad{
  flex:1;
  display:block;
  border:1px dashed #b7ab92;
  padding:6px 8px;
  text-decoration:none;
  color:inherit;
  transition:border-color .15s ease, background .15s ease;
}
.pp-mini-ad:hover{ border-color:var(--red); background:#fff; }
.pp-mini-ad-kicker{
  display:block;
  font:700 8px "Archivo Narrow",sans-serif;
  letter-spacing:.5px;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:2px;
}
.pp-mini-ad-testo{ display:block; font:700 11px/1.25 "Libre Baskerville",Georgia,serif; color:var(--ink); }

.pp-mini-headline{ font:700 15px/1.25 "Libre Baskerville",Georgia,serif; margin:0 0 8px; color:var(--ink); }
.pp-mini-link:hover .pp-mini-headline{ color:var(--red); }

.pp-mini-colonne{ display:flex; gap:8px; margin-bottom:10px; }
.pp-mini-barre{ flex:1; display:flex; flex-direction:column; gap:3px; justify-content:center; }
.pp-mini-barre span{ display:block; height:3px; width:100%; background:#d8d2c2; }
.pp-mini-foto{
  width:28%;
  border-radius:1px;
  background:repeating-linear-gradient(45deg,#e3ded0 0 4px,#ece8dc 4px 8px);
}

.pp-mini-laterale-titolo{
  display:inline-block;
  background:var(--red);
  color:#faf8f2;
  font:700 9px "Archivo Narrow",sans-serif;
  letter-spacing:1px;
  text-transform:uppercase;
  padding:3px 8px;
  margin-bottom:6px;
}

.gazzetta-mini-tutta{
  display:block;
  text-align:center;
  margin-top:14px;
  padding-top:14px;
  border-top:1px dashed #cbb98a;
  font:700 11px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--gold);
  text-decoration:none;
}
.gazzetta-mini-tutta:hover{ color:#fff; }

@media(max-width:900px){
  .pp-pagina-wrap{ padding:20px 5vw 40px; }
  .pp-top-bar{ flex-wrap:wrap; justify-content:center; text-align:center; gap:6px 16px; }
  .pp-corpo{ grid-template-columns:1fr; gap:16px; }
  /* Sul mobile la notizia principale viene prima, poi il riquadro
     "Dal Regime", infine le brevi: l'ordine del markup resta invariato
     per il desktop, qui si interviene solo sull'ordine visivo. */
  .pp-colonna-centrale{ border-left:none; border-right:none; padding:0; order:1; }
  .pp-laterale{ order:2; padding:14px; }
  .pp-colonna-sinistra{
    order:3;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4px 14px;
  }
  .pp-apertura-sommario{ padding-bottom:12px; margin-bottom:14px; font-size:13px; line-height:1.5; }
  .pp-breve{ padding-bottom:10px; }
  .pp-breve-img img{ height:70px; }
  .pp-breve h4{ font-size:12.5px; margin:2px 0 3px; }
  .pp-breve p{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .pp-laterale-voce{ padding:8px 0; }
  .pp-secondaria-link{ flex-direction:column; }
  .pp-secondaria-img{ width:100%; }
  .pp-secondaria-img img{ height:120px; }
  .pp-fondo{ grid-template-columns:1fr 1fr; }
  .pp-fondo-voce{ border-left:none; padding-left:0; border-top:1px solid #d8d0c2; padding-top:12px; }
  .pp-strip{ grid-template-columns:1fr 1fr; }
}

@media(max-width:480px){
  .pp-strip{ grid-template-columns:1fr; }
  .pp-fondo{ grid-template-columns:1fr; }
  .pp-fondo-voce{ border-top:1px solid #d8d0c2; padding:12px 0 0; }
  .pp-fondo-voce:first-child{ border-top:none; padding-top:0; }
  .pp-apertura-titolo{ letter-spacing:-.5px; }
  .pp-top-bar span{ max-width:100%; }
  .pp-breve-img img{ height:56px; }
  .pp-breve h4{ font-size:11.5px; }
}

.decreto-immagine{margin:18px 0;border:2px solid var(--ink)}
.decreto-immagine img{display:block;width:100%;height:auto}

.single-torna{display:block;margin:30px 5vw 60px;color:var(--red);font:700 13px "Archivo Narrow",sans-serif;letter-spacing:1.5px;text-decoration:none}
.single-torna:hover{color:var(--ink)}

.comunicato-article{max-width:800px;margin:45px auto 10px;padding:0 5vw}
.comunicato-article h2{font:700 clamp(32px,4.5vw,48px)/1.15 "Archivo Narrow",sans-serif;margin:16px 0 20px;color:var(--ink)}
.comunicato-corpo{font-size:17px}
.comunicato-torna{max-width:800px;margin-left:auto;margin-right:auto;padding-left:5vw;padding-right:5vw}

/* ================================================================
   Decreto — stile "Gazzetta Ufficiale": foglio stampato su sfondo carta
   ================================================================ */
.gazzetta-wrap{padding:45px 5vw 30px;display:flex;justify-content:center}
.gazzetta-foglio{
  background:#faf6ea;
  max-width:760px;
  width:100%;
  padding:50px 55px;
  box-shadow:0 14px 34px rgba(33,28,23,.22);
  border:1px solid #ddd0ab;
  position:relative;
}
.gazzetta-serie{
  text-align:center;
  font:italic 600 12px "Libre Baskerville",serif;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:12px;
}
.gazzetta-masthead{
  text-align:center;
  border-top:3px double var(--ink);
  border-bottom:3px double var(--ink);
  padding:22px 0 20px;
  margin-bottom:20px;
}
.gazzetta-seal{
  width:74px;height:74px;
  margin:0 auto 12px;
  display:block;
  object-fit:contain;
  mix-blend-mode:multiply;
}
.gazzetta-titolo{
  font:900 32px/1.1 "Libre Baskerville",serif;
  letter-spacing:.5px;
  text-transform:uppercase;
  color:var(--ink);
  margin:0;
}
.gazzetta-sottotitolo{
  font:600 12px "Archivo Narrow",sans-serif;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--red);
  margin-top:9px;
}
.gazzetta-riga{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:6px 20px;
  font:italic 12px "Libre Baskerville",serif;
  color:var(--muted);
  border-bottom:1px solid #ddd0ab;
  padding-bottom:16px;
  margin-bottom:30px;
  text-transform:uppercase;
  letter-spacing:.5px;
}
.gazzetta-numero{
  text-align:center;
  font:700 14px "Archivo Narrow",sans-serif;
  letter-spacing:2.5px;
  color:var(--red);
  margin-bottom:8px;
}
.gazzetta-titolo-decreto{
  text-align:center;
  font:700 25px/1.35 "Libre Baskerville",serif;
  color:var(--ink);
  margin:0 0 32px;
}
.gazzetta-corpo{
  font-family:"Libre Baskerville",serif;
  font-size:16px;
  line-height:1.9;
  color:var(--ink);
}
.gazzetta-corpo p{margin-bottom:16px;text-align:justify}
.gazzetta-corpo p:last-child{margin-bottom:0}

@media(max-width:700px){
  .gazzetta-foglio{padding:32px 22px}
  .gazzetta-titolo{font-size:24px}
  .gazzetta-titolo-decreto{font-size:21px}
}

/* ================================================================
   Distretti di Nuova Roma — breadcrumb e navigazione prev/next
   ================================================================ */
.distretto-breadcrumb{
  font:600 12px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  color:var(--muted);
  margin-bottom:16px;
}
.distretto-breadcrumb a{
  color:var(--red);
  text-decoration:none;
}
.distretto-breadcrumb a:hover{
  text-decoration:underline;
}
.distretto-breadcrumb .breadcrumb-sep{
  margin:0 8px;
  color:var(--gold);
}
.distretto-breadcrumb .breadcrumb-current{
  color:var(--ink);
}

.distretto-prev-next{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:40px;
  padding-top:24px;
  border-top:3px double var(--ink);
  max-width:750px;
}
.distretto-prev-next a{
  display:flex;
  flex-direction:column;
  text-decoration:none;
  padding:14px 16px;
  border:2px solid var(--ink);
  background:rgba(255,255,255,.16);
  color:var(--ink);
  transition:border-color .15s ease, background .15s ease;
}
.distretto-prev-next a:hover{
  border-color:var(--red);
  background:rgba(255,255,255,.32);
}
.distretto-next{
  text-align:right;
  align-items:flex-end;
}
.distretto-nav-label{
  font:700 11px "Archivo Narrow",sans-serif;
  letter-spacing:1.5px;
  color:var(--red);
  text-transform:uppercase;
  margin-bottom:6px;
}
.distretto-nav-title{
  font:700 16px/1.25 "Libre Baskerville",serif;
  color:var(--ink);
}

@media(max-width:600px){
  .distretto-prev-next{grid-template-columns:1fr}
  .distretto-next{text-align:left;align-items:flex-start}
}

.decree-thumb{
  margin:-25px -25px 18px;
  border-bottom:2px solid var(--ink);
  overflow:hidden;
}
.decree-thumb img{
  display:block;
  width:100%;
  height:170px;
  object-fit:cover;
  filter:sepia(.12) contrast(1.05);
}

/* ---------------------------------------------------------------
   22. Ritratto Ufficiale — medaglione dei ministri (v6.4)
--------------------------------------------------------------- */
.ritratto-ufficiale{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  max-width:420px;
  margin:36px auto;
  padding:28px 30px 24px;
  background:var(--paper2);
  border:1px solid rgba(33,28,23,.15);
  border-radius:3px;
  box-shadow:0 2px 0 rgba(33,28,23,.08);
  text-align:center;
}
.ritratto-ufficiale-medaglione{
  width:180px;
  height:180px;
  flex-shrink:0;
  border-radius:50%;
  padding:5px;
  background:
    radial-gradient(circle, var(--paper2) 62%, transparent 63%),
    conic-gradient(from 0deg, var(--gold), var(--red) 15%, var(--gold) 30%, var(--red) 45%, var(--gold) 60%, var(--red) 75%, var(--gold) 90%, var(--red) 100%);
  box-shadow:0 0 0 3px var(--ink), 0 4px 10px rgba(0,0,0,.25);
}
.ritratto-ufficiale-medaglione img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
  filter:sepia(.1) contrast(1.05);
}
.ritratto-ufficiale-nome{
  font-family:'Playfair Display', serif;
  font-weight:900;
  font-size:clamp(19px,2.6vw,24px);
  letter-spacing:.02em;
  color:var(--ink);
}
.ritratto-ufficiale-carica{
  font-family:'Archivo Narrow', sans-serif;
  font-weight:600;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--red);
  margin-top:4px;
}
.ritratto-ufficiale-citazione{
  font-family:'Libre Baskerville', serif;
  font-style:italic;
  font-size:15px;
  line-height:1.55;
  color:var(--muted);
  margin:14px 0 0;
  padding:0;
  border:none;
}

@media(max-width:480px){
  .ritratto-ufficiale{padding:22px 18px 20px}
  .ritratto-ufficiale-medaglione{width:150px;height:150px}
}

/* ---------------------------------------------------------------
   23. Ritratto Ufficiale — varianti allineate (v6.5)
   Il riquadro diventa più piccolo e "galleggia" a sinistra o a
   destra, con il testo della pagina che gli scorre a fianco.
--------------------------------------------------------------- */
.corpo-pagina::after{
  content:"";
  display:block;
  clear:both;
}
.ritratto-ufficiale--sinistra,
.ritratto-ufficiale--destra{
  max-width:230px;
  margin-top:4px;
  margin-bottom:20px;
  padding:20px 18px 18px;
}
.ritratto-ufficiale--sinistra{
  float:left;
  margin-right:26px;
}
.ritratto-ufficiale--destra{
  float:right;
  margin-left:26px;
}
.ritratto-ufficiale--sinistra .ritratto-ufficiale-medaglione,
.ritratto-ufficiale--destra .ritratto-ufficiale-medaglione{
  width:130px;
  height:130px;
}
.ritratto-ufficiale--sinistra .ritratto-ufficiale-nome,
.ritratto-ufficiale--destra .ritratto-ufficiale-nome{
  font-size:16px;
}
.ritratto-ufficiale--sinistra .ritratto-ufficiale-carica,
.ritratto-ufficiale--destra .ritratto-ufficiale-carica{
  font-size:11.5px;
}
.ritratto-ufficiale--sinistra .ritratto-ufficiale-citazione,
.ritratto-ufficiale--destra .ritratto-ufficiale-citazione{
  font-size:13px;
}

@media(max-width:640px){
  .ritratto-ufficiale--sinistra,
  .ritratto-ufficiale--destra{
    float:none;
    margin-left:auto;
    margin-right:auto;
    max-width:320px;
  }
  .ritratto-ufficiale--sinistra .ritratto-ufficiale-medaglione,
  .ritratto-ufficiale--destra .ritratto-ufficiale-medaglione{
    width:160px;
    height:160px;
  }
}

/* ============================================================
   ANNUNCI DEL POPOLO — elenco con avatar circolare
   ============================================================ */
.annunci-popolo-elenco{
  width:100%;
  padding:40px 0;
  display:flex;
  flex-direction:column;
  gap:26px;
}
.annuncio-popolo-item{
  display:flex;
  gap:20px;
  align-items:flex-start;
  border-bottom:1px solid rgba(33,28,23,0.12);
  padding-bottom:26px;
  color:inherit;
  text-decoration:none;
  transition:opacity .15s ease;
}
a.annuncio-popolo-item:hover{ opacity:0.75; }
.annuncio-popolo-item:last-child{ border-bottom:none; }
.annuncio-popolo-avatar{
  flex-shrink:0;
  width:72px;
  height:72px;
  border-radius:50%;
  overflow:hidden;
  border:2px solid var(--gold);
  background:var(--paper);
  display:flex;
  align-items:center;
  justify-content:center;
}
.annuncio-popolo-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.annuncio-popolo-avatar-vuoto{
  color:var(--gold);
  font-size:22px;
}
.annuncio-popolo-corpo h3{
  font-family:'Playfair Display',serif;
  font-size:19px;
  margin-bottom:6px;
  color:var(--ink);
}
.annuncio-popolo-testo{
  font-size:14.5px;
  line-height:1.65;
  color:var(--ink);
}

/* ============================================================
   ANNUNCI COMMERCIALI DI STATO — elenco con immagine cliccabile
   ============================================================ */
.annunci-commerciali-elenco{
  width:100%;
  padding:40px 0;
  display:flex;
  flex-direction:column;
  gap:26px;
}
.annuncio-commerciale-item{
  display:flex;
  gap:20px;
  align-items:flex-start;
  border-bottom:1px solid rgba(33,28,23,0.12);
  padding-bottom:26px;
}
.annuncio-commerciale-item:last-child{ border-bottom:none; }
.annuncio-commerciale-img{
  flex-shrink:0;
  width:88px;
  height:88px;
  border:2px solid var(--red);
  background:var(--paper);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  transition:opacity .15s ease;
}
.annuncio-commerciale-img:hover{ opacity:0.8; }
.annuncio-commerciale-img img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.annuncio-commerciale-img-vuota{
  color:var(--red);
  font-size:26px;
}
.annuncio-commerciale-corpo h3{
  font-family:'Playfair Display',serif;
  font-size:19px;
  margin-bottom:6px;
}
.annuncio-commerciale-corpo h3 a{
  color:var(--ink);
  text-decoration:none;
}
.annuncio-commerciale-corpo h3 a:hover{ color:var(--red); }
.annuncio-commerciale-testo{
  font-size:14.5px;
  line-height:1.65;
  color:var(--ink);
}

@media(max-width:640px){
  .annuncio-popolo-item,
  .annuncio-commerciale-item{
    gap:14px;
  }
  .annuncio-popolo-avatar{ width:56px; height:56px; }
  .annuncio-commerciale-img{ width:64px; height:64px; }
}

/* ============================================================
   SINGOLO ANNUNCIO COMMERCIALE — immagine a fianco, testo a destra
   ============================================================ */
.annuncio-commerciale-single{
  display:flex;
  gap:28px;
  align-items:flex-start;
  margin:18px 0 10px;
}
.annuncio-commerciale-single-img{
  flex-shrink:0;
  width:160px;
}
.annuncio-commerciale-single-img img{
  width:100%;
  height:auto;
  display:block;
  border:2px solid var(--red);
}
.annuncio-commerciale-single-corpo{
  flex:1;
  text-align:right;
}
.annuncio-commerciale-single-corpo h2{
  font-size:clamp(26px,4vw,40px);
  margin-bottom:12px;
}
.annuncio-commerciale-single-testo{
  line-height:1.8;
}

@media(max-width:600px){
  .annuncio-commerciale-single{ flex-direction:column; align-items:center; }
  .annuncio-commerciale-single-corpo{ text-align:right; width:100%; }
}

/* ============================================================
   POSTA DEL REGIME — riga con avatar circolare + nome mittente
   Da applicare manualmente nell'editor a blocchi:
   - Blocco "Gruppo" (impostato a riga/orizzontale) intorno a
     immagine + titolo del mittente → classe aggiuntiva "mittente-riga"
   - Blocco "Immagine" del cittadino → classe aggiuntiva "mittente-avatar"
   ============================================================ */
.mittente-riga{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:4px;
}
.mittente-riga > * { margin:0; }
.mittente-avatar{
  flex-shrink:0;
  width:52px;
  height:52px;
}
.mittente-avatar img{
  width:52px;
  height:52px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid var(--gold);
  display:block;
}

/* ============================================================
   MAPPA CLICCABILE DI NUOVA ROMA
   ============================================================ */
.mappa-nuova-roma-wrap{
  position:relative;
  width:100%;
  line-height:0;
  margin-bottom:36px;
  border:3px solid var(--ink);
}
.mappa-nuova-roma-img{
  width:100%;
  height:auto;
  display:block;
}
.mappa-nuova-roma-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.mappa-zona rect,
.mappa-zona ellipse,
.mappa-zona polygon{
  fill:rgba(180,138,59,0);
  stroke:none;
  transition:fill .18s ease;
  cursor:pointer;
}
.mappa-zona:hover rect,
.mappa-zona:hover ellipse,
.mappa-zona:hover polygon{
  fill:rgba(180,138,59,0.32);
}
/* La zona "Quartiere Popolare" copre l'intera mappa: le evidenziamo
   solo se il passaggio del mouse non riguarda una zona più specifica
   sopra di essa (gestito naturalmente dall'ordine degli elementi SVG). */

/* ============================================================
   COSTITUZIONE — indice e navigazione tra le pagine
   ============================================================ */
.costituzione-indice{
  max-width:600px;
  margin:0 auto 30px;
  padding:20px 26px;
  background:rgba(180,138,59,0.08);
  border:1px solid var(--gold);
}
.costituzione-indice-titolo{
  font:700 12px 'Archivo Narrow',sans-serif;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:10px;
  text-align:center;
}
.costituzione-indice ol{
  list-style:none;
  margin:0;
  padding:0;
  counter-reset:sezione;
}
.costituzione-indice > ol > li{
  counter-increment:sezione;
  margin-bottom:10px;
}
.costituzione-indice > ol > li > a{
  font-weight:700;
  color:var(--ink);
  text-decoration:none;
}
.costituzione-indice > ol > li > a:hover{ color:var(--red); }
.costituzione-indice-sotto{
  margin:6px 0 0 18px !important;
}
.costituzione-indice-sotto li{
  margin-bottom:4px;
  font-size:14px;
}
.costituzione-indice-sotto a{
  color:var(--ink);
  opacity:.8;
  text-decoration:none;
}
.costituzione-indice-sotto a:hover{ opacity:1; color:var(--red); }

.costituzione-pagine-lista{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  width:100%;
}
.costituzione-pagine .decreto-nav-link{
  border:1px solid var(--gold);
  padding:6px 13px;
  font-size:12px;
}
.costituzione-pagine span.decreto-nav-link:not(:has(a)){
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
}
