/* =========================================================
   PAGINA DI ISCRIZIONE e pagine legali (privacy, condizioni)
   Colori e forme allineati all'app. Niente CSS grid e niente
   "gap": solo flex con margini, cosi' funziona anche su browser
   datati. Nessuna immagine o carattere da servizi esterni.
========================================================= */

:root{
    --isc-blu:#0b347e;
    --isc-blu-2:#1550b8;
    --isc-blu-chiaro:#38509e;
    --isc-rosso:#d40000;
    --isc-rosso-scuro:#b80000;
    --isc-giallo:#ffd400;
    --isc-testo:#1f2937;
    --isc-grigio:#5b6577;
    --isc-bordo:#dbe1ec;
    --isc-sfondo:#f3f6fb;
}

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

html{
    scroll-behavior:smooth;
}

body{
    font-family:Arial,Helvetica,sans-serif;
    color:var(--isc-testo);
    background:#fff;
    line-height:1.5;
}

a{
    color:var(--isc-blu-chiaro);
}

.isc-wrap{
    width:100%;
    max-width:1120px;
    margin:0 auto;
    padding:0 20px;
}

/* ---------- barra in alto ---------- */

.isc-top{
    background:var(--isc-blu);
    border-bottom:3px solid var(--isc-giallo);
}

.isc-top-inner{
    max-width:1120px;
    margin:0 auto;
    padding:10px 20px;
    display:-webkit-flex;
    display:flex;
    -webkit-align-items:center;
    align-items:center;
    -webkit-justify-content:space-between;
    justify-content:space-between;
}

.isc-logo{
    width:120px;
    height:auto;
    display:block;
}

.isc-login-link{
    color:#fff;
    text-decoration:none;
    font-size:14px;
    text-align:right;
}

.isc-login-link strong{
    color:var(--isc-giallo);
}

/* ---------- presentazione + modulo ---------- */

.isc-hero{
    background:#0f45a0;
    background:linear-gradient(135deg,var(--isc-blu) 0%,var(--isc-blu-2) 100%);
    color:#fff;
    padding:46px 0 54px;
}

.isc-hero-inner{
    display:-webkit-flex;
    display:flex;
    -webkit-flex-wrap:wrap;
    flex-wrap:wrap;
    -webkit-align-items:flex-start;
    align-items:flex-start;
    margin:0 -16px;
}

.isc-hero-testo{
    -webkit-flex:1 1 440px;
    flex:1 1 440px;
    margin:0 16px 20px;
    min-width:0;
}

.isc-hero-form{
    -webkit-flex:0 1 430px;
    flex:0 1 430px;
    margin:0 16px 20px;
    min-width:0;
}

.isc-etichetta{
    display:inline-block;
    background:rgba(255,212,0,.16);
    color:var(--isc-giallo);
    border-radius:20px;
    padding:5px 14px;
    font-size:13px;
    font-weight:bold;
    margin-bottom:16px;
}

.isc-hero h1{
    font-size:36px;
    line-height:1.18;
    margin-bottom:16px;
}

.isc-hero p.isc-sotto{
    font-size:18px;
    line-height:1.55;
    color:#dbe6ff;
    max-width:560px;
    margin-bottom:22px;
}

.isc-punti{
    list-style:none;
}

.isc-punti li{
    position:relative;
    padding:0 0 0 34px;
    margin:0 0 12px;
    font-size:16px;
    color:#fff;
}

.isc-punti li::before{
    content:"\2713";
    position:absolute;
    left:0;
    top:-1px;
    width:24px;
    height:24px;
    border-radius:50%;
    background:var(--isc-giallo);
    color:#1a1a1a;
    font-weight:bold;
    font-size:14px;
    line-height:24px;
    text-align:center;
}

/* ---------- modulo ---------- */

.isc-form{
    background:#fff;
    color:var(--isc-testo);
    border-radius:18px;
    padding:26px 26px 22px;
    box-shadow:0 18px 40px rgba(0,0,0,.28);
}

.isc-form h2{
    color:var(--isc-blu);
    font-size:23px;
    margin-bottom:4px;
}

