@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800;900&display=swap');

:root{
    --sfondo:#f3eee8;
    --sfondo-2:#f8f4ef;
    --superficie:#f7f2ec;
    --superficie-2:#fbf7f2;
    --testo:#18212f;
    --testo-secondario:#667085;
    --bordo:#e4d8cc;

    --accento-scuro:#1b2f54;
    --accento-rame:#c58a63;
    --accento-rame-chiaro:#ddb69a;
    --accento-rame-soft:#efe1d4;
    --accento-champagne:#ead2bf;
    --accento-champagne-chiaro:#f5e9df;

    --primario:#c58a63;
    --primario-2:#ddb69a;
    --primario-hover:#b77b53;
    --primario-testo:#1b2f54;

    --successo:#117a52;
    --errore:#b42318;
    --info:#1d4ed8;

    --ombra:0 16px 40px rgba(16,24,40,.08);
    --ombra-soft:0 10px 24px rgba(16,24,40,.06);

    --raggio:18px;
    --max:1180px;
    --header-h:76px;
}

*{
    box-sizing:border-box;
}

html,
body{
    margin:0;
    padding:0;
    font-family:'Plus Jakarta Sans', Arial, sans-serif;
    background:
        radial-gradient(120% 120% at 0% 0%, rgba(255,255,255,.22) 0%, rgba(255,255,255,0) 40%),
        linear-gradient(180deg, var(--sfondo-2) 0%, var(--sfondo) 100%);
    color:var(--testo);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

html{
    scroll-behavior:smooth;
}

body{
    min-height:100vh;
}

body.menu-mobile-open{
    overflow:hidden;
    touch-action:none;
}

a{
    color:inherit;
    text-decoration:none;
    transition:color .18s ease, opacity .18s ease, transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

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

button,
input,
select,
textarea{
    font:inherit;
}

button{
    -webkit-tap-highlight-color:transparent;
}

h1,
h2,
h3,
h4,
h5,
h6,
.titolo-elegante{
    font-family:'Plus Jakarta Sans', Arial, sans-serif;
    letter-spacing:-0.02em;
}

:focus-visible{
    outline:none;
}

.contenitore{
    width:min(100% - 24px, var(--max));
    margin-inline:auto;
}

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

.testata-sito{
    position:sticky;
    top:0;
    z-index:500;
    background:rgba(248,244,239,.92);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(27,47,84,.08);
    box-shadow:
        0 8px 24px rgba(16,24,40,.05),
        inset 0 1px 0 rgba(255,255,255,.42);
}

.testata-sito__contenuto{
    min-height:var(--header-h);
    display:grid;
    grid-template-columns:64px minmax(0, 1fr) 64px;
    align-items:center;
    gap:8px;
}

.testata-sito__slot{
    display:flex;
    align-items:center;
    min-width:0;
}

.testata-sito__slot--left{
    justify-content:flex-start;
}

.testata-sito__slot--right{
    justify-content:flex-end;
}

.testata-sito__logo-wrap{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    padding:2px 0;
}

.logo-sito{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    max-width:min(300px, 100%);
    width:100%;
}

.logo-sito img{
    width:auto;
    height:58px;
    max-width:100%;
    object-fit:contain;
    filter:drop-shadow(0 1px 0 rgba(255,255,255,.22));
}

.pulsante-menu{
    appearance:none;
    width:54px;
    height:54px;
    border:none;
    background:transparent;
    color:var(--accento-scuro);
    border-radius:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:6px;
    padding:0;
    cursor:pointer;
    transition:transform .18s ease, opacity .18s ease, filter .18s ease;
    position:relative;
    z-index:600;
    flex:0 0 auto;
}

.pulsante-menu:hover{
    opacity:.82;
}

.pulsante-menu:active{
    transform:scale(.98);
}

.pulsante-menu:focus-visible{
    border-radius:16px;
    box-shadow:0 0 0 4px rgba(197,138,99,.14);
}

.pulsante-menu__linea{
    width:34px;
    height:3px;
    border-radius:999px;
    background:var(--accento-scuro);
    transition:transform .24s ease, opacity .18s ease, background .18s ease;
}

.pulsante-menu.is-open .pulsante-menu__linea:nth-child(1){
    transform:translateY(9px) rotate(45deg);
}

.pulsante-menu.is-open .pulsante-menu__linea:nth-child(2){
    opacity:0;
}

.pulsante-menu.is-open .pulsante-menu__linea:nth-child(3){
    transform:translateY(-9px) rotate(-45deg);
}

.header-user{
    position:relative;
    width:54px;
    height:54px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(27,47,84,.10);
    background:
        linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(247,242,236,.98) 100%);
    color:var(--accento-scuro);
    overflow:visible;
    box-shadow:
        var(--ombra-soft),
        inset 0 1px 0 rgba(255,255,255,.72);
    transition:border-color .18s ease, transform .18s ease, background .18s ease, box-shadow .18s ease;
    z-index:600;
    flex:0 0 auto;
}

.header-user:hover{
    border-color:rgba(27,47,84,.20);
    background:
        linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(244,237,230,.98) 100%);
    box-shadow:
        0 14px 28px rgba(16,24,40,.08),
        inset 0 1px 0 rgba(255,255,255,.80);
}

