/*
Theme Name: Lorrain Expo
Theme URI: https://lorrainexpo.com
Author: Seobooster LTD
Author URI: https://seoboosterltd.com
Description: Thème code-pur de lorrainexpo.com — le bureau de préparation de l'exposant : comparer, chiffrer, trouver son standiste. Plan des halls, cotes en mètres, badge exposant, palette or et gueules de Lorraine, mascotte Alérion.
Version: 1.0.0
Requires PHP: 7.4
Text Domain: lorrain-expo
*/

/* ==========================================================================
   0. TOKENS — clair (défaut) et sombre (prefers-color-scheme)
   ========================================================================== */
:root{
  color-scheme: light dark;

  /* palette DIRECTION-ARTISTIQUE.md §2 */
  --toile:     #FAF7F0;
  --craie:     #EDE7DA;
  --encre:     #1A1E23;
  --alu:       #5A6069;
  --gueules:   #B3261E;
  --gueules-fonce: #8C1D17;
  --mirabelle: #E9A916;
  --nuit-hall: #1F2A33;
  --nuit-hall-2:#26333D;
  --valide:    #1E6B47;

  /* rôles */
  --bg:        var(--toile);
  --surface:   var(--craie);
  --texte:     var(--encre);
  --texte-att: var(--alu);
  --accent:    var(--gueules);
  --accent-survol: var(--gueules-fonce);
  --reper:     var(--mirabelle);
  --bande:     var(--nuit-hall);
  --bande-2:   var(--nuit-hall-2);
  --bande-texte: var(--toile);
  --ligne:     rgba(26,30,35,.14);

  /* halls (H1…H6) — nuances chaudes/terreuses de marquage au sol, contrastées */
  --h1: #B3261E; /* Salons & tendances */
  --h2: #A8541F; /* Stand design */
  --h3: #8C6B1E; /* Marketing digital */
  --h4: #6B4A2E; /* Logistique */
  --h5: #7C3F2B; /* Réseaux & partenariats */
  --h6: #4F2A24; /* Financement & contrats */

  /* typo */
  --font-titre: 'Anek Latin Variable', 'Anek Latin', system-ui, sans-serif;
  --font-corps: 'Radio Canada Variable', 'Radio Canada', system-ui, sans-serif;
  --font-mono:  'Sometype Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  --h1-taille: 64px;
  --h2-taille: 40px;
  --h3-taille: 26px;
  --tuile-taille: 88px;
  --corps-taille: 18px;
  --meta-taille: 14px;

  /* rythme (1 module = 24px = « 1 mètre ») */
  --m1: 24px; --m2: 48px; --m3: 72px; --m4: 96px;

  --rayon: 10px;
  --rayon-badge: 12px;
  --max: 1280px;
}

@media (prefers-color-scheme: dark){
  :root{
    --bg:        #15191E;
    --surface:   #1F2A33;
    --texte:     #ECE6D8;
    --texte-att: #A9AFB8;
    --accent:    #F07A6E;
    --accent-survol: #F79A91;
    --reper:     #E9A916;
    --bande:     #0F1418;
    --bande-2:   #1A2128;
    --bande-texte:#ECE6D8;
    --ligne:     rgba(236,230,216,.16);

    --h1:#E36D5F; --h2:#D98A55; --h3:#C9A94A; --h4:#B08B6B; --h5:#C0806A; --h6:#9E6259;
  }
}

/* ==========================================================================
   1. RESET / BASE
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--texte);
  font-family:var(--font-corps);font-size:var(--corps-taille);line-height:1.65;font-weight:400;
  overflow-wrap:anywhere;word-break:break-word;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{color:var(--accent-survol)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid var(--reper);outline-offset:2px;
}
h1,h2,h3,h4{font-family:var(--font-titre);font-weight:700;line-height:1.08;margin:0 0 var(--m1);color:var(--texte)}
h1{font-size:var(--h1-taille);font-variation-settings:'wdth' 75,'wght' 700}
h2{font-size:var(--h2-taille);font-variation-settings:'wdth' 87,'wght' 650}
h3{font-size:var(--h3-taille);font-variation-settings:'wdth' 87,'wght' 600}
p{margin:0 0 1em}
ul,ol{padding-left:1.15em}
.sb-sur-titre{font-family:var(--font-mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent);display:inline-flex;align-items:center;gap:8px;margin:0 0 12px}
.sb-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:8px;top:-200px;background:var(--encre);color:#fff;padding:10px 16px;
  border-radius:8px;z-index:200;transition:top .15s}
.skip-link:focus{top:8px}

/* ==========================================================================
   2. GRILLE / UTILITAIRES
   ========================================================================== */
.enveloppe{max-width:var(--max);margin-inline:auto;padding-inline:var(--m1)}
.grille12{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--m1)}
section{padding-block:var(--m3)}
.sb-masque{display:none !important}
.quadrille{background-image:
  repeating-linear-gradient(0deg,rgba(26,30,35,.05) 0 1px,transparent 1px 24px),
  repeating-linear-gradient(90deg,rgba(26,30,35,.05) 0 1px,transparent 1px 24px);}
@media (prefers-color-scheme: dark){
  .quadrille{background-image:
    repeating-linear-gradient(0deg,rgba(236,230,216,.06) 0 1px,transparent 1px 24px),
    repeating-linear-gradient(90deg,rgba(236,230,216,.06) 0 1px,transparent 1px 24px);}
}
.fond-craie{background:var(--surface)}
.fond-nuit{background:var(--bande);color:var(--bande-texte)}
.fond-nuit h2,.fond-nuit h3{color:var(--bande-texte)}
.fond-nuit a{color:var(--reper)}

/* bande en biais — procédé 5, UNE fois par page */
.biais{position:relative;height:64px;overflow:hidden;margin-block:var(--m2)}
.biais::before{content:"";position:absolute;inset:-30% -10%;background:var(--gueules);transform:rotate(-12deg)}

/* cta */
.sb-cta{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-titre);
  font-weight:700;font-size:16px;padding:14px 24px;border-radius:6px;border:2px solid transparent;
  text-decoration:none;cursor:pointer;min-height:44px;line-height:1.1}
