/* ══════════════════════════════════════════════════════════════════════════
   Kokoro — kokoro-ai.fr · article.css
   Tout ce qui n'existe que sur un article de blog. Chargé APRÈS site.css, et
   par les articles seulement : inutile de faire porter 12 Ko de styles de
   prose aux pages vitrines.

   Préfixe `.art-` pour la structure, `.pr-` pour les composants que le CORPS
   d'un article peut utiliser. Cette séparation compte : le corps est écrit par
   la rédaction (et par l'IA), pas par un intégrateur. Les classes `.pr-` sont
   le contrat — voir le chapitre « Composants du corps » dans article-template.

   Trois règles héritées du système :
   · un seul accent dominant, le Blue #2782FF ;
   · aucun dégradé, aucune ombre hors les deux recettes verre ;
   · la colonne de texte ne dépasse jamais 68 caractères.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Hero de l'article ───────────────────────────────────────────────────
   Soft Canvas, comme le hero des pages d'offre : l'article s'ouvre sur la
   même matière que le reste du site. */
/* La barre de nav est flottante (`.site-nav-wrap` en sticky, hauteur 0) :
   elle ne pousse rien. Comme .hero et .off-hero, l'en-tête d'article dégage
   donc lui-même la place — sinon le fil d'Ariane passe dessous. */
.art-hero{background:var(--kokoro-soft-canvas);padding-top:clamp(104px,11vw,142px);padding-bottom:clamp(36px,4.4vw,60px)}
.art-hero__inner{max-width:var(--site-max);margin-inline:auto;padding-inline:clamp(20px,4vw,var(--web-margin))}
.art-hero h1{margin:clamp(16px,2vw,24px) 0 0;font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:clamp(31px,4.2vw,58px);line-height:1.07;letter-spacing:-.04em;color:var(--kokoro-black);max-width:20ch}
.art-lead{margin:clamp(18px,2.2vw,26px) 0 0;font-family:var(--font-body);font-size:clamp(17px,1.5vw,20.5px);line-height:1.62;color:var(--kokoro-muted);max-width:62ch}

/* Chip de catégorie : la pilule du système, en Blue franc. */
.art-cat{display:inline-flex;align-items:center;font-family:var(--font-display);font-weight:var(--weight-medium);font-size:14px;line-height:1;padding:9px 17px;border-radius:var(--radius-pill);background:var(--kokoro-blue);color:var(--kokoro-white);text-decoration:none}
a.art-cat:hover{background:var(--kokoro-black);color:var(--kokoro-white)}

/* Ligne de méta : date, mise à jour, durée, auteur. Séparateurs en points
   médians plutôt qu'en icônes — le système n'a pas de jeu d'icônes. */
.art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:clamp(22px,2.6vw,30px) 0 0;padding-top:clamp(18px,2.2vw,24px);border-top:var(--stroke-hairline) solid var(--border-hairline);font-family:var(--font-body);font-size:14.5px;line-height:1.5;color:var(--kokoro-muted)}
.art-meta__item{display:inline-flex;align-items:center;gap:8px}
.art-meta__item+.art-meta__item::before{content:"·";margin-right:10px;color:var(--kokoro-quiet-stone)}
.art-meta a{color:var(--kokoro-blue-link);text-decoration:none}
.art-meta a:hover{color:var(--kokoro-black)}

/* ── Couverture ──────────────────────────────────────────────────────────
   Elle chevauche la bascule Soft Canvas → White : l'image tient la couture
   entre les deux fonds, plutôt que de flotter dans l'un des deux. */
.art-cover{background:linear-gradient(var(--kokoro-soft-canvas) 50%,var(--kokoro-white) 50%)}
.art-cover__inner{max-width:var(--site-max);margin-inline:auto;padding-inline:clamp(20px,4vw,var(--web-margin))}
.art-cover img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-tile-sm)}

/* ── Corps : colonne de texte + colonne collante ─────────────────────────
   La colonne de droite n'apparaît qu'au-delà de 1180 px. En dessous, le CTA
   qu'elle porte est déjà rendu par le bloc de fin d'article : on ne le
   duplique pas, on le masque. */
