/* Importazione Font Moderni */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap');

/* Abilita lo scorrimento fluido nativo */
html {
    scroll-behavior: smooth;
}

/* Stile di base per il corpo della pagina */
body {
    font-family: 'Montserrat', sans-serif;
    margin: 0;
    padding: 0;
    background: linear-gradient(135deg, #f8f4ea 0%, #f1e6c8 100%);
    color: #2f2a20;
    line-height: 1.7;
}

h1, h2, h3 {
    font-family: 'Playfair Display', serif;
}

/* Stile per il contenitore centrale */
.container {
    width: 90%; /* Larghezza del contenuto */
    max-width: 1200px; /* Larghezza massima per schermi grandi */
    margin: auto; /* Centra il contenitore orizzontalmente */
    overflow: hidden; /* Assicura che il contenuto non fuoriesca */
}

/* Stile per l'header */
header {
    background: linear-gradient(135deg, #1b4332 0%, #2d6a4f 100%);
    color: #fff;
    padding: 2rem 0;
    text-align: center;
    border-bottom: 4px solid #d4af37;
    box-shadow: 0 8px 24px rgba(27, 67, 50, 0.18);
}

header h1 {
    margin: 0; /* Rimuove i margini predefiniti del titolo */
    font-size: 2.5rem; /* Dimensione del titolo */
}

header p {
    font-size: 1.1rem;
    margin-top: 0.5rem;
    margin-bottom: 1rem;
    font-style: italic;
}

/* Hero Image Style */
.hero {
    background-size: cover;
    background-position: center;
    height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7);
    margin-bottom: 2rem;
}

/* Stile per la navigazione */
nav ul {
    list-style: none; /* Rimuove i pallini della lista */
    padding: 0;
    margin: 0;
    display: flex; /* Rende gli elementi della lista orizzontali */
    justify-content: center; /* Centra gli elementi del menu */
    flex-wrap: wrap; /* Permette agli elementi di andare a capo su schermi piccoli */
}

nav ul li {
    margin: 0 15px; /* Spazio tra gli elementi del menu */
}

nav ul li a {
    color: #fff; /* Colore del testo dei link */
    text-decoration: none; /* Rimuove la sottolineatura dei link */
    padding: 0.5rem 1rem; /* Padding per rendere i link più cliccabili */
    display: block; /* Rende l'intera area del padding cliccabile */
    transition: background-color 0.3s ease; /* Effetto di transizione al passaggio del mouse */
    border-radius: 5px; /* Bordi leggermente arrotondati */
}

nav ul li a:hover {
    background-color: #2d6a4f;
    transform: translateY(-1px);
}

/* Stile per il contenuto principale */
main {
    padding: 2rem 0; /* Padding sopra e sotto il contenuto principale */
}

section,
.card,
.story-card,
.guest-card,
.info-pill,
.poem-block {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

section::before,
.card::before,
.story-card::before,
.guest-card::before,
.info-pill::before,
.poem-block::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: -1;
    background:
        radial-gradient(circle at top left, rgba(255,255,255,0.4), transparent 34%),
        linear-gradient(135deg, rgba(120, 68, 24, 0.10) 0%, rgba(255, 245, 220, 0.55) 45%, rgba(92, 51, 13, 0.08) 100%);
    opacity: 0.95;
}

section {
    background: linear-gradient(135deg, rgba(255,248,227,0.94) 0%, rgba(230, 202, 143, 0.94) 100%);
    padding: 2rem;
    margin-bottom: 1.5rem;
    border-radius: 20px;
    box-shadow: 0 10px 24px rgba(27, 67, 50, 0.08);
    border: 1px solid rgba(212, 175, 55, 0.2);
}

section h2 {
    color: #2d6a4f; 
    text-align: center;
    margin-bottom: 1.5rem;
    position: relative;
}

#cinema-section,
#festival-section {
    text-align: left;
}

#cinema-section h2,
#festival-section h2,
#cinema-section p,
#festival-section p,
#cinema-section h3,
#festival-section h3 {
    text-align: left;
}

section h2::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: #d4af37;
    margin: 10px auto;
    color: #1b4332;
}

.info-pill {
    border-left: 6px solid #d4af37;
    padding: 1.5rem 2rem;
    margin-bottom: 3rem;
    background-color: #fcfcfc;
    border-radius: 0 8px 8px 0;
}

.text-link {
    color: #2d6a4f;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: #d4af37;
    text-underline-offset: 0.2em;
}

.text-link:hover {
    color: #d4af37;
}

/* Navigazione Interna per le sezioni della pagina */
.internal-nav {
    background: #fff;
    padding: 1rem;
    margin-bottom: 2rem;
    border-radius: 5px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    text-align: center;
    position: sticky;
    top: 10px;
    z-index: 1000;
}

.internal-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

.internal-nav a {
    text-decoration: none;
    color: #2d6a4f;
    font-weight: bold;
    font-size: 0.9rem;
    padding: 5px 10px;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.internal-nav a:hover {
    color: #d4af37;
    background-color: #f0f7f4;
}


.sidebar-menu h3 {
    margin: 0;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #1b4332;
}

.sidebar-menu button.toggle-sidebar {
    margin-top: 0.75rem;
    font-size: 0.85rem;
    color: #fff;
    background: #2d6a4f;
    border: 0;
    border-radius: 999px;
    padding: 0.5rem 0.9rem;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(27,67,50,0.25);
}

.sidebar-menu ul {
    list-style: none;
    padding: 0;
    margin: 1rem 0 0;
}

.sidebar-menu li {
    margin: 0.6rem 0;
}

.sidebar-menu a {
    text-decoration: none;
    color: #2d6a4f;
    font-weight: 600;
    display: block;
    padding: 0.55rem 0.75rem;
    background: rgba(212, 175, 55, 0.08);
    border-radius: 12px;
    transition: background-color 0.25s ease, transform 0.2s ease;
}

.sidebar-menu a:hover,
.sidebar-menu a:focus {
    background: rgba(212, 175, 55, 0.18);
    transform: translateX(4px);
}

.sidebar-menu small {
    display: block;
    margin-top: 0.5rem;
    color: #65775d;
    font-size: 0.8rem;
    line-height: 1.4;
}

@media (max-width: 1024px) {
    .sidebar-menu {
        display: none;
    }
}

/* Stile Barra di Ricerca */
.search-wrapper {
    position: relative;
    max-width: 600px;
    margin: 0 auto 2rem;
}

.search-wrapper input {
    width: 100%;
    padding: 12px 45px 12px 20px;
    border: 2px solid #2d6a4f;
    border-radius: 30px;
    font-family: inherit;
    font-size: 1rem;
    outline: none;
    transition: box-shadow 0.3s ease;
}

.search-wrapper input:focus {
    box-shadow: 0 0 8px rgba(212, 175, 55, 0.4);
    border-color: #d4af37;
}

.search-icon {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: #2d6a4f;
}

/* Blocco per la Poesia */
.poem-block {
    background: linear-gradient(135deg, #fffdf5 0%, #f9f4e8 100%);
    padding: 2rem;
    border: 1px solid #e2d1a6;
    border-top: 3px solid #d4af37;
    border-bottom: 3px solid #d4af37;
    margin: 2rem auto;
    max-width: 700px;
    text-align: center;
    font-style: italic;
    line-height: 1.4;
    font-family: 'Playfair Display', serif;
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
}

.poem-block p,
.poem-block h4,
.poem-block p em {
    text-align: center;
}

.info-article {
    background: linear-gradient(135deg, #fff8ef 0%, #f4e9d9 100%);
    border-left: 10px solid #d4af37;
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 18px 40px rgba(0,0,0,0.08);
    position: relative;
}

.info-article h3 {
    font-size: 2rem;
    margin-bottom: 1rem;
    color: #1f4f36;
    letter-spacing: 0.03em;
}

.info-article p {
    color: #4c4c4c;
    line-height: 1.8;
    margin-bottom: 1rem;
    font-size: 1rem;
}

.info-article::before {
    content: 'Storia e costume';
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    background: rgba(212, 175, 55, 0.15);
    color: #7f5c14;
    font-size: 0.8rem;
    letter-spacing: 0.12em;
    padding: 0.35rem 0.8rem;
    border-radius: 999px;
}

.text-center {
    text-align: center;
}

/* Grid per Galleria e Card */
.grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 22px;
}

/* Improve packing to reduce empty gaps when cards span columns */
.grid {
    grid-auto-flow: dense;
    align-items: start;
}

/* Make cards consistent height and flow-friendly */
.card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.festa-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    align-items: stretch;
}

.festa-grid .card {
    height: 100%;
}

.festa-grid .card h3 {
    font-size: 1rem;
    margin-bottom: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.festa-grid .card p {
    margin: 0 0 0.6rem;
    font-size: 0.95rem;
}

@media (max-width: 1024px) {
    .festa-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .festa-grid {
        grid-template-columns: 1fr;
    }
}

.card img {
    width: 100%;
    height: auto;
    max-height: 240px;
    object-fit: cover;
    border-radius: 6px;
}

/* Ensure card body stretches so shorter cards don't create gaps */
.card > p,
.card .card-body {
    flex: 1 1 auto;
}

.gallery-page {
    background: linear-gradient(135deg, #fffdf8 0%, #f6eee0 100%);
    border: 1px solid #e8dcc0;
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 12px 35px rgba(27, 67, 50, 0.08);
}

.gallery-intro {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    margin-bottom: 2rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid #e7ddc9;
}

.gallery-intro-text {
    flex: 1;
}

.gallery-kicker {
    margin: 0 0 0.4rem;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #d4af37;
}

.gallery-intro h2 {
    margin: 0 0 0.6rem;
    color: #1b4332;
}

.gallery-intro p {
    margin: 0;
    color: #5f5f5f;
}

.gallery-highlights {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.highlight-pill {
    min-width: 100px;
    padding: 0.85rem 1rem;
    border-radius: 999px;
    background: #1b4332;
    color: #fff;
    text-align: center;
    box-shadow: 0 8px 18px rgba(27, 67, 50, 0.18);
}

.highlight-pill strong {
    display: block;
    font-size: 1.1rem;
}

.highlight-pill span {
    font-size: 0.8rem;
    opacity: 0.9;
}

.card {
    background: white;
    border: 1px solid #e8dcc0;
    padding: 12px;
    border-radius: 16px;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

.card:hover {
    transform: translateY(-6px) scale(1.01);
    box-shadow: 0 16px 30px rgba(0, 0, 0, 0.12);
}

.card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 10px;
    display: block;
    cursor: pointer;
}

@media (max-width: 768px) {
    .gallery-page {
        padding: 1.2rem;
    }

    .gallery-intro {
        flex-direction: column;
    }

    .gallery-highlights {
        width: 100%;
    }

    .highlight-pill {
        flex: 1;
    }
}

.lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.9);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 2000;
}

.lightbox.active {
    display: flex;
}

.lightbox img {
        max-width: 95vw;
        max-height: 95vh;
        width: auto;
        height: auto;
        object-fit: contain;
        border-radius: 8px;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    }

.lightbox-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: transparent;
    border: none;
    color: white;
    font-size: 2rem;
    cursor: pointer;
}

/* Stile specifico per le card degli ospiti */
.guest-card {
    background: #fffdf5; /* Un bianco crema più caldo per richiamare il western */
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* Stile per le immagini degli ospiti */
.guest-img {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 10px;
    border: 2px solid #d4af37; /* Bordino oro per richiamare il tema */
}

/* Alternanza dei colori dei bordi per dare dinamismo */
.guest-card:nth-child(odd) { border-top: 6px solid #d4af37; }  /* Oro */
.guest-card:nth-child(even) { border-top: 6px solid #2d6a4f; } /* Verde */

/* Stile per la stellina accanto al nome */
.guest-star {
    color: #d4af37;
    margin-right: 5px;
    font-size: 0.9rem;
}

/* Classe specifica per l'effetto pergamena */
.parchment-card {
    background: linear-gradient(to bottom right, #fcf5e5, #f5ecd5) !important;
    border: 1px solid #e2d1a6 !important;
    border-left: 6px solid #d4af37 !important;
    border-radius: 4px;
    box-shadow: 5px 5px 15px rgba(0,0,0,0.05), inset 0 0 20px rgba(212, 175, 55, 0.05);
}

/* Stile per l'icona della campana */
.bell-icon {
    color: #d4af37; /* Oro */
    margin-right: 5px;
    font-size: 0.9rem;
}

/* Icone specifiche per i titoli dei mestieri */
.craft-title-icon {
    color: #d4af37;
    margin-right: 10px;
}

/* Mini galleria per i mestieri */
.craft-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
    margin-top: 15px;
}

.craft-gallery img {
    width: 100%;
    height: 100px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid #e2d1a6;
    transition: all 0.3s ease;
    cursor: pointer;
}

.craft-gallery img:hover {
    transform: scale(1.05);
    border-color: #d4af37;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* Stile per le immagini nelle sezioni Tradizioni */
.tradition-img {
    width: 100%;
    max-width: 600px; /* Limita la larghezza per non essere troppo grandi su desktop */
    height: auto;
    border-radius: 8px;
    margin: 1.5rem auto; /* Centra l'immagine e aggiunge spazio */
    display: block; /* Per permettere il margin: auto */
}
.card:hover {
    transform: translateY(-5px);
}

/* Stile per il footer */
footer {
    background: #1b4332; /* Uguale all'header */
    color: #fff;
    text-align: center;
    padding: 3rem 0;
    margin-top: 2rem; /* Spazio sopra il footer */
    border-top: 4px solid #d4af37;
}

footer p {
    margin: 0.5rem 0;
    font-size: 0.9rem;
}

/* Icone Social */
.social-links {
    margin-top: 10px;
}

.social-links a {
    color: #fff;
    font-size: 1.5rem;
    margin: 0 10px;
    transition: all 0.3s;
}

.social-links a:hover {
    color: #d4af37;
    transform: translateY(-3px);
}

/* Carosello (Struttura Base) */
.carousel-container {
    width: 100%;
    height: 380px;
    background: #f7f1e3;
    margin: 24px 0 36px;
    border-radius: 22px;
    border: 1px solid #e7dcc4;
    overflow: hidden;
    position: relative;
    box-shadow: 0 16px 35px rgba(27, 67, 50, 0.12);
    padding: 12px;
}

.pill-carousel {
    height: 360px;
    background: #fcfaf6;
    border-radius: 22px;
}

.swiper-slide {
    overflow: hidden;
    height: auto;
}

.swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 16px;
    cursor: zoom-in;
    transition: transform 0.45s ease;
}

.swiper-slide:hover img {
    transform: scale(1.03);
}

.swiper-button-next, .swiper-button-prev {
    color: #fff !important;
    background: rgba(27, 67, 50, 0.7);
    width: 42px;
    height: 42px;
    border-radius: 50%;
}

.swiper-button-next:after, .swiper-button-prev:after {
    font-size: 18px;
}

.swiper-pagination-bullet-active {
    background: #d4af37 !important;
}

.image-modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.92);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    z-index: 3000;
}

.image-modal.active {
    display: flex;
}

.image-modal img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 16px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
}

.image-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: transparent;
    border: none;
    color: white;
    font-size: 2.2rem;
    cursor: pointer;
}