.sb-cta--pleine{background:var(--gueules);color:#fff;border-color:var(--gueules)}
.sb-cta--pleine:hover{background:var(--gueules-fonce);border-color:var(--gueules-fonce);color:#fff}
.sb-cta--contour{background:transparent;color:var(--texte);border-color:var(--alu)}
.sb-cta--contour:hover{border-color:var(--gueules);color:var(--gueules)}
.sb-cta--encre{background:var(--encre);color:var(--toile);border-color:var(--encre)}
.sb-cta--encre:hover{background:#000}
@media (prefers-color-scheme: dark){
  .sb-cta--contour{color:var(--texte);border-color:var(--texte-att)}
  .sb-cta--encre{background:var(--texte);color:#15191E;border-color:var(--texte)}
}

/* ==========================================================================
   3. HEADER STICKY
   ========================================================================== */
.sb-entete{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--bg) 96%,transparent);
  backdrop-filter:blur(6px);border-bottom:1px solid var(--ligne)}
.sb-entete-in{display:flex;align-items:center;gap:var(--m1);height:72px;transition:height .15s}
.sb-entete.sb-reduit .sb-entete-in{height:56px}
.sb-logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.sb-logo svg,.sb-logo img{width:40px;height:40px}
.sb-entete.sb-reduit .sb-logo svg,.sb-entete.sb-reduit .sb-logo img{width:32px;height:32px}
.sb-logo-texte{font-family:var(--font-titre);font-weight:700;font-size:19px;letter-spacing:.01em;color:var(--texte)}
.sb-logo-texte b{color:var(--gueules)}
.sb-nav-primaire{display:flex;gap:22px;margin-inline:auto;list-style:none;padding:0}
.sb-nav-primaire a{color:var(--texte);text-decoration:none;font-weight:600;font-size:15px;padding:8px 2px}
.sb-nav-primaire a:hover{color:var(--gueules)}
.sb-entete-actions{display:flex;align-items:center;gap:12px;margin-left:auto}
.sb-burger{display:none;background:none;border:2px solid var(--alu);border-radius:6px;width:44px;height:44px;
  align-items:center;justify-content:center;cursor:pointer}
.sb-burger svg{width:22px;height:22px}
.sb-menu-mobile{display:none}

@media (max-width:900px){
  .sb-nav-primaire{display:none}
  .sb-burger{display:inline-flex}
  .sb-entete-actions .sb-cta--pleine span.sb-cta-texte-longue{display:none}
  .sb-menu-mobile{position:fixed;inset:0;top:0;background:var(--bande);color:var(--bande-texte);z-index:150;
    padding:var(--m1);overflow-y:auto}
  .sb-menu-mobile[hidden]{display:none}
  .sb-menu-mobile.sb-ouvert{display:block}
  .sb-menu-mobile-tete{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--m2)}
  .sb-menu-mobile-fermer{background:none;border:2px solid var(--bande-texte);border-radius:6px;color:var(--bande-texte);
    width:44px;height:44px}
  .sb-menu-mobile ul{list-style:none;padding:0;margin:0;display:grid;gap:2px;background-image:
    repeating-linear-gradient(0deg,rgba(255,255,255,.08) 0 1px,transparent 1px 24px)}
  .sb-menu-mobile a{display:flex;align-items:center;gap:12px;color:var(--bande-texte);text-decoration:none;
    font-family:var(--font-titre);font-size:20px;font-weight:700;padding:16px 4px;min-height:44px}
  .sb-menu-mobile .sb-hall-num{color:var(--reper)}
}

/* ==========================================================================
   4. HERO
   ========================================================================== */
.sb-hero{padding-block:var(--m3)}
.sb-hero-in{display:grid;grid-template-columns:7fr 5fr;gap:var(--m2);align-items:center}
.sb-hero h1{margin-bottom:var(--m1)}
.sb-hero-chapo{font-size:20px;color:var(--texte-att);max-width:56ch;margin-bottom:var(--m1)}
.sb-hero-actions{display:flex;flex-wrap:wrap;gap:14px}
.sb-hero-visuel{position:relative}
.sb-hero-visuel svg{width:100%;height:auto}
@media (min-width:1025px){
  .sb-hero-visuel{padding-bottom:64px}
  .sb-hero-visuel .sb-badge{position:absolute;right:0;bottom:0;z-index:2}
}

/* badge exposant — procédé 4, un seul par écran */
.sb-badge{background:var(--bg);border:1px solid var(--alu);border-radius:var(--rayon-badge);
  padding:26px 22px 20px;position:relative;box-shadow:0 12px 32px rgba(26,30,35,.14);max-width:360px}
.sb-badge::before{content:"";position:absolute;top:-14px;left:50%;translate:-50% 0;width:44px;height:8px;
  border-radius:4px;background:var(--mirabelle)}
.sb-badge::after{content:"";position:absolute;top:-6px;left:50%;translate:-50% 0;width:14px;height:14px;
  border-radius:50%;background:var(--bg);border:1px solid var(--alu)}
.sb-badge-titre{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--gueules);margin-bottom:14px}
@media (prefers-color-scheme: dark){ .sb-badge{background:var(--surface)} .sb-badge::after{background:var(--surface)} }

/* cotes — procédé 2 */
.sb-cote{font-family:var(--font-mono);font-size:12px;color:var(--alu);display:inline-flex;align-items:center;gap:4px}
.sb-cote::before,.sb-cote::after{content:"";width:14px;height:1px;background:var(--alu)}

/* ==========================================================================
   5. BANDE « AU PROCHAIN SALON » (nuit-hall)
   ========================================================================== */
.sb-prochain{padding-block:var(--m3)}
.sb-prochain-in{display:grid;grid-template-columns:7fr 5fr;gap:var(--m2)}
.sb-prochain h2{color:var(--bande-texte)}
.sb-salons{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.sb-salon{display:flex;align-items:center;gap:16px;padding:14px 0;border-top:1px solid rgba(255,255,255,.14)}
.sb-jx{font-family:var(--font-mono);font-weight:600;font-size:14px;background:var(--mirabelle);color:var(--encre);
  padding:6px 10px;border-radius:5px;flex-shrink:0;min-width:60px;text-align:center}
.sb-jx--fini{background:transparent;color:var(--texte-att);border:1px solid var(--alu)}
.sb-salon-nom{font-weight:600}
.sb-salon-lieu{color:var(--texte-att);font-size:14px;display:block}
.sb-fil-actu{list-style:none;margin:0;padding:0;display:grid;gap:16px;border-left:2px solid rgba(255,255,255,.14);padding-left:18px}
.sb-fil-actu li a{color:var(--bande-texte);text-decoration:none;font-weight:600}
.sb-fil-actu li a:hover{color:var(--reper)}
.sb-fil-actu .sb-date{color:var(--texte-att);font-size:13px}

/* ==========================================================================
   6. TUILES DE CHIFFRES
   ========================================================================== */
.sb-tuiles{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--m1)}
.sb-tuile{background:var(--bg);border:1px solid var(--ligne);border-radius:var(--rayon);padding:24px}
.sb-tuile b{display:block;font-family:var(--font-titre);font-size:var(--tuile-taille);line-height:1;color:var(--gueules)}
.sb-tuile span{display:block;color:var(--texte-att);font-size:14px;margin-top:8px}

/* ==========================================================================
   7. HALLS (6 rubriques)
   ========================================================================== */
.sb-halls{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--m1)}
.sb-hall{position:relative;aspect-ratio:1/1;border-radius:var(--rayon);overflow:hidden;text-decoration:none;
  display:flex;flex-direction:column;justify-content:flex-end;padding:22px;color:#fff;
  background:var(--hc);border:1px solid var(--alu)}
