/*
Theme Name: France-Afrique MÉDIA
Theme URI: https://france-afrique-media.fr
Description: Thème enfant Kadence pour France-Afrique MÉDIA. DA moderne avec arrondis généreux, navbar dark pill + grille YouTube.
Author: LUMINA Creative Group
Author URI: https://lumina-cg.com
Template: kadence
Version: 3.8.0
License: GNU General Public License v2 or later
Text Domain: fa-media
*/

:root {
    --fa-blue: #1E2B5A;
    --fa-red: #E63946;
    --fa-red-hover: #C92E3C;
    --fa-dark: #0A0A0A;
    --fa-ink: #0A0A0A;
    --fa-white: #FFFFFF;
    --fa-cream: #FAFAFA;
    --fa-gray-light: #F5F5F5;
    --fa-gray-medium: #6B7280;
    --fa-blue-light: #C5CFE3;
    --fa-pink-pale: #F2A6A1;
    --fa-border: #E8E8E8;
    --fa-text-muted: rgba(15, 31, 47, 0.65);
    --fa-font: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;

    /* ARRONDIS MODERNES */
    --fa-r-sm: 8px;
    --fa-r-md: 12px;
    --fa-r-lg: 16px;
    --fa-r-xl: 24px;
    --fa-r-pill: 999px;

    --fa-shadow-sm: 0 2px 8px rgba(15, 31, 47, 0.06);
    --fa-shadow-md: 0 8px 24px rgba(15, 31, 47, 0.08);
    --fa-shadow-lg: 0 24px 48px rgba(0, 0, 0, 0.25);
    --fa-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* TYPO GLOBALE */
body, .single-content, .entry-content {
    font-family: var(--fa-font) !important;
    color: var(--fa-ink);
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
    font-family: var(--fa-font) !important;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--fa-ink);
}
a { transition: color 0.2s var(--fa-ease); }

/* HEADER DARK NAVBAR PILL */
body.fa-custom-header .site-header-wrap,
body.fa-custom-header #masthead,
body.fa-custom-header .site-header {
    display: none !important;
}

.fa-site-header {
    background: var(--fa-dark);
    padding: 16px 32px;
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    font-family: var(--fa-font);
}
.fa-site-header__inner {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.fa-site-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none !important;
    color: #fff !important;
    transition: transform 0.3s var(--fa-ease);
    cursor: pointer;
}
.fa-site-logo:hover { transform: scale(1.06); }
.fa-site-logo img { max-height: 50px; width: auto; display: block; border-radius: var(--fa-r-sm); }
.fa-site-logo__default {
    width: 48px !important;
    height: 48px !important;
    object-fit: contain !important;
    background: #fff;
    padding: 4px;
    border-radius: var(--fa-r-md) !important;
}
.fa-site-logo__mark {
    width: 40px;
    height: 40px;
    background: var(--fa-red);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--fa-r-md);
    font-weight: 800;
    font-size: 16px;
    color: #fff;
    letter-spacing: -0.02em;
}
.fa-site-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.fa-site-logo__main { font-size: 16px; font-weight: 800; letter-spacing: -0.01em; color: #fff; }
.fa-site-logo__main span { color: var(--fa-red); }
.fa-site-logo__sub {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.25em;
    color: rgba(255, 255, 255, 0.4);
    
    margin-top: 4px;
}

.fa-site-nav {
    display: flex;
    gap: 2px;
    background: rgba(255, 255, 255, 0.06);
    padding: 4px;
    border-radius: var(--fa-r-pill);
    list-style: none;
    margin: 0;
}
.fa-site-nav__item { position: relative; list-style: none; }
.fa-site-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    color: rgba(255, 255, 255, 0.75) !important;
    text-decoration: none !important;
    font-size: 14px;
    font-weight: 600;
    border-radius: var(--fa-r-pill);
    transition: all 0.2s var(--fa-ease);
    background: transparent;
    border: none;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
}
.fa-site-nav__link:hover { color: #fff !important; }
.fa-site-nav__link.is-active {
    background: var(--fa-red);
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(230, 57, 70, 0.3);
}
.fa-site-nav__caret { transition: transform 0.2s; }
.fa-site-nav__item--has-menu:hover .fa-site-nav__caret { transform: rotate(180deg); }

/* MEGA MENU - arrondi 20px */
.fa-mega-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(-8px);
    margin-top: 12px;
    width: 920px;
    max-width: 95vw;
    background: #fff;
    border-radius: 20px;
    box-shadow: var(--fa-shadow-lg);
    padding: 28px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.25s var(--fa-ease);
    z-index: 50;
}
.fa-site-nav__item--has-menu:hover .fa-mega-menu,
.fa-mega-menu:hover {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}
.fa-mega-menu__header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--fa-border);
}
.fa-mega-menu__title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    
    color: var(--fa-red);
}
.fa-mega-menu__see-all {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    
    color: var(--fa-gray-medium);
    text-decoration: none;
}
.fa-mega-menu__see-all:hover { color: var(--fa-red); }
.fa-mega-menu__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.fa-mega-menu__card {
    text-decoration: none;
    color: var(--fa-ink);
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px;
    border-radius: var(--fa-r-md);
    transition: all 0.2s;
}
.fa-mega-menu__card:hover { background: var(--fa-cream); }
.fa-mega-menu__image {
    aspect-ratio: 16 / 10;
    border-radius: var(--fa-r-md);
    overflow: hidden;
    background: #FAFAFA;
}
.fa-mega-menu__image img { width: 100%; height: 100%; object-fit: cover; }
.fa-mega-menu__kicker {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
    
    color: var(--fa-red);
}
.fa-mega-menu__card-title { font-size: 14px; font-weight: 700; line-height: 1.35; color: var(--fa-ink); margin: 0; }
.fa-mega-menu__card:hover .fa-mega-menu__card-title { color: var(--fa-blue); }
.fa-mega-menu__meta { font-size: 11px; color: var(--fa-gray-medium); font-weight: 500; }

.fa-menu-toggle {
    display: none;
    background: rgba(255, 255, 255, 0.08);
    border: none;
    color: #fff;
    padding: 10px 14px;
    border-radius: var(--fa-r-md);
    cursor: pointer;
}

@media (max-width: 1024px) {
    .fa-menu-toggle { display: inline-flex; align-items: center; gap: 8px; }
    .fa-site-nav {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        margin-top: 8px;
        background: var(--fa-dark);
        padding: 12px;
        border-radius: 0 0 var(--fa-r-lg) var(--fa-r-lg);
        flex-direction: column;
        width: 100%;
        display: none;
        z-index: 99;
    }
    .fa-site-nav.is-open { display: flex; }
    .fa-site-nav__link { width: 100%; justify-content: flex-start; border-radius: var(--fa-r-md); }
    .fa-mega-menu {
        position: static;
        transform: none;
        width: 100%;
        opacity: 1;
        visibility: visible;
        display: none;
        box-shadow: none;
        padding: 16px 0;
        border-radius: var(--fa-r-md);
    }
    .fa-mega-menu__grid { grid-template-columns: 1fr; }
    .fa-site-nav__item--has-menu.is-open .fa-mega-menu { display: block; }
}
@media (max-width: 640px) {
    .fa-site-logo__sub { display: none; }
    .fa-site-logo__main { font-size: 14px; }
}

/* TYPO ÉDITORIALE */
.fa-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    
    color: var(--fa-red);
    margin-bottom: 16px;
}
.fa-kicker::before { content: ''; width: 24px; height: 1px; background: var(--fa-red); }

.fa-section-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding-bottom: 24px;
    border-bottom: 2px solid var(--fa-ink);
    margin-bottom: 40px;
}
.fa-section-header__left h2 { font-size: clamp(24px, 3vw, 36px); font-weight: 800; letter-spacing: -0.02em; margin: 0; }
.fa-section-header__right { font-size: 13px; font-weight: 600; color: var(--fa-gray-medium); }

/* MOSAÏQUE - tout arrondi */
.fa-une__grid { display: grid; grid-template-columns: 2fr 1fr; gap: 32px; }
@media (max-width: 1024px) { .fa-une__grid { grid-template-columns: 1fr; } }

.fa-une__hero { text-decoration: none !important; color: inherit !important; display: block; }
.fa-une__hero-image {
    aspect-ratio: 16 / 10;
    width: 100%;
    overflow: hidden;
    background: #FAFAFA;
    border-radius: var(--fa-r-lg);
}
.fa-une__hero-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--fa-ease); display: block; }
.fa-une__hero:hover .fa-une__hero-image img { transform: scale(1.03); }
.fa-une__hero-body { padding: 28px 0 0; }
.fa-une__hero-kicker {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    
    color: var(--fa-red);
    margin-bottom: 16px;
    padding: 6px 14px;
    background: rgba(230, 57, 70, 0.08);
    border-radius: var(--fa-r-pill);
}
.fa-une__hero-title {
    font-size: clamp(30px, 4.5vw, 56px) !important;
    font-weight: 800 !important;
    line-height: 1.05 !important;
    letter-spacing: -0.025em !important;
    color: var(--fa-ink) !important;
    margin: 0 0 16px 0 !important;
    transition: color 0.2s;
}
.fa-une__hero:hover .fa-une__hero-title { color: var(--fa-blue) !important; }
.fa-une__hero-lede { font-size: 18px; line-height: 1.55; color: var(--fa-text-muted); margin: 0 0 20px 0; max-width: 680px; }
.fa-une__hero-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 12px;
    color: var(--fa-gray-medium);
    font-weight: 500;
    letter-spacing: 0.05em;
    flex-wrap: wrap;
}
.fa-une__hero-meta strong { color: var(--fa-ink); font-weight: 700; }

.fa-une__side { display: flex; flex-direction: column; gap: 24px; }
.fa-une__side-item {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--fa-border);
    text-decoration: none !important;
    color: inherit !important;
}
.fa-une__side-item:last-child { border-bottom: none; padding-bottom: 0; }
.fa-une__side-image {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #FAFAFA;
    border-radius: var(--fa-r-md);
}
.fa-une__side-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.fa-une__side-item:hover .fa-une__side-image img { transform: scale(1.04); }
.fa-une__side-kicker { font-size: 12px; font-weight: 700; color: var(--fa-red); }
.fa-une__side-title {
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
    color: var(--fa-ink) !important;
    margin: 0 !important;
    transition: color 0.2s;
}
.fa-une__side-item:hover .fa-une__side-title { color: var(--fa-blue) !important; }
.fa-une__side-meta { font-size: 11px; color: var(--fa-gray-medium); font-weight: 500; }

/* GRID classique */
.fa-grid { display: grid; gap: 32px; }
.fa-grid--4 { grid-template-columns: repeat(4, 1fr); }
.fa-grid--3 { grid-template-columns: repeat(3, 1fr); }
.fa-grid--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 1024px) { .fa-grid--4, .fa-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .fa-grid--4, .fa-grid--3, .fa-grid--2 { grid-template-columns: 1fr; } }

/* CARTE ARTICLE - arrondies, hover lift */
.fa-article-card {
    display: flex;
    flex-direction: column;
    text-decoration: none !important;
    color: inherit !important;
    background: #fff;
    border-radius: var(--fa-r-lg);
    overflow: hidden;
    border: 1px solid var(--fa-border);
    transition: all 0.3s var(--fa-ease);
}
.fa-article-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--fa-shadow-md);
    border-color: transparent;
}
.fa-article-card__image {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #FAFAFA;
}
.fa-article-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.fa-article-card:hover .fa-article-card__image img { transform: scale(1.05); }
.fa-article-card__kicker {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    
    color: var(--fa-red);
    margin: 20px 24px 10px;
    padding: 4px 12px;
    background: rgba(230, 57, 70, 0.08);
    border-radius: var(--fa-r-pill);
    align-self: flex-start;
}
.fa-article-card__title {
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
    color: var(--fa-ink) !important;
    margin: 0 24px 12px !important;
    transition: color 0.2s;
}
.fa-article-card:hover .fa-article-card__title { color: var(--fa-blue) !important; }
.fa-article-card__meta {
    margin: auto 24px 24px;
    font-size: 11px;
    color: var(--fa-gray-medium);
    font-weight: 500;
}