@media (max-width: 768px) {
    .page-nav {
        top: auto;
        bottom: 20px;
        transform: none;
    }

    .carousel-container {
        height: 280px;
        padding: 8px;
    }

    .pill-carousel {
        height: 260px;
    }
}

/* Mappa */
.map-container {
    width: 100%;
    margin-top: 1.5rem;
    border-radius: 10px;
    overflow: hidden;
    border: 2px solid #2d6a4f;
}

.map-container iframe {
    display: block;
}

/* Stile per i bottoni (se ne aggiungeremo) */
.button {
    display: inline-block;
    background-color: #d4af37; /* Oro per richiamare il tema */
    color: #1b4332;
    padding: 12px 25px;
    text-decoration: none;
    border-radius: 30px;
    font-weight: bold;
    margin-top: 1rem;
    transition: all 0.3s ease;
    border: 2px solid #d4af37;
}

.button:hover {
    background-color: #1b4332;
    color: #fff;
}

.button.small {
    padding: 8px 15px;
    font-size: 0.9rem;
}

/* Trinità Days - Layout più narrativo */
.trinity-hero {
    background: linear-gradient(135deg, rgba(31, 53, 42, 0.65), rgba(70, 88, 64, 0.45)), url('img/Trinità days/Lo_chiamavano_Trinità.png') center/cover;
    border-radius: 24px;
    padding: 3rem 2rem;
    margin: 1rem 0 2rem;
    color: #fff;
    box-shadow: 0 18px 32px rgba(0, 0, 0, 0.20);
    background-blend-mode: multiply, normal;
    border: 2px solid rgba(212, 175, 55, 0.25);
}

.trinity-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0.35));
    pointer-events: none;
}

.trinity-hero-content {
    position: relative;
    z-index: 1;
    max-width: 720px;
}

.trinity-hero .gallery-kicker {
    color: #f2d67a;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
}

.trinity-hero .page-title {
    color: #fff;
    margin: 0.2rem 0 0.8rem;
    font-size: 2.8rem;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.45);
}

.trinity-hero p {
    margin: 0;
    font-size: 1.05rem;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* ===== LAYOUT DINAMICO - Pull Quote, Zigzag, Floating Images ===== */

/* Pull Quote / Highlight elegante */
.pull-quote {
    background: linear-gradient(135deg, #fffef9 0%, #faf7f0 100%);
    border-left: 6px solid #d4af37;
    padding: 1.5rem 2rem;
    margin: 2rem auto;
    max-width: 680px;
    box-shadow: 0 8px 20px rgba(212, 175, 55, 0.15);
    border-radius: 0 8px 8px 0;
    position: relative;
}

.pull-quote::before {
    content: '"';
    position: absolute;
    left: 0.8rem;
    top: -1.5rem;
    font-size: 4rem;
    color: rgba(212, 175, 55, 0.25);
    font-family: 'Playfair Display', serif;
}

.pull-quote p {
    margin: 0;
    font-size: 1.15rem;
    font-style: italic;
    color: #1b4332;
    line-height: 1.6;
}

/* Layout a zigzag - alternanza sinistra/destra */
.story-card.zigzag-left {
    text-align: left;
}

.story-card.zigzag-right {
    text-align: right;
}

.story-card.zigzag-left p {
    max-width: 70%;
    margin-left: 0;
    margin-right: auto;
}

.story-card.zigzag-right p {
    max-width: 70%;
    margin-left: auto;
    margin-right: 0;
}

/* Immagine floating - testo che la circonda */
.floating-image {
    float: left;
    margin: 0 2rem 1.5rem 0;
    max-width: 45%;
    border-radius: 12px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
    overflow: hidden;
}

.floating-image.right {
    float: right;
    margin: 0 0 1.5rem 2rem;
}

.storia-image {
    width: 100%;
    height: auto;
    border-radius: 12px;
    object-fit: cover;
    display: block;
}

@media (max-width: 768px) {
    .floating-image,
    .floating-image.right {
        float: none;
        max-width: 100%;
        margin: 1.5rem 0;
    }
    
    .story-card.zigzag-left p,
    .story-card.zigzag-right p {
        max-width: 100%;
        text-align: left;
    }
}

    line-height: 1.75;
    color: #f5f1dd;
}

/* Tradizioni - Hero banner using Banner1 image */
.tradizioni-hero {
    background: linear-gradient(135deg, rgba(27, 67, 50, 0.3), rgba(212, 175, 55, 0.15)), url('tradizioni/Banner1.jpg') center/cover;
    border-radius: 24px;
    padding: 2.8rem 2rem;
    margin: 1rem 0 2rem;
    color: #fff;
    box-shadow: 0 16px 35px rgba(27, 67, 50, 0.18);
    background-blend-mode: overlay;
    background-attachment: fixed;
    border: 2px solid rgba(212, 175, 55, 0.2);
}

.tradizioni-hero-content {
    max-width: 760px;
    text-align: left;
}

.tradizioni-hero .gallery-kicker {
    color: #f2d67a;
}

.tradizioni-hero .page-title {
    color: #fff;
    margin: 0.2rem 0 0.6rem;
    font-size: 2.6rem;
    font-family: 'Playfair Display', serif;
    text-shadow: 1px 1px 6px rgba(0,0,0,0.45);
}

.tradizioni-page section h2,
.tradizioni-page section h3 {
    text-align: left;
    font-family: 'Playfair Display', serif;
    color: #1b4332;
    margin-top: 0;
}

.tradizioni-page section p,
.tradizioni-page .info-pill p,
.tradizioni-page .poem-block p,
.tradizioni-page .tradition-img + p {
    text-align: left;
}

.tradizioni-page section h2 {
    font-size: 2.4rem;
}

.story-card {
    background: linear-gradient(145deg, #fffdf8 0%, #f8efe0 100%);
    border: 1px solid #e7dcc4;
    border-radius: 20px;
    padding: 2rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 10px 24px rgba(27,67,50,0.07);
}

.story-card h2,
.story-card h3 {
    color: #1b4332;
    text-align: left;
}

.story-card p {
    color: #4d4d4d;
    text-align: left;
}

.story-card strong {
    color: #2d6a4f;
}

.saloon-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(255,248,232,0.95) 0%, rgba(244,226,187,0.95) 100%);
}

.saloon-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,0.06) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.06) 100%);
    pointer-events: none;
}

.card-badge {
    display: inline-block;
    padding: 0.4rem 0.8rem;
    border-radius: 999px;
    background: #1b4332;
    color: #fff;
    font-size: 0.8rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 0.8rem;
}

.timeline-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 2rem 0 1rem;
}

.timeline-item {
    flex: 1;
    min-width: 180px;
    padding: 1rem 1.1rem;
    border-radius: 14px;
    background: #fff8e8;
    border: 1px solid #e3c78a;
    box-shadow: 0 8px 18px rgba(27,67,50,0.08);
}

.timeline-item.active {
    background: linear-gradient(135deg, #2d6a4f, #1b4332);
    color: #fff;
}

.timeline-item span {
    display: block;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    opacity: 0.85;
    margin-bottom: 0.3rem;
}

.poster-button {
    border-radius: 999px;
    box-shadow: 0 10px 20px rgba(27,67,50,0.16);
    background: linear-gradient(135deg, #d4af37, #b18414);
    color: #fff;
    border-color: #b18414;
}

.poster-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 24px rgba(27,67,50,0.2);
}

/* Stile per il Calendario Interattivo (FullCalendar) */
#event-calendar {
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 1.5rem;
    margin: 2rem auto;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.fc-toolbar-title {
    font-family: 'Playfair Display', serif !important;
    color: #1b4332;
}

.fc-button-primary {
    background-color: #2d6a4f !important;
    border-color: #1b4332 !important;
}

.fc-button-primary:hover {
    background-color: #1b4332 !important;
}

/* Media Queries per la responsività */
@media (max-width: 768px) {
    header h1 {
        font-size: 2rem;
    }

    nav ul {
        flex-direction: column; /* Impila gli elementi del menu verticalmente su schermi piccoli */
        align-items: center; /* Centra gli elementi */
    }

    nav ul li {
        margin: 0.5rem 0; /* Spazio verticale tra gli elementi */
        width: 100%; /* Occupano tutta la larghezza disponibile */
    }

    nav ul li a {
        padding: 0.8rem 1rem;
        text-align: center;
    }
}

/* Stili specifici per la pagina Info & Contatti */
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-top: 2rem;
}

