/* =========================================
   Aggiunte al tema: contenuti in primo piano
   ========================================= */

/* Card grande senza immagine: sfondo nei colori del portale. */
.featured-main.no-img {
  background: linear-gradient(135deg, var(--maroon) 0%, #2b1411 100%);
}
.featured-main.no-img::after {
  background: linear-gradient(to top, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, .15) 60%, transparent 100%);
}

/* Card piccola senza immagine: riquadro chiaro centrato. */
.featured-mini.no-img {
  min-height: 140px;
  justify-content: center;
  text-align: center;
  background: linear-gradient(135deg, var(--paper) 0%, #e9e0ce 100%);
}
.featured-mini.no-img b {
  padding: 18px 16px;
  font-size: .95rem;
}

/* =========================================
   Layout senza colonna laterale
   ========================================= */
.grid.no-sidebar {
  grid-template-columns: minmax(0, 1fr);
}
.grid.no-sidebar .prose {
  max-width: 100%;
}

/* =========================================
   Pulsanti
   ========================================= */
.btn-primary,
.btn-outline {
  display: inline-block;
  padding: 12px 24px;
  font-weight: 700;
  line-height: 1.3;
  border-radius: var(--r-xl);
  text-decoration: none;
  border: 1px solid transparent;
  transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.btn-primary {
  background: var(--maroon);
  color: #fff;
  border-color: var(--maroon);
}
.btn-primary:hover {
  background: var(--maroon-dark);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px var(--maroon-20);
}
.btn-outline {
  background: transparent;
  color: var(--maroon);
  border-color: var(--maroon);
}
.btn-outline:hover {
  background: var(--maroon);
  color: #fff;
  transform: translateY(-2px);
}

/* =========================================
   Modulo di ricerca
   ========================================= */
.search-form {
  display: flex;
  gap: 8px;
  margin: 22px 0;
  flex-wrap: wrap;
}
.search-form input[type="search"] {
  flex: 1 1 220px;
  min-width: 0;
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  background: var(--card);
  color: var(--ink);
  font-size: 1rem;
}
.search-form .btn-primary {
  flex: 0 0 auto;
  cursor: pointer;
}
.nf-links {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 26px;
}

/* =========================================
   Pagina 404 / utilità
   ========================================= */
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

/* =========================================
   Pagina di manutenzione
   ========================================= */
.maintenance {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 0;
  text-align: center;
}
.maintenance-card {
  max-width: 680px;
  margin: 0 auto;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 48px 36px;
}
.maintenance-icon {
  width: 96px;
  height: 96px;
  margin: 0 auto 24px;
  border-radius: 50%;
  background: var(--maroon-08);
  border: 2px solid var(--maroon-18);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--maroon);
  font-size: 2.6rem;
  line-height: 1;
}
.maintenance h1 {
  font: 700 clamp(1.8rem, 4vw, 2.6rem)/1.2 var(--serif);
  color: var(--maroon);
  margin: 0 0 16px;
}
.maintenance-text p {
  font-size: 1.08rem;
  line-height: 1.7;
  color: #4a423a;
  margin: 0 0 14px;
}
.maintenance-actions {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 28px;
}
.maintenance-note {
  margin-top: 28px;
  font-size: .9rem;
  color: var(--muted);
}

/* =========================================
   Widget
   ========================================= */
aside .block.widget {
  overflow-wrap: anywhere;
}
footer.site .widget {
  margin: 0;
}
footer.site .widget p {
  margin: .4em 0;
}
footer.site .widget ul {
  margin: 0;
  padding: 0;
}

@media (max-width: 720px) {
  .search-form {
    flex-direction: column;
  }
  .search-form .btn-primary {
    width: 100%;
  }
  .nf-links .btn {
    width: 100%;
    max-width: 320px;
    text-align: center;
  }
  .maintenance-card {
    padding: 34px 20px;
  }
}

/* =========================================
   Banner con slider di foto
   ========================================= */
.hero-has-slider { background-color: var(--paper-2); }
.hero-slider {
  position: absolute; inset: 0; overflow: hidden; z-index: 0;
  background: var(--paper-2);
}
.hero-slider-track {
  position: absolute; inset: 0; display: flex; height: 100%;
  transition: transform .9s ease;
  will-change: transform;
}
.hero-slide {
  position: relative; flex: 0 0 100%; height: 100%; overflow: hidden;
}
.hero-slide-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center 38%; background-repeat: no-repeat;
}

/* Dissolvenza */
.hero-slider.effect-fade .hero-slider-track { display: block; transform: none !important; }
.hero-slider.effect-fade .hero-slide {
  position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease;
}
.hero-slider.effect-fade .hero-slide.is-active { opacity: 1; }

/* Velo per la leggibilità */
.hero-overlay {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
}

/* Didascalie */
.hero-captions {
  position: absolute; right: calc(var(--pad-x) + 6px); bottom: 54px;
  z-index: 4; max-width: min(340px, 42vw); text-align: right;
  pointer-events: none;
}
.hero-caption { display: none; }
.hero-caption.is-active { display: block; animation: fadeInSlide .5s ease both; }
.hero-caption-title {
  display: inline-block; max-width: 100%;
  background: rgba(30, 26, 22, .72); color: #fff;
  padding: 8px 14px; border-radius: 999px;
  font-size: .85rem; line-height: 1.35; font-weight: 600;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .18);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.hero-caption-link {
  display: inline-block; margin-left: 6px; margin-top: 6px;
  background: var(--maroon); color: #fff; text-decoration: none;
  padding: 7px 14px; border-radius: 999px;
  font-size: .82rem; font-weight: 700;
  pointer-events: auto;
}
.hero-caption-link:hover { background: var(--maroon-dark); color: #fff; }

/* Puntini */
.hero-slider-dots {
  position: absolute; right: calc(var(--pad-x) + 4px); bottom: 20px;
  z-index: 4; display: flex; gap: 8px;
}
.hero-slider-dots button {
  width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%;
  background: rgba(36, 31, 27, .35);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .75);
  cursor: pointer;
  transition: background .25s ease, transform .25s ease;
}
.hero-slider-dots button:hover { background: rgba(36, 31, 27, .6); }
.hero-slider-dots button.active { background: var(--maroon); transform: scale(1.3); }
.hero-slider-dots button:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }

@media (max-width: 860px) {
  .hero-captions { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-slider-track,
  .hero-slider.effect-fade .hero-slide { transition: none; }
  .hero-caption.is-active { animation: none; }
}
