*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Fredoka",sans-serif;background:white;color:#4b4b4b}
img{max-width:100%;display:block}

.home{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:35px;
    padding:40px 20px;
    position:relative;
}

.logo{width:500px;max-width:82%}

.menu-navigazione{
    width:100%;
    max-width:1250px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:30px;
    flex-wrap:nowrap;
    margin-top:15px
}

.menu-navigazione a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:54px;
    padding:12px 20px;
    background:#C7EAF2;
    color:#4b4b4b;
    border-radius:18px;
    text-decoration:none;
    font-size:16px;
    font-weight:500;
    box-shadow:0 4px 10px rgba(0,0,0,.06);
    transition:transform .2s ease,background .2s ease;
    white-space:nowrap
}

.menu-navigazione a:hover{
    background:#6EC6E6;
    transform:translateY(-2px)
}

.presentazione{
    position:relative;
    background:#C7EAF2;
    padding:80px 20px;
    text-align:center
}

.presentazione p{
    max-width:900px;
    margin:0 auto 25px;
    font-size:20px;
    line-height:1.7
}

.presentazione p:last-child{margin-bottom:0}

.torna-home{
    display:block;
    width:max-content;
    margin:65px 5px 0 auto;
    color:#4b4b4b;
    text-decoration:none;
    font-size:14px;
    font-weight:500
}

.torna-home:hover{
    color:#5aaeca;
    text-decoration:underline
}

.scuola{
    padding:90px 6%;
    background:white
}

.scuola-intro{
    max-width:1200px;
    margin:0 auto 70px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center
}

.scuola-testo h2{
    margin-top:0;
    margin-bottom:25px;
    font-size:42px;
    color:#4b4b4b
}

.scuola-testo p{
    font-size:19px;
    line-height:1.7;
    margin-bottom:20px
}

.metri{
    margin-top:30px;
    display:flex;
    align-items:center;
    gap:18px
}

.metri strong{
    font-size:38px;
    color:#6EC6E6;
    white-space:nowrap
}

.metri span{
    font-size:18px;
    line-height:1.4
}

.foto-intro{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px
}

.foto-intro img{
    width:100%;
    height:300px;
    object-fit:cover;
    border-radius:22px
}

.ambienti{
    max-width:1200px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:35px
}

.ambiente{
    background:#f8fcfd;
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 8px 25px rgba(0,0,0,.07);
    transition:transform .25s ease,box-shadow .25s ease
}

.ambiente:hover{
    transform:translateY(-5px);
    box-shadow:0 12px 30px rgba(0,0,0,.1)
}

.ambiente img{
    width:100%;
    height:300px;
    object-fit:cover
}

.ambiente h3{
    margin:22px 25px 10px;
    font-size:25px;
    color:#5b5b5b
}

.ambiente p{
    margin:0 25px 25px;
    font-size:17px;
    line-height:1.6
}

.ambiente-senza-foto{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:390px;
    padding-top:10px
}

.giardino{
    max-width:1200px;
    margin:80px auto 0
}

.giardino-testo{
    text-align:center;
    max-width:800px;
    margin:0 auto 35px
}

.giardino-testo h3{
    font-size:30px;
    margin-bottom:15px
}

.giardino-testo p{
    font-size:19px;
    line-height:1.7
}

.giardino-foto{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px
}

.giardino-foto img{
    width:100%;
    height:360px;
    object-fit:cover;
    border-radius:24px
}

.didattica{
    background:#C7EAF2;
    padding:90px 20px
}

.didattica-intro{
    max-width:900px;
    margin:0 auto 70px;
    text-align:center
}

.didattica-intro h2{
    margin-top:0;
    margin-bottom:25px;
    font-size:42px
}

.didattica-intro p{
    font-size:19px;
    line-height:1.7;
    margin-bottom:20px
}

.giornata{
    max-width:850px;
    margin:0 auto
}

.giornata h3{
    text-align:center;
    font-size:32px;
    margin-bottom:45px
}

.timeline{
    position:relative;
    display:flex;
    flex-direction:column;
    gap:18px
}

.timeline:before{
    content:"";
    position:absolute;
    left:31px;
    top:25px;
    bottom:25px;
    width:3px;
    background:rgba(110,198,230,.45)
}

.momento{
    position:relative;
    display:grid;
    grid-template-columns:64px 90px 1fr;
    align-items:center;
    gap:15px;
    min-height:70px
}