.contact-info-card {
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    border-left: 6px solid #2d6a4f;
}

.contact-info-card h3 {
    color: #1b4332;
    margin-top: 0;
    margin-bottom: 1.5rem;
    border-bottom: 2px solid #f0f7f4;
    padding-bottom: 0.5rem;
    font-family: 'Playfair Display', serif;
}

.info-list {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem 0;
}

.info-list li {
    margin-bottom: 1.2rem;
    display: flex;
    align-items: flex-start;
}

.info-list li i {
    color: #d4af37;
    font-size: 1.2rem;
    margin-right: 15px;
    margin-top: 4px;
    width: 20px;
    text-align: center;
}

.info-list li span {
    color: #555;
}

.info-list li strong {
    color: #1b4332;
    display: block;
}

.contact-form-container {
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    border-left: 6px solid #d4af37;
}

.contact-form-container h3 {
    color: #1b4332;
    margin-top: 0;
    margin-bottom: 1.5rem;
    border-bottom: 2px solid #f9f4e8;
    padding-bottom: 0.5rem;
    font-family: 'Playfair Display', serif;
}

.form-group {
    margin-bottom: 1.2rem;
}

.form-group label {
    display: block;
    font-weight: bold;
    color: #1b4332;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-family: inherit;
    font-size: 0.95rem;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.form-group input:focus,
.form-group textarea:focus {
    border-color: #2d6a4f;
    outline: none;
    box-shadow: 0 0 8px rgba(45, 106, 79, 0.15);
}

.form-submit-btn {
    background-color: #2d6a4f;
    color: #fff;
    border: none;
    padding: 12px 25px;
    border-radius: 30px;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 100%;
}

.form-submit-btn:hover {
    background-color: #1b4332;
}

/* Responsive per la pagina Info */
@media (max-width: 768px) {
    .contact-grid {
        grid-template-columns: 1fr;
    }
}

/* Stile per i titoli principali delle pagine senza banner hero */
.page-title {
    text-align: center;
    color: #2d6a4f;
    margin-top: 1.5rem;
    margin-bottom: 2.5rem;
    font-size: 2.8rem;
    font-family: 'Playfair Display', serif;
}

.storia-hero {
    background: linear-gradient(135deg, rgba(27, 67, 50, 0.8), rgba(212, 175, 55, 0.35)), url('tradizioni/Banner1.jpg') center/cover;
    border-radius: 24px;
    padding: 2.8rem 2rem;
    margin: 1rem 0 2rem;
    color: #fff;
    box-shadow: 0 16px 35px rgba(27, 67, 50, 0.18);
    background-blend-mode: multiply, normal;
}

.storia-hero-content {
    max-width: 760px;
    text-align: left;
}

.storia-hero .gallery-kicker,
.storia-hero .page-title,
.storia-hero p {
    text-align: left;
}

.storia-hero .page-title {
    color: #fff;
    margin-bottom: 1rem;
    font-size: 3rem;
}

.storia-hero p {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.7;
}

.story-card ul {
    margin-left: 1.2rem;
}

.story-card ul li {
    margin-bottom: 0.8rem;
}

.storia-image {
    width: 100%;
    height: auto;
    border-radius: 12px;
    border: 2px solid #d4af37;
    box-shadow: 0 8px 22px rgba(27, 67, 50, 0.16);
}

.card-badge {
    display: inline-block;
    padding: 0.4rem 0.9rem;
    border-radius: 999px;
    background: #1b4332;
    color: #fff;
    font-size: 0.8rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.page-title::after {
    content: '';
    display: block;
    width: 80px;
    height: 4px;
    background: #d4af37;
    margin: 15px auto 0;
}

/* Pagina L'angolo deju cammoratano */
.angolo-page {
    --angolo-forest: #244b3a;
    --angolo-forest-dark: #19372b;
    --angolo-stone: #716f64;
    --angolo-cream: #f4f0e7;
    --angolo-paper: #fbf9f3;
    --angolo-earth: #a76f48;
    background-color: var(--angolo-cream);
    background-image: radial-gradient(rgba(81, 76, 62, 0.075) 0.6px, transparent 0.6px);
    background-size: 8px 8px;
    color: #33372f;
    font-family: 'Montserrat', sans-serif;
}

.angolo-page header {
    padding: 1.35rem 0 1.1rem;
    background: var(--angolo-forest-dark);
    border-bottom: 3px solid var(--angolo-earth);
    box-shadow: 0 8px 24px rgba(25, 55, 43, 0.18);
}

.angolo-page header h1 {
    margin-bottom: 1rem;
    font-size: 1.8rem;
    font-weight: 400;
}

.angolo-page header nav ul {
    gap: 0.25rem;
}

.angolo-page header nav ul li {
    margin: 0;
}

.angolo-page header nav ul li a {
    padding: 0.55rem 0.8rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

.angolo-page header nav ul li a:hover,
.angolo-page header nav ul li a[href="angolo-cammoratano.html"] {
    background: rgba(255, 255, 255, 0.12);
}

.angolo-page main {
    padding: 0 0 3rem;
}

.angolo-page .angolo-hero {
    display: flex;
    min-height: 430px;
    align-items: center;
    margin: 0 0 2.5rem;
    padding: 3rem 0;
    border: 0;
    border-radius: 0;
    background-color: var(--angolo-forest-dark);
    background-image: linear-gradient(90deg, rgba(20, 39, 31, 0.82), rgba(20, 39, 31, 0.16)), url('img/cameratavecchia1.jpg');
    background-position: center 48%;
    background-size: cover;
    box-shadow: inset 0 -1px rgba(255, 255, 255, 0.2);
}

.angolo-page .angolo-hero::before {
    display: none;
}

.angolo-hero-content {
    width: 90%;
}

.angolo-page .angolo-hero .page-title {
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-size: 3.6rem;
    font-weight: 400;
    line-height: 1.12;
    text-align: left;
    text-shadow: 0 3px 22px rgba(0, 0, 0, 0.3);
}

.angolo-page .angolo-hero .page-title::after {
    width: 74px;
    height: 3px;
    margin: 1.25rem 0 0;
    background: #d5ad78;
}

.angolo-page .container:not(.angolo-hero-content) {
    overflow: visible;
}

.angolo-page .internal-nav {
    top: 0.75rem;
    margin: 0 0 2.5rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 6px;
    background: rgba(251, 249, 243, 0.97);
    box-shadow: 0 8px 24px rgba(43, 48, 39, 0.08);
    backdrop-filter: blur(8px);
}

.angolo-page .internal-nav ul {
    gap: 0.35rem;
}

.angolo-page .internal-nav a {
    display: block;
    padding: 0.55rem 0.8rem;
    border-radius: 4px;
    color: var(--angolo-forest);
    font-size: 0.88rem;
    transition: color 180ms ease, background-color 180ms ease;
}

.angolo-page .internal-nav a:hover {
    color: var(--angolo-forest-dark);
    background: #e9eee7;
}

.angolo-page .internal-nav [role="tab"][aria-selected="true"] {
    background: var(--angolo-forest);
    color: #fff;
    box-shadow: 0 4px 12px rgba(36, 75, 58, 0.18);
}

.angolo-page .internal-nav [role="tab"]:focus-visible {
    outline: 2px solid var(--angolo-earth);
    outline-offset: 3px;
}

.angolo-page [role="tabpanel"][hidden] {
    display: none;
}

.angolo-page [role="tabpanel"]:not([hidden]) {
    animation: angolo-panel-enter 220ms ease both;
}

@keyframes angolo-panel-enter {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.angolo-page section:not(.angolo-hero) {
    margin-bottom: 2rem;
    padding: clamp(1.25rem, 3vw, 2.25rem);
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 8px;
    background: rgba(251, 249, 243, 0.94);
    box-shadow: 0 12px 30px rgba(43, 48, 39, 0.065);
}

.angolo-page section:not(.angolo-hero)::before,
.angolo-page .card::before {
    display: none;
}

.angolo-page section h2 {
    margin: 0 0 1.25rem;
    color: var(--angolo-forest);
    font-size: 2rem;
    font-weight: 400;
    text-align: left;
}

.angolo-page section h2::after {
    width: 52px;
    height: 2px;
    margin: 0.8rem 0 0;
    background: var(--angolo-earth);
}

.angolo-page section > p {
    max-width: 780px;
    margin: 0 auto 1.7rem;
    color: #55584f;
}

.angolo-page .grid {
    gap: 1.15rem;
}

.angolo-page .card.parchment-card {
    padding: 1.4rem;
    border: 1px solid rgba(113, 111, 100, 0.2) !important;
    border-left: 3px solid var(--angolo-earth) !important;
    border-radius: 6px;
    background: var(--angolo-paper) !important;
    box-shadow: 0 6px 18px rgba(43, 48, 39, 0.055);
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.angolo-page .card.parchment-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 25px rgba(43, 48, 39, 0.11);
}

.angolo-page .card h3 {
    color: var(--angolo-forest);
    font-size: 1.35rem;
    font-weight: 400;
}

.angolo-page .card h4 {
    color: #67533f;
}

.angolo-page .card img {
    transition: transform 250ms ease, filter 250ms ease;
}

.angolo-page .card img:hover {
    filter: saturate(1.08);
    transform: scale(1.015);
}

.angolo-page .info-article {
    max-width: 920px;
    margin-inline: auto;
    border-left-width: 3px;
    border-radius: 6px;
    background: var(--angolo-paper);
    box-shadow: 0 6px 18px rgba(43, 48, 39, 0.055);
}

.angolo-page .info-article h3 {
    color: var(--angolo-forest);
    font-size: 1.65rem;
    letter-spacing: 0;
}

.angolo-page .info-article p {
    color: #4a4c46;
    line-height: 1.85;
}

.angolo-page .search-wrapper input {
    border: 1px solid rgba(113, 111, 100, 0.42);
    border-radius: 5px;
    background: #fffefa;
}

.angolo-page .search-wrapper input:focus {
    border-color: var(--angolo-forest);
    box-shadow: 0 0 0 3px rgba(36, 75, 58, 0.12);
}

.angolo-page .search-icon,
.angolo-page .craft-title-icon {
    color: var(--angolo-forest);
}

.angolo-page .poem-block {
    border: 1px solid rgba(113, 111, 100, 0.24);
    border-top: 2px solid var(--angolo-earth);
    border-bottom: 2px solid var(--angolo-earth);
    background: #f2eee4;
    box-shadow: none;
}

.angolo-page .button {
    border-radius: 4px;
    background: var(--angolo-forest);
    transition: background-color 180ms ease, transform 180ms ease;
}

.angolo-page .button:hover {
    background: var(--angolo-forest-dark);
    transform: translateY(-2px);
}

.angolo-page footer {
    margin-top: 0;
    border-top: 3px solid var(--angolo-earth);
    background: var(--angolo-forest-dark);
}

@media (max-width: 768px) {
    .angolo-page .angolo-hero {
        min-height: 340px;
        background-position: 58% center;
    }

    .angolo-page .angolo-hero .page-title {
        max-width: 560px;
        font-size: 2.7rem;
    }

    .angolo-page .internal-nav {
        position: static;
    }

    .angolo-page section:not(.angolo-hero) {
        padding: 1.25rem;
    }
}

@media (max-width: 480px) {
    .angolo-page header h1 {
        font-size: 1.45rem;
    }

    .angolo-page header nav ul {
        gap: 0.15rem;
    }

    .angolo-page header nav ul li a {
        padding: 0.45rem 0.55rem;
        font-size: 0.8rem;
    }

    .angolo-page .angolo-hero {
        min-height: 290px;
    }

    .angolo-page .angolo-hero .page-title {
        font-size: 2.2rem;
    }

    .angolo-page section h2 {
        font-size: 1.65rem;
    }

    .angolo-page .card.parchment-card {
        padding: 1.05rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .angolo-page *,
    .angolo-page *::before,
    .angolo-page *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .angolo-page [role="tabpanel"]:not([hidden]) {
        animation: none;
    }
}

/* Home page */
.home-page {
    --home-forest: #244b3a;
    --home-forest-dark: #19372b;
    --home-stone: #716f64;
    --home-cream: #f4f0e7;
    --home-paper: #fbf9f3;
    --home-earth: #a76f48;
    background-color: var(--home-cream);
    background-image: radial-gradient(rgba(81, 76, 62, 0.075) 0.6px, transparent 0.6px);
    background-size: 8px 8px;
    color: #33372f;
}

.home-page header {
    padding: 1.15rem 0 1rem;
    background: var(--home-forest-dark);
    border-bottom: 3px solid var(--home-earth);
    box-shadow: 0 8px 24px rgba(25, 55, 43, 0.18);
}

.home-page header h1 {
    margin-bottom: 0.9rem;
    font-size: 1.75rem;
    font-weight: 400;
}

.home-page header nav ul {
    gap: 0.25rem;
}

.home-page header nav ul li {
    margin: 0;
}

.home-page header nav ul li a {
    padding: 0.55rem 0.8rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

.home-page header nav ul li a:hover {
    background: rgba(255, 255, 255, 0.12);
}

.home-page main {
    padding: 0 0 3rem;
}

.home-page .home-hero {
    display: flex;
    min-height: 510px;
    align-items: center;
    margin: 0 0 2rem;
    padding: 3.5rem 0;
    border: 0;
    border-radius: 0;
    background-color: var(--home-forest-dark);
    background-image: linear-gradient(90deg, rgba(20, 39, 31, 0.76), rgba(20, 39, 31, 0.08)), url('img/Home/Home2.jpg');
    background-position: center 68%;
    background-size: cover;
    box-shadow: inset 0 -1px rgba(255, 255, 255, 0.2);
}

.home-page .home-hero::before {
    display: none;
}

.home-hero-content {
    width: 90%;
}

.home-page .home-hero h2 {
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-size: 4rem;
    font-weight: 400;
    line-height: 1.08;
    text-align: left;
    text-shadow: 0 3px 22px rgba(0, 0, 0, 0.32);
}

.home-page .home-hero h2::after {
    content: '';
    display: block;
    width: 74px;
    height: 3px;
    margin: 1.25rem 0 1rem;
    background: #d5ad78;
}

.home-page .home-hero p {
    max-width: 620px;
    margin: 0;
    color: #f6f1e7;
    font-size: 1.15rem;
    line-height: 1.65;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.home-page .container:not(.home-hero-content) {
    overflow: visible;
}

.home-page .info-pill.home-feature {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    align-items: center;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    margin: 0 0 1.5rem;
    padding: clamp(1.5rem, 3.5vw, 3rem);
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-left: 3px solid var(--home-earth);
    border-radius: 8px;
    background: rgba(251, 249, 243, 0.96);
    box-shadow: 0 12px 30px rgba(43, 48, 39, 0.07);
}

.home-page .info-pill.home-feature::before,
.home-page .home-activities::before,
.home-page .home-map::before {
    display: none;
}

.home-page .home-feature-copy {
    grid-column: 1;
    grid-row: 1;
}

.home-page .home-feature-reverse .home-feature-copy {
    grid-column: 2;
}

.home-page .home-feature .carousel-container {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    height: 340px;
    margin: 0;
    padding: 8px;
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 6px;
    background: #e9e5d9;
    box-shadow: 0 12px 26px rgba(25, 55, 43, 0.14), inset 0 0 0 1px rgba(255, 255, 255, 0.45);
    transition: box-shadow 220ms ease;
}

.home-page .home-feature .carousel-container:hover {
    box-shadow: 0 16px 32px rgba(25, 55, 43, 0.18), inset 0 0 0 1px rgba(255, 255, 255, 0.55);
}

.home-page .home-feature-reverse .carousel-container {
    grid-column: 1;
}

.home-page .home-feature .swiper-slide img {
    border-radius: 3px;
    transition: transform 450ms cubic-bezier(0.2, 0.7, 0.25, 1), filter 450ms ease;
    will-change: transform;
}

.home-page .home-feature .swiper-slide:hover img {
    filter: saturate(1.08);
    transform: scale(1.025);
}

.home-page .home-feature h2,
.home-page .home-activities h2,
.home-page .home-map h2 {
    margin: 0 0 1rem;
    color: var(--home-forest);
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.25;
    text-align: left;
}

.home-page .home-feature h2::after,
.home-page .home-activities h2::after,
.home-page .home-map h2::after {
    content: '';
    display: block;
    width: 48px;
    height: 2px;
    margin: 0.8rem 0 0;
    background: var(--home-earth);
}

.home-page .home-feature p,
.home-page .home-activities > p,
.home-page .home-map > p {
    max-width: 600px;
    margin: 0 0 1rem;
    color: #55584f;
    line-height: 1.8;
    text-align: left;
}

.home-page .home-feature .text-center {
    text-align: left;
}

.home-page .home-feature .button,
.home-page .home-activities .button {
    border-radius: 4px;
    background: var(--home-forest);
    color: #fff;
    transition: background-color 180ms ease, transform 180ms ease;
}

.home-page .home-feature .button:hover,
.home-page .home-activities .button:hover {
    background: var(--home-forest-dark);
    transform: translateY(-2px);
}

.home-page .home-feature .swiper-button-next,
.home-page .home-feature .swiper-button-prev {
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    background: rgba(25, 55, 43, 0.7);
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(6px);
    transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.home-page .home-feature .swiper-button-next:hover,
.home-page .home-feature .swiper-button-prev:hover {
    border-color: rgba(255, 255, 255, 0.85);
    background: rgba(167, 111, 72, 0.92);
    transform: scale(1.06);
}

.home-page .home-feature .swiper-button-next:focus-visible,
.home-page .home-feature .swiper-button-prev:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

.home-page .home-feature .swiper-pagination {
    left: 50%;
    bottom: 8px;
    display: flex;
    width: max-content;
    max-width: calc(100% - 1rem);
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 0.35rem 0.55rem;
    overflow: visible;
    transform: translateX(-50%);
    border: 1px solid rgba(255, 255, 255, 0.36);
    border-radius: 999px;
    background: rgba(25, 55, 43, 0.72);
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(6px);
}

.home-page .home-feature .swiper-pagination-bullet {
    width: 7px;
    height: 7px;
    margin: 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.85);
    background: rgba(255, 255, 255, 0.58);
    opacity: 1;
    transition: background-color 180ms ease, transform 180ms ease;
}

.home-page .home-feature .swiper-pagination-bullet:hover {
    background: #d5ad78;
    transform: scale(1.2);
}

.home-page .home-feature .swiper-pagination-bullet-active {
    border-color: #d5ad78;
    background: #d5ad78 !important;
    transform: scale(1.15);
}

.home-page .home-activities,
.home-page .home-map {
    margin: 2.5rem 0 1.5rem;
    padding: clamp(1.5rem, 3.5vw, 3rem);
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 8px;
    background: rgba(251, 249, 243, 0.96);
    box-shadow: 0 12px 30px rgba(43, 48, 39, 0.07);
}

.home-page .home-activities .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
}

.home-page .home-activities .card {
    padding: 1.4rem;
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-top: 2px solid var(--home-earth);
    border-radius: 6px;
    background: var(--home-paper);
    box-shadow: 0 6px 18px rgba(43, 48, 39, 0.055);
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.home-page .home-activities .card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 25px rgba(43, 48, 39, 0.11);
}

.home-page .home-activities .card h3 {
    color: var(--home-forest);
    font-size: 1.4rem;
}

.home-page .home-activities .card p {
    color: #55584f;
}

.home-page .home-activities .card p a {
    color: var(--home-forest);
}

.home-page .home-map .map-container {
    margin-top: 1.25rem;
    border: 1px solid rgba(113, 111, 100, 0.3);
    border-radius: 6px;
    box-shadow: 0 8px 22px rgba(43, 48, 39, 0.08);
}

.home-page .home-map .map-container iframe {
    height: 380px;
}

.home-page footer {
    margin-top: 0;
    border-top: 3px solid var(--home-earth);
    background: var(--home-forest-dark);
}

@media (max-width: 900px) {
    .home-page .info-pill.home-feature {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.25rem;
    }

    .home-page .home-feature-copy,
    .home-page .home-feature-reverse .home-feature-copy,
    .home-page .home-feature .carousel-container,
    .home-page .home-feature-reverse .carousel-container {
        grid-column: 1;
    }

    .home-page .home-feature .carousel-container {
        grid-row: 2;
        height: 300px;
    }
}

@media (max-width: 640px) {
    .home-page header h1 {
        font-size: 1.45rem;
    }

    .home-page header nav ul {
        gap: 0.15rem;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
    }

    .home-page header nav ul li {
        width: auto;
        margin: 0;
    }

    .home-page header nav ul li a {
        padding: 0.45rem 0.55rem;
        font-size: 0.8rem;
        white-space: nowrap;
    }

    .home-page .home-hero {
        min-height: 410px;
        background-position: 58% center;
    }

    .home-page .home-hero h2 {
        font-size: 2.7rem;
    }

    .home-page .home-hero p {
        max-width: 340px;
        font-size: 1rem;
    }

    .home-page .home-feature h2,
    .home-page .home-activities h2,
    .home-page .home-map h2 {
        font-size: 1.65rem;
    }

    .home-page .info-pill.home-feature,
    .home-page .home-activities,
    .home-page .home-map {
        padding: 1.2rem;
    }

    .home-page .home-feature .carousel-container {
        height: 250px;
    }

    .home-page .home-activities .grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .home-page .home-map .map-container iframe {
        height: 280px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-page *,
    .home-page *::before,
    .home-page *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Pagina Storia */
.storia-page {
    --storia-forest: #244b3a;
    --storia-forest-dark: #19372b;
    --storia-stone: #716f64;
    --storia-cream: #f4f0e7;
    --storia-paper: #fbf9f3;
    --storia-earth: #a76f48;
    background-color: var(--storia-cream);
    background-image: radial-gradient(rgba(81, 76, 62, 0.075) 0.6px, transparent 0.6px);
    background-size: 8px 8px;
    color: #33372f;
}

.storia-page header {
    padding: 1.15rem 0 1rem;
    background: var(--storia-forest-dark);
    border-bottom: 3px solid var(--storia-earth);
    box-shadow: 0 8px 24px rgba(25, 55, 43, 0.18);
}

.storia-page header h1 {
    margin-bottom: 0.9rem;
    font-size: 1.75rem;
    font-weight: 400;
}

.storia-page header nav ul {
    gap: 0.25rem;
}

.storia-page header nav ul li {
    margin: 0;
}

.storia-page header nav ul li a {
    padding: 0.55rem 0.8rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

.storia-page header nav ul li a:hover,
.storia-page header nav ul li a[href="storia.html"] {
    background: rgba(255, 255, 255, 0.12);
}

.storia-page main {
    padding: 0 0 3rem;
}

.storia-page .container {
    overflow: visible;
}

.storia-page .storia-hero {
    display: flex;
    min-height: 430px;
    align-items: center;
    margin: 0 0 2.5rem;
    padding: 3.5rem 0;
    border-radius: 0;
    background-color: var(--storia-forest-dark);
    background-image: linear-gradient(90deg, rgba(20, 39, 31, 0.84), rgba(20, 39, 31, 0.16)), url('img/cameratavecchia1.jpg');
    background-position: center 54%;
    background-size: cover;
    box-shadow: inset 0 -1px rgba(255, 255, 255, 0.2);
}

.storia-page .storia-hero-content {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.storia-page .storia-hero .gallery-kicker {
    margin: 0 0 0.9rem;
    color: #e4c69e;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.storia-page .storia-hero .page-title {
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-size: 3.6rem;
    font-weight: 400;
    line-height: 1.1;
    text-align: left;
    text-shadow: 0 3px 22px rgba(0, 0, 0, 0.32);
}

.storia-page .storia-hero .page-title::after {
    width: 74px;
    height: 3px;
    margin: 1.25rem 0 1rem;
    background: #d5ad78;
}

.storia-page .storia-hero-content > p:last-child {
    max-width: 700px;
    margin: 0;
    color: #f6f1e7;
    font-size: 1.08rem;
    line-height: 1.7;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.storia-page .story-card {
    margin-bottom: 1.5rem;
    padding: clamp(1.35rem, 3vw, 2.5rem);
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-left: 3px solid var(--storia-earth);
    border-radius: 8px;
    background: rgba(251, 249, 243, 0.96);
    box-shadow: 0 12px 30px rgba(43, 48, 39, 0.07);
}

.storia-page .saloon-card::before,
.storia-page .story-card::before,
.storia-page .info-pill::before,
.storia-page .poem-block::before {
    display: none;
}

.storia-page .card-badge {
    margin-bottom: 1rem;
    padding: 0.35rem 0.7rem;
    border-radius: 3px;
    background: #e8e4d8;
    color: var(--storia-forest);
    font-size: 0.75rem;
    letter-spacing: 0.1em;
}

.storia-page .story-card h2 {
    margin: 0 0 1rem;
    color: var(--storia-forest);
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.25;
}

.storia-page .story-card h3 {
    margin: 1.8rem 0 0.75rem;
    color: var(--storia-forest);
    font-size: 1.35rem;
    font-weight: 400;
}

.storia-page .story-card p,
.storia-page .story-card li {
    color: #4a4c46;
    line-height: 1.85;
}

.storia-page .story-card strong {
    color: var(--storia-forest);
}

.storia-page .story-card ul {
    padding-left: 1.2rem;
}

.storia-page .story-card li {
    padding-left: 0.25rem;
    margin-bottom: 0.75rem;
}

.storia-page .pull-quote {
    margin: 1rem 0;
    padding: 1.15rem 1.35rem;
    border: 1px solid rgba(113, 111, 100, 0.18);
    border-left: 3px solid var(--storia-earth);
    border-radius: 0 5px 5px 0;
    background: #f1eee5;
}

.storia-page .pull-quote::before {
    display: none;
}

.storia-page .pull-quote p {
    color: #3f4b40;
    font-size: 1.02rem;
}

.storia-page #le-origini {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    gap: 0.5rem 2rem;
    align-items: start;
}

.storia-page #le-origini > .card-badge,
.storia-page #le-origini > h2,
.storia-page #le-origini > p:last-of-type {
    grid-column: 1 / -1;
}

.storia-page #le-origini > p:first-of-type {
    grid-column: 1;
}

.storia-page #le-origini > .pull-quote {
    grid-column: 2;
    margin: 0 0 0.75rem;
}

.storia-page #stemma .info-pill,
.storia-page #briganti {
    padding: 1.25rem;
    border: 1px solid rgba(113, 111, 100, 0.18);
    border-left: 3px solid var(--storia-earth);
    border-radius: 0 6px 6px 0;
    background: #f1eee5;
    box-shadow: none;
}

.storia-page #stemma .info-pill h4,
.storia-page #briganti h4 {
    color: var(--storia-forest) !important;
}

.storia-page .storia-image-feature {
    float: right;
    width: 44%;
    max-width: 440px;
    margin: 0 0 1.5rem 2rem;
    text-align: left;
}

.storia-page .storia-image-feature .storia-image {
    width: 100%;
    aspect-ratio: 16 / 10;
    border: 1px solid rgba(113, 111, 100, 0.28);
    border-radius: 6px;
    object-fit: cover;
    box-shadow: 0 10px 24px rgba(43, 48, 39, 0.12);
    transition: transform 220ms ease, box-shadow 220ms ease;
}

.storia-page .storia-image-feature .storia-image:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 28px rgba(43, 48, 39, 0.18);
}

.storia-page #incendio-1859 .poem-block {
    clear: both;
    max-width: 760px;
    border-color: rgba(113, 111, 100, 0.24);
    border-top-color: var(--storia-earth);
    border-bottom-color: var(--storia-earth);
    border-radius: 6px;
    background: #f1eee5;
    box-shadow: none;
}

.storia-page #camerata-vecchia-oggi {
    background: linear-gradient(120deg, rgba(251, 249, 243, 0.98), rgba(233, 230, 219, 0.96));
}

.storia-page .text-link {
    color: var(--storia-forest);
    text-decoration-color: var(--storia-earth);
}

.storia-page .button {
    border-radius: 4px;
    background: var(--storia-forest);
    color: #fff;
    transition: background-color 180ms ease, transform 180ms ease;
}

.storia-page .button:hover {
    background: var(--storia-forest-dark);
    transform: translateY(-2px);
}

.storia-page footer {
    margin-top: 0;
    border-top: 3px solid var(--storia-earth);
    background: var(--storia-forest-dark);
}

@media (max-width: 768px) {
    .storia-page header nav ul {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 0.15rem;
    }

    .storia-page header nav ul li {
        width: auto;
        margin: 0;
    }

    .storia-page header nav ul li a {
        padding: 0.45rem 0.55rem;
        font-size: 0.8rem;
        white-space: nowrap;
    }

    .storia-page .storia-hero {
        min-height: 360px;
        background-position: 58% center;
    }

    .storia-page .storia-hero .page-title {
        font-size: 2.7rem;
    }

    .storia-page #le-origini {
        grid-template-columns: minmax(0, 1fr);
    }

    .storia-page #le-origini > .card-badge,
    .storia-page #le-origini > h2,
    .storia-page #le-origini > p:first-of-type,
    .storia-page #le-origini > p:last-of-type,
    .storia-page #le-origini > .pull-quote {
        grid-column: 1;
    }

    .storia-page .storia-image-feature {
        float: none;
        width: 100%;
        max-width: 620px;
        margin: 1.25rem auto;
    }
}