.sb-hall-num{font-family:var(--font-mono);font-size:13px;letter-spacing:.05em;opacity:.9}
.sb-hall h3{color:#fff;margin:6px 0 4px;font-size:22px}
.sb-hall p{color:rgba(255,255,255,.86);font-size:14px;margin:0}
.sb-hall:hover{outline:3px solid var(--mirabelle);outline-offset:-3px}

/* ==========================================================================
   8. COMPARATIF TYPES DE STAND (infographie en cartes — jamais un tableau)
   ========================================================================== */
.sb-compar{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--m1)}
.sb-compar-carte{background:var(--bg);border:1px solid var(--ligne);border-radius:var(--rayon);padding:22px;
  display:flex;flex-direction:column;gap:10px}
.sb-compar-carte .sb-plaque{aspect-ratio:4/3}
.sb-compar-carte ul{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:14px;color:var(--texte-att)}
.sb-compar-carte li::before{content:"— "}
.sb-compar-carte .sb-cta{margin-top:auto;justify-content:center}

/* ==========================================================================
   9. FRISE MÉTHODE 6 ÉTAPES
   ========================================================================== */
.sb-frise-methode{list-style:none;padding:0;margin:0 0 var(--m2);display:grid;grid-template-columns:repeat(6,1fr);gap:var(--m1)}
.sb-frise-methode li{position:relative;padding-top:40px}
.sb-frise-methode li::before{content:attr(data-n);position:absolute;top:0;left:0;font-family:var(--font-mono);
  font-size:14px;width:32px;height:32px;border-radius:50%;background:var(--gueules);color:#fff;
  display:flex;align-items:center;justify-content:center}
.sb-frise-methode li::after{content:"";position:absolute;top:16px;left:34px;right:-24px;height:1px;background:var(--alu)}
.sb-frise-methode li:last-child::after{display:none}
.sb-frise-methode h4{font-size:16px;margin:0 0 4px}
.sb-frise-methode p{font-size:14px;color:var(--texte-att);margin:0}

/* ==========================================================================
   10. VILLES DU GRAND EST
   ========================================================================== */
.sb-villes{display:grid;grid-template-columns:2fr 3fr;gap:var(--m2);align-items:start}
.sb-villes-cartes{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--m1)}
.sb-ville-carte{display:block;text-decoration:none;background:var(--bg);border:1px solid var(--ligne);
  border-radius:var(--rayon);overflow:hidden}
.sb-ville-carte .sb-plaque{aspect-ratio:4/3}
.sb-ville-carte h4{margin:12px 16px 4px;font-size:18px;color:var(--texte)}
.sb-ville-carte p{margin:0 16px 14px;font-size:13px;color:var(--texte-att)}

/* ==========================================================================
   11. BANDE MIRABELLE FINE
   ========================================================================== */
.sb-mirabelle-fine{background:var(--mirabelle);color:var(--encre);padding-block:var(--m1)}
.sb-mirabelle-fine .enveloppe{display:flex;align-items:center;justify-content:space-between;gap:var(--m1);flex-wrap:wrap}
.sb-mirabelle-fine h2{color:var(--encre);font-size:24px;margin:0}

/* ==========================================================================
   12. CARTES / CAISSON LUMINEUX / CODE DE STAND
   ========================================================================== */
.sb-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--m1)}
.sb-carte{text-decoration:none;color:var(--texte);display:block}
.sb-carte h3{font-size:19px;margin:12px 0 6px}
.sb-carte h3 a{color:var(--texte);text-decoration:none}
.sb-carte:hover h3 a{color:var(--gueules)}
.sb-carte .sb-chapo{font-size:14px;color:var(--texte-att);margin:0 0 6px}
.sb-carte .sb-date{font-size:12px;color:var(--texte-att);font-family:var(--font-mono)}
.sb-caisson{position:relative;border:1px solid var(--alu);padding:6px;border-radius:6px;background:var(--surface);
  transition:box-shadow .2s}
.sb-caisson img,.sb-caisson .sb-plaque{border-radius:3px}
.sb-carte:hover .sb-caisson{box-shadow:0 0 28px 6px rgba(233,169,22,.32)}
@media (prefers-color-scheme: dark){
  .sb-carte:hover .sb-caisson{box-shadow:0 0 34px 10px rgba(233,169,22,.45)}
}
.sb-plaque{display:grid;place-items:center;width:100%;aspect-ratio:16/9;background:color-mix(in srgb,var(--pc,var(--gueules)) 16%, var(--surface));
  color:var(--pc,var(--gueules));font-family:var(--font-titre);font-size:44px;font-weight:700}
.sb-code-stand{position:absolute;left:12px;bottom:12px;background:rgba(26,30,35,.85);color:var(--toile);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.03em;padding:5px 9px;border-radius:4px}

/* ==========================================================================
   13. DERNIERS DOSSIERS
   ========================================================================== */
.sb-derniers-dossiers .sb-grille{grid-template-columns:repeat(3,1fr)}
.sb-grille--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:640px){.sb-grille--2{grid-template-columns:1fr}}

/* ==========================================================================
   14. FORMULAIRES (D1/D2/D3/contact)
   ========================================================================== */
.sb-form{background:var(--bg);border:1px solid var(--ligne);border-radius:var(--rayon);padding:var(--m1)}
.sb-form fieldset{border:0;padding:0;margin:0}
.sb-form legend{font-family:var(--font-titre);font-size:20px;font-weight:700;margin-bottom:16px;padding:0}
.sb-champ{display:grid;gap:6px;margin-bottom:16px}
.sb-champ label{font-weight:600;font-size:14px}
.sb-champ .sb-note{font-size:12px;color:var(--texte-att);font-weight:400}
.sb-champ input[type=text],.sb-champ input[type=email],.sb-champ input[type=tel],
.sb-champ input[type=month],.sb-champ input[type=number],.sb-champ select,.sb-champ textarea{
  font:inherit;font-size:16px;padding:12px 14px;border-radius:8px;border:1.5px solid var(--alu);
  background:var(--bg);color:var(--texte);min-height:44px;width:100%}
.sb-champ textarea{min-height:100px;resize:vertical}
.sb-champ input:focus,.sb-champ select:focus,.sb-champ textarea:focus{border-color:var(--gueules)}
.sb-choix-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.sb-choix{display:flex;align-items:center;gap:8px;border:1.5px solid var(--alu);border-radius:8px;
  padding:12px 14px;cursor:pointer;min-height:44px}
.sb-choix:has(input:checked){border-color:var(--gueules);background:color-mix(in srgb,var(--gueules) 8%,var(--bg))}
.sb-choix input{accent-color:var(--gueules)}
.sb-erreur{color:var(--gueules-fonce);font-size:13px;font-weight:600;display:none}
.sb-champ.sb-invalide .sb-erreur{display:block}
.sb-champ.sb-invalide input,.sb-champ.sb-invalide select{border-color:var(--gueules)}
.sb-piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sb-form-actions{display:flex;justify-content:space-between;gap:12px;margin-top:var(--m1)}

