/*
Theme Name: InfoAchat
Theme URI: https://infoachat.fr
Author: InfoAchat
Description: Thème custom « Synthèse honnête » pour infoachat.fr. Guide d'achat par curation de sources vérifiées. Palette bleu de Prusse / crème papier / rouge signal, typographies Fraunces + Inter + JetBrains Mono.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: infoachat
*/

/* ==========================================================================
   Tokens
   ========================================================================== */
:root {
  --ia-ink: #1B2A4E;        /* bleu de Prusse : autorité, fonds tech */
  --ia-ink-soft: #2E4272;
  --ia-paper: #F7F1E5;      /* crème papier : fond principal */
  --ia-paper-2: #F0EAD5;    /* fond de section alternée */
  --ia-pill: #E8DFC9;       /* fond des pills data */
  --ia-signal: #D2413B;     /* rouge signal : accents, scores, CTA */
  --ia-data: #6B8E5E;       /* vert data : kickers sources, validations */
  --ia-data-soft: #A9C7A0;
  --ia-text: #111827;
  --ia-muted: #4B5563;

  --ia-serif: 'Fraunces', 'Times New Roman', serif;
  --ia-sans: 'Inter', system-ui, -apple-system, sans-serif;
  --ia-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Mono', monospace;

  --ia-wrap: 1200px;
  --ia-pad: clamp(20px, 4vw, 44px);
}

/* ==========================================================================
   Base
   ========================================================================== */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--ia-sans);
  font-size: 17px;
  line-height: 1.65;
  color: var(--ia-text);
  background: var(--ia-paper);
  font-optical-sizing: auto;
}
img { max-width: 100%; height: auto; }
a { color: var(--ia-ink); text-decoration: none; }
a:hover { color: var(--ia-signal); }
h1, h2, h3, h4 { font-family: var(--ia-serif); font-weight: 400; letter-spacing: -0.01em; color: var(--ia-ink); line-height: 1.1; margin: 0 0 0.5em; }
p { margin: 0 0 1.2em; }

.ia-wrap { max-width: var(--ia-wrap); margin: 0 auto; padding-left: var(--ia-pad); padding-right: var(--ia-pad); }

.ia-kicker {
  font-family: var(--ia-mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.ia-kicker--signal { color: var(--ia-signal); }
.ia-kicker--data { color: var(--ia-data); }

.ia-serif-i { font-family: var(--ia-serif); font-style: italic; }
.ia-dot { color: var(--ia-signal); font-style: normal; font-weight: 500; }

/* Filet fin */
.ia-rule { height: 1px; background: var(--ia-ink); opacity: 0.2; border: 0; margin: 0; }

/* ==========================================================================
   Header
   ========================================================================== */
.ia-header {
  display: flex; justify-content: space-between; align-items: center; gap: 20px;
  padding: 18px var(--ia-pad);
  border-bottom: 1px solid rgba(27, 42, 78, 0.2);
  background: var(--ia-paper);
  max-width: var(--ia-wrap); margin: 0 auto;
  flex-wrap: nowrap;
}
.ia-nav { flex: 1 1 auto; justify-content: flex-end; }
.ia-brand { display: flex; align-items: center; gap: 12px; }
.ia-brand__mark { position: relative; width: 38px; height: 38px; flex-shrink: 0; }
.ia-brand__disc { position: absolute; inset: 0; background: var(--ia-ink); border-radius: 999px; }
.ia-brand__i {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  color: var(--ia-paper); font-family: var(--ia-serif); font-style: italic; font-weight: 500;
  font-size: 22px; padding-bottom: 3px;
}
.ia-brand__dot {
  position: absolute; bottom: -1px; right: -1px; width: 10px; height: 10px;
  background: var(--ia-signal); border-radius: 999px; border: 2px solid var(--ia-paper);
}
.ia-brand__name { font-family: var(--ia-serif); font-size: 25px; letter-spacing: -0.02em; color: var(--ia-ink); font-weight: 500; line-height: 1; }
.ia-brand__name em { font-style: italic; color: var(--ia-signal); font-weight: 400; }
.ia-brand__tag { font-family: var(--ia-mono); font-size: 9.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ia-data); margin-top: 4px; }

.ia-nav { display: flex; gap: 24px; font-size: 13.5px; font-weight: 500; }
.ia-nav a { color: var(--ia-ink); position: relative; padding-bottom: 4px; }
.ia-nav a:hover { color: var(--ia-signal); }
.ia-nav .current-menu-item > a::after,
.ia-nav a[aria-current="page"]::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: var(--ia-signal);
}
.ia-nav ul { display: contents; list-style: none; margin: 0; padding: 0; }
.ia-nav li { display: inline-flex; }

.ia-header__side { display: flex; align-items: center; gap: 10px; }
.ia-header__maj { font-family: var(--ia-mono); font-size: 10.5px; letter-spacing: 0.12em; color: var(--ia-data); white-space: nowrap; }
.ia-search-toggle {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px;
  background: var(--ia-ink); color: var(--ia-paper); border-radius: 999px;
  font-size: 12.5px; font-weight: 600; border: 0; cursor: pointer; font-family: var(--ia-sans);
}
.ia-search-toggle:hover { background: var(--ia-signal); color: var(--ia-paper); }
.ia-search-toggle svg { width: 13px; height: 13px; }