@media (max-width: 480px) {
    .storia-page header h1 {
        font-size: 1.45rem;
    }

    .storia-page .storia-hero {
        min-height: 320px;
    }

    .storia-page .storia-hero .page-title {
        font-size: 2.25rem;
    }

    .storia-page .story-card h2 {
        font-size: 1.65rem;
    }

    .storia-page .story-card {
        padding: 1.2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .storia-page *,
    .storia-page *::before,
    .storia-page *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Pagina Tradizioni */
.tradizioni-page {
    --tradizioni-forest: #244b3a;
    --tradizioni-forest-dark: #19372b;
    --tradizioni-stone: #716f64;
    --tradizioni-cream: #f4f0e7;
    --tradizioni-paper: #fbf9f3;
    --tradizioni-earth: #a76f48;
    background-color: var(--tradizioni-cream);
    background-image: radial-gradient(rgba(81, 76, 62, 0.075) 0.6px, transparent 0.6px);
    background-size: 8px 8px;
    color: #33372f;
}

.tradizioni-page header {
    padding: 1.15rem 0 1rem;
    background: var(--tradizioni-forest-dark);
    border-bottom: 3px solid var(--tradizioni-earth);
    box-shadow: 0 8px 24px rgba(25, 55, 43, 0.18);
}

.tradizioni-page header h1 {
    margin-bottom: 0.9rem;
    font-size: 1.75rem;
    font-weight: 400;
}

.tradizioni-page header nav ul {
    gap: 0.25rem;
}

.tradizioni-page header nav ul li {
    margin: 0;
}

.tradizioni-page header nav ul li a {
    padding: 0.55rem 0.8rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

.tradizioni-page header nav ul li a:hover,
.tradizioni-page header nav ul li a[href="tradizioni.html"] {
    background: rgba(255, 255, 255, 0.12);
}

.tradizioni-page main {
    padding: 0 0 3rem;
}

.tradizioni-page .container {
    overflow: visible;
}

.tradizioni-page .storia-hero {
    display: flex;
    min-height: 430px;
    align-items: center;
    margin: 0 0 2rem;
    padding: 3.5rem 0;
    border: 0;
    border-radius: 0;
    background-color: var(--tradizioni-forest-dark);
    background-image: linear-gradient(90deg, rgba(20, 39, 31, 0.8), rgba(20, 39, 31, 0.12)), url('img/camerata-nuova-successo-sagra-ottobre-2022.jpg');
    background-position: center 54%;
    background-size: cover;
    box-shadow: inset 0 -1px rgba(255, 255, 255, 0.2);
}

.tradizioni-page .storia-hero-content {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.tradizioni-page .storia-hero .gallery-kicker {
    margin: 0 0 0.9rem;
    color: #e4c69e;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.tradizioni-page .storia-hero .page-title {
    max-width: 820px;
    margin: 0;
    color: #fff;
    font-size: 3.6rem;
    font-weight: 400;
    line-height: 1.1;
    text-align: left;
    text-shadow: 0 3px 22px rgba(0, 0, 0, 0.32);
}

.tradizioni-page .storia-hero .page-title::after {
    width: 74px;
    height: 3px;
    margin: 1.25rem 0 1rem;
    background: #d5ad78;
}

.tradizioni-page .storia-hero-content > p:last-child {
    max-width: 700px;
    margin: 0;
    color: #f6f1e7;
    font-size: 1.08rem;
    line-height: 1.7;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.tradizioni-page .internal-nav {
    top: 0.75rem;
    margin: 0 0 2rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 6px;
    background: rgba(251, 249, 243, 0.97);
    box-shadow: 0 8px 24px rgba(43, 48, 39, 0.08);
    backdrop-filter: blur(8px);
}

.tradizioni-page .internal-nav ul {
    gap: 0.35rem;
}

.tradizioni-page .internal-nav li {
    width: auto;
    margin: 0;
}

.tradizioni-page .internal-nav .tradition-tab {
    display: block;
    padding: 0.55rem 0.8rem;
    border: 1px solid transparent;
    border-radius: 4px;
    background: transparent;
    color: var(--tradizioni-forest);
    font: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    transition: color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.tradizioni-page .internal-nav .tradition-tab:hover {
    color: var(--tradizioni-forest-dark);
    background: #e9eee7;
}

.tradizioni-page .internal-nav .tradition-tab[aria-selected="true"] {
    border-color: rgba(36, 75, 58, 0.14);
    background: var(--tradizioni-forest);
    color: #fff;
    box-shadow: 0 4px 12px rgba(36, 75, 58, 0.16);
}

.tradizioni-page .internal-nav .tradition-tab:focus-visible {
    outline: 2px solid var(--tradizioni-earth);
    outline-offset: 3px;
}

.tradizioni-page [role="tabpanel"][hidden] {
    display: none !important;
}

.tradizioni-page [role="tabpanel"]:not([hidden]) {
    animation: tradizioni-panel-enter 220ms ease both;
}

@keyframes tradizioni-panel-enter {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.tradizioni-page main > .container > section {
    margin-bottom: 1.75rem;
    padding: clamp(1.35rem, 3vw, 2.5rem);
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 8px;
    background: rgba(251, 249, 243, 0.96);
    box-shadow: 0 12px 30px rgba(43, 48, 39, 0.07);
}

.tradizioni-page section::before,
.tradizioni-page .info-pill::before,
.tradizioni-page .poem-block::before,
.tradizioni-page .card::before {
    display: none;
}

.tradizioni-page section h2 {
    margin: 0 0 1.25rem;
    color: var(--tradizioni-forest);
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.25;
    text-align: left;
}

.tradizioni-page section h2::after {
    content: '';
    display: block;
    width: 48px;
    height: 2px;
    margin: 0.8rem 0 0;
    background: var(--tradizioni-earth);
}

.tradizioni-page section h3 {
    margin: 1.6rem 0 0.75rem;
    color: var(--tradizioni-forest);
    font-size: 1.35rem;
    font-weight: 400;
}

.tradizioni-page section p,
.tradizioni-page section li {
    color: #4a4c46;
    line-height: 1.85;
}

.tradizioni-page .tradition-image-wrap {
    float: right;
    width: 44%;
    max-width: 480px;
    margin: 0 0 1.5rem 2rem;
}

.tradizioni-page #pasquetta .tradition-image-wrap {
    float: left;
    margin: 0 2rem 1.5rem 0;
}

.tradizioni-page .tradition-img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    aspect-ratio: 4 / 3;
    margin: 0;
    border: 1px solid rgba(113, 111, 100, 0.24);
    border-radius: 6px;
    object-fit: cover;
    box-shadow: 0 10px 24px rgba(43, 48, 39, 0.11);
    transition: transform 220ms ease, box-shadow 220ms ease;
}

.tradizioni-page .tradition-img:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 28px rgba(43, 48, 39, 0.17);
}

.tradizioni-page #sant-antonio .info-pill,
.tradizioni-page #pasquetta .info-pill,
.tradizioni-page #festa-settembre > .info-pill {
    clear: both;
}

.tradizioni-page .info-pill {
    margin: 1.5rem 0;
    padding: 1.25rem 1.5rem;
    border: 1px solid rgba(113, 111, 100, 0.18);
    border-left: 3px solid var(--tradizioni-earth);
    border-radius: 0 6px 6px 0;
    background: #f1eee5;
    box-shadow: none;
}

.tradizioni-page .info-pill h3 {
    margin-top: 0;
}

.tradizioni-page .poem-block {
    clear: both;
    max-width: 760px;
    padding: 1.6rem;
    border: 1px solid rgba(113, 111, 100, 0.22);
    border-top: 2px solid var(--tradizioni-earth);
    border-bottom: 2px solid var(--tradizioni-earth);
    border-radius: 6px;
    background: #f1eee5;
    box-shadow: none;
}

.tradizioni-page .poem-block h3 {
    margin-top: 0;
}

.tradizioni-page .poem-block p {
    color: #4a4c46;
}

.tradizioni-page .festa-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.tradizioni-page .festa-grid .card,
.tradizioni-page .parchment-card {
    padding: 1.25rem;
    border: 1px solid rgba(113, 111, 100, 0.2) !important;
    border-top: 2px solid var(--tradizioni-earth) !important;
    border-radius: 6px;
    background: var(--tradizioni-paper) !important;
    box-shadow: 0 6px 18px rgba(43, 48, 39, 0.055);
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.tradizioni-page .festa-grid .card:hover,
.tradizioni-page .parchment-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 25px rgba(43, 48, 39, 0.11);
}

.tradizioni-page .festa-grid .card h3,
.tradizioni-page .parchment-card h4 {
    color: var(--tradizioni-forest);
}

.tradizioni-page #fonti {
    width: 90%;
    max-width: 1200px;
    box-sizing: border-box;
    margin: 0 auto;
    padding: clamp(1.35rem, 3vw, 2.5rem);
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 8px;
    background: rgba(251, 249, 243, 0.96);
    box-shadow: 0 12px 30px rgba(43, 48, 39, 0.07);
}

.tradizioni-page #fonti ul {
    padding-left: 1.25rem;
    color: #4a4c46;
    line-height: 1.85;
}

.tradizioni-page .button {
    border-radius: 4px;
    background: var(--tradizioni-forest);
    color: #fff;
    transition: background-color 180ms ease, transform 180ms ease;
}

.tradizioni-page .button:hover {
    background: var(--tradizioni-forest-dark);
    transform: translateY(-2px);
}

.tradizioni-page footer {
    margin-top: 0;
    border-top: 3px solid var(--tradizioni-earth);
    background: var(--tradizioni-forest-dark);
}

@media (max-width: 768px) {
    .tradizioni-page header nav ul {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 0.15rem;
    }

    .tradizioni-page header nav ul li {
        width: auto;
        margin: 0;
    }

    .tradizioni-page header nav ul li a {
        padding: 0.45rem 0.55rem;
        font-size: 0.8rem;
        white-space: nowrap;
    }

    .tradizioni-page .internal-nav ul {
        gap: 0.25rem;
    }

    .tradizioni-page .internal-nav .tradition-tab {
        padding: 0.5rem 0.65rem;
        font-size: 0.82rem;
    }

    .tradizioni-page .storia-hero {
        min-height: 360px;
        background-position: 58% center;
    }

    .tradizioni-page .storia-hero .page-title {
        font-size: 2.7rem;
    }

    .tradizioni-page .tradition-image-wrap,
    .tradizioni-page #pasquetta .tradition-image-wrap {
        float: none;
        width: 100%;
        max-width: 620px;
        margin: 1.25rem auto;
    }

    .tradizioni-page .festa-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 480px) {
    .tradizioni-page header h1 {
        font-size: 1.45rem;
    }

    .tradizioni-page .storia-hero {
        min-height: 320px;
    }

    .tradizioni-page .storia-hero .page-title {
        font-size: 2.25rem;
    }

    .tradizioni-page main > .container > section,
    .tradizioni-page #fonti {
        padding: 1.2rem;
    }

    .tradizioni-page section h2 {
        font-size: 1.65rem;
    }

    .tradizioni-page .poem-block {
        padding: 1.2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tradizioni-page *,
    .tradizioni-page *::before,
    .tradizioni-page *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .tradizioni-page [role="tabpanel"]:not([hidden]) {
        animation: none;
    }
}