.isc-form-sub{
    color:var(--isc-grigio);
    font-size:14px;
    margin-bottom:18px;
}

.isc-campo{
    margin-bottom:14px;
}

.isc-campo label{
    display:block;
    color:var(--isc-blu);
    font-weight:bold;
    font-size:13.5px;
    margin-bottom:5px;
}

.isc-campo label small{
    font-weight:normal;
    color:var(--isc-grigio);
}

.isc-campo input{
    width:100%;
    height:46px;
    padding:0 13px;
    border:2px solid #c3cde0;
    border-radius:10px;
    font-size:16px;   /* 16px: su iPhone evita lo zoom automatico */
    background:#fff;
    color:var(--isc-testo);
    transition:border-color .15s, box-shadow .15s;
}

.isc-campo input:focus{
    border-color:var(--isc-blu-2);
    box-shadow:0 0 0 3px rgba(21,80,184,.18);
    outline:none;
}

.isc-pw{
    position:relative;
}

.isc-pw input{
    padding-right:78px;
}

.isc-pw button{
    position:absolute;
    right:6px;
    top:6px;
    height:34px;
    padding:0 12px;
    border:none;
    border-radius:8px;
    background:#eef2fa;
    color:var(--isc-blu);
    font-size:13px;
    font-weight:bold;
    cursor:pointer;
}

.isc-pw button:hover{
    background:#dfe7f6;
}

.isc-accetto{
    display:-webkit-flex;
    display:flex;
    -webkit-align-items:flex-start;
    align-items:flex-start;
    font-size:13px;
    line-height:1.45;
    color:var(--isc-grigio);
    margin:0 0 11px;
    cursor:pointer;
}

.isc-accetto input{
    -webkit-flex:0 0 20px;
    flex:0 0 20px;
    width:20px;
    height:20px;
    margin:1px 10px 0 0;
}

.isc-btn{
    display:inline-block;
    border:none;
    border-radius:10px;
    padding:14px 28px;
    font-size:16px;
    font-weight:bold;
    text-decoration:none;
    cursor:pointer;
    text-align:center;
    transition:background .15s;
}

.isc-btn-giallo{
    background:var(--isc-giallo);
    color:#1a1a1a;
}

.isc-btn-giallo:hover{
    background:#ffe14d;
}

.isc-btn-rosso{
    background:var(--isc-rosso);
    color:#fff;
}

.isc-btn-rosso:hover{
    background:var(--isc-rosso-scuro);
}

.isc-btn-pieno{
    width:100%;
    height:50px;
    padding:0;
    margin-top:6px;
}

.isc-form-fondo{
    text-align:center;
    font-size:13.5px;
    color:var(--isc-grigio);
    margin-top:14px;
}

.isc-errore{
    background:#fdecea;
    border:1px solid #f5b5ae;
    border-left:5px solid #d93025;
    color:#8a1c10;
    border-radius:8px;
    padding:11px 14px;
    font-size:14.5px;
    margin-bottom:16px;
}

/* campo trappola per i robot: fuori dallo schermo (non display:none,
   che alcuni robot ignorano) */
.isc-trappola{
    position:absolute;
    left:-5000px;
    width:1px;
    height:1px;
    overflow:hidden;
}

/* ---------- sezioni ---------- */

.isc-sezione{
    padding:56px 0;
}

.isc-sezione-grigia{
    background:var(--isc-sfondo);
}

.isc-sezione h2.isc-titolo{
    color:var(--isc-blu);
    font-size:28px;
    text-align:center;
    margin-bottom:8px;
}

.isc-sezione p.isc-intro{
    text-align:center;
    color:var(--isc-grigio);
    font-size:16.5px;
    max-width:640px;
    margin:0 auto 30px;
}

.isc-riga{
    display:-webkit-flex;
    display:flex;
    -webkit-flex-wrap:wrap;
    flex-wrap:wrap;
    margin:0 -10px;
}

.isc-card{
    -webkit-flex:1 1 calc(33.333% - 20px);
    flex:1 1 calc(33.333% - 20px);
    min-width:260px;
    margin:10px;
    background:#fff;
    border:1px solid var(--isc-bordo);
    border-radius:16px;
    padding:22px;
    box-shadow:0 4px 14px rgba(11,52,126,.06);
}

