/* ============================================================
   SW FA2 — Financial Afrik · feuille de style principale
   Charte issue de la maquette Figma "Projet maquette 1"
   Typo : Source Serif 4 (titres) · Inter (UI) · JetBrains Mono (data)
   ============================================================ */

:root {
	/* Fonds */
	--c-paper: #f8ebe2;        /* saumon de fond */
	--c-faint: #f4ece5;        /* saumon clair (bandes) */
	--c-white: #ffffff;
	--c-border: #ecdfd5;
	/* Encres */
	--c-ink-900: #0a0a0a;
	--c-ink-700: #2a2a2a;
	--c-ink-500: #5a5a5a;
	--c-ink-400: #737373;
	--c-meta: #8a8a8a;         /* gris méta (charte) */
	/* Marque */
	--c-red: #9b2c2c;
	/* Data */
	--c-up: #5a7a4a;
	--c-down: #9b3a3a;
	/* Carte bourse sombre */
	--c-dark: #0f1c30;
	--c-dark-panel: #0b1728;
	--c-dark-line: #25374f;
	--c-dark-mut: #8ba0b8;
	--c-dark-mut2: #6f8299;
	--c-green: #37d07f;
	--c-accent: #2f6df6;
	/* Footer */
	--c-footer: #161616;
	/* Typo */
	--f-serif: "Source Serif 4", Georgia, serif;
	--f-sans: "Inter", -apple-system, sans-serif;
	--f-mono: "JetBrains Mono", monospace;
	--wrap: 1200px;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--c-paper); color: var(--c-ink-900); font-family: var(--f-sans); font-size: 15px; line-height: 1.6; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--c-red); }
h1, h2, h3, h4 { font-family: var(--f-serif); font-weight: 600; line-height: 1.15; margin: 0 0 .4em; }
.fa-wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
.is-up { color: var(--c-up); font-style: normal; }
.is-down { color: var(--c-down); font-style: normal; }
.is-red { color: var(--c-red); }