/* Pagina Trinita Days */
.trinity-page {
    --trinity-forest: #244b3a;
    --trinity-forest-dark: #19372b;
    --trinity-stone: #716f64;
    --trinity-cream: #f4f0e7;
    --trinity-paper: #fbf9f3;
    --trinity-earth: #a76f48;
    background-color: var(--trinity-cream);
    background-image: radial-gradient(rgba(81, 76, 62, 0.075) 0.6px, transparent 0.6px);
    background-size: 8px 8px;
    color: #33372f;
}

.trinity-page header {
    padding: 1.15rem 0 1rem;
    background: var(--trinity-forest-dark);
    border-bottom: 3px solid var(--trinity-earth);
    box-shadow: 0 8px 24px rgba(25, 55, 43, 0.18);
}

.trinity-page header h1 {
    margin-bottom: 0.9rem;
    font-size: 1.75rem;
    font-weight: 400;
}

.trinity-page header nav ul {
    gap: 0.25rem;
}

.trinity-page header nav ul li {
    margin: 0;
}

.trinity-page header nav ul li a {
    padding: 0.55rem 0.8rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

.trinity-page header nav ul li a:hover,
.trinity-page header nav ul li a[href="trinita-days.html"] {
    background: rgba(255, 255, 255, 0.12);
}

.trinity-page main {
    padding: 0 0 3rem;
}

.trinity-page .container {
    overflow: visible;
}

.trinity-page .trinity-hero {
    display: flex;
    min-height: 470px;
    align-items: center;
    margin: 0 0 2.5rem;
    padding: 3.5rem 0;
    border: 0;
    border-radius: 0;
    background-color: var(--trinity-forest-dark);
    background-image: linear-gradient(90deg, rgba(20, 39, 31, 0.8), rgba(20, 39, 31, 0.1)), url('img/Trinità days/TrinitàDays1.jpg');
    background-position: center 45%;
    background-size: cover;
    box-shadow: inset 0 -1px rgba(255, 255, 255, 0.2);
}

.trinity-page .trinity-hero::before {
    display: none;
}

.trinity-page .trinity-hero-content {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.trinity-page .trinity-hero .gallery-kicker {
    margin: 0 0 0.9rem;
    color: #e4c69e;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.trinity-page .trinity-hero .page-title {
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-size: 3.7rem;
    font-weight: 400;
    line-height: 1.1;
    text-align: left;
    text-shadow: 0 3px 22px rgba(0, 0, 0, 0.32);
}

.trinity-page .trinity-hero .page-title::after {
    width: 74px;
    height: 3px;
    margin: 1.25rem 0 1rem;
    background: #d5ad78;
}

.trinity-page .trinity-hero-content > p:last-child {
    max-width: 700px;
    margin: 0;
    color: #f6f1e7;
    font-size: 1.08rem;
    line-height: 1.7;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.trinity-page .story-card {
    margin-bottom: 1.75rem;
    padding: clamp(1.35rem, 3vw, 2.5rem);
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-left: 3px solid var(--trinity-earth);
    border-radius: 8px;
    background: rgba(251, 249, 243, 0.97);
    box-shadow: 0 12px 30px rgba(43, 48, 39, 0.07);
}

.trinity-page .saloon-card::before,
.trinity-page .story-card::before,
.trinity-page .card::before {
    display: none;
}

.trinity-page .card-badge {
    margin-bottom: 1rem;
    padding: 0.35rem 0.7rem;
    border-radius: 3px;
    background: #e8e4d8;
    color: var(--trinity-forest);
    font-size: 0.75rem;
    letter-spacing: 0.1em;
}

.trinity-page .story-card h2 {
    margin: 0 0 1.25rem;
    color: var(--trinity-forest);
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.25;
    text-align: left;
}

.trinity-page .story-card h3 {
    margin: 1.65rem 0 0.75rem;
    color: var(--trinity-forest);
    font-size: 1.35rem;
    font-weight: 400;
}

.trinity-page .story-card p,
.trinity-page .story-card li {
    color: #4a4c46;
    line-height: 1.85;
}

.trinity-page .story-card strong {
    color: var(--trinity-forest);
}

.trinity-page .story-card ul {
    padding-left: 1.2rem;
}

.trinity-page .story-card li {
    padding-left: 0.25rem;
    margin-bottom: 0.45rem;
}

.trinity-page .story-card li::marker {
    color: var(--trinity-earth);
}

.trinity-page .trinity-feature {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: clamp(1.25rem, 2vw, 1.75rem);
}

.trinity-page .trinity-feature-copy {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
}

.trinity-page .trinity-feature-copy p {
    margin-bottom: 0.75rem;
}

.trinity-page .trinity-feature-copy > :last-child {
    margin-bottom: 0;
}

.trinity-page #festival-section .trinity-feature-copy {
    grid-column: 2;
}

.trinity-page .trinity-feature .trinity-carousel {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    max-width: 500px;
    min-width: 0;
    height: 300px;
    box-sizing: border-box;
    justify-self: center;
    align-self: start;
    margin: 0;
    padding: 8px;
    overflow: hidden;
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 6px;
    background: #e9e5d9;
    box-shadow: 0 8px 22px rgba(43, 48, 39, 0.1);
}

.trinity-page #festival-section .trinity-feature .trinity-carousel {
    grid-column: 1;
    height: 240px;
}

.trinity-page .trinity-carousel .swiper-slide {
    height: 100%;
    overflow: hidden;
    border-radius: 4px;
}

.trinity-page .trinity-carousel .swiper-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    cursor: zoom-in;
    border-radius: 4px;
    transition: transform 450ms cubic-bezier(0.2, 0.7, 0.25, 1), filter 450ms ease;
}