/* ==========================================================================
   Hero (front page + entêtes d'article)
   ========================================================================== */
.ia-dossier-band { display: flex; align-items: center; gap: 16px; margin-bottom: 32px; flex-wrap: wrap; }
.ia-dossier-band__label { font-family: var(--ia-serif); font-style: italic; font-size: 15px; color: var(--ia-signal); font-weight: 500; }
.ia-dossier-band__num { font-family: var(--ia-serif); font-style: italic; font-size: 42px; color: var(--ia-signal); line-height: 1; }
.ia-dossier-band__rule { flex: 1; height: 1px; background: var(--ia-ink); opacity: 0.25; min-width: 60px; }
.ia-dossier-band__meta { font-family: var(--ia-mono); font-size: 10.5px; letter-spacing: 0.12em; color: var(--ia-ink); text-transform: uppercase; }

.ia-hero { padding: 56px 0 60px; }
.ia-hero__grid { display: grid; grid-template-columns: 7fr 5fr; gap: 32px; align-items: stretch; }
.ia-hero__grid > div:last-child { display: flex; align-items: stretch; }
.ia-hero__grid > div:last-child a { display: block; width: 100%; }
.ia-hero__grid > div:last-child img { width: 100%; height: 100%; min-height: 100%; object-fit: cover; border-radius: 4px; background: var(--ia-paper-2); }
.ia-hero__over { font-family: var(--ia-serif); font-size: clamp(24px, 3vw, 32px); line-height: 1.05; color: var(--ia-data); }
.ia-hero__title {
  font-family: var(--ia-serif); font-style: italic; font-weight: 400;
  font-size: clamp(44px, 8vw, 88px); line-height: 0.92; letter-spacing: -0.03em;
  color: var(--ia-ink); margin: 0;
}
.ia-hero__title .ia-dot { font-style: normal; }
.ia-chapo { display: flex; gap: 22px; align-items: flex-start; margin-top: 22px; }
.ia-chapo__bar { width: 3px; align-self: stretch; background: var(--ia-signal); flex-shrink: 0; }
.ia-chapo p { font-size: 17px; line-height: 1.6; margin: 0; }

.ia-actions { display: flex; gap: 8px; align-items: center; margin-top: 20px; flex-wrap: wrap; }
.ia-btn {
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--ia-ink); color: var(--ia-paper);
  padding: 13px 22px; font-size: 13.5px; font-weight: 600; letter-spacing: 0.02em;
  border: 0; cursor: pointer;
}
.ia-btn:hover { background: var(--ia-signal); color: var(--ia-paper); }
.ia-btn--ghost { background: transparent; color: var(--ia-ink); border-bottom: 1px solid var(--ia-ink); padding: 13px 8px; }
.ia-btn--ghost:hover { background: transparent; color: var(--ia-signal); border-color: var(--ia-signal); }

/* Stats pills (hero) */
.ia-stats { display: flex; gap: 12px; margin-top: 24px; flex-wrap: wrap; }
.ia-stat { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: var(--ia-pill); border-radius: 4px; }
.ia-stat__num { font-family: var(--ia-serif); font-style: italic; font-size: 22px; color: var(--ia-signal); font-weight: 500; line-height: 1; }
.ia-stat__label { font-family: var(--ia-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ia-ink); line-height: 1.25; }

/* ==========================================================================
   Cards synthèses
   ========================================================================== */
.ia-section { padding: 48px 0 56px; }
.ia-section--alt { background: var(--ia-paper-2); }
.ia-section__head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 28px; gap: 16px; flex-wrap: wrap; }
.ia-section__title { font-size: clamp(28px, 4vw, 38px); margin: 6px 0 0; }
.ia-section__title em { font-style: italic; color: var(--ia-signal); }
.ia-section__more { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--ia-ink); }

.ia-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ia-card {
  background: var(--ia-paper); padding: 20px; border: 1px solid rgba(27, 42, 78, 0.12);
  display: flex; flex-direction: column; gap: 12px; color: inherit;
}
.ia-card:hover { border-color: var(--ia-signal); color: inherit; }
.ia-card__top { display: flex; justify-content: space-between; align-items: flex-start; }
.ia-card__num { font-family: var(--ia-serif); font-style: italic; font-size: 30px; color: var(--ia-data); line-height: 1; }
.ia-card__cat { font-family: var(--ia-mono); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ia-data); }
.ia-card__title { font-family: var(--ia-serif); font-size: 22px; letter-spacing: -0.01em; line-height: 1.15; color: var(--ia-ink); }
.ia-card__title em { font-style: italic; color: var(--ia-signal); }
.ia-card__excerpt { font-size: 13px; color: var(--ia-muted); line-height: 1.5; }
.ia-card__excerpt p { margin: 0; }
.ia-card__foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 8px; }
.ia-card__pick { display: flex; align-items: center; gap: 8px; font-family: var(--ia-mono); font-size: 10px; letter-spacing: 0.08em; color: var(--ia-muted); }
.ia-card__srccount { font-family: var(--ia-mono); font-size: 10px; letter-spacing: 0.08em; color: var(--ia-data); }
.ia-card__thumb { margin: -20px -20px 4px; }
.ia-card__thumb img { display: block; width: 100%; aspect-ratio: 5 / 3; object-fit: cover; }

