*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Palatino Linotype',Palatino,'Book Antiqua',serif;line-height:1.9;color:#2a2a2a;background:#fefefe}
.astro-b0WnlGT1{max-width:640px;margin:0 auto;padding:0 20px}
.astro-86UyVrJb{padding:60px 0 40px;border-bottom:1px solid #ccc;margin-bottom:48px}
.astro-86UyVrJb h1{font-size:24px;font-weight:400;letter-spacing:-.5px}
.astro-86UyVrJb p{font-size:14px;color:#777;margin-top:6px;font-style:italic}
.astro-86UyVrJb a{color:#2a2a2a;text-decoration:none;font-size:24px;font-weight:400;letter-spacing:-.5px}
.astro-ymgophqp{padding:20px 0}
.astro-ymgophqp h2{font-size:18px;font-weight:400;margin-bottom:4px}
.astro-ymgophqp h2 a{color:#2a2a2a;text-decoration:none;border-bottom:1px solid transparent}
.astro-ymgophqp h2 a:hover{border-bottom-color:#2a2a2a}
.astro-ymgophqp .astro-vSmpZE4p{font-size:12px;color:#aaa;margin-bottom:6px}
.astro-ymgophqp p{font-size:14px;color:#666}
.astro-DjZQmvKe{color:#888;font-size:13px;text-decoration:none}
.astro-DjZQmvKe:hover{color:#2a2a2a}
.astro-SwjX737Z{padding-bottom:60px}
.astro-SwjX737Z h1{font-size:28px;font-weight:400;margin-bottom:8px}
.astro-SwjX737Z .astro-vSmpZE4p{font-size:12px;color:#aaa;display:block;margin-bottom:32px}
.astro-SwjX737Z h2{font-size:21px;font-weight:400;margin:40px 0 12px;border-bottom:1px solid #eee;padding-bottom:6px}
.astro-SwjX737Z h3{font-size:17px;margin:28px 0 8px}
.astro-SwjX737Z p{margin-bottom:18px;font-size:16px}
.astro-SwjX737Z ul,.astro-SwjX737Z ol{margin:0 0 18px 20px}
.astro-SwjX737Z a{color:#555;border-bottom:1px solid #ccc}
.astro-SwjX737Z a:hover{color:#000;border-bottom-color:#000}
.astro-SwjX737Z img{max-width:100%;height:auto;margin:24px 0}
.astro-B4zx8wFp{border-top:1px solid #ddd;padding:20px 0;margin-top:48px;text-align:center;font-size:12px;color:#aaa}
.astro-B4zx8wFp a{color:#aaa;text-decoration:none}
.astro-dEu45iz8{padding:0 0 16px;margin-bottom:24px;font-size:12px;color:#aaa;font-style:italic;border-bottom:1px solid #eee}
.astro-mm1OfkED{padding:16px 0 0;margin-top:32px;font-size:11px;color:#999;border-top:1px solid #eee}
.astro-1Su5Ody0{font-size:12px;color:#aaa;margin:-26px 0 32px;font-weight:300}
.astro-WaAgDcmE{margin:0 auto 32px;max-width:720px}
.astro-Oh7Ludps{width:100%;height:auto}
.astro-ziSdD10a{margin-top:40px;padding-top:20px;border-top:1px solid #eee;font-size:14px;color:#888}
.astro-ziSdD10a em{color:#aaa}
.astro-ziSdD10a a{color:#555;border-bottom:1px solid #ddd;text-decoration:none}
.astro-8WAeUaCp{padding:24px 0 0;border-top:1px solid #eee;margin-top:24px}
.astro-8WAeUaCp p{padding:3px 0;margin:0;font-size:15px}
.astro-8WAeUaCp a{color:#2a2a2a;text-decoration:none;border-bottom:1px solid transparent}
.astro-8WAeUaCp a:hover{border-bottom-color:#2a2a2a}
/* === Theme === */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=Playfair+Display:wght@400;700&display=swap');
body{font-family:'Montserrat',sans-serif;color:#2C3E50;background:#FDFDFD}
.astro-86UyVrJb{background:#1A2238;color:#fff}
.astro-86UyVrJb h1{font-family:'Playfair Display',serif;color:#fff}
.astro-86UyVrJb p{color:rgba(255,255,255,.75)}
.astro-86UyVrJb a{color:#fff;text-decoration:none}
.card h2{font-family:'Playfair Display',serif}
.card h2 a{color:#1A2238}
.card h2 a:hover{color:#C5A059}
.read-more{color:#C5A059}
.article-content h1{font-family:'Playfair Display',serif}
.article-content h2{font-family:'Playfair Display',serif}
.article-content a{color:#C5A059}
.article-content img{border-radius:4px}
.affiliate-disclosure{border-radius:4px}
.ymyl-disclaimer{border-radius:4px}
/* === Custom === */
/* v.21512d — layout revision */
/* xs-sexual-fr — « Aplomb Intime » · le carnet de Julien, 34 ans, Poitiers, logistique.
   Voix confessionnelle, à hauteur d'homme : reprendre le contrôle sans faire semblant.
   Build : ASTRO — <main> EST la grille, les cartes sont ses enfants directs <div>.
   Sélecteurs element/structure (préfixés :root) → spécificité sans classes obfusquées.
   Palette : marine #1A2238 + or mat #C5A059 sur papier crème #F4EDDE ;
   couleur-moment brun cuir #6B4A2E réservée à DEUX emplois (filet masthead + lettrine héros).
   Voix typo : Fraunces (display serif italique) + Newsreader (corps serif) + Montserrat (méta sans traqué).
   NB : @import ignoré (CSS concaténé) → @font-face indépendants de la position. */

/* ── Webfonts (sous-ensemble latin, variable woff2) ─────────────── */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:400 700;font-display:swap;
  src:url(https://fonts.gstatic.com/s/fraunces/v38/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeP2Xz5c.woff2) format('woff2');}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:400 700;font-display:swap;
  src:url(https://fonts.gstatic.com/s/fraunces/v38/6NU58FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChjeveQ7ZXk8g.woff2) format('woff2');}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400 600;font-display:swap;
  src:url(https://fonts.gstatic.com/s/newsreader/v26/cY9AfjOCX1hbuyalUrK4397yjIJFJpc.woff2) format('woff2');}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:400 500;font-display:swap;
  src:url(https://fonts.gstatic.com/s/newsreader/v26/cY9CfjOCX1hbuyalUrK439vCjohCBJWxZA.woff2) format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400 700;font-display:swap;
  src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2');}

/* ── Tokens ─────────────────────────────────────────────────────── */
:root{
  --paper:      #F4EDDE;   /* page — crème chaud, jamais blanc */
  --surface:    #FAF5EA;   /* cartes — crème clair */
  --surface-2:  #EEE6D5;   /* bandes / index */
  --ink:        #171E33;   /* titres — marine profond */
  --text:       #383530;   /* corps — charbon chaud */
  --muted:      #726A5A;   /* dates, méta */
  --marine:     #1A2238;   /* primaire */
  --marine-dk:  #10152A;
  --marine-lt:  #42506B;
  --gold:       #C5A059;   /* accent — or mat */
  --gold-dk:    #9C7D3D;
  --moment:     #6B4A2E;   /* couleur-moment — 2 emplois : filet masthead + lettrine */
  --line:       rgba(23,30,51,.13);
  --line-soft:  rgba(23,30,51,.07);
  --shadow:     0 1px 4px rgba(23,30,51,.06);
  --shadow-lift:0 9px 26px rgba(23,30,51,.13);
  --display:    'Fraunces', Georgia, 'Times New Roman', serif;
  --serif:      'Newsreader', Georgia, 'Times New Roman', serif;
  --sans:       'Montserrat', ui-sans-serif, 'Segoe UI', Helvetica, Arial, sans-serif;
  --col-gap:    36px;
}

/* ── Base ───────────────────────────────────────────────────────── */
*,*::before,*::after{ box-sizing:border-box; }

:root body{
  font-family:var(--serif);
  font-size:18px;
  line-height:1.78;
  color:var(--text);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  margin:0;
}
:root h1,:root h2,:root h3,:root h4{
  font-family:var(--display);
  color:var(--ink);
  line-height:1.16;
  font-weight:600;
}
:root strong,:root b{ color:var(--ink); font-weight:600; }
:root img{ max-width:100%; height:auto; }

/* ═══════════════════════════════════════════════════════════════════
   MASTHEAD — photo backdrop + voile marine + wordmark italique + manifeste
   ═══════════════════════════════════════════════════════════════════ */
:root body > header{ border-bottom:1px solid var(--line); margin-bottom:0; }

/* home : bandeau photo pleine largeur */
:root body > header:has(> h1){
  max-width:none;
  padding:76px 24px 62px;
  text-align:center;
  border-bottom:3px solid var(--moment);   /* MOMENT 1/2 */
  background:
    linear-gradient(rgba(16,21,42,.78), rgba(16,21,42,.56)),
    url("/theme-assets/backdrop.jpg") center 40% / cover no-repeat;
}
:root body > header:has(> h1)::before{
  content:"LE CARNET DE JULIEN · POITIERS";
  display:block;
  font-family:var(--sans);
  font-size:12px;
  font-weight:600;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:rgba(197,160,89,.92);
  margin-bottom:18px;
}
:root body > header:has(> h1) h1{
  font-family:var(--display);
  font-style:italic;
  font-weight:500;
  font-size:54px;
  line-height:1.04;
  letter-spacing:.005em;
  color:#FAF5EA;
  margin:0 auto 16px;
  max-width:16ch;
}
:root body > header:has(> h1) p{
  font-family:var(--serif);
  font-style:italic;
  font-size:18px;
  line-height:1.62;
  color:rgba(250,245,234,.9);
  max-width:60ch;
  margin:0 auto;
}
:root body > header:has(> h1) a{ color:inherit; text-decoration:none; }

/* article : barre-titre sobre */
:root body > header:not(:has(> h1)){
  padding:26px 24px;
  text-align:center;
  background:var(--surface);
}
:root body > header:not(:has(> h1)) a{
  font-family:var(--display);
  font-style:italic;
  font-weight:500;
  font-size:24px;
  letter-spacing:.005em;
  color:var(--marine);
  text-decoration:none;
  border:0;
}
:root body > header:not(:has(> h1)) a:hover{ color:var(--gold-dk); }

/* ═══════════════════════════════════════════════════════════════════
   ACCUEIL — main EST la grille 2 colonnes ; cartes = enfants directs
   ═══════════════════════════════════════════════════════════════════ */
:root main:not(:has(> article)){
  max-width:1120px;
  margin:0 auto;
  padding:84px 24px 58px;
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:var(--col-gap);
  row-gap:48px;
  align-items:stretch;
}

/* ---- Carte générique (journal) ---- */
:root main:not(:has(> article)) > div{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:9px;
  box-shadow:var(--shadow);
  padding:28px 34px 30px;
  display:flex;
  flex-direction:column;
  transition:transform .16s ease, box-shadow .16s ease;
}
:root main:not(:has(> article)) > div:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-lift);
}
/* date / kicker */
:root main:not(:has(> article)) > div > p:first-of-type{
  font-family:var(--sans);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  margin:0 0 11px;
}
/* titre */
:root main:not(:has(> article)) > div h2{
  font-family:var(--display);
  font-size:21px;
  line-height:1.24;
  font-weight:600;
  margin:0 0 11px;
}
:root main:not(:has(> article)) > div h2 a{
  color:var(--ink);
  text-decoration:none;
  border:0;
}
:root main:not(:has(> article)) > div h2 a:hover{ color:var(--gold-dk); }
/* extrait */
:root main:not(:has(> article)) > div > p:last-of-type{
  font-family:var(--serif);
  font-size:15.5px;
  line-height:1.62;
  color:var(--text);
  margin:0 0 20px;
  max-width:64ch;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
/* CTA « read more » — pilule cerclée or */
:root main:not(:has(> article)) > div > a{
  align-self:flex-start;
  margin-top:auto;
  font-family:var(--sans);
  font-size:12px;
  font-weight:600;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--marine);
  background:var(--surface);
  border:1px solid var(--gold-dk);
  border-radius:22px;
  padding:8px 18px;
  text-decoration:none;
  transition:background .16s ease, color .16s ease, border-color .16s ease;
}
:root main:not(:has(> article)) > div > a:hover{
  background:var(--marine);
  border-color:var(--marine);
  color:#FAF5EA;
}

/* ═══════════════════════════════════════════════════════════════════
   HÉROS — carte 1, pleine largeur, la voix forte
   ═══════════════════════════════════════════════════════════════════ */
:root main:not(:has(> article)) > div:first-child{
  grid-column:1 / -1;
  padding:46px 50px 48px;
  border-top:3px solid var(--gold);
}
:root main:not(:has(> article)) > div:first-child > p:first-of-type{
  font-size:12px;
  margin-bottom:18px;
}
:root main:not(:has(> article)) > div:first-child > p:first-of-type::before{
  content:"LE DERNIER RÉCIT · ";
  color:var(--gold-dk);
}
:root main:not(:has(> article)) > div:first-child > p:first-of-type::after{
  content:" · PAR JULIEN · 6 MIN";
}
:root main:not(:has(> article)) > div:first-child h2{
  font-size:44px;
  line-height:1.07;
  letter-spacing:-.01em;
  margin-bottom:18px;
  max-width:20ch;
}
:root main:not(:has(> article)) > div:first-child > p:last-of-type{
  font-size:20px;
  line-height:1.5;
  max-width:60ch;
  -webkit-line-clamp:4;
  margin-bottom:26px;
}
:root main:not(:has(> article)) > div:first-child > p:last-of-type::first-letter{
  font-family:var(--display);
  font-weight:700;
  font-size:3.4em;
  line-height:.8;
  float:left;
  margin:6px 12px 0 0;
  color:var(--moment);   /* MOMENT 2/2 */
}
/* CTA héros — pilule pleine or */
:root main:not(:has(> article)) > div:first-child > a{
  font-size:13px;
  padding:11px 26px;
  color:var(--marine-dk);
  background:var(--gold);
  border:1px solid var(--gold);
  border-radius:24px;
}
:root main:not(:has(> article)) > div:first-child > a:hover{
  background:var(--gold-dk);
  border-color:var(--gold-dk);
  color:#FAF5EA;
}

/* ═══════════════════════════════════════════════════════════════════
   À LIRE EN PREMIER — cartes 2 & 3, bandeau-titre pleine ligne
   ═══════════════════════════════════════════════════════════════════ */
:root main:not(:has(> article)) > div:nth-child(2),
:root main:not(:has(> article)) > div:nth-child(3){
  margin-top:4.6rem;
  position:relative;
}
:root main:not(:has(> article)) > div:nth-child(2)::before{
  content:"À LIRE EN PREMIER — POUR REPRENDRE LA MAIN";
  position:absolute;
  left:0;
  bottom:calc(100% + 1.2rem);
  width:calc(200% + var(--col-gap));
  font-family:var(--sans);
  font-size:13px;
  font-weight:600;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:var(--marine);
  padding-bottom:.6rem;
  border-bottom:1px solid var(--line);
}

/* ═══════════════════════════════════════════════════════════════════
   STRIP 1 — bande photo « PAR ORDRE D'ÉCRITURE » (avant le journal)
   ancrée sur la carte 4 ; marge sur 4 & 5 pour dégager la rangée
   ═══════════════════════════════════════════════════════════════════ */
:root main:not(:has(> article)) > div:nth-child(4),
:root main:not(:has(> article)) > div:nth-child(5){
  margin-top:16.5rem;
}
:root main:not(:has(> article)) > div:nth-child(4){ position:relative; }
:root main:not(:has(> article)) > div:nth-child(4)::before{
  content:"PAR ORDRE D'ÉCRITURE";
  position:absolute;
  left:0;
  bottom:calc(100% + 1.7rem);
  width:calc(200% + var(--col-gap));
  height:200px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:
    linear-gradient(rgba(20,24,28,.55), rgba(20,24,28,.25)),
    url("/theme-assets/chapter-cover.jpg") center 30% / cover no-repeat;
  font-family:var(--sans);
  font-size:14px;
  font-weight:600;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:#FAF5EA;
  text-shadow:0 1px 6px rgba(0,0,0,.45);
}

/* ═══════════════════════════════════════════════════════════════════
   QUEUE — index « VOIR TOUT » (3 dernières cartes) + STRIP 2
   ═══════════════════════════════════════════════════════════════════ */
:root main:not(:has(> article)) > div:nth-last-child(-n+3){
  grid-column:1 / -1;
  flex-direction:row;
  align-items:baseline;
  gap:18px;
  padding:15px 30px;
  box-shadow:none;
  border:0;
  border-bottom:1px dotted rgba(23,30,51,.2);
  border-radius:0;
  background:var(--surface);
}
:root main:not(:has(> article)) > div:nth-last-child(-n+3):hover{
  transform:none;
  box-shadow:none;
  background:var(--surface-2);
}
:root main:not(:has(> article)) > div:nth-last-child(1),
:root main:not(:has(> article)) > div:nth-last-child(2){ margin-top:-30px; }
/* date compacte */
:root main:not(:has(> article)) > div:nth-last-child(-n+3) > p:first-of-type{
  margin:0;
  flex:0 0 auto;
  font-size:11px;
  color:var(--muted);
}
/* titre en ligne */
:root main:not(:has(> article)) > div:nth-last-child(-n+3) h2{
  margin:0;
  font-family:var(--display);
  font-weight:500;
  font-size:16.5px;
  line-height:1.3;
}
:root main:not(:has(> article)) > div:nth-last-child(-n+3) h2 a{ color:var(--ink); }
:root main:not(:has(> article)) > div:nth-last-child(-n+3) h2 a:hover{ color:var(--gold-dk); }
/* masquer extrait + CTA dans l'index */
:root main:not(:has(> article)) > div:nth-last-child(-n+3) > p:last-of-type,
:root main:not(:has(> article)) > div:nth-last-child(-n+3) > a{ display:none; }
/* STRIP 2 */
:root main:not(:has(> article)) > div:nth-last-child(3){
  position:relative;
  margin-top:16rem;
}
:root main:not(:has(> article)) > div:nth-last-child(3)::before{
  content:"VOIR TOUT";
  position:absolute;
  left:0;
  bottom:calc(100% + 1.7rem);
  width:100%;
  height:205px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:
    linear-gradient(rgba(20,24,28,.58), rgba(20,24,28,.3)),
    url("/theme-assets/chapter-cover.jpg") center 70% / cover no-repeat;
  font-family:var(--sans);
  font-size:14px;
  font-weight:600;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:#FAF5EA;
  text-shadow:0 1px 6px rgba(0,0,0,.45);
}

/* ═══════════════════════════════════════════════════════════════════
   PAGE ARTICLE
   ═══════════════════════════════════════════════════════════════════ */
:root main:has(> article){
  max-width:760px;
  margin:0 auto;
  padding:70px 24px 60px;
}
:root main:has(> article) > h1{
  font-family:var(--display);
  font-weight:700;
  font-size:40px;
  line-height:1.11;
  letter-spacing:-.01em;
  color:var(--ink);
  margin:0 0 14px;
}
:root main:has(> article) > span{
  font-family:var(--sans);
  font-size:12px;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  display:block;
  margin-bottom:34px;
}
/* corps */
:root main:has(> article) > article > p{
  font-family:var(--serif);
  font-size:19px;
  line-height:1.8;
  color:var(--text);
  margin:0 0 1.35em;
  max-width:66ch;
}
:root main:has(> article) > article > p a{
  color:var(--marine);
  text-decoration:underline;
  text-decoration-color:rgba(197,160,89,.6);
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  border:0;
}
:root main:has(> article) > article > p a:hover{
  color:var(--gold-dk);
  text-decoration-color:var(--gold);
}
/* image — cadre éditorial */
:root main:has(> article) article img{
  border-radius:10px;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  margin:30px auto;
  display:block;
}
/* image d'ouverture — un cran plus proche du titre */
:root main:has(> article) article > img:first-of-type{
  margin:8px auto 34px;
}
/* sous-titres + dinkus */
:root main:has(> article) > article > h2{
  font-family:var(--display);
  font-weight:600;
  font-size:27px;
  line-height:1.2;
  color:var(--ink);
  margin:1.9em 0 .55em;
  border:0;
  padding:0;
}
:root main:has(> article) > article > h2::before{
  content:"✦ ✦ ✦";
  display:block;
  text-align:center;
  font-size:13px;
  letter-spacing:.5em;
  color:var(--gold);
  margin:0 0 .8em;
  font-weight:400;
}
:root main:has(> article) > article > h3{
  font-family:var(--display);
  font-weight:600;
  font-size:21px;
  color:var(--marine);
  margin:1.5em 0 .4em;
}
:root main:has(> article) > article > ul,
:root main:has(> article) > article > ol{
  max-width:66ch;
  margin:0 0 1.35em 1.4em;
  padding-left:1em;
}
:root main:has(> article) > article > ul li,
:root main:has(> article) > article > ol li{
  font-family:var(--serif);
  font-size:18px;
  line-height:1.72;
  margin-bottom:.5em;
}
:root main:has(> article) > article > ul li::marker{ color:var(--gold-dk); }
:root main:has(> article) > article > ol li::marker{ color:var(--marine); font-weight:600; }

/* citation — filet or + guillemet suspendu */
:root main:has(> article) article blockquote{
  position:relative;
  margin:1.8em 0;
  padding:.3em 0 .3em 1.7rem;
  border-left:3px solid var(--gold);
  font-family:var(--display);
  font-style:italic;
  font-size:21px;
  line-height:1.5;
  color:var(--ink);
  max-width:64ch;
}
:root main:has(> article) article blockquote p{ margin:0; font-size:inherit; max-width:none; }
:root main:has(> article) article blockquote cite{
  display:block;
  margin-top:.6em;
  font-family:var(--sans);
  font-style:normal;
  font-size:13px;
  letter-spacing:.05em;
  color:var(--muted);
}

/* encadré transparence affiliation (haut d'article) — carte discrète */
:root main:has(> article) article > div{
  background:var(--surface-2);
  border:1px solid var(--line);
  border-left:3px solid var(--gold);
  border-radius:8px;
  padding:16px 22px;
  margin:26px 0;
}
:root main:has(> article) article > div em{
  font-family:var(--serif);
  font-style:italic;
  font-size:15px;
  line-height:1.6;
  color:var(--muted);
}

/* encadré avertissement (fin d'article) — carte marine douce */
:root main:has(> article) article aside{
  background:var(--surface);
  border:1px solid var(--line);
  border-top:3px solid var(--marine);
  border-radius:9px;
  box-shadow:var(--shadow);
  padding:24px 32px;
  margin:40px 0 8px;
  font-family:var(--serif);
  font-size:16px;
  line-height:1.7;
  color:var(--text);
}
:root main:has(> article) article aside b{
  display:block;
  font-family:var(--sans);
  font-weight:600;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--marine);
  margin-bottom:8px;
}

/* CTA affiliation — puce or INLINE ; bat le lien de corps (RULE J) */
:root main:has(> article) > article > p a[href^="/offer/"],
:root main:has(> article) > article > ul a[href^="/offer/"],
:root main:has(> article) > article > ol a[href^="/offer/"]{
  font-family:var(--sans);
  font-weight:600;
  font-size:.9em;
  letter-spacing:.01em;
  color:var(--marine-dk);
  background:rgba(197,160,89,.18);
  border:1px solid rgba(197,160,89,.5);
  border-radius:6px;
  padding:1px 9px 2px;
  text-decoration:none;
  white-space:nowrap;
}
:root main:has(> article) > article > p a[href^="/offer/"]::before,
:root main:has(> article) > article > ul a[href^="/offer/"]::before,
:root main:has(> article) > article > ol a[href^="/offer/"]::before{
  content:"→ ";
  color:var(--gold-dk);
}
:root main:has(> article) > article > p a[href^="/offer/"]:hover,
:root main:has(> article) > article > ul a[href^="/offer/"]:hover,
:root main:has(> article) > article > ol a[href^="/offer/"]:hover{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--marine-dk);
}

/* Articles connexes */
:root main:has(> article) > nav{
  margin-top:52px;
  padding-top:26px;
  border-top:1px solid var(--line);
  background:transparent;
}
:root main:has(> article) > nav em{
  display:block;
  font-family:var(--sans);
  font-style:normal;
  font-size:13px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:14px;
}
:root main:has(> article) > nav p{ margin:0; font-size:16px; line-height:1.9; max-width:none; }
:root main:has(> article) > nav a{
  font-family:var(--display);
  font-weight:500;
  color:var(--marine);
  text-decoration:none;
  border:0;
  border-bottom:1px solid var(--line);
  padding:0;
}
:root main:has(> article) > nav a:hover{ color:var(--gold-dk); border-bottom-color:var(--gold); }

/* ── Footer ─────────────────────────────────────────────────────── */
:root body > footer{
  margin-top:78px;
  padding:36px 24px;
  background:var(--marine-dk);
  border:0;
  text-align:center;
}
:root body > footer small,
:root body > footer a{
  font-family:var(--sans);
  font-size:13px;
  letter-spacing:.02em;
  color:rgba(250,245,234,.82);
}
:root body > footer a{ text-decoration:none; border:0; }
:root body > footer a:hover{ color:var(--gold); text-decoration:underline; }

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width:760px){
  :root body > header:has(> h1){ padding:52px 20px 44px; }
  :root body > header:has(> h1) h1{ font-size:38px; }
  :root body > header:has(> h1)::before{ font-size:11px; letter-spacing:.22em; }

  :root main:not(:has(> article)){
    padding:56px 20px 36px;
    grid-template-columns:1fr;
    row-gap:34px;
  }
  :root main:not(:has(> article)) > div{ padding:24px 24px 26px; }
  :root main:not(:has(> article)) > div:first-child{ padding:30px 24px 32px; }
  :root main:not(:has(> article)) > div:first-child h2{ font-size:32px; }
  :root main:not(:has(> article)) > div:first-child > p:last-of-type{ font-size:17.5px; }

  /* bandeau picks : statique, pleine largeur mono-colonne */
  :root main:not(:has(> article)) > div:nth-child(2){ margin-top:0; }
  :root main:not(:has(> article)) > div:nth-child(3){ margin-top:34px; }
  :root main:not(:has(> article)) > div:nth-child(2)::before{
    position:static;
    display:block;
    width:100%;
    margin-bottom:1.1rem;
  }

  /* strip 1 : recalé mono-colonne */
  :root main:not(:has(> article)) > div:nth-child(5){ margin-top:34px; }
  :root main:not(:has(> article)) > div:nth-child(4){ margin-top:14.5rem; }
  :root main:not(:has(> article)) > div:nth-child(4)::before{
    width:100%;
    height:168px;
    bottom:calc(100% + 1.4rem);
  }

  /* queue */
  :root main:not(:has(> article)) > div:nth-last-child(3){ margin-top:14rem; }
  :root main:not(:has(> article)) > div:nth-last-child(3)::before{ height:172px; }
  :root main:not(:has(> article)) > div:nth-last-child(-n+3){ padding:13px 20px; }

  :root main:has(> article){ padding:48px 20px 48px; }
  :root main:has(> article) > h1{ font-size:32px; }
  :root main:has(> article) > article > p{ font-size:17.5px; }
  :root main:has(> article) > article > h2{ font-size:24px; }
  :root main:has(> article) article blockquote{ font-size:19px; }
}


/* related-articles-nav-fix v1 */
:root main > nav p,
:root main > section p {
  line-height: 1.85;
  margin: 0;
}
:root main > nav a,
:root main > section a {
  display: inline-block;
  margin: 0 4px;
  padding: 0 2px;
}


/* mobile-overflow-fix v1 */
:root html, :root body { overflow-x: hidden; max-width: 100%; }
@media (max-width: 920px) {
  :root main > * { max-width: 100%; }
  :root main { overflow-x: hidden; }
}


/* mobile-overflow-fix v2 */
@media (max-width: 640px) {
  :root main,
  :root main > article,
  :root main > div,
  :root main > section,
  :root main > nav {
    box-sizing: border-box;
    max-width: 100%;
    width: 100%;
  }
  :root main > article > *,
  :root main > div > *,
  :root main > section > *,
  :root main > nav > * {
    max-width: 100%;
  }
  :root main h1,
  :root main h2,
  :root main h3,
  :root main h4 {
    overflow-wrap: break-word;
    word-break: normal;
  }
  /* Any 3+ col grid inside main → 1 col on mobile */
  :root main :is(ul, ol, section, div, nav)[style*="grid-template-columns"],
  :root main > section > ul,
  :root main > nav > ul,
  :root main > div > ul {
    grid-template-columns: 1fr !important;
  }
  /* Any CSS multi-column layout → 1 col on mobile */
  :root main :is(ul, ol, section, div, p) {
    columns: 1;
  }
  /* Article body images stay inside viewport */
  :root main img,
  :root main figure {
    max-width: 100%;
    height: auto;
  }
}


/* mobile-padding-fix v1 */
@media (max-width: 640px) {
  :root main {
    padding-left: 20px;
    padding-right: 20px;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   QA REFIX iter1 — corrections chirurgicales (M2 mobile, M7 accueil, S6)
   Marqueur inchangé : v.21512d. Aucune police / section / héros nouveau.
   ═══════════════════════════════════════════════════════════════════ */

/* ── M2 (mobile) — le bandeau « À LIRE EN PREMIER » redevient une bande
   pleine largeur AU-DESSUS de la carte, hors du cadre arrondi.
   (En mobile il était rendu static → collé DANS le cadre de la 1re carte.) */
@media (max-width:760px){
  :root main:not(:has(> article)) > div:nth-child(2){ margin-top:3rem; }
  :root main:not(:has(> article)) > div:nth-child(2)::before{
    position:absolute;
    left:0;
    bottom:calc(100% + .8rem);
    width:100%;
    display:block;
    margin-bottom:0;
  }
}

/* ── M7 — QUEUE : index magazine en cartes crème encadrées ───────────
   div6 (nth-last-child(3)) reste pleine largeur = ancre du strip « VOIR TOUT »
   → carte-tête de l'index. div7 & div8 passent en rangée 2 colonnes.
   Même système visuel que les cartes du haut (bord, rayon, ombre, padding,
   survol) mais plus compact → parité de design haut/bas de page. */
:root main:not(:has(> article)) > div:nth-last-child(-n+3){
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  padding:22px 26px 24px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:9px;
  box-shadow:var(--shadow);
}
:root main:not(:has(> article)) > div:nth-last-child(-n+3):hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-lift);
  background:var(--surface);
}
/* les deux plus anciennes côte à côte (rangée 2-col, hauteurs égales par
   grid-stretch) ; on annule les marges négatives de l'ancien index plat */
:root main:not(:has(> article)) > div:nth-last-child(1),
:root main:not(:has(> article)) > div:nth-last-child(2){
  grid-column:span 1;
  margin-top:0;
}
/* date compacte remise en bloc (fin du flex-row qui tassait le titre) */
:root main:not(:has(> article)) > div:nth-last-child(-n+3) > p:first-of-type{
  margin:0;
}
/* titre d'index un cran plus lisible dans la cellule */
:root main:not(:has(> article)) > div:nth-last-child(-n+3) h2{
  font-size:17px;
}
@media (max-width:760px){
  /* mono-colonne : les trois cartes pleines largeur, empilées, sans débord */
  :root main:not(:has(> article)) > div:nth-last-child(-n+3){
    padding:18px 20px 20px;
  }
}

/* ── S6 (note) — ligne persona/lieu sous la date d'article ───────────
   Ne cible que les vraies pages article (main > span = date) ; les pages
   utilitaires ont leur <h1> DANS <article> donc pas de main > span. */
:root main:has(> article) > span::after{
  content:" · Par Julien · Poitiers";
}


/* premium-upgrade v1 */
/* premium editorial upgrade — style=Monocle-Swiss overlay=40% grid=equal scale=dramatic family=flat-divs */


/* ── CARD 1: featured full-row with 300px photo header (via card-own background, NOT ::before —
    leaves ::before free for existing site's M2 label / meta content). ── */
:root main:not(:has(> h1)) > div:nth-of-type(1) {
  grid-column: 1 / -1;
  position: relative;      /* anchor for existing site's ::before label if it uses absolute */
  overflow: visible;       /* let above-card labels render without clipping */
  padding: 320px 44px 40px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-card-1.webp") no-repeat center top / 100% 300px,
    var(--bg) !important;
  margin-top: 60px !important;  /* room for above-card M2 label (existing site convention) */
}

/* ── CARDS 2-4: medium with 180px photo header (background technique, ::before untouched) ── */
:root main:not(:has(> h1)) > div:nth-of-type(2) {
  padding: 200px 32px 32px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-card-2.webp") no-repeat center top / 100% 180px,
    var(--bg) !important;
}
:root main:not(:has(> h1)) > div:nth-of-type(3) {
  padding: 200px 32px 32px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-card-3.webp") no-repeat center top / 100% 180px,
    var(--bg) !important;
}
:root main:not(:has(> h1)) > div:nth-of-type(4) {
  padding: 200px 32px 32px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-card-4.webp") no-repeat center top / 100% 180px,
    var(--bg) !important;
}

/* ── flat-divs family: cards 5 & 6 also get photo headers ── */
:root main:not(:has(> h1)) > div:nth-of-type(5) {
  padding: 200px 32px 32px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-strip-1.webp") no-repeat center top / 100% 180px,
    var(--bg) !important;
}
:root main:not(:has(> h1)) > div:nth-of-type(6) {
  padding: 200px 32px 32px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-strip-2.webp") no-repeat center top / 100% 180px,
    var(--bg) !important;
}

/* ── Article page: drop cap + dinkus dividers ── */
:root main:has(> h1) > article > p:first-of-type::first-letter {
  font-family: var(--fh), Georgia, serif;
  font-size: 76px; line-height: 0.9; color: var(--primary);
  float: left; margin: 6px 12px 0 0; padding: 0; font-weight: 400;
}
:root main:has(> h1) > article > h2 + p ~ h2::before {
  content: "✦ ✦ ✦";
  display: block; text-align: center; color: var(--accent);
  font-size: 12px; letter-spacing: 0.3em; margin-bottom: 24px;
  font-weight: 400;
}

/* ── Mobile responsive: adjust photo heights via background-size on the card itself ── */
@media (max-width: 720px) {
  :root main:not(:has(> h1)) > div:nth-of-type(1) {
    padding: 240px 22px 28px !important;
    background:
      url("/theme-assets/premium-hero-card-1.webp") no-repeat center top / 100% 220px,
      var(--bg) !important;
  }
  :root main:not(:has(> h1)) > div:nth-of-type(2) {
    padding: 180px 22px 26px !important;
    background:
      url("/theme-assets/premium-hero-card-2.webp") no-repeat center top / 100% 160px,
      var(--bg) !important;
  }
  :root main:not(:has(> h1)) > div:nth-of-type(3) {
    padding: 180px 22px 26px !important;
    background:
      url("/theme-assets/premium-hero-card-3.webp") no-repeat center top / 100% 160px,
      var(--bg) !important;
  }
  :root main:not(:has(> h1)) > div:nth-of-type(4) {
    padding: 180px 22px 26px !important;
    background:
      url("/theme-assets/premium-hero-card-4.webp") no-repeat center top / 100% 160px,
      var(--bg) !important;
  }
  :root main:not(:has(> h1))::before,
  :root main:not(:has(> h1))::after { min-height: 240px; }
  :root main:has(> h1) > article > p:first-of-type::first-letter { font-size: 60px; }
}

