/*
Theme Name: Pev Soupirail
Theme URI: https://pompe-evacuation.com
Author: pompe-evacuation.com
Author URI: https://pompe-evacuation.com
Description: Thème du site pompe-evacuation.com, média sur la pompe d’évacuation pour les logements de Seine-Saint-Denis et du Val-de-Marne. Motif : la coupe de niveau (ligne de sol, terre hachurée, cotes, flèche du refoulement).
Version: 1.0.0
Requires PHP: 7.4
Text Domain: pev-soupirail
*/

/* ==========================================================================
   0. POLICES LOCALES ET JETONS — mode clair uniquement
   ========================================================================== */
@font-face { font-family: 'Special Gothic Condensed One'; font-style: normal; font-weight: 400; font-display: swap; src: url(assets/fonts/sgc-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Special Gothic Condensed One'; font-style: normal; font-weight: 400; font-display: swap; src: url(assets/fonts/sgc-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Parkinsans'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(assets/fonts/parkinsans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Parkinsans'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(assets/fonts/parkinsans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
	color-scheme: light;
	--platre: #F2F0EB;
	--platre-2: #E8E4DB;
	--blanc: #FFFFFF;
	--meuliere: #C69A4E;
	--meuliere-pale: #EEDFC2;
	--meuliere-fonce: #7A5418;
	--zinc: #1F2B33;
	--zinc-2: #2C3B45;
	--zinc-texte: #B9C2C8;
	--encre: #1A2228;
	--encre-2: #4B555C;
	--vert: #0B6B53;
	--vert-fonce: #085241;
	--vert-pale: #DCEDE6;
	--vert-clair: #7FD3B5;
	--filet: #DAD4C8;
	--titre: 'Special Gothic Condensed One', 'Arial Narrow', sans-serif;
	--texte: 'Parkinsans', 'Segoe UI', system-ui, sans-serif;
	--rayon: 18px;
	--rayon-petit: 12px;
	--arc: 10px;
	--arc-carte: 10px 10px 0 0;
	--ombre: 0 18px 40px -22px rgba(31, 43, 51, .45);
	--ombre-forte: 0 36px 70px -26px rgba(31, 43, 51, .6), 0 2px 0 rgba(31, 43, 51, .06);
	/* plus aucune texture de pierre : l'ocre n'est plus qu'un accent chaud */
	--meuliere-texture: none;
	--meuliere-taille: auto;
	--hachure: repeating-linear-gradient(135deg, rgba(31, 43, 51, .24) 0 1.3px, transparent 1.3px 8px);
	--conteneur: 1240px;
	--entete: 72px;
}

*, *::before, *::after { box-sizing: border-box; }
[class*="__grille"] > *, .pev-grille > * { min-width: 0; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--entete) + 16px); }
/* pas de défilement doux global : il bloquait les défilements programmés (chargement différé des photos du bas de page, outils de mesure) */
body { margin: 0; background: var(--platre); color: var(--encre); font-family: var(--texte); font-size: 17px; line-height: 1.6; font-weight: 400; overflow-x: hidden; }
img, svg { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--vert); text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
a:hover { color: var(--vert-fonce); }
:focus-visible { outline: 3px solid var(--vert); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3, h4 { margin: 0 0 .4em; color: var(--encre); line-height: 1.05; }
h1, h2 { font-family: var(--titre); font-weight: 400; letter-spacing: .005em; }
h1 { font-size: clamp(38px, 4.2vw, 60px); }
h2 { font-size: clamp(30px, 2.9vw, 42px); }
h3 { font-family: var(--texte); font-weight: 700; font-size: 19px; line-height: 1.25; }
p { margin: 0 0 1em; }
ul, ol { padding-left: 1.2em; }
.pev-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pev-sr:focus { position: fixed !important; z-index: 1000; top: 8px; left: 8px; width: auto; height: auto; clip: auto; background: var(--blanc); padding: 10px 16px; border-radius: 8px; }
.pev-conteneur { width: 100%; max-width: var(--conteneur); margin: 0 auto; padding: 0 24px; }
.pev-conteneur--texte { max-width: 820px; }
.pev-ton-1 { color: var(--encre); }
.pev-ton-2 { color: var(--vert); }
.pev-chapo, p.pev-chapo { font-size: clamp(17px, 1.35vw, 19px); line-height: 1.55; color: var(--encre-2); max-width: 62ch; }

/* Boutons : rectangle à 12 px, la flèche monte au survol (le geste de refoulement) */
.pev-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 11px 20px; border-radius: var(--rayon-petit); border: 2px solid transparent; font: 600 16px/1.2 var(--texte); text-decoration: none; cursor: pointer; white-space: nowrap; transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease; }
.pev-btn--action { background: var(--vert); color: var(--blanc); box-shadow: 0 8px 0 -4px rgba(8, 82, 65, .35); }
.pev-btn--action:hover { background: var(--vert-fonce); color: var(--blanc); transform: translateY(-2px); box-shadow: 0 12px 0 -5px rgba(8, 82, 65, .3); }
.pev-btn--action::after { content: ""; width: 10px; height: 12px; background: currentColor; clip-path: polygon(50% 0, 100% 45%, 64% 45%, 64% 100%, 36% 100%, 36% 45%, 0 45%); transition: transform .18s ease; }
.pev-btn--action:hover::after { transform: translateY(-2px); }
.pev-btn--ligne { background: transparent; color: var(--zinc); border-color: var(--zinc); }
.pev-btn--ligne:hover { background: var(--zinc); color: var(--platre); }
.pev-btn--clair { background: transparent; color: var(--platre); border-color: rgba(242, 240, 235, .7); }
.pev-btn--clair:hover { background: var(--platre); color: var(--zinc); }
.pev-btn--retour { background: transparent; color: var(--encre-2); border-color: var(--filet); }
.pev-btn--retour:hover { border-color: var(--encre-2); color: var(--encre); }
.pev-btn--petit { min-height: 42px; padding: 8px 16px; font-size: 15px; }

/* Cote de niveau (triangle + texte) */
.pev-cote { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 12px; font: 600 15px/1.2 var(--texte); color: var(--meuliere-fonce); }
.pev-cote svg { width: 12px; height: 10px; fill: currentColor; flex: none; }
.pev-fond-zinc .pev-cote { color: var(--meuliere-pale); }

/* Ligne de sol : trait zinc + hachure de terre en meulière */
.pev-sol { position: relative; height: 3px; background: var(--zinc); border-radius: 2px; }
.pev-sol::after { content: ""; position: absolute; left: 0; right: 0; top: 3px; height: 9px; background: repeating-linear-gradient(-45deg, rgba(122, 84, 24, .55) 0 1.5px, transparent 1.5px 7px); }
.pev-sol--clair { background: var(--meuliere-pale); }
.pev-sol--clair::after { background: repeating-linear-gradient(-45deg, rgba(238, 223, 194, .45) 0 1.5px, transparent 1.5px 7px); }
.pev-sol__repere { position: absolute; right: 0; bottom: 8px; display: inline-flex; align-items: center; gap: 6px; font: 600 13px/1 var(--texte); color: var(--encre-2); }
.pev-sol__repere::before { content: ""; width: 11px; height: 9px; background: currentColor; clip-path: polygon(0 0, 100% 0, 50% 100%); }
.pev-sol--clair .pev-sol__repere { color: var(--meuliere-pale); }

/* Photos et repli (aplat meulière, jamais une case vide) */
.pev-photo { margin: 0; position: relative; display: block; }
.pev-photo img { width: 100%; height: 100%; object-fit: cover; }
.pev-photo--repli { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 120px; background-color: var(--meuliere-pale); background-image: var(--meuliere-texture); background-size: var(--meuliere-taille); }
.pev-photo__symbole { width: 30%; max-width: 110px; height: auto; opacity: .9; }
.pev-credit { font-size: 12.5px; line-height: 1.4; color: var(--encre-2); margin-top: 8px; }

/* Sections et fonds */
.pev-section { padding: 48px 0; position: relative; }
.pev-fond-platre { background: var(--platre); }
.pev-fond-blanc { background: var(--blanc); }
.pev-fond-meuliere { background-color: var(--meuliere-pale); }
.pev-fond-zinc { background: var(--zinc); color: var(--platre); }
.pev-fond-zinc h2, .pev-fond-zinc h3 { color: var(--platre); }
.pev-fond-zinc p { color: var(--zinc-texte); }
.pev-fond-zinc a:not(.pev-btn) { color: var(--vert-clair); }
.pev-tete-section { margin-bottom: 24px; max-width: 760px; }
.pev-tete-section h2 { margin: 0; }
.pev-tete-section p { margin: 8px 0 0; color: var(--encre-2); }
.pev-tete-section--ligne { max-width: none; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px 48px; align-items: end; }
.pev-tete-section--ligne p { margin: 0; }
.pev-centre-action { margin: 28px 0 0; }
.pev-vide { font-size: 18px; color: var(--encre-2); max-width: 62ch; }
html.js .pev-glisse { transform: translateY(14px); }
@media (prefers-reduced-motion: no-preference) { main > section { transition: transform .6s cubic-bezier(.2, .7, .2, 1); } }

/* ==========================================================================
   1. EN-TÊTE ET PIED
   ========================================================================== */
.pev-entete { position: sticky; top: 0; z-index: 50; background: rgba(242, 240, 235, .96); backdrop-filter: saturate(1.2) blur(8px); border-bottom: 1px solid var(--filet); }
.pev-entete__ligne { display: flex; align-items: center; gap: 28px; min-height: var(--entete); }
.pev-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--encre); flex: none; }
.pev-logo__symbole { width: 40px; height: 40px; }
.pev-logo__nom { font: 400 25px/1 var(--titre); letter-spacing: .01em; color: var(--encre); white-space: nowrap; }
.pev-logo__ext { color: var(--meuliere-fonce); }
.pev-logo--clair .pev-logo__nom { color: var(--platre); }
.pev-logo--clair .pev-logo__ext { color: var(--meuliere); }
.pev-nav { margin-left: auto; }
.pev-nav ul { list-style: none; display: flex; gap: 4px; margin: 0; padding: 0; }
.pev-nav a { display: block; padding: 10px 12px; font-weight: 600; font-size: 15.5px; color: var(--encre); text-decoration: none; position: relative; }
.pev-nav a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 3px; background: var(--meuliere); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.pev-nav a:hover::after { transform: scaleX(1); }
.pev-entete__actions { display: flex; align-items: center; gap: 10px; }
.pev-entete__court { display: none; }
.pev-burger { display: none; width: 44px; height: 44px; border-radius: 10px; border: 2px solid var(--zinc); cursor: pointer; position: relative; }
.pev-burger span, .pev-burger span::before, .pev-burger span::after { position: absolute; left: 10px; right: 10px; height: 2.5px; background: var(--zinc); border-radius: 2px; content: ""; }
.pev-burger span { top: 19px; }
.pev-burger span::before { left: 0; right: 0; top: -7px; }
.pev-burger span::after { left: 0; right: 0; top: 7px; }
.pev-nav-mobile { display: none; }
@media (max-width: 1180px) {
	.pev-nav { display: none; }
	.pev-entete__actions { margin-left: auto; }
	.pev-burger { display: block; }
	#pev-menu-mobile:checked ~ .pev-nav-mobile { display: block; }
	.pev-nav-mobile { background: var(--platre); border-top: 1px solid var(--filet); padding: 8px 18px 18px; }
	.pev-nav-mobile ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
	.pev-nav-mobile a:not(.pev-btn) { display: block; padding: 12px 4px; font-weight: 600; color: var(--encre); text-decoration: none; border-bottom: 1px solid var(--filet); }
	.pev-nav-mobile .pev-btn { margin-top: 12px; width: 100%; }
}
@media (max-width: 560px) {
	:root { --entete: 62px; }
	.pev-logo__symbole { width: 34px; height: 34px; }
	.pev-logo__nom { font-size: 21px; }
	.pev-entete__long { display: none; }
	.pev-entete__court { display: inline; }
	.pev-entete__actions .pev-btn { padding: 8px 12px; }
	.pev-entete__actions .pev-btn::after { display: none; }
	.pev-entete__ligne { gap: 10px; }
}
@media (max-width: 380px) { .pev-logo__ext { display: none; } }