/* ==========================================================================
   Badge de note conic-gradient  (--pct : pourcentage rempli)
   ========================================================================== */
.ia-score {
  --pct: 85%;
  --ring: var(--ia-signal);
  --hole: var(--ia-paper);
  --txt: var(--ia-ink);
  width: 52px; height: 52px; border-radius: 999px; flex-shrink: 0;
  background: conic-gradient(var(--ring) 0 var(--pct), rgba(27, 42, 78, 0.12) var(--pct) 100%);
  display: inline-flex; align-items: center; justify-content: center;
}
.ia-score__in {
  width: 42px; height: 42px; background: var(--hole); border-radius: 999px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
}
.ia-score__val { font-family: var(--ia-serif); font-size: 17px; font-weight: 500; color: var(--txt); line-height: 1; }
.ia-score__max { font-family: var(--ia-mono); font-size: 8px; color: var(--ia-data); }
.ia-score--sm { width: 30px; height: 30px; }
.ia-score--sm .ia-score__in { width: 24px; height: 24px; }
.ia-score--sm .ia-score__val { font-size: 11px; }
.ia-score--sm .ia-score__max { display: none; }
.ia-score--lg { width: 68px; height: 68px; }
.ia-score--lg .ia-score__in { width: 56px; height: 56px; }
.ia-score--lg .ia-score__val { font-size: 24px; }
.ia-score--inverse { --hole: var(--ia-ink); --txt: var(--ia-paper); }

/* ==========================================================================
   Data pills avec source citée
   ========================================================================== */
.ia-pills { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; margin: 28px 0; }
.ia-pill {
  background: var(--ia-paper-2);
  border: 1px solid rgba(210, 65, 59, 0.35);
  border-left: 3px solid var(--ia-signal);
  border-radius: 6px; padding: 14px 16px;
}
.ia-pill--data { border-color: rgba(107, 142, 94, 0.5); border-left-color: var(--ia-data); }
.ia-pill__label { font-family: var(--ia-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ia-signal); margin-bottom: 6px; }
.ia-pill--data .ia-pill__label { color: var(--ia-data); }
.ia-pill__value { font-family: var(--ia-serif); font-size: 20px; font-weight: 500; color: var(--ia-ink); line-height: 1.15; }
.ia-pill__src { font-family: var(--ia-mono); font-size: 9px; color: var(--ia-muted); margin-top: 6px; letter-spacing: 0.06em; text-transform: uppercase; }

/* Sur fond ink (encadré produit vedette) */
.ia-on-ink .ia-pill { background: rgba(247, 241, 229, 0.08); }
.ia-on-ink .ia-pill__value { color: var(--ia-paper); }
.ia-on-ink .ia-pill__src { color: var(--ia-pill); opacity: 0.6; }
.ia-on-ink .ia-pill--data .ia-pill__label { color: var(--ia-data-soft); }

/* ==========================================================================
   Encadré « L'essentiel »
   ========================================================================== */
.ia-essentiel {
  background: var(--ia-paper-2); color: var(--ia-ink);
  padding: 26px 26px; border: 0; border-left: 4px solid var(--ia-signal);
  border-radius: 0 8px 8px 0; margin: 36px 0;
  box-shadow: 0 2px 12px rgba(27, 42, 78, 0.06);
}
.ia-essentiel__head { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.ia-essentiel__dot { width: 8px; height: 8px; background: var(--ia-signal); border-radius: 999px; }
.ia-essentiel__label { font-family: var(--ia-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ia-signal); }
.ia-essentiel ol { list-style: none; margin: 0; padding: 0; counter-reset: iaess; }
.ia-essentiel ol li {
  counter-increment: iaess;
  position: relative; display: block; padding-left: 36px;
  font-size: 14.5px; line-height: 1.65; margin-bottom: 14px;
}
.ia-essentiel ol li:last-child { margin-bottom: 0; }
.ia-essentiel ol li::before {
  content: counter(iaess);
  position: absolute; left: 0; top: 2px;
  width: 22px; height: 22px; border-radius: 3px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 12px;
  background: var(--ia-ink); color: var(--ia-paper);
}
.ia-essentiel ol li:first-child::before { background: var(--ia-signal); }
.ia-essentiel ol li:nth-child(2)::before { background: var(--ia-data); }

/* ==========================================================================
   Podium (lignes de classement)
   ========================================================================== */
.ia-podium { display: flex; flex-direction: column; gap: 12px; margin: 28px 0; }
.ia-podium-row {
  display: grid; grid-template-columns: 54px 2fr 1fr 1fr 1fr 68px;
  gap: 16px; align-items: center; padding: 18px 22px;
  background: var(--ia-paper); border: 1.5px solid var(--ia-ink);
}
.ia-podium-row--featured { background: var(--ia-ink); color: var(--ia-paper); border-color: var(--ia-ink); }
.ia-podium-row__rank {
  width: 42px; height: 42px; border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--ia-serif); font-style: italic; font-size: 22px; font-weight: 500;
  border: 2px solid var(--ia-ink); color: var(--ia-ink); background: var(--ia-paper);
}
.ia-podium-row--featured .ia-podium-row__rank { background: var(--ia-signal); color: var(--ia-paper); border-color: var(--ia-signal); }
.ia-podium-row__name { font-weight: 700; font-size: 15.5px; }
.ia-podium-row__verdict { font-family: var(--ia-serif); font-style: italic; font-size: 12.5px; color: var(--ia-data); margin-top: 4px; }
.ia-podium-row--featured .ia-podium-row__verdict { color: var(--ia-data-soft); }
.ia-podium-row__cell .ia-cell-label {
  font-family: var(--ia-mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ia-data); margin-bottom: 3px;
}
.ia-podium-row--featured .ia-cell-label { color: var(--ia-pill); opacity: 0.6; }
.ia-podium-row__cell .ia-cell-value { font-size: 13.5px; }
.ia-podium-row__cell .ia-cell-value--price { font-family: var(--ia-serif); font-size: 18px; font-weight: 500; }
.ia-podium-row .ia-score { justify-self: end; }
.ia-podium-row--featured .ia-score { --hole: var(--ia-ink); --txt: var(--ia-paper); --ring: var(--ia-signal); }
.ia-podium-row:not(.ia-podium-row--featured) .ia-score { --ring: var(--ia-ink); }

