/* gx.css — gabarit magazine AIVIIU (articles). Charge APRES geo.css. Accent indigo sur base zinc. Light + dark. */
:root{
  --gx-acc:#4f46e5; --gx-soft:#eef2ff; --gx-line:#c7d2fe; --gx-deep:#3730a3;
  --gx-ink:#18181b; --gx-z7:#3f3f46; --gx-z6:#52525b; --gx-z5:#71717a; --gx-z4:#a1a1aa;
  --gx-z3:#d4d4d8; --gx-z2:#e4e4e7; --gx-z1:#f4f4f5; --gx-card:#fff; --gx-bg:#fafafa;
  --gx-serif:"Newsreader",Georgia,"Times New Roman",serif;
}
:where(.dark) .gx-main,.dark{
  --gx-acc:#818cf8; --gx-soft:#1e1b4b; --gx-line:#3730a3; --gx-deep:#c7d2fe;
  --gx-ink:#fafafa; --gx-z7:#d4d4d8; --gx-z6:#a1a1aa; --gx-z5:#a1a1aa; --gx-z4:#71717a;
  --gx-z3:#3f3f46; --gx-z2:#27272a; --gx-z1:#18181b; --gx-card:#18181b; --gx-bg:#09090b;
}

/* layout shell */
.gx-main{max-width:1180px;margin:0 auto;padding:0 16px;width:100%}
@media(min-width:640px){.gx-main{padding:0 28px}}
.gx-hero{padding:40px 0 4px;max-width:820px}
.gx-kicker{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--gx-acc)}
.gx-kicker .d{width:5px;height:5px;border-radius:50%;background:var(--gx-acc)}
.gx-kicker .sep{color:var(--gx-z3)}.gx-kicker .cat{color:var(--gx-z5)}
.gx-title{font-family:var(--gx-serif);font-weight:500;font-size:2.5rem;line-height:1.09;letter-spacing:-.015em;color:var(--gx-ink);margin:16px 0 0}
@media(min-width:640px){.gx-title{font-size:3.15rem}}
.gx-chapo{font-size:1.28rem;line-height:1.55;color:var(--gx-z6);margin-top:18px;font-weight:400;max-width:720px}
.gx-byline{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;padding:13px 0;border-top:1px solid var(--gx-z2);border-bottom:1px solid var(--gx-z2);font-size:.8125rem;color:var(--gx-z5)}
.gx-byline b{color:var(--gx-ink);font-weight:600}
.gx-byline .m{display:flex;align-items:center;gap:7px}
.gx-byline svg{width:15px;height:15px;stroke:var(--gx-z4);fill:none;stroke-width:1.7}

