/* =========================================================
   Unified button system — pill Lexio (come header / catalogo)
   ========================================================= */
:root {
    --fs-btn-radius: 999px;
    --fs-btn-font-size: 15px;
    --fs-btn-font-weight: 600;
    --fs-btn-line-height: 1;
    --fs-btn-gap: 10px;
    --fs-btn-pad-y: 0;
    --fs-btn-pad-x: 18px;
    --fs-btn-min-height: 44px;
    --fs-btn-pad-y-sm: 0;
    --fs-btn-pad-x-sm: 16px;
    --fs-btn-min-height-sm: 42px;
    --fs-btn-font-size-sm: 14px;
    --fs-btn-pad-y-lg: 0;
    --fs-btn-pad-x-lg: 22px;
    --fs-btn-min-height-lg: 52px;
    --fs-btn-font-size-lg: 16px;
    --fs-btn-primary: #1A6AFF;
    --fs-btn-primary-hover: #0D4FB8;
    --fs-btn-ink: #122033;
    --fs-btn-ink-hover: #1A6AFF;
    --fs-btn-border: #E0E0E0;
}

/* Shared shape for public CTAs */
body:not(.ea) .btn:not(.btn-close):not(.rounded-circle):not(.accordion-button),
body:not(.ea) .hero-btn,
body:not(.ea) .lexio-faq__btn,
body:not(.ea) .lexio-why__bottom > a,
body:not(.ea) .lexio-courses__all,
body:not(.ea) .lexio-servizi__cta,
body:not(.ea) .fs-header__cta,
body:not(.ea) .fs-footer__cta,
body:not(.ea) .custom-btn,
body:not(.ea) .custom-btn-danger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--fs-btn-gap);
    box-sizing: border-box;
    min-height: var(--fs-btn-min-height);
    padding: var(--fs-btn-pad-y) var(--fs-btn-pad-x);
    border-radius: var(--fs-btn-radius) !important;
    border-width: 1px;
    border-style: solid;
    font-family: var(--font-button, var(--font-body, "DM Sans", sans-serif));
    font-size: var(--fs-btn-font-size);
    font-weight: var(--fs-btn-font-weight);
    line-height: var(--fs-btn-line-height);
    letter-spacing: -0.2px;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, gap 0.2s ease;
}

/* Size variants */
body:not(.ea) .btn-sm:not(.btn-close):not(.rounded-circle),
body:not(.ea) .navbar .btn:not(.rounded-circle),
body:not(.ea) .fs-header__cta {
    min-height: var(--fs-btn-min-height-sm);
    padding: var(--fs-btn-pad-y-sm) var(--fs-btn-pad-x-sm);
    font-size: var(--fs-btn-font-size-sm);
}

body:not(.ea) .btn-lg:not(.rounded-circle) {
    min-height: var(--fs-btn-min-height-lg);
    padding: var(--fs-btn-pad-y-lg) var(--fs-btn-pad-x-lg);
    font-size: var(--fs-btn-font-size-lg);
}

/* Primary blue (Accedi / form submit) */
body:not(.ea) .btn-primary,
body:not(.ea) .fs-header__cta,
body:not(.ea) .custom-btn {
    background-color: var(--fs-btn-primary);
    border-color: var(--fs-btn-primary);
    color: #fff;
}

body:not(.ea) .btn-primary:hover,
body:not(.ea) .btn-primary:focus-visible,
body:not(.ea) .fs-header__cta:hover,
body:not(.ea) .fs-header__cta:focus-visible,
body:not(.ea) .custom-btn:hover {
    background-color: var(--fs-btn-primary-hover);
    border-color: var(--fs-btn-primary-hover);
    color: #fff;
    gap: 12px;
}

/* Yellow pills — hover blu Lexio */
body:not(.ea) .hero-btn-primary,
body:not(.ea) .lexio-faq__btn,
body:not(.ea) .lexio-why__bottom > a,
body:not(.ea) .fs-footer__cta,
body:not(.ea) .lexio-courses__all,
body:not(.ea) .lexio-servizi__cta {
    background-color: #f5a019;
    border-color: #f5a019;
    color: #fff;
}