/* INTERVIEW CARD - arrondies */
.fa-interview-card {
    text-decoration: none !important;
    color: inherit !important;
    background: #fff;
    padding: 24px;
    border-radius: 16px;
    border: 1px solid #EEEEEE;
    transition: all 0.25s var(--fa-ease);
    display: flex;
    flex-direction: column;
    gap: 16px;
    height: 100%;
}
.fa-interview-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
    border-color: #DDDDDD;
}
/* On retire le hover dark qui changeait tout en blanc */
.fa-interview-card:hover .fa-interview-card__name,
.fa-interview-card:hover .fa-interview-card__role,
.fa-interview-card:hover .fa-interview-card__quote { color: inherit !important; }
.fa-interview-card__num {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 11px;
    font-weight: 700;
    color: #6B7280;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}
.fa-interview-card__image {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #FAFAFA;
    border-radius: 12px;
    position: relative;
}
.fa-interview-card__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transition: transform 0.5s; }
.fa-interview-card:hover .fa-interview-card__image img { transform: scale(1.04); }
.fa-interview-card__name {
    font-size: 18px !important;
    font-weight: 800 !important;
    letter-spacing: -0.015em !important;
    color: #0A0A0A !important;
    margin: 0 0 4px 0 !important;
    line-height: 1.2 !important;
}
.fa-interview-card__role {
    font-size: 13px;
    color: #6B7280;
    font-weight: 500;
    letter-spacing: 0;
    margin: 0 0 8px 0;
    line-height: 1.4;
    text-transform: none;
}
.fa-interview-card__quote {
    font-size: 15px;
    line-height: 1.55;
    font-weight: 400;
    font-style: normal;
    color: #4a4a4a;
    position: relative;
    padding-left: 14px;
    margin: 0;
    border-left: 2px solid #E63946;
}
.fa-interview-card__quote::before {
    content: none;
}

/* PERSONNALITÉ HERO - tout arrondi */
.fa-perso-section {
    padding: 80px 0;
    background: var(--fa-dark);
    color: #fff;
    position: relative;
    overflow: hidden;
}
.fa-perso-section::before {
    content: 'PORTRAIT';
    position: absolute;
    top: 60px;
    left: -20px;
    font-size: clamp(100px, 18vw, 280px);
    font-weight: 800;
    color: rgba(255, 255, 255, 0.03);
    letter-spacing: -0.03em;
    line-height: 1;
    pointer-events: none;
}
.fa-perso-hero {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 64px;
    align-items: center;
    z-index: 1;
    margin-bottom: 80px;
}
@media (max-width: 900px) {
    .fa-perso-hero { grid-template-columns: 1fr; gap: 32px; margin-bottom: 48px; }
}
.fa-perso-hero__image {
    aspect-ratio: 3 / 4;
    max-width: 420px;
    width: 100%;
    background: #FAFAFA;
    border-radius: var(--fa-r-xl);
    overflow: hidden;
    box-shadow: var(--fa-shadow-lg);
}
.fa-perso-hero__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fa-perso-hero__kicker {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.3em;
    
    color: var(--fa-red);
    margin-bottom: 24px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 8px 16px;
    background: rgba(230, 57, 70, 0.1);
    border-radius: var(--fa-r-pill);
}
.fa-perso-hero__name {
    font-size: clamp(36px, 5vw, 64px) !important;
    font-weight: 800 !important;
    color: #fff !important;
    line-height: 1 !important;
    letter-spacing: -0.025em !important;
    margin: 0 0 16px 0 !important;
}
.fa-perso-hero__role {
    font-size: 16px;
    color: rgba(255, 255, 255, 0.6);
    font-weight: 500;
    letter-spacing: 0.05em;
    margin: 0 0 32px 0;
    
}
.fa-perso-hero__quote {
    font-size: clamp(20px, 2.5vw, 26px);
    line-height: 1.4;
    font-weight: 300;
    color: rgba(255, 255, 255, 0.95);
    margin: 0 0 32px 0;
    font-style: italic;
    border-left: 3px solid var(--fa-red);
    padding-left: 20px;
    max-width: 580px;
}

/* GRILLE YOUTUBE - tout arrondi */
.fa-videos { position: relative; z-index: 1; }
.fa-videos__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 32px;
    flex-wrap: wrap;
    gap: 16px;
}
.fa-videos__title {
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.015em;
    color: #fff;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin: 0;
}
.fa-videos__title-icon {
    width: 36px;
    height: 36px;
    background: var(--fa-red);
    border-radius: var(--fa-r-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}
.fa-videos__link {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    
    color: #fff !important;
    text-decoration: none !important;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: var(--fa-r-pill);
    transition: all 0.2s;
}
.fa-videos__link:hover { background: var(--fa-red); gap: 12px; }
.fa-videos__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
@media (max-width: 1024px) { .fa-videos__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .fa-videos__grid { grid-template-columns: 1fr; } }

.fa-yt-card {
    text-decoration: none !important;
    color: #fff !important;
    position: relative;
    display: block;
    border-radius: var(--fa-r-md);
    transition: transform 0.3s;
}
.fa-yt-card:hover { transform: translateY(-4px); }
.fa-yt-card__thumb {
    aspect-ratio: 16 / 9;
    position: relative;
    overflow: hidden;
    background: #000;
    border-radius: var(--fa-r-md);
}
.fa-yt-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; display: block; }
.fa-yt-card:hover .fa-yt-card__thumb img { transform: scale(1.05); }
.fa-yt-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(0, 0, 0, 0.8) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.3s;
}
.fa-yt-card:hover .fa-yt-card__overlay { background: linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.7) 100%); }
.fa-yt-card__play {
    width: 56px;
    height: 56px;
    background: var(--fa-red);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    transition: transform 0.25s var(--fa-ease);
}
.fa-yt-card:hover .fa-yt-card__play { transform: scale(1.15); }
.fa-yt-card__info { padding: 16px 4px 4px; }
.fa-yt-card__title {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    color: #fff;
    margin: 0 0 8px 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* BOUTONS - tous pill */
.fa-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0;
    text-transform: none;
    transition: all 0.25s var(--fa-ease);
    cursor: pointer;
    border: none;
    font-family: inherit;
    border-radius: 999px;
    line-height: 1;
}
.fa-btn--primary {
    background: #0A0A0A !important;
    color: #fff !important;
}
.fa-btn--primary:hover {
    background: #E63946 !important;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(230, 57, 70, 0.3);
}
.fa-btn--white { background: #fff; color: var(--fa-ink) !important; }
.fa-btn--white:hover { background: var(--fa-cream); transform: translateY(-2px); }
.fa-btn--white-outline {
    background: transparent;
    color: #fff !important;
    border: 2px solid rgba(255, 255, 255, 0.4);
}
.fa-btn--white-outline:hover { border-color: #fff; background: rgba(255, 255, 255, 0.08); }
.fa-btn svg { transition: transform 0.2s; }
.fa-btn:hover svg { transform: translateX(4px); }

/* NEWSLETTER - tout arrondi */
.fa-newsletter {
    background: var(--fa-cream);
    padding: 80px 32px;
    border-top: 1px solid var(--fa-border);
    text-align: center;
}
.fa-newsletter__inner {
    max-width: 720px;
    margin: 0 auto;
    background: #fff;
    padding: 48px;
    border-radius: var(--fa-r-xl);
    border: 1px solid var(--fa-border);
    box-shadow: var(--fa-shadow-sm);
}
.fa-newsletter__label {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.3em;
    
    color: var(--fa-red);
    margin-bottom: 16px;
    padding: 6px 14px;
    background: rgba(230, 57, 70, 0.08);
    border-radius: var(--fa-r-pill);
}
.fa-newsletter__title {
    font-size: clamp(30px, 4vw, 48px) !important;
    font-weight: 800 !important;
    letter-spacing: -0.025em !important;
    line-height: 1.05 !important;
    margin: 0 0 16px 0 !important;
}
.fa-newsletter__desc { font-size: 17px; color: var(--fa-text-muted); margin: 0 0 32px 0; }
.fa-newsletter__form { display: flex; gap: 8px; max-width: 480px; margin: 0 auto 16px; }
.fa-newsletter__input {
    flex: 1;
    padding: 16px 20px;
    border: 2px solid var(--fa-border);
    background: #fff;
    font-size: 15px;
    font-family: inherit;
    font-weight: 500;
    border-radius: var(--fa-r-pill);
}
.fa-newsletter__input:focus { outline: none; border-color: var(--fa-red); }
.fa-newsletter__btn {
    padding: 16px 28px;
    background: var(--fa-ink);
    color: #fff;
    border: none;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    
    font-family: inherit;
    cursor: pointer;
    transition: all 0.2s;
    border-radius: var(--fa-r-pill);
}
.fa-newsletter__btn:hover { background: var(--fa-red); }
.fa-newsletter__btn:disabled { opacity: 0.6; cursor: not-allowed; }
.fa-newsletter__privacy { font-size: 11px; color: var(--fa-gray-medium); }
.fa-newsletter__message { margin-top: 16px; font-size: 14px; min-height: 20px; }
.fa-newsletter__message.is-success { color: #0a7a42; }
.fa-newsletter__message.is-error { color: var(--fa-red); }
.fa-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
@media (max-width: 600px) { .fa-newsletter__form { flex-direction: column; } .fa-newsletter__inner { padding: 32px 24px; } }

/* FORMULAIRES - inputs arrondis */
.fa-form { display: flex; flex-direction: column; gap: 20px; }
.fa-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .fa-form__row { grid-template-columns: 1fr; } }
.fa-form__group { display: flex; flex-direction: column; gap: 8px; }
.fa-form__label { font-size: 11px; font-weight: 700; letter-spacing: 0.1em;  }
.fa-form__label--req::after { content: ' *'; color: var(--fa-red); }
.fa-form__input, .fa-form__textarea, .fa-form__select {
    padding: 14px 18px;
    border: 1.5px solid var(--fa-border);
    background: #fff;
    font-size: 15px;
    font-family: inherit;
    font-weight: 500;
    width: 100%;
    border-radius: var(--fa-r-md);
}
.fa-form__input:focus, .fa-form__textarea:focus, .fa-form__select:focus { outline: none; border-color: var(--fa-ink); }
.fa-form__textarea { min-height: 140px; resize: vertical; }

/* STATS - cartes individuelles arrondies */
.fa-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.fa-stats--3 { grid-template-columns: repeat(3, 1fr); }
.fa-stats--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 900px) { .fa-stats, .fa-stats--3 { grid-template-columns: repeat(2, 1fr); } }
.fa-stat {
    padding: 48px 24px;
    text-align: center;
    background: #fff;
    border: 1px solid var(--fa-border);
    border-radius: var(--fa-r-lg);
    transition: all 0.3s var(--fa-ease);
}
.fa-stat:hover {
    transform: translateY(-4px);
    box-shadow: var(--fa-shadow-md);
    border-color: transparent;
}
.fa-stat__num {
    font-size: clamp(44px, 6vw, 72px);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    color: var(--fa-ink);
    margin-bottom: 12px;
}
.fa-stat__num .fa-accent {
    color: #0A0A0A;
}
.fa-stat__label {
    font-size: 11px;
    color: var(--fa-gray-medium);
    letter-spacing: 0.2em;
    
    font-weight: 700;
}

/* FORMATS PUB - cartes arrondies */
.fa-format {
    background: #fff;
    padding: 40px 32px;
    border: 1px solid var(--fa-border);
    border-radius: var(--fa-r-lg);
    display: flex;
    flex-direction: column;
    transition: all 0.3s var(--fa-ease);
    position: relative;
    height: 100%;
}
.fa-format:hover {
    border-color: transparent;
    transform: translateY(-4px);
    box-shadow: var(--fa-shadow-md);
}
.fa-format__num {
    position: absolute;
    top: 24px;
    right: 24px;
    font-size: 11px;
    color: var(--fa-red);
    font-weight: 700;
    letter-spacing: 0.2em;
    background: rgba(230, 57, 70, 0.08);
    padding: 4px 10px;
    border-radius: var(--fa-r-pill);
}
.fa-format__title { font-size: 24px !important; font-weight: 800 !important; letter-spacing: -0.015em !important; margin: 0 0 16px 0 !important; }
.fa-format__desc { font-size: 15px; line-height: 1.55; color: var(--fa-text-muted); margin: 0 0 32px 0; flex: 1; }
.fa-format__details {
    padding-top: 20px;
    border-top: 1px solid var(--fa-border);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.fa-format__row { display: flex; justify-content: space-between; font-size: 13px; }
.fa-format__row-label {
    color: var(--fa-gray-medium);
    letter-spacing: 0.08em;
    
    font-weight: 600;
    font-size: 11px;
}
.fa-format__row-value { font-weight: 700; color: var(--fa-ink); }
.fa-format__price { color: var(--fa-red); font-weight: 800; }

/* ÉQUIPE - photos arrondies */
.fa-team-member { text-align: left; }
.fa-team-member__photo {
    aspect-ratio: 3 / 4;
    margin-bottom: 16px;
    overflow: hidden;
    background: #FAFAFA;
    border-radius: var(--fa-r-lg);
    transition: transform 0.4s;
}
.fa-team-member:hover .fa-team-member__photo { transform: translateY(-4px); }
.fa-team-member__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fa-team-member__name { font-size: 17px; font-weight: 700; letter-spacing: -0.01em; margin: 0 0 4px 0; color: var(--fa-ink); }
.fa-team-member__role {
    font-size: 11px;
    color: var(--fa-gray-medium);
    letter-spacing: 0.1em;
    
    font-weight: 600;
    margin: 0;
}

/* SOCIAL - icônes arrondies */
.fa-social { display: flex; gap: 10px; flex-wrap: wrap; }
.fa-social__link {
    width: 44px;
    height: 44px;
    background: var(--fa-ink);
    color: #fff !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    transition: all 0.2s;
    border-radius: var(--fa-r-pill);
}
.fa-social__link:hover { background: var(--fa-red); transform: translateY(-2px); }
.fa-social--dark .fa-social__link {
    background: rgba(255, 255, 255, 0.08);
    border-radius: var(--fa-r-md);
}
.fa-social--dark .fa-social__link:hover { background: var(--fa-red); }

/* ARTICLE META */
.fa-article-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    color: var(--fa-gray-medium);
    flex-wrap: wrap;
    margin-top: 16px;
}
.fa-article-category {
    display: inline-block;
    padding: 6px 14px;
    background: var(--fa-blue);
    color: #fff !important;
    font-size: 11px;
    font-weight: 700;
    
    letter-spacing: 1.2px;
    border-radius: var(--fa-r-pill);
    margin-bottom: 12px;
    text-decoration: none !important;
}
.fa-article-category:hover { background: var(--fa-red); }

.fa-share {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    padding: 32px 0;
    margin-top: 32px;
    border-top: 1px solid var(--fa-border);
}
.fa-share__label {
    font-size: 13px;
    font-weight: 700;
    
    letter-spacing: 1px;
    color: var(--fa-gray-medium);
}
.fa-share__links { display: flex; gap: 8px; }
.fa-share__btn {
    width: 44px;
    height: 44px;
    background: var(--fa-cream);
    color: var(--fa-ink) !important;
    border: 1px solid var(--fa-border);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    text-decoration: none !important;
    border-radius: var(--fa-r-pill);
}
.fa-share__btn:hover {
    background: var(--fa-ink);
    color: #fff !important;
    border-color: var(--fa-ink);
    transform: translateY(-2px);
}

/* FOOTER DARK */
.fa-site-footer {
    background: var(--fa-dark);
    color: rgba(255, 255, 255, 0.7);
    padding: 80px 32px 32px;
}
.fa-site-footer a { color: rgba(255, 255, 255, 0.7); text-decoration: none; transition: color 0.2s; }
.fa-site-footer a:hover { color: var(--fa-red); }
.fa-site-footer__inner { max-width: 1400px; margin: 0 auto; }
.fa-site-footer__top {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 48px;
    margin-bottom: 48px;
    padding-bottom: 48px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
@media (max-width: 900px) { .fa-site-footer__top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .fa-site-footer__top { grid-template-columns: 1fr; } }
.fa-site-footer h4 {
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    
    margin: 0 0 20px 0;
}
.fa-site-footer ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0;
    margin: 0;
}
.fa-site-footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 12px;
}
.fa-site-footer__bottom a { color: rgba(255, 255, 255, 0.8); font-weight: 600; }