.pev-pied { background: var(--zinc); color: var(--zinc-texte); position: relative; }
.pev-pied__sol { height: 16px; background-color: var(--meuliere); background-image: var(--meuliere-texture); background-size: var(--meuliere-taille); border-bottom: 3px solid #121a1f; }
.pev-pied__grille { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1.5fr .8fr; gap: 36px; padding: 52px 0 36px; }
.pev-pied__bloc p { font-size: 15px; line-height: 1.6; color: var(--zinc-texte); }
.pev-pied__bloc--marque .pev-logo { margin-bottom: 16px; }
.pev-pied__independance { font-size: 14px !important; border-left: 3px solid var(--meuliere); padding-left: 12px; }
.pev-pied__titre { font: 400 22px/1.1 var(--titre) !important; color: var(--platre) !important; margin: 0 0 14px; }
.pev-pied__titre a { color: inherit; text-decoration: none; }
.pev-pied__titre a:hover { color: var(--meuliere-pale); }
.pev-pied ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pev-pied li { font-size: 14.5px; line-height: 1.4; }
.pev-pied a { color: var(--platre); text-decoration: none; }
.pev-pied a:hover { color: var(--meuliere-pale); text-decoration: underline; }
.pev-pied__communes { grid-template-columns: 1fr 1fr; column-gap: 18px; }
.pev-pied__bas { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; padding: 18px 0 22px; border-top: 1px solid rgba(185, 194, 200, .22); font-size: 14px; }
@media (max-width: 1080px) { .pev-pied__grille { grid-template-columns: 1fr 1fr; } .pev-pied__bloc--marque { grid-column: 1 / -1; } }
@media (max-width: 560px) { .pev-pied__grille { grid-template-columns: 1fr; gap: 28px; } }

/* ==========================================================================
   3. SECTIONS DE L'ACCUEIL
   ========================================================================== */
/* Six appareils : tuiles photo 3 × 2, basses */
.pev-appareils { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pev-appareil__lien { display: flex; flex-direction: column; height: 100%; background: var(--platre); border-radius: var(--rayon); overflow: hidden; text-decoration: none; color: var(--encre); transition: transform .2s ease, box-shadow .2s ease; }
a.pev-appareil__lien:hover { transform: translateY(-4px); box-shadow: var(--ombre); color: var(--encre); }
.pev-appareil__media { display: block; height: 146px; margin: 10px 10px 0; border-radius: var(--arc-carte); overflow: hidden; border-bottom: 3px solid var(--zinc); }
.pev-appareil__media .pev-photo, .pev-appareil__media .pev-photo--repli { height: 100%; }
.pev-appareil__media img { transition: transform .5s ease; }
a.pev-appareil__lien:hover img { transform: scale(1.04); }
.pev-appareil__texte { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px 16px; }
.pev-appareil__nom { font: 700 18px/1.25 var(--texte); }
.pev-appareil__desc { font-size: 15px; line-height: 1.4; color: var(--encre-2); }

/* Carte des communes (bande zinc) */
.pev-carte-section { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 40px; align-items: center; }
.pev-carte-section__texte h2 { margin-bottom: 12px; }
.pev-carte-section__chiffres { list-style: none; margin: 18px 0 22px; padding: 0; display: grid; gap: 8px; }
.pev-carte-section__chiffres li { font-size: 15.5px; color: var(--zinc-texte); }
.pev-carte-section__chiffres strong { color: var(--platre); font-weight: 800; font-size: 18px; margin-right: 4px; font-variant-numeric: tabular-nums; }
.pev-zone { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 28px; align-items: center; }
.pev-zone__carte { background: var(--zinc-2); border-radius: var(--rayon); padding: 14px; }
.pev_carte { display: block; width: 100%; height: auto; max-height: 470px; }
.pev_commune_forme { stroke: var(--zinc); stroke-width: 1.3; transition: fill .15s ease; }
.pev_commune_forme--93 { fill: #D9B877; }
.pev_commune_forme--94 { fill: #9CCBB8; }
a:hover .pev_commune_forme, .est-survolee .pev_commune_forme, .pev_commune_forme.est-survolee, .pev_commune_forme.est-active { fill: var(--platre); }
.pev_commune_trait { stroke: var(--zinc); stroke-width: 1; fill: none; opacity: .7; }
.pev_pin circle { fill: var(--zinc); stroke: var(--platre); stroke-width: 1.6; }
.pev_pin text { fill: var(--platre); font-family: var(--texte); font-weight: 700; text-anchor: middle; }
.pev_pin--repere circle { fill: var(--vert); stroke: var(--meuliere-pale); stroke-width: 2.4; }
.pev_pin.est-active circle, a:hover .pev_pin circle, .est-survolee .pev_pin circle, .pev_pin.est-survolee circle { fill: var(--vert); }
.pev_carte_paris path { fill: none; stroke: var(--meuliere-pale); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pev_carte_paris text { fill: var(--meuliere-pale); font-family: var(--texte); font-weight: 700; }
.pev-zone__cle { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 12px; font-size: 14px; color: var(--platre); }
.pev-zone__pastille { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }
.pev-zone__pastille--93 { background: #D9B877; }
.pev-zone__pastille--94 { background: #9CCBB8; margin-left: 8px; }
.pev-legende { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; grid-auto-flow: column; grid-template-rows: repeat(10, auto); gap: 3px 14px; }
.pev-legende__item a, .pev-legende__item span { display: flex; align-items: center; gap: 8px; padding: 3px 0; font-size: 14px; line-height: 1.2; color: var(--platre); text-decoration: none; }
.pev-legende__item b { flex: none; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; font-size: 12px; background: #D9B877; color: var(--zinc); font-variant-numeric: tabular-nums; }
.pev-legende__item--94 b { background: #9CCBB8; }
.pev-legende__item a:hover, .pev-legende__item.est-survolee a { color: var(--meuliere-pale); text-decoration: underline; }
.pev-legende__item.est-active b { background: var(--platre); }
@media (max-width: 1080px) { .pev-carte-section { grid-template-columns: 1fr; gap: 24px; } }
@media (max-width: 760px) { .pev-zone { grid-template-columns: 1fr; } .pev-legende { grid-auto-flow: row; grid-template-rows: none; } }

/* Cartes génériques */
.pev-grille { display: grid; gap: 22px; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.pev-grille--1 { grid-template-columns: minmax(0, 1fr); }
.pev-grille--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pev-grille--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pev-grille--liste { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 26px; }
.pev-carte { position: relative; display: flex; flex-direction: column; background: var(--blanc); border-radius: var(--rayon); box-shadow: 0 1px 0 var(--filet), 0 10px 28px -20px rgba(31, 43, 51, .35); overflow: hidden; color: var(--encre); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.pev-fond-blanc .pev-carte { background: var(--platre); }
a.pev-carte:hover, .pev-carte:hover { transform: translateY(-4px); box-shadow: var(--ombre); color: var(--encre); }
.pev-carte__media { display: block; height: 190px; margin: 10px 10px 0; border-radius: var(--arc-carte); overflow: hidden; }
.pev-carte__media img, .pev-carte__media .pev-photo, .pev-carte__media .pev-photo--repli { width: 100%; height: 100%; object-fit: cover; }
.pev-carte__media img { transition: transform .5s ease; }
.pev-carte:hover .pev-carte__media img { transform: scale(1.04); }
.pev-carte__sol { position: relative; display: block; height: 3px; margin: 0 10px; background: var(--zinc); }
.pev-carte__cote { position: absolute; right: 12px; top: -13px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 7px; background: var(--zinc); color: var(--platre); font: 600 13px/1 var(--texte); }
.pev-carte__cote svg { width: 10px; height: 8px; fill: var(--meuliere); }
.pev-carte__corps { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 20px; }
.pev-carte__rubrique { font-size: 13.5px; font-weight: 600; color: var(--meuliere-fonce); }
.pev-carte__titre, .pev-carte__titre a { font: 700 18.5px/1.3 var(--texte); color: var(--encre); text-decoration: none; margin: 0; }
.pev-carte__titre a:hover { color: var(--vert); }
.pev-carte__extrait { font-size: 15px; line-height: 1.5; color: var(--encre-2); }
.pev-carte__liste { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 6px; }
.pev-carte__liste a { font-size: 15px; line-height: 1.35; font-weight: 500; }

/* Méthode : 4 étapes, le chiffre est une cote qui remonte (−4 → −1) */
.pev-methode { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; counter-reset: none; }
.pev-methode__etape { position: relative; background: var(--blanc); border-radius: var(--rayon); padding: 10px 10px 18px; box-shadow: 0 10px 28px -22px rgba(31, 43, 51, .5); }
.pev-methode__media { display: block; height: 150px; border-radius: var(--arc-carte); overflow: hidden; border-bottom: 3px solid var(--zinc); }
.pev-methode__media .pev-photo, .pev-methode__media .pev-photo--repli { height: 100%; }
.pev-methode__num { position: absolute; left: 22px; top: 136px; padding: 5px 10px; border-radius: 7px; background: var(--vert); color: var(--blanc); font: 700 15px/1 var(--texte); font-variant-numeric: tabular-nums; }
.pev-methode__etape h3 { margin: 22px 8px 6px; font-size: 18px; }
.pev-methode__etape p { margin: 0 8px; font-size: 15px; line-height: 1.45; color: var(--encre-2); }

/* FAQ */
.pev-faq-section { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 48px; align-items: start; }
.pev-faq-section__tete p { color: var(--encre-2); }
.pev-faq { display: grid; gap: 10px; }
.pev-faq__item { background: var(--blanc); border-radius: var(--rayon-petit); border: 1px solid var(--filet); }
.pev-fond-blanc .pev-faq__item { background: var(--platre); }
.pev-faq__item > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 15px 18px; font-weight: 700; font-size: 16.5px; line-height: 1.35; }
.pev-faq__item > summary::-webkit-details-marker { display: none; }
.pev-faq__plus { flex: none; position: relative; width: 26px; height: 26px; border-radius: 8px; background: var(--vert-pale); }
.pev-faq__plus::before, .pev-faq__plus::after { content: ""; position: absolute; left: 7px; right: 7px; top: 12px; height: 2px; background: var(--vert-fonce); transition: transform .2s ease; }
.pev-faq__plus::after { transform: rotate(90deg); }
details[open] > summary .pev-faq__plus::after { transform: rotate(0); }
.pev-faq__reponse { padding: 0 18px 16px; color: var(--encre-2); }
.pev-faq__reponse p:last-child { margin-bottom: 0; }

/* Dernière section : avant l'appel */
.pev-final__grille { display: grid; grid-template-columns: minmax(0, 470px) minmax(0, 1fr); gap: 56px; align-items: center; }
.pev-final .pev-coupe { height: 360px; }
.pev-reperes-liste { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 12px; counter-reset: rep; }
.pev-reperes-liste li { position: relative; padding: 12px 16px 12px 52px; background: var(--blanc); border-radius: var(--rayon-petit); font-size: 15.5px; line-height: 1.45; counter-increment: rep; }
.pev-reperes-liste li::before { content: counter(rep); position: absolute; left: 14px; top: 11px; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 7px; background: var(--zinc); color: var(--platre); font-weight: 700; font-size: 14px; }

@media (max-width: 1080px) {
	.pev-grille, .pev-grille--4, .pev-grille--liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pev-methode { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pev-faq-section, .pev-final__grille { grid-template-columns: 1fr; gap: 24px; }
	.pev-tete-section--ligne { grid-template-columns: 1fr; }
	.pev-appareils { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.pev-section { padding: 40px 0; }
	.pev-conteneur { padding: 0 18px; }
	.pev-grille, .pev-grille--2, .pev-grille--4, .pev-grille--liste, .pev-methode { grid-template-columns: 1fr; }
	.pev-appareils { grid-template-columns: 1fr 1fr; gap: 12px; }
	.pev-appareil__media { height: 110px; margin: 6px 6px 0; }
	.pev-appareil__texte { padding: 10px 10px 12px; }
	.pev-appareil__nom { font-size: 15.5px; }
	.pev-appareil__desc { font-size: 13.5px; }
	.pev-final .pev-coupe { height: 240px; }
}

/* ==========================================================================
   4. FORMULAIRE EN ÉTAPES
   ========================================================================== */
.pev-form-bloc { position: relative; background: var(--blanc); border-radius: 22px; padding: 20px 22px 18px; box-shadow: var(--ombre); color: var(--encre); }
.pev-form-bloc::before { content: ""; position: absolute; left: 22px; right: 22px; top: 0; height: 4px; border-radius: 0 0 4px 4px; background-color: var(--meuliere); background-image: var(--meuliere-texture); background-size: var(--meuliere-taille); }
html:not(.js) .pev-form--js, .pev-form[hidden] { display: none; }
html.js .pev-form--noscript { display: none; }
.pev-form { margin: 0; }
.pev-form__piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.pev-form__titre { font: 700 16px/1.3 var(--texte); margin: 0 0 10px; color: var(--encre); }
.pev-form__jauge { height: 6px; border-radius: 6px; background: var(--platre-2); overflow: hidden; }
.pev-form__jauge-fil { display: block; height: 100%; width: 14%; background: var(--vert); border-radius: 6px; transition: width .3s ease; }
.pev-form__etape-num { margin: 6px 0 4px; font-size: 13px; color: var(--encre-2); text-align: right; font-variant-numeric: tabular-nums; }
.pev-etape { border: 0; margin: 0; padding: 0; min-width: 0; display: none; }
.pev-etape.est-active { display: block; }
html:not(.js) .pev-etape { display: block; }
.pev-etape legend { padding: 0; margin: 0 0 12px; font: 400 25px/1.05 var(--titre); color: var(--encre); }
.pev-form__sous-legende { margin: 12px 0 8px; font-weight: 700; font-size: 15px; }
.pev-tuiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pev-tuiles--trois { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pev-tuile { position: relative; min-width: 0; }
.pev-tuile input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pev-tuile label { display: flex; align-items: center; gap: 10px; height: 100%; min-height: 46px; padding: 9px 12px; border: 1.5px solid var(--filet); border-radius: var(--rayon-petit); background: var(--blanc); font-size: 15px; font-weight: 500; line-height: 1.25; cursor: pointer; transition: border-color .15s ease, background-color .15s ease; }
.pev-tuile label:hover { border-color: var(--encre-2); }
.pev-tuile__coche { flex: none; width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--encre-2); background: var(--blanc); position: relative; }
.pev-tuile input:checked + label { border-color: var(--vert); background: var(--vert-pale); color: var(--vert-fonce); font-weight: 600; }
.pev-tuile input:checked + label .pev-tuile__coche { border-color: var(--vert); background: var(--vert); box-shadow: inset 0 0 0 3px var(--blanc); }
.pev-tuile input:focus-visible + label { outline: 3px solid var(--vert); outline-offset: 2px; }
.pev-tuiles--communes { display: flex; flex-wrap: wrap; gap: 5px; }
.pev-tuiles--communes .pev-tuile label { min-height: 30px; padding: 3px 8px; gap: 6px; font-size: 13.5px; border-radius: 8px; }
.pev-tuiles--communes .pev-tuile__coche { display: none; }
.pev-champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pev-champ { display: flex; flex-direction: column; gap: 4px; }
.pev-champ label { font-size: 14px; font-weight: 600; }
.pev-champ input, .pev-champ textarea, .pev-champ select, .pev-recherche input { width: 100%; min-height: 44px; padding: 9px 12px; border: 1.5px solid var(--filet); border-radius: 10px; background: var(--blanc); font: 400 16px/1.3 var(--texte); color: var(--encre); }
.pev-champ textarea { min-height: 96px; resize: vertical; }
.pev-champ input:focus, .pev-champ textarea:focus, .pev-recherche input:focus { outline: none; border-color: var(--vert); box-shadow: 0 0 0 3px var(--vert-pale); }
.pev-case, .pev-champ-rgpd { display: flex; align-items: flex-start; gap: 10px; margin-top: 10px; font-size: 14.5px; line-height: 1.35; cursor: pointer; }
.pev-case input, .pev-champ-rgpd input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--vert); flex: none; }
.pev-champ-rgpd { font-size: 12.5px; color: var(--encre-2); }
.pev-form__actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.pev-form__actions .pev-btn--action { margin-left: auto; }
.pev-form__duree { font-size: 13.5px; color: var(--encre-2); }
.pev-form__erreur { margin: 10px 0 0; padding: 9px 12px; border-radius: 9px; background: #FBE9E5; color: #8A1F12; font-size: 14px; font-weight: 600; }
.pev-form__merci { text-align: left; padding: 6px 0 4px; }
.pev-form__merci-symbole { width: 56px; height: 56px; }
.pev-form__merci-titre { font: 400 26px/1.1 var(--titre); margin: 8px 0 6px; }
.pev-form--noscript { display: grid; gap: 10px; }
/* Version compacte (colonne d'article, rubrique, page ville) */
.pev-form-bloc--compact { padding: 16px 16px 14px; border-radius: 18px; }
.pev-form-bloc--compact .pev-etape legend { font-size: 22px; margin-bottom: 10px; }
.pev-form-bloc--compact .pev-tuile label { min-height: 40px; padding: 7px 10px; font-size: 14px; gap: 8px; }
.pev-form-bloc--compact .pev-tuiles--communes .pev-tuile label { min-height: 30px; padding: 4px 8px; font-size: 13px; }
.pev-form-bloc--compact .pev-champs { grid-template-columns: 1fr 1fr; gap: 8px; }
.pev-form-bloc--compact .pev-champ input { min-height: 40px; }
.pev-form-bloc--compact .pev-form__actions { margin-top: 12px; }
.pev-form-bloc--compact .pev-btn { min-height: 42px; padding: 8px 14px; font-size: 15px; }
@media (max-width: 480px) {
	.pev-form-bloc { padding: 16px 14px 14px; }
	.pev-tuile label { font-size: 14.5px; padding: 8px 10px; }
	.pev-tuiles--trois { grid-template-columns: 1fr 1fr 1fr; }
	.pev-tuiles--trois .pev-tuile label { font-size: 13.5px; padding: 8px; gap: 6px; }
	.pev-tuiles--trois .pev-tuile__coche { display: none; }
	.pev-champs { grid-template-columns: 1fr; }
	.pev-form__actions .pev-btn { padding: 10px 14px; }
}

/* ==========================================================================
   5. ARTICLE — ENTETE-photo-coupee-ligne-de-sol-cote-de-niveau-fiche-a-cheval
   ========================================================================== */
.pev-article-tete { position: relative; background: var(--platre); padding: 18px 0 0; }
.pev-fil { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0 0 18px; padding: 0; font-size: 14px; color: var(--encre-2); }
.pev-fil li + li::before { content: "/"; margin: 0 8px; color: var(--meuliere-fonce); }
.pev-fil a { color: var(--encre-2); }
.pev-fil li:last-child { max-width: 46ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pev-fond-zinc .pev-fil, .pev-fond-zinc .pev-fil a { color: var(--zinc-texte); }
.pev-article-tete__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: 48px; align-items: start; padding-bottom: 74px; }
.pev-article-tete__grille .pev-fil { grid-column: 1 / -1; }
.pev-pastille { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; padding: 6px 12px; border-radius: 8px; background: var(--zinc); color: var(--platre); font-size: 14px; font-weight: 600; text-decoration: none; }
.pev-pastille::before { content: ""; width: 10px; height: 8px; background: var(--meuliere); clip-path: polygon(0 0, 100% 0, 50% 100%); }
.pev-pastille:hover { background: var(--vert); color: var(--blanc); }
.pev-article-tete__titre { font-size: clamp(36px, 3.6vw, 54px); line-height: 1.02; text-wrap: balance; }
.pev-article-tete__visuel { position: relative; }
.pev-coupe--article { height: 360px; }
.pev-coupe--article .pev-cote-niveau { top: 74px; bottom: auto; }
.pev-en-bref { position: absolute; z-index: 3; left: -36px; bottom: -66px; width: 300px; background: var(--blanc); border-radius: 16px; padding: 16px 18px; box-shadow: var(--ombre-forte); border-top: 4px solid var(--vert); }
.pev-en-bref__titre { font: 400 22px/1 var(--titre); margin: 0 0 10px; }
.pev-en-bref__auteur { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 15px; line-height: 1.25; }
.pev-en-bref__auteur a { font-weight: 700; color: var(--encre); }
.pev-en-bref__auteur small { display: block; font-size: 12.5px; color: var(--encre-2); }
.pev-en-bref__portrait img, .pev-en-bref__portrait .pev-portrait__img { width: 44px !important; height: 52px !important; object-fit: cover; border-radius: 40% 40% 6px 6px / 16px 16px 6px 6px; display: block; }
.pev-en-bref__faits { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 4px 18px; margin: 0; padding-top: 10px; border-top: 1px solid var(--filet); }
.pev-en-bref__faits dt { font-size: 12px; color: var(--encre-2); }
.pev-en-bref__faits dd { margin: 0; font-weight: 700; font-size: 14.5px; font-variant-numeric: tabular-nums; }
.pev-article-tete::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--zinc); }
.pev-article-grille { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: start; padding-top: 34px; padding-bottom: 56px; }
.pev-article-colonne { min-width: 0; }
.pev-corps.article-corps { background: var(--blanc); border-radius: 22px; padding: 40px 48px 36px; box-shadow: 0 1px 0 var(--filet); }
.pev-rail { align-self: stretch; }
.pev-rail__collant { position: sticky; top: calc(var(--entete) + 16px); display: flex; flex-direction: column; gap: 12px; max-height: calc(100vh - var(--entete) - 28px); }
.pev-rail__form { order: 2; flex: none; }
.pev-lecture-progress { order: 0; flex: none; display: flex; flex-direction: column; gap: 6px; padding: 10px 14px; background: var(--zinc); border-radius: 12px; color: var(--platre); font-size: 14px; font-weight: 600; }
.pev-lecture-progress__piste { display: block; height: 5px; border-radius: 5px; background: rgba(242, 240, 235, .2); overflow: hidden; }
.pev-lecture-progress__barre { display: block; height: 100%; width: 0; background: var(--meuliere); border-radius: 5px; }
.pev-sommaire { order: 1; flex: 0 1 auto; min-height: 84px; overflow: auto; background: var(--blanc); border-radius: 14px; padding: 12px 14px; box-shadow: 0 1px 0 var(--filet); }
.pev-sommaire__titre { font: 400 19px/1 var(--titre); margin: 0 0 8px; }
.pev-sommaire ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.pev-sommaire a { display: block; padding: 4px 0 4px 12px; border-left: 3px solid var(--platre-2); font-size: 14px; line-height: 1.3; color: var(--encre-2); text-decoration: none; }
.pev-sommaire a:hover { color: var(--vert); }
.pev-sommaire li.est-actif a { border-left-color: var(--vert); color: var(--encre); font-weight: 600; }
.pev-sommaire-haut { display: none; margin-bottom: 16px; background: var(--blanc); border-radius: 14px; padding: 4px 16px; box-shadow: 0 1px 0 var(--filet); }
.pev-sommaire-haut summary { cursor: pointer; padding: 10px 0; font-weight: 700; }
.pev-sommaire-haut ol { margin: 0 0 12px; padding-left: 1.2em; display: grid; gap: 4px; font-size: 15px; }
.pev-article-auteur { margin-top: 28px; }
.pev-article-auteur__titre { font: 400 24px/1 var(--titre); margin: 0 0 12px; }
.pev-auteur { display: flex; gap: 20px; align-items: flex-start; background: var(--blanc); border-radius: var(--rayon); padding: 18px; box-shadow: 0 1px 0 var(--filet); }
.pev-fond-blanc .pev-auteur { background: var(--platre); }
.pev-auteur__portrait { flex: none; width: 104px; height: 124px; border-radius: 40% 40% 10px 10px / 30px 30px 10px 10px; overflow: hidden; background: var(--meuliere-pale); }
.pev-auteur__portrait img, .pev-auteur__portrait .pev-portrait__img { width: 100% !important; height: 100% !important; object-fit: cover; display: flex; }
.pev-auteur__nom { font: 400 26px/1.05 var(--titre); margin: 0 0 4px; }
.pev-auteur__nom a { color: var(--encre); text-decoration: none; }
.pev-auteur__nom a:hover { color: var(--vert); }
.pev-auteur__role { display: inline-block; font-size: 13.5px; font-weight: 600; color: var(--meuliere-fonce); margin-bottom: 8px; }
.pev-auteur__bio { margin: 0; font-size: 15.5px; color: var(--encre-2); }
.pev-a-lire .pev-grille { align-items: stretch; }
@media (max-width: 1080px) {
	.pev-article-tete__grille { grid-template-columns: 1fr; gap: 20px; padding-bottom: 28px; }
	.pev-coupe--article { height: clamp(220px, 50vw, 380px); }
	.pev-en-bref { position: relative; left: auto; bottom: auto; width: auto; margin: -36px 14px 0; }
	.pev-article-grille { grid-template-columns: 1fr; padding-top: 24px; }
	.pev-rail__collant { position: static; max-height: none; }
	.pev-lecture-progress, .pev-sommaire { display: none; }
	.pev-sommaire-haut { display: block; }
}
@media (max-width: 640px) {
	.pev-corps.article-corps { padding: 26px 18px 22px; border-radius: 16px; }
	.pev-auteur { flex-direction: column; }
	.pev-fil li:last-child { max-width: 24ch; }
}

/* ==========================================================================
   6. CORPS DE TEXTE — classes posées par les rédacteurs + infographies du socle
   ========================================================================== */
.pev-corps { font-size: 17.5px; line-height: 1.7; }
.pev-corps > *:first-child { margin-top: 0; }
.pev-corps h2 { font-size: clamp(28px, 2.4vw, 36px); margin: 1.6em 0 .5em; padding-top: 14px; border-top: 3px solid var(--zinc); position: relative; }
.pev-corps h2::before { content: ""; position: absolute; left: 0; top: -3px; width: 64px; height: 3px; background: var(--meuliere); }
.pev-corps h3 { font-size: 20px; margin: 1.4em 0 .4em; }
.pev-corps ul, .pev-corps ol { margin: 0 0 1.1em; }
.pev-corps li { margin-bottom: .35em; }
.pev-corps img { border-radius: 14px; }
.pev-corps figure { margin: 1.6em 0; }
.pev-corps figcaption { font-size: 13px; color: var(--encre-2); margin-top: 6px; }
.pev-corps blockquote { margin: 1.4em 0; padding: 14px 20px; border-left: 4px solid var(--meuliere); background: var(--platre); border-radius: 0 12px 12px 0; font-style: italic; }
.pev-corps table { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: 15.5px; }
.pev-corps th, .pev-corps td { padding: 10px 12px; border-bottom: 1px solid var(--filet); text-align: left; vertical-align: top; }
.pev-corps th { background: var(--platre); }
.pev-photo-corps { margin: 1.8em 0; }
.pev-photo-corps img { width: 100%; height: auto; max-height: 460px; object-fit: cover; border-radius: var(--arc-carte); border-bottom: 3px solid var(--zinc); }
.pev-corps p.pev-chapo { font-size: 19.5px; line-height: 1.6; color: var(--encre); padding-left: 18px; border-left: 4px solid var(--meuliere); max-width: none; }

ol.pev-etapes { list-style: none; counter-reset: pev-etape; margin: 1.6em 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
ol.pev-etapes > li { counter-increment: pev-etape; position: relative; margin: 0; padding: 46px 16px 16px; background: var(--platre); border-radius: 14px; font-size: 15.5px; line-height: 1.5; border-bottom: 3px solid var(--zinc); }
ol.pev-etapes > li::before { content: counter(pev-etape); position: absolute; left: 14px; top: 12px; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 7px; background: var(--vert); color: var(--blanc); font-weight: 700; font-size: 14px; }
ol.pev-etapes > li strong:first-child { display: block; margin-bottom: 2px; }

.pev-reperes { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 1.6em 0; }
p.pev-repere { margin: 0; padding: 16px 18px; background: var(--zinc); color: var(--zinc-texte); border-radius: 14px; font-size: 15px; line-height: 1.45; }
p.pev-repere strong, p.pev-repere b { display: block; font: 800 26px/1.1 var(--texte); color: var(--meuliere-pale); margin-bottom: 6px; font-variant-numeric: tabular-nums; }

.pev-encadre { margin: 1.6em 0; padding: 18px 22px; border-radius: 14px; background: var(--platre); border-left: 5px solid var(--zinc); }
.pev-encadre > *:last-child { margin-bottom: 0; }
p.pev-encadre__titre { font: 400 22px/1.1 var(--titre); margin: 0 0 8px; color: var(--encre); }
.pev-encadre--retenir { background: var(--vert-pale); border-left-color: var(--vert); }
.pev-encadre--retenir .pev-encadre__titre { color: var(--vert-fonce); }
.pev-encadre--alerte { background: #FBEDE6; border-left-color: #A3361C; }
.pev-encadre--alerte .pev-encadre__titre { color: #8A2A14; }
.pev-encadre--savoir { background: var(--meuliere-pale); border-left-color: var(--meuliere-fonce); }
.pev-encadre--savoir .pev-encadre__titre { color: var(--meuliere-fonce); }

.pev-duel { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 1.6em 0; border-radius: 16px; overflow: hidden; border: 1.5px solid var(--filet); }
.pev-duel__col { padding: 18px 20px; background: var(--blanc); font-size: 15.5px; line-height: 1.55; }
.pev-duel__col + .pev-duel__col { background: var(--platre); border-left: 3px solid var(--zinc); }
.pev-duel__col > *:last-child { margin-bottom: 0; }
p.pev-duel__titre { font: 400 22px/1.1 var(--titre); margin: 0 0 8px; color: var(--encre); }
@media (max-width: 640px) { .pev-duel { grid-template-columns: 1fr; } .pev-duel__col + .pev-duel__col { border-left: 0; border-top: 3px solid var(--zinc); } }

details.sb-faq { margin: 0 0 10px; background: var(--platre); border-radius: 12px; border: 1px solid var(--filet); }
details.sb-faq > summary { list-style: none; cursor: pointer; position: relative; padding: 14px 52px 14px 18px; font-weight: 700; font-size: 16.5px; line-height: 1.4; }
details.sb-faq > summary::-webkit-details-marker { display: none; }
details.sb-faq > summary::after { content: "+"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; background: var(--vert-pale); color: var(--vert-fonce); font-weight: 700; }
details.sb-faq[open] > summary::after { content: "−"; }
details.sb-faq > *:not(summary) { padding: 0 18px; color: var(--encre-2); }
details.sb-faq > *:last-child { padding-bottom: 14px; margin-bottom: 0; }

.sb-sources { margin: 2em 0 0; padding: 18px 22px; background: var(--platre); border-radius: 14px; font-size: 14px; line-height: 1.55; color: var(--encre-2); }
.pev-corps .sb-sources h2 { font: 700 15px/1.3 var(--texte); margin: 0 0 8px; padding: 0; border: 0; color: var(--encre); }
.pev-corps .sb-sources h2::before { display: none; }
.sb-sources ul { list-style: none; margin: 0; padding: 0; }
.sb-sources li { position: relative; padding-left: 16px; margin-bottom: 6px; }
.sb-sources li::before { content: ""; position: absolute; left: 0; top: 8px; width: 7px; height: 6px; background: var(--meuliere-fonce); clip-path: polygon(0 0, 100% 0, 50% 100%); }
.sb-sources p:last-child { margin-bottom: 0; }

.pev-meme-sujet { margin: 1.8em 0; padding: 16px 20px; border-radius: 14px; background: var(--zinc); color: var(--zinc-texte); }
.pev-meme-sujet > *:last-child { margin-bottom: 0; }
.pev-meme-sujet p:first-child { font: 400 21px/1.1 var(--titre); color: var(--platre); margin-bottom: 8px; }
.pev-meme-sujet ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pev-meme-sujet a { color: var(--vert-clair); font-weight: 600; }
.pev-meme-sujet a:hover { color: var(--blanc); }
.pev-encadre-cta { margin: 1.8em 0; padding: 20px 22px; border-radius: 16px; background: var(--meuliere-pale); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; }
.pev-encadre-cta > *:not(.pev-btn) { margin: 0; flex: 1 1 300px; }

/* Infographies du socle, aux couleurs de la peau */
.sbs_lieu, .sbs_tarifs, .sbs_frise, .sbs_jauges { display: block; margin: 1.6em 0; padding: 20px 22px; border-radius: 16px; background: var(--platre); border-bottom: 3px solid var(--zinc); }
.sbs_lieu_nom, .sbs_tarifs_titre, .sbs_frise_titre, .sbs_jauges_titre { display: block; font: 400 22px/1.1 var(--titre); color: var(--encre); margin-bottom: 12px; }
.sbs_lieu_adresse, .sbs_lieu_acces { display: block; font-size: 15px; font-style: normal; color: var(--encre-2); margin-bottom: 4px; }
.sbs_lieu_carte { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-weight: 600; }
.sbs_icone_repere path { fill: var(--vert); }
.sbs_tarif { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 12px; margin-bottom: 12px; }
.sbs_tarif_libelle { font-weight: 600; font-size: 15px; }
.sbs_tarif_barre { grid-column: 1 / -1; width: 100%; height: 12px; accent-color: var(--vert); }
.sbs_tarif_barre::-webkit-meter-bar { background: var(--platre-2); border-radius: 6px; border: 0; }
.sbs_tarif_barre::-webkit-meter-optimum-value { background: var(--vert); border-radius: 6px; }
.sbs_tarifs_notes, .sbs_source { display: block; font-size: 12.5px; color: var(--encre-2); margin-top: 10px; }
.sbs_frise { display: grid; gap: 12px; }
.sbs_etape { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 4px 14px; padding-left: 14px; border-left: 3px solid var(--meuliere); }
.sbs_etape_date { font-weight: 700; color: var(--vert-fonce); }
.sbs_etape_titre { font-weight: 700; }
.sbs_etape_desc { grid-column: 2; color: var(--encre-2); font-size: 15px; }
.sbs_jauges { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; background: var(--zinc); border-bottom: 0; }
.sbs_jauges_titre { grid-column: 1 / -1; color: var(--platre); margin: 0; }
.sbs_jauge { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 12px; background: var(--zinc-2); }
.sbs_jauge_valeur { order: 1; font: 800 32px/1 var(--texte); color: var(--meuliere-pale); font-variant-numeric: tabular-nums; }
.sbs_jauge_unite { order: 2; font-size: 14px; font-weight: 700; color: var(--vert-clair); }
.sbs_jauge_libelle { order: 3; font-size: 14px; line-height: 1.4; color: var(--zinc-texte); }
.sbs_jauges .sbs_source { grid-column: 1 / -1; color: var(--zinc-texte); }
.sbs_tableau { overflow-x: auto; border-radius: 14px; border: 1.5px solid var(--filet); margin: 1.4em 0; }
.sbs_tableau table { margin: 0; min-width: 480px; }
@media (max-width: 640px) { .sbs_etape { grid-template-columns: 1fr; } .sbs_etape_desc { grid-column: 1; } }

/* ==========================================================================
   7. RUBRIQUE — RUBRIQUE-bandeau-coupe-de-terrain-hachuree-cote
   ========================================================================== */
.pev-rubrique-tete, .pev-page-tete, .pev-hub-tete, .pev-ville-tete { position: relative; background: var(--platre); padding: 22px 0 0; }
.pev-rubrique-tete__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: 48px; align-items: end; padding-bottom: 28px; }
.pev-rubrique-tete h1 { font-size: clamp(40px, 4.4vw, 64px); }
.pev-coupe--rubrique { height: 300px; }
.pev-onglets { display: flex; flex-wrap: nowrap; gap: 6px; margin-top: 18px; overflow-x: auto; scrollbar-width: none; }
.pev-onglet { flex: none; padding: 9px 14px; border-radius: 10px; border: 1.5px solid var(--filet); background: var(--blanc); color: var(--encre); font-size: 15px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.pev-onglet:hover { border-color: var(--zinc); color: var(--encre); }
.pev-onglet.est-actif { background: var(--zinc); border-color: var(--zinc); color: var(--platre); }
.pev-une { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 0; background: var(--blanc); border-radius: 22px; overflow: hidden; text-decoration: none; color: var(--encre); box-shadow: 0 1px 0 var(--filet), 0 16px 34px -26px rgba(31, 43, 51, .5); align-items: stretch; transition: box-shadow .2s ease; }
.pev-une:hover { box-shadow: var(--ombre-forte); color: var(--encre); }
.pev-une__media { display: block; height: clamp(280px, calc(100vh - 360px), 420px); margin: 12px 0 12px 12px; border-radius: var(--arc-carte); border-bottom-left-radius: 14px; border-bottom-right-radius: 14px; overflow: hidden; }
.pev-une__media img, .pev-une__media .pev-photo--repli { width: 100%; height: 100%; object-fit: cover; }
.pev-une__corps { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 12px; padding: 32px 36px; }
.pev-une__cote { margin: 0; }
.pev-une__titre { font: 400 clamp(30px, 2.6vw, 40px)/1.05 var(--titre); }
.pev-une__extrait { color: var(--encre-2); font-size: 16px; line-height: 1.55; }
.pev-une--seule { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.pev-rubrique-demande__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 48px; align-items: start; }
.pev-rubrique-demande__texte p { max-width: 54ch; }
@media (max-width: 1080px) {
	.pev-rubrique-tete__grille, .pev-rubrique-demande__grille { grid-template-columns: 1fr; gap: 22px; }
	.pev-coupe--rubrique { height: clamp(200px, 44vw, 320px); }
	.pev-une { grid-template-columns: 1fr; }
	.pev-une__media { margin: 10px 10px 0; height: clamp(200px, 50vw, 340px); }
	.pev-une__corps { padding: 20px 20px 24px; }
}

/* Parcours en 4 étapes (pages intérieures) */
.pev-parcours { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; position: relative; }
.pev-parcours__etape { position: relative; padding: 18px; border-radius: 16px; background: var(--platre); }
.pev-fond-platre .pev-parcours__etape { background: var(--blanc); }
.pev-fond-zinc .pev-parcours__etape { background: var(--zinc-2); }
.pev-parcours__icone { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--zinc); margin-bottom: 10px; }
.pev-fond-zinc .pev-parcours__icone { background: var(--meuliere); }
.pev-parcours__icone svg { width: 24px; height: 24px; fill: none; stroke: var(--platre); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pev-fond-zinc .pev-parcours__icone svg { stroke: var(--zinc); }
.pev-parcours__num { display: block; font-size: 13px; font-weight: 600; color: var(--meuliere-fonce); }
.pev-fond-zinc .pev-parcours__num { color: var(--meuliere-pale); }
.pev-parcours__etape h3 { font-size: 17px; margin: 2px 0 4px; }
.pev-parcours__etape p { margin: 0; font-size: 14.5px; line-height: 1.45; color: var(--encre-2); }
.pev-fond-zinc .pev-parcours__etape p { color: var(--zinc-texte); }
.pev-rubrique-demande__texte .pev-parcours { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 22px; }
@media (max-width: 1080px) { .pev-parcours { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pev-parcours, .pev-rubrique-demande__texte .pev-parcours { grid-template-columns: 1fr; } }

/* ==========================================================================
   8. PAGES VILLE ET ZONE
   ========================================================================== */
.pev-ville-tete__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: 44px; align-items: start; padding-bottom: 44px; }
.pev-ville-tete h1 { font-size: clamp(36px, 3.4vw, 50px); line-height: 1; margin-bottom: 10px; }
.pev-ville-tete .pev-chapo { font-size: 16.5px; margin-bottom: 12px; }
.pev-ville-tete .pev-fil { margin-bottom: 12px; }
.pev-ville-tete h1 .pev-ton-1 { display: block; }
.pev-ville-tete__form { max-width: 520px; margin-top: 6px; }
.pev-ville-tete__form .pev-form-bloc { box-shadow: var(--ombre-forte); }
.pev-ville-tete__visuel { position: relative; padding-top: 34px; }
.pev-coupe--ville { height: 470px; }
.pev-coupe--ville .pev-cote-niveau { bottom: auto; top: 76px; right: auto; left: 30px; }
.pev-ville-carte { overflow: hidden; position: absolute; z-index: 3; right: -14px; bottom: -26px; width: 230px; padding: 10px 12px 12px; background: var(--blanc); border-radius: 16px; box-shadow: var(--ombre-forte); }
.pev_contour { display: block; width: 100%; height: auto; }
.pev_contour_voisine { fill: var(--platre-2); stroke: var(--blanc); stroke-width: 1.2; }
.pev_contour_forme { fill: var(--vert); stroke: var(--vert-fonce); stroke-width: 1.5; }
.pev-ville-carte__legende { margin: 6px 0 0; font-size: 13.5px; line-height: 1.35; }
.pev-ville-carte__legende strong { display: block; font-size: 15px; }
.pev-ville-carte__legende span { color: var(--encre-2); }
.pev-ville-tete__credit { margin-top: 36px; max-width: 280px; }
.pev-ville-corps__grille { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 44px; align-items: start; }
.pev-ville-intro { margin-bottom: 22px; }
.pev-accordeon { border-top: 3px solid var(--zinc); }
.pev-accordeon:last-of-type { border-bottom: 1px solid var(--filet); }
.pev-accordeon > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 0; }
.pev-accordeon > summary::-webkit-details-marker { display: none; }
.pev-accordeon > summary h2 { margin: 0; font-size: clamp(24px, 2.2vw, 32px); }
.pev-accordeon > summary:hover h2 { color: var(--vert); }
.pev-accordeon__corps { padding: 0 0 22px; }
.pev-ville-corps__rail { align-self: stretch; }
.pev-ville-corps__rail .pev-rail__collant { display: block; }
.pev-ville-corps__rail-titre { font: 400 24px/1.1 var(--titre); margin: 0 0 10px; }
.pev-voisines__grille { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 40px; align-items: center; }
.pev-tuiles-communes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; }
.pev-voisines .pev-tuiles-communes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pev-tuile-commune > a, .pev-tuile-commune > span { display: flex; flex-direction: column; gap: 2px; height: 100%; padding: 12px 14px 14px; border-radius: 16px; background: var(--blanc); color: var(--encre); text-decoration: none; box-shadow: 0 1px 0 var(--filet); transition: transform .2s ease, box-shadow .2s ease; }
.pev-fond-blanc .pev-tuile-commune > a, .pev-fond-blanc .pev-tuile-commune > span { background: var(--platre); }
.pev-tuile-commune > a:hover { transform: translateY(-3px); box-shadow: var(--ombre); color: var(--encre); }
.pev-tuile-commune__forme { display: block; height: 110px; margin-bottom: 6px; border-bottom: 3px solid var(--zinc); }
.pev-tuile-commune__forme svg { height: 100%; }
.pev-tuile-commune .pev_contour_forme { fill: #C9A35C; stroke: var(--meuliere-fonce); }
.pev-tuile-commune--94 .pev_contour_forme { fill: #6FAF97; stroke: var(--vert-fonce); }
.pev-tuile-commune__nom { font-weight: 700; font-size: 16.5px; line-height: 1.25; }
.pev-tuile-commune__meta { font-size: 13.5px; color: var(--encre-2); }
.pev-hub-tete__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: 48px; align-items: start; padding-bottom: 34px; }
.pev-coupe--hub { height: 230px; margin-top: 22px; max-width: 560px; }
.pev-hub-tete__form .pev-form-bloc { box-shadow: var(--ombre-forte); }
@media (max-width: 1080px) {
	.pev-ville-tete__grille, .pev-ville-corps__grille, .pev-voisines__grille, .pev-hub-tete__grille { grid-template-columns: 1fr; gap: 22px; }
	.pev-ville-tete__visuel { padding-top: 0; order: -1; }
	.pev-coupe--ville { height: clamp(200px, 46vw, 360px); }
	.pev-ville-carte { right: 10px; bottom: -20px; width: 170px; padding: 8px; }
	.pev-ville-carte__legende { display: none; }
	.pev-ville-tete__credit { margin-top: 28px; }
	.pev-ville-tete__texte { margin-top: 10px; }
	.pev-ville-corps__rail .pev-rail__collant { position: static; }
	.pev-voisines .pev-tuiles-communes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 560px) { .pev-voisines .pev-tuiles-communes, .pev-tuiles-communes { grid-template-columns: 1fr 1fr; } .pev-tuile-commune__forme { height: 80px; } }

/* ==========================================================================
   9. CONTACT, PAGES DE SERVICE, ÉQUIPE, CRÉDITS, PLAN, 404
   ========================================================================== */
.pev-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: calc(100vh - var(--entete)); }
.pev-contact__gauche { background: var(--platre); display: flex; justify-content: flex-end; }
.pev-contact__gauche-int { width: 100%; max-width: 596px; padding: 24px 48px 40px 24px; display: flex; flex-direction: column; }
.pev-contact__gauche h1 { font-size: clamp(38px, 3.8vw, 56px); }
.pev-coupe--contact { flex: 1 1 auto; min-height: 150px; max-height: 260px; margin: 6px 0 20px; }
.pev-contact__gauche .pev-reperes-liste { margin: 0; }
.pev-contact__gauche .pev-reperes-liste li { padding-top: 9px; padding-bottom: 9px; }
.pev-contact__gauche .pev-reperes-liste li::before { top: 8px; }
.pev-contact__droite { background: var(--zinc); display: flex; }
.pev-contact__droite-int { width: 100%; max-width: 596px; padding: 46px 24px 40px 48px; display: flex; flex-direction: column; gap: 26px; }
.pev-contact__form .pev-form-bloc { box-shadow: 0 30px 60px -24px rgba(0, 0, 0, .55); }
.pev-contact__note { color: var(--zinc-texte); font-size: 15px; }
@media (max-width: 1080px) {
	.pev-contact { display: flex; flex-direction: column; min-height: 0; }
	.pev-contact__gauche, .pev-contact__gauche-int, .pev-contact__droite, .pev-contact__droite-int { display: contents; }
	.pev-contact > * > * > * { margin-left: 18px; margin-right: 18px; }
	.pev-contact .pev-fil { order: 1; margin-top: 16px; }
	.pev-contact h1 { order: 2; margin-bottom: 6px; }
	.pev-contact .pev-chapo { order: 3; font-size: 16px; margin-bottom: 14px; }
	.pev-contact .pev-sol { order: 4; }
	.pev-contact__form { order: 5; margin-top: 10px; margin-bottom: 26px; }
	.pev-coupe--contact { order: 6; height: 200px; flex: none; }
	.pev-contact .pev-reperes-liste { order: 7; margin: 0 18px 30px; }
	.pev-contact .pev-fil { display: none; }
	.pev-contact h1 { font-size: 34px; margin-top: 18px; }
	.pev-contact__note { order: 8; color: var(--encre-2); }
	.pev-contact .pev-sol--clair { background: var(--zinc); }
	.pev-contact .pev-sol--clair .pev-sol__repere { display: none; }
}

.pev-page-tete__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: 48px; align-items: center; padding-bottom: 30px; }
.pev-page-tete h1 { font-size: clamp(38px, 4vw, 58px); }
.pev-coupe--page { height: 330px; }
.pev-page-tete--simple .pev-conteneur:first-child { padding-bottom: 26px; }
.pev-trois { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.pev-trois__item { padding: 22px; border-radius: 16px; background: var(--platre); border-top: 4px solid var(--meuliere); }
.pev-trois__item p { margin: 0; font-size: 15.5px; color: var(--encre-2); }
.pev-trois--sombre .pev-trois__item { background: var(--zinc-2); border-top-color: var(--vert-clair); }
.pev-trois--sombre .pev-trois__item p { color: var(--zinc-texte); }
.pev-equipe { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.pev-membre { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; align-items: start; padding: 20px; border-radius: 20px; background: var(--platre); }
.pev-membre__portrait { height: 240px; border-radius: 46% 46% 12px 12px / 46px 46px 12px 12px; overflow: hidden; padding: 8px; background-color: var(--meuliere); background-image: var(--meuliere-texture); background-size: var(--meuliere-taille); }
.pev-membre__portrait .pev-photo, .pev-membre__portrait .pev-photo--repli { height: 100%; border-radius: 44% 44% 6px 6px / 40px 40px 6px 6px; overflow: hidden; }
.pev-membre__nom { font-size: clamp(30px, 2.6vw, 38px); margin: 4px 0 2px; }
.pev-membre__role { font-weight: 600; font-size: 14.5px; color: var(--meuliere-fonce); margin-bottom: 12px; }
.pev-membre p { font-size: 15.5px; color: var(--encre-2); }
.pev-credits__titre { margin: 8px 0 16px; }
.pev-credits { list-style: none; margin: 0 0 36px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.pev-credits__item { display: flex; gap: 14px; align-items: center; padding: 10px; border-radius: 14px; background: var(--platre); }
.pev-credits__item img { width: 96px; height: 72px; object-fit: cover; border-radius: 10px; flex: none; }
.pev-credits__texte { display: flex; flex-direction: column; gap: 2px; font-size: 14px; line-height: 1.35; min-width: 0; overflow-wrap: anywhere; }
.pev-credits__licence { display: inline-block; align-self: flex-start; padding: 2px 8px; border-radius: 6px; background: var(--zinc); color: var(--platre); font-size: 12.5px; font-weight: 600; }
.pev-plan { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.pev-plan__bloc { padding: 20px 22px; border-radius: 16px; background: var(--platre); }
.pev-plan__bloc h2 { font-size: 28px; }
.pev-plan__bloc h2 a { color: var(--encre); text-decoration: none; }
.pev-plan__bloc ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 15px; }
.pev-plan__colonnes { grid-template-columns: 1fr 1fr; column-gap: 16px; }
.pev-recherche { display: flex; gap: 10px; max-width: 560px; margin-top: 16px; }
.pev-404__grille { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 40px; align-items: center; margin-bottom: 30px; }
.pev-404__svg { width: 200px; height: 200px; }
.pev-secours { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.pev-secours a { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 14px; background: var(--blanc); color: var(--encre); font-weight: 700; text-decoration: none; box-shadow: 0 1px 0 var(--filet); }
.pev-secours a:hover { box-shadow: var(--ombre); color: var(--vert); }
.pev-secours__symbole { width: 40px; height: 40px; flex: none; }
@media (max-width: 1080px) {
	.pev-page-tete__grille { grid-template-columns: 1fr; gap: 20px; }
	.pev-coupe--page { height: clamp(200px, 46vw, 340px); }
	.pev-trois, .pev-equipe, .pev-plan { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.pev-membre { grid-template-columns: 1fr; }
	.pev-membre__portrait { height: 280px; max-width: 260px; }
	.pev-404__grille { grid-template-columns: 1fr; gap: 16px; }
	.pev-404__svg { width: 110px; height: 110px; }
	.pev-recherche { flex-direction: column; }
	.pev-plan__colonnes { grid-template-columns: 1fr; }
}

/* ==========================================================================
   10. PASSE 1 (03/11/2026) — LA COUPE DE NIVEAU
   Le motif tiré du geste d'évacuer vers le haut : un cadre rectangulaire coupé
   par la ligne de sol (zinc épais), la terre en hachures fines sous la ligne,
   les cotes ▽ « ±0,00 » sur la ligne et « −2,10 m » au fond, et la flèche
   pointillée du refoulement qui remonte de l'une à l'autre.
   ========================================================================== */

/* --- Le composant ------------------------------------------------------- */
.pev-coupe { --sol: 62%; position: relative; border-radius: 10px; overflow: hidden; border: 2px solid var(--zinc); background: var(--zinc-2); box-shadow: var(--ombre-forte); isolation: isolate; }
.pev-coupe__vue { position: absolute; inset: 0; overflow: hidden; background: var(--zinc-2); }
.pev-coupe__vue .pev-photo, .pev-coupe__vue > img, .pev-coupe__vue img { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; }
.pev-coupe__sous-sol { position: absolute; z-index: 1; left: 0; right: 0; top: var(--sol); bottom: 0; border-top: 6px solid var(--zinc); box-shadow: 0 -1px 0 rgba(242, 240, 235, .6); background: repeating-linear-gradient(135deg, rgba(242, 240, 235, .24) 0 1.3px, transparent 1.3px 9px), linear-gradient(180deg, rgba(31, 43, 51, .16), rgba(31, 43, 51, .5)); pointer-events: none; }
.pev-coupe__cote { position: absolute; display: inline-flex; align-items: center; gap: 7px; padding: 6px 11px; border-radius: 7px; background: rgba(31, 43, 51, .92); color: var(--platre); font: 600 13.5px/1 var(--texte); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pev-coupe__cote svg { width: 11px; height: 9px; fill: var(--meuliere); flex: none; }
.pev-coupe__cote--rue { right: 58px; bottom: calc(100% + 12px); }
.pev-coupe__cote--fond { right: 58px; bottom: 14px; }
.pev-coupe__fleche { position: absolute; right: 27px; top: 9px; bottom: 22px; border-left: 2.5px dashed var(--platre); }
.pev-coupe__fleche::before { content: ""; position: absolute; left: -8.25px; top: -4px; width: 14px; height: 11px; background: var(--platre); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.pev-coupe__fleche::after { content: ""; position: absolute; left: -5.25px; bottom: -4px; width: 8px; height: 8px; border-radius: 50%; background: var(--platre); }

/* Accueil : la coupe complète — la rue au-dessus, la pièce enterrée dans la terre hachurée */
.pev-coupe--hero { --sol: 84px; background: var(--hachure), var(--platre-2); }
.pev-coupe--hero::before { content: ""; position: absolute; z-index: 0; left: 0; right: 0; top: 0; height: var(--sol); background: linear-gradient(180deg, #FBFAF7, var(--blanc)); }
.pev-coupe--hero .pev-coupe__vue { inset: auto; top: calc(var(--sol) + 20px); left: 22px; right: 54px; bottom: 22px; border-radius: 4px; box-shadow: 0 0 0 3px var(--zinc); }
.pev-coupe--hero .pev-coupe__vue::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255, 250, 238, .18), rgba(255, 250, 238, 0) 40%); pointer-events: none; }
.pev-coupe--hero .pev-coupe__sous-sol { background: none; box-shadow: none; }
.pev-coupe--hero .pev-coupe__fleche { right: 24px; top: 10px; bottom: 22px; border-left-color: var(--vert); }
.pev-coupe--hero .pev-coupe__fleche::before, .pev-coupe--hero .pev-coupe__fleche::after { background: var(--vert); }
.pev-coupe--hero .pev-coupe__cote--rue { right: 14px; bottom: calc(100% + 12px); }
.pev-coupe--hero .pev-coupe__cote--fond { right: 68px; bottom: 36px; }

/* Variantes : la photo coupée par la ligne de sol */
.pev-coupe--article { --sol: 66%; height: 360px; }
.pev-coupe--rubrique { --sol: 58%; height: 260px; }
.pev-coupe--ville { --sol: 64%; height: 440px; }
.pev-coupe--page { --sol: 62%; height: 330px; }
.pev-coupe--hub { --sol: 56%; height: 240px; margin-top: 22px; max-width: 560px; }
.pev-coupe--contact { --sol: 58%; flex: 1 1 auto; min-height: 170px; max-height: 260px; margin: 6px 0 20px; }
.pev-coupe--final { --sol: 60%; height: 360px; }
.pev-coupe--article .pev-coupe__cote--rue { right: 14px; }

/* Repli photo : la terre hachurée, jamais une case vide */
.pev-photo--repli { background: var(--hachure), var(--platre-2); }

/* Ligne de sol simple (pages, pied d'en-tête) : trait zinc + terre hachurée */
.pev-sol { height: 4px; }
.pev-sol::after { top: 4px; height: 12px; background: var(--hachure); }
.pev-sol--clair { background: var(--platre); }
.pev-sol--clair::after { background: repeating-linear-gradient(135deg, rgba(242, 240, 235, .4) 0 1.3px, transparent 1.3px 8px); }
.pev-sol__repere::before { background: var(--meuliere-fonce); }
.pev-rubrique-tete .pev-sol, .pev-ville-tete .pev-sol { height: 6px; margin-bottom: 18px; }
.pev-rubrique-tete .pev-sol::after, .pev-ville-tete .pev-sol::after { top: 6px; height: 18px; }

/* Pied de page : la ligne de sol au-dessus de la terre */
.pev-pied__sol { height: 18px; background: repeating-linear-gradient(135deg, rgba(185, 194, 200, .32) 0 1.3px, transparent 1.3px 8px), var(--zinc-2); border-top: 5px solid var(--zinc); border-bottom: 0; }
.pev-logo--clair .pev-logo__symbole { --zinc: #B9C2C8; }

/* Formulaire : liseré ocre plein */
.pev-form-bloc::before { background: var(--meuliere); }

/* Portraits : rectangles posés sur une ligne de sol, plus d'arche */
.pev-auteur__portrait { border-radius: 10px; border-bottom: 4px solid var(--zinc); }
.pev-en-bref__portrait img, .pev-en-bref__portrait .pev-portrait__img { border-radius: 6px; }
.pev-membre__portrait { padding: 0; border-radius: 12px; background: var(--platre-2); border: 2px solid var(--zinc); border-bottom-width: 6px; }
.pev-membre__portrait .pev-photo, .pev-membre__portrait .pev-photo--repli { border-radius: 0; }
.pev-une__media { border-radius: 12px; }
.pev-photo-corps img { border-radius: 12px 12px 0 0; }

/* --- En-tête : menu sur une ligne, burger sous 1180 px --------------------- */
.pev-nav ul { gap: 2px; }
.pev-nav a { white-space: nowrap; padding: 10px 11px; }
.pev-nav a::after { left: 11px; right: 11px; }
@media (min-width: 1181px) and (max-width: 1300px) { .pev-entete__ligne { gap: 18px; } .pev-nav a { padding: 10px 9px; font-size: 15px; } }
@media (max-width: 560px) {
	.pev-entete .pev-conteneur { padding: 0 16px; }
	.pev-entete__ligne { gap: 8px; }
	.pev-logo { gap: 6px; min-width: 0; }
	.pev-logo__symbole { width: 30px; height: 30px; }
	.pev-logo__nom { font-size: 19px; }
	.pev-entete__actions { gap: 8px; flex: none; }
	.pev-entete__actions .pev-btn { padding: 7px 10px; min-height: 40px; font-size: 14px; }
	.pev-burger { width: 40px; height: 40px; }
	.pev-burger span { top: 17px; left: 9px; right: 9px; }
}

/* --- Hero de l'accueil : HERO-coupe-de-niveau-ligne-de-sol-cotes-refoulement-formulaire-sous-le-sol --- */
.pev-hero { position: relative; background: var(--platre); padding: 24px 0 30px; overflow: hidden; }
.pev-hero__grille { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 460px) minmax(0, 1fr); gap: 40px; }
.pev-hero__texte { padding-top: 6px; display: flex; flex-direction: column; align-items: flex-start; }
.pev-hero__titre { font-size: clamp(40px, 4.15vw, 60px); line-height: .98; margin: 0 0 18px; text-wrap: balance; }
.pev-hero__titre .pev-ton-1 { display: block; }
.pev-hero__chapo { margin: 0 0 22px; }
.pev-hero__mobile { display: none; }
.pev-hero__visuel { position: relative; min-height: 596px; }
.pev-coupe--hero { position: absolute; top: 0; right: 0; width: calc(100% - 64px); height: 596px; }
.pev-hero__form { position: absolute; z-index: 3; left: 0; top: 108px; width: 410px; }
.pev-hero__form .pev-form-bloc { box-shadow: var(--ombre-forte); }
.pev-preuves { list-style: none; margin: auto 0 0; padding: 14px 0 0; display: flex; flex-wrap: wrap; gap: 10px 26px; border-top: 4px solid var(--zinc); width: 100%; position: relative; }
.pev-preuves::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 10px; background: var(--hachure); opacity: .7; }
.pev-preuves li { position: relative; padding-left: 18px; font-size: 15.5px; line-height: 1.3; color: var(--encre-2); }
.pev-preuves li::after { content: ""; position: absolute; left: 0; top: 5px; width: 11px; height: 9px; background: var(--meuliere-fonce); clip-path: polygon(0 0, 100% 0, 50% 100%); }
.pev-preuves strong { font-weight: 800; font-size: 19px; color: var(--encre); font-variant-numeric: tabular-nums; }
.pev-preuves--page { margin-top: 24px; border-top: 0; padding-top: 0; width: auto; }
.pev-preuves--page::after { display: none; }
.pev-preuves li::before { display: none; }
.pev-preuves li { padding-top: 0; }
.pev-hero .pev-preuves li { margin-top: 8px; }
@media (min-width: 1081px) and (max-width: 1240px) { .pev-hero__grille { grid-template-columns: minmax(0, 420px) minmax(0, 1fr); } .pev-hero__form { width: 384px; } }
@media (max-width: 1080px) {
	.pev-hero { padding: 18px 0 28px; }
	.pev-hero__grille { grid-template-columns: 1fr; gap: 0; }
	.pev-hero__titre { font-size: clamp(34px, 7vw, 54px); margin-bottom: 12px; }
	.pev-hero__chapo { margin-bottom: 16px; }
	.pev-hero__lien { display: none; }
	.pev-hero__mobile { display: inline-flex; margin-bottom: 18px; }
	.pev-hero .pev-preuves { order: 9; margin: 0 0 18px; }
	.pev-hero__visuel { min-height: 0; }
	.pev-coupe--hero { --sol: 46px; position: relative; width: 100%; height: clamp(250px, 54vw, 440px); }
	.pev-coupe--hero .pev-coupe__vue { top: calc(var(--sol) + 14px); left: 14px; right: 42px; bottom: 14px; }
	.pev-coupe--hero .pev-coupe__fleche { right: 18px; top: 8px; bottom: 14px; }
	.pev-coupe--hero .pev-coupe__cote--rue { bottom: calc(100% + 8px); right: 10px; }
	.pev-coupe--hero .pev-coupe__cote--fond { right: 52px; bottom: 24px; }
	.pev-hero__form { position: relative; top: auto; left: auto; width: auto; margin: -34px 10px 0; }
}
@media (max-width: 560px) {
	.pev-hero__chapo { font-size: 16px; }
	.pev-hero .pev-preuves { display: none; }
	.pev-coupe__cote { font-size: 12.5px; padding: 5px 9px; }
	.pev-hero__form { margin: -28px 6px 0; }
}

/* --- Formulaire : cases de même hauteur, 7e option pleine largeur ---------- */
.pev-tuiles { grid-auto-rows: 1fr; }
.pev-tuiles:not(.pev-tuiles--trois):not(.pev-tuiles--communes) > .pev-tuile:last-child:nth-child(odd) { grid-column: 1 / -1; }
.pev-tuile label { height: 100%; }

/* --- Pages : coupes et cartes ---------------------------------------------- */
.pev-ville-carte { right: auto; left: -22px; }
@media (max-width: 1080px) {
	.pev-coupe--article { height: clamp(220px, 50vw, 380px); }
	.pev-coupe--rubrique { height: clamp(190px, 42vw, 300px); }
	.pev-coupe--ville { height: clamp(210px, 48vw, 360px); }
	.pev-coupe--page { height: clamp(200px, 46vw, 340px); }
	.pev-coupe--final { height: clamp(210px, 46vw, 340px); }
	.pev-ville-carte { left: 10px; right: auto; }
}
@media (max-width: 1080px) { .pev-coupe--contact { order: 6; height: 200px; flex: none; } }

/* --- Mobile : sections resserrées ------------------------------------------ */
@media (max-width: 560px) {
	.pev-section { padding: 32px 0; }
	.pev-tete-section { margin-bottom: 16px; }
	.pev-tete-section--ligne { gap: 8px; }
	.pev-tete-section p { font-size: 15.5px; }
	/* six appareils : tuiles 2 colonnes compactes */
	.pev-appareils { gap: 10px; }
	.pev-appareil__media { height: 92px; }
	.pev-appareil__desc { display: none; }
	.pev-appareil__texte { padding: 8px 10px 10px; }
	/* carte des communes */
	.pev-carte-section { gap: 18px; }
	.pev-carte-section__chiffres { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 10px 0 14px; }
	.pev-carte-section__chiffres li { font-size: 14px; }
	.pev_carte { max-height: 300px; }
	.pev-zone { gap: 14px; }
	.pev-zone__carte { padding: 8px; }
	.pev-legende { gap: 0 10px; }
	.pev-legende__item a, .pev-legende__item span { font-size: 13px; gap: 6px; padding: 2px 0; }
	.pev-legende__item b { width: 20px; height: 20px; font-size: 11px; }
	/* cartes en ligne : vignette à gauche, texte à droite */
	.pev-grille { gap: 12px; }
	.pev-grille > .pev-carte { display: grid; grid-template-columns: 104px minmax(0, 1fr); align-items: start; }
	.pev-grille > .pev-carte .pev-carte__media { grid-row: 1 / span 2; height: 104px; margin: 8px 0 8px 8px; border-radius: 8px; border-bottom: 3px solid var(--zinc); }
	.pev-grille > .pev-carte .pev-carte__sol { display: none; }
	.pev-grille > .pev-carte .pev-carte__corps { padding: 10px 12px 12px; gap: 4px; }
	.pev-carte__titre, .pev-carte__titre a { font-size: 16px; }
	.pev-carte__rubrique { font-size: 12.5px; }
	.pev-carte__extrait { font-size: 14px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
	.pev-carte__liste a { font-size: 14px; }
	/* méthode : 2 colonnes compactes */
	.pev-methode { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.pev-methode__etape { padding: 6px 6px 12px; }
	.pev-methode__media { height: 84px; }
	.pev-methode__num { left: 14px; top: 72px; font-size: 13px; padding: 4px 8px; }
	.pev-methode__etape h3 { margin: 18px 4px 4px; font-size: 15px; }
	.pev-methode__etape p { margin: 0 4px; font-size: 13.5px; }
	/* FAQ et appel final */
	.pev-faq-section { gap: 14px; }
	.pev-coupe--final { height: 210px; }
	.pev-reperes-liste li { padding: 10px 12px 10px 46px; font-size: 14.5px; }
	.pev-reperes-liste li::before { left: 10px; top: 9px; }
	/* rubrique : onglets sur deux lignes, rien qui dépasse */
	.pev-onglets { flex-wrap: wrap; overflow: visible; }
	.pev-onglet { padding: 8px 12px; font-size: 14px; }
}

/* Passe 1, retouches après mesure : réglet de cotes au-dessus de la ligne de sol, crédit photo de la page ville dégagé de la mini-carte */
.pev-coupe--hero::before { background: repeating-linear-gradient(90deg, rgba(31, 43, 51, .42) 0 1.5px, transparent 1.5px 32px) left bottom / 100% 9px no-repeat, repeating-linear-gradient(90deg, rgba(31, 43, 51, .22) 0 1px, transparent 1px 8px) left bottom / 100% 5px no-repeat, linear-gradient(180deg, #FBFAF7, var(--blanc)); }
.pev-ville-tete__credit { margin-left: auto; text-align: right; max-width: calc(100% - 230px); }
@media (max-width: 1080px) { .pev-ville-tete__credit { max-width: calc(100% - 196px); margin-top: 12px; } }

/* ==========================================================================
   11. PASSE 2 (03/11) — en-tête qui tient dans 360/390 quelle que soit la police,
   cotes et badges DANS leur cadre, encres lisibles
   ========================================================================== */
/* 1. En-tête : la marque peut rétrécir (jamais les actions), rien ne dépasse la largeur */
.pev-entete__ligne { min-width: 0; }
.pev-logo { flex: 0 1 auto; min-width: 0; overflow: hidden; }
.pev-logo__symbole { flex: none; }
.pev-logo__nom { display: block; min-width: 0; overflow: hidden; text-overflow: clip; }
.pev-entete__actions { flex: none; min-width: 0; max-width: 100%; }
@media (min-width: 1181px) { .pev-logo { flex: none; overflow: visible; } }
@media (max-width: 420px) {
	.pev-entete .pev-conteneur { padding: 0 12px; }
	.pev-entete__ligne { gap: 6px; }
	.pev-entete__actions { gap: 6px; }
	.pev-entete__actions .pev-btn { padding: 7px 9px; font-size: 13.5px; white-space: nowrap; }
	.pev-logo__nom { font-size: 18px; }
}
@media (max-width: 370px) {
	.pev-logo__symbole { width: 28px; height: 28px; }
	.pev-logo__nom { font-size: 17px; }
	.pev-burger { width: 38px; height: 38px; }
	.pev-burger span { top: 16px; left: 9px; right: 9px; }
}

/* 2a. Cote « ±0,00 » : enfant direct du cadre, posée au-dessus de la ligne de sol (même place qu'avant, mais dans sa boîte) */
.pev-coupe > .pev-coupe__cote--rue { z-index: 2; bottom: calc(100% - var(--sol) + 12px); max-width: calc(100% - 24px); white-space: nowrap; }
.pev-coupe--hero > .pev-coupe__cote--rue { bottom: calc(100% - var(--sol) + 12px); }
@media (max-width: 1080px) { .pev-coupe--hero > .pev-coupe__cote--rue { bottom: calc(100% - var(--sol) + 8px); } }

/* 2b. Badge « 5 min » : la ligne de sol devient une bande de 26 px qui CONTIENT le badge ; le trait de 3 px est peint au milieu */
.pev-carte__media { order: 0; }
.pev-carte__sol { order: 1; z-index: 1; height: 26px; margin: -11.5px 10px -11.5px; background: linear-gradient(var(--zinc), var(--zinc)) center / 100% 3px no-repeat; }
.pev-carte__cote { top: 50%; transform: translateY(-50%); }
.pev-carte__corps { order: 2; }

/* 3. Numéro d'étape lisible même dans une section sombre ; repère « 0,00 » du contact sur sa propre pastille */
.pev-form .pev-form__etape-num { color: var(--encre-2); }
.pev-sol--clair .pev-sol__repere { color: var(--platre); background: var(--zinc); padding: 4px 8px; border-radius: 6px; }
.pev-sol--clair .pev-sol__repere::before { background: var(--meuliere); }
/* repère « 0,00 » du contact : la ligne de sol devient une bande de 30 px qui le CONTIENT (trait de 4 px peint en bas), même rendu */
@media (min-width: 1081px) {
	.pev-contact__droite .pev-sol--clair { height: 30px; margin-top: -26px; pointer-events: none; border-radius: 0; background: linear-gradient(var(--platre), var(--platre)) left bottom / 100% 4px no-repeat; }
	.pev-contact__droite .pev-sol--clair::after { top: 30px; }
}

/* ==========================================================================
   12. PASSE 3 (03/11/2026) — cote seulement sur une pièce, grilles sans case vide,
       étiquettes de cartes, bande « rue » du hero, contact plein, 2 polices dans l'article
   ========================================================================== */
/* Bande « rue » du hero : plus basse, et pavée (pavés décalés, joints) au lieu d'un blanc vide */
.pev-coupe--hero { --sol: 58px; }
.pev-coupe--hero::before { background: repeating-linear-gradient(90deg, rgba(31, 43, 51, .5) 0 1.5px, transparent 1.5px 32px) left bottom / 100% 9px no-repeat, repeating-linear-gradient(90deg, rgba(31, 43, 51, .26) 0 1px, transparent 1px 8px) left bottom / 100% 5px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='24'%3E%3Cg fill='%23ECE8DF' stroke='%23CFC8BA' stroke-width='1'%3E%3Crect x='1.5' y='1.5' width='19' height='9' rx='2.5'/%3E%3Crect x='23.5' y='1.5' width='19' height='9' rx='2.5'/%3E%3Crect x='-9.5' y='13.5' width='19' height='9' rx='2.5'/%3E%3Crect x='12.5' y='13.5' width='19' height='9' rx='2.5'/%3E%3Crect x='34.5' y='13.5' width='19' height='9' rx='2.5'/%3E%3C/g%3E%3C/svg%3E") left top / 44px 24px repeat, #DED8CC; }
@media (max-width: 1080px) { .pev-coupe--hero { --sol: 42px; } }

/* Grilles de 3 : 6 pistes, la dernière rangée s'étire toujours (5 = 3 + 2 larges, 4 = 2 × 2, 7 = 3 + 2 × 2) */
@media (min-width: 1081px) {
	.pev-grille:not(.pev-grille--1):not(.pev-grille--2):not(.pev-grille--4) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.pev-grille:not(.pev-grille--1):not(.pev-grille--2):not(.pev-grille--4) > * { grid-column: span 2; }
	.pev-grille:not(.pev-grille--1):not(.pev-grille--2):not(.pev-grille--4):has(> :nth-child(3n+2):last-child) > :nth-last-child(-n+2),
	.pev-grille:not(.pev-grille--1):not(.pev-grille--2):not(.pev-grille--4):has(> :nth-child(3n+1):last-child) > :nth-last-child(-n+4) { grid-column: span 3; }
	.pev-grille:not(.pev-grille--1):not(.pev-grille--2):not(.pev-grille--4) > :only-child { grid-column: 1 / -1; }
}
@media (min-width: 641px) and (max-width: 1080px) {
	.pev-grille:not(.pev-grille--1) > :nth-child(2n+1):last-child { grid-column: 1 / -1; }
}
/* Étapes et repères d'article : même règle (4 = 2 × 2, 5 = une pleine largeur + 2 × 2) */
.pev-corps ol.pev-etapes, .pev-corps .pev-reperes { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.pev-corps ol.pev-etapes > li, .pev-corps .pev-reperes > * { grid-column: span 2; }
.pev-corps ol.pev-etapes:has(> :nth-child(3n+2):last-child) > :nth-last-child(-n+2),
.pev-corps ol.pev-etapes:has(> :nth-child(3n+1):last-child) > :nth-last-child(-n+4),
.pev-corps .pev-reperes:has(> :nth-child(3n+2):last-child) > :nth-last-child(-n+2),
.pev-corps .pev-reperes:has(> :nth-child(3n+1):last-child) > :nth-last-child(-n+4) { grid-column: span 3; }
.pev-corps .pev-reperes:has(> :nth-child(5):last-child) > *, .pev-corps ol.pev-etapes:has(> :nth-child(5):last-child) > * { grid-column: span 3; }
.pev-corps .pev-reperes:has(> :nth-child(5):last-child) > :first-child, .pev-corps ol.pev-etapes:has(> :nth-child(5):last-child) > :first-child,
.pev-corps ol.pev-etapes > :only-child, .pev-corps .pev-reperes > :only-child { grid-column: 1 / -1; }
@media (max-width: 640px) {
	.pev-corps ol.pev-etapes, .pev-corps .pev-reperes { grid-template-columns: minmax(0, 1fr); }
	.pev-corps ol.pev-etapes > *, .pev-corps .pev-reperes > * { grid-column: auto !important; }
}
/* Tuiles de communes : 10 = 5 + 5 ou 2 × 5, 3 voisines = 2 + 1 large */
@media (min-width: 900px) and (max-width: 1080px) { .pev-tuiles-communes { grid-template-columns: repeat(5, minmax(0, 1fr)); } .pev-voisines .pev-tuiles-communes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 561px) and (max-width: 899px) { .pev-tuiles-communes { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pev-tuiles-communes > :nth-child(2n+1):last-child { grid-column: 1 / -1; } .pev-voisines .pev-tuiles-communes { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pev-voisines .pev-tuiles-communes > * { grid-column: auto; } }
@media (max-width: 560px) { .pev-tuiles-communes > :nth-child(2n+1):last-child { grid-column: 1 / -1; } }

/* Étiquettes des cartes de l'accueil : même style que la rubrique des cartes de guides */
.pev-appareil__etiquette { display: block; margin-bottom: 2px; }
.pev-carte:not(.pev-carte--article) > .pev-carte__corps > .pev-carte__rubrique { display: block; margin-bottom: -2px; }

/* Contact : plus de panneau étiré à la hauteur de l'écran ; les 4 étapes remplissent le panneau sombre */
.pev-contact { min-height: 0; }
.pev-contact__droite-int { gap: 22px; }
.pev-contact__etapes-titre { margin: 0 0 10px; font: 400 24px/1.1 var(--titre); color: var(--platre); }
.pev-contact__etapes .pev-parcours { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pev-contact__etapes .pev-parcours__etape { padding: 12px 14px; background: var(--zinc-2); display: grid; grid-template-columns: 34px minmax(0, 1fr); column-gap: 10px; align-items: center; }
.pev-contact__etapes .pev-parcours__icone { width: 34px; height: 34px; border-radius: 9px; margin: 0; background: var(--meuliere); grid-row: span 2; }
.pev-contact__etapes .pev-parcours__icone svg { width: 19px; height: 19px; stroke: var(--zinc); }
.pev-contact__etapes .pev-parcours__num { color: var(--meuliere-pale); font-size: 12.5px; }
.pev-contact__etapes .pev-parcours__etape h3 { color: var(--platre); font-size: 15px; margin: 0; }
.pev-contact__etapes .pev-parcours__etape p { display: none; }
@media (max-width: 1080px) { .pev-contact__etapes { display: none; } }

/* Page auteur : en-tête avec photo du sujet, comme les autres pages */
.pev-page-tete--auteur .pev-page-tete__grille { align-items: center; padding-bottom: 34px; }
.pev-page-tete--auteur .pev-auteur { margin: 6px 0 0; }

/* Corps d'article : les 2 polices du site, rien d'autre (styles hérités de l'éditeur neutralisés) */
.pev-corps, .pev-corps :where(p, li, ul, ol, h3, h4, h5, h6, figure, figcaption, strong, b, em, i, a, span, blockquote, cite, table, td, th, dt, dd, small, div, label) { font-family: var(--texte) !important; }
.pev-corps :where(h2), .pev-corps .pev-encadre__titre { font-family: var(--titre) !important; }
.pev-corps strong, .pev-corps b { font-weight: 650; }
.pev-corps h3 { font-weight: 700; letter-spacing: 0; }
.pev-corps figcaption { font-size: 14px; color: var(--encre-2); font-style: normal; }
p.pev-repere strong, p.pev-repere b { font: 400 30px/1.05 var(--titre) !important; letter-spacing: .01em; }
@media (max-width: 1080px) { .pev-contact .pev-coupe--contact { margin: 0 18px 26px; } }

/* 12. PICTOGRAMMES DES BLOCS DE GUIDE (03/11) */
.pev-encadre { position: relative; }
.pev-encadre > .pev-bloc-picto { position: absolute; top: 16px; right: 16px; width: 26px; height: 26px; color: var(--vert); opacity: .9; }
.pev-encadre--alerte > .pev-bloc-picto { color: #9A3B1E; }
.pev-encadre--savoir > .pev-bloc-picto { color: var(--meuliere-fonce, #7A5418); }
.pev-encadre > .pev-encadre__titre, .pev-encadre > p:first-of-type { padding-right: 40px; }
.pev-duel { position: relative; }
.pev-duel > .pev-bloc-picto { position: absolute; right: 14px; top: 14px; width: 26px; height: 26px; color: var(--zinc, #1F2B33); opacity: .75; z-index: 1; }
.pev-duel > .pev-duel__col { padding: 20px 22px; }
.pev-duel > .pev-duel__col:last-child { padding-right: 50px; }
@media (max-width: 700px) { .pev-duel > .pev-bloc-picto { display: none; } }