.trinity-page .trinity-carousel .swiper-slide:hover img {
    filter: saturate(1.08);
    transform: scale(1.025);
}

.trinity-page .trinity-carousel .swiper-button-next,
.trinity-page .trinity-carousel .swiper-button-prev {
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 50%;
    background: rgba(25, 55, 43, 0.72);
    color: #fff;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(6px);
    transition: background-color 180ms ease, transform 180ms ease;
}

.trinity-page .trinity-carousel .swiper-button-next:hover,
.trinity-page .trinity-carousel .swiper-button-prev:hover {
    background: rgba(167, 111, 72, 0.94);
    transform: scale(1.06);
}

.trinity-page .trinity-carousel .swiper-pagination {
    left: 50%;
    bottom: 8px;
    display: flex;
    width: max-content;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 0.35rem 0.55rem;
    transform: translateX(-50%);
    border: 1px solid rgba(255, 255, 255, 0.36);
    border-radius: 999px;
    background: rgba(25, 55, 43, 0.72);
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(6px);
}

.trinity-page .trinity-carousel .swiper-pagination-bullet {
    width: 7px;
    height: 7px;
    margin: 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.85);
    background: rgba(255, 255, 255, 0.58);
    opacity: 1;
    transition: background-color 180ms ease, transform 180ms ease;
}