.art-body{padding-block:clamp(34px,4.4vw,58px) clamp(56px,7vw,96px)}
.art-body__inner{max-width:var(--site-max);margin-inline:auto;padding-inline:clamp(20px,4vw,var(--web-margin));display:grid;grid-template-columns:minmax(0,1fr);column-gap:clamp(36px,4.4vw,64px)}
@media (min-width:1180px){
  .art-body__inner{grid-template-columns:minmax(0,1fr) 300px}
}
.art-main{min-width:0;max-width:68ch}
.art-aside{display:none}
@media (min-width:1180px){
  .art-aside{display:block}
  .art-aside__inner{position:sticky;top:calc(var(--nav-top) + 78px)}
}

/* ── Sommaire ────────────────────────────────────────────────────────────
   Plaque White sur filet, pas de fond gris : le système n'a pas de surface
   intermédiaire entre White et Soft Canvas. */
.art-toc{border:var(--stroke-hairline) solid var(--border-hairline);border-radius:var(--radius-tile-sm);padding:clamp(22px,2.6vw,30px)}
.art-toc__title{display:block;font-family:var(--font-body);font-weight:var(--weight-semibold);font-size:var(--type-eyebrow-size);line-height:var(--type-eyebrow-lh);letter-spacing:var(--type-eyebrow-ls);text-transform:uppercase;color:var(--kokoro-black);opacity:.58;margin-bottom:16px}
.art-toc ol,.art-toc ul{margin:0;padding:0;list-style:none;counter-reset:toc}
.art-toc li{counter-increment:toc;margin-top:11px}
.art-toc li:first-child{margin-top:0}
/* Sous-niveau du sommaire. La classe existait dans les articles Glass Light,
   stylée dans leur <style> inline (padding-left:20px) — que la conversion a
   retiré. Treize articles y ont perdu la hiérarchie de leur sommaire, qui
   s'affichait à plat. Le décalage est maintenant porté par le système. */
.art-toc li.toc-h3{margin-left:26px;counter-increment:none}
.art-toc li.toc-h3 a{font-size:15px;color:var(--kokoro-muted)}
.art-toc li.toc-h3 a::before{content:"—";font-weight:var(--weight-regular)}
.art-toc li.toc-h3 a:hover{color:var(--kokoro-blue-link)}

.art-toc a{display:flex;gap:12px;font-family:var(--font-body);font-size:16px;line-height:1.45;color:var(--kokoro-black);text-decoration:none;transition:color 140ms linear}
.art-toc a::before{content:counter(toc,decimal-leading-zero);flex:0 0 auto;font-weight:var(--weight-semibold);color:var(--kokoro-quiet-stone);transition:color 140ms linear}
.art-toc a:hover{color:var(--kokoro-blue-link)}
.art-toc a:hover::before{color:var(--kokoro-blue-link)}

/* ── Prose ───────────────────────────────────────────────────────────────
   Le corps rédigé. Tout ce qui suit s'applique SANS classe : la rédaction
   écrit du HTML nu, elle ne doit pas avoir à connaître le design system. */
.art-prose{margin-top:clamp(34px,4vw,52px);font-family:var(--font-body);font-size:17.5px;line-height:1.72;color:var(--kokoro-ink)}
.art-prose > :first-child{margin-top:0}

.art-prose h2{margin:clamp(46px,5vw,68px) 0 0;font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:clamp(26px,2.6vw,35px);line-height:1.18;letter-spacing:-.03em;color:var(--kokoro-black);scroll-margin-top:120px}
.art-prose h3{margin:clamp(32px,3.4vw,44px) 0 0;font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:clamp(20.5px,1.9vw,25px);line-height:1.26;letter-spacing:-.02em;color:var(--kokoro-black);scroll-margin-top:120px}
.art-prose h4{margin:clamp(26px,2.8vw,34px) 0 0;font-family:var(--font-display);font-weight:var(--weight-medium);font-size:18.5px;line-height:1.35;letter-spacing:-.01em;color:var(--kokoro-black)}
.art-prose h5{margin:24px 0 0;font-family:var(--font-body);font-weight:var(--weight-semibold);font-size:16.5px;line-height:1.4;color:var(--kokoro-black)}
.art-prose p{margin:clamp(16px,1.7vw,22px) 0 0}
.art-prose strong{font-weight:var(--weight-semibold);color:var(--kokoro-black)}
.art-prose em{font-style:italic}
.art-prose a{color:var(--kokoro-blue-link);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color 140ms linear}
.art-prose a:hover{color:var(--kokoro-black)}
.art-prose small{font-size:14.5px;color:var(--kokoro-muted)}

