/* Raccordement des composants Orbenix aux mises en page et à l'identité du projet. */
html { font-family: 'Public Sans', sans-serif; font-size: 16px; }
body, button, input, select, textarea { font-family: 'Public Sans', sans-serif; }
:root { --ins-theme-card-border-width: 1px; --ins-theme-card-border-color: #e7e9eb; --ins-theme-card-box-shadow: none; }
html .form-control { height: auto; min-height: 0; }
html .form-select { min-height: 0; }
html .btn { min-height: 0; text-decoration: none; }
html .invalid-feedback:not([hidden]) { display: block; }
html [hidden] { display: none !important; }
html .form-check { padding-left: 0; display: grid; grid-template-columns: 1.25em minmax(0,1fr); column-gap: .5em; align-items: start; margin-bottom: 1rem; font-size: .8125rem; }
html .form-check .form-check-input { float: none; margin: .125em 0 0; padding: 0; width: 1.25em; height: 1.25em; }
html .form-check-label { margin: 0; font: inherit; line-height: 1.5; }
html .form-check .invalid-feedback { grid-column: 2; }
html .invalid-feedback { text-align: left; }
html .form-select.is-invalid { background-image: var(--ins-form-select-bg-img), var(--ins-form-select-bg-icon); }
/* Le focus clavier demeure perceptible, y compris sur les contrôles invalides. */
html .form-check-input:focus-visible, html .form-control:focus-visible, html .form-select:focus-visible, html .btn:focus-visible { outline: 3px solid #155ca8; outline-offset: 3px; }
html .alert { display: block; font-size: .8125rem; line-height: 1.5; }
html .alert p { color: inherit; }
html .card { overflow: visible; }
html .card-body { min-width: 0; }
.auth-card.card { padding: 0; }
.auth-card .card-body { padding: 1.5rem; }
.auth-card .btn { margin-top: .75rem; }
.auth-card .primary { width: 100%; }
#signup-submit, #contact-submit { width: 100%; }
#signup-form .form-check { margin-top: 1rem; }
#signup-error, #contact-error { margin: 0 0 1rem; }
.contact-main .form-control, .contact-main .form-select { font-family: inherit; }
.contact-main textarea.form-control { min-height: 10rem; }
.actions-card .card-body > form { margin-top: 1rem; }
/* Paramètres de marque : aucune duplication du composant par projet. */
:root { --orb-color-primary: #167ac0; --orb-color-primary-rgb: 22, 122, 192; --orb-color-primary-hover: #1265a0; --orb-color-on-primary: #fff; }
.orb-public { --orb-color-primary: #ff5a00; --orb-color-primary-rgb: 255, 90, 0; --orb-color-primary-hover: #ee5300; --orb-color-on-primary: #171717; }
html .btn-primary { --ins-btn-focus-shadow-rgb: var(--orb-color-primary-rgb); --ins-btn-bg: var(--orb-color-primary); --ins-btn-border-color: var(--orb-color-primary); --ins-btn-color: var(--orb-color-on-primary); --ins-btn-hover-bg: var(--orb-color-primary-hover); --ins-btn-hover-border-color: var(--orb-color-primary-hover); --ins-btn-hover-color: var(--orb-color-on-primary); --ins-btn-active-bg: var(--orb-color-primary-hover); --ins-btn-active-border-color: var(--orb-color-primary-hover); --ins-btn-active-color: var(--orb-color-on-primary); --ins-btn-disabled-color: var(--orb-color-on-primary); --ins-btn-disabled-bg: var(--orb-color-primary); --ins-btn-disabled-border-color: var(--orb-color-primary); }
html .form-check-input:checked { background-color: var(--orb-color-primary); border-color: var(--orb-color-primary); }

html .card > .card-body { width: 100%; }
html .signup-success.alert { margin-bottom: 0; }

/* Contraste des petits textes : mêmes composants, couleurs de texte accessibles. */
:root { --ins-form-invalid-color: #b42318; }
html .text-bg-warning { color: #222 !important; }

html .text-bg-success { color: #102a43 !important; }
html .btn-danger { --ins-btn-bg: #b42318; --ins-btn-border-color: #b42318; --ins-btn-hover-bg: #912018; --ins-btn-hover-border-color: #912018; --ins-btn-active-bg: #912018; --ins-btn-active-border-color: #912018; }
html .alert-success { --ins-alert-color: #1f4f78; --ins-alert-link-color: #1f4f78; }
html .alert-info { --ins-alert-color: #0d5557; --ins-alert-link-color: #0d5557; }
html .alert-warning { --ins-alert-color: #664900; --ins-alert-link-color: #664900; }
html .alert-danger { --ins-alert-color: #7a221b; --ins-alert-link-color: #7a221b; }

/* Identité publique issue du logo : orange principal, gris anthracite secondaire. */
html .btn-secondary { --ins-btn-focus-shadow-rgb: 51, 51, 51; --ins-btn-bg: #333; --ins-btn-border-color: #333; --ins-btn-color: #fff; --ins-btn-hover-bg: #4a4a4a; --ins-btn-hover-border-color: #4a4a4a; --ins-btn-hover-color: #fff; --ins-btn-active-bg: #4a4a4a; --ins-btn-active-border-color: #4a4a4a; --ins-btn-active-color: #fff; --ins-btn-disabled-bg: #333; --ins-btn-disabled-border-color: #333; --ins-btn-disabled-color: #fff; }
html .orb-public .btn:focus-visible { outline-color: #333; }
html .orb-public .hero-panel .btn:focus-visible { outline-color: #fff; }

/* Action de la landing : contour blanc conservé sur la photographie. */
html .orb-public .signup-cta { min-height: 3.5rem; --ins-btn-font-size: 1rem; --ins-btn-padding-y: .875rem; --ins-btn-padding-x: 1.25rem; }
html .orb-public .hero-cta { --ins-btn-color: #fff; --ins-btn-bg: transparent; --ins-btn-border-color: #fff; --ins-btn-hover-bg: #fff; --ins-btn-hover-border-color: #fff; --ins-btn-hover-color: #333; --ins-btn-active-bg: #fff; --ins-btn-active-border-color: #fff; --ins-btn-active-color: #333; --ins-btn-focus-shadow-rgb: 255, 255, 255; }

/* Même couleur secondaire dans le site, les accès et la gestion. */
:root { --ins-secondary: #333; --ins-secondary-rgb: 51, 51, 51; --ins-secondary-text-emphasis: #4a4a4a; }