/* frise d'étapes */
.sb-frise-etapes{list-style:none;display:flex;padding:0;margin:0 0 var(--m1);gap:4px}
.sb-frise-etapes li{flex:1;text-align:center;font-family:var(--font-mono);font-size:12px;color:var(--texte-att);
  padding-bottom:10px;border-bottom:3px solid var(--ligne);text-transform:uppercase;letter-spacing:.03em}
.sb-frise-etapes li.sb-actif{color:var(--gueules);border-color:var(--gueules);font-weight:700}
.sb-frise-etapes li.sb-fait{border-color:var(--valide)}
.sb-etape[hidden]{display:none}

.sb-rgpd{font-size:13px;color:var(--texte-att);display:flex;gap:8px;align-items:flex-start}
.sb-rgpd input{margin-top:4px;accent-color:var(--gueules)}
.sb-confirmation{display:none;text-align:center;padding:var(--m2) var(--m1)}
.sb-confirmation.sb-visible{display:block}
.sb-confirmation svg{width:72px;height:72px;margin:0 auto 16px}
.sb-form.sb-envoye .sb-etape,.sb-form.sb-envoye .sb-frise-etapes,.sb-form.sb-envoye .sb-form-actions{display:none}

/* encart devis (badge compact inséré dans le fil d'un article) */
.sb-encart-devis{margin:var(--m2) 0;background:var(--surface);border-left:4px solid var(--gueules);
  border-radius:0 var(--rayon) var(--rayon) 0;padding:20px 22px;display:flex;align-items:center;
  justify-content:space-between;gap:16px;flex-wrap:wrap}
.sb-encart-devis p{margin:0;font-weight:600}

/* ==========================================================================
   15. POP-UP D4
   ========================================================================== */
#sb-popup-fond{position:fixed;inset:0;background:rgba(15,20,24,.6);z-index:200;display:none;
  align-items:center;justify-content:center;padding:var(--m1)}
#sb-popup-fond.sb-visible{display:flex}
#sb-popup-carte{background:var(--bg);border-radius:var(--rayon);max-width:440px;width:100%;padding:var(--m1);
  position:relative;box-shadow:0 24px 64px rgba(0,0,0,.35);border:none}
#sb-popup-fermer{position:absolute;top:12px;right:12px;background:none;border:1.5px solid var(--alu);
  border-radius:6px;width:40px;height:40px}
@media (max-width:640px){
  #sb-popup-fond{align-items:flex-end;background:transparent;padding:0}
  #sb-popup-carte{border-radius:16px 16px 0 0;max-width:none;box-shadow:0 -12px 32px rgba(0,0,0,.25)}
}

.sb-reassurance{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--m1)}
@media (max-width:900px){.sb-reassurance{grid-template-columns:1fr}}

/* ==========================================================================
   16. FOOTER
   ========================================================================== */
.sb-pied{padding-block:var(--m3) var(--m2)}
.sb-pied-grille{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:var(--m2)}
.sb-pied h3{color:var(--bande-texte);font-size:14px;text-transform:uppercase;letter-spacing:.05em;
  font-family:var(--font-mono);font-weight:600;margin-bottom:14px}
.sb-pied ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.sb-pied a{color:var(--texte-att);text-decoration:none;font-size:14px}
.sb-pied a:hover{color:var(--reper)}
.sb-pied-marque{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.sb-pied-marque svg{width:36px;height:36px}
.sb-pied-marque span{font-family:var(--font-titre);font-weight:700;font-size:18px;color:var(--bande-texte)}
.sb-pied-baseline{color:var(--texte-att);font-size:13px;max-width:34ch}
.sb-pied-bas{border-top:1px solid rgba(255,255,255,.14);margin-top:var(--m2);padding-top:var(--m1);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--texte-att)}
.sb-pied-bas a{color:var(--texte-att)}
.sb-pied-contact{font-family:var(--font-mono);font-size:13px}

/* ==========================================================================
   17. ARTICLE (single.php)
   ========================================================================== */
.sb-ariane{font-size:13px;color:var(--texte-att);margin-bottom:14px}
.sb-ariane a{color:var(--texte-att);text-decoration:none}
.sb-ariane a:hover{color:var(--gueules)}
.sb-art-tete{padding-block:var(--m2) var(--m1)}
.sb-etiquette{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;
  text-transform:uppercase;letter-spacing:.04em;color:#fff;background:var(--pc,var(--gueules));
  padding:5px 10px;border-radius:4px}
.sb-art-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--texte-att);font-size:14px;margin-top:14px}
.sb-art-meta .sb-code-stand-inline{font-family:var(--font-mono);color:var(--texte)}
.sb-une-article{position:relative;aspect-ratio:16/9;max-height:520px;overflow:hidden;border-radius:var(--rayon);
  margin-block:var(--m1)}
.sb-une-article img{width:100%;height:100%;object-fit:cover}
.sb-art-corps{display:grid;grid-template-columns:2fr 1fr;gap:var(--m2);align-items:start}
.sb-texte{max-width:68ch;font-size:var(--corps-taille);min-width:0;overflow-wrap:anywhere}
.sb-texte table{display:block;max-width:100%;overflow-x:auto}
.sb-texte img,.sb-texte iframe,.sb-texte video,.sb-texte figure{max-width:100%;height:auto}
.sb-texte pre{max-width:100%;overflow-x:auto;white-space:pre-wrap}
.sb-texte *{max-width:100%}
.sb-texte h2{margin-top:var(--m2)}
.sb-texte h3{margin-top:var(--m1)}
.sb-texte img{border-radius:8px}
.sb-texte a{word-break:break-word}
.sb-sommaire{background:var(--surface);border-radius:var(--rayon);padding:18px 20px;margin-bottom:var(--m1)}
.sb-sommaire p{font-family:var(--font-mono);text-transform:uppercase;font-size:12px;letter-spacing:.05em;
  color:var(--texte-att);margin:0 0 10px}
.sb-sommaire ol{list-style:none;padding:0;margin:0;display:grid;gap:6px;counter-reset:som}
.sb-sommaire a{color:var(--texte);text-decoration:none;font-size:14px}
.sb-encadre-retenir{background:var(--surface);border-left:4px solid var(--gueules);border-radius:0 var(--rayon) var(--rayon) 0;
  padding:18px 20px;margin:var(--m1) 0}
.sb-encadre-retenir p:first-child{font-family:var(--font-titre);font-weight:700;margin-bottom:6px}
.sb-cote{position:sticky;top:96px;display:grid;gap:var(--m1)}
.sb-cote-bloc{background:var(--surface);border-radius:var(--rayon);padding:18px 20px}
.sb-cote-bloc p:first-child{font-family:var(--font-mono);text-transform:uppercase;font-size:12px;
  letter-spacing:.05em;color:var(--texte-att);margin-bottom:8px}
