/* ==================================================================
   SI GLASS — stylesheet globale
   Ricostruito sulle misure esatte dell'artboard XD "Minisito" (1920px).
   I numeri nei commenti sono i valori letti dal bozzetto a 1920px.
   ================================================================== */

:root{
    /* palette bozzetto */
    --blu:          #0c6cc0;
    --blu-scuro:    #0a395d;   /* fondo pagina */
    --blu-profondo: #163a9b7b;   /* pillole Rapidita'/Efficienza/Sicurezza */
    --blu-chiaro:   #1c72b8;   /* testo del bottone Invia */
    --white-color:  #fff;

    /* vetro: fill 10%, bordo 40%, blur 30, ombra 0 8 12 (valori del bozzetto) */
    --vetro-fill:   rgba(255,255,255,.10);
    --vetro-bordo:  rgba(255,255,255,.40);
    --vetro-blur:   blur(22px);
    --vetro-ombra:  0 8px 12px rgba(0,0,0,.08);

    /* tipografia */
    --font-display: "loos-compressed", sans-serif;
    --font-body:    "Poppins", sans-serif;

    /* corpi: valore @1920 -> vw */
    --t80: clamp(2.5rem,  3.8vw, 78px);
    --t65: clamp(2.15rem, 3.2vw, 56px);
    --t50: clamp(1.75rem, 2.5vw, 42px);
    --t40: clamp(1.45rem, 1.875vw, 34px);
    --t35: clamp(1.35rem,  1.65vw, 28px);
    --t30: clamp(1.25rem, 1.45vw, 24px);
    --t27: clamp(1.15rem, 1.35vw, 21px);
    --t26: clamp(.875rem, 1.15vw, 17px);

    /* raggi */
    --r73: clamp(48px, 3.80vw, 73px);
    --r40: clamp(28px, 2.08vw, 40px);
    --r23: clamp(20px, 1.20vw, 23px);
    --r20: 20px;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
    font-family:var(--font-body);
    font-weight:400;
    color:var(--white-color);
    background-color:var(--blu-scuro);
    overflow-x:hidden;
}

h1,h2,h3,h4,h5,h6{ font-family:var(--font-display); font-weight:700; margin:0; }
p{ margin:0; }
p,a,li,label,input,textarea,button,span{ font-family:var(--font-body); }
a{ color:inherit; }
img{ max-width:100%; }
ul{ margin:0; padding:0; list-style:none; }

/* contenitori: larghezze del bozzetto ------------------------------- */
.wrap    { width:min(1480px, 90vw); margin-inline:auto; }   /* 1480 @1920 */
.wrap-lg { width:min(1712px, 94vw); margin-inline:auto; }   /* 1712 @1920 */
.wrap-form{ width:min(1646px, 92vw); margin-inline:auto; }  /* 1646 @1920 */
.wrap-mappa { width: min(1000px, 90vw); margin-inline: auto; display: flex; flex-direction: column; justify-content: center; }

/*@media (max-width: 780.98px){*/
/*    .wrap-mappa{*/
/*        margin-inline: 0;*/
/*    }*/
/*}*/

/* fascia bianca a tutta larghezza (nel bozzetto i pannelli bianchi
   sbordano oltre l'artboard: niente angoli arrotondati visibili) */
.fascia-bianca{
    background-color:var(--white-color);
    color:var(--blu-scuro);
}

/* accessibilita' ---------------------------------------------------- */
.skip-link{
    position:absolute; left:-9999px; top:0; z-index:2000;
    background:var(--white-color); color:var(--blu);
    padding:.75rem 1.25rem; border-radius:0 0 12px 0; font-weight:600;
}
.skip-link:focus{ left:0; }
:focus-visible{ outline:3px solid #fff; outline-offset:3px; }

/* vetro ------------------------------------------------------------- */
.vetro{
    background-color:var(--vetro-fill);
    border:1px solid var(--vetro-bordo);
    -webkit-backdrop-filter:var(--vetro-blur);
    backdrop-filter:var(--vetro-blur);
    box-shadow:var(--vetro-ombra);
}

/* icone ------------------------------------------------------------- */
.ico{ display:inline-block; width:1em; height:1em; vertical-align:middle; flex:0 0 auto; }
.ico-svg{ display:block; width:100%; height:100%; }

/* ==================================================================
   HEADER  (logo x46 y10 114x88 · link y102 26px · bottone x1617 198x63 r32)
   ================================================================== */
#header{
    padding:clamp(.6rem, .875vw, 1.35rem) 0;
    transition:background-color .3s ease, box-shadow .3s ease;
}
#header > .container-fluid{
    width:min(1769px, 96vw);      /* 46 -> 1815 @1920 */
    margin-inline:auto;
    padding:0;
}
#header.header-scrolled{
    background-color:rgba(255,255,255,.93);
    backdrop-filter:blur(24px);
    box-shadow:0 4px 18px rgba(10,57,93,.12);
}
.img-logo{ width:clamp(78px, 5.94vw, 114px); height:auto; transition: transform .3s ease-in-out; }