:focus-visible { outline: 2px solid var(--fa-red); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* ==========================================================================
   v3.2 — MAJUSCULES + FULL WIDTH AGRESSIF
   ========================================================================== */

/* MAJUSCULES sur kickers/labels */
.fa-site-logo__sub,
.fa-mega-menu__title,
.fa-mega-menu__see-all,
.fa-mega-menu__kicker,
.fa-kicker,
.fa-section-header__right,
.fa-une__hero-kicker,
.fa-une__hero-meta strong,
.fa-une__side-kicker,
.fa-article-card__kicker,
.fa-interview-card__num,
.fa-interview-card__role,
.fa-perso-hero__kicker,
.fa-perso-hero__role,
.fa-newsletter__label,
.fa-stat__label,
.fa-format__num,
.fa-format__row-label,
.fa-team-member__role,
.fa-article-category,
.fa-share__label,
.fa-site-footer h4,
.fa-videos__link,
.fa-btn,
.fa-newsletter__btn,
.fa-form__label {
    text-transform: uppercase !important;
}

/* ==========================================================================
   FULL WIDTH NUCLEAR — On override TOUS les wrappers Kadence
   ========================================================================== */

/* 1. Cacher la title bar Kadence (gros espace blanc en haut) */
body.fa-custom-header .entry-hero,
body.fa-custom-header .kadence-entry-hero,
body.fa-custom-header .entry-hero-container-inner,
body.fa-custom-header .page-title-wrap,
body.fa-custom-header .above-page-title-wrap,
body.fa-custom-header .below-page-title-wrap,
body.fa-custom-header .entry-header,
body.fa-custom-header .kadence-title-area-default {
    display: none !important;
}

/* 2. Reset TOUS les conteneurs Kadence à largeur 100% */
body.fa-custom-header .site,
body.fa-custom-header #wrapper,
body.fa-custom-header #inner-wrap,
body.fa-custom-header .site-content,
body.fa-custom-header .content-container,
body.fa-custom-header .site-container,
body.fa-custom-header .content-wrap,
body.fa-custom-header .content-area,
body.fa-custom-header .entry-content-wrap,
body.fa-custom-header .wp-site-blocks,
body.fa-custom-header .site-main,
body.fa-custom-header main {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* 3. Sur les pages : article + entry-content full width */
body.fa-custom-header.page article,
body.fa-custom-header.page .entry-content,
body.fa-custom-header.page .post-inner-wrap,
body.fa-custom-header.page .content-wrap,
body.fa-custom-header.home article,
body.fa-custom-header.home .entry-content,
body.fa-custom-header.home .post-inner-wrap {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

/* 4. Désactiver la grille Kadence avec sidebar (force single column) */
body.fa-custom-header.page .content-container,
body.fa-custom-header.home .content-container {
    display: block !important;
    grid-template-columns: 1fr !important;
}

/* 5. Cacher la sidebar Kadence */
body.fa-custom-header.page .sidebar-primary,
body.fa-custom-header.page #secondary,
body.fa-custom-header.home .sidebar-primary,
body.fa-custom-header.home #secondary {
    display: none !important;
}

/* 6. Reset les paddings/margins du contenu de l'éditeur (Gutenberg) */
body.fa-custom-header.page .entry-content > *,
body.fa-custom-header.home .entry-content > * {
    max-width: 100% !important;
}

/* 7. Forcer html/body sans marges */
html, body.fa-custom-header {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    overflow-x: hidden;
}

/* 8. Sur les single posts (articles), GARDER la largeur centrée pour la lecture */
body.fa-custom-header.single-post .entry-content {
    max-width: 720px !important;
    margin: 0 auto !important;
    padding: 80px 32px !important;
}

/* 9. Cacher les breadcrumbs et autres éléments Kadence sur les pages */
body.fa-custom-header.page .kadence-breadcrumbs,
body.fa-custom-header.home .kadence-breadcrumbs {
    display: none !important;
}

/* 10. Au cas où Kadence injecte un container avec padding */
body.fa-custom-header .site-container.entry-content-wrap.content-area > .content-container {
    padding: 0 !important;
    max-width: 100% !important;
}

/* ==========================================================================
   v3.5 — Badges YouTube sur interviews
   ========================================================================== */

.fa-interview-card__yt-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    padding: 3px 10px;
    background: var(--fa-red);
    color: #fff;
    border-radius: var(--fa-r-pill);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fa-interview-card__image {
    position: relative;
}

.fa-interview-card__play-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.25s var(--fa-ease);
    border-radius: var(--fa-r-md);
}

.fa-interview-card--has-video:hover .fa-interview-card__play-overlay {
    background: rgba(0, 0, 0, 0.55);
}

.fa-interview-card__play {
    width: 64px;
    height: 64px;
    background: var(--fa-red);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    transition: transform 0.25s var(--fa-ease);
}

.fa-interview-card--has-video:hover .fa-interview-card__play {
    transform: scale(1.12);
}

/* ==========================================================================
   v3.6 — Retirer auteur partout (Kadence)
   ========================================================================== */

body.fa-custom-header .entry-meta .author,
body.fa-custom-header .entry-author,
body.fa-custom-header .author-vcard,
body.fa-custom-header .byline,
body.fa-custom-header .post-author,
body.fa-custom-header .entry-meta-author,
body.fa-custom-header .entry-author-avatar,
body.fa-custom-header .entry-author-style-normal,
body.fa-custom-header .author.vcard,
body.fa-custom-header .author-name,
body.fa-custom-header .post-author-name,
body.fa-custom-header .post-meta-author,
body.fa-custom-header [class*="author"] {
    display: none !important;
}

/* On garde la date et le temps de lecture */
body.fa-custom-header .entry-meta-date,
body.fa-custom-header .entry-meta time {
    display: inline-block !important;
}

/* ==========================================================================
   v3.7 — Cards plus compactes + overflow fix + nouveau positionnement
   ========================================================================== */

/* HERO mosaïque : réduire l'image et les marges */
.fa-une__hero-image {
    aspect-ratio: 16 / 9 !important;
    border-radius: var(--fa-r-lg);
    max-height: 480px;
}

.fa-une__hero-body {
    padding: 24px 0 0 !important;
}

.fa-une__hero-title {
    font-size: clamp(24px, 3.5vw, 40px) !important;
    line-height: 1.15 !important;
    margin-bottom: 12px !important;
}

.fa-une__hero-lede {
    font-size: 16px !important;
    line-height: 1.5 !important;
    margin-bottom: 16px !important;
    max-width: none !important;
}

.fa-une__hero-kicker {
    padding: 4px 12px !important;
    font-size: 11px !important;
    margin-bottom: 12px !important;
}

.fa-une__hero-meta {
    font-size: 12px !important;
}

/* SIDE articles : plus petits aussi */
.fa-une__side-image {
    aspect-ratio: 16 / 9 !important;
    max-height: 140px;
}

.fa-une__side-title {
    font-size: 15px !important;
    line-height: 1.3 !important;
}

.fa-une__side-kicker {
    font-size: 10px !important;
    letter-spacing: 0.1em;
}

.fa-une__side-meta {
    font-size: 11px !important;
}

.fa-une__side-item {
    padding-bottom: 16px !important;
}

.fa-une__side {
    gap: 16px !important;
}

/* Articles cards normaux : un peu plus compacts */
.fa-article-card__image {
    aspect-ratio: 16 / 10 !important;
}

.fa-article-card__title {
    font-size: 15px !important;
    margin: 0 20px 8px !important;
}

.fa-article-card__kicker {
    margin: 16px 20px 8px !important;
    font-size: 10px !important;
    padding: 3px 10px !important;
}

.fa-article-card__meta {
    margin: 8px 20px 20px !important;
    font-size: 11px !important;
}

/* CORRECTION OVERFLOW PAGES — empêcher le contenu de déborder */
html, body {
    overflow-x: hidden !important;
    max-width: 100vw;
}

body.fa-custom-header * {
    max-width: 100%;
    box-sizing: border-box;
}

/* Forcer toutes les sections à respecter le viewport */
body.fa-custom-header section {
    max-width: 100vw;
    overflow-x: hidden;
}

/* Réduire padding mobile/tablet pour éviter scroll horizontal */
@media (max-width: 768px) {
    body.fa-custom-header section {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
    .fa-une__grid {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
    .fa-une__hero-image {
        max-height: 240px;
    }
}

/* ==========================================================================
   v3.8 — Dropdown simple (remplace mega-menu)
   ========================================================================== */

.fa-dropdown-simple {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(-8px);
    margin-top: 12px;
    min-width: 260px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);
    padding: 8px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.2s var(--fa-ease);
    z-index: 50;
    display: flex;
    flex-direction: column;
}

.fa-site-nav__item--has-menu:hover .fa-dropdown-simple,
.fa-dropdown-simple:hover {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.fa-dropdown-simple__link {
    display: block;
    padding: 12px 18px;
    color: #0A0A0A !important;
    text-decoration: none !important;
    font-size: 14px;
    font-weight: 500;
    border-radius: 8px;
    transition: all 0.15s var(--fa-ease);
    white-space: nowrap;
}

.fa-dropdown-simple__link:hover {
    background: #FAFAFA;
    color: #E63946 !important;
}

@media (max-width: 1024px) {
    .fa-dropdown-simple {
        position: static;
        transform: none;
        opacity: 1;
        visibility: visible;
        display: none;
        box-shadow: none;
        background: transparent;
        padding: 8px 0;
        min-width: 0;
    }
    .fa-site-nav__item--has-menu.is-open .fa-dropdown-simple { display: flex; }
    .fa-dropdown-simple__link {
        color: rgba(255,255,255,0.85) !important;
        padding-left: 32px;
    }
    .fa-dropdown-simple__link:hover {
        background: rgba(255,255,255,0.05);
        color: #fff !important;
    }
}

/* Cacher l'ancien mega-menu au cas où il traînerait */
.fa-mega-menu { display: none !important; }

/* ==========================================================================
   v3.9 — CSS NUCLEAR pour cacher tout ce qui concerne l'auteur
   (Kadence affiche par défaut "Par X" dans les listes et single posts)
   ========================================================================== */

/* Cacher l'auteur dans la metabox d'article */
.entry-author,
.entry-author-style-normal,
.entry-author-style-center,
.author-vcard,
.byline,
.post-author,
.entry-meta-author,
.entry-meta .author,
.entry-meta .byline,
.entry-meta-byline,
.author-name,
.author.vcard,
.post-meta-author,
.kadence-entry-meta .meta-author,
.entry-author-avatar,
.entry-meta > .author,
[class*="author"]:not([class*="authorization"]):not([class*="thoriz"]) {
    display: none !important;
}

/* Et le "Par admin5816" sur les liens dans la liste */
.entry-meta a[rel="author"],
.entry-meta span.author,
.posted-by {
    display: none !important;
}

/* Cacher "Non classé" et autres catégories par défaut */
.entry-categories,
.entry-meta .cat-links {
    display: none !important;
}

/* CORRECTION IMPORTANTE — Forcer le full-width sur le site_blocks */
body.fa-custom-header .wp-site-blocks {
    padding: 0 !important;
    max-width: 100% !important;
}

/* ==========================================================================
   v4.0 — Logo plus gros + DA épurée style Master Finance
   ========================================================================== */

/* Logo plus gros */
.fa-site-logo img { max-height: 64px !important; }
.fa-site-logo__default {
    width: 64px !important;
    height: 64px !important;
    padding: 4px;
}
.fa-site-logo__main {
    font-size: 18px !important;
}

/* Header un peu plus aéré pour accommoder le logo plus gros */
.fa-site-header { padding: 20px 32px !important; }

/* Hero accueil style Master Finance — layout 2 colonnes avec carte chiffres */
.fa-hero-master {
    background: #FFFFFF;
    padding: 80px 32px 80px;
    border-bottom: 1px solid #EEEEEE;
}

.fa-hero-master__grid {
    max-width: 1300px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 80px;
    align-items: center;
}

.fa-hero-master__content {
    min-width: 0;
}

/* Carte chiffres à droite */
.fa-hero-master__card {
    background: #FAFAFA;
    border: 1px solid #E8E8E8;
    border-radius: 20px;
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.fa-hero-master__card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 16px;
    border-bottom: 1px solid #E8E8E8;
}

.fa-hero-master__card-label {
    font-size: 12px;
    font-weight: 600;
    color: #6B7280;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.fa-hero-master__card-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: rgba(230, 57, 70, 0.08);
    color: #E63946;
    font-size: 11px;
    font-weight: 600;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fa-hero-master__card-badge::before {
    content: '';
    width: 6px;
    height: 6px;
    background: #E63946;
    border-radius: 50%;
}

.fa-hero-master__card-main {
    text-align: left;
}

.fa-hero-master__card-num {
    font-size: clamp(48px, 5.5vw, 64px);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    color: #0A0A0A;
    margin-bottom: 8px;
}

.fa-hero-master__card-sub {
    font-size: 14px;
    color: #6B7280;
    font-weight: 500;
}

.fa-hero-master__card-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    padding: 20px 0;
    border-top: 1px solid #E8E8E8;
    border-bottom: 1px solid #E8E8E8;
}

.fa-hero-master__card-stat {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fa-hero-master__card-stat-num {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #0A0A0A;
    line-height: 1;
}

.fa-hero-master__card-stat-label {
    font-size: 11px;
    color: #6B7280;
    font-weight: 500;
    line-height: 1.3;
}

.fa-hero-master__card-footer {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fa-hero-master__card-foot-label {
    font-size: 11px;
    font-weight: 600;
    color: #6B7280;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.fa-hero-master__card-foot-tags {
    font-size: 13px;
    color: #0A0A0A;
    font-weight: 500;
}

/* Responsive — stack en colonne sur mobile */
@media (max-width: 900px) {
    .fa-hero-master__grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .fa-hero-master {
        padding: 60px 24px;
    }
    .fa-hero-master__card {
        padding: 24px;
    }
}

.fa-hero-master__kicker {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    font-weight: 600;
    color: #E63946;
    margin-bottom: 24px;
    padding: 6px 14px;
    background: rgba(230, 57, 70, 0.08);
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.fa-hero-master__title {
    font-size: clamp(32px, 5vw, 60px);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.025em;
    color: #0A0A0A;
    margin: 0 0 24px 0;
    max-width: 900px;
}

.fa-hero-master__subtitle {
    font-size: 18px;
    line-height: 1.55;
    color: #6B7280;
    max-width: 640px;
    margin: 0 0 36px 0;
}

.fa-hero-master__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 32px;
    background: #0A0A0A;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 14px;
    font-weight: 600;
    border-radius: 999px;
    transition: all 0.25s var(--fa-ease);
    text-transform: none !important;
    letter-spacing: 0;
}

.fa-hero-master__cta:hover {
    background: #E63946;
    transform: translateY(-2px);
}

.fa-hero-master__cta-arrow {
    transition: transform 0.2s;
}

.fa-hero-master__cta:hover .fa-hero-master__cta-arrow {
    transform: translateX(4px);
}

/* Section headers plus épurés */
.fa-section-header__left h2 {
    font-weight: 700 !important;
    letter-spacing: -0.025em !important;
}

/* ==========================================================================
   v4.0 — Carte vidéo unique pour Personnalité de la semaine
   ========================================================================== */

.fa-perso-video {
    position: relative;
    z-index: 1;
    margin-top: 24px;
}

.fa-perso-video__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    margin-bottom: 32px;
    flex-wrap: wrap;
    gap: 16px;
}

.fa-perso-video__label {
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.fa-perso-video__platform {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: rgba(230, 57, 70, 0.15);
    color: #E63946;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fa-perso-video__card {
    display: block;
    max-width: 900px;
    margin: 0 auto;
    text-decoration: none !important;
    color: #fff !important;
    border-radius: 16px;
    overflow: hidden;
    transition: transform 0.3s var(--fa-ease);
    background: #000;
}

.fa-perso-video__card:hover {
    transform: translateY(-4px);
}

.fa-perso-video__thumb {
    aspect-ratio: 16 / 9;
    position: relative;
    overflow: hidden;
    background: #000;
}

.fa-perso-video__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s;
    display: block;
}

.fa-perso-video__card:hover .fa-perso-video__thumb img {
    transform: scale(1.04);
}

.fa-perso-video__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.6) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.3s;
}

.fa-perso-video__play {
    width: 88px;
    height: 88px;
    background: #E63946;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 12px 32px rgba(0,0,0,0.5);
    transition: transform 0.25s var(--fa-ease);
}

.fa-perso-video__card:hover .fa-perso-video__play {
    transform: scale(1.1);
}

.fa-perso-video__info {
    padding: 24px 28px;
    background: #0F1419;
    color: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.fa-perso-video__title {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: #fff;
}

.fa-perso-video__sub {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.6);
    font-weight: 500;
}

@media (max-width: 600px) {
    .fa-perso-video__play { width: 64px; height: 64px; }
    .fa-perso-video__info { padding: 20px; }
    .fa-perso-video__title { font-size: 16px; }
}

/* ==========================================================================
   v4.0 — Template single (article + portrait) — lecture confortable
   ========================================================================== */

.fa-single-main {
    background: #fff;
    width: 100%;
    max-width: 100%;
}

.fa-single {
    width: 100%;
}

/* Hero image pleine largeur */
.fa-single__hero {
    width: 100%;
    height: 60vh;
    min-height: 400px;
    max-height: 600px;
    position: relative;
    overflow: hidden;
    background: #0A0A0A;
}

.fa-single__hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.fa-single__hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(255,255,255,0.4) 100%);
    pointer-events: none;
}

