/* =========================================================================
   ADoCeS Doniamo in Sicilia ODV — tema istituzionale
   Palette dal brief cliente: bianco, azzurro, rosso, giallo.
   ========================================================================= */

:root{
    --blu:      #0E3A66;   /* istituzionale, testi forti */
    --blu-2:    #14528F;
    --azzurro:  #1E8FC9;   /* colore guida */
    --azzurro-2:#39B3E8;
    --azzurro-l:#E6F3FB;
    --rosso:    #D22030;   /* il dono, il sangue */
    --rosso-d:  #A9101E;
    --giallo:   #F5B301;   /* speranza, accenti */
    --bianco:   #FFFFFF;
    --ghiaccio: #F5F9FC;
    --grigio:   #5B6B7A;
    --bordo:    #DCE7F0;
    --ink:      #12212F;

    --wrap: 1180px;
    --r:    18px;
    --r-sm: 12px;
    --sh:   0 10px 30px rgba(14,58,102,.08);
    --sh-l: 0 22px 60px rgba(14,58,102,.14);

    --f-title: 'Bitter', Georgia, 'Times New Roman', serif;
    --f-body:  'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

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

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
    margin:0;
    font-family:var(--f-body);
    font-size:17px;
    line-height:1.72;
    color:var(--ink);
    background:var(--bianco);
    overflow-x:hidden;
}