.img-logo:hover{
    transform: scale(1.1);
}

#header .nav-link{
    color:var(--blu);
    font-weight:700;
    font-size:var(--t30);
    padding:.4rem clamp(.875rem, 1.35vw, 30px);
    transition: transform .3s ease-in-out, color .3s ease-in-out;
}

#header .nav-link:hover,#header .nav-link:focus{ color:var(--blu-scuro); transform: scale(1.1); }

.btn-contatti{                                   /* 198x63 r32 @1920 */
    display:inline-flex; align-items:center; justify-content:center;
    min-width:clamp(125px, 10.5vw, 148px);
    min-height:clamp(36px, 3.35vw, 48px);
    background-color:var(--blu);
    color:var(--white-color) !important;
    text-decoration:none;
    border:none;
    border-radius:clamp(21px, 1.67vw, 32px);
    font-family:var(--font-display);
    font-weight:700;
    font-size:var(--t30);
    white-space:nowrap;
    transition: .3s ease-in-out;
}

.btn-contatti:hover,.btn-contatti:focus{ background-color:var(--blu-scuro); color:var(--white-color) !important; transform: scale(1.05) }

.navbar-toggler{ border-color:var(--blu); padding:.35rem .6rem; }
.navbar-toggler:focus{ box-shadow:none; }
.navbar-toggler-icon{
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%230c6cc0' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

#navMain{
    padding-top: .75rem;
    padding-bottom: .75rem;
}

@media(max-width:767.98px){
    #navMain{
        border-radius:24px;
        padding:1rem .75rem;
        margin-top: 1rem;
    }

    #header:not(.header-scrolled) #navMain.show{
        background-color:rgba(255,255,255,.73);
    }
}

/* ==================================================================
   HERO HOME
   foto 0..1231 · box h1 x700 w1124 h394 r73 · box sub x827 w997 h170 r57
   · bottone x1522 w302 h61 r31 bianco  (tutti allineati a destra a 1824)
   ================================================================== */
.hero-home{
    position:relative;
    height: 100vh;
    min-height: 750px;
    display:flex;
    align-items: center;
    padding-top: 120px;
    padding-right: .75rem;
    padding-left: .75rem;
    background-image:url('../images/hero-home.webp');
    background-size:cover;
    background-position:bottom;
}

.hero-cont{
    position:relative; z-index:2;
    width:min(1728px, 95vw);           /* bordo destro a 1824 @1920 */
    margin-inline:auto;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
}
.hero-box{                             /* box titolo: 1124x394 r73 */
    width:min(824px, 100%);
    border-radius:var(--r73);
    padding:clamp(1.75rem, 3vw, 3rem) clamp(.75rem, 2.5vw, 2.25rem);
    text-align:center;
}

.hero-home .hero-box {
    width: min(1024px, 100%) !important;
}

.hero-box-sub{                         /* box sottotitolo: 997x170 r57 */
    width:min(997px, 100%);
    border-radius:clamp(24px, 2.97vw, 57px);
    padding:clamp(.75rem, 2vw, 28px) clamp(.75rem, 3.4vw, 42px);
    margin-top:clamp(1rem, 1.72vw, 33px);   /* 691-658 */
    text-align:center;
}
.hero-home h1{
    color:var(--white-color);
    font-size:var(--t80);
    line-height:1.22;
    text-shadow:0 2px 18px rgba(10,57,93,.35);
}
.hero-sottotitolo{
    color:var(--white-color);
    font-size:var(--t35);
    line-height:1.35;
    text-shadow:0 2px 14px rgba(10,57,93,.35);
}