.fa-single__hero--portrait img {
    object-position: center top;
}

/* Container du contenu */
.fa-single__container {
    max-width: 720px;
    margin: 0 auto;
    padding: 60px 24px 80px;
}

/* Kicker */
.fa-single__kicker {
    margin-bottom: 20px;
}

.fa-single__type {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    color: #E63946;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    padding: 6px 14px;
    background: rgba(230, 57, 70, 0.08);
    border-radius: 999px;
}

/* Titre */
.fa-single__title {
    font-size: clamp(32px, 4.5vw, 52px) !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.025em !important;
    color: #0A0A0A !important;
    margin: 0 0 24px 0 !important;
}

/* Meta interview (nom personne) */
.fa-single__interview-meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 20px;
}

.fa-single__interview-meta strong {
    font-size: 20px;
    font-weight: 700;
    color: #0A0A0A;
}

.fa-single__interview-role {
    font-size: 14px;
    color: #6B7280;
    font-weight: 500;
}

/* Meta date + reading time */
.fa-single__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #6B7280;
    font-weight: 500;
    margin-bottom: 40px;
    padding-bottom: 24px;
    border-bottom: 1px solid #E8E8E8;
}

.fa-single__dot {
    color: #C5CFE3;
}

/* Citation mise en avant */
.fa-single__pull-quote {
    font-size: clamp(20px, 2.5vw, 26px);
    line-height: 1.4;
    font-weight: 400;
    font-style: italic;
    color: #0A0A0A;
    border-left: 4px solid #E63946;
    padding: 4px 24px;
    margin: 40px 0 !important;
    background: transparent;
}

/* CONTENU article (typographie confortable) */
.fa-single__content {
    font-size: 18px;
    line-height: 1.75;
    color: #1a1a1a;
}

.fa-single__content p {
    margin: 0 0 24px 0;
    font-size: 18px;
    line-height: 1.75;
    color: #1a1a1a;
}

.fa-single__content h2 {
    font-size: clamp(24px, 3vw, 32px) !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
    color: #0A0A0A !important;
    margin: 48px 0 20px !important;
    line-height: 1.2 !important;
}

.fa-single__content h3 {
    font-size: clamp(20px, 2.5vw, 24px) !important;
    font-weight: 700 !important;
    letter-spacing: -0.015em !important;
    color: #0A0A0A !important;
    margin: 36px 0 16px !important;
    line-height: 1.25 !important;
}

.fa-single__content h4 {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #0A0A0A !important;
    margin: 32px 0 12px !important;
}

.fa-single__content strong {
    font-weight: 700;
    color: #0A0A0A;
}

.fa-single__content em {
    font-style: italic;
}

.fa-single__content a {
    color: #E63946;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.fa-single__content a:hover {
    color: #C92E3C;
}

.fa-single__content ul,
.fa-single__content ol {
    padding-left: 24px;
    margin: 0 0 24px 0;
}

.fa-single__content li {
    margin-bottom: 8px;
    line-height: 1.7;
}

.fa-single__content blockquote {
    border-left: 4px solid #E63946;
    padding: 4px 24px;
    margin: 32px 0;
    font-size: 20px;
    font-style: italic;
    color: #0A0A0A;
    line-height: 1.45;
}

.fa-single__content img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    margin: 24px 0;
}

.fa-single__content figure {
    margin: 24px 0;
}

.fa-single__content figcaption {
    font-size: 13px;
    color: #6B7280;
    margin-top: 8px;
    text-align: center;
}