/* ---------- Boutons ---------- */
.fa-btn { display: inline-block; padding: 10px 18px; font: 600 13px var(--f-sans); border-radius: 2px; border: 1px solid transparent; cursor: pointer; }
.fa-btn--dark { background: var(--c-ink-900); color: #fff; }
.fa-btn--dark:hover { background: var(--c-red); color: #fff; }
.fa-btn--red { background: var(--c-red); color: #fff; }
.fa-btn--red:hover { background: #7d2222; color: #fff; }
.fa-btn--ghost { background: #fff; border-color: var(--c-border); color: var(--c-ink-900); }
.fa-btn--ghost-light { background: transparent; border-color: rgba(255,255,255,.4); color: #fff; }
.fa-kicker { font: 600 11px var(--f-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--c-red); margin: 0 0 6px; }
.fa-kicker--badge { display: inline-block; background: var(--c-red); color: #fff; padding: 5px 12px; }

/* ---------- Topbar ---------- */
.fa-topbar { background: #fff; border-bottom: 1px solid var(--c-border); font-size: 12px; color: var(--c-ink-500); }
.fa-topbar__in { display: flex; align-items: center; gap: 18px; height: 36px; }
.fa-topbar__social { display: flex; gap: 12px; }
.fa-topbar__right { margin-left: auto; display: flex; gap: 14px; align-items: center; }
.fa-topbar__premium { color: var(--c-red); font-weight: 600; }

/* ---------- Masthead / marque ---------- */
.fa-masthead__in { display: flex; align-items: center; justify-content: space-between; padding: 26px 24px; }
.fa-brand__logo { font-family: var(--f-serif); font-size: 34px; font-weight: 600; color: var(--c-ink-900); }
.fa-brand__logo em { color: var(--c-red); }
.fa-brand__f { color: var(--c-red); }
.fa-brand__baseline { margin: 2px 0 0; font-size: 11.5px; color: var(--c-ink-400); }
.fa-masthead__cta { display: flex; gap: 10px; align-items: center; }

/* ---------- Navigation ---------- */
.fa-nav { background: var(--c-faint); border-block: 1px solid var(--c-border); }
.fa-nav__in { display: flex; align-items: center; gap: 18px; }
.fa-nav__list { list-style: none; margin: 0; padding: 0; display: flex; }
.fa-nav__item { position: relative; }
.fa-nav__item > a { display: flex; align-items: center; gap: 5px; padding: 15px 12px; font: 500 14px var(--f-sans); color: var(--c-ink-700); }
.fa-nav__item > a:hover { color: var(--c-red); }
.fa-nav__chev { font-size: 9px; color: var(--c-ink-400); }
/* Sous-menus (dropdown) */
.fa-dd { position: absolute; top: 100%; left: 0; z-index: 50; width: 258px; background: #fff; border: 1px solid var(--c-border); border-top: 3px solid var(--c-red); box-shadow: 0 14px 30px rgba(0,0,0,.1); padding: 16px 18px; display: none; }
.fa-nav__item:hover .fa-dd, .fa-nav__item:focus-within .fa-dd { display: block; }
.fa-dd__title { font: 600 16px var(--f-serif); margin: 0 0 8px; }
.fa-dd ul { list-style: none; margin: 0; padding: 0; }
.fa-dd li a { display: flex; justify-content: space-between; padding: 8px 0; font-size: 13.5px; color: var(--c-ink-700); border-top: 1px solid var(--c-faint); }
.fa-dd li a::after { content: "›"; color: var(--c-ink-400); }
.fa-dd__all { display: block; margin-top: 10px; font: 600 12.5px var(--f-sans); color: var(--c-red); }
/* Menus WP natifs (wp_nav_menu à 2 niveaux) */
.fa-nav__list .sub-menu { position: absolute; top: 100%; left: 0; z-index: 50; min-width: 230px; background: #fff; border: 1px solid var(--c-border); border-top: 3px solid var(--c-red); box-shadow: 0 14px 30px rgba(0,0,0,.1); padding: 8px 0; display: none; list-style: none; }
.fa-nav__list li:hover > .sub-menu, .fa-nav__list li:focus-within > .sub-menu { display: block; }
.fa-nav__list .sub-menu a { display: block; padding: 8px 16px; font-size: 13.5px; }
/* Recherche */
.fa-search { margin-left: auto; display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--c-border); border-radius: 3px; padding: 8px 12px; min-width: 320px; }
.fa-search input { border: 0; outline: 0; width: 100%; font: 400 13px var(--f-sans); background: transparent; }
.fa-search__icon { color: var(--c-ink-400); }

/* ---------- Ticker ---------- */
.fa-ticker { display: flex; align-items: center; gap: 16px; background: #fff; border-bottom: 1px solid var(--c-border); padding: 9px 24px; font-family: var(--f-mono); font-size: 11px; overflow: hidden; }
.fa-ticker__live { color: var(--c-red); font-weight: 700; white-space: nowrap; }
.fa-ticker__dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--c-red); animation: fa-blink 1.4s infinite; }
@keyframes fa-blink { 50% { opacity: .25; } }
.fa-ticker__scroll { display: flex; gap: 26px; white-space: nowrap; }
.fa-ticker__item em { font-style: normal; }
.fa-ticker__item em.is-up { color: var(--c-up); }
.fa-ticker__item em.is-down { color: var(--c-down); }

/* ---------- Zones pub ---------- */
.fa-ad { max-width: var(--wrap); margin: 22px auto; padding: 34px 24px; background: repeating-linear-gradient(45deg, #efe2d7, #efe2d7 12px, #f4ece5 12px, #f4ece5 24px); border: 1px dashed var(--c-border); text-align: center; color: var(--c-ink-400); font: 600 11px var(--f-sans); text-transform: uppercase; letter-spacing: .12em; }

/* ---------- Layout 2 colonnes ---------- */
.fa-layout { display: grid; grid-template-columns: 1fr 340px; gap: 32px; padding-top: 30px; padding-bottom: 30px; align-items: start; }
.fa-layout__main { min-width: 0; }

/* ---------- Home ---------- */
.fa-home__masthead h1 { font-size: 44px; letter-spacing: -.015em; margin: 28px 0 4px; }
.fa-hero__img { display: block; margin-bottom: 14px; }
.fa-hero__title { font-size: 34px; }
.fa-hero__title a:hover { color: var(--c-red); }
.fa-hero__excerpt { color: var(--c-ink-500); font-size: 15.5px; max-width: 60ch; }
.fa-byline { font-size: 12.5px; color: var(--c-ink-500); }
.fa-byline:hover { color: var(--c-red); }

/* Sections */
.fa-section-head { display: flex; align-items: baseline; gap: 14px; border-left: 5px solid var(--c-red); padding-left: 12px; margin: 38px 0 18px; }
.fa-section-head h2 { font-size: 26px; margin: 0; }
.fa-section-head a { margin-left: auto; font: 600 12.5px var(--f-sans); color: var(--c-red); }
.fa-section-head__count { margin-left: auto; color: var(--c-meta); font-size: 13px; }
.fa-section-head__solo { border-left: 5px solid var(--c-red); padding-left: 12px; font-size: 24px; margin: 30px 0 16px; }
.fa-strip__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.fa-rubric__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }

/* ---------- Cartes article ---------- */
.fa-card { background: #fff; border: 1px solid var(--c-border); border-radius: 4px; padding: 14px; }
.fa-card__thumb img, .fa-card__ph { width: 100%; aspect-ratio: 232/150; object-fit: cover; border-radius: 3px; background: #ddccbe; display: block; margin-bottom: 10px; }
.fa-card__title { font-size: 18px; margin: 4px 0 6px; }
.fa-card__title a:hover { color: var(--c-red); }
.fa-card__excerpt { color: var(--c-ink-500); font-size: 13.5px; margin: 0 0 8px; }
.fa-card__more { font: 600 12px var(--f-sans); color: var(--c-red); }
.fa-card--h { display: flex; gap: 18px; margin-bottom: 16px; }
.fa-card--h .fa-card__thumb { flex: 0 0 232px; }
.fa-card--h .fa-card__thumb img, .fa-card--h .fa-card__ph { margin: 0; }
.fa-card__body { min-width: 0; }

/* Méta */
.fa-meta { display: flex; align-items: center; gap: 7px; margin: 0 0 4px; font-size: 10.5px; }
.fa-meta__cat { color: var(--c-red); font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.fa-meta__sep, .fa-meta__date { color: var(--c-meta); font-weight: 400; }

/* ---------- Market Pulse (home) ---------- */
.fa-pulse { background: #fff; border: 1px solid var(--c-border); border-radius: 4px; padding: 20px; margin-top: 36px; }
.fa-pulse__head { display: flex; align-items: baseline; }
.fa-pulse__head h2 { font-size: 22px; margin: 0; }
.fa-pulse__head a { margin-left: auto; font: 600 12.5px var(--f-sans); color: var(--c-red); }
.fa-pulse__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; margin-top: 14px; }
.fa-pulse__cell { border: 1px solid var(--c-border); border-radius: 3px; padding: 10px 12px; font-family: var(--f-mono); font-size: 12px; display: grid; gap: 2px; }
.fa-pulse__cell:hover { border-color: var(--c-red); }

/* ---------- Sidebar ---------- */
.fa-widget { background: #fff; border: 1px solid var(--c-border); border-radius: 4px; padding: 18px; margin-bottom: 18px; }
.fa-widget__title { font-family: var(--f-sans); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; border-left: 4px solid var(--c-red); padding-left: 9px; margin: 0 0 12px; }
.fa-widget__all { font: 600 12px var(--f-sans); color: var(--c-red); }
.fa-chrono__item { display: flex; gap: 10px; padding: 8px 0; border-top: 1px solid var(--c-faint); font-size: 13.5px; }
.fa-chrono__item:first-of-type { border-top: 0; }
.fa-chrono__item time { font-family: var(--f-mono); font-size: 11px; color: var(--c-red); padding-top: 3px; }
.fa-nl { display: grid; gap: 8px; }
.fa-nl input { padding: 10px 12px; border: 1px solid var(--c-border); border-radius: 2px; font: 400 13px var(--f-sans); }

/* ---------- Article ---------- */
.fa-crumb { font-size: 12.5px; color: var(--c-ink-400); margin: 4px 0 16px; }
.fa-crumb a:hover { color: var(--c-red); }
.fa-article__title { font-size: 38px; letter-spacing: -.01em; }
.fa-article__chapo { font-family: var(--f-serif); font-size: 20px; line-height: 1.5; color: var(--c-ink-700); }
.fa-article__byline { font-size: 12.5px; color: var(--c-ink-500); }
.fa-article__cover img { border-radius: 4px; }
.fa-article__cover figcaption { font-size: 12px; color: var(--c-meta); margin-top: 6px; }
.fa-article__content { font-family: var(--f-serif); font-size: 18.5px; line-height: 1.72; max-width: 72ch; }
.fa-article__content p { margin: 0 0 1.2em; }
.fa-share { display: flex; align-items: center; gap: 8px; margin: 26px 0; font: 600 11px var(--f-sans); text-transform: uppercase; letter-spacing: .06em; color: var(--c-ink-400); }
.fa-share a { display: grid; place-items: center; width: 34px; height: 34px; background: var(--c-ink-900); color: #fff; border-radius: 3px; font-size: 13px; }
.fa-share a:hover { background: var(--c-red); color: #fff; }
.fa-authorbox { display: flex; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--c-border); border-radius: 4px; padding: 16px; }
.fa-authorbox img { border-radius: 50%; }
.fa-authorbox__name { font-family: var(--f-serif); font-weight: 600; font-size: 17px; }
.fa-authorbox p { margin: 2px 0 0; font-size: 13px; color: var(--c-ink-500); }

/* ---------- Rubrique / auteur ---------- */
.fa-rubric__hero { padding-top: 28px; }
.fa-rubric__hero h1 { font-size: 40px; }
.fa-rubric__desc { color: var(--c-ink-500); max-width: 70ch; }
.fa-rubric__count { color: var(--c-meta); font-size: 13px; }
.fa-author__hero { padding-top: 24px; }
.fa-author__head { display: flex; gap: 28px; align-items: flex-start; padding: 10px 0 8px; }
.fa-author__avatar { border-radius: 50%; border: 4px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.fa-author__head h1 { font-size: 36px; margin-bottom: 2px; }
.fa-author__bio { color: var(--c-ink-500); max-width: 72ch; }
.fa-author__actions { display: flex; gap: 8px; align-items: center; }
.fa-sq { display: grid; place-items: center; width: 36px; height: 36px; background: #fff; border: 1px solid var(--c-border); border-radius: 2px; font-weight: 600; font-size: 13px; }

/* ---------- Pagination ---------- */
.pagination, .fa-comments .navigation { margin: 24px 0; }
.page-numbers { display: inline-grid; place-items: center; min-width: 38px; height: 38px; padding: 0 10px; background: #fff; border: 1px solid var(--c-border); border-radius: 2px; font: 500 13px var(--f-sans); margin-right: 6px; }
.page-numbers.current { background: var(--c-red); border-color: var(--c-red); color: #fff; }

/* ---------- CTA Premium ---------- */
.fa-premium { background: var(--c-footer); color: #fff; margin-top: 42px; }
.fa-premium__in { display: flex; gap: 40px; align-items: center; justify-content: space-between; padding-top: 44px; padding-bottom: 44px; }
.fa-premium h2 { font-size: 32px; color: #fff; }
.fa-premium__desc { color: #c9c9c9; max-width: 60ch; }
.fa-premium__actions { display: flex; gap: 10px; }
.fa-premium__price { font-family: var(--f-serif); font-size: 64px; font-weight: 600; white-space: nowrap; }
.fa-premium__price small { display: block; font: 400 12px var(--f-sans); color: #c9c9c9; }
.fa-premium__price span { font: 400 13px var(--f-sans); color: #c9c9c9; }

/* ---------- Pricing ---------- */
.fa-pricing__hero { text-align: center; padding-top: 40px; }
.fa-pricing__hero h1 { font-size: 38px; }
.fa-pricing__hero p { color: var(--c-ink-500); }
.fa-pricing__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding-top: 26px; padding-bottom: 10px; }
.fa-tier { position: relative; background: #fff; border: 1px solid var(--c-border); border-radius: 4px; padding: 24px; }
.fa-tier.is-hot { border: 2px solid var(--c-red); }
.fa-tier__flag { position: absolute; top: -11px; left: 18px; background: var(--c-red); color: #fff; font: 600 10.5px var(--f-sans); text-transform: uppercase; letter-spacing: .08em; padding: 4px 10px; margin: 0; }
.fa-tier h2 { font-size: 20px; }
.fa-tier__price { font-family: var(--f-serif); font-size: 42px; font-weight: 600; margin: 6px 0 14px; }
.fa-tier__price span { font: 400 12.5px var(--f-sans); color: var(--c-meta); }
.fa-tier__feats { list-style: none; margin: 16px 0 0; padding: 0; font-size: 13.5px; color: var(--c-ink-700); }
.fa-tier__feats li { padding: 6px 0; border-top: 1px solid var(--c-faint); }
.fa-pricing__unit { display: flex; align-items: center; gap: 28px; background: #fff; border: 1px solid var(--c-border); border-radius: 4px; padding: 26px; margin: 24px auto 40px; }
.fa-pricing__unit h2 { font-size: 22px; margin: 0; border-left: 5px solid var(--c-red); padding-left: 12px; }
.fa-pricing__unit p { margin: 4px 0 0; color: var(--c-ink-500); }
.fa-pricing__unit-price { margin-left: auto; font-family: var(--f-serif); font-size: 40px; font-weight: 600; white-space: nowrap; }
.fa-pricing__unit-price span { font: 400 12.5px var(--f-sans); color: var(--c-meta); }

/* ---------- Markets ---------- */
.fa-places { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.fa-places__card { background: #fff; border: 1px solid var(--c-border); border-radius: 3px; padding: 13px; }
.fa-places__name { font: 600 11.5px var(--f-sans); text-transform: uppercase; margin: 0; }
.fa-places__city { font: 400 10px var(--f-sans); text-transform: uppercase; color: var(--c-ink-400); margin: 2px 0 6px; }
.fa-places__val { font-family: var(--f-serif); font-size: 20px; font-weight: 600; margin: 0; }
.fa-places__var { font-family: var(--f-mono); font-size: 11px; margin: 3px 0 0; }
.fa-quotes { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--c-border); border-radius: 4px; overflow: hidden; }
.fa-quotes th { background: var(--c-faint); font: 600 10.5px var(--f-sans); text-transform: uppercase; letter-spacing: .04em; color: var(--c-ink-400); text-align: left; padding: 10px 14px; }
.fa-quotes td { padding: 12px 14px; border-top: 1px solid var(--c-border); font-size: 13px; }
.fa-quotes td span { display: block; font-size: 11px; color: var(--c-ink-400); }
.fa-quotes .num { font-family: var(--f-mono); text-align: right; }
.fa-tops__row { display: flex; gap: 8px; padding: 8px 0; border-top: 1px solid var(--c-faint); margin: 0; font-size: 12.5px; }
.fa-tops__row span { color: var(--c-ink-400); }
.fa-tops__row em { margin-left: auto; font-family: var(--f-mono); font-style: normal; }

/* ---------- Carte société cotée (sombre) ---------- */
.fa-stock { background: var(--c-dark); color: #eef4fb; border-radius: 14px; padding: 26px 28px; margin: 18px 0 26px; box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.fa-stock__top { display: flex; align-items: center; justify-content: space-between; }
.fa-stock__ticker { font: 600 28px var(--f-sans); margin: 0; }
.fa-stock__exchange { font: 500 12px var(--f-sans); text-transform: uppercase; letter-spacing: .04em; color: var(--c-dark-mut); margin: 2px 0 0; }
.fa-stock__badge { display: inline-flex; align-items: center; gap: 7px; background: #10251c; border: 1px solid #1c3b2c; color: var(--c-green); border-radius: 20px; padding: 7px 13px; font: 500 12px var(--f-sans); }
.fa-stock__badge span { width: 7px; height: 7px; border-radius: 50%; background: var(--c-green); }
.fa-stock__price { display: flex; justify-content: space-between; align-items: flex-start; margin-top: 18px; }
.fa-stock__label { font-size: 12.5px; color: var(--c-dark-mut); margin: 0 0 4px; }
.fa-stock__last { font: 600 42px var(--f-sans); margin: 0; }
.fa-stock__var { text-align: right; }
.fa-stock__pct { font: 600 26px var(--f-sans); color: var(--c-green); margin: 0; }
.fa-stock__abs { font: 500 15px var(--f-sans); color: var(--c-green); margin: 2px 0 0; }
.fa-stock__chart { margin-top: 20px; }
.fa-stock__pills { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0; }
.fa-stock__pills button { background: #16253c; border: 1px solid #2b3e5a; color: var(--c-dark-mut); font: 600 11.5px var(--f-sans); padding: 6px 10px; border-radius: 6px; cursor: pointer; }
.fa-stock__pills button.is-active { background: var(--c-accent); border-color: var(--c-accent); color: #fff; }
.fa-stock__range { font-size: 12px; color: var(--c-dark-mut); }
.fa-stock__range em.is-up { color: var(--c-green); font-weight: 600; }
.fa-stock__canvas { min-height: 220px; display: grid; place-items: center; background: var(--c-dark-panel); border: 1px solid var(--c-dark-line); border-radius: 10px; color: var(--c-dark-mut2); font-size: 12px; }
.fa-stock__note { font-size: 11.5px; color: var(--c-dark-mut2); }
.fa-stock__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 18px 0 0; }
.fa-stock__cell { background: var(--c-dark-panel); border: 1px solid var(--c-dark-line); border-radius: 8px; padding: 12px 13px; }
.fa-stock__cell dt { font-size: 10px; text-transform: uppercase; letter-spacing: .03em; color: var(--c-dark-mut2); }
.fa-stock__cell dd { margin: 5px 0 0; font: 600 14.5px var(--f-sans); }
.fa-stock__source { border-top: 1px solid var(--c-dark-line); margin-top: 18px; padding-top: 12px; font-size: 11.5px; color: var(--c-dark-mut2); }

/* ---------- Footer ---------- */
.fa-footer { background: var(--c-footer); color: #d5d5d5; margin-top: 48px; font-size: 13.5px; }
.fa-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 36px; padding-top: 46px; padding-bottom: 36px; }
.fa-brand__logo--footer { font-size: 26px; color: #fff; margin: 0 0 10px; }
.fa-footer h4 { font-family: var(--f-sans); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #9a9a9a; border-bottom: 2px solid var(--c-red); display: inline-block; padding-bottom: 6px; }
.fa-footer ul { list-style: none; margin: 12px 0 0; padding: 0; }
.fa-footer li { margin-bottom: 9px; }
.fa-footer a:hover { color: #fff; }
.fa-footer__bar { border-top: 1px solid #2c2c2c; }
.fa-footer__bar-in { display: flex; justify-content: space-between; padding-top: 14px; padding-bottom: 14px; font-size: 12px; color: #8a8a8a; }

/* ---------- Burger + menu mobile ---------- */
.fa-burger { display: none; flex-direction: column; gap: 4px; background: none; border: 0; padding: 8px; cursor: pointer; }
.fa-burger span { width: 20px; height: 2px; background: var(--c-ink-900); }
.fa-mmenu { position: fixed; inset: 0; z-index: 200; background: var(--c-paper); overflow-y: auto; padding: 0 16px 24px; }
.fa-mmenu__bar { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--c-border); }
.fa-brand__logo--sm { font-size: 22px; }
.fa-mmenu__close { background: none; border: 0; font-size: 20px; cursor: pointer; }
.fa-search--menu { margin: 14px 0; min-width: 0; }
.fa-mmenu__home { display: block; padding: 14px 0; color: var(--c-red); font: 600 16px var(--f-serif); border-bottom: 1px solid var(--c-border); }
.fa-mmenu__item { display: flex; width: 100%; align-items: center; justify-content: space-between; background: none; border: 0; border-bottom: 1px solid var(--c-border); padding: 15px 0; font: 600 17px var(--f-serif); color: var(--c-ink-900); cursor: pointer; text-align: left; }
.fa-mmenu__sub { list-style: none; margin: 0; padding: 0 0 8px; }
.fa-mmenu__sub a { display: block; padding: 10px 14px; font-size: 14px; color: var(--c-ink-500); border-bottom: 1px solid var(--c-faint); }
.fa-mmenu__all { color: var(--c-red) !important; font-weight: 600; }
.fa-mmenu__cta { display: block; text-align: center; margin-top: 18px; }

/* ---------- 404 ---------- */
.fa-404 { text-align: center; padding: 80px 24px; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1024px) {
	.fa-layout { grid-template-columns: 1fr; }
	.fa-places { grid-template-columns: repeat(3, 1fr); }
	.fa-pricing__grid { grid-template-columns: repeat(2, 1fr); }
	.fa-stock__grid { grid-template-columns: repeat(2, 1fr); }
	.fa-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
	.fa-nav, .fa-topbar__social { display: none; }
	.fa-burger { display: flex; }
	.fa-masthead__in { padding: 14px 16px; }
	.fa-brand__logo { font-size: 24px; }
	.fa-masthead__cta .fa-btn--ghost { display: none; }
	.fa-home__masthead h1 { font-size: 30px; }
	.fa-hero__title { font-size: 25px; }
	.fa-article__title { font-size: 27px; }
	.fa-strip__grid, .fa-rubric__grid, .fa-pricing__grid { grid-template-columns: 1fr; }
	.fa-card--h { flex-direction: column; }
	.fa-card--h .fa-card__thumb { flex: none; }
	.fa-places { grid-template-columns: repeat(2, 1fr); }
	.fa-premium__in { flex-direction: column; align-items: flex-start; }
	.fa-author__head { flex-direction: column; gap: 14px; }
	.fa-stock { padding: 16px; border-radius: 12px; }
	.fa-stock__last { font-size: 32px; }
	.fa-pricing__unit { flex-wrap: wrap; }
	.fa-footer__grid { grid-template-columns: 1fr; }
	.fa-footer__bar-in { flex-direction: column; gap: 4px; }
}

/* ============================================================
   FSE — habillage des blocs cœur (query loop, pagination, méta)
   ============================================================ */
body { margin: 0; }
.wp-site-blocks { padding: 0; }

/* Listes issues du bloc Query (post-template) */
ul.fa-list { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 18px; }
ul.fa-list.is-grid-2 { grid-template-columns: repeat(2, 1fr); }
ul.fa-list > li { margin: 0; }
ul.fa-list .fa-card { height: 100%; }
ul.fa-list .fa-card--h { margin-bottom: 0; }

/* Vignette (post-featured-image) */
.fa-card__thumb.wp-block-post-featured-image { margin: 0 0 10px; }
.fa-card--h .fa-card__thumb.wp-block-post-featured-image { flex: 0 0 232px; margin: 0; }
.fa-card__thumb.wp-block-post-featured-image img { width: 100%; aspect-ratio: 232/150; object-fit: cover; border-radius: 3px; }

/* Méta (post-terms + post-date) */
.fa-meta.wp-block-group { gap: 7px; margin-bottom: 4px; }
.fa-meta__cat.wp-block-post-terms, .fa-meta__cat.wp-block-post-terms a { color: var(--c-red); font: 600 10.5px var(--f-sans); letter-spacing: .05em; text-transform: uppercase; }
.fa-meta__date.wp-block-post-date, .fa-meta__date.wp-block-post-date time { color: var(--c-meta); font: 400 10.5px var(--f-sans); }

/* Titres et extraits de cartes */
h3.fa-card__title.wp-block-post-title { font-size: 18px; margin: 4px 0 6px; }
h3.fa-card__title.wp-block-post-title a:hover { color: var(--c-red); }
.fa-card__excerpt.wp-block-post-excerpt p { color: var(--c-ink-500); font-size: 13.5px; margin: 0 0 8px; }
.fa-card__excerpt .wp-block-post-excerpt__more-link { font: 600 12px var(--f-sans); color: var(--c-red); }

/* Article single */
h1.fa-article__title.wp-block-post-title { font-size: 38px; letter-spacing: -.01em; }
.fa-article__chapo.wp-block-post-excerpt p { font-family: var(--f-serif); font-size: 20px; line-height: 1.5; color: var(--c-ink-700); }
.fa-article__byline.wp-block-group { gap: 5px; font-size: 12.5px; color: var(--c-ink-500); }
.fa-article__byline p { margin: 0; }
.fa-article__cover.wp-block-post-featured-image img { border-radius: 4px; }
.fa-article__content.wp-block-post-content { font-family: var(--f-serif); font-size: 18.5px; line-height: 1.72; max-width: 72ch; }

/* Pagination du bloc Query */
.fa-pagination.wp-block-query-pagination { display: flex; gap: 8px; align-items: center; margin: 8px 0 24px; font: 500 13px var(--f-sans); }
.fa-pagination .wp-block-query-pagination-numbers .page-numbers { margin-right: 6px; }
.fa-pagination a.wp-block-query-pagination-previous, .fa-pagination a.wp-block-query-pagination-next { display: inline-grid; place-items: center; min-height: 38px; padding: 0 14px; background: #fff; border: 1px solid var(--c-border); border-radius: 2px; }

/* Titres d'archive / recherche */
h1.wp-block-query-title { font-size: 40px; }
.fa-rubric__desc.wp-block-term-description p { margin: 0; }

/* Responsive listes */
@media (max-width: 768px) {
	ul.fa-list.is-grid-2 { grid-template-columns: 1fr; }
	.fa-card--h .fa-card__thumb.wp-block-post-featured-image { flex: none; }
}

/* ============================================================
   v2.1 — habillage des blocs Gutenberg des patterns
   ============================================================ */
.fa-header p, .fa-footer p, .fa-stock p, .fa-ticker p { margin: 0; }
.fa-brand__wrap { margin: 0; }

/* Boutons (core/button) */
.fa-btn-dark .wp-block-button__link, .fa-btn-red .wp-block-button__link, .fa-btn-ghost .wp-block-button__link, .fa-btn-ghost-light .wp-block-button__link { border-radius: 2px; padding: 10px 18px; font: 600 13px var(--f-sans); }
.fa-btn-dark .wp-block-button__link { background: var(--c-ink-900); color: #fff; }
.fa-btn-dark .wp-block-button__link:hover { background: var(--c-red); }
.fa-btn-red .wp-block-button__link { background: var(--c-red); color: #fff; }
.fa-btn-red .wp-block-button__link:hover { background: #7d2222; }
.fa-btn-ghost .wp-block-button__link { background: #fff; border: 1px solid var(--c-border); color: var(--c-ink-900); }
.fa-btn-ghost-light .wp-block-button__link { background: transparent; border: 1px solid rgba(255,255,255,.4); color: #fff; }
.fa-masthead__cta.wp-block-buttons, .fa-premium__actions.wp-block-buttons { gap: 10px; }

/* Réseaux sociaux topbar (core/social-links) */
.fa-topbar__social.wp-block-social-links { gap: 10px; margin: 0; }
.fa-topbar__social .wp-block-social-link { background: none !important; }
.fa-topbar__social .wp-block-social-link a { color: var(--c-ink-500); padding: 0; }
.fa-topbar__social .wp-block-social-link svg { width: 15px; height: 15px; }

/* Navigation (core/navigation) */
.fa-nav .wp-block-navigation a { padding: 15px 12px; font: 500 14px var(--f-sans); color: var(--c-ink-700); }
.fa-nav .wp-block-navigation a:hover { color: var(--c-red); }
.fa-nav .wp-block-navigation .wp-block-navigation__submenu-container { background: #fff; border: 1px solid var(--c-border); border-top: 3px solid var(--c-red); box-shadow: 0 14px 30px rgba(0,0,0,.1); min-width: 240px; }
.fa-nav .wp-block-navigation .wp-block-navigation__submenu-container a { padding: 8px 16px; font-size: 13.5px; }
.fa-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--c-paper); padding: 24px 16px; }
.fa-nav .wp-block-navigation__responsive-container.is-menu-open a { font: 600 17px var(--f-serif); border-bottom: 1px solid var(--c-border); padding: 14px 0; }

/* Recherche nav (core/search) */
.fa-search-block { margin-left: auto; min-width: 320px; }
.fa-search-block .wp-block-search__inside-wrapper { background: #fff; border: 1px solid var(--c-border); border-radius: 3px; padding: 2px 6px; }
.fa-search-block .wp-block-search__input { border: 0; outline: 0; font: 400 13px var(--f-sans); padding: 7px 8px; background: transparent; }
.fa-search-block .wp-block-search__button { background: transparent; border: 0; color: var(--c-ink-400); cursor: pointer; }

/* Fil chrono (query dans la sidebar) */
ul.fa-chrono { list-style: none; margin: 0; padding: 0; }
ul.fa-chrono > li { margin: 0; }
.fa-chrono__item.wp-block-group { gap: 10px; padding: 8px 0; border-top: 1px solid var(--c-faint); }
ul.fa-chrono > li:first-child .fa-chrono__item { border-top: 0; }
.fa-chrono__time.wp-block-post-date { font-family: var(--f-mono); font-size: 11px; color: var(--c-red); padding-top: 3px; }
h4.fa-chrono__title.wp-block-post-title { font-family: var(--f-sans); font-weight: 400; font-size: 13.5px; margin: 0; line-height: 1.45; }

/* Hero home (liste query) */
ul.fa-hero-list { list-style: none; margin: 0 0 10px; padding: 0; }
h2.fa-hero__title.wp-block-post-title { font-size: 34px; }
.fa-hero__excerpt.wp-block-post-excerpt p { color: var(--c-ink-500); font-size: 15.5px; max-width: 60ch; }
ul.fa-list.is-grid-3 { grid-template-columns: repeat(3, 1fr); }

/* Têtes de section (groupe flex) */
.fa-section-head.wp-block-group { gap: 14px; }
.fa-section-head__link { margin-left: auto; }
.fa-section-head__link a { font: 600 12.5px var(--f-sans); color: var(--c-red); }

/* Market Pulse (paragraphes-cellules) */
.fa-pulse__cell { margin: 0; }
.fa-pulse__cell a { display: grid; gap: 2px; border: 1px solid var(--c-border); border-radius: 3px; padding: 10px 12px; font-family: var(--f-mono); font-size: 12px; }
.fa-pulse__cell a:hover { border-color: var(--c-red); }

/* Carte société cotée (paragraphes-cellules) */
.fa-stock__cell-label { font-size: 10px; text-transform: uppercase; letter-spacing: .03em; color: var(--c-dark-mut2); }
.fa-stock__cell-value { margin-top: 5px !important; font: 600 14.5px var(--f-sans); }
.fa-stock__pills.wp-block-buttons { gap: 6px; margin: 8px 0; }
.fa-pill .wp-block-button__link { background: #16253c; border: 1px solid #2b3e5a; color: var(--c-dark-mut); font: 600 11.5px var(--f-sans); padding: 6px 10px; border-radius: 6px; }
.fa-pill.is-active .wp-block-button__link { background: var(--c-accent); border-color: var(--c-accent); color: #fff; }

/* Bloc auteur (core/post-author) */
.fa-authorbox.wp-block-post-author { display: flex; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--c-border); border-radius: 4px; padding: 16px; margin-top: 10px; }
.fa-authorbox .wp-block-post-author__avatar img { border-radius: 50%; }
.fa-authorbox .wp-block-post-author__name { font-family: var(--f-serif); font-weight: 600; font-size: 17px; }
.fa-authorbox .wp-block-post-author__bio { font-size: 13px; color: var(--c-ink-500); }

/* Footer en colonnes (core/columns + core/list) */
.fa-footer__grid.wp-block-columns { gap: 36px; padding-top: 46px; padding-bottom: 36px; margin: 0 auto; }
.fa-footer .wp-block-list { list-style: none; margin: 12px 0 0; padding: 0; }
.fa-footer .wp-block-list li { margin-bottom: 9px; }

/* Table cotations (core/table) */
.fa-quotes-block.wp-block-table { margin: 0 0 24px; }
.fa-quotes-block table { border-collapse: collapse; }

@media (max-width: 1024px) {
	ul.fa-list.is-grid-3 { grid-template-columns: 1fr; }
}

/* ============================================================
   v2.2 — fidélité header maquette (typo titre, marges, sans ticker)
   ============================================================ */
:root { --c-brand: #dd0017; }

/* Marges maquette : contenu 1200px (1440 - 2×120) */
.fa-wrap { max-width: 1248px; padding: 0 24px; }

/* Topbar : 36px de haut (10px de padding vertical), date Inter 12 gris texte */
.fa-topbar__in { height: auto; padding-top: 10px; padding-bottom: 10px; }
.fa-topbar { font-size: 12px; color: var(--c-ink-500); }
.fa-topbar__date { font: 400 12px var(--f-sans); color: var(--c-ink-500); }

/* Masthead : 136px (padding 34 / 30) */
.fa-masthead__in { padding-top: 34px; padding-bottom: 30px; }

/* Titre : Source Serif 4 SemiBold 40px, -1% ; F et A rouge marque, "Afrik" italique noir */
.fa-brand__logo { font-family: var(--f-serif); font-size: 40px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.2; color: var(--c-ink-900); }
.fa-brand__logo em { font-style: italic; color: var(--c-ink-900); }
.fa-brand__f { color: var(--c-brand); }
.fa-brand__baseline { margin-top: 4px; font: 400 11px var(--f-sans); letter-spacing: 0.5px; color: var(--c-ink-400); }

/* Nav : 47px, items Inter Medium 14 #3a3a3a */
.fa-nav .wp-block-navigation a { padding: 15px 12px; font: 500 14px var(--f-sans); color: #3a3a3a; }

/* Recherche : 323px, padding 13, placeholder Inter 13 */
.fa-search-block { min-width: 323px; }
.fa-search-block .wp-block-search__inside-wrapper { padding: 0 13px; height: 36px; align-items: center; }
.fa-search-block .wp-block-search__input { font-size: 13px; padding: 8px 0 8px 9px; }
.fa-search-block .wp-block-search__input::placeholder { color: var(--c-ink-400); }

/* Boutons masthead : padding 9/16, Inter Medium 12.5 (maquette) */
.fa-masthead__cta .wp-block-button__link { padding: 9px 16px; font: 500 12.5px var(--f-sans); }