.btn-bianco{                           /* 302x61 r31 @1920 */
    display:inline-flex; align-items:center; justify-content:center;
    gap:clamp(.6rem, .9vw, 18px);
    min-width: 200px;
    min-height:clamp(44px, 3.18vw, 61px);
    background-color:var(--white-color);
    color:var(--blu) !important;
    text-decoration:none;
    border:none;
    border-radius:clamp(22px, 1.61vw, 31px);
    font-family:var(--font-display);
    font-weight:700;
    font-size:var(--t30);
    text-transform:uppercase;
    box-shadow:0 8px 20px rgba(10,57,93,.18);
    padding-inline:clamp(1rem,1.6vw,30px);
    transition: .3s ease-in-out;
}

.btn-bianco .ico{ max-width:1.05em; max-height:1.05em; }
.btn-bianco:hover,.btn-bianco:focus{ background-color:var(--blu); color:var(--white-color) !important; transform: scale(1.05) }

.hero-cta{ margin-top:clamp(1rem, 1.87vw, 36px); }

/* ==================================================================
   CHI SIAMO  (fascia bianca 1231..2178 · testo x216 w693 · foto x1003 w917 h747 r40)
   ================================================================== */
.chi-siamo{ position:relative; padding: 3.5rem 0; }
.chi-siamo-flex{
    display: flex;
    align-items:center;
    justify-content: space-between;
}

@media (max-width: 1110px){
    .chi-siamo-flex{
        text-align: center;
        flex-direction: column;
    }
}

.chi-siamo-testo-col{
    padding: 1.5rem 2.25rem 1.5rem 5rem;
    max-width: 650px;
}

@media (max-width: 1330px){
    .chi-siamo-testo-col{
        padding: 1.5rem 2rem 1.5rem 0;
    }

    .chi-siamo-img{
        max-width: 450px;
    }
}

@media (max-width: 1110px) {
    .chi-siamo-testo-col{
        padding: 1.5rem .25rem;
    }
}

.chi-siamo h2{ font-size:var(--t65); color:var(--blu-scuro); line-height:1.15; margin-bottom:clamp(1rem, 1.77vw, 34px); }
.chi-siamo p{ font-size:var(--t30); color:var(--blu-scuro); line-height:1.35; }
.chi-siamo p + p{ margin-top:1em; }

.chi-siamo-img{
    width: 100%;
    max-width: 650px;
    object-fit:cover;
    border-radius: var(--r73);
    padding: .75rem;
    display:block;
}

@media (max-width: 1330px){
    .chi-siamo-img{
        max-width: 550px;
    }
}

/* pillole: 333x91 r23, due in riga + una centrata sotto */
.pillole{
    display:flex; flex-wrap:wrap;
    justify-content: center;
    gap: 1.25rem;
    margin-top:clamp(1.5rem, 3.5vw, 48px);
}

.pillola-valore{
    display:inline-flex; align-items:center; justify-content:center;
    background-color:var(--blu-profondo);
    border:1px solid var(--vetro-bordo);
    color:var(--white-color);
    border-radius:var(--r23);
    font-family:var(--font-display);
    font-weight:700;
    font-size:var(--t40);
    line-height:1.2;
    padding: .875rem 2.75rem;
    transition: .3s ease-in-out;
}

.pillola-valore:hover{
    transform: rotate(-5deg);
}

.pillole li:nth-child(3){ margin-left:auto; margin-right:auto; }
.pillole li:nth-child(3) .pillola-valore{ margin-left:calc(-1 * clamp(.3rem, .7vw, 13px)); }

/* ==================================================================
   SERVIZI  (card foto r40 x216 w1480 · vetro sovrapposto in alto, stessa
   larghezza · gradiente nero .8 -> trasparente su tutta la card)
   ================================================================== */
.servizi{ padding:clamp(2.5rem, 5.2vw, 100px) 0 clamp(1rem, 2vw, 40px); }
.titolo-servizi{
    font-size:var(--t65);
    color:var(--white-color);
    text-align:center;
    margin-bottom:clamp(1.5rem, 3.9vw, 75px);   /* 2341->2493 */
}

