/*==================================================
                    RESET
==================================================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:Arial,Helvetica,sans-serif;
    background:#f5f5f5;
    color:#222;
    overflow-x:hidden;
    line-height:1.6;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
    color:inherit;
}

section{
    padding:100px 40px;
    scroll-margin-top:120px;
}

/*==================================================
                    HEADER
==================================================*/

header{

    position:sticky;

    top:0;

    z-index:9999;

    height:110px;

    background:#fff;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:0 45px;

    box-shadow:0 3px 18px rgba(0,0,0,.08);

}

.logo img{

    height:90px;

    width:auto;

    transition:.3s;

}

.logo img:hover{

    transform:scale(1.05);

}

/*============================*/

nav{

    display:flex;

    align-items:center;

    gap:26px;

}

nav a{

    font-size:15px;

    font-weight:700;

    color:#222;

    transition:.25s;

}

nav a:hover{

    color:#0066ff;

}

/*==================================================
                    MENU
==================================================*/

.dropdown{

    position:relative;

}

.menu-btn{

    background:none;

    border:none;

    cursor:pointer;

    font-size:26px;

    padding:5px;

}

.dropdown-content{

    display:none;

    position:absolute;

    top:120%;

    right:0;

    width:250px;

    background:#fff;

    border-radius:18px;

    overflow:hidden;

    box-shadow:0 12px 30px rgba(0,0,0,.18);

    z-index:10001;

    pointer-events:auto;

}

.dropdown:hover .dropdown-content,
.dropdown.open .dropdown-content{

    display:block;

}

.dropdown-content a{

    display:block;

    padding:16px 22px;

    font-weight:600;

}

.dropdown-content a:hover{

    background:#f3f3f3;

}

.dropdown-content a.mobile-only{
    display:none;
}

/* Ensure dropdown appears above other content and support programmatic open */
.dropdown-content{
    z-index:10001;
}

.dropdown.open .dropdown-content{
    display:block;
}

/*==================================================
                    HERO
==================================================*/

.hero{

    position:relative;

    min-height:100vh;

    background:url(images/copertina.jpg) center center;

    background-size:cover;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

}

/*==================================================
                    EVENTO
==================================================*/

.event-banner{

    position:absolute;

    top:35px;

    left:50%;

    transform:translateX(-50%);

    width:min(1120px,92%);

    background:#fff;

    border-radius:22px;

    padding:22px 28px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:25px;

    box-shadow:0 15px 35px rgba(0,0,0,.12);

}

.event-info h3{

    font-size:1.8rem;

    margin-bottom:6px;

}

.event-info p{

    color:#666;

}

.countdown{

    display:flex;

    gap:22px;

}

.time-box{

    text-align:center;

}

.time-box span{

    display:block;

    font-size:2.2rem;

    font-weight:700;

    color:#0066ff;

}

.time-box small{

    color:#777;

    font-size:.8rem;

}

.event-btn{

    background:#0066ff;

    color:#fff;

    padding:16px 28px;

    border-radius:12px;

    font-weight:700;

    transition:.25s;

}

.event-btn:hover{

    background:#0053d6;

}

/*==================================================
                HERO OVERLAY
==================================================*/

.overlay{

    width:min(1120px,94%);

    padding:55px 45px;

    background:rgba(0,0,0,.55);

    border-radius:22px;

    text-align:center;

    color:#fff;

    margin-top:135px;

}

.hero-title{

    font-size:clamp(2.4rem,3.8vw,3rem);

    font-weight:800;

    letter-spacing:.5px;

    white-space:nowrap;

    line-height:1.1;

    margin-bottom:12px;

    text-align:center;

}

.hero-title sup{

    font-size:.28em;

}

.hero-subtitle{

    letter-spacing:4px;

    text-transform:uppercase;

    color:#ddd;

    margin-bottom:22px;

}

.hero-slogan{

    font-size:2rem;

    font-weight:300;

    margin-bottom:35px;

}

.btn{

    display:inline-block;

    padding:16px 34px;

    background:#0066ff;

    color:#fff;

    border-radius:10px;

    font-weight:700;

    transition:.25s;

}

.btn:hover{

    background:#0053d6;

}

/*==================================================
                STATISTICHE
==================================================*/

.stats{

    display:flex;

    justify-content:center;

    margin-top:80px;

}

.stat{

    width:180px;

    height:95px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    color:#fff;

}

.dark{

    background:#2b5aa6;

}

.medium{

    background:#5775b6;

}

.light{

    background:#7992c8;

}

