/* ======================================================
   DESIGN SYSTEM — VARIABILI GLOBALI
====================================================== */

:root {
    /* Colori principali */
    --rosso-primario: #b5121b;
    --blu-accento: #0066cc;
    --giallo-accento: #ffcc00;

    /* Grigi */
    --grigio-600: #666;
    --grigio-700: #555;
    --grigio-800: #333;
    --grigio-900: #1f1f1f;

    /* Sfondo */
    --sfondo-card: #fff;
    --sfondo-soft: #f9f9f9;
    --sfondo-light: #f4f4f4;

    /* Radius */
    --radius-sm: 6px;
    --radius-md: 12px;
    --radius-lg: 18px;

    /* Ombre */
    --shadow-sm: 0 3px 8px rgba(0,0,0,0.08);
    --shadow-md: 0 6px 18px rgba(0,0,0,0.12);
    --shadow-lg: 0 10px 25px rgba(0,0,0,0.15);

    /* Spaziature */
    --spazio-sezione: 3rem;
    --spazio-sezione-large: 4rem;

    /* Larghezza e contenitore */
    --larghezza-container: 1100px;
    --padding-container: 1.5rem;
}

/* ======================================================
   RESET BASE
====================================================== */

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    line-height: 1.6;
    color: #222;
}

a {
    color: inherit;
    text-decoration: none;
}

main {
    margin: 0;
}

.container {
    width: 100%;
    max-width: var(--larghezza-container);
    margin: 0 auto;
    padding-left: var(--padding-container);
    padding-right: var(--padding-container);
    box-sizing: border-box;
}

/* ======================================================
   UTILITY GLOBALI
====================================================== */

/* Testo */
.text-center { text-align: center; }
.text-uppercase { text-transform: uppercase; }

/* Layout */
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.grid-auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 2rem; }

/* Card base */
.card-base {
    background: var(--sfondo-card);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    padding: 1.5rem;
    transition: transform .3s ease, box-shadow .3s ease;
}

.card-base:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
}

/* Bottoni */
.btn {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 30px;
    font-weight: 600;
    text-decoration: none;
    transition: 0.3s ease;
}

.btn-primario {
    background: var(--rosso-primario);
    color: white;
}

.btn-primario:hover {
    background: #8f0e15;
}

/* Immagini */
.img-rounded { border-radius: var(--radius-md); }
.img-shadow { box-shadow: var(--shadow-md); }

/* Sezioni */
.sezione {
    padding: var(--spazio-sezione) 0;
}

/* Media Query Globali */
@media (max-width: 900px) {
    .grid-2 { grid-template-columns: 1fr; }
    .grid-3 { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    .btn { padding: 8px 16px; }
}

/* ======================================================
   HEADER
====================================================== */

.site-header {
    position: relative;
    background: var(--sfondo-card);
    border-bottom: 1px solid #eaeaea;
    z-index: 100;
}

/* PARTE SUPERIORE */
.header-top {
    padding: 1.5rem 0;
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
}

/* LOGO */
.header-logo-link {
    display: block;
    flex-shrink: 0;
    line-height: 0;
    text-decoration: none;
}

.header-logo {
    display: block;
    width: 110px;
    height: auto;
    transition: transform .3s ease;
}

.header-logo-link:hover .header-logo {
    transform: scale(1.04);
}

/* TITOLI */
.header-titoli {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.header-nome {
    margin: 0;
    font-size: 1.9rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #222;
}

.header-luogo {
    margin: .25rem 0 0;
    font-size: .95rem;
    color: var(--grigio-600);
}

.header-motto {
    margin: .45rem 0 0;
    font-size: .9rem;
    font-style: italic;
    color: var(--rosso-primario);
}


/* ======================================================
   MENU
====================================================== */

.header-nav {
    background: var(--rosso-primario);
}

.header-nav .container {
    position: relative;
}

.menu-orizzontale {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.menu-orizzontale li {
    position: relative;
    list-style: none;
}

.menu-orizzontale > li > a {
    display: block;
    padding: 1rem 1.25rem;
    color: white;
    font-size: .95rem;
    font-weight: 600;
    letter-spacing: .03em;
    text-decoration: none;
    transition: background-color .25s ease, color .25s ease;
}

.menu-orizzontale > li > a:hover {
    background: rgba(255, 255, 255, .12);
}

/* VOCE ATTIVA */
.menu-orizzontale > li.current-menu-item > a,
.menu-orizzontale > li.current_page_item > a,
.menu-orizzontale > li.current-menu-parent > a,
.menu-orizzontale > li.current-menu-ancestor > a {
    background: rgba(255, 255, 255, .12);
}


/* INDICATORE SOTTOMENU */
.menu-orizzontale > li.menu-item-has-children > a::after {
    content: "⌄";
    display: inline-block;
    margin-left: .45rem;
    font-size: .8rem;
    transition: transform .25s ease;
}

.menu-orizzontale > li.menu-item-has-children:hover > a::after {
    transform: translateY(2px);
}


/* SOTTOMENU */
.menu-orizzontale .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 230px;
    margin: 0;
    padding: .5rem 0;
    list-style: none;
    background: var(--sfondo-card);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    box-shadow: var(--shadow-md);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition:
        opacity .25s ease,
        visibility .25s ease,
        transform .25s ease;
}

.menu-orizzontale li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.menu-orizzontale .sub-menu li {
    width: 100%;
}

.menu-orizzontale .sub-menu a {
    display: block;
    padding: .75rem 1.2rem;
    color: #333;
    font-size: .9rem;
    text-decoration: none;
    transition:
        background-color .2s ease,
        color .2s ease;
}

.menu-orizzontale .sub-menu a:hover {
    background: rgba(0, 0, 0, .04);
    color: var(--rosso-primario);
}


/* HAMBURGER */
.menu-toggle {
    display: none;
    position: relative;
    width: 42px;
    height: 42px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
}

.menu-toggle img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 28px;
    height: 28px;
    transform: translate(-50%, -50%);
    transition:
        opacity .25s ease,
        transform .25s ease;
}

.icon-close {
    opacity: 0;
    transform:
        translate(-50%, -50%)
        rotate(-90deg);
}


/* MOBILE */
@media (max-width: 900px) {
    .header-top {
        padding-left: 1rem;
        padding-right: 1rem;
        background-color: var(--rosso-primario);
    }

    .header-inner {
        flex-direction: row;
        text-align: center;
        gap: 1rem;
        width: 100%;
        box-sizing: border-box;
    }

    .header-logo {
        max-width: 100px;
        margin-left: auto;
        margin-right: auto;
    }

    .header-titoli {
        width: 100%;
        text-align: center;
    }

    .header-titoli h1 {
        font-size: 1.6rem;
    }

    .header-nome {
        font-size: 1.05rem;
        letter-spacing: .02em;
        line-height: 1.2;
        color: white;
    }

    .header-luogo,
    .header-motto {
        display: none;
    }

    .menu-toggle {
        display: block;
        flex-shrink: 0;
    }

    .header-nav {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--rosso-primario);
        box-shadow: var(--shadow-md);
    }

    .menu-orizzontale {
        display: block;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transition:
            max-height .4s ease,
            opacity .3s ease;
    }

    .menu-orizzontale.active {
        max-height: 80vh;
        overflow-y: auto;
        opacity: 1;
    }

    .menu-orizzontale > li {
        border-bottom: 1px solid rgba(255, 255, 255, .12);
    }

    .menu-orizzontale > li > a {
        padding: 1rem 1.5rem;
        font-size: 1rem;
    }


    /* SOTTOMENU MOBILE */
    .menu-orizzontale .sub-menu {
        position: static;
        display: none;
        min-width: 0;
        padding: 0;
        background: rgba(0, 0, 0, .08);
        border-radius: 0;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .menu-orizzontale li.menu-item-has-children > .sub-menu {
        display: none;
    }

    .menu-orizzontale li.menu-item-has-children.submenu-aperto > .sub-menu {
        display: block;
    }

    .menu-orizzontale .sub-menu a {
        padding: .8rem 2.5rem;
        color: white;
        font-size: .95rem;
    }

    .menu-orizzontale .sub-menu a:hover {
        background: rgba(255, 255, 255, .08);
        color: white;
    }

    /* ICONA MENU APERTO */
    .menu-toggle.active .icon-hamburger {
        opacity: 0;
        transform:
            translate(-50%, -50%)
            rotate(90deg);
    }

    .menu-toggle.active .icon-close {
        opacity: 1;
        transform:
            translate(-50%, -50%)
            rotate(0);
    }
}

@media (max-width: 900px) {
    .menu-orizzontale
    > li.menu-item-has-children
    > a::after {
        content: "⌄";
        float: right;
        margin-left: .5rem;
        transition: transform .25s ease;
    }

    .menu-orizzontale
    > li.menu-item-has-children.submenu-aperto
    > a::after {
        transform: rotate(180deg);
    }
}

/* MOBILE PICCOLO */
@media (max-width: 600px) {

    .header-logo {
        width: 52px;
    }

    .header-nome {
        font-size: .95rem;
    }

    .menu-toggle {
        width: 38px;
        height: 38px;
    }

}

/* ======================================================
   FOOTER
====================================================== */

.site-footer {
    background: var(--grigio-900);
    color: #eaeaea;
    font-size: .9rem;
}

/* Parte principale */
.footer-main {
    padding: 3rem 0;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
    max-width: 1200px;
    margin: auto;
}

.footer-col {
    display: flex;
    text-align: center;
    flex-direction: column;
}

.footer-col h4 {
    margin-bottom: 1rem;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rosso-primario);
}