.isc-icona{
    width:46px;
    height:46px;
    border-radius:12px;
    background:#e9effb;
    font-size:23px;
    line-height:46px;
    text-align:center;
    margin-bottom:12px;
}

.isc-card h3{
    color:var(--isc-blu);
    font-size:17.5px;
    margin-bottom:6px;
}

.isc-card p{
    font-size:15px;
    color:var(--isc-grigio);
}

/* passi */
.isc-passo{
    -webkit-flex:1 1 calc(33.333% - 20px);
    flex:1 1 calc(33.333% - 20px);
    min-width:260px;
    margin:10px;
    background:#fff;
    border-radius:16px;
    padding:22px;
    border:1px solid var(--isc-bordo);
}

.isc-num{
    width:40px;
    height:40px;
    border-radius:50%;
    background:var(--isc-blu);
    color:var(--isc-giallo);
    font-weight:bold;
    font-size:19px;
    line-height:40px;
    text-align:center;
    margin-bottom:12px;
}

.isc-passo h3{
    color:var(--isc-blu);
    font-size:17.5px;
    margin-bottom:6px;
}

.isc-passo p{
    font-size:15px;
    color:var(--isc-grigio);
}

/* domande frequenti */
.isc-faq{
    max-width:780px;
    margin:0 auto;
}

.isc-faq details{
    background:#fff;
    border:1px solid var(--isc-bordo);
    border-radius:12px;
    margin-bottom:10px;
}

.isc-faq summary{
    cursor:pointer;
    list-style:none;
    padding:16px 46px 16px 18px;
    font-weight:bold;
    color:var(--isc-blu);
    position:relative;
    font-size:16px;
}

.isc-faq summary::-webkit-details-marker{
    display:none;
}

.isc-faq summary::after{
    content:"+";
    position:absolute;
    right:18px;
    top:50%;
    margin-top:-14px;
    font-size:24px;
    line-height:28px;
    color:var(--isc-blu-chiaro);
}

.isc-faq details[open] summary::after{
    content:"\2212";
}

.isc-faq details p{
    padding:0 18px 16px;
    font-size:15px;
    color:var(--isc-grigio);
}

/* invito finale */
.isc-invito{
    background:var(--isc-blu);
    color:#fff;
    text-align:center;
    padding:46px 20px;
}

.isc-invito h2{
    font-size:26px;
    margin-bottom:8px;
}

.isc-invito p{
    color:#dbe6ff;
    margin-bottom:20px;
}

/* ---------- piede ---------- */

.isc-footer{
    background:#08265c;
    color:#c9d6f0;
    text-align:center;
    padding:22px 15px;
    font-size:13px;
    line-height:1.9;
}

.isc-footer a{
    color:var(--isc-giallo);
    margin:0 6px;
}

/* ---------- tablet e telefono ---------- */

@media(max-width:900px){

    .isc-hero{
        padding:34px 0 40px;
    }

    .isc-hero h1{
        font-size:30px;
    }

    .isc-hero-form{
        -webkit-flex:1 1 100%;
        flex:1 1 100%;
    }
}

@media(max-width:560px){

    .isc-top-inner{
        padding:8px 14px;
    }

    .isc-logo{
        width:100px;
    }

    .isc-wrap{
        padding:0 14px;
    }

    .isc-hero{
        padding:26px 0 32px;
    }

    .isc-hero h1{
        font-size:25px;
    }

    .isc-hero p.isc-sotto{
        font-size:16px;
    }

    .isc-hero-inner,
    .isc-riga{
        margin:0;
    }

    .isc-hero-testo,
    .isc-hero-form{
        margin:0 0 20px;
    }

    .isc-card,
    .isc-passo{
        min-width:0;
        -webkit-flex-basis:100%;
        flex-basis:100%;
        margin:8px 0;
    }

    .isc-form{
        padding:20px 16px 18px;
    }

    .isc-sezione{
        padding:38px 0;
    }

    .isc-sezione h2.isc-titolo{
        font-size:23px;
    }
}