h1,h2,h3,h4{ font-family:var(--f-title); color:var(--blu); line-height:1.2; margin:0 0 .5em; font-weight:600; }
h1{ font-size:clamp(2rem,4.6vw,3.4rem); }
h2{ font-size:clamp(1.6rem,3.2vw,2.5rem); }
h3{ font-size:clamp(1.15rem,1.9vw,1.45rem); }
p{ margin:0 0 1.1em; }
a{ color:var(--azzurro); text-decoration:none; }
a:hover{ color:var(--blu); }
img{ max-width:100%; height:auto; display:block; }
ul{ margin:0 0 1.1em; padding-left:1.15em; }
li{ margin-bottom:.4em; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:22px; }
.sec{ padding:clamp(56px,7vw,96px) 0; }
.sec--ghiaccio{ background:var(--ghiaccio); }
.sec--blu{ background:linear-gradient(160deg,var(--blu) 0%,var(--blu-2) 60%,#0B2E52 100%); color:#DCE9F5; }
.sec--blu h2,.sec--blu h3{ color:#fff; }
.center{ text-align:center; }
.mw-70{ max-width:70ch; }
.mw-70.center{ margin-inline:auto; }

/* ---------- occhiello / titoli di sezione ---------- */
.eyebrow{
    display:inline-flex; align-items:center; gap:.55em;
    font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
    color:var(--rosso); margin-bottom:.9em;
}
.eyebrow::before{ content:''; width:26px; height:2px; background:var(--rosso); border-radius:2px; }
.sec--blu .eyebrow{ color:var(--giallo); }
.sec--blu .eyebrow::before{ background:var(--giallo); }
.lead{ font-size:clamp(1.05rem,1.5vw,1.22rem); color:var(--grigio); }
.sec--blu .lead{ color:#BDD3E8; }

/* ---------- bottoni ---------- */
.btn{
    display:inline-flex; align-items:center; justify-content:center; gap:.55em;
    padding:.86em 1.7em; border-radius:999px; border:2px solid transparent;
    font-family:var(--f-body); font-weight:700; font-size:1rem; line-height:1;
    cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
    text-align:center;
}
.btn:hover{ transform:translateY(-2px); }
.btn--rosso{ background:var(--rosso); color:#fff; box-shadow:0 8px 22px rgba(210,32,48,.28); }
.btn--rosso:hover{ background:var(--rosso-d); color:#fff; box-shadow:0 12px 28px rgba(210,32,48,.36); }
.btn--blu{ background:var(--blu); color:#fff; }
.btn--blu:hover{ background:var(--blu-2); color:#fff; }
.btn--giallo{ background:var(--giallo); color:#3A2A00; box-shadow:0 8px 22px rgba(245,179,1,.3); }
.btn--giallo:hover{ background:#E0A400; color:#3A2A00; }
.btn--ghost{ border-color:currentColor; color:var(--blu); background:transparent; }
.btn--ghost:hover{ background:var(--blu); color:#fff; border-color:var(--blu); }
.btn--ghost-w{ border-color:rgba(255,255,255,.55); color:#fff; background:transparent; }
.btn--ghost-w:hover{ background:#fff; color:var(--blu); border-color:#fff; }
.btn--sm{ padding:.62em 1.15em; font-size:.9rem; }
.btn-row{ display:flex; flex-wrap:wrap; gap:14px; }
.btn-row.center{ justify-content:center; }

/* =========================================================================
   NAV
   ========================================================================= */
.nav{
    position:sticky; top:0; z-index:60;
    background:rgba(255,255,255,.94);
    backdrop-filter:saturate(160%) blur(10px);
    border-bottom:1px solid var(--bordo);
}
.nav__inner{
    max-width:var(--wrap); margin-inline:auto; padding:10px 22px;
    display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.nav__brand{ display:flex; align-items:center; gap:12px; min-width:0; }
.nav__brand img{ height:58px; width:auto; flex:none; }
.nav__brand-txt{ display:flex; flex-direction:column; line-height:1.12; min-width:0; }
.nav__brand-txt b{ font-family:var(--f-title); font-size:1.02rem; color:var(--blu); font-weight:600; white-space:nowrap; }
.nav__brand-txt span{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--rosso); font-weight:700; }

.nav__links{ display:flex; align-items:center; gap:4px; }
.nav__links a{
    padding:.55em .78em; border-radius:8px; font-size:.94rem; font-weight:600; color:var(--blu);
    transition:background .15s ease,color .15s ease; white-space:nowrap;
}
.nav__links a:hover{ background:var(--azzurro-l); }
.nav__links a.is-active{ color:var(--rosso); }
/* Il CTA dentro l'elenco serve solo al menù mobile: su desktop c'è già quello di .nav__cta */
.nav__links .btn{ display:none; }
.nav__cta{ display:flex; align-items:center; gap:10px; }

.nav__burger{
    display:none; width:44px; height:44px; border:1px solid var(--bordo); background:#fff;
    border-radius:10px; cursor:pointer; padding:0; align-items:center; justify-content:center;
}
.nav__burger span{ display:block; width:20px; height:2px; background:var(--blu); position:relative; }
.nav__burger span::before,.nav__burger span::after{
    content:''; position:absolute; left:0; width:20px; height:2px; background:var(--blu);
    transition:transform .2s ease, top .2s ease;
}
.nav__burger span::before{ top:-6px; }
.nav__burger span::after{ top:6px; }
body.menu-open .nav__burger span{ background:transparent; }
body.menu-open .nav__burger span::before{ top:0; transform:rotate(45deg); }
body.menu-open .nav__burger span::after{ top:0; transform:rotate(-45deg); }

@media (max-width:1040px){
    .nav__burger{ display:flex; }
    .nav__cta .btn--desktop{ display:none; }
    .nav__links{
        position:fixed; inset:64px 0 auto 0; flex-direction:column; align-items:stretch;
        background:#fff; border-bottom:1px solid var(--bordo); padding:14px 22px 22px; gap:2px;
        box-shadow:var(--sh); transform:translateY(-130%); transition:transform .28s ease;
        max-height:calc(100vh - 64px); overflow-y:auto;
    }
    body.menu-open .nav__links{ transform:translateY(0); }
    .nav__links a{ padding:.85em .6em; border-bottom:1px solid #F0F5F9; border-radius:0; }
    .nav__links .btn{ display:inline-flex; margin-top:12px; border-bottom:0; }
}

/* =========================================================================
   HERO
   ========================================================================= */
.hero{
    position:relative; overflow:hidden; color:#fff;
    background:linear-gradient(150deg,#0B2E52 0%,var(--blu) 38%,var(--blu-2) 72%,var(--azzurro) 130%);
    padding:clamp(64px,9vw,120px) 0 clamp(80px,10vw,130px);
}
.hero__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,5vw,64px); align-items:center; }
.hero h1{ color:#fff; margin-bottom:.35em; }
.hero h1 em{ font-style:normal; color:var(--giallo); }
.hero__lead{ font-size:clamp(1.05rem,1.6vw,1.26rem); color:#C9DDF0; max-width:56ch; }
.hero .eyebrow{ color:var(--giallo); }
.hero .eyebrow::before{ background:var(--giallo); }

/* cerchi concentrici: eco del marchio ADoCeS (goccia dentro l'anello) */
.hero__mark{ position:relative; display:grid; place-items:center; aspect-ratio:1; max-width:400px; margin-inline:auto; width:100%; }
.hero__ring{
    position:absolute; inset:0; border-radius:50%;
    border:2px solid rgba(255,255,255,.16);
    animation:pulse 6s ease-in-out infinite;
}
.hero__ring:nth-child(2){ inset:11%; border-color:rgba(57,179,232,.34); animation-delay:.7s; }
.hero__ring:nth-child(3){ inset:22%; border-color:rgba(245,179,1,.3); animation-delay:1.4s; }
.hero__drop{
    position:relative; width:40%; aspect-ratio:1; display:grid; place-items:center;
    background:radial-gradient(circle at 34% 30%, #E7434F 0%, var(--rosso) 45%, var(--rosso-d) 100%);
    border-radius:50%; box-shadow:0 18px 50px rgba(210,32,48,.45);
}
.hero__drop svg{ width:46%; color:#fff; }
@keyframes pulse{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(1.045); opacity:.72; } }

.hero__wave{ position:absolute; left:0; right:0; bottom:-1px; line-height:0; color:#fff; }
.hero__wave svg{ width:100%; height:auto; display:block; }

@media (max-width:900px){
    .hero__grid{ grid-template-columns:1fr; }
    .hero__mark{ order:-1; max-width:250px; }
}

/* ---------- barra numeri sotto l'hero ---------- */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:-52px; position:relative; z-index:5; }
.stat{
    background:#fff; border:1px solid var(--bordo); border-radius:var(--r); padding:22px 20px;
    box-shadow:var(--sh); text-align:center;
}
.stat b{ display:block; font-family:var(--f-title); font-size:clamp(1.7rem,3vw,2.3rem); color:var(--rosso); line-height:1; }
.stat span{ display:block; margin-top:8px; font-size:.86rem; color:var(--grigio); font-weight:600; }
@media (max-width:820px){ .stats{ grid-template-columns:repeat(2,1fr); margin-top:-40px; } }

/* =========================================================================
   CARD / GRIGLIE
   ========================================================================= */
.grid{ display:grid; gap:24px; }
.grid--2{ grid-template-columns:repeat(2,1fr); }
.grid--3{ grid-template-columns:repeat(3,1fr); }
.grid--4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:980px){ .grid--3,.grid--4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:680px){ .grid--2,.grid--3,.grid--4{ grid-template-columns:1fr; } }

.card{
    background:#fff; border:1px solid var(--bordo); border-radius:var(--r); padding:30px 26px;
    box-shadow:var(--sh); transition:transform .2s ease, box-shadow .2s ease;
    display:flex; flex-direction:column;
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--sh-l); }
.card h3{ margin-bottom:.4em; }
.card p:last-child{ margin-bottom:0; }
.card__ico{
    width:54px; height:54px; border-radius:15px; display:grid; place-items:center; margin-bottom:18px;
    background:var(--azzurro-l); color:var(--azzurro); flex:none;
}
.card__ico svg{ width:27px; height:27px; }
.card__ico--rosso{ background:#FDECEE; color:var(--rosso); }
.card__ico--giallo{ background:#FEF6E0; color:#B98700; }
.card__ico--blu{ background:#E7EEF7; color:var(--blu); }

/* card su fondo blu */
.sec--blu .card{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.14); box-shadow:none; color:#CFE0EF; }
.sec--blu .card__ico{ background:rgba(255,255,255,.1); color:var(--giallo); }

/* ---------- immagini e gallerie ---------- */
.figura{
    border-radius:var(--r); overflow:hidden; box-shadow:var(--sh-l); background:#fff;
    border:1px solid var(--bordo);
}
.figura img{ width:100%; height:auto; display:block; }
.figura--alta img{ aspect-ratio:3/4; object-fit:cover; }

.galleria{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
@media (max-width:980px){ .galleria{ grid-template-columns:repeat(2,1fr); } }
/* Le locandine vanno lette intere, non ritagliate: contain su fondo chiaro. */
.galleria .figura{ background:#fff; display:flex; }
.galleria .figura img{ aspect-ratio:3/4; object-fit:contain; padding:10px; }

/* didascalia sotto un'immagine */
.didascalia{ font-size:.84rem; color:var(--grigio); margin-top:10px; text-align:center; }
.sec--blu .didascalia{ color:#A8C4DC; }

/* ---------- valori (pillole) ---------- */
.valori{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.valore{
    display:inline-flex; align-items:center; gap:.5em; padding:.6em 1.25em; border-radius:999px;
    background:#fff; border:1px solid var(--bordo); font-weight:700; color:var(--blu); font-size:.98rem;
}
.valore i{ width:9px; height:9px; border-radius:50%; background:var(--rosso); flex:none; font-style:normal; }
.valore:nth-child(2) i{ background:var(--azzurro); }
.valore:nth-child(3) i{ background:var(--giallo); }
.valore:nth-child(4) i{ background:var(--blu); }
.valore:nth-child(5) i{ background:#2FAE6B; }

/* =========================================================================
   SPLIT (testo + pannello)
   ========================================================================= */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,60px); align-items:center; }
.split--wide{ grid-template-columns:1.2fr .8fr; }
@media (max-width:900px){ .split,.split--wide{ grid-template-columns:1fr; } }

.panel{
    background:var(--azzurro-l); border:1px solid var(--bordo); border-radius:var(--r);
    padding:clamp(26px,3.5vw,40px);
}
.panel--rosso{ background:#FDECEE; border-color:#F7D3D7; }
.panel--giallo{ background:#FEF6E0; border-color:#F6E3B0; }
.panel h3:first-child{ margin-top:0; }

/* elenco con spunta */
.ticks{ list-style:none; padding:0; margin:0; }
.ticks li{ position:relative; padding-left:2em; margin-bottom:.85em; }
.ticks li::before{
    content:''; position:absolute; left:0; top:.45em; width:1.15em; height:1.15em; border-radius:50%;
    background:var(--azzurro-l);
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E8FC9' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
    background-size:.72em; background-position:center; background-repeat:no-repeat;
}
.sec--blu .ticks li::before{ background-color:rgba(255,255,255,.12); }

/* =========================================================================
   TIMELINE eventi
   ========================================================================= */
.tl{ position:relative; padding-left:34px; }
.tl::before{ content:''; position:absolute; left:9px; top:6px; bottom:6px; width:2px; background:linear-gradient(var(--azzurro),var(--azzurro-l)); }
.tl__i{ position:relative; padding-bottom:26px; }
.tl__i:last-child{ padding-bottom:0; }
.tl__i::before{
    content:''; position:absolute; left:-30px; top:7px; width:14px; height:14px; border-radius:50%;
    background:#fff; border:3px solid var(--azzurro);
}
.tl__i--top::before{ border-color:var(--rosso); }
.tl__d{ display:block; font-size:.8rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--rosso); margin-bottom:.15em; }
.tl__t{ font-weight:600; color:var(--blu); }

/* =========================================================================
   DONAZIONI
   ========================================================================= */
.iban{
    display:flex; align-items:center; gap:14px; flex-wrap:wrap;
    background:#fff; border:2px dashed var(--azzurro); border-radius:var(--r-sm);
    padding:16px 20px; margin:16px 0;
}
.iban code{
    font-family:'SFMono-Regular',Consolas,monospace; font-size:clamp(.95rem,2.2vw,1.14rem);
    letter-spacing:.055em; color:var(--blu); font-weight:700; word-break:break-all;
}
.copy-ok{ color:#2FAE6B; font-weight:700; font-size:.88rem; }

.cf-box{
    background:var(--blu); color:#fff; border-radius:var(--r-sm); padding:18px 22px; text-align:center;
    margin:16px 0;
}
.cf-box span{ display:block; font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:var(--giallo); font-weight:700; }
.cf-box b{ display:block; font-family:'SFMono-Regular',Consolas,monospace; font-size:clamp(1.3rem,4vw,1.9rem); letter-spacing:.12em; margin-top:6px; }

.step{ display:flex; gap:18px; align-items:flex-start; margin-bottom:24px; }
.step__n{
    flex:none; width:42px; height:42px; border-radius:50%; display:grid; place-items:center;
    background:var(--rosso); color:#fff; font-family:var(--f-title); font-size:1.15rem; font-weight:700;
}
.step__b h3{ margin-bottom:.25em; }
.step__b p{ margin-bottom:0; }

/* =========================================================================
   FORM
   ========================================================================= */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-grid .full{ grid-column:1/-1; }
@media (max-width:680px){ .form-grid{ grid-template-columns:1fr; } }

label{ display:block; font-weight:700; font-size:.88rem; color:var(--blu); margin-bottom:.4em; }
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=file],select,textarea{
    width:100%; padding:.78em 1em; border:1px solid var(--bordo); border-radius:var(--r-sm);
    font-family:var(--f-body); font-size:1rem; color:var(--ink); background:#fff;
    transition:border-color .15s ease, box-shadow .15s ease;
}
input:focus,select:focus,textarea:focus{
    outline:none; border-color:var(--azzurro); box-shadow:0 0 0 3px rgba(30,143,201,.16);
}
textarea{ min-height:150px; resize:vertical; }
.hint{ font-size:.82rem; color:var(--grigio); margin-top:.35em; }
.check{ display:flex; gap:.7em; align-items:flex-start; font-size:.88rem; color:var(--grigio); }
.check input{ margin-top:.35em; flex:none; }
.check label{ font-weight:400; font-size:.88rem; color:var(--grigio); margin:0; }

.alert{ padding:14px 18px; border-radius:var(--r-sm); margin-bottom:20px; font-weight:600; font-size:.95rem; }
.alert--ok{ background:#E6F7EE; color:#1B7A4B; border:1px solid #B9E7CE; }
.alert--err{ background:#FDECEE; color:var(--rosso-d); border:1px solid #F7D3D7; }
.alert--info{ background:var(--azzurro-l); color:var(--blu); border:1px solid #C5E2F3; }
.err{ color:var(--rosso); font-size:.83rem; margin-top:.3em; font-weight:600; }

/* =========================================================================
   CONTATTI
   ========================================================================= */
.contact-list{ list-style:none; padding:0; margin:0; }
.contact-list li{ display:flex; gap:14px; align-items:flex-start; margin-bottom:20px; }
.contact-list svg{ width:22px; height:22px; color:var(--azzurro); flex:none; margin-top:3px; }
.contact-list b{ display:block; color:var(--blu); font-size:.82rem; text-transform:uppercase; letter-spacing:.07em; }
.map-embed{ border:0; width:100%; height:340px; border-radius:var(--r); display:block; }

/* =========================================================================
   DOCUMENTI
   ========================================================================= */
.doc{
    display:flex; gap:18px; align-items:center; background:#fff; border:1px solid var(--bordo);
    border-radius:var(--r-sm); padding:18px 20px; margin-bottom:14px;
    transition:border-color .18s ease, box-shadow .18s ease;
}
.doc:hover{ border-color:var(--azzurro); box-shadow:var(--sh); }
.doc__ico{
    width:46px; height:46px; border-radius:11px; flex:none; display:grid; place-items:center;
    background:#FDECEE; color:var(--rosso);
}
.doc__ico svg{ width:22px; height:22px; }
.doc__b{ flex:1 1 auto; min-width:0; }
.doc__b b{ display:block; color:var(--blu); font-size:1.03rem; font-family:var(--f-title); }
.doc__b span{ display:block; font-size:.87rem; color:var(--grigio); }
.doc__meta{ font-size:.78rem; color:#8A9AA8; margin-top:2px; }
.doc__a{ flex:none; }
@media (max-width:640px){
    .doc{ flex-wrap:wrap; }
    .doc__a{ width:100%; }
    .doc__a .btn{ width:100%; }
}

.badge{
    display:inline-block; padding:.28em .7em; border-radius:6px; font-size:.7rem; font-weight:800;
    letter-spacing:.06em; text-transform:uppercase;
}
.badge--pub{ background:#E6F7EE; color:#1B7A4B; }
.badge--res{ background:#FEF6E0; color:#8A6200; }
.badge--off{ background:#F0F3F6; color:#6C7B8A; }

/* =========================================================================
   AREA RISERVATA
   ========================================================================= */
.auth-wrap{
    min-height:calc(100vh - 90px); display:grid; place-items:center; padding:50px 22px;
    background:linear-gradient(160deg,var(--ghiaccio),#E6F0F8);
}
.auth-card{
    width:100%; max-width:440px; background:#fff; border:1px solid var(--bordo);
    border-radius:var(--r); padding:clamp(28px,4vw,44px); box-shadow:var(--sh-l);
}
.auth-card img{ height:52px; width:auto; margin:0 auto 20px; }

.area-bar{
    background:var(--blu); color:#fff; padding:14px 0;
}
.area-bar__in{ max-width:var(--wrap); margin-inline:auto; padding-inline:22px; display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.area-bar b{ font-family:var(--f-title); font-weight:600; }
.area-bar__u{ font-size:.88rem; color:#B9D2E8; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.area-bar__u a{ color:#fff; text-decoration:underline; }

.area-nav{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:28px; border-bottom:1px solid var(--bordo); padding-bottom:14px; }
.area-nav a{
    padding:.5em 1em; border-radius:8px; font-weight:700; font-size:.92rem; color:var(--blu);
}
.area-nav a:hover{ background:var(--azzurro-l); }
.area-nav a.is-active{ background:var(--blu); color:#fff; }

.table{ width:100%; border-collapse:collapse; font-size:.94rem; }
.table th{
    text-align:left; padding:12px 14px; background:var(--ghiaccio); color:var(--blu);
    font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; border-bottom:1px solid var(--bordo);
}
.table td{ padding:13px 14px; border-bottom:1px solid var(--bordo); vertical-align:middle; }
.table tr:last-child td{ border-bottom:0; }
.table-scroll{ overflow-x:auto; border:1px solid var(--bordo); border-radius:var(--r-sm); background:#fff; }
.table .actions{ display:flex; gap:8px; flex-wrap:wrap; }

.empty{
    text-align:center; padding:52px 22px; border:2px dashed var(--bordo); border-radius:var(--r);
    color:var(--grigio); background:var(--ghiaccio);
}

/* =========================================================================
   PAGE HEADER (pagine interne)
   ========================================================================= */
.phead{
    background:linear-gradient(150deg,#0B2E52,var(--blu) 60%,var(--blu-2));
    color:#fff; padding:clamp(48px,6vw,84px) 0 clamp(56px,7vw,92px); position:relative; overflow:hidden;
}
.phead h1{ color:#fff; margin-bottom:.2em; }
.phead p{ color:#BDD3E8; max-width:62ch; margin-bottom:0; }
.phead .eyebrow{ color:var(--giallo); }
.phead .eyebrow::before{ background:var(--giallo); }
.phead::after{
    content:''; position:absolute; right:-90px; top:-90px; width:340px; height:340px; border-radius:50%;
    border:2px solid rgba(255,255,255,.09);
}

/* =========================================================================
   CTA finale
   ========================================================================= */
.cta{
    background:linear-gradient(120deg,var(--rosso),#B3131F);
    color:#fff; border-radius:var(--r); padding:clamp(34px,5vw,58px); text-align:center;
    box-shadow:var(--sh-l);
}
.cta h2{ color:#fff; }
.cta p{ color:#FFD9DC; max-width:60ch; margin-inline:auto; }

/* =========================================================================
   FOOTER
   ========================================================================= */
.foot{ background:#0B2E52; color:#93B2CE; padding:clamp(48px,6vw,72px) 0 0; font-size:.94rem; }
.foot a{ color:#C6DBEC; }
.foot a:hover{ color:#fff; }
.foot__grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:32px; }
@media (max-width:900px){ .foot__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .foot__grid{ grid-template-columns:1fr; } }
.foot h4{ color:#fff; font-size:.83rem; text-transform:uppercase; letter-spacing:.11em; margin-bottom:1.1em; font-family:var(--f-body); font-weight:800; }
.foot ul{ list-style:none; padding:0; margin:0; }
.foot li{ margin-bottom:.6em; }
.foot__brand img{ height:68px; width:auto; background:#fff; padding:8px 12px; border-radius:10px; margin-bottom:16px; }
.foot__soc{ display:flex; gap:10px; margin-top:16px; }
.foot__soc a{
    width:40px; height:40px; border-radius:11px; display:grid; place-items:center;
    background:rgba(255,255,255,.08); color:#fff; transition:background .18s ease;
}
.foot__soc a:hover{ background:var(--rosso); }
.foot__soc svg{ width:19px; height:19px; }

/* striscia CeSVoP — obbligo contrattuale */
.cesvop{
    margin-top:clamp(38px,5vw,56px); border-top:1px solid rgba(255,255,255,.12);
    padding:24px 0; display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; text-align:center;
}
.cesvop span{ font-size:.9rem; color:#B9D2E8; }
.cesvop img{ height:52px; width:auto; background:#fff; padding:7px 11px; border-radius:9px; }

.foot__bottom{
    border-top:1px solid rgba(255,255,255,.12); padding:20px 0; margin-top:0;
    display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:.84rem; color:#7EA0BF;
}
.foot__bottom a{ color:#9CBDD8; }

/* =========================================================================
   REVEAL ON SCROLL — attivo solo con JS (contenuto visibile ai crawler)
   ========================================================================= */
.js .rv{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.js .rv.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
    .js .rv{ opacity:1; transform:none; transition:none; }
    .hero__ring{ animation:none; }
    html{ scroll-behavior:auto; }
}

/* accessibilità: skip link */
.skip{
    position:absolute; left:-9999px; top:0; background:var(--giallo); color:#3A2A00;
    padding:.7em 1.2em; z-index:200; font-weight:700; border-radius:0 0 8px 0;
}
.skip:focus{ left:0; }
:focus-visible{ outline:3px solid var(--giallo); outline-offset:2px; }

/* stampa */
@media print{
    .nav,.foot,.cta,.hero__wave,.btn{ display:none !important; }
    body{ font-size:12pt; color:#000; }
}
