:root {
  --wool: #efe8dc;
  --paper: #f8f5ef;
  --white: #FFFFFF;
  --slate: #3e4449;
  --ink: #23282C;
  --muted: #635F57;
  --madder: #8e2f2a;
  --line: rgba(62, 68, 73, .24);
  --serif: Newsreader, "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --sans: "Work Sans", Inter, Arial, sans-serif;
  /* BEGIN 02b-da-tokens — palette cible (project-spec → art_direction), mode light. */
  --primary: #8E2F2A;
  --primary-hover: #75241F;
  --on-primary: #FFFFFF;
  --secondary: #3E4449;
  --secondary-hover: #2E3338;
  --bg: #EFE8DC;
  --surface: #FFFFFF;
  --text: #3E4449;
  --text-secondary: #5A6166;
  --text-strong: #23282C;
  --text-muted: #635F57;
  --text-faint: #A79F93;
  --fill: #F5F0E6;
  --border: #DCD3C4;
  --dark-color: #3E4449;
  --callout-bg: #F6EBD6;
  --callout-text: #6B4A12;
  --callout-border: #E0CDA8;
  /* END 02b-da-tokens */
  --content: 680px;
  --wide: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--wool); color: var(--ink); font: 400 1.04rem/1.72 var(--sans); }
body::before { content: ""; position: fixed; inset: 0; z-index: -1; opacity: .22; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E"); }
a { color: var(--madder); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--primary-hover); }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3 { color: var(--slate); font-family: var(--serif); font-weight: 520; letter-spacing: -.035em; line-height: 1.06; }
h1 { font-size: clamp(3.25rem, 7vw, 7.5rem); }
h2 { font-size: clamp(2rem, 3.5vw, 3.35rem); }
p, li { text-wrap: pretty; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 20; background: var(--slate); color: #fff; padding: .7rem 1rem; }
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 3px solid var(--madder); outline-offset: 4px; }