.icona{
    position:relative;
    z-index:2;
    width:64px;
    height:64px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:25px;
    background:white;
    color:#6EC6E6;
    box-shadow:0 4px 12px rgba(0,0,0,.08)
}

.icona-pappa svg{
    width:28px;
    height:28px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round
}

.ora{
    font-size:20px;
    font-weight:600;
    color:#5aaeca
}

.attivita{
    background:white;
    border-radius:18px;
    padding:16px 22px;
    min-height:58px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    box-shadow:0 4px 12px rgba(0,0,0,.05)
}

.attivita strong{font-size:18px}
.attivita span{font-size:14px;margin-top:3px}

.gruppo{
    font-size:11px!important;
    font-weight:600;
    letter-spacing:1px;
    color:#6EC6E6
}

.momento-ingresso .icona{color:#d889ad}
.momento-merenda .icona{color:#d6a932}
.momento-didattica .icona{color:#75a95d}
.momento-cambio .icona{color:#9b78b5}
.momento-pappa .icona{color:#d9865d}
.momento-ninna .icona{color:#7f88c0}
.momento-progetti .icona{color:#c47da4}
.momento-risveglio .icona{color:#d2a548}
.momento-gioco .icona{color:#5aa88c}
.momento-casa .icona{color:#6e9fc0}

.iscrizioni{
    background:white;
    padding:90px 20px
}

.iscrizioni-contenuto{
    max-width:1100px;
    margin:0 auto;
    display:grid;
    grid-template-columns:1.4fr .8fr;
    gap:60px;
    align-items:center
}

.iscrizioni-testo h2{
    margin-top:0;
    font-size:42px
}

.iscrizioni-testo p{
    font-size:19px;
    line-height:1.7;
    margin-bottom:20px
}

.iscrizioni-esaurite{
    margin-top:30px;
    padding:25px;
    background:#C7EAF2;
    border-radius:20px;
    display:flex;
    flex-direction:column;
    gap:8px
}

.iscrizioni-esaurite strong{font-size:18px}

.iscrizioni-modulo{
    background:#f8fcfd;
    border-radius:25px;
    padding:35px 25px;
    text-align:center;
    box-shadow:0 8px 25px rgba(0,0,0,.07)
}

.modulo-icona{
    width:65px;
    height:65px;
    margin:0 auto 20px;
    border-radius:50%;
    background:#C7EAF2;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:30px;
    color:#5aaeca
}

.modulo-titolo{
    font-size:21px;
    font-weight:600;
    margin-bottom:12px
}

.modulo-stato{
    color:#6a9b6d;
    font-size:16px
}

.programmi{
    background:#C7EAF2;
    padding:90px 20px
}

.programmi-intro{
    max-width:850px;
    margin:0 auto 45px;
    text-align:center
}

.programmi-intro h2{
    margin-top:0;
    font-size:42px;
    margin-bottom:25px
}

.programmi-intro p{
    font-size:19px;
    line-height:1.7;
    margin-bottom:15px
}

.programmi-griglia{
    max-width:1000px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px
}

.programma{
    text-decoration:none;
    background:white;
    color:#555;
    min-height:110px;
    border-radius:22px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:20px;
    font-size:21px;
    font-weight:500;
    box-shadow:0 6px 18px rgba(0,0,0,.06);
    transition:transform .25s ease,box-shadow .25s ease
}

.programma:hover{
    transform:translateY(-5px);
    box-shadow:0 10px 25px rgba(0,0,0,.1)
}

.extracurricolari{margin-top:90px}

.extracurricolari .programmi-griglia{
    max-width:1000px;
    grid-template-columns:repeat(6,1fr)
}

.extracurricolari .programma{grid-column:span 2}

.extracurricolari .programma:nth-child(4){grid-column:2/span 2}
.extracurricolari .programma:nth-child(5){grid-column:4/span 2}

.programma.progetto{background:white}

.pagina-programma{
    max-width:1100px;
    margin:0 auto;
    padding:40px 30px 90px
}

.torna-programmi{
    display:inline-block;
    color:#6EC6E6;
    text-decoration:none;
    font-size:17px;
    font-weight:600;
    margin-bottom:55px
}

.torna-programmi:hover{text-decoration:underline}

.programma-header{
    text-align:center;
    max-width:900px;
    margin:0 auto 80px
}

.programma-eta{
    display:inline-block;
    background:#C7EAF2;
    color:#6EC6E6;
    padding:8px 18px;
    border-radius:25px;
    font-size:17px;
    font-weight:500;
    margin-bottom:18px
}

.programma-header h1{
    margin:0;
    color:#6EC6E6;
    font-size:52px;
    font-weight:600;
    letter-spacing:1px
}

.programma-header h2{
    margin:12px 0 30px;
    font-size:30px;
    font-weight:500;
    color:#5b5b5b
}

.programma-header p{
    margin:0;
    font-size:19px;
    line-height:1.7
}

.programma-titolo-sezione{
    text-align:center;
    margin-bottom:35px
}

.programma-titolo-sezione h2{
    margin:0;
    color:#6EC6E6;
    font-size:36px;
    font-weight:600
}

.programma-generale{margin-bottom:75px}

.programma-box{
    background:#f8fcfd;
    border:2px solid #C7EAF2;
    border-radius:25px;
    padding:35px 40px
}

.programma-box p{
    font-size:18px;
    line-height:1.7
}

.traguardi-programma{margin-top:30px}

.lista-programma{padding-left:25px}

.lista-programma li{
    margin-bottom:12px;
    font-size:18px;
    line-height:1.6
}

.pianificazione-annuale{margin-top:75px}

.periodo-programma{
    margin-bottom:35px;
    border:2px solid #C7EAF2;
    border-radius:22px;
    overflow:hidden
}

.periodo-header{
    background:#C7EAF2;
    padding:17px 25px;
    font-size:22px;
    font-weight:600;
    color:#5aaeca
}

.periodo-contenuto{padding:30px}

.periodo-obiettivi{
    background:#f8fcfd;
    padding:25px;
    border-radius:18px;
    margin-bottom:25px
}

.periodo-obiettivi p{
    margin:0;
    font-size:17px;
    line-height:1.6
}

.attivita-periodo{padding:5px 0 0}

.attivita-periodo h3{
    font-size:25px;
    color:#5aaeca;
    margin:0 0 15px
}

.attivita-periodo ul{padding-left:25px}

.attivita-periodo li{
    font-size:17px;
    line-height:1.6;
    margin-bottom:9px
}

.insegnamenti-programma{margin-top:75px}

.insegnamento-card{
    background:#f8fcfd;
    border:2px solid #C7EAF2;
    border-radius:25px;
    padding:32px 35px;
    margin-bottom:25px
}

.insegnamento-card h3{
    margin:0 0 15px;
    color:#5aaeca;
    font-size:27px
}

.insegnamento-card>p{
    font-size:18px;
    line-height:1.7;
    margin:0 0 25px
}

.attivita-insegnamento{
    background:white;
    border-radius:18px;
    padding:25px
}

.attivita-insegnamento ul{
    padding-left:25px;
    margin:0
}

.attivita-insegnamento li{
    font-size:17px;
    line-height:1.6;
    margin-bottom:9px
}

.momenti-psicomotricita{
    margin-top:25px;
    display:flex;
    flex-direction:column;
    gap:12px
}

.momento-psicomotricita{
    display:grid;
    grid-template-columns:44px 1fr;
    gap:15px;
    align-items:center;
    background:white;
    border:1px solid #C7EAF2;
    border-radius:16px;
    padding:15px 18px
}

.momento-psicomotricita>span{
    width:38px;
    height:38px;
    border-radius:50%;
    background:#C7EAF2;
    color:#5aaeca;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:600
}

.momento-psicomotricita h4{
    margin:0 0 4px;
    font-size:18px;
    color:#5aaeca
}

.momento-psicomotricita p{
    margin:0;
    font-size:15px;
    line-height:1.5
}

.nota-programma{
    margin:35px 0 80px;
    padding:30px;
    text-align:center;
    border-top:2px solid #C7EAF2;
    border-bottom:2px solid #C7EAF2
}

.nota-programma strong{
    display:block;
    font-size:20px;
    color:#5aaeca;
    margin-bottom:10px
}

.nota-programma p{
    margin:0;
    font-size:16px;
    line-height:1.6
}

.libri-programma{margin-top:75px}

.libri-programma-griglia{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px
}

.libro-programma{
    background:#f8fcfd;
    border:2px solid #C7EAF2;
    border-radius:22px;
    padding:25px;
    text-align:center
}

.libro-programma h3{
    margin:0;
    color:#5aaeca;
    font-size:21px
}

.pagina-progetto{
    max-width:1100px;
    margin:0 auto;
    padding:40px 30px 90px
}

.progetto-header{
    text-align:center;
    max-width:900px;
    margin:0 auto 70px
}

.progetto-header h1{
    margin:0;
    color:#6EC6E6;
    font-size:52px;
    font-weight:600;
    letter-spacing:1px
}

.progetto-descrizione{
    max-width:900px;
    margin:0 auto
}

.progetto-descrizione p{
    font-size:19px;
    line-height:1.7;
    margin-bottom:25px
}

.programma-progetto{margin-top:75px}

.programma-progetto h2{
    text-align:center;
    color:#6EC6E6;
    font-size:36px;
    margin-bottom:35px
}

.date-programma{
    display:flex;
    flex-direction:column;
    gap:15px
}

.incontro{
    display:grid;
    grid-template-columns:230px 1fr;
    gap:0;
    border:2px solid #C7EAF2;
    border-radius:18px;
    overflow:hidden
}

.data{
    display:flex;
    align-items:center;
    justify-content:center;
    background:#C7EAF2;
    color:#5aaeca;
    font-size:18px;
    font-weight:600;
    padding:15px;
    text-align:center
}

.attivita-progetto{
    display:flex;
    align-items:center;
    background:#f8fcfd;
    padding:15px 25px;
    font-size:18px;
    line-height:1.5
}

.info-progetto{margin-top:70px}

.info-box{
    background:#f8fcfd;
    border:2px solid #C7EAF2;
    border-radius:25px;
    padding:35px;
    text-align:center
}

.info-box h2{
    margin:0 0 20px;
    color:#6EC6E6;
    font-size:30px
}

.info-box p{
    font-size:18px;
    line-height:1.6;
    margin:0
}

.note-progetto{
    margin-top:60px;
    padding-top:30px;
    border-top:2px solid #C7EAF2;
    text-align:center
}

.note-progetto p{
    font-size:15px;
    line-height:1.6;
    margin:0
}

.menu{
    background:white;
    padding:90px 20px
}

.menu-intro{
    max-width:850px;
    margin:0 auto;
    text-align:center
}

.menu-intro h2{
    margin-top:0;
    font-size:42px;
    margin-bottom:25px
}

.menu-intro p{
    font-size:19px;
    line-height:1.7;
    margin-bottom:20px
}

.bottone-allergeni{
    display:flex;
    width:220px;
    min-height:75px;
    margin:35px auto 0;
    background:#C7EAF2;
    color:#5aaeca;
    border-radius:22px;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    font-size:20px;
    font-weight:600;
    box-shadow:0 6px 18px rgba(0,0,0,.06);
    transition:transform .25s ease,box-shadow .25s ease
}

.bottone-allergeni:hover{
    transform:translateY(-5px);
    box-shadow:0 10px 25px rgba(0,0,0,.1)
}

.kindertap{
    background:#C7EAF2;
    padding:90px 20px
}

.kindertap-intro{
    max-width:850px;
    margin:0 auto;
    text-align:center
}

.kindertap-intro h2{
    margin-top:0;
    font-size:42px;
    margin-bottom:25px
}

.kindertap-intro p{
    font-size:19px;
    line-height:1.7;
    margin-bottom:20px
}

.kindertap-logo{
    display:block;
    width:250px;
    max-width:80%;
    margin:40px auto 35px
}

.kindertap-store{
    display:flex;
    justify-content:center;
    gap:20px
}

.kindertap-button{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:190px;
    padding:14px 28px;
    background:white;
    color:#5aaeca;
    border:2px solid #C7EAF2;
    border-radius:20px;
    text-decoration:none;
    font-size:18px;
    font-weight:500;
    box-shadow:0 6px 18px rgba(0,0,0,.06);
    transition:transform .25s ease,box-shadow .25s ease
}

.kindertap-button:hover{
    transform:translateY(-5px);
    box-shadow:0 10px 24px rgba(0,0,0,.1)
}

.contatti{
    position:relative;
    padding:90px 30px;
    background:white
}

.contatti-intro{
    max-width:1050px;
    margin:0 auto;
    text-align:center
}

.contatti-intro>h2{
    margin:0 0 45px;
    color:#5aaeca;
    font-size:38px;
    font-weight:600
}

.contatti-griglia{
    max-width:1000px;
    margin:0 auto;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px
}

.contatto-card{
    display:flex;
    align-items:center;
    gap:20px;
    min-height:150px;
    padding:28px 30px;
    background:#f8fcfd;
    border:2px solid #C7EAF2;
    border-radius:24px;
    color:inherit;
    text-decoration:none;
    text-align:left;
    box-shadow:0 8px 22px rgba(0,0,0,.06);
    transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease
}

.contatto-card:hover{
    transform:translateY(-5px);
    border-color:#6EC6E6;
    box-shadow:0 12px 28px rgba(0,0,0,.1)
}

.contatto-icona{
    flex:0 0 58px;
    width:58px;
    height:58px;
    border-radius:50%;
    background:#C7EAF2;
    color:#5aaeca;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:26px
}

.contatto-contenuto h3{
    margin:0 0 8px;
    color:#5aaeca;
    font-size:22px;
    font-weight:600
}

.contatto-contenuto p{
    margin:0;
    font-size:18px;
    line-height:1.45
}

.social-contatti{
    max-width:1000px;
    margin:55px auto 0
}

.social-contatti>h3{
    margin:0 0 22px;
    color:#5aaeca;
    font-size:25px;
    font-weight:600
}

.social-griglia{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px
}

.social-card{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:75px;
    background:#f8fcfd;
    color:#5aaeca;
    text-decoration:none;
    border:2px solid #C7EAF2;
    border-radius:20px;
    font-size:20px;
    font-weight:500;
    box-shadow:0 6px 18px rgba(0,0,0,.06);
    transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease
}

.social-card:hover{
    transform:translateY(-5px);
    border-color:#6EC6E6;
    box-shadow:0 10px 24px rgba(0,0,0,.1);
    background:white
}


/* ================================
   ONDA TRA LE SEZIONI
   ================================ */

.home,
.presentazione,
.scuola,
.didattica,
.iscrizioni,
.programmi,
.menu,
.kindertap,
.contatti{
    position:relative;
}

.presentazione,
.didattica,
.programmi,
.kindertap{
    margin-bottom:70px;
}

.scuola,
.iscrizioni,
.menu{
    margin-bottom:70px;
}

/* onda azzurra che entra nella sezione successiva */
.home:after,
.scuola:after,
.iscrizioni:after,
.menu:after{
    content:"";
    position:absolute;
    left:-5%;
    bottom:-70px;
    width:110%;
    height:140px;
    background:#C7EAF2;
    border-radius:50% 50% 0 0 / 70% 70% 0 0;
    z-index:2;
}

/* onda bianca che entra nella sezione successiva */
.presentazione:after,
.didattica:after,
.programmi:after,
.kindertap:after{
    content:"";
    position:absolute;
    left:-5%;
    bottom:-70px;
    width:110%;
    height:140px;
    background:white;
    border-radius:50% 50% 0 0 / 70% 70% 0 0;
    z-index:2;
}


/* curva più bassa prima del footer */
.contatti{
    margin-bottom:30px;
}

.contatti:after{
    content:"";
    position:absolute;
    left:-5%;
    bottom:-30px;
    width:110%;
    height:60px;
    background:#C7EAF2;
    border-radius:50% 50% 0 0 / 70% 70% 0 0;
    z-index:2;
}


/* ================================
   RESPONSIVE
   ================================ */

@media(max-width:900px){

    .scuola-intro{
        grid-template-columns:1fr;
        gap:40px
    }

    .ambienti{
        grid-template-columns:1fr
    }

    .iscrizioni-contenuto{
        grid-template-columns:1fr;
        gap:40px
    }

    .programmi-griglia{
        grid-template-columns:1fr 1fr
    }

    .libri-programma-griglia{
        grid-template-columns:1fr 1fr
    }

    .incontro{
        grid-template-columns:180px 1fr
    }

    .menu-navigazione{
        gap:12px;
        flex-wrap:wrap
    }

    .menu-navigazione a{
        padding:11px 16px;
        font-size:15px
    }
}

@media(max-width:800px){

    .home{
        min-height:90vh
    }

    .logo{
        width:400px
    }

    .scuola{
        padding:70px 30px
    }

    .scuola-intro{
        margin-bottom:55px
    }

    .foto-intro img{
        height:250px
    }

    .ambienti{
        gap:25px
    }

    .ambiente img{
        height:280px
    }

    .giardino{
        margin-top:60px
    }

    .giardino-foto img{
        height:300px
    }

    .didattica{
        padding:70px 20px
    }

    .didattica-intro{
        margin-bottom:55px
    }

    .momento{
        grid-template-columns:55px 80px 1fr
    }

    .icona{
        width:55px;
        height:55px;
        font-size:22px
    }

    .timeline:before{
        left:26px
    }

    .ora{
        font-size:18px
    }

    .attivita{
        padding:14px 18px
    }

    .iscrizioni{
        padding:70px 30px
    }

    .programmi{
        padding:70px 20px
    }

    .extracurricolari .programmi-griglia{
        grid-template-columns:1fr 1fr
    }

    .extracurricolari .programma{
        grid-column:auto
    }

    .extracurricolari .programma:nth-child(4),
    .extracurricolari .programma:nth-child(5){
        grid-column:auto
    }

    .pagina-programma{
        padding:30px 25px 70px
    }

    .programma-header h1{
        font-size:46px
    }

    .programma-header h2{
        font-size:28px
    }

    .programma-box{
        padding:30px
    }

    .periodo-contenuto{
        padding:25px
    }

    .libri-programma-griglia{
        grid-template-columns:1fr 1fr
    }

    .pagina-progetto{
        padding:30px 25px 70px
    }

    .progetto-header h1{
        font-size:46px
    }

    .incontro{
        grid-template-columns:1fr
    }

    .data{
        min-height:55px
    }

    .attivita-progetto{
        padding:14px 20px
    }

    .menu{
        padding:70px 30px
    }

    .kindertap{
        padding:70px 30px
    }

    .contatti{
        padding:65px 20px;
        margin-bottom:25px
    }

    .contatti-intro>h2{
        font-size:32px;
        margin-bottom:30px
    }

    .contatti-griglia{
        grid-template-columns:1fr;
        gap:18px
    }

    .contatto-card{
        min-height:125px;
        padding:23px
    }

    .social-contatti{
        margin-top:40px
    }

    .torna-home{
        margin-top:55px;
        margin-right:5px
    }

    .presentazione,
    .didattica,
    .programmi,
    .kindertap,
    .scuola,
    .iscrizioni,
    .menu{
        margin-bottom:55px
    }

    .home:after,
    .scuola:after,
    .iscrizioni:after,
    .menu:after,
    .presentazione:after,
    .didattica:after,
    .programmi:after,
    .kindertap:after{
        bottom:-55px;
        height:110px;
    }

    .contatti:after{
        bottom:-25px;
        height:50px;
    }
}

@media(max-width:600px){

    .home{
        min-height:90vh
    }

    .logo{
        width:350px;
        max-width:90%
    }

    .presentazione{
        padding:60px 20px
    }

    .presentazione p{
        font-size:17px
    }

    .scuola{
        padding:65px 20px
    }

    .scuola-testo h2,
    .didattica-intro h2,
    .iscrizioni-testo h2,
    .programmi-intro h2{
        font-size:34px
    }

    .scuola-testo p,
    .giardino-testo p,
    .iscrizioni-testo p,
    .programmi-intro p{
        font-size:17px
    }

    .metri{
        align-items:flex-start;
        flex-direction:column;
        gap:5px
    }

    .metri strong{
        font-size:34px
    }

    .foto-intro{
        grid-template-columns:1fr;
        gap:15px
    }

    .foto-intro img{
        height:260px
    }

    .ambienti{
        gap:25px
    }

    .ambiente img{
        height:280px
    }

    .ambiente h3{
        font-size:23px
    }

    .ambiente p{
        font-size:16px
    }

    .giardino{
        margin-top:60px
    }

    .giardino-foto{
        gap:15px
    }

    .giardino-foto img{
        height:280px
    }

    .didattica{
        padding:65px 15px
    }

    .didattica-intro{
        margin-bottom:55px
    }

    .didattica-intro p{
        font-size:17px
    }

    .giornata h3{
        font-size:28px
    }

    .momento{
        grid-template-columns:48px 65px 1fr;
        gap:10px
    }

    .icona{
        width:48px;
        height:48px;
        font-size:20px
    }

    .icona-pappa svg{
        width:23px;
        height:23px
    }

    .timeline:before{
        left:22px
    }

    .ora{
        font-size:16px
    }

    .attivita{
        padding:13px 15px
    }

    .attivita strong{
        font-size:16px
    }

    .iscrizioni{
        padding:65px 20px
    }

    .programmi{
        padding:65px 20px
    }

    .programmi-griglia{
        grid-template-columns:1fr
    }

    .programma{
        min-height:90px
    }

    .extracurricolari{
        margin-top:65px
    }

    .extracurricolari .programmi-griglia{
        grid-template-columns:1fr
    }

    .extracurricolari .programma{
        grid-column:auto
    }

    .pagina-programma{
        padding:20px 15px 50px
    }

    .torna-programmi{
        margin-bottom:35px
    }

    .programma-header{
        margin-bottom:50px
    }

    .programma-eta{
        font-size:15px
    }

    .programma-header h1{
        font-size:34px
    }

    .programma-header h2{
        font-size:24px
    }

    .programma-header p{
        font-size:17px;
        line-height:1.6
    }

    .programma-titolo-sezione{
        margin-bottom:25px
    }

    .programma-titolo-sezione h2{
        font-size:28px
    }

    .programma-box{
        padding:25px 18px;
        border-radius:20px
    }

    .programma-box p,
    .lista-programma li{
        font-size:16px
    }

    .traguardo-programma{
        padding:20px
    }

    .traguardo-programma h3{
        font-size:20px
    }

    .periodo-programma{
        margin-bottom:25px;
        border-radius:18px
    }

    .periodo-header{
        font-size:19px;
        padding:14px 17px
    }

    .periodo-obiettivi,
    .attivita-periodo{
        padding:20px 17px
    }

    .periodo-obiettivi p{
        font-size:15px
    }

    .attivita-periodo h3{
        font-size:21px
    }

    .attivita-periodo li{
        font-size:14px
    }

    .insegnamento-card{
        padding:24px 18px;
        border-radius:20px
    }

    .insegnamento-card h3{
        font-size:23px
    }

    .insegnamento-card>p{
        font-size:16px
    }

    .attivita-insegnamento{
        padding:20px 17px
    }

    .attivita-insegnamento li{
        font-size:15px
    }

    .momento-psicomotricita{
        grid-template-columns:38px 1fr;
        gap:12px;
        padding:13px 15px
    }

    .momento-psicomotricita>span{
        width:34px;
        height:34px
    }

    .momento-psicomotricita h4{
        font-size:16px
    }

    .momento-psicomotricita p{
        font-size:14px
    }

    .nota-programma{
        margin-bottom:60px;
        padding:22px 5px
    }

    .nota-programma strong{
        font-size:17px
    }

    .nota-programma p{
        font-size:14px
    }

    .libri-programma-griglia{
        grid-template-columns:1fr
    }

    .libro-programma{
        padding:22px 18px
    }

    .pagina-progetto{
        padding:20px 15px 50px
    }

    .pagina-progetto .torna-programmi{
        margin-bottom:35px
    }

    .progetto-header h1{
        font-size:32px;
        line-height:1.15;
        margin-bottom:30px
    }

    .progetto-descrizione p{
        font-size:17px;
        line-height:1.6;
        margin-bottom:20px
    }

    .programma-progetto{
        margin-top:50px
    }

    .programma-progetto h2{
        font-size:26px;
        margin-bottom:22px
    }

    .date-programma{
        gap:10px
    }

    .incontro{
        border-radius:14px
    }

    .data{
        padding:9px 15px;
        font-size:14px
    }

    .attivita-progetto{
        padding:12px 15px;
        font-size:16px
    }

    .info-progetto{
        margin-top:45px
    }

    .info-box{
        border-radius:20px;
        padding:25px 18px
    }

    .info-box h2{
        font-size:25px;
        margin-bottom:20px
    }

    .info-box p{
        font-size:16px
    }

    .note-progetto{
        margin-top:45px;
        padding-top:25px
    }

    .note-progetto p{
        font-size:13px;
        line-height:1.5
    }

    .menu{
        padding:55px 15px
    }

    .menu-intro h2{
        font-size:28px;
        margin-bottom:25px
    }

    .menu-intro p{
        font-size:17px;
        line-height:1.6
    }

    .bottone-allergeni{
        width:180px;
        min-height:65px;
        font-size:17px;
        border-radius:20px
    }

    .kindertap{
        padding:55px 15px
    }

    .kindertap-intro h2{
        font-size:28px;
        margin-bottom:25px
    }

    .kindertap-intro p{
        font-size:17px;
        line-height:1.6
    }

    .kindertap-logo{
        width:190px;
        max-width:75%;
        margin:30px auto
    }

    .kindertap-store{
        flex-direction:column;
        align-items:center;
        gap:12px
    }

    .kindertap-button{
        width:190px;
        min-width:0;
        font-size:16px;
        padding:12px 20px
    }

    .contatti{
        padding:55px 15px;
        margin-bottom:20px
    }

    .contatti-intro>h2{
        font-size:28px;
        margin-bottom:25px
    }

    .contatto-card{
        gap:15px;
        padding:20px;
        border-radius:20px
    }

    .contatto-icona{
        flex-basis:48px;
        width:48px;
        height:48px;
        font-size:22px
    }

    .contatto-contenuto h3{
        font-size:20px
    }

    .contatto-contenuto p{
        font-size:16px
    }

    .social-griglia{
        grid-template-columns:1fr;
        gap:15px
    }

    .social-card{
        min-height:65px;
        font-size:18px
    }

    .torna-home{
        margin-top:50px;
        margin-right:5px;
        font-size:14px
    }

    .menu-navigazione{
        flex-wrap:wrap;
        gap:10px
    }

    .menu-navigazione a{
        width:100%;
        min-height:48px;
        font-size:14px;
        padding:10px 15px
    }

    .presentazione,
    .didattica,
    .programmi,
    .kindertap,
    .scuola,
    .iscrizioni,
    .menu{
        margin-bottom:45px
    }

    .home:after,
    .scuola:after,
    .iscrizioni:after,
    .menu:after,
    .presentazione:after,
    .didattica:after,
    .programmi:after,
    .kindertap:after{
        bottom:-45px;
        height:90px;
    }

    .contatti{
        margin-bottom:15px
    }

    .contatti:after{
        bottom:-15px;
        height:30px;
    }
}


/* ================================
   FOOTER
   ================================ */

.footer-sito{
    background:#C7EAF2;
    padding:45px 30px 25px;
    text-align:center
}

.footer-contenuto{
    max-width:1100px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:45px;
    text-align:center
}

.footer-logo{
    flex:0 0 auto
}

.footer-logo img{
    width:120px;
    height:120px;
    object-fit:contain;
    margin:0 auto
}

.footer-dati{
    flex:0 1 auto;
    text-align:center
}

.footer-nome{
    font-size:22px;
    font-weight:600;
    margin-bottom:12px;
    color:#4b4b4b
}

.footer-informazioni{
    font-size:15px;
    line-height:1.7
}

.footer-bottom{
    margin-top:22px;
    font-size:13px;
    line-height:1.6
}

.footer-bottom span{
    margin:0 7px
}

.footer-bottom a{
    color:#4b4b4b;
    text-decoration:none
}

.footer-bottom a:hover{
    color:#5aaeca;
    text-decoration:underline
}

@media(max-width:800px){

    .footer-sito{
        padding:40px 20px 22px
    }

    .footer-contenuto{
        flex-direction:column;
        gap:20px
    }

    .footer-logo img{
        width:100px;
        height:100px
    }
}

@media(max-width:600px){

    .footer-sito{
        padding:35px 15px 20px
    }

    .footer-logo img{
        width:85px;
        height:85px
    }

    .footer-nome{
        font-size:19px
    }

    .footer-informazioni{
        font-size:14px
    }

    .footer-bottom{
        font-size:12px
    }
}


/* ================================
   ANIMAZIONE HOME
   ================================ */

@keyframes homeLogoIn{
    from{
        opacity:0;
        transform:translateY(12px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

@keyframes homeMenuIn{
    from{
        opacity:0;
        transform:translateY(10px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

.home .logo{
    animation:homeLogoIn .7s ease-out both;
}

.home .menu-navigazione{
    animation:homeMenuIn .7s ease-out .2s both;
}

/* ================================
   TESTATA SUPERIORE
   ================================ */

.top-bar{
    width:100%;
    max-width:100%;
    background:#C7EAF2;
    border-bottom:1px solid rgba(90,174,202,.25);
    padding:9px 35px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    color:#4b4b4b;
    font-size:14px;
    white-space:nowrap;
    overflow:hidden;
}

.top-bar-info{
    display:flex;
    align-items:center;
    gap:22px;
    min-width:0;
    overflow:hidden;
}

.top-bar-info span{
    display:flex;
    align-items:center;
}

.top-bar-social{
    display:flex;
    align-items:center;
    gap:14px;
    flex:0 0 auto;
}

.top-bar-social a{
    display:flex;
    align-items:center;
    justify-content:center;
    color:#5aaeca;
    text-decoration:none;
    transition:transform .2s ease,color .2s ease;
}

.top-bar-social a:hover{
    color:#3f91ad;
    transform:translateY(-2px);
}

.top-bar-social svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.top-bar-social a:last-child svg{
    fill:currentColor;
    stroke:none;
}

@media(max-width:900px){
    .top-bar{
        padding:9px 20px;
        font-size:13px;
    }

    .top-bar-info{
        gap:14px;
    }
}

@media(max-width:600px){
    .top-bar{
        padding:8px 15px;
        font-size:12px;
    }

    .top-bar-social{
        gap:10px;
    }

    .top-bar-social svg{
        width:19px;
        height:19px;
    }
}