.stat h2{

    font-size:42px;

    line-height:1;

}

.stat span{

    font-size:13px;

    margin-top:8px;

}
/*==================================================
                CHI SIAMO
==================================================*/

.content-section{

    max-width:1280px;
    margin:auto;
    text-align:center;

}

.content-section h2{

    font-size:3rem;
    font-weight:800;
    color:#111;
    margin-bottom:28px;

}

.intro{

    max-width:930px;

    margin:0 auto 70px;

    font-size:1.12rem;

    line-height:1.9;

    color:#555;

}

/*==================================================
                    CARD
==================================================*/

.cards{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(330px,1fr));

    gap:35px;

    margin-bottom:65px;

}

.card{

    background:#fff;

    border-radius:22px;

    padding:38px;

    box-shadow:0 12px 30px rgba(0,0,0,.08);

    transition:.35s;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    text-align:center;

}

.card:hover{

    transform:translateY(-10px);

    box-shadow:0 22px 45px rgba(0,0,0,.16);

}

.card h3{

    font-size:1.55rem;

    margin-bottom:18px;

    color:#111;

}

.card p{

    color:#555;

    line-height:1.85;

}

/*==================================================
                BOTTONI
==================================================*/

.content-section .btn{

    display:inline-block;

    margin-top:15px;

}

.btn-small{

    display:inline-block;

    margin-top:22px;

    padding:12px 22px;

    border-radius:10px;

    background:#0066ff;

    color:#fff;

    font-weight:700;

    transition:.25s;

}

.btn-small:hover{

    background:#0053d6;

}

.mission-section .btn{

    display:inline-block;

    margin-top:35px;

}
/*==================================================
                MISSIONE
==================================================*/

.mission-section{

    background:#000;

    color:#fff;

    text-align:center;

}

.mission-section h2{

    font-size:3.8rem;

    margin-bottom:30px;

}

.mission-intro{

    max-width:920px;

    margin:0 auto 70px;

    color:#ddd;

    font-size:1.15rem;

    line-height:1.9;

}

.mission-section .cards{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

    max-width:1400px;

    margin:auto;

}

.mission-section .card{

    background:#fff;

    color:#111;

    min-height:260px;

}

.mission-section .card p{

    color:#555;

}

/*==================================================
                BULLISMO
==================================================*/

.bullismo-title{

    margin:60px 0 30px;

    text-align:center;

}

/*==================================================
            COLLABORAZIONI
==================================================*/

#collaborazioni{

    background:#000;

    color:#fff;

    max-width:100%;

}

#collaborazioni .intro{

    color:#ffffff;

}

#collaborazioni .cards{

    margin-top:55px;

}

#collaborazioni .card{

    background:#fff;

    color:#111;

}

#collaborazioni .card h3{

    color:#111;

}

#collaborazioni .card p{

    color:#555;

}

#collaborazioni h2{
    color:#fff;
}

.content-section h2{
    color:#000000;
}

/*==================================================
            HOVER COMUNI
==================================================*/

.card:hover,
.btn:hover,
.btn-small:hover{

    transition:.3s;

}
/*==================================================
                DONAZIONI
==================================================*/

.donazioni-section{

    background:#f7f7f7;
    text-align:center;

}

.donazioni-section h2{

    font-size:3.8rem;
    margin-bottom:30px;

}

.donazioni-intro{

    max-width:900px;

    margin:0 auto 70px;

    font-size:1.12rem;

    line-height:1.9;

    color:#555;

}

.donazioni-card{

    max-width:950px;

    margin:0 auto 60px;

    background:#fff;

    border-radius:25px;

    padding:50px;

    display:flex;

    justify-content:space-between;

    gap:45px;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

}

.donazione-box{

    flex:1;

}

.donazione-box h3{

    font-size:2rem;

    font-weight:800;

    margin-bottom:42px;

}

.label{

    display:block;

    color:#777;

    text-transform:uppercase;

    font-weight:700;

    letter-spacing:.8px;

    margin-top:20px;

    margin-bottom:12px;

}

.value{

    font-size:1.45rem;

    font-weight:700;

}

.divider{

    width:1px;

    background:#e2e2e2;

}

.iban-box{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:14px;

    margin-top:10px;

    flex-wrap:wrap;

}

#iban,
#codice-fiscale{

    font-size:1.08rem;

    font-weight:600;

    letter-spacing:.4px;

    background:transparent;

    border:1px solid #dfe7f5;

    border-radius:10px;

    padding:10px 14px;

    color:#111;

    cursor:pointer;

    transition:all .25s ease;

    font-family:inherit;

}