.sb-signature{display:flex;gap:16px;align-items:flex-start;background:var(--surface);border-radius:var(--rayon);
  padding:var(--m1);margin-block:var(--m2)}
.sb-signature svg,.sb-signature img{width:72px;height:72px;border-radius:50%;flex-shrink:0;border:2px solid var(--bg)}
.sb-signature-nom{font-weight:700;margin:0 0 4px}
.sb-signature-bio{color:var(--texte-att);font-size:14px;margin:0 0 8px}
.sb-signature-lien{font-size:13px;font-weight:600}
.sb-lies{margin-top:var(--m3)}

/* ==========================================================================
   18. PAGE VILLE
   ========================================================================== */
.sb-ville-hero{padding-block:var(--m2)}
.sb-ville-hero-in{display:grid;grid-template-columns:6fr 6fr;gap:var(--m2);align-items:start}
.sb-fiche-lieu{display:grid;gap:10px;font-size:14px;color:var(--texte-att)}
.sb-fiche-lieu dt{font-weight:600;color:var(--texte)}
.sb-fiche-lieu dd{margin:0 0 8px}

/* ==========================================================================
   19. HALL (archive.php / category.php)
   ========================================================================== */
.sb-hall-tete{padding-block:var(--m2)}
.sb-hall-numero{display:inline-block;font-family:var(--font-titre);font-size:72px;font-weight:700;
  font-variation-settings:'wdth' 75,'wght' 700;color:var(--pc,var(--gueules));line-height:1}
.sb-hall-titre{margin:8px 0 6px}
.sb-hall-titre::after{content:"";display:block;height:8px;width:160px;margin-top:14px;background:var(--pc,var(--gueules));
  transform:skewX(-12deg)}
.sb-hall-chapo{max-width:64ch;color:var(--texte-att);font-size:18px}
.pagination{display:flex;gap:8px;justify-content:center;margin-top:var(--m2);font-family:var(--font-mono)}
.pagination a,.pagination span{padding:10px 14px;border:1.5px solid var(--alu);border-radius:6px;text-decoration:none;
  color:var(--texte);min-width:44px;text-align:center}