.footer-col p {
    margin: .4rem 0;
    line-height: 1.6;
}

.footer-col a {
    color: #fff;
}

.footer-col a:hover {
    text-decoration: underline;
}

/* Brand */
.footer-brand img {
    max-width: 100px;
    margin-bottom: 1rem;
}

.footer-tagline {
    color: #ccc;
    line-height: 1.5;
}

/* Social */
.social_cont {
    display: flex;
    gap: 15px;
    margin-top: .5rem;
    justify-content: center;
}

.social_cont img {
    width: 26px;
    height: 26px;
    filter: brightness(0) invert(1);
    transition: transform .2s ease, opacity .2s ease;
}

.social_cont img:hover {
    transform: translateY(-3px);
    opacity: .8;
}

/* Bottom */
.footer-bottom {
    border-top: 1px solid #333;
    padding: 1rem 0;
    text-align: center;
    font-size: .8rem;
    color: #aaa;
}

/* Responsive */
@media (max-width: 900px) {

    .footer-grid {
        grid-template-columns: 1fr;
    }

}

/* ======================================================
   HERO STANDARD PAGINE
====================================================== */

.page-hero {
    text-align: center;
    padding: 3rem 0 2.5rem;
}

.page-hero .container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

.page-hero h1 {
    margin: 0 0 .7rem;
    font-size: clamp(2rem, 4vw, 2.8rem);
    line-height: 1.15;
    color: var(--rosso-primario);
}

.page-hero-sottotitolo {
    max-width: 800px;
    margin: 0 auto;
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--grigio-600);
}


/* Sottotitoli particolarmente lunghi */

.page-hero-sottotitolo {
    text-wrap: balance;
}


/* ======================================================
   HERO STANDARD — MOBILE
====================================================== */

@media (max-width: 768px) {

    .page-hero {
        padding: 2.5rem 0 2rem;
    }

    .page-hero h1 {
        font-size: 2rem;
    }

    .page-hero-sottotitolo {
        font-size: 1rem;
        line-height: 1.5;
    }

}



/* ======================================================
CHI SIAMO
====================================================== */

/* SEZIONI TESTO + FOTO */

.chi-storia,
.chi-mission,
.chi-giro,
.chi-iniziative {
    padding: var(--spazio-sezione-large) 0;
}

.chi-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}


/* Alternanza */
.chi-grid.reverse {
    direction: rtl;
}

.chi-grid.reverse .chi-testo,
.chi-grid.reverse .chi-img {
    direction: ltr;
}


/* Testo */
.chi-testo h2 {
    color: var(--rosso-primario);
    margin-bottom: 1.5rem;
}

.chi-testo h3 {
    color: var(--rosso-primario);
    margin: 1.5rem 0;
    /* font-size: 1.5rem; */
}

.chi-testo p {
    line-height: 1.8;
    margin-bottom: 1rem;
}


/* Immagini */
.chi-img {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.chi-img img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    transition: transform .4s ease;
}

/* Pulsanti */
.chi-link {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 2rem;
}


/* RIDERE FA BENE ALL'ANIMA */
.chi-slogan {
    padding: 2rem 0;
    text-align: center;
}

.chi-slogan .container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    background: var(--sfondo-soft);
    border-radius: var(--radius-md);
    box-sizing: border-box;
}

.chi-slogan blockquote {
    margin: 0;
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 700;
    font-style: italic;
    color: var(--rosso-primario);
}

.chi-slogan blockquote::before,
.chi-slogan blockquote::after {
    color: var(--rosso-primario);
    opacity: .3;
    font-size: 4rem;
}

.chi-slogan blockquote::before {
    content: "“";
}

.chi-slogan blockquote::after {
    content: "”";
}


/* RESPONSIVE */

@media (max-width: 900px) {
    .chi-grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .chi-grid.reverse {
        direction: ltr;
    }

    .chi-img img {
        height: auto;
        max-height: 400px;
    }
}

@media (max-width: 600px) {
    .chi-storia,
    .chi-mission,
    .chi-giro,
    .chi-iniziative {
        padding: 3rem 0;
    }

    .chi-link {
        flex-direction: column;
    }

    .chi-link .btn {
        text-align: center;
    }

    .chi-slogan {
        padding: 1.5rem 1rem;
    }

    .chi-slogan .container {
        padding: 1.5rem 1rem;
    }
}

/* ======================================================
   CONTATTI
====================================================== */

.pagina-contatti {
    margin: 0;
}

/* Griglia contatti */
.contatti-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); 
    gap: 2rem; 
    padding-top: var(--spazio-sezione); 
    padding-bottom: var(--spazio-sezione-large);
}

/* Card contatti */
.card-contatti {
    display: block;
    background: var(--sfondo-soft);
    padding: 2rem 1.5rem;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    text-align: center;
    color: inherit;
    text-decoration: none;
}

/* SOLO CARD CLICCABILI */
.card-contatti-link {
    cursor: pointer;
    transition: transform .3s ease, box-shadow .3s ease;
}

.card-contatti-link:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
    text-decoration: none;
}

/* IMMAGINE */
.card-contatti img {
    width: 50px;
    height: auto;
    margin-bottom: 1rem;
}

/* TESTO */
.card-contatti p {
    margin: .3rem 0;
    line-height: 1.5;
}

.card-contatti strong {
    color: var(--rosso-primario);
}

/* TESTO DELLE CARD CLICCABILI */
.card-contatti-link p {
    color: #333;
}

.card-contatti-link:hover p {
    color: var(--rosso-primario);
}

/* Responsive */
@media (max-width: 900px) {
    .contatti-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .contatti-grid {
        grid-template-columns: 1fr;
    }
}

/* ======================================================
   COMMEDIE — ARCHIVIO
====================================================== */

/* Griglia commedie */
.commedie-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 2rem;
}

/* Card commedia */
.commedia-card {
    background: var(--sfondo-card);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

/* LINK */
.commedia-card a {
    display: block;
    color: inherit;
    text-decoration: none;
}

/* HOVER CARD */
.commedia-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-md);
}


/* IMMAGINE */
.commedia-card-immagine {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--sfondo-soft);
}

.commedia-card-immagine img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.commedia-card:hover .commedia-card-immagine img {
    transform: scale(1.05);
}

/* ANNO */
.commedia-anno {
    display: inline-block;
    margin-bottom: .8rem;
    padding: .35rem .75rem;
    border-radius: 20px;
    background: var(--rosso-primario);
    color: white;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .5px;
}

/* CONTENUTO */
.commedia-card .contenuto {
    padding: 1.5rem 1.5rem 1.7rem;
}

.commedia-card h2 {
    margin: 0 0 .6rem;
    font-size: 1.35rem;
    line-height: 1.25;
}

.commedia-autore {
    margin: 0;
    color: var(--grigio-600);
    font-size: .95rem;
    line-height: 1.5;
}

/* FOCUS ACCESSIBILE */
.commedia-card a:focus-visible {
    outline: 3px solid var(--blu-accento);
    outline-offset: -3px;
}

/* Paginazione commedie */
.paginazione-commedie {
    margin: 3rem 0;
    text-align: center;
}

.paginazione-commedie .page-numbers {
    margin: 0 .3rem;
    padding: .5rem .8rem;
    border-radius: var(--radius-sm);
    text-decoration: none;
}

/* PAGINAZIONE */
.paginazione-commedie {
    margin: 3rem 0 var(--spazio-sezione);
    text-align: center;
}

