/**
 * FRNIX Manager - Styles Front
 * 
 * @package FRNIX_Manager
 * @since 2.0.0
 */

/* =============================================================================
   ANTI-ELEMENTOR : Protection globale des composants FRNIX
   
   Elementor injecte des couleurs (rose/violet/rouge) via des sélecteurs comme :
   .elementor a { color: var(--e-global-color-accent) }
   .elementor-widget a:hover { color: ... }
   
   Ce bloc NEUTRALISE toutes ces interférences sur les éléments FRNIX.
   Utilise des sélecteurs haute-spécificité + !important.
   ============================================================================= */

/* --- RESET GLOBAL : tous les liens dans un conteneur FRNIX --- */
[class*="frnix-"] a,
[class*="frnix-"] a:link,
[class*="frnix-"] a:hover,
[class*="frnix-"] a:focus,
[class*="frnix-"] a:active,
[class*="frnix-"] a:visited,
.elementor [class*="frnix-"] a,
.elementor [class*="frnix-"] a:hover,
.elementor [class*="frnix-"] a:visited,
.elementor-widget [class*="frnix-"] a,
.elementor-widget [class*="frnix-"] a:hover,
.elementor-widget [class*="frnix-"] a:visited,
.elementor-widget-wrap [class*="frnix-"] a,
.elementor-widget-wrap [class*="frnix-"] a:hover,
.elementor-element [class*="frnix-"] a,
.elementor-element [class*="frnix-"] a:hover {
    text-decoration: none !important;
    outline: none !important;
    box-shadow: none !important;
}

/* --- BOUTONS PRIMAIRES (bleu FRNIX #0099FF) --- */
.frnix-btn-primary,
.frnix-btn-primary:hover,
.frnix-btn-primary:focus,
.frnix-btn-primary:active,
.frnix-btn-primary:visited,
a.frnix-btn-primary,
a.frnix-btn-primary:hover,
a.frnix-btn-primary:visited,
button.frnix-btn-primary,
button.frnix-btn-primary:hover,
.elementor a.frnix-btn-primary,
.elementor a.frnix-btn-primary:hover,
.elementor a.frnix-btn-primary:visited,
.elementor button.frnix-btn-primary,
.elementor-widget a.frnix-btn-primary,
.elementor-widget a.frnix-btn-primary:hover {
    background-color: #0099FF !important;
    color: #fff !important;
    border-color: #0099FF !important;
}
.frnix-btn-primary:hover,
a.frnix-btn-primary:hover,
button.frnix-btn-primary:hover {
    background-color: #0077CC !important;
    border-color: #0077CC !important;
}

/* --- BOUTONS OUTLINE --- */
.frnix-btn-outline,
.frnix-btn-outline:hover,
.frnix-btn-outline:focus,
.frnix-btn-outline:visited,
a.frnix-btn-outline,
a.frnix-btn-outline:hover,
a.frnix-btn-outline:visited,
button.frnix-btn-outline,
button.frnix-btn-outline:hover,
.elementor a.frnix-btn-outline,
.elementor a.frnix-btn-outline:hover,
.elementor a.frnix-btn-outline:visited,
.elementor-widget a.frnix-btn-outline,
.elementor-widget a.frnix-btn-outline:hover {
    color: #64748b !important;
    background: #fff !important;
    border-color: #e2e8f0 !important;
}
.frnix-btn-outline:hover,
a.frnix-btn-outline:hover,
button.frnix-btn-outline:hover {
    color: #1E3F70 !important;
    border-color: #0099FF !important;
}

/* --- BOUTONS SECONDAIRES (bleu foncé FRNIX #1E3F70) --- */
.frnix-btn-secondary,
a.frnix-btn-secondary,
button.frnix-btn-secondary,
.elementor a.frnix-btn-secondary,
.elementor-widget a.frnix-btn-secondary {
    background-color: #1E3F70 !important;
    color: #fff !important;
}

/* --- BOUTONS DANGER (rouge FRNIX #FF3333) --- */
.frnix-btn-danger,
a.frnix-btn-danger,
button.frnix-btn-danger,
.elementor a.frnix-btn-danger,
.elementor-widget a.frnix-btn-danger {
    background-color: #FF3333 !important;
    color: #fff !important;
}

/* --- BOUTONS SUCCES (vert FRNIX #64CA8C) --- */
.frnix-btn-success,
a.frnix-btn-success,
button.frnix-btn-success,
.elementor a.frnix-btn-success,
.elementor-widget a.frnix-btn-success {
    background-color: #64CA8C !important;
    color: #fff !important;
}

/* --- BADGES : jamais de couleur Elementor --- */
[class*="frnix-mini-badge"],
[class*="frnix-badge"],
[class*="frnix-banner-badge"],
.elementor [class*="frnix-mini-badge"],
.elementor [class*="frnix-badge"],
.elementor [class*="frnix-banner-badge"] {
    text-decoration: none !important;
}