.trinity-page .trinity-carousel .swiper-pagination-bullet-active {
    border-color: #d5ad78;
    background: #d5ad78;
    transform: scale(1.15);
}

.trinity-page #guests-section > .text-center {
    max-width: 760px;
    margin: 0 auto;
    color: #55584f;
}

.trinity-page #guests-section .grid {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
}

.trinity-page .guest-card {
    min-width: 0;
    padding: 1.25rem 1rem;
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-top: 2px solid var(--trinity-earth);
    border-radius: 6px;
    background: var(--trinity-paper);
    box-shadow: 0 6px 18px rgba(43, 48, 39, 0.055);
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.trinity-page .guest-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 25px rgba(43, 48, 39, 0.11);
}

.trinity-page .guest-card h3 {
    margin: 0.25rem 0 0.65rem;
    color: var(--trinity-forest);
    font-size: 1.05rem;
    line-height: 1.35;
}

.trinity-page .guest-star {
    color: var(--trinity-earth);
}

.trinity-page .guest-card p {
    font-size: 0.9rem;
}

.trinity-page .guest-card .button {
    border-radius: 4px;
    background: var(--trinity-forest);
    color: #fff;
}

.trinity-page .guest-card .button:hover,
.trinity-page .poster-button:hover {
    background: var(--trinity-forest-dark);
}

.trinity-page .poster-button {
    border-radius: 4px;
    background: var(--trinity-forest);
    color: #fff;
}

.trinity-page footer {
    margin-top: 0;
    border-top: 3px solid var(--trinity-earth);
    background: var(--trinity-forest-dark);
}

@media (max-width: 900px) {
    .trinity-page .trinity-feature {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
        gap: 1.25rem;
    }

    .trinity-page .trinity-feature-copy,
    .trinity-page #festival-section .trinity-feature-copy,
    .trinity-page .trinity-feature .trinity-carousel,
    .trinity-page #festival-section .trinity-feature .trinity-carousel {
        grid-column: 1;
    }

    .trinity-page .trinity-feature .trinity-carousel,
    .trinity-page #festival-section .trinity-feature .trinity-carousel {
        grid-row: 2;
        height: 300px;
    }
}

@media (max-width: 768px) {
    .trinity-page header nav ul {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 0.15rem;
    }

    .trinity-page header nav ul li {
        width: auto;
        margin: 0;
    }

    .trinity-page header nav ul li a {
        padding: 0.45rem 0.55rem;
        font-size: 0.8rem;
        white-space: nowrap;
    }

    .trinity-page .trinity-hero {
        min-height: 360px;
        background-position: 58% center;
    }

    .trinity-page .trinity-hero .page-title {
        font-size: 2.7rem;
    }

    .trinity-page .trinity-feature .trinity-carousel,
    .trinity-page #festival-section .trinity-feature .trinity-carousel {
        height: 270px;
    }

    .trinity-page #guests-section .grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .trinity-page header h1 {
        font-size: 1.45rem;
    }

    .trinity-page .trinity-hero {
        min-height: 320px;
    }

    .trinity-page .trinity-hero .page-title {
        font-size: 2.25rem;
    }

    .trinity-page .story-card {
        padding: 1.2rem;
    }

    .trinity-page .story-card h2 {
        font-size: 1.65rem;
    }

    .trinity-page .trinity-feature .trinity-carousel,
    .trinity-page #festival-section .trinity-feature .trinity-carousel {
        height: 240px;
    }

    .trinity-page #guests-section .grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .trinity-page *,
    .trinity-page *::before,
    .trinity-page *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Pagina Galleria */
.gallery-screen {
    --gallery-forest: #244b3a;
    --gallery-forest-dark: #19372b;
    --gallery-stone: #716f64;
    --gallery-cream: #f4f0e7;
    --gallery-paper: #fbf9f3;
    --gallery-earth: #a76f48;
    background-color: var(--gallery-cream);
    background-image: radial-gradient(rgba(81, 76, 62, 0.075) 0.6px, transparent 0.6px);
    background-size: 8px 8px;
    color: #33372f;
}

.gallery-screen header {
    padding: 1.15rem 0 1rem;
    background: var(--gallery-forest-dark);
    border-bottom: 3px solid var(--gallery-earth);
    box-shadow: 0 8px 24px rgba(25, 55, 43, 0.18);
}

.gallery-screen header h1 {
    margin-bottom: 0.9rem;
    font-size: 1.75rem;
    font-weight: 400;
}

.gallery-screen header nav ul {
    gap: 0.25rem;
}

.gallery-screen header nav ul li {
    margin: 0;
}

.gallery-screen header nav ul li a {
    padding: 0.55rem 0.8rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

.gallery-screen header nav ul li a:hover,
.gallery-screen header nav ul li a[href="galleria.html"] {
    background: rgba(255, 255, 255, 0.12);
}

.gallery-screen main {
    padding: 0 0 3rem;
}

.gallery-screen .container {
    overflow: visible;
}

.gallery-screen .gallery-intro {
    display: flex;
    min-height: 390px;
    align-items: center;
    margin: 0 0 2.5rem;
    padding: 3rem 0;
    border: 0;
    background-color: var(--gallery-forest-dark);
    background-image: linear-gradient(90deg, rgba(20, 39, 31, 0.78), rgba(20, 39, 31, 0.12)), url('img/camerata-nuova-lato-caserma-carabinieri.jpg');
    background-position: center 54%;
    background-size: cover;
}

.gallery-screen .gallery-intro-text {
    width: 90%;
    max-width: 1200px;
    flex: none;
    margin: 0 auto;
}

.gallery-screen .gallery-kicker {
    margin: 0 0 0.9rem;
    color: #e4c69e;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.gallery-screen .gallery-intro h2 {
    max-width: 820px;
    margin: 0;
    color: #fff;
    font-size: 3.4rem;
    font-weight: 400;
    line-height: 1.1;
    text-shadow: 0 3px 22px rgba(0, 0, 0, 0.32);
}

.gallery-screen .gallery-intro h2::after {
    content: '';
    display: block;
    width: 74px;
    height: 3px;
    margin: 1.25rem 0 1rem;
    background: #d5ad78;
}

.gallery-screen .gallery-intro p:last-child {
    max-width: 760px;
    margin: 0;
    color: #f6f1e7;
    font-size: 1.08rem;
    line-height: 1.7;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.gallery-screen .gallery-page {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.gallery-screen #gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 180px;
    grid-auto-flow: dense;
    gap: 0.85rem;
}

.gallery-screen #gallery-grid .card {
    display: block;
    min-width: 0;
    height: 100%;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 5px;
    background: var(--gallery-paper);
    box-shadow: 0 6px 18px rgba(43, 48, 39, 0.075);
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.gallery-screen #gallery-grid .card:nth-child(10n + 1) {
    grid-column: span 2;
    grid-row: span 2;
}

.gallery-screen #gallery-grid .card:nth-child(10n + 6) {
    grid-column: span 2;
}

.gallery-screen #gallery-grid .card:hover {
    z-index: 1;
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(43, 48, 39, 0.16);
}

.gallery-screen #gallery-grid .card img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none;
    aspect-ratio: auto;
    border-radius: 0;
    object-fit: cover;
    transition: transform 350ms ease, filter 350ms ease;
}

.gallery-screen #gallery-grid .card:hover img {
    filter: saturate(1.08);
    transform: scale(1.035);
}

.gallery-screen footer {
    margin-top: 0;
    border-top: 3px solid var(--gallery-earth);
    background: var(--gallery-forest-dark);
}

.gallery-screen .lightbox {
    background: rgba(18, 27, 22, 0.96);
    backdrop-filter: blur(6px);
}

.gallery-screen .lightbox img {
    border-radius: 5px;
}

.gallery-screen .lightbox-close {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    background: rgba(25, 55, 43, 0.8);
    font-size: 1.8rem;
    line-height: 1;
}

@media (max-width: 1000px) {
    .gallery-screen #gallery-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-auto-rows: 165px;
    }
}

@media (max-width: 768px) {
    .gallery-screen header nav ul {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 0.15rem;
    }

    .gallery-screen header nav ul li {
        width: auto;
        margin: 0;
    }

    .gallery-screen header nav ul li a {
        padding: 0.45rem 0.55rem;
        font-size: 0.8rem;
        white-space: nowrap;
    }

    .gallery-screen .gallery-intro {
        min-height: 340px;
        background-position: 58% center;
    }

    .gallery-screen .gallery-intro h2 {
        font-size: 2.7rem;
    }

    .gallery-screen #gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 155px;
        gap: 0.65rem;
    }
}