.paginazione-commedie .page-numbers {
    margin: 0 .3rem;
    padding: .5rem .8rem;
    border-radius: var(--radius-sm);
    text-decoration: none;
}



/* ======================================================
   SINGOLA COMMEDIA
====================================================== */

.single-commedia {
    padding: var(--spazio-sezione) 0;
}

.single-commedia > .container {
    max-width: 900px;
}

/* Header */
.commedia-header {
    text-align: center;
    margin-bottom: var(--spazio-sezione);
}

.commedia-header h1 {
    font-size: clamp(2rem, 5vw, 3rem);
    margin-bottom: .5rem;
    color: #222;
}

.commedia-meta {
    display: inline-block;
    margin: .5rem 0 0;
    padding: .45rem 1rem;
    border-radius: 30px;
    background: var(--sfondo-soft);
    color: var(--rosso-primario);
    font-size: .9rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}

/* Copertina */
.commedia-copertina {
    margin: 0 0 var(--spazio-sezione);
}

.commedia-copertina img {
    width: 100%;
    max-height: 550px;
    object-fit: cover;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    transition: transform .35s ease, box-shadow .35s ease;
}

.commedia-copertina a {
    display: block;
}

.commedia-copertina a:hover img {
    transform: scale(1.015);
    box-shadow: var(--shadow-md);
}

/* Contenuto testuale */
.commedia-contenuto {
    font-size: 1.05rem;
    line-height: 1.7;
    color: #222;
}

.commedia-contenuto p {
    margin-bottom: 1.5rem;
}

.commedia-contenuto::after {
    content: "◆";
    display: block;
    text-align: center;
    margin: 3rem 0;
    font-size: 1.2rem;
    color: var(--rosso-primario);
}

/* Sezione foto di scena */
.foto-scena {
    margin-top: var(--spazio-sezione);
}

.sezione-foto {
    text-align: center;
    font-size: 1.6rem;
    margin-bottom: 2rem;
    color: var(--rosso-primario);
}

/* Galleria immagini */
.gallery-commedia {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
}

.gallery-commedia figure {
    margin: 0;
}

.gallery-commedia img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    transition: transform .3s ease, box-shadow .3s ease;
}

.gallery-commedia img:hover {
    transform: scale(1.05);
    box-shadow: var(--shadow-md);
}

/* Link torna alle commedie */
.torna-commedie {
    margin: var(--spazio-sezione-large) 0 0;
    text-align: center;
}

.torna-commedie a {
    display: inline-block;
    padding: .7rem 1.2rem;
    border-radius: 30px;
    color: var(--rosso-primario);
    font-weight: 600;
    text-decoration: none;
    transition:
        background-color .25s ease,
        transform .25s ease;
}

.torna-commedie a:hover {
    background: var(--sfondo-soft);
    transform: translateX(-3px);
    text-decoration: none;
}

/* Responsive */
@media (max-width: 768px) {

    .commedia-header h1 {
        font-size: 2rem;
    }

    .commedia-copertina img {
        max-height: 350px;
    }

    .gallery-commedia {
        grid-template-columns: 1fr;
    }
}

/* ======================================================
   LIGHTBOX — VERSIONE UNIFICATA
====================================================== */

html, body {
    overflow-x: visible !important;
}

.lightbox-overlay,
#lightbox {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    display: none;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(0, 0, 0, 0.9) !important;
    z-index: 999999 !important;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
}

.lightbox-overlay.active,
#lightbox.active {
    display: flex;
    opacity: 1 !important;
    pointer-events: auto !important;
}

.lightbox-overlay img,
#lightbox img {
    max-width: 90vw !important;
    max-height: 90vh !important;
    width: auto;
    height: auto;
    border-radius: var(--radius-md);
    transform: translate(0, 0) scale(1);
    transform-origin: center center;
    cursor: zoom-in;
    user-select: none;
    -webkit-user-select: none;
    -webkit-user-drag: none;
    touch-action: none;
    transition: transform .2s ease;
}


/* Quando l'immagine è sotto il controllo
   dello zoom/trascinamento */

#lightbox img:active {
    cursor: grabbing;
}

#lightbox img {
    will-change: transform;
}

#lightbox img:active {
    transition: none;
}

#lightbox img {
    cursor: zoom-in;
    transition: transform .3s ease;
}

#lightbox img.zoomed {
    cursor: grab;
}

#lightbox img.zoomed.dragging {
    cursor: grabbing;
    transition: none;
}

#lightbox img.zoomed.dragging {
    cursor: grabbing;
    transition: none;
}

/* PULSANTI LIGHTBOX */
.lightbox-close,
.lightbox-prev,
.lightbox-next {
    position: absolute;
    z-index: 1000001;
    color: white;
    font-size: 2rem;
    cursor: pointer;
    user-select: none;
    line-height: 1;
}

.lightbox-close {
    top: 20px;
    right: 30px;
}

.lightbox-prev {
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
}

.lightbox-next {
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
}

/* IMMAGINE ZOOMATA */
#lightbox img.zoomed {
    position: relative;
    z-index: 1000000;
}

#lightbox .lightbox-prev,
#lightbox .lightbox-next,
#lightbox .lightbox-close {
    z-index: 1000002;
}

/* MOBILE */
@media (max-width: 768px) {

    .lightbox-prev {
        left: 10px;
    }

    .lightbox-next {
        right: 10px;
    }

    .lightbox-close {
        top: 15px;
        right: 15px;
    }

    .lightbox-prev,
    .lightbox-next {
        font-size: 1.8rem;
    }

    .lightbox-prev {
        left: 10px;
    }
    
}


/* ======================================================
   GIRO DELLE CASCINE
====================================================== */

.eventi-sportivi {
    width: 100%;
}

.eventi-sportivi .intro,
.eventi-sportivi .percorsi,
.eventi-sportivi .mappa-evento,
.eventi-sportivi .comuni,
.eventi-sportivi .gallery-evento {
    padding: var(--spazio-sezione) 0;
}

/* Intro */
.eventi-sportivi .intro p {
    margin: 0 0 1rem;
    line-height: 1.7;
}

.eventi-sportivi .intro p:last-child {
    margin-bottom: 0;
}

/* Percorsi */
.percorsi-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

.percorsi-grid .card {
    height: 100%;
    box-sizing: border-box;
}

.card {
    background: var(--sfondo-soft);
    padding: 1.8rem;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    text-align: center;
    transition: transform .2s ease, box-shadow .2s ease;
}

.card h3 {
    margin-bottom: .7rem;
    color: var(--rosso-primario);
}

/* Mappa */
.mappa-evento {
    text-align: center;
}

.mappa-evento h2,
.comuni h2,
.gallery-evento h2 {
    margin-bottom: 1rem;
}

.mappa-wrapper {
    margin-top: 1.5rem;
    overflow: hidden;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.mappa-wrapper iframe {
    display: block;
    width: 100%;
}

.bottone-mappa {
    margin-top: 1.5rem;
}

.bottone-mappa a {
    display: inline-block;
    padding: 10px 20px;
    background: var(--rosso-primario);
    color: #fff;
    border-radius: 6px;
    font-weight: bold;
    transition: background .2s ease;
}

.bottone-mappa a:hover {
    background: #8f0e15;
}

/* Comuni */
.comuni {
    text-align: center;
}

.comuni-logos {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem;
    margin-top: 2rem;
}

.comuni-logos img {
    width: 90px;
    height: 90px;
    object-fit: contain;
}

/* Galleria evento */
.gallery-evento h2 {
    text-align: center;
}

.gallery-evento-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 2rem;
}

.gallery-evento-grid img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    transition: transform .3s ease, box-shadow .3s ease;
}

.gallery-evento-grid img:hover {
    transform: scale(1.03);
    box-shadow: var(--shadow-md);
    cursor: pointer;
}

/* Responsive */
@media (max-width: 900px) {
    .percorsi-grid {
        grid-template-columns: 1fr;
    }

    .gallery-evento-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .eventi-sportivi .intro,
    .eventi-sportivi .percorsi,
    .eventi-sportivi .mappa-evento,
    .eventi-sportivi .comuni,
    .eventi-sportivi .gallery-evento {
        padding: var(--spazio-sezione) 0;
    }

    .gallery-evento-grid {
        grid-template-columns: 1fr;
    }

    .gallery-evento-grid img {
        height: 240px;
    }

    .comuni-logos {
        gap: 1.5rem;
    }
}

/* ======================================================
   TOUR TEATRALE
====================================================== */

.date-future,
.date-passate {
    padding: var(--spazio-sezione) 0;
}

