/* ==========================================================================
   modern.css — overlay di modernizzazione su styles.css
   Carica DOPO styles.css. Aggiunge: nav search bar, hero polished,
   home cards refined, archivio elegante, animazioni discrete.
   ========================================================================== */

:root{
  --shadow-sm:0 2px 8px rgba(20,18,15,.05);
  --shadow-md:0 8px 24px rgba(20,18,15,.08);
  --shadow-lg:0 24px 64px rgba(20,18,15,.10);
  --ring:rgba(201,31,91,.18);
  --ink-2:#2a2622;
  --bg-soft:#faf6ed;
}

/* Smooth, refined background gradient */
body{
  background:
    radial-gradient(1100px 600px at 80% -10%, #fff5d8 0%, transparent 60%),
    radial-gradient(900px 500px at 0% 30%, #fdf0f5 0%, transparent 55%),
    linear-gradient(180deg,#f8f5ec 0%, #efeae0 100%);
  background-attachment: fixed;
}

/* ─── Header / Navbar moderna ───────────────────────────────────────── */
.site-header{
  background:rgba(250,247,238,.86);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid rgba(0,0,0,.06);
}
.nav-wrap{ gap:14px; min-height:72px; }
.brand-mini img{ width:96px; transition:transform .25s ease; }
.brand-mini:hover img{ transform:scale(1.04); }

.main-nav a,.nav-dropdown summary{
  font-weight:700; font-size:.78rem; letter-spacing:.12em;
  color:#2c2823;
  background:transparent;
  border-radius:999px;
  padding:9px 14px;
  transition:background .18s ease, color .18s ease, box-shadow .18s ease;
}
.main-nav a:hover,.nav-dropdown summary:hover{
  background:#fff; box-shadow:inset 0 0 0 1px rgba(0,0,0,.06), var(--shadow-sm);
}
.main-nav a.active{
  background:#1b1a18; color:#fff; box-shadow:none;
}
.main-nav a.active:hover{ background:#000; color:#fff; }

/* ─── Pulsante Cerca nella navbar ─────────────────────────────────── */
.nav-search-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 14px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
  cursor:pointer;
  font-size:.78rem; letter-spacing:.10em; text-transform:uppercase;
  color:#36312d; font-weight:700;
  transition:box-shadow .2s ease, transform .15s ease;
}
.nav-search-btn:hover{ box-shadow:var(--shadow-md); transform:translateY(-1px); }
.nav-search-btn svg{ width:16px; height:16px; }
.nav-search-btn .nav-search-shortcut{
  display:inline-block; padding:2px 6px; border:1px solid rgba(0,0,0,.12);
  border-radius:6px; font-size:.66rem; letter-spacing:.05em;
  color:#807a73; background:#f4f0e6; font-family:ui-monospace,monospace;
  margin-left:6px;
}
@media(max-width:760px){
  .nav-search-btn{ font-size:.72rem; padding:9px 12px; }
  .nav-search-btn .nav-search-shortcut{ display:none; }
  .nav-search-btn .nav-search-label{ display:none; }
}

/* ─── Search overlay (modal) ─────────────────────────────────────── */
.search-overlay{
  position:fixed; inset:0; z-index:200; display:none;
}
.search-overlay.is-open{ display:block; }
.search-overlay-backdrop{
  position:absolute; inset:0;
  background:rgba(15,15,15,.55);
  backdrop-filter:blur(6px);
  animation:fadeIn .15s ease;
}
.search-dialog{
  position:relative;
  width:min(calc(100% - 24px), 720px);
  margin:8vh auto 0;
  background:#fff;
  border-radius:22px;
  box-shadow:var(--shadow-lg);
  overflow:hidden;
  animation:slideUp .22s cubic-bezier(.2,.7,.3,1);
}
.search-bar{
  display:flex; align-items:center; gap:12px;
  padding:18px 20px;
  border-bottom:1px solid rgba(0,0,0,.06);
}
.search-bar svg{ flex:0 0 auto; width:22px; height:22px; color:#888; }
.search-input{
  flex:1; min-width:0;
  border:0; outline:0; background:transparent;
  font-size:1.1rem; color:#1b1713;
  font-family:inherit;
}
.search-input::placeholder{ color:#a39e96; }
.search-close{
  flex:0 0 auto; width:34px; height:34px;
  border-radius:50%; border:0; cursor:pointer;
  background:#f3efe6; color:#444;
  font-size:1.1rem;
  display:flex; align-items:center; justify-content:center;
}
.search-close:hover{ background:#e7e1d4; }
.search-results{
  max-height:60vh; overflow-y:auto;
  padding:10px 8px;
}
.search-empty{
  padding:32px 22px; text-align:center;
  color:#7a7269; font-size:.95rem; line-height:1.6;
}
.search-empty strong{ color:#1b1713; display:block; margin-bottom:6px; font-size:1.04rem; }
.search-result{
  display:block; text-decoration:none; color:inherit;
  padding:14px 16px;
  border-radius:14px;
  transition:background .12s ease;
  border:1px solid transparent;
}
.search-result:hover,.search-result.is-active{
  background:#f8f4ec;
  border-color:rgba(0,0,0,.05);
}
.search-result-issue{
  display:inline-block; font-size:.66rem; letter-spacing:.16em;
  text-transform:uppercase; font-weight:700;
  color:var(--accent); margin-bottom:6px;
}
.search-result-title{
  margin:0 0 6px; font-size:1.05rem; font-weight:700;
  font-family:Georgia,'Times New Roman',serif;
  color:#1b1713; line-height:1.25;
}
.search-result-snippet{
  margin:0; font-size:.9rem; line-height:1.55;
  color:#5b544c;
}
.search-result-snippet mark{
  background:#fff2c9; color:inherit; padding:1px 2px; border-radius:3px;
  font-weight:700;
}
.search-hint{
  padding:10px 18px;
  font-size:.74rem; color:#9a938a;
  border-top:1px solid rgba(0,0,0,.05);
  display:flex; gap:18px; flex-wrap:wrap; align-items:center;
}
.search-hint kbd{
  display:inline-block; padding:2px 6px; border:1px solid rgba(0,0,0,.12);
  border-radius:5px; font-size:.66rem; background:#f4f0e6;
  font-family:ui-monospace,monospace; color:#5a534c;
}
@keyframes fadeIn{ from{opacity:0} to{opacity:1} }
@keyframes slideUp{
  from{ transform:translateY(14px); opacity:0; }
  to{ transform:translateY(0); opacity:1; }
}

/* ─── Hero polished ──────────────────────────────────────────────── */
.hero-panel{
  border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow-md);
  background:linear-gradient(180deg, #fff 0%, #fffaf0 100%);
}
.logo-full{ background:transparent; }

/* ─── Cards: soft hover lift ─────────────────────────────────────── */
.article-card,.podcast-card,.note-panel,.scheda-card{
  border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow-sm);
  transition:box-shadow .25s ease, transform .25s ease;
}
.article-card:hover,.podcast-card:hover,.note-panel:hover,.scheda-card:hover{
  box-shadow:var(--shadow-md);
}

/* ─── TOC (indice) refresh ───────────────────────────────────────── */
.toc-panel{
  background:linear-gradient(180deg, #fff 0%, #fdf9f0 100%);
  border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow-sm);
}
.toc-link{
  border:1px solid rgba(0,0,0,.06);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.toc-link:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
  border-color:rgba(201,31,91,.20);
}

/* ─── Home redesign ──────────────────────────────────────────────── */
.home-shell{ padding-top:48px; }
.home-card.construction{
  background:linear-gradient(180deg, #fff 0%, #fff8eb 100%);
  border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow-md);
}
.issue-link{
  background:#fff;
  text-decoration:none;
  border:1px solid rgba(0,0,0,.06);
  border-radius:18px;
  padding:20px 22px;
  display:block;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position:relative;
}
details.issue-link{ padding:0; overflow:hidden; }
details.issue-link summary{ padding:20px 22px; cursor:pointer; list-style:none; }
details.issue-link summary::-webkit-details-marker{ display:none; }
details.issue-link[open] summary{ padding-bottom:14px; }
details.issue-link .archive-dropdown-menu{ padding:0 22px 18px; }
.issue-link:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
  border-color:rgba(201,31,91,.22);
}
.issue-link.number-current{
  background:linear-gradient(180deg,#fff 0%, #fff5f9 100%);
  border-color:rgba(201,31,91,.25);
}
.issue-link.number-current::after{
  content:"NUOVO";
  position:absolute; top:14px; right:14px;
  font-size:.62rem; letter-spacing:.16em; font-weight:800;
  background:var(--accent); color:#fff;
  padding:4px 9px; border-radius:999px;
}
.issue-link strong{ font-size:1.06rem; }

/* ─── Archivio: cards moderne ────────────────────────────────────── */
.archive-card{
  border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow-sm);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  position:relative;
  overflow:hidden;
}
.archive-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color:rgba(201,31,91,.20);
}
.archive-card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg, var(--accent) 0%, #7a1a3a 100%);
  opacity:0; transition:opacity .25s ease;
}
.archive-card:hover::before{ opacity:1; }
.archive-card .section-label{ color:var(--accent); }

/* ─── Footer: meno freddo ───────────────────────────────────────── */
.footer{ padding-top:18px; }
.footer-inner{
  border-top:1px solid rgba(0,0,0,.07);
}

/* ─── Buttons polish ─────────────────────────────────────────────── */
.small-button{ box-shadow:var(--shadow-sm); transition:transform .15s ease, box-shadow .2s ease; }
.small-button:hover{ transform:translateY(-1px); box-shadow:var(--shadow-md); }
.back-index{ transition:background .15s ease, color .15s ease, transform .15s ease; }
.back-index:hover{ background:#1b1a18; color:#fff; border-color:#1b1a18; transform:translateY(-1px); }

/* ─── Mobile refinements ─────────────────────────────────────────── */
@media (max-width:760px){
  .nav-wrap{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:8px !important;
    padding:8px 0 !important;
    min-height:0 !important;
  }
  .brand-mini{ order:1; flex:0 0 auto; }
  .brand-mini img{ max-width:140px !important; width:140px !important; }
  .main-nav{
    order:3 !important;
    width:100% !important;
    margin-top:0 !important;
    padding:2px 0 4px !important;
    overflow-x:auto !important;
    scrollbar-width:none;
  }
  .main-nav::-webkit-scrollbar{ display:none; }
  .main-nav a,.nav-dropdown summary{
    flex:0 0 auto;
    white-space:nowrap;
    font-size:.68rem !important;
    padding:8px 10px !important;
    letter-spacing:.08em !important;
  }
  /* Search button: pull out of nav row visually, position top-right */
  .nav-search-btn{
    order:2 !important;
    margin-left:auto !important;
    flex:0 0 auto;
    width:42px; height:42px;
    padding:0 !important;
    border-radius:50%;
    justify-content:center;
    /* take it out of normal flow inside .main-nav so it sits in top row */
    position:absolute;
    top:14px; right:11px;
    z-index:5;
  }
  .nav-search-btn .nav-search-label,
  .nav-search-btn .nav-search-shortcut{ display:none !important; }
  /* Make site-header relative so absolute search btn references it */
  .site-header .container{ position:relative; }
  .search-dialog{ margin-top:5vh; border-radius:18px; }
  .search-bar{ padding:14px 16px; }
  .search-input{ font-size:1rem; }
  .home-shell{ padding-top:24px; }
  .issue-link.number-current::after{ top:10px; right:10px; font-size:.58rem; padding:3px 8px; }
}


/* ─── Indice colorato per tutte le pagine ───────────────────────────── */
.toc-grid .toc-link {
  border-left: 4px solid transparent;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.toc-grid .toc-link:hover { transform: translateY(-1px); }
.toc-grid .toc-link .toc-kicker {
  display: inline-block;
  margin-bottom: 6px;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: .72rem;
  letter-spacing: .08em;
}
.toc-grid .toc-link.toc-articolo {
  border-left-color: #a33a32;
  background: linear-gradient(90deg, rgba(163,58,50,.08) 0%, rgba(163,58,50,.03) 100%);
}
.toc-grid .toc-link.toc-articolo .toc-kicker {
  background: rgba(163,58,50,.12);
  color: #8c2e27;
}
.toc-grid .toc-link.toc-rubrica {
  border-left-color: #2a5783;
  background: linear-gradient(90deg, rgba(42,87,131,.10) 0%, rgba(42,87,131,.03) 100%);
}
.toc-grid .toc-link.toc-rubrica .toc-kicker {
  background: rgba(42,87,131,.13);
  color: #1f4267;
}
.toc-grid .toc-link.toc-podcast,
.toc-grid .toc-link.toc-video {
  border-left-color: #6b4bb6;
  background: linear-gradient(90deg, rgba(107,75,182,.10) 0%, rgba(107,75,182,.03) 100%);
}
.toc-grid .toc-link.toc-podcast .toc-kicker,
.toc-grid .toc-link.toc-video .toc-kicker {
  background: rgba(107,75,182,.14);
  color: #553a94;
}
.toc-grid .toc-link.toc-documento {
  border-left-color: #b87920;
  background: linear-gradient(90deg, rgba(184,121,32,.10) 0%, rgba(184,121,32,.03) 100%);
}
.toc-grid .toc-link.toc-documento .toc-kicker {
  background: rgba(184,121,32,.15);
  color: #8f5f18;
}


/* Evidenziazione temporanea dei risultati provenienti dalla ricerca */
.search-target-highlight {
  background: #ffe16a;
  color: inherit;
  border-radius: 4px;
  padding: 0 .08em;
  box-shadow: 0 0 0 4px rgba(255, 225, 106, .45);
}


/* ─── Archivio: su mobile va direttamente alla pagina Archivio ─────── */
.mobile-archive-link {
  display: none;
}

@media (max-width: 760px) {
  .desktop-archive-dropdown {
    display: none !important;
  }

  .mobile-archive-link {
    display: inline-flex;
    align-items: center;
  }
}






/* ─── Lente di ingrandimento / testo grande ─────────────────────────── */
.reader-tools {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  font-size: 16px !important;
  font-family: inherit;
}

.reader-tools-panel {
  display: none;
  align-items: center;
  gap: 8px;
  padding: 10px;
  border-radius: 999px;
  background: rgba(255, 252, 247, .97);
  border: 1px solid rgba(75, 58, 42, .16);
  box-shadow: 0 14px 34px rgba(31, 27, 24, .20);
  backdrop-filter: blur(10px);
}

.reader-tools.is-open .reader-tools-panel {
  display: flex;
}

.reader-tools-toggle,
.reader-tools-btn {
  appearance: none;
  border: 0;
  cursor: pointer;
  color: #2c241e;
  background: #fffaf3;
  box-shadow: 0 10px 26px rgba(31, 27, 24, .20);
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.reader-tools-toggle {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 1px solid rgba(75, 58, 42, .16);
}

.reader-tools-toggle svg {
  width: 25px;
  height: 25px;
}

.reader-tools-btn {
  min-width: 42px;
  height: 38px;
  padding: 0 12px;
  border-radius: 999px;
  font-weight: 800;
  font-family: inherit;
  border: 1px solid rgba(75, 58, 42, .14);
  line-height: 1;
}

.reader-tools-btn.reader-reset {
  font-size: .82rem;
  font-weight: 700;
}

.reader-tools-toggle:hover,
.reader-tools-btn:hover {
  transform: translateY(-1px);
  background: #ffffff;
  box-shadow: 0 14px 32px rgba(31, 27, 24, .24);
}

.reader-tools-toggle:focus-visible,
.reader-tools-btn:focus-visible {
  outline: 3px solid rgba(163, 58, 50, .35);
  outline-offset: 3px;
}

.reader-tools-status {
  min-width: 46px;
  text-align: center;
  font-size: .82rem;
  font-weight: 800;
  color: #7b4a2a;
}

@media (max-width: 760px) {
  .reader-tools {
    right: 12px;
    bottom: 12px;
  }

  .reader-tools-toggle {
    width: 48px;
    height: 48px;
  }

  .reader-tools-panel {
    border-radius: 18px;
    flex-wrap: wrap;
    max-width: min(92vw, 300px);
    justify-content: flex-end;
  }
}


/* Home cards stile lista con icone e freccia, desktop + mobile */
.issue-links{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  align-content:start;
}
.issue-links > a.issue-link,
.issue-links > details.issue-link{
  position:relative;
  overflow:hidden;
  border-radius:22px;
  border:1px solid rgba(0,0,0,.10);
  background:linear-gradient(180deg,#fff 0%, #f9f7f1 100%);
  box-shadow:0 10px 26px rgba(54,44,31,.10);
}
.issue-links > a.issue-link{
  display:grid;
  grid-template-columns:56px minmax(0,1fr) 46px;
  align-items:center;
  column-gap:16px;
  row-gap:4px;
  padding:18px 20px;
  text-decoration:none;
}
.issue-links > details.issue-link > summary.issue-link-summary{
  display:grid;
  grid-template-columns:56px minmax(0,1fr) 46px;
  align-items:center;
  column-gap:16px;
  row-gap:4px;
  padding:18px 20px;
  cursor:pointer;
  list-style:none;
}
.issue-links > details.issue-link > summary::-webkit-details-marker{display:none}
.issue-links > a.issue-link strong,
.issue-links > details.issue-link > summary strong{
  grid-column:2;
  margin:0;
  font-size:1.12rem;
  line-height:1.15;
  color:#241e1a;
}
.issue-links > a.issue-link span,
.issue-links > details.issue-link > summary span{
  grid-column:2;
  display:block;
  margin:0;
  font-size:.94rem;
  line-height:1.45;
  color:#4d463f;
}
.issue-links > a.issue-link::before,
.issue-links > a.issue-link::after,
.issue-links > details.issue-link > summary::before,
.issue-links > details.issue-link > summary::after{
  content:"";
  display:block;
}
.issue-links > a.issue-link::before,
.issue-links > details.issue-link > summary::before{
  grid-column:1;
  grid-row:1 / span 2;
  width:56px;
  height:56px;
  background-position:center;
  background-repeat:no-repeat;
  background-size:46px 46px;
}
.issue-links > a.issue-link::after,
.issue-links > details.issue-link > summary::after{
  content:"";
  grid-column:3;
  grid-row:1 / span 2;
  align-self:center;
  justify-self:end;
  width:36px;
  height:36px;
  border-radius:999px;
  border:1.5px solid rgba(201,31,91,.30);
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M9 6l6 6-6 6' stroke='%23c91f5b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:14px 14px;
  box-shadow:0 6px 14px rgba(54,44,31,.10);
}
.issue-links > a.issue-link:hover,
.issue-links > details.issue-link:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(54,44,31,.14);
  border-color:rgba(201,31,91,.22);
}
.issue-links > a.issue-link.number-current{background:linear-gradient(180deg,#fff 0%, #fff8fb 100%)}
.issue-links > a.issue-link.number-current strong::after{
  content:"✓ NUOVO";
  display:inline-flex;
  align-items:center;
  margin-left:10px;
  padding:4px 9px;
  border-radius:999px;
  background:#c91f5b;
  color:#fff;
  font-size:.62rem;
  letter-spacing:.14em;
  font-weight:800;
  vertical-align:middle;
}
.issue-links > a.issue-link.number-current::before{background-image:url("assets/icon-fascicolo.svg")}
.issue-links > a.issue-link.issue-link-romanzo::before{background-image:url("assets/icon-romanzo.svg")}
.issue-links > details.issue-link.issue-link-archive > summary::before{background-image:url("assets/icon-archivio.svg")}
.issue-links > a.issue-link.issue-link-cta::before{background-image:url("assets/icon-scrivici.svg")}
.issue-links > details.issue-link .archive-dropdown-menu{
  padding:0 20px 18px 92px;
  display:grid;
  gap:8px;
}
.issue-links > details.issue-link .archive-dropdown-menu a{
  display:block;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  color:#2b2520;
  text-decoration:none;
}
.issue-links > details.issue-link .archive-dropdown-menu a:hover{background:#faf6fb;border-color:rgba(201,31,91,.16)}
@media (max-width:760px){
  .issue-links > a.issue-link,
  .issue-links > details.issue-link > summary.issue-link-summary{
    display:block;
    position:relative;
    padding:18px 78px 18px 18px;
    min-height:132px;
  }
  .issue-links > a.issue-link::before,
  .issue-links > details.issue-link > summary::before{
    position:absolute;
    top:18px;
    left:18px;
    width:42px;
    height:42px;
    background-size:34px 34px;
  }
  .issue-links > a.issue-link::after,
  .issue-links > details.issue-link > summary::after{
    position:absolute;
    top:20px;
    right:18px;
    width:42px;
    height:42px;
    background-size:14px 14px;
  }
  .issue-links > a.issue-link strong,
  .issue-links > details.issue-link > summary strong{
    display:block;
    margin-top:58px;
    font-size:1.06rem;
    line-height:1.16;
  }
  .issue-links > a.issue-link span,
  .issue-links > details.issue-link > summary span{
    display:block;
    margin-top:8px;
    font-size:.91rem;
    line-height:1.42;
  }
  .issue-links > a.issue-link.number-current strong::after{
    display:inline-flex;
    margin-left:8px;
    font-size:.58rem;
    padding:4px 8px;
  }
  .issue-links > details.issue-link .archive-dropdown-menu{
    padding:0 16px 16px 16px;
  }
}


/* Rifinitura footer: niente linea sopra, solo stato archivio vicino alla lente */
.footer-inner{
  justify-content:flex-end;
  align-items:flex-start;
  gap:8px;
  border-top:none !important;
  padding-top:0 !important;
  padding-right:92px;
}
.footer-status{
  display:inline-block;
  margin-left:auto;
  text-align:right;
  white-space:nowrap;
}
@media (max-width:760px){
  .footer{padding-bottom:92px;}
  .footer-inner{
    justify-content:flex-end;
    padding-right:76px;
  }
  .footer-status{
    max-width:calc(100vw - 152px);
    text-align:right;
    white-space:normal;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   HERO / LOGO — sfondo invisibile, nessun riquadro
   ═══════════════════════════════════════════════════════════════════════════ */

.hero-panel {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

.logo-full {
  background: transparent !important;
  padding: 32px 16px 28px !important;
  justify-content: center !important;
}

.logo-full img {
  filter: drop-shadow(0 6px 32px rgba(0,0,0,.13));
  border-radius: 0 !important;
}

/* Etichetta fascicolo sopra il logo: leggibile su sfondo pagina */
.hero-issue {
  background: transparent !important;
  text-align: center;
  padding: 28px 28px 0 !important;
  font-size: .78rem !important;
  letter-spacing: .22em !important;
  color: var(--accent) !important;
  font-weight: 800 !important;
}

.hero-subline {
  background: transparent !important;
}

@media (max-width: 760px) {
  .logo-full {
    padding: 20px 12px 20px !important;
  }
  .hero-issue {
    padding: 20px 16px 0 !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   NAVBAR v2 — moderna ed elegante
   ═══════════════════════════════════════════════════════════════════════════ */

.site-header {
  background: rgba(252, 249, 241, .82) !important;
  -webkit-backdrop-filter: saturate(220%) blur(26px) !important;
  backdrop-filter: saturate(220%) blur(26px) !important;
  border-bottom: 1px solid rgba(0,0,0,.07) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,.55) inset, 0 3px 18px rgba(0,0,0,.04) !important;
}

/* Layout: griglia 3 colonne — logo | centro | vuoto (specchio) */
.nav-wrap {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  min-height: 62px !important;
  gap: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Brand — colonna sinistra */
.brand-mini {
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: start !important;
  align-self: center !important;
  display: flex !important;
  align-items: center !important;
  padding-right: 22px !important;
  border-right: 1.5px solid rgba(0,0,0,.09) !important;
}
.brand-mini img {
  width: 82px !important;
  filter: none !important;
  transition: opacity .18s !important;
}
.brand-mini:hover img {
  opacity: .60 !important;
  transform: none !important;
}

/* Main-nav — colonna centrale, centrata */
.main-nav {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: flex !important;
  align-items: center !important;
  gap: 2px !important;
  flex-wrap: nowrap !important;
  flex: none !important;
}

/* Ogni link/summary: normal case, font moderno */
.main-nav a,
.nav-dropdown summary {
  text-transform: none !important;
  font-size: .875rem !important;
  font-weight: 500 !important;
  letter-spacing: -.01em !important;
  color: #42392f !important;
  padding: 7px 13px !important;
  border-radius: 9px !important;
  transition: background .14s, color .14s, box-shadow .14s !important;
  white-space: nowrap !important;
}

/* Hover link normali — tono neutro scuro */
.main-nav a:not(.active):hover,
.nav-dropdown summary:hover,
.nav-dropdown[open] summary {
  background: rgba(0,0,0,.058) !important;
  color: #1a1512 !important;
  box-shadow: none !important;
}

/* Link attivo — evidenziazione grigia sottile (come hover) */
.main-nav a.active {
  background: rgba(0,0,0,.08) !important;
  color: #1a1512 !important;
  font-weight: 600 !important;
  letter-spacing: -.01em !important;
  box-shadow: none !important;
}
.main-nav a.active:hover {
  background: rgba(0,0,0,.11) !important;
  color: #1a1512 !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Pulsante Cerca — dopo i link, vicino ad essi */
.nav-search-btn {
  order: 99 !important;
  flex-shrink: 0 !important;
  margin-left: 8px !important;
  width: 36px !important;
  height: 36px !important;
  padding: 0 !important;
  border-radius: 10px !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  background: rgba(255,255,255,.55) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  transition: background .14s, border-color .14s, box-shadow .14s !important;
}
.nav-search-btn .nav-search-label,
.nav-search-btn .nav-search-shortcut { display: none !important; }
.nav-search-btn svg {
  width: 17px !important;
  height: 17px !important;
  color: #4a4036 !important;
}
.nav-search-btn:hover {
  background: rgba(255,255,255,.95) !important;
  border-color: rgba(0,0,0,.16) !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.09) !important;
  transform: none !important;
}

/* Dropdown Archivio */
.nav-dropdown-menu {
  background: rgba(255,255,255,.98) !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.13), 0 1px 3px rgba(0,0,0,.06) !important;
  padding: 6px !important;
  backdrop-filter: blur(16px) !important;
}
.nav-dropdown-menu a {
  text-transform: none !important;
  font-size: .84rem !important;
  font-weight: 500 !important;
  letter-spacing: -.005em !important;
  color: #3c3530 !important;
  border-radius: 10px !important;
  background: transparent !important;
  padding: 10px 14px !important;
}
.nav-dropdown-menu a:hover {
  background: rgba(201,31,91,.07) !important;
  color: var(--accent) !important;
}

/* ── Mobile: torna a flex colonna ── */
@media (max-width: 760px) {
  .site-header .container { position: relative !important; }

  .nav-wrap {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    min-height: 0 !important;
    padding: 10px 0 0 !important;
    gap: 0 !important;
  }

  .brand-mini {
    grid-column: unset !important;
    grid-row: unset !important;
    order: 1 !important;
    border-right: none !important;
    padding-right: 0 !important;
    align-self: center !important;
    padding-bottom: 8px !important;
  }
  .brand-mini img {
    width: 108px !important;
    max-width: 108px !important;
  }

  .main-nav {
    grid-column: unset !important;
    grid-row: unset !important;
    order: 3 !important;
    flex: none !important;
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scrollbar-width: none !important;
    padding: 0 0 8px !important;
    gap: 2px !important;
  }
  .main-nav::-webkit-scrollbar { display: none !important; }

  .main-nav a,
  .nav-dropdown summary {
    font-size: .78rem !important;
    padding: 7px 11px !important;
    border-radius: 8px !important;
    flex-shrink: 0 !important;
    white-space: nowrap !important;
  }

  /* Su mobile il cerca torna in alto a destra */
  .nav-search-btn {
    order: 2 !important;
    position: absolute !important;
    top: 10px !important;
    right: 0 !important;
    margin-left: 0 !important;
    width: 38px !important;
    height: 38px !important;
    border-radius: 10px !important;
  }
}

@media (max-width: 420px) {
  .brand-mini img { width: 92px !important; max-width: 92px !important; }
  .main-nav a, .nav-dropdown summary { font-size: .74rem !important; padding: 6px 10px !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   INDICE (TOC) — card elevate, chiaramente cliccabili, registro editoriale
   ═══════════════════════════════════════════════════════════════════════════ */

.toc-panel {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.toc-title-row { margin-bottom: 26px !important; }

/* Grid con counter automatico */
.toc-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 12px !important;
  counter-reset: toc-item !important;
}

/* ── Card base ───────────────────────────────────────────────────────────── */
.toc-grid .toc-link {
  counter-increment: toc-item !important;
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 18px 44px 40px 20px !important;
  /* sfondo SOLIDO — nessun watermark visibile */
  background: #ffffff !important;
  border: 1px solid rgba(0,0,0,.09) !important;
  border-left: 5px solid #ccc !important;       /* sovrascitto per tipo */
  border-radius: 0 16px 16px 0 !important;
  text-decoration: none !important;
  color: inherit !important;
  transition: transform .28s cubic-bezier(.4,0,.2,1),
              box-shadow .28s ease,
              background .2s ease !important;
  /* ombra chiara a riposo: card "sollevata" anche senza hover */
  box-shadow:
    0 1px 3px rgba(0,0,0,.06),
    0 4px 14px rgba(0,0,0,.07),
    0 10px 32px rgba(0,0,0,.04) !important;
  overflow: hidden !important;
}

/* Numero grande — fantasma in basso a destra */
.toc-grid .toc-link::before {
  content: counter(toc-item, decimal-leading-zero) !important;
  position: absolute !important;
  bottom: 4px !important;
  right: 12px !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 2.6rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: -.06em !important;
  color: rgba(0,0,0,.055) !important;           /* sovrascitto per tipo */
  pointer-events: none !important;
  user-select: none !important;
}

/* Chevron → sempre visibile: affordance di link */
.toc-grid .toc-link::after {
  content: "›" !important;
  display: block !important;
  position: absolute !important;
  top: 18px !important;
  right: 16px !important;
  font-size: 1.3rem !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  color: rgba(0,0,0,.18) !important;            /* sovrascitto per tipo */
  transition: transform .22s ease, color .22s ease, opacity .22s !important;
  pointer-events: none !important;
}

/* Hover: card si solleva, sfondo tinto, freccia si sposta */
.toc-grid .toc-link:hover {
  transform: translateY(-4px) !important;
}
.toc-grid .toc-link:hover::after {
  transform: translateX(4px) !important;
}

/* ── Kicker ── */
.toc-grid .toc-link .toc-kicker {
  display: block !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  font-size: .60rem !important;
  font-weight: 700 !important;
  letter-spacing: .24em !important;
  text-transform: uppercase !important;
  margin-bottom: 9px !important;
  color: #aaa !important;
  width: auto !important;
}

/* ── Titolo serif ── */
.toc-grid .toc-link strong {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 1.00rem !important;
  font-weight: 700 !important;
  line-height: 1.30 !important;
  letter-spacing: -.02em !important;
  color: #18150f !important;
  display: block !important;
  margin-bottom: 0 !important;
  /* forza sentence case per titoli scritti in maiuscolo */
  text-transform: none !important;
}

/* ── Sottotitolo / autore ── */
.toc-grid .toc-link .toc-sub {
  font-size: .775rem !important;
  line-height: 1.48 !important;
  color: #8a8177 !important;
  display: block !important;
  margin-top: 7px !important;
  font-style: italic !important;
}

/* ═══════ TIPI DI SEZIONE ════════════════════════════════════════════════ */

/* ── Articolo: rosso ── */
.toc-grid .toc-link.toc-articolo {
  border-left-color: #a33a32 !important;
}
.toc-grid .toc-link.toc-articolo .toc-kicker { color: #a33a32 !important; }
.toc-grid .toc-link.toc-articolo::before     { color: rgba(163,58,50,.10) !important; }
.toc-grid .toc-link.toc-articolo::after      { color: rgba(163,58,50,.35) !important; }
.toc-grid .toc-link.toc-articolo:hover {
  background: #fef9f9 !important;
  box-shadow: 0 6px 20px rgba(163,58,50,.10),
              0 16px 48px rgba(163,58,50,.08) !important;
}
.toc-grid .toc-link.toc-articolo:hover::after { color: #a33a32 !important; }

/* ── Rubrica / Sezione: blu ── */
.toc-grid .toc-link.toc-rubrica {
  border-left-color: #2a5783 !important;
}
.toc-grid .toc-link.toc-rubrica .toc-kicker { color: #2a5783 !important; }
.toc-grid .toc-link.toc-rubrica::before     { color: rgba(42,87,131,.10) !important; }
.toc-grid .toc-link.toc-rubrica::after      { color: rgba(42,87,131,.35) !important; }
.toc-grid .toc-link.toc-rubrica:hover {
  background: #f7fafd !important;
  box-shadow: 0 6px 20px rgba(42,87,131,.09),
              0 16px 48px rgba(42,87,131,.07) !important;
}
.toc-grid .toc-link.toc-rubrica:hover::after { color: #2a5783 !important; }

/* ── Podcast / Video: viola ── */
.toc-grid .toc-link.toc-podcast,
.toc-grid .toc-link.toc-video {
  border-left-color: #6b4bb6 !important;
}
.toc-grid .toc-link.toc-podcast .toc-kicker,
.toc-grid .toc-link.toc-video .toc-kicker   { color: #6b4bb6 !important; }
.toc-grid .toc-link.toc-podcast::before,
.toc-grid .toc-link.toc-video::before       { color: rgba(107,75,182,.10) !important; }
.toc-grid .toc-link.toc-podcast::after,
.toc-grid .toc-link.toc-video::after        { color: rgba(107,75,182,.35) !important; }
.toc-grid .toc-link.toc-podcast:hover,
.toc-grid .toc-link.toc-video:hover {
  background: #faf8fe !important;
  box-shadow: 0 6px 20px rgba(107,75,182,.09),
              0 16px 48px rgba(107,75,182,.07) !important;
}
.toc-grid .toc-link.toc-podcast:hover::after,
.toc-grid .toc-link.toc-video:hover::after  { color: #6b4bb6 !important; }

/* ── Documento: ambra ── */
.toc-grid .toc-link.toc-documento {
  border-left-color: #b87920 !important;
}
.toc-grid .toc-link.toc-documento .toc-kicker { color: #b87920 !important; }
.toc-grid .toc-link.toc-documento::before     { color: rgba(184,121,32,.10) !important; }
.toc-grid .toc-link.toc-documento::after      { color: rgba(184,121,32,.35) !important; }
.toc-grid .toc-link.toc-documento:hover {
  background: #fdfaf4 !important;
  box-shadow: 0 6px 20px rgba(184,121,32,.09),
              0 16px 48px rgba(184,121,32,.07) !important;
}
.toc-grid .toc-link.toc-documento:hover::after { color: #b87920 !important; }

/* ── Mobile ── */
@media (max-width: 760px) {
  .toc-grid {
    grid-template-columns: 1fr !important;
    gap: 9px !important;
    width: 100% !important;
  }
  .toc-grid .toc-link {
    border-radius: 0 13px 13px 0 !important;
    padding: 15px 40px 36px 17px !important;
  }
  .toc-grid .toc-link::before {
    font-size: 2.1rem !important;
    bottom: 3px !important;
    right: 10px !important;
  }
  .toc-grid .toc-link::after {
    top: 15px !important;
    right: 14px !important;
    font-size: 1.15rem !important;
  }
  .toc-grid .toc-link strong { font-size: .97rem !important; }
  .toc-grid .toc-link .toc-sub { font-size: .76rem !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   LAYOUT: bordi laterali respirati, letture più larghe
   ═══════════════════════════════════════════════════════════════════════════ */

/* Container: largo per le letture */
.container {
  width: min(calc(100% - 80px), 1040px) !important;
}
@media (max-width: 1160px) {
  .container { width: min(calc(100% - 60px), 1040px) !important; }
}
@media (max-width: 760px) {
  .container { width: min(calc(100% - 32px), 1040px) !important; }
}

/* Join card, indice e griglia home: stessa larghezza dei contenuti testo */
.content-panel.home-card,
.toc-panel,
.home-grid,
.notice-panel {
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   CARDS: border-radius più ampio, look moderno
   ═══════════════════════════════════════════════════════════════════════════ */

.content-panel,
.home-card,
.article-card,
.scheda-card,
.podcast-card,
.note-panel,
.notice-panel,
.archive-card {
  border-radius: 24px !important;
}

@media (max-width: 760px) {
  .content-panel,
  .home-card,
  .article-card,
  .scheda-card,
  .podcast-card,
  .note-panel,
  .notice-panel,
  .archive-card {
    border-radius: 18px !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION LABELS: badge pill per argomento
   ═══════════════════════════════════════════════════════════════════════════ */

.section-label {
  display: inline-flex !important;
  align-items: center !important;
  padding: 4px 11px !important;
  border-radius: 999px !important;
  font-size: .67rem !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  margin-bottom: 10px !important;
  background: rgba(200,31,91,.09) !important;
  color: var(--accent) !important;
}

.scheda-card .section-label {
  background: rgba(138,111,22,.10) !important;
  color: #7a6310 !important;
}

.podcast-card .section-label {
  background: rgba(41,66,74,.12) !important;
  color: var(--pod) !important;
}

.notice-panel .section-label {
  background: rgba(255,255,255,.14) !important;
  color: rgba(255,255,255,.80) !important;
}

.article-redazione .section-label {
  background: rgba(214,189,31,.14) !important;
  color: #7c6715 !important;
}

.toc-panel .section-label {
  background: transparent !important;
  color: var(--muted) !important;
  padding: 0 !important;
  font-size: .72rem !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SPAZIATURA: più respiro verticale
   ═══════════════════════════════════════════════════════════════════════════ */

.section-stack {
  gap: 24px !important;
  padding-bottom: 72px !important;
}

.home-shell {
  padding-top: 24px !important;
  padding-bottom: 72px !important;
}

.home-grid {
  gap: 20px !important;
  margin-top: 16px !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   CARD CONTENT: padding e tipografia raffinati
   ═══════════════════════════════════════════════════════════════════════════ */

/* Intro home */
.home-card.construction {
  padding: 36px !important;
}
.construction h1 {
  margin-bottom: 16px !important;
}

/* Join card (Partecipa al progetto) */
.content-panel.home-card {
  background: linear-gradient(135deg, #fff 0%, #fef9f0 100%) !important;
  padding: 32px 36px !important;
}
.join-card h2 {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 1.38rem !important;
  line-height: 1.22 !important;
  letter-spacing: -.02em !important;
}

/* Article / podcast / note cards */
.article-card,
.podcast-card,
.scheda-card,
.note-panel {
  padding: 28px 32px !important;
}
.article-card .title-row,
.podcast-card .title-row {
  margin-bottom: 16px !important;
}

/* Dark notice panel */
.notice-panel {
  background: linear-gradient(135deg, #181614 0%, #1f1d1b 100%) !important;
  padding: 28px 32px !important;
}

/* Archive cards */
.archive-card {
  padding: 26px 28px !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   BUTTONS: forma moderna
   ═══════════════════════════════════════════════════════════════════════════ */

.small-button {
  border-radius: 12px !important;
  font-size: .82rem !important;
  min-height: 44px !important;
  padding: 0 22px !important;
  letter-spacing: .08em !important;
}

.iscriviti-button {
  background: linear-gradient(135deg, #1c1916 0%, #2a2420 100%) !important;
  box-shadow: 0 3px 14px rgba(0,0,0,.28) !important;
}
.iscriviti-button:hover {
  background: linear-gradient(135deg, #2a2420 0%, #1c1916 100%) !important;
  box-shadow: 0 5px 18px rgba(0,0,0,.34) !important;
}

.small-button-secondary {
  border-radius: 12px !important;
  box-shadow: inset 0 0 0 1.5px rgba(200,31,91,.28) !important;
}

.back-index { border-radius: 12px !important; }
.copy-email-button { border-radius: 10px !important; }


/* ═══════════════════════════════════════════════════════════════════════════
   MOBILE: aggiustamenti finali
   ═══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 760px) {
  .content-panel.home-card,
  .home-card.construction { padding: 22px 20px !important; }
  .article-card,
  .podcast-card,
  .scheda-card,
  .note-panel,
  .notice-panel { padding: 22px 20px !important; }
  .archive-card { padding: 20px !important; }
  .section-stack { gap: 16px !important; padding-bottom: 56px !important; }
  .home-shell { padding-top: 28px !important; padding-bottom: 56px !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   NAVBAR: hide on scroll-down / show on scroll-up (tutti gli schermi)
   ═══════════════════════════════════════════════════════════════════════════ */

.site-header {
  transition: transform .34s cubic-bezier(.4,0,.2,1),
              background .22s ease,
              box-shadow .22s ease !important;
  will-change: transform !important;
}
.site-header.is-nav-hidden {
  transform: translateY(-110%) !important;
  pointer-events: none !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   POLISH GLOBALE — fluidità, eleganza, modernità
   ═══════════════════════════════════════════════════════════════════════════ */

/* Scroll fluido */
html {
  scroll-behavior: smooth;
}

/* Transizione TOC cards */
.toc-grid .toc-link {
  transition: transform .26s cubic-bezier(.4,0,.2,1), box-shadow .26s ease !important;
}

/* Micro-lift — archivio cards */
.archive-card {
  transition: transform .2s cubic-bezier(.4,0,.2,1),
              box-shadow .2s ease !important;
}
.archive-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 16px 40px rgba(0,0,0,.10) !important;
}

/* Micro-lift — issue link cards (home) */
.issue-link {
  transition: transform .2s cubic-bezier(.4,0,.2,1),
              box-shadow .2s ease !important;
}
.issue-link:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.09) !important;
}

/* Footer più curato */
.footer {
  margin-top: 16px !important;
  border-top: 1px solid rgba(0,0,0,.07) !important;
}
.footer-inner {
  padding-top: 22px !important;
  padding-bottom: 28px !important;
  font-size: .80rem !important;
  letter-spacing: .04em !important;
  color: var(--muted) !important;
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
}

/* Hero panel: spazio ridotto, logo compatto */
.page-hero {
  padding-top: 6px !important;
  padding-bottom: 0 !important;
}
.hero-panel {
  padding-top: 10px !important;
  padding-bottom: 8px !important;
}
.hero-issue {
  font-size: .74rem !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  margin-bottom: 6px !important;
  opacity: .9 !important;
}
.logo-full.logo-hero {
  padding-top: 4px !important;
  padding-bottom: 6px !important;
}
.logo-full.logo-hero img {
  width: min(100%, 520px) !important;
}

/* Section header: più definita */
.toc-title-row,
.title-row {
  margin-bottom: 22px !important;
}
.section-title {
  letter-spacing: -.035em !important;
}
.section-title-small {
  letter-spacing: -.025em !important;
}

/* TOC kicker */
.toc-kicker {
  letter-spacing: .22em !important;
  font-size: .61rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  margin-bottom: 8px !important;
}

/* TOC titolo */
.toc-grid .toc-link strong {
  letter-spacing: -.01em !important;
  line-height: 1.34 !important;
}

/* Article / podcast: bordi arrotondati coerenti */
.article-card,
.podcast-card,
.scheda-card {
  transition: transform .2s cubic-bezier(.4,0,.2,1),
              box-shadow .2s ease !important;
}
.article-card:hover,
.podcast-card:hover,
.scheda-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.08) !important;
}

/* Bottone back-index: più raffinato */
.back-index {
  font-size: .72rem !important;
  letter-spacing: .14em !important;
  transition: background .18s, color .18s, transform .18s, box-shadow .18s !important;
}
.back-index:hover {
  transform: translateY(-1px) !important;
}

/* Reveal animation: più fluida */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .55s cubic-bezier(.4,0,.2,1),
              transform .55s cubic-bezier(.4,0,.2,1) !important;
}
.reveal.is-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* Focus: anello raffinato */
:focus-visible {
  outline: 2px solid var(--accent) !important;
  outline-offset: 3px !important;
  border-radius: 4px !important;
}

/* ── Dark mode footer ── */
@media (prefers-color-scheme: dark) {
  .footer { border-top-color: rgba(255,255,255,.08) !important; }
}

/* Dark mode footer via classe */
html.theme-night .footer {
  border-top-color: rgba(255,255,255,.08) !important;
}

@media (max-width: 760px) {
  .page-hero { padding-top: 4px !important; }
  .hero-panel {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
  .logo-full.logo-hero img { width: min(100%, 320px) !important; }
  .home-shell { padding-top: 16px !important; padding-bottom: 48px !important; }
  .archive-card:hover,
  .toc-grid .toc-link:hover,
  .article-card:hover,
  .podcast-card:hover {
    transform: none !important;
  }
  .toc-grid .toc-link:hover::after {
    transform: none !important;
  }
}