#iban:hover,
#codice-fiscale:hover{

    background:#f4f8ff;

    border-color:#0066ff;

}

#iban.copied,
#codice-fiscale.copied{

    background:#eaf5ea;

    border-color:#2f9e44;

    color:#2f9e44;

}

.beneficiario{

    font-size:1.08rem;

    font-weight:600;

    color:#222;

    margin-bottom:26px;

}



/*==================================================
                CONTATTI
==================================================*/

.contact-section{

    background:#111;

    color:#fff;

}

.contact-section h2{

    text-align:center;

    font-size:3rem;

    margin-bottom:60px;

}

.contact-container{

    max-width:1200px;

    margin:auto;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:35px;

}

.contact-info,
.contact-form{

    background:#1c1c1c;

    border-radius:22px;

    padding:40px;

}

.contact-info p{

    margin-bottom:18px;

}

.contact-info a{

    color:#fff;

}

.social-links{

    margin-top:30px;

}

.social-links a{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:44px;

    height:44px;

    margin-right:12px;

    padding:0;

    background:#0066ff;

    border-radius:50%;

    transition:.25s;

}

.social-links a:hover{

    background:#0053d6;

    transform:translateY(-2px);

}

.social-links svg{

    width:20px;

    height:20px;

    fill:#fff;

}

.contact-form form{

    display:flex;

    flex-direction:column;

    gap:16px;

}

.contact-form input,
.contact-form textarea{

    padding:16px;

    border:none;

    border-radius:12px;

}

/*==================================================
                HERO PAGINE
==================================================*/

.hero-small{

    height:250px;

    background:#000;

    display:flex;

    justify-content:center;

    align-items:center;

}

.hero-small-overlay{

    text-align:center;

    color:#fff;

}

.hero-small-overlay h1{

    font-size:4.5rem;

    font-weight:800;

    text-transform:uppercase;

}

.hero-small-overlay p{

    margin-top:12px;

    color:#ddd;

}
/*====================================
        SOLO PRIVACY
====================================*/

.privacy-hero{

    height:240px;

    background:#000;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:0;

}

.privacy-overlay{

    text-align:center;

    color:#fff;

}

.privacy-overlay h1{

    font-size:4.8rem;

    font-weight:800;

    text-transform:uppercase;

    letter-spacing:2px;

}

.privacy-overlay p{

    margin-top:15px;

    color:#ddd;

} 
/*==================================================
            JOIN - PRIVACY
==================================================*/

.join-section,
.privacy-content{

    background:#f5f5f5;

    text-align:center;

}

.join-card,
.privacy-card{

    max-width:980px;

    margin:auto;

    background:#fff;

    border-radius:26px;

    padding:75px 70px;

    box-shadow:0 12px 30px rgba(0,0,0,.10);

}

.join-card h2,
.privacy-card h2{

    font-size:2.2rem;

    margin-bottom:40px;

}



.join-card p,
.privacy-card p{

    line-height:2.2;

    color:#444;

    margin-bottom:20px;

}

.privacy-line{

    width:80px;

    height:4px;

    background:#000;

    margin:25px auto 45px;

}


.privacy-card h3{

    font-size:1.8rem;

    margin-top:40px;

    margin-bottom:18px;

}

/*==================================================
                EVENTI
==================================================*/

.eventi-section{

    text-align:center;

}

.eventi-intro{

    max-width:900px;

    margin:0 auto 70px;

}

.eventi-grid{

    max-width:1350px;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(360px,1fr));

    gap:40px;

}

.evento-card{

    background:#fff;

    border-radius:25px;

    padding:38px;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

    transition:.3s;

}

.evento-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 45px rgba(0,0,0,.16);

}

.evento-card h2{

    margin-bottom:20px;

}

.evento-card p{

    line-height:1.85;

    color:#555;

    margin-bottom:30px;

}

/*==================================================
            MINI GALLERY
==================================================*/

.evento-card .mini-gallery{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:12px;

}

.evento-card .mini-gallery img{

    width:100%;

    aspect-ratio:1;

    object-fit:cover;

    border-radius:14px;

    cursor:pointer;

    transition:.3s;

}

.evento-card .mini-gallery img:hover{

    transform:scale(1.05);

}

.gallery-btn{

    aspect-ratio:1;

    background:#222;

    border-radius:14px;

    display:flex;

    justify-content:center;

    align-items:center;

}

.gallery-btn img{

    width:58px;

    filter:brightness(0) invert(1);

}

/*==================================================
            PARLANO DI NOI
==================================================*/

