/* ========== RESET BASE ========== */
body {
  margin: 0;
  font-family: 'Helvetica Neue', sans-serif;
  line-height: 1.6;
  background-color: #f9f9f9;
  color: #222;
  font-size:16px;
}

/* ========== HEADER ========== */
header {
  background-color: #004225; /* Verde inglese */
  color: #fff;
  padding: 20px 0;
  text-align: center;
}

.titolo {
  font-size: 2rem;
  font-weight: bold;
  margin: 0;
  color: #fff;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

header h1 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: bold;
}
/* Stili di base */
nav {
  background-color: #007f4f; /* verde */
  color: white;
  padding: 1rem;
  position: relative;
}

.nav-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Menu a hamburger */
.hamburger {
  display: block;
  cursor: pointer;
  font-size: 2rem;
  color: white;
}

/* Nascondi il menu per default su mobile */
.nav-links {
  display: none;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1rem;
}

.nav-links a {
  color: white;
  text-decoration: none;
  font-size: 1.2rem;
}

/* Mostra menu se classe 'active' è presente (aggiunta da JS) */
.nav-links.active {
  display: flex;
}

/* ───────────── DESKTOP (>768px) ───────────── */
@media (min-width: 768px) {
  .hamburger {
    display: none; /* nasconde hamburger su desktop */
  }

  .nav-links {
    display: flex !important; /* sempre visibile */
    flex-direction: row;
    justify-content: center; /* centra le voci */
    gap: 2rem;
    margin-top: 0;
  }
}

/* ========== CONTENUTO PRINCIPALE ========== */
main {
  padding: 40px 20px;
  max-width: 900px;
  margin: 0 auto;
}

/* Breadcrumb */
.breadcrumb {
  font-size: 0.95rem;
  margin: 1rem 0;
  padding: 0.5rem 1rem;
  background-color: #fff;
  border-radius: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;

}

.breadcrumb a {
  text-decoration: none;
  color: #000;
  font-weight: 500;
  transition: color 0.3s ease;
}

.breadcrumb a:hover {
  color: #005fa3;
  text-decoration: underline;
}

.breadcrumb::before {
  content: "📍";
  margin-right: 0.5rem;
}

.breadcrumb a::after {
  content: "»";
  margin-left: 0.5rem;
  color: #000;
}

.breadcrumb a:last-child::after {
  content: "";
}

h2 {
  margin: 0 0 1rem;
  font-size: 1.5em;
}

.header-subtitle {
  font-size: 1rem;
  text-align: center;
  margin-top: 0.5rem;
  color: #fff; /* Puoi cambiare il colore se preferisci */
  font-style: italic; /* facoltativo */
}

.event-box {
  background-color: #f4f4f4;
  border-left: 6px solid #2c4f2c;
  padding: 1.5rem;
  margin: 2rem 0;
  border-radius: 8px;
  font-size: 1rem;
  line-height: 1.6;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.event-box h2 {
  margin-top: 0;
  color: #2c4f2c;
  font-weight: bold;
}

/* ========== GRIGLIA ANTEPRIMA POST ========== */
/* Stili per il contenitore delle schede */
.cards-container {
    display: grid; /* Usa Grid per un layout flessibile */
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); /* Colonne adattive */
    gap: 2rem; /* Spazio tra le schede */
    padding: 2rem 1rem; /* Padding intorno al contenitore */
    max-width: 1200px; /* Larghezza massima del contenitore */
    margin: 0 auto; /* Centra il contenitore */
}

/* Stili base per ogni singola scheda */
.card {
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    overflow: hidden; /* Assicura che l'immagine non sporga */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex; /* Permette al contenuto di essere ben allineato */
    flex-direction: column; /* Impila immagine e contenuto */
}

/* Effetto hover per le schede */
.card:hover {
    transform: translateY(-5px); /* Leggero sollevamento all'hover */
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); /* Ombra più pronunciata */
}

/* Stili per il link all'interno della card */
.card a {
    text-decoration: none; /* Rimuove la sottolineatura dal link */
    color: inherit; /* Mantiene il colore del testo ereditato */
    display: flex;
    flex-direction: column;
    height: 100%; /* Fa in modo che il link occupi tutta la card */
}

/* Stili per l'immagine all'interno della scheda */
.card img {
    width: 100%;
    height: 200px; /* Altezza fissa per le immagini */
    object-fit: cover; /* Ritaglia l'immagine per coprire l'area */
    display: block; /* Rimuove lo spazio sotto l'immagine */
}

/* Stili per il contenitore del testo della scheda */
.card-content {
    padding: 1.5rem;
    flex-grow: 1; /* Permette al contenuto di espandersi e occupare lo spazio rimanente */
    display: flex;
    flex-direction: column;
}

/* Stili per il titolo della scheda */
.card-content h3 {
    margin-top: 0;
    margin-bottom: 0.2rem;
    font-size: 1.4rem;
    color: #333;
    line-height: 1.3;
}