/* hero figure : réponse IA annotée */
.gx-cap{font-size:.78rem;color:var(--gx-z5);margin-top:10px;padding-left:14px;border-left:2px solid var(--gx-line)}
.gxa-fig{margin:32px 0 8px;max-width:900px}
.gxa-card{position:relative;border:1px solid var(--gx-z2);border-radius:16px;background:var(--gx-card);box-shadow:0 1px 2px rgba(24,24,27,.04),0 12px 34px -18px rgba(24,24,27,.22);overflow:hidden}
.gxa-head{display:flex;align-items:center;gap:9px;padding:12px 18px;border-bottom:1px solid var(--gx-z1);background:var(--gx-bg)}
.gxa-bulb{width:22px;height:22px;border-radius:6px;background:var(--gx-acc);display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700}
.gxa-h{font-size:.78rem;font-weight:600;color:var(--gx-z6)}
.gxa-live{margin-left:auto;font-size:.7rem;color:var(--gx-z4);display:flex;align-items:center;gap:6px}
.gxa-live i{width:7px;height:7px;border-radius:50%;background:#22c55e;display:inline-block}
.gxa-body{padding:18px 20px}
@media(min-width:560px){.gxa-body{padding-right:180px}}
.gxa-prompt{display:inline-block;background:var(--gx-z1);color:var(--gx-z7);font-size:.875rem;padding:8px 14px;border-radius:12px;border-bottom-left-radius:3px;margin-bottom:14px}
.gxa-answer{font-size:.9375rem;line-height:1.7;color:var(--gx-z7);margin:0}
.gxa-answer mark{background:linear-gradient(transparent 60%,var(--gx-line) 60%);color:var(--gx-ink);font-weight:600;padding:0 1px}
.gxa-cite{color:var(--gx-acc);text-decoration:none;border-bottom:1px solid var(--gx-line)}
.gxa-annot{margin-top:14px;background:var(--gx-acc);color:#fff;font-size:.75rem;line-height:1.45;padding:10px 13px;border-radius:11px;box-shadow:0 10px 24px -12px rgba(79,70,229,.6)}
.gxa-annot b{font-weight:700}
@media(min-width:560px){.gxa-annot{position:absolute;right:20px;top:74px;width:150px;margin-top:0}
 .gxa-annot:after{content:"";position:absolute;left:-8px;top:22px;border:7px solid transparent;border-right-color:var(--gx-acc);border-left:0}}

/* 2-column grid + rail */
.gx-grid{display:block;padding:32px 0 52px}
@media(min-width:960px){.gx-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:52px;align-items:start}}
.gx-col{max-width:700px;min-width:0}
.gx-aside{margin-top:36px;display:flex;flex-direction:column;gap:18px}
@media(min-width:960px){.gx-aside{position:sticky;top:22px;margin-top:0}}
.gx-rail{border:1px solid var(--gx-z2);border-radius:14px;background:var(--gx-card);padding:17px 17px}
.gx-rh{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gx-z4);margin-bottom:11px}
.gx-toc a{display:block;font-size:.84rem;color:var(--gx-z6);text-decoration:none;padding:6px 0 6px 14px;border-left:2px solid var(--gx-z2);line-height:1.35}
.gx-toc a:hover{color:var(--gx-deep);border-left-color:var(--gx-line)}
.gx-stat{background:var(--gx-ink);border-color:transparent}
.gx-stat .gx-rh{color:var(--gx-line)}
.gx-stat .big{font-family:var(--gx-serif);font-size:3rem;font-weight:500;line-height:1;color:#fff}
.gx-stat .cap{font-size:.8rem;color:var(--gx-z3);margin-top:8px;line-height:1.45}
.dark .gx-stat{background:#000;border:1px solid var(--gx-z2)}.dark .gx-stat .cap{color:#a1a1aa}
.gx-cta{background:var(--gx-soft);border-color:var(--gx-line)}
.gx-cta p{font-size:.84rem;color:var(--gx-z7);margin:0 0 12px;line-height:1.5}
.gx-cta a{display:block;text-align:center;background:var(--gx-acc);color:#fff;font-size:.8rem;font-weight:600;padding:10px;border-radius:9px;text-decoration:none}

/* schéma / flow */
.gx-flow-fig{margin:8px 0 30px}
.gx-flow{border:1px solid var(--gx-z2);border-radius:14px;background:var(--gx-card);padding:22px 14px;display:flex;align-items:flex-start;gap:0;overflow-x:auto}
.gx-node{flex:1;min-width:110px;text-align:center;padding:0 6px}
.gx-node .ic{width:44px;height:44px;margin:0 auto 11px;border-radius:12px;background:var(--gx-card);border:1px solid var(--gx-line);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px -10px rgba(79,70,229,.5)}
.gx-node .ic svg{width:22px;height:22px;stroke:var(--gx-acc);fill:none;stroke-width:1.7}
.gx-node .nt{font-size:.82rem;font-weight:600;color:var(--gx-ink);line-height:1.25}
.gx-node .nd{font-size:.7rem;color:var(--gx-z5);line-height:1.35;margin-top:4px}
.gx-arrow{margin-top:18px;flex:none;width:24px;display:flex;justify-content:center}
.gx-arrow svg{width:20px;height:20px;stroke:var(--gx-acc);fill:none;stroke-width:1.8;opacity:.5}

/* upgraded body typography (scope .gx-body, charge après geo-prose) */
.gx-body{font-size:1.09rem;line-height:1.78}
.gx-body>p:first-child::first-letter{float:left;font-family:var(--gx-serif);font-size:3.9rem;line-height:.8;font-weight:500;color:var(--gx-acc);padding:6px 12px 0 0}
.gx-body h2{font-family:var(--gx-serif);font-weight:500;font-size:1.85rem;line-height:1.16;letter-spacing:-.01em;color:var(--gx-ink);margin:2.4rem 0 .7rem;padding-top:.4rem}
.gx-body h3{font-size:1.18rem;font-weight:600;color:var(--gx-ink);margin:1.7rem 0 .4rem}
.gx-body ul{list-style:none;margin:0 0 1.1rem;padding-left:2px}
.gx-body ul li{position:relative;padding-left:24px;margin:.55rem 0}
.gx-body ul li:before{content:"";position:absolute;left:2px;top:.62em;width:7px;height:7px;border-radius:2px;background:var(--gx-acc);transform:rotate(45deg)}
.gx-body a{color:var(--gx-deep);text-underline-offset:2px}
.gx-body blockquote{border:0;margin:2rem 0;padding:2px 0 2px 24px;border-left:4px solid var(--gx-acc)}
.gx-body blockquote p{font-family:var(--gx-serif);font-size:1.45rem;line-height:1.34;font-style:italic;color:var(--gx-ink)}
/* tables en cartes comparatives */
.gx-body table{border:1px solid var(--gx-z2);border-radius:12px;border-collapse:separate;border-spacing:0;overflow:hidden;font-size:.92rem;margin:1.6rem 0;width:100%}
.gx-body thead th,.gx-body tr:first-child th{background:var(--gx-soft);color:var(--gx-deep);font-weight:600}
.gx-body th,.gx-body td{border:0;border-bottom:1px solid var(--gx-z2);padding:.62rem .8rem;text-align:left;vertical-align:top}
.gx-body tbody tr:last-child td{border-bottom:0}
.gx-body tbody tr:nth-child(even){background:color-mix(in oklab,var(--gx-z1) 55%,transparent)}

/* callout à retenir (dispo, injectable) */
.gx-callout{margin:1.8rem 0;border:1px solid var(--gx-line);background:var(--gx-soft);border-radius:14px;padding:18px 20px}
.gx-callout .lab{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gx-deep);margin-bottom:8px}
.gx-callout p{font-size:.98rem;line-height:1.6;color:var(--gx-z7);margin:0}

/* ===== Pages de listing éditorialisées (index, hubs, actus). Accent par catégorie via --c/--cs/--cd inline. ===== */
.gx-listing{padding-bottom:16px}
.gx-mast{padding:42px 0 6px;max-width:900px}
.gx-eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:.72rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--c,var(--gx-acc))}
.gx-eyebrow .d{width:6px;height:6px;border-radius:50%;background:var(--c,var(--gx-acc))}
.gx-mast h1{font-family:var(--gx-serif);font-weight:500;font-size:2.6rem;line-height:1.08;letter-spacing:-.015em;color:var(--gx-ink);margin:14px 0 0}
@media(min-width:640px){.gx-mast h1{font-size:3.3rem}}
.gx-lead{font-size:1.22rem;line-height:1.5;color:var(--gx-z6);margin-top:16px;max-width:720px}
.gx-metarow{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.gx-chip{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-weight:500;color:var(--gx-z6);background:var(--gx-card);border:1px solid var(--gx-z2);border-radius:999px;padding:6px 13px}
.gx-chip b{color:var(--gx-ink);font-weight:700}
.gx-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--c,var(--gx-acc))}
.gx-back{display:flex;width:max-content;align-items:center;gap:6px;font-size:.82rem;color:var(--gx-z5);text-decoration:none;margin-bottom:12px}
.gx-back:hover{color:var(--c,var(--gx-deep))}
/* featured */
.gx-feat{display:block;margin:24px 0 6px;border:1px solid var(--gx-z2);border-radius:18px;padding:26px 28px;text-decoration:none;background:linear-gradient(130deg,color-mix(in srgb,var(--c) 15%,var(--gx-card)),var(--gx-card) 62%);position:relative;overflow:hidden;transition:border-color .15s}
.gx-feat:hover{border-color:var(--c)}
.gx-feat .fl{display:inline-flex;align-items:center;gap:8px;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--c)}
.gx-feat h2{font-family:var(--gx-serif);font-weight:500;font-size:1.9rem;line-height:1.12;color:var(--gx-ink);margin:12px 0 0;max-width:640px}
.gx-feat p{font-size:1rem;color:var(--gx-z6);margin-top:10px;max-width:620px}
.gx-feat .go{display:inline-flex;margin-top:16px;font-size:.9rem;font-weight:600;color:var(--c)}
.gx-feat .ic{position:absolute;right:24px;top:24px;width:52px;height:52px;border-radius:14px;background:color-mix(in srgb,var(--c) 16%,var(--gx-card));display:none;align-items:center;justify-content:center}
.gx-feat .ic svg{width:26px;height:26px}
@media(min-width:720px){.gx-feat .ic{display:flex}}
/* cards grid */
.gx-cards{display:grid;gap:16px;grid-template-columns:1fr;margin-top:6px}
@media(min-width:640px){.gx-cards{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.gx-cards{grid-template-columns:1fr 1fr 1fr}}
.gx-ccard{display:flex;flex-direction:column;border:1px solid var(--gx-z2);border-top:3px solid var(--c);border-radius:16px;background:var(--gx-card);padding:20px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s}
.gx-ccard:hover{transform:translateY(-2px);box-shadow:0 14px 30px -18px color-mix(in srgb,var(--c) 65%,transparent)}
.gx-ccard .top{display:flex;align-items:center;justify-content:space-between}
.gx-ccard .ic{width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--c) 14%,var(--gx-card));display:flex;align-items:center;justify-content:center}
.gx-ccard .ic svg{width:23px;height:23px}
.gx-ccard .cnt{font-size:.72rem;font-weight:700;color:var(--c);background:color-mix(in srgb,var(--c) 13%,var(--gx-card));border-radius:999px;padding:4px 10px}
.gx-ccard h3{font-family:var(--gx-serif);font-weight:500;font-size:1.35rem;color:var(--gx-ink);margin:15px 0 0}
.gx-ccard .ds{font-size:.86rem;line-height:1.5;color:var(--gx-z6);margin-top:7px;flex:1}
.gx-ccard .ex{font-size:.72rem;color:var(--gx-z5);margin-top:12px}
.gx-ccard .go{margin-top:12px;font-size:.84rem;font-weight:600;color:var(--c)}
/* hub blocks */
.gx-blocks{display:grid;gap:16px;grid-template-columns:1fr;margin-top:6px}
@media(min-width:720px){.gx-blocks{grid-template-columns:1fr 1fr}}
.gx-block{border:1px solid var(--gx-z2);border-radius:16px;background:var(--gx-card);padding:18px 20px}
.gx-block .bh{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px;padding-bottom:11px;border-bottom:1px solid var(--gx-z2)}
.gx-block .bt{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c);display:flex;align-items:center;gap:9px}
.gx-block .bt:before{content:"";width:9px;height:9px;border-radius:3px;background:var(--c);transform:rotate(45deg)}
.gx-block .bb{font-size:.68rem;font-weight:600;color:var(--gx-z5);background:color-mix(in srgb,var(--c) 12%,var(--gx-card));border-radius:999px;padding:3px 9px;white-space:nowrap}
.gx-pills{display:flex;flex-wrap:wrap;gap:8px}
.gx-pill{display:inline-block;font-size:.84rem;color:var(--gx-z7);background:var(--gx-bg);border:1px solid var(--gx-z2);border-radius:999px;padding:6px 12px;text-decoration:none;transition:.15s}
.gx-pill:hover{border-color:var(--c);color:var(--c);background:color-mix(in srgb,var(--c) 8%,var(--gx-card))}
.gx-pill.off{border-style:dashed;color:var(--gx-z4);background:transparent;cursor:default}
/* actus */
.gx-news{display:grid;gap:16px;grid-template-columns:1fr;margin-top:6px}
@media(min-width:720px){.gx-news{grid-template-columns:1fr 1fr}}
.gx-na{display:flex;flex-direction:column;border:1px solid var(--gx-z2);border-left:3px solid var(--c);border-radius:14px;background:var(--gx-card);padding:18px 20px;text-decoration:none;transition:.15s}
.gx-na:hover{border-color:var(--c);box-shadow:0 12px 26px -18px color-mix(in srgb,var(--c) 65%,transparent)}
.gx-na .nh{display:flex;align-items:center;justify-content:space-between;gap:8px}
.gx-na .src{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--c)}
.gx-na .dt{font-size:.72rem;color:var(--gx-z5);background:var(--gx-bg);border-radius:999px;padding:3px 9px;white-space:nowrap}
.gx-na h3{font-family:var(--gx-serif);font-weight:500;font-size:1.2rem;line-height:1.24;color:var(--gx-ink);margin:11px 0 0}
.gx-na p{font-size:.88rem;line-height:1.55;color:var(--gx-z6);margin-top:8px;flex:1}
.gx-na .go{margin-top:12px;font-size:.82rem;font-weight:600;color:var(--c)}