.date-future > h2,
.date-passate > h2 {
    font-size: 1.8rem;
    font-weight: 700;
    margin: 0 0 2rem;
    padding-bottom: .6rem;
    border-bottom: 2px solid;
}

/* Card tour */
.card-tour {
    display: flex;
    gap: 2rem;
    background: var(--sfondo-soft);
    padding: 1.8rem;
    border-radius: var(--radius-md);
    margin-bottom: 2rem;
    box-shadow: var(--shadow-sm);
    transition: transform .3s ease, box-shadow .3s ease;
}

/* Locandina */
.locandina img {
    width: 180px;
    border-radius: var(--radius-md);
    transition: transform .3s ease, box-shadow .3s ease;
}

.card-tour:hover .locandina img {
    transform: scale(1.03);
    box-shadow: var(--shadow-sm);
}

.locandina:hover img {
    cursor: pointer;
}

/* Info tour */
.info-tour h2 {
    color: var(--rosso-primario);
    margin-bottom: .8rem;
}

.descrizione {
    margin-top: 1rem;
    line-height: 1.6;
}

/* Responsive */
@media (max-width: 768px) {
    .card-tour {
        flex-direction: column;
        text-align: center;
    }

    .locandina img {
        margin: auto;
    }
}


/* ======================================================
   HOME PAGE
====================================================== */

.homepage {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

.home-btn {
    display: inline-block;
    padding: 13px 28px;
    border-radius: 40px;
    font-weight: 600;
    text-decoration: none;
    transition:
        transform .3s ease,
        background-color .3s ease;
}

.home-btn:hover {
    transform: translateY(-3px);
}

.home-btn-primario {
    background: var(--rosso-primario);
    color: white;
}

.home-btn-secondario {
    background: white;
    color: var(--rosso-primario);
}


/* ======================================================
   HOME — IN EVIDENZA
====================================================== */

.home-in-evidenza {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

/* ======================================================
   HOME — CAROSELLO
====================================================== */

.home-news-carousel {
    position: relative;
    width: 100%;
    margin: 0;
    overflow: hidden;
}


/* ======================================================
   AREA SLIDE
====================================================== */

.home-news-slides {
    position: relative;
    width: 100%;
    height: 800px;
    overflow: hidden;
}


/* ======================================================
   SLIDE
====================================================== */

.home-news-slide {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    transition:
        opacity .8s ease,
        visibility .8s ease;
}

.home-news-slide.active {
    opacity: 1;
    visibility: visible;
    z-index: 1;
}


/* ======================================================
   IMMAGINE DI SFONDO
====================================================== */

.home-news-background {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}

.home-news-background img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.02);
    transition: transform 6s ease;
}

.home-news-slide.active .home-news-background img {
    transform: scale(1);
}


/* ======================================================
   OVERLAY
====================================================== */

.home-news-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(
            to top,
            rgba(0, 0, 0, .88) 0%,
            rgba(0, 0, 0, .65) 35%,
            rgba(0, 0, 0, .25) 70%,
            rgba(0, 0, 0, .05) 100%
        );
}


/* ======================================================
   CONTENUTO
====================================================== */

.home-news-content {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 950px;
    padding: 4rem 6rem 5rem;
    color: white;
}


/* ======================================================
   DATA
====================================================== */

.home-news-date {
    margin: 0 0 .8rem;
    font-size: .95rem;
    font-weight: 600;
    color: rgba(255, 255, 255, .8);
}


/* ======================================================
   SOVRATITOLO
====================================================== */

.home-news-content .home-sezione-sovratitolo {
    margin-bottom: .8rem;
    color: white;
    font-size: .9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
}


/* ======================================================
   TITOLO
====================================================== */

.home-news-content h3 {
    margin: 0 0 1.2rem;
    font-size: clamp(2.2rem, 4vw, 4rem);
    line-height: 1.08;
}

.home-news-content h3 a {
    color: white;
    text-decoration: none;
}

.home-news-content h3 a:hover {
    text-decoration: underline;
}


/* ======================================================
   TESTO
====================================================== */

.home-news-excerpt {
    max-width: 750px;
    margin-bottom: 1.8rem;
    font-size: 1.1rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, .92);
}

.home-news-excerpt p {
    margin: 0 0 1rem;
}

.home-news-excerpt p:last-child {
    margin-bottom: 0;
}


/* ======================================================
   LINK NOTIZIA
====================================================== */

.home-news-link {
    display: inline-block;
    color: white;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(255, 255, 255, .7);
    padding-bottom: .25rem;
    transition:
        opacity .25s ease,
        border-color .25s ease;
}

.home-news-link:hover {
    opacity: .8;
    border-color: white;
}


/* ======================================================
   CODICE 5x1000
====================================================== */

.home-news-5x1000-codice {
    display: flex;
    flex-direction: column;
    margin-bottom: 2rem;
}

.home-news-5x1000-codice span {
    margin-bottom: .3rem;
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: rgba(255, 255, 255, .8);
}

.home-news-5x1000-codice strong {
    font-size: 2rem;
    letter-spacing: 2px;
}


/* ======================================================
   PULSANTE 5x1000
====================================================== */

.home-news-5x1000-button {
    display: inline-block;
    padding: 13px 26px;
    border-radius: 30px;
    background: white;
    color: var(--rosso-primario);
    font-weight: 700;
    text-decoration: none;
    transition:
        transform .3s ease,
        background-color .3s ease;
}

.home-news-5x1000-button:hover {
    background: #f4f4f4;
    transform: translateY(-2px);
}


/* ======================================================
   FRECCE
====================================================== */

.home-news-prev,
.home-news-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 52px;
    height: 52px;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, .45);
    color: white;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    backdrop-filter: blur(5px);
    transition:
        background-color .25s ease,
        transform .25s ease;
}

.home-news-prev:hover,
.home-news-next:hover {
    background: var(--rosso-primario);
    transform:
        translateY(-50%)
        scale(1.08);
}

.home-news-prev {
    left: 1.5rem;
}

.home-news-next {
    right: 1.5rem;
}


/* ======================================================
   CONTROLLI CAROSELLO
====================================================== */

.home-news-controls {
    position: absolute;
    z-index: 5;

    bottom: 1.5rem;
    left: 0;
    right: 0;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
}


/* ======================================================
   INDICATORI
====================================================== */

.home-news-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
}


.home-news-dot {

    width: 10px;
    height: 10px;
    padding: 0;

    border: none;
    border-radius: 50%;

    background: rgba(255, 255, 255, .5);

    cursor: pointer;

    transition:
        transform .25s ease,
        background-color .25s ease;
}


.home-news-dot:hover {
    background: white;
}


.home-news-dot.active {
    background: white;
    transform: scale(1.3);
}


/* ======================================================
   PAUSA / RIPRODUCI
====================================================== */

.home-news-pause {

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;
    padding: 0;

    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 50%;

    background: rgba(0, 0, 0, .25);
    color: #fff;

    font-size: .75rem;
    line-height: 1;

    cursor: pointer;

    transition:
        background-color .25s ease,
        border-color .25s ease,
        transform .25s ease;
}


.home-news-pause:hover {
    background: rgba(0, 0, 0, .45);
    border-color: #fff;
    transform: scale(1.08);
}


.home-news-pause:focus-visible {
    outline: 3px solid var(--blu-accento);
    outline-offset: 3px;
}


.home-news-pause[aria-pressed="true"] {
    background: rgba(0, 0, 0, .4);
}


/* ======================================================
   MOBILE
====================================================== */

@media (max-width: 768px) {

    .home-news-slides {
        height: 620px;
    }

    .home-news-content {
        max-width: 100%;

        padding: 2.5rem 1.5rem 4rem;
    }

    .home-news-content h3 {
        font-size: 2.2rem;
    }

    .home-news-excerpt {
        font-size: 1rem;
        line-height: 1.6;
    }

    .home-news-5x1000-codice strong {
        font-size: 1.6rem;
    }

    .home-news-prev,
    .home-news-next {
        width: 42px;
        height: 42px;
        font-size: 1.2rem;
    }

    .home-news-prev {
        left: .75rem;
    }

    .home-news-next {
        right: .75rem;
    }

}

/* ======================================================
   SLIDE PROMOZIONALI — CAROSELLO HOME
====================================================== */

.home-news-slide-slide .home-news-content {
    position: relative;
    z-index: 2;
}

.home-news-slide-slide .home-news-excerpt {
    margin-bottom: 0;
}

.home-news-slide-slide .home-news-excerpt p {
    margin-bottom: 0;
}


