/* ========================================== */
/* INNOVX AFFILIATION - TYPOGRAPHIE UNIFORME */
/* Standardisation des polices et tailles   */
/* ========================================== */

/* Import des polices (si pas deja charge) */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&family=Roboto:wght@300;400;500;600;700&display=swap');

/* ========================================== */
/* VARIABLES CSS AFFILIATION                  */
/* ========================================== */
:root {
    /* Polices standardisees */
    --aff-font-heading: 'Poppins', 'Segoe UI', sans-serif;
    --aff-font-body: 'Roboto', 'Segoe UI', sans-serif;
    --aff-font-mono: 'Roboto Mono', 'Consolas', monospace;

    /* Tailles de titres - UNIFORMES */
    --aff-title-page: 1.75rem;           /* 28px - Titre principal de page */
    --aff-title-section: 1.25rem;        /* 20px - Titre de section */
    --aff-title-card: 1rem;              /* 16px - Titre de carte */
    --aff-title-subsection: 0.875rem;    /* 14px - Sous-titre */

    /* Tailles de texte - UNIFORMES */
    --aff-text-large: 1rem;              /* 16px - Texte principal */
    --aff-text-base: 0.875rem;           /* 14px - Texte normal */
    --aff-text-small: 0.75rem;           /* 12px - Petit texte */
    --aff-text-tiny: 0.625rem;           /* 10px - Tres petit texte (labels) */

    /* Tailles statistiques */
    --aff-stat-large: 2rem;              /* 32px - Grand nombre */
    --aff-stat-medium: 1.5rem;           /* 24px - Nombre moyen */
    --aff-stat-small: 1.125rem;          /* 18px - Petit nombre */

    /* Poids de police */
    --aff-weight-normal: 400;
    --aff-weight-medium: 500;
    --aff-weight-semibold: 600;
    --aff-weight-bold: 700;
    --aff-weight-extrabold: 800;
    --aff-weight-black: 900;

    /* Hauteurs de ligne */
    --aff-leading-tight: 1.25;
    --aff-leading-normal: 1.5;
    --aff-leading-relaxed: 1.75;
}

/* ========================================== */
/* RESPONSIVE - TABLETTE (sm: 640px+)         */
/* ========================================== */
@media (min-width: 640px) {
    :root {
        --aff-title-page: 2rem;              /* 32px */
        --aff-title-section: 1.5rem;         /* 24px */
        --aff-title-card: 1.125rem;          /* 18px */
        --aff-title-subsection: 1rem;        /* 16px */

        --aff-text-large: 1.125rem;          /* 18px */
        --aff-text-base: 1rem;               /* 16px */
        --aff-text-small: 0.875rem;          /* 14px */
        --aff-text-tiny: 0.75rem;            /* 12px */

        --aff-stat-large: 2.5rem;            /* 40px */
        --aff-stat-medium: 1.75rem;          /* 28px */
        --aff-stat-small: 1.25rem;           /* 20px */
    }
}

/* ========================================== */
/* RESPONSIVE - DESKTOP (lg: 1024px+)         */
/* ========================================== */
@media (min-width: 1024px) {
    :root {
        --aff-title-page: 2.25rem;           /* 36px */
        --aff-title-section: 1.75rem;        /* 28px */
        --aff-title-card: 1.25rem;           /* 20px */
        --aff-title-subsection: 1.125rem;    /* 18px */

        --aff-text-large: 1.25rem;           /* 20px */
        --aff-text-base: 1.125rem;           /* 18px */
        --aff-text-small: 1rem;              /* 16px */
        --aff-text-tiny: 0.875rem;           /* 14px */

        --aff-stat-large: 3rem;              /* 48px */
        --aff-stat-medium: 2rem;             /* 32px */
        --aff-stat-small: 1.5rem;            /* 24px */
    }
}

/* ========================================== */
/* CLASSES UTILITAIRES - TITRES               */
/* ========================================== */

/* Titre de page principal */
.aff-page-title {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-title-page) !important;
    font-weight: var(--aff-weight-black) !important;
    line-height: var(--aff-leading-tight) !important;
    letter-spacing: -0.02em;
}

/* Titre de section */
.aff-section-title {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-title-section) !important;
    font-weight: var(--aff-weight-bold) !important;
    line-height: var(--aff-leading-tight) !important;
}

/* Titre de carte */
.aff-card-title {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-title-card) !important;
    font-weight: var(--aff-weight-semibold) !important;
    line-height: var(--aff-leading-normal) !important;
}

/* Sous-titre */
.aff-subtitle {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-title-subsection) !important;
    font-weight: var(--aff-weight-medium) !important;
    line-height: var(--aff-leading-normal) !important;
}

/* ========================================== */
/* CLASSES UTILITAIRES - TEXTE                */
/* ========================================== */

/* Texte large (descriptions principales) */
.aff-text-large {
    font-family: var(--aff-font-body) !important;
    font-size: var(--aff-text-large) !important;
    font-weight: var(--aff-weight-normal) !important;
    line-height: var(--aff-leading-relaxed) !important;
}

/* Texte de base */
.aff-text-base {
    font-family: var(--aff-font-body) !important;
    font-size: var(--aff-text-base) !important;
    font-weight: var(--aff-weight-normal) !important;
    line-height: var(--aff-leading-normal) !important;
}