/* Note disclaimer sous tableau */
.ia-note {
  display: flex; align-items: center; gap: 10px; margin: 20px 0;
  padding: 12px 16px; background: var(--ia-pill); border-left: 3px solid var(--ia-signal);
  font-family: var(--ia-mono); font-size: 10.5px; letter-spacing: 0.06em; color: var(--ia-ink);
}
.ia-note strong, .ia-note b { color: var(--ia-signal); }
.ia-note svg { flex-shrink: 0; }

/* ==========================================================================
   Sections sur fond bleu de Prusse (la tech nuancée)
   ========================================================================== */
.ia-ink-section { background: var(--ia-ink); color: var(--ia-paper); padding: 48px 0 56px; }
.ia-ink-section h2, .ia-ink-section h3 { color: var(--ia-paper); }
.ia-ink-section a { color: var(--ia-data-soft); }
.ia-ink-section a:hover { color: var(--ia-signal); }
.ia-ink-section .ia-dossier-band__rule { background: var(--ia-paper); }

/* Grille « nos sources » */
.ia-sources { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 24px 0; }
.ia-source-card {
  background: rgba(247, 241, 229, 0.06); border: 1px solid rgba(247, 241, 229, 0.15);
  border-radius: 4px; padding: 14px;
}
.ia-source-card__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.ia-source-card__label { font-family: var(--ia-mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ia-signal); }
.ia-source-card__count { font-family: var(--ia-serif); font-style: italic; font-size: 22px; color: var(--ia-paper); }
.ia-source-card__body { font-size: 12.5px; line-height: 1.5; color: var(--ia-pill); }

/* Bandeau engagement (dans section ink) */
.ia-pledge {
  display: flex; align-items: center; gap: 10px; margin-top: 22px;
  padding: 11px 14px; background: rgba(210, 65, 59, 0.15);
  border-left: 3px solid var(--ia-signal); border-radius: 2px;
  font-family: var(--ia-mono); font-size: 10.5px; letter-spacing: 0.06em; color: var(--ia-paper);
}
.ia-pledge strong, .ia-pledge b { color: var(--ia-signal); font-weight: 700; }

/* ==========================================================================
   CTA affilié
   ========================================================================== */
.ia-cta {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  background: var(--ia-signal); color: var(--ia-paper);
  padding: 12px 16px; border-radius: 4px;
  font-size: 13.5px; font-weight: 700; margin: 20px 0 6px;
}
.ia-cta:hover { background: var(--ia-ink); color: var(--ia-paper); }
.ia-cta__label { display: flex; align-items: center; gap: 8px; }
.ia-cta__price { font-family: var(--ia-mono); font-size: 10px; opacity: 0.85; }
.ia-cta-legal {
  font-family: var(--ia-mono); font-size: 9px; letter-spacing: 0.08em;
  color: var(--ia-muted); text-align: center; text-transform: uppercase; margin-bottom: 20px;
}

/* ==========================================================================
   Article (single)
   ========================================================================== */
.ia-article-head { padding: 48px 0 24px; }
.ia-article-head__title {
  font-family: var(--ia-serif); font-style: italic; font-weight: 400;
  font-size: clamp(38px, 6.5vw, 72px); line-height: 0.94; letter-spacing: -0.02em;
  color: var(--ia-ink); margin: 0 0 20px;
}
.ia-article-head__over { font-family: var(--ia-serif); font-size: clamp(22px, 3vw, 30px); color: var(--ia-data); line-height: 1.1; margin-bottom: 4px; }

.ia-byline { display: flex; gap: 20px; margin: 26px 0 0; }
.ia-byline__avatar {
  width: 44px; height: 44px; border-radius: 999px; flex-shrink: 0;
  background: var(--ia-ink); color: var(--ia-paper);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--ia-serif); font-size: 15px; font-weight: 500;
}
.ia-byline__body { border-left: 1px solid rgba(27, 42, 78, 0.2); padding-left: 20px; }
.ia-byline__role { font-family: var(--ia-serif); font-style: italic; font-size: 14px; color: var(--ia-data); }
.ia-byline__quote { font-size: 13.5px; margin-top: 4px; color: var(--ia-muted); line-height: 1.5; max-width: 420px; }