/* ======================================================
   HOME — BANNER 5x1000
====================================================== */

.home-5x1000 {
    width: 100%;
    box-sizing: border-box;
    background: var(--rosso-primario);
    color: white;
    padding: 2rem 1.5rem;
}

.home-5x1000-inner {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 3rem;
}


/* TESTO */
.home-5x1000-testo h2 {
    margin: 0.25rem 0 0.75rem;
    font-size: 2rem;
    line-height: 1.2;
    color: white;
}

.home-5x1000-testo p {
    margin: 0;
    max-width: 650px;
    line-height: 1.6;
}

.home-5x1000-testo .home-sezione-sovratitolo {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.85;
}


/* CODICE FISCALE */
.home-5x1000-codice {
    display: flex;
    flex-direction: column;
    text-align: center;
    padding: 0 1rem;
    border-left: 1px solid rgba(255,255,255,0.3);
    border-right: 1px solid rgba(255,255,255,0.3);
}

.home-5x1000-codice span {
    font-size: 0.8rem;
    opacity: 0.85;
    margin-bottom: 0.25rem;
}

.home-5x1000-codice strong {
    font-size: 1.35rem;
    letter-spacing: 1px;
}


/* PULSANTE */

.home-5x1000-azione {
    display: flex;
    align-items: center;
}

.home-5x1000-azione .home-btn {
    white-space: nowrap;
}


/* ======================================================
   MOBILE
====================================================== */

@media (max-width: 900px) {
    .home-5x1000-testo p {
        display: none;
    }
}

@media (max-width: 768px) {

    .home-5x1000 {
        padding: 1.75rem 1rem;
    }

    .home-5x1000-inner {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        text-align: center;
    }

    .home-5x1000-testo p {
        margin-left: auto;
        margin-right: auto;
    }

    .home-5x1000-codice {
        border-left: none;
        border-right: none;
        border-top: 1px solid rgba(255,255,255,0.3);
        border-bottom: 1px solid rgba(255,255,255,0.3);
        padding: 0.75rem 0;
    }

    .home-5x1000-azione {
        justify-content: center;
    }

}

/* ======================================================
   HOME — BANNER PRENOTAZIONE
====================================================== */

.home-prenotazione {
    width: 100%;
    padding: 2rem 3rem;
    box-sizing: border-box;
}


/* BANNER */
.home-prenotazione-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: 2rem;
    width: 100%;
    max-width: 1300px;
    margin: 0 auto;
    padding: 2rem 2.5rem;
    box-sizing: border-box;
    background: var(--sfondo-soft);
    border: 2px solid var(--rosso-primario);
    border-radius: var(--radius-lg);
    color: var(--rosso-primario);
    text-decoration: none;
    box-shadow: var(--shadow-sm);
    transition:
        transform .3s ease,
        box-shadow .3s ease,
        background-color .3s ease;
}


/* HOVER */
.home-prenotazione-link:hover {
    transform: translateY(-4px);
    background: white;
    box-shadow: var(--shadow-md);
}


/* BIGLIETTO */
.home-prenotazione-ticket {
    flex: 0 0 70px;
    width: 70px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rosso-primario);
    border-radius: 14px;
    transform: rotate(-5deg);
    transition: transform .3s ease;
}

.home-prenotazione-link:hover .home-prenotazione-ticket {
    transform: rotate(0deg) scale(1.05);
}

.home-prenotazione-ticket-icon {
    font-size: 2.2rem;
    line-height: 1;
    filter: grayscale(1) brightness(0) invert(1);
}


/* CONTENUTO */
.home-prenotazione-contenuto {
    flex: 1;
}

.home-prenotazione-sovratitolo {
    margin: 0 0 .4rem;
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--grigio-600);
}

.home-prenotazione-contenuto h2 {
    margin: 0;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    line-height: 1.1;
    color: var(--rosso-primario);
}


/* AZIONE */
.home-prenotazione-azione {
    flex-shrink: 0;
}

.home-prenotazione-azione span {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    padding: 13px 22px;
    border-radius: 30px;
    background: var(--rosso-primario);
    color: white;
    font-weight: 700;
    transition:
        background-color .3s ease,
        transform .3s ease;
}

.home-prenotazione-link:hover
.home-prenotazione-azione span {
    background: #8f0e15;
    transform: translateX(3px);
}

.home-prenotazione-azione strong {
    font-size: 1.2rem;
}


/* ======================================================
   MOBILE
====================================================== */

@media (max-width: 768px) {

    .home-prenotazione {
        padding: 1.5rem 1rem;
    }

    .home-prenotazione-link {
        flex-direction: column;
        align-items: center;
        gap: 1.2rem;
        padding: 2rem 1.5rem;
        text-align: center;
    }

    .home-prenotazione-ticket {
        width: 60px;
        height: 60px;
        flex-basis: 60px;
    }

    .home-prenotazione-ticket-icon {
        font-size: 2rem;
    }

    .home-prenotazione-contenuto h2 {
        font-size: 2rem;
    }

    .home-prenotazione-azione {
        width: 100%;
    }

    .home-prenotazione-azione span {
        justify-content: center;
        width: 100%;
        box-sizing: border-box;
    }

}

/* ======================================================
   ULTIME NOTIZIE
====================================================== */

.home-ultime-notizie {
    padding: var(--spazio-sezione-large) 0;
}

.home-ultime-notizie .container {
    max-width: 1100px;
    margin: 0 auto;
    padding-left: var(--padding-container);
    padding-right: var(--padding-container);
    box-sizing: border-box;
}


/* Header */

.home-ultime-notizie-header {
    text-align: center;
    margin-bottom: 3rem;
}

.home-ultime-notizie-header .home-sezione-sovratitolo {
    margin-bottom: .5rem;
}

.home-ultime-notizie-header h2 {
    margin: 0;
    font-size: 2.5rem;
    color: var(--rosso-primario);
}


/* Griglia */

.home-ultime-notizie-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}


/* Link archivio */

.home-ultime-notizie-link {
    margin-top: 2.5rem;
    text-align: center;
}

.home-ultime-notizie-link a {
    display: inline-block;
    color: var(--rosso-primario);
    font-weight: 600;
    font-size: 1.5rem;
    text-decoration: none;
}

.home-ultime-notizie-link a:hover {
    text-decoration: underline;
}


/* ======================================================
   TABLET
====================================================== */

@media (max-width: 900px) {

    .home-ultime-notizie-grid {
        grid-template-columns: 1fr;
    }

}


/* ======================================================
   MOBILE
====================================================== */

@media (max-width: 600px) {

    .home-ultime-notizie {
        padding: var(--spazio-sezione) 0;
    }

}

/* ======================================================
   PROSSIMI SPETTACOLI
====================================================== */

.home-prossimi-spettacoli {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 5rem 1.5rem;
    background: var(--sfondo-light);
    overflow: hidden;
}

.home-prossimi-inner {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    box-sizing: border-box;
}

.home-prossimi-header {
    text-align: center;
    margin-bottom: 3rem;
}

.home-prossimi-header .home-sezione-sovratitolo {
    margin-bottom: .5rem;
}

.home-prossimi-header h2 {
    margin: 0;
    font-size: 2.5rem;
    color: var(--rosso-primario);
}


/* GRIGLIA */
.home-prossimi-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    width: 100%;
    box-sizing: border-box;
}


/* UNA SOLA CARD */
.home-prossimi-grid:has(.home-prossimo-card:only-child) {
    grid-template-columns: minmax(0, 700px);
    justify-content: center;
}


/* CARD */
.home-prossimo-card {
    position: relative;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    background: white;
    padding: 2.5rem;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    overflow: hidden;
    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

.home-prossimo-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-md);
}


/* ELEMENTO DECORATIVO SUPERIORE */
.home-prossimo-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 6px;
    background: var(--rosso-primario);
}


/* COMPAGNIA */
.home-prossimo-compagnia {
    display: inline-block;
    margin: 0 0 1.5rem;
    padding: .45rem .9rem;
    font-size: .9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: white;
    background: var(--rosso-primario);
    border-radius: 30px;
}


/* COMUNE */
.home-prossimo-card h3 {
    margin: 0 0 1.5rem;
    font-size: 2.2rem;
    line-height: 1.1;
    color: var(--rosso-primario);
    overflow-wrap: break-word;
}


/* DETTAGLI */
.home-prossimo-dettagli {
    padding-top: 1.5rem;
    border-top: 1px solid #e5e5e5;
}

