/*
Theme Name: towd
Theme URI: https://towd.com
Description: Child theme de GeneratePress pour towd.com (The Open World Diary). Charte v3 « carnet de voyage » (kraft/sépia, tampons, filets encre) figée 2026-07-04. Reproduit les mockups contractuels towd-home-mockup-v3-carnet.html + towd-article-vision-v31.html. Titres en Libre Baskerville self-hébergée (woff2, RGPD-propre), corps Georgia + UI Helvetica Neue/Arial, fond sépia self-hébergé, encarts pipeline :::.
Author: towd
Template: generatepress
Version: 1.5.43
Text Domain: towd
*/

/* CHANGELOG — déplacé le 2026-07-29 dans `style.CHANGELOG.md`, à côté de ce fichier.
   Motif : 39,5 Ko de journal en tête de la feuille servie, soit ~14,8 Ko gzippés
   téléchargés par chaque visiteur sur chaque page. Le journal est de la documentation
   destinée aux missions, pas au navigateur — il est déplacé, jamais supprimé, et reste
   versionné par le miroir git au même titre que ce fichier.
   Toute nouvelle entrée se consigne dans `style.CHANGELOG.md`, pas ici. */

/* =========================================================================
   1. TOKENS — charte v3 « carnet » (mockup, source de vérité)
   ========================================================================= */
:root{
  --kraft:#e5d7ba;      /* fond, bandes impaires */
  --kraft-dk:#c9b48c;   /* filets, séparateurs pointillés */
  --paper:#f7f0e0;      /* encarts, cartes, contenu — jamais blanc pur */
  --ink:#2b2419;        /* texte, filets, bordures, footer */
  --ink-soft:#5a4f3c;   /* texte secondaire */
  --stamp:#b23a2e;      /* rouge tampon — CTA, tags, marqueurs */
  --stamp-blue:#2d5f78; /* bleu tampon — surtitres/kickers */
  --sun:#e0992f;        /* accent silo */
  --sea:#2f7d94;        /* accent silo */
  --forest:#3c5a3c;     /* accent silo */
  --plum:#7a4a63;       /* accent silo */
  --page-bg:#d8c9a8;    /* fond global sous les bandes */

  /* dérivés encarts / tables */
  --warning-bg:#f4e3cf;
  --zebra:#efe4c9;

  /* typo : titres en Libre Baskerville self-hébergée, corps Georgia, UI Helvetica */
  --serif-title:'Libre Baskerville',Georgia,'Times New Roman',serif; /* titres */
  --serif:Georgia,'Times New Roman',serif;                          /* corps de texte */
  --sans:'Helvetica Neue','Helvetica Neue LT','Helvetica',Arial,sans-serif;

  /* ombre nette décalée — signature v3 (jamais de box-shadow douce) */
  --shadow:4px 4px 0 rgba(43,36,25,.18);
  --shadow-sm:3px 3px 0 rgba(43,36,25,.15);

  --wrap:1120px;
}

/* =========================================================================
   2. BASE — fond sépia global, typo, liens, focus
   Le fond « monuments » + le voile kraft sont posés UNE fois sur <body>
   (calque de background : voile au-dessus de l'image, sous le texte). Aucune
   bande ne le duplique → pas de liseré (leçon v23).
   ========================================================================= */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  color:var(--ink);
  font-family:var(--serif);
  font-size:17px;
  line-height:1.65;
  /* FOND PAPYRUS GLOBAL v1.5.23 (2026-07-11) — la tuile+voile v3 vit désormais sur
     <body> (couvre TOUT le viewport, hérité par toute page présente/future, aucun
     scoping par classe). Avant v1.5.23 elle était sur #page.grid-container.site (§15),
     centré ~1200px hors home/silo → marges nues sur les pages standards. Déplacée ici,
     valeurs IDENTIQUES à l'ancienne §15 (voile .62 = #d8c9a8, tuile v3 640px, blend
     normal). .site reste transparent (§3/§15) → UN SEUL calque, pas de liseré doublé.
     Ne PAS réintroduire l'ex-filigrane monuments (purgé 09/07). */
  background-color:var(--page-bg);
  background-image:
    linear-gradient(rgba(216,201,168,.62),rgba(216,201,168,.62)),
    url("assets/towd-fond-papyrus-tile-v3.webp");
  background-repeat:repeat,repeat;
  background-position:center,center;
  background-size:auto,640px 640px;
  background-blend-mode:normal,normal;
  overflow-x:hidden;
}

img{max-width:100%;height:auto}

a{color:var(--stamp);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
a:hover{color:#8f2c22}

h1,h2,h3,h4,h5{font-family:var(--serif-title);font-weight:bold;line-height:1.15;color:var(--ink)}

/* focus visible accessible (clavier) — filet encre net, jamais d'anneau flou */
a:focus-visible,button:focus-visible,input:focus-visible,
.ticket:focus-visible,.towd-cta-tool__btn:focus-visible,
.towd-burger:focus-visible{
  outline:3px solid var(--stamp);
  outline-offset:2px;
}
:focus:not(:focus-visible){outline:none}

/* lien d'évitement (skip-link) */
.towd-skip{
  position:absolute;left:-9999px;top:0;z-index:1000;
  background:var(--ink);color:var(--paper);padding:12px 18px;
  font-family:var(--sans);font-weight:700;text-decoration:none;
}
.towd-skip:focus{left:8px;top:8px}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* =========================================================================
   3. INTÉGRATION GENERATEPRESS — neutralise le chrome parent
   Le fond global vit sur <body> : les conteneurs GP sont transparents.
   Home (body.towd-home) = pleine largeur (bandes full-bleed).
   ========================================================================= */
#page.grid-container,#content.site-content{background:transparent}
.separate-containers .site-content{padding-top:0;padding-bottom:0}

/* pages / articles standards : carte papier (jamais blanc pur), filet encre */
.separate-containers .inside-article,
.one-container .site-content .inside-article{
  background:var(--paper);
  border:2px solid var(--ink);
  box-shadow:var(--shadow);
}

/* Home full-bleed : les bandes gèrent leur propre largeur via .wrap */
body.towd-home #page.grid-container{max-width:100%;padding:0}
body.towd-home #content.site-content{padding:0;max-width:100%}
body.towd-home #primary.content-area,
body.towd-home #main.site-main{width:100%;max-width:100%;margin:0;padding:0}
body.towd-home .site-main{border:none;background:transparent;box-shadow:none}

/* =========================================================================
   4. HEADER CUSTOM (rendu par functions.php : towd_render_header)
   Cartouche papier, étoile towd + « towd » italique, nav 6 silos + À propos.
   ========================================================================= */
.towd-header{
  position:relative;z-index:20;
  background:var(--paper);
  border-bottom:3px solid var(--ink);
  padding:14px clamp(16px,5vw,48px);
  min-height:72px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.towd-header::after{
  content:'';position:absolute;left:0;right:0;bottom:-8px;height:5px;
  background:repeating-linear-gradient(90deg,var(--ink) 0 14px,transparent 14px 26px);
  opacity:.35;
}
.towd-logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.towd-logo:hover{color:var(--ink)}
.towd-logo-star{height:44px;width:auto;display:block}
.towd-logo-txt b{font-family:var(--serif-title);font-size:clamp(26px,4vw,32px);font-style:italic;font-weight:bold;letter-spacing:-.01em;line-height:1;display:block}
.towd-logo-txt small{display:block;font-family:var(--sans);font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--stamp);font-weight:700;margin-top:2px}

.towd-nav__list{display:flex;align-items:center;gap:clamp(14px,2.1vw,38px);list-style:none;margin:0;padding:0}
.towd-nav__list a{
  font-family:var(--sans);font-size:15px;font-weight:600;color:var(--ink);
  text-decoration:none;position:relative;white-space:nowrap;padding:6px 0;display:block;
}
.towd-nav__list a:hover{color:var(--stamp)}
.towd-nav__list a:hover::after,
.towd-nav__list .current-menu-item > a::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--stamp);
}

/* burger CSS (checkbox hack) — caché en desktop */
.towd-nav-toggle{position:absolute;opacity:0;pointer-events:none}
.towd-burger{
  display:none;flex-direction:column;gap:5px;justify-content:center;
  width:46px;height:46px;padding:10px;cursor:pointer;flex:none;
  border:2px solid var(--ink);background:var(--paper);
}
.towd-burger span{display:block;height:2.5px;background:var(--ink)}

/* =========================================================================
   5. FOOTER CUSTOM (rendu par functions.php : towd_render_footer)
   Bande sombre 3 colonnes, collée à la section précédente (aucun margin-top).
   ========================================================================= */
.site-footer{background:var(--ink);margin:0;padding:0}
#footer-widgets{display:none}
.towd-footer{background:var(--ink);color:var(--kraft);padding:46px clamp(16px,5vw,44px) 28px}
.towd-footer__grid{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.towd-fbrand{max-width:320px}
.towd-flogo{display:inline-flex;align-items:center;gap:12px;color:var(--paper);text-decoration:none}
/* Retouches 07/07 — point 5 : un seul dessin d'étoile sur tout le site. Le filtre
   monochrome blanc aplatissait la rose des vents en silhouette « générique » ; retiré
   → le footer affiche la MÊME étoile towd colorée que le header (fills clairs lisibles
   sur l'encre). */
.towd-flogo-star{height:40px;width:auto}
.towd-flogo b{font-family:var(--serif-title);font-size:22px;font-style:italic;display:block;line-height:1}
.towd-flogo small{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--kraft-dk);font-style:normal;margin-top:3px}
.towd-fbrand p{font-family:var(--sans);font-size:12.5px;color:var(--kraft-dk);line-height:1.65;margin:14px 0 0}
.towd-fcol h5{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--paper);margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid rgba(201,180,140,.35)}
.towd-fcol a{display:block;font-family:var(--sans);font-size:13px;color:var(--kraft);text-decoration:none;margin-bottom:8px;opacity:.9;line-height:1.3}
.towd-fcol a:hover{opacity:1;color:#fff}
.towd-footer__copy{max-width:var(--wrap);margin:36px auto 0;padding-top:18px;border-top:1px solid rgba(201,180,140,.25);font-family:var(--sans);font-size:11px;color:var(--kraft-dk);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* =========================================================================
   6. HOME v3.2 « kiosque » (mockup towd-home-v32-finale (1)) — ordre contenu-first :
   hero compact (sans CTA) → chips rubriques (desktop) → à la une → flux « dernières
   pages » → planche de timbres (Explorer) → outils sombre → auteur passeport.
   Fonds : aplats sépia PLATS par section (le mockup (1) abandonne les bandes-photo ;
   aucun liseré car aplats opaques). Zéro radius (sauf pastilles rondes), ombre décalée.
   ========================================================================= */
/* Retouches 07/07 — point 1 : largeur utile élargie, SCOPÉE à la home (silo/à-propos/
   contact gardent --wrap:1120 du :root ; contenu article intouché).
   Point 3 : fond filigrane désactivé temporairement — réactivation après ajustement,
   voir mission retouches 07/07 (raccords monuments buggués sur la home) → aplat --page-bg.
   Réactivation ultérieure par Sébastien : retirer background-image/color de la règle ci-dessous. */
body.towd-home{--wrap:1340px;background-color:var(--page-bg)}/* v1.5.23 : background-image:none RETIRÉ (sinon strippe la tuile body §2 sur la home) */
.towd-home .wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(18px,4vw,44px)}

/* Sections « kiosque » : v1.5.1 — bandes beiges PURGÉES. Le fond global uni
   --page-bg (#d8c9a8) est désormais continu du hero au footer (charte v3 : pas de
   bandes kraft qui créent des liserés). Fonds de section = transparent (hérite du
   fond global body.towd-home). Padding conservé pour le rythme vertical. */
.uneK{background:transparent;padding:0 0 52px}
.flux{background:transparent;padding:0 0 52px}
.timbres-band{background:transparent;padding:0 0 54px}
.author-band{background:transparent;padding:0 0 52px}

/* ---- 1. HERO compact : aquarelle conservée + badge sticker + h1 + sous-titre.
   Pas de CTA (le contenu suit immédiatement — leçon kiosque contenu-first). ---- */
.hero-img{position:relative;min-height:clamp(280px,32vw,340px);display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:2px solid var(--ink)}
.hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block}
.hero-in{position:relative;z-index:1;text-align:center;padding:40px 20px;max-width:720px}
/* v1.5.13 — voile hero radial `.hero-in::before` RETIRÉ (aquarelle nette).
   Ancien sticker `.hero-badge` (double cadre `::before`) RETIRÉ → remplacé par
   `.stampbox`/`.stampbox-inner` (§20). */
/* v1.5.18 — H1 hero séparé SUPPRIMÉ : sa phrase migre dans la ligne-titre de l'airmail
   (§19, `.hero-h1`). Règle `.hero-in h1` (40px, marges) retirée = orpheline. */
.hero-in p{font-family:var(--sans);font-size:clamp(14px,2vw,15.5px);color:var(--ink-soft);max-width:34em;margin:0 auto;line-height:1.6}

/* ---- 2. BANDE CHIPS RUBRIQUES (desktop uniquement ; masquée <900px, §10) ---- */
.silostrip{background:var(--paper);border-bottom:2px solid var(--ink)}
.silostrip .in{max-width:var(--wrap);margin:0 auto;padding:12px clamp(18px,4vw,44px);display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.chip{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:12px;font-weight:700;color:var(--ink);text-decoration:none;border:1.5px solid var(--silo,var(--ink));padding:6px 14px;background:var(--paper);transform:rotate(-.8deg);transition:background .12s ease,color .12s ease}
.chip:nth-child(even){transform:rotate(.8deg)}
.chip:hover{background:var(--silo,var(--stamp));color:var(--paper)}
.chip:hover .dot{background:var(--paper)}
.chip .dot{width:10px;height:10px;background:var(--silo,var(--ink));border:1px solid var(--ink)}
.chip .n{font-size:10px;font-weight:800;color:var(--paper);background:var(--silo,var(--ink));padding:1px 6px}

/* ticket perforé (CTA hero → #rubriques) */
.ticket{display:inline-block;background:var(--stamp);color:var(--paper);font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:14px 34px;text-decoration:none;position:relative;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}
.ticket:hover{background:#9c3025;color:var(--paper);transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}
.ticket:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.ticket::before,.ticket::after{content:'';position:absolute;top:50%;width:12px;height:12px;background:var(--page-bg);border:2px solid var(--ink);border-radius:50%;transform:translateY(-50%)}
.ticket::before{left:-7px}.ticket::after{right:-7px}

/* ---- Titres de section — cartouche « autocollant » double filet (v1.3.3) ---- */
.sep{display:block;text-align:center;max-width:var(--wrap);margin:0 auto;padding:44px clamp(18px,4vw,44px) 0}
.sep>span{display:inline-block;position:relative;background:var(--paper);color:var(--stamp);font-family:var(--sans);font-weight:800;font-size:19px;line-height:1.2;letter-spacing:.20em;text-transform:uppercase;padding:14px 38px;border:2px solid var(--stamp);transform:rotate(-1.5deg)}
.sep>span::before{content:'';position:absolute;inset:5px;border:1px solid var(--stamp);pointer-events:none}
.sep>span .ss{display:block;font-size:13px;letter-spacing:.15em;margin-top:5px}
@media (max-width:600px){.sep>span{transform:rotate(-1deg);font-size:15px;padding:11px 26px;letter-spacing:.16em}.sep>span .ss{font-size:11px}}

/* ---- NOS RUBRIQUES : planche de 6 timbres perforés ------------------------ */
/* Couleur pilotée par data-silo (--silo, mapping officiel §7). .ill : image
   assets/timbres/timbre-<slug>.webp posée en inline au-dessus d'un dégradé
   placeholder (self-healing : le dégradé reste tant que le webp n'existe pas). */
.timbres{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:30px;padding:30px 0 0}
a.timbre{text-decoration:none;display:flex;flex-direction:column;color:var(--ink);background:var(--paper);padding:9px;border:2px dashed var(--kraft-dk);outline:6px solid var(--paper);outline-offset:-8px;box-shadow:var(--shadow);transition:transform .12s ease,box-shadow .12s ease}
a.timbre:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 rgba(43,36,25,.2);color:var(--ink)}
.timbre .in{border:2px solid var(--silo,var(--stamp));position:relative;display:flex;flex-direction:column;flex:1}
.timbre .ill{width:100%;aspect-ratio:16/9;background-color:#cbd6c0;background-size:cover;background-position:center;border-bottom:2px solid var(--silo,var(--stamp))}
.timbre .dot{position:absolute;top:10px;left:10px;width:20px;height:20px;border-radius:50%;background:var(--silo,var(--stamp));border:2px solid var(--paper);z-index:2}
.timbre .val{position:absolute;top:7px;right:11px;font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:16px;color:var(--paper);text-shadow:0 0 5px rgba(43,36,25,.6);z-index:2}
.timbre .tb{padding:12px 14px 24px;text-align:center;flex:1;display:flex;flex-direction:column;gap:5px;position:relative}
.timbre .tb h3{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:18px;color:var(--ink);line-height:1.15;margin:0}
.timbre .k{font-family:var(--sans);font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--silo,var(--stamp))}
.timbre .desc{font-family:var(--sans);font-size:12px;color:var(--ink-soft);line-height:1.45;margin:0}
.timbre .pays{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-family:var(--sans);font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}

/* ---- À LA UNE : 1 grande fiche (extrait) + 2 petites ---------------------- */
.une{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;padding:30px 0 0}
.ufiche{background:var(--paper);border:2px solid var(--ink);display:flex;flex-direction:column;position:relative;box-shadow:var(--shadow);overflow:hidden}
a.ufiche{text-decoration:none;color:var(--ink);transition:transform .12s ease,box-shadow .12s ease}
a.ufiche:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 rgba(43,36,25,.2);color:var(--ink)}
.ufiche .uimg{aspect-ratio:16/7;background:linear-gradient(140deg,var(--sea),var(--forest));border-bottom:2px solid var(--ink);overflow:hidden}
.ufiche .uimg img{width:100%;height:100%;object-fit:cover;display:block}
.ufiche .ufb{padding:20px 24px 22px}
.une .kick{display:inline-block;font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--silo,var(--stamp-blue));border:1.5px solid var(--silo,var(--stamp-blue));padding:3px 10px;transform:rotate(-1deg);margin-bottom:10px}
.une h3{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:24px;line-height:1.25;margin:0 0 8px}
.une h3 a{color:var(--ink);text-decoration:none}
.une h3 a:hover{color:var(--stamp)}
.une .excerpt{font-family:var(--serif);font-size:15px;color:var(--ink);line-height:1.65;margin:0 0 12px}
.une .m{font-family:var(--sans);font-size:11.5px;color:var(--ink-soft)}
.une .m a{color:var(--stamp);font-weight:700;text-decoration:none}
.une .m a:hover{text-decoration:underline}
.une-side{display:flex;flex-direction:column;gap:24px}
.une-side .uimg{aspect-ratio:16/6.5}
.une-side .ufb{padding:14px 18px 16px}
.une-side h3{font-size:17px}

/* ---- 4. DERNIÈRES PAGES DU CARNET : index compact, 2 colonnes × 5 (rangs 6-15) ----
   Cases à HAUTEUR FIXE (84px) → alignement gauche/droite garanti quelle que soit la
   longueur des titres (clampés 2 lignes). Vignette 92×62 à gauche + méta (silo coloré
   var(--silo) / date rectangle rouge à droite) + titre serif italique. Répartition
   équilibrée pilotée PHP (ceil) : filet pointillé par colonne, jamais dans le vide. */