.press-section{

    background:#f5f5f5;

    text-align:center;

}

.press-intro{

    max-width:950px;

    margin:0 auto 70px;

}

.press-intro p{

    line-height:1.9;

    color:#555;

}

.press-grid{

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(340px,1fr));

    gap:35px;

}

.press-card{

    background:#fff;

    border-radius:25px;

    padding:35px;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

}

.press-card h2{

    margin-bottom:18px;

}

.press-card p{

    line-height:1.8;

    color:#555;

    margin-bottom:25px;

}

.press-card img{

    width:100%;

    border-radius:14px;

}

.press-card .mini-gallery{

    display:flex;

    justify-content:center;

    gap:10px;

    margin-top:20px;

    flex-wrap:wrap;

}

.press-card .mini-gallery img{

    width:72px;

    height:72px;

    object-fit:cover;

    border-radius:10px;

}

.press-btn,
.join-home,
.eventi-btn,
.privacy-btn{

    display:block;

    width:fit-content;

    margin:55px auto 0;

}

/*==================================================
                LIGHTBOX
==================================================*/

.gallery-modal{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.92);

    display:none;

    justify-content:center;

    align-items:center;

    z-index:99999;

}

.gallery-modal.active{

    display:flex;

}

.gallery-modal img{

    max-width:90vw;

    max-height:90vh;

    object-fit:contain;

    border-radius:16px;

    box-shadow:0 20px 60px rgba(0,0,0,.45);

}

/*==================================================
                CHIUDI
==================================================*/

.close-gallery{

    position:absolute;

    top:25px;

    right:35px;

    color:#fff;

    font-size:55px;

    cursor:pointer;

    user-select:none;

    z-index:100001;

}

/*==================================================
                FRECCE
==================================================*/

.gallery-prev,
.gallery-next{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    color:#fff;

    font-size:70px;

    cursor:pointer;

    user-select:none;

    padding:18px;

    transition:.25s;

    z-index:100001;

}

.gallery-prev{

    left:35px;

}

.gallery-next{

    right:35px;

}

.gallery-prev:hover,
.gallery-next:hover{

    transform:translateY(-50%) scale(1.12);

}

/*==================================================
                MINI GALLERY
==================================================*/

.gallery-btn{

    cursor:pointer;

}

.gallery-btn img{

    pointer-events:none;

}

.evento-card .mini-gallery img,
.press-card .mini-gallery img{

    cursor:pointer;

}

/*====================================
        ANIMAZIONE BOTTONI
====================================*/

.btn,
.btn-small,
.event-btn,
.copy-btn{

    position:relative;
    overflow:hidden;

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        background-color .25s ease;

}

.btn:hover,
.btn-small:hover,
.event-btn:hover,
.copy-btn:hover{

    transform:translateY(-3px) scale(1.04);

    box-shadow:0 12px 28px rgba(0,102,255,.28);

}

.btn:active,
.btn-small:active,
.event-btn:active,
.copy-btn:active{

    transform:scale(.97);

}

.btn::before,
.btn-small::before,
.event-btn::before{

    content:"";

    position:absolute;

    top:0;

    left:-120%;

    width:60%;

    height:100%;

    background:rgba(255,255,255,.25);

    transform:skewX(-25deg);

    transition:.5s;

}

.btn:hover::before,
.btn-small:hover::before,
.event-btn:hover::before{

    left:150%;

}

/*==================================================
                TABLET
==================================================*/

@media (max-width:1024px){

header{

    padding:0 25px;

    height:90px;

}

.logo img{

    height:72px;

}

nav{

    gap:15px;

}

nav a{

    font-size:12px;

}

/* HERO */

.hero{

    min-height:100vh;

}

.overlay{

    width:92%;

    margin-top:150px;

    padding:35px;

}

.hero-title{

    font-size:2.35rem;

    white-space:normal;

}

.hero-slogan{

    font-size:1.45rem;

}

/* EVENTO */

.event-banner{

    width:94%;

    padding:18px;

    gap:18px;

}

.event-info h3{

    font-size:1.4rem;

}

.countdown{

    gap:12px;

}

.time-box span{

    font-size:1.7rem;

}

/* CARD */

.cards{

    grid-template-columns:repeat(2,1fr);

}

.mission-section .cards{

    grid-template-columns:repeat(2,1fr);

}

.contact-container{

    grid-template-columns:1fr;

}

.donazioni-card{

    flex-direction:column;

}

.divider{

    width:100%;

    height:1px;

}

.eventi-grid{

    grid-template-columns:repeat(2,1fr);

}

.press-grid{

    grid-template-columns:repeat(2,1fr);

}

}