.home-prossimo-dettagli p {
    margin: 0 0 .5rem;
    font-size: 1.05rem;
    line-height: 1.5;
    overflow-wrap: break-word;
}

.home-prossimo-dettagli p:last-child {
    margin-bottom: 0;
}


/* DATA */
.home-prossimo-dettagli p:first-child {
    font-size: 1.3rem;
    color: #222;
}


/* MOBILE */
@media (max-width: 768px) {

    .home-prossimi-spettacoli {
        padding: 4rem 1rem;
    }

    .home-prossimi-header {
        margin-bottom: 2rem;
    }

    .home-prossimi-header h2 {
        font-size: 2rem;
    }

    .home-prossimi-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.5rem;
    }

    /* Una card: rimane una sola colonna anche su mobile */
    .home-prossimi-grid:has(.home-prossimo-card:only-child) {
        grid-template-columns: minmax(0, 1fr);
    }

    .home-prossimo-card {
        padding: 2rem;
    }

    .home-prossimo-card h3 {
        font-size: 1.9rem;
    }

}

/* ======================================================
   HOME — LE NOSTRE COMPAGNIE
====================================================== */

.home-compagnie {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 6rem 1.5rem;
    background: white;
}

.home-compagnie-inner {
    width: 100%;
    max-width: 1200px;
    box-sizing: border-box;
    margin: 0 auto;
}


/* HEADER */
.home-compagnie-header {
    max-width: 750px;
    margin: 0 auto 3.5rem;
    text-align: center;
}

.home-compagnie-header .home-sezione-sovratitolo {
    margin-bottom: .6rem;
    font-size: .9rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rosso-primario);
}

.home-compagnie-header h2 {
    margin: 0 0 1rem;
    font-size: 2.8rem;
    line-height: 1.2;
    color: var(--rosso-primario);
}

.home-compagnie-header p {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.7;
}


/* GRIGLIA */
.home-compagnie-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
}


/* CARD */
.home-compagnia {
    min-width: 0;
    overflow: hidden;
    background: var(--sfondo-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition: transform .35s ease, box-shadow .35s ease;
}

.home-compagnia:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-md);
}


/* IMMAGINE */
.home-compagnia-immagine {
    width: 100%;
    height: 300px;
    overflow: hidden;
}

.home-compagnia-immagine img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.home-compagnia:hover .home-compagnia-immagine img {
    transform: scale(1.04);
}


/* CONTENUTO */
.home-compagnia-contenuto {
    padding: 2rem 2.2rem 2.5rem;
}

.home-compagnia-sovratitolo {
    margin: 0 0 .5rem;
    font-size: .85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .8px;
    color: var(--grigio-600);
}

.home-compagnia-contenuto h3 {
    margin: 0 0 1rem;
    font-size: 1.8rem;
    color: var(--rosso-primario);
}

.home-compagnia-contenuto p:not(.home-compagnia-sovratitolo) {
    margin-bottom: 1.5rem;
    line-height: 1.7;
}


/* ======================================================
   TABLET
====================================================== */

@media (max-width: 900px) {

    .home-compagnie {
        padding: 5rem 1.5rem;
    }

    .home-compagnie-grid {
        gap: 1.5rem;
    }

    .home-compagnia-immagine {
        height: 250px;
    }

    .home-compagnia-contenuto {
        padding: 1.7rem;
    }

}


/* ======================================================
   MOBILE
====================================================== */

@media (max-width: 700px) {

    .home-compagnie {
        padding: 4rem 1rem;
    }

    .home-compagnie-header {
        margin-bottom: 2.5rem;
    }

    .home-compagnie-header h2 {
        font-size: 2.1rem;
    }

    .home-compagnie-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .home-compagnia-immagine {
        height: 260px;
    }

}


/* ======================================================
   ARCHIVIO NOTIZIE
====================================================== */

/* Lista notizie */
.archivio-notizie {
    padding: var(--spazio-sezione) 0 var(--spazio-sezione-large);
}

/* Griglia */
.lista-notizie {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
}


/* Card */
.card-notizia {
    display: flex;
    flex-direction: column;
    background: var(--sfondo-soft);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform .3s ease, box-shadow .3s ease;
}


/* Immagine */
.card-notizia-immagine {
    display: block;
    overflow: hidden;
}

.card-notizia-immagine img {
    display: block;
    width: 100%;
    height: 260px;
    object-fit: cover;
    transition: transform .4s ease;
}

.card-notizia:hover .card-notizia-immagine img {
    transform: scale(1.03);
}


/* Contenuto */
.card-notizia-contenuto {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.5rem;
}

.card-notizia h2 {
    margin: 0 0 .8rem;
    font-size: 1.4rem;
    line-height: 1.25;
}

.card-notizia h2 a {
    color: var(--rosso-primario);
    text-decoration: none;
}

.card-notizia h2 a:hover {
    text-decoration: underline;
}

.data-notizia {
    font-size: .85rem;
    color: var(--grigio-600);
    margin: 0 0 .7rem;
}

.estratto-notizia {
    line-height: 1.6;
    margin-bottom: 1.2rem;
}

.estratto-notizia p {
    margin: 0;
}


/* Link */
.leggi-altro {
    margin-top: auto;
    color: var(--rosso-primario);
    font-weight: 600;
    text-decoration: none;
}

.leggi-altro:hover {
    text-decoration: underline;
}


/* ======================================================
   PAGINAZIONE
====================================================== */

.paginazione {
    margin-top: 3rem;
    text-align: center;
}

.paginazione .page-numbers {
    display: inline-block;
    margin: 0 6px;
    padding: 8px 14px;
    border-radius: var(--radius-sm);
    background: #f1f1f1;
    color: #333;
    text-decoration: none;
    transition: .3s ease;
}

.paginazione .page-numbers:hover {
    background: var(--rosso-primario);
    color: white;
}

.paginazione .current {
    background: var(--rosso-primario);
    color: white;
    font-weight: 600;
}


/* ======================================================
   RESPONSIVE
====================================================== */

@media (max-width: 768px) {
    .lista-notizie {
        grid-template-columns: 1fr;
    }

    .card-notizia-immagine img {
        height: 230px;
    }
}

/* ======================================================
   SINGLE NOTIZIA
====================================================== */

.single-notizia {
    padding: var(--spazio-sezione) 0;
}

.single-notizia > .container {
    max-width: 900px;
}

.notizia-header {
    margin-bottom: var(--spazio-sezione);
}

.notizia-header h1 {
    margin: 0 0 .5rem;
    font-size: clamp(2rem, 5vw, 2.8rem);
    line-height: 1.2;
    color: var(--rosso-primario);
}

.notizia-immagine {
    margin: 0 0 var(--spazio-sezione);
}

.notizia-immagine img {
    display: block;
    width: 100%;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.notizia-immagine a {
    display: block;
}

.notizia-testo {
    line-height: 1.8;
    font-size: 1.05rem;
}

.notizia-testo p {
    margin: 0 0 1.2rem;
}

.torna-notizie {
    margin-top: var(--spazio-sezione-large);
}

.torna-notizie a {
    font-weight: 600;
    color: var(--rosso-primario);
}

.torna-notizie a:hover {
    text-decoration: underline;
}



/* ======================================================
   AMICI DEGLI AMICI
====================================================== */

.pagina-associazioni {
    padding-bottom: var(--spazio-sezione-large);
}

.associazioni-content {
    padding: var(--spazio-sezione) 0;
}

.titolo-pagina {
    text-align: center;
    margin-bottom: 3rem;
    font-size: clamp(2rem, 4vw, 2.8rem);
}

/* GRIGLIA ASSOCIAZIONI */
.griglia-associazioni {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

/* Card associazione */
.card-associazione {
    background: var(--sfondo-card);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    transition: transform .3s ease, box-shadow .3s ease;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.card-associazione:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
}

.card-link {
    display: block;
    color: inherit;
}

.card-inner {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding: 2rem;
    height: 100%;
}

/* Logo */
.card-logo img {
    width: 150px;
    height: 150px;
    object-fit: contain;
    flex-shrink: 0;
}

/* Contenuto testuale */
.card-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.card-content h2 {
    margin: 0 0 .5rem;
    font-size: 1.3rem;
    line-height: 1.3;
}

.descrizione-associazione {
    margin: 0;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--grigio-700);
}

@media (max-width: 768px) {

    .card-inner {
        flex-direction: column;
        align-items: center;
        gap: 1.5rem;
        padding: 1.5rem;
        text-align: center;
    }

    .card-logo img {
        width: 140px;
        height: 140px;
    }

    .card-content {
        align-items: center;
    }

}

/* ==========================================
   COMPAGNIA DEI SOGNATORI
========================================== */

.compagnia-sognatori {
    width: 100%;
}

.compagnia-chi-siamo,
.compagnia-tour,
.compagnia-contatti,
.compagnia-galleria {
    padding: var(--spazio-sezione) 0;
}

.compagnia-chi-siamo h2,
.compagnia-tour h2,
.compagnia-contatti h2,
.compagnia-galleria h2 {
    margin: 0 0 2rem;
}

/* CHI SIAMO - COMPAGNIA */
.compagnia-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}