.flux .list{max-width:var(--wrap);margin:30px auto 0;background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);padding:6px 24px}
.flux .dp-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(24px,3vw,46px)}
.flux .dp-col{display:flex;flex-direction:column}
.entry{display:flex;align-items:center;gap:14px;height:84px;border-bottom:1px dashed var(--kraft-dk);text-decoration:none;color:var(--ink);transition:background .12s ease;overflow:hidden}
.dp-col .entry:last-child{border-bottom:none}
.entry:hover{background:rgba(201,180,140,.16)}
.entry .thumb{flex:0 0 92px;height:62px;background:linear-gradient(140deg,#cfd8b8,#e2d0a0);border:1px solid var(--ink);overflow:hidden}
.entry .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.entry .t{flex:1 1 auto;min-width:0}
.entry .metarow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.entry .t .k{font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--silo,var(--stamp-blue));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.entry .date{flex:none;font-family:var(--sans);font-size:9.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--stamp);border:1.5px solid var(--stamp);padding:3px 7px;line-height:1;white-space:nowrap;transform:rotate(-1.6deg)}
.entry:nth-child(even) .date{transform:rotate(1.2deg)}
.entry .t h4{font-family:var(--serif-title);font-style:italic;font-weight:400;font-size:15px;line-height:1.22;margin:0;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.entry:hover .t h4{color:var(--stamp)}
.flux .more{text-align:center;margin-top:26px}

/* ---- OUTILS : bandeau sombre, tuiles centrées, icônes SVG au trait -------- */
.tools-band{background:var(--ink);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);padding:8px 0 44px;position:relative}
/* Retouches 07/07 — point 4 : sticker outils en ROUGE TAMPON (texte + double filet).
   Rouge légèrement éclairci (#d1483a) pour rester lisible sur l'encre (~3:1). */
.tools-band .sep>span{background:transparent;color:#d1483a;border-color:#d1483a}
.tools-band .sep>span::before{border-color:#d1483a}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:14px}
.tgrid .tool{background:var(--paper);border:1px solid var(--ink);padding:20px 18px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:3px 3px 0 rgba(0,0,0,.32)}
.tool .ticon{width:40px;height:40px;border:2px solid var(--ink);background:var(--kraft);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.tool .ticon svg{width:22px;height:22px}
.tool h4{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:17px;margin:0 0 5px}
.tool p{font-family:var(--sans);font-size:12.5px;line-height:1.5;color:var(--ink-soft);margin:0 0 12px}
/* point 4 : bouton tuile kraft par défaut → hover ROUGE TAMPON (texte papier, 150ms).
   Désactivé (aria-disabled) inchangé : muté kraft-dk, aucun hover rouge. */
.tool .tcta{font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--kraft);padding:10px 18px;text-decoration:none;border:2px solid var(--ink);transition:background .15s ease,color .15s ease}
.tool .tcta:hover{background:var(--stamp);color:var(--paper)}
.tool .tcta[aria-disabled="true"]{background:var(--kraft-dk);color:var(--ink-soft);border-color:var(--kraft-dk);pointer-events:none;cursor:default}

/* (§ Explorer 6-rangées retiré en v1.4.4 — fusionné dans la planche de timbres,
   désormais titrée « Explorer par rubrique ». Voir front-page.php section 5.) */

/* ---- AUTEUR : fiche passeport (composant v3.1, penchée, tampon VU·TOWD) ---- */
.apass{max-width:760px;margin:30px auto 0;background:var(--paper);border:2px solid var(--ink);padding:26px 30px;display:flex;gap:24px;align-items:center;position:relative;box-shadow:var(--shadow);transform:rotate(-.4deg)}
.apass::after{content:'VU · TOWD';position:absolute;top:12px;right:16px;font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--stamp);border:1.5px solid var(--stamp);padding:2px 8px;transform:rotate(6deg);opacity:.85}
.apass .ph{width:90px;height:90px;border-radius:50%;border:2.5px solid var(--ink);background:linear-gradient(140deg,#c9b48c,#a08a5e);flex:none;object-fit:cover;overflow:hidden}
.apass .ph img{width:100%;height:100%;object-fit:cover;display:block}
.apass h4{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:21px;margin:0}
.apass .role{font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--stamp-blue);margin:2px 0 8px}
.apass p{font-family:var(--sans);font-size:13.5px;color:var(--ink-soft);margin:0;line-height:1.6}
.apass p a{color:var(--stamp);font-weight:700;text-decoration:none}
.apass p a:hover{text-decoration:underline}

/* =========================================================================
   7. CATEGORY (silos) — intro + grille de fiches papier + maillage outils
   Cohérent avec la home (mêmes cartes papier, filets encre).
   ========================================================================= */
.silo-intro{max-width:var(--wrap);margin:0 auto 8px;padding:8px 4px}
.silo-intro .kicker{font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--stamp-blue);margin:0 0 6px}
.silo-intro h1{font-size:clamp(30px,5vw,44px);font-style:italic;margin:0}
.silo-intro__lede{font-family:var(--sans);font-size:15px;line-height:1.6;color:var(--ink-soft);max-width:70ch;margin-top:12px}

/* grille de fiches (category.php) */
.fiches{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:22px 0 0}
.fiche{background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;position:relative;transition:transform .12s ease,box-shadow .12s ease}
.fiche:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 rgba(43,36,25,.2)}
.fiche .f-carte{height:150px;overflow:hidden;border-bottom:2px solid var(--ink);background:linear-gradient(135deg,var(--sea),var(--forest))}
.fiche .f-carte img{width:100%;height:100%;object-fit:cover;display:block}
.fiche .f-body{padding:16px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.fiche .f-meta{display:flex;align-items:center;gap:10px;font-family:var(--sans);font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}
.fiche .f-meta .silo{font-weight:800;color:var(--stamp-blue)}
.fiche h3{font-size:19px;font-style:italic;line-height:1.25;margin:0}
.fiche h3 a{color:var(--ink);text-decoration:none}
.fiche h3 a:hover{color:var(--stamp)}
.fiche p{font-family:var(--sans);font-size:13px;line-height:1.55;color:var(--ink-soft);margin:0}
.fiche .f-pied{margin-top:auto;padding-top:6px;font-family:var(--sans);font-size:11px;color:var(--ink-soft);display:flex;gap:12px}
.silo-empty{font-family:var(--sans);color:var(--ink-soft);padding:24px 0}

/* Accent silo — MAPPING OFFICIEL (mockup home, source unique). Pose --silo, à la
   fois via classe body towd-silo-<slug> (single) et data-silo (archives/fiches).
   Consommé par les badges de fiche ET le kicker sticker (article + archive). */
.towd-silo-camping,[data-silo="camping"]{--silo:var(--sun)}
.towd-silo-grand-air,[data-silo="grand-air"]{--silo:var(--sea)}
.towd-silo-escapades,[data-silo="escapades"]{--silo:var(--forest)}
.towd-silo-carnet-pratique,[data-silo="carnet-pratique"]{--silo:var(--stamp)}
.towd-silo-avant-de-partir,[data-silo="avant-de-partir"]{--silo:var(--stamp-blue)}
.towd-silo-au-fil-de-l-eau,[data-silo="au-fil-de-l-eau"]{--silo:var(--plum)}
[data-silo] .f-meta .silo{color:var(--silo,var(--stamp-blue))}

/* maillage silo → outils (bande de repères) */
.silo-outils{max-width:var(--wrap);margin:40px auto 0;border:2px solid var(--ink);background:var(--paper);box-shadow:var(--shadow)}
.silo-outils .so-head{background:var(--ink);color:var(--paper);padding:11px 22px;font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin:0}
.silo-outils .rep-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.silo-outils .rep-grid.n1{grid-template-columns:1fr}
.silo-outils .rep-grid.n2{grid-template-columns:repeat(2,1fr)}
.silo-outils .rep{padding:20px 22px;border-right:1.5px solid var(--kraft-dk)}
.silo-outils .rep:last-child{border-right:none}
.silo-outils .rep .cote{font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--sea);margin:0}
.silo-outils .rep h3{font-size:18px;font-style:italic;margin:5px 0 6px}
.silo-outils .rep p{font-family:var(--sans);font-size:12px;line-height:1.5;color:var(--ink-soft);margin:0 0 9px}
.silo-outils .rep a{font-family:var(--sans);font-size:12px;font-weight:800;color:var(--stamp);text-decoration:none}
.silo-outils .rep a[aria-disabled="true"]{color:var(--ink-soft);opacity:.6;pointer-events:none}
.silo-outils .rep a:hover{text-decoration:underline}

/* pagination archives */
.paging-navigation,.pagination{max-width:var(--wrap);margin:26px auto 0;font-family:var(--sans)}
.paging-navigation a,.pagination a,.pagination .page-numbers{border:2px solid var(--ink);background:var(--paper);color:var(--ink);padding:8px 14px;text-decoration:none;margin-right:6px;display:inline-block}
.pagination .current{background:var(--ink);color:var(--paper);border:2px solid var(--ink);padding:8px 14px;display:inline-block}

/* =========================================================================
   8. CONTENU ÉDITORIAL (pages + articles) — typo sur carte papier
   ========================================================================= */
.entry-content{font-family:var(--serif)}
.entry-content > *{max-width:100%}
.entry-header .entry-title,.page-header h1,h1.entry-title{font-size:clamp(30px,5vw,44px);font-style:italic;line-height:1.12}
.entry-content h2{font-size:clamp(24px,3.4vw,30px);font-style:italic;margin:1.7em 0 .5em;padding-bottom:.2em;border-bottom:2px solid var(--kraft-dk)}
.entry-content h3{font-size:22px;font-style:italic;margin:1.4em 0 .4em}
.entry-content p,.entry-content li{font-size:1.02rem;line-height:1.75}
.entry-content ul,.entry-content ol{padding-left:1.3em;margin:1em 0}
.entry-content li{margin-bottom:.5em}
.entry-content a{color:var(--stamp);text-decoration:underline;text-underline-offset:2px}
.entry-content img{border:2px solid var(--ink)}
.entry-content figure.wp-block-image{margin:1.6em 0}
.entry-content figure.wp-block-image + h2,
.entry-content figure.wp-block-image + h3{margin-top:1.2em}
blockquote{border-left:3px solid var(--sun);padding:6px 0 6px 18px;margin:1.4em 0;font-family:var(--serif);font-style:italic;color:var(--ink-soft)}

/* Page À propos */
.towd-about-lede{font-family:var(--serif);font-style:italic;font-size:1.22rem;line-height:1.55;color:var(--ink);border-left:3px solid var(--stamp);padding-left:18px;margin:0 0 1.4em}
.towd-about-photo{margin:1.8em 0;background:var(--paper)}
.towd-about-photo img{display:block;width:100%;border:2px solid var(--ink);box-shadow:var(--shadow)}
.towd-about-photo figcaption{font-family:var(--sans);font-size:12px;color:var(--ink-soft);margin-top:10px;text-align:center;font-style:italic}

/* =========================================================================
   9. ENCARTS PIPELINE (classes émises par Assemble WP Post — markup BEM réel)
   SOURCE DE VÉRITÉ = la sortie de convertCallouts. Reskin v3 : cartes papier,
   filets encre nets, ombre décalée. Zéro croix de repère IGN, zéro radius.
   ========================================================================= */
.towd-callout,.towd-cta-tool{margin:26px 0}

.towd-callout{border:1.5px solid var(--ink);background:var(--paper);padding:20px 22px;box-shadow:var(--shadow-sm);position:relative}
.towd-callout > *:last-child{margin-bottom:0}
.towd-callout__label{font-family:var(--sans);font-weight:800;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--forest);margin:0 0 10px;display:flex;align-items:center;gap:8px;line-height:1.3}
.towd-callout__body{font-family:var(--sans);font-size:.95rem;color:var(--ink-soft);margin:0 0 12px;line-height:1.6}
.towd-callout__icon{flex:none;width:14px;height:14px;background-repeat:no-repeat;background-position:center;background-size:contain}

/* warning : filet gauche 4px rouge tampon, fond papier teinté chaud, label rouge */
.towd-warning{border-left-width:4px;border-left-color:var(--stamp);background:var(--warning-bg)}
.towd-warning .towd-callout__label{color:var(--stamp)}
.towd-warning .towd-callout__icon{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2014%2014%22%3E%3Cpath%20d%3D%22M7%2C1%20L13%2C12.5%20L1%2C12.5%20Z%22%20fill%3D%22none%22%20stroke%3D%22%23b23a2e%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%225%22%20x2%3D%227%22%20y2%3D%229%22%20stroke%3D%22%23b23a2e%22%20stroke-width%3D%221.6%22%2F%3E%3Ccircle%20cx%3D%227%22%20cy%3D%2210.7%22%20r%3D%22.6%22%20fill%3D%22%23b23a2e%22%2F%3E%3C%2Fsvg%3E")}

/* keyfigure : bloc chiffre | filet | texte, centré verticalement */
.towd-keyfigure{display:flex;gap:22px;align-items:stretch}
.towd-keyfigure__num{flex:none;max-width:38%;padding-right:22px;border-right:1.5px dotted var(--kraft-dk);display:flex;flex-direction:column;justify-content:center;text-align:center}
.towd-keyfigure__value{display:block;font-family:var(--serif);font-weight:bold;font-size:2.3rem;line-height:1.05;color:var(--stamp)}
.towd-keyfigure__caption{display:block;margin-top:9px;font-family:var(--sans);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;line-height:1.4}
.towd-keyfigure__text{flex:1;min-width:0}
.towd-keyfigure .towd-callout__body{margin:0}
@media(max-width:560px){
  .towd-keyfigure{flex-direction:column;gap:14px}
  .towd-keyfigure__num{max-width:none;padding-right:0;padding-bottom:14px;border-right:none;border-bottom:1.5px dotted var(--kraft-dk);text-align:left}
}

/* checklist : cases carrées à filet encre */
.towd-checklist .towd-callout__icon{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2014%2014%22%3E%3Crect%20x%3D%221.5%22%20y%3D%221.5%22%20width%3D%2211%22%20height%3D%2211%22%20fill%3D%22none%22%20stroke%3D%22%233c5a3c%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M3.5%2C7%20L6%2C9.5%20L10.5%2C4%22%20fill%3D%22none%22%20stroke%3D%22%233c5a3c%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fsvg%3E")}
.towd-checklist__list{list-style:none;margin:0;padding:0}
.towd-checklist__list li{position:relative;padding-left:26px;margin-bottom:9px;font-family:var(--sans);font-size:.95rem;line-height:1.55}
.towd-checklist__list li:last-child{margin-bottom:0}
.towd-checklist__list li::before{content:"";position:absolute;left:0;top:3px;width:12px;height:12px;border:1.5px solid var(--ink);background:var(--paper)}

/* compare : bandeau titre + table zébrée */
.towd-compare{padding:0}
.towd-compare .towd-callout__label{margin:0;padding:13px 18px;border-bottom:1.5px solid var(--ink)}
.towd-compare .towd-callout__icon{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2014%2014%22%3E%3Crect%20x%3D%221.5%22%20y%3D%222%22%20width%3D%224.4%22%20height%3D%2210%22%20fill%3D%22none%22%20stroke%3D%22%233c5a3c%22%20stroke-width%3D%221.4%22%2F%3E%3Crect%20x%3D%228.1%22%20y%3D%222%22%20width%3D%224.4%22%20height%3D%2210%22%20fill%3D%22none%22%20stroke%3D%22%233c5a3c%22%20stroke-width%3D%221.4%22%2F%3E%3C%2Fsvg%3E")}
.towd-compare .towd-callout__body{padding:0 18px}
.towd-compare table{width:100%;border-collapse:collapse;font-family:var(--sans);margin:0}
.towd-compare th,.towd-compare td{border:1px solid var(--ink);padding:10px 14px;font-size:.9rem;text-align:left}
.towd-compare thead th{background:var(--forest);color:#fff;font-weight:700}
.towd-compare tbody tr:nth-child(even){background:var(--zebra)}

/* exergue : citation serif italique, filet vertical, pas de boîte */
.towd-exergue{border:none;background:transparent;box-shadow:none;padding:6px 0 6px 22px;border-left:3px solid var(--sun)}
.towd-exergue__quote{border:none;margin:0;padding:0;font-family:var(--serif);font-style:italic;font-size:1.35rem;line-height:1.5;color:var(--ink-soft)}

/* CTA outil interactif */
.towd-cta-tool{border:1.5px solid var(--ink);background:var(--paper);padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:22px;position:relative;box-shadow:var(--shadow-sm)}
.towd-cta-tool__text{flex:1;min-width:0}
.towd-cta-tool__badge{display:inline-block;font-family:var(--sans);font-weight:800;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--forest);border:1px solid var(--forest);padding:3px 8px;margin-bottom:10px}
.towd-cta-tool__title,.towd-cta-tool__name{font-family:var(--serif);font-style:italic;font-weight:bold;color:var(--ink);margin:0}
.towd-cta-tool__title{font-size:1.2rem;margin-bottom:5px}
.towd-cta-tool__name{font-size:1.05rem;margin-bottom:3px}
.towd-cta-tool__subtext,.towd-cta-tool__line{font-family:var(--sans);font-size:.93rem;color:var(--ink-soft);margin:0;line-height:1.5}
.towd-cta-tool__line{font-size:.88rem}
.towd-cta-tool__btn{display:inline-flex;align-items:center;gap:9px;flex:none;background:var(--stamp);color:#fff!important;font-family:var(--sans);font-weight:700;font-size:.9rem;padding:12px 18px;border:2px solid var(--ink);white-space:nowrap;text-decoration:none;box-shadow:3px 3px 0 var(--ink)}
.towd-cta-tool__btn:hover{background:#9c3025;text-decoration:none;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}
/* CTA outil : le bouton perdait en spécificité contre `.entry-content a` (l.821, soulignement).
   On force `text-decoration:none` avec une spécificité supérieure, flèche incluse. */
.entry-content a.towd-cta-tool__btn,
.entry-content a.towd-cta-tool__btn:hover,
.entry-content a.towd-cta-tool__btn .towd-cta-tool__arrow{text-decoration:none}
.towd-cta-tool__btn--outline{background:transparent;color:var(--ink)!important;box-shadow:none}
.towd-cta-tool__btn--outline:hover{background:var(--stamp);color:#fff!important}
.towd-cta-tool__arrow{font-weight:700;font-size:1.05em;line-height:1}
.towd-cta-tool--full{padding-left:44px}
.towd-cta-tool--full::before{content:"";position:absolute;left:20px;top:24px;width:13px;height:13px;background:var(--stamp);border:2px solid var(--ink);border-radius:50%}
.towd-cta-tool--compact{padding:15px 18px}
.towd-cta-tool--silo-grand-air,.towd-cta-tool--silo-camping{border-top:4px solid var(--forest)}
.towd-cta-tool--silo-au-fil-de-l-eau{border-top:4px solid var(--sea)}
.towd-cta-tool--silo-escapades{border-top:4px solid var(--sun)}
.towd-cta-tool--silo-carnet-pratique{border-top:4px solid var(--stamp-blue)}
.towd-cta-tool--silo-avant-de-partir{border-top:4px solid var(--stamp-blue)}
@media(max-width:560px){
  .towd-cta-tool{flex-direction:column;align-items:stretch}
  .towd-cta-tool__btn{justify-content:center}
}

/* TL;DR « L'essentiel » (rendu en tête d'article par functions.php) */
.towd-takeaways{border:1.5px solid var(--ink);background:var(--paper);padding:20px 24px 22px;margin:0 0 30px;position:relative;box-shadow:var(--shadow-sm)}
.towd-takeaways__title{font-family:var(--sans);font-weight:800;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stamp);margin:0 0 14px;display:flex;align-items:center;gap:14px}
.towd-takeaways__title::after{content:"";flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--kraft-dk) 0 8px,transparent 8px 14px)}
.towd-takeaways__list{list-style:none;margin:0;padding:0}
.towd-takeaways__list li{position:relative;padding-left:22px;margin-bottom:9px;font-family:var(--sans);font-size:.95rem;line-height:1.55;color:var(--ink)}
.towd-takeaways__list li:last-child{margin-bottom:0}
.towd-takeaways__list li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:2px;background:var(--stamp)}

/* tables du corps hors compare : touche voyage */
.entry-content table:not(.towd-compare table){width:100%;border-collapse:collapse;font-family:var(--sans);margin:26px 0;border:1.5px solid var(--ink)}
.entry-content table:not(.towd-compare table) th,
.entry-content table:not(.towd-compare table) td{border:1px solid var(--ink);padding:10px 14px;font-size:.9rem;text-align:left}
.entry-content table:not(.towd-compare table) thead th,
.entry-content table:not(.towd-compare table) tr:first-child th{background:var(--forest);color:#fff;font-weight:700;letter-spacing:.02em}
.entry-content table:not(.towd-compare table) tbody tr:nth-child(even),
.entry-content table:not(.towd-compare table) tr:nth-child(even){background:var(--zebra)}
.entry-content table:not(.towd-compare table) td:first-child{font-weight:600;color:var(--ink)}

/* =========================================================================
   10. RESPONSIVE
   ========================================================================= */
@media(max-width:980px){
  .feat{grid-template-columns:1fr 1fr}
  .feat .fcard.big{grid-column:1 / -1}
  .portals{grid-template-columns:repeat(2,1fr)}
  .fiches{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:860px){
  /* header : burger */
  .towd-burger{display:flex}
  .towd-nav{position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:3px solid var(--ink);display:none;box-shadow:0 8px 12px rgba(43,36,25,.15)}
  .towd-nav-toggle:checked ~ .towd-nav{display:block}
  .towd-nav__list{flex-direction:column;gap:0;padding:6px clamp(16px,5vw,48px) 12px;align-items:stretch}
  .towd-nav__list a{padding:13px 0;font-size:16px;border-bottom:1px solid var(--kraft-dk)}
  .towd-nav__list li:last-child a{border-bottom:none}
  .towd-nav__list a:hover::after,.towd-nav__list .current-menu-item > a::after{display:none}
}
@media(max-width:900px){
  /* home v3.2 kiosque : grilles en pile ; chips masquées (nav = burger + timbres) */
  .silostrip{display:none}
  .timbres{grid-template-columns:repeat(2,1fr)}
  .une{grid-template-columns:1fr}
  .tgrid{grid-template-columns:1fr}
  /* Index dernières pages : 2 colonnes → 1 colonne, les 10 entrées empilées.
     Le dernier de la 1re colonne RETROUVE son filet (sinon trou au milieu de la
     pile) ; seul le tout dernier (2e colonne) reste sans filet. */
  .flux .dp-grid{grid-template-columns:1fr;gap:0}
  .flux .dp-col:not(:last-child) .entry:last-child{border-bottom:1px dashed var(--kraft-dk)}
  .towd-footer__grid{grid-template-columns:1fr 1fr}
  .towd-fbrand{grid-column:1 / -1;max-width:none}
}
@media(max-width:640px){
  body{font-size:16px}
  .timbres{grid-template-columns:1fr}
  .fiches{grid-template-columns:1fr}
  .silo-outils .rep-grid,.silo-outils .rep-grid.n2{grid-template-columns:1fr}
  .silo-outils .rep{border-right:none;border-bottom:1.5px solid var(--kraft-dk)}
  .silo-outils .rep:last-child{border-bottom:none}
  .apass{flex-direction:column;text-align:center;transform:none}
  .towd-footer__grid{grid-template-columns:1fr;gap:26px}
  .towd-footer__copy{justify-content:flex-start;flex-direction:column;gap:6px}
}

/* =========================================================================
   11. PAGE ARTICLE v3.1 (mockup towd-article-vision-v31) — append-only.
   Fontes titres, sidebar carnet, encarts « objets de voyage », tableaux carnet,
   fiche auteur passeport, kicker sticker silo. Ces règles arrivent APRÈS les
   sections 8/9 → elles priment (même spécificité) sur les réglages génériques.
   ========================================================================= */

/* ---- 11.1 Libre Baskerville self-hébergée (titres) ------------------------ */
@font-face{font-family:'Libre Baskerville';font-style:normal;font-weight:400;font-display:swap;src:url("fonts/LibreBaskerville-Regular.woff2") format("woff2")}
@font-face{font-family:'Libre Baskerville';font-style:italic;font-weight:400;font-display:swap;src:url("fonts/LibreBaskerville-Italic.woff2") format("woff2")}
@font-face{font-family:'Libre Baskerville';font-style:normal;font-weight:700;font-display:swap;src:url("fonts/LibreBaskerville-Bold.woff2") format("woff2")}

/* ---- 11.2 KICKER sticker silo (article + archive) ------------------------- */
.towd-kicker{display:inline-block;font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--silo,var(--stamp));background:var(--paper);border:2px solid var(--silo,var(--stamp));padding:5px 14px;position:relative;transform:rotate(-1.4deg);margin:0 0 6px}
.towd-kicker::before{content:"";position:absolute;inset:3px;border:1px solid var(--silo,var(--stamp));pointer-events:none}
/* archive silo : le H1 (SEO) porte le sticker, en plus grand */
.towd-archive-title{margin:0 0 4px;line-height:1}
.towd-archive-title .towd-kicker{font-size:clamp(15px,2.4vw,19px);letter-spacing:.14em;padding:9px 22px}

/* ---- 11.3 ENCART « L'ESSENTIEL » → sticker scotché ------------------------ */
/* markup : aside.towd-takeaways > p.__title + ul.__list > li  (rendu child).   */
.towd-takeaways{background:var(--paper);border:2px solid var(--stamp);box-shadow:none;padding:22px 26px 18px;margin:6px 6px 30px;position:relative;transform:rotate(-.6deg)}
.towd-takeaways::before{content:"";position:absolute;inset:4px;border:1px solid var(--stamp);pointer-events:none}
/* deux morceaux de scotch kraft (le conteneur n'offrant qu'un élément, on les
   porte par les pseudo de la liste, positionnés vs l'aside relative). */
.towd-takeaways__list{list-style:none;margin:0;padding:0}
.towd-takeaways__list::before,.towd-takeaways__list::after{content:"";position:absolute;top:-13px;width:86px;height:24px;background:rgba(201,180,140,.75);border-left:1px dashed rgba(43,36,25,.25);border-right:1px dashed rgba(43,36,25,.25)}
.towd-takeaways__list::before{left:26px;transform:rotate(-5deg)}
.towd-takeaways__list::after{right:26px;transform:rotate(4deg)}
.towd-takeaways__title{font-family:var(--sans);font-weight:800;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--stamp);margin:0 0 12px;display:block}
.towd-takeaways__title::after{content:none}      /* supprime le filet pointillé v3.0 */
.towd-takeaways__list li{position:relative;padding:5px 0 5px 24px;margin:0;font-family:var(--sans);font-size:.95rem;line-height:1.5;color:var(--ink)}
.towd-takeaways__list li::before{content:"✦";position:absolute;left:2px;top:6px;width:auto;height:auto;background:none;color:var(--stamp);font-size:13px}

/* ---- 11.4 ENCART « À SAVOIR » (warning) → étiquette de bagage ------------- */
/* markup : aside.towd-callout.towd-warning > p.__label(span.__icon + txt) + p.__body */
.towd-warning{background:var(--kraft);border:2px solid var(--ink);border-left-width:2px;box-shadow:none;padding:20px 24px 18px 54px;position:relative;clip-path:polygon(0 26px,26px 0,100% 0,100% 100%,0 100%)}
.towd-warning .towd-callout__label{color:var(--ink);margin:0 0 8px}
.towd-warning .towd-callout__body{color:var(--ink-soft);margin:0}
/* l'icône pipeline devient l'œillet rond (on annule le SVG warning v3.0) */
.towd-warning .towd-callout__icon{position:absolute;left:16px;top:20px;width:16px;height:16px;border:3px solid var(--ink);border-radius:50%;background:var(--paper);background-image:none}

/* ---- 11.5 ENCART « CHIFFRE CLÉ » (keyfigure) → timbre-poste --------------- */
/* markup : aside.towd-keyfigure > div.__num(span.__value+span.__caption) + div.__text(p.__label+p.__body) */
.towd-keyfigure{border:none;background:transparent;box-shadow:none;padding:0;display:flex;gap:24px;align-items:stretch}
.towd-keyfigure__num{flex:none;width:210px;max-width:46%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 16px;background:var(--paper);border:2px dashed var(--kraft-dk);outline:6px solid var(--paper);outline-offset:-8px}
.towd-keyfigure__num::before{content:"";position:absolute;inset:6px;border:2px solid var(--stamp);pointer-events:none}
.towd-keyfigure__num::after{content:"TOWD · 2026";position:absolute;bottom:8px;right:12px;font-family:var(--sans);font-size:8px;letter-spacing:.14em;color:var(--stamp);opacity:.7}
.towd-keyfigure__value{display:block;font-family:var(--serif-title);font-weight:700;font-style:italic;font-size:2rem;line-height:1.05;color:var(--stamp)}
.towd-keyfigure__caption{display:block;margin-top:10px;font-family:var(--sans);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;line-height:1.45}
.towd-keyfigure__text{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;border-top:1px solid var(--kraft-dk);border-bottom:1px solid var(--kraft-dk);padding:14px 4px}
.towd-keyfigure .towd-callout__label{color:var(--stamp-blue);margin:0 0 8px}
.towd-keyfigure .towd-callout__body{font-size:.9rem;color:var(--ink);margin:0;line-height:1.6}
@media(max-width:560px){
  .towd-keyfigure{flex-direction:column;gap:18px}
  .towd-keyfigure__num{width:auto;max-width:none}
}

/* ---- 11.6 TABLEAUX carnet + coin illustré -------------------------------- */
.entry-content table:not(.towd-compare table) th,
.entry-content table:not(.towd-compare table) td{text-align:center;vertical-align:middle}
.entry-content table:not(.towd-compare table) thead th,
.entry-content table:not(.towd-compare table) tr:first-child th{background:var(--ink);color:var(--paper);text-transform:uppercase}
.entry-content table:not(.towd-compare table) td:first-child{font-weight:600;color:var(--ink);text-align:center}
/* ligne de totaux (dernière) : filet encre net + valeurs rouge gras */
.entry-content table:not(.towd-compare table) tbody tr:last-child td{border-top:2px solid var(--ink);font-weight:700}
.entry-content table:not(.towd-compare table) tbody tr:last-child td:first-child strong{color:var(--ink)}
.entry-content table:not(.towd-compare table) tbody tr:last-child td:not(:first-child) strong{color:var(--stamp)}
/* coin illustré (injecté par towd-article.js : div.tbl-wrap > table + img.corner-ill) */
.entry-content .tbl-wrap{position:relative;margin:26px 0 30px}
.entry-content .tbl-wrap > table{margin:0}
.entry-content .corner-ill{position:absolute;top:-24px;right:-14px;width:70px;height:auto;z-index:3;opacity:.92;border:none;pointer-events:none}
@media(max-width:560px){.entry-content .corner-ill{width:54px;top:-18px;right:-6px}}

/* ---- 11.7 FICHE AUTEUR passeport (generate_after_entry_content) ----------- */
.towd-author-card{display:flex;gap:20px;align-items:center;margin:38px 0 0;background:var(--kraft);border:2px solid var(--ink);padding:18px 22px;position:relative}
.towd-author-card::after{content:"VU · TOWD";position:absolute;top:10px;right:14px;font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--stamp);border:1.5px solid var(--stamp);padding:2px 8px;transform:rotate(6deg);opacity:.85}
.towd-author-card__ph{width:74px;height:74px;flex:none;border-radius:50%;border:2.5px solid var(--ink);object-fit:cover;background:linear-gradient(140deg,#c9b48c,#a89468)}
.towd-author-card__body{min-width:0}
.towd-author-card__name{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:18px;margin:0}
.towd-author-card__role{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--stamp-blue);margin:2px 0 6px}
.towd-author-card__bio{font-family:var(--sans);font-size:13.5px;color:var(--ink-soft);margin:0;line-height:1.55}
.towd-author-card__link{color:var(--stamp);font-family:var(--sans);font-size:13px;font-weight:600;white-space:nowrap}

/* ---- 11.8 SIDEBAR carnet (child sidebar.php, single uniquement) ----------- */
.single-post #right-sidebar .inside-right-sidebar{position:sticky;top:24px;display:flex;flex-direction:column;gap:22px}
.towd-panel{background:var(--paper);border:1px solid var(--ink);padding:16px 18px 14px;position:relative}
.towd-panel__pin{position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:13px;height:13px;border-radius:50%;background:var(--stamp);border:2px solid var(--ink)}
.towd-panel__title{font-family:var(--sans);font-size:11.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);margin:0 0 10px;padding-bottom:8px;border-bottom:2px solid var(--ink)}
.towd-silo-list{list-style:none;margin:0;padding:0}
.towd-silo-list li{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px dashed var(--kraft-dk)}
.towd-silo-list li:last-child{border-bottom:none}
.towd-silo-list__dot{width:11px;height:11px;flex:none;border:1.5px solid var(--ink)}
.towd-silo-list a{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;flex:1}
.towd-silo-list a:hover{color:var(--stamp)}
.towd-silo-list__count{font-family:var(--sans);font-size:11px;font-weight:700;color:var(--paper);background:var(--ink);min-width:22px;height:20px;display:flex;align-items:center;justify-content:center;padding:0 6px}
/* panneau outils (flag) */
.towd-tool-list{list-style:none;margin:0;padding:0}
.towd-tool-list li{display:flex;gap:10px;align-items:center;padding:7px 0;border-bottom:1px dashed var(--kraft-dk)}
.towd-tool-list li:last-child{border:none}
.towd-tool-list__ic{width:30px;height:30px;flex:none;border:1.5px solid var(--ink);background:var(--kraft);display:flex;align-items:center;justify-content:center}
.towd-tool-list__ic svg{width:18px;height:18px}
.towd-tool-list__b{flex:1;min-width:0}
.towd-tool-list__name{display:block;font-family:var(--sans);font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.25}
.towd-tool-list__name a{color:var(--stamp);text-decoration:underline;text-underline-offset:2px;font-size:12px;font-weight:700;margin-left:6px;white-space:nowrap}
.towd-tool-list__desc{display:block;margin-top:2px;font-family:var(--sans);font-size:11.5px;color:var(--ink-soft);line-height:1.4}
/* panneau newsletter (flag) */
.towd-panel--nl{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.towd-panel--nl .towd-panel__title{color:var(--paper);border-color:var(--kraft-dk)}
.towd-panel--nl p{font-family:var(--sans);font-size:12.5px;color:var(--kraft);margin:0 0 10px;line-height:1.5}
.towd-panel--nl input{width:100%;padding:8px 11px;font-family:var(--sans);font-size:13px;border:1px solid var(--kraft-dk);background:var(--paper);color:var(--ink);margin-bottom:8px}
.towd-panel--nl button{width:100%;padding:9px;background:var(--stamp);color:var(--paper);border:none;font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}

/* =========================================================================
   12. ARCHIVE SILO v3.2 (mockup towd-pages-silo-apropos-contact) — append-only.
   Hero silo duotone + fil d'Ariane + sticker négatif + tampon « N pages » ;
   grille de cartes à épingle (couleur --silo, posée par body.towd-silo-<slug>) ;
   pagination carnet (carrés encre) ; bandeau outils en pied.
   ========================================================================= */
.silo-hero{position:relative;min-height:280px;display:flex;overflow:hidden;border-bottom:3px solid var(--ink);background-color:var(--silo,var(--sea));background-size:cover;background-position:center}
.silo-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(15deg,rgba(43,36,25,.55),rgba(43,36,25,.14) 62%,rgba(43,36,25,.32));pointer-events:none}
.silo-hero .breadcrumb{position:absolute;top:16px;left:clamp(16px,4vw,40px);z-index:2;font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(247,240,224,.92)}
.silo-hero .breadcrumb a{color:rgba(247,240,224,.92);text-decoration:none}
.silo-hero .breadcrumb a:hover{color:#fff;text-decoration:underline}
.silo-hero .inner{position:relative;z-index:2;margin:auto;text-align:center;padding:44px 20px;max-width:640px;display:flex;flex-direction:column;align-items:center;gap:14px}
.silo-hero .hsticker{display:inline-block;font-family:var(--sans);font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);background:transparent;border:2px solid var(--paper);padding:12px 32px;position:relative;transform:rotate(-1.4deg);font-size:clamp(15px,2.4vw,18px)}
.silo-hero .hsticker::before{content:'';position:absolute;inset:4px;border:1px solid var(--paper);pointer-events:none}
.silo-hero p{font-family:var(--sans);font-size:15px;color:var(--paper);max-width:560px;margin:0;text-shadow:0 1px 3px rgba(43,36,25,.6)}

.silo-body{max-width:var(--wrap);margin:0 auto;padding:36px clamp(16px,4vw,40px) 20px}
.silo-metabar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:26px;font-family:var(--sans);font-size:12.5px;color:var(--ink-soft)}
.silo-metabar .count-stamp{border:1.5px solid var(--ink);color:var(--ink);padding:3px 12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:11px;transform:rotate(1deg);background:var(--paper)}