/* Carte YouTube pour interviews */
.fa-single__yt-block {
    margin: 48px 0;
    padding: 24px;
    background: #FAFAFA;
    border-radius: 16px;
    border: 1px solid #E8E8E8;
}

.fa-single__yt-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    font-size: 13px;
    font-weight: 600;
    color: #0A0A0A;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    flex-wrap: wrap;
    gap: 8px;
}

.fa-single__yt-label svg {
    color: #E63946;
    vertical-align: middle;
    margin-right: 4px;
}

.fa-single__yt-platform {
    font-size: 11px;
    color: #E63946;
    padding: 4px 10px;
    background: rgba(230, 57, 70, 0.08);
    border-radius: 999px;
}

.fa-single__yt-card {
    display: block;
    text-decoration: none !important;
    color: #fff !important;
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.3s var(--fa-ease);
    background: #000;
}

.fa-single__yt-card:hover {
    transform: translateY(-2px);
}

.fa-single__yt-thumb {
    aspect-ratio: 16 / 9;
    position: relative;
    overflow: hidden;
}

.fa-single__yt-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s;
}

.fa-single__yt-card:hover .fa-single__yt-thumb img {
    transform: scale(1.04);
}

.fa-single__yt-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.6) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.fa-single__yt-play {
    width: 80px;
    height: 80px;
    background: #E63946;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
    transition: transform 0.25s var(--fa-ease);
}

.fa-single__yt-card:hover .fa-single__yt-play {
    transform: scale(1.1);
}

.fa-single__yt-cta {
    padding: 20px 24px;
    background: #0A0A0A;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fa-single__yt-cta-title {
    font-size: 17px;
    font-weight: 700;
    color: #fff;
}

.fa-single__yt-cta-sub {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.6);
}

/* Tags */
.fa-single__tags {
    margin: 40px 0 24px;
    padding-top: 24px;
    border-top: 1px solid #E8E8E8;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.fa-single__tags-label {
    font-size: 13px;
    font-weight: 600;
    color: #6B7280;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.fa-single__tag {
    display: inline-block;
    padding: 6px 14px;
    background: #FAFAFA;
    color: #0A0A0A !important;
    text-decoration: none !important;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    transition: all 0.2s;
}

.fa-single__tag:hover {
    background: #0A0A0A;
    color: #fff !important;
}

/* Badge épinglé */
.fa-pin-badge {
    position: absolute;
    top: 16px;
    left: 16px;
    background: #0A0A0A;
    color: #fff;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    z-index: 2;
    letter-spacing: 0;
}

.fa-pin-badge--sm {
    padding: 4px 10px;
    font-size: 14px;
    top: 12px;
    left: 12px;
}

.fa-une__hero-image,
.fa-une__side-image,
.fa-article-card__image {
    position: relative;
}

/* Forcer le full-width du single sur Kadence */
body.fa-custom-header.single .fa-single-main {
    width: 100% !important;
    max-width: 100% !important;
}

/* Cacher TOUS les éléments Kadence parasites sur single */
body.fa-custom-header.single .entry-hero,
body.fa-custom-header.single .entry-header,
body.fa-custom-header.single .post-thumbnail,
body.fa-custom-header.single .kadence-entry-hero,
body.fa-custom-header.single .entry-meta-container,
body.fa-custom-header.single .above-entry-content,
body.fa-custom-header.single .below-entry-content,
body.fa-custom-header.single .below-entry-content-wrap,
body.fa-custom-header.single .entry-categories,
body.fa-custom-header.single .post-author-bio,
body.fa-custom-header.single .author-info,
body.fa-custom-header.single .post-navigation,
body.fa-custom-header.single .nav-links,
body.fa-custom-header.single nav.post-navigation {
    display: none !important;
}

/* Reset les paddings Kadence sur single */
body.fa-custom-header.single .content-area,
body.fa-custom-header.single .site-content,
body.fa-custom-header.single .content-wrap {
    padding: 0 !important;
    max-width: 100% !important;
}

/* Responsive */
@media (max-width: 600px) {
    .fa-single__hero { height: 40vh; min-height: 280px; }
    .fa-single__container { padding: 40px 20px 60px; }
    .fa-single__title { font-size: clamp(26px, 6vw, 36px) !important; }
    .fa-single__content { font-size: 17px; }
    .fa-single__content p { font-size: 17px; }
    .fa-single__yt-play { width: 64px; height: 64px; }
}

/* ==========================================================================
   v4.1 — Mosaïque vidéos Personnalité (1 grande + 3 petites OU grille)
   ========================================================================== */

.fa-perso-videos {
    margin-top: 40px;
}

.fa-perso-videos__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    margin-bottom: 28px;
    flex-wrap: wrap;
    gap: 12px;
}

.fa-perso-videos__label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.fa-perso-videos__label svg {
    color: #E63946;
}

.fa-perso-videos__platform {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    background: rgba(230, 57, 70, 0.18);
    color: #E63946;
    font-size: 11px;
    font-weight: 600;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* Grille adaptative */
.fa-perso-videos__grid {
    display: grid;
    gap: 16px;
}

/* 1 seule vidéo */
.fa-perso-videos__grid--1 {
    grid-template-columns: 1fr;
    max-width: 800px;
    margin: 0 auto;
}

/* 2 vidéos = 2 colonnes */
.fa-perso-videos__grid--2 {
    grid-template-columns: 1fr 1fr;
}

/* 3 vidéos = 1 grande + 2 à droite */
.fa-perso-videos__grid--3 {
    grid-template-columns: 1.5fr 1fr;
    grid-template-rows: 1fr 1fr;
}
.fa-perso-videos__grid--3 .fa-perso-video-card--main {
    grid-row: 1 / 3;
}

/* 4 vidéos = 1 grande + 3 dessous */
.fa-perso-videos__grid--4 {
    grid-template-columns: repeat(3, 1fr);
}
.fa-perso-videos__grid--4 .fa-perso-video-card--main {
    grid-column: 1 / 4;
}

/* Card vidéo */
.fa-perso-video-card {
    display: block;
    text-decoration: none !important;
    color: #fff !important;
    border-radius: 12px;
    overflow: hidden;
    background: #000;
    transition: transform 0.3s var(--fa-ease);
    position: relative;
}

.fa-perso-video-card:hover {
    transform: translateY(-3px);
}

.fa-perso-video-card__thumb {
    aspect-ratio: 16 / 9;
    position: relative;
    overflow: hidden;
    background: #000;
}

.fa-perso-video-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s;
    display: block;
}

.fa-perso-video-card:hover .fa-perso-video-card__thumb img {
    transform: scale(1.05);
}

.fa-perso-video-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.55) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.25s;
}

.fa-perso-video-card:hover .fa-perso-video-card__overlay {
    background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.65) 100%);
}

.fa-perso-video-card__play {
    width: 56px;
    height: 56px;
    background: #E63946;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
    transition: transform 0.25s var(--fa-ease);
}

/* Play plus gros sur la card principale */
.fa-perso-video-card--main .fa-perso-video-card__play {
    width: 80px;
    height: 80px;
}

.fa-perso-video-card:hover .fa-perso-video-card__play {
    transform: scale(1.1);
}

.fa-perso-video-card__info {
    padding: 14px 16px;
    background: #0F1419;
    color: #fff;
}

.fa-perso-video-card__title {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    color: #fff;
}

.fa-perso-video-card--main .fa-perso-video-card__title {
    font-size: 16px;
    font-weight: 700;
}

/* Quand utilisé dans single-personnalite (fond clair) */
.fa-single__container .fa-perso-videos__header {
    border-bottom-color: #E8E8E8;
}

.fa-single__container .fa-perso-videos__label {
    color: #0A0A0A;
}

.fa-single__container .fa-perso-videos__platform {
    background: rgba(230, 57, 70, 0.08);
}

/* Responsive */
@media (max-width: 768px) {
    .fa-perso-videos__grid--2,
    .fa-perso-videos__grid--3,
    .fa-perso-videos__grid--4 {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }
    .fa-perso-videos__grid--3 .fa-perso-video-card--main,
    .fa-perso-videos__grid--4 .fa-perso-video-card--main {
        grid-row: auto;
        grid-column: auto;
    }
    .fa-perso-video-card__play {
        width: 48px;
        height: 48px;
    }
    .fa-perso-video-card--main .fa-perso-video-card__play {
        width: 64px;
        height: 64px;
    }
}

/* ==========================================================================
   v4.2 — Pages d'archive (Actualité / Interview / Personnalité)
   ========================================================================== */

.fa-archive-main {
    background: #FFFFFF;
    min-height: 60vh;
}

/* Hero archive (pour archive-personnalite.php) */
.fa-archive-hero {
    padding: 64px 32px 32px;
    background: #FFFFFF;
    border-bottom: 1px solid #EEEEEE;
}

.fa-archive-hero__inner {
    max-width: 1300px;
    margin: 0 auto;
}

.fa-archive-hero__kicker {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    color: #E63946;
    margin-bottom: 12px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.fa-archive-hero__title {
    font-size: clamp(36px, 5vw, 56px) !important;
    font-weight: 800 !important;
    letter-spacing: -0.025em !important;
    line-height: 1.05 !important;
    color: #0A0A0A !important;
    margin: 0 0 16px 0 !important;
}

.fa-archive-hero__subtitle {
    font-size: 18px;
    line-height: 1.55;
    color: #6B7280;
    max-width: 680px;
    margin: 0;
}

.fa-archive-body {
    padding: 48px 32px 80px;
}

.fa-archive-body__inner {
    max-width: 1300px;
    margin: 0 auto;
}

/* Grille adaptative */
.fa-archive-grid {
    display: grid;
    gap: 28px;
    margin-bottom: 48px;
}

.fa-archive-grid--2 { grid-template-columns: repeat(2, 1fr); }
.fa-archive-grid--3 { grid-template-columns: repeat(3, 1fr); }
.fa-archive-grid--4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 900px) {
    .fa-archive-grid--3,
    .fa-archive-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .fa-archive-grid--2,
    .fa-archive-grid--3,
    .fa-archive-grid--4 { grid-template-columns: 1fr; }
}

/* Card portrait pour archive personnalités */
.fa-portrait-card {
    display: flex;
    flex-direction: column;
    background: #FFFFFF;
    border: 1px solid #EEEEEE;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none !important;
    color: #0A0A0A !important;
    transition: all 0.25s var(--fa-ease);
}

.fa-portrait-card:hover {
    transform: translateY(-3px);
    border-color: #DDDDDD;
    box-shadow: 0 12px 32px rgba(0,0,0,0.06);
}

.fa-portrait-card__image {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    position: relative;
    background: #F5F5F5;
}

.fa-portrait-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s;
}

.fa-portrait-card:hover .fa-portrait-card__image img {
    transform: scale(1.04);
}

.fa-portrait-card__badge {
    position: absolute;
    top: 14px;
    left: 14px;
    background: #E63946;
    color: #fff;
    padding: 6px 12px;
    font-size: 11px;
    font-weight: 700;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    z-index: 2;
}

.fa-portrait-card__body {
    padding: 20px 24px 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fa-portrait-card__name {
    font-size: 20px !important;
    font-weight: 800 !important;
    letter-spacing: -0.015em !important;
    color: #0A0A0A !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}

.fa-portrait-card__role {
    font-size: 13px;
    color: #6B7280;
    font-weight: 500;
    line-height: 1.4;
}

.fa-portrait-card__date {
    font-size: 12px;
    color: #9CA3AF;
    font-weight: 500;
    margin-top: auto;
    padding-top: 12px;
}

/* Pagination */
.fa-archive-pagination {
    display: flex;
    justify-content: center;
    margin-top: 48px;
}

.fa-archive-pagination .page-numbers,
.fa-archive-pagination .nav-links {
    display: flex;
    gap: 6px;
    list-style: none;
    padding: 0;
    margin: 0;
    flex-wrap: wrap;
    justify-content: center;
}

.fa-archive-pagination a.page-numbers,
.fa-archive-pagination span.page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 14px;
    background: #FFFFFF;
    color: #0A0A0A;
    text-decoration: none;
    border-radius: 8px;
    border: 1px solid #EEEEEE;
    font-size: 14px;
    font-weight: 600;
    transition: all 0.2s;
}

.fa-archive-pagination a.page-numbers:hover {
    background: #0A0A0A;
    color: #fff;
    border-color: #0A0A0A;
}

.fa-archive-pagination span.page-numbers.current {
    background: #0A0A0A;
    color: #fff;
    border-color: #0A0A0A;
}

.fa-archive-pagination .prev,
.fa-archive-pagination .next {
    padding: 0 18px;
}

/* Empty state */
.fa-archive-empty {
    text-align: center;
    padding: 80px 32px;
    background: #FAFAFA;
    border-radius: 16px;
    color: #6B7280;
}

.fa-archive-empty p {
    font-size: 16px;
    margin: 0 0 16px 0;
}

/* Dropdown nav : link actif */
.fa-dropdown-simple__link.is-active {
    background: #FAFAFA;
    color: #E63946 !important;
}

/* ==========================================================================
   v4.3 — Section "Personnalités récentes" sur la home (claire, pas noire)
   ========================================================================== */

.fa-perso-list-section {
    padding: 80px 32px;
    background: #FAFAFA;
    border-top: 1px solid #EEEEEE;
}

.fa-perso-list-section__inner {
    max-width: 1300px;
    margin: 0 auto;
}

.fa-perso-list-section__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding-bottom: 20px;
    border-bottom: 2px solid #0A0A0A;
    margin-bottom: 40px;
    flex-wrap: wrap;
    gap: 16px;
}