/* Contenu : largeur pleine (règle du parc), corps 17px/1.65 */
.ia-content { padding: 8px 0 48px; }
.ia-content > p:first-child, .ia-article-body > p:first-child { font-size: 19px; line-height: 1.6; color: var(--ia-ink); }
.ia-content h2 {
  font-size: clamp(26px, 3.5vw, 34px);
  margin: 1.8em 0 0.7em;
}
.ia-content h2::before {
  content: ""; display: block; width: 34px; height: 3px;
  background: var(--ia-signal); margin-bottom: 16px;
}
.ia-content h2 em { font-style: italic; color: var(--ia-signal); }
.ia-content h3 { font-size: clamp(19px, 2.4vw, 24px); margin: 1.5em 0 0.5em; color: var(--ia-ink); }
.ia-content ul, .ia-content ol { padding-left: 24px; }
.ia-content li { margin-bottom: 0.5em; }

/* FAQ en cartes question/réponse */
.ia-faq h3 {
  background: var(--ia-paper-2); margin: 18px 0 0;
  padding: 16px 20px 10px; border-radius: 8px 8px 0 0;
  font-size: 19px; border-left: 3px solid var(--ia-signal);
}
.ia-faq h3 + p {
  background: var(--ia-paper-2); margin: 0 0 8px;
  padding: 0 20px 16px; border-radius: 0 0 8px 8px;
  font-size: 15px; border-left: 3px solid var(--ia-signal);
}
.ia-faq h2 { border-top: 0; }
.ia-content blockquote {
  margin: 1.5em 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--ia-signal);
  font-family: var(--ia-serif); font-style: italic; font-size: 1.12em; color: var(--ia-ink);
}
.ia-content table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: 14.5px; }
.ia-content table th {
  font-family: var(--ia-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ia-data); text-align: left; padding: 10px 12px; border-bottom: 1.5px solid var(--ia-ink);
}
.ia-content table td { padding: 12px; border-bottom: 1px solid rgba(27, 42, 78, 0.12); }
.ia-content table tr:hover td { background: rgba(27, 42, 78, 0.03); }
.ia-content .wp-block-image { margin: 1.6em 0; }
.ia-content figcaption { font-family: var(--ia-mono); font-size: 10.5px; letter-spacing: 0.06em; color: var(--ia-muted); margin-top: 8px; }

/* ==========================================================================
   Bloc produit affilié
   ========================================================================== */
.ia-product {
  position: relative;
  display: grid; grid-template-columns: 150px minmax(0, 1fr) auto;
  gap: 22px; align-items: center;
  background: #fff; border: 1.5px solid var(--ia-ink); border-radius: 8px;
  padding: 20px 22px; margin: 30px 0;
  box-shadow: 0 3px 14px rgba(27, 42, 78, 0.07);
}
.ia-product__badge {
  position: absolute; top: -12px; left: 20px;
  background: var(--ia-signal); color: var(--ia-paper);
  font-family: var(--ia-mono); font-size: 10px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 4px 12px; border-radius: 999px;
}
.ia-product__img { display: block; }
.ia-product__img img { display: block; width: 150px; height: 130px; object-fit: contain; }
.ia-product__name { font-family: var(--ia-serif); font-size: 21px; font-weight: 500; letter-spacing: -0.01em; line-height: 1.2; }
.ia-product__name a { color: var(--ia-ink); }
.ia-product__name a:hover { color: var(--ia-signal); }
.ia-product__specs { font-family: var(--ia-mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ia-data); margin-top: 8px; }
.ia-product__note { font-family: var(--ia-serif); font-style: italic; font-size: 14px; color: var(--ia-muted); margin-top: 8px; }
.ia-product__action { text-align: center; }
.ia-product__cta {
  display: inline-flex; align-items: center; gap: 9px;
  background: var(--ia-signal); color: var(--ia-paper);
  padding: 12px 20px; border-radius: 6px;
  font-size: 13.5px; font-weight: 700; white-space: nowrap;
}
.ia-product__cta:hover { background: var(--ia-ink); color: var(--ia-paper); }
.ia-product__price { font-family: var(--ia-serif); font-size: 15px; font-weight: 500; color: var(--ia-ink); margin-top: 8px; }
.ia-product__legal { font-family: var(--ia-mono); font-size: 8.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ia-muted); margin-top: 6px; }
@media (max-width: 760px) {
  .ia-product { grid-template-columns: 1fr; text-align: center; }
  .ia-product__img img { margin: 0 auto; }
}

/* ==========================================================================
   Layout article : sommaire sticky + corps
   ========================================================================== */