/*==================================================
                SMARTPHONE
==================================================*/

@media (max-width:768px){

header{

    flex-direction:column;

    justify-content:center;

    height:auto;

    padding:15px;

    gap:15px;

}

.logo img{

    height:65px;

}

nav{

    flex-wrap:wrap;

    justify-content:center;

    gap:10px;

}

nav a{

    font-size:11px;

}

@media (max-width:768px){

    nav > a[href="#collaborazioni"],
    nav > a[href="#contatti"],
    nav > a[href="index.html#collaborazioni"],
    nav > a[href="index.html#contatti"]{
        display:none;
    }

    .dropdown-content a.mobile-only{
        display:block;
    }

}

/* HERO */

.hero{

    min-height:auto;

    padding:190px 20px 70px;

}

.overlay{

    width:100%;

    margin-top:40px;

    padding:28px 22px;

}

.hero-title{

    font-size:1.8rem;

    white-space:normal;

    line-height:1.2;

}

.hero-subtitle{

    font-size:.82rem;

}

.hero-slogan{

    font-size:1.1rem;

}

/* EVENTO */

.event-banner{

    position:relative;

    top:0;

    left:0;

    transform:none;

    width:100%;

    flex-direction:column;

    text-align:center;

    gap:20px;

}

.countdown{

    justify-content:center;

    flex-wrap:wrap;

    gap:10px;

}

.time-box{

    min-width:58px;

}

.time-box span{

    font-size:1.4rem;

}

.event-btn{

    width:100%;

}

/* STATS */

.stats{

    flex-direction:column;

    width:100%;

}

.stat{

    width:100%;

}

/* SEZIONI */

section{

    padding:70px 20px;

}

.content-section h2,
.mission-section h2,
.contact-section h2,
.donazioni-section h2{

    font-size:2.2rem;

}

.cards,
.mission-section .cards{

    grid-template-columns:1fr;

}

.card{

    padding:28px;

}

/* PAGINE INTERNE */

.hero-small{

    height:180px;

}

.hero-small-overlay h1{

    font-size:2.5rem;

}

.hero-small-overlay p{

    font-size:.9rem;

}

.join-card,
.privacy-card{

    padding:35px 25px;

}

.donazioni-card{

    padding:30px 20px;

}

.contact-info,
.contact-form{

    padding:28px;

}

/* EVENTI */

.eventi-grid{

    grid-template-columns:1fr;

}

.evento-card{

    padding:28px;

}

.evento-card .mini-gallery{

    grid-template-columns:repeat(2,1fr);

}

/* PARLANO DI NOI */

.press-grid{

    grid-template-columns:1fr;

}

.press-card{

    padding:28px;

}

/* BOTTONI */

.btn,
.btn-small,
.event-btn{

    width:100%;

    text-align:center;

}

.copy-btn{

    width:100%;

}

#iban{

    white-space:normal;

    word-break:break-word;

}

}

/*==================================================
            SMARTPHONE PICCOLI
==================================================*/

@media (max-width:480px){

.hero-title{

    font-size:1.45rem;

}

.hero-slogan{

    font-size:1rem;

}

.hero-small-overlay h1{

    font-size:2rem;

}

.event-info h3{

    font-size:1.15rem;

}

.countdown{

    gap:8px;

}

.time-box span{

    font-size:1.15rem;

}

.time-box small{

    font-size:.65rem;

}

.evento-card .mini-gallery{

    grid-template-columns:repeat(4,1fr);
    gap:8px;

}

.evento-card .mini-gallery img{

    width:100%;
    aspect-ratio:1;
    object-fit:cover;

}

.press-card .mini-gallery{

    display:flex;
    justify-content:center;
    gap:8px;
    flex-wrap:nowrap;

}

.press-card .mini-gallery img{

    width:58px;
    height:58px;
    object-fit:cover;
    border-radius:10px;
    flex-shrink:0;

}

}
/*==================================================
        PRIVACY RESPONSIVE
==================================================*/

@media (max-width:768px){

    .privacy-hero{

        height:180px !important;
        min-height:180px !important;

    }

    .privacy-overlay h1{

        font-size:2.4rem !important;
        line-height:1.2;

    }

    .privacy-card{

        padding:35px 25px;

    }

}

@media (max-width:480px){

    .privacy-hero{

        height:150px !important;
        min-height:150px !important;

    }

    .privacy-overlay h1{

        font-size:1.9rem !important;

    }

}