.pagination .current{background:var(--gueules);border-color:var(--gueules);color:#fff}

/* ==========================================================================
   20. PAGES ANNEXES
   ========================================================================== */
.sb-page-corps{max-width:70ch;margin-inline:auto}
.sb-page-visuel{aspect-ratio:21/9;border-radius:var(--rayon);overflow:hidden;margin-bottom:var(--m2)}
.sb-page-visuel img{width:100%;height:100%;object-fit:cover}

/* ==========================================================================
   21. TABLEAUX (socle .sbs_tableau) — défilement mobile obligatoire
   ========================================================================== */
.sbs_tableau{overflow-x:auto;margin:var(--m1) 0;border:1px solid var(--ligne);border-radius:8px}
.sbs_tableau table{border-collapse:collapse;width:100%;min-width:520px;font-size:15px}
.sbs_tableau th,.sbs_tableau td{padding:12px 14px;border-bottom:1px solid var(--ligne);text-align:left}
.sbs_tableau th{background:var(--surface);font-family:var(--font-titre);font-weight:700}

/* ==========================================================================
   22. CALCULATEUR (page-estimer-budget-stand.php)
   ========================================================================== */
.sb-calc-resultat{background:var(--surface);border-radius:var(--rayon);padding:var(--m1);margin-top:var(--m1)}
.sb-calc-resultat[hidden]{display:none}
.sb-calc-postes{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.sb-calc-postes li{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--ligne)}
.sb-calc-postes li svg{width:20px;height:20px;flex-shrink:0;color:var(--gueules)}

/* ==========================================================================
   23. CHECKLIST (page-checklist-exposant.php)
   ========================================================================== */
.sb-checklist{display:none;margin-top:var(--m2)}
.sb-checklist.sb-visible{display:block}
.sb-checklist-etape{background:var(--surface);border-radius:var(--rayon);padding:18px 20px;margin-bottom:14px}
.sb-checklist-etape h3{margin:0 0 8px;font-size:17px}
.sb-checklist-etape ul{margin:0;padding-left:1.2em}

.sb-actu-mise{display:grid;grid-template-columns:1fr 2fr;gap:var(--m2)}
@media (max-width:900px){.sb-actu-mise{grid-template-columns:1fr}}

/* ==========================================================================
   24. RESPONSIVE
   ========================================================================== */
@media (max-width:1024px){
  .sb-hero-in,.sb-prochain-in,.sb-villes,.sb-ville-hero-in{grid-template-columns:1fr}
  .sb-art-corps{grid-template-columns:1fr}
  .sb-cote{position:static;top:auto}
  .sb-halls,.sb-compar,.sb-grille,.sb-pied-grille{grid-template-columns:repeat(2,1fr)}
  .sb-tuiles{grid-template-columns:repeat(2,1fr)}
  .sb-frise-methode{grid-template-columns:repeat(3,1fr)}
  .sb-villes-cartes{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  :root{
    --h1-taille:38px; --h2-taille:28px; --h3-taille:21px; --tuile-taille:56px; --corps-taille:17px;
  }
  section{padding-block:var(--m2)}
  .sb-halls,.sb-compar,.sb-grille,.sb-tuiles,.sb-pied-grille,.sb-villes-cartes{grid-template-columns:1fr}
  .sb-frise-methode{grid-template-columns:1fr}
  .sb-frise-methode li::after{display:none}
  .sb-frise-etapes{flex-wrap:wrap}
  .sb-frise-etapes li{flex:1 1 40%}
  .sb-mirabelle-fine .enveloppe{flex-direction:column;align-items:flex-start}
  .sb-choix-grille{grid-template-columns:1fr}
  .sb-badge{max-width:none}
}

/* 22/09 recette : onglet actif lisible en sombre (2.7:1 -> accent clair) */
@media (prefers-color-scheme: dark){ .sb-frise-etapes li.sb-actif{color:#F08A80;border-color:#F08A80} }

/* ==========================================================================
   22/09 — LISTES DU CONTENU + INFOGRAPHIES DU SOCLE (sbs_*), style propre au site
   ========================================================================== */
.sb-texte ul{list-style:none;padding-left:0;margin-block:var(--m1)}
.sb-texte ul>li{position:relative;padding-left:28px;margin-block:10px}
.sb-texte ul>li::before{content:"";position:absolute;left:4px;top:.62em;width:12px;height:12px;background:var(--mirabelle);clip-path:polygon(0 0,100% 50%,0 100%)}
.sb-texte ol{padding-left:0;counter-reset:lex;list-style:none;margin-block:var(--m1)}
.sb-texte ol>li{counter-increment:lex;position:relative;padding-left:44px;margin-block:12px}
.sb-texte ol>li::before{content:counter(lex,decimal-leading-zero);position:absolute;left:0;top:.05em;font-family:var(--font-mono);font-weight:600;font-size:14px;color:var(--toile);background:var(--gueules);border-radius:6px;padding:2px 6px}
.sbs_tarifs,.sbs_frise,.sbs_jauges,.sbs_lieu{display:block;margin-block:var(--m2);padding:var(--m1);background:var(--surface);border-left:6px solid var(--gueules);border-radius:var(--rayon)}
.sbs_tarifs_titre,.sbs_frise_titre,.sbs_jauges_titre,.sbs_lieu_nom{display:block;font-family:var(--font-titre);font-size:22px;margin-bottom:16px;color:var(--texte)}
.sbs_tarif{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px;align-items:center;margin-block:10px}
.sbs_tarif_libelle{font-size:16px;color:var(--texte)}
.sbs_tarif_barre{width:100%;height:18px;border-radius:9px;background:var(--bg)}
.sbs_tarif_barre::-webkit-meter-bar{background:var(--bg);border:0;border-radius:9px;height:18px}
.sbs_tarif_barre::-webkit-meter-optimum-value{background:linear-gradient(90deg,var(--gueules),var(--mirabelle));border-radius:9px}
.sbs_tarif_barre::-moz-meter-bar{background:linear-gradient(90deg,var(--gueules),var(--mirabelle));border-radius:9px}
.sbs_tarifs_notes,.sbs_source{display:block;margin-top:14px;font-size:14px;color:var(--texte-att)}
.sbs_frise{position:relative}
.sbs_etape{display:grid;grid-template-columns:120px minmax(0,1fr);gap:4px 18px;position:relative;padding-block:12px;border-top:1px dashed var(--ligne)}
.sbs_etape:first-of-type{border-top:0}
.sbs_etape_date{grid-row:span 2;font-family:var(--font-mono);font-weight:600;font-size:14px;color:var(--gueules);align-self:start;padding-top:3px}
.sbs_etape_titre{font-family:var(--font-titre);font-size:18px;color:var(--texte)}
.sbs_etape_desc{font-size:16px;color:var(--texte)}
.sbs_jauges{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}
.sbs_jauges_titre,.sbs_jauges .sbs_source{grid-column:1/-1}
.sbs_jauge{display:flex;flex-direction:column;gap:4px;padding:16px;background:var(--bg);border-radius:var(--rayon);border-top:4px solid var(--mirabelle)}
.sbs_jauge_valeur{font-family:var(--font-titre);font-size:40px;font-weight:700;line-height:1;color:var(--gueules)}
.sbs_jauge_libelle,.sbs_jauge_unite{font-size:15px;color:var(--texte)}
.sbs_lieu_adresse{font-style:normal;margin-block:6px}
.sbs_lieu_carte{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--accent);font-weight:600}
.sbs_icone_repere{fill:currentColor}
@media (max-width:600px){.sbs_tarif{grid-template-columns:1fr}.sbs_etape{grid-template-columns:1fr}.sbs_etape_date{grid-row:auto}}
@media (prefers-color-scheme: dark){ .sbs_jauge_valeur,.sbs_etape_date{color:#F08A80} .sb-texte ol>li::before{background:#8C1D17} }

/* 22/09 relecture capture : hidden respecté, menu sur une ligne, halls en photo, à la une, pictos */
[hidden]{display:none!important}
.sb-nav-primaire a{white-space:nowrap}
.sb-hall--photo{background:linear-gradient(180deg,rgba(20,22,26,.05) 20%,rgba(20,22,26,.82) 78%),var(--himg) center/cover no-repeat,var(--hc)}
.sb-hall--photo::after{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--hc)}
.sb-une{display:block;text-decoration:none;color:var(--bande-texte)}
.sb-une-img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--rayon);display:block;margin-bottom:12px}
.sb-une-titre{display:block;font-family:var(--font-titre);font-size:24px;font-weight:700;line-height:1.2;color:var(--bande-texte)}
.sb-une .sb-date,.sb-fil-actu .sb-date{display:block;margin-top:4px}
.sb-plaque{display:flex;align-items:center;justify-content:center;color:var(--pc)}
.sb-plaque svg{width:120px;height:110px}

/* preuves courtes du premier écran (AC-008) */
.sb-preuves{list-style:none;padding:0;margin:var(--m1) 0 0;display:flex;flex-wrap:wrap;gap:8px 18px}
.sb-preuves li{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--texte)}
.sb-preuves li::before{content:"";width:10px;height:10px;background:var(--mirabelle);clip-path:polygon(0 0,100% 50%,0 100%)}

/* ==========================================================================
   24/09 — EN-TÊTE D'ARTICLE (retour Mathias LI-0147) : rythme régulier, une ligne de méta,
   repère de hall en étiquette, image à la une alignée sur la grille.
   ========================================================================== */
.sb-art-tete{padding-block:28px 0}
.sb-art-tete .sb-ariane{margin-bottom:16px}
.sb-art-reperes{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 16px}
.sb-art-reperes .sb-code-stand-inline{font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--texte-att)}
.sb-art-tete h1{max-width:36ch;margin:0 0 16px}
.sb-art-chapo{font-size:19px;line-height:1.5;max-width:60ch;margin:0 0 18px}
.sb-art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;margin:0;padding-bottom:18px;
  border-bottom:1px solid var(--ligne);font-size:14px;color:var(--texte-att)}
.sb-art-meta>span+span::before{content:"·";margin-inline:10px}
.sb-article>.enveloppe>.sb-une-article{aspect-ratio:21/9;max-height:none;margin:var(--m1) 0 var(--m2)}
@media (max-width:1024px){ .sb-article>.enveloppe>.sb-une-article{aspect-ratio:16/9} }
@media (max-width:640px){
  .sb-art-tete{padding-top:20px}
  .sb-art-tete .sb-ariane{margin-bottom:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sb-art-tete h1{margin-bottom:12px}
  .sb-art-chapo{font-size:17px;margin-bottom:14px}
  .sb-art-meta{font-size:13px;padding-bottom:14px}
  .sb-art-meta>span+span::before{margin-inline:7px}
  /* auteur seul sur sa ligne, « date · lecture » dessous : jamais de « · » orphelin en tête de ligne */
  .sb-art-meta>span:first-child{flex-basis:100%}
  .sb-art-meta>span:nth-child(2)::before{content:none}
  .sb-article>.enveloppe>.sb-une-article{margin:20px 0 var(--m1)}
}

/* ==========================================================================
   24/09 — ENCADRÉ « LE SAVIEZ-VOUS ? » et tout blockquote du corps (LI-0116 / LI-0149) :
   carte sobre, fond léger, filet gauche 3 px accent, étiquette mono 12 px, texte droit 16 px.
   ========================================================================== */
.sb-texte blockquote,.sb-texte .sb-encadre,.sb-texte .sb-saviez-vous,.sb-texte .sb-savez-vous,.sb-texte .lex0223-encart{
  margin:var(--m1) 0;padding:16px 18px;background:var(--surface);border-left:3px solid var(--accent);
  border-radius:10px;font-size:16px;font-style:normal;line-height:1.55;color:var(--texte);max-width:100%;box-sizing:border-box}
.sb-texte blockquote p,.sb-texte .sb-encadre p{margin:0;font-size:inherit;font-style:normal}
.sb-texte blockquote p+p,.sb-texte .sb-encadre p+p{margin-top:8px}
.sb-texte blockquote em,.sb-texte .sb-encadre em{font-style:normal}
.sb-texte blockquote cite{display:block;margin-top:8px;font-size:13px;font-style:normal;color:var(--texte-att)}
.sb-texte .sb-sv-etiq{display:block;font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--accent);margin:0 0 6px}
@media (max-width:640px){ .sb-texte blockquote,.sb-texte .sb-encadre{padding:14px 14px;font-size:15px} }