.art-prose ul,.art-prose ol{margin:clamp(16px,1.7vw,22px) 0 0;padding-left:0;list-style:none}
.art-prose li{position:relative;margin-top:10px;padding-left:30px}
.art-prose ul > li::before{content:"";position:absolute;left:8px;top:.72em;width:7px;height:7px;border-radius:var(--radius-pill);background:var(--kokoro-blue)}
.art-prose ol{counter-reset:pr-ol}
.art-prose ol > li{counter-increment:pr-ol}
/* Le numéro de liste se lit, il n'est pas décoratif : bleu de TEXTE.
   --kokoro-blue donnait 3,12 sur Soft Canvas à la taille du corps. */
.art-prose ol > li::before{content:counter(pr-ol) ".";position:absolute;left:0;top:0;font-family:var(--font-display);font-weight:var(--weight-semibold);color:var(--kokoro-blue-link)}
.art-prose li > ul,.art-prose li > ol{margin-top:8px}

/* Citation : la barre est Blue, le texte passe en display — c'est le seul
   endroit du corps où la voix change. */
.art-prose blockquote{margin:clamp(26px,3vw,36px) 0 0;padding:4px 0 4px clamp(20px,2.4vw,28px);border-left:3px solid var(--kokoro-blue);font-family:var(--font-display);font-weight:var(--weight-medium);font-size:clamp(19px,1.8vw,22px);line-height:1.48;letter-spacing:-.015em;color:var(--kokoro-black)}
.art-prose blockquote p{margin:0}
.art-prose blockquote p+p{margin-top:12px}

.art-prose hr{margin:clamp(38px,4.4vw,56px) 0 0;border:0;border-top:var(--stroke-hairline) solid var(--border-hairline)}
.art-prose img{display:block;width:100%;height:auto;margin:clamp(26px,3vw,36px) 0 0;border-radius:var(--radius-tile-sm)}
.art-prose figure{margin:clamp(26px,3vw,36px) 0 0}
.art-prose figcaption{margin-top:12px;font-size:14.5px;line-height:1.5;color:var(--kokoro-muted)}

/* Code. Fond Soft Canvas plutôt qu'un gris : le système n'a pas de gris. */
.art-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;background:var(--kokoro-soft-canvas);padding:.16em .42em;border-radius:6px;color:var(--kokoro-black)}
.art-prose pre{margin:clamp(22px,2.6vw,30px) 0 0;padding:clamp(18px,2.2vw,26px);background:var(--kokoro-black);border-radius:var(--radius-tile-sm);overflow-x:auto}
.art-prose pre code{background:none;padding:0;font-size:14.5px;line-height:1.65;color:var(--kokoro-white)}

/* Tableau : 52 articles en contiennent. Défilement propre sous sa largeur
   utile — jamais de débordement horizontal de la page. */
.art-prose .table-wrap,.art-prose table{margin:clamp(26px,3vw,36px) 0 0}
.art-prose .table-wrap{overflow-x:auto}
.art-prose table{width:100%;border-collapse:collapse;font-size:16px}
.art-prose th,.art-prose td{padding:14px 16px;text-align:left;vertical-align:top;line-height:1.55;border-bottom:var(--stroke-hairline) solid var(--border-hairline)}
.art-prose thead th{font-family:var(--font-body);font-weight:var(--weight-semibold);font-size:var(--type-eyebrow-size);line-height:var(--type-eyebrow-lh);letter-spacing:var(--type-eyebrow-ls);text-transform:uppercase;color:var(--kokoro-black);opacity:.58;padding-bottom:12px}
.art-prose td{color:var(--kokoro-muted)}
.art-prose tbody tr:last-child td{border-bottom:0}

/* ── Points clés ─────────────────────────────────────────────────────────
   Bloc Soft Canvas en fin de corps. Les puces passent en Blue plein. */
.art-takeaways{margin:clamp(44px,5vw,64px) 0 0;padding:clamp(26px,3vw,38px);background:var(--kokoro-soft-canvas);border-radius:var(--radius-tile-sm)}
.art-takeaways h2{margin:0;font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:clamp(21px,2vw,26px);line-height:1.2;letter-spacing:-.02em;color:var(--kokoro-black)}
.art-takeaways ul{margin:18px 0 0;padding:0;list-style:none}
.art-takeaways li{position:relative;margin-top:12px;padding-left:28px;font-family:var(--font-body);font-size:17px;line-height:1.6;color:var(--kokoro-ink)}
.art-takeaways li::before{content:"";position:absolute;left:4px;top:.62em;width:8px;height:8px;border-radius:var(--radius-pill);background:var(--kokoro-blue)}