@media (max-width: 480px) {
    .gallery-screen header h1 {
        font-size: 1.45rem;
    }

    .gallery-screen .gallery-intro {
        min-height: 310px;
    }

    .gallery-screen .gallery-intro h2 {
        font-size: 2.25rem;
    }

    .gallery-screen .gallery-intro p:last-child {
        font-size: 1rem;
    }

    .gallery-screen #gallery-grid {
        grid-auto-rows: 125px;
        gap: 0.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gallery-screen *,
    .gallery-screen *::before,
    .gallery-screen *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Pagina Eventi */
.events-page {
    --events-forest: #244b3a;
    --events-forest-dark: #19372b;
    --events-stone: #716f64;
    --events-cream: #f4f0e7;
    --events-paper: #fbf9f3;
    --events-earth: #a76f48;
    background-color: var(--events-cream);
    background-image: radial-gradient(rgba(81, 76, 62, 0.075) 0.6px, transparent 0.6px);
    background-size: 8px 8px;
    color: #33372f;
}

.events-page header {
    padding: 1.15rem 0 1rem;
    background: var(--events-forest-dark);
    border-bottom: 3px solid var(--events-earth);
    box-shadow: 0 8px 24px rgba(25, 55, 43, 0.18);
}

.events-page header h1 {
    margin-bottom: 0.9rem;
    font-size: 1.75rem;
    font-weight: 400;
}

.events-page header nav ul {
    gap: 0.25rem;
}

.events-page header nav ul li {
    margin: 0;
}

.events-page header nav ul li a {
    padding: 0.55rem 0.8rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

.events-page header nav ul li a:hover,
.events-page header nav ul li a[href="eventi.html"] {
    background: rgba(255, 255, 255, 0.12);
}

.events-page main {
    padding: 0 0 3rem;
}

.events-page .container {
    overflow: visible;
}

.events-page .events-hero {
    display: flex;
    min-height: 390px;
    align-items: center;
    margin: 0 0 2.5rem;
    padding: 3rem 0;
    border: 0;
    border-radius: 0;
    background-color: var(--events-forest-dark);
    background-image: linear-gradient(90deg, rgba(20, 39, 31, 0.8), rgba(20, 39, 31, 0.1)), url('img/camerata-nuova-successo-sagra-ottobre-2022.jpg');
    background-position: center 54%;
    background-size: cover;
    box-shadow: inset 0 -1px rgba(255, 255, 255, 0.2);
}

.events-page .events-hero-content {
    width: 90%;
    max-width: 1200px;
}

.events-page .events-hero h2 {
    max-width: 780px;
    margin: 0;
    color: #fff;
    font-size: 3.4rem;
    font-weight: 400;
    line-height: 1.12;
    text-align: left;
    text-shadow: 0 3px 22px rgba(0, 0, 0, 0.32);
}

.events-page .events-hero h2::after {
    content: '';
    display: block;
    width: 74px;
    height: 3px;
    margin: 1.25rem 0 0;
    background: #d5ad78;
}

.events-page .events-content {
    padding: clamp(1.2rem, 3vw, 2rem);
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 8px;
    background: rgba(251, 249, 243, 0.97);
    box-shadow: 0 12px 30px rgba(43, 48, 39, 0.07);
}

.events-page .events-content::before {
    display: none;
}

.events-page .events-highlight {
    display: flex;
    height: 180px;
    min-height: 0;
    align-items: flex-end;
    margin: 0 0 1.5rem;
    padding: 1.5rem;
    box-sizing: border-box;
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 6px;
    background-color: var(--events-forest-dark);
    background-image: linear-gradient(90deg, rgba(20, 39, 31, 0.86), rgba(20, 39, 31, 0.2)), url('img/Home/Braciolata/Braciolata2.jpg');
    background-position: center 45%;
    background-size: cover;
    box-shadow: 0 8px 22px rgba(43, 48, 39, 0.1);
}

.events-page .events-highlight p {
    margin: 0;
    color: #fff;
    font-family: 'Playfair Display', serif;
    font-size: 1.35rem;
    line-height: 1.4;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}

.events-page .events-highlight i {
    margin-right: 0.45rem;
    color: #e4c69e;
}

.events-page #event-calendar {
    --fc-border-color: rgba(113, 111, 100, 0.22);
    --fc-today-bg-color: rgba(167, 111, 72, 0.09);
    --fc-page-bg-color: var(--events-paper);
    margin: 0;
    padding: clamp(0.75rem, 2vw, 1.5rem);
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 6px;
    background: var(--events-paper);
    box-shadow: 0 6px 18px rgba(43, 48, 39, 0.055);
}

.events-page .fc .fc-toolbar-title {
    color: var(--events-forest);
    font-size: 1.65rem;
    font-weight: 400;
}

.events-page .fc .fc-button-primary {
    border-color: var(--events-forest) !important;
    border-radius: 4px;
    background-color: var(--events-forest) !important;
    color: #fff !important;
    box-shadow: none;
    transition: background-color 160ms ease, transform 160ms ease;
}

.events-page .fc .fc-button-primary:hover,
.events-page .fc .fc-button-primary:not(:disabled).fc-button-active {
    border-color: var(--events-forest-dark) !important;
    background-color: var(--events-forest-dark) !important;
}

.events-page .fc .fc-button-primary:focus {
    box-shadow: 0 0 0 3px rgba(36, 75, 58, 0.15);
}

.events-page .fc .fc-col-header-cell-cushion,
.events-page .fc .fc-daygrid-day-number {
    color: #4a4c46;
    text-decoration: none;
}

.events-page .fc .fc-daygrid-day-number {
    padding: 0.45rem;
}

.events-page .fc .fc-day-today .fc-daygrid-day-number {
    color: var(--events-forest);
    font-weight: 700;
}

.events-page .fc .fc-event {
    border-radius: 3px;
    padding: 2px 4px;
    font-size: 0.82rem;
}

.events-page footer {
    margin-top: 0;
    border-top: 3px solid var(--events-earth);
    background: var(--events-forest-dark);
}

@media (max-width: 768px) {
    .events-page header nav ul {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 0.15rem;
    }

    .events-page header nav ul li {
        width: auto;
        margin: 0;
    }

    .events-page header nav ul li a {
        padding: 0.45rem 0.55rem;
        font-size: 0.8rem;
        white-space: nowrap;
    }

    .events-page .events-hero {
        min-height: 330px;
        background-position: 58% center;
    }

    .events-page .events-hero h2 {
        font-size: 2.7rem;
    }

    .events-page .fc .fc-toolbar {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
    }

    .events-page .fc .fc-toolbar-title {
        font-size: 1.4rem;
    }

    .events-page .fc .fc-toolbar-chunk {
        display: flex;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .events-page header h1 {
        font-size: 1.45rem;
    }

    .events-page .events-hero {
        min-height: 290px;
    }

    .events-page .events-hero h2 {
        font-size: 2.25rem;
    }

    .events-page .events-highlight {
        height: 150px;
        padding: 1rem;
    }

    .events-page .events-highlight p {
        font-size: 1.15rem;
    }

    .events-page #event-calendar {
        padding: 0.5rem;
    }

    .events-page .fc .fc-toolbar-title {
        font-size: 1.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .events-page *,
    .events-page *::before,
    .events-page *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Pagina Info e Contatti */
.info-page {
    --info-forest: #244b3a;
    --info-forest-dark: #19372b;
    --info-stone: #716f64;
    --info-cream: #f4f0e7;
    --info-paper: #fbf9f3;
    --info-earth: #a76f48;
    background-color: var(--info-cream);
    background-image: radial-gradient(rgba(81, 76, 62, 0.075) 0.6px, transparent 0.6px);
    background-size: 8px 8px;
    color: #33372f;
}

.info-page header {
    padding: 1.15rem 0 1rem;
    background: var(--info-forest-dark);
    border-bottom: 3px solid var(--info-earth);
    box-shadow: 0 8px 24px rgba(25, 55, 43, 0.18);
}

.info-page header h1 {
    margin-bottom: 0.9rem;
    font-size: 1.75rem;
    font-weight: 400;
}

.info-page header nav ul {
    gap: 0.25rem;
}

.info-page header nav ul li {
    margin: 0;
}

.info-page header nav ul li a {
    padding: 0.55rem 0.8rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

.info-page header nav ul li a:hover,
.info-page header nav ul li a[href="info.html"] {
    background: rgba(255, 255, 255, 0.12);
}

.info-page main {
    padding: 0 0 3rem;
}

.info-page .container {
    overflow: visible;
}

.info-page .info-hero {
    display: flex;
    min-height: 340px;
    align-items: center;
    margin: 0 0 2.5rem;
    padding: 3rem 0;
    border: 0;
    border-radius: 0;
    background-color: var(--info-forest-dark);
    background-image: linear-gradient(90deg, rgba(20, 39, 31, 0.78), rgba(20, 39, 31, 0.08)), url('img/camerata-nuova-med.webp');
    background-position: center 42%;
    background-size: cover;
    box-shadow: inset 0 -1px rgba(255, 255, 255, 0.2);
}

.info-page .info-hero-content {
    width: 90%;
    max-width: 1200px;
}

.info-page .info-hero .page-title {
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-size: 3.4rem;
    font-weight: 400;
    line-height: 1.12;
    text-align: left;
    text-shadow: 0 3px 22px rgba(0, 0, 0, 0.32);
}

.info-page .info-hero .page-title::after {
    width: 74px;
    height: 3px;
    margin: 1.25rem 0 0;
    background: #d5ad78;
}

.info-page .info-about,
.info-page .contact-directions {
    padding: clamp(1.3rem, 3vw, 2.25rem);
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-radius: 8px;
    background: rgba(251, 249, 243, 0.97);
    box-shadow: 0 12px 30px rgba(43, 48, 39, 0.07);
}

.info-page .info-about::before,
.info-page .contact-directions::before {
    display: none;
}

.info-page .info-about h2,
.info-page .contact-directions h2 {
    margin: 0 0 1rem;
    color: var(--info-forest);
    font-size: 2rem;
    font-weight: 400;
    text-align: left;
}

.info-page .info-about h2::after,
.info-page .contact-directions h2::after {
    content: '';
    display: block;
    width: 48px;
    height: 2px;
    margin: 0.8rem 0 0;
    background: var(--info-earth);
}

.info-page .info-about p,
.info-page .contact-directions p,
.info-page .contact-directions li {
    color: #4a4c46;
    line-height: 1.8;
}

.info-page .contact-grid {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 1.2rem;
    margin-top: 1.25rem;
}

.info-page .contact-info-card,
.info-page .contact-form-container {
    min-width: 0;
    padding: clamp(1.25rem, 2.5vw, 2rem);
    border: 1px solid rgba(113, 111, 100, 0.2);
    border-top: 3px solid var(--info-earth);
    border-radius: 6px;
    background: var(--info-paper);
    box-shadow: 0 8px 22px rgba(43, 48, 39, 0.065);
}

.info-page .contact-info-card {
    border-left: 1px solid rgba(113, 111, 100, 0.2);
}

.info-page .contact-info-card h3,
.info-page .contact-form-container h3 {
    margin: 0 0 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(113, 111, 100, 0.2);
    color: var(--info-forest);
    font-size: 1.5rem;
    font-weight: 400;
}

.info-page .info-list {
    margin-bottom: 1.5rem;
}

.info-page .info-list li {
    gap: 0.8rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(113, 111, 100, 0.14);
}

.info-page .info-list li:last-child {
    border-bottom: 0;
}

.info-page .info-list li i {
    flex: 0 0 22px;
    margin: 0.2rem 0 0;
    color: var(--info-earth);
}

.info-page .info-list li span {
    min-width: 0;
    color: #55584f;
    line-height: 1.65;
    overflow-wrap: anywhere;
}

.info-page .info-list li strong {
    margin-bottom: 0.2rem;
    color: var(--info-forest);
}

.info-page .contact-info-card > div {
    flex-wrap: wrap;
}

.info-page .contact-info-card > div .button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    border-radius: 4px;
}

.info-page .contact-form-container > p {
    color: #55584f !important;
    line-height: 1.7;
}

.info-page .form-group label {
    color: var(--info-forest);
}

.info-page .form-group input,
.info-page .form-group textarea {
    min-height: 46px;
    border: 1px solid rgba(113, 111, 100, 0.34);
    border-radius: 4px;
    background: #fffefa;
    color: #33372f;
}

.info-page .form-group textarea {
    min-height: 130px;
    resize: vertical;
}

.info-page .form-group input:focus,
.info-page .form-group textarea:focus {
    border-color: var(--info-forest);
    box-shadow: 0 0 0 3px rgba(36, 75, 58, 0.12);
}

.info-page .form-submit-btn {
    min-height: 48px;
    border-radius: 4px;
    background: var(--info-forest);
    transition: background-color 180ms ease, transform 180ms ease;
}

.info-page .form-submit-btn:hover {
    background: var(--info-forest-dark);
    transform: translateY(-2px);
}

.info-page .contact-directions {
    margin-top: 1.5rem !important;
}

.info-page .contact-directions ul {
    padding-left: 1.2rem;
}

.info-page .contact-directions li {
    margin-bottom: 0.65rem;
}

.info-page .map-container {
    margin-top: 1.5rem !important;
    border: 1px solid rgba(113, 111, 100, 0.28);
    border-radius: 6px;
    box-shadow: 0 8px 22px rgba(43, 48, 39, 0.08);
}

.info-page .map-container iframe {
    height: 380px;
}

.info-page footer {
    margin-top: 0;
    border-top: 3px solid var(--info-earth);
    background: var(--info-forest-dark);
}

@media (max-width: 768px) {
    .info-page header nav ul {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 0.15rem;
    }

    .info-page header nav ul li {
        width: auto;
        margin: 0;
    }

    .info-page header nav ul li a {
        padding: 0.45rem 0.55rem;
        font-size: 0.8rem;
        white-space: nowrap;
    }

    .info-page .info-hero {
        min-height: 300px;
        background-position: 55% center;
    }

    .info-page .info-hero .page-title {
        font-size: 2.7rem;
    }

    .info-page .contact-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 480px) {
    .info-page header h1 {
        font-size: 1.45rem;
    }

    .info-page .info-hero {
        min-height: 270px;
    }

    .info-page .info-hero .page-title {
        font-size: 2.25rem;
    }

    .info-page .info-about,
    .info-page .contact-directions {
        padding: 1.2rem;
    }

    .info-page .info-about h2,
    .info-page .contact-directions h2 {
        font-size: 1.65rem;
    }

    .info-page .map-container iframe {
        height: 300px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .info-page *,
    .info-page *::before,
    .info-page *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}