.ia-layout { display: grid; grid-template-columns: 248px minmax(0, 1fr); gap: 56px; align-items: start; }
.ia-article-body { min-width: 0; }
.ia-toc {
  position: sticky; top: 28px;
  background: var(--ia-paper-2); border-radius: 8px;
  padding: 20px 18px; border-left: 3px solid var(--ia-signal);
}
.ia-toc__label {
  font-family: var(--ia-mono); font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ia-signal); margin-bottom: 14px;
  display: flex; align-items: center; gap: 8px;
}
.ia-toc__label::before { content: ""; width: 7px; height: 7px; background: var(--ia-signal); border-radius: 999px; }
.ia-toc ol { list-style: none; margin: 0; padding: 0; }
.ia-toc li { margin: 0; }
.ia-toc a {
  display: block; padding: 7px 10px; margin-left: -10px;
  font-size: 13px; line-height: 1.4; color: var(--ia-ink);
  border-left: 2px solid transparent; border-radius: 0 4px 4px 0;
}
.ia-toc a:hover { color: var(--ia-signal); }
.ia-toc a.is-active {
  color: var(--ia-signal); font-weight: 600;
  border-left-color: var(--ia-signal); background: rgba(210, 65, 59, 0.06);
}
@media (max-width: 1000px) {
  .ia-layout { grid-template-columns: 1fr; gap: 24px; }
  .ia-toc { position: static; }
}

/* ==========================================================================
   Archives
   ========================================================================== */
.ia-archive-head { padding: 44px 0 8px; }
.ia-archive-head h1 { font-size: clamp(34px, 5vw, 52px); font-style: italic; }
.ia-archive-grid { padding: 24px 0 56px; }

.ia-pagination { display: flex; gap: 8px; justify-content: center; padding: 8px 0 48px; font-family: var(--ia-mono); font-size: 12px; }
.ia-pagination a, .ia-pagination span { padding: 8px 13px; border: 1px solid rgba(27, 42, 78, 0.25); color: var(--ia-ink); }
.ia-pagination .current { background: var(--ia-ink); color: var(--ia-paper); border-color: var(--ia-ink); }
.ia-pagination a:hover { border-color: var(--ia-signal); color: var(--ia-signal); }

/* ==========================================================================
   Footer
   ========================================================================== */
.ia-footer { border-top: 1px solid rgba(27, 42, 78, 0.25); padding: 40px 0 36px; background: var(--ia-paper); }
.ia-footer__grid { display: flex; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.ia-footer__brand .ia-brand__name { font-size: 18px; }
.ia-footer__tagline { font-family: var(--ia-serif); font-style: italic; font-size: 13.5px; color: var(--ia-data); max-width: 340px; line-height: 1.5; margin-top: 12px; }
.ia-footer__cols { display: flex; gap: 40px; flex-wrap: wrap; }
.ia-footer__col { display: flex; flex-direction: column; gap: 8px; }
.ia-footer__col-label { font-family: var(--ia-mono); font-size: 9.5px; letter-spacing: 0.14em; color: var(--ia-signal); text-transform: uppercase; margin-bottom: 4px; }
.ia-footer__col a { font-size: 12.5px; color: var(--ia-ink); }
.ia-footer__col a:hover { color: var(--ia-signal); }
.ia-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }

/* ==========================================================================
   Recherche
   ========================================================================== */
.ia-searchform { display: flex; gap: 8px; margin: 20px 0; }
.ia-searchform input[type="search"] {
  flex: 1; padding: 12px 16px; font-family: var(--ia-sans); font-size: 15px;
  border: 1.5px solid var(--ia-ink); background: var(--ia-paper); color: var(--ia-text);
}
.ia-searchform input[type="search"]:focus { outline: 2px solid var(--ia-signal); outline-offset: 1px; }

/* ==========================================================================
   Hero « slim » (pages hub type coups-de-coeur)
   ========================================================================== */
.ia-hero--slim { padding: 44px 0 32px; }
.ia-hero--slim .ia-chapo { max-width: 720px; margin-top: 20px; }

/* ==========================================================================
   Page /coups-de-coeur : filtres par catégorie
   ========================================================================== */
