/* Polices auto-hébergées (woff2, sous-ensemble latin). Noms de fichiers attendus : voir FONTS-A-TELECHARGER.txt */
@font-face{ font-family:'Graduate'; font-style:normal; font-weight:400; font-display:swap; src:url(../fonts/graduate-400-latin.woff2) format('woff2'); }
@font-face{ font-family:'Barlow'; font-style:normal; font-weight:400; font-display:swap; src:url(../fonts/barlow-400-latin.woff2) format('woff2'); }
@font-face{ font-family:'Barlow'; font-style:normal; font-weight:500; font-display:swap; src:url(../fonts/barlow-500-latin.woff2) format('woff2'); }
@font-face{ font-family:'Barlow'; font-style:normal; font-weight:600; font-display:swap; src:url(../fonts/barlow-600-latin.woff2) format('woff2'); }

/*
Theme Name: Welding — wh-tole
Theme URI: https://weldinghoustontx.com/
Author: Welding
Description: Thème code-pur de Welding : la tôle découpée au plasma (tôle claire évidée, plaque rivetée, cordon de soudure). Mode clair uniquement.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: wh-tole
*/

/* ======================================================================
   Palette (DA §2) : 4 couleurs + blanc + leurs transparences. Rien d'autre.
   Acier clair E3E4E5 · Noir forge 141618 · Rouille 763E25 · Bleu arc 43DAF3.
   Le Bleu arc n'est JAMAIS une couleur de texte sur fond clair.
   Les variables --sb-* habillent les blocs figés (blocs/*.css).
   ====================================================================== */
:root{
	--wh-acier:#E3E4E5;
	--wh-forge:#141618;
	--wh-rouille:#763E25;
	--wh-arc:#43DAF3;
	--wh-blanc:#fff;
	--wh-doux:rgba(20,22,24,.78);
	--wh-filet:rgba(20,22,24,.22);
	--wh-ombre:0 6px 14px rgba(20,22,24,.14);
	--wh-ombre-forte:0 14px 30px rgba(20,22,24,.24);
	--wh-titre:'Graduate', serif;
	--wh-texte:'Barlow', sans-serif;
	--wh-entete-h:72px;

	--sb-conteneur:1240px;
	--sb-gouttiere:24px;
	--sb-lecture:760px;
	--sb-rail:360px;
	--sb-accent:#763E25;
	--sb-accent-clair:#43DAF3;
	--sb-encre:#141618;
	--sb-doux:rgba(20,22,24,.78);
	--sb-filet:rgba(20,22,24,.22);
	--sb-fond-carte:#fff;
	--sb-surf:rgba(20,22,24,.06);
	--sb-rayon:0;
	--sb-rayon-grand:0;
	--sb-ombre:0 6px 14px rgba(20,22,24,.14);
	--sb-ombre-forte:0 14px 30px rgba(20,22,24,.24);
	--sb-fonce:#141618;
	--sb-sur-fonce:#fff;
	--sb-titre:'Graduate', serif;
	--sb-texte:'Barlow', sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-padding-top:calc(var(--wh-entete-h) + 16px); font-synthesis:none; }