/* Stili per la descrizione della scheda */
.card-content p {
    font-size: 1rem;
    color: #222;
    line-height: 1.5;
    margin-bottom: 1rem;
    flex-grow: 1; /* Permette alla descrizione di occupare lo spazio */
}

/* Stili per il "Leggi di più" */
.read-more {
    font-weight: bold;
    color: #000; /* Un colore che invita al clic */
    align-self: flex-start; /* Allinea a sinistra */
    transition: color 0.3s ease;
}

.read-more:hover {
    color: #000; /* Colore più scuro all'hover */
}

/* Media Queries per la responsività */
@media (max-width: 768px) {
    .cards-container {
        grid-template-columns: 1fr; /* Una singola colonna su schermi piccoli */
        padding: 1rem;
    }

    .card img {
        height: 180px;
    }

    .card-content h3 {
        font-size: 1.3rem;
    }

    .card-content p {
        font-size: 0.95rem;
    }
}
/* ========== GRIGLIA BORGHI ========== */
.borgo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.5rem;
  padding: 1rem 0;
}

.borgo-card {
  background-color: #f8f9fa;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-align: center;
}

.borgo-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
}

.borgo-card img {
  width: 100%;
  height: 160px;
  object-fit: cover;
}

.borgo-card h3 {
  margin: 0.8rem 0 0.4rem;
  font-size: 1.1rem;
  color: #333;
}

.borgo-card p {
  margin-bottom: 1rem;
  font-size: 0.9rem;
  color: #666;
}

.borgo-card a {
  text-decoration: none;
  color: inherit;
}

/* ========== SOCIAL LINK ========== */
.social-links {
  list-style: none;
  padding: 0;
  margin: 1rem 0;
  display: flex;
  justify-content: center;
  gap: 15px;
}

.social-links a {
  color: #222;
  text-decoration: none;
  font-weight: bold;
  transition: color 0.3s ease;
}

.social-links a:hover {
  color: #a9dfbf;
}


/* ========== FOOTER ========== */
.site-footer {
  background-color: #f5f5f5;
  color: #333;
  padding: 2rem 1rem;
  font-size: 0.9rem;
  line-height: 1.6;
}

.footer-content {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.footer-branding,
.footer-nav,
.footer-info {
  flex: 1 1 250px;
}

.footer-logo {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
}

.footer-description {
  margin-bottom: 1rem;
  color: #555;
}

.footer-nav ul {
  background-color: #f5f5f5;
  list-style: none;
  padding: 0;
}

.footer-nav li {
  margin-bottom: 0.5rem;
}

.footer-nav a {
  color: #333;
  text-decoration: none;
}

.footer-nav a:hover {
  text-decoration: underline;
}

.footer-info address {
  font-style: normal;
  margin-bottom: 1rem;
}

.footer-social a {
  color: #333;
  text-decoration: none;
  margin-right: 0.5rem;
}

.footer-bottom {
  text-align: center;
  border-top: 1px solid #ccc;
  padding-top: 1rem;
  margin-top: 2rem;
}

.footer-bottom a {
  color: #333;
  text-decoration: none;
}

 .hero {
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
  display: flex;
  justify-content: center;    /* centra orizzontalmente */
  align-items: center;        /* centra verticalmente */
  min-height: 50vh;
}

.hero-content {
  background: rgba(0, 0, 0, 0.5); /* per leggibilità del testo */
  padding: 2rem;
  border-radius: 1rem;
  max-width: 800px;
  text-align: center;
  color: #fff;
  /* Niente height fissa e niente align-self */
}

.hero-content h1 {
  font-size:2rem;
}
  .hero-content p {
  font-size:1.5rem;
}
.btn-primary {
  display: inline-block;
  margin: 1rem auto auto auto;
  padding: 0.75rem 1.5rem;
  background-color: #d62828; 
  color: #ffffff;
  text-decoration: none;
  border-radius: 0.5rem;
  font-weight: bold;
  font-size:1.2rem;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
  aside {
  background: #f9f9f9;
  padding: 1rem;
  margin-top: 2rem;
}
@media (max-width: 768px) {
  .hero {
    aspect-ratio: auto;     /* disabilita il rapporto fisso */
    height: auto;           /* si adatta al contenuto */
    min-height: 60vh;       /* altezza minima gradevole */
    padding: 1rem;          /* spazio interno per respirare */
  }

  .hero-content {
    width: 100%;
    max-width: 100%;
    padding: 1.5rem;
  }
}
.iaq-box {
  background: #f4f8fb;
  border-left: 4px solid #004225;
  border-top:1px solid #004225;
  border-right:1px solid #004225;
  border-bottom: 1px solid #004225;
  padding: 12px 15px;
  margin-top: 15px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.5;
  color: #333;
}

.iaq-box strong {
  display: block;
  margin-bottom: 5px;
  font-size: 15px;
  color: #1a4f8b;
}

.iaq-box p {
  margin: 0;
}