.ia-picks-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 28px; }
.ia-picks-filter {
  font-family: var(--ia-sans); font-size: 13px; font-weight: 600;
  padding: 9px 14px; border-radius: 999px; cursor: pointer;
  border: 1px solid rgba(27, 42, 78, 0.18); background: var(--ia-paper); color: var(--ia-ink);
  touch-action: manipulation; -webkit-tap-highlight-color: rgba(210, 65, 59, 0.2);
  min-height: 40px; transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.ia-picks-filter span { font-family: var(--ia-mono); font-size: 11px; opacity: 0.55; margin-left: 6px; font-weight: 400; }
.ia-picks-filter:hover { border-color: var(--ia-signal); color: var(--ia-signal); }
.ia-picks-filter.is-active { background: var(--ia-ink); color: var(--ia-paper); border-color: var(--ia-ink); }
.ia-picks-filter.is-active span { opacity: 0.7; }
.ia-picks-empty { font-family: var(--ia-serif); font-style: italic; color: var(--ia-muted); text-align: center; padding: 40px 0; }

/* ==========================================================================
   Home : grille « Nos coups de cœur »
   ========================================================================== */
.ia-picks-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin-top: 12px; }
.ia-picks-card { display: flex; flex-direction: column; gap: 6px; background: var(--ia-paper); padding: 18px; border-radius: 4px; text-decoration: none; color: var(--ia-ink); border: 1px solid rgba(27, 42, 78, 0.06); transition: transform 0.15s ease, box-shadow 0.2s ease; position: relative; }
.ia-picks-card::before { content: 'Coup de cœur'; position: absolute; top: 12px; right: 12px; z-index: 2; font-family: var(--ia-mono); font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; background: var(--ia-signal); color: var(--ia-paper); padding: 3px 7px; border-radius: 2px; }
.ia-picks-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(15, 28, 63, 0.1); }
.ia-picks-card__img { display: block; margin: -18px -18px 6px; background: var(--ia-paper-2); overflow: hidden; }
.ia-picks-card__img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; padding: 14px; background: var(--ia-paper); }
.ia-picks-card__cat { font-family: var(--ia-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ia-data); margin-top: 4px; }
.ia-picks-card__name { font-family: var(--ia-serif); font-weight: 500; font-size: 17px; line-height: 1.2; color: var(--ia-ink); }
.ia-picks-card__note { font-family: var(--ia-serif); font-style: italic; font-size: 13px; line-height: 1.45; color: var(--ia-muted); flex: 1; }
.ia-picks-card__cta { display: inline-flex; align-items: center; gap: 6px; font-family: var(--ia-sans); font-size: 12.5px; font-weight: 600; color: var(--ia-signal); margin-top: 6px; }
@media (max-width: 1100px) {
  .ia-picks-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .ia-picks-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 500px) {
  .ia-picks-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Listicle enseignes (article « où acheter »)
   ========================================================================== */
.ia-store { background: var(--ia-paper); border: 1px solid rgba(27, 42, 78, 0.08); border-left: 3px solid var(--ia-signal); border-radius: 4px; padding: 22px 24px 24px; margin: 22px 0; }
.ia-store__head { margin-bottom: 14px; }
.ia-store__type { font-family: var(--ia-mono); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ia-data); margin-bottom: 4px; }
.ia-store__name { font-family: var(--ia-serif); font-weight: 500; font-size: 26px; line-height: 1.15; color: var(--ia-ink); margin: 0; }
.ia-store__pitch { font-family: var(--ia-serif); font-style: italic; font-size: 15px; color: var(--ia-muted); margin: 6px 0 0; line-height: 1.5; }
.ia-store__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin: 14px 0 16px; }
.ia-store__label { font-family: var(--ia-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ia-signal); margin-bottom: 6px; }
.ia-store__weakness .ia-store__label { color: var(--ia-data); }
.ia-store ul { margin: 0; padding: 0; list-style: none; }
.ia-store ul li { position: relative; padding-left: 18px; font-size: 14.5px; line-height: 1.55; color: var(--ia-ink); margin-bottom: 5px; }
.ia-store__strengths ul li::before { content: '+'; position: absolute; left: 0; top: 0; font-family: var(--ia-mono); font-size: 15px; font-weight: 700; color: var(--ia-signal); }
.ia-store__weakness ul li::before { content: '−'; position: absolute; left: 0; top: 0; font-family: var(--ia-mono); font-size: 15px; font-weight: 700; color: var(--ia-data); }
.ia-store__cta { display: inline-flex; align-items: center; gap: 8px; font-family: var(--ia-sans); font-weight: 600; font-size: 13.5px; color: var(--ia-ink); text-decoration: none; padding: 8px 0; border-bottom: 1px solid rgba(27, 42, 78, 0.2); transition: color 0.15s ease, border-color 0.15s ease; }
.ia-store__cta:hover { color: var(--ia-signal); border-color: var(--ia-signal); }
@media (max-width: 700px) {
  .ia-store { padding: 18px 18px 20px; }
  .ia-store__grid { grid-template-columns: 1fr; gap: 14px; }
  .ia-store__name { font-size: 22px; }
}

/* ==========================================================================
   Sidebar : Coup de cœur (sticky sous le sommaire)
   ========================================================================== */
.ia-pick { display: block; margin-top: 20px; padding: 16px 16px 18px; background: var(--ia-paper); border-left: 3px solid var(--ia-signal); border-radius: 4px; text-decoration: none; color: var(--ia-ink); box-shadow: 0 2px 12px rgba(15, 28, 63, 0.06); transition: box-shadow 0.2s ease, transform 0.15s ease; }
.ia-pick:hover { box-shadow: 0 4px 20px rgba(15, 28, 63, 0.12); transform: translateY(-1px); }
.ia-pick__badge { display: inline-block; font-family: var(--ia-mono); font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; background: var(--ia-signal); color: var(--ia-paper); padding: 3px 8px; border-radius: 3px; margin-bottom: 10px; }
.ia-pick__img { display: block; margin: 4px 0 10px; }
.ia-pick__img img { display: block; width: 100%; max-width: 160px; height: auto; margin: 0 auto; background: var(--ia-paper-2); border-radius: 3px; }
.ia-pick__name { display: block; font-family: var(--ia-serif); font-weight: 500; font-size: 17px; line-height: 1.25; color: var(--ia-ink); margin-bottom: 6px; }
.ia-pick__note { display: block; font-family: var(--ia-serif); font-style: italic; font-size: 13px; line-height: 1.45; color: var(--ia-muted); margin-bottom: 12px; }
.ia-pick__cta { display: inline-flex; align-items: center; gap: 6px; font-family: var(--ia-sans); font-size: 12.5px; font-weight: 600; color: var(--ia-signal); }
.ia-pick__cta svg { transition: transform 0.2s ease; }
.ia-pick:hover .ia-pick__cta svg { transform: translateX(3px); }
@media (max-width: 900px) {
  .ia-pick { display: none; }
}

