/* ============================================
   COMITARI - ACCESSIBILITÉ & CONTRASTE
   WCAG 2.1 AAA Compliant
   ============================================ */

/* ===== CORRECTIONS DE CONTRASTE ===== */

/* Badge vert - Contraste amélioré et texte blanc forcé */
.badge-green,
.badge.badge-success,
.badge {
    background: #2D7A47 !important;
    /* Vert plus foncé */
    color: #FFFFFF !important;
    /* BLANC FORCÉ */
    font-weight: 700 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    /* Lisibilité accrue */
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* Règles de couleur spécifiques supprimées pour éviter les conflits */
/* Les couleurs originales du design sont restaurées */

/* Liens: laisser le CSS principal gérer les couleurs selon le contexte */

a:hover {
    color: #133f65;
    text-decoration: underline;
}

/* Boutons verts - Contraste parfait */
.btn-primary,
.btn-success {
    background: #2D7A47 !important;
    color: #FFFFFF !important;
    border: 2px solid #2D7A47;
    font-weight: 600;
}

.btn-primary:hover,
.btn-success:hover {
    background: #1F5A35 !important;
    border-color: #1F5A35;
}

/* Bouton secondaire - Contraste inversé */
.btn-secondary {
    background: #FFFFFF !important;
    color: #1A5288 !important;
    border: 2px solid #1A5288;
    font-weight: 600;
}

.btn-secondary:hover {
    background: #1A5288 !important;
    color: #FFFFFF !important;
}

/* Icônes vertes - Contraste amélioré */
.guarantee-icon.green {
    background: linear-gradient(135deg, rgba(31, 90, 53, 0.15) 0%, rgba(45, 122, 71, 0.25) 100%);
    color: #1F5A35 !important;
    border: 2px solid #2D7A47;
}

/* Texte sur fond vert - Toujours blanc */
.bg-green,
.hero-green,
.section-green {
    background: #2D7A47 !important;
    color: #FFFFFF !important;
}

.bg-green *,
.hero-green *,
.section-green * {
    color: #FFFFFF !important;
}

/* ===== FOCUS VISIBLE (ACCESSIBILITÉ CLAVIER) ===== */

/* Focus outline pour tous les éléments interactifs */
/* Focus standard du navigateur, pas d'outline forcé */
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus,
.nav-link:focus,
.btn:focus {
    /* outline supprimé à la demande de l'utilisateur */
    outline: none !important;
    box-shadow: none !important;
}

/* Focus visible uniquement au clavier si nécessaire, mais discret */
a:focus-visible,
button:focus-visible {
    outline: 2px solid var(--primary-blue);
    outline-offset: 2px;
}

/* ===== TEXTE LISIBLE ===== */

/* Taille minimale de texte */
body {
    font-size: 16px;
    /* Jamais moins de 16px */
    line-height: 1.6;
    /* Espacement pour lisibilité */
}

/* Règles de texte globales supprimées pour respecter le design original */

/* ===== LIENS ACCESSIBLES ===== */

/* Liens toujours soulignés au hover */
a:hover {
    text-decoration: underline;
    text-decoration-thickness: 2px;
}

/* Liens dans le texte - Toujours visibles */
p a,
li a {
    color: #1A5288;
    text-decoration: underline;
    text-decoration-color: rgba(26, 82, 136, 0.4);
}

p a:hover,
li a:hover {
    text-decoration-color: #1A5288;
    text-decoration-thickness: 2px;
}

/* ===== CONTRASTE IMAGES ===== */

/* Overlay sur images pour lisibilité du texte */
.hero-image-overlay {
    background: linear-gradient(135deg,
            rgba(15, 23, 42, 0.92) 0%,
            rgba(26, 82, 136, 0.88) 100%) !important;
}

/* Texte sur images - Toujours blanc avec ombre */
.hero h1,
.hero p,
.hero .btn {
    color: #FFFFFF !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

/* ===== ÉTATS INTERACTIFS VISIBLES ===== */

/* Hover - Changement visible */
.btn:hover,
.nav-link:hover,
.card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
    transition: all 0.2s ease;
}

/* Active - Feedback visuel */
.btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Disabled - Clairement visible */
.btn:disabled,
.btn[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
    background: #94A3B8 !important;
    color: #FFFFFF !important;
}

/* ===== FORMULAIRES ACCESSIBLES ===== */

/* Labels toujours visibles */
label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    color: #1E293B;
}

/* Inputs avec contraste */
input,
textarea,
select {
    border: 2px solid #CBD5E1;
    background: #FFFFFF;
    color: #1E293B;
    font-size: 1rem;
}

input:focus,
textarea:focus,
select:focus {
    border-color: #1A5288;
    background: #FFFFFF;
}

/* Placeholder lisible */
::placeholder {
    color: #64748B;
    opacity: 1;
}

/* Messages d'erreur - Rouge accessible */
.error-message {
    color: #B91C1C !important;
    /* Rouge foncé - contraste 7:1 */
    font-weight: 600;
}

/* Messages de succès - Vert accessible */
.success-message {
    color: #1F5A35 !important;
    font-weight: 600;
}

/* ===== NAVIGATION ACCESSIBLE ===== */

/* Menu - Contraste parfait */
.nav-link {
    color: #1E293B !important;
    font-weight: 500;
}

.nav-link:hover,
.nav-link.active {
    color: #1A5288 !important;
    background: rgba(26, 82, 136, 0.1);
}

/* Dropdown - Lisible */
.dropdown-menu {
    background: #FFFFFF;
    border: 2px solid #E2E8F0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.dropdown-menu a {
    color: #1E293B !important;
    padding: 0.75rem 1rem;
}

.dropdown-menu a:hover {
    background: #F1F5F9;
    color: #1A5288 !important;
}

/* ===== SKIP LINKS (ACCESSIBILITÉ) ===== */

.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: #1A5288;
    color: #FFFFFF;
    padding: 0.75rem 1.5rem;
    text-decoration: none;
    font-weight: 600;
    z-index: 10000;
}

.skip-link:focus {
    top: 0;
}

/* ===== DARK MODE (OPTIONNEL) ===== */

@media (prefers-color-scheme: dark) {

    /* Inverser les contrastes pour dark mode */
    body {
        background: #0F172A;
        color: #F1F5F9;
    }

    .card,
    .section {
        background: #1E293B;
        color: #F1F5F9;
    }

    .text-muted {
        color: #94A3B8 !important;
    }
}

/* ===== REDUCED MOTION (ACCESSIBILITÉ) ===== */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ===== HIGH CONTRAST MODE ===== */

@media (prefers-contrast: high) {

    /* Augmenter tous les contrastes */
    .badge-green {
        background: #000000 !important;
        color: #FFFFFF !important;
        border: 3px solid #FFFFFF;
    }

    .btn {
        border-width: 3px !important;
    }

    a {
        text-decoration: underline !important;
        text-decoration-thickness: 2px !important;
    }
}