body:not(.ea) .hero-btn-primary:hover,
body:not(.ea) .hero-btn-primary:focus-visible,
body:not(.ea) .lexio-faq__btn:hover,
body:not(.ea) .lexio-faq__btn:focus-visible,
body:not(.ea) .lexio-why__bottom > a:hover,
body:not(.ea) .lexio-why__bottom > a:focus-visible,
body:not(.ea) .fs-footer__cta:hover,
body:not(.ea) .fs-footer__cta:focus-visible,
body:not(.ea) .lexio-courses__all:hover,
body:not(.ea) .lexio-courses__all:focus-visible,
body:not(.ea) .lexio-servizi__cta:hover,
body:not(.ea) .lexio-servizi__cta:focus-visible {
    background-color: #1a6aff;
    border-color: #1a6aff;
    color: #fff;
    gap: 12px;
}

/* Secondary / outline */
body:not(.ea) .btn-outline-primary,
body:not(.ea) .btn-outline-secondary,
body:not(.ea) .btn-secondary,
body:not(.ea) .hero-btn-secondary {
    background-color: #fff;
    border-color: var(--fs-btn-border);
    color: var(--fs-btn-ink);
}

body:not(.ea) .btn-outline-primary:hover,
body:not(.ea) .btn-outline-primary:focus-visible,
body:not(.ea) .btn-outline-secondary:hover,
body:not(.ea) .btn-secondary:hover,
body:not(.ea) .hero-btn-secondary:hover,
body:not(.ea) .hero-btn-secondary:focus-visible {
    background-color: #f4f7fb;
    border-color: #c9d6e8;
    color: var(--fs-btn-ink);
}

body:not(.ea) .btn-outline-primary {
    border-color: var(--fs-btn-primary);
    color: var(--fs-btn-primary);
}

body:not(.ea) .btn-outline-primary:hover,
body:not(.ea) .btn-outline-primary:focus-visible {
    background-color: var(--fs-btn-primary);
    border-color: var(--fs-btn-primary);
    color: #fff;
}

body:not(.ea) .btn-success {
    background-color: #198754;
    border-color: #198754;
    color: #fff;
}

body:not(.ea) .btn-success:hover,
body:not(.ea) .btn-success:focus-visible {
    background-color: #157347;
    border-color: #157347;
    color: #fff;
}

body:not(.ea) .custom-btn-danger,
body:not(.ea) .btn-danger {
    background-color: #dc3545;
    border-color: #dc3545;
    color: #fff;
}

body:not(.ea) .custom-btn-danger:hover {
    background-color: #bb2d3b;
    border-color: #bb2d3b;
    color: #fff;
}

body:not(.ea) .btn.rounded-pill:not(.rounded-circle) {
    border-radius: var(--fs-btn-radius) !important;
}

body:not(.ea) .navbar .btn.btn-primary,
body:not(.ea) .navbar .nav-link.btn {
    margin: 0;
    line-height: var(--fs-btn-line-height);
}

body:not(.ea) .navbar .btn.btn-primary:hover,
body:not(.ea) .navbar .nav-link.btn:hover {
    color: #fff;
}

.hero-cta-row,
.cta-section .d-flex,
.fs-btn-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
    align-items: center;
}

@media (max-width: 767.98px) {
    body:not(.ea) .hero-cta-row,
    body:not(.ea) .cta-section .d-flex,
    body:not(.ea) .fs-btn-row,
    body:not(.ea) .lexio-why__bottom {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }

    body:not(.ea) .hero-btn,
    body:not(.ea) .hero-cta-row > a,
    body:not(.ea) .cta-section .btn,
    body:not(.ea) .lexio-faq__btn,
    body:not(.ea) .lexio-why__bottom > a,
    body:not(.ea) .d-grid > .btn {
        width: 100%;
        white-space: normal;
        text-align: center;
    }

    body:not(.ea) .navbar .btn.btn-primary,
    body:not(.ea) .navbar .nav-link.btn {
        width: auto;
        min-height: var(--fs-btn-min-height-sm);
    }
}