.fa-perso-list-section__kicker {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    color: #E63946;
    margin-bottom: 8px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.fa-perso-list-section__title {
    font-size: clamp(24px, 3vw, 36px) !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
    margin: 0 !important;
    color: #0A0A0A !important;
    line-height: 1.1 !important;
}

.fa-perso-list-section__see-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #0A0A0A !important;
    text-decoration: none !important;
    padding: 8px 16px;
    border-radius: 999px;
    transition: all 0.2s;
}

.fa-perso-list-section__see-all:hover {
    background: #0A0A0A;
    color: #fff !important;
}

.fa-perso-list-section__see-all svg {
    transition: transform 0.2s;
}

.fa-perso-list-section__see-all:hover svg {
    transform: translateX(3px);
}

.fa-perso-list-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

@media (max-width: 900px) {
    .fa-perso-list-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .fa-perso-list-grid {
        grid-template-columns: 1fr;
    }
}

/* Card personnalité (style clair, pas dark) */
.fa-perso-list-card {
    display: flex;
    flex-direction: column;
    background: #FFFFFF;
    border: 1px solid #EEEEEE;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none !important;
    color: #0A0A0A !important;
    transition: all 0.25s var(--fa-ease);
}

.fa-perso-list-card:hover {
    transform: translateY(-4px);
    border-color: #DDDDDD;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
}

.fa-perso-list-card__image {
    aspect-ratio: 4 / 5;
    overflow: hidden;
    position: relative;
    background: #F5F5F5;
}

.fa-perso-list-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s;
}

.fa-perso-list-card:hover .fa-perso-list-card__image img {
    transform: scale(1.04);
}

.fa-perso-list-card__badge {
    position: absolute;
    top: 16px;
    left: 16px;
    background: #E63946;
    color: #fff;
    padding: 6px 14px;
    font-size: 11px;
    font-weight: 700;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    z-index: 2;
}

.fa-perso-list-card__body {
    padding: 22px 24px 26px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fa-perso-list-card__name {
    font-size: 22px !important;
    font-weight: 800 !important;
    letter-spacing: -0.02em !important;
    color: #0A0A0A !important;
    margin: 0 !important;
    line-height: 1.15 !important;
}

.fa-perso-list-card__role {
    font-size: 14px;
    color: #6B7280;
    font-weight: 500;
    line-height: 1.4;
}

.fa-perso-list-card__date {
    font-size: 12px;
    color: #9CA3AF;
    font-weight: 500;
    margin-top: auto;
    padding-top: 8px;
}

/* Cache l'ancienne section dark fa-perso-section au cas où */
.fa-perso-section { display: none !important; }

/* ==========================================================================
   v4.3 — Single article/perso : vidéo-first + supprime double partage Kadence
   ========================================================================== */

/* HEADER du single (titre + meta avant vidéo/image) */
.fa-single__header {
    padding: 60px 40px 32px;
    background: #FFFFFF;
    text-align: left;
    max-width: 1200px;
    margin: 0 auto;
}

.fa-single__header .fa-single__container {
    padding: 0;
    max-width: 760px;
    margin: 0;
}

.fa-single__header .fa-single__title {
    font-size: clamp(28px, 4vw, 46px) !important;
    font-weight: 800 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.025em !important;
    color: #0A0A0A !important;
    margin: 0 0 20px 0 !important;
}

/* Container générique (utilisé par header + vidéo hero), aligné à gauche */
.fa-single__container {
    max-width: 760px;
    margin: 0;
    padding: 0;
}

.fa-single__container--content {
    padding: 40px 24px 80px;
}

/* VIDEO HERO — la vidéo qui prend la place de l'image principale */
.fa-single__video-hero {
    padding: 16px 40px 40px;
    background: #FFFFFF;
    max-width: 1200px;
    margin: 0 auto;
}

.fa-single__video-hero .fa-single__container {
    max-width: 820px;
}

.fa-single__video-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    font-size: 13px;
    font-weight: 600;
    color: #0A0A0A;
    flex-wrap: wrap;
    gap: 8px;
}

.fa-single__video-label svg {
    color: #E63946;
    vertical-align: middle;
    margin-right: 6px;
}

.fa-single__video-platform {
    font-size: 11px;
    color: #E63946;
    padding: 4px 12px;
    background: rgba(230, 57, 70, 0.08);
    border-radius: 999px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fa-single__video-card {
    display: block;
    text-decoration: none !important;
    color: inherit !important;
    border-radius: 16px;
    overflow: hidden;
    background: #000;
    transition: transform 0.3s var(--fa-ease);
}

.fa-single__video-card:hover {
    transform: translateY(-2px);
}

.fa-single__video-thumb {
    aspect-ratio: 16 / 9;
    position: relative;
    overflow: hidden;
}

.fa-single__video-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s;
}

.fa-single__video-card:hover .fa-single__video-thumb img {
    transform: scale(1.04);
}

.fa-single__video-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.5) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.fa-single__video-play {
    width: 96px;
    height: 96px;
    background: #E63946;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);
    transition: transform 0.25s var(--fa-ease);
}

.fa-single__video-card:hover .fa-single__video-play {
    transform: scale(1.08);
}

.fa-single__video-cta-text {
    text-align: center;
    margin-top: 16px;
    font-size: 14px;
    color: #6B7280;
    font-weight: 500;
}

/* Hero image (pour articles non-interview) */
.fa-single__hero {
    width: 100%;
    max-width: 1000px;
    margin: 16px auto 40px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 16px;
    background: #F5F5F5;
}

.fa-single__hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* "La version texte" — séparation visuelle */
.fa-single__text-intro {
    margin: 32px 0 24px;
    padding: 16px 20px;
    background: #FAFAFA;
    border-left: 3px solid #E63946;
    border-radius: 0 8px 8px 0;
}

.fa-single__text-intro-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: #E63946;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 6px;
}

.fa-single__text-intro p {
    font-size: 14px;
    color: #6B7280;
    margin: 0;
    font-style: italic;
}

/* Cartes vidéo dans la mosaique single perso (fond clair) */
.fa-perso-video-card--light .fa-perso-video-card__info {
    background: #FFFFFF;
    color: #0A0A0A;
    border: 1px solid #EEEEEE;
    border-top: none;
}

.fa-perso-video-card--light .fa-perso-video-card__title {
    color: #0A0A0A;
}

/* DOUBLE PARTAGE — masquer les éléments Kadence de partage */
body.fa-custom-header.single .kadence-share-icons,
body.fa-custom-header.single .post-share,
body.fa-custom-header.single .entry-share,
body.fa-custom-header.single .share-buttons:not(.fa-share),
body.fa-custom-header.single .social-share,
body.fa-custom-header.single .below-entry-content .entry-meta,
body.fa-custom-header.single .post-share-buttons {
    display: none !important;
}

/* ==========================================================================
   v4.5 — Photos articles : éviter de couper les visages
   ========================================================================== */

/* Image hero des articles single : ne pas couper en plein écran */
.fa-single__hero {
    max-width: 1000px !important;
    margin: 16px auto 40px !important;
    aspect-ratio: 16 / 10 !important;
    max-height: 500px !important;
    overflow: hidden;
    border-radius: 16px;
    background: #F5F5F5;
}

.fa-single__hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* Préserver le haut (têtes) plutôt que centrer la coupe */
    object-position: center 25%;
    display: block;
}

/* Image vidéo hero (pour les interviews) */
.fa-single__video-thumb img {
    object-position: center 30%;
}

/* Images des cards interviews et articles */
.fa-interview-card__image,
.fa-article-card__image,
.fa-une__hero-image,
.fa-une__side-image {
    overflow: hidden;
}

.fa-interview-card__image img,
.fa-article-card__image img,
.fa-une__hero-image img,
.fa-une__side-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
}

/* PARTAGE — NUCLEAR : masquer toute zone de partage Kadence/WordPress */
body.single .post-share-buttons,
body.single .kadence-share-icons,
body.single .post-share,
body.single .entry-share,
body.single .social-share,
body.single .below-entry-content .entry-meta,
body.single .below-content,
body.single .below-content-area,
body.single .content-bottom-meta,
body.single .post-thumbnail-meta,
body.single .below-entry-content-wrap,
body.single .entry-actions,
body.single .entry-footer .social,
body.single .post-meta-share,
body.single nav.post-navigation,
body.single .post-navigation,
body.single [class*="kadence-share"],
body.single [class*="share-link"]:not(.fa-share *),
body.single [class*="social-share"]:not(.fa-share *) {
    display: none !important;
}

/* Si Kadence affiche les boutons de partage au-dessus du contenu, cacher aussi */
body.single .above-entry-content .social,
body.single .above-entry-content .share,
body.single .entry-hero .entry-meta {
    display: none !important;
}

/* ==========================================================================
   v4.6 — Header responsive : fix burger menu + logo mobile
   ========================================================================== */

/* Header mobile : padding plus serré pour gagner de la place */
@media (max-width: 768px) {
    .fa-site-header {
        padding: 12px 16px !important;
    }

    .fa-site-header__inner {
        gap: 12px !important;
    }
}

/* ========== LOGO MOBILE = même chose que desktop, juste réduit ========== */
@media (max-width: 1024px) {
    /* Header un peu plus serré */
    .fa-site-header {
        padding: 12px 16px !important;
    }
    .fa-site-header__inner {
        gap: 12px !important;
    }

    /* Logo : carré + texte côte à côte (exactement comme desktop, en plus petit) */
    .fa-site-logo {
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        flex-shrink: 1 !important;
        min-width: 0 !important;
    }
    .fa-site-logo img,
    .fa-site-logo__default {
        max-height: 44px !important;
        width: 44px !important;
        height: 44px !important;
        flex-shrink: 0 !important;
    }
    /* Le texte "France-Afrique MÉDIA" reste visible */
    .fa-site-logo__text {
        display: flex !important;
        flex-direction: column !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }
    .fa-site-logo__main {
        font-size: 15px !important;
        font-weight: 800 !important;
        color: #fff !important;
        white-space: nowrap !important;
    }
    .fa-site-logo__main span {
        color: var(--fa-red) !important;
    }

    /* Le burger ne mange pas la place du logo */
    .fa-menu-toggle {
        flex-shrink: 0 !important;
    }
}

@media (max-width: 430px) {
    .fa-site-logo img,
    .fa-site-logo__default {
        max-height: 40px !important;
        width: 40px !important;
        height: 40px !important;
    }
    .fa-site-logo__main {
        font-size: 14px !important;
    }
}