.card-servizio{
    position:relative;
    border-radius:var(--r40);
    overflow:hidden;
    background-size:cover;
    background-position:center top;
    aspect-ratio:1480/853;                       /* card 1 del bozzetto */
    min-height: 450px;
}
.card-servizio::before{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,.80) 0%, rgba(84,84,84,0) 100%);
}
.card-servizio .vetro{
    position:absolute; inset:0 0 auto 0;
    border-radius:var(--r40);
    padding:clamp(.75rem, 1.98vw, 38px) clamp(.75rem, 2.6vw, 50px) clamp(.75rem, 2.2vw, 42px);
}
.griglia-servizi{
    display:flex; flex-direction:column;
    gap:clamp(1rem, 1.5vw, 28px);
}
.griglia-servizi-doppia{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(1rem, 1.04vw, 20px);               /* 20px @1920 */
}

@media (min-width: 991.98px){
    .griglia-servizi-doppia .card-servizio{ aspect-ratio:730/738; }
}

.servizio-testata{
    display:flex; align-items:center; gap:1rem;
    width:100%;
    background:none; border:none; padding:0;
    color:var(--white-color);
    cursor:pointer;
}
.servizio-testata h3{
    flex:1 1 auto;
    text-align:center;
    font-size:var(--t50);
    line-height:1.16;
}
.servizio-testata .ico{ width:clamp(20px,1.6vw,30px); height:clamp(20px,1.6vw,30px); transition:transform .3s ease; }
.servizio-testata[aria-expanded="false"] .ico{ transform:rotate(180deg); }