.compagnia-testo {
    line-height: 1.7;
}

.compagnia-testo p {
    margin: 0 0 1.2rem;
}

.compagnia-testo p:last-child {
    margin-bottom: 0;
}

.compagnia-logo {
    text-align: center;
}

.compagnia-logo img {
    display: block;
    width: 100%;
    max-width: 400px;
    height: auto;
    margin: 0 auto;
}

/* CARD TOUR - COMPAGNIA */
.compagnia-tour p {
    line-height: 1.7;
}

.compagnia-card {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
}

.compagnia-card .locandina {
    flex: 0 0 220px;
}

.compagnia-card .locandina img {
    width: 100%;
    display: block;
    border-radius: var(--radius-md);
}

.compagnia-card .info-tour {
    flex: 1;
}

/* CONTATTI - COMPAGNIA DEI SOGNATORI */
.contatti-grid-cds {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); 
    gap: 2rem; 
    padding-bottom: var(--spazio-sezione-large);
}


/* GALLERIA — COMPAGNIA DEI SOGNATORI */
.compagnia-galleria-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.2rem;
}

.compagnia-galleria-grid img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    transition: transform .35s ease, box-shadow .35s ease;
}

.compagnia-galleria-grid img:hover {
    transform: scale(1.03);
    box-shadow: var(--shadow-md);
}

/* IMMAGINI */
.compagnia-galleria img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    transition: transform .35s ease, box-shadow .35s ease;
}

/* HOVER */
.compagnia-galleria img:hover {
    transform: scale(1.03);
    box-shadow: var(--shadow-md);
}


/* TABLET */
@media (max-width: 900px) {

    .compagnia-grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .compagnia-contatti .contatti-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .compagnia-galleria-grid {
        grid-template-columns: repeat(2, 1fr);
    }

}

/* MOBILE */
@media (max-width: 600px) {

    .compagnia-grid {
        gap: 2rem;
    }

    .compagnia-contatti .contatti-grid {
        grid-template-columns: 1fr;
    }

    .compagnia-galleria-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .compagnia-galleria-grid img {
        height: 240px;
    }

}

/* SPAZIATURE COMPAGNIA DEI SOGNATORI */
.compagnia-chi-siamo,
.compagnia-tour,
.compagnia-contatti,
.compagnia-galleria {
    padding: var(--spazio-sezione) 0;
}

.compagnia-chi-siamo h2,
.compagnia-tour h2,
.compagnia-contatti h2,
.compagnia-galleria h2 {
    margin-bottom: 2rem;
}


/* ======================================================
   PAGINA 5x1000
====================================================== */

/* Hero */
.cinquepermille-hero {
    padding: var(--spazio-sezione-large) 0;
}

.cinquepermille-hero > .container > .page-hero {
    padding-top: 0;
    padding-bottom: 2.5rem;
}

/* PERCHÉ DONARE */
.cinquepermille-perche {
    margin-bottom: 5rem;
}

.cinquepermille-perche h2,
.cinquepermille-come h2 {
    color: var(--rosso-primario);
    margin-bottom: 1.5rem;
}

.cinquepermille-perche p {
    margin-bottom: 1rem;
}

/* COME DONARE */
.cinquepermille-come {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
    margin-bottom: 5rem;
}

.cinquepermille-come-donare > div {
    margin-bottom: 1.5rem;
}

.cinquepermille-come-donare strong {
    color: var(--rosso-primario);
}

.cinquepermille-come-donare p {
    margin: .4rem 0 0;
}

.cinquepermille-immagine img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
}

/* CODICE FISCALE */
.cinquepermille-codice {
    text-align: center;
    padding: 2.5rem;
    background: var(--sfondo-soft);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.cinquepermille-codice > p {
    margin-bottom: 1rem;
    font-weight: 600;
}

.codice-fiscale-box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
}

#codice-fiscale-5x1000 {
    display: inline-flex;
    gap: .5rem;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: .15rem;
    color: var(--rosso-primario);
}

#copia-codice-fiscale {
    border: none;
    cursor: pointer;
    padding: 10px 20px;
    border-radius: 30px;
    background: var(--rosso-primario);
    color: white;
    font-weight: 600;
    transition: .3s ease;
}

#copia-codice-fiscale:hover {
    background: #8f0e15;
}

/* Impegno nel sociale */
.cinquepermille-sociale {
    padding: var(--spazio-sezione-large) 0;
}

.cinquepermille-sociale h2 {
    text-align: center;
    color: var(--rosso-primario);
    margin-bottom: 1.5rem;
}

.sociale-introduzione {
    max-width: 800px;
    margin: 0 auto 4rem;
    text-align: center;
}

.sociale-iniziativa {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
    margin-bottom: 5rem;
}

.sociale-iniziativa.reverse .sociale-testo {
    order: 2;
}

.sociale-iniziativa.reverse .sociale-immagine {
    order: 1;
}

.sociale-testo h3 {
    color: var(--rosso-primario);
    margin-bottom: 1rem;
}

.sociale-immagine img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
}

/* Premio Alice per la Vita */
.cinquepermille-alice {
    padding: var(--spazio-sezione-large) 0;
    background: var(--sfondo-soft);
}

.cinquepermille-alice h2 {
    text-align: center;
    color: var(--rosso-primario);
    font-size: 2.2rem;
    margin-bottom: 2.5rem;
}


/* Descrizione */
.alice-descrizione {
    max-width: 850px;
    margin: 0 auto 3rem;
    text-align: center;
}

.alice-descrizione p {
    margin-bottom: 1rem;
}


/* Immagine */
.alice-immagine {
    max-width: 700px;
    margin: 0 auto 4rem;
}

.alice-immagine img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
}


/* Storico vincitori */
.alice-vincitori {
    max-width: 900px;
    margin: 0 auto;
}

.alice-vincitori h3 {
    text-align: center;
    color: var(--rosso-primario);
    margin-bottom: 2rem;
}

.alice-vincitori-lista {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.alice-vincitore {
    display: grid;
    grid-template-columns: 100px 1fr;
    align-items: center;
    gap: 1.5rem;
    background: var(--sfondo-card);
    padding: 1rem 1.5rem;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.alice-vincitore strong {
    color: var(--rosso-primario);
    font-size: 1.2rem;
}

@media (max-width: 768px) {
    .cinquepermille-hero > .container > .page-hero {
        padding-top: 0;
        padding-bottom: 2rem;
    }

    .cinquepermille-come {
        grid-template-columns: 1fr;
    }

    .cinquepermille-immagine {
        order: -1;
    }

    .codice-fiscale-box {
        flex-direction: column;
        gap: 1.2rem;
    }

    #codice-fiscale-5x1000 {
        font-size: 1.5rem;
        letter-spacing: .1rem;
    }

    .sociale-iniziativa {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        margin-bottom: 4rem;
    }

    .sociale-iniziativa.reverse .sociale-testo,
    .sociale-iniziativa.reverse .sociale-immagine {
        order: initial;
    }

    .sociale-immagine img {
        height: auto;
    }

}

@media (max-width: 600px) {

    .alice-vincitore {
        grid-template-columns: 1fr;
        gap: .3rem;
    }

}

/* =========================================================
ARCHIVIO PROPOSTE PER EVENTI
========================================================= */

/* INTRODUZIONE */
.intro-proposte-evento {
    max-width: 900px;
    margin: var(--spazio-sezione) auto 4rem;
    text-align: center;
}

.intro-proposte-evento p {
    margin: 0 0 1.2rem;
    font-size: 1.05rem;
    line-height: 1.8;
}

.intro-proposte-evento p:last-child {
    margin-bottom: 0;
}

/* LISTA PROPOSTE */
.proposte-evento-lista {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-bottom: var(--spazio-sezione);
}

/* CARD */
.proposta-evento-card {
    background: var(--sfondo-card);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition:
    transform .3s ease,
    box-shadow .3s ease;
}

.proposta-evento-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
}