/* Burger menu : repensé pour qu'on voie tout le contenu */
@media (max-width: 1024px) {
    .fa-menu-toggle {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        background: rgba(255, 255, 255, 0.1);
        border: none;
        color: #fff;
        width: 44px;
        height: 44px;
        padding: 0;
        border-radius: 12px;
        cursor: pointer;
        flex-shrink: 0;
    }

    .fa-menu-toggle:hover {
        background: rgba(255, 255, 255, 0.18);
    }

    /* Menu mobile : panneau plein écran scrollable */
    .fa-site-nav {
        position: fixed !important;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        margin-top: 0 !important;
        background: #0A0A0A;
        padding: 80px 24px 40px;
        border-radius: 0 !important;
        flex-direction: column;
        width: 100% !important;
        height: 100vh !important;
        max-height: 100vh;
        display: none;
        z-index: 999;
        overflow-y: auto !important;
        gap: 4px;
        -webkit-overflow-scrolling: touch;
    }

    .fa-site-nav.is-open {
        display: flex !important;
    }

    /* Bouton X de fermeture en haut à droite */
    .fa-site-nav.is-open::before {
        content: '✕';
        position: absolute;
        top: 16px;
        right: 24px;
        color: #fff;
        font-size: 24px;
        font-weight: 300;
        cursor: pointer;
        width: 44px;
        height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(255,255,255,0.05);
        border-radius: 12px;
        z-index: 1000;
    }

    /* Items mobile : grand, lisible */
    .fa-site-nav__item {
        width: 100%;
    }

    .fa-site-nav__link {
        width: 100% !important;
        justify-content: space-between !important;
        padding: 18px 20px !important;
        font-size: 16px !important;
        font-weight: 500 !important;
        color: rgba(255, 255, 255, 0.85) !important;
        border-radius: 12px !important;
        text-align: left;
        background: transparent;
        border: none;
        cursor: pointer;
    }

    .fa-site-nav__link:hover,
    .fa-site-nav__link.is-active {
        background: rgba(255, 255, 255, 0.08) !important;
        color: #fff !important;
    }

    .fa-site-nav__link.is-active {
        color: #E63946 !important;
    }

    /* Dropdown simple en mobile : ouvert direct, indenté */
    .fa-dropdown-simple {
        position: static !important;
        transform: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        display: flex !important;
        flex-direction: column;
        background: transparent !important;
        box-shadow: none !important;
        padding: 4px 0 12px 12px !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    .fa-dropdown-simple__link {
        color: rgba(255, 255, 255, 0.7) !important;
        padding: 12px 20px !important;
        font-size: 15px !important;
        border-radius: 8px !important;
        text-decoration: none !important;
    }

    .fa-dropdown-simple__link:hover,
    .fa-dropdown-simple__link.is-active {
        background: rgba(255, 255, 255, 0.05) !important;
        color: #fff !important;
    }

    /* Section "Rubriques" : header de groupe au-dessus du dropdown */
    .fa-site-nav__item--has-menu .fa-site-nav__link {
        font-weight: 700 !important;
        font-size: 13px !important;
        color: rgba(255, 255, 255, 0.5) !important;
        text-transform: uppercase !important;
        letter-spacing: 0.1em !important;
        padding: 16px 20px 8px !important;
        pointer-events: none;
    }

    /* Cacher le caret du dropdown */
    .fa-site-nav__caret {
        display: none !important;
    }

    /* Empêcher le scroll de la page derrière le menu */
    body.fa-menu-is-open {
        overflow: hidden !important;
    }
}

/* Forcer le z-index du header en dessous du menu */
.fa-site-header {
    z-index: 100;
}

/* ==========================================================================
   v4.6 — Fix overflow horizontal sur tout le site (responsive global)
   ========================================================================== */

html, body {
    max-width: 100vw !important;
    overflow-x: hidden !important;
}

/* Tout container ne dépasse JAMAIS de l'écran */
body * {
    max-width: 100%;
}

img, video, iframe {
    max-width: 100%;
    height: auto;
}

/* Mobile : réduire la marge des sections pour donner de l'espace */
@media (max-width: 768px) {
    /* Sections home */
    .fa-hero-master,
    .fa-perso-list-section,
    .fa-perso-section {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .fa-hero-master {
        padding-top: 48px !important;
        padding-bottom: 48px !important;
    }

    /* Sections inline */
    section[style*="padding:80px 32px"],
    section[style*="padding:64px 32px"],
    section[style*="padding:100px 32px"] {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    /* Carte hero stats : moins de padding */
    .fa-hero-master__card {
        padding: 20px !important;
    }

    .fa-hero-master__card-num {
        font-size: clamp(36px, 12vw, 48px) !important;
    }

    .fa-hero-master__card-stat-num {
        font-size: 18px !important;
    }

    /* Single articles */
    .fa-single__header {
        padding: 40px 16px 24px !important;
    }

    .fa-single__container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .fa-single__hero {
        margin-left: 16px !important;
        margin-right: 16px !important;
        border-radius: 12px !important;
    }

    /* Archive */
    .fa-archive-hero {
        padding: 48px 16px 24px !important;
    }

    .fa-archive-body {
        padding: 32px 16px 60px !important;
    }
}

/* Très petit : encore plus serré */
@media (max-width: 480px) {
    .fa-hero-master__grid {
        gap: 32px !important;
    }

    .fa-hero-master__title {
        font-size: clamp(26px, 8vw, 36px) !important;
    }

    .fa-hero-master__subtitle {
        font-size: 15px !important;
    }
}

/* ==========================================================================
   v4.9 — Bouton primaire universel (style home page)
   ========================================================================== */

.fa-btn-primary,
a.fa-btn-primary,
button.fa-btn-primary,
input[type="submit"].fa-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    background: #0A0A0A !important;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 14px;
    font-weight: 600;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.25s var(--fa-ease);
    text-transform: none;
    letter-spacing: 0;
    font-family: inherit;
    line-height: 1;
}

.fa-btn-primary:hover {
    background: #E63946 !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(230, 57, 70, 0.3);
}

.fa-btn-primary:active {
    transform: translateY(0);
}

.fa-btn-primary svg,
.fa-btn-primary .fa-btn-primary__arrow {
    width: 16px;
    height: 16px;
    transition: transform 0.2s;
}

.fa-btn-primary:hover svg,
.fa-btn-primary:hover .fa-btn-primary__arrow {
    transform: translateX(4px);
}

/* Variante secondaire (outline) */
.fa-btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    background: transparent !important;
    color: #0A0A0A !important;
    text-decoration: none !important;
    font-size: 14px;
    font-weight: 600;
    border: 1.5px solid #0A0A0A;
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.25s var(--fa-ease);
}

.fa-btn-secondary:hover {
    background: #0A0A0A !important;
    color: #fff !important;
}

/* Forcer le style fa-btn-primary sur les boutons submit des formulaires */
body.fa-custom-header .fa-form button[type="submit"],
body.fa-custom-header .fa-form input[type="submit"],
body.fa-custom-header form button[type="submit"]:not(.no-fa-style),
body.fa-custom-header .wp-block-button__link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 14px 28px !important;
    background: #0A0A0A !important;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    border: none !important;
    border-radius: 999px !important;
    cursor: pointer !important;
    transition: all 0.25s var(--fa-ease) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
    width: auto !important;
}

body.fa-custom-header .fa-form button[type="submit"]:hover,
body.fa-custom-header .fa-form input[type="submit"]:hover,
body.fa-custom-header form button[type="submit"]:not(.no-fa-style):hover {
    background: #E63946 !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(230, 57, 70, 0.3);
}

/* ==========================================================================
   v4.9 — Pages Contact + Annonceurs RESPONSIVE (refonte mobile)
   ========================================================================== */