.servizio-corpo{
    color:var(--white-color);
    font-size:var(--t26);
    line-height:1.4;
    padding-top:clamp(.75rem, 1.7vw, 32px);
    max-width: 700px;
    margin: 0 auto;
    text-align: center;
}
.servizio-corpo p + p{ margin-top:.9em; }
.servizio-corpo a{ color:#fff; font-weight:600; }

/* ==================================================================
   AFFILIATI  (fascia bianca h352 · testo 25px · logo centrato)
   ================================================================== */
.affiliati{
    text-align:center;
    padding:clamp(1.8rem, 3.6vw, 69px) 0 clamp(2rem, 4vw, 77px);
}
.affiliati p{ color:var(--blu-scuro); font-size:var(--t26); margin-bottom:clamp(.8rem, 1.5vw, 28px); }
.logo-unipol{ width: 100%; max-width: 550px; height:auto; padding: 0 1.25rem; }   /* 662 @1920 */

/* ==================================================================
   DOVE TROVARCI  (mappa x216 w1480 h950 r40 · vetro x262 w1397 h215 r40)
   ================================================================== */
.dove-siamo{ padding:clamp(2.5rem, 5.2vw, 100px) 0 clamp(2rem, 4vw, 77px); }
.titolo-dove{
    font-size:var(--t65);
    color:var(--white-color);
    text-align:center;
    margin-bottom:clamp(1.5rem, 3.1vw, 60px);
}
.mappa-wrapper{
    position:relative;
    display:block;
    border-radius:var(--r40);
    overflow:hidden;
    text-decoration:none;
}
.mappa-wrapper img{
    width:100%;
    aspect-ratio:1480/950;
    object-fit:cover;
    display:block;
    transition: .3s ease-in-out;
    min-height: 600px;
}

.mappa-wrapper img:hover {
    transform: scale(1.1);
}

.mappa-testo{                               /* vetro chiaro sulla mappa */
    position:absolute;
    top:2.84%;  left:3.11%; right:3.11%;    /* 42 / 46 su 1480 */
    padding:clamp(.875rem, 1.35vw, 30px) clamp(.875rem, 2.35vw, 48px);
    color:var(--blu-scuro);
    background-color:rgba(255,255,255,.42);
    border:1px solid rgba(255,255,255,.55);
    -webkit-backdrop-filter:blur(22px) brightness(1.25);
    backdrop-filter:blur(22px) brightness(1.25);
    border-radius:var(--r40);
    text-align:center;
    font-size:var(--t30);
    line-height:1.3;
}

/* pillole telefono / mail: 613x127 e 845x127 r23, gap 22 */
.pillole-contatto{
    display:grid;
    grid-template-columns:613fr 845fr;
    gap:clamp(.8rem, 1.15vw, 22px);
    margin-top:clamp(1.5rem, 2.1vw, 40px);
}
.pillola-contatto{
    display:flex; align-items:center; justify-content:center;
    gap:clamp(.8rem, 1.4vw, 27px);
    min-height:clamp(70px, 6.25vw, 107px);
    border-radius:var(--r23);
    color:var(--white-color);
    text-decoration:none;
    font-family:var(--font-display);
    font-weight:700;
    font-size:var(--t35);
    padding:.5rem 1rem;
    word-break:break-word;
    transition:background-color .3s ease, transform .3s ease;
}
.pillola-contatto .ico{ width:1.15em; height:1.15em; }
.pillola-contatto:hover,.pillola-contatto:focus{
    background-color:rgba(255,255,255,.22);
    color:var(--white-color);
    transform:translateY(-3px);
}

/* ==================================================================
   FORM  (card 1646x1189 r23 · foto + blu .70 + vetro · campi trasparenti
   con bordo bianco 2px r20 h85 · Invia 230x72 r34 bianco)
   ================================================================== */
.sezione-form{ padding:clamp(2rem, 4.2vw, 80px) 0; }
.box-form{
    position:relative;
    border-radius:var(--r23);
    overflow:hidden;
    background-image:url('../images/back-contatti.webp');
    background-size:cover;
    background-position:center;
}
.box-form::before{
    content:""; position:absolute; inset:0;
    background-color:rgba(12,108,192,.70);
}
.box-form-inner{
    position:relative; z-index:2;
    padding:clamp(1.5rem, 4.9vw, 94px) clamp(1rem, 5.35vw, 115px) clamp(1.5rem, 4.5vw, 86px);
    background-color:var(--vetro-fill);
    border:1px solid var(--vetro-bordo);
    -webkit-backdrop-filter:var(--vetro-blur);
    backdrop-filter:var(--vetro-blur);
    border-radius:var(--r23);
}
.box-form h2.text-center{ text-transform:uppercase; }
.box-form h2{
    color:var(--white-color);
    font-size:var(--t65);
    line-height:1.2;
    margin-bottom:clamp(.8rem, 1.6vw, 30px);
}
.box-form .form-intro{
    color:var(--white-color);
    font-size:var(--t26);
    line-height:1.4;
    margin-bottom:clamp(1.2rem, 2.4vw, 46px);
}
.box-form .form-label{
    color:var(--white-color);
    font-size:var(--t26);
    margin-bottom:clamp(.3rem, .8vw, 15px);
}

.form-control-glass{                       /* h85 r20 bordo bianco 2px */
    background-color:transparent !important;
    border:2px solid var(--white-color) !important;
    border-radius:var(--r20) !important;
    height: 50px;
    padding:.5rem clamp(1rem, 1.35vw, 1.5rem) !important;
    color:var(--white-color) !important;
    font-size:var(--t26);
    box-shadow:none !important;
    transition: .2s ease-in-out;
}
textarea.form-control-glass{ min-height:clamp(120px, 9.53vw, 183px); padding-top:clamp(.8rem,1.5vw,28px) !important; }
.form-control-glass::placeholder{ color:rgba(255,255,255,.9); }
.form-control-glass:focus, .form-control-glass:hover{
    background-color:rgba(255,255,255,.14) !important;
    border-color:#fff !important;
    color:var(--white-color) !important;
}
.form-control-glass.is-invalid{
    border-color:#ffd5d5 !important;
    background-color:rgba(255,120,120,.20) !important;
    background-image:none !important;
}

.form-check-input-glass{                   /* 62x62 r20 bianco */
    width: 20px;
    height: 20px;
    margin-left:0 !important;
    background-color:var(--white-color);
    border:none;
    border-radius:var(--r20);
    flex:0 0 auto;
}
.form-check-input-glass:checked{ background-color:var(--blu-scuro); border-color:var(--blu-scuro); }
.form-check-input-glass.is-invalid{ outline:2px solid #ffd5d5; }

.form-privacy{ color:var(--white-color); font-size:var(--t26); line-height:1.35; }
.form-privacy a{ color:var(--white-color); text-decoration:underline; }

.captcha-input{ max-width:clamp(150px, 13vw, 200px); }
#myCanvas{ border-radius:12px; }

.btn-invia{                                /* 230x72 r34 */
    min-width:clamp(100px, 11.5vw, 140px);
    min-height:clamp(32px, 3.25vw, 48px);
    background-color:var(--white-color);
    color:var(--blu-chiaro);
    border:none;
    border-radius:clamp(24px, 1.77vw, 34px);
    font-weight:700;
    font-size:var(--t35);
    transition: .3s ease-in-out;
}
.btn-invia:hover,.btn-invia:focus{ background-color:var(--blu-scuro); color:var(--white-color); transform: scale(1.05); }

/* ==================================================================
   FOOTER  (bianco 1920x376 r40 in alto · logo x193 · colonne 649/1080/1390)
   ================================================================== */
.footer{
    background-color:var(--white-color);
    color:var(--blu);
    border-radius:var(--r40) var(--r40) 0 0;
    padding:clamp(1.8rem, 2.55vw, 49px) 0 clamp(1.5rem, 2.5vw, 48px);
}
.footer-grid{
    display:grid;
    grid-template-columns:33.8% 22.4% 16.1% 27.7%;   /* 649 / 1080 / 1390 @1920 */
    align-items:start;
    gap: 2.5rem 1.5rem;
}
.footer-logo{ width:clamp(120px, 16vw, 230px); height:auto; transition: transform .3s ease-in-out; }  /* gruppo logo 323 @1920 */

.footer-logo:hover{
    transform: scale(1.05);
}

.footer h3{
    font-size:var(--t40);
    color:var(--blu);
    margin-bottom:clamp(.5rem, 1.15vw, 22px);
    line-height:1.1;
}
.footer-col{ font-size:var(--t27); line-height:1.35; color:var(--blu); }
.footer-col a{ color:var(--blu); text-decoration:none; }
.footer-col a:hover,.footer-col a:focus{ text-decoration:underline; }

.briciole{
    font-size:.85rem; color:var(--blu-scuro);
    margin-bottom:1.5rem; display:flex; flex-wrap:wrap; gap:.4rem;
}
.briciole a{ color:var(--blu); text-decoration:none; }
.briciole a:hover{ text-decoration:underline; }

.footer-legale{
    margin-top:clamp(1.5rem,2.75vw,50px);
    text-align:center;
    font-size:.8rem;
    color:var(--blu-scuro);
    opacity:.85;
}
.footer-legale a{ color:var(--blu-scuro); text-decoration:none; }
.footer-legale a:hover{ text-decoration:underline; }

/* ==================================================================
   LANDING
   hero: foto + velo #0c6cc0 .40 · box x692 w1124 h420 r73
   barra punti: vetro bianco .20 · foto punti di forza card r40 1712x727
   ================================================================== */
.landing-hero{
    position:relative;
    height:66.8vw;                 /* 1283/1920 */
    min-height:540px;
    max-height:1283px;
    display:flex;
    align-items:center;
    background-size:cover;
    background-position:center;
}
.landing-hero::before{
    content:""; position:absolute; inset:0;
    background-color:rgba(12,108,192,.40);
}
.landing-hero-cont{
    position:relative; z-index:2;
    width:min(1712px, 94vw);       /* bordo destro 1816 @1920 */
    margin: 0 .75rem;
    display:flex; flex-direction:column; align-items:flex-end;
    padding-bottom: 4.5rem;
    padding-top: 2rem;
}
.landing-hero h1{
    color:var(--white-color);
    font-size:var(--t80);
    line-height:1.14;
    margin-bottom:clamp(.6rem, 1.4vw, 27px);
}
.landing-hero .hero-sottotitolo{ font-size:var(--t35); }

.btn-cta{                          /* pillola bianca "contattaci" / "chiamaci" */
    display:inline-flex; align-items:center; justify-content:center;
    gap:clamp(.7rem, 1.25vw, 22px);
    min-height:clamp(48px, 4vw, 78px);
    padding-inline:clamp(1.75rem, 2.75vw, 48px);
    background-color:var(--white-color);
    color:var(--blu) !important;
    text-decoration:none;
    border-radius:999px;
    font-family:var(--font-display);
    font-weight:700;
    font-size:var(--t40);
    box-shadow:0 8px 20px rgba(10,57,93,.18);
    transition: .3s ease-in-out;
}

.landing-testo .btn-cta{
    border: 2px solid transparent;
}

.btn-cta .ico{ max-width:.95em; max-height:.95em; }
.btn-cta{ text-transform:uppercase; }
.btn-cta:hover,.btn-cta:focus{ background-color:var(--blu-scuro); color:var(--white-color) !important; transform: scale(1.05); }

.landing-testo .btn-cta:hover {
    border-color: #FFF;
}

.chiama-subito{                    /* numero 65px + label 30px, icona 107px */
    display:flex; align-items:center;
    gap:clamp(.8rem, 1.9vw, 36px);
    color:var(--white-color);
    text-decoration:none;
    text-shadow:0 2px 14px rgba(10,57,93,.55);
    transition: .3s ease-in-out;
}
.chiama-subito .ico{ width:clamp(48px, 5.57vw, 107px); height:clamp(48px, 5.57vw, 107px); transition: .3s ease-in-out; }
.chiama-subito .cs-testo{ text-align:right; }
.chiama-subito .cs-numero{ display:block; font-family:var(--font-display); font-weight:700; font-size:var(--t65); line-height:1.1; }
.chiama-subito .cs-label{ display:block; font-family:var(--font-display); font-weight:700; font-size:var(--t30); line-height:1.2; }
.chiama-subito:hover,.chiama-subito:focus{ color:var(--white-color); opacity:.85; transform: scale(1.1); }
.chiama-subito:hover .ico,.chiama-subito:focus .ico{ transform: rotate(8deg); }


/* barra dei tre punti: vetro bianco 20%, a cavallo del bordo dell'hero */
.barra-punti{
    position:relative; z-index:3;
    width:min(1546px, 92vw);        /* 187..1733 @1920 */
    margin:-12.7vw auto 0;          /* 1283-1040 = 243 -> 12.7% */
    background-color:rgba(255,255,255,.20);
    border:1px solid var(--vetro-bordo);
    -webkit-backdrop-filter:var(--vetro-blur);
    backdrop-filter:var(--vetro-blur);
    border-radius:var(--r40);
    box-shadow:var(--vetro-ombra);
    padding:clamp(1.2rem, 2.2vw, 42px) clamp(1rem, 2.1vw, 40px);
}
@media(max-width:767.98px){ .barra-punti{ margin-top:2rem; } }
.punto{ text-align:center; color:var(--white-color); }
.punto .ico{ width:clamp(48px, 5.8vw, 111px); height:clamp(48px, 5.2vw, 100px); margin-bottom:clamp(.8rem, 1.6vw, 30px); }
.punto p{ font-size:var(--t27); font-weight:500; line-height:1.35; max-width: 550px; margin: 0 auto; }

/* blocco testo + immagine */
.landing-testo{
    padding: clamp(3.35rem, 5.5vw, 130px) .5rem clamp(2rem, 4vw, 77px);
}

.landing-testo h2{
    color:var(--white-color);
    font-size:var(--t65);
    line-height:1.18;
    margin-bottom:clamp(1rem, 2.1vw, 40px);
}
.landing-testo p{ color:var(--white-color); font-size:var(--t30); line-height:1.35; }
.landing-testo p + p{ margin-top:1em; }
/* testo a sinistra (dal bordo del wrap) + foto che sborda a destra:
   colonne 1180 / 740 come nel bozzetto */
.testo-immagine{
    display:grid;
    grid-template-columns:51.46% 48.54%;
    align-items:center;
    gap:0;
}

@media (max-width: 1200px){
    .testo-immagine{
        display: flex;
        justify-content: center;
        flex-direction: column;
        text-align: center;
        row-gap: 2.5rem;
    }
}

.testo-immagine-testo{
    padding-left: .75rem;
    padding-right:clamp(1.5rem, 5.4vw, 89px);
}
.testo-immagine-foto img{
    max-width: 750px;
    width:100%;
    object-fit:cover;
    border-radius:var(--r73);
    padding: .75rem;
    display:block;
    margin-left: auto;
}
@media(max-width:991.98px){
    .testo-immagine{ grid-template-columns:1fr; gap:1.5rem; }
    .testo-immagine-testo{ padding:0; }
}

/* Come raggiungerci: colonne 728 / 888 dentro il wrap da 1712 */
.raggiungerci-grid{
    display:grid;
    grid-template-columns:42.5% 51.9%;
    justify-content: space-between;
    gap: 3%;
    align-items:center;
}
@media(max-width:991.98px){
    .raggiungerci-grid{ grid-template-columns:1fr; gap:1.5rem;text-align: center }
}

/* punti di forza: fascia bianca + card foto r40 con vetri dentro */
.punti-forza{ padding:clamp(2rem, 4.2vw, 80px) .5rem clamp(2rem, 4.5vw, 86px); }
.punti-forza h2{ color:var(--blu-scuro); font-size:var(--t65); text-align:center; }
.punti-forza .sottotitolo{
    color:var(--blu-scuro); font-size:var(--t35); text-align:center;
    line-height:1.35; margin:clamp(.8rem,1.1vw,21px) auto clamp(1.2rem,1.8vw,34px);
    max-width: 850px;
}
.blocco-forza{
    position:relative;
    border-radius:var(--r40);
    overflow:hidden;
    background-size:cover; background-position:center;
    padding:2.4% 2.8%;                 /* vetro inset 48 su 1712 */
    display:flex; flex-direction:column;
    gap:clamp(.6rem, 2vw, 38px);
}
.blocco-forza::before{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 100%);
}
.blocco-forza > *{ position:relative; z-index:2; }
.card-forza{
    border-radius:var(--r40);
    padding:clamp(.8rem, 2vw, 39px) clamp(.8rem, 2.6vw, 50px);
    color:var(--white-color);
    text-align:center;
}
.card-forza h3{ text-transform:uppercase; font-size:var(--t50); line-height:1.2; margin-bottom:clamp(.5rem,1.2vw,23px); }
.card-forza p{ font-size:var(--t26); line-height:1.4; }
.card-forza p + p{ margin-top:.8em; }
.forza-doppia{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(.8rem, 2.3vw, 44px); }
@media(max-width:767.98px){
    .blocco-forza{ aspect-ratio:auto; }
    .forza-doppia{ grid-template-columns:1fr; }
}

/* ==================================================================
   404
   ================================================================== */
.pagina-404{
    position:relative;
    display:flex; align-items:center; justify-content:center; text-align:center;
    height: 100vh;
    min-height: 450px;
    padding:7rem 0 4rem;
    background-image:url('../images/hero-home.webp');
    background-size:cover; background-position:center;
}
.pagina-404::before{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(12,108,192,.45) 0%, rgba(10,57,93,.72) 100%);
}
.pagina-404 > .wrap{ position:relative; z-index:2; }
.badge-404{
    display:inline-block;
    background-color:var(--white-color);
    color:var(--blu);
    border-radius:var(--r40);
    padding:.4rem clamp(1.5rem,3vw,58px);
    font-family:var(--font-display);
    font-weight:700;
    font-size:var(--t80);
    line-height:1.3;
}
.pagina-404 h1{ color:var(--white-color); font-size:var(--t65); margin-bottom:clamp(.8rem,1.5vw,28px); text-shadow:0 2px 16px rgba(10,57,93,.6); }
.pagina-404 p{ color:var(--white-color); font-size:var(--t35); line-height:1.35; }