/* ── FAQ ─────────────────────────────────────────────────────────────────
   Mêmes <details> natifs que les pages vitrines : mêmes classes .faq-, donc
   zéro CSS en plus et zéro JavaScript. Seul l'espacement du bloc est ici. */
.art-faq{margin:clamp(44px,5vw,64px) 0 0}
.art-faq h2{margin:0 0 clamp(14px,1.8vw,22px);font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:clamp(23px,2.3vw,30px);line-height:1.16;letter-spacing:-.025em;color:var(--kokoro-black)}

/* ── Bloc auteur ─────────────────────────────────────────────────────── */
@media (max-width:560px){
  .art-author{grid-template-columns:minmax(0,1fr)}
}

/* ── Relance de fin d'article ────────────────────────────────────────── */
/* ── Guide gratuit ────────────────────────────────────────────────────────
   Panneau clair, pour se distinguer du bloc de relance noir qui ferme
   l'article : deux propositions différentes ne doivent pas se ressembler. */
.art-leadmag{margin:clamp(44px,5vw,64px) 0 0;padding:clamp(26px,3vw,38px);background:var(--kokoro-soft-canvas);border:var(--stroke-hairline) solid var(--border-hairline);border-radius:var(--radius-tile-sm)}
.art-leadmag__titre{margin:14px 0 0;font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:clamp(21px,2.1vw,27px);line-height:1.16;letter-spacing:-.025em;color:var(--kokoro-ink);max-width:24ch}
.art-leadmag__texte{margin:12px 0 0;font-family:var(--font-body);font-size:16.5px;line-height:1.62;color:var(--kokoro-muted);max-width:52ch}
.art-leadmag .btn-pill{margin-top:clamp(20px,2.4vw,28px)}

.art-ctabox{margin:clamp(44px,5vw,64px) 0 0;padding:clamp(28px,3.2vw,42px);background:var(--kokoro-black);border-radius:var(--radius-tile-sm)}
.art-ctabox h2{margin:0;font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:clamp(23px,2.3vw,31px);line-height:1.14;letter-spacing:-.025em;color:var(--kokoro-white);max-width:22ch}
.art-ctabox p{margin:14px 0 0;font-family:var(--font-body);font-size:16.5px;line-height:1.6;color:var(--kokoro-muted-dark);max-width:52ch}
.art-ctabox .btn-pill{margin-top:clamp(22px,2.6vw,30px)}

/* ── Articles connexes ───────────────────────────────────────────────── */
.art-related{background:var(--kokoro-soft-canvas);padding-block:clamp(52px,6.4vw,88px)}
.art-related__inner{max-width:var(--site-max);margin-inline:auto;padding-inline:clamp(20px,4vw,var(--web-margin))}
.art-related h2{margin:14px 0 clamp(24px,3vw,36px);font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:clamp(25px,2.6vw,36px);line-height:1.12;letter-spacing:-.03em;color:var(--kokoro-black)}
.art-related__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(16px,2vw,24px)}
.art-card{display:flex;flex-direction:column;padding:clamp(22px,2.6vw,30px);background:var(--kokoro-white);border-radius:var(--radius-tile-sm);text-decoration:none;transition:transform 160ms linear}
.art-card:hover{transform:translateY(-3px)}
/* Bleu de TEXTE, pas bleu de forme : --kokoro-blue donne 3,04 sur Soft
   Canvas en capitales de 11 px. --kokoro-blue-link est le token prévu
   pour ça, et il est assez sombre pour passer. */
.art-card__cat{display:block;font-family:var(--font-body);font-weight:var(--weight-semibold);font-size:var(--type-eyebrow-size);line-height:var(--type-eyebrow-lh);letter-spacing:var(--type-eyebrow-ls);text-transform:uppercase;color:var(--kokoro-blue-link);margin-bottom:14px}
.art-card__title{margin:0;font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:19px;line-height:1.26;letter-spacing:-.02em;color:var(--kokoro-black)}
.art-card__meta{margin-top:auto;padding-top:clamp(18px,2.2vw,26px);font-family:var(--font-body);font-size:14.5px;line-height:1.4;color:var(--kokoro-muted)}
/* Vignette et chapô : le listing en a besoin, la carte « à lire ensuite » en
   fin d'article non — d'où deux éléments optionnels plutôt que deux cartes. */
