/* =========================================================
   BASE.CSS — Terapeuta Frontend (HTML static) — CLEAN
   ========================================================= */

/* ========== TOKENS & RESETS ========== */
:root{
    /* Layout */
    --container:1200px;
    --container-narrow:900px;
    --gap:24px;

    --radius-s:10px;
    --radius-m:14px;
    --shadow:0 10px 30px rgba(0,0,0,.08);

    /* Header spacing */
    --header-pad-x:40px;

    /* ====== COLOR SYSTEM ====== */
    /* Palette */
    --primary:#009b99;          /* verde acqua principale */
    --primary-dark:#076267;     /* verde scuro */
    --secondary:#bdffcb;        /* verdino fluo (accento chiaro) */
    --tertiary:#d8f3ef;
    --brand-600: #e14b15;        /* blu accent (CTA) */
    --brand-900:#0a5ea8;        /* blu scuro */
    --ink-900:#111;
    --ink-700:#333;
    --ink-500:#666;
    --bg:#fff;
    --bg-soft:#f7f8fa;
    --border:#e8e8e8;
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
img,video{max-width:100%;display:block}
body{
    font-family:"DM Sans",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    color:var(--ink-900);
    background:var(--bg);
    line-height:1.55;
}

/* Utilities */
.container{max-width:var(--container);margin-inline:auto;padding:clamp(16px,2vw,24px)}
.container--narrow{max-width:var(--container-narrow)}

/* Visibilità responsive (mobile @1150px) */
.only-desktop{display:initial}
.only-mobile{display:none}
@media (max-width:1150px){
    .only-desktop{display:none !important}
    .only-mobile{display:inline-flex !important}
}

h1{font-size:clamp(28px,3.8vw,44px);margin:0 0 .25em}
h2{font-size:clamp(22px,2.6vw,32px);margin:.5em 0}
.paragraph{color:var(--ink-700)}

/* Buttons & cards */
.btn{
    display:inline-flex;align-items:center;justify-content:center;
    padding:.75em 1.25em;border-radius:12px;border:1px solid transparent;
    background:var(--primary);color:#fff;text-decoration:none;font-weight:700;
    transition:background .25s ease,color .25s ease,border-color .25s ease;
}
.btn:hover{background:var(--primary);color:#fff}
.btn--outline{background:transparent;border-color:var(--primary);color:var(--primary)}
.btn--outline:hover{background:var(--primary);color:#fff}
.btn--small{padding:.55em .9em;border-radius:10px}
.btn--header{white-space:nowrap}
.btn--wide{width:100%;max-width:520px}

.card{
    background:#fff;border:1px solid var(--border);
    border-radius:var(--radius-m);box-shadow:var(--shadow);padding:24px;
}

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

/* Barra fissa, trasparente all’avvio */
.header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    background:transparent;border:0;
    transition:background-color .3s ease, box-shadow .3s ease;
}

/* Riga header */
.header__row{
    width:100%;margin:0;
    padding:26px var(--header-pad-x); /* più arioso */
    display:flex;align-items:center;justify-content:space-between;
    position:relative;gap:16px;
    transition:padding .3s ease;
}

/* Logo a sinistra */
.header__brand{padding-left:6px;display:inline-flex;align-items:center}
/* ========== HEADER — LOGO FORMATO OTTIMIZZATO ========== */

/* Desktop */
.header__logo {
    height: 60px;           /* aumentato */
    width: auto;
    display: block;
    padding-left: 6px;      /* leggero respiro */
    padding-right: 6px;
}

/* Riduzione quando l’header è compresso dopo lo scroll */
.header.is-scrolled .header__logo {
    height: 46px;
}

/* Mobile */
@media (max-width: 1150px) {
    .header__logo {
        height: 46px;       /* più compatto */
        padding-left: 4px;
        padding-right: 4px;
    }
}

/* Nav desktop: allineata a sinistra, dopo il logo */
@media (min-width:1151px){
    .header__nav{
        display:flex;align-items:center;justify-content: center;
        margin-left:56px;            /* distanza dal logo */
        gap:26px;                    /* spazio tra voci */
    }
    .header__nav a{
        font-size:17px;font-weight:600;letter-spacing:.15px;
        color:var(--primary);text-decoration:none;line-height:1;
        padding:6px 2px;transition:color .2s ease;white-space: nowrap;
    }
    .header__nav a:hover{color:var(--primary-700)}
    .header__nav a:active{color:var(--primary-900)}
}

/* Azioni a destra (affiancate) */
@media (min-width:1151px){
    .header__actions{display:flex;align-items:center;gap:16px;white-space:nowrap;flex-wrap:nowrap}
    .header__actions a,.header__actions .btn{display:inline-flex;flex:0 0 auto}
    .header__pro-link{
        color:var(--primary-dark);text-decoration:none;font-weight:700;
        padding:6px 2px;transition:color .2s ease;
    }
    .header__pro-link:hover{color:var(--primary)}
    .header .btn--outline{border-color:var(--primary);color:var(--primary);background:transparent}
    .header .btn--outline:hover{background:var(--primary);color:#fff}
}

/* Hamburger (mobile) */
.header__menu{
    appearance:none;border:0;background:none;cursor:pointer;
    padding:6px;color:var(--primary);transition:color .2s ease;
}
.header__menu:hover{color:var(--primary-700)}
.header__menu svg path{fill:currentColor}

/* Stato scrolled */
.header.is-scrolled{background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.06)}
.header.is-scrolled .header__row{padding:18px var(--header-pad-x)}
@media (min-width:1151px){
    .header.is-scrolled .header__nav a{color:var(--primary-dark)}
    .header.is-scrolled .header__nav a:hover{color:var(--primary)}
}
.header.is-scrolled .header__menu{color:var(--primary-dark)}
.header.is-scrolled .header__menu:hover{color:var(--primary)}

/* Drawer mobile */
.header__mobile{
    position:fixed;inset:0;background:rgba(0,0,0,.32);
    opacity:0;pointer-events:none;transition:opacity .2s ease;
}
.header.open .header__mobile{opacity:1;pointer-events:auto}
.header__mobile-inner{
    position:absolute;inset:0 0 auto 0;background:#fff;border-bottom:1px solid var(--border);
    transform:translateY(-100%);transition:transform .25s ease;
    padding:24px var(--header-pad-x) 32px;
}
.header.open .header__mobile-inner{transform:translateY(0)}

/* Logo nel menu mobile (image path relativo a css/) */
.header__mobile-inner::before{
    content:"";display:block;height:48px;margin-bottom:24px;
    background:url("../images/logo-terapeuta.svg") no-repeat left center / 140px auto;
}

/* Link menu mobile */
.header__mobile-top{display:flex;flex-direction:column;gap:10px;padding-left:var(--header-pad-x);padding-right:var(--header-pad-x)}
.header__mobile-top a{
    color:var(--primary);font-size:18px;font-weight:600;text-decoration:none;
    padding:12px 0;border-bottom:1px solid #f0f0f0;transition:color .2s ease;
}
.header__mobile-top a:hover{color:var(--primary-dark)}
.header__mobile--bold{font-weight:700}

/* CTA mobile full-width */
.header__mobile-bottom{
    display:flex;flex-direction:column;gap:16px;padding:28px var(--header-pad-x);
}
.header__mobile-bottom .btn{
    width:100%;font-size:17px;font-weight:700;border-radius:12px;padding:1em;text-align:center;
}
.header__mobile-bottom .btn--outline{
    border:2px solid var(--primary);color:var(--primary);background:transparent;
}
.header__mobile-bottom .btn--outline:hover{background:var(--primary);color:#fff}
.header__mobile-bottom .btn--solid{
    background:var(--primary);border:2px solid var(--primary);color:#fff;
}
.header__mobile-bottom .btn--solid:hover{
    background:var(--primary-dark);border-color:var(--primary-dark);
}

/* Close */
.header__close{position:absolute;top:18px;right:22px;background:none;border:0;padding:6px;cursor:pointer;color:var(--primary)}
.header__close svg{stroke:currentColor;fill:none;stroke-width:2}

/* Focus ring accessibile */
.header a:focus-visible,.header button:focus-visible{
    outline:2px solid var(--primary-300);outline-offset:2px;border-radius:8px;
}

/* =========================================================
   NAV DESKTOP + DROPDOWN (allineato)
   ========================================================= */
@media (min-width:1151px){

    /* Nav principale subito dopo il logo */
    .header__nav{
        display:flex;
        align-items:center;
        justify-content:flex-start;
        margin-left:56px;   /* spazio dal logo */
        gap:26px;
    }

    /* Stile base di tutte le voci (con e senza dropdown) */
    .header__nav > a,
    .header__nav .nav-link{
        display:inline-flex;
        align-items:center;
        gap:6px;
        font-size:17px;
        font-weight:600;
        letter-spacing:.15px;
        color:var(--primary);
        text-decoration:none;
        line-height:1;
        padding:6px 2px;
        white-space:nowrap;
        transition:color .2s ease;
    }

    .header__nav > a:hover,
    .header__nav .nav-link:hover{
        color:var(--primary-700);
    }

    .header__nav > a:active,
    .header__nav .nav-link:active{
        color:var(--primary-900);
    }

    /* wrapper della voce con dropdown */
    .nav-item{
        position:relative;
        display:flex;
        align-items:center;
    }

    /* Freccia più grande + animazione */
    .nav-caret{
        font-size:20px;
        line-height:1;
        display:inline-block;
        transform-origin:center;
        transition:transform .18s ease;
    }

    .nav-item:hover .nav-caret{
        transform:rotate(180deg);
    }

    /* Dropdown */
    .nav-sub{
        position:absolute;
        top:100%;          /* attaccato sotto la voce */
        left:50%;
        transform:translateX(-50%);
        background:#fff;
        border-radius:12px;
        box-shadow:var(--shadow);
        border:1px solid var(--border);
        padding:8px 0;
        min-width:220px;
        opacity:0;
        pointer-events:none;
        transition:opacity .18s ease;
        z-index:300;
    }

    .nav-sub a{
        display:block;
        padding:10px 16px;
        color:var(--primary-dark);
        font-size:15px;
        font-weight:500;
        text-decoration:none;
        white-space:nowrap;
    }

    .nav-sub a:hover{
        background:var(--secondary);
        color:var(--primary-dark);
    }

    /* Mostra il dropdown in hover */
    .nav-item:hover .nav-sub{
        opacity:1;
        pointer-events:auto;
    }

    /* Ponte invisibile anti-"chiusura" quando scendi col mouse */
    .nav-item::after{
        content:"";
        position:absolute;
        left:0;
        right:0;
        top:100%;     /* subito sotto la voce */
        height:10px;  /* zona “ponte” */
        background:transparent;
    }

    .header__nav{
        display:flex !important;
        align-items:center !important;
        justify-content:flex-start !important; /* ALLINEA A SINISTRA */
        margin-left:56px !important;
        gap:26px !important;
        flex:0 1 auto !important; /* evita centering laterale */
    }

}

/* Dropdown coerente anche su header scrolled */
.header.is-scrolled .nav-sub{
    background:#fff;
    border-color:var(--border);
}


/* ================================
   LOGIN ICON
   ================================ */

.login-icon {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    height: 38px;
    border-radius: 20px;
    background: rgba(0,155,153,0.10);
    transition: transform 0.25s ease, background 0.25s ease;
    cursor: pointer;
    text-decoration: none; /* nessuna sottolineatura */
}

.login-icon img {
    width: 22px;   /* icona più grande */
    height: 22px;
    transition: transform 0.25s ease, filter 0.25s ease;
}

.login-text {
    font-size: 15px;
    font-weight: 600;
    color: var(--primary);
    text-decoration: none; /* elimina underline su <a> */
    transition: color 0.25s ease;
    user-select: none;
}

/* Hover */
.login-icon:hover {
    background: var(--primary);
    transform: scale(1.1);
    text-decoration: none;
}

.login-icon:hover img {
    transform: scale(1.1);
    filter: brightness(0) invert(1);
}

.login-icon:hover .login-text {
    color: #fff;
}

/* Variante header bianco (scrolled) */
.header.is-scrolled .login-icon {
    background: rgba(0,155,153,0.15);
}

.header.is-scrolled .login-icon:hover {
    background: var(--primary);
}

.header.is-scrolled .login-icon .login-text {
    color: var(--primary);
}

/* === Allineamento finale header desktop: logo a sinistra, menu subito dopo, azioni a destra === */
@media (min-width:1151px){
    .header__row{
        justify-content:flex-start;   /* niente space-between */
    }

    .header__brand{
        flex:0 0 auto;               /* logo a larghezza naturale */
    }

    .header__nav{
        flex:0 1 auto;               /* menu occupa lo spazio centrale */
        margin-left:56px;            /* distanza dal logo (come avevamo) */
    }

    .header__actions{
        margin-left:auto;            /* spinge Accedi + bottone a destra */
        flex:0 0 auto;
    }
}
/* =========================================================
   CTA (base)
   ========================================================= */
.cta__cards{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.cta__card{border:1px solid var(--border);border-radius:18px;padding:20px;background:#fff}
.cta__card--azzurro{background:linear-gradient(135deg,#e9f5ff,#f7fbff)}
.cta__title{font-size:20px;margin:0 0 8px}
.cta__link{display:inline-flex;gap:8px;align-items:center;text-decoration:none;color:var(--brand-900)}
.cta__link:hover{color:var(--brand-600)}
.cta__text{color:var(--ink-700)}
/* Sezione CTA professionisti */
.cta-professionisti{
    background: var(--primary-dark);
    color: #fff;
    padding: clamp(40px,6vw,64px) 0;
}

.cta-professionisti__inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.cta-professionisti__text h3{
    margin: 0 0 8px;
    font-size: clamp(24px,3.2vw,34px);
    font-weight:700;
    color:#fff;
}

.cta-professionisti__text p{
    margin: 0;
    font-size: clamp(16px,2vw,18px);
    color: rgba(255,255,255,0.85);
}

.cta-professionisti__btn a{
    font-size: clamp(16px,2vw,18px);
    padding: .9em 1.8em;
    border-radius:12px;
    border-color: #fff;
    color: var(--primary-dark);
    background: #fff;
    text-decoration: none;
    font-weight:700;
    transition: background .25s ease, color .25s ease;
}

.cta-professionisti__btn a:hover{
    background: var(--primary);
    color:#fff;
}

/* Responsive (mobile) */
@media (max-width:820px){
    .cta-professionisti__inner{
        flex-direction: column;
        text-align:center;
    }

    .cta-professionisti__btn{
        width:100%;
    }

    .cta-professionisti__btn a{
        width:100%;
        display:inline-block;
    }
}
/* Scurimento leggero al passaggio */
.cta-professionisti:hover {
    background: #17534f; /* 10% più scuro del tuo secondary */
}
/* =========================================================
   CTA NOVITÀ — centrata + tipografia come cta-professionisti
   background: var(--tertiary)
   ========================================================= */

.cta-novita{
    background: var(--tertiary);
    padding: clamp(40px,6vw,64px) 0;
}

/* box centrato con bordo moderno */
.cta-novita__inner{
    position: relative;
    max-width: 980px;
    margin: 0 auto;

    text-align: center;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(0,155,153,.18);
    border-radius: 20px;
    box-shadow: 0 14px 40px rgba(0,0,0,.08);
    backdrop-filter: blur(10px);

    padding: clamp(22px,3vw,34px) clamp(18px,3vw,36px);
    overflow: hidden;

    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

/* hover delicato sul box */
.cta-novita__inner:hover{
    transform: translateY(-2px);
    box-shadow: 0 18px 52px rgba(0,0,0,.10);
    background: rgba(255,255,255,.80);
}

/* bordo laterale moderno (su desktop) */
/*.cta-novita__inner::before{
    content:"";
    position:absolute;
    left:14px;
    top:14px;
    bottom:14px;
    width: 6px;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--primary), var(--brand-600));
    opacity: .95;
}*/

/* bolla grafica soft */
/*.cta-novita__inner::after{
    content:"";
    position:absolute;
    right:-90px;
    top:-90px;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0,155,153,.18), rgba(10,160,232,0));
    pointer-events: none;
}*/

/* testo: stessi “gusti” della cta-professionisti */
.cta-novita__text h3{
    margin: 0 0 12px;
    font-size: clamp(24px,3.2vw,34px);
    font-weight: 700;
    color: var(--primary-dark);
    line-height: 1.15;
}

.cta-novita__text p{
    margin: 0 auto;
    max-width: 70ch;
    font-size: clamp(16px,2vw,18px);
    color: var(--ink-700);
}

/* spazio tra testo e bottoni */
.cta-novita__actions{
    margin-top: 18px;
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

/* bottoni coerenti, con micro-pulse */
.cta-novita__actions .btn{
    font-size: clamp(16px,2vw,18px);
    padding: .9em 1.8em;
    border-radius: 12px;
}

/* pulsazione lenta (solo qui) */
@media (prefers-reduced-motion: no-preference){
    .cta-novita__actions .btn{
        animation: ctaNovitaPulse 4.8s ease-in-out infinite;
    }
    .cta-novita__inner:hover .cta-novita__actions .btn{
        animation-duration: 3.6s;
    }
    @keyframes ctaNovitaPulse{
        0%,100%{ transform: scale(1); }
        50%{ transform: scale(1.035); }
    }
}

/* Mobile: bordo diventa top-bar */
@media (max-width: 820px){
    .cta-novita__inner::before{
        left: 14px;
        right: 14px;
        top: 14px;
        bottom: auto;
        width: auto;
        height: 6px;
    }
    .cta-novita__actions .btn{
        width: 100%;
        max-width: 520px;
    }
}

/* ===== PULSANTE ANIMATO ===== */
/* Pulsante "Candidati ora" animato dentro la sezione CTA */
.cta-professionisti .btn--outline {
    border: 2px solid white;
    background: var(--primary);
    color: #fff;
    padding: .9em 1.8em;
    border-radius: 12px;
    font-weight: 700;
    font-size: 20px;
    animation: btnPulse 5s ease-in-out infinite;
    transition: transform .20s ease, background .20s ease;
}

/* Hover: un po’ più grande e più scuro */
.cta-professionisti .btn--outline:hover {
    transform: scale(1.48);
    background: var(--primary-dark);
    border-color: var(--primary);
}

/* Keyframes pulsazione */
@keyframes btnPulse {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.04); }
}
/* CTA professionisti: bottone sempre centrato + testo gestito bene */
.cta-professionisti__btn{
    display:flex;
    justify-content:center;
}

.cta-professionisti__btn a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    line-height:1.1;
    white-space:nowrap;      /* evita che vada su 2 righe */
    min-width: 240px;        /* opzionale: dà stabilità */
}

/* su schermi piccoli permetti l'andata a capo ma sempre centrata */
@media (max-width: 420px){
    .cta-professionisti__btn a{
        white-space:normal;    /* se proprio non ci sta */
        padding-left: 16px;
        padding-right: 16px;
    }
}



/* =========================================================
   FOOTER — fondo verde, testo bianco, middle a 3 colonne (CLEAN)
   ========================================================= */
.footer{
    background:var(--primary);
    color:#fff;
}

/* ---------- TOP: brand + colonne ---------- */
.footer__top{
    max-width:1200px;
    margin:0 auto;
    padding:48px var(--header-pad-x) 40px;
    display:grid;
    grid-template-columns: 1fr 2fr;
    gap:32px;
}
@media (max-width:1150px){
    .footer__top{
        grid-template-columns:1fr;
        padding:32px var(--header-pad-x) 24px;
    }
}

.footer__brand{display:flex;flex-direction:column;gap:16px}
.footer__logo{height:28px;width:auto}
.footer__legal{color:rgba(255,255,255,.85);font-size:14px;line-height:1.5}

.footer__cols{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}
@media (max-width:700px){ .footer__cols{grid-template-columns:1fr 1fr} }
@media (max-width:480px){ .footer__cols{grid-template-columns:1fr} }

.footer__title{
    margin:0 0 10px;
    font-size:16px;
    font-weight:700;
    color:#fff;
}

.footer__link{
    display:block;
    color:rgba(255,255,255,.9);
    text-decoration:none;
    padding:6px 0;
    font-size:15px;
    transition:color .2s ease;
}
.footer__link:hover{color:#fff}

/* "Hai un'emergenza?" in secondary, bold, senza underline */
.footer__link--accent{
    color:var(--secondary);
    font-weight:700;
    text-decoration:none;
}
.footer__link--accent:hover{ color:#fff; }

/* ---------- MIDDLE: 3 colonne (app | support | social) ---------- */
.footer__middle{
    max-width:1200px;
    margin:0 auto;
    padding:40px var(--header-pad-x);
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    align-items:center;
    gap:32px;
    border-top:1px solid rgba(255,255,255,.2);
}
@media (max-width:1150px){
    .footer__middle{
        grid-template-columns:1fr;
        align-items:stretch;
        gap:20px;
    }
}

/* portiamo i due blocchi dentro al grid del parent senza cambiare HTML */
.footer__support-social{ display:contents; }

/* "Scarica l’app" allineato a sinistra (non centrato) */
.footer__apps{ text-align:left; }
.footer__store{
    display:flex; gap:12px; align-items:center; justify-content:flex-start; flex-wrap:wrap;
}
.footer__store-badge{ height:46px; width:auto; }

/* Bottone assistenza outline bianco */
.footer__support{ text-align:center; }
.footer__support-btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    border:2px solid #fff; color:#fff; background:transparent;
    font-weight:700; padding:.7em 1.4em; border-radius:12px; transition:all .25s ease;
}
.footer__support-btn:hover{ background:#fff; color:var(--primary); }
.footer__icon{ width:18px; height:18px; filter:brightness(0) invert(1); }

/* Social: layout di base (senza styling icone) — le icone le rifaremo a parte */
.footer__social{ text-align:center; }
.footer__social-row{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:18px;
}

/* ---------- BOTTOM: policy ---------- */
.footer__bottom{
    max-width:1200px;
    margin:0 auto;
    padding:20px var(--header-pad-x) 28px;
    border-top:1px solid rgba(255,255,255,.2);
}
.footer__links{
    display:flex; gap:18px; flex-wrap:wrap;
}
.footer__links .footer__link{
    color:rgba(255,255,255,.9);
    font-size:14px;
}
.footer__links .footer__link:hover{ color:#fff; }

/* ---------- FASCIA COESIONE (resta bianca) ---------- */
.footer__coesione{
    background:#fff; color:var(--ink-700);
    padding:20px var(--header-pad-x) 28px;
}
.footer__coesione-media{
    max-width:1200px;
    margin:0 auto 16px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
    min-height:60px; /* garantisce spazio anche se l'immagine è piccola */
}

.footer__coesione-img{
    max-width:600px;
    width:100%;
    height:auto;
    display:block; /* evita il collasso inline */
}
.footer__coesione-img--mobile{
    display:none;
}
@media (max-width:700px){
    .footer__coesione{
        padding-top: 0;            /* prima 8px/20px: azzeriamo */
        padding-bottom: 12px;      /* un filo di respiro sotto */
    }
    .footer__bottom{
        margin-bottom: 0;          /* evita gap dalla sezione sopra */
        padding-bottom: 16px;      /* opzionale: riduci se serve */
    }
    .footer__coesione-media{
        margin: 0 auto 8px;        /* compatta lo spazio attorno */
        padding-top: 0;
        /* rimuovi qualsiasi min-height */
        min-height: 0 !important;
    }
    .footer__coesione-img{
        max-width: 100%;
        width: 100%;
        height: auto;
        display: block;
    }
    .footer__coesione-img--desktop{
        display:none;
    }
    .footer__coesione-img--mobile{
        display:block;
    }
    .footer__coesione{
        padding-top:8px;
        padding-bottom:16px;
    }
}
.footer__coesione-text{
    max-width:720px;
    margin:0 auto;
    text-align:center;
    font-size:10px;          /* leggermente più piccolo */
    line-height:1.4;
    color:var(--ink-700);
    opacity:0.8;
}
/* === FOOTER: ottimizzazioni layout mobile === */
@media (max-width:700px){

    /* --- Menu principale (Terapeuta, Trova terapeuta, Area professionista) --- */
    .footer__cols{
        grid-template-columns:1fr;
        gap:28px;
    }
    .footer__col{
        text-align:left;
    }

    /* --- Sezione "Hai bisogno di aiuto?" e "Seguici su" allineate a sinistra --- */
    .footer__support,
    .footer__social{
        text-align:left;
        align-items:flex-start;
    }

    .footer__support-btn{
        justify-content:flex-start;
    }

    .footer__social-row{
        justify-content:flex-start;
    }
}

a{color: var(--primary-dark);}

.xcard{
    position:relative;
}

.xcard__ribbon{
    position:absolute;
    top:35px;
    right:-40px;
    transform:rotate(45deg);
    background:var(--secondary);
    color:#053a39;
    font-size:12px;
    font-weight:800;
    padding:6px 40px;
    letter-spacing:.08em;
}
.xcard__ribbon--soon{
    top:20px;
    right:-31px;
    background: #ff6620;
    color: #fff0f0;
}