/* Petit texte */
.aff-text-small {
    font-family: var(--aff-font-body) !important;
    font-size: var(--aff-text-small) !important;
    font-weight: var(--aff-weight-normal) !important;
    line-height: var(--aff-leading-normal) !important;
}

/* Tres petit texte (labels, annotations) */
.aff-text-tiny {
    font-family: var(--aff-font-body) !important;
    font-size: var(--aff-text-tiny) !important;
    font-weight: var(--aff-weight-normal) !important;
    line-height: var(--aff-leading-normal) !important;
}

/* ========================================== */
/* CLASSES UTILITAIRES - STATISTIQUES         */
/* ========================================== */

/* Grande statistique (chiffre principal) */
.aff-stat-large {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-stat-large) !important;
    font-weight: var(--aff-weight-black) !important;
    line-height: var(--aff-leading-tight) !important;
}

/* Statistique moyenne */
.aff-stat-medium {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-stat-medium) !important;
    font-weight: var(--aff-weight-bold) !important;
    line-height: var(--aff-leading-tight) !important;
}

/* Petite statistique */
.aff-stat-small {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-stat-small) !important;
    font-weight: var(--aff-weight-semibold) !important;
    line-height: var(--aff-leading-tight) !important;
}

/* Label de statistique */
.aff-stat-label {
    font-family: var(--aff-font-body) !important;
    font-size: var(--aff-text-tiny) !important;
    font-weight: var(--aff-weight-normal) !important;
    line-height: var(--aff-leading-normal) !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ========================================== */
/* CLASSES UTILITAIRES - BOUTONS              */
/* ========================================== */

/* Bouton principal */
.aff-btn {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-text-base) !important;
    font-weight: var(--aff-weight-semibold) !important;
    line-height: var(--aff-leading-normal) !important;
}

/* Petit bouton */
.aff-btn-small {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-text-small) !important;
    font-weight: var(--aff-weight-semibold) !important;
    line-height: var(--aff-leading-normal) !important;
}

/* ========================================== */
/* CLASSES UTILITAIRES - CODE/MONO            */
/* ========================================== */

/* Texte monospace (liens, codes) */
.aff-mono {
    font-family: var(--aff-font-mono) !important;
    font-size: var(--aff-text-small) !important;
    font-weight: var(--aff-weight-normal) !important;
}

/* Code de parrainage */
.aff-referral-code {
    font-family: var(--aff-font-mono) !important;
    font-size: var(--aff-stat-small) !important;
    font-weight: var(--aff-weight-bold) !important;
    letter-spacing: 0.1em;
}

/* ========================================== */
/* CLASSES UTILITAIRES - POIDS                */
/* ========================================== */

.aff-font-normal { font-weight: var(--aff-weight-normal) !important; }
.aff-font-medium { font-weight: var(--aff-weight-medium) !important; }
.aff-font-semibold { font-weight: var(--aff-weight-semibold) !important; }
.aff-font-bold { font-weight: var(--aff-weight-bold) !important; }
.aff-font-extrabold { font-weight: var(--aff-weight-extrabold) !important; }
.aff-font-black { font-weight: var(--aff-weight-black) !important; }

/* ========================================== */
/* OVERRIDE DES CLASSES TAILWIND EXISTANTES   */
/* (Pour assurer la coherence)                */
/* ========================================== */

/* Application aux pages affiliation uniquement */
.affiliation-page,
.affiliation-container,
.affiliation-content,
[class*="affiliation"] {
    font-family: var(--aff-font-body);
}

/* Titres dans le contexte affiliation */
.affiliation-page h1,
.affiliation-container h1,
[class*="affiliation"] h1 {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-title-page) !important;
    font-weight: var(--aff-weight-black) !important;
}

.affiliation-page h2,
.affiliation-container h2,
[class*="affiliation"] h2 {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-title-section) !important;
    font-weight: var(--aff-weight-bold) !important;
}

.affiliation-page h3,
.affiliation-container h3,
[class*="affiliation"] h3 {
    font-family: var(--aff-font-heading) !important;
    font-size: var(--aff-title-card) !important;
    font-weight: var(--aff-weight-semibold) !important;
}

.affiliation-page p,
.affiliation-container p,
[class*="affiliation"] p {
    font-family: var(--aff-font-body) !important;
    font-size: var(--aff-text-base) !important;
    line-height: var(--aff-leading-relaxed) !important;
}

/* ========================================== */
/* ICONES - TAILLES COHERENTES                */
/* ========================================== */

.aff-icon-large {
    font-size: 1.5rem !important;
}

@media (min-width: 640px) {
    .aff-icon-large {
        font-size: 1.75rem !important;
    }
}

@media (min-width: 1024px) {
    .aff-icon-large {
        font-size: 2rem !important;
    }
}

.aff-icon-medium {
    font-size: 1.25rem !important;
}

@media (min-width: 640px) {
    .aff-icon-medium {
        font-size: 1.5rem !important;
    }
}

.aff-icon-small {
    font-size: 1rem !important;
}

/* ========================================== */
/* ACCESSIBILITY - TAILLE MINIMUM             */
/* ========================================== */

/* Assurer une taille minimum lisible */
.affiliation-page *,
.affiliation-container *,
[class*="affiliation"] * {
    min-font-size: 10px;
}