/* ==========================================================================
   Bloc « À lire aussi » (fin d'article)
   ========================================================================== */
.ia-related { background: var(--ia-paper-2); padding: 56px 0 64px; margin-top: 56px; border-top: 1px solid rgba(27, 42, 78, 0.08); }
.ia-related__label { font-family: var(--ia-mono); font-size: 11.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ia-signal); margin-bottom: 6px; }
.ia-related__title { font-family: var(--ia-serif); font-weight: 500; font-size: clamp(28px, 3.6vw, 40px); line-height: 1.1; color: var(--ia-ink); margin: 0 0 32px; }
.ia-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ia-related__card { display: flex; flex-direction: column; gap: 8px; background: var(--ia-paper); padding: 20px; border-radius: 4px; text-decoration: none; color: var(--ia-ink); transition: transform 0.15s ease; }
.ia-related__card:hover { transform: translateY(-2px); }
.ia-related__thumb { margin: -20px -20px 4px; }
.ia-related__thumb img { display: block; width: 100%; aspect-ratio: 5 / 3; object-fit: cover; }
.ia-related__top { font-family: var(--ia-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ia-data); }
.ia-related__ptitle { font-family: var(--ia-serif); font-weight: 500; font-size: 20px; line-height: 1.2; color: var(--ia-ink); }
.ia-related__excerpt { font-family: var(--ia-sans); font-size: 14px; color: var(--ia-muted); line-height: 1.5; }
@media (max-width: 900px) {
  .ia-related__grid { grid-template-columns: 1fr; }
  .ia-related { padding: 40px 0 48px; margin-top: 40px; }
}

/* ==========================================================================
   Bandeau vedette (single)
   ========================================================================== */
.ia-hero-media { margin: 32px 0 0; padding: 0; }
.ia-hero-media img {
  display: block; width: 100%; height: auto;
  aspect-ratio: 21 / 9; object-fit: cover;
  border-radius: 4px;
  background: var(--ia-paper-2);
}
@media (max-width: 760px) {
  .ia-hero-media { margin-top: 20px; }
  .ia-hero-media img { aspect-ratio: 16 / 10; border-radius: 3px; }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 900px) {
  .ia-hero__grid { grid-template-columns: 1fr; }
  .ia-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ia-podium-row { grid-template-columns: 42px 1fr 68px; }
  .ia-podium-row__cell { display: none; }
  .ia-nav { display: none; }
}
@media (max-width: 600px) {
  .ia-cards { grid-template-columns: 1fr; }
  .ia-header { justify-content: center; }
  .ia-header__maj { display: none; }
  .ia-footer__grid { flex-direction: column; }
  .ia-card__thumb { margin: -16px -16px 4px; }
}

/* ==========================================================================
   Bandeau consentement (mesure d'audience)
   ========================================================================== */
#ia-consent {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 2147483000;
  max-width: 560px; margin: 0 auto;
  background: var(--ia-ink); color: var(--ia-paper);
  padding: 16px 18px; border-radius: 6px;
  box-shadow: 0 8px 30px rgba(15, 28, 63, 0.35);
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  pointer-events: auto; isolation: isolate;
}
#ia-consent[aria-hidden="true"] { display: none !important; }
#ia-consent p { margin: 0; font-size: 13px; line-height: 1.5; flex: 1 1 300px; }
#ia-consent a { color: var(--ia-data-soft); text-decoration: underline; }
#ia-consent a:hover { color: var(--ia-paper); }
.ia-consent__actions { display: flex; gap: 8px; }
.ia-consent__actions button {
  font-family: var(--ia-sans); font-size: 13px; font-weight: 600;
  padding: 12px 20px; border-radius: 4px; cursor: pointer; border: 0;
  touch-action: manipulation; -webkit-tap-highlight-color: rgba(210, 65, 59, 0.35);
  min-height: 44px; min-width: 96px;
  -webkit-user-select: none; user-select: none;
  pointer-events: auto; position: relative; z-index: 1;
}
@media (max-width: 600px) {
  #ia-consent { flex-direction: column; align-items: stretch; padding: 18px; }
  #ia-consent p { flex: 1 1 auto; }
  .ia-consent__actions { width: 100%; }
  .ia-consent__actions button { flex: 1; }
}
#ia-consent-no { background: transparent; color: var(--ia-paper); border: 1px solid rgba(247, 241, 229, 0.4); }
#ia-consent-no:hover { border-color: var(--ia-paper); }
#ia-consent-yes { background: var(--ia-signal); color: var(--ia-paper); }
#ia-consent-yes:hover { background: #b23530; }

/* ==========================================================================
   WP requis
   ========================================================================== */
.screen-reader-text {
  border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
  padding: 0; position: absolute; width: 1px; word-wrap: normal;
}
.alignwide { margin-left: auto; margin-right: auto; }
.alignfull { width: 100%; }