/* ==================================================================
   RESPONSIVE
   ================================================================== */
@media(max-width:991.98px){
    .chi-siamo-flex{ flex-direction: column; justify-content: center; }
    /*.chi-siamo-testo-col{ padding:2.5rem 1.5rem 1.5rem; }*/
    .footer-grid{ grid-template-columns:1fr 1fr; text-align:left; }
    .griglia-servizi-doppia{ grid-template-columns:1fr; }
    .pillole-contatto{ grid-template-columns:1fr; }
}
@media(max-width:767.98px){
    .hero-cont,.landing-hero-cont{ align-items:stretch; }
    .hero-box,.hero-box-sub{ width:100%; }
    .hero-cta,.landing-hero-cont .text-end{ text-align:center !important; }
    .card-servizio{ aspect-ratio:auto; }
    .card-servizio .vetro{ position:static; }
    .card-servizio{ padding-bottom:42%; }
    .footer-grid{ grid-template-columns:1fr; text-align:center; }
    .footer-grid .footer-logo-cell{ display:flex; justify-content:center; }
    .chiama-subito{ flex-direction:row; justify-content:center; margin: 0 auto; }
    .punto .ico{ margin-bottom:.5rem; }
}

.toast-container{ z-index:1080; }

@media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ transition:none !important; animation:none !important; }
}