.header-user:active{
    transform:translateY(1px);
}

.header-user:focus-visible{
    box-shadow:
        0 0 0 4px rgba(197,138,99,.14),
        0 14px 28px rgba(16,24,40,.08),
        inset 0 1px 0 rgba(255,255,255,.80);
}

.header-user__icon{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.38rem;
    border-radius:999px;
    overflow:hidden;
    background:transparent;
}

.header-user__avatar{
    width:54px;
    height:54px;
    object-fit:cover;
    border-radius:999px;
    display:block;
    border:1px solid rgba(27,47,84,.10);
    background:var(--superficie-2);
}

.header-user__badge{
    position:absolute;
    top:1px;
    right:1px;
    width:13px;
    height:13px;
    border-radius:999px;
    background:#ff3b30;
    border:2px solid rgba(248,244,239,.96);
    box-shadow:none;
    z-index:9999;
    pointer-events:none;
}

/* =========================
   MENU SOTTO HEADER
========================= */

.nav-overlay{
    display:none !important;
}

.nav-principale{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:400;
    display:block;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-10px);
    transition:opacity .22s ease, visibility .22s ease, transform .22s ease;
    padding:0;
    background:transparent;
}

.nav-principale.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
}

.nav-principale__contenuto{
    position:relative;
    overflow:hidden;
    width:min(100% - 20px, var(--max));
    margin:12px auto 0;
    padding:20px 18px 22px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:12px;
    background:linear-gradient(180deg, rgba(251,247,242,.97) 0%, rgba(247,242,236,.95) 100%);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    border:1px solid rgba(27,47,84,.08);
    border-radius:20px;
    box-shadow:0 20px 50px rgba(0,0,0,.16);
}

.nav-principale__contenuto::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(120% 60% at 10% 100%, rgba(234,210,191,.18) 0%, rgba(234,210,191,0) 58%),
        radial-gradient(95% 50% at 55% 78%, rgba(221,182,154,.12) 0%, rgba(221,182,154,0) 58%),
        radial-gradient(110% 58% at 100% 82%, rgba(197,138,99,.10) 0%, rgba(197,138,99,0) 56%);
    z-index:0;
}

.nav-principale__contenuto::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:90px;
    pointer-events:none;
    z-index:0;
    background:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 220' preserveAspectRatio='none'><path d='M0 130 C180 170 320 90 510 118 C700 146 810 186 1020 156 C1230 126 1360 88 1600 126 L1600 220 L0 220 Z' fill='rgba(234,210,191,0.20)'/><path d='M0 152 C190 132 350 186 580 170 C820 154 1010 112 1225 134 C1390 151 1492 168 1600 160' fill='none' stroke='rgba(221,182,154,0.24)' stroke-width='14' stroke-linecap='round'/><path d='M0 182 C200 170 360 210 610 198 C860 186 1075 150 1290 166 C1430 176 1520 188 1600 184' fill='none' stroke='rgba(197,138,99,0.14)' stroke-width='22' stroke-linecap='round'/></svg>")
        center bottom / 100% 100% no-repeat;
}