/* Sur tablet/mobile, les colonnes 1fr 1.3fr deviennent une seule colonne */
@media (max-width: 900px) {
    /* Contact : grille de 2 colonnes → 1 */
    body.page-id-contact .fa-content-grid,
    body.fa-custom-header section[style*="grid-template-columns:1fr 1.3fr"] > div,
    body.fa-custom-header section [style*="grid-template-columns:1fr 1.3fr"] {
        display: flex !important;
        flex-direction: column !important;
        gap: 32px !important;
    }

    /* Tous les sections inline avec padding latéral 32px → 16px sur mobile */
    body.fa-custom-header section[style*="padding:64px 32px"],
    body.fa-custom-header section[style*="padding:80px 32px"],
    body.fa-custom-header section[style*="padding:100px 32px"],
    body.fa-custom-header section[style*="padding:120px 32px"] {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

@media (max-width: 600px) {
    /* Réduire encore les paddings des grids */
    body.fa-custom-header [style*="padding:40px"] {
        padding: 24px !important;
    }
    body.fa-custom-header [style*="padding:48px"] {
        padding: 24px !important;
    }
    body.fa-custom-header [style*="padding:36px"] {
        padding: 20px !important;
    }

    /* Titres h1 plus petits sur mobile */
    body.fa-custom-header h1 {
        font-size: clamp(28px, 7vw, 40px) !important;
    }

    /* Les "76px" qui débordent (ancien hero contact) */
    body.fa-custom-header section [style*="clamp(40px,6vw,76px)"] {
        font-size: clamp(28px, 7vw, 40px) !important;
    }
}

/* ==========================================================================
   v5.0 — Responsive Contact / Annonceurs (forcer en colonne sur mobile)
   ========================================================================== */

/* Les grilles inline avec grid-template-columns:1fr 1.3fr ou 1fr 1fr 1fr
   sont sur les pages Contact et Annonceurs. On les force en colonne sur mobile.
   Les styles inline ont une spécificité 1000, donc on utilise !important. */

@media (max-width: 900px) {
    /* Toutes les grilles WordPress en 2/3 colonnes → 1 seule */
    body.page div[style*="grid-template-columns:1fr 1.3fr"],
    body.page div[style*="grid-template-columns: 1fr 1.3fr"],
    body.page div[style*="grid-template-columns:1.3fr 1fr"],
    body.page div[style*="grid-template-columns: 1.3fr 1fr"] {
        display: flex !important;
        flex-direction: column !important;
        gap: 32px !important;
    }

    /* Réduire le padding latéral des sections inline */
    body.page section[style*="padding:64px 32px"],
    body.page section[style*="padding: 64px 32px"],
    body.page section[style*="padding:80px 32px"],
    body.page section[style*="padding: 80px 32px"],
    body.page section[style*="padding:100px 32px"],
    body.page section[style*="padding: 100px 32px"] {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* Le formulaire (encadré gris) plus serré */
    body.page div[style*="padding:40px"][style*="border-radius:20px"],
    body.page div[style*="padding: 40px"][style*="border-radius:20px"] {
        padding: 24px !important;
    }
}

@media (max-width: 600px) {
    /* Les 3 cartes "01 / 02 / 03" sur Annonceurs forcer en 1 colonne */
    body.page div[style*="grid-template-columns:repeat(auto-fit,minmax(260px,1fr))"],
    body.page div[style*="grid-template-columns: repeat(auto-fit,minmax(260px,1fr))"],
    body.page div[style*="grid-template-columns:repeat(auto-fit,minmax(240px,1fr))"] {
        grid-template-columns: 1fr !important;
    }

    /* Plus de padding réduit */
    body.page div[style*="padding:28px"][style*="border-radius"] {
        padding: 20px !important;
    }

    /* Boutons full-width sur mobile pour le formulaire */
    body.page form button[type="submit"],
    body.page form .fa-btn {
        width: 100% !important;
        justify-content: center !important;
        padding: 14px 20px !important;
    }
}

/* ==========================================================================
   v5.7 — Pages légales (mentions, confidentialité)
   ========================================================================== */

.fa-legal {
    font-size: 16px;
    line-height: 1.7;
    color: #2a2a2a;
}

.fa-legal h2 {
    font-size: 22px !important;
    font-weight: 800 !important;
    letter-spacing: -0.015em !important;
    color: #0A0A0A !important;
    margin: 40px 0 14px !important;
    line-height: 1.2 !important;
}

.fa-legal h2:first-child {
    margin-top: 0 !important;
}

.fa-legal p {
    margin: 0 0 16px 0;
    font-size: 16px;
    line-height: 1.7;
    color: #2a2a2a;
}

.fa-legal ul {
    margin: 0 0 16px 0;
    padding-left: 22px;
}

.fa-legal li {
    margin-bottom: 8px;
    line-height: 1.6;
}

.fa-legal strong {
    color: #0A0A0A;
    font-weight: 700;
}

.fa-legal a {
    color: #E63946;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.fa-legal a:hover {
    color: #C92E3C;
}

@media (max-width: 600px) {
    .fa-legal h2 { font-size: 19px !important; }
    .fa-legal, .fa-legal p, .fa-legal li { font-size: 15px; }
}

/* ==========================================================================
   v5.9 — Single post layout 2 colonnes (article + sidebar)
   ========================================================================== */

.fa-single__layout {
    max-width: 1200px;
    margin: 0 auto;
    padding: 48px 40px 80px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 64px;
    align-items: start;
}

.fa-single__main {
    min-width: 0;
    max-width: 760px; /* confort de lecture, mais la colonne reste pleine largeur */
    width: 100%;
}

.fa-single__sidebar {
    position: sticky;
    top: 100px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 340px;
}

/* Blocs sidebar */
.fa-sidebar-block {
    background: #FFFFFF;
    border: 1px solid #EEEEEE;
    border-radius: 16px;
    padding: 20px;
}

.fa-sidebar-block__title {
    font-size: 12px !important;
    font-weight: 700 !important;
    color: #E63946 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    margin: 0 0 16px 0 !important;
    padding-bottom: 12px;
    border-bottom: 1px solid #EEEEEE;
}

.fa-sidebar-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.fa-sidebar-card {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 12px;
    text-decoration: none !important;
    color: #0A0A0A !important;
    transition: opacity 0.2s;
}

.fa-sidebar-card:hover {
    opacity: 0.7;
}

.fa-sidebar-card__image {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 8px;
    background: #F5F5F5;
}

.fa-sidebar-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
}

.fa-sidebar-card__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.fa-sidebar-card__kicker {
    font-size: 10px;
    font-weight: 700;
    color: #E63946;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.fa-sidebar-card__title {
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: #0A0A0A !important;
    margin: 0 !important;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.fa-sidebar-card__meta {
    font-size: 11px;
    color: #6B7280;
    font-weight: 500;
}

/* Bloc Newsletter sidebar */
.fa-sidebar-block--newsletter {
    background: #0A0A0A;
    color: #fff;
    border-color: #0A0A0A;
}

.fa-sidebar-block--newsletter .fa-sidebar-block__title {
    color: #E63946 !important;
    border-bottom-color: rgba(255,255,255,0.1);
}

.fa-sidebar-newsletter__text {
    font-size: 14px;
    line-height: 1.5;
    color: rgba(255,255,255,0.7);
    margin: 0;
}

/* Responsive : sidebar passe sous l'article */
@media (max-width: 1024px) {
    .fa-single__layout {
        grid-template-columns: 1fr;
        gap: 48px;
        padding: 32px 24px 60px;
        max-width: 820px;
    }
    .fa-single__main {
        max-width: none;
    }
    .fa-single__sidebar {
        position: static;
        width: 100%;
    }
    /* La liste "À lire aussi" passe en grille horizontale sur tablette */
    .fa-single__sidebar .fa-sidebar-list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }
    .fa-single__header,
    .fa-single__video-hero {
        padding-left: 24px;
        padding-right: 24px;
    }
}

@media (max-width: 600px) {
    .fa-single__sidebar .fa-sidebar-list {
        grid-template-columns: 1fr;
    }
    .fa-single__layout {
        padding: 24px 16px 48px;
    }
    .fa-single__header,
    .fa-single__video-hero {
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* ==========================================================================
   v5.9 — Photo hero single : fix object-position mobile
   ========================================================================== */

.fa-single__hero {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 16px 40px;
    aspect-ratio: auto !important;
    max-height: none !important;
    background: transparent !important;
    border-radius: 0 !important;
}

.fa-single__hero img {
    width: 100% !important;
    height: auto !important;
    max-height: 520px;
    object-fit: cover;
    object-position: center 25%;
    border-radius: 16px;
    display: block;
}

@media (max-width: 768px) {
    .fa-single__hero {
        padding: 12px 16px;
    }
    .fa-single__hero img {
        max-height: 280px;
        object-position: center 20%;
        border-radius: 12px;
    }
}

/* ==========================================================================
   v5.9 — Commentaires WordPress
   ========================================================================== */

.fa-single__comments {
    margin-top: 56px;
    padding-top: 40px;
    border-top: 1px solid #EEEEEE;
}

.fa-single__comments .comments-title,
.fa-single__comments #comments h2,
.fa-single__comments .comment-reply-title {
    font-size: 22px !important;
    font-weight: 800 !important;
    letter-spacing: -0.015em !important;
    color: #0A0A0A !important;
    margin: 0 0 24px 0 !important;
}

.fa-single__comments .comment-list {
    list-style: none;
    padding: 0;
    margin: 0 0 40px 0;
}

.fa-single__comments .comment-body {
    padding: 20px;
    background: #FAFAFA;
    border-radius: 12px;
    margin-bottom: 16px;
}

.fa-single__comments .comment-author {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.fa-single__comments .comment-author .avatar {
    border-radius: 50%;
    width: 40px !important;
    height: 40px !important;
}

.fa-single__comments .comment-author .fn {
    font-weight: 700;
    color: #0A0A0A;
}

.fa-single__comments .comment-metadata {
    font-size: 12px;
    color: #6B7280;
    margin-bottom: 12px;
}

.fa-single__comments .comment-content {
    font-size: 15px;
    line-height: 1.6;
    color: #2a2a2a;
}

.fa-single__comments .comment-reply-link {
    display: inline-block;
    margin-top: 8px;
    font-size: 13px;
    color: #E63946;
    text-decoration: none;
    font-weight: 600;
}

.fa-single__comments .comment-form input[type="text"],
.fa-single__comments .comment-form input[type="email"],
.fa-single__comments .comment-form input[type="url"],
.fa-single__comments .comment-form textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #E8E8E8;
    border-radius: 10px;
    font-size: 15px;
    font-family: inherit;
    margin-top: 6px;
}

.fa-single__comments .comment-form label {
    font-size: 13px;
    font-weight: 600;
    color: #0A0A0A;
}

.fa-single__comments .comment-form-comment,
.fa-single__comments .comment-form-author,
.fa-single__comments .comment-form-email {
    margin-bottom: 16px;
}

.fa-single__comments .form-submit input[type="submit"],
.fa-single__comments .form-submit button {
    display: inline-flex !important;
    align-items: center !important;
    padding: 14px 28px !important;
    background: #0A0A0A !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    cursor: pointer;
    transition: all 0.2s;
}

.fa-single__comments .form-submit input[type="submit"]:hover,
.fa-single__comments .form-submit button:hover {
    background: #E63946 !important;
}

/* ==========================================================================
   v5.9 — Hero accueil : visuel d'ambiance subtil en arrière-plan
   ========================================================================== */

.fa-hero-master {
    position: relative;
    overflow: hidden;
}

/* Motif géométrique subtil derrière le contenu */
.fa-hero-master::before {
    content: '';
    position: absolute;
    top: 0;
    right: -100px;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle at center, rgba(230, 57, 70, 0.04) 0%, transparent 60%);
    pointer-events: none;
    z-index: 0;
}

.fa-hero-master::after {
    content: '';
    position: absolute;
    bottom: -200px;
    left: -150px;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle at center, rgba(30, 43, 90, 0.05) 0%, transparent 60%);
    pointer-events: none;
    z-index: 0;
}

.fa-hero-master__grid {
    position: relative;
    z-index: 1;
}

/* Effet "lecture" sur la carte chiffres : léger flottement */
.fa-hero-master__card {
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.04);
}

/* ==========================================================================
   v6.0 — Lien "Voir tous" sobre en haut à droite des sections home
   (même style que la section personnalités)
   ========================================================================== */

.fa-section-see-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #0A0A0A !important;
    text-decoration: none !important;
    padding: 8px 16px;
    border-radius: 999px;
    transition: all 0.2s;
}

.fa-section-see-all:hover {
    background: #0A0A0A;
    color: #fff !important;
}

.fa-section-see-all svg {
    transition: transform 0.2s;
}

.fa-section-see-all:hover svg {
    transform: translateX(3px);
}

/* ==========================================================================
   v6.0 — Lien "Voir tout" en haut à droite des sections (style uniforme)
   ========================================================================== */

.fa-section-see-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #0A0A0A !important;
    text-decoration: none !important;
    padding: 8px 16px;
    border-radius: 999px;
    transition: all 0.2s;
    white-space: nowrap;
}

.fa-section-see-all:hover {
    background: #0A0A0A;
    color: #fff !important;
}

.fa-section-see-all svg {
    transition: transform 0.2s;
}

.fa-section-see-all:hover svg {
    transform: translateX(3px);
}

/* ==========================================================================
   v6.1 — Nouveau hero : bandeau défilant dynamique + titre + pills (centré)
   ========================================================================== */

.fa-hero {
    background: #FAF8F5;
    width: 100%;
    max-width: 100%;
}

/* Force le hero à casser tout container parent qui le limiterait
   (Kadence/Gutenberg appliquent parfois une max-width au contenu) */
.fa-hero,
.entry-content .fa-hero,
.fa-fullwidth .fa-hero,
.single-content .fa-hero {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Bandeau défilant — toujours pleine largeur */
.fa-hero__ticker {
    background: #0A0A0A;
    color: #fff;
    display: flex;
    align-items: center;
    overflow: hidden;
    width: 100%;
}

.fa-hero__ticker-tag {
    background: #E63946;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 14px 18px;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    z-index: 2;
}

.fa-hero__ticker-tag::before {
    content: '';
    width: 7px;
    height: 7px;
    background: #fff;
    border-radius: 50%;
    animation: fa-hero-pulse 1.6s infinite;
}

@keyframes fa-hero-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(1.3); }
}

.fa-hero__ticker-viewport {
    overflow: hidden;
    flex: 1;
}

.fa-hero__ticker-track {
    display: flex;
    align-items: center;
    gap: 48px;
    white-space: nowrap;
    animation: fa-hero-scroll 18s linear infinite;
    padding-left: 48px;
    width: max-content;
}

.fa-hero__ticker:hover .fa-hero__ticker-track {
    animation-play-state: paused;
}

@keyframes fa-hero-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

.fa-hero__ticker-item {
    font-size: 14px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    transition: color 0.2s;
    white-space: nowrap;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
}

.fa-hero__ticker-item:hover {
    color: #fff;
}

.fa-hero__ticker-item b {
    color: #E63946;
    margin-right: 8px;
    font-weight: 700;
    white-space: nowrap;
}

/* Corps du hero (centré) */
.fa-hero__body {
    padding: 80px 56px;
    text-align: center;
    max-width: 960px;
    margin: 0 auto;
}

.fa-hero__title {
    font-size: clamp(38px, 6vw, 84px) !important;
    font-weight: 800 !important;
    line-height: 0.98 !important;
    letter-spacing: -0.04em !important;
    color: #0A0A0A !important;
    margin: 0 0 28px 0 !important;
}

.fa-hero__subtitle {
    font-size: 20px;
    color: #6B7280;
    margin: 0 0 40px 0;
    line-height: 1.5;
}

.fa-hero__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.fa-hero__pill {
    font-size: 13px;
    font-weight: 600;
    color: #0A0A0A;
    padding: 9px 20px;
    background: #FFFFFF;
    border: 1px solid rgba(10, 10, 10, 0.12);
    border-radius: 999px;
}

@media (max-width: 768px) {
    .fa-hero__body {
        padding: 48px 20px;
    }
    .fa-hero__title {
        font-size: clamp(30px, 9vw, 44px) !important;
    }
    .fa-hero__subtitle {
        font-size: 17px;
        margin-bottom: 28px;
    }
    .fa-hero__ticker-tag {
        font-size: 11px;
        padding: 12px 14px;
    }
    .fa-hero__ticker-item {
        font-size: 13px;
    }
}

/* ==========================================================================
   v6.5 — Hero ticker : pleine largeur écran (méthode calc full-bleed)
   ========================================================================== */

/* Méthode full-bleed fiable : fonctionne MÊME si le conteneur parent a un
   padding ou une max-width. Le hero "déborde" jusqu'aux bords de la fenêtre
   sans créer de scroll horizontal. C'est la technique de référence. */
.fa-hero {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    position: relative;
    box-sizing: border-box;
}

.fa-hero__ticker {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

/* Empêcher tout débordement horizontal global (le full-bleed peut en créer
   si un parent ne masque pas l'overflow) */
html, body {
    overflow-x: hidden !important;
    max-width: 100% !important;
}

/* ==========================================================================
   v6.9 — Hero full-bleed : structure réelle #inner-wrap.wrap > .fa-fullwidth-main
   ========================================================================== */

/* Neutraliser largeur/padding des conteneurs réels (vus à l'inspection) */
#inner-wrap.wrap,
main#inner-wrap.wrap,
.fa-fullwidth-main {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Le hero en pleine largeur avec technique calc (au cas où un parent garde une marge) */
.fa-hero {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 0 !important;
    box-sizing: border-box;
    position: relative;
}

.fa-hero__ticker {
    width: 100% !important;
    max-width: 100% !important;
}

/* Empêcher scroll horizontal global */
html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}