.silo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.silo-grid .card{background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);position:relative;display:flex;flex-direction:column}
.silo-grid .card .pin{position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:13px;height:13px;border-radius:50%;background:var(--silo,var(--stamp));border:2px solid var(--ink);z-index:2}
.silo-grid .card .cimg{aspect-ratio:16/9;background:linear-gradient(140deg,var(--sea),var(--forest));border-bottom:2px solid var(--ink);overflow:hidden}
.silo-grid .card .cimg img{width:100%;height:100%;object-fit:cover;display:block}
.silo-grid .card .cbody{padding:16px 18px 18px;flex:1;display:flex;flex-direction:column}
.silo-grid .card .cmeta{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}
.silo-grid .card h3{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:18px;line-height:1.3;margin:0 0 8px}
.silo-grid .card h3 a{color:var(--ink);text-decoration:none}
.silo-grid .card h3 a:hover{color:var(--stamp)}
.silo-grid .card p{font-family:var(--sans);font-size:13px;color:var(--ink-soft);line-height:1.55;margin:0 0 12px}
.silo-grid .card .more{margin-top:auto;font-family:var(--sans);font-size:12.5px;font-weight:700;color:var(--stamp);text-decoration:none}
.silo-grid .card .more:hover{text-decoration:underline}

/* pagination carnet (carrés encre, courant en négatif) */
.silo-body .pagination{max-width:none;margin:34px 0 0;display:flex;justify-content:center}
.silo-body .pagination .nav-links{display:flex;gap:8px;flex-wrap:wrap}
.silo-body .pagination .page-numbers{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:0 8px;font-size:13px}
.silo-body .pagination .page-numbers.dots{border:none;background:transparent}

/* bandeau outils en pied */
.silo-tools{margin-top:44px;background:var(--ink);border:2px solid var(--ink);padding:22px 26px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.silo-tools .t b{display:block;font-family:var(--serif-title);font-style:italic;font-weight:700;color:var(--paper);font-size:16px}
.silo-tools .t span{font-family:var(--sans);font-size:12.5px;color:var(--kraft)}
.silo-tools .cta{margin-left:auto;background:var(--stamp);color:var(--paper);font-family:var(--sans);font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:11px 22px;text-decoration:none;border:2px solid var(--paper)}
.silo-tools .cta:hover{background:#9c3025;color:var(--paper)}
.silo-empty{font-family:var(--sans);color:var(--ink-soft);padding:24px 0}

@media(max-width:900px){.silo-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){
  .silo-grid{grid-template-columns:1fr}
  .silo-tools{flex-direction:column;align-items:flex-start}
  .silo-tools .cta{margin-left:0}
}

/* =========================================================================
   13. PAGES À PROPOS + CONTACT v3.2 (mockup towd-pages-silo-apropos-contact).
   À propos = fiche passeport + contenu éditable + tampons silo (shortcode).
   Contact = carte postale (flag TOWD_SHOW_CONTACT_FORM ; défaut = email seul).
   ========================================================================= */

/* ---- À PROPOS ---- */
.towd-about{max-width:var(--wrap);margin:0 auto;background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow)}
.about-hero{background:var(--kraft);border-bottom:2px solid var(--ink);padding:44px clamp(20px,4vw,40px);display:flex;gap:34px;align-items:center;position:relative}
.about-hero::after{content:'VU · TOWD · 2026';position:absolute;top:18px;right:22px;font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--stamp);border:2px solid var(--stamp);padding:4px 12px;transform:rotate(5deg);opacity:.85}
.about-hero .ph{width:130px;height:130px;border-radius:50%;border:3px solid var(--ink);background:linear-gradient(140deg,#c9b48c,#a08a5e);flex:none;overflow:hidden}
.about-hero .ph img{width:100%;height:100%;object-fit:cover;display:block}
.about-hero .role{font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--stamp-blue);margin-bottom:8px}
.about-hero h1{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:clamp(28px,5vw,34px);line-height:1.15;margin:0 0 8px}
.about-hero .intro{font-family:var(--serif);font-size:clamp(15px,2vw,16.5px);line-height:1.6;max-width:620px;margin:0;color:var(--ink)}
.about-in{padding:36px clamp(20px,4vw,40px) 46px;max-width:820px}
.about-in h2{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:23px;margin:30px 0 12px;padding:0;border:none}
.about-in > :first-child{margin-top:0}
.about-in p{font-family:var(--serif);font-size:16.5px;line-height:1.7;margin:0 0 15px}
.about-in a{color:var(--stamp)}
.towd-silo-stamps{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 6px}
.towd-silo-stamps .st{font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:6px 14px;border:2px solid var(--silo,var(--stamp));color:var(--silo,var(--stamp));background:var(--paper);text-decoration:none;transform:rotate(-1deg)}
.towd-silo-stamps .st:nth-child(even){transform:rotate(1.2deg)}
.towd-silo-stamps .st:hover{background:var(--silo,var(--stamp));color:var(--paper)}
.about-cta{margin-top:30px;border-top:2px solid var(--ink);padding-top:22px;display:flex;gap:14px;flex-wrap:wrap}
.about-cta a{font-family:var(--sans);font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:11px 20px}
.about-cta a.p{background:var(--stamp);color:var(--paper);border:2px solid var(--ink)}
.about-cta a.p:hover{background:#9c3025;color:var(--paper)}
.about-cta a.s{border:2px solid var(--ink);color:var(--ink)}
.about-cta a.s:hover{background:var(--ink);color:var(--paper)}

/* ---- CONTACT — carte postale ---- */
.contact-wrap{background:var(--kraft);border:2px solid var(--ink);box-shadow:var(--shadow);padding:46px clamp(16px,4vw,40px) 56px;max-width:var(--wrap);margin:0 auto}
.contact-intro{text-align:center;margin-bottom:30px}
.contact-intro .sticker{display:inline-block;font-family:var(--sans);font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--stamp);background:var(--paper);border:2px solid var(--stamp);padding:9px 24px;position:relative;transform:rotate(-1.4deg);font-size:14px}
.contact-intro .sticker::before{content:'';position:absolute;inset:4px;border:1px solid var(--stamp);pointer-events:none}
.contact-intro p{font-family:var(--sans);font-size:14px;color:var(--ink-soft);max-width:520px;margin:14px auto 0}
.postcard{max-width:920px;margin:0 auto;background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1px 340px;position:relative;transform:rotate(-.5deg)}
.postcard::after{content:'';position:absolute;top:14px;right:14px;width:64px;height:76px;border:2px solid var(--stamp);background:repeating-linear-gradient(45deg,rgba(178,58,46,.12) 0 6px,transparent 6px 12px);pointer-events:none}
.postcard .divider{background:repeating-linear-gradient(180deg,var(--ink) 0 8px,transparent 8px 14px)}
.pc-left{padding:30px 30px 34px}
.pc-left h2{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:21px;margin:0 0 16px}
.pc-left label{display:block;font-family:var(--sans);font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:14px 0 5px}
.pc-left input,.pc-left textarea{width:100%;border:none;border-bottom:1.5px solid var(--kraft-dk);background:transparent;font-family:var(--serif);font-size:15px;padding:6px 2px;color:var(--ink)}
.pc-left textarea{min-height:110px;border:1.5px solid var(--kraft-dk);padding:10px;background:rgba(229,215,186,.25);background-image:repeating-linear-gradient(transparent 0 27px,rgba(201,180,140,.55) 27px 28px);line-height:28px}
.pc-left button{margin-top:18px;background:var(--stamp);color:var(--paper);border:2px solid var(--ink);font-family:var(--sans);font-size:12.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:12px 26px;cursor:pointer}
.pc-left button:hover{background:#9c3025}
.pc-note{font-family:var(--sans);font-size:11px;color:var(--ink-soft);margin-top:10px}
.pc-right{padding:110px 26px 30px;display:flex;flex-direction:column;gap:18px}
.pc-right .addr-line{border-bottom:1.5px solid var(--kraft-dk);padding-bottom:4px;font-family:var(--serif-title);font-style:italic;font-size:15px}
.pc-right .k{font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--stamp-blue);margin-bottom:3px}
.pc-right .mail{color:var(--stamp);font-weight:bold;font-style:normal;font-family:var(--sans);font-size:15px}
.pc-right .small{font-family:var(--sans);font-size:11.5px;color:var(--ink-soft);line-height:1.6}
/* mode email seul (flag off) : une seule colonne, pas de formulaire mort */
.postcard--email-only{grid-template-columns:1fr;max-width:620px;transform:rotate(-.4deg)}
.postcard--email-only .pc-right{padding:38px 30px 34px}

/* ---- CONTACT — en-tête cadré (décalqué .about-hero) — v1.5.29 ------------
   Remplace le cartouche flottant .contact-intro. Bandeau full-bleed en tête de
   la carte .contact-wrap (marge négative = padding de .contact-wrap), fond
   --kraft clair aligné sur À propos, filet ink en séparateur, timbre coin +
   pastille enveloppe SVG. Le corps postcard reste strictement inchangé. */
.contact-hero{background:var(--kraft);border-bottom:2px solid var(--ink);
  display:flex;gap:30px;align-items:center;position:relative;
  padding:40px clamp(20px,4vw,40px);padding-right:clamp(30px,9vw,124px);
  margin:-46px calc(-1 * clamp(16px,4vw,40px)) 34px}
.contact-hero .ph{width:104px;height:104px;border-radius:50%;border:3px solid var(--ink);
  background:var(--paper);flex:none;display:flex;align-items:center;justify-content:center}
.contact-hero .ph svg{width:54px;height:54px;stroke:var(--stamp);stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.contact-hero .role{font-family:var(--sans);font-size:12px;font-weight:800;
  letter-spacing:.18em;text-transform:uppercase;color:var(--stamp-blue);margin-bottom:8px}
.contact-hero h1{font-family:var(--serif-title);font-style:italic;font-weight:700;
  font-size:clamp(28px,5vw,34px);line-height:1.15;margin:0 0 8px;color:var(--ink)}
.contact-hero .intro{font-family:var(--serif);font-size:clamp(15px,2vw,16.5px);
  line-height:1.6;margin:0;color:var(--ink)}
@media(max-width:900px){.contact-hero{flex-direction:column;text-align:center;margin-top:-40px}}

@media(max-width:900px){
  .about-hero{flex-direction:column;text-align:center}
  .postcard{grid-template-columns:1fr;transform:none}
  .postcard .divider{display:none}
  .pc-right{padding-top:24px}
}

/* sidebar : sous la brèche mobile, la grille GP passe déjà en 1 colonne (sticky off) */
@media(max-width:768px){.single-post #right-sidebar .inside-right-sidebar{position:static}}

/* ── Infographies 4:5 : plafond de largeur desktop ─────────────────────────
   Les infographies portrait (classe .article-image--infographic posée par le
   node Upload & Insert Images V2.4) sont plafonnées et centrées en desktop
   pour éviter l'effet écrasant à pleine largeur. Mobile : plein cadre intact
   (rien sous le breakpoint). 2026-07-07 */
@media (min-width: 769px) {
  .entry-content figure.article-image--infographic {
    max-width: 480px;
    margin-inline: auto;
  }
  .entry-content figure.article-image--infographic img {
    width: 100%;
    height: auto;
    display: block;
  }
}

/* =========================================================================
   14. LOT RETOUCHES 07/07 (v1.5.0) — append-only. Ces règles arrivent en
   dernier : à spécificité égale, elles priment sur les sections 6–13.
   ========================================================================= */

/* ---- 14.0 Fond monuments retiré (silo / à-propos / contact / outils) ------ */
/* mission 2.5 / 4.5 / 5.3 — aplat kraft propre (comme la home). */
body.towd-plain-bg{background-color:var(--page-bg)}/* v1.5.23 : background-image:none RETIRÉ (sinon strippe la tuile body §2 sur silo/about/contact/outils) */

/* ---- 14.1 SÉPARATEUR « filet encre + étoile towd » (v1.5.1, option E) ------ */
/* Filet encre pointillé de chaque côté + étoile towd (asset PNG réel, celui du
   logo header) centrée. Posé DIRECTEMENT sur le fond global uni --page-bg —
   aucune bande, aucun fond propre. Aligné sur --wrap (padding latéral = .wrap).
   Remplace la reliure spirale v1.5.0. Variante --light sur fond sombre (outils). */
.towd-reliure{display:flex;align-items:center;justify-content:center;width:100%;max-width:var(--wrap);margin:0 auto;height:30px;padding:0 clamp(18px,4vw,44px);pointer-events:none}
.towd-reliure::before,.towd-reliure::after{content:"";flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--ink) 0 9px,transparent 9px 16px);opacity:.7}
.towd-reliure__star{flex:none;height:30px;width:auto;padding:0 14px}
.towd-reliure--light::before,.towd-reliure--light::after{background:repeating-linear-gradient(90deg,var(--paper) 0 9px,transparent 9px 16px);opacity:.6}
/* filet beige prononcé sous les chips retiré : la reliure fait la séparation. */
.silostrip{border-bottom:none}

/* ---- 14.2 TIMBRE-POSTE mutualisé (.towd-stamp) — mission 1.7 / 3.8 / 4.3 -- */
.towd-stamp{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:70px;height:84px;background:var(--paper);border:2px dashed var(--ink);outline:5px solid var(--paper);outline-offset:-7px;box-shadow:2px 2px 0 rgba(43,36,25,.16);transform:rotate(4deg);padding:9px 6px}
.towd-stamp__star{width:30px;height:30px;display:block}
.towd-stamp__cap{display:flex;flex-direction:column;align-items:center;line-height:1;text-align:center}
.towd-stamp__cap b{font-family:var(--sans);font-size:8px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--stamp)}
.towd-stamp__cap i{font-family:var(--sans);font-size:6.5px;font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-top:2px}
/* cachet d'oblitération : petit rond rouge en pointillé sur le coin */
.towd-stamp__pm{position:absolute;top:-9px;right:-9px;width:32px;height:32px;border:1.5px solid var(--stamp);border-radius:50%;opacity:.55;transform:rotate(-12deg)}
.towd-stamp__pm::before{content:"";position:absolute;inset:3px;border:1px dashed var(--stamp);border-radius:50%}
.towd-stamp--corner{position:absolute;top:14px;right:16px;z-index:3}
/* on retire les anciens tampons pseudo-::after remplacés par le timbre */
.apass::after,.towd-author-card::after,.about-hero::after{content:none}
/* on réserve la place du timbre à droite pour éviter tout chevauchement texte */
.apass{padding-right:110px}
.towd-author-card{padding-right:104px}
.about-hero{padding-right:clamp(30px,9vw,124px)}