@media (prefers-reduced-motion:no-preference){ html{ scroll-behavior:smooth; } }
body{
	margin:0; background:var(--wh-acier); color:var(--wh-forge);
	font-family:var(--wh-texte); font-weight:400; font-size:1.0625rem; line-height:1.6;
	-webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden;
}
img,svg,video{ max-width:100%; height:auto; }
img{ display:block; }
h1,h2,h3,h4,h5,h6{ font-family:var(--wh-titre); font-weight:400; line-height:1.15; margin:0 0 .5em; color:var(--wh-forge); }
p{ margin:0 0 1em; }
strong,b{ font-weight:600; }
a{ color:var(--wh-rouille); text-underline-offset:3px; text-decoration-thickness:1px; }
a:hover{ color:var(--wh-forge); }
:focus-visible{ outline:3px solid var(--wh-arc); outline-offset:2px; box-shadow:0 0 0 5px var(--wh-forge); }
button{ font-family:inherit; }
ul,ol{ padding-left:1.2em; }
hr{ border:0; border-top:1px solid var(--wh-filet); margin:2em 0; }
::selection{ background:var(--wh-arc); color:var(--wh-forge); }
.wh-sr{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/*
 * BLOC FIGÉ — ARTICLE (thématique) — CSS
 * Origine : curieux-du-web.com, theme/style.css, règles `.cdw-article*` /
 * `.cdw-fil-ariane` / `.cdw-a-lire` / `.cdw-carte*` (renommées `.sbt-*` ici).
 * Couleurs/polices/espacements uniquement en `var(--sb-*, repli)` : un site neuf peut
 * utiliser ce fichier tel quel sans avoir encore défini ses propres variables.
 *
 * INTERDIT DE MODIFIER : voir single-article.php (un seul <article>, « à lire aussi »
 * en <div>). LIBRE DE MODIFIER : toutes les valeurs des var() ci-dessous.
 */

.sbt-conteneur{ max-width: var(--sb-conteneur, 1240px); margin-inline: auto; padding-inline: var(--sb-gouttiere, 24px); }

.sbt-fil-ariane{ font-size: .8125rem; color: var(--sb-doux, #55607a); display: flex; gap: 6px; flex-wrap: wrap; padding-block: 16px; }
.sbt-fil-ariane a{ color: var(--sb-doux, #55607a); text-decoration: none; }
.sbt-fil-ariane a:hover{ color: var(--sb-encre, #0f172a); }

.sbt-article-entete{ max-width: var(--sb-lecture, 720px); margin-inline: auto; padding-block: 8px 24px; }
.sbt-article-pastille{
	display: inline-block; background: var(--sb-surf, #f4f5fa); color: var(--sb-encre, #0f172a);
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: .75rem;
	text-transform: uppercase; letter-spacing: .04em; padding: 6px 12px; border-radius: 999px; margin-bottom: 16px;
	text-decoration: none;
}
.sbt-article-entete h1{ font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); line-height: 1.15; margin: 0; }
.sbt-article-chapo{ font-family: var(--sb-texte, 'Inter', system-ui, sans-serif); font-style: italic; font-size: clamp(1.0625rem,1rem + .3vw,1.3125rem); color: var(--sb-doux, #55607a); margin-top: 16px; }
.sbt-article-meta{ display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 20px; font-size: .875rem; color: var(--sb-doux, #55607a); }
.sbt-article-meta img{ width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.sbt-article-meta-auteur{ color: inherit; font-weight: 600; text-decoration: none; }

.sbt-article-une{ max-width: var(--sb-conteneur, 1240px); margin: 28px auto 32px; padding-inline: var(--sb-gouttiere, 24px); }
.sbt-article-une-cadre{ aspect-ratio: 2.4 / 1; max-height: min(520px, 46vh); overflow: hidden; /* 01/10 : à 1440×900 le texte passait sous la ligne de flottaison (B-ART-09) */ border-radius: var(--sb-rayon, 14px); box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08)); }
.sbt-article-une-cadre img{ width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px){ .sbt-article-une-cadre{ aspect-ratio: auto; height: 220px; max-height: 220px; } }

/* Grille corps + rail — align-items:start obligatoire pour que le rail sticky
   (cf. partial-sidebar.css) tienne sur toute la hauteur du contenu. */
.sbt-article-mise-en-page{
	display: grid; grid-template-columns: minmax(0, var(--sb-lecture, 720px)) var(--sb-rail, 340px);
	column-gap: var(--sb-gouttiere, 24px); row-gap: var(--sb-gouttiere, 24px);
	max-width: var(--sb-conteneur, 1240px); margin-inline: auto;
	padding: 32px var(--sb-gouttiere, 24px) 64px; align-items: start; justify-content: center;
}
@media (max-width: 1080px){ .sbt-article-mise-en-page{ grid-template-columns: minmax(0,1fr); } .sbt-article-principal, .sbt-rail{ min-width: 0; } }
.sbt-article-mise-en-page--suite{ padding-top: 0; }

.sbt-article-corps{ font-size: 1.0625rem; line-height: 1.7; color: var(--sb-encre, #0f172a); font-family: var(--sb-texte, 'Inter', system-ui, sans-serif); }
.sbt-article-corps h2{ margin-top: 2.2em; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }
.sbt-article-corps h3{ margin-top: 1.8em; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }
.sbt-article-corps p{ margin-bottom: 1.3em; }
.sbt-article-corps img{ border-radius: var(--sb-rayon, 14px); margin-block: 1.6em; width: 100%; height: auto; }
.sbt-article-corps blockquote{
	margin: 1.8em 0; padding: 18px 24px; border-left: 4px solid var(--sb-accent, #2563eb);
	background: var(--sb-surf, #f4f5fa); border-radius: 8px; font-style: italic;
}

/* Sommaire replié en accordéon sur mobile uniquement (en desktop, il vit dans le rail —
   cf. partial-sidebar.php / partial-sommaire.php). */
.sbt-sommaire-mobile{ display: none; }
@media (max-width: 1080px){ .sbt-sommaire-mobile{ display: block; margin-bottom: 24px; } }
/* 01/10/2026 (baliturismo, juge visuel) : sous 1080px le rail passe SOUS l'article ; sa carte sommaire
   faisait doublon avec le sommaire mobile de tête (erreur n°6 « sommaire en double »). */
@media (max-width: 1080px){ .sbt-rail-carte--sommaire{ display: none; } }

/* « À lire aussi » (toujours un <div>, jamais un <article> — cf. single-article.php) */
.sbt-a-lire{ margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--sb-filet, #e2e5ef); }
.sbt-kicker{ font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-size: .9375rem; font-weight: 700; margin-bottom: 12px; }
.sbt-grille{ display: grid; gap: var(--sb-gouttiere, 24px); }
.sbt-grille--3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 760px){ .sbt-grille--3{ grid-template-columns: 1fr; } }
.sbt-carte{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	border-radius: var(--sb-rayon, 14px); overflow: hidden; box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08));
	transition: transform .2s ease, box-shadow .2s ease;
}
.sbt-carte:hover{ transform: translateY(-4px); box-shadow: var(--sb-ombre-forte, 0 16px 40px rgba(15,23,42,.16)); }
.sbt-carte a{ display: block; color: inherit; text-decoration: none; }
.sbt-carte img{ width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.sbt-carte-corps{ padding: 18px; }
.sbt-carte-corps h3{ margin: 0; font-size: 1.0625rem; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }

.sbt-article-commentaires{ margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--sb-filet, #e2e5ef); }

/* 01/10 (accessoiriste.net) : un seul sommaire visible par largeur — la carte du rail se masque quand l'accordéon mobile s'affiche. */
@media (max-width: 1080px){ .sbt-rail-carte--sommaire{ display: none; } }
/* 05/10 (operations-digestives, juge visuel) : sous-titres collés au paragraphe suivant (marge basse 0 px mesurée) */
.sbt-article-corps h2{ margin-bottom: .6em; }
.sbt-article-corps h3{ margin-bottom: .45em; }

/*
 * BLOC FIGÉ — BARRE LATÉRALE D'ARTICLE (thématique) — CSS
 * Origine : curieux-du-web.com, theme/style.css, règles `.cdw-rail` / `.cdw-rail-carte`
 * (lignes ~854-861, renommées `.sbt-rail*` ici) — commentaire garde-fou d'origine
 * CONSERVÉ TEL QUEL ci-dessous (règle la plus importante de ce bloc).
 *
 * Inspiration secondaire documentée (pas copiée en entier) : amatauto.fr fait basculer
 * sa colonne latérale en bloc STATIQUE empilé sous le texte à partir de 1100px
 * (assets/css/v2.css, `.a2-art__cote { position: sticky; ... }` +
 * `@media (max-width: 1100px) { .a2-art__cote { position: static; } }`) — repris ici en
 * option mobile (media query 1080px, cohérente avec le point de rupture de
 * `.sbt-article-mise-en-page` dans single-article.css).
 */

/* Rail sticky — collé à la colonne de texte, séparation par un filet interne, jamais un
   gap blanc entre les deux colonnes. */
.sbt-rail{
	position: sticky; top: 96px; align-self: start;
	display: flex; flex-direction: column; gap: 20px;
	border-left: 1px solid var(--sb-filet, #e2e5ef); padding-left: 20px;
}
/* ⛔ GARDE-FOU (conservé tel quel depuis curieux-du-web.com, retour Mathias ×3) : jamais
   de overflow-y ni de max-height ici — la colonne reste collante et accompagne TOUTE la
   lecture de l'article jusqu'en bas, sans sa propre barre de défilement interne. */
.sbt-rail-carte{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	border-radius: var(--sb-rayon, 14px); padding: 18px;
}
.sbt-rail-carte .sbt-t4, .sbt-rail-carte h4{
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-size: .875rem;
	text-transform: uppercase; letter-spacing: .04em; color: var(--sb-doux, #55607a); margin: 0 0 10px;
}

/* Option mobile (inspirée d'amatauto.fr, cf. en-tête) : sous 1080px, la grille parente
   passe déjà en une colonne (cf. .sbt-article-mise-en-page dans single-article.css) — le
   rail redevient donc naturellement un bloc statique empilé sous le texte. */
@media (max-width: 1080px){
	.sbt-rail{ position: static; border-left: 0; padding-left: 0; border-top: 1px solid var(--sb-filet, #e2e5ef); padding-top: 20px; }
}

/* Sommaire tel qu'affiché dans le rail (cf. partial-sommaire.css pour le détail des
   classes `.sbt-sommaire*`) : pas de style supplémentaire ici, la carte du rail suffit. */

/*
 * BLOC FIGÉ — SOMMAIRE (thématique) — CSS
 * CSS volontairement simple (voir partial-sommaire.php : la robustesse de ce bloc est
 * dans le PHP — ids séquentiels, exclusion FAQ/Sources, seuil de 3 titres — pas dans son
 * habillage). Inspiré du rendu `<details>` natif de health-nutrition-cambrai.fr
 * (« Bien Vivre Santé »), classes renommées `.sbt-sommaire*`.
 */

.sbt-sommaire{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	border-left: 4px solid var(--sb-accent, #2563eb); border-radius: var(--sb-rayon, 14px);
	padding: 16px 20px;
}
.sbt-sommaire-titre{
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700;
	font-size: .9375rem; cursor: pointer; list-style: none;
}
.sbt-sommaire-titre::-webkit-details-marker{ display: none; }
.sbt-sommaire ol{ list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sbt-sommaire li a{
	display: flex; align-items: baseline; gap: 10px; font-size: .9375rem;
	color: var(--sb-encre, #0f172a); text-decoration: none;
}
.sbt-sommaire li a:hover{ color: var(--sb-accent, #2563eb); text-decoration: underline; }
.sbt-sommaire-num{
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: .75rem;
	color: var(--sb-encre, #0f172a); background: var(--sb-surf, #f4f5fa); border-radius: 50%;
	width: 20px; height: 20px; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
}

/*
 * BLOC FIGÉ — ENCADRÉS « LE SAVIEZ-VOUS » / « POINTS À RETENIR » (thématique) — CSS
 * Origine : amatauto.fr, assets/css/v2.css, règles `.amat-encadre--retenir` / `.a2-saviez`
 * (renommées `.sbt-encadre--retenir` / `.sbt-encadre--saviez` ici). Habillage simplifié
 * (gradients/decorations ::before retirés pour rester générique et léger), la structure
 * (grille icône + texte pour « le saviez-vous », liste à puces pour « points à retenir »)
 * est conservée.
 */

.sbt-encadre{ margin-block: 2em; border-radius: var(--sb-rayon-grand, 22px); }

.sbt-encadre-titre{
	margin: 0 0 12px; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif);
	font-weight: 700; font-size: .8125rem; text-transform: uppercase; letter-spacing: .08em;
}

/* « Points à retenir » — fond foncé, liste à puces check. */
.sbt-encadre--retenir{
	background: var(--sb-fonce, #141733); color: var(--sb-sur-fonce, #ffffff);
	padding: 28px 30px;
}
.sbt-encadre--retenir .sbt-encadre-titre{ color: var(--sb-accent-clair, #93c5fd); }
.sbt-retenir-liste{ list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.sbt-retenir-liste li{
	position: relative; padding-left: 32px; font-size: 1rem; line-height: 1.55;
}
.sbt-retenir-liste li::before{
	content: ""; position: absolute; left: 0; top: .15em; width: 20px; height: 20px; border-radius: 50%;
	background: var(--sb-accent, #2563eb)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")
		center / 12px no-repeat;
}

/* « Le saviez-vous ? » — encadré clair, icône ampoule. */
.sbt-encadre--saviez{
	display: grid; grid-template-columns: 48px 1fr; gap: 16px; align-items: start;
	padding: 22px 24px; background: var(--sb-surf, #f4f5fa);
}
.sbt-encadre--saviez::before{
	content: "?"; grid-row: 1 / span 2; width: 48px; height: 48px; border-radius: 14px;
	background: var(--sb-accent, #2563eb); color: #fff; display: flex; align-items: center; justify-content: center;
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: 1.375rem;
}
.sbt-encadre--saviez .sbt-encadre-titre{ grid-column: 2; margin: 0; color: var(--sb-encre, #0f172a); }
.sbt-encadre--saviez p:not(.sbt-encadre-titre){ grid-column: 2; margin: 0; font-size: 1rem; line-height: 1.6; color: var(--sb-encre, #0f172a); }

@media (max-width: 620px){
	.sbt-encadre--saviez{ grid-template-columns: 1fr; }
	.sbt-encadre--saviez::before{ grid-row: 1; }
	.sbt-encadre--saviez .sbt-encadre-titre, .sbt-encadre--saviez p:not(.sbt-encadre-titre){ grid-column: 1; }
}
/* 04/10/2026 (invalidcast.com) : la règle de liste du corps d'article écrasait le retrait → la coche mangeait la 1re lettre. */
.sbt-article-corps .sbt-retenir-liste{ padding: 0; margin: 0; list-style: none; }
.sbt-article-corps .sbt-retenir-liste li{ padding-left: 34px; margin: 0; text-indent: 0; }

/*
 * BLOC FIGÉ — FAQ EN ACCORDÉON (thématique) — CSS
 * Visuel inspiré du rendu RÉEL de solutionminceur.fr, classes `.smr-faq*` récupérées par
 * un unique curl en lecture seule sur
 * `https://solutionminceur.fr/wp-content/themes/solutionminceur-v2/roxane.css`
 * (fichier CSS distant, absent du mirroir local du chantier — ce curl a RÉUSSI, voir
 * README). Classes renommées `.sbt-faq*` ici, variables de couleur remplacées par des
 * `var(--sb-*, repli)` génériques.
 *
 * Mécanisme accordéon (natif <details>/<summary>, sans JS) : cf. partial-faq.php, origine
 * health-nutrition-cambrai.fr.
 */

.sbt-faq{ margin: 56px 0; padding: 30px; border-radius: var(--sb-rayon-grand, 22px); background: var(--sb-surf, #f4f5fa); border: 1px solid var(--sb-filet, #e2e5ef); }
.sbt-faq-liste{ display: grid; gap: 10px; }
.sbt-faq-liste details{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef) !important;
	border-radius: 14px; padding: 0 !important; transition: box-shadow .25s ease, border-color .25s ease;
}
.sbt-faq-liste details[open]{ box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08)); border-color: var(--sb-accent, #2563eb) !important; }
.sbt-faq-liste summary{
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center;
	gap: 18px; padding: 18px 20px; font-size: 1.03rem; font-weight: 600; line-height: 1.45; color: var(--sb-encre, #0f172a);
}
.sbt-faq-liste summary::-webkit-details-marker{ display: none; }
.sbt-faq-liste summary::after{
	content: ""; width: 30px; height: 30px; flex: none; border-radius: 50%;
	background: var(--sb-surf, #f4f5fa) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center / 15px no-repeat;
	transition: transform .3s ease;
}
.sbt-faq-liste details[open] summary::after{ transform: rotate(135deg); }
.sbt-faq-liste summary:hover{ color: var(--sb-accent, #2563eb); }
.sbt-faq-reponse{ padding: 0 20px 18px; font-size: .96875rem; line-height: 1.75; color: var(--sb-doux, #55607a); }
.sbt-faq-reponse p{ margin: 0 0 14px; }
.sbt-faq-reponse p:last-child{ margin-bottom: 0; }

@media (max-width: 760px){
	.sbt-faq{ padding: 20px; }
}

/*
 * BLOC FIGÉ — SIGNATURE / BOÎTE AUTEUR (thématique) — CSS
 * Visuel inspiré du rendu RÉEL de solutionminceur.fr, classes `.smr-auteur*` récupérées
 * par le même curl en lecture seule que partial-faq.css (roxane.css, voir README).
 * Classes renommées `.sbt-auteur*` ici, variables de couleur remplacées par des
 * `var(--sb-*, repli)` génériques.
 */

.sbt-auteur{
	display: grid; grid-template-columns: 120px 1fr; gap: 26px; margin: 54px 0 10px;
	padding: 30px; border-radius: var(--sb-rayon-grand, 22px);
	background: var(--sb-surf, #f4f5fa); border: 1px solid var(--sb-filet, #e2e5ef);
}
.sbt-auteur-photo img{
	width: 120px; height: 120px; border-radius: 50%; object-fit: cover;
	box-shadow: 0 0 0 5px var(--sb-fond-carte, #ffffff), var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08));
}
.sbt-auteur-sur{ margin: 0 0 2px; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--sb-doux, #55607a); }
.sbt-auteur-nom{ font-size: 1.5rem; margin: 0 0 4px; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }
.sbt-auteur-nom a{ color: var(--sb-encre, #0f172a); text-decoration: none; }
.sbt-auteur-nom a:hover{ text-decoration: underline; }
.sbt-auteur-role{ margin: 0 0 12px; font-size: .8125rem; font-weight: 600; color: var(--sb-accent, #2563eb); text-transform: uppercase; letter-spacing: .05em; }
.sbt-auteur-bio{ font-size: .96875rem; line-height: 1.7; color: var(--sb-encre, #0f172a); margin: 0 0 16px; }
.sbt-auteur-chiffres{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.sbt-auteur-chiffres span{ background: var(--sb-fond-carte, #ffffff); border-radius: 12px; padding: 8px 12px; font-size: .78125rem; color: var(--sb-doux, #55607a); }
.sbt-auteur-chiffres b{ color: var(--sb-encre, #0f172a); margin-right: 4px; }
.sbt-auteur-der{ margin-bottom: 18px; }
.sbt-auteur-der p{ margin: 0 0 6px; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--sb-doux, #55607a); }
.sbt-auteur-der a{ display: block; font-size: .9375rem; font-weight: 500; padding: 6px 0; color: var(--sb-encre, #0f172a); text-decoration: none; border-bottom: 1px dashed var(--sb-filet, #e2e5ef); }
.sbt-auteur-der a:hover{ color: var(--sb-accent, #2563eb); }
.sbt-auteur-actions{ display: flex; flex-wrap: wrap; gap: 10px; }
.sbt-auteur-actions .sbt-btn{
	display: inline-block; padding: 10px 18px; border-radius: 999px; font-size: .875rem; font-weight: 600;
	text-decoration: none; background: var(--sb-accent, #2563eb); color: #fff;
}
.sbt-auteur-actions .sbt-btn--fantome{ background: transparent; border: 1.5px solid var(--sb-filet, #e2e5ef); color: var(--sb-encre, #0f172a); }

@media (max-width: 700px){
	.sbt-auteur{ grid-template-columns: 1fr; padding: 22px; }
	.sbt-auteur-photo img{ width: 88px; height: 88px; }
}

/*
 * BLOC FIGÉ — PIED DE PAGE (thématique) — CSS
 * Origine : curieux-du-web.com, theme/style.css, règles `.cdw-footer*` / `.cdw-cookies*` /
 * `.cdw-popup-sortie*` / `.cdw-btn*` (renommées `.sbt-footer*` / `.sbt-cookies*` /
 * `.sbt-popup-sortie*` / `.sbt-btn*` ici).
 */

.sbt-btn{
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 13px 24px; border-radius: 999px; font-weight: 700; font-size: 1rem;
	background: var(--sb-accent, #2563eb); color: #fff; text-decoration: none; border: 0; cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease;
}
.sbt-btn:hover{ transform: translateY(-2px); box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08)); }
.sbt-btn--petit{ padding: 10px 18px; font-size: .875rem; }
.sbt-btn--fantome{ background: transparent; border: 1.5px solid rgba(255,255,255,.5); color: inherit; }

.sbt-footer{ background: var(--sb-fonce, #141733); color: var(--sb-sur-fonce, #ffffff); padding-block: clamp(40px,6vw,64px) 24px; }
.sbt-footer a{ color: #c4c7e4; text-decoration: none; }
.sbt-footer a:hover{ color: #fff; }
.sbt-footer a.sbt-btn, .sbt-footer a.sbt-btn:hover{ color: #fff; } /* 10/10/2026 (blueau.fr) : « .sbt-footer a » battait la couleur du bouton (texte gris sur accent, 4,25:1) */

.sbt-footer-cta{
	display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
	padding: 24px 28px; margin-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,.12);
}
@media (max-width: 600px){ .sbt-footer-cta{ padding: 20px; } } /* 04/10/2026 (invalidcast.com) : texte collé au bord dès qu'un thème donne un fond de carte au bandeau */
.sbt-footer-cta .sbt-t3{ color: #fff; margin: 0 0 4px; font-size: 1.25rem; }
.sbt-footer-cta p{ color: #a9acd0; margin: 0; max-width: 46ch; }

.sbt-footer-grille{ display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 32px; padding-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,.12); }
@media (max-width: 980px){ .sbt-footer-grille{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .sbt-footer-grille{ grid-template-columns: 1fr; } }
.sbt-footer-colonne .sbt-t4{ font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-size: .8125rem; text-transform: uppercase; letter-spacing: .06em; color: #8b8fb5; margin: 0 0 14px; }
.sbt-footer-colonne ul{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sbt-footer-colonne ul a{ font-size: .875rem; }
.sbt-footer-logo{ display: block; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: 1.125rem; color: #fff; margin-bottom: 14px; }
.sbt-footer-desc{ color: #a9acd0; font-size: .9375rem; margin: 0; max-width: 32ch; }
.sbt-footer-contact{ display: flex; flex-direction: column; gap: 8px; font-size: .875rem; }

.sbt-footer-bas{ padding-top: 20px; font-size: .8125rem; color: #8b8fb5; }

/* Bandeau cookies — deux boutons de MÊME poids (même classe .sbt-btn/.sbt-btn--petit),
   jamais un seul « J'ai compris » qui vaudrait acceptation forcée. */
.sbt-cookies{
	position: fixed; left: 8px; right: 8px; bottom: 8px; z-index: 80;
	background: var(--sb-fonce, #141733); color: #fff; border-radius: 12px;
	padding: 10px 14px; display: none; align-items: center; gap: 12px;
	box-shadow: var(--sb-ombre-forte, 0 16px 40px rgba(15,23,42,.16)); max-height: 64px; overflow: hidden;
}
.sbt-cookies.est-visible{ display: flex; }
.sbt-cookies p{ margin: 0; flex: 1; min-width: 0; font-size: .75rem; line-height: 1.3; }
.sbt-cookies-actions{ display: flex; gap: 8px; flex-shrink: 0; }
.sbt-cookies .sbt-btn{ flex-shrink: 0; padding: 8px 14px; min-height: 32px; font-size: .8125rem; }

/* Popup de sortie — jamais de colonne image vide : si pas d'image, la boîte bascule sur
   une seule colonne (cf. .sbt-popup-sortie-boite--sans-image). */
.sbt-popup-sortie{ position: fixed; inset: 0; z-index: 90; display: none; align-items: center; justify-content: center; padding: 20px; }
.sbt-popup-sortie.est-ouvert{ display: flex; }
.sbt-popup-sortie-fond{ position: absolute; inset: 0; background: rgba(15,23,42,.7); }
.sbt-popup-sortie-boite{
	position: relative; z-index: 1; background: var(--sb-fond-carte, #ffffff); border-radius: var(--sb-rayon, 14px);
	max-width: 720px; width: 100%; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden;
	box-shadow: var(--sb-ombre-forte, 0 16px 40px rgba(15,23,42,.16)); max-height: 90vh;
}
.sbt-popup-sortie-boite--sans-image{ grid-template-columns: 1fr; max-width: 480px; }
@media (max-width: 640px){ .sbt-popup-sortie-boite{ grid-template-columns: 1fr; max-height: 85vh; overflow-y: auto; } }
.sbt-popup-sortie-image{ min-height: 220px; }
.sbt-popup-sortie-image img{ width: 100%; height: 100%; object-fit: cover; }
.sbt-popup-sortie-texte{ padding: 28px; color: var(--sb-encre, #0f172a); }
.sbt-popup-sortie-fermer{
	position: absolute; top: 12px; right: 12px; z-index: 2; width: 40px; height: 40px; border-radius: 50%;
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.sbt-popup-sortie-fermer svg{ width: 20px; height: 20px; }

/* ======================================================================
   wh-tole — habillage complet de Welding (DA M3 : la tôle découpée au plasma).
   Acier clair E3E4E5 · Noir forge 141618 · Rouille 763E25 · Bleu arc 43DAF3 · blanc.
   Plaques à angles droits (seuls les rivets sont ronds). Le Bleu arc n'est jamais du texte sur fond clair.
   Rien n'est masqué en attendant le script : l'état final est visible par défaut.
   ====================================================================== */

:root{
	/* corr-2 : relief des plaques (ombre portée + léger biseau) et rivets réutilisables */
	--wh-relief:inset 1px 1px 0 rgba(255,255,255,.95),inset -1px -2px 0 rgba(20,22,24,.12),0 1px 0 rgba(20,22,24,.3),0 14px 26px -10px rgba(20,22,24,.42);
	--wh-relief-fort:inset 1px 1px 0 rgba(255,255,255,.9),inset -1px -3px 0 rgba(20,22,24,.16),0 2px 0 rgba(20,22,24,.35),0 22px 36px -12px rgba(20,22,24,.5);
	--wh-relief-sombre:inset 1px 1px 0 rgba(255,255,255,.14),inset -1px -2px 0 rgba(0,0,0,.5),0 2px 0 rgba(20,22,24,.4),0 18px 30px -12px rgba(20,22,24,.55);
	--wh-rivets-petits:
		radial-gradient(circle at 9px 9px,#141618 0 3.2px,rgba(255,255,255,.4) 3.5px 4.1px,transparent 4.5px),
		radial-gradient(circle at calc(100% - 9px) 9px,#141618 0 3.2px,rgba(255,255,255,.4) 3.5px 4.1px,transparent 4.5px),
		radial-gradient(circle at 9px calc(100% - 9px),#141618 0 3.2px,rgba(255,255,255,.4) 3.5px 4.1px,transparent 4.5px),
		radial-gradient(circle at calc(100% - 9px) calc(100% - 9px),#141618 0 3.2px,rgba(255,255,255,.4) 3.5px 4.1px,transparent 4.5px);
	--wh-rivets-clairs:
		radial-gradient(circle at 11px 11px,#E3E4E5 0 3.8px,rgba(0,0,0,.55) 4.2px 5px,transparent 5.4px),
		radial-gradient(circle at calc(100% - 11px) 11px,#E3E4E5 0 3.8px,rgba(0,0,0,.55) 4.2px 5px,transparent 5.4px),
		radial-gradient(circle at 11px calc(100% - 11px),#E3E4E5 0 3.8px,rgba(0,0,0,.55) 4.2px 5px,transparent 5.4px),
		radial-gradient(circle at calc(100% - 11px) calc(100% - 11px),#E3E4E5 0 3.8px,rgba(0,0,0,.55) 4.2px 5px,transparent 5.4px);
	/* Cordon de soudure : écailles régulières (tuile 14 × 12), Noir forge sur acier / blanc cassé sur Rouille */
	--wh-cordon-noir:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='12' viewBox='0 0 14 12'%3E%3Cpath d='M1.5 10.5C2.5 4 7 1.8 12.5 3.2' fill='none' stroke='%23141618' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M4.2 9C5 6.5 7.5 5.4 10 5.8' fill='none' stroke='%23141618' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E");
	--wh-cordon-clair:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='12' viewBox='0 0 14 12'%3E%3Cpath d='M1.5 10.5C2.5 4 7 1.8 12.5 3.2' fill='none' stroke='%23fff' stroke-opacity='.9' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M4.2 9C5 6.5 7.5 5.4 10 5.8' fill='none' stroke='%23fff' stroke-opacity='.9' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E");
	--wh-etincelle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Cpolygon points='11,1 13.4,8.6 21,11 13.4,13.4 11,21 8.6,13.4 1,11 8.6,8.6' fill='%2343DAF3' stroke='%23141618' stroke-width='.9' stroke-linejoin='round'/%3E%3C/svg%3E");
	/* Tôle perforée : deux rangées de trous décalées (quinconce) */
	--wh-trous:
		radial-gradient(circle at 8px 8px,rgba(20,22,24,.17) 0 3.6px,rgba(255,255,255,.8) 4px 5px,transparent 5.4px),
		radial-gradient(circle at 23px 23px,rgba(20,22,24,.17) 0 3.6px,rgba(255,255,255,.8) 4px 5px,transparent 5.4px);
}

/* ======================================================================
   Briques communes
   ====================================================================== */
.wh-c{ width:100%; max-width:var(--sb-conteneur); margin-inline:auto; padding-inline:var(--sb-gouttiere); }
.wh-main{ display:block; }
.wh-evitement{ position:absolute; left:-999px; top:8px; z-index:200; background:var(--wh-forge); color:#fff; padding:10px 16px; font-weight:600; }
.wh-evitement:focus{ left:8px; }
.wh-section{ padding:56px 0; }
.wh-perfore{ background-color:var(--wh-acier); background-image:var(--wh-trous); background-size:30px 30px; }

/* Rivets : 4 disques Noir forge à reflet aux coins (posés PAR-DESSUS le contenu, pour tenir aussi une photo). */
.wh-riv,
.sbt-article-principal,
.sbt-auteur,
.sbt-faq,
.sbt-encadre--retenir,
.sbt-footer .sbt-conteneur,
.sbs_tarifs,
.wh-duel{ position:relative; --wh-tr:#141618; --wh-lueur:transparent; }
.wh-riv::before,
.sbt-article-principal::before,
.sbt-auteur::before,
.sbt-faq::before,
.sbt-encadre--retenir::before,
.sbt-footer .sbt-conteneur::before,
.sbs_tarifs::before,
.wh-duel::before{
	content:""; position:absolute; inset:0; z-index:4; pointer-events:none;
	background-image:
		radial-gradient(circle at 9.6px 9.6px,rgba(255,255,255,.78) 0 1.1px,transparent 1.6px),
		radial-gradient(circle at calc(100% - 12.4px) 9.6px,rgba(255,255,255,.78) 0 1.1px,transparent 1.6px),
		radial-gradient(circle at 9.6px calc(100% - 12.4px),rgba(255,255,255,.78) 0 1.1px,transparent 1.6px),
		radial-gradient(circle at calc(100% - 12.4px) calc(100% - 12.4px),rgba(255,255,255,.78) 0 1.1px,transparent 1.6px),
		radial-gradient(circle at 11px 11px,#141618 0 4px,rgba(255,255,255,.38) 4.3px 5px,transparent 5.4px),
		radial-gradient(circle at calc(100% - 11px) 11px,var(--wh-tr) 0 4px,rgba(255,255,255,.38) 4.3px 5px,transparent 5.4px),
		radial-gradient(circle at 11px calc(100% - 11px),#141618 0 4px,rgba(255,255,255,.38) 4.3px 5px,transparent 5.4px),
		radial-gradient(circle at calc(100% - 11px) calc(100% - 11px),#141618 0 4px,rgba(255,255,255,.38) 4.3px 5px,transparent 5.4px),
		radial-gradient(circle at calc(100% - 11px) 11px,var(--wh-lueur) 0 8px,transparent 14px);
}

/* Cordon de soudure (signature) : séparateur, soulignement de titre, lien entre les étapes. */
.wh-cordon{ display:block; position:relative; height:12px; width:100%; background:var(--wh-cordon-noir) repeat-x left center; }
.wh-cordon--clair{ background-image:var(--wh-cordon-clair); }
.wh-cordon--titre{ width:min(100%,200px); margin:14px 0 14px; }
.wh-cordon--hero{ margin:6px 0 0; }
.wh-etincelle{ position:absolute; right:0; top:50%; width:22px; height:22px; margin-top:-11px; background:var(--wh-etincelle) center/contain no-repeat; filter:drop-shadow(0 0 5px rgba(67,218,243,.85)); animation:wh-avance 1.1s cubic-bezier(.2,.7,.2,1) 1; }
@keyframes wh-avance{ from{ transform:translateX(-160px); opacity:.15; } to{ transform:none; opacity:1; } }
.wh-cordon.est-vu .wh-etincelle{ animation:wh-pulse 1.4s ease-out 1; }
@keyframes wh-pulse{ 0%{ filter:drop-shadow(0 0 2px rgba(67,218,243,.6)); } 40%{ filter:drop-shadow(0 0 12px rgba(67,218,243,1)); } 100%{ filter:drop-shadow(0 0 5px rgba(67,218,243,.85)); } }

/* Titres de section : lettrage d'atelier + cordon (dans la boîte du titre) */
.wh-h2{ font-size:clamp(1.7rem,2.6vw,2.4rem); text-transform:uppercase; letter-spacing:.04em; margin:0 0 .3em; }
.wh-h2::after{ content:""; display:block; width:min(100%,170px); height:12px; margin-top:10px; background:var(--wh-cordon-noir) repeat-x left center; }
.wh-h3{ font-size:1.05rem; text-transform:uppercase; letter-spacing:.1em; margin:0 0 14px; }
.wh-section-tete{ margin-bottom:28px; }
.wh-section-chapo{ font-size:1.15rem; max-width:62ch; margin:0; font-weight:500; }
.wh-section-tete--clair .wh-h2,.wh-section-tete--clair .wh-section-chapo{ color:#fff; }
.wh-section-tete--clair .wh-h2::after{ background-image:var(--wh-cordon-clair); }

/* Boutons */
.wh-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:12px 26px;
	border:2px solid var(--wh-forge); border-radius:0; font-family:var(--wh-texte); font-weight:600; font-size:1.0625rem; letter-spacing:.03em;
	text-decoration:none; cursor:pointer; white-space:nowrap; line-height:1.2; transition:background .15s,color .15s,box-shadow .15s;
}
.wh-btn .wh-picto{ width:20px; height:20px; }
.wh-btn--rouille{ background:var(--wh-rouille); color:#fff; }
.wh-btn--rouille:hover{ background:var(--wh-forge); color:#fff; box-shadow:0 0 0 3px var(--wh-arc); }
.wh-btn--noir{ background:var(--wh-forge); color:#fff; }
.wh-btn--noir:hover{ background:var(--wh-rouille); color:#fff; box-shadow:0 0 0 3px var(--wh-arc); }
.wh-btn--arc{ background:var(--wh-arc); color:var(--wh-forge); }
.wh-btn--arc:hover{ background:#fff; color:var(--wh-forge); }
.wh-btn:disabled{ background:rgba(255,255,255,.16); color:#fff; border-color:rgba(255,255,255,.5); cursor:not-allowed; box-shadow:none; }

/* ======================================================================
   En-tête du site (collant)
   ====================================================================== */
.wh-entete{ position:sticky; top:0; z-index:70; background:var(--wh-acier); border-bottom:1px solid var(--wh-forge); }
.wh-entete-in{ max-width:1360px; margin-inline:auto; padding-inline:20px; height:var(--wh-entete-h); display:flex; align-items:center; gap:18px; }
.wh-entete-logo{ flex:none; display:flex; align-items:center; text-decoration:none; color:var(--wh-forge); }
.wh-logo{ display:flex; align-items:center; gap:10px; }
.wh-logo-symbole{ width:40px; height:40px; display:block; flex:none; }
.wh-logo-nom{ font-family:var(--wh-titre); font-size:1.45rem; letter-spacing:.14em; text-transform:uppercase; line-height:1; }
.wh-nav{ flex:1; min-width:0; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.wh-nav-liste{ list-style:none; margin:0; padding:0; display:flex; flex:1; justify-content:center; gap:0; align-self:stretch; }
.wh-nav-item{ position:relative; display:flex; align-items:center; }
.wh-nav-item>a{ position:relative; display:block; padding:12px 11px 18px; font-weight:600; font-size:.84rem; letter-spacing:.07em; text-transform:uppercase; text-decoration:none; color:var(--wh-forge); white-space:nowrap; }
.wh-nav-item>a:hover{ color:var(--wh-rouille); }
.wh-nav-cordon{ position:absolute; left:11px; bottom:9px; width:40px; height:11px; background:var(--wh-cordon-noir) repeat-x left center/12px 10px; opacity:0; transition:opacity .15s; }
.wh-nav-cordon i{ position:absolute; right:-9px; top:50%; width:16px; height:16px; margin-top:-8px; background:var(--wh-etincelle) center/contain no-repeat; filter:drop-shadow(0 0 4px rgba(67,218,243,.9)); }
.wh-nav-item>a:hover .wh-nav-cordon{ opacity:.55; }
.wh-nav-item.est-actif .wh-nav-cordon{ opacity:1; }
.wh-nav-item.est-actif>a{ color:var(--wh-forge); }
.wh-nav-bas{ flex:none; display:flex; align-items:center; gap:10px; }
.wh-nav-cta{ min-height:46px; padding:10px 20px; font-size:.98rem; }
.wh-nav-loupe{ display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; color:var(--wh-forge); border:1px solid var(--wh-forge); background:#fff; text-decoration:none; }
.wh-nav-loupe:hover{ box-shadow:0 0 0 3px var(--wh-arc); color:var(--wh-forge); }
.wh-nav-loupe span{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.wh-nav-loupe .wh-picto{ width:22px; height:22px; }
.wh-menu-bouton{ display:none; align-items:center; gap:8px; min-height:46px; padding:8px 16px; margin-left:auto; background:var(--wh-forge); color:#fff; border:0; border-radius:0; font-weight:600; font-size:1rem; cursor:pointer; }
.wh-menu-bouton .wh-picto{ width:22px; height:22px; }

@media (max-width:1320px){
	.wh-nav-item>a{ padding-inline:8px; font-size:.8rem; letter-spacing:.05em; }
	.wh-nav-cordon{ left:8px; }
	.wh-nav-cta{ padding-inline:16px; font-size:.92rem; }
	.wh-logo-nom{ font-size:1.3rem; letter-spacing:.1em; }
}
@media (max-width:1179px){
	:root{ --wh-entete-h:60px; }
	.wh-entete-in{ padding-inline:16px; }
	.wh-logo-symbole{ width:34px; height:34px; }
	.wh-logo-nom{ font-size:1.2rem; }
	.wh-js .wh-menu-bouton{ display:inline-flex; }
	.wh-js .wh-nav{ display:none; position:fixed; left:0; right:0; top:var(--wh-entete-h); bottom:0; z-index:69; background:var(--wh-acier); padding:6px 24px 28px; flex-direction:column; align-items:stretch; justify-content:flex-start; overflow-y:auto; gap:0; }
	.wh-js .wh-nav.est-ouvert{ display:flex; }
	.wh-js .wh-nav-liste{ flex:none; flex-direction:column; justify-content:flex-start; align-self:auto; }
	.wh-js .wh-nav-item{ display:block; }
	.wh-js .wh-nav-item>a{ padding:18px 0 14px; font-family:var(--wh-titre); font-weight:400; font-size:1.7rem; letter-spacing:.06em; }
	.wh-js .wh-nav-item::after{ content:""; display:block; height:12px; background:var(--wh-cordon-noir) repeat-x left center; }
	.wh-js .wh-nav-cordon{ display:none; }
	.wh-js .wh-nav-item.est-actif>a{ color:var(--wh-rouille); }
	.wh-js .wh-nav-bas{ flex-direction:column-reverse; align-items:stretch; gap:14px; margin-top:26px; }
	.wh-js .wh-nav-cta{ min-height:58px; font-size:1.15rem; }
	.wh-js .wh-nav-loupe{ width:auto; height:52px; gap:10px; justify-content:flex-start; padding-inline:16px; font-weight:600; }
	.wh-js .wh-nav-loupe span{ position:static; width:auto; height:auto; clip:auto; overflow:visible; }
	body.wh-menu-ouvert{ overflow:hidden; }
	/* sans script : le menu reste visible, sur deux lignes */
	html:not(.wh-js) .wh-entete-in{ height:auto; flex-wrap:wrap; padding-block:10px; }
	html:not(.wh-js) .wh-nav{ flex-basis:100%; flex-wrap:wrap; }
	html:not(.wh-js) .wh-nav-liste{ flex-wrap:wrap; justify-content:flex-start; }
}

/* ======================================================================
   Accueil, 1 — le premier écran (corr-2) : la tôle larmée jusqu'en bas du premier écran ; à droite la PIÈCE
   DÉCOUPÉE (photo d'atelier sortie de la découpe laser : bord gauche crénelé, trous de fixation) sur ≥ 45 % de
   la largeur, du menu jusqu'en bas ; à gauche, aligné sur les sections du dessous, le titre en deux tons, le
   cordon, le chapô sur une bande Noir forge unie, la plaque-formulaire qui mord sur la pièce.
   ====================================================================== */
.wh-hero.wh-section{ padding:0; }
.wh-hero{
	--wh-ck:0px; --wh-titre-fs:clamp(4.5rem,6.1vw,5.75rem);
	--wh-gauche:max(var(--sb-gouttiere),calc((100vw - var(--sb-conteneur)) / 2 + var(--sb-gouttiere)));
	position:relative; overflow:hidden; background:var(--wh-acier); border-bottom:1px solid var(--wh-forge);
	min-height:min(calc(100vh - var(--wh-entete-h) - var(--wh-ck)),860px);
}
html.wh-ck .wh-hero{ --wh-ck:var(--wh-ck-h); }
.wh-bandeau-img{ position:absolute; inset:0; width:100%; height:100% !important; object-fit:cover; z-index:0; }
.wh-hero-in{ position:relative; z-index:2; padding-top:20px; padding-bottom:26px; }
.wh-hero-col{ width:calc(55vw - var(--wh-gauche) - 40px); min-width:0; }
.wh-titre{ display:block; margin:0 0 6px; font-size:var(--wh-titre-fs); line-height:.95; letter-spacing:.02em; text-transform:uppercase; color:var(--wh-forge); }
.wh-titre-l{ display:block; width:fit-content; max-width:100%; padding:.03em .03em .08em; }
.wh-titre-l--2{ color:var(--wh-rouille); -webkit-text-fill-color:var(--wh-rouille); text-shadow:0 1px 0 rgba(255,255,255,.8),0 3px 0 rgba(20,22,24,.28); }
/* La découpe (≥ 72 px de corps seulement) : on voit l'atelier à travers « LE MÉTAL » ; repli : lettres pleines Noir forge. */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
	.wh-titre[style*="--wh-atelier"] .wh-titre-l--1{
		background-image:var(--wh-atelier); background-size:cover; background-position:50% 70%; background-repeat:no-repeat;
		-webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent;
		-webkit-text-stroke:1.6px var(--wh-forge);
		filter:drop-shadow(0 2px 0 rgba(255,255,255,.7)) drop-shadow(0 -1px 0 rgba(20,22,24,.35));
	}
}
.wh-cordon--hero{ max-width:100%; margin:0; }
/* Le chapô : une bande Noir forge unie sous le titre (jamais posé sur le motif larmé, jamais une boîte blanche). */
.wh-chapo{
	margin:12px 0 14px; padding:11px 18px 12px; background:var(--wh-forge); color:#fff; border-left:6px solid var(--wh-rouille);
	box-shadow:0 8px 18px -8px rgba(20,22,24,.55); font-size:1.0625rem; line-height:1.4; font-weight:500;
}
.wh-hero-plaque{ position:relative; z-index:3; width:calc(100% + 72px); max-width:calc(100vw - var(--wh-gauche) - 24px); }

/* La pièce découpée */
.wh-piece{ position:absolute; z-index:1; top:0; right:0; bottom:0; width:45vw; margin:0; filter:drop-shadow(-7px 5px 0 rgba(20,22,24,.32)) drop-shadow(0 16px 22px rgba(20,22,24,.3)); }
.wh-piece-decoupe{
	position:absolute; inset:0; display:block; overflow:hidden; background:var(--wh-forge);
	clip-path:polygon(24px 0,100% 0,100% 100%,24px 100%,24px 90%,0 90%,0 78%,24px 78%,24px 66%,0 66%,0 54%,24px 54%,24px 42%,0 42%,0 30%,24px 30%,24px 18%,0 18%,0 6%,24px 6%);
}
.wh-piece picture{ display:block; position:absolute; inset:0; }
.wh-piece-img{ position:absolute; inset:0; width:100%; height:100% !important; object-fit:cover; object-position:42% 50%; }
/* Trous de fixation : un par patte du crénelage, on voit la tôle au travers (Acier clair, bord intérieur sombre). */
.wh-piece-trous{
	position:absolute; left:0; top:0; bottom:0; width:24px; z-index:2;
	background:radial-gradient(circle at 12px 50%,var(--wh-acier) 0 4.6px,rgba(20,22,24,.85) 5.2px 6.4px,rgba(255,255,255,.35) 6.8px 7.4px,transparent 7.8px) 0 0/24px 24% repeat-y;
}
.wh-preuves-plaque{
	position:absolute; z-index:3; right:28px; bottom:26px; max-width:calc(100% - 96px); padding:12px 22px 12px 26px;
	background:var(--wh-acier); color:var(--wh-forge); box-shadow:inset 1px 1px 0 #fff,inset -1px -2px 0 rgba(20,22,24,.18),0 10px 22px rgba(20,22,24,.45);
}
.wh-preuves-plaque::before{ content:""; position:absolute; inset:0; pointer-events:none; background-image:var(--wh-rivets-petits); }
.wh-preuves{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:4px 18px; font-size:.9375rem; font-weight:500; }
.wh-preuves b{ font-weight:600; font-variant-numeric:tabular-nums; }

/* 701 – 1100 px : une colonne ; lettres pleines en deux tons (corps < 72 px), la pièce sous la plaque. */
@media (max-width:1100px){
	.wh-hero{ display:flex; flex-direction:column; min-height:0; --wh-titre-fs:clamp(2.3rem,7.4vw,4.2rem); }
	.wh-hero-in{ order:1; padding-bottom:18px; }
	.wh-hero-col{ width:auto; }
	.wh-hero-plaque{ width:auto; max-width:none; }
	.wh-titre[style*="--wh-atelier"] .wh-titre-l--1{ background-image:none; color:var(--wh-forge); -webkit-text-fill-color:var(--wh-forge); -webkit-text-stroke:0; filter:none; }
	.wh-piece{ order:2; position:relative; inset:auto; width:auto; height:clamp(170px,36vw,300px); margin:0 var(--sb-gouttiere) 22px; }
	.wh-preuves-plaque{ right:14px; bottom:14px; padding:9px 16px 9px 20px; }
}
@media (max-width:700px){
	.wh-section{ padding:40px 0; }
	.wh-hero.wh-section{ padding:0; }
	.wh-hero-in{ padding-top:14px; }
	.wh-titre{ margin-bottom:6px; }
	.wh-chapo{ margin:10px 0 12px; padding:8px 12px 9px; border-left-width:5px; font-size:.95rem; line-height:1.35; }
	.wh-piece{ height:170px; margin-bottom:18px; }
	.wh-piece-decoupe{ clip-path:polygon(18px 0,100% 0,100% 100%,18px 100%,18px 86%,0 86%,0 62%,18px 62%,18px 38%,0 38%,0 14%,18px 14%); }
	.wh-piece-trous{ width:18px; background:radial-gradient(circle at 9px 50%,var(--wh-acier) 0 3.6px,rgba(20,22,24,.85) 4.2px 5.2px,transparent 5.8px) 0 0/18px 50% repeat-y; }
	.wh-preuves{ gap:2px 12px; font-size:.84rem; }
	.wh-preuves-plaque{ left:30px; right:10px; bottom:10px; max-width:none; padding:7px 12px 7px 16px; }
}

/* ======================================================================
   La plaque-formulaire « Chiffrer mon ouvrage » (Rouille, rivetée)
   ====================================================================== */
.wh-form-carte{ background:var(--wh-rouille); color:#fff; padding:18px 26px 16px; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre-forte); scroll-margin-top:calc(var(--wh-entete-h) + 16px); }
.wh-form-tete{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; }
.wh-form-titre{ margin:0; font-family:var(--wh-titre); font-size:1.25rem; letter-spacing:.07em; text-transform:uppercase; line-height:1.1; }
.wh-prog{ display:flex; align-items:center; flex:none; }
.wh-prog i{ position:relative; display:block; flex:none; width:14px; height:14px; border-radius:50%; background:var(--wh-forge); border:2px solid rgba(255,255,255,.6); }
.wh-prog i+i{ margin-left:28px; }
.wh-prog i+i::before{ content:""; position:absolute; right:100%; top:50%; width:26px; height:10px; margin-top:-5px; background:var(--wh-cordon-clair) repeat-x center/12px 10px; }
.wh-prog i.est-faite{ background:#fff; border-color:#fff; }
.wh-prog i.est-en-cours{ background:var(--wh-arc); border-color:var(--wh-arc); box-shadow:0 0 0 3px rgba(67,218,243,.4); }

.wh-form-etape{ display:none; }
.wh-form-etape.est-active{ display:block; }
.wh-form-question{ margin:0 0 10px; font-weight:600; font-size:1.0625rem; line-height:1.3; }
.wh-form-num{ display:inline-block; margin-right:8px; padding:1px 7px; border:1px solid rgba(255,255,255,.65); font-family:var(--wh-titre); font-size:.78rem; letter-spacing:.1em; vertical-align:1px; }
.wh-form-sous{ margin:10px 0 6px; font-weight:600; font-size:.875rem; letter-spacing:.1em; text-transform:uppercase; }
.wh-groupe[hidden]{ display:none; }

.wh-tuiles{ display:grid; gap:8px; }
.wh-tuiles--n5{ grid-template-columns:repeat(5,minmax(0,1fr)); }
.wh-tuiles--n4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.wh-tuiles--n3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.wh-tuiles--n2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.wh-tuile{
	appearance:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:60px; padding:10px 6px;
	background:rgba(255,255,255,.1); color:#fff; border:1.5px solid rgba(255,255,255,.62); border-radius:0;
	font-weight:600; font-size:.9375rem; line-height:1.15; text-align:center; cursor:pointer; transition:background .15s,box-shadow .15s,color .15s;
}
.wh-tuiles--n5:not(.wh-tuiles--mat) .wh-tuile{ min-height:82px; }
.wh-tuile .wh-picto{ width:28px; height:28px; flex:none; }
.wh-tuile:hover{ background:rgba(255,255,255,.2); box-shadow:0 0 0 2px var(--wh-arc); }
.wh-tuile[aria-pressed="true"]{ background:var(--wh-arc); color:var(--wh-forge); border-color:var(--wh-forge); box-shadow:none; }

.wh-dim{ position:relative; max-width:300px; margin:0 0 8px; }
.wh-dim input{ width:100%; height:52px; padding:0 52px 0 16px; background:#fff; color:var(--wh-forge); border:2px solid var(--wh-forge); border-radius:0; font-family:var(--wh-texte); font-weight:600; font-size:1.25rem; font-variant-numeric:tabular-nums; }
.wh-dim-unite{ position:absolute; right:16px; top:50%; transform:translateY(-50%); font-weight:600; color:var(--wh-forge); }

.wh-form-pied{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px; }
.wh-lien-retour{ display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:8px 6px; background:none; border:0; color:#fff; font-weight:600; font-size:1rem; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.wh-lien-retour .wh-picto{ width:18px; height:18px; }
.wh-lien-retour:hover{ color:var(--wh-arc); }
.wh-form-pied .wh-btn{ min-width:150px; }

/* étape 4 : la réponse */
.wh-rep{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6px 24px; align-items:start; }
.wh-rep-resume{ margin:0 0 2px; font-size:.9375rem; font-weight:500; }
.wh-rep-prix{ margin:0 0 4px; font-weight:600; font-size:2rem; line-height:1.1; font-variant-numeric:tabular-nums; }
.wh-rep-note{ margin:0; font-size:.875rem; line-height:1.4; }
.wh-reperes{ list-style:none; margin:0 0 8px; padding:0; display:grid; gap:6px; }
.wh-reperes li{ position:relative; padding-left:16px; font-size:.9375rem; line-height:1.35; }
.wh-reperes li::before{ content:""; position:absolute; left:0; top:.42em; width:8px; height:8px; background:var(--wh-arc); }
.wh-reperes a{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.wh-reperes a:hover{ color:var(--wh-arc); }
.wh-rep-lien{ display:inline-flex; align-items:center; gap:8px; padding:8px 14px; background:#fff; color:var(--wh-forge); border:2px solid var(--wh-forge); font-weight:600; font-size:.9375rem; text-decoration:none; }
.wh-rep-lien .wh-picto{ width:18px; height:18px; }
.wh-rep-lien:hover{ background:var(--wh-arc); color:var(--wh-forge); }
.wh-rep-form{ margin-top:10px; padding-top:10px; border-top:1px dashed rgba(255,255,255,.55); }
.wh-rep-champs{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr) minmax(0,.7fr); gap:8px; }
.wh-rep-champs input,
.wh-contact-champs input,
.wh-contact-champs textarea,
.wh-recherche input{
	width:100%; height:46px; padding:0 12px; background:#fff; color:var(--wh-forge); border:2px solid var(--wh-forge); border-radius:0; font-family:var(--wh-texte); font-size:1rem;
}
.wh-rep-champs input::placeholder,.wh-contact-champs input::placeholder,.wh-contact-champs textarea::placeholder,.wh-recherche input::placeholder{ color:rgba(20,22,24,.72); opacity:1; }
.wh-rep-bas{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:8px; }
.wh-rep-consent{ display:flex; align-items:flex-start; gap:8px; flex:1; min-width:0; font-size:.8125rem; line-height:1.3; cursor:pointer; }
.wh-rep-consent input{ flex:none; width:20px; height:20px; margin:1px 0 0; accent-color:var(--wh-arc); }
.wh-rep-consent a{ color:#fff; }
.wh-form-pied--rep{ margin:0; flex:none; gap:6px; }
.wh-rep-msg{ margin:0; min-height:0; font-size:.9rem; font-weight:600; }
.wh-rep-msg:not(:empty){ margin-top:8px; padding:6px 10px; background:var(--wh-forge); color:#fff; border-left:5px solid var(--wh-arc); }
.wh-form-carte.est-envoye .wh-rep-champs,
.wh-form-carte.est-envoye .wh-rep-bas{ display:none; }

@media (max-width:900px){
	.wh-form-carte{ padding:16px 16px 14px; }
}
@media (max-width:700px){
	.wh-form-titre{ font-size:1.1rem; }
	.wh-tuiles--n4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
	.wh-tuiles--mat{ grid-template-columns:repeat(2,minmax(0,1fr)); }
	.wh-tuiles--mat .wh-tuile:last-child:nth-child(odd){ grid-column:span 2; }
	.wh-rep{ grid-template-columns:minmax(0,1fr); }
	.wh-rep-champs{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
	.wh-rep-champs .wh-champ-nom{ order:1; }
	.wh-rep-champs .wh-champ-cp{ order:2; }
	.wh-rep-champs input[type="email"]{ order:3; grid-column:1/-1; }
	.wh-rep-bas{ flex-direction:column; align-items:stretch; }
	.wh-form-pied--rep{ justify-content:space-between; }
	.wh-form-pied--rep .wh-btn{ flex:1; }
}

/* variante compacte : la barre latérale des articles (≈ 330 px de large) */
.wh-form-carte--rail{ padding:16px 16px 14px; box-shadow:var(--wh-ombre); }
.wh-form-carte--rail .wh-form-titre{ font-size:1rem; }
.wh-form-carte--rail .wh-form-question{ font-size:1rem; margin-bottom:8px; }
.wh-form-carte--rail .wh-tuiles--n5{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.wh-form-carte--rail .wh-tuiles--n5:not(.wh-tuiles--mat) .wh-tuile{ min-height:50px; flex-direction:row; justify-content:flex-start; text-align:left; gap:8px; padding:6px 10px; font-size:.9rem; }
.wh-form-carte--rail .wh-tuiles--n5:not(.wh-tuiles--mat) .wh-tuile:nth-child(n){ grid-column:auto; }
.wh-form-carte--rail .wh-tuiles--n5:not(.wh-tuiles--mat) .wh-tuile:last-child{ grid-column:1/-1; }
.wh-form-carte--rail .wh-tuile .wh-picto{ width:22px; height:22px; }
.wh-form-carte--rail .wh-tuiles--n4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.wh-form-carte--rail .wh-tuiles--mat{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.wh-form-carte--rail .wh-tuiles--mat .wh-tuile:last-child:nth-child(odd){ grid-column:1/-1; }
.wh-form-carte--rail .wh-tuiles--n3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.wh-form-carte--rail .wh-tuile{ min-height:46px; padding:6px 6px; font-size:.875rem; }
.wh-form-carte--rail .wh-form-pied{ margin-top:10px; }
.wh-form-carte--rail .wh-form-pied .wh-btn{ min-width:0; padding-inline:16px; min-height:48px; font-size:1rem; }
.wh-form-carte--rail .wh-rep{ grid-template-columns:minmax(0,1fr); }
.wh-form-carte--rail .wh-rep-prix{ font-size:1.6rem; }
.wh-form-carte--rail .wh-reperes{ display:none; }
.wh-form-carte--rail .wh-rep-champs{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.wh-form-carte--rail .wh-rep-champs .wh-champ-nom{ order:1; }
.wh-form-carte--rail .wh-rep-champs .wh-champ-cp{ order:2; }
.wh-form-carte--rail .wh-rep-champs input[type="email"]{ order:3; grid-column:1/-1; }
.wh-form-carte--rail .wh-rep-bas{ flex-direction:column; align-items:stretch; }
.wh-form-carte--rail .wh-form-pied--rep{ justify-content:space-between; }
.wh-form-carte--rail .wh-form-pied--rep .wh-btn{ flex:1; }
.wh-form-carte--contact{ max-width:none; }

/* ----- Plaque-formulaire COMPACTE : barre latérale des articles (1440) et tous les formulaires sous 700 px -----
   Tuiles en 2 colonnes (pictogramme à gauche, ~44 px de haut), « Rampe / main courante » sur 2 lignes max ;
   à l'étape 1, la 5e tuile (Verrière) et le bouton Suivant partagent la dernière rangée : une rangée de gagnée. */
.wh-form-carte--rail{ padding:14px 16px 14px; }
.wh-form-carte--rail .wh-form-tete{ gap:12px; margin-bottom:8px; }
.wh-form-carte--rail .wh-form-titre{ font-size:.95rem; letter-spacing:.04em; white-space:nowrap; }
.wh-form-carte--rail .wh-prog i{ width:12px; height:12px; }
.wh-form-carte--rail .wh-prog i+i{ margin-left:16px; }
.wh-form-carte--rail .wh-prog i+i::before{ width:16px; background-size:12px 10px; }
.wh-form-carte--rail .wh-form-question{ margin-bottom:8px; }
.wh-form-carte--rail .wh-tuiles--n5:not(.wh-tuiles--mat) .wh-tuile{ min-height:44px; padding:5px 10px; font-size:.875rem; line-height:1.12; }
.wh-form-carte--rail .wh-tuiles--n5:not(.wh-tuiles--mat) .wh-tuile:last-child{ grid-column:auto; }
.wh-form-carte--rail .wh-tuile{ min-height:44px; }
.wh-form-carte--rail [data-wh-etape="1"] .wh-form-pied{ margin-top:-44px; justify-content:flex-end; pointer-events:none; }
.wh-form-carte--rail [data-wh-etape="1"] .wh-form-pied .wh-btn{ pointer-events:auto; width:calc(50% - 4px); min-height:44px; height:44px; }

@media (max-width:700px){
	.wh-form-carte{ padding:14px 14px 14px; }
	.wh-form-tete{ gap:10px; margin-bottom:8px; }
	.wh-form-titre{ font-size:.95rem; letter-spacing:.04em; white-space:nowrap; }
	.wh-prog i{ width:12px; height:12px; }
	.wh-prog i+i{ margin-left:16px; }
	.wh-prog i+i::before{ width:16px; background-size:12px 10px; }
	.wh-form-question{ margin-bottom:8px; font-size:1rem; }
	.wh-tuiles--n5{ grid-template-columns:repeat(2,minmax(0,1fr)); }
	.wh-tuiles--n5:not(.wh-tuiles--mat) .wh-tuile{ flex-direction:row; justify-content:flex-start; text-align:left; gap:8px; min-height:44px; padding:5px 10px; font-size:.875rem; line-height:1.12; }
	.wh-tuiles--n5:not(.wh-tuiles--mat) .wh-tuile .wh-picto{ width:22px; height:22px; }
	.wh-tuile{ min-height:44px; }
	[data-wh-etape="1"] .wh-form-pied{ margin-top:-44px; justify-content:flex-end; pointer-events:none; }
	[data-wh-etape="1"] .wh-form-pied .wh-btn{ pointer-events:auto; width:calc(50% - 4px); min-width:0; min-height:44px; height:44px; padding-inline:12px; }
}
@media (max-width:359px){
	.wh-form-titre,.wh-form-carte--rail .wh-form-titre{ white-space:normal; }
}


/* ======================================================================
   Cartes — la plaque rivetée claire
   ====================================================================== */
.wh-plaques{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:26px 24px; align-items:start; }
.wh-plaque{ grid-column:span 2; min-width:0; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); transition:transform .18s ease,box-shadow .18s ease; }
.wh-plaque--large{ grid-column:span 6; }
.wh-plaque--demi{ grid-column:span 3; }
.wh-plaque:hover,.wh-plaque:focus-within{ transform:translateY(-2px); box-shadow:var(--wh-ombre-forte); --wh-tr:#43DAF3; --wh-lueur:rgba(67,218,243,.65); }
.wh-plaque-lien{ display:block; color:var(--wh-forge); text-decoration:none; }
.wh-plaque-lien:hover{ color:var(--wh-forge); }
.wh-plaque-photo{ position:relative; display:block; aspect-ratio:3/2; overflow:hidden; background:var(--wh-acier); border-bottom:1px solid var(--wh-forge); }
.wh-plaque-photo img,.wh-plaque-photo .wh-repli{ width:100%; height:100%; object-fit:cover; }
.wh-plaque-corps{ display:flex; flex-direction:column; gap:7px; padding:14px 18px 16px; }
.wh-plaque-rub{ font-weight:600; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--wh-rouille); }
.wh-plaque-titre{ margin:0; font-size:1.3rem; line-height:1.2; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.wh-plaque-extrait{ font-size:.9688rem; line-height:1.45; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; color:var(--wh-forge); }
.wh-plaque-pied{ display:flex; align-items:center; gap:8px; font-size:.8438rem; font-weight:500; color:var(--wh-doux); }
.wh-plaque--h .wh-plaque-lien{ display:grid; grid-template-columns:132px minmax(0,1fr); }
.wh-plaque--h .wh-plaque-photo{ aspect-ratio:auto; min-height:150px; border-bottom:0; border-right:1px solid var(--wh-forge); }
.wh-plaque--h .wh-plaque-photo img,.wh-plaque--h .wh-plaque-photo .wh-repli{ position:absolute; inset:0; }
.wh-plaque--h .wh-plaque-corps{ padding:12px 16px 12px 16px; gap:5px; }
.wh-plaque--h .wh-plaque-titre{ font-size:1.05rem; }
.wh-plaque--h .wh-plaque-extrait{ font-size:.9rem; -webkit-line-clamp:2; }
.wh-plaques--h .wh-plaque{ grid-column:span 2; }

/* Repli d'une photo manquante : aplat Acier clair + cordon dessiné, jamais une case vide */
.wh-repli{ position:relative; display:block; width:100%; min-height:120px; background:var(--wh-acier); }
.wh-repli-cordon{ position:absolute; left:10%; right:10%; top:50%; height:12px; margin-top:-6px; background:var(--wh-cordon-noir) repeat-x center; }

/* Le guide « à la une » d'une rubrique */
.wh-une{ margin-bottom:30px; }
.wh-plaque--une{ grid-column:auto; }
.wh-plaque--une .wh-plaque-lien{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
.wh-plaque--une .wh-plaque-photo{ aspect-ratio:auto; height:auto; min-height:clamp(320px,60vh,520px); border-bottom:0; border-right:1px solid var(--wh-forge); }
.wh-plaque--une .wh-plaque-photo img,.wh-plaque--une .wh-plaque-photo .wh-repli{ position:absolute; inset:0; }
.wh-plaque--une .wh-plaque-corps{ justify-content:center; padding:30px 36px 32px; gap:12px; }
.wh-plaque--une .wh-plaque-titre{ font-size:clamp(1.5rem,2.1vw,1.95rem); -webkit-line-clamp:4; }
.wh-plaque--une .wh-plaque-extrait{ font-size:1.0625rem; line-height:1.5; -webkit-line-clamp:3; }
.wh-plaque-auteur{ display:flex; align-items:center; gap:10px; margin-top:2px; font-size:.9375rem; }
.wh-plaque-auteur b{ font-weight:600; }
.wh-plaque-auteur .wh-avatar-cadre{ width:40px; height:40px; border:1px solid var(--wh-forge); }
.wh-plaque-cta{ align-self:flex-start; display:inline-flex; align-items:center; gap:10px; margin-top:6px; min-height:46px; padding:10px 20px; background:var(--wh-rouille); color:#fff; border:2px solid var(--wh-forge); font-weight:600; font-size:1rem; }
.wh-plaque-cta .wh-picto{ width:18px; height:18px; }
.wh-plaque--une:hover .wh-plaque-cta,.wh-plaque--une:focus-within .wh-plaque-cta{ box-shadow:0 0 0 3px var(--wh-arc); }

@media (max-width:1000px){
	.wh-plaques{ grid-template-columns:repeat(4,minmax(0,1fr)); }
	.wh-plaque,.wh-plaques--h .wh-plaque{ grid-column:span 2; }
	.wh-plaque--large{ grid-column:span 4; }
	.wh-plaque--demi{ grid-column:span 2; }
}
@media (max-width:680px){
	.wh-plaques{ grid-template-columns:minmax(0,1fr); gap:22px; }
	.wh-plaque,.wh-plaque--large,.wh-plaque--demi,.wh-plaques--h .wh-plaque{ grid-column:auto; }
	.wh-plaque--une .wh-plaque-lien{ display:block; }
	.wh-plaque--une .wh-plaque-photo{ min-height:0; height:clamp(200px,52vw,300px); border-right:0; border-bottom:1px solid var(--wh-forge); }
	.wh-plaque--une .wh-plaque-corps{ padding:18px; }
}

/* ======================================================================
   Accueil, 2 — les gabarits de découpe (quinconce, tôle perforée)
   ====================================================================== */
.wh-gabarits{ border-bottom:1px solid var(--wh-forge); }
.wh-gab{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:18px; align-items:start; }
.wh-gab-item:nth-child(even){ margin-top:40px; }
.wh-gab-lien{ display:block; padding:8px 8px 14px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); color:var(--wh-forge); text-decoration:none; transition:transform .18s ease,box-shadow .18s ease; }
.wh-gab-lien:hover,.wh-gab-lien:focus-visible{ transform:translateY(-2px); box-shadow:var(--wh-ombre-forte); color:var(--wh-forge); --wh-tr:#43DAF3; --wh-lueur:rgba(67,218,243,.65); }
.wh-gab-photo{ position:relative; display:block; aspect-ratio:4/3; overflow:hidden; background:var(--wh-acier); border:1px solid var(--wh-forge); }
.wh-gab-img,.wh-gab-photo .wh-repli{ width:100%; height:100%; object-fit:cover; }
.wh-poincon{ position:absolute; left:8px; bottom:8px; min-width:44px; height:34px; padding:0 8px; display:flex; align-items:center; justify-content:center; background:var(--wh-acier); border:1px solid var(--wh-forge); font-family:var(--wh-titre); font-size:1.1rem; letter-spacing:.08em; color:var(--wh-forge); text-shadow:0 1px 0 rgba(255,255,255,.9),0 -1px 0 rgba(20,22,24,.3); }
.wh-gab-nom{ display:block; margin:10px 4px 2px; font-family:var(--wh-titre); font-size:1.02rem; line-height:1.2; }
.wh-gab-nb{ display:block; margin:0 4px; font-size:.875rem; font-weight:600; color:var(--wh-rouille); }

@media (max-width:1100px){
	.wh-gab{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
	.wh-gab-item:nth-child(even){ margin-top:0; }
	.wh-gab-item:nth-child(3n+2){ margin-top:34px; }
}
@media (max-width:640px){
	.wh-gab{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
	.wh-gab-item:nth-child(3n+2){ margin-top:0; }
	.wh-gab-item:nth-child(even){ margin-top:28px; }
}

/* ======================================================================
   Accueil, 3 — le nuancier des finitions (plaquettes suspendues à un fil, fond Rouille)
   ====================================================================== */
.wh-nuancier{ background:var(--wh-rouille); color:#fff; border-bottom:1px solid var(--wh-forge); padding-bottom:64px; }
.wh-fil{ position:relative; height:2px; margin:4px 0 0; background:#fff; }
.wh-fil::before,.wh-fil::after{ content:""; position:absolute; top:-5px; width:12px; height:12px; border-radius:50%; background:var(--wh-forge); border:2px solid #fff; }
.wh-fil::before{ left:-6px; }
.wh-fil::after{ right:-6px; }
.wh-plaquettes{ list-style:none; margin:0; padding:0 6px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; align-items:start; }
.wh-plaquette{ position:relative; display:flex; flex-direction:column; align-items:center; transform-origin:50% 0; }
.wh-plaquette--1{ transform:rotate(-1.5deg); }
.wh-plaquette--2{ transform:rotate(1.1deg); }
.wh-plaquette--3{ transform:rotate(-.8deg); }
.wh-plaquette--4{ transform:rotate(1.6deg); }
.wh-plaquette-ficelle{ display:block; width:2px; height:26px; background:#fff; }
.wh-plaquette--2 .wh-plaquette-ficelle{ height:38px; }
.wh-plaquette--3 .wh-plaquette-ficelle{ height:30px; }
.wh-plaquette--4 .wh-plaquette-ficelle{ height:44px; }
.wh-plaquette-corps{ width:100%; display:flex; flex-direction:column; gap:6px; padding:12px 12px 14px; background:var(--wh-acier); color:var(--wh-forge); border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre-forte); }
.wh-plaquette-photo{ display:block; aspect-ratio:3/2; overflow:hidden; border:1px solid var(--wh-forge); background:#fff; }
.wh-plaquette-img,.wh-plaquette-photo .wh-repli{ width:100%; height:100%; object-fit:cover; }
.wh-plaquette-nom{ margin-top:4px; font-family:var(--wh-titre); font-size:1.12rem; letter-spacing:.06em; text-transform:uppercase; line-height:1.15; }
.wh-plaquette-repere{ font-weight:600; font-size:1rem; line-height:1.3; }
.wh-plaquette-lien{ display:inline-flex; align-items:center; gap:6px; margin-top:2px; font-weight:600; font-size:.9375rem; color:var(--wh-forge); text-decoration:underline; text-underline-offset:3px; }
.wh-plaquette-lien .wh-picto{ width:18px; height:18px; }
.wh-plaquette-lien:hover{ color:var(--wh-rouille); }

@media (max-width:1000px){
	.wh-plaquettes{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 18px; }
}
@media (max-width:480px){
	.wh-plaquettes{ gap:6px 12px; padding:0; }
	.wh-plaquette-corps{ padding:8px 8px 10px; }
	.wh-plaquette-nom{ font-size:.98rem; }
	.wh-plaquette-repere{ font-size:.9rem; }
}

/* ======================================================================
   Accueil, 4 — derniers guides ; 5 — la cote ; 6 — l'atelier de la rédaction
   ====================================================================== */
.wh-derniers{ border-bottom:1px solid var(--wh-forge); }

.wh-cote{ border-bottom:1px solid var(--wh-forge); }
.wh-cote-grille{ display:grid; grid-template-columns:minmax(0,340px) minmax(0,1fr); gap:56px; align-items:center; }
.wh-cote-fig{ margin:0; padding:10px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); }
.wh-cote-img{ width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; }
.wh-cote-svg{ position:absolute; left:10px; top:10px; width:calc(100% - 20px); height:calc(100% - 20px); z-index:2; }
.wh-cote-trait{ fill:none; stroke:var(--wh-forge); stroke-width:1.4; vector-effect:non-scaling-stroke; }
.wh-cote-fleche{ fill:var(--wh-forge); stroke:none; }
.wh-cote-trait{ stroke-width:2; }
.wh-cote-rappel{ stroke-width:1.4; }
/* étiquette centrée sur la ligne de cote (x = 6 %, milieu entre lisse haute et dalle = 60,3 % de la photo) */
.wh-cote-etiq{ position:absolute; z-index:3; left:calc(10px + (100% - 20px) * .06); top:calc(10px + (100% - 20px) * .603); transform:translate(-50%,-50%) rotate(-90deg); padding:2px 10px; background:#fff; border:1px solid var(--wh-forge); font-weight:600; font-size:.875rem; white-space:nowrap; letter-spacing:.04em; }
.wh-reperes-cote{ list-style:none; margin:22px 0 0; padding:0; display:grid; gap:14px; }
.wh-repere-cote{ display:grid; grid-template-columns:44px minmax(0,1fr); gap:16px; align-items:start; padding:14px 18px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); }
.wh-repere-cote-num{ display:flex; align-items:center; justify-content:center; width:44px; height:44px; background:var(--wh-forge); color:#fff; font-family:var(--wh-titre); font-size:1.25rem; }
.wh-repere-cote h3{ margin:0 0 4px; font-size:1.15rem; }
.wh-repere-cote p{ margin:0 0 6px; font-size:.98rem; line-height:1.45; }
.wh-repere-cote a{ display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:.9375rem; }
.wh-repere-cote a .wh-picto{ width:18px; height:18px; }

.wh-atelier-redac{ border-top:0; }
.wh-atelier-grille{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:48px; align-items:center; }
.wh-atelier-texte .wh-section-chapo{ margin-bottom:20px; }
.wh-equipe{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.wh-badge{ background:#fff; border:1px solid var(--wh-forge); padding:16px; box-shadow:var(--wh-ombre); }
.wh-badge-lien{ display:flex; align-items:center; gap:14px; color:var(--wh-forge); text-decoration:none; }
.wh-badge-lien:hover{ color:var(--wh-forge); }
.wh-badge:hover{ --wh-tr:#43DAF3; --wh-lueur:rgba(67,218,243,.65); }
.wh-badge-photo{ flex:none; width:88px; height:88px; overflow:hidden; border:1px solid var(--wh-forge); background:var(--wh-acier); }
.wh-badge-photo img,.wh-badge-photo svg{ width:100%; height:100%; object-fit:cover; display:block; }
.wh-badge-texte{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.wh-badge-texte strong{ font-family:var(--wh-titre); font-weight:400; font-size:1.15rem; line-height:1.2; }
.wh-badge-texte small{ font-size:.875rem; font-weight:600; color:var(--wh-rouille); }
.wh-badge-bio{ margin:12px 0 0; padding-top:12px; border-top:1px dashed var(--wh-filet); font-size:.9688rem; line-height:1.5; }
.wh-equipe--bios .wh-badge-photo{ width:112px; height:112px; }

@media (max-width:900px){
	.wh-cote-grille{ grid-template-columns:minmax(0,1fr); gap:28px; }
	.wh-cote-fig{ width:min(100%,320px); margin-inline:auto; }
	.wh-atelier-grille{ grid-template-columns:minmax(0,1fr); gap:28px; }
}
@media (max-width:560px){
	.wh-equipe{ grid-template-columns:minmax(0,1fr); }
	.wh-badge-photo{ width:76px; height:76px; }
	.wh-equipe--bios .wh-badge-photo{ width:88px; height:88px; }
}

/* ======================================================================
   Pied de page (bloc figé blocs/footer.php) — une seule tôle Rouille rivetée
   ====================================================================== */
.sbt-footer{ background:var(--wh-acier); color:#fff; padding:34px 0 30px; border-top:1px solid var(--wh-forge); }
.sbt-footer .sbt-conteneur{ width:calc(100% - 32px); max-width:calc(var(--sb-conteneur) - 48px); margin-inline:auto; padding:30px 38px 22px; background:var(--wh-rouille); border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre-forte); }
.sbt-footer-grille{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px 40px; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,.3); }
.sbt-footer-colonne:first-child{ display:flex; align-items:center; flex-wrap:wrap; gap:10px 20px; }
.sbt-footer-logo{ display:flex; align-items:center; gap:12px; margin:0; color:#fff; }
.sbt-footer-logo .wh-logo-nom{ color:#fff; font-size:1.45rem; }
.wh-logo-symbole--pied{ width:44px; height:44px; filter:brightness(0) invert(1); }
.sbt-footer-desc{ margin:0; max-width:none; color:#fff; font-size:1rem; }
.sbt-footer-colonne .sbt-t4{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; margin:0; }
.sbt-footer-colonne ul{ flex-direction:row; flex-wrap:wrap; gap:6px 26px; }
.sbt-footer a{ color:#fff; font-weight:600; font-size:1rem; text-decoration:underline; text-underline-offset:4px; }
.sbt-footer a:hover{ color:var(--wh-arc); }
.sbt-footer-colonne ul a{ font-size:1rem; display:inline-block; padding:8px 0; }
.sbt-footer-bas{ padding-top:16px; color:#fff; font-size:.9rem; }
.sbt-footer-bas span{ color:#fff; }
@media (max-width:700px){
	.sbt-footer .sbt-conteneur{ padding:26px 20px 18px; }
	.sbt-footer-colonne:first-child{ flex-direction:column; align-items:flex-start; }
}

/* Boutons des blocs figés (cookies, boîte auteur, pied) : tôle, angles droits */
.sbt-btn{ border-radius:0; background:var(--wh-rouille); color:#fff; border:2px solid var(--wh-forge); font-family:var(--wh-texte); font-weight:600; letter-spacing:.02em; }
.sbt-btn:hover{ transform:none; box-shadow:0 0 0 3px var(--wh-arc); color:#fff; }
.sbt-btn--fantome{ background:transparent; border:2px solid #fff; color:#fff; }
.sbt-footer a.sbt-btn,.sbt-footer a.sbt-btn:hover{ color:#fff; text-decoration:none; }

/* Bandeau cookies : barre FINE EN HAUT de page (40 px à 1440, 56 px à 390), Noir forge, texte + 2 boutons de même
   poids sur une ligne. Sa place est réservée dès le premier affichage (html.wh-ck, posé dans <head>) : elle ne
   recouvre ni bouton ni texte, ne fait rien sauter et ne laisse aucun blanc sous le pied. Elle disparaît au clic. */
:root{ --wh-ck-h:40px; }
html.wh-ck body{ padding-top:var(--wh-ck-h); }
html.wh-ck .sbt-cookies{ display:flex; }
.sbt-cookies{
	position:absolute; top:0; left:0; right:0; bottom:auto; z-index:80; height:var(--wh-ck-h); max-height:none; overflow:hidden;
	padding:0 max(20px,calc((100% - 1320px) / 2)); gap:16px; border-radius:0; box-shadow:none;
	background:var(--wh-forge); color:#fff; border-bottom:2px solid var(--wh-arc);
}
.sbt-cookies p{ font-size:.875rem; line-height:1.25; }
.sbt-cookies-actions{ gap:8px; }
.sbt-cookies .sbt-btn{ height:30px; min-height:30px; padding:0 16px; font-size:.8125rem; border-width:1.5px; }
.sbt-cookies .sbt-btn--fantome{ border-color:rgba(255,255,255,.85); }
@media (max-width:700px){
	:root{ --wh-ck-h:56px; }
	.sbt-cookies{ padding:0 10px; gap:10px; }
	.sbt-cookies p{ font-size:.8125rem; line-height:1.3; }
	.sbt-cookies .sbt-btn{ height:36px; min-height:36px; padding:0 11px; }
}

/* ======================================================================
   Article — en-tête DA §9, corps, barre latérale
   ====================================================================== */
.wh-art-entete{ position:relative; z-index:2; background:var(--wh-rouille); color:#fff; border-bottom:1px solid var(--wh-forge); }
.wh-art-grille{ display:grid; grid-template-columns:minmax(0,1fr) var(--sb-rail); column-gap:48px; align-items:end; }
.wh-art-grille--seul{ grid-template-columns:minmax(0,1fr); }
.wh-art-texte{ min-width:0; align-self:start; padding:4px 0 40px; }
.wh-art-entete .sbt-fil-ariane{ padding-block:14px 8px; font-size:.875rem; color:rgba(255,255,255,.92); }
.wh-art-entete .sbt-fil-ariane a{ color:rgba(255,255,255,.92); text-decoration:underline; text-underline-offset:3px; }
.wh-art-entete .sbt-fil-ariane a:hover{ color:#fff; }
.wh-art-pastille{ display:inline-block; margin:4px 0 0; padding:5px 12px; border:1px solid rgba(255,255,255,.75); color:#fff; text-decoration:none; font-weight:600; font-size:.8125rem; letter-spacing:.1em; text-transform:uppercase; }
.wh-art-pastille:hover{ background:#fff; color:var(--wh-forge); }
.wh-art-titre{ margin:12px 0 0; font-size:clamp(1.5rem,2.9vw,2.75rem); line-height:1.12; color:#fff; text-wrap:balance; }
.wh-art-entete .wh-cordon--titre{ margin:16px 0 14px; }
.wh-art-chapo{ margin:0 0 16px; max-width:62ch; font-size:1.15rem; line-height:1.5; color:#fff; }
.wh-art-meta{ display:flex; align-items:center; gap:14px; margin-top:4px; }
.wh-art-meta .wh-avatar-cadre{ width:46px; height:46px; border:1px solid #fff; }
.wh-art-meta-texte{ display:flex; flex-direction:column; gap:1px; font-size:.9375rem; }
.wh-art-auteur{ color:#fff; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.wh-art-auteur:hover{ color:var(--wh-arc); }
.wh-art-dates{ color:rgba(255,255,255,.95); }
.wh-art-photo{ position:relative; z-index:3; align-self:end; margin-bottom:-48px; width:100%; }
.wh-art-cadre{ position:relative; padding:10px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre-forte); }
.wh-art-cadre img{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.wh-equerre{ position:absolute; left:-16px; bottom:-16px; z-index:5; width:58px; height:58px; border-left:11px solid var(--wh-forge); border-bottom:11px solid var(--wh-forge); pointer-events:none; box-shadow:2px 3px 0 rgba(20,22,24,.18); }
.wh-equerre::after{ content:""; position:absolute; left:-7px; bottom:34px; width:3px; height:3px; border-radius:50%; background:#fff; box-shadow:0 0 0 1px rgba(255,255,255,.5); }

.wh-art--photo .sbt-article-mise-en-page{ padding-top:68px; }
.sbt-article-mise-en-page{
	display:grid; grid-template-columns:minmax(0,1fr) var(--sb-rail); column-gap:48px; row-gap:32px; justify-content:normal; align-items:start;
	max-width:var(--sb-conteneur); margin-inline:auto; padding:40px var(--sb-gouttiere) 64px;
}
.sbt-article-principal{ min-width:0; padding:38px 44px 34px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); }
.sbt-rail{ position:sticky; top:calc(var(--wh-entete-h) + 14px); align-self:start; min-width:0; display:flex; flex-direction:column; gap:16px; padding-left:0; border-left:0; }
.sbt-rail.est-long{ position:relative; top:auto; }
.wh-rail-form{ order:-1; }
.sbt-rail-carte{ padding:0; background:transparent; border:0; }
.sbt-rail .sbt-sommaire{ box-shadow:var(--wh-ombre); }

/* Typographie du corps */
.sbt-article-corps{ max-width:none; font-size:1.125rem; line-height:1.7; color:var(--wh-forge); }
.sbt-article-corps>*:first-child{ margin-top:0; }
.sbt-article-corps p{ margin:0 0 1.2em; }
.sbt-article-corps h2{ margin:2em 0 .7em; font-size:clamp(1.5rem,2.2vw,2rem); line-height:1.15; text-transform:uppercase; letter-spacing:.03em; scroll-margin-top:calc(var(--wh-entete-h) + 20px); }
.sbt-article-corps h2::after{ content:""; display:block; width:min(100%,130px); height:12px; margin-top:8px; background:var(--wh-cordon-noir) repeat-x left center; }
.sbt-article-corps h3{ margin:1.7em 0 .45em; font-size:1.3rem; line-height:1.2; }
.sbt-article-corps a{ color:var(--wh-rouille); text-decoration:underline; text-underline-offset:3px; }
.sbt-article-corps a:hover{ color:var(--wh-forge); }
.sbt-article-corps ul,.sbt-article-corps ol{ margin:0 0 1.3em; padding-left:1.4em; }
.sbt-article-corps li{ margin-bottom:.4em; }
.sbt-article-corps li::marker{ color:var(--wh-rouille); font-weight:600; }
.sbt-article-corps img{ margin-block:1.4em; border:1px solid var(--wh-forge); }
.sbt-article-corps blockquote{ margin:1.8em 0; padding:18px 24px; background:var(--wh-acier); border-left:6px solid var(--wh-rouille); font-style:normal; }
.sbt-article-corps blockquote p:last-child{ margin-bottom:0; }
.sbt-article-corps table{ width:100%; margin:1.6em 0; border-collapse:collapse; background:#fff; border:1px solid var(--wh-forge); font-size:.9688rem; }
.sbt-article-corps th{ padding:10px 14px; background:var(--wh-forge); color:#fff; text-align:left; font-weight:600; font-size:.8438rem; letter-spacing:.06em; text-transform:uppercase; }
.sbt-article-corps td{ padding:10px 14px; border-top:1px solid var(--wh-filet); vertical-align:top; }
.sbt-article-corps tr:nth-child(even) td{ background:rgba(227,228,229,.55); }
.sbs_tableau{ max-width:100%; margin:1.6em 0; overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--wh-forge); background:#fff; }
.sbs_tableau table{ margin:0; border:0; min-width:520px; }

/* Les cartes d'information (.wh-cartes, 212 dans les guides) */
/* rangée souple : la dernière rangée s'élargit, jamais de case vide (5 cartes = 3 + 2 pleine largeur) */
.sbt-article-corps .wh-cartes{ display:flex; flex-wrap:wrap; gap:14px; align-items:flex-start; margin:1.6em 0; }
.sbt-article-corps .wh-cartes>.wh-carte-info{ flex:1 1 210px; min-width:0; }
.sbt-article-corps .wh-carte-info{ position:relative; padding:16px 18px 16px; background:#fff; border:1px solid var(--wh-forge); border-top:5px solid var(--wh-rouille); box-shadow:var(--wh-ombre); }
.sbt-article-corps .wh-carte-info::after{ content:""; position:absolute; right:8px; top:-1px; width:9px; height:9px; margin-top:-0px; border-radius:50%; background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.8) 0 1.2px,var(--wh-forge) 1.8px); transform:translateY(-6px); }
.sbt-article-corps .wh-carte-titre{ margin:0 0 6px; font-family:var(--wh-titre); font-size:1.05rem; line-height:1.2; }
.sbt-article-corps .wh-carte-info p{ margin:0; font-size:.9688rem; line-height:1.5; }
.sbt-article-corps .wh-carte-info p+p{ margin-top:6px; }

/* Les duels (.wh-duel, 25 dans les guides) */
.sbt-article-corps .wh-duel{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; margin:1.8em 0; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); }
.sbt-article-corps .wh-duel::after{ content:"VS"; position:absolute; z-index:5; left:50%; top:23px; width:38px; height:38px; margin:-19px 0 0 -19px; display:flex; align-items:center; justify-content:center; background:var(--wh-arc); color:var(--wh-forge); border:2px solid var(--wh-forge); font-family:var(--wh-titre); font-size:.9rem; }
.sbt-article-corps .wh-duel-col{ min-width:0; padding:0 22px 20px; }
.sbt-article-corps .wh-duel-col+.wh-duel-col{ border-left:1px solid var(--wh-forge); }
.sbt-article-corps .wh-duel-nom{ margin:0 -22px 14px; padding:14px 22px; background:var(--wh-forge); color:#fff; font-family:var(--wh-titre); font-size:1.1rem; line-height:1.2; letter-spacing:.05em; text-transform:uppercase; }
.sbt-article-corps .wh-duel-col+.wh-duel-col .wh-duel-nom{ background:var(--wh-rouille); text-align:right; }
.sbt-article-corps .wh-duel-col p:last-child{ margin-bottom:0; }
.sbt-article-corps .wh-duel-col ul{ margin-bottom:0; }

/* Les sources : un encadré plaque, discret */
.sbt-article-corps p.wh-sources,
p.wh-sources{ margin:2em 0 .6em; padding:14px 20px; background:var(--wh-acier); border:1px solid var(--wh-forge); border-left:6px solid var(--wh-rouille); font-size:.9375rem; line-height:1.85; color:var(--wh-forge); overflow-wrap:anywhere; }
.sbt-article-corps p.wh-sources a{ color:var(--wh-rouille); font-weight:500; }
.sbt-article-corps p.wh-sources a:hover{ color:var(--wh-forge); }

/* « À découvrir également » (posé par le mu-plugin sb-maillage-corps.php : section.sb-maillage > h2 + ul > li > a) :
   habillé en petites plaques rivetées, 2 colonnes, titre du guide + flèche. Ni le mu-plugin ni le contenu ne changent. */
.sbt-article-corps .sb-maillage{ margin:2.4em 0 1.2em; padding:22px 24px 24px; background:var(--wh-acier); border:1px solid var(--wh-forge); }
.sbt-article-corps .sb-maillage h2{ margin:0 0 16px; font-size:1.2rem; letter-spacing:.06em; }
.sbt-article-corps .sb-maillage h2::after{ width:110px; margin-top:6px; }
.sbt-article-corps .sb-maillage ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.sbt-article-corps .sb-maillage li{ margin:0; padding:0; }
.sbt-article-corps .sb-maillage li::marker{ content:none; }
.sbt-article-corps .sb-maillage a{
	position:relative; display:flex; align-items:center; justify-content:space-between; gap:14px; height:100%; min-height:62px;
	padding:12px 18px 12px 24px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre);
	color:var(--wh-forge); font-family:var(--wh-titre); font-size:.98rem; line-height:1.25; text-decoration:none; transition:box-shadow .15s;
}
.sbt-article-corps .sb-maillage a::before{
	content:""; position:absolute; inset:0; pointer-events:none;
	background-image:
		radial-gradient(circle at 7px 7px,#141618 0 2.6px,transparent 3.2px),
		radial-gradient(circle at calc(100% - 7px) 7px,#141618 0 2.6px,transparent 3.2px),
		radial-gradient(circle at 7px calc(100% - 7px),#141618 0 2.6px,transparent 3.2px),
		radial-gradient(circle at calc(100% - 7px) calc(100% - 7px),#141618 0 2.6px,transparent 3.2px);
}
.sbt-article-corps .sb-maillage a::after{
	content:""; flex:none; width:30px; height:30px; background:var(--wh-forge) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/16px no-repeat;
}
.sbt-article-corps .sb-maillage a:hover{ color:var(--wh-forge); box-shadow:0 0 0 3px var(--wh-arc); }
.sbt-article-corps .sb-maillage a:hover::after{ background-color:var(--wh-rouille); }
@media (max-width:620px){
	.sbt-article-corps .sb-maillage{ padding:18px 14px 16px; }
	.sbt-article-corps .sb-maillage ul{ grid-template-columns:minmax(0,1fr); gap:10px; }
}

/* Photos d'auteur : TOUJOURS carrées, à 4 rivets (en-tête d'article, boîte auteur, carte « à la une »,
   accueil « L'atelier de la rédaction », À propos, fiche auteur). Jamais rondes. */
.wh-avatar-cadre{ position:relative; display:inline-block; flex:none; overflow:hidden; background:var(--wh-acier); line-height:0; }
.wh-avatar-cadre img,.wh-avatar-cadre svg{ width:100%; height:100%; object-fit:cover; display:block; border:0; border-radius:0; }
.sbt-auteur-photo{ position:relative; width:fit-content; height:fit-content; line-height:0; align-self:start; }
.wh-badge-photo,.wh-auteur-portrait{ position:relative; }
.wh-avatar-cadre::after,.sbt-auteur-photo::after,.wh-badge-photo::after,.wh-auteur-portrait::after{
	content:""; position:absolute; inset:0; z-index:2; pointer-events:none; --r:3.6px; --o:9px;
	background-image:
		radial-gradient(circle at var(--o) var(--o),#141618 0 var(--r),rgba(255,255,255,.75) calc(var(--r) + .4px) calc(var(--r) + 1.2px),transparent calc(var(--r) + 1.6px)),
		radial-gradient(circle at calc(100% - var(--o)) var(--o),#141618 0 var(--r),rgba(255,255,255,.75) calc(var(--r) + .4px) calc(var(--r) + 1.2px),transparent calc(var(--r) + 1.6px)),
		radial-gradient(circle at var(--o) calc(100% - var(--o)),#141618 0 var(--r),rgba(255,255,255,.75) calc(var(--r) + .4px) calc(var(--r) + 1.2px),transparent calc(var(--r) + 1.6px)),
		radial-gradient(circle at calc(100% - var(--o)) calc(100% - var(--o)),#141618 0 var(--r),rgba(255,255,255,.75) calc(var(--r) + .4px) calc(var(--r) + 1.2px),transparent calc(var(--r) + 1.6px));
}
.wh-avatar-cadre::after{ --r:2px; --o:5px; }
.wh-auteur-portrait::after{ --r:4.5px; --o:12px; }

/* ----- Blocs figés habillés ----- */
.sbt-sommaire{ background:#fff; border:1px solid var(--wh-forge); border-left:6px solid var(--wh-arc); padding:14px 18px; }
.sbt-sommaire-titre{ font-family:var(--wh-titre); font-size:.95rem; letter-spacing:.1em; text-transform:uppercase; }
.sbt-sommaire ol{ margin-top:12px; gap:6px; padding:0; }
.sbt-sommaire li{ margin:0; }
.sbt-sommaire li a{ gap:10px; font-size:.9375rem; line-height:1.3; color:var(--wh-forge); text-decoration:none; }
.sbt-sommaire li a:hover{ color:var(--wh-rouille); text-decoration:underline; }
.sbt-sommaire-num{ width:24px; height:22px; border-radius:0; background:var(--wh-forge); color:#fff; font-family:var(--wh-titre); font-size:.68rem; font-weight:400; letter-spacing:.02em; }
li.est-lu .sbt-sommaire-num{ background:var(--wh-arc); color:var(--wh-forge); }
li.est-lu a{ font-weight:600; }
.sbt-rail.est-serre .sbt-sommaire ol{ gap:3px; }
.sbt-rail.est-serre .sbt-sommaire li a{ font-size:.875rem; line-height:1.2; }
.sbt-sommaire-mobile .sbt-sommaire{ box-shadow:var(--wh-ombre); }

.sbt-encadre{ margin-block:2em; border-radius:0; }
.sbt-encadre--retenir{ padding:26px 30px 24px; background:var(--wh-rouille); color:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); }
.sbt-encadre--retenir .sbt-encadre-titre{ margin:0 0 12px; font-size:.9rem; letter-spacing:.14em; color:#fff; font-family:var(--wh-titre); font-weight:400; }
.sbt-article-corps .sbt-retenir-liste li{ padding-left:36px; font-size:1.0625rem; line-height:1.5; color:#fff; }
.sbt-retenir-liste li::before,
.sbt-article-corps .sbt-retenir-liste li::before{ left:0; top:.12em; width:22px; height:22px; border-radius:0; border:1px solid var(--wh-forge);
	background:var(--wh-arc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23141618' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/14px no-repeat; }
.sbt-encadre--saviez{ background:#fff; border:1px solid var(--wh-forge); border-left:6px solid var(--wh-rouille); box-shadow:var(--wh-ombre); }
.sbt-encadre--saviez::before{ border-radius:0; background:var(--wh-arc); color:var(--wh-forge); border:1px solid var(--wh-forge); }

.sbt-faq{ margin:48px 0; padding:28px; background:var(--wh-acier); border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); }
.sbt-faq-liste{ gap:12px; }
.sbt-faq-liste details{ border:1px solid var(--wh-forge) !important; border-radius:0; background:#fff; }
.sbt-faq-liste details[open]{ border-color:var(--wh-forge) !important; box-shadow:inset 6px 0 0 var(--wh-arc); }
.sbt-faq-liste summary{ font-size:1.05rem; font-weight:600; color:var(--wh-forge); padding:16px 20px; min-height:52px; }
.sbt-faq-liste summary:hover{ color:var(--wh-rouille); }
.sbt-faq-liste summary::after{ width:30px; height:30px; border-radius:0; background:var(--wh-forge) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center/16px no-repeat; }
.sbt-faq-reponse{ color:var(--wh-forge); font-size:1rem; }
.sbt-faq-reponse p{ margin:0 0 12px; }

.sbt-auteur{ margin:44px 0 6px; padding:26px 28px; background:var(--wh-acier); border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); grid-template-columns:128px minmax(0,1fr); }
.sbt-auteur-photo img,.sbt-auteur-photo svg{ width:120px; height:120px; border-radius:0; box-shadow:none; border:1px solid var(--wh-forge); object-fit:cover; display:block; }
.sbt-auteur-sur{ color:var(--wh-doux); font-weight:600; }
.sbt-auteur-nom{ font-size:1.5rem; margin:0 0 4px; }
.sbt-auteur-nom a{ color:var(--wh-forge); }
.sbt-auteur-role{ color:var(--wh-rouille); }
.sbt-auteur-bio{ color:var(--wh-forge); }
.sbt-auteur-chiffres span{ border-radius:0; background:#fff; border:1px solid var(--wh-filet); color:var(--wh-forge); }
.sbt-auteur-der p{ color:var(--wh-doux); }
.sbt-auteur-der a{ color:var(--wh-forge); border-bottom:1px dashed rgba(20,22,24,.4); }
.sbt-auteur-der a:hover{ color:var(--wh-rouille); }
.sbt-auteur-actions .sbt-btn{ border-radius:0; background:var(--wh-rouille); color:#fff; }
.sbt-auteur-actions .sbt-btn--fantome{ background:transparent; border:2px solid var(--wh-forge); color:var(--wh-forge); }

/* À lire aussi : section pleine largeur, 3 plaques */
.wh-alire{ padding:52px 0 64px; border-top:1px solid var(--wh-forge); background-color:var(--wh-acier); background-image:var(--wh-trous); background-size:30px 30px; }
.wh-alire .wh-h2{ margin-bottom:24px; }

@media (max-width:1080px){
	.sbt-article-mise-en-page,.wh-art--photo .sbt-article-mise-en-page{ grid-template-columns:minmax(0,1fr); padding-inline:16px; }
	.wh-art--photo .sbt-article-mise-en-page{ padding-top:68px; }
	.sbt-article-principal{ padding:30px 28px 28px; }
	.sbt-rail{ position:static; top:auto; border-top:0; padding-top:0; }
	.wh-art-grille{ grid-template-columns:minmax(0,1fr); row-gap:20px; }
	.wh-art-grille.wh-c{ padding-inline:16px; }
	.wh-art-texte{ padding-bottom:6px; }
	.wh-art-photo{ max-width:520px; margin-bottom:-48px; justify-self:start; }
}
@media (max-width:700px){
	.wh-art-titre{ font-size:1.55rem; }
	.wh-equerre{ left:-8px; bottom:-8px; width:40px; height:40px; border-left-width:8px; border-bottom-width:8px; }
	.wh-art-chapo{ font-size:1.05rem; }
	.wh-ariane>span[aria-current],.wh-ariane>a:last-of-type+span{ display:none; }
	.sbt-article-principal{ padding:24px 18px 22px; }
	.sbt-article-corps{ font-size:1.0625rem; }
	.sbt-auteur{ grid-template-columns:minmax(0,1fr); padding:22px 18px; }
	.sbt-faq{ padding:16px; }
	.sbt-encadre--retenir{ padding:22px 18px; }
	.sbt-article-corps .wh-duel{ grid-template-columns:minmax(0,1fr); }
	.sbt-article-corps .wh-duel::after{ display:none; }
	.sbt-article-corps .wh-duel-col+.wh-duel-col{ border-left:0; border-top:1px solid var(--wh-forge); }
	.sbt-article-corps .wh-duel-col+.wh-duel-col .wh-duel-nom{ text-align:left; }
}

/* ======================================================================
   Infographies du socle : [sbs_tarifs] [sbs_jauges] [sbs_frise] [sbs_lieu]
   ====================================================================== */
sbs-tarifs,sbs-tarif,sbs-jauges,sbs-jauge,sbs-frise,sbs-etape,sbs-lieu{ display:block; }
.sbs_tarifs,.sbs_jauges,.sbs_frise,.sbs_lieu{ margin:1.8em 0; padding:20px 24px 18px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); font-size:1rem; line-height:1.4; }
.sbs_tarifs_titre,.sbs_jauges_titre,.sbs_frise_titre{ display:block; margin:0 0 12px; font-family:var(--wh-titre); font-weight:400; font-size:1.1rem; letter-spacing:.03em; line-height:1.2; }
.sbs_tarif{ display:grid; grid-template-columns:minmax(120px,1.15fr) minmax(0,1.5fr) minmax(96px,auto); align-items:center; gap:14px; padding:9px 0; border-top:1px dashed rgba(20,22,24,.3); }
.sbs_tarif_libelle{ font-size:.9688rem; font-weight:500; line-height:1.3; color:var(--wh-forge); }
.sbs_tarif_prix{ font-weight:600; font-size:1rem; text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.wh-tf-piste{ position:relative; display:block; height:12px; background:rgba(20,22,24,.08); border:1px solid rgba(20,22,24,.4); }
.wh-tf-barre{ position:absolute; top:-1px; bottom:-1px; left:var(--g); width:var(--d); background:var(--wh-rouille); }
.wh-tf-barre--point{ width:10px; margin-left:-5px; background:var(--wh-forge); }
.wh-tf-echelle{ border-top:0; padding:0 0 2px; }
.wh-tf-echelle .wh-tf-grad{ height:16px; background:none; border:0; }
.wh-tf-grad i{ position:absolute; top:0; font-style:normal; font-size:.72rem; line-height:1; transform:translateX(-50%); color:var(--wh-doux); font-variant-numeric:tabular-nums; }
.wh-tf-grad i:first-child{ transform:none; }
.wh-tf-grad i:last-child{ transform:translateX(-100%); }
.sbs_tarifs_notes,.sbs_source{ display:block; margin-top:10px; font-size:.8438rem; line-height:1.45; color:var(--wh-doux); }
.sbs_source{ margin-top:6px; }
/* jauges en rangée souple : les tuiles se partagent toute la largeur (avec auto-fit, le titre pleine largeur
   empêchait les pistes vides de se replier : 330 px de vide à droite de 2 jauges). */
sbs-jauges.sbs_jauges{ display:flex; flex-wrap:wrap; gap:12px; }
.sbs_jauges_titre,.sbs_jauges .sbs_source{ flex:0 0 100%; }
.sbs_jauge{ flex:1 1 150px; min-width:0; display:flex; flex-direction:column; gap:2px; padding:10px 14px; background:var(--wh-acier); border-left:5px solid var(--wh-rouille); }
.sbs_jauge_libelle{ font-size:.875rem; font-weight:500; }
.sbs_jauge_valeur{ font-weight:600; font-size:1.7rem; line-height:1.1; font-variant-numeric:tabular-nums; }
.sbs_jauge_unite{ font-size:.8438rem; color:var(--wh-doux); }
.sbs_etape{ position:relative; display:grid; grid-template-columns:130px minmax(0,1fr); column-gap:20px; padding:0 0 18px 24px; border-left:2px solid var(--wh-forge); margin-left:6px; }
.sbs_etape:last-of-type{ padding-bottom:4px; }
.sbs_etape::before{ content:""; position:absolute; left:-8px; top:3px; width:14px; height:14px; background:var(--wh-arc); border:2px solid var(--wh-forge); }
.sbs_etape_date{ grid-column:1; font-weight:600; font-size:.9375rem; color:var(--wh-rouille); }
.sbs_etape_titre{ grid-column:2; font-family:var(--wh-titre); font-weight:400; font-size:1.05rem; line-height:1.25; }
.sbs_etape_desc{ grid-column:2; display:block; font-size:.9688rem; line-height:1.5; margin-top:2px; }
.sbs_lieu_nom{ display:block; font-family:var(--wh-titre); font-weight:400; font-size:1.1rem; }
.sbs_lieu_adresse{ display:block; font-style:normal; margin:4px 0; }
.sbs_lieu_acces{ display:block; }
.sbs_lieu_carte{ display:inline-flex; align-items:center; gap:6px; margin-top:8px; font-weight:600; }
.sbs_icone_repere{ fill:currentColor; }
@media (max-width:620px){
	.sbs_tarifs,.sbs_jauges,.sbs_frise,.sbs_lieu{ padding:16px 16px 14px; }
	.sbs_tarif{ grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; }
	.sbs_tarif .wh-tf-piste{ grid-column:1/-1; grid-row:2; }
	.sbs_tarif_libelle{ grid-row:1; }
	.sbs_tarif_prix{ grid-row:1; grid-column:2; }
	.wh-tf-echelle{ grid-template-columns:minmax(0,1fr); }
	.wh-tf-echelle .sbs_tarif_libelle,.wh-tf-echelle .sbs_tarif_prix{ display:none; }
	.wh-tf-echelle .wh-tf-piste{ grid-column:1; grid-row:1; }
	.sbs_etape{ grid-template-columns:minmax(0,1fr); }
	.sbs_etape_titre,.sbs_etape_desc{ grid-column:1; }
}

/* ======================================================================
   Rubrique (DA §10) : tôle perforée, titre, numéro poinçonné en creux
   ====================================================================== */
.wh-rub-tete{ border-bottom:1px solid var(--wh-forge); padding-bottom:40px; }
.wh-ariane{ padding-block:16px 10px; }
.wh-rub-grille{ display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:40px; align-items:center; padding-top:10px; }
.wh-rub-titre{ margin:0; font-size:clamp(2.1rem,4.6vw,4rem); line-height:1.04; letter-spacing:.03em; text-transform:uppercase; }
.wh-rub-texte .wh-cordon--titre{ margin:14px 0 14px; }
.wh-rub-chapo{ max-width:58ch; margin:0; font-size:1.2rem; line-height:1.5; font-weight:500; }
.wh-rub-poincon{ padding:16px 18px 14px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); text-align:center; }
.wh-rub-num{ display:block; font-family:var(--wh-titre); font-size:clamp(4.2rem,8vw,6.5rem); line-height:1; color:var(--wh-acier); -webkit-text-stroke:2px var(--wh-forge); text-shadow:0 3px 0 rgba(20,22,24,.18); }
.wh-rub-nb{ display:block; margin-top:8px; padding-top:8px; border-top:1px solid var(--wh-forge); font-weight:600; font-size:1rem; }
.wh-rub-nb b{ font-variant-numeric:tabular-nums; }
.wh-rub-liste{ padding:36px 0 20px; }
.wh-rub-liste .wh-h2{ margin-bottom:22px; }
.wh-rub-autres{ padding:32px 0 64px; }
.wh-pilules{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.wh-pilules a{ display:inline-flex; align-items:center; gap:10px; min-height:46px; padding:8px 16px; background:#fff; border:1px solid var(--wh-forge); color:var(--wh-forge); font-weight:600; text-decoration:none; }
.wh-pilules a:hover{ box-shadow:0 0 0 3px var(--wh-arc); color:var(--wh-forge); }
.wh-pilule-num{ padding:3px 7px; background:var(--wh-forge); color:#fff; font-family:var(--wh-titre); font-size:.78rem; letter-spacing:.06em; }
.wh-vide{ padding:30px 32px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); max-width:720px; }
.wh-vide-titre{ font-family:var(--wh-titre); font-size:1.4rem; margin:0 0 10px; }
@media (max-width:760px){
	.wh-rub-grille{ grid-template-columns:minmax(0,1fr); gap:20px; }
	.wh-rub-poincon{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 18px; }
	.wh-rub-num{ font-size:3.4rem; }
	.wh-rub-nb{ margin:0; padding:0 0 0 16px; border-top:0; border-left:1px solid var(--wh-forge); }
}

/* ======================================================================
   Pages annexes : mentions, confidentialité, recherche, 404, auteur, à propos, contact
   ====================================================================== */
.wh-page-entete{ padding:40px 0 34px; border-bottom:1px solid var(--wh-forge); }
.wh-page-surtitre{ margin:0 0 8px; font-weight:600; font-size:.8125rem; letter-spacing:.16em; text-transform:uppercase; color:var(--wh-rouille); }
.wh-page-titre{ margin:0; font-size:clamp(2rem,4.4vw,3.6rem); line-height:1.05; letter-spacing:.02em; text-transform:uppercase; }
.wh-page-chapo{ max-width:62ch; margin:14px 0 0; font-size:1.2rem; line-height:1.5; font-weight:500; }
.wh-page-entete .wh-cordon--titre{ margin:16px 0 0; }
.wh-page-corps{ padding:40px 0 72px; }
.wh-page-carte{ max-width:880px; margin-inline:auto; padding:40px 48px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); }
.wh-lecture{ max-width:68ch; margin-inline:auto; font-size:1.0625rem; line-height:1.7; }
.wh-lecture>*:first-child{ margin-top:0; }
.wh-lecture h2{ margin:1.8em 0 .5em; font-size:1.5rem; text-transform:uppercase; letter-spacing:.03em; }
.wh-lecture h3{ margin:1.5em 0 .4em; font-size:1.2rem; }
.wh-lecture ul,.wh-lecture ol{ padding-left:1.4em; }
.wh-lecture li::marker{ color:var(--wh-rouille); }
.wh-lecture a{ color:var(--wh-rouille); }
.wh-lecture a:hover{ color:var(--wh-forge); }
@media (max-width:700px){
	.wh-page-entete{ padding:26px 0 24px; }
	.wh-page-corps{ padding:24px 0 48px; }
	.wh-page-carte{ padding:24px 20px; }
}

.wh-recherche{ display:flex; gap:10px; margin-bottom:28px; max-width:720px; }
.wh-recherche input{ flex:1; min-width:0; height:52px; }
.wh-404{ padding:40px 0 64px; }
.wh-404-grille{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; align-items:start; }
.wh-404-col{ padding:26px 28px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); }
.wh-404-col .wh-recherche{ margin-bottom:0; flex-wrap:wrap; }
.wh-404-titre{ margin:0 0 14px; font-family:var(--wh-titre); font-size:1.3rem; }
@media (max-width:760px){ .wh-404-grille{ grid-template-columns:minmax(0,1fr); } }

.wh-auteur-entete{ border-bottom:1px solid var(--wh-forge); padding-bottom:40px; }
.wh-auteur-grille{ display:grid; grid-template-columns:200px minmax(0,1fr); gap:40px; align-items:start; padding-top:10px; }
.wh-auteur-badge{ padding:14px 14px 0; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); }
.wh-auteur-portrait{ display:block; width:100%; aspect-ratio:1; overflow:hidden; border:1px solid var(--wh-forge); background:var(--wh-acier); }
.wh-auteur-portrait img,.wh-auteur-portrait svg{ width:100%; height:100%; object-fit:cover; display:block; }
.wh-auteur-plaquette{ display:block; padding:10px 0 12px; text-align:center; font-family:var(--wh-titre); font-size:.8rem; letter-spacing:.22em; text-transform:uppercase; }
.wh-auteur-texte .wh-page-chapo{ font-size:1.1rem; font-weight:400; }
.wh-auteur-nb{ margin:16px 0 12px; font-size:1rem; }
.wh-auteur-nb b{ font-variant-numeric:tabular-nums; }
@media (max-width:700px){
	.wh-auteur-grille{ grid-template-columns:120px minmax(0,1fr); gap:18px; }
	.wh-auteur-texte{ grid-column:1/-1; }
	.wh-auteur-plaquette{ font-size:.66rem; letter-spacing:.14em; padding:6px 0 8px; }
}

/* Contact : un bandeau photo compact, le formulaire de message entier dans le premier écran */
.wh-contact-bandeau{ position:relative; height:100px; margin:0; overflow:hidden; background:var(--wh-acier); border-bottom:1px solid var(--wh-forge); }
.wh-contact-bandeau img,.wh-contact-bandeau .wh-repli{ width:100%; height:100%; object-fit:cover; }
.wh-contact{ padding:22px 0 56px; }
.wh-contact-tete{ margin:0 0 14px; }
.wh-contact-titre{ margin:0; font-size:clamp(1.7rem,3.2vw,2.5rem); line-height:1.05; text-transform:uppercase; letter-spacing:.03em; }
.wh-contact-intro{ margin:6px 0 0; max-width:60ch; font-size:1.0625rem; line-height:1.45; }
.wh-contact-grille{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:28px; align-items:start; }
.wh-contact-carte{ padding:20px 24px 22px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); }
.wh-contact-champs{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
.wh-contact-champs textarea{ grid-column:1/-1; height:84px; padding:10px 12px; resize:vertical; line-height:1.4; }
.wh-contact-bas{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:12px; }
.wh-contact-consent{ display:flex; align-items:flex-start; gap:8px; flex:1; min-width:0; font-size:.875rem; line-height:1.3; cursor:pointer; }
.wh-contact-consent input{ flex:none; width:20px; height:20px; margin:1px 0 0; accent-color:var(--wh-rouille); }
.wh-contact-msg{ margin:0; font-size:.95rem; font-weight:600; }
.wh-contact-msg:not(:empty){ margin-top:10px; padding:8px 12px; background:var(--wh-forge); color:#fff; border-left:5px solid var(--wh-arc); }
.wh-contact-rappel{ display:flex; flex-direction:column; gap:12px; }
.wh-contact-rappel-titre{ margin:0; font-size:.8125rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--wh-doux); }
@media (max-width:900px){
	.wh-contact-grille{ grid-template-columns:minmax(0,1fr); gap:20px; }
	.wh-contact-bas{ flex-direction:column; align-items:stretch; }
	.wh-contact-intro{ display:none; }
	.wh-contact .wh-ariane{ display:none; }
}
@media (max-width:480px){
	.wh-contact-bandeau{ height:80px; }
	.wh-contact{ padding-top:16px; }
	.wh-contact-carte{ padding:16px 14px 16px; }
	.wh-contact-champs{ gap:8px; }
	.wh-contact-champs input{ height:44px; padding:0 10px; }
	.wh-contact-champs textarea{ height:84px; }
}

/* À propos : même soin que l'accueil */
.wh-apropos-bandeau{ position:relative; height:clamp(200px,24vw,320px); margin:0; overflow:hidden; background:var(--wh-acier); border-bottom:1px solid var(--wh-forge); }
.wh-apropos-bandeau img,.wh-apropos-bandeau .wh-repli{ width:100%; height:100%; object-fit:cover; }
.wh-apropos-tete{ padding:34px 0 10px; }
.wh-apropos-titre{ margin:0; font-size:clamp(2rem,4.6vw,3.8rem); line-height:1.04; text-transform:uppercase; letter-spacing:.02em; }
.wh-apropos-tete .wh-cordon--titre{ margin:16px 0 16px; }
.wh-apropos-chapo{ max-width:60ch; margin:0; font-size:1.25rem; line-height:1.45; font-weight:500; }
.wh-apropos-faits{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; align-items:start; }
.wh-apropos-plaque{ padding:26px 30px 26px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); }
.wh-apropos-plaque--non{ background:var(--wh-rouille); color:#fff; }
.wh-apropos-plaque h2{ margin:0 0 14px; font-size:1.4rem; text-transform:uppercase; letter-spacing:.04em; }
.wh-apropos-plaque--non h2{ color:#fff; }
.wh-apropos-plaque ul{ margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.wh-apropos-plaque li{ position:relative; padding-left:26px; line-height:1.5; }
.wh-apropos-plaque li::before{ content:""; position:absolute; left:0; top:.45em; width:12px; height:12px; background:var(--wh-forge); }
.wh-apropos-plaque--non li::before{ background:var(--wh-arc); }
.wh-methode{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:start; counter-reset:wh-m; }
.wh-methode li{ position:relative; padding:18px 18px 18px; background:#fff; border:1px solid var(--wh-forge); box-shadow:var(--wh-ombre); counter-increment:wh-m; }
.wh-methode li::before{ content:"0" counter(wh-m); display:block; margin-bottom:8px; font-family:var(--wh-titre); font-size:1.8rem; line-height:1; color:var(--wh-acier); -webkit-text-stroke:1.2px var(--wh-forge); text-shadow:0 2px 0 rgba(20,22,24,.15); }
.wh-methode h3{ margin:0 0 6px; font-size:1.1rem; }
.wh-methode p{ margin:0; font-size:.9688rem; line-height:1.5; }
.wh-apropos-fin--suite{ margin-top:28px; }
.wh-apropos-fin{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 26px; }
.wh-apropos-fin p{ margin:0; font-size:1.15rem; font-weight:500; max-width:46ch; }
.wh-apropos-fin-liens{ display:flex; flex-wrap:wrap; gap:12px; }
@media (max-width:1000px){ .wh-methode{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px){
	.wh-apropos-faits{ grid-template-columns:minmax(0,1fr); }
	.wh-apropos-tete{ padding-top:24px; }
}
@media (max-width:520px){
	.wh-methode{ grid-template-columns:minmax(0,1fr); }
	.wh-apropos-plaque{ padding:20px 18px; }
}

/* ======================================================================
   Mouvement réduit : plus aucune animation
   ====================================================================== */
@media (prefers-reduced-motion:reduce){
	*,*::before,*::after{ animation:none !important; transition:none !important; }
}

/* ======================================================================
   Corrections n°1 — reprise (19/10, après captures c1b)
   ====================================================================== */
/* Texte courant sur tôle perforée : posé sur une bande Acier clair unie (jamais de trous derrière les lettres). */
.wh-perfore .wh-section-chapo,
.wh-perfore .wh-page-chapo,
.wh-perfore .wh-rub-chapo,
.wh-perfore .wh-auteur-nb{ width:fit-content; background:var(--wh-acier); box-shadow:0 0 0 8px var(--wh-acier); }
.wh-perfore .wh-ariane>*{ background:var(--wh-acier); box-shadow:0 0 0 4px var(--wh-acier); }
/* Page contact, rappel « Chiffrer mon ouvrage » : tuiles en 2 colonnes, pictogramme à gauche (« Garde-corps » sur une
   ligne, « Rampe / main courante » sur 2 lignes max), Verrière et Suivant partagent la dernière rangée. */
@media (min-width:701px){
	.wh-form-carte--contact .wh-tuiles--n5{ grid-template-columns:repeat(2,minmax(0,1fr)); }
	.wh-form-carte--contact .wh-tuiles--n5:not(.wh-tuiles--mat) .wh-tuile{ flex-direction:row; justify-content:flex-start; text-align:left; gap:10px; min-height:48px; padding:6px 12px; }
	.wh-form-carte--contact .wh-tuiles--n5:not(.wh-tuiles--mat) .wh-tuile .wh-picto{ width:24px; height:24px; }
	.wh-form-carte--contact [data-wh-etape="1"] .wh-form-pied{ margin-top:-48px; justify-content:flex-end; pointer-events:none; }
	.wh-form-carte--contact [data-wh-etape="1"] .wh-form-pied .wh-btn{ pointer-events:auto; width:calc(50% - 4px); min-width:0; min-height:48px; height:48px; }
}
/* Bandeau cookies à 390 : boutons de 44 px (cible tactile), barre 60 px (≤ 64). */
@media (max-width:700px){
	:root{ --wh-ck-h:60px; }
	.sbt-cookies .sbt-btn{ height:44px; min-height:44px; }
}
.wh-chapo,.wh-section-chapo,.wh-rub-chapo,.wh-page-chapo{ text-wrap:pretty; }

/* ======================================================================
   Corrections n°2 (19/10, après le juge visuel n°1)
   ====================================================================== */

/* ----- Bandes sombres réutilisables (alternance Acier / Noir forge / Rouille) ----- */
.wh-bande-noire{ background:var(--wh-forge); color:#fff; }
.wh-bande-noire .wh-h2,.wh-bande-noire .wh-h3,.wh-bande-noire .wh-section-chapo,.wh-bande-noire h2{ color:#fff; }
.wh-bande-noire .wh-h2::after{ background-image:var(--wh-cordon-clair); }

/* ----- 13. Relief partout : fini la boîte blanche à trait noir 1 px ; ombre portée, léger biseau, filets Rouille ----- */
.wh-plaque,.sbt-article-principal,.sbt-auteur,.sbt-faq,.sbs_tarifs,.sbs_jauges,.sbs_frise,.sbs_lieu,.wh-page-carte,
.wh-apropos-plaque,.wh-methode li,.wh-badge,.wh-repere-cote,.wh-contact-carte,.wh-404-col,.wh-vide,.wh-gab-lien,
.wh-auteur-badge,.wh-plaquette-corps,.wh-cote-fig{ border:1px solid rgba(118,62,37,.45); box-shadow:var(--wh-relief); }
.wh-plaque:hover,.wh-plaque:focus-within,.wh-gab-lien:hover,.wh-gab-lien:focus-visible{ box-shadow:var(--wh-relief-fort); }
.sbt-article-principal,.wh-page-carte{ border-top:4px solid var(--wh-rouille); }
.sbt-faq{ background:#fff; border-top:4px solid var(--wh-rouille); }
.sbt-auteur{ background:#fff; border-left:6px solid var(--wh-rouille); }
.sbt-sommaire{ border:1px solid rgba(118,62,37,.45); border-left:6px solid var(--wh-arc); box-shadow:var(--wh-relief); }
.wh-plaque-photo{ border-bottom-color:var(--wh-rouille); }
.sbt-faq-liste details{ border:1px solid rgba(20,22,24,.18) !important; box-shadow:inset 1px 1px 0 #fff,0 2px 0 rgba(20,22,24,.12); }
.sbt-article-corps .wh-carte-info{ border:1px solid rgba(118,62,37,.4); border-top:5px solid var(--wh-rouille); box-shadow:var(--wh-relief); }
.sbt-article-corps .wh-duel{ border:1px solid rgba(118,62,37,.45); box-shadow:var(--wh-relief); }
.sbt-article-corps p.wh-sources,p.wh-sources{ border:1px solid rgba(118,62,37,.4); border-left:6px solid var(--wh-rouille); box-shadow:var(--wh-relief); }
.wh-pilules a{ border:1px solid rgba(118,62,37,.45); box-shadow:var(--wh-relief); }
.wh-badge-bio{ border-top:1px solid rgba(118,62,37,.45); }
.wh-art--photo .sbt-article-mise-en-page,.sbt-article-mise-en-page{ padding-top:44px; }

/* ----- 7. Cartes : même hauteur par rangée (contenu borné : titre 3 lignes, extrait 2 lignes, pied en bas) ----- */
.wh-plaques{ align-items:stretch; }
.wh-plaque{ display:flex; flex-direction:column; }
.wh-plaque-lien{ flex:1 1 auto; display:flex; flex-direction:column; }
.wh-plaque-corps{ flex:1 1 auto; }
.wh-plaque-pied{ margin-top:auto; padding-top:4px; }
.wh-plaque--h .wh-plaque-lien{ display:grid; grid-template-columns:150px minmax(0,1fr); }

/* ----- 16. La rubrique en étiquette DANS la boîte de la photo (jamais hors cadre, jamais sur un rivet) ----- */
.wh-plaque-photo .wh-plaque-rub{
	position:absolute; z-index:3; left:10px; bottom:10px; max-width:calc(100% - 20px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
	padding:5px 10px 4px; background:var(--wh-acier); color:var(--wh-forge); border:1px solid var(--wh-forge);
	font-weight:600; font-size:.72rem; letter-spacing:.1em; line-height:1.2; box-shadow:0 3px 0 rgba(20,22,24,.35);
}
.wh-plaque--h .wh-plaque-photo .wh-plaque-rub{ left:50%; bottom:24px; transform:translateX(-50%); max-width:calc(100% - 16px); padding:4px 8px 3px; font-size:.68rem; letter-spacing:.08em; }

/* ----- 6. Rubrique : la « une » = photo pleine largeur, titre sur une plaque rivetée à cheval sur son bord bas ----- */
.wh-une{ margin-bottom:34px; }
.wh-plaque.wh-plaque--une{ background:transparent; border:0; box-shadow:none; transform:none; }
.wh-plaque--une::before{ display:none; }
.wh-plaque--une .wh-plaque-lien{ display:block; }
.wh-plaque--une .wh-plaque-photo{ display:block; height:clamp(240px,40vh,380px); min-height:0; aspect-ratio:auto; border:1px solid var(--wh-forge); border-right:1px solid var(--wh-forge); box-shadow:var(--wh-relief); }
.wh-plaque--une .wh-plaque-photo img,.wh-plaque--une .wh-plaque-photo .wh-repli{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.wh-plaque--une .wh-plaque-photo .wh-plaque-rub{ left:16px; top:16px; bottom:auto; }
.wh-plaque--une .wh-plaque-corps{
	position:relative; z-index:2; display:grid; grid-template-columns:auto auto minmax(0,1fr) auto; align-items:center; gap:12px 22px;
	width:min(780px,calc(100% - 64px)); margin:-86px 0 0 32px; padding:26px 34px 24px; background:#fff;
	border:1px solid rgba(118,62,37,.45); border-top:5px solid var(--wh-rouille); box-shadow:var(--wh-relief-fort);
}
.wh-plaque--une .wh-plaque-corps::before{ content:""; position:absolute; inset:0; pointer-events:none; background-image:var(--wh-rivets-petits); }
.wh-plaque--une .wh-plaque-titre,.wh-plaque--une .wh-plaque-extrait{ grid-column:1/-1; }
.wh-plaque--une .wh-plaque-titre{ font-size:clamp(1.5rem,2.1vw,1.95rem); -webkit-line-clamp:3; }
.wh-plaque--une .wh-plaque-auteur{ grid-column:1; margin:0; }
.wh-plaque--une .wh-plaque-pied{ grid-column:2; margin:0; padding:0; }
.wh-plaque--une .wh-plaque-cta{ grid-column:4; margin:0; }
.wh-plaque--une:hover .wh-plaque-corps,.wh-plaque--une:focus-within .wh-plaque-corps{ --wh-tr:#43DAF3; }
@media (max-width:760px){
	.wh-plaque--une .wh-plaque-photo{ height:clamp(190px,50vw,260px); }
	.wh-plaque--une .wh-plaque-corps{ grid-template-columns:auto minmax(0,1fr); width:calc(100% - 24px); margin:-44px 0 0 12px; padding:18px 18px 18px; gap:10px 14px; }
	.wh-plaque--une .wh-plaque-cta{ grid-column:1/-1; justify-self:start; }
}

/* ----- 6. Rubrique : en-tête PHOTO + numéro découpé dans la tôle, bande Rouille du titre ----- */
.wh-rub-tete{ padding:0; border-bottom:1px solid var(--wh-forge); background:var(--wh-rouille); }
.wh-rub-photo{ position:relative; margin:0; height:clamp(200px,20vw,300px); overflow:hidden; background:var(--wh-forge); }
.wh-rub-photo-img{ position:absolute; inset:0; width:100%; height:100% !important; object-fit:cover; object-position:50% 50%; }
.wh-rub-decoupe-c{ position:absolute; left:0; right:0; bottom:22px; z-index:2; }
.wh-rub-decoupe{ display:block; width:clamp(150px,15vw,220px); height:auto; filter:drop-shadow(0 2px 0 rgba(20,22,24,.55)) drop-shadow(0 14px 18px rgba(20,22,24,.5)); }
.wh-rub-bande{ position:relative; padding:4px 0 26px; color:#fff; background-image:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0) 40%); }
.wh-rub-bande::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:12px; background:var(--wh-cordon-clair) repeat-x left center; opacity:.5; }
.wh-rub-bande .sbt-fil-ariane,.wh-rub-bande .sbt-fil-ariane a{ color:rgba(255,255,255,.94); }
.wh-rub-bande .sbt-fil-ariane a{ text-decoration:underline; text-underline-offset:3px; }
.wh-rub-tete .wh-rub-grille{ grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:16px 40px; padding-top:2px; }
.wh-rub-tete .wh-rub-titre{ color:#fff; font-size:clamp(2rem,3.6vw,3.2rem); text-shadow:0 2px 0 rgba(20,22,24,.35); }
.wh-rub-tete .wh-cordon--titre{ margin:12px 0 12px; }
.wh-rub-tete .wh-rub-chapo{ color:#fff; font-size:1.125rem; }
.wh-rub-tete .wh-rub-nb{ margin:0 0 4px; padding:12px 20px; border:0; background:var(--wh-forge); color:#fff; font-weight:600; font-size:1.05rem; box-shadow:var(--wh-relief-sombre); }
.wh-rub-num-seul{ color:var(--wh-acier); }
.wh-rub-liste{ padding-top:34px; }
.wh-rub-autres{ padding:40px 0 56px; }
@media (max-width:760px){
	.wh-rub-photo{ height:170px; }
	.wh-rub-decoupe-c{ bottom:14px; }
	.wh-rub-decoupe{ width:120px; }
	.wh-rub-tete .wh-rub-grille{ grid-template-columns:minmax(0,1fr); }
	.wh-rub-tete .wh-rub-nb{ justify-self:start; padding:8px 14px; }
	.wh-rub-tete .wh-rub-chapo{ font-size:1rem; }
}

/* ----- 5. En-tête d'article : la FICHE D'ATELIER (plan technique, plaque estampée, photo pleine largeur, cartouche) ----- */
.wh-art-entete.wh-fiche-plan{
	background-color:var(--wh-acier); color:var(--wh-forge); border-bottom:1px solid var(--wh-forge);
	background-image:linear-gradient(rgba(20,22,24,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(20,22,24,.07) 1px,transparent 1px);
	background-size:24px 24px;
}
.wh-fiche-grille{ padding-bottom:30px; }
.wh-fiche-plan .sbt-fil-ariane{ padding-block:14px 10px; font-size:.875rem; color:var(--wh-forge); }
.wh-fiche-plan .sbt-fil-ariane a{ color:var(--wh-forge); text-decoration:underline; text-underline-offset:3px; }
.wh-fiche-plan .sbt-fil-ariane>*{ background:var(--wh-acier); box-shadow:0 0 0 3px var(--wh-acier); }
.wh-fiche-plaque{
	position:relative; z-index:2; padding:26px 40px 22px; color:var(--wh-acier);
	background-color:var(--wh-forge);
	background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 4px),linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 55%);
	box-shadow:var(--wh-relief-sombre);
}
.wh-fiche-plaque::before{ content:""; position:absolute; inset:0; pointer-events:none; background-image:var(--wh-rivets-clairs); }
.wh-fiche-plaque .wh-art-titre{
	margin:0; max-width:34ch; font-size:clamp(1.6rem,2.8vw,2.6rem); line-height:1.12; color:var(--wh-acier); text-wrap:balance;
	text-shadow:0 -1px 0 rgba(0,0,0,.95),0 1px 0 rgba(255,255,255,.28);
}
.wh-fiche-plaque .wh-cordon--titre{ margin:14px 0 0; opacity:.85; }
.wh-fiche-photo{ position:relative; z-index:1; height:clamp(200px,26vw,370px); margin-top:-14px; overflow:hidden; background:var(--wh-forge); border:1px solid var(--wh-forge); box-shadow:var(--wh-relief); }
.wh-fiche-photo img{ position:absolute; inset:0; width:100%; height:100% !important; object-fit:cover; object-position:50% 45%; }
.wh-fiche-bas{ position:relative; z-index:3; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,600px); gap:18px 36px; align-items:start; }
.wh-art--photo .wh-cartouche{ margin-top:-60px; }
.wh-fiche-bas .wh-art-chapo{ grid-column:1; grid-row:1; margin:18px 0 0; max-width:62ch; font-size:1.125rem; line-height:1.5; color:var(--wh-forge); font-weight:500; }
.wh-cartouche{
	grid-column:2; grid-row:1; margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
	background:#fff; border:2px solid var(--wh-forge); outline:1px solid var(--wh-forge); outline-offset:3px; box-shadow:var(--wh-relief-fort);
}
.wh-cart-cel{ min-width:0; padding:8px 12px 9px; border-right:1px solid var(--wh-forge); border-bottom:1px solid var(--wh-forge); }
.wh-cart-cel dt{ font-weight:600; font-size:.75rem; letter-spacing:.04em; color:var(--wh-rouille); line-height:1.2; }
.wh-cart-cel dd{ margin:3px 0 0; font-weight:600; font-size:.9375rem; line-height:1.25; color:var(--wh-forge); overflow-wrap:anywhere; }
.wh-cart-cel dd a{ color:var(--wh-forge); text-decoration:underline; text-underline-offset:3px; }
.wh-cart-cel dd a:hover{ color:var(--wh-rouille); }
.wh-cart-cel--num dd{ font-family:var(--wh-titre); font-weight:400; font-size:1.3rem; letter-spacing:.04em; }
.wh-cart-cel--auteur{ grid-column:span 2; }
.wh-cart-cel--auteur dd{ display:flex; align-items:center; gap:10px; }
.wh-cart-cel--auteur .wh-avatar-cadre{ width:34px; height:34px; border:1px solid var(--wh-forge); }
.wh-cartouche .wh-art-auteur{ color:var(--wh-forge); }
.wh-fiche-plan .wh-art-auteur:hover{ color:var(--wh-rouille); }
@media (max-width:1080px){
	.wh-fiche-grille.wh-c{ padding-inline:16px; }
	.wh-fiche-bas{ grid-template-columns:minmax(0,1fr); }
	.wh-cartouche{ grid-column:1; grid-row:1; }
	.wh-art--photo .wh-cartouche{ margin-top:-34px; margin-inline:14px; }
	.wh-fiche-bas .wh-art-chapo{ grid-row:2; margin-top:4px; }
}
@media (max-width:700px){
	.wh-fiche-plan .sbt-fil-ariane{ padding-block:10px 8px; }
	.wh-fiche-plaque{ padding:18px 20px 14px; }
	.wh-fiche-plaque .wh-art-titre{ font-size:1.55rem; }
	.wh-fiche-plaque .wh-cordon--titre{ margin-top:10px; }
	.wh-fiche-photo{ height:200px; margin-top:-10px; }
	.wh-cartouche{ grid-template-columns:repeat(2,minmax(0,1fr)); }
	.wh-art--photo .wh-cartouche{ margin-inline:8px; }
	.wh-cart-cel{ padding:7px 10px 8px; }
	.wh-fiche-bas .wh-art-chapo{ font-size:1.02rem; }
	.wh-fiche-grille{ padding-bottom:22px; }
}

/* ----- 10. Photos de corps : sur une plaque Noir forge rivetée (rivets sur le cadre, jamais sur la photo) ----- */
.sbt-article-corps figure.wh-corps-photo{ position:relative; margin:2.2em 0; padding:14px; background:var(--wh-forge); box-shadow:var(--wh-relief-sombre); }
.sbt-article-corps figure.wh-corps-photo::before{
	content:""; position:absolute; inset:0; pointer-events:none;
	background-image:
		radial-gradient(circle at 7px 7px,#E3E4E5 0 2.8px,rgba(0,0,0,.6) 3.2px 3.8px,transparent 4.2px),
		radial-gradient(circle at calc(100% - 7px) 7px,#E3E4E5 0 2.8px,rgba(0,0,0,.6) 3.2px 3.8px,transparent 4.2px),
		radial-gradient(circle at 7px calc(100% - 7px),#E3E4E5 0 2.8px,rgba(0,0,0,.6) 3.2px 3.8px,transparent 4.2px),
		radial-gradient(circle at calc(100% - 7px) calc(100% - 7px),#E3E4E5 0 2.8px,rgba(0,0,0,.6) 3.2px 3.8px,transparent 4.2px);
}
.sbt-article-corps figure.wh-corps-photo img{ display:block; width:100%; height:auto; margin:0; border:0; }
.sbt-article-corps figure.wh-corps-photo figcaption{ margin:10px 2px 0; color:#fff; font-size:.9rem; }
@media (max-width:700px){ .sbt-article-corps figure.wh-corps-photo{ padding:10px; margin-inline:-6px; } }

/* ----- 11. Encadrés comparatifs : bas alignés (même hauteur par rangée) ----- */
.sbt-article-corps .wh-cartes{ align-items:stretch; }

/* ----- 12. Un seul bloc de suggestions : « À lire aussi » pleine largeur, sur bande Noir forge ----- */
.wh-alire{ padding:52px 0 60px; border-top:0; background:var(--wh-forge); background-image:none; color:#fff; }
.wh-alire .wh-h2{ color:#fff; margin:0; }
.wh-alire .wh-h2::after{ background-image:var(--wh-cordon-clair); }
.wh-alire-tete{ display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:12px 28px; margin-bottom:26px; }
.wh-alire-rub{ display:inline-flex; align-items:center; gap:8px; min-height:44px; color:#fff; font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.wh-alire-rub .wh-picto{ width:18px; height:18px; }
.wh-alire-rub:hover{ color:var(--wh-arc); }
.wh-alire .wh-plaque{ border-color:rgba(255,255,255,.2); }

/* ----- 15. Portraits d'auteurs : les rivets sont sur le CADRE (bande d'acier autour de la photo), jamais sur la photo ----- */
.wh-badge-photo,.wh-auteur-portrait{ padding:7px; background:var(--wh-acier); border:1px solid var(--wh-forge); }
.wh-badge-photo img,.wh-badge-photo svg,.wh-auteur-portrait img,.wh-auteur-portrait svg{ border:1px solid rgba(20,22,24,.5); }
.wh-badge-photo::after,.wh-auteur-portrait::after{ --r:2px; --o:3.5px; }
.wh-auteur-portrait{ padding:12px; }
.wh-auteur-portrait::after{ --r:3.4px; --o:6px; }
.wh-badge-photo{ width:100px; height:100px; }
.wh-equipe--bios .wh-badge-photo{ width:124px; height:124px; }
.sbt-auteur-photo{ padding:9px; background:var(--wh-acier); border:1px solid var(--wh-forge); }
.sbt-auteur-photo::after{ --r:2.4px; --o:4.5px; }
.sbt-auteur-photo img,.sbt-auteur-photo svg{ width:112px; height:112px; }
.wh-avatar-cadre{ padding:2px; background:#fff; }
.wh-avatar-cadre::after{ display:none; }
@media (max-width:560px){
	.wh-badge-photo{ width:88px; height:88px; padding:6px; }
	.wh-badge-photo::after{ --r:1.8px; --o:3px; }
	.wh-equipe--bios .wh-badge-photo{ width:100px; height:100px; }
}

/* ----- 3. Accueil, 7e section : « Quel métal pour mon ouvrage », bande Noir forge + grande photo ----- */
.wh-metal.wh-section{ padding:24px 0; border-bottom:1px solid var(--wh-forge); background:var(--wh-forge); color:#fff; overflow:hidden; }
.wh-metal{ --wh-gauche:max(var(--sb-gouttiere),calc((100vw - var(--sb-conteneur)) / 2 + var(--sb-gouttiere))); }
.wh-metal-grille{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:52px; align-items:stretch; }
.wh-metal-fig{ position:relative; margin:0 0 0 calc(-1 * var(--wh-gauche)); min-height:100%; border-right:6px solid var(--wh-rouille); }
.wh-metal-img,.wh-metal-fig .wh-repli{ position:absolute; inset:0; width:100%; height:100% !important; object-fit:cover; object-position:50% 40%; }
.wh-metal-texte{ min-width:0; padding:26px 0 28px; }
.wh-metal .wh-section-tete{ margin-bottom:22px; }
.wh-barres{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.wh-barre{
	position:relative; display:flex; align-items:stretch; min-width:0; color:var(--wh-forge);
	background-color:var(--wh-acier);
	background-image:repeating-linear-gradient(90deg,rgba(20,22,24,.035) 0 1px,transparent 1px 3px),linear-gradient(180deg,rgba(255,255,255,.65),rgba(255,255,255,0) 45%,rgba(20,22,24,.08));
	box-shadow:inset 0 1px 0 #fff,inset 0 -2px 0 rgba(20,22,24,.22),0 10px 18px -8px rgba(0,0,0,.7);
	clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%);
}
.wh-barre--2{ width:96%; }
.wh-barre--3{ width:98%; }
.wh-barre--4{ width:93%; }
.wh-barre-bout{ flex:none; width:22px; border-right:1px solid rgba(20,22,24,.35); }
.wh-barre--1 .wh-barre-bout{ background:var(--wh-rouille); }
.wh-barre--2 .wh-barre-bout{ background:#fff; }
.wh-barre--3 .wh-barre-bout{ background:var(--wh-arc); }
.wh-barre--4 .wh-barre-bout{ background:var(--wh-forge); }
.wh-barre-corps{ min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:baseline; gap:2px 18px; padding:11px 34px 12px 18px; }
.wh-barre-nom{ margin:0; font-size:1.3rem; line-height:1.1; letter-spacing:.04em; text-transform:uppercase; }
.wh-barre-liens{ margin:0; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:2px 16px; }
.wh-barre-liens a{ color:var(--wh-rouille); font-weight:600; font-size:.9375rem; text-decoration:underline; text-underline-offset:3px; }
.wh-barre-liens a:hover{ color:var(--wh-forge); }
.wh-barre-dit{ grid-column:1/-1; margin:2px 0 0; font-size:.98rem; line-height:1.4; }
@media (max-width:1000px){
	.wh-metal-grille{ grid-template-columns:minmax(0,1fr); gap:0; }
	.wh-metal-fig{ height:230px; min-height:0; margin:0 calc(-1 * var(--sb-gouttiere)); border-right:0; border-bottom:6px solid var(--wh-rouille); }
	.wh-metal-texte{ padding:26px 0 16px; }
}
@media (max-width:620px){
	.wh-barre,.wh-barre--2,.wh-barre--3,.wh-barre--4{ width:100%; }
	.wh-barre-corps{ grid-template-columns:minmax(0,1fr); padding:10px 26px 11px 14px; }
	.wh-barre-liens{ justify-content:flex-start; order:3; }
	.wh-barre-bout{ width:14px; }
}

/* ----- 4. Pied de page : UNE tôle Rouille rivetée (DA §13, pas de colonnes), posée sur la tôle larmée, plus de matière ----- */
.sbt-footer{ background:var(--wh-acier) url(../img/hero-tole.webp) center/cover no-repeat; padding:46px 0 42px; }
.sbt-footer .sbt-conteneur{
	padding:34px 46px 22px; border:0;
	background-color:var(--wh-rouille);
	background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 4px),linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,0) 50%,rgba(20,22,24,.12));
	box-shadow:inset 1px 1px 0 rgba(255,255,255,.25),inset -1px -3px 0 rgba(20,22,24,.35),0 3px 0 rgba(20,22,24,.45),0 26px 40px -14px rgba(20,22,24,.6);
}
.sbt-footer-grille{ position:relative; padding-bottom:30px; border-bottom:0; }
.sbt-footer-grille::after{ content:""; position:absolute; left:0; right:0; bottom:6px; height:12px; background:var(--wh-cordon-clair) repeat-x left center; }
.wh-logo-symbole--pied{ width:62px; height:62px; }
.sbt-footer-logo .wh-logo-nom{ font-size:2.1rem; letter-spacing:.16em; }
.sbt-footer-desc{ font-size:1.0625rem; font-weight:500; }
@media (max-width:700px){
	.sbt-footer{ padding:28px 0 26px; }
	.sbt-footer .sbt-conteneur{ padding:26px 22px 18px; }
	.wh-logo-symbole--pied{ width:48px; height:48px; }
	.sbt-footer-logo .wh-logo-nom{ font-size:1.6rem; }
}

/* ----- 8. Contact : en-tête photo lisible, titre sur plaque à cheval, « Après l'envoi » à côté du formulaire ----- */
.wh-contact-entete{ position:relative; }
.wh-contact-photo{ position:relative; margin:0; height:clamp(120px,17vw,250px); overflow:hidden; background:var(--wh-forge); border-bottom:1px solid var(--wh-forge); }
.wh-contact-photo-img,.wh-contact-photo .wh-repli{ position:absolute; inset:0; width:100%; height:100% !important; object-fit:cover; object-position:50% 55%; }
.wh-contact-entete>.wh-c{ position:relative; z-index:2; margin-top:-62px; }
.wh-contact-plaque{ width:fit-content; max-width:100%; padding:14px 30px 18px; background:var(--wh-acier); border:1px solid rgba(118,62,37,.45); border-top:5px solid var(--wh-rouille); box-shadow:var(--wh-relief-fort); }
.wh-contact-plaque .wh-ariane{ padding-block:2px 6px; }
.wh-contact-plaque .wh-contact-titre{ margin:0; }
.wh-contact-plaque .wh-contact-intro{ margin-top:6px; max-width:64ch; }
.wh-contact{ padding:24px 0 48px; }
.wh-contact-grille{ grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:28px; align-items:stretch; }
.wh-contact-carte{ background:#fff; border-top:5px solid var(--wh-rouille); }
.wh-contact-apres{ position:relative; padding:22px 28px 20px; background:var(--wh-rouille); color:#fff; box-shadow:var(--wh-relief); }
.wh-contact-apres::before{ content:""; position:absolute; inset:0; pointer-events:none; background-image:var(--wh-rivets-petits); }
.wh-contact-apres-titre{ margin:0 0 12px; color:#fff; font-size:1.25rem; letter-spacing:.06em; text-transform:uppercase; }
.wh-suivi{ list-style:none; margin:0; padding:0; display:grid; gap:10px; counter-reset:wh-s; }
.wh-suivi li{ position:relative; padding-left:40px; font-size:.98rem; line-height:1.45; counter-increment:wh-s; }
.wh-suivi li::before{ content:counter(wh-s); position:absolute; left:0; top:1px; width:26px; height:26px; display:flex; align-items:center; justify-content:center; background:var(--wh-forge); color:#fff; font-family:var(--wh-titre); font-size:.85rem; }
.wh-suivi li+li::after{ content:""; position:absolute; left:12px; top:-10px; width:2px; height:11px; background:rgba(255,255,255,.55); }
.wh-suivi b{ font-weight:600; }
.wh-suivi a{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.wh-suivi a:hover{ color:var(--wh-arc); }
.wh-contact-rappel.wh-bande-noire{ display:block; padding:46px 0 52px; }
.wh-contact-rappel-grille{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:40px; align-items:center; }
.wh-contact-rappel-texte .wh-section-chapo{ color:#fff; }
@media (max-width:900px){
	.wh-contact-entete>.wh-c{ margin-top:-40px; }
	.wh-contact-plaque{ padding:10px 18px 12px; }
	.wh-contact-plaque .wh-ariane{ display:none; }
	.wh-contact-grille{ grid-template-columns:minmax(0,1fr); gap:20px; }
	.wh-contact-rappel-grille{ grid-template-columns:minmax(0,1fr); gap:20px; }
}
@media (max-width:480px){
	.wh-contact-photo{ height:120px; }
	.wh-contact{ padding-top:14px; }
	.wh-contact-apres{ padding:18px 16px 16px; }
}

/* ----- 9. À propos : bandeau du forgeron à l'établi ; la méthode sur bande Noir forge ----- */
.wh-apropos-bandeau img{ object-position:50% 40%; }
.wh-bande-noire .wh-methode li{ border-color:rgba(255,255,255,.2); }

/* ----- Reprise c2b (mesures c2a) ----- */
.wh-metal-grille{ grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:46px; }
.wh-metal-texte{ padding:14px 0 16px; }
.wh-metal .wh-section-tete{ margin-bottom:18px; }
.wh-barres{ gap:8px; }
.wh-barre-corps{ padding:9px 34px 10px 18px; }
.wh-plaque--une .wh-plaque-corps{ width:calc(100% - 96px); margin-left:48px; }
.category .wh-plaques .wh-plaque-rub{ display:none; }
.wh-contact-carte{ display:flex; flex-direction:column; }
.wh-contact-champs{ flex:1 1 auto; grid-template-rows:auto minmax(84px,1fr); }
.wh-contact-champs textarea{ height:auto; min-height:84px; }
.wh-bande-noire .wh-methode li{ color:var(--wh-forge); }
@media (max-width:900px){ .wh-contact-plaque{ padding:10px 26px 12px; } }
@media (max-width:760px){ .wh-plaque--une .wh-plaque-corps{ width:calc(100% - 24px); margin-left:12px; } }
.wh-hero{ min-height:min(calc(100vh - var(--wh-entete-h) - var(--wh-ck)),780px); }
.wh-hero-in{ padding-top:16px; }
/* fenêtres hautes (1920 × 950) : le bloc titre + formulaire se centre dans la tôle, plus de bande de tôle seule en bas */
@media (min-width:1101px) and (min-height:880px){
	.wh-hero{ display:flex; flex-direction:column; justify-content:center; }
	.wh-hero-in{ padding-block:24px; }
}

/* ----- Reprise c2c (mesures c2b) ----- */
.wh-methode,.wh-apropos-faits{ align-items:stretch; }
.wh-contact-photo{ height:clamp(120px,14vw,210px); }
.wh-contact-apres li{ font-size:.95rem; }
.wh-auteur-badge{ padding:20px 20px 0; }