.nav-principale a{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    max-width:420px;
    min-height:56px;
    padding:0 18px;
    border:none;
    border-radius:14px;
    background:transparent !important;
    color:rgba(24,33,47,.96) !important;
    font-size:1.18rem;
    font-weight:800;
    text-align:center;
    line-height:1.15;
    letter-spacing:.01em;
    box-shadow:none !important;
    transition:color .18s ease, transform .18s ease, background .18s ease;
}

.nav-principale a::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:10px;
    width:0;
    height:1px;
    background:linear-gradient(90deg, transparent 0%, rgba(24,33,47,.42) 50%, transparent 100%);
    transform:translateX(-50%);
    transition:width .22s ease;
    opacity:.9;
}

.nav-principale a:hover,
.nav-principale a:focus-visible{
    color:#111827 !important;
    background:rgba(197,138,99,.08) !important;
    transform:translateY(-1px);
    outline:none;
}

.nav-principale a:hover::after,
.nav-principale a:focus-visible::after,
.nav-principale a.attivo::after{
    width:72%;
}

.nav-principale a.attivo{
    color:#111827 !important;
    background:rgba(197,138,99,.10) !important;
}

.nav-principale a .badge-notifiche{
    margin-left:10px;
}

.nav-principale a.bottone,
.nav-principale a.bottone--small,
.nav-principale a.bottone--secondario,
.nav-principale a.bottone--ghost{
    background:transparent !important;
    border:none !important;
    box-shadow:none !important;
    color:rgba(24,33,47,.96) !important;
    min-height:56px;
    padding:0 18px;
}

/* =========================
   BADGE
========================= */

.badge-notifiche{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:22px;
    height:22px;
    padding:0 6px;
    margin-left:8px;
    border-radius:999px;
    background:linear-gradient(135deg, var(--primario) 0%, var(--primario-2) 100%);
    color:var(--primario-testo);
    font-size:.75rem;
    font-weight:800;
    box-shadow:0 8px 16px rgba(197,138,99,.22);
}

/* =========================
   PAGINA
========================= */

.pagina-sito{
    padding:0 0 48px;
}

.hero{
    background:
        radial-gradient(120% 85% at 0% 100%, rgba(234,210,191,.20) 0%, rgba(234,210,191,0) 36%),
        radial-gradient(90% 65% at 100% 0%, rgba(197,138,99,.08) 0%, rgba(197,138,99,0) 34%),
        linear-gradient(180deg, rgba(251,247,242,.99) 0%, rgba(247,242,236,.98) 100%);
    border:1px solid rgba(228,216,204,.95);
    border-radius:30px;
    padding:28px;
    box-shadow:
        0 16px 38px rgba(16,24,40,.07),
        inset 0 1px 0 rgba(255,255,255,.82);
}

.hero h1{
    margin:0 0 12px;
    font-size:2.3rem;
    line-height:1.02;
    letter-spacing:-0.04em;
    color:var(--accento-scuro);
}

.hero p{
    margin:0 0 18px;
    color:var(--testo-secondario);
    font-size:1.03rem;
    line-height:1.82;
}

.azioni{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.azioni--centrate{
    justify-content:center;
    align-items:center;
}

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

.bottone{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    padding:0 20px;
    border:1px solid rgba(183,123,83,.12);
    border-radius:16px;
    background:linear-gradient(180deg, #ddb08b 0%, #ca8d63 100%);
    color:var(--primario-testo);
    font-weight:800;
    cursor:pointer;
    box-shadow:
        0 14px 28px rgba(197,138,99,.24),
        inset 0 1px 0 rgba(255,255,255,.30);
    transition:transform .18s ease, box-shadow .18s ease, filter .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}

.bottone:hover{
    filter:none;
    transform:translateY(-1px);
    box-shadow:
        0 18px 34px rgba(197,138,99,.30),
        inset 0 1px 0 rgba(255,255,255,.34);
}

.bottone:active{
    transform:translateY(1px);
}

.bottone:focus-visible{
    box-shadow:
        0 0 0 4px rgba(197,138,99,.14),
        0 18px 34px rgba(197,138,99,.24),
        inset 0 1px 0 rgba(255,255,255,.34);
}

.bottone--secondario{
    background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,242,236,.98) 100%);
    color:var(--accento-scuro);
    border:1px solid rgba(228,216,204,.95);
    box-shadow:
        0 10px 24px rgba(16,24,40,.06),
        inset 0 1px 0 rgba(255,255,255,.78);
}