/* ---- 14.3 À LA UNE : fiches étirées (image couvre le bloc, plus de zone vide) — 1.4 */
.une{align-items:stretch}
.une-side{height:100%}
.une-side .ufiche{flex:1 1 auto}
.une-side .uimg{flex:1 1 auto;aspect-ratio:auto;min-height:172px}
/* la GRANDE fiche (dernier article mis en avant) : son image grandit pour remplir
   toute la hauteur de la rangée (object-fit cover) — plus de blanc en bas. */
.une > .ufiche{height:100%}
.une > .ufiche > .uimg{flex:1 1 auto;aspect-ratio:auto;min-height:240px}

/* ---- 14.4 OUTILS home : titre (filets papier) + 3 tuiles — 1.5 / 1.6 ------ */
/* 1.5 : texte rouge conservé, les deux filets repassent en papier clair. */
.tools-band .sep>span{background:transparent;color:#d1483a;border-color:var(--paper)}
.tools-band .sep>span::before{border-color:var(--paper)}
/* 1.6 : tuiles cliquables, accent silo, badge, hover marqué. */
.tgrid{gap:20px}
.tgrid .tool{position:relative;background:var(--paper);border:1px solid var(--ink);border-top:5px solid var(--tool-accent,var(--stamp));padding:28px 18px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;color:var(--ink);box-shadow:3px 3px 0 rgba(0,0,0,.32);transition:transform .14s ease,box-shadow .14s ease}
.tgrid .tool:hover{transform:translate(-2px,-3px);box-shadow:6px 8px 0 rgba(0,0,0,.42);color:var(--ink)}
.tool[data-accent="sea"]{--tool-accent:var(--sea)}
.tool[data-accent="sun"]{--tool-accent:var(--sun)}
.tool[data-accent="forest"]{--tool-accent:var(--forest)}
.tool .tbadge{position:absolute;top:10px;right:10px;font-family:var(--sans);font-size:8.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--tool-accent);border:1.5px solid var(--tool-accent);background:var(--paper);padding:2px 8px}
.tool .ticon{width:56px;height:56px;border:2px solid var(--tool-accent);border-radius:50%;background:var(--paper);display:flex;align-items:center;justify-content:center;margin:4px auto 14px}
.tool .ticon svg{width:28px;height:28px;stroke:var(--tool-accent)}
.tool h4{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:18px;margin:0 0 6px}
.tool p{font-family:var(--sans);font-size:12.5px;line-height:1.5;color:var(--ink-soft);margin:0 0 16px}
.tool .tcta{margin-top:auto;font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--paper);background:var(--tool-accent);padding:10px 20px;border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);transition:transform .12s ease,box-shadow .12s ease}
.tool:hover .tcta{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink)}
/* bouton « Tous les outils » sous la grille (fond sombre) */
.tools-more{text-align:center;margin-top:30px}
.tools-more__btn{display:inline-block;font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:var(--paper);border:2px solid var(--paper);padding:13px 32px;text-decoration:none;box-shadow:4px 4px 0 rgba(0,0,0,.4);transition:background .14s ease,color .14s ease}
.tools-more__btn:hover{background:var(--stamp);color:var(--paper);border-color:var(--stamp)}

/* ---- 14.4b ARTICLE : sticker silo décollé du titre — 3.3 ----------------- */
.single-post .towd-kicker{margin-bottom:15px}

/* ---- 14.5 ARTICLE : TL;DR étoile / warning rond rouge — 3.4 / 3.5 --------- */
.towd-takeaways__title{display:flex;align-items:center;gap:9px}
.towd-takeaways__star{width:22px;height:22px;flex:none;display:block}
.towd-warning .towd-callout__icon{background:var(--stamp)} /* intérieur rouge tampon (3.5) */

/* ---- 14.6 ARTICLE : sticky offset (ne jamais rogner le volet) — 3.1 ------- */
.single-post #right-sidebar .inside-right-sidebar{top:28px}
body.admin-bar #right-sidebar .inside-right-sidebar{top:60px} /* passe sous l'admin-bar en preview */
/* badge « Bientôt » du panneau outils (placeholder, 3.2) */
.towd-tool-list__soon{font-family:var(--sans);font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--kraft-dk);background:var(--kraft);padding:2px 7px;white-space:nowrap;margin-left:6px}

/* ---- 14.7 ARTICLE : chiffre clé centré en mobile — 3.7 ------------------- */
@media(max-width:560px){
  .towd-keyfigure__text{text-align:center;align-items:center}
  .towd-keyfigure .towd-callout__label,.towd-keyfigure .towd-callout__body{text-align:center}
}

/* ---- 14.8 ARTICLE : tableaux lisibles en mobile (sans scroll H) — 3.6 ----- */
@media(max-width:560px){
  .entry-content table:not(.towd-compare table){font-size:.8rem;table-layout:fixed;width:100%}
  .entry-content table:not(.towd-compare table) th,
  .entry-content table:not(.towd-compare table) td{padding:6px 5px;line-height:1.35;word-break:normal;overflow-wrap:break-word;hyphens:auto}
}
@media(max-width:430px){
  .entry-content table:not(.towd-compare table){font-size:.72rem}
  .entry-content table:not(.towd-compare table) th,
  .entry-content table:not(.towd-compare table) td{padding:5px 3px}
  .entry-content .tbl-wrap .corner-ill,.entry-content .corner-ill{width:44px;top:-14px;right:-4px}
}

/* ---- 14.9 ARTICLE : « À lire ensuite » — mission 3.9 --------------------- */
.towd-related{margin:40px 0 6px}
.towd-related__title{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:22px;margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid var(--kraft-dk)}
.towd-related__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.towd-related__card{display:flex;flex-direction:column;background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow-sm);text-decoration:none;color:var(--ink);overflow:hidden;transition:transform .12s ease,box-shadow .12s ease}
.towd-related__card:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 rgba(43,36,25,.2);color:var(--ink)}
.towd-related__img{aspect-ratio:16/9;display:block;background:linear-gradient(140deg,var(--silo,var(--sea)),var(--forest));border-bottom:2px solid var(--ink);overflow:hidden}
.towd-related__img img{width:100%;height:100%;object-fit:cover;display:block}
.towd-related__b{padding:12px 14px 14px;display:flex;flex-direction:column;gap:5px}
.towd-related__k{font-family:var(--sans);font-size:9.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--silo,var(--stamp-blue))}
.towd-related__h{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:15.5px;line-height:1.3;color:var(--ink)}
@media(max-width:640px){.towd-related__grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.towd-related__grid{grid-template-columns:1fr}}

/* ---- 14.10 SILO : cadre filet encre + image cliquable — 2.2 / 2.4 -------- */
.silo-frame{background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);padding:26px clamp(16px,3vw,30px) 30px;margin-top:4px}
.silo-frame .silo-metabar{margin-top:0}
.silo-grid .card .cimg{display:block} /* .cimg est désormais un <a> (2.4) */

/* ---- 14.11 ABOUT : colonne élargie (plus de zone vide) — 4.2 ------------- */
.towd-about{max-width:940px}
.about-in{max-width:none}
.about-hero .intro{max-width:none}