.site-header { width: min(calc(100% - 3rem), var(--wide)); margin: 0 auto; min-height: 108px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: .65rem; color: var(--slate); text-decoration: none; font: 550 1rem/1.1 var(--serif); letter-spacing: .01em; }
.brand-mark { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid currentColor; border-radius: 50%; color: var(--madder); font-size: 1.25rem; }
.site-nav { display: flex; gap: clamp(1rem, 3vw, 2.5rem); align-items: center; }
.site-nav a { color: var(--slate); font-size: .78rem; font-weight: 650; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.site-nav a[aria-current="page"] { color: var(--madder); }
.nav-toggle { display: none; background: transparent; border: 1px solid var(--slate); color: var(--slate); padding: .55rem .8rem; font: 600 .8rem var(--sans); }

.shell-wide { width: min(calc(100% - 3rem), var(--wide)); margin-inline: auto; }
.eyebrow { margin: 0 0 1.35rem; color: var(--madder); font-size: .72rem; font-weight: 700; letter-spacing: .16em; line-height: 1.35; text-transform: uppercase; }
.lead { max-width: 670px; color: var(--text-secondary); font: 400 clamp(1.25rem, 2.1vw, 1.65rem)/1.5 var(--serif); }
.text-link { display: inline-flex; gap: .6rem; align-items: center; margin-top: 1rem; font-weight: 650; text-decoration: none; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateX(.3rem); }
.button { display: inline-block; padding: .9rem 1.1rem; background: var(--slate); color: #fff; border-radius: 2px; font-size: .85rem; font-weight: 700; letter-spacing: .04em; text-decoration: none; }
.button:hover { background: var(--madder); color: #fff; }

.season-strip { width: min(calc(100% - 3rem), var(--wide)); margin: 0 auto; padding: .85rem 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 150px 1fr auto; gap: 1rem; align-items: center; font-size: .78rem; }
.season-strip span { color: var(--madder); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.season-strip p { margin: 0; }
.season-strip a { font-weight: 650; }
.home-hero { width: min(calc(100% - 3rem), var(--wide)); min-height: 730px; margin: 0 auto; display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; padding: 6rem 0 7rem; }
.home-hero h1 { margin: 0 0 2.1rem; max-width: 760px; }
.home-hero__copy { position: relative; z-index: 1; }
.hero-figure { margin: 0; }
.hero-figure img { width: 100%; aspect-ratio: .78; object-fit: cover; filter: saturate(.72) contrast(.96); }
figcaption { margin-top: .75rem; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.mission-band { padding: 5.5rem max(1.5rem, calc((100% - var(--wide)) / 2)); background: var(--slate); color: #f8f4ed; }
.mission-band .eyebrow { color: #e2a29d; }
.mission-statement { max-width: 970px; margin: 0; font: 400 clamp(2rem, 4.3vw, 4.6rem)/1.08 var(--serif); letter-spacing: -.03em; }
.latest, .all-guides { padding-block: 8rem; }
.section-heading { display: grid; grid-template-columns: 1fr 2fr; align-items: end; margin-bottom: 3.5rem; }
.section-heading h2 { margin: 0; }
.article-list { border-top: 1px solid var(--slate); }
.article-row { display: grid; grid-template-columns: 85px 1fr; gap: 2rem; padding: 3rem 0; border-bottom: 1px solid var(--line); }
.article-row__index { color: var(--madder); font: italic 1.4rem var(--serif); }
.article-row h2 { max-width: 830px; margin: 0 0 1rem; font-size: clamp(1.8rem, 3vw, 3.1rem); }
.article-row h2 a { color: var(--slate); text-decoration: none; }
.article-row h2 a:hover { color: var(--madder); }
.article-row p:last-child { max-width: 680px; margin-bottom: 0; color: var(--muted); }
.territory { padding: 7rem 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; border-top: 1px solid var(--line); }
.territory h2 { margin: 0; }
.territory > div:last-child { max-width: 540px; }
.newsletter-callout { margin-bottom: 8rem; padding: clamp(2.5rem, 6vw, 5.5rem); background: var(--white); border-radius: 14px; }
.newsletter-callout h2 { max-width: 800px; margin: 0 0 1.5rem; }
.newsletter-callout > p:not(.eyebrow) { max-width: 650px; }

.breadcrumbs { width: min(calc(100% - 3rem), var(--wide)); margin: 1.2rem auto 0; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; font-size: .72rem; }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: .4rem; color: var(--muted); }
.breadcrumbs a { color: var(--muted); }
.page-hero { padding: 8rem 0 6rem; }
.page-hero h1 { max-width: 980px; margin: 0 0 2rem; }
.category-ledger { border-top: 1px solid var(--slate); }
.category-ledger article { display: grid; grid-template-columns: 80px 1fr; padding: 3.2rem 0; border-bottom: 1px solid var(--line); }
.category-ledger article > span { color: var(--madder); font: italic 1.2rem var(--serif); }
.category-ledger h2 { margin: 0 0 .7rem; font-size: clamp(1.8rem, 3vw, 2.8rem); }
.category-ledger p { max-width: 700px; color: var(--muted); }
.category-ledger a { display: block; width: fit-content; margin-top: .7rem; font-weight: 650; text-decoration: none; }
.availability { padding-left: 1rem; border-left: 2px solid var(--line); font-size: .88rem; }
.editorial-image { margin-top: 7rem; }
.editorial-image img { width: 75%; margin-left: auto; aspect-ratio: 1.7; object-fit: cover; filter: saturate(.65); }
.editorial-image figcaption { width: 75%; margin-left: auto; }

.season-strip--article { margin-top: 1.3rem; }
.article-page { padding-bottom: 8rem; }
.article-header { width: min(calc(100% - 3rem), 980px); margin: 0 auto; padding: 7rem 0 3rem; }
.article-header h1 { margin: 0 0 2.5rem; font-size: clamp(3.2rem, 6vw, 6.4rem); }
.article-deck { max-width: var(--content); margin: 0; font: 400 clamp(1.25rem, 2vw, 1.6rem)/1.52 var(--serif); color: #4c5154; }
.technical-sheet { width: min(calc(100% - 3rem), 900px); margin: 1rem auto 5rem; padding: 2rem; border: 1px solid var(--slate); background: rgba(255,255,255,.18); }
.technical-sheet h2 { margin: 0 0 1.5rem; font: 700 .75rem var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.technical-sheet dl { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; margin: 0; }
.technical-sheet dl div { min-width: 0; }
.technical-sheet dt { color: var(--muted); font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.technical-sheet dd { margin: .45rem 0 0; font-size: .82rem; line-height: 1.4; }
.diagram { width: min(calc(100% - 3rem), 960px); margin: 0 auto 6rem; }
.diagram img { width: 100%; background: var(--paper); border-radius: 6px; }
.diagram figcaption { text-align: right; }
.article-body { width: min(calc(100% - 3rem), var(--content)); margin: 0 auto; }
.article-body section { margin: 0 0 5rem; }
.article-body h2 { margin: 0 0 1.7rem; font-size: clamp(2rem, 4vw, 3rem); }
.article-body p { margin: 0 0 1.45rem; }
.article-body ol, .article-body ul { margin: 2rem 0; padding-left: 1.4rem; }
.article-body li { margin-bottom: .85rem; }
.article-body table { width: 100%; margin: 2.3rem 0; border-collapse: collapse; font-size: .88rem; line-height: 1.45; }
.article-body th, .article-body td { padding: .9rem .6rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.article-body th { color: var(--madder); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.source-note { margin-top: 2.5rem; padding: 1.25rem; border-left: 3px solid var(--madder); background: rgba(255,255,255,.25); font-size: .82rem; }
.faq { width: min(calc(100% - 3rem), var(--content)); margin: 7rem auto; padding-top: 3rem; border-top: 1px solid var(--slate); }
.faq h2 { margin: 0 0 2rem; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; padding: 1.3rem 2rem 1.3rem 0; font: 550 1.12rem/1.4 var(--serif); }
.faq details p { margin: 0; padding: 0 0 1.3rem; color: var(--muted); }
.related { width: min(calc(100% - 3rem), var(--wide)); margin: 0 auto; padding-top: 4rem; border-top: 1px solid var(--slate); }
.related > div { display: grid; grid-template-columns: 1fr 1fr; gap: 6vw; }
.related article { padding: 2rem 0; }
.related article p { color: var(--madder); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.related h2 { margin: 0; font-size: clamp(1.7rem, 3vw, 2.8rem); }
.related h2 a { color: var(--slate); text-decoration: none; }

.prose-page { width: min(calc(100% - 3rem), var(--content)); margin: 0 auto; padding: 1rem 0 8rem; }
.prose-page h1 { font-size: clamp(3rem, 6vw, 5.5rem); }
.prose-page h2 { margin: 4rem 0 1.5rem; }
.prose-page blockquote { margin: 4rem -6rem; padding: 2.5rem 3rem; border-left: 3px solid var(--madder); font: 400 clamp(1.5rem, 3vw, 2.3rem)/1.3 var(--serif); color: var(--slate); }
.prose-page li { margin-bottom: 1rem; }
.about-figure { margin: 4rem -6rem; }
.about-figure img { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 6px; }
.about-figure figcaption { text-align: right; }
.utility-page { padding-top: 6rem; }
.contact-layout { display: grid; grid-template-columns: 1fr .8fr; gap: 9vw; padding-bottom: 9rem; }
.contact-layout h2 { margin-top: 0; }
.contact-card { padding: 2.5rem; background: var(--white); border-radius: 6px; }
.contact-card li { margin-bottom: .8rem; }
.error-page { min-height: 65vh; width: min(calc(100% - 3rem), 800px); margin: 0 auto; padding: 10rem 0; }

.site-footer { width: min(calc(100% - 3rem), var(--wide)); margin: 0 auto; padding: 4rem 0; border-top: 1px solid var(--slate); display: grid; grid-template-columns: 2fr 1fr; gap: 3rem; color: var(--muted); font-size: .78rem; }
.site-footer strong { color: var(--slate); font: 550 1.2rem var(--serif); }
.site-footer nav { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 1rem 1.4rem; }
.site-footer nav a { color: var(--slate); }
.footer-note { grid-column: 1 / -1; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); letter-spacing: .04em; }

@media (max-width: 800px) {
  .site-header { min-height: 80px; }
  .nav-toggle { display: block; }
  .site-nav { display: none; position: absolute; z-index: 10; top: 79px; left: 1.5rem; right: 1.5rem; padding: 1.5rem; background: var(--paper); border: 1px solid var(--slate); flex-direction: column; align-items: flex-start; }
  .site-nav.is-open { display: flex; }
  .season-strip { grid-template-columns: 1fr; gap: .25rem; padding: 1rem 0; }
  .home-hero { min-height: 0; grid-template-columns: 1fr; padding: 5rem 0; }
  .home-hero h1 { font-size: clamp(3.5rem, 15vw, 5.5rem); }
  .hero-figure img { aspect-ratio: 1.15; }
  .section-heading, .territory, .contact-layout { grid-template-columns: 1fr; gap: 2rem; }
  .latest, .all-guides { padding-block: 5rem; }
  .article-row { grid-template-columns: 42px 1fr; gap: 1rem; padding: 2.2rem 0; }
  .newsletter-callout { margin-bottom: 5rem; }
  .page-hero { padding: 5rem 0 4rem; }
  .editorial-image img, .editorial-image figcaption { width: 100%; }
  .technical-sheet dl { grid-template-columns: 1fr 1fr; }
  .related > div { grid-template-columns: 1fr; gap: 0; }
  .prose-page blockquote { margin: 3rem 0; padding: 1.5rem; }
  .about-figure { margin: 3rem 0; }
  .site-footer { grid-template-columns: 1fr; }
  .site-footer nav { justify-content: flex-start; }
}

@media (max-width: 480px) {
  .site-header, .shell-wide, .season-strip, .breadcrumbs, .article-header, .technical-sheet, .diagram, .article-body, .faq, .related, .prose-page, .site-footer { width: min(calc(100% - 2rem), var(--wide)); }
  .home-hero { width: calc(100% - 2rem); }
  .technical-sheet { padding: 1.3rem; }
  .technical-sheet dl { grid-template-columns: 1fr; }
  .category-ledger article { grid-template-columns: 42px 1fr; }
  .article-body table { display: block; overflow-x: auto; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* BEGIN 01c-footer-4-sections — footer standard du parc (4 colonnes + bas de page). */
.site-footer { grid-template-columns: 2fr 1fr 1fr 1fr; align-items: start; }
.site-footer .footer-col nav { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: .55rem; }
.footer-col-title { margin: 0 0 .9rem; color: var(--slate); letter-spacing: .08em; text-transform: uppercase; font-size: .7rem; }
.footer-brand p { margin: .6rem 0 0; max-width: 34ch; }
@media (max-width: 900px) {
  .site-footer { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .site-footer { grid-template-columns: 1fr; }
}
/* END 01c-footer-4-sections */

/* ===== BLOC SOUS-MENU OUTILS — sans JavaScript (hover + focus-within) ===== */
.nav-item{position:relative;display:inline-flex;align-items:center}
.has-sub>a::after{content:"";display:inline-block;width:5px;height:5px;margin-left:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.has-sub::after{content:"";position:absolute;top:100%;left:0;right:0;height:18px}
.sub-nav{position:absolute;top:calc(100% + 18px);left:-16px;z-index:30;min-width:296px;flex-direction:column;gap:1px;padding:8px;background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 34px rgba(31,58,77,.14);display:none}
.has-sub:hover>.sub-nav,.has-sub:focus-within>.sub-nav{display:flex}
.sub-nav a{display:block;padding:9px 12px;font-size:13px;font-weight:700;line-height:1.25;white-space:nowrap;border-left:2px solid transparent}
.sub-nav a small{display:block;margin-top:2px;font-family:var(--font-body);font-size:11px;font-weight:400;color:var(--text-muted)}
.sub-nav a:hover,.sub-nav a:focus{background:var(--fill);color:var(--primary);border-left-color:var(--primary)}
.sub-nav a:hover small,.sub-nav a:focus small{color:var(--text-secondary)}
.sub-nav-all{margin-top:5px;border-top:1px solid var(--line);padding-top:11px!important;color:var(--primary)}
@media(max-width:850px){
.nav-item{display:block}
.has-sub::after{display:none}
.has-sub>a::after{transform:rotate(45deg) translateY(-2px)}
.sub-nav{position:static;display:flex;min-width:0;margin:9px 0 4px 2px;padding:2px 0 2px 14px;border:0;border-left:2px solid var(--line);box-shadow:none;background:transparent;gap:0}
.sub-nav a{white-space:normal;padding:7px 0;font-size:13px;border-left:0}
.sub-nav a small{display:none}
.sub-nav a:hover,.sub-nav a:focus{background:transparent}
.sub-nav-all{padding-top:8px!important}
}

/* BEGIN 05b-footer-5-colonnes — la colonne Strumenti s'ajoute aux quatre du parc :
   cinq colonnes sur une seule ligne, jamais une colonne orpheline en second rang. */
.site-footer { grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr; }
@media (max-width: 1100px) { .site-footer { grid-template-columns: 1.6fr 1fr 1fr; } }
@media (max-width: 760px)  { .site-footer { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px)  { .site-footer { grid-template-columns: 1fr; } }
/* END 05b-footer-5-colonnes */

/* ===== BLOC LARGEUR UNIFIÉE — toutes les pages à la largeur de la home ===== */
/*
 * Posé par 06a2-largeur-contenu. Les sélecteurs ci-dessous ont été RELEVÉS
 * dans les feuilles réellement chargées par le front, pas devinés : c'est la
 * correction du défaut d'origine, où une liste de classes supposées rendait
 * le bloc inerte sans que rien ne le signale.
 *
 * Largeur de référence relevée sur `.container` : la largeur de `.container`.
 *
 * `!important` est délibéré. Une contrainte peut être déclarée dans une
 * feuille chargée APRÈS celle-ci, ou plus bas dans ce même fichier par un
 * bloc appendu ultérieurement : à spécificité égale elle gagnerait, et le
 * bloc serait posé, validé, et sans effet.
 *
 * Les contrôles de formulaire, les images et les cartes sont épargnés.
 *
 * Ce qui suit la borne « relevé automatique : fin » est CONSERVÉ au rejeu :
 * c'est là que vivent les règles tranchées à la main. N'écris rien au-dessus.
 */

/* --- relevé automatique : début --- */
.lead{max-width:none!important}   /* site.css : 670px */
.home-hero h1{max-width:none!important}   /* site.css : 760px */
.mission-statement{max-width:none!important}   /* site.css : 970px */
.article-row h2{max-width:none!important}   /* site.css : 830px */
.article-row p:last-child{max-width:none!important}   /* site.css : 680px */
.territory > div:last-child{max-width:none!important}   /* site.css : 540px */
.newsletter-callout h2{max-width:none!important}   /* site.css : 800px */
.newsletter-callout > p:not(.eyebrow){max-width:none!important}   /* site.css : 650px */
.page-hero h1{max-width:none!important}   /* site.css : 980px */
.category-ledger p{max-width:none!important}   /* site.css : 700px */
.article-deck{max-width:none!important}   /* site.css : var(--content) */
.footer-brand p{max-width:none!important}   /* site.css : 34ch */
.source-list{max-width:none!important}   /* site.css : 820px */

/* Grilles à deux colonnes relevées, NON collapsées d'office : une grille de
   cartes se collapserait à tort. À trancher au brief 06a2, puis à écrire
   SOUS la borne de fin ci-dessous. */
/*   .home-hero { grid-template-columns: 1.08fr .92fr }  (site.css) */
/*   .section-heading { grid-template-columns: 1fr 2fr }  (site.css) */
/*   .territory { grid-template-columns: 1fr 1fr }  (site.css) */
/*   .related > div { grid-template-columns: 1fr 1fr }  (site.css) */
/*   .contact-layout { grid-template-columns: 1fr .8fr }  (site.css) */
/*   .site-footer { grid-template-columns: 2fr 1fr }  (site.css) */
/*   .technical-sheet dl { grid-template-columns: 1fr 1fr }  (site.css) */
/* --- relevé automatique : fin --- */

/* Règles tranchées à la main, conservées au rejeu de 06a2. */
/* Règles tranchées à la main, conservées au rejeu de 06a2. */
.content-narrow{max-width:none!important}
.content-narrow select,.content-narrow input[type=number],.content-narrow input[type=text]{max-width:520px}
.article-layout{width:min(1140px,calc(100% - 40px));margin-inline:auto}
.article-body{max-width:72ch}
.article-layout{width:min(100% - 28px,1140px)}

/* ===== ENVELOPPE + OUVERTURE NORMÉE (couches 1 et 2 du gabarit) ===== */
.author-card{display:flex;gap:18px;align-items:flex-start;margin:0 0 22px;padding:20px 22px;background:var(--fill);border-left:3px solid var(--primary)}
.author-card .author-avatar{flex:0 0 auto;line-height:0}
.author-card .author-img{object-fit:cover}
.author-footer .author-card .author-img{width:88px;height:88px;object-fit:cover;border-radius:var(--radius-round, 50%)}
.author-footer .author-card .author-monogram{width:88px;height:88px;font-size:30px}
.author-name{margin:0;font-family:var(--font-heading);font-size:16px;font-weight:700;line-height:1.3}
.author-name a{color:var(--text-strong)}
.author-name a:hover{color:var(--primary)}
.author-job{display:block;margin-top:3px;font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:1.1px;color:var(--text-muted)}
.author-legit{margin:11px 0 0;font-size:14.5px;line-height:1.5;font-weight:600;color:var(--text-strong)}
.author-bio{margin:7px 0 0;font-size:13.5px;line-height:1.55;color:var(--text-secondary)}
.author-links{margin:10px 0 0;font-size:13px}
.author-links a{color:var(--primary);font-weight:700;border-bottom:1px solid currentColor}
.page-dates{display:flex;flex-wrap:wrap;gap:6px 20px;margin:0 0 22px;font-size:12px;color:var(--text-muted)}
.page-dates time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-secondary)}
.method-note{margin:0 0 26px;padding:17px 19px;background:var(--callout-bg);border:1px solid var(--callout-border);border-left:3px solid var(--primary)}
.method-note-title{margin:0 0 6px;font-family:var(--font-heading);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--callout-text)}
.method-note p:last-child{margin:0;font-size:14px;line-height:1.6;color:var(--callout-text)}
.opening{margin:0 0 34px}
.opening .answer{margin:0;padding:22px 24px;background:var(--secondary);color:var(--white);font-family:var(--font-heading);font-size:clamp(17px,1.9vw,20px);line-height:1.45;letter-spacing:-.2px}
.essentials{margin:0;padding:20px 24px;background:var(--surface);border:1px solid var(--border);border-top:0}
.essentials-title{margin:0 0 10px;font-family:var(--font-heading);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted)}
.essentials ul{margin:0;padding:0;list-style:none}
.essentials li{position:relative;padding:7px 0 7px 22px;font-size:15px;line-height:1.5;color:var(--text)}
.essentials li::before{content:"";position:absolute;left:0;top:15px;width:8px;height:2px;background:var(--primary)}
.scope{margin:0;padding:14px 24px;background:var(--fill);border:1px solid var(--border);border-top:0;font-size:13.5px;line-height:1.55;color:var(--text-secondary)}
.scope span{font-family:var(--font-heading);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;color:var(--text-muted);margin-right:6px}
.scope a{color:var(--secondary);font-weight:700;border-bottom:1px solid currentColor}
.scope a:hover{color:var(--primary)}
.update-log{margin:0;padding:20px 22px;border-top:2px solid var(--secondary);background:var(--fill)}
.update-log-title{margin:0 0 9px;font-family:var(--font-heading);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted)}
.update-log ul{margin:0;padding:0;list-style:none}
.update-log li{padding:6px 0;font-size:13.5px;line-height:1.5;color:var(--text-secondary);border-bottom:1px solid var(--border)}
.update-log li:last-child{border-bottom:0}
.update-log time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500;color:var(--text-strong)}
@media(max-width:640px){.author-card{padding:16px}.opening .answer{padding:18px}.essentials,.scope{padding:16px 18px}}

/* Signature de tête — identité et dates sur une seule ligne. Le parcours de
   l'auteur n'est pas ici : il se lit en pied, via .author-footer. */
.author-byline{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin:0 0 26px;padding-bottom:14px;border-bottom:1px solid var(--border,#D3CEC1);font-size:13px;color:var(--text-secondary,#4A554D)}
.byline-author a{color:var(--secondary,#3A4A3F);font-weight:700;border-bottom:1px solid currentColor}
.byline-author a:hover{color:var(--primary,#A65E2E)}
.author-byline .page-dates{margin:0;gap:6px 18px}

/* Pied d'article — la carte auteur complète, détachée du corps du texte. */
.author-footer{margin:38px 0 22px;border-top:2px solid var(--secondary,#3A4A3F)}
.author-footer .author-card{margin:0}

/* Signature dans le hero d'article (blog) : le hero est un aplat sombre, la
   signature doit y passer en blanc. Sans cette règle, elle hérite des couleurs
   pensées pour un fond clair et devient illisible (contraste ~1,1:1). */
.guide-hero .author-byline,
.guide-hero .author-byline .page-dates,
.guide-hero .byline-author a,
.guide-hero .page-dates time{color:#FFFFFF}
.guide-hero .author-byline{border-bottom-color:rgba(255,255,255,.28)}

/* ===== SOURCES — liens sortants cités près de l'affirmation ===== */
.source-note a[rel~="nofollow"]{color:var(--secondary);font-weight:600;border-bottom:1px solid var(--text-faint)}
.source-note a[rel~="nofollow"]:hover{color:var(--primary);border-bottom-color:var(--primary)}
.tool-table a[rel~="nofollow"]{font-weight:600;text-decoration:none;border-bottom:1px solid var(--text-faint)}
.tool-table a[rel~="nofollow"]:hover{color:var(--primary);border-bottom-color:var(--primary)}
.source-list{list-style:none;margin:0;padding:0;max-width:820px}
.source-list li{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.source-list li:last-child{border-bottom:0}
.source-list span{display:block;margin-top:2px;font-size:11px;color:var(--text-muted)}

/* 06a2 : arbitrage des grilles a deux colonnes relevees.
   TEXTE (intitule a gauche, corps a droite) -> une seule colonne :
     .section-heading, .territory
   CARTES / COMPOSITION -> inchangees, les collapser serait une regression :
     .home-hero (texte + image du hero), .related > div (plusieurs articles cote
     a cote), .contact-layout (formulaire + carte d'informations),
     .site-footer (colonnes du pied de page), .technical-sheet dl (grille de
     donnees a cinq champs ; la valeur 1fr 1fr relevee vient d'une media query).
   Les deux regles ci-dessous sont inconditionnelles, et ne neutralisent aucune
   media query : la regle a 800px collapsait deja ces deux grilles en 1fr. */
.section-heading{grid-template-columns:1fr!important;gap:1.2rem!important}
.territory{grid-template-columns:1fr!important;gap:2.5rem!important}
