/* Colori condivisi delle CTA. Geometria, layout e interazioni restano nei componenti. */
:root {
    --cta-primary-bg: #087795;
    --cta-primary-hover-bg: #06617b;
    --cta-primary-active-bg: #054e63;
    --cta-primary-text: var(--brand-white, #ffffff);
    --cta-secondary-bg: var(--brand-white, #ffffff);
    --cta-secondary-hover-bg: #eef5f8;
    --cta-secondary-active-bg: #dce9f0;
    --cta-secondary-text: var(--brand-navy, #12395b);
    --cta-disabled-bg: #e7edf2;
    --cta-disabled-text: #526578;
    --cta-focus-color: var(--brand-navy, #12395b);
}

/* Le varianti Bootstrap positive sono azioni principali; i quiz mantengono la loro geometria. */
:root :is(.site-primary-button, .site-contact-button, .landing-contact-button,
    .custom-btn-contattami, .btn-primary, .btn-success, .quiz-grid button) {
    --cta-bg: var(--cta-primary-bg);
    --cta-text: var(--cta-primary-text);
    --cta-border: var(--cta-primary-bg);
    --cta-hover-bg: var(--cta-primary-hover-bg);
    --cta-hover-text: var(--cta-primary-text);
    --cta-hover-border: var(--cta-primary-hover-bg);
    --cta-active-bg: var(--cta-primary-active-bg);
    --cta-active-text: var(--cta-primary-text);
    --cta-active-border: var(--cta-primary-active-bg);
}

/* Azioni secondarie, inclusa la navigazione avanti/indietro dei corsi. */
:root :is(.site-secondary-button, .custom-contattami, .btn-secondary,
    .btn-outline-primary, .btn-outline-secondary, .btn-info, .btn-warning, .controls button) {
    --cta-bg: var(--cta-secondary-bg);
    --cta-text: var(--cta-secondary-text);
    --cta-border: var(--cta-secondary-text);
    --cta-hover-bg: var(--cta-secondary-hover-bg);
    --cta-hover-text: var(--cta-secondary-text);
    --cta-hover-border: var(--cta-secondary-text);
    --cta-active-bg: var(--cta-secondary-active-bg);
    --cta-active-text: var(--cta-secondary-text);
    --cta-active-border: var(--cta-secondary-text);
}

/* Bordo interno per i controlli dei corsi privi di bordo fisico: non occupa spazio. */
:root .controls button {
    --cta-inset-ring: inset 0 0 0 1px currentColor;
    box-shadow: var(--cta-inset-ring);
}

/* Nessun selettore generico su a, button o .btn: link e controlli di disclosure sono esclusi. */
:root :is(.site-primary-button, .site-contact-button, .landing-contact-button,
    .custom-btn-contattami, .btn-primary, .btn-success, .quiz-grid button,
    .site-secondary-button, .custom-contattami, .btn-secondary,
    .btn-outline-primary, .btn-outline-secondary, .btn-info, .btn-warning, .controls button) {
    color: var(--cta-text);
    background-color: var(--cta-bg);
    border-color: var(--cta-border);
    --bs-btn-disabled-opacity: 1;
}

:root :is(.site-primary-button, .site-contact-button, .landing-contact-button,
    .custom-btn-contattami, .btn-primary, .btn-success, .quiz-grid button,
    .site-secondary-button, .custom-contattami, .btn-secondary,
    .btn-outline-primary, .btn-outline-secondary, .btn-info, .btn-warning, .controls button):is(:hover, :focus) {
    color: var(--cta-hover-text);
    background-color: var(--cta-hover-bg);
    border-color: var(--cta-hover-border);
}

:root :is(.site-primary-button, .site-contact-button, .landing-contact-button,
    .custom-btn-contattami, .btn-primary, .btn-success, .quiz-grid button,
    .site-secondary-button, .custom-contattami, .btn-secondary,
    .btn-outline-primary, .btn-outline-secondary, .btn-info, .btn-warning, .controls button):is(:active, .active) {
    color: var(--cta-active-text);
    background-color: var(--cta-active-bg);
    border-color: var(--cta-active-border);
}

/* Anello a due colori, visibile sia sulle sezioni chiare sia su quelle blu. */
:root :is(.site-primary-button, .site-contact-button, .landing-contact-button,
    .custom-btn-contattami, .btn-primary, .btn-success, .quiz-grid button,
    .site-secondary-button, .custom-contattami, .btn-secondary,
    .btn-outline-primary, .btn-outline-secondary, .btn-info, .btn-warning,
    .controls button, .btn-danger):focus-visible {
    outline: 3px solid var(--cta-focus-color);
    outline-offset: 3px;
    box-shadow: var(--cta-inset-ring, 0 0 0 0 transparent), 0 0 0 3px var(--brand-white, #ffffff);
}

/* Non ridurre l’opacità: anche il testo disabilitato resta leggibile. Solo stile, nessuna modifica agli eventi. */
:root :is(.site-primary-button, .site-contact-button, .landing-contact-button,
    .custom-btn-contattami, .btn-primary, .btn-success, .quiz-grid button,
    .site-secondary-button, .custom-contattami, .btn-secondary,
    .btn-outline-primary, .btn-outline-secondary, .btn-info, .btn-warning,
    .controls button, .btn-danger):is(:disabled, .disabled, [aria-disabled="true"]) {
    color: var(--cta-disabled-text);
    background-color: var(--cta-disabled-bg);
    border-color: var(--cta-disabled-text);
    opacity: 1;
}