/* LINK CARD */
.proposta-evento-card > a {
    display: grid;
    grid-template-columns: 360px minmax(0, 1fr);
    align-items: stretch;
    color: inherit;
    text-decoration: none;
}

/* IMMAGINE */
.proposta-evento-card-immagine {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    background: var(--sfondo-soft);
}

.proposta-evento-card-immagine img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.proposta-evento-card:hover .proposta-evento-card-immagine img {
    transform: scale(1.05);
}

/* CONTENUTO */
.proposta-evento-card .contenuto {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 2rem 2.5rem;
}

/* TIPO */
.proposta-evento-tipo {
    display: inline-block;
    margin-bottom: 1rem;
    padding: .35rem .75rem;
    border-radius: 20px;
    background: var(--rosso-primario);
    color: #fff;
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .5px;
}

/* TITOLO */
.proposta-evento-card h2 {
    margin: 0 0 .7rem;
    font-size: 1.7rem;
    line-height: 1.25;
}

/* AUTORE */
.proposta-evento-autore {
    margin: 0 0 1.2rem;
    color: var(--grigio-600);
    font-size: .95rem;
    line-height: 1.5;
}

/* LINK */
.proposta-evento-link {
    margin-top: auto;
    padding-top: 1rem;
    color: var(--rosso-primario);
    font-size: .95rem;
    font-weight: 700;
}

/* FOCUS ACCESSIBILE */
.proposta-evento-card > a:focus-visible {
    outline: 3px solid var(--blu-accento);
    outline-offset: -3px;
}

/* NESSUNA PROPOSTA */
.proposte-evento-vuoto {
    margin: 0 0 var(--spazio-sezione);
    text-align: center;
    color: var(--grigio-600);
}

/* TABLET */
@media (max-width: 900px) {

    .intro-proposte-evento {
        margin-top: var(--spazio-sezione);
        margin-bottom: 3rem;
    }

    .proposta-evento-card > a {
        grid-template-columns: 280px minmax(0, 1fr);
    }

    .proposta-evento-card .contenuto {
        padding: 1.75rem 2rem;
    }

    .proposta-evento-card h2 {
        font-size: 1.5rem;
    }

}

/* MOBILE */
@media (max-width: 600px) {

    .intro-proposte-evento {
        margin-top: var(--spazio-sezione);
        margin-bottom: 2.5rem;
    }

    .intro-proposte-evento p {
        font-size: 1rem;
        line-height: 1.7;
    }

    .proposte-evento-lista {
        gap: 1.5rem;
    }

    .proposta-evento-card > a {
        /* display: block; */
        display: flex; 
        flex-direction: column;
    }

    .proposta-evento-card-immagine {
        width: 100%; 
        height: auto; 
        min-height: 0; 
        aspect-ratio: 4 / 3;
    }

    .proposta-evento-card-immagine img { 
        width: 100%;
        height: 100%;
        object-fit: cover; 
    }

    .proposta-evento-card .contenuto {
        padding: 1.3rem;
    }

    .proposta-evento-card h2 {
        font-size: 1.35rem;
    }

    .proposta-evento-link {
        margin-top: .5rem;
        padding-top: .3rem;
    }

}   


/* =========================================================
SINGOLA PROPOSTA PER EVENTO
========================================================= */

/* CONTENITORE PRINCIPALE */
.proposta-evento-dettaglio {
    max-width: 950px;
    margin: 0 auto var(--spazio-sezione);
}

/* SEZIONI */
.proposta-evento-sezione {
    margin-bottom: 3.5rem;
}

.proposta-evento-sezione h2 {
    margin: 0 0 1.2rem;
    font-size: 1.5rem;
    line-height: 1.25;
}

/* TESTO */
.proposta-evento-testo {
    color: var(--grigio-700);
    font-size: 1.05rem;
    line-height: 1.8;
}

.proposta-evento-testo p {
    margin: 0 0 1.2rem;
}

.proposta-evento-testo p:last-child {
    margin-bottom: 0;
}

.proposta-evento-testo ul,
.proposta-evento-testo ol {
    margin: 1rem 0 1.5rem;
    padding-left: 1.5rem;
}

.proposta-evento-testo li {
    margin-bottom: .5rem;
}

/* GALLERIA */
.proposta-evento-galleria {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin-bottom: 3.5rem;
}

.proposta-evento-galleria a {
    display: block;
    overflow: hidden;
    border-radius: var(--radius-md);
    background: var(--sfondo-soft);
}

.proposta-evento-galleria img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform .4s ease;
}

.proposta-evento-galleria a:hover img {
    transform: scale(1.04);
}

/* HERO - ETICHETTA TIPO */
.singola-proposta-evento .page-hero .proposta-evento-tipo {
    margin-bottom: 1rem;
    background: #fff;
    color: var(--rosso-primario);
}

/* FOCUS ACCESSIBILE GALLERIA */
.proposta-evento-galleria a:focus-visible {
    outline: 3px solid var(--blu-accento);
    outline-offset: 3px;
}

/* TORNA ALLE PROPOSTE */
.torna-proposte-evento {
    margin: var(--spazio-sezione-large) 0 0;
    text-align: center;
}

.torna-proposte-evento a {
    display: inline-block;
    padding: .7rem 1.2rem;
    border-radius: 30px;
    color: var(--rosso-primario);
    font-weight: 600;
    text-decoration: none;
    transition:
    background-color .25s ease,
    transform .25s ease;
}

.torna-proposte-evento a:hover {
    background: var(--sfondo-soft);
    transform: translateX(-3px);
    text-decoration: none;
}


/* TABLET */
@media (max-width: 900px) {

    .proposta-evento-dettaglio {
        max-width: 100%;
    }

    .proposta-evento-galleria {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.25rem;
    }

}

/* MOBILE */
@media (max-width: 600px) {

    .proposta-evento-sezione {
        margin-bottom: 2.5rem;
    }

    .proposta-evento-sezione h2 {
        font-size: 1.7rem;
    }

    .proposta-evento-testo {
        font-size: 1rem;
        line-height: 1.7;
    }

    .proposta-evento-galleria {
        grid-template-columns: 1fr;
        gap: 1rem;
        margin-bottom: 2.5rem;
    }

}



/* ======================================================
   UTILITY EXTRA (FINALI)
====================================================== */

/* Allineamenti */
.center {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Spaziature verticali */
.mt-1 { margin-top: 1rem; }
.mt-2 { margin-top: 2rem; }
.mt-3 { margin-top: 3rem; }

.mb-1 { margin-bottom: 1rem; }
.mb-2 { margin-bottom: 2rem; }
.mb-3 { margin-bottom: 3rem; }

/* Testo */
.text-small { font-size: .9rem; opacity: .8; }
.text-large { font-size: 1.2rem; }

/* Immagini */
.img-cover { object-fit: cover; }
.img-contain { object-fit: contain; }

/* Ombre aggiuntive */
.shadow-sm { box-shadow: var(--shadow-sm); }
.shadow-md { box-shadow: var(--shadow-md); }
.shadow-lg { box-shadow: var(--shadow-lg); }

/* Radius aggiuntivi */
.rounded-sm { border-radius: var(--radius-sm); }
.rounded-md { border-radius: var(--radius-md); }
.rounded-lg { border-radius: var(--radius-lg); }

/* Pulsanti secondari */
.btn-secondario {
    background: var(--sfondo-light);
    color: var(--rosso-primario);
    border: 1px solid var(--rosso-primario);
    padding: 8px 18px;
    border-radius: 30px;
    font-weight: 600;
    transition: .3s ease;
}

.btn-secondario:hover {
    background: var(--rosso-primario);
    color: white;
}

/* Link generici */
.link-primario {
    color: var(--rosso-primario);
    font-weight: 600;
}

.link-primario:hover {
    text-decoration: underline;
}

/* ======================================================
   FIX GENERICI E COMPATIBILITÀ
====================================================== */

/* Evita overflow orizzontale su elementi animati */
img, video {
    max-width: 100%;
    height: auto;
}

/* Migliora la leggibilità dei paragrafi */
p {
    line-height: 1.6;
}

/* Migliora focus accessibilità */
:focus-visible {
    outline: 3px solid var(--blu-accento);
    outline-offset: 2px;
}

/* Reset figure */
figure {
    margin: 0;
}

/* Reset ul/ol */
ul, ol {
    padding-left: 1.2rem;
}

/* ======================================================
   CHIUSURA FINALE
====================================================== */

/* Nessuna regola aggiuntiva: il file è ora ottimizzato,
   coerente, modulare e pronto per essere usato. */