/* --- DROPDOWN MENUS : protection complète --- */
[class*="frnix-"] .frnix-banner-dropdown-menu a,
[class*="frnix-"] .frnix-banner-dropdown-menu a:link,
[class*="frnix-"] .frnix-banner-dropdown-menu a:hover,
[class*="frnix-"] .frnix-banner-dropdown-menu a:focus,
[class*="frnix-"] .frnix-banner-dropdown-menu a:active,
[class*="frnix-"] .frnix-banner-dropdown-menu a:visited,
.elementor .frnix-banner-dropdown-menu a,
.elementor .frnix-banner-dropdown-menu a:hover,
.elementor .frnix-banner-dropdown-menu a:visited,
.elementor-widget .frnix-banner-dropdown-menu a,
.elementor-widget .frnix-banner-dropdown-menu a:hover {
    color: #1e293b !important;
    background: #fff !important;
    text-decoration: none !important;
}
[class*="frnix-"] .frnix-banner-dropdown-menu a:hover,
.elementor .frnix-banner-dropdown-menu a:hover {
    background: #f1f5f9 !important;
    color: #1e293b !important;
}
[class*="frnix-"] .frnix-banner-dropdown-menu a.active,
[class*="frnix-"] .frnix-banner-dropdown-menu a.active:hover,
[class*="frnix-"] .frnix-banner-dropdown-menu a.active:visited,
.elementor .frnix-banner-dropdown-menu a.active,
.elementor .frnix-banner-dropdown-menu a.active:hover {
    color: #1E3F70 !important;
    background: #EBF5FF !important;
}
[class*="frnix-"] .frnix-banner-dropdown-menu a i,
.elementor .frnix-banner-dropdown-menu a i {
    color: #64748b !important;
}
[class*="frnix-"] .frnix-banner-dropdown-menu a.active i,
.elementor .frnix-banner-dropdown-menu a.active i {
    color: #0099FF !important;
}

/* --- LIENS TEXTE dans conteneurs FRNIX (couleur bleu accent) --- */
.frnix-dashboard a:not([class*="frnix-btn"]),
.frnix-public-page a:not([class*="frnix-btn"]),
.elementor .frnix-dashboard a:not([class*="frnix-btn"]),
.elementor .frnix-public-page a:not([class*="frnix-btn"]) {
    color: #0099FF !important;
}
.frnix-dashboard a:not([class*="frnix-btn"]):hover,
.frnix-public-page a:not([class*="frnix-btn"]):hover,
.elementor .frnix-dashboard a:not([class*="frnix-btn"]):hover,
.elementor .frnix-public-page a:not([class*="frnix-btn"]):hover {
    color: #0077CC !important;
}

/* --- CONTACT CARDS : liens noms --- */
.frnix-contact-name,
a.frnix-contact-name,
a.frnix-contact-name:hover,
a.frnix-contact-name:visited,
.elementor a.frnix-contact-name,
.elementor a.frnix-contact-name:hover {
    color: #1E3F70 !important;
}
a.frnix-contact-name:hover,
.elementor a.frnix-contact-name:hover {
    color: #0099FF !important;
}

/* =============================================================================
   BADGES ET LABELS
   ============================================================================= */

.frnix-category-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}

.frnix-category-badge.actifs {
    background: #c6f6d5;
    color: #276749;
}

.frnix-category-badge.partenaires {
    background: #bee3f8;
    color: #2b6cb0;
}

.frnix-category-badge.individuels {
    background: #e9d8fd;
    color: #6b46c1;
}

/* =============================================================================
   LISTES DE MEMBRES
   ============================================================================= */

.frnix-members-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
}

.frnix-member-card {
    background: white;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    padding: 20px;
    transition: box-shadow 0.2s;
}

.frnix-member-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}

.frnix-member-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
}

.frnix-member-name {
    font-size: 16px;
    font-weight: 600;
    color: #1a365d;
    margin: 10px 0 5px;
}

.frnix-member-org {
    font-size: 14px;
    color: #718096;
}

/* =============================================================================
   ORGANISATIONS
   ============================================================================= */

.frnix-org-card {
    background: white;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    overflow: hidden;
}

.frnix-org-header {
    padding: 20px;
    border-bottom: 1px solid #e2e8f0;
}

.frnix-org-logo {
    max-width: 120px;
    max-height: 60px;
}

.frnix-org-name {
    font-size: 18px;
    font-weight: 600;
    color: #1a365d;
    margin: 10px 0;
}

.frnix-org-type {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 600;
}

.frnix-org-type.adherent {
    background: #c6f6d5;
    color: #276749;
}

.frnix-org-type.partenaire {
    background: #bee3f8;
    color: #2b6cb0;
}

.frnix-org-type.sponsor {
    background: #feebc8;
    color: #c05621;
}

.frnix-org-body {
    padding: 20px;
}

.frnix-org-description {
    color: #4a5568;
    line-height: 1.6;
}