.art-card__thumb{display:block;height:auto;max-width:none;width:calc(100% + 2 * clamp(22px,2.6vw,30px));margin:calc(-1 * clamp(22px,2.6vw,30px)) calc(-1 * clamp(22px,2.6vw,30px)) clamp(20px,2.4vw,26px);aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius-tile-sm) var(--radius-tile-sm) 0 0}
.art-card__desc{margin:12px 0 0;font-family:var(--font-body);font-size:15.5px;line-height:1.58;color:var(--kokoro-muted)}

/* ── Colonne collante ────────────────────────────────────────────────── */
.art-aside__panel{padding:clamp(22px,2.4vw,28px);background:var(--kokoro-soft-canvas);border-radius:var(--radius-tile-sm)}
.art-aside__panel h2{margin:12px 0 0;font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:20px;line-height:1.2;letter-spacing:-.02em;color:var(--kokoro-black)}
.art-aside__panel p{margin:12px 0 0;font-family:var(--font-body);font-size:15.5px;line-height:1.55;color:var(--kokoro-muted)}
.art-aside__panel .btn-pill{margin-top:20px;font-size:15px;padding:14px 24px}

/* ── Listing du blog ─────────────────────────────────────────────────────
   La page /blog/. Réutilise .art-card ; n'ajoute que l'en-tête, la barre de
   filtres et la carte à la une. */
/* Même dégagement que .art-hero : la barre de nav est flottante et ne
   pousse rien, l'en-tête doit lui faire la place lui-même. */
.blog-head{background:var(--kokoro-soft-canvas);padding-block:clamp(104px,11vw,142px) clamp(46px,5.6vw,84px)}
.blog-head__inner{max-width:var(--site-max);margin-inline:auto;padding-inline:clamp(20px,4vw,var(--web-margin))}
.blog-head h1{margin:14px 0 0;font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:clamp(34px,4.6vw,64px);line-height:1.06;letter-spacing:-.045em;color:var(--kokoro-black);max-width:18ch}
.blog-filters{display:none;flex-wrap:wrap;gap:9px;margin-top:clamp(26px,3vw,38px)}
.blog-filters[data-actif]{display:flex}
.blog-filters button{display:inline-flex;align-items:center;padding:10px 19px;border-radius:var(--radius-pill);border:var(--stroke-hairline) solid var(--border-hairline);background:none;cursor:pointer;font-family:var(--font-display);font-weight:var(--weight-medium);font-size:15px;line-height:1;color:var(--kokoro-black);transition:background-color 140ms linear,color 140ms linear,border-color 140ms linear}
.blog-filters button:hover{border-color:var(--kokoro-black)}
.blog-filters button[aria-pressed="true"]{background:var(--kokoro-black);border-color:var(--kokoro-black);color:var(--kokoro-white)}
.blog-grid > [hidden]{display:none}
.blog-list{padding-block:clamp(44px,5.4vw,76px)}
.blog-list__inner{max-width:var(--site-max);margin-inline:auto;padding-inline:clamp(20px,4vw,var(--web-margin))}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:clamp(18px,2.2vw,28px)}
.blog-grid .art-card{border:var(--stroke-hairline) solid var(--border-hairline)}
.blog-grid .art-card__title{font-size:20.5px}

/* Article à la une : deux colonnes, photo à droite, sur Soft Canvas. */
.blog-featured{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(20px,2.6vw,34px);align-items:center;margin-bottom:clamp(30px,3.6vw,48px);padding:clamp(24px,3vw,40px);background:var(--kokoro-soft-canvas);border-radius:var(--radius-tile-sm);text-decoration:none}
@media (min-width:860px){.blog-featured{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}
.blog-featured h2{margin:14px 0 0;font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:clamp(24px,2.6vw,36px);line-height:1.12;letter-spacing:-.03em;color:var(--kokoro-black)}
.blog-featured p{margin:14px 0 0;font-family:var(--font-body);font-size:16.5px;line-height:1.6;color:var(--kokoro-muted);max-width:46ch}
.blog-featured img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-tile-sm)}
.blog-featured .art-card__meta{margin-top:clamp(18px,2.2vw,26px);padding-top:0}
.blog-count{margin:clamp(18px,2.2vw,26px) 0 0;font-family:var(--font-body);font-size:15px;line-height:1.5;color:var(--kokoro-muted)}

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width:900px){
  .art-prose{font-size:17px}
  .art-meta{gap:8px 14px}
}