/* ---- 14.12 CONTACT : mise en scène + statut + formulaire — 5.1 / 5.2 ----- */
.postcard::after{content:none} /* ancien faux-timbre remplacé par le timbre mutualisé */
.postcard{position:relative}
.towd-stamp--postcard{position:absolute;top:16px;right:20px;z-index:4;transform:rotate(5deg)}
.pc-postmark{position:absolute;top:44px;right:98px;z-index:3;width:74px;height:74px;border:2px solid var(--stamp);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;opacity:.5;transform:rotate(-9deg);pointer-events:none;padding:8px}
.pc-postmark b{font-family:var(--sans);font-size:6.5px;font-weight:800;letter-spacing:.04em;color:var(--stamp);line-height:1.2}
.pc-postmark i{font-family:var(--sans);font-size:7px;font-style:normal;color:var(--stamp);margin-top:3px;border-top:1px solid var(--stamp);padding-top:2px}
.pc-hand{font-family:var(--serif-title);font-style:italic;font-size:15.5px;color:var(--stamp-blue);transform:rotate(-1.5deg);margin:4px 0 0}
.pc-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-alert{max-width:920px;margin:0 auto 20px;padding:13px 20px;font-family:var(--sans);font-size:14px;font-weight:600;border:2px solid var(--ink)}
.contact-alert--ok{background:#e4ecd9;color:var(--forest);border-color:var(--forest)}
.contact-alert--err{background:var(--warning-bg);color:var(--stamp);border-color:var(--stamp)}

/* ---- 14.13 PAGE OUTILS — mission 6.1 ------------------------------------ */
.outils-wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(16px,4vw,40px) 10px}
.outils-hero{text-align:center;padding:46px 0 28px}
.outils-hero .sticker{display:inline-block;font-family:var(--sans);font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--stamp);background:var(--paper);border:2px solid var(--stamp);padding:9px 24px;position:relative;transform:rotate(-1.4deg);font-size:14px}
.outils-hero .sticker::before{content:'';position:absolute;inset:4px;border:1px solid var(--stamp);pointer-events:none}
.outils-hero h1{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:clamp(30px,5vw,42px);line-height:1.14;margin:20px 0 12px}
.outils-hero p{font-family:var(--sans);font-size:15px;color:var(--ink-soft);max-width:600px;margin:0 auto;line-height:1.6}
.outils-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:10px 0 0}
.outil-card{position:relative;background:var(--paper);border:2px solid var(--ink);border-top:5px solid var(--card-accent,var(--stamp));box-shadow:var(--shadow);padding:30px 22px 24px;display:flex;flex-direction:column;align-items:center;text-align:center}
.outil-card[data-accent="sea"]{--card-accent:var(--sea)}
.outil-card[data-accent="sun"]{--card-accent:var(--sun)}
.outil-card[data-accent="forest"]{--card-accent:var(--forest)}
.outil-card__badge{position:absolute;top:12px;right:12px;font-family:var(--sans);font-size:9px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);border:1.5px solid var(--kraft-dk);background:var(--kraft);padding:3px 9px}
.outil-card__badge.is-live{color:var(--forest);border-color:var(--forest);background:#e4ecd9}
.outil-card__ic{width:64px;height:64px;border:2px solid var(--card-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:8px auto 16px}
.outil-card__ic svg{width:32px;height:32px;stroke:var(--card-accent)}
.outil-card__cat{font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--card-accent);margin-bottom:6px}
.outil-card__name{font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:19px;line-height:1.25;margin:0 0 10px}
.outil-card__desc{font-family:var(--sans);font-size:13px;color:var(--ink-soft);line-height:1.55;margin:0 0 18px}
.outil-card__cta{margin-top:auto;font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:10px 20px;border:2px solid var(--ink);text-decoration:none}
.outil-card__cta.is-soon{color:var(--ink-soft);background:var(--kraft-dk);border-color:var(--kraft-dk);cursor:default}
.outil-card__cta:not(.is-soon){background:var(--card-accent);color:var(--paper)}
.outils-body{max-width:760px;margin:34px auto 0;font-family:var(--serif)}
.outils-body h2{font-family:var(--serif-title);font-style:italic}
.outils-foot{margin:40px 0 10px;background:var(--ink);border:2px solid var(--ink);padding:22px 26px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.outils-foot p{font-family:var(--serif-title);font-style:italic;color:var(--paper);font-size:16px;margin:0}
.outils-foot__cta{margin-left:auto;background:var(--stamp);color:var(--paper);font-family:var(--sans);font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:11px 22px;text-decoration:none;border:2px solid var(--paper)}
.outils-foot__cta:hover{background:#9c3025;color:var(--paper)}
@media(max-width:900px){.outils-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){
  .outils-grid{grid-template-columns:1fr}
  .outils-foot{flex-direction:column;align-items:flex-start}
  .outils-foot__cta{margin-left:0}
}

/* ---- 14.14 Ajustements mobiles du lot (timbres + tuiles + reliure) ------- */
@media(max-width:900px){
  .tgrid{gap:16px}
}
@media(max-width:640px){
  .apass,.towd-author-card{padding-right:22px}
  .about-hero{padding-right:clamp(20px,4vw,40px)}
  .towd-stamp--corner{width:58px;height:70px;top:10px;right:10px}
  .towd-stamp--corner .towd-stamp__star{width:24px;height:24px}
  .towd-reliure{height:24px}
  .towd-reliure__star{height:24px;padding:0 10px}
  .pc-postmark{display:none}
  .towd-stamp--postcard{top:12px;right:14px}
  .contact-alert{margin-left:12px;margin-right:12px}
}

/* =========================================================================
   14.15. 3 RETOUCHES HOME (v1.5.2) — append-only, prime sur §14.x précédentes.
   1) hero + barre chips « option B » ; 2) à la une 2 gauche / 3 droite ;
   3) outils sur fond beige. Home uniquement. Réf. towd-optionB-chipsbar-mockup +
   towd-home-retouches-mockup.
   ========================================================================= */

/* ---- 14.15.1 HERO + BARRE CHIPS « option B » ---------------------------- */
/* La bande chips = barre pleine largeur en fond papier, collée au bord bas encre
   du hero (aucun beige), refermée par une perforation encre avant le beige. */
.silostrip{background:var(--paper);margin:0;position:relative;border-bottom:none}
.silostrip .in{max-width:var(--wrap);margin:0 auto;padding:16px clamp(18px,4vw,44px) 18px}
.silostrip::after{content:'';position:absolute;left:0;right:0;bottom:0;height:4px;
  background:repeating-linear-gradient(90deg,var(--ink) 0 12px,transparent 12px 22px);opacity:.32}
/* chips : fond blanc (bord encre 1.5px) pour ressortir sur le papier ; le repérage
   couleur reste porté par la pastille (.dot) et le hover silo. */
.silostrip .chip{background:#fff;border-color:var(--ink)}

/* ---- 14.15.2 À LA UNE : 2 gauche / 3 droite ----------------------------- */
/* Grille 2 colonnes ; gauche un peu plus large. Chaque colonne = sous-grille dont
   les lignes s'égalisent (grid-auto-rows:1fr) → colonnes de même hauteur, cartes
   qui remplissent l'espace (images en cover, plus de demi-bloc vide). */
.une{grid-template-columns:1.15fr 1fr;gap:22px;padding:30px 0 0;align-items:stretch}
.une--single{grid-template-columns:1fr}
.une .col{display:grid;gap:22px;grid-auto-rows:1fr}
/* carte de base (les deux colonnes) : lien plein, ombre décalée mockup. */
.une .ufiche{box-shadow:4px 4px 0 rgba(43,36,25,.18);height:100%}
/* colonne gauche : carte verticale, image haute qui grandit pour remplir la ligne. */
.une .uL{flex-direction:column}
.une .uL .uimg{flex:1 1 auto;aspect-ratio:auto;min-height:190px;border-bottom:2px solid var(--ink)}
.une .uL .ufb{padding:16px 18px 18px}
.une .uL h3{font-size:23px}
.une .uL .excerpt{font-family:var(--sans);font-size:12.5px;line-height:1.5;color:var(--ink-soft);margin:8px 0 0}
.une .uL .m{margin-top:8px}
/* colonne droite : carte compacte horizontale (image ~40% gauche + titre, sans chapô). */
.une .uR{flex-direction:row}
.une .uR .uimg{flex:0 0 40%;aspect-ratio:auto;min-height:0;border-bottom:none;border-right:2px solid var(--ink)}
.une .uR .ufb{flex:1;display:flex;flex-direction:column;justify-content:center;padding:12px 16px}
.une .uR h3{font-size:17px;margin:0}
.une .uR .kick{margin-bottom:7px}
.une .uR .m{margin-top:7px}
/* < 780px : une seule colonne (les 5 cartes empilées ; les compactes gardent
   image-gauche/texte-droite, lisible jusqu'à ~360px). */
@media(max-width:780px){
  .une{grid-template-columns:1fr;gap:20px}
  .une .col{gap:20px}
}

/* ---- 14.15.3 OUTILS SUR FOND BEIGE -------------------------------------- */
/* Plus de bande encre : fond global beige (transparent), comme les autres sections. */
.tools-band{background:transparent;border-top:none;border-bottom:none;padding:0 0 52px}
/* Titre = label tampon rouge standard (identique à « À la une ») : on annule les
   surcharges §14.4 (filets papier sur fond sombre) en repassant sur --stamp/--paper. */
.tools-band .sep>span{background:var(--paper);color:var(--stamp);border-color:var(--stamp)}
.tools-band .sep>span::before{border-color:var(--stamp)}
/* Sous-titre discret sous le label. */
.tools-sub{text-align:center;font-family:var(--sans);font-size:13px;color:var(--ink-soft);margin:14px 0 4px}
/* 3 tuiles réadaptées pour tenir sur le beige : bord encre 2px + ombre décalée
   ink-tint (indispensable pour les détacher du fond), barre d'accent haute 6px. */
.tools-band .tgrid .tool{border:2px solid var(--ink);border-top:6px solid var(--tool-accent,var(--stamp));
  box-shadow:5px 5px 0 rgba(43,36,25,.18)}
.tools-band .tgrid .tool:hover{box-shadow:8px 8px 0 rgba(43,36,25,.26)}
/* bouton « Découvrir » : plein accent (texte papier), bord encre + ombre 3px encre.
   Tuile soleil = texte encre pour le contraste. */
.tools-band .tool .tcta{box-shadow:3px 3px 0 var(--ink)}
.tools-band .tool[data-accent="sun"] .tcta{color:var(--ink)}
/* bouton « Tous les outils » : tampon rouge encadré (comme le label), plus un bouton plein. */
.tools-band .tools-more__btn{background:transparent;color:var(--stamp);border:2px solid var(--stamp);box-shadow:none;padding:11px 26px}
.tools-band .tools-more__btn:hover{background:var(--stamp);color:var(--paper);border-color:var(--stamp)}

/* =========================================================================
   14.16. INTÉGRATION 12 ILLUSTRATIONS SILO (v1.5.3) — append-only, prime sur
   §7/§12 précédents. Scopé aux tuiles home (.timbre) et au hero silo (.silo-hero,
   category.php uniquement). Ne touche à aucun autre template.
   ========================================================================= */

/* ---- 14.16a TUILES HOME : cartes postales 3:2 + numéro encre ---------------
   Les cartes postales sont en 3:2 (1264×848). On aligne le ratio de la vignette
   sur 3/2 pour afficher la carte entière (aucune troncature du sujet), au lieu du
   16/9 qui rognait haut/bas. Le numéro de timbre passe en encre : les cartes sont
   pastel/claires, un chiffre crème y devenait illisible. */
.timbre .ill{aspect-ratio:3/2}
.timbre .val{color:var(--ink);text-shadow:0 0 4px rgba(247,240,224,.92),0 1px 0 rgba(247,240,224,.9)}

/* ---- 14.16b HERO SILO : bannières aquarelle, « bande légende » ------------
   Les bannières sont des aquarelles claires à bords crème. Le voile sombre
   .silo-hero::after (conçu pour un duotone sombre) les salissait ; on le
   reconvertit en léger dégradé HAUT (lisibilité du fil d'Ariane) et on colle la
   légende (titre + résumé) en bas dans une bande crème encre. L'aquarelle reste
   pleine et propre. Cover pleine largeur → seules les marges crème haut/bas sont
   rognées ; les sujets périphériques (phare à droite, passeport à gauche,
   rangée d'objets) sont préservés. */
.silo-hero{align-items:flex-end;min-height:300px}
/* Voile sombre plein → dégradé haut discret (fil d'Ariane lisible sur zones claires). */
.silo-hero::after{background:linear-gradient(rgba(43,36,25,.30),rgba(43,36,25,0) 34%);bottom:auto;height:120px}
/* Fil d'Ariane : reste crème, mais posé sur le dégradé haut. */
.silo-hero .breadcrumb{text-shadow:0 1px 2px rgba(43,36,25,.55)}
/* Bande légende crème collée en bas, pleine largeur, texte encre. */
.silo-hero .inner{margin:0;width:100%;max-width:none;text-align:left;
  background:rgba(247,240,224,.94);border-top:2px solid var(--ink);
  padding:13px clamp(16px,4vw,40px);flex-direction:row;flex-wrap:wrap;
  align-items:baseline;gap:6px 18px;box-shadow:0 -3px 8px rgba(43,36,25,.12)}
/* Titre : encre, bord silo, sans rotation (aligné dans la bande). */
.silo-hero .towd-archive-title{flex:none}
.silo-hero .hsticker{color:var(--ink);background:transparent;border-color:var(--silo);
  padding:8px 22px;transform:none;font-size:clamp(14px,2vw,16px)}
.silo-hero .hsticker::before{border-color:var(--silo)}
/* Résumé : encre douce, sans ombre (fond crème), prend la place restante. */
.silo-hero p{color:var(--ink-soft);text-shadow:none;font-size:13.5px;max-width:none;flex:1 1 260px}
/* Mobile : hero plus court pour que la bannière (16:9) tienne pleine largeur et
   ne rogne pas les sujets latéraux (passeport/phare) par un cover trop haut. */
@media(max-width:640px){
  .silo-hero{min-height:210px}
  .silo-hero .inner{flex-direction:column;align-items:flex-start;gap:4px;padding:11px 16px}
  /* En colonne, le flex-basis 260px du résumé (pensé pour la rangée desktop)
     s'appliquerait à la HAUTEUR et gonflerait la bande → on le neutralise. */
  .silo-hero p{font-size:12.5px;flex:none}
}

/* =========================================================================
   14.17. REFONTE HOME (VOLET UNIQUE) + BANNIÈRE SILO (v1.5.4) — append-only,
   PRIME sur §6/§7/§12/§14.15/§14.16 (source postérieure, spécificité ≥).
   Réf. contractuelles : towd-home-refonte-mockup.html + towd-silo-page-mockup.html.
   PJ1 chips collées (déjà acquis §14.15.1, préservé) · PJ2 à la une image-au-dessus
   (2 moyennes + 3 petites) · PJ3 timbres texte agrandi · PJ4 outils sans sous-titre
   (retiré côté PHP) · PJ7 volet papier unique · PJ5/PJ6 bannière silo (voiles +
   titre plein couleur, suppression du bandeau crème).
   ========================================================================= */

/* ---- 14.17.1 PJ7 — VOLET UNIQUE : un seul rectangle papier bordé, ombre décalée,
   flottant sur le beige, contenant TOUTES les sections de contenu. Hero + chips
   restent au-dessus (full-bleed) ; footer en dessous. --------------------------- */
.home-volet-wrap{padding:clamp(28px,4vw,44px) clamp(12px,3vw,24px) clamp(38px,5vw,56px)}
.home-volet{max-width:var(--wrap);margin:0 auto;background:var(--paper);border:2px solid var(--ink);
  box-shadow:9px 9px 0 rgba(43,36,25,.16);padding:clamp(20px,3vw,34px) clamp(16px,3vw,44px) clamp(26px,4vw,40px)}
/* Sections internes : plus de fond, de bordure ni de padding propres ; le rythme
   vertical vient des séparateurs internes (filet+étoile), pas des paddings section. */
.home-volet .uneK,
.home-volet .flux,
.home-volet .timbres-band,
.home-volet .tools-band,
.home-volet .author-band{background:transparent;padding:0;border:none;margin:0}
/* .wrap interne = pleine largeur du volet (le volet porte déjà max-width + padding). */
.home-volet .wrap{max-width:none;margin:0;padding:0}
/* Séparateur interne : filet+étoile pleine largeur, respiration au-dessus. */
.home-volet .towd-reliure{max-width:none;width:100%;margin:clamp(26px,3.4vw,34px) 0 0;padding:0}
.home-volet .towd-reliure__star{height:26px}
/* Labels de section : pleine largeur, marge haute réduite (le séparateur rythme). */
.home-volet .sep{max-width:none;margin:0;padding:12px 0 0}
.home-volet .uneK .sep{padding-top:0}

/* ---- 14.17.2 PJ2 — À LA UNE : toutes les cartes IMAGE-AU-DESSUS, 2 moyennes
   (rangée 1) + 3 petites (rangée 2 .row3). Section nettement plus basse. --------- */
.une{grid-template-columns:1fr 1fr;gap:18px;padding:22px 0 0;align-items:start}
.une--solo{grid-template-columns:1fr}
.une .row3{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
/* Carte : lien colonne (image en haut + corps). Blanc cassé pour ressortir sur le
   papier du volet (sinon la carte se fond). Bord encre + ombre décalée. */
.une .ufiche{flex-direction:column;background:#fffdf7;border:2px solid var(--ink);
  box-shadow:4px 4px 0 rgba(43,36,25,.16);height:auto;overflow:hidden}
.une .ufiche .uimg{width:100%;aspect-ratio:auto;flex:none;min-height:0;
  border-bottom:2px solid var(--ink);border-right:none;
  background:linear-gradient(140deg,var(--sea),var(--forest))}
.une .u-big .uimg{height:150px}
.une .u-sm .uimg{height:104px}
.une .ufiche .uimg img{width:100%;height:100%;object-fit:cover;display:block}
.une .ufb{padding:11px 14px 13px}
.une .kick{margin-bottom:7px}
.une .u-big h3{font-size:19px;line-height:1.2}
.une .u-sm h3{font-size:15px;line-height:1.22}
.une .m{margin-top:6px}

/* ---- 14.17.3 PJ3 — TIMBRES « Explorer » : texte agrandi (il restait de la marge). */
.home-volet .timbre .tb h3{font-size:22px}
.home-volet .timbre .desc{font-size:13px}
.home-volet .timbre .k{font-size:11px}
/* Léger lift de fond du timbre pour le détacher du papier du volet (bords/ombre déjà là). */
.home-volet a.timbre{background:#fbf6ea}

/* ---- 14.17.4 PJ7 (suite) — CARTES INTERNES sur blanc cassé pour contraster ------ */
.home-volet .tools-band .tgrid .tool{background:#fffdf7}
.home-volet .apass{background:#fffdf7}
.home-volet .flux .list{max-width:none;margin:18px 0 0}

/* =====================================================================
   14.17.5 PAGES SILO (category.php) — BANNIÈRE refondue : voiles haut/bas +
   titre en rectangle PLEIN couleur silo (contraste auto) + sous-titre clair sur
   voile bas. Suppression du bandeau crème §14.16b. PJ5 + PJ6. Répliqué sur les 6
   silos (couleur + image résolues par [data-silo] → --silo).
   ===================================================================== */
.silo-hero{position:relative;display:block;min-height:clamp(300px,34vw,340px);
  align-items:stretch;overflow:hidden;background-size:cover;background-position:center}
/* PJ5 : voile HAUT (fil d'Ariane lisible sur aquarelles claires). Sur l'image (z-index 1). */
.silo-hero::before{content:'';position:absolute;left:0;right:0;top:0;height:26%;z-index:1;
  background:linear-gradient(180deg,rgba(43,36,25,.42),rgba(43,36,25,0));pointer-events:none}
/* PJ6 : voile BAS (titre + sous-titre lisibles). Remplace le voile plein §14.16b. */
.silo-hero::after{content:'';position:absolute;inset:auto 0 0 0;top:auto;height:36%;z-index:1;
  background:linear-gradient(0deg,rgba(43,36,25,.55),rgba(43,36,25,0));pointer-events:none}
/* Fil d'Ariane : haut-gauche, dans la largeur de contenu, crème sur voile haut. */
.silo-hero .breadcrumb{position:absolute;top:18px;left:0;right:0;z-index:2;
  max-width:var(--wrap);margin:0 auto;padding:0 clamp(16px,4vw,44px);
  font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--paper);text-shadow:0 1px 3px rgba(43,36,25,.7)}
.silo-hero .breadcrumb a{color:var(--paper)}
/* Bloc titre+sous-titre : bas-gauche, dans la largeur de contenu, SUR la bannière
   (plus de bande crème : background/bordure/ombre annulés). */
.silo-hero .inner{position:absolute;left:0;right:0;bottom:26px;top:auto;z-index:2;
  margin:0 auto;width:auto;max-width:var(--wrap);padding:0 clamp(16px,4vw,44px);
  display:flex;flex-direction:row;align-items:flex-end;flex-wrap:wrap;gap:8px 20px;
  text-align:left;background:none;border:none;box-shadow:none}
/* Titre = rectangle PLEIN couleur silo, texte contrasté, bord encre, ombre décalée. */
.silo-hero .towd-archive-title{flex:none;margin:0;line-height:1}
.silo-hero .hsticker{display:inline-block;background:var(--silo,var(--sea));color:var(--paper);
  border:2px solid var(--ink);box-shadow:5px 5px 0 rgba(43,36,25,.35);transform:none;
  font-family:var(--sans);font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  font-size:clamp(20px,3vw,26px);padding:12px 26px}
.silo-hero .hsticker::before{content:none}
/* Contraste auto : texte ENCRE sur Camping (sun = clair) ; CRÈME sur les 5 foncés. */
.silo-hero[data-silo="camping"] .hsticker{color:var(--ink)}
/* Sous-titre = texte clair sur voile bas (pas de rectangle), léger text-shadow. */
.silo-hero p{margin:0;flex:1 1 300px;max-width:560px;padding-bottom:5px;
  font-family:var(--sans);font-size:clamp(13px,1.6vw,15px);line-height:1.4;
  color:var(--paper);text-shadow:0 1px 6px rgba(43,36,25,.85)}

/* ---- 14.17.6 Mobile du lot v1.5.4 --------------------------------------------- */
@media(max-width:820px){
  .une,.une--solo{grid-template-columns:1fr}
  .une .row3{grid-template-columns:1fr}
}
@media(max-width:640px){
  .home-volet{padding:16px 14px 22px;box-shadow:6px 6px 0 rgba(43,36,25,.16)}
  .home-volet-wrap{padding:20px 10px 34px}
  /* Bannière silo : titre/sous-titre empilés, lisibles ; voiles conservés. */
  .silo-hero{min-height:230px}
  .silo-hero .inner{flex-direction:column;align-items:flex-start;gap:10px;bottom:18px;padding:0 16px}
  .silo-hero p{flex:none;max-width:none;font-size:13px}
  .silo-hero .hsticker{font-size:19px;padding:10px 20px;box-shadow:4px 4px 0 rgba(43,36,25,.35)}
}

/* ==============================================================================
   §14.18 — SUPPRESSION BANDE BEIGE HERO → CHIPS (home) — v1.5.5 (2026-07-08)
   Append-only. Prime sur GeneratePress parent + §14.15/§14.17.

   Cause mesurée (rendu 1440px, CDP getMatchedStylesForNode) : le parent GP applique
   `.page-header,.sidebar .widget,.site-main > * {margin-bottom:20px}`. `.hero-img`
   est un enfant direct de `.site-main` → margin-bottom:20px, dont 20px de --page-bg
   (#d8c9a8) apparaissaient entre le border-bottom encre du hero et la paper de
   .silostrip. .silostrip avait déjà margin:0 (§14.15) ; seule la marge du HERO
   restait. On la met à 0 : le border-bottom encre du hero touche directement la
   paper des chips. Fixe aussi le même résidu sous le hero en mobile (chips masquées).
   Conservés : border-bottom 2px encre du hero, perforation de fermeture des chips.
   ============================================================================== */
.hero-img{margin-bottom:0}

/* ==============================================================================
   §14.19 — LOT RETOUCHES MULTI-PAGES v1.5.6 (2026-07-08). Append-only, PRIME sur
   GeneratePress parent + §6/§7/§12/§14.15/§14.16/§14.17. Réf. design :
   towd-composants-v156-mockup.html (bouton outils, titre/sous-titre silo, étoile
   TL;DR, sidebar outils, postnav). Chaque bloc = 1 item de la mission.
   ============================================================================== */

/* ---- HOME item 5 — bouton « Tous les outils » : tampon rouge plein + ombre décalée
   + léger rotate. Remplace le contour plat §14.15b (.tools-band .tools-more__btn). --- */
.tools-band .tools-more__btn{background:var(--stamp);color:var(--paper);
  border:2px solid var(--ink);box-shadow:5px 5px 0 rgba(43,36,25,.35);
  padding:13px 30px;letter-spacing:.1em;transform:rotate(-1deg);
  transition:transform .1s ease,box-shadow .1s ease,background .1s ease}
.tools-band .tools-more__btn:hover{background:#9c3025;color:var(--paper);border-color:var(--ink);
  transform:rotate(-1deg) translate(2px,2px);box-shadow:3px 3px 0 rgba(43,36,25,.35)}

/* ---- HOME item 4 — à la une : hauteur image des 2 grandes cartes 150→200px
   (les 3 petites .u-sm restent à 104px). --------------------------------------- */
.une .u-big .uimg{height:200px}

/* ==============================================================================
   PAGES SILO (category.php) — items 6/7/10. Bannière PLEINE LARGEUR + collée à la
   nav (gap 0) + contenu élargi. On réplique la neutralisation conteneur de la home
   (l.330-334) scopée body.category : #main.site-main perd son margin:20px 0 (défaut
   GP, seule cause mesurée du gap nav→bannière) et la contrainte 1200px → la bannière
   (1er enfant de #main) devient full-bleed et flush ; --wrap:1340 élargit le contenu.
   ============================================================================== */
body.category{--wrap:1340px}
body.category #page.grid-container{max-width:100%;padding:0}
body.category #content.site-content{padding:0;max-width:100%}
body.category #primary.content-area,
body.category #main.site-main{width:100%;max-width:100%;margin:0;padding:0}
body.category #main.site-main{border:none;background:transparent;box-shadow:none}
/* Bannière : full-bleed hérité de #main (largeur viewport, aucun margin) ; on garde
   le border-bottom encre. Fil d'Ariane + bloc titre restent centrés à --wrap (1340). */
body.category .silo-hero{width:100%;max-width:100%;margin:0}

/* ---- SILO item 8 — titre : ajoute rotate + letter-spacing + ombre appuyée (le
   rectangle plein couleur silo + contraste auto restent acquis §14.17.5). --------- */
.silo-hero .hsticker{transform:rotate(-1.2deg);letter-spacing:.14em;
  box-shadow:5px 5px 0 rgba(43,36,25,.4)}

/* ---- SILO item 9 — sous-titre : contraste renforcé (voile bas .55→.66, plus haut,
   + double text-shadow encre). ------------------------------------------------- */
.silo-hero::after{background:linear-gradient(0deg,rgba(43,36,25,.66),rgba(43,36,25,0));height:42%}
.silo-hero p{text-shadow:0 1px 3px rgba(43,36,25,1),0 2px 10px rgba(43,36,25,.9)}

/* ---- SILO mobile (préserve la respiration ; ombre titre un peu plus courte). ---- */
@media(max-width:640px){
  .silo-hero .hsticker{box-shadow:4px 4px 0 rgba(43,36,25,.4)}
}

/* ==============================================================================
   ARTICLE item 12 — encart TL;DR « L'essentiel » : l'étoile héritait du cadre carré
   `.entry-content img{border:2px solid --ink}` (l.617). On le retire pour l'étoile et
   on l'agrandit ~+30% (22→29px, attr PHP alignés). Asset réel towd-star.png.
   ============================================================================== */
.entry-content .towd-takeaways__star{border:none;width:29px;height:29px}
.towd-takeaways__title{gap:11px}

/* ==============================================================================
   ARTICLE item 13 — sidebar « Les outils du carnet ».
   (a) icônes colorisées par accent (bord + glyphe en currentColor — SVG passés en
       stroke:currentColor côté PHP). (b) bouton « Tous → » vers /outils/ à droite du
       titre (tampon rouge compact) : le titre + le bouton vivent dans .towd-panel__head.
   ============================================================================== */
.towd-panel__head{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid var(--ink)}
.towd-panel__head .towd-panel__title{margin:0;padding:0;border:none}
.towd-panel__all{font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--paper);background:var(--stamp);border:1.5px solid var(--ink);
  padding:5px 10px;text-decoration:none;box-shadow:2px 2px 0 var(--ink);white-space:nowrap;line-height:1;
  transition:transform .1s ease,box-shadow .1s ease,background .1s ease}
.towd-panel__all:hover{color:var(--paper);background:#9c3025;transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}
/* Icônes accentuées : bord + glyphe (le SVG hérite de color via stroke:currentColor). */
.towd-tool-list__ic--sea{border-color:var(--sea);color:var(--sea)}
.towd-tool-list__ic--sun{border-color:var(--sun);color:var(--sun)}
.towd-tool-list__ic--forest{border-color:var(--forest);color:var(--forest)}

/* ==============================================================================
   ARTICLE item 14 — postnav préc/suiv (nav.post-navigation GP, sous la bio auteur)
   → 2 fiches encadrées « carnet » : kicker rouge tampon, titre italique, ombre
   décalée, coif d'accent silo (--silo, posé par body.towd-silo-<slug>).
   ============================================================================== */
.post-navigation{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0 0;
  border:none;max-width:760px}
.post-navigation .nav-previous,
.post-navigation .nav-next{background:#fffdf7;border:2px solid var(--ink);
  border-top:4px solid var(--silo,var(--ink));box-shadow:3px 3px 0 rgba(43,36,25,.14);
  padding:14px 16px;transition:transform .1s ease,box-shadow .1s ease}
.post-navigation .nav-previous:hover,
.post-navigation .nav-next:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 rgba(43,36,25,.2)}
.post-navigation .gp-icon{display:none}                 /* flèches GP masquées (kicker les remplace) */
.post-navigation .nav-previous::before,
.post-navigation .nav-next::before{display:block;font-family:var(--sans);font-size:10px;
  font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--stamp);margin-bottom:7px}
.post-navigation .nav-previous::before{content:'‹ Article précédent'}
.post-navigation .nav-next{text-align:right}
.post-navigation .nav-next::before{content:'Article suivant ›'}
.post-navigation .nav-previous a,
.post-navigation .nav-next a{display:block;font-family:var(--serif-title);font-style:italic;
  font-weight:700;font-size:16px;line-height:1.25;color:var(--ink);text-decoration:none}
.post-navigation .nav-previous a:hover,
.post-navigation .nav-next a:hover{color:var(--stamp)}
@media(max-width:640px){
  .post-navigation{grid-template-columns:1fr;gap:12px}
  .post-navigation .nav-next,.post-navigation .nav-next::before{text-align:left}
}

/* ==============================================================================
   FOOTER item 15 — padding vertical resserré (contenu inchangé). 46/28→30/22 ;
   respiration de la ligne © réduite (36→24 / 18→16).
   ============================================================================== */
.towd-footer{padding-top:30px;padding-bottom:22px}
.towd-footer__copy{margin-top:24px;padding-top:16px}

/* =========================================================================
   15. FOND PAPYRUS GLOBAL (v1.5.7 → tuile v3 en v1.5.9) — append-only, prime sur §3
   par spécificité. SEUL fond-image du site depuis la purge v1.5.9 (le <body> ne porte
   plus AUCUNE image, cf. §2). Filigrane « carnet de voyage » posé sur la couche de fond
   global. Porteur = #page.grid-container.site (full-bleed 1440px sur home/silo ; 1200px
   centré sur article/pages standards — dans ce cas les marges au-delà de 1200px montrent
   --page-bg uni, cohérent avec la tuile). PAS <body>, PAS un conteneur de contenu.
   Spécificité (1,2,0) → bat #page.grid-container (§3, transparent) sans !important.
   --page-bg (#d8c9a8) reste la couleur de base sous la tuile ; le papyrus se superpose :
     - tuile v3 = towd-fond-papyrus-tile-v3.webp (trait sépia « carnet dessiné », taches
       de café / plis, recolorisée beige-rosé RGB≈236,219,191 ; plus contrastée que la v1) ;
     - blend NORMAL (v1.5.9, ex-multiply) → préserve le beige-rosé validé ; multiply le
       tirait vers un tan plus sombre. La tuile compose à ~38 % sous le voile .62 ;
     - voile --page-bg .62 (ex-.55) par-dessus → motifs « juste devinés » (filigrane léger) ;
     - background-size 640px (ex-560) → agrandit/espace la tuile, dilue la grille ;
     - repeat, position center → tapisse toute la surface ;
     - AUCUN background-attachment:fixed → le fond défile avec la page (illusion papier).
   Les surfaces de contenu opaques (.home-volet=--paper, .silo-frame=--paper,
   .silo-hero, header cartouche, footer=--ink, images hero) recouvrent le motif :
   le papyrus n'apparaît donc que dans les marges beige autour des contenus.
   ========================================================================= */
/* v1.5.23 : la tuile+voile est REMONTÉE sur <body> (§2) pour couvrir tout le viewport
   sur toutes les pages. .site redevient donc TRANSPARENT (comme §3) → un seul calque de
   fond, aucun liseré doublé. Bloc conservé (transparent explicite) pour neutraliser tout
   héritage et documenter le déplacement. */
#page.grid-container.site{
  background-color:transparent;
  background-image:none;
}

/* =========================================================================
   16. LOT FINITIONS DESIGN v1.5.8 (2026-07-09) — append-only, PRIME sur tout ce
   qui précède (source order + spécificité ciblée). Réf : towd-hover-lisibilite-mock.
   Items CSS : 1 hover chips · 2 ombre sous-titre hero · 3 lisibilité breadcrumb+
   sous-titre silo · 4/5 recadrage bannières camping/au-fil · 6 masque cat-links
   article · 8 volet page outils. (7/9/10 = PHP + DB, hors CSS.)
   ========================================================================= */

/* ---- HOME item 1 — HOVER CHIPS : remplissage couleur silo (--silo résolu par
   [data-silo], l.616-621). Bug d'origine : §14.15 `.silostrip .chip{background:#fff}`
   (spéc. 0,2,0) suivait ET égalait `.chip:hover` (0,2,0) → au survol le fond restait
   blanc pendant que la couleur passait en --paper (crème) = texte illisible. Fix :
   sélecteurs `.silostrip .chip:hover*` (0,3,0+ et source postérieure). Transition
   héritée du chip (.12s bg+color, l.482). Aucun changement de taille/padding → pas de
   décalage de la barre. Le texte ne devient jamais illisible. ---- */
.silostrip .chip:hover{background:var(--silo,var(--stamp));color:var(--paper);border-color:var(--ink)}
.silostrip .chip:hover .dot{background:var(--paper)}
.silostrip .chip:hover .n{background:var(--paper);color:var(--silo,var(--stamp))}
/* Exception Camping (sun = clair) : texte + puce en ENCRE, badge fond encre / texte sun. */
.silostrip .chip[data-silo="camping"]:hover{color:var(--ink)}
.silostrip .chip[data-silo="camping"]:hover .dot{background:var(--ink)}
.silostrip .chip[data-silo="camping"]:hover .n{background:var(--ink);color:var(--sun)}

/* ---- HOME item 2 — sous-titre hero : halo encre léger pour ressortir sur l'aquarelle. */
.hero-in p{text-shadow:0 1px 3px rgba(43,36,25,.7),0 0 6px rgba(43,36,25,.5)}

/* ---- SILO item 3 — lisibilité breadcrumb + sous-titre (6 silos) : contour d'ombre
   encre multi-couches (lisible même sur aquarelle très claire) + voile HAUT renforcé
   (.42→.52, pour le breadcrumb). Voile bas déjà à .66 (§14.19). ---- */
.silo-hero::before{background:linear-gradient(180deg,rgba(43,36,25,.52),rgba(43,36,25,0))}
.silo-hero .breadcrumb,
.silo-hero p{text-shadow:0 1px 2px rgba(43,36,25,.98),0 0 5px rgba(43,36,25,.75),1px 1px 0 rgba(43,36,25,.55),-1px 0 0 rgba(43,36,25,.4)}

/* ---- SILO items 4/5 — recadrage bannières (background-position par silo). L'image
   est la 1re couche de background (towd_silo_hero_bg : url,linear-gradient) → 1re
   valeur = image repositionnée, 2e = dégradé de lisibilité laissé centré. Sources
   1376×768 (~16:9) dans une bannière ~4.2:1 → `cover` ne rogne QUE verticalement
   (l'axe X est inerte) ; on règle donc l'axe Y (réglé au rendu). Camping Y=70% :
   dégage toute la tente (rognée en bas à 50%). Au fil de l'eau Y=14% : remonte le
   cadrage sur voilier + bateau (haut de l'image). ---- */
.silo-hero[data-silo="camping"]{background-position:center 70%,center}
.silo-hero[data-silo="au-fil-de-l-eau"]{background-position:center 14%,center}

/* ---- ARTICLE item 6 — masque la ligne de rappel silo (GP `.cat-links` : icône
   dossier + lien catégorie) au-dessus du bloc préc/suiv. Doublon (le silo est déjà
   porté par kicker/breadcrumb/catégorie). Scopé single ; `.post-navigation` (fiches
   carnet v1.5.6) reste intact. ---- */
body.single .cat-links{display:none}

/* ---- OUTILS item 8 — volet papier bordé (comme .home-volet) : `.outils-wrap` devient
   une carte --paper, bord encre 2px, ombre 9px décalée, centré à --wrap. max-width déjà
   posé (l.1201) → conservé (le cascade ne fait qu'ajouter les propriétés ci-dessous). --- */
.outils-wrap{background:var(--paper);border:2px solid var(--ink);
  box-shadow:9px 9px 0 rgba(43,36,25,.16);
  padding:clamp(20px,3vw,34px) clamp(16px,3vw,44px) clamp(26px,4vw,40px);
  margin:clamp(28px,4vw,44px) auto clamp(38px,5vw,56px)}
@media(max-width:640px){
  .outils-wrap{padding:18px 16px 24px;box-shadow:6px 6px 0 rgba(43,36,25,.16);margin:20px auto 34px}
}

/* ==============================================================================
   §17 — LOT FINITIONS DESIGN v1.5.10 (2026-07-09). Append-only, PRIME sur tout ce
   qui précède (source order + spécificité ciblée). 5 items : PJ1/PJ2 recadrage
   bannières · PJ3 header outils bandeau+objet · PJ5 puce chip Camping · PJ6 ombre
   sous-titre hero. Réf header : towd-outils-header-objet.html (option a).
   ============================================================================== */

/* ---- PJ5 — HOVER CHIP CAMPING : la puce (.dot) s'alignait en ENCRE (§16 l.1713) ;
   les 5 autres passent en --paper au survol. On la passe en --paper (crème) comme
   les autres. Le TEXTE Camping reste encre (remplissage sun clair → crème illisible,
   inchangé). Le badge .n (fond encre / texte sun) reste inchangé. ---- */
.silostrip .chip[data-silo="camping"]:hover .dot{background:var(--paper)}

/* ---- PJ6 — OMBRE SOUS-TITRE HERO (home) : la double couche v1.5.8 (§16 l.1717 :
   0 1px 3px .7 + 0 0 6px .5) bavait (halo saturé). Remplacée par UNE ombre douce
   diffuse unique, lisible sur l'aquarelle claire, sans contour marqué. ---- */
.hero-in p{text-shadow:0 1px 4px rgba(43,36,25,.45)}

/* ---- PJ1/PJ2 — RECADRAGE BANNIÈRES (background-position par silo, override §16).
   L'image est la 1re couche de background (towd_silo_hero_bg : url,linear-gradient)
   → 1re valeur Y = image, 2e = dégradé laissé centré. Camping : Y 70%→35% remonte le
   cadrage pour dégager le SOMMET de la tente (coupé en haut), on perd un peu
   d'avant-plan. Au fil de l'eau : Y 14%→45% descend le cadrage pour réduire le ciel
   (arrêt ~sommet du phare) et dégager eau/rochers/voilier/bateau. Réglés au rendu. ---- */
.silo-hero[data-silo="camping"]{background-position:center 50%,center}
.silo-hero[data-silo="au-fil-de-l-eau"]{background-position:center 38%,center}

/* ==============================================================================
   PJ3 — HEADER PAGE OUTILS : bandeau foncé kraft coiffant le volet --paper +
   pyramide d'icônes + titre/sous-titre à gauche, « Les outils du carnet » en
   étiquette de bagage à droite. Le corps (3 tuiles + barre proposer) passe dans
   .outils-inner (le volet .outils-wrap n'a plus de padding). Réf : option a.
   ============================================================================== */
/* Le volet perd son padding (§ item 8) : le bandeau full-bleed touche le bord encre ;
   le padding est rendu au conteneur interne .outils-inner. overflow:hidden aligne le
   bandeau sur les coins (l'ombre décalée reste hors box, non clippée). */
.outils-wrap{padding:0;overflow:hidden}
.outils-vhead{background:var(--kraft);border-bottom:2px solid var(--ink);
  padding:clamp(22px,3vw,30px) clamp(20px,4vw,40px);
  display:flex;align-items:center;justify-content:space-between;gap:24px 30px;flex-wrap:wrap}

/* GAUCHE : pyramide + titre + sous-titre */
.outils-vhead .ovh-left{display:flex;align-items:center;gap:22px;min-width:0}
.ovh-pyra{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:8px}
.ovh-pyra .ovh-row2{display:flex;gap:10px}
.ovh-ic{width:42px;height:42px;border-radius:50%;border:2px solid var(--ink);
  display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.22)}
.ovh-ic svg{width:22px;height:22px}
.ovh-ic--top{border-color:var(--sun)}   .ovh-ic--top svg{stroke:var(--sun)}
.ovh-ic--l{border-color:var(--sea)}     .ovh-ic--l svg{stroke:var(--sea)}
.ovh-ic--r{border-color:var(--forest)}  .ovh-ic--r svg{stroke:var(--forest)}
.ovh-txt{min-width:0}
.ovh-txt .ovh-title{font-family:var(--serif-title);font-style:italic;font-weight:700;
  font-size:clamp(26px,3.4vw,32px);line-height:1.1;color:var(--ink);margin:0 0 6px}
.ovh-txt .ovh-sub{font-family:var(--sans);font-size:13.5px;line-height:1.45;
  color:var(--ink-soft);max-width:420px;margin:0}

/* DROITE : « Les outils du carnet » en étiquette de bagage (option a). */
.outils-vhead .ovh-right{flex:0 0 auto}
.ovh-tag{position:relative;background:var(--stamp);border:2px solid var(--ink);border-radius:4px;
  padding:16px 24px 16px 30px;transform:rotate(3deg) scale(1.12);box-shadow:3px 3px 0 rgba(43,36,25,.25)}
.ovh-tag::before{content:'';position:absolute;left:11px;top:50%;transform:translateY(-50%);
  width:12px;height:12px;border-radius:50%;border:2px solid #fff;background:var(--paper)}
.ovh-tag b{display:block;font-family:var(--sans);font-weight:800;font-size:11px;line-height:1.4;
  letter-spacing:.14em;text-transform:uppercase;color:#fff}
.ovh-tag small{display:block;font-family:var(--serif-title);font-style:italic;font-size:15px;
  color:#fff;margin-top:2px}

/* Corps : padding rendu au conteneur interne (le volet passe padding:0 ci-dessus). */
.outils-inner{padding:clamp(24px,3vw,34px) clamp(16px,3vw,44px) clamp(26px,4vw,40px)}
.outils-inner .outils-grid{margin-top:0}

@media(max-width:640px){
  .outils-vhead{padding:18px 16px;gap:18px 20px}
  .outils-vhead .ovh-left{gap:16px}
  .ovh-right{align-self:flex-start}
  .ovh-tag{padding:12px 18px 12px 26px}
  .outils-inner{padding:20px 16px 24px}
}

/* ==============================================================================
   §19 — HERO SOUS-TITRE « PAR AVION » v1.5.12 (2026-07-09). Append-only, PRIME sur
   tout ce qui précède. Remplace le traitement brush v1.5.11 (§18 retiré, asset
   brush-red.png supprimé). Réf : towd-hero-sous-titre-serie3.html, variante G.
   Bloc papier cadré d'un liseré airmail rouge/bleu (mention PAR AVION ✈ AIR MAIL),
   texte encre lisible, légère rotation −1.2°. Markup passé de `<p>` à `<div>` à
   deux niveaux (cadre .hero-subtitle + intérieur .hero-subtitle-in) : les 3 règles
   `.hero-in p` (§14 l.545, §17) ne matchent plus le div → aucune interférence.
   box-shadow léger assumé (enveloppe posée, pas une carte/encart charte).
   inline-block borne la largeur en desktop ; à 360px le bloc reste centré, liseré
   net, aucun débordement (vérifié 360/390/414).
   ============================================================================== */
/* v1.5.18 — RETOUCHE HERO : l'airmail passe de sous-titre-en-flux (sous `.hero-in`) à
   PETIT RECTANGLE ABSOLU collé bas-centre du conteneur `.hero-img`. Il porte désormais
   la ligne-titre `<h1 class="hero-h1">` (l'ancien H1 séparé 40px est supprimé, §14). Style
   airmail prod CONSERVÉ (liseré diagonal rouge/bleu via padding + repeating-linear-gradient,
   intérieur papier plein). Différences vs v1.5.16 : DROIT (aucune rotation, contraste avec le
   sticker penché −2,5°), compact (padding 7/15, largeur = contenu), position absolue
   bottom:3% (offset parent = `.hero-img`, position:relative). Le sélecteur passe de
   `.hero-in .hero-subtitle` à `.hero-img .hero-subtitle` (l'élément est maintenant frère de
   `.hero-in`, pas enfant). ⚠ bottom:3% = ~8px @clamp mini 280px (mobile), ~10px @340px
   (desktop) : marge px variable mais toujours proche-bord sans toucher (vérifié aux 2 bornes). */
.hero-img .hero-subtitle{
  position:absolute;
  left:50%;
  bottom:3%;
  transform:translateX(-50%);      /* DROIT — aucune rotation */
  z-index:2;
  padding:6px;                     /* liseré airmail (conservé) */
  background:repeating-linear-gradient(45deg,
    #b23a2e 0 10px, #f7f0e0 10px 20px,
    #2d5f78 20px 30px, #f7f0e0 30px 40px);
  box-shadow:0 3px 8px rgba(43,36,25,.25);
}
.hero-img .hero-subtitle-in{
  background:#f7f0e0;
  padding:7px 15px;                /* compact, serré autour du texte */
  text-align:center;
}
.hero-img .hero-subtitle-in .hero-h1{   /* ligne 1 = H1 SEO, rendu ~14px serif italique */
  font:italic 700 14px/1.15 Georgia,'Times New Roman',serif;
  color:#2b2419;
  margin:0;
  max-width:none;
  letter-spacing:normal;
  text-shadow:none;
  white-space:nowrap;
}
.hero-img .hero-subtitle-pa{
  display:block;
  font:700 9px/1 "Helvetica Neue",Arial,sans-serif;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#2d5f78;
  margin-top:5px;
}
/* Très petits écrans (≤360px) : la mention PAR AVION est le seul risque de
   débordement → on resserre son letter-spacing plutôt que de la casser. */
@media(max-width:360px){
  .hero-img .hero-subtitle-pa{letter-spacing:.13em}
}

/* ==============================================================================
   §20 — HERO STICKER « stampbox » v1.5.13 (2026-07-09). Append-only, PRIME sur tout
   ce qui précède. Réf : towd-hero-ajuste.html (état cible). Remplace l'ancien
   `.hero-badge` (double cadre simulé par `::before`, non remplissable) retiré du §14.
   Structure DOM réelle à deux éléments (front-page.php) : `.stampbox` > `.stampbox-inner`
   > `.l1` + `.l2`. Rectangle EXTÉRIEUR = liseré rouge fin + fond papier (le padding
   5px laisse voir ce fond papier entre les deux cadres = liseré papier, robuste sur
   l'aquarelle maintenant que le voile est retiré). Rectangle INTÉRIEUR = rempli rouge
   plein `--stamp`, deux lignes de texte blanc. Inclinaison PRÉSERVÉE : rotate(-1.6deg)
   (valeur de l'ancien `.hero-badge`, ≠ −2° du mockup — « toujours penché comme avant »).
   text-transform:uppercase repris de l'ancien badge (le HTML garde la casse d'origine).
   ============================================================================== */
/* v1.5.19 — STICKER plus gros + remonté au sommet du Fuji. Passe de sticker-en-flux
   (centré ~49% par `.hero-img{align-items:center}` sur `.hero-in`) à RECTANGLE ABSOLU sur
   `.hero-img` (patron airmail §19). Sélecteurs `.hero-in .stampbox*` → `.hero-img .stampbox*`
   OBLIGATOIRE : hors de `.hero-in` les anciens sélecteurs ne matchaient plus (perte du
   `white-space:nowrap` → titre wrappé). Markup : `.stampbox` déplacé en enfant direct de
   `.hero-img` (frère de `.hero-in` vide + `.hero-subtitle`). Taille +~20% (l1 13→16, l2 9→11,
   inner pad 11/20→13/24, liseré 5→6) : rendu 311×89. Position desktop `top:11%` (bas du sticker
   effleure le sommet ~30%) ; le Fuji se recadre en mobile (sommet ~38%) → override `@media`
   plus bas (top:9% + taille capée). Rotation −2.5° conservée. z-index:3 (> voile / airmail). */
.hero-img .stampbox{
  position:absolute;
  left:50%;
  top:11%;
  transform:translateX(-50%) rotate(-2.5deg);   /* translate d'abord, rotation −2.5° conservée */
  z-index:3;
  display:inline-block;
  border:2px solid var(--stamp);      /* rectangle EXTÉRIEUR (liseré rouge fin) */
  background:var(--paper);            /* fond papier → liseré papier dans le padding */
  padding:6px;                        /* v1.5.19 : 5 → 6 (liseré proportionnel) */
}
.hero-img .stampbox-inner{
  border:1.5px solid var(--stamp);    /* rectangle INTÉRIEUR */
  background:var(--stamp);           /* rempli rouge plein #b23a2e */
  padding:13px 24px;                  /* v1.5.19 : 11/20 → 13/24 */
  text-transform:uppercase;
  text-align:center;                  /* v1.5.20 : centre le .l2 (le .l1 nowrap fixe la largeur) */
}
.hero-img .stampbox .l1{color:#fff;font-family:var(--sans);font-weight:700;font-size:16px;letter-spacing:.13em;white-space:nowrap;line-height:1}   /* v1.5.19 : 13 → 16 */
.hero-img .stampbox .l2{color:#fff;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.13em;margin-top:5px;line-height:1;white-space:nowrap}   /* v1.5.19 : 9 → 11 */
/* Mobile ≤600px : le Fuji se recadre (sommet plus bas ~38%) → sticker remonté à top:9% ;
   taille CAPÉE (14/10, inner 11/18) pour rester compact sans risque de largeur (268<374). */
@media(max-width:600px){
  .hero-img .stampbox{top:9%}
  .hero-img .stampbox-inner{padding:11px 18px}
  .hero-img .stampbox .l1{font-size:14px}
  .hero-img .stampbox .l2{font-size:10px}
}

/* v1.5.18 — `.hero-in h1` text-shadow retiré (orphelin : plus de H1 dans `.hero-in`). */

/* ==============================================================================
   §21 — HERO v1.5.14 (2026-07-09). Append-only, PRIME sur tout ce qui précède.
   (1) VOILE RÉINTRODUIT ATTÉNUÉ : le voile radial `.hero-in::before` retiré en v1.5.13
       (le H1 « se prépare ici. » devenait peu lisible sur le torii) est remis avec la
       MÉCANIQUE D'ORIGINE inchangée (pseudo-élément, inset:-70px -160px, z-index:-1,
       ellipse centrée derrière le texte) ; SEULE l'opacité change : pic papier .90 →
       .20 (charte teinte papier #e7dcc0 = rgba(231,220,192), pas de blanc pur) pour
       détacher le titre SANS délaver l'aquarelle (raison du retrait v1.5.13).
   (2) HAUTEUR MOBILE : diagnostic Phase 0 — aucune inflation de `min-height`/padding de
       base (padding `.hero-in`=40px inchangé depuis le home v3 ; min-height clamp floor
       280px non pilotant). Le hero mobile a grandi ~273→336px car le sous-titre est
       passé d'un paragraphe nu (`margin:0`) au bloc-enveloppe airmail (contenu VALIDÉ,
       conservé) + une marge `margin-top:22px` ajoutée en v1.5.12. On ne comprime PAS le
       contenu validé (sticker, H1 2 lignes, étiquette) ; on restaure seulement le VIDE
       vertical en mobile (padding/marge) vers la proportion compacte d'origine. Scopé
       ≤600px → desktop (validé v1.5.13) intact.
   ============================================================================== */
/* v1.5.16 — FIX visibilité : le voile n'était PAS masqué (diag CDP : z-index:-1 dans le
   stacking context de `.hero-in`[z:1] peint bien AU-DESSUS de l'image sœur `.hero-art`,
   test rouge .9 le prouve) — la cause était géométrique : `inset:-70px -160px` étalait le
   pic .28 au centre d'une ellipse géante hors cadre → wash quasi plat imperceptible.
   Correction : `inset:0` (couvre la boîte `.hero-in`, centrée sous le titre, max-width
   720px en desktop) + gradient RESSERRÉ centré 50% 40% → glow papier perceptible sous le
   H1, coins aquarelle intacts. Pic maintenu à .28 ; z-index:-1 conservé (fonctionne). */
.hero-in::before{
  content:"";
  position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(62% 48% at 50% 40%,
    rgba(231,220,192,.28) 0%, rgba(231,220,192,.16) 50%, transparent 80%);
}
@media (max-width:600px){
  .hero-in{padding-top:30px;padding-bottom:30px}      /* 40/40 → 30/30 : vide mobile restauré */
  /* v1.5.18 : règles `.hero-in h1` / `.hero-in .hero-subtitle` retirées (orphelines —
     H1 supprimé, airmail sorti de `.hero-in` en absolu §19). */
}

/* ============================================================
   §22 — CTA outil : médaillon rond illustré (V2.14) — v1.5.17
   Base `.towd-cta-tool` déjà display:flex/align-center (l.820) :
   on n'ajoute QUE le médaillon (1er enfant) + le shrink responsive.
   Pas de teinte par silo (design uniforme V2.14).
   ============================================================ */
.towd-cta-tool__medallion{
  flex:0 0 auto;width:74px;height:74px;
  border:2px solid var(--ink);border-radius:50%;
  background:var(--kraft);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;margin:0;
}
.towd-cta-tool__medallion img{
  width:100%;height:100%;max-height:100%;object-fit:contain;display:block;
}
@media (max-width:480px){
  .towd-cta-tool__medallion{width:60px;height:60px;}
  .towd-cta-tool__medallion img{width:100%;height:100%;max-height:100%;}
}

/* =========================================================================
   §24 — PAGE ARCHIVE « Toutes les pages du carnet » (page-toutes-les-pages.php,
   v1.5.25). Append-only. Réutilise les composants prod : hero (.hero-img) en
   variante courte .hero-mini, silostrip/.chip en FILTRE, fiche silo .silo-grid/.card
   en 2 colonnes, pagination .silo-body .pagination. Couleur par carte via
   [data-silo]→--silo (mapping officiel §7). Full-bleed scopé body.towd-archive
   (miroir de body.category §22). Filtre/tri/pagination 100 % query string.
   ========================================================================= */

/* ---- Full-bleed scopé (hero + silostrip pleine largeur, comme body.category) ---- */
body.towd-archive #page.grid-container{max-width:100%;padding:0}
body.towd-archive #content.site-content{padding:0;max-width:100%}
body.towd-archive #primary.content-area,
body.towd-archive #main.site-main{width:100%;max-width:100%;margin:0;padding:0}
body.towd-archive #main.site-main{border:none;background:transparent;box-shadow:none}
body.towd-archive .hero-img,
body.towd-archive .silostrip{width:100%;max-width:100%;margin:0}

/* ---- 1. HERO réduit : bande aquarelle courte, sticker recentré (pas de calage Fuji) ---- */
.hero-mini{min-height:clamp(190px,24vw,230px)}
.hero-mini .stampbox{position:static;transform:rotate(-2.5deg);margin:0}   /* recentré par le flex de .hero-img (align/justify center) */
.hero-mini .stampbox h1.l1{margin:0;padding:0}                            /* .l1 = H1 SEO → neutralise la marge h1 par défaut */
@media(max-width:600px){ .hero-mini{min-height:170px} .hero-mini .stampbox{top:auto} }

/* ---- 2. SILOSTRIP en FILTRE : visible AUSSI en mobile (l'originale est display:none <900px) ---- */
.silostrip.carnet-filter{display:block}
.carnet-filter .chip.is-active{background:var(--silo,var(--stamp));color:var(--paper)}
.carnet-filter .chip.is-active .dot{background:var(--paper)}
.carnet-filter .chip--all{border-color:var(--ink)}
.carnet-filter .chip--all .dot{background:var(--ink)}
.carnet-filter .chip--all.is-active{background:var(--ink);color:var(--paper)}
.carnet-filter .chip--all.is-active .dot{background:var(--paper)}
@media(max-width:900px){
  .silostrip.carnet-filter{display:block}
  .silostrip.carnet-filter .in{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:14px}
  .carnet-filter .chip{flex:0 0 auto}
}

/* ---- 3b. Barre tri : total « N pages » (count-stamp réutilisé) + tri ---- */
.carnet-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:26px;font-family:var(--sans);font-size:12.5px;color:var(--ink-soft)}
.carnet-toolbar .count-stamp{border:1.5px solid var(--ink);color:var(--ink);padding:3px 12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:11px;transform:rotate(1deg);background:var(--paper)}
.carnet-sort{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}
.carnet-sort .lbl{text-transform:uppercase;letter-spacing:.1em;font-size:10.5px;font-weight:700;color:var(--ink-soft)}
.carnet-sort a{font-family:var(--sans);font-size:11.5px;font-weight:700;color:var(--ink);text-decoration:none;border:1.5px solid var(--ink);padding:4px 12px;background:var(--paper)}
.carnet-sort a:hover{background:var(--kraft)}
.carnet-sort a.is-active{background:var(--ink);color:var(--paper)}

/* ---- 3. GRILLE 2 colonnes (surcharge le 3-col de .silo-grid ; carte prod inchangée) ---- */
.carnet-grid{grid-template-columns:repeat(2,1fr)}
.carnet-grid .card .cmeta{text-transform:none;font-size:11px;letter-spacing:.04em}
.carnet-grid .card .cmeta .silo{color:var(--silo,var(--stamp-blue));font-weight:800;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:640px){ .carnet-grid{grid-template-columns:1fr} }
@media(max-width:520px){ .carnet-toolbar .carnet-sort{margin-left:0} }

/* =========================================================================
   §25 — PAGES OUTILS : gabarit unifié (v1.5.28, 2026-07-12). Append-only, PRIME
   sur tout ce qui précède. Fuseau / Durée de vol / Bagage cabine : grille 2 col
   [contenu 1fr | sidebar outils 300px sticky], bandeau image, en-tête widget en
   aplat silo. Scopé par body.towd-outil (+ --sea/--sun/--forest). Les CSS/JS des
   widgets restent INTACTS : l'en-tête est recoloré par override scopé (spécificité
   body-class (0,0,2) > widget (0,0,1), sans !important).
   ========================================================================= */

/* ── Grille 2 colonnes ── */
.towd-outil-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:42px;
  align-items:start;
  max-width:var(--wrap,1120px);
  margin:0 auto;
  padding:10px 0 60px;
}
.towd-outil-main{min-width:0;}

/* Sidebar sticky : align-self:start empêche l'étirement du cell → sticky effectif ;
   la colonne s'arrête naturellement avant le footer (fin de la grille). */
.towd-outil-aside{
  min-width:0;
  position:sticky;
  top:24px;
  align-self:start;
}

/* ── Titre de page ── */
.towd-outil-head{margin:0 0 18px;}
.towd-outil-title{
  font-family:'Libre Baskerville',Georgia,serif;font-style:italic;font-weight:700;
  font-size:2rem;line-height:1.16;color:var(--ink);margin:0;
}

/* ── Bandeau image (Nano Banana), pleine largeur colonne, ~21:9, filet encre ── */
.towd-outil-banner{margin:0 0 26px;}
.towd-outil-banner img{
  display:block;width:100%;height:auto;
  aspect-ratio:1584 / 672;object-fit:cover;
  border:1.5px solid var(--ink);
}

/* ── Typo du contenu SEO — combinateur enfant DIRECT : ne touche JAMAIS les
      internes du widget (ses <p>/<h2> restent stylés par son propre CSS). ── */
.towd-outil-content{color:var(--ink);}
.towd-outil-content > p{
  font-family:Georgia,'Times New Roman',serif;font-size:1rem;line-height:1.72;
  color:var(--ink-soft);margin:0 0 1.05em;
}
.towd-outil-content > p:first-child{ /* lede sous H1 */
  font-size:1.1rem;line-height:1.66;color:var(--ink);
}
.towd-outil-content > h2{
  font-family:'Libre Baskerville',Georgia,serif;font-style:italic;font-weight:700;
  font-size:1.5rem;line-height:1.2;color:var(--ink);
  margin:1.9em 0 .5em;padding-top:.55em;border-top:1px solid var(--kraft-dk);
}
.towd-outil-content > h3{
  font-family:Georgia,serif;font-weight:700;font-size:1.1rem;color:var(--ink);
  margin:1.5em 0 .3em;
}
.towd-outil-content > ul{margin:0 0 1.2em;padding-left:1.15em;}
.towd-outil-content > ul li{
  font-family:Georgia,serif;font-size:1rem;color:var(--ink-soft);line-height:1.6;margin:.25em 0;
}
.towd-outil-content > p a,
.towd-outil-content > ul a{color:var(--stamp);text-decoration:underline;}
.towd-outil-content > p a:hover,
.towd-outil-content > ul a:hover{color:var(--ink);}
.towd-outil-content > p em{font-style:italic;color:var(--ink-soft);}

/* ── En-tête du widget → aplat silo plein (override scopé, widget CSS intact) ── */
.towd-outil--sea .towd-fz-head{background:var(--sea);}
.towd-outil--sea .towd-fz-kick{color:#fff;}
.towd-outil--sea .towd-fz-star{filter:brightness(0) invert(1);}
/* Soleil #e0992f trop clair pour du blanc lisible (~2,3:1) → texte encre, cohérent
   avec la règle charte « camping (sun) = encre ». Étoile laissée en encre. */
.towd-outil--sun .towd-dv-head{background:var(--sun);}
.towd-outil--sun .towd-dv-kick{color:var(--ink);}
.towd-outil--forest .towd-bc-head{background:var(--forest);}
.towd-outil--forest .towd-bc-kicker{color:#fff;}
.towd-outil--forest .towd-bc-title{color:#fff;}

/* ── Panneau « Les outils du carnet » ── */
.towd-opanel{
  background:var(--paper);border:1.5px solid var(--ink);
  padding:20px 20px 22px;margin:0 0 22px;
}
.towd-opanel__kick{
  display:block;font-family:'Helvetica Neue',Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;font-weight:700;
  color:var(--stamp-blue);margin:0 0 4px;
}
.towd-opanel__title{
  font-family:'Libre Baskerville',Georgia,serif;font-style:italic;font-weight:700;
  font-size:1.24rem;color:var(--ink);margin:0 0 14px;line-height:1.15;
}
.towd-otool-list{list-style:none;margin:0 0 16px;padding:0;}
.towd-otool{
  display:flex;gap:11px;align-items:flex-start;
  padding:11px 0;border-top:1px solid var(--kraft-dk);
}
.towd-otool:first-child{border-top:0;padding-top:2px;}
.towd-otool[data-accent="sea"]{--oaccent:var(--sea);}
.towd-otool[data-accent="sun"]{--oaccent:var(--sun);}
.towd-otool[data-accent="forest"]{--oaccent:var(--forest);}
.towd-otool__ic{
  flex:0 0 auto;width:34px;height:34px;
  border:1.5px solid var(--oaccent);color:var(--oaccent);
  background:var(--paper);display:flex;align-items:center;justify-content:center;
}
.towd-otool__ic svg{width:19px;height:19px;stroke:currentColor;fill:none;}
.towd-otool__b{min-width:0;display:flex;flex-direction:column;gap:1px;}
.towd-otool__k{
  font-family:'Helvetica Neue',Arial,sans-serif;text-transform:uppercase;
  letter-spacing:.1em;font-size:.6rem;font-weight:700;color:var(--oaccent);
}
.towd-otool__name{
  font-family:Georgia,serif;font-size:.95rem;font-weight:700;color:var(--ink);
  line-height:1.25;text-decoration:none;
}
a.towd-otool__name:hover{color:var(--stamp);text-decoration:underline;}
.towd-otool.is-here{opacity:.6;}
.towd-otool.is-here .towd-otool__name{color:var(--ink-soft);}
.towd-otool__here{
  display:inline-block;font-family:'Helvetica Neue',Arial,sans-serif;
  font-size:.56rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  color:var(--stamp);margin-top:3px;
}

/* CTA rouge « Proposer un outil » (→ contact, même formulaire que /outils/) */
.towd-opanel__cta{
  display:block;text-align:center;background:var(--stamp);color:#fff;
  font-family:'Helvetica Neue',Arial,sans-serif;text-transform:uppercase;
  letter-spacing:.08em;font-size:.72rem;font-weight:700;
  padding:11px 14px;text-decoration:none;border:1.5px solid var(--ink);
}
.towd-opanel__cta:hover{background:var(--ink);color:#fff;}

/* ── Bloc « À lire dans le carnet » ── */
.towd-oread{background:var(--paper);border:1.5px solid var(--ink);padding:18px 18px 20px;}
.towd-oread__title{
  font-family:'Libre Baskerville',Georgia,serif;font-style:italic;font-weight:700;
  font-size:1.1rem;color:var(--ink);margin:0 0 13px;
}
.towd-oread__list{display:flex;flex-direction:column;gap:13px;}
.towd-oread__card{display:flex;gap:11px;align-items:center;text-decoration:none;}
.towd-oread__img{
  flex:0 0 auto;width:66px;height:50px;overflow:hidden;
  border:1px solid var(--ink);background:var(--kraft);
}
.towd-oread__img img{width:100%;height:100%;object-fit:cover;display:block;}
.towd-oread__ph{display:block;width:100%;height:100%;
  background:linear-gradient(135deg,var(--kraft),var(--kraft-dk));}
.towd-oread__b{min-width:0;display:flex;flex-direction:column;gap:2px;}
.towd-oread__k{
  font-family:'Helvetica Neue',Arial,sans-serif;text-transform:uppercase;
  letter-spacing:.08em;font-size:.58rem;font-weight:700;color:var(--stamp-blue);
}
.towd-oread__h{font-family:Georgia,serif;font-size:.86rem;line-height:1.26;color:var(--ink);}
.towd-oread__card:hover .towd-oread__h{color:var(--stamp);text-decoration:underline;}

/* ── Responsive : la sidebar passe sous le contenu (empilement), sticky off ── */
@media (max-width:900px){
  .towd-outil-layout{grid-template-columns:1fr;gap:34px;}
  .towd-outil-aside{position:static;top:auto;}
}
@media (max-width:600px){
  .towd-outil-title{font-size:1.62rem;}
  .towd-outil-content > h2{font-size:1.3rem;}
  .towd-outil-content > p:first-child{font-size:1.05rem;}
}

/* ---- v1.5.30 (2026-07-12) — HERO SILO CAMPING recadrage Y (override §PJ1/PJ2 l.1957).
   Remonte le cadrage 50%→68% pour révéler davantage la tente (bas de la bannière).
   Append-only ; override par ordre de cascade. ---- */
.silo-hero[data-silo="camping"]{background-position:center 68%,center}

/* ---- v1.5.30 (2026-07-12) — HERO SILO CAMPING recadrage Y (override §PJ1/PJ2 l.1957).
   Remonte le cadrage 50%->62% pour reveler davantage la tente (bas de la banniere).
   Append-only ; override par ordre de cascade. ---- */
.silo-hero[data-silo="camping"]{background-position:center 62%,center}

/* ---- v1.5.31 (2026-07-12) — PAGE CONTACT permutation fonds (override l.1208/1213).
   Fond de page .contact-wrap kraft->paper (ne se confond plus avec le .contact-hero
   kraft) ; carte .postcard paper->kraft (ressort sur le fond clair, cohérente avec
   l en-tete). Append-only ; override par ordre de cascade. ---- */
.contact-wrap{background:var(--paper)}
.postcard{background:var(--kraft)}

/* ---- v1.5.32 (2026-07-12) — PAGE CONTACT carte postale eclaircie (override l.1213/v1.5.31).
   .postcard kraft plein -> ton intermediaire kraft/paper (#ede2c8) : moins soutenu,
   reste distinct du fond .contact-wrap paper. Append-only. ---- */
.postcard{background:#ede2c8}

/* =========================================================================
   §26 — REFONTE BLOC OUTILS (v1.5.33, 2026-07-13). Append-only, PRIME sur §25.
   (1) Carte « fiche article » enveloppant la colonne gauche (pages outils +
   pages compagnies). (2) Compactage des espacements §25. (3) Volet compagnies
   (.towd-ocomp) en colonne droite, esprit .towd-opanel. (4) Recolor silo de
   l'en-tête widget unifié (nouvelles classes titre/kicker). Colonne droite
   existante (panneau outils / à lire) INTACTE.
   ========================================================================= */

/* ── (1) Carte fiche article : titre + bandeau + contenu + widget dans un seul
      rectangle papier bordé encre. Zéro radius, zéro ombre (charte v3). ── */
.towd-outil-card{
  background:var(--paper);
  border:1.5px solid var(--ink);
  padding:clamp(22px,3vw,40px);
}

/* ── (2) Compactage : la carte porte désormais la respiration, on resserre la
      grille et les marges internes du contenu. ── */
.towd-outil-layout{gap:34px;padding:10px 0 44px;}
.towd-outil-head{margin:0 0 14px;}
.towd-outil-banner{margin:0 0 20px;}
.towd-outil-content > h2{margin:1.4em 0 .45em;}
.towd-outil-content > p:first-child{margin-bottom:1.05em;}

/* Widget centré dans la carte (les widgets à largeur bridée restent au milieu). */
.towd-outil-card .towd-fz,
.towd-outil-card .towd-dv,
.towd-outil-card .towd-bc{margin-left:auto;margin-right:auto;}

/* ── (3) Volet compagnies — colonne droite, décalqué .towd-opanel. ── */
.towd-ocomp{
  background:var(--paper);border:1.5px solid var(--ink);
  padding:18px 18px 20px;margin:0 0 22px;
}
.towd-ocomp__kick{
  display:block;font-family:'Helvetica Neue',Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;font-weight:700;
  color:var(--stamp-blue);margin:0 0 3px;
}
.towd-ocomp__title{
  font-family:'Libre Baskerville',Georgia,serif;font-style:italic;font-weight:700;
  font-size:1.14rem;color:var(--ink);margin:0 0 12px;line-height:1.15;
}
.towd-ocomp__list{list-style:none;margin:0;padding:0;}
.towd-ocomp__item{padding:9px 0;border-top:1px solid var(--kraft-dk);}
.towd-ocomp__item:first-child{border-top:0;padding-top:2px;}
.towd-ocomp__name{
  font-family:Georgia,serif;font-size:.95rem;font-weight:700;color:var(--ink);
  text-decoration:none;line-height:1.25;
}
a.towd-ocomp__name:hover{color:var(--stamp);text-decoration:underline;}
.towd-ocomp__item.is-here{opacity:.6;}
.towd-ocomp__item.is-here .towd-ocomp__name{color:var(--ink-soft);}
.towd-ocomp__here{
  display:block;font-family:'Helvetica Neue',Arial,sans-serif;
  font-size:.56rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  color:var(--stamp);margin-top:3px;
}

/* ── (4) En-tête widget unifié (modèle bagage) : recolor silo des NOUVELLES
      classes de Fuseau (sea) et Durée (sun). Le fond de cartouche reste posé par
      les règles §25 (.towd-fz-head/.towd-dv-head) ; on ne recolore ici que les
      kicker + titre nouvellement introduits. Sun (#e0992f) trop clair → texte
      encre (règle charte camping=encre), Sea → texte blanc. ── */
.towd-outil--sea .towd-fz-kicker,
.towd-outil--sea .towd-fz-title{color:#fff;}
.towd-outil--sun .towd-dv-kicker,
.towd-outil--sun .towd-dv-title{color:var(--ink);}

/* Responsive : la carte reste confortable, la grille passe déjà en 1 col (§25). */
@media (max-width:600px){
  .towd-outil-card{padding:18px 16px 22px;}
}

/* =========================================================================
   §27 — RETOUCHES OUTILS (v1.5.34, 2026-07-13). Append-only, PRIME sur §26/§25.
   Fixes visuels post-refonte + affordance volet. Le coin valise du header bagage
   vit dans bagage-cabine.css (.towd-bc-corner). Scopé body.towd-outil.
   ========================================================================= */

/* (1) Bouton d'inversion des villes/aéroports : glyphe ⇄ centré (manquait le flex). */
.towd-fz-swap,
.towd-dv-swap{display:flex;align-items:center;justify-content:center;line-height:1;}

/* (2) Puce ● bleue devant la note « calculé en direct » retirée (c'est un caractère
      dans un span, pas un list-style). Le texte de la note est conservé. */
.towd-fz-note-lock,
.towd-dv-note-lock{display:none;}

/* (3+4) Médaillons du header agrandis (54→58) pour la présence, + filtre contraste
      sur la valise (asset clair/creux, peu lisible à petite taille). Scopé body-class
      (0,2,0) > widget (0,1,0) → gagne sans !important. */
.towd-outil .towd-fz-head__stamp,
.towd-outil .towd-dv-head__stamp,
.towd-outil .towd-bc-head__stamp{width:58px;height:58px;}
.towd-outil .towd-fz-head__stamp img,
.towd-outil .towd-dv-head__stamp img,
.towd-outil .towd-bc-head__stamp img{width:50px;height:50px;}
.towd-outil .towd-bc-head__stamp img{filter:contrast(1.35) brightness(.86);}

/* (5) Volet « Compagnies populaires » : rangée entière cliquable + chevron + hover
      (invite au clic). Charte v3 : 0 radius, 0 ombre douce. Réécrit la présentation
      §26 des items (structure .towd-ocomp__link introduite en v1.5.34). */
.towd-ocomp__item{padding:0;border-top:1px solid var(--kraft-dk);}
.towd-ocomp__item:first-child{border-top:0;}
.towd-ocomp__link{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:11px 8px 11px 10px;text-decoration:none;
  border-left:3px solid transparent;
}
.towd-ocomp__link:hover{background:var(--kraft);border-left-color:var(--stamp);}
.towd-ocomp__name{
  font-family:Georgia,serif;font-size:.95rem;font-weight:700;color:var(--ink);
  line-height:1.25;
}
a.towd-ocomp__link:hover .towd-ocomp__name{color:var(--stamp);}
.towd-ocomp__chev{
  flex:0 0 auto;font-family:Georgia,serif;font-size:1.2rem;line-height:1;
  color:var(--stamp);
}
.towd-ocomp__item.is-here .towd-ocomp__link{opacity:.6;flex-direction:column;align-items:flex-start;gap:1px;cursor:default;}
.towd-ocomp__item.is-here .towd-ocomp__name{color:var(--ink-soft);}

/* (6) Bloc affilié valises dormant masqué (markup + slot conservés → réactivable
      Vague 3 en retirant cette règle). */
.towd-bc-affil{display:none;}

/* (7) Pages compagnies : lien retour pilier « ← Toutes les compagnies » rendu en
      bouton tampon centré sous le tableau. Cible l'ancre exacte du contenu. */
.towd-compagnie .towd-outil-content a[href="/outils/bagage-cabine/"]{
  display:block;width:max-content;max-width:100%;margin:2em auto;
  background:var(--stamp);color:#fff;
  font-family:'Helvetica Neue',Arial,sans-serif;font-size:.78rem;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;text-align:center;
  padding:12px 22px;border:1.5px solid var(--ink);text-decoration:none;
}
.towd-compagnie .towd-outil-content a[href="/outils/bagage-cabine/"]:hover{
  background:var(--ink);color:#fff;
}

/* ---- v1.5.35 (2026-07-12) — ENCART CHECKLIST refonte "bordereau perforé + tampon"
   (§28, override du §17 l.918-922). Le markup généré (aside.towd-callout.towd-checklist
   > p.__label > span.__icon + ul.__list) est INCHANGÉ ; tout passe en CSS → rétroactif
   sur tous les articles. Signature : perforation bord gauche + cases tracées main cochées
   rouge + tampon "Prêt" (span.__icon recyclé en médaillon SVG). Append-only. ---- */
.towd-checklist{
  background:var(--paper);
  border:1.5px solid var(--ink);
  box-shadow:none;
  padding:22px 26px 24px 40px;
  position:relative;
}
.towd-checklist::before{
  content:"";position:absolute;left:-6px;top:14px;bottom:14px;width:12px;
  background-image:radial-gradient(circle 4px at 6px 6px,#d8c9a8 0 4px,transparent 4.5px);
  background-size:12px 20px;background-repeat:repeat-y;
}
.towd-checklist .towd-callout__label{align-items:center;gap:14px}
.towd-checklist .towd-callout__icon{
  width:76px;height:52px;flex:none;transform:rotate(-8deg);
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2076%2052'%3E%3Crect%20x%3D'3'%20y%3D'3'%20width%3D'70'%20height%3D'46'%20rx%3D'6'%20fill%3D'none'%20stroke%3D'%23b23a2e'%20stroke-width%3D'2.6'%2F%3E%3Ctext%20x%3D'38'%20y%3D'26'%20text-anchor%3D'middle'%20font-family%3D'Helvetica%2CArial%2Csans-serif'%20font-size%3D'15'%20font-weight%3D'800'%20letter-spacing%3D'1.5'%20fill%3D'%23b23a2e'%3EPR%C3%8AT%3C%2Ftext%3E%3Ctext%20x%3D'38'%20y%3D'39'%20text-anchor%3D'middle'%20font-family%3D'Helvetica%2CArial%2Csans-serif'%20font-size%3D'6.5'%20font-weight%3D'700'%20letter-spacing%3D'1.8'%20fill%3D'%23b23a2e'%3ETOWD%20%C2%B7%20SAC%3C%2Ftext%3E%3C%2Fsvg%3E");
  background-repeat:no-repeat;background-position:center;background-size:contain;
  opacity:.9;
}
.towd-checklist__list{list-style:none;margin:0;padding:0}
.towd-checklist__list li{
  position:relative;padding:0 0 0 30px;margin:0;
  font-family:var(--serif);font-size:1rem;line-height:1;height:36px;
  display:flex;align-items:center;border-bottom:1px solid var(--kraft-dk);
}
.towd-checklist__list li:first-child{border-top:1px solid var(--kraft-dk)}
.towd-checklist__list li:last-child{margin:0}
.towd-checklist__list li::before{
  content:"";position:absolute;left:2px;top:50%;transform:translateY(-50%);
  width:16px;height:16px;background-repeat:no-repeat;background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2018%2018'%3E%3Cpath%20d%3D'M2.5%2C2.2%20L15.6%2C1.8%20L15.4%2C15.7%20L2.2%2C15.5%20Z'%20fill%3D'none'%20stroke%3D'%232b2419'%20stroke-width%3D'1.4'%20stroke-linejoin%3D'round'%2F%3E%3Cpath%20d%3D'M4.5%2C9%20L7.8%2C12.6%20L14%2C4.2'%20fill%3D'none'%20stroke%3D'%23b23a2e'%20stroke-width%3D'2'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%2F%3E%3C%2Fsvg%3E");
}

/* =========================================================================
   §29 — v1.5.36 (2026-07-18) — ENCART COMPARE refonte « billet / titre de
   transport perforé » (override du §9 l.925-932 ; dernier encart resté v2).
   Markup pipeline (aside.towd-compare > p.__label + table thead/tbody) INCHANGÉ ;
   tout passe en CSS → rétroactif sur tous les comparatifs. Annule le header vert
   --forest + l'icône verte deux-rectangles v2, supprime le zébrage. Signature :
   bord perforé gauche (repris §28) + en-têtes options serif italique + label
   rouge tampon (picto billet) + déchirure pointillée entre les 2 coupons.
   Header en --ink (aucun --forest). Append-only, PRIME sur §9.
   ========================================================================= */
.towd-compare{padding-left:16px}
.towd-compare::before{
  content:"";position:absolute;left:-6px;top:14px;bottom:14px;width:12px;
  background-image:radial-gradient(circle 4px at 6px 6px,var(--page-bg) 0 4px,transparent 4.5px);
  background-size:12px 20px;background-repeat:repeat-y;
}
.towd-compare .towd-callout__label{color:var(--stamp);border-bottom:1.5px dashed var(--kraft-dk)}
.towd-compare .towd-callout__icon{width:22px;height:14px;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2022%2014'%3E%3Cpath%20d='M1.5%2C2%20H20.5%20V5%20a1.6%2C1.6%200%200%200%200%2C4%20V12%20H1.5%20V9%20a1.6%2C1.6%200%200%200%200%2C-4%20Z'%20fill='none'%20stroke='%23b23a2e'%20stroke-width='1.3'%2F%3E%3Cline%20x1='11'%20y1='2.6'%20x2='11'%20y2='11.4'%20stroke='%23b23a2e'%20stroke-width='1.1'%20stroke-dasharray='1.4%201.4'%2F%3E%3C%2Fsvg%3E")}
/* en-têtes options = mention imprimée du billet : serif italique, header --ink */
.towd-compare thead th{background:transparent;border-color:var(--ink);font-family:var(--serif-title);font-style:italic;font-weight:700;font-size:1rem;color:var(--ink);text-align:center;padding:12px 14px;border-bottom:2px solid var(--ink)}
.towd-compare thead th:first-child{border:none}
/* libellés de champ (Prix/Durée/Arrivée) = intitulés de billet, petites capitales */
.towd-compare tbody th{font-family:var(--sans);font-weight:700;font-size:.64rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-soft);border-color:var(--kraft-dk);border-left:none;background:var(--paper)}
.towd-compare tbody td{font-family:var(--serif);font-size:1rem;color:var(--ink);text-align:center;border-color:var(--kraft-dk)}
.towd-compare tbody td:last-child{border-right:none}
/* déchirure : filet pointillé vertical entre les 2 coupons */
.towd-compare thead th:nth-child(2),
.towd-compare tbody td:nth-child(2){border-right:1.5px dashed var(--kraft-dk)}
/* dernière ligne sans filet bas + suppression du zébrage v2 */
.towd-compare tbody tr:last-child th,
.towd-compare tbody tr:last-child td{border-bottom:none}
.towd-compare tbody tr:nth-child(even){background:transparent}
/* mobile : 3 colonnes tenues, casse 390px, libellés FR non écrasés */
@media(max-width:430px){
  .towd-compare th,.towd-compare td{padding:8px;font-size:.8rem}
  .towd-compare thead th{font-size:.86rem;white-space:normal}
  .towd-compare tbody th{font-size:.6rem;letter-spacing:.05em}
}
@media(max-width:390px){
  .towd-compare th,.towd-compare td{padding:7px 6px;font-size:.75rem}
  .towd-compare .towd-callout__label{padding:11px 12px}
  .towd-compare tbody th{font-size:.58rem}
}

/* =========================================================================
   §30 — v1.5.37 (2026-07-27) — CRÉDIT D'ATTRIBUTION IMAGE. Append-only.
   Rendu par functions.php (towd_img_credit_html), deux emplacements :
     .towd-img-credit--featured  → <span>, sous la featured de l'article
     .towd-img-credit--inline    → <figcaption>, dans les figures .article-image
   N'apparaît QUE si _towd_img_license exige l'attribution (CC BY *, CC BY-SA *).
   Charte v3 : Helvetica ~11,5 px, --ink-soft, aligné à droite, liens --stamp
   sans soulignement permanent, zéro border-radius, zéro box-shadow.
   Le plafond 480 px des infographies (§ « Infographies 4:5 ») est préservé :
   le figcaption vit DANS la figure, donc sous le même max-width.
   ========================================================================= */
.towd-img-credit {
  display: block;
  margin-top: 6px;
  font-family: var(--sans);
  font-size: .72rem;
  line-height: 1.45;
  letter-spacing: .01em;
  color: var(--ink-soft);
  text-align: right;
  font-style: normal;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.towd-img-credit a {
  color: var(--stamp);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.towd-img-credit a:hover,
.towd-img-credit a:focus {
  border-bottom-color: var(--stamp);
}
/* Featured : le <span> suit l'<img> dans .featured-image, il doit passer en bloc. */
.featured-image .towd-img-credit--featured {
  margin-top: 6px;
}
/* Figures pipeline : neutralise un éventuel centrage de légende hérité de GP. */
.entry-content figure.article-image > figcaption.towd-img-credit--inline {
  margin-top: 6px;
  text-align: right;
  font-size: .72rem;
  color: var(--ink-soft);
}
@media (max-width: 480px) {
  .towd-img-credit { font-size: .68rem; }
}

/* =========================================================================
   §31 — v1.5.38 (2026-07-27) — CRÉDIT IMAGE : garantie « une seule ligne ».
   Append-only, PRIME sur §30.
   Premier rideau (functions.php) : le titre de l'œuvre est retiré du format,
   qui devient « Photo : {auteur} · {licence} » — court par construction.
   Second rideau (ici) : même un nom d'auteur anormalement long ne doit jamais
   déborder de la largeur de l'image. nowrap + overflow caché sur le conteneur.
   text-align:right conservé du §30.
   Note : l'ellipse n'est PAS utilisée comme remède au titre long (elle ne
   garantit pas ce qui saute et pourrait manger la licence) ; elle n'est ici
   qu'un dernier recours cosmétique sur le seul nom d'auteur.
   ========================================================================= */
.towd-img-credit {
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Le conteneur de la featured borne la ligne sur la largeur réelle de l'image. */
.featured-image .towd-img-credit--featured {
  display: block;
  max-width: 100%;
}
.entry-content figure.article-image > figcaption.towd-img-credit--inline {
  max-width: 100%;
}

/* =========================================================================
   §32 — v1.5.39 (2026-07-29) — IMAGES TRÈS ALLONGÉES : PLANCHER DE HAUTEUR
   D'AFFICHAGE. Append-only, arrive en dernier → prime à spécificité égale.

   PROBLÈME. Wikimedia Commons sert régulièrement des panoramiques (mesurés :
   1920×527 = 3,64:1 et 1920×622 = 3,09:1). En featured pleine colonne ils
   rendent une bande de 202 px de haut en desktop et 89 px en mobile : le sujet
   n'est plus lisible. Le corpus towd plafonne sinon à 1,79:1 (standard pipeline
   1376×768) — la bande de ratios ]1,79 ; 3,09[ est vide.

   PRINCIPE. On ne teste PAS le ratio (le CSS ne sait pas le faire) : on pose un
   PLANCHER DE HAUTEUR D'AFFICHAGE. Le défaut d'un panoramique est d'être trop
   COURT, pas trop large — un min-height ne s'active donc que sous le plancher,
   c'est-à-dire exactement sur les trop allongées, et reste strictement no-op
   sur tout le reste. La sélectivité est intrinsèque : aucune liste de classes
   à maintenir. Le fichier n'est JAMAIS touché — cadrage à l'écran uniquement,
   donc pas d'œuvre dérivée sur les CC BY-SA, et _towd_img_modified reste à 0
   à juste titre (le crédit n'affiche pas « · recadrée »).

   SEUILS EFFECTIFS. Colonnes mesurées : 736 px desktop, 326 px mobile.
     desktop min-height 300px → se déclenche au-delà du ratio 2,45
     mobile  min-height 160px → se déclenche au-delà du ratio 2,04
   Le plancher mobile reste sous les 182 px du gabarit standard 1,79 : marge
   mince mais mesurée, le standard n'est jamais rogné.

   GARDE [srcset]. Sans elle, une image plus étroite que la colonne (200 px de
   côté) serait étirée à 300 px de haut puis recadrée en upscale. WordPress ne
   génère pas de srcset sous 300 px de large : l'attribut sert donc de garde
   « image assez grande pour remplir la colonne ». Garde partielle et assumée —
   elle ferme le cas dégénéré, pas un hypothétique 500×140. Un test exact sur
   la largeur intrinsèque n'est pas exprimable en CSS. Les seuls extensions
   actives (GenerateBlocks, Rank Math) ne touchent pas au srcset ; s'il venait
   à disparaître globalement, la perte des variantes responsive serait un
   symptôme bien plus visible que l'extinction de cette règle.

   HORS PORTÉE PAR CONSTRUCTION (vérifié, inchangé au pixel) :
     · infographies 4:5 — exclues par :not(--infographic) ET par géométrie
       (portrait, plus hautes que le plancher) ; leur plafond 480 px est intact ;
     · bandeau outil 21:9 (.towd-outil-banner) et médaillons :::tool — hors des
       deux sélecteurs ;
     · vignettes home / silo / « à la une » / articles liés — .featured-image
       n'existe que sur l'article seul, et ces vignettes cadrent déjà par
       aspect-ratio + object-fit:cover ;
     · crédit d'attribution (§30/§31) — le <span>/<figcaption> est un FRÈRE de
       l'<img>, jamais atteint : il reste sous l'image, sur une ligne, à droite.
   Charte v3 : zéro border-radius, zéro box-shadow. Le border 2px --ink des
   images de corps suit la boîte recadrée.
   ========================================================================= */
.featured-image img.wp-post-image[srcset],
.entry-content figure.article-image:not(.article-image--infographic) img[srcset] {
  min-height: 300px;
  object-fit: cover;
  object-position: center;
}
@media (max-width: 768px) {
  .featured-image img.wp-post-image[srcset],
  .entry-content figure.article-image:not(.article-image--infographic) img[srcset] {
    min-height: 160px;
  }
}

/* RÉSERVE — ancrage du cadrage, RÉDIGÉE ET NON POSÉE (arbitrage 28/07 : option
   a, centrage accepté). object-position:center est aveugle au sujet : si un
   panoramique réel se fait couper l'essentiel, décommenter et poser la classe
   sur la <figure> (interne) ou sur .featured-image (featured). Ne pas activer
   par anticipation — une classe non utilisée est une règle non contrôlée.
.towd-img-anchor--left  img { object-position: left center; }
.towd-img-anchor--right img { object-position: right center; }
.towd-img-anchor--top   img { object-position: center top; }
*/

/* =========================================================================
   §33 — v1.5.42 (2026-07-29) — LOT PRÉ-LEVÉE DU 503. Append-only, arrive en
   dernier → prime à spécificité égale. Source : rapport-audit-desktop-mobile.md
   du 29/07, §7 (arbitrage). Cinq points : A4, A3, A1, B2, B1.

   Rien ici ne modifie une règle antérieure en place : tout est ajouté en fin de
   fichier. Les lignes d'origine citées (789, 1207, 1341-1342, 1472-1474) restent
   physiquement intactes ; elles sont surchargées, pas réécrites.
   ========================================================================= */

/* ---- A4 — CHAMPS DE SAISIE À 16 px MINIMUM -------------------------------
   Sous 16 px, Safari iOS zoome à la prise de focus et le visiteur doit dézoomer
   entre chaque champ. Seul le formulaire de contact était concerné : mesuré sur
   81 champs de saisie du site, 4 étaient sous le seuil (les 3 champs réels + le
   pot de miel), tous à 15 px via `.pc-left input,.pc-left textarea` (l.789).
   Les trois calculateurs sont DÉJÀ au-dessus (fz-input 19,2 px, dv-input 18,4 px,
   bc-select 16 px, dv-hour 24-30,4 px) et ne sont pas touchés — leur largeur est
   contrainte, y toucher aurait été le seul vrai risque de casse.
   Les champs de recherche (GeneratePress, 17 px) étaient déjà conformes. */
.pc-left input,
.pc-left textarea {
  font-size: 16px;
}

/* ---- A3 — L'ILLUSTRATION DÉCORATIVE NE BARRE PLUS LE TITRE (≤ 430 px) ----
   Sous 400 px le titre du bandeau passe sur deux lignes et court sous l'avion
   (ou la valise) posé en absolu : le fuselage traversait « entre » dans
   « Décalage horaire entre deux villes ».

   Pourquoi masquer et non réduire — c'est mesuré, pas supposé. Le recouvrement
   entre l'illustration et les rects de ligne du titre a été relevé sur trois
   jeux de valeurs : 62 px à l'état live, 41 px à 78 px de large, 28 px à 70 px.
   Il ne tombe jamais à zéro : le bandeau ne fait que 93 px de haut à cette
   largeur et le titre occupe toute la colonne, la géométrie ne laisse pas de
   place. Passer l'illustration DERRIÈRE la bande (z-index) rend exactement la
   même image — la bande est opaque, l'avion disparaît entièrement — tout en
   conservant le débordement. Le masquage sous seuil est donc la seule des trois
   options de la mission qui atteigne le résultat.

   Effet de bord assumé et vérifié : ferme aussi C3 (débordement de 3 à 7 px
   absorbé par overflow-x:hidden — le document passait à 397/393 px pour une
   fenêtre de 390). Il n'était pas visé.

   Les illustrations restent intactes à 431 px et au-delà : à 768 et 1440 le
   widget fait 640 px fixes, le titre tient sur une ligne et passe au large. */
@media (max-width: 430px) {
  .towd-fz-plane,
  .towd-dv-plane,
  .towd-bc-corner {
    display: none;
  }
}

/* ---- A1 — « À LA UNE » : LES DEUX RANGÉES AU MÊME TRAITEMENT --------------
   `.une .u-sm .uimg` était figée à 104 px (l.1207) quand les grandes sont
   passées à 200 px (l.1315, dont le commentaire assume « les 3 petites restent
   à 104px »). Une hauteur en pixels ne suit pas la largeur de la carte : à
   768 px la grille passe en une colonne, la carte fait 668 px de large et
   l'image reste à 104 → bandeau de 6,42:1, sujet détruit (la tête du grimpeur
   de la via ferrata sortait du cadre).

   Correction : les petites prennent la hauteur des grandes. Les grandes ne
   bougent pas d'un pixel à aucune largeur — la valeur 200 px est celle qui est
   déjà en vigueur, réécrite ici uniquement pour rendre l'intention lisible.
   Ratios obtenus / avant :
     1440  petites 2,00:1 (3,85)   grandes 3,06:1 (inchangé)
      768  petites 3,34:1 (6,42)   grandes 3,34:1 (inchangé)
      390  petites 1,67:1 (3,21)   grandes 1,67:1 (inchangé)
   Un aspect-ratio uniforme (16/7 ou 16/9) a été mesuré aussi : il aplatit les
   GRANDES cartes à 390 px (1,67 → 2,29) — régression — et rallonge la page de
   1 166 px à 768. Écarté. */
.une .u-big .uimg,
.une .u-sm .uimg {
  height: 200px;
}

/* ---- B2 — LISIBILITÉ DU TEXTE DES HEROS SILO -----------------------------
   Texte crème sur aquarelle claire à marges crème, sur les six rubriques.
   Mesure au pire pixel du fond réellement sous les glyphes (p98 de luminance,
   pas la moyenne de bande) : 36 mesures sur 36 sous le seuil de 4,5, de 1,46
   à 3,60.

   CE BLOC NE S'EMPILE PAS SUR LES PRÉCÉDENTS, IL LES REMPLACE. Le fichier
   portait déjà DEUX tentatives sur ce même défaut :
     · §14.19 item 9 (l.1341-1342) — voile bas .55 → .66, hauteur 36 % → 42 %,
       double text-shadow sur le résumé ;
     · item 3 (l.1472-1474)        — voile haut .42 → .52, text-shadow à
       quatre couches sur le fil d'Ariane et le résumé.
   Toutes deux renforcent un dégradé qui s'éteint précisément là où le texte se
   trouve, et une ombre portée que WCAG ne compte pas. Une troisième couche du
   même genre aurait échoué de la même façon. Les `text-shadow` de ces deux lots
   sont donc explicitement annulés ci-dessous (`text-shadow:none`) : le fond est
   désormais porté par le texte lui-même, l'ombre n'a plus d'objet.

   Le voile plein sur toute la bannière (§14.16b) a aussi été mesuré : il dégage
   les 36 mesures mais assombrit l'aquarelle entière à 390 px, où le hero ne fait
   que 230 px de haut et où les deux bandes se rejoignent. Écarté au titre de la
   contrainte « ne pas dénaturer l'aquarelle ».

   Résultat : 0 mesure sur 36 sous le seuil, de 6,94 à 9,49. L'aquarelle est
   intégralement conservée, y compris à 390 px. */
.silo-hero .breadcrumb {
  width: max-content;
  max-width: calc(100% - 2 * clamp(16px, 4vw, 44px));
  /* aligne le chip sur le bord gauche du cartouche, à toutes les largeurs */
  margin-left: calc(max(0px, 100% - var(--wrap)) / 2 + clamp(16px, 4vw, 44px));
  margin-right: 0;
  padding: 5px 12px;
  background: rgba(43, 36, 25, .74);
  border: 1px solid rgba(43, 36, 25, .55);
  text-shadow: none;
}
.silo-hero .inner p {
  padding: 7px 12px;
  background: rgba(43, 36, 25, .74);
  border: 1px solid rgba(43, 36, 25, .55);
  text-shadow: none;
}

/* ---- B1 — GABARITS 404 ET RECHERCHE --------------------------------------
   Le thème enfant ne fournissait ni search.php ni 404.php : les trois vues
   tombaient sur GeneratePress avec la zone de widgets sidebar-1 jamais
   personnalisée. Les gabarits livrés reprennent les composants existants
   (.silo-body, .silo-frame, .silo-grid, .card, .silo-tools, [towd_silo_stamps])
   ; il ne reste ici que la mise en pleine largeur, calquée sur body.category,
   et le formulaire de recherche. */
body.error404 #content.site-content,
body.search #content.site-content {
  padding: 0;
  max-width: 100%;
}
body.error404 #primary.content-area,
body.error404 #main.site-main,
body.search #primary.content-area,
body.search #main.site-main {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}
body.error404 #main.site-main,
body.search #main.site-main {
  border: none;
  background: transparent;
  box-shadow: none;
}

/* Tête de page, registre charte : surtitre tampon, titre Baskerville italique,
   chapô en encre douce. Vit DANS le .silo-frame (carte papier, filet encre). */
.towd-pagehead__kick {
  display: block;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--stamp-blue);
  margin: 0 0 8px;
}
.towd-pagehead__title {
  font-family: var(--serif-title);
  font-style: italic;
  font-size: clamp(25px, 3.6vw, 36px);
  line-height: 1.14;
  margin: 0 0 12px;
  color: var(--ink);
}
.towd-pagehead__lead {
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink-soft);
  margin: 0;
  max-width: 62ch;
}

/* Formulaire de recherche — champ à 16 px (A4 : aucun champ neuf sous le seuil). */
.towd-search {
  display: flex;
  margin: 20px 0 4px;
  max-width: 520px;
}
.towd-search input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  font-family: var(--sans);
  font-size: 16px;
  padding: 11px 14px;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-right: 0;
}
.towd-search button {
  font-family: var(--sans);
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 11px 20px;
  color: var(--paper);
  background: var(--stamp);
  border: 2px solid var(--ink);
  cursor: pointer;
}
.towd-search button:hover {
  background: var(--ink);
}
.towd-sect-title {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 26px 0 2px;
}

/* ---- B1 (suite) — PAGINATION DES RÉSULTATS -------------------------------
   Découverte en contrôlant le gabarit livré : la règle « pagination carnet
   (carrés encre) » des l.726-729 vise `.silo-body .pagination`, or
   `the_posts_pagination()` ne rend ici QUE `<div class="nav-links">` — le
   conteneur `<nav class="navigation pagination">` attendu n'est pas émis dans
   ce contexte. La règle n'a donc jamais pu s'appliquer ; elle est restée
   invisible parce qu'aucun silo n'atteint le seuil de pagination (7 pages au
   maximum pour 10 par page). La recherche, elle, pagine dès 11 résultats.
   On vise donc le conteneur réellement produit, sans toucher aux l.726-729. */
.silo-body .nav-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 30px 0 0;
}
.silo-body .nav-links .page-numbers {
  min-width: 36px;
  height: 36px;
  margin: 0;
  padding: 0 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--sans);
  font-size: 13px;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  text-decoration: none;
}
.silo-body .nav-links .page-numbers.current {
  color: var(--paper);
  background: var(--ink);
}
.silo-body .nav-links .page-numbers.dots {
  border: none;
  background: transparent;
}

/* =========================================================================
   §33 — v1.5.43 (2026-07-30) — ENCART CHECKLIST : la hauteur suit le contenu.
   Override du §28 (v1.5.35, l.2152-2181), append-only, ne touche QUE le
   checklist. Aucun autre type d'encart n'est vise ni atteint.

   Defaut corrige : le §28 posait `height:36px` (hauteur FIXE, pas un plancher)
   avec `line-height:1` et `align-items:center`. Un libelle FR de 3 lignes fait
   48px, deborde de 12px repartis en haut ET en bas, et vient peindre par dessus
   les elements voisins. Mesure du 30/07 : casse a 460px et en dessous, tient a
   partir de 470px ; 10 des 21 elements publies debordaient a 390px, sur 4 des 5
   pages porteuses.

   Le rythme des filets (registre carnet) n'est pas supprime : il devient un PAS
   MINIMAL de 36px que le contenu peut depasser, au lieu d'un gabarit dans lequel
   le contenu doit rentrer. Un element d'une seule ligne fait toujours exactement
   36px, premiere rangee comprise.

   Invariance : `line-height` est explicite, la hauteur de ligne ne depend donc
   pas des metriques de la fonte servie. Un visiteur sans Georgia wrappe a une
   autre longueur, mais la boite suit dans tous les cas. Aucun plafond de
   longueur n'est pose cote producteur : calibre sur Georgia, il serait faux
   ailleurs.

   Geometrie, a 16px de font-size et box-sizing:border-box :
     ligne          = 1.45em                          = 23.2px
     rangee courante (1 filet bas) :
       padding      = (36 - 1 - 1.45em) / 2           =  5.9px haut et bas
       1 ligne      = 5.9 + 23.2 + 5.9 + 1            = 36.0px exactement
     premiere rangee (filet haut ET bas, cf. §28 :first-child) :
       padding      = (36 - 2 - 1.45em) / 2           =  5.4px haut et bas
       1 ligne      = 5.4 + 23.2 + 5.4 + 1 + 1        = 36.0px exactement
     2 lignes       = la boite grandit (59.2px), c'est l'objet du correctif

   La case a cocher est alignee sur la PREMIERE ligne, jamais centree sur le
   bloc : une case designe le debut de l'element, et l'oeil descend la colonne en
   attendant un ancrage regulier. Son `top` se simplifie, les termes en `em`
   s'annulant, en (pas - filets - 16px) / 2 : il reste juste quelle que soit la
   taille de police.
   ========================================================================= */
.towd-checklist__list li{
  --towd-chk-pas:36px;
  height:auto;
  min-height:var(--towd-chk-pas);
  line-height:1.45;
  padding-top:calc((var(--towd-chk-pas) - 1px - 1.45em) / 2);
  padding-bottom:calc((var(--towd-chk-pas) - 1px - 1.45em) / 2);
  align-items:flex-start;
}
.towd-checklist__list li:first-child{
  padding-top:calc((var(--towd-chk-pas) - 2px - 1.45em) / 2);
  padding-bottom:calc((var(--towd-chk-pas) - 2px - 1.45em) / 2);
}
.towd-checklist__list li::before{
  top:calc((var(--towd-chk-pas) - 1px - 16px) / 2);
  transform:none;
}
.towd-checklist__list li:first-child::before{
  top:calc((var(--towd-chk-pas) - 2px - 16px) / 2);
}