.bottone--secondario:hover{
    background:linear-gradient(180deg, #fffdfa 0%, #f6eee7 100%);
    border-color:#e1cdbd;
    box-shadow:
        0 14px 28px rgba(16,24,40,.08),
        inset 0 1px 0 rgba(255,255,255,.82);
}

.bottone--small{
    min-height:42px;
    padding:0 15px;
    border-radius:13px;
}

.bottone--ghost{
    background:rgba(255,255,255,.38);
    color:var(--accento-scuro);
    border:1px solid var(--bordo);
    box-shadow:none;
}

.bottone--ghost:hover{
    background:#f4ede6;
    border-color:#e1cdbd;
}

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

.griglia{
    display:grid;
    gap:16px;
    margin-top:20px;
}

.carta{
    background:
        radial-gradient(120% 80% at 0% 100%, rgba(234,210,191,.18) 0%, rgba(234,210,191,0) 36%),
        radial-gradient(80% 60% at 100% 0%, rgba(197,138,99,.08) 0%, rgba(197,138,99,0) 34%),
        linear-gradient(180deg, rgba(251,247,242,.99) 0%, rgba(247,242,236,.98) 100%);
    border:1px solid rgba(228,216,204,.95);
    border-radius:24px;
    padding:22px;
    box-shadow:
        0 16px 38px rgba(16,24,40,.07),
        inset 0 1px 0 rgba(255,255,255,.82);
}

.carta-auth{
    max-width:920px;
    margin:22px auto 0;
}

.carta h2,
.carta h3{
    margin:0 0 10px;
    line-height:1.04;
    color:var(--accento-scuro);
    text-align:center;
    letter-spacing:-0.03em;
}

.carta p{
    margin:0;
    color:var(--testo-secondario);
    line-height:1.78;
    text-align:center;
    max-width:520px;
    margin-left:auto;
    margin-right:auto;
}

.registrazione-titolo{
    text-align:center;
    margin-bottom:18px !important;
    font-size:2rem;
}

.sezione{
    margin-top:18px;
}

.sezione-registrazione{
    text-align:center;
}

.sezione-registrazione h3{
    margin-bottom:8px;
}

.sezione-registrazione p{
    max-width:760px;
    margin:0 auto;
}

/* =========================
   FORM
========================= */

.form-auth{
    display:grid;
    gap:16px;
}

.form-auth .azioni{
    justify-content:center;
}

.form-auth .azioni + a,
.form-auth .azioni + .bottone,
.form-auth a[href*="password"]{
    display:block;
    margin:12px auto 0;
    text-align:center;
    max-width:320px;
}

.gruppo-campi{
    display:grid;
    gap:14px;
}

.gruppo-campi--2{
    grid-template-columns:1fr;
}

.campo{
    display:grid;
    gap:8px;
}

.campo label{
    font-weight:700;
    font-size:.95rem;
    color:var(--accento-scuro);
}

.campo-help{
    color:var(--testo-secondario);
    line-height:1.68;
    font-size:.92rem;
}

.campo-help--centrato{
    text-align:center;
    max-width:760px;
    margin:2px auto 0;
}

.input,
.select,
.textarea{
    width:100%;
    min-height:54px;
    border:1px solid rgba(228,216,204,.95);
    border-radius:16px;
    background:linear-gradient(180deg, rgba(251,247,242,.98) 0%, rgba(247,242,236,.98) 100%);
    padding:0 16px;
    color:var(--testo);
    box-shadow:
        0 4px 12px rgba(16,24,40,.025),
        inset 0 1px 0 rgba(255,255,255,.78);
    transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.input:focus,
.select:focus,
.textarea:focus{
    outline:none;
    border-color:rgba(197,138,99,.55);
    box-shadow:
        0 0 0 4px rgba(197,138,99,.12),
        inset 0 1px 0 rgba(255,255,255,.82);
    background:#fff9f3;
}

.input[readonly]{
    background:#efe7de;
    color:#374151;
}

.textarea{
    min-height:140px;
    padding:14px 16px;
    resize:vertical;
}

.telefono-wrap{
    display:grid;
    grid-template-columns:90px 1fr;
    gap:10px;
    align-items:stretch;
}

.telefono-prefisso{
    min-height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(228,216,204,.95);
    border-radius:16px;
    background:#efe7de;
    color:var(--accento-scuro);
    font-weight:800;
    box-shadow:
        0 4px 12px rgba(16,24,40,.025),
        inset 0 1px 0 rgba(255,255,255,.74);
}

.telefono-input{
    min-width:0;
}

.riga-check{
    display:flex;
    align-items:flex-start;
    gap:10px;
    color:var(--testo-secondario);
    line-height:1.5;
}

.riga-check input{
    margin-top:4px;
}

.selettore-ruolo{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
}

.selettore-ruolo--cards{
    gap:14px;
}

.bottone-ruolo{
    min-height:48px;
    border:1px solid var(--bordo);
    border-radius:16px;
    background:linear-gradient(180deg, rgba(251,247,242,.98) 0%, rgba(247,242,236,.98) 100%);
    color:var(--accento-scuro);
    font-weight:800;
    cursor:pointer;
    transition:background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.bottone-ruolo:hover{
    background:#f4ede6;
    border-color:#e1cdbd;
}

.bottone-ruolo:focus-visible{
    box-shadow:0 0 0 4px rgba(197,138,99,.12);
}

.bottone-ruolo.is-attivo{
    background:linear-gradient(135deg, var(--accento-scuro) 0%, #284675 100%);
    color:#fff;
    border-color:var(--accento-scuro);
}

.bottone-ruolo--card{
    min-height:unset;
    padding:18px 16px;
    display:grid;
    gap:10px;
    justify-items:center;
    text-align:center;
    box-shadow:var(--ombra-soft);
}

.bottone-ruolo--card:hover{
    transform:translateY(-1px);
    box-shadow:0 12px 26px rgba(16,24,40,.08);
}

.bottone-ruolo__icona{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    border-radius:999px;
    background:#ece4dc;
    color:var(--accento-scuro);
    font-size:1.2rem;
}

.bottone-ruolo.is-attivo .bottone-ruolo__icona{
    background:rgba(255,255,255,.14);
    color:#fff;
}

.bottone-ruolo__titolo{
    display:block;
    font-size:1rem;
    font-weight:900;
    line-height:1.2;
}

.bottone-ruolo__descrizione{
    display:block;
    font-size:.93rem;
    font-weight:600;
    line-height:1.55;
    max-width:260px;
    color:var(--testo-secondario);
}

.bottone-ruolo.is-attivo .bottone-ruolo__descrizione{
    color:rgba(255,255,255,.92);
}

.blocco-ruolo{
    display:none;
}

.blocco-ruolo.is-attivo{
    display:grid;
    gap:14px;
}

/* =========================
   LOGIN EXTRA LINK
========================= */

.auth-extra{
    margin-top:14px;
    text-align:center;
}

.auth-extra a{
    display:inline-block;
    font-weight:700;
    color:var(--accento-scuro);
    padding:10px 14px;
    border-radius:12px;
    transition:background .18s ease, color .18s ease;
}

.auth-extra a:hover{
    background:#ede5dd;
}

.auth-extra a:focus-visible{
    background:#ede5dd;
    box-shadow:0 0 0 4px rgba(197,138,99,.12);
}

/* =========================
   MESSAGGI
========================= */

.messaggio{
    border-radius:18px;
    padding:14px 16px;
    margin:0 auto 16px auto;
    border:1px solid transparent;
    font-weight:700;
    text-align:center;
    max-width:600px;
    box-shadow:0 8px 18px rgba(16,24,40,.04);
}

.messaggio--successo{
    background:#e8f6ef;
    color:var(--successo);
    border-color:#abd8c1;
}

.messaggio--errore{
    background:#f8ebe8;
    color:var(--errore);
    border-color:#ebc1bc;
}

.messaggio--info{
    background:#eaf2ff;
    color:var(--info);
    border-color:#bfd4fe;
}

.lista-errori{
    margin:10px auto 0 auto;
    padding-left:0;
    list-style-position:inside;
    color:var(--errore);
    line-height:1.7;
    text-align:center;
}

/* =========================
   RIEPILOGO
========================= */

.riepilogo{
    display:grid;
    gap:10px;
    margin-top:8px;
}

.riepilogo-item{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:12px 14px;
    border:1px solid var(--bordo);
    border-radius:16px;
    background:linear-gradient(180deg, rgba(251,247,242,.98) 0%, rgba(247,242,236,.98) 100%);
}

.riepilogo-item strong{
    font-size:.95rem;
}

/* =========================
   NOTIFICHE
========================= */

.notifiche-lista{
    display:grid;
    gap:14px;
}

.notifica{
    border:1px solid var(--bordo);
    border-radius:20px;
    background:linear-gradient(180deg, rgba(251,247,242,.98) 0%, rgba(247,242,236,.98) 100%);
    padding:16px;
    box-shadow:var(--ombra-soft);
}

.notifica--non-letta{
    border-color:#e2cdbd;
    box-shadow:0 0 0 1px rgba(197,138,99,.08), 0 10px 24px rgba(16,24,40,.06);
}

.notifica__top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
}

.notifica__titolo{
    margin:0;
    font-size:1.05rem;
    color:var(--accento-scuro);
}

.notifica__meta{
    color:var(--testo-secondario);
    font-size:.9rem;
}

.notifica__testo{
    color:var(--testo-secondario);
    line-height:1.7;
    margin:0 0 12px;
}

.notifica__azioni{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.notifica__stato{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:0 10px;
    border-radius:999px;
    background:#ece4dc;
    color:#374151;
    font-size:.8rem;
    font-weight:800;
}

.notifica__stato--nuova{
    background:#f3e3d8;
    color:#9a6340;
}

/* =========================
   AUTOCOMPLETE COMUNI
========================= */

.comune-autocomplete{
    position:relative;
}

.comune-autocomplete__risultati{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:40;
    margin-top:6px;
    background:var(--superficie-2);
    border:1px solid var(--bordo);
    border-radius:16px;
    box-shadow:0 16px 36px rgba(15,23,42,.14);
    overflow:hidden;
    max-height:280px;
    overflow-y:auto;
}

.comune-autocomplete__risultati.is-open{
    display:block;
}

.comune-autocomplete__item{
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
    padding:12px 14px;
    border:none;
    border-bottom:1px solid #ece5de;
    background:var(--superficie-2);
    color:var(--testo);
    text-align:left;
    cursor:pointer;
}

.comune-autocomplete__item:last-child{
    border-bottom:none;
}

.comune-autocomplete__item:hover{
    background:#f4ede6;
}

.comune-autocomplete__nome{
    font-weight:800;
    line-height:1.35;
}

.comune-autocomplete__meta{
    font-size:.9rem;
    color:var(--testo-secondario);
    line-height:1.4;
}

.comune-autocomplete__vuoto{
    padding:14px;
    color:var(--testo-secondario);
    font-size:.95rem;
    line-height:1.5;
}

/* =========================
   FOOTER
========================= */

.footer-sito{
    margin-top:32px;
    padding:38px 0 42px;
    background:
        radial-gradient(120% 120% at 0% 0%, rgba(255,255,255,.34) 0%, rgba(255,255,255,0) 46%),
        radial-gradient(110% 110% at 100% 100%, rgba(197,138,99,.12) 0%, rgba(197,138,99,0) 44%),
        linear-gradient(180deg, #f8f4ef 0%, #f3eee8 42%, #ede4da 72%, #e7d8cb 100%);
    border-top:1px solid rgba(197,138,99,.18);
    color:#4c3f36;
}

.footer-sito__contenuto{
    display:grid;
    gap:24px;
}

.footer-sito__top{
    display:grid;
    gap:28px;
    justify-items:center;
    text-align:center;
}

.footer-sito__brand{
    display:grid;
    gap:14px;
    justify-items:center;
    text-align:center;
}

.footer-sito__logo{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    max-width:100%;
    margin-inline:auto;
}

.footer-sito__logo img{
    height:44px;
    width:auto;
    object-fit:contain;
}

.footer-sito__testo{
    max-width:760px;
    line-height:1.75;
    color:rgba(27,47,84,.88);
    font-size:1rem;
    margin-inline:auto;
    text-align:center;
}

.footer-sito__griglia{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px 18px;
    width:100%;
    align-items:start;
    justify-items:center;
    text-align:center;
}

.footer-sito__col{
    display:grid;
    gap:10px;
    justify-items:center;
    text-align:center;
}

.footer-sito__col--supporto{
    grid-column:1 / -1;
}

.footer-sito__titolo{
    margin:0;
    font-family:'Plus Jakarta Sans', Arial, sans-serif;
    font-size:.95rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:rgba(27,47,84,.92);
    text-align:center;
}

.footer-sito__links{
    display:grid;
    gap:8px;
    justify-items:center;
    text-align:center;
}

.footer-sito__links a,
.footer-sito__mini-links a{
    color:rgba(24,33,47,.92);
    font-weight:500;
    transition:opacity .18s ease, transform .18s ease;
    text-align:center;
}

.footer-sito__links a:hover,
.footer-sito__mini-links a:hover{
    opacity:.8;
}

.footer-sito__bottom{
    display:grid;
    gap:12px;
    justify-items:center;
    text-align:center;
    padding-top:18px;
    border-top:1px solid rgba(27,47,84,.10);
    color:rgba(24,33,47,.82);
    font-size:.95rem;
}

.footer-sito__copy{
    font-weight:500;
    text-align:center;
}

.footer-sito__mini-links{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:14px;
}

@media (min-width: 768px){
    .footer-sito__griglia{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:22px;
    }

    .footer-sito__col--supporto{
        grid-column:auto;
    }
}

/* =========================
   RESPONSIVE
========================= */

@media (min-width: 768px){
    :root{
        --header-h:88px;
    }

    .testata-sito__contenuto{
        grid-template-columns:76px minmax(0, 1fr) 76px;
        gap:10px;
    }

    .logo-sito{
        max-width:min(380px, 100%);
    }

    .logo-sito img{
        height:66px;
    }

    .pulsante-menu{
        width:60px;
        height:60px;
    }

    .pulsante-menu__linea{
        width:38px;
        height:3.2px;
    }

    .pulsante-menu.is-open .pulsante-menu__linea:nth-child(1){
        transform:translateY(10px) rotate(45deg);
    }

    .pulsante-menu.is-open .pulsante-menu__linea:nth-child(3){
        transform:translateY(-10px) rotate(-45deg);
    }

    .header-user{
        width:58px;
        height:58px;
    }

    .header-user__icon{
        font-size:1.5rem;
    }

    .header-user__avatar{
        width:58px;
        height:58px;
    }

    .header-user__badge{
        width:14px;
        height:14px;
        top:1px;
        right:1px;
    }

    .nav-principale__contenuto{
        padding:22px 24px 24px;
    }

    .nav-principale a{
        max-width:520px;
        min-height:60px;
        font-size:1.28rem;
    }

    .hero{
        padding:36px;
    }

    .hero h1{
        font-size:3rem;
    }

    .griglia{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .gruppo-campi--2{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .selettore-ruolo{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .footer-sito__top{
        grid-template-columns:1.15fr .85fr;
        align-items:start;
    }

    .footer-sito__griglia{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:22px;
    }
}

@media (max-width: 767px){
    .registrazione-titolo{
        font-size:1.7rem;
    }

    .telefono-wrap{
        grid-template-columns:78px 1fr;
    }

    .azioni--centrate .bottone{
        width:100%;
    }
}

.oe-archivio-card__content{
    text-align:center;
}

.oe-archivio-card__top{
    justify-content:center;
}

.oe-archivio-card__top > div:first-child{
    width:100%;
}

.oe-archivio-card__titolo{
    text-align:center;
}

.oe-archivio-card__meta{
    justify-content:center;
}

.oe-archivio-card__meta-item{
    justify-content:center;
}