/* ==========================================================================
   29/09 — PEAUFINER ARTICLES (LI-0241, LI-0114, LI-0147, LI-0116/0149, B-AUT-01/05)
   A1 hero « hall éteint » + image dans son caisson sur la bande en biais gueules
   A2 ligne méta unique : photo ronde + auteur · date · lecture
   A3 colonne latérale sans tiret parasite, vide sous la carte auteur supprimé
   A4 carte auteur avec vraie photo · A5-A7 composants lx-* · A9 fiche auteur
   ========================================================================== */
/* A1 — HERO D'ARTICLE */
.sb-art-tete{position:relative;overflow:hidden;background-color:var(--bande);color:var(--bande-texte);padding-block:40px 40px;
  background-image:repeating-linear-gradient(0deg,rgba(250,247,240,.045) 0 1px,transparent 1px 24px),
    repeating-linear-gradient(90deg,rgba(250,247,240,.045) 0 1px,transparent 1px 24px)}
/* 30/09 (R-0732) — colonne texte élargie (1.35fr/.85fr), gap resserré, alignement en haut (stretch)
   au lieu de center : supprime le décalage vertical titre/image dénoncé par Mathias sur un autre site */
.sb-art-tete-in{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:40px;align-items:stretch}
.sb-art-tete--sans-image .sb-art-tete-in{grid-template-columns:minmax(0,1fr)}
.sb-art-tete-texte{min-width:0;position:relative;z-index:1}
.sb-art-tete .sb-ariane{color:#C9CED6;margin:0 0 18px}
.sb-art-tete .sb-ariane a{color:#C9CED6}
.sb-art-tete .sb-ariane a:hover{color:var(--mirabelle)}
.sb-art-tete .sb-art-reperes{margin:0 0 18px}
.sb-art-tete .sb-etiquette{text-decoration:none;box-shadow:0 0 0 1px rgba(250,247,240,.3)}
.sb-art-tete .sb-etiquette:hover{color:#fff;box-shadow:0 0 0 2px var(--mirabelle)}
/* 30/09 (R-0732) — taille réduite (clamp 28-38px) et colonne texte élargie (36ch) : un titre de ~90
   caractères tient en 3 lignes max au lieu de 5, jamais en majuscules */
.sb-art-tete h1{color:var(--bande-texte);font-size:clamp(28px,2.5vw,38px);line-height:1.15;max-width:36ch;margin:0 0 16px;text-wrap:balance}
.sb-art-tete .sb-art-chapo{font-size:19px;line-height:1.55;color:#D5D9DF;max-width:56ch;margin:0 0 26px}
/* A2 — une seule ligne méta, sans code de stand */
.sb-art-tete .sb-art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin:0;padding:0;border:0;font-size:15px;color:#C9CED6}
.sb-art-tete .sb-art-meta>span+span::before,.sb-art-tete .sb-art-meta>span:nth-child(2)::before{content:none}
.sb-art-auteur{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:var(--bande-texte);text-decoration:none}
.sb-art-auteur img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--mirabelle);flex-shrink:0;max-width:none}
.sb-art-auteur strong{font-weight:600;color:var(--bande-texte);text-decoration:underline;text-decoration-color:var(--mirabelle);
  text-decoration-thickness:2px;text-underline-offset:4px}
.sb-art-auteur:hover strong{color:var(--mirabelle)}
.sb-art-meta-info{display:inline-flex;align-items:center;gap:7px}
.sb-art-meta-info svg{color:var(--mirabelle);flex-shrink:0;display:inline-block}
/* image à la une : caisson (procédé 7) posé sur la bande en biais gueules (procédé 5, unique sur la page) */
/* 30/09 (R-0732) — align-items:stretch (au lieu de center) : l'image occupe toute la hauteur de la
   colonne, top aligné sur le titre, jamais de vide sous l'un des deux blocs */
.sb-art-visuel{position:relative;min-width:0;padding:0 0 0 12px;align-self:stretch;display:flex;align-items:stretch}
.sb-art-visuel>.sb-une-article{flex:1 1 auto;min-width:0;align-self:stretch}
.sb-art-visuel::before{content:"";position:absolute;z-index:0;top:-40px;bottom:-40px;left:34%;right:-320px;background:var(--gueules);
  transform:skewX(-12deg);transform-origin:bottom left}
/* hauteur = 100% de la colonne stretch (= hauteur du bloc texte), plus d'aspect-ratio fixe qui
   forçait une image plus petite et centrée verticalement ; min-height pour les titres très courts */
.sb-art-tete .sb-une-article{position:relative;z-index:1;margin:0;height:100%;min-height:280px;max-height:none;border-radius:12px;overflow:hidden;
  padding:6px;background:#26333D;border:1px solid rgba(250,247,240,.32);box-shadow:0 30px 60px -24px rgba(0,0,0,.65)}
.sb-art-tete .sb-une-article img{width:100%;height:100%;object-fit:cover;border-radius:7px;display:block}
.sb-art-tete .sb-code-stand{left:18px;bottom:18px;border-left:3px solid var(--mirabelle)}
@media (max-width:1024px){
  .sb-art-tete-in{grid-template-columns:minmax(0,1fr);gap:32px}
  .sb-art-visuel{padding:0 0 0 10px;max-width:760px}
  .sb-art-visuel::before{top:28px;bottom:-40px;left:42%;right:-120px}
  /* empilé : texte d'abord, image ensuite (ordre DOM) — l'image reprend un ratio fixe, plus de height:100% */
  .sb-art-tete .sb-une-article{aspect-ratio:16/9;height:auto;min-height:0}
}
@media (max-width:640px){
  .sb-art-tete{padding-block:24px 36px}
  .sb-art-tete h1{margin-bottom:14px}
  .sb-art-tete .sb-art-chapo{font-size:17px;margin-bottom:18px}
  .sb-art-tete .sb-art-meta{font-size:14px;gap:6px 16px}
  .sb-art-tete .sb-art-meta>.sb-art-auteur{flex-basis:100%}
  .sb-art-tete-in{gap:24px}
  .sb-art-tete .sb-une-article{aspect-ratio:16/9;padding:4px}
  .sb-art-visuel::before{top:22px;bottom:-36px}
  .sb-art-tete .sb-code-stand{left:12px;bottom:12px;font-size:10px}
}
/* A3 — colonne latérale : le tiret venait des ::before/::after de la classe « cote » (procédé 2), homonyme */
.sb-art-corps>.sb-cote{font-family:var(--font-corps);font-size:16px;color:var(--texte);align-self:start}
.sb-art-corps>.sb-cote::before,.sb-art-corps>.sb-cote::after{content:none;display:none}
.sb-art-corps{margin-top:var(--m1)} /* 30/09 (R-0732) — moins de vide sous le hero, AR-068 */
.sb-lies{margin-top:24px;padding-top:40px;border-top:1px solid var(--ligne)}
/* le bloc « À lire aussi » du socle est une <section> : il héritait de 72 px de marge haute et basse → vide au-dessus de la carte auteur */
.sb-texte .sb-maillage{padding-block:0;margin-top:var(--m2)}
.sb-texte .sb-maillage>ul{margin-bottom:0}
/* A4 — carte auteur : vraie photo ronde, nom, rôle, date, bio, fiche */
.sb-texte .sb-signature{position:relative;overflow:hidden;display:grid;grid-template-columns:88px minmax(0,1fr);gap:4px 22px;align-items:start;
  margin:48px 0 0;padding:26px 28px 24px 32px;background:var(--surface);border:1px solid var(--ligne);border-radius:14px;
  box-shadow:0 14px 34px -24px rgba(26,30,35,.5)}
.sb-texte .sb-signature::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--gueules)}
.sb-texte .sb-signature-photo{display:block;line-height:0}
.sb-texte .sb-signature img{width:88px;height:88px;max-width:none;border-radius:50%;object-fit:cover;border:3px solid var(--mirabelle);margin:0}
.sb-signature-corps{min-width:0}
.sb-signature-etiq{font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 2px}
.sb-texte .sb-signature-nom{font-family:var(--font-titre);font-size:24px;font-weight:700;line-height:1.15;margin:0 0 4px}
.sb-texte .sb-signature-nom a{color:var(--texte);text-decoration:none}
.sb-texte .sb-signature-nom a:hover{color:var(--accent)}
.sb-signature-role{font-size:14px;color:var(--texte-att);margin:0 0 10px}
.sb-texte .sb-signature-bio{font-size:16px;line-height:1.55;color:var(--texte);margin:0 0 12px}
.sb-signature-lien{font-weight:600;font-size:15px}
@media (max-width:640px){
  .sb-texte .sb-signature{display:flow-root;padding:20px 18px 20px 24px}
  .sb-texte .sb-signature-photo{float:left;margin:2px 14px 8px 0}
  .sb-texte .sb-signature img{width:64px;height:64px}
  .sb-texte .sb-signature-nom{font-size:21px}
}
/* A5 — « Le saviez-vous ? » existants (blockquote repéré par le filtre the_content) : vraie carte */
.sb-texte .sb-encadre--saviez,.sb-texte .sb-savez-vous,.sb-texte .sb-saviez-vous{background:var(--surface);border:1px solid var(--ligne);
  border-radius:14px;box-shadow:inset 6px 0 0 var(--mirabelle),0 14px 34px -26px rgba(26,30,35,.5);padding:20px 22px 20px 28px;margin:36px 0;font-size:17px}
.sb-texte .sb-sv-etiq{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.sb-texte .sb-sv-etiq::before{content:"?";display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;
  background:var(--mirabelle);color:var(--encre);font-family:var(--font-titre);font-size:18px;font-weight:700;letter-spacing:0;flex-shrink:0}
/* A6/A7 — composants de contenu lx-* : le style INLINE fait foi, le thème ajoute relief et survol */
.sb-texte .lx-chiffres,.sb-texte .lx-barres,.sb-texte .lx-etapes,.sb-texte .lx-avis,.sb-texte .lx-sources{box-shadow:0 16px 36px -26px rgba(26,30,35,.55)}
.sb-texte .lx-savoir{box-shadow:inset 6px 0 0 #E9A916,0 16px 36px -26px rgba(26,30,35,.55)!important}
.sb-texte .lx-carte{transition:transform .2s ease,box-shadow .2s ease}
.sb-texte .lx-carte:hover{transform:translateY(-3px);box-shadow:0 0 28px 6px rgba(233,169,22,.3)}
.sb-texte .lx-photo img{transition:box-shadow .2s ease}
.sb-texte .lx-photo:hover img{box-shadow:0 0 28px 6px rgba(233,169,22,.3)}
.sb-texte .lx-avis img{box-shadow:0 8px 18px -8px rgba(26,30,35,.5)}
@media (prefers-reduced-motion:reduce){.sb-texte .lx-carte,.sb-texte .lx-photo img{transition:none}.sb-texte .lx-carte:hover{transform:none}}
/* A9 — fiche auteur : en-tête mis en page ; grilles de cartes qui ne débordent plus (une vignette 1200 px imposait sa largeur à la colonne 1fr) */
.sb-grille>*{min-width:0}
.sb-caisson{overflow:hidden;min-width:0}
.lx-auteur-tete{background:var(--surface);padding-block:48px}
.lx-auteur-tete-in{display:grid;grid-template-columns:200px minmax(0,1fr);gap:44px;align-items:center}
.lx-auteur-tete-in>div{min-width:0}
.lx-auteur-photo{width:200px;height:200px;max-width:none;border-radius:50%;object-fit:cover;border:5px solid var(--mirabelle);
  box-shadow:0 20px 44px -18px rgba(26,30,35,.5)}
.lx-auteur-tete h1{margin:0 0 12px}
.lx-auteur-bio{font-size:19px;line-height:1.6;max-width:62ch;margin:0 0 14px}
.lx-auteur-chiffre{font-family:var(--font-mono);font-size:14px;color:var(--texte-att);margin:0 0 14px}
.lx-auteur-chiffre strong{font-size:22px;color:var(--accent)}
.lx-auteur-halls{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.lx-auteur-halls a{text-decoration:none}
.lx-auteur-titre-liste{margin:48px 0 24px}
@media (max-width:640px){
  .lx-auteur-tete{padding-block:28px}
  .lx-auteur-tete-in{grid-template-columns:minmax(0,1fr);gap:18px}
  .lx-auteur-photo{width:128px;height:128px;border-width:4px}
  .lx-auteur-bio{font-size:17px}
}
/* page ville : la carte auteur est le dernier bloc avant le pied de page — jamais collée au pied (AR-060) */
.sb-page-ville .sb-texte .sb-signature{margin-bottom:var(--m2)}
