/*
Theme Name: Prevention Nuisibles
Theme URI: https://www.prevention-nuisibles.fr
Author: Lucas L
Description: Theme classique, leger et oriente SEO/performance pour prevention-nuisibles.fr, observatoire independant de prevention des nuisibles et mise en relation avec des professionnels qualifies. Palette marine et rouge (logo). Mobile-first, sans dependance front externe.
Version: 0.2.0
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: prevention-nuisibles
*/

/* 0. Polices auto-hebergees (RGPD) */
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/figtree-400.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/figtree-500.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/figtree-600.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/figtree-700.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 800; font-display: swap; src: url("assets/fonts/figtree-800.woff2") format("woff2"); }

/* 1. Tokens (palette logo : marine #062950 + rouge #c91b20) */
:root {
	--c-navy: #062950; --c-blue: #062950;
	--c-navy-800: #04203f; --c-blue-800: #04203f;
	--c-navy-100: #d7e1ee; --c-blue-100: #d7e1ee;
	--c-navy-050: #eef2f8; --c-blue-050: #eef2f8;
	--c-sky: #35618f;                 /* nuance de marine, accent secondaire */
	--c-red: #c91b20; --c-red-800: #c91b20; --c-red-050: #fdecec;   /* un seul rouge */
	--c-cta: #062950; --c-cta-700: #04203f;   /* bouton principal = marine */
	--c-alert: #c91b20; --c-alert-700: #c91b20; --c-alert-050: #fdecec;

	--c-title: #26426d;               /* bleu froid, plus clair que le marine, pour les titres */
	--c-ink: #26314a; --c-ink-soft: #5b6580;
	--c-line: #d9e0ec; --c-line-strong: #b9c4da;
	--c-bg: #ffffff; --c-bg-soft: #f4f6fb;

	--font-sans: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--font-title: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--font-serif: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	--sp-1: .35rem; --sp-2: .55rem; --sp-3: .85rem; --sp-4: 1.15rem; --sp-5: 1.7rem; --sp-6: 2.4rem;
	/* Largeurs harmonisées : 3 gabarits, et rien d'autre.
	   wide   = header, hero, grilles, pages locales
	   mid    = observatoire, page auteur
	   narrow = colonne de lecture (articles, pages nuisibles) */
	--container: 1280px; --container-mid: 900px; --container-narrow: 900px;
	--radius: 10px; --radius-lg: 16px;
	--shadow-sm: 0 1px 2px rgba(6, 41, 80, .06);
	--shadow: 0 6px 24px rgba(6, 41, 80, .09);
	--check-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m20 6-11 11-5-5' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* 2. Reset */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font-sans); font-size: 17px; line-height: 1.65; color: var(--c-ink); background: var(--c-bg); -webkit-font-smoothing: antialiased; }
img, svg { max-width: 100%; height: auto; vertical-align: middle; }
a { color: var(--c-navy); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4 { font-family: var(--font-title); line-height: 1.2; color: var(--c-title); margin: 0 0 .5em; font-weight: 700; }
h1 { font-size: clamp(1.9rem, 1.3rem + 2.5vw, 2.8rem); }
h2 { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.05rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1rem; }
ul, ol { margin: 0 0 1rem; padding-left: 1.25rem; }
button { font-family: inherit; }

/* 3. Layout */
.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 20px; }
.section { padding: 56px 0; }
.section--soft { background: var(--c-bg-soft); }
.section__entete { max-width: 720px; margin: 0 auto 36px; text-align: center; }
.section__entete .surtitre { justify-content: center; }
.section__intro { color: var(--c-ink-soft); font-size: 1.05rem; }
.surtitre { display: inline-flex; align-items: center; gap: .5rem; text-transform: uppercase; letter-spacing: .12em; font-size: .76rem; font-weight: 700; color: var(--c-red-800); margin: 0 0 var(--sp-3); }
.surtitre::before { content: ""; width: 18px; height: 3px; background: var(--c-red); }
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--c-navy); color: #fff; padding: 10px 16px; z-index: 1000; }
.skip-link:focus { left: 8px; top: 8px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }

/* 4. Boutons (style conso : bordure 2px, .9rem 1.5rem) */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2); font-family: var(--font-sans); font-weight: 600; font-size: 1rem; line-height: 1.2; text-decoration: none; padding: .9rem 1.5rem; border-radius: var(--radius); border: 2px solid transparent; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.btn:hover { text-decoration: none; }
.btn--accent, .btn--primary { background: var(--c-cta); color: #fff; }
.btn--accent:hover, .btn--primary:hover { background: var(--c-cta-700); color: #fff; }
.btn--ghost { background: #fff; color: var(--c-navy); border-color: var(--c-line-strong); }
.btn--ghost:hover { border-color: var(--c-navy); color: var(--c-navy); }
.btn--pro { background: #fff; color: var(--c-red-800); border-color: var(--c-red); }
.btn--pro:hover { background: var(--c-red-050); color: var(--c-red-800); border-color: var(--c-red-800); }
.btn--lg { padding: 1.05rem 1.9rem; font-size: 1.05rem; }
.btn--block { width: 100%; }

/* 5. En-tete */
.site-header { background: #fff; position: sticky; top: 0; z-index: 100; }
.site-header a:hover { text-decoration: none; }
.site-header__inner { display: flex; align-items: center; gap: var(--sp-3); min-height: 80px; }
.site-logo { display: inline-flex; align-items: center; margin-right: auto; text-decoration: none; flex-shrink: 0; }
.site-logo__img { height: 62px; width: auto; display: block; object-fit: contain; }
.site-logo--footer .site-logo__img { height: 56px; }
.site-header__actions { display: flex; align-items: center; gap: var(--sp-2); order: 2; margin-left: auto; }
.site-header__actions .btn { display: none; padding: .55rem .85rem; font-size: .88rem; white-space: nowrap; }
.nav-principale__cta { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--c-line); }
.nav-principale__cta-btn, .nav-principale__pro-btn { display: flex; width: 100%; }
.nav-principale__pro-btn { margin-top: 8px; }
.icon-btn, .site-search-toggle { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; flex-shrink: 0; background: none; color: var(--c-navy); border: 0; border-radius: var(--radius); cursor: pointer; }
.icon-btn:hover, .site-search-toggle:hover { color: var(--c-red-800); }

.nav-toggle { display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; width: 46px; height: 46px; background: #fff; border: 1px solid var(--c-line-strong); border-radius: var(--radius); cursor: pointer; order: 3; }
.nav-toggle__barres, .nav-toggle__barres::before, .nav-toggle__barres::after { content: ""; display: block; width: 22px; height: 2px; background: var(--c-navy); margin-inline: auto; transition: transform .2s, opacity .2s; }
.nav-toggle__barres { position: relative; }
.nav-toggle__barres::before { position: absolute; top: -7px; left: 0; }
.nav-toggle__barres::after { position: absolute; top: 7px; left: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle__barres { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__barres::before { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__barres::after { transform: translateY(-7px) rotate(-45deg); }

.nav-principale { display: none; }
.nav-principale.is-open { display: block; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-top: 1px solid var(--c-line); border-bottom: 3px solid var(--c-navy); padding: var(--sp-2) var(--sp-4) var(--sp-4); box-shadow: 0 14px 26px rgba(6,41,80,.09); max-height: calc(100vh - 76px); overflow-y: auto; }
.nav-principale__liste { list-style: none; margin: 0; padding: 0; }
.nav-item { position: relative; border-bottom: 1px solid var(--c-line); }
.nav-link { display: flex; align-items: center; gap: .4rem; width: 100%; padding: var(--sp-3) 3rem var(--sp-3) 0; text-decoration: none; color: var(--c-navy); font-weight: 600; font-size: 1.02rem; font-family: inherit; background: none; border: 0; text-align: left; cursor: pointer; }
.nav-chevron { color: var(--c-ink-soft); transition: transform .2s ease; flex-shrink: 0; }
.nav-sub-toggle { position: absolute; top: 0; right: 0; width: 52px; height: 52px; background: none; border: 0; cursor: pointer; }
.nav-item.is-sub-open .nav-chevron { transform: rotate(180deg); }
.mega { display: none; }
.nav-item.is-sub-open > .mega { display: block; padding-bottom: var(--sp-2); }

/* Mega colonnes (Conseils si besoin) + rail (Nuisibles) - mobile */
.svc-list { list-style: none; margin: 0; padding: 0; }
.svc { position: relative; border-bottom: 1px solid var(--c-line); }
.svc-card { position: relative; display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3) 2.6rem var(--sp-3) 0; text-decoration: none; color: var(--c-navy); }
.svc-card__icone { flex-shrink: 0; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; color: var(--c-navy); }
.svc-card__icone svg { width: 26px; height: 26px; }
.svc-card__body { display: flex; flex-direction: column; line-height: 1.25; }
.svc-card__t { font-weight: 700; font-size: 1rem; }
.svc-card__d { font-size: .82rem; color: var(--c-ink-soft); font-weight: 400; }
.svc-card__arrow { display: inline-flex; margin-left: auto; color: var(--c-ink-soft); transition: transform .2s ease; }
.svc-card__toggle { position: absolute; top: 0; right: 0; width: 56px; height: 58px; background: none; border: 0; cursor: pointer; }
.svc.is-open > .svc-card .svc-card__arrow { transform: rotate(90deg); }
.svc-panel { position: relative; z-index: 1; display: none; padding: 0 0 var(--sp-3) calc(34px + var(--sp-3)); }
.svc.is-open > .svc-panel { display: block; }
.svc-panel__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-2); text-decoration: none; margin-bottom: var(--sp-1); }
.svc-panel__titre { font-weight: 700; color: var(--c-navy); }
.svc-panel__all { font-size: .82rem; font-weight: 600; color: var(--c-red-800); white-space: nowrap; }
.svc-panel__list { list-style: none; margin: 0; padding: 0; }
.svc-panel__link { display: block; padding: .4rem .6rem; text-decoration: none; color: var(--c-ink); border-radius: var(--radius); font-size: .94rem; }
.svc-panel__link:hover { background: var(--c-navy-050); color: var(--c-navy); }
.svc-panel__link--muted { color: var(--c-ink-soft); font-style: italic; cursor: default; }
.svc-panel__link--muted:hover { background: none; color: var(--c-ink-soft); }

/* ============================================================
   Pages editoriales nuisibles (pilier + sous-pages) : article centre
   ============================================================ */
.article-page { max-width: calc(var(--container-narrow) + 40px); margin: 0 auto; padding-top: 8px; padding-bottom: 40px; }
.article-head { margin-bottom: 8px; }
.article-title { margin: 0 0 14px; }
.article-chapo { font-size: 1.16rem; color: var(--c-ink-soft); line-height: 1.55; margin: 0 0 18px; }
.article-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: .88rem; color: var(--c-ink-soft); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); padding: 12px 0; margin-bottom: 30px; }
.article-meta__author { font-weight: 600; color: var(--c-ink); }
.article-meta__cat { color: var(--c-red-800); font-weight: 600; text-decoration: none; }
.article-meta__cat:hover { text-decoration: underline; }
.article-meta__sep { opacity: .45; }

.toc { background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 18px 22px; margin: 0 0 30px; }
.toc__t { font-weight: 700; color: var(--c-title); margin: 0 0 10px; font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; }
.toc__list { margin: 0; padding-left: 20px; columns: 2; column-gap: 28px; }
.toc__list li { margin: 5px 0; break-inside: avoid; }
.toc__list a { color: var(--c-ink); text-decoration: none; }
.toc__list a:hover { color: var(--c-navy); text-decoration: underline; }

.faq { max-width: var(--container-narrow); margin: 40px auto 0; }
.faq > h2 { margin-bottom: 16px; }
.faq__item { border: 1px solid var(--c-line); border-radius: 12px; margin-bottom: 10px; background: #fff; }
.faq__q { cursor: pointer; font-weight: 600; color: var(--c-title); padding: 15px 46px 15px 18px; list-style: none; position: relative; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q::after { content: "+"; position: absolute; right: 16px; top: 13px; font-size: 1.4rem; line-height: 1; color: var(--c-red-800); }
.faq__item[open] .faq__q { border-bottom: 1px solid var(--c-line); }
.faq__item[open] .faq__q::after { content: "\2212"; }
.faq__a { padding: 14px 18px; color: var(--c-ink-soft); line-height: 1.6; }
.faq__a p { margin: 0; }

.cta-artisan { max-width: var(--container-narrow); margin: 44px auto 0; }

@media (max-width: 620px) {
	.toc__list { columns: 1; }
}

/* ============================================================
   Pages locales /{nuisible}/{ville}/ : hero large + moteur devis
   ============================================================ */
.local-hero { background: #fff; }
.local-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: center; padding: 54px 20px 58px; }
.local-hero__titre { color: var(--c-title); font-size: 2.5rem; line-height: 1.08; letter-spacing: -.01em; margin: 8px 0 16px; }
.local-hero__sub { color: var(--c-ink-soft); font-size: 1.1rem; line-height: 1.55; margin: 0 0 24px; max-width: 32em; }
.local-hero__reperes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.local-hero__reperes li { display: flex; align-items: center; gap: 11px; font-weight: 600; color: var(--c-ink); }
.local-repere__ico { width: 36px; height: 36px; border-radius: 10px; background: var(--c-navy-050); color: var(--c-navy); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }

.local-hero__side { display: flex; align-items: flex-end; gap: 6px; }
.local-hero__side .local-engine { flex: 0 0 auto; width: 535px; max-width: 100%; }
.local-hero__mascotte { flex: 0 0 auto; width: 172px; height: auto; align-self: flex-end; margin-bottom: -6px; pointer-events: none; filter: drop-shadow(0 12px 22px rgba(6,41,80,.16)); }

.local-engine { position: relative; z-index: 2; background: #fff; border: 1px solid var(--c-line); border-radius: 18px; padding: 24px 26px 20px; box-shadow: 0 24px 64px rgba(6,41,80,.16); min-height: 300px; }
.le-prog { display: flex; gap: 5px; }
.le-prog__seg { height: 4px; flex: 1; border-radius: 2px; background: var(--c-line); transition: background .2s; }
.le-prog__seg.is-on { background: var(--c-red); }
.le-step { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--c-ink-soft); font-weight: 700; margin: 14px 0 4px; }
.le-q { font-size: 1.32rem; font-weight: 800; color: var(--c-title); margin: 0 0 18px; line-height: 1.18; }
.le-opts { display: grid; gap: 12px; }
.le-opt { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; background: #fff; border: 1.5px solid var(--c-line); border-radius: 14px; padding: 18px 10px; cursor: pointer; transition: transform .12s, border-color .12s, box-shadow .12s; }
.le-opt:hover, .le-opt:focus-visible { border-color: var(--c-red); transform: translateY(-2px); box-shadow: 0 10px 22px rgba(6,41,80,.10); outline: none; }
.le-opt__ico { width: 50px; height: 50px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--c-navy-050); color: var(--c-navy); transition: background .12s, color .12s; }
.le-opt:hover .le-opt__ico { background: var(--c-red); color: #fff; }
.le-opt__lab { font-size: .9rem; font-weight: 600; color: var(--c-navy); line-height: 1.25; }

.le-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; min-height: 20px; }
.le-back { background: none; border: 0; color: var(--c-ink-soft); font-size: .9rem; cursor: pointer; padding: 0; }
.le-back:hover { color: var(--c-navy); }
.le-hint { font-size: .8rem; color: var(--c-ink-soft); }

.le-recap { display: flex; align-items: center; gap: 8px; background: var(--c-navy-050); border-radius: 10px; padding: 10px 12px; font-size: .9rem; color: var(--c-navy); font-weight: 600; margin: 0 0 6px; }
.le-recap__ico { width: 20px; height: 20px; border-radius: 50%; background: #1a9d54; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: .72rem; flex-shrink: 0; }
.le-form { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; }
.le-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.le-form label { font-size: .85rem; font-weight: 600; color: var(--c-ink); display: flex; flex-direction: column; gap: 4px; }
.le-form input[type="text"], .le-form input[type="tel"], .le-form input[type="email"] { padding: 11px 12px; border: 1.5px solid var(--c-line-strong); border-radius: 10px; font-size: 1rem; }
.le-form input:focus { outline: none; border-color: var(--c-navy); }
.le-consent { flex-direction: row; align-items: flex-start; gap: 9px; font-weight: 400; font-size: .84rem; color: var(--c-ink-soft); line-height: 1.4; }
.le-consent input { margin-top: 3px; }
.le-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.le-submit { width: 100%; margin-top: 4px; }
.le-msg:empty { display: none; }
.le-msg { color: var(--c-red-800); font-size: .9rem; margin: 4px 0 0; }
.le-done { text-align: center; padding: 28px 8px; }
.le-done__ico { width: 56px; height: 56px; margin: 0 auto 12px; border-radius: 50%; background: #e7f6ec; color: #1a9d54; font-size: 1.9rem; line-height: 56px; }
.le-done__t { font-size: 1.35rem; font-weight: 800; color: var(--c-title); margin: 0 0 6px; }
.le-done__d { color: var(--c-ink-soft); margin: 0; }

.local-trust { background: var(--c-bg-soft); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.local-trust__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; padding: 22px 20px; }
.local-trust__item { display: flex; align-items: center; gap: 12px; font-size: .92rem; font-weight: 600; color: var(--c-navy); }
.local-trust__ico { width: 40px; height: 40px; border-radius: 11px; background: #fff; border: 1px solid var(--c-line); color: var(--c-red-800); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }

/* Contenu local : DA alignée sur le hero */
.local-content { max-width: calc(var(--container-mid) + 40px); }
.local-lead { max-width: 840px; margin-bottom: 44px; }
.local-lead h2 { margin: 0 0 12px; }
.local-lead p { color: var(--c-ink-soft); font-size: 1.06rem; line-height: 1.6; margin: 0; }

.local-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 54px; }
.local-step { position: relative; background: #fff; border: 1px solid var(--c-line); border-radius: 16px; padding: 28px 22px 22px; transition: box-shadow .15s, transform .15s; }
.local-step:hover { box-shadow: 0 16px 36px rgba(6,41,80,.09); transform: translateY(-2px); }
.local-step__num { position: absolute; top: -15px; left: 22px; width: 30px; height: 30px; border-radius: 50%; background: var(--c-red); color: #fff; font-weight: 800; font-size: .92rem; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 4px 10px rgba(201,27,32,.3); }
.local-step__ico { width: 46px; height: 46px; border-radius: 12px; background: var(--c-navy-050); color: var(--c-navy); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.local-step h3 { margin: 0 0 6px; font-size: 1.1rem; color: var(--c-title); }
.local-step p { margin: 0; color: var(--c-ink-soft); font-size: .95rem; line-height: 1.5; }

/* auto-fit : deux colonnes quand il y a les villes voisines ET les autres nuisibles,
   pleine largeur quand une seule des deux colonnes est présente (ville sans voisines). */
.local-maillage { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 40px; margin-bottom: 52px; }
.local-h2 { font-size: 1.25rem; margin: 0 0 16px; }
.local-cards { display: flex; flex-direction: column; gap: 10px; }
.local-card { display: flex; align-items: center; gap: 13px; background: #fff; border: 1px solid var(--c-line); border-radius: 12px; padding: 12px 15px; text-decoration: none; transition: border-color .12s, box-shadow .12s, transform .12s; }
.local-card:hover { border-color: var(--c-navy); box-shadow: 0 8px 20px rgba(6,41,80,.08); transform: translateX(3px); }
.local-card__ico { width: 40px; height: 40px; border-radius: 10px; background: var(--c-navy-050); color: var(--c-navy); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.local-card:hover .local-card__ico { background: var(--c-red); color: #fff; }
.local-card__t { flex: 1; font-weight: 600; color: var(--c-navy); font-size: .95rem; }
.local-card__arr { color: var(--c-red-800); font-weight: 700; }

.local-cta-guide { display: flex; align-items: center; gap: 22px; background: var(--c-navy); color: #fff; border-radius: var(--radius-lg); padding: 28px 32px; }
.local-cta-guide__ico { width: 60px; height: 60px; border-radius: 15px; background: rgba(255,255,255,.12); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.local-cta-guide__txt { flex: 1; }
.local-cta-guide__txt h2 { color: #fff; margin: 0 0 4px; font-size: 1.25rem; }
.local-cta-guide__txt p { margin: 0; color: rgba(255,255,255,.82); font-size: .96rem; }
.local-cta-guide__btn { background: #fff; color: var(--c-navy); flex-shrink: 0; }
.local-cta-guide__btn:hover { background: var(--c-red); color: #fff; }

/* Sections informationnelles locales */
.local-sec { margin-top: 54px; }
.local-sec > h2 { margin: 0 0 20px; }
.local-cle { display: flex; gap: 12px; align-items: flex-start; background: var(--c-navy-050); border-left: 4px solid var(--c-red); border-radius: 12px; padding: 16px 18px; margin-top: 18px; }
.local-cle__ico { color: var(--c-red-800); flex-shrink: 0; }
.local-cle p { margin: 0; color: var(--c-navy); font-weight: 600; line-height: 1.5; }

.local-signs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.local-sign { display: flex; align-items: flex-start; gap: 12px; background: #fff; border: 1px solid var(--c-line); border-radius: 12px; padding: 14px 16px; }
.local-sign__ico { width: 30px; height: 30px; border-radius: 8px; background: var(--c-navy-050); color: var(--c-navy); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.local-sign > span:last-child { color: var(--c-ink); font-size: .95rem; line-height: 1.4; }

.local-esp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.local-esp { background: #fff; border: 1px solid var(--c-line); border-radius: 14px; padding: 20px; }
.local-esp h3 { margin: 0 0 6px; font-size: 1.05rem; color: var(--c-title); }
.local-esp p { margin: 0; color: var(--c-ink-soft); font-size: .93rem; line-height: 1.5; }

.local-method { list-style: none; counter-reset: m; margin: 0; padding: 0; display: grid; gap: 12px; max-width: 680px; }
.local-method li { counter-increment: m; display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--c-line); border-radius: 12px; padding: 14px 18px; }
.local-method li::before { content: counter(m); flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--c-navy); color: #fff; font-weight: 800; font-size: .9rem; display: inline-flex; align-items: center; justify-content: center; }
.local-method li span { color: var(--c-ink); font-weight: 500; }

.local-reflexes { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.local-reflexes__col { background: #fff; border: 1px solid var(--c-line); border-radius: 14px; padding: 20px 22px; }
.local-reflexes__col h3 { margin: 0 0 14px; font-size: 1.05rem; display: flex; align-items: center; gap: 8px; }
.local-reflexes--do h3 { color: #1a9d54; }
.local-reflexes--dont h3 { color: var(--c-red-800); }
.local-reflexes__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.local-reflexes__col li { position: relative; padding-left: 20px; color: var(--c-ink); font-size: .94rem; line-height: 1.45; }
.local-reflexes__col li::before { content: ""; position: absolute; left: 0; top: 7px; width: 9px; height: 9px; border-radius: 50%; }
.local-reflexes--do li::before { background: #1a9d54; }
.local-reflexes--dont li::before { background: var(--c-red-800); }

.local-prix-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--c-line); border-radius: 14px; overflow: hidden; }
.local-prix-table td { padding: 14px 18px; border-bottom: 1px solid var(--c-line); font-size: .96rem; }
.local-prix-table tr:last-child td { border-bottom: 0; }
.local-prix-table td:first-child { color: var(--c-ink); font-weight: 600; }
.local-prix-table td:last-child { text-align: right; color: var(--c-navy); font-weight: 700; white-space: nowrap; }
.local-prix-note { font-size: .85rem; color: var(--c-ink-soft); margin: 10px 0 0; }

/* Avatars & auteurs */
.pn-avatar { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; overflow: hidden; flex-shrink: 0; }
.pn-avatar__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pn-avatar--ini { background: var(--c-navy); color: #fff; font-weight: 700; letter-spacing: .01em; }
.article-meta__auth { color: var(--c-ink); font-weight: 600; text-decoration: none; }
.article-meta__auth:hover { color: var(--c-red-800); text-decoration: underline; }

.local-auteur { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--c-line); border-radius: 14px; padding: 14px 18px; text-decoration: none; margin-top: 40px; transition: border-color .12s, box-shadow .12s; }
.local-auteur:hover, .local-auteur:focus-visible { border-color: var(--c-navy); box-shadow: 0 8px 20px rgba(6,41,80,.08); text-decoration: none; }
.local-auteur:hover .local-auteur__nom { color: var(--c-red-800); }
.local-auteur:hover .local-auteur__arr { transform: translateX(3px); }
.local-auteur__arr { transition: transform .12s; }
.local-auteur__txt { display: flex; flex-direction: column; line-height: 1.3; }
.local-auteur__label { font-size: .74rem; color: var(--c-ink-soft); text-transform: uppercase; letter-spacing: .05em; }
.local-auteur__nom { font-weight: 700; color: var(--c-navy); }
.local-auteur__spe { font-size: .88rem; color: var(--c-ink-soft); }
.local-auteur__arr { margin-left: auto; color: var(--c-red-800); font-weight: 700; }

/* Page auteur */
.auteur-page { max-width: calc(var(--container-mid) + 40px); margin: 0 auto; padding-top: 8px; padding-bottom: 44px; }
.auteur-hero { display: flex; gap: 24px; align-items: center; padding: 8px 0 26px; border-bottom: 1px solid var(--c-line); }
.auteur-hero__nom { margin: 2px 0 6px; }
.auteur-hero__spe { display: inline-flex; align-items: center; gap: 8px; color: var(--c-red-800); font-weight: 600; margin: 0 0 10px; }
.auteur-hero__spe-ico { display: inline-flex; color: var(--c-navy); }
.auteur-hero__bio { color: var(--c-ink-soft); line-height: 1.6; margin: 0; max-width: 52em; }
.auteur-spe { display: flex; gap: 18px; align-items: flex-start; background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: 16px; padding: 24px; margin-top: 32px; }
.auteur-spe__ico { width: 54px; height: 54px; border-radius: 13px; background: #fff; border: 1px solid var(--c-line); color: var(--c-navy); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.auteur-spe__txt h2 { margin: 0 0 8px; }
.auteur-spe__txt p { color: var(--c-ink-soft); line-height: 1.6; margin: 0 0 10px; }
.auteur-contenus { margin-top: 38px; }
.auteur-liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; }
.auteur-liste a { color: var(--c-navy); text-decoration: none; font-weight: 500; }
.auteur-liste a:hover { color: var(--c-red-800); text-decoration: underline; }
.auteur-vide { color: var(--c-ink-soft); }
@media (max-width: 640px) {
	.auteur-hero { flex-direction: column; text-align: center; }
	.auteur-liste { grid-template-columns: 1fr; }
}

/* Accueil : bloc derniers articles */
.cartes-articles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.carte-article__lien { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--c-line); border-radius: 16px; overflow: hidden; text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s; }
.carte-article__lien:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(6,41,80,.10); border-color: var(--c-line-strong); text-decoration: none; }
.carte-article__media { display: block; aspect-ratio: 16 / 10; background: var(--c-navy-050); position: relative; overflow: hidden; }
.carte-article__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.carte-article__ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--c-navy); background: linear-gradient(135deg, var(--c-navy-050), #fff); }
.carte-article__ph svg { width: 46px; height: 46px; }
.carte-article__body { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px 20px; flex: 1; }
.carte-article__cat { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--c-red-800); }
.carte-article__titre { font-weight: 700; color: var(--c-title); font-size: 1.08rem; line-height: 1.3; }
.carte-article__date { font-size: .82rem; color: var(--c-ink-soft); margin-top: auto; }
.section__cta { text-align: center; margin-top: 28px; }

/* Accueil : bloc simulateur (aperçu) */
.simu-preview { background: #fff; border: 1px solid var(--c-line); border-radius: 16px; padding: 22px; box-shadow: 0 16px 40px rgba(6,41,80,.10); width: min(340px, 100%); }
.simu-preview__dots { display: flex; gap: 5px; margin-bottom: 16px; }
.simu-preview__dots span { height: 4px; flex: 1; border-radius: 2px; background: var(--c-line); }
.simu-preview__dots span:first-child { background: var(--c-red); }
.simu-preview__q { font-weight: 700; color: var(--c-title); margin: 0 0 10px; font-size: .95rem; }
.simu-preview__opts { display: flex; gap: 8px; margin-bottom: 16px; }
.simu-preview__opts span { flex: 1; text-align: center; padding: 11px 8px; border: 1.5px solid var(--c-line); border-radius: 10px; font-size: .85rem; font-weight: 600; color: var(--c-navy); }
.simu-preview__opts span.is-on { border-color: var(--c-red); background: var(--c-navy-050); }
.simu-preview__res { display: flex; align-items: center; gap: 8px; background: var(--c-navy); color: #fff; border-radius: 10px; padding: 12px 14px; font-size: .88rem; font-weight: 600; }
.simu-preview__res svg { color: #7fd39a; flex-shrink: 0; }

/* Page simulateur */
.simu-page__head { max-width: 720px; margin: 0 auto 30px; text-align: center; }
.simu-page__intro { color: var(--c-ink-soft); font-size: 1.08rem; line-height: 1.55; }
.simu-engine { max-width: 640px; margin: 0 auto; }
.simu-note { max-width: 640px; margin: 16px auto 0; text-align: center; font-size: .82rem; color: var(--c-ink-soft); line-height: 1.5; }

.simu-prog { height: 5px; background: var(--c-line); border-radius: 3px; overflow: hidden; margin-bottom: 14px; }
.simu-prog__fill { display: block; height: 100%; background: var(--c-red); border-radius: 3px; transition: width .25s ease; }

.simu-cp { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; padding: 8px 0; }
.simu-cp__lab { display: flex; flex-direction: column; align-items: center; gap: 8px; font-weight: 600; color: var(--c-ink); }
.simu-cp input { padding: 13px 16px; border: 1.5px solid var(--c-line-strong); border-radius: 10px; font-size: 1.3rem; width: 200px; text-align: center; letter-spacing: .06em; }
.simu-cp input:focus { outline: none; border-color: var(--c-navy); }
.simu-cp .btn { align-self: center; }
.simu-cp .le-back { align-self: center; }

.simu-res__t { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; color: var(--c-ink-soft); font-weight: 700; margin: 0 0 14px; }
.simu-card { display: flex; gap: 14px; align-items: flex-start; background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: 14px; padding: 16px 18px; margin-bottom: 12px; }
.simu-card__ico { width: 46px; height: 46px; border-radius: 12px; background: #fff; border: 1px solid var(--c-line); color: var(--c-navy); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.simu-card__k { display: block; font-size: .76rem; text-transform: uppercase; letter-spacing: .04em; color: var(--c-ink-soft); font-weight: 700; }
.simu-card__v { display: block; font-size: 1.15rem; font-weight: 800; color: var(--c-title); margin-top: 2px; }
.simu-card__d { display: block; font-size: .9rem; color: var(--c-ink-soft); margin-top: 4px; line-height: 1.45; }
.simu-risk__badge { display: inline-block; margin-top: 4px; padding: 3px 12px; border-radius: 999px; font-weight: 700; font-size: .85rem; }
.simu-risk--1 .simu-risk__badge { background: #e7f6ec; color: #1a7d43; }
.simu-risk--2 .simu-risk__badge { background: #fdf0e0; color: #b5730c; }
.simu-risk--3 .simu-risk__badge { background: #fdeaea; color: var(--c-red-800); }
.simu-risk--2 .simu-card__ico, .simu-risk--3 .simu-card__ico { color: var(--c-red-800); }

.simu-plan { background: #fff; border: 1px solid var(--c-line); border-radius: 14px; padding: 18px 20px; margin: 12px 0; }
.simu-plan__t { display: flex; align-items: center; gap: 8px; font-weight: 800; color: var(--c-title); margin: 0 0 12px; }
.simu-plan__t svg { color: var(--c-navy); }
.simu-plan__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.simu-plan__list li { display: flex; align-items: flex-start; gap: 10px; color: var(--c-ink); font-size: .95rem; line-height: 1.45; }
.simu-plan__ck { width: 22px; height: 22px; border-radius: 50%; background: #e7f6ec; color: #1a9d54; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
.simu-plan__ck svg { width: 14px; height: 14px; }

.simu-form { margin-top: 16px; display: flex; flex-direction: column; gap: 12px; background: var(--c-navy-050); border: 1px solid var(--c-line); border-radius: 14px; padding: 18px 20px; }
.simu-form__t { margin: 0; font-weight: 600; color: var(--c-navy); font-size: .95rem; }
.simu-form .le-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.simu-form label { font-size: .85rem; font-weight: 600; color: var(--c-ink); display: flex; flex-direction: column; gap: 4px; }
.simu-form input[type="text"], .simu-form input[type="tel"], .simu-form input[type="email"] { padding: 11px 12px; border: 1.5px solid var(--c-line-strong); border-radius: 10px; font-size: 1rem; }
.simu-form input:focus { outline: none; border-color: var(--c-navy); }
.simu-restart { margin-top: 14px; }
@media (max-width: 560px) { .simu-form .le-row { grid-template-columns: 1fr; } }

@media (max-width: 1040px) {
	.local-hero__mascotte { display: none; }
	.local-hero__side .local-engine { width: 100%; }
}
@media (max-width: 860px) {
	.local-hero__grid { grid-template-columns: 1fr; gap: 26px; padding: 32px 20px 40px; }
	.local-hero__titre { font-size: 1.95rem; }
	.local-hero__side { display: block; }
	.local-hero__mascotte { display: none; }
	.local-trust__grid { grid-template-columns: 1fr 1fr; }
	.local-steps { grid-template-columns: 1fr; gap: 16px; margin-bottom: 40px; }
	.local-maillage { grid-template-columns: 1fr; gap: 32px; }
	.local-cta-guide { flex-direction: column; text-align: center; }
	.local-signs { grid-template-columns: 1fr; }
	.local-esp-grid { grid-template-columns: 1fr; }
	.local-reflexes { grid-template-columns: 1fr; }
	.le-row { grid-template-columns: 1fr; }
}
@media (max-width: 560px) { .le-opts { grid-template-columns: repeat(2, 1fr) !important; } }
.svc-rail__cta { display: block; margin-top: var(--sp-3); padding: var(--sp-3) var(--sp-4); background: var(--c-navy-050); border: 1px solid var(--c-line); border-radius: var(--radius); text-decoration: none; }
.svc-rail__cta-t { display: block; font-weight: 700; color: var(--c-navy); }
.svc-rail__cta-d { display: block; font-size: .85rem; font-weight: 600; color: var(--c-red-800); margin-top: .15rem; }

/* Nav horizontale : à partir de 1240px seulement. En dessous, le header
   déborderait du container (logo + 6 entrées + 4 actions ≈ 1165px). */
@media (min-width: 1240px) {
	.site-header__inner { justify-content: flex-start; }
	.nav-toggle { display: none; }
	.site-header__actions .btn { display: inline-flex; }
	.nav-principale__cta { display: none; }
	.nav-principale { display: flex !important; align-self: stretch; position: static; padding: 0; border: 0; background: transparent; box-shadow: none; max-height: none; overflow: visible; margin-left: var(--sp-3); }
	.nav-principale__liste { display: flex; flex-direction: row; align-items: stretch; gap: 0; height: 100%; }
	.nav-item { position: static; border: 0; display: flex; align-items: center; }
	.nav-sub-toggle { display: none; }
	.nav-link { width: auto; height: 100%; padding: .5rem .58rem; font-size: .96rem; white-space: nowrap; border-bottom: 2px solid transparent; }
	.has-mega:hover > .nav-link, .has-mega:focus-within > .nav-link { border-bottom-color: var(--c-red); }
	.nav-item:not(.has-mega) > .nav-link:hover { color: var(--c-red); }
	.nav-chevron { width: 13px; height: 13px; }
	.has-mega:hover > .nav-link .nav-chevron, .has-mega:focus-within > .nav-link .nav-chevron { transform: rotate(180deg); }

	.mega { display: block; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-top: 1px solid var(--c-line); border-bottom: 3px solid var(--c-navy); box-shadow: 0 18px 30px rgba(6,41,80,.12); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .15s ease, transform .15s ease, visibility .15s; z-index: 90; }
	.has-mega:hover > .mega, .has-mega:focus-within > .mega { opacity: 1; visibility: visible; transform: none; }
	.mega--rail .mega__inner--rail { position: relative; display: block; padding: var(--sp-5) var(--sp-5); min-height: 320px; }
	.svc-rail { width: 330px; }
	.svc-card { padding: var(--sp-2); border-radius: var(--radius); }
	.svc { position: static; border-bottom: 0; }
	.svc-card__toggle { display: none; }
	.svc.is-active > .svc-card { background: var(--c-navy-050); }
	.svc.is-active > .svc-card .svc-card__arrow { transform: translateX(2px); color: var(--c-navy); }
	.svc-panel { position: absolute; top: var(--sp-5); left: calc(330px + var(--sp-6)); right: var(--sp-5); padding: 0 0 0 var(--sp-6); border-left: 1px solid var(--c-line); min-height: 260px; }
	.svc.is-active > .svc-panel { display: block; }
	.svc-panel__head { margin-bottom: var(--sp-3); }
	.svc-panel__titre { font-size: 1.15rem; }
	.svc-panel__list { display: grid; grid-template-columns: 1fr 1fr; gap: 2px var(--sp-4); }
	.svc-rail__cta { margin-top: var(--sp-4); }
}

/* Recherche (header) */
.site-search { display: grid; grid-template-rows: 0fr; opacity: 0; background: #fff; transition: grid-template-rows .3s ease, opacity .22s ease, box-shadow .3s ease; }
.site-search > .container { overflow: hidden; min-height: 0; }
.site-search.is-open { grid-template-rows: 1fr; opacity: 1; border-top: 1px solid var(--c-line); border-bottom: 3px solid var(--c-navy); box-shadow: 0 16px 30px rgba(6,41,80,.08); }
.site-search__bar { display: flex; align-items: center; gap: .6rem; padding: var(--sp-3) 0; }
.site-search__bar input { flex: 1; height: 48px; border: 1.5px solid var(--c-line-strong); border-radius: var(--radius); padding: 0 1rem; font-size: 1.05rem; font-family: inherit; color: var(--c-ink); }
.site-search__bar input:focus { border-color: var(--c-navy); outline: none; box-shadow: 0 0 0 3px var(--c-navy-100); }
.site-search__submit { flex-shrink: 0; }
.site-search__close { width: 42px; height: 42px; flex-shrink: 0; border: 0; background: none; color: var(--c-ink-soft); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.site-search__close:hover { color: var(--c-red-800); }

/* 6. Fil d'ariane */
/* Fil d'Ariane : aligné sur la largeur de contenu de la page qui le porte
   (sinon il « fuit » à gauche sur les pages à colonne de lecture). */
/* NB : conserver le padding latéral de .container, sinon le fil se décale de 20px. */
.breadcrumb { font-size: .85rem; color: var(--c-ink-soft); padding: 38px 20px 2px; }
.breadcrumb--mid { max-width: calc(var(--container-mid) + 40px); }
.breadcrumb--narrow { max-width: calc(var(--container-narrow) + 40px); }
.breadcrumb a { color: var(--c-ink-soft); }
.breadcrumb a:hover { color: var(--c-navy); }
.breadcrumb span[aria-current] { color: var(--c-ink); }

/* 7. Hero */
.hero { background: var(--c-bg); }
.hero__inner { display: grid; grid-template-columns: 1.35fr 1fr; gap: 40px; align-items: center; padding-top: 56px; padding-bottom: 56px; }
.hero__titre { font-family: var(--font-title); font-size: clamp(1.9rem, 1.3rem + 2.5vw, 2.8rem); line-height: 1.2; color: var(--c-title); font-weight: 700; margin: 0 0 .5em; }
.hero__titre em { color: var(--c-red); font-style: normal; }
.hero__intro { font-size: 1.15rem; color: var(--c-ink-soft); max-width: 34em; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0 18px; }
.hero__points { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.hero__points li { display: inline-flex; align-items: center; gap: 7px; font-size: .92rem; color: var(--c-ink-soft); }
.hero__points li::before { content: ""; width: 16px; height: 16px; flex: none; background: var(--c-navy); -webkit-mask: var(--check-mask) center/contain no-repeat; mask: var(--check-mask) center/contain no-repeat; }
.hero__media { display: flex; justify-content: center; }
.hero__media img { width: min(270px, 100%); }

/* 8. Chiffres */
.chiffres { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.chiffre { background: #fff; border: 1px solid var(--c-line); border-radius: 12px; padding: 20px; text-align: center; }
.chiffre__val { display: block; font-size: 1.9rem; font-weight: 800; color: var(--c-navy); }
.chiffre__lab { font-size: .88rem; color: var(--c-ink-soft); }

/* Bande de positionnement (badges ronds) */
.approche { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); }
.approche__item { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 6px 22px; border-left: 1px solid var(--c-line); }
.approche__item:first-child { border-left: 0; }
.approche__ic { display: inline-flex; width: 76px; height: 76px; border-radius: 50%; background: var(--c-navy-050); color: var(--c-navy); align-items: center; justify-content: center; margin-bottom: 14px; }
.approche__t { font-weight: 700; font-size: 1rem; letter-spacing: .02em; text-transform: uppercase; color: var(--c-title); }
.approche__d { font-size: .9rem; color: var(--c-ink-soft); margin-top: 3px; }
.approche__baseline { text-align: center; margin: 36px 0 0; font-size: 1.1rem; font-weight: 600; color: var(--c-navy); }
.approche__baseline b { color: var(--c-red); font-weight: 600; padding: 0 6px; }
.approche__bar { display: block; width: 128px; height: 4px; border-radius: 2px; margin: 14px auto 0; background: linear-gradient(90deg, var(--c-navy) 0 62%, var(--c-red) 62% 100%); }

/* 9. Cartes verticales */
.grille-verticales { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.grille-verticales--3 { grid-template-columns: repeat(3, 1fr); }
.grille-verticales--4 { grid-template-columns: repeat(4, 1fr); }
.carte-verticale { display: flex; }
.carte-verticale__lien { display: flex; flex-direction: column; gap: 8px; padding: 22px; background: #fff; border: 1px solid var(--c-line); border-radius: 14px; width: 100%; transition: border-color .15s, box-shadow .15s, transform .15s; }
.carte-verticale__lien:hover { border-color: var(--c-navy); box-shadow: var(--shadow); transform: translateY(-2px); text-decoration: none; }
.carte-verticale__icone { display: inline-flex; width: 46px; height: 46px; border-radius: 11px; background: var(--c-navy-100); color: var(--c-navy); align-items: center; justify-content: center; }
.carte-verticale__icone svg { width: 28px; height: 28px; }
.carte-verticale__titre { font-weight: 700; font-size: 1.12rem; color: var(--c-ink); }
.carte-verticale__desc { font-size: .92rem; color: var(--c-ink-soft); }

/* 10. Etapes */
.etapes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.etape { background: #fff; border: 1px solid var(--c-line); border-radius: 14px; padding: 24px; }
.etape__num { display: inline-flex; width: 38px; height: 38px; border-radius: 50%; background: var(--c-navy); color: #fff; align-items: center; justify-content: center; font-weight: 800; margin-bottom: 12px; }

/* 11. Couverture */
.couverture { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.couverture__media { display: flex; justify-content: center; }
.couverture__media img { width: min(260px, 100%); }

/* 12. Prose */
.prose { max-width: 840px; }
.prose h2 { margin-top: 1.8em; }
.prose h3 { margin-top: 1.4em; }
.prose img { border-radius: 12px; }
.entete-page { padding: 40px 0 8px; }
.entete-page__intro { font-size: 1.12rem; color: var(--c-ink-soft); max-width: 46em; }

/* 13. FAQ */
/* (FAQ : styles unifiés plus haut, section « Pages editoriales nuisibles ») */

/* 14. Encart urgence */
.encart-urgence { border: 1px solid var(--c-alert); background: var(--c-alert-050); color: var(--c-alert-700); border-radius: 12px; padding: 16px 18px; display: flex; gap: 12px; align-items: flex-start; }
.encart-urgence strong { color: var(--c-alert-700); }

/* 15. Bandeau CTA */
.cta-bande { position: relative; overflow: hidden; background: var(--c-navy); color: #fff; border-radius: var(--radius-lg); padding: 40px 36px; text-align: center; }
.cta-bande::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--c-red); }
.cta-bande__ico { display: inline-flex; width: 58px; height: 58px; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; align-items: center; justify-content: center; margin-bottom: 14px; }
.cta-bande h2 { color: #fff; }
.cta-bande p { color: var(--c-navy-100); max-width: 44em; margin: 0 auto 18px; }
.cta-bande__points { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 26px; justify-content: center; padding: 0; margin: 0 0 22px; }
.cta-bande__points li { display: inline-flex; align-items: center; gap: 7px; font-size: .92rem; font-weight: 600; color: #fff; }
.cta-bande__points li svg { opacity: .85; }
.cta-bande__btn { background: var(--c-red); color: #fff; border-color: var(--c-red); }
.cta-bande__btn:hover { background: #a81318; border-color: #a81318; color: #fff; }

/* 16. Pied de page */
.site-footer { background: #fff; border-top: 1px solid var(--c-line); margin-top: 56px; }
.site-footer__trust { border-bottom: 1px solid var(--c-line); }
.site-footer__trust-inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; padding: 26px 0; }
.site-footer__trust-item { display: flex; gap: 11px; align-items: flex-start; }
.site-footer__trust-ic { color: var(--c-navy); flex: none; }
.site-footer__trust-item strong { display: block; font-size: .95rem; }
.site-footer__trust-item span span { font-size: .85rem; color: var(--c-ink-soft); }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr 3fr; gap: 40px; padding: 44px 0; }
.site-footer__signature { font-weight: 700; margin: 12px 0 6px; }
.site-footer__baseline { font-size: .9rem; color: var(--c-ink-soft); }
.site-footer__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.site-footer__titre { font-size: .95rem; margin: 0 0 12px; }
.site-footer__liste { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.site-footer__liste a { color: var(--c-ink-soft); font-size: .9rem; }
.site-footer__liste a:hover { color: var(--c-navy); }
.site-footer__bas { background: var(--c-navy); color: #fff; }
.site-footer__bas-inner { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; padding: 18px 0; }
.site-footer__copy { margin: 0; font-size: .9rem; }
.site-footer__mention { margin: 2px 0 0; font-size: .8rem; color: var(--c-line-strong); }
.site-footer__legal { list-style: none; display: flex; flex-wrap: wrap; gap: 16px; margin: 0; padding: 0; }
.site-footer__legal a { color: var(--c-line-strong); font-size: .82rem; }
.site-footer__legal a:hover { color: #fff; }

/* 17. Responsive general */
@media (max-width: 900px) {
	.hero__inner, .couverture { grid-template-columns: 1fr; }
	.hero__inner { padding-top: 38px; padding-bottom: 44px; }
	.couverture__media { order: -1; }
	.hero__media { order: 1; margin-top: 8px; }
	.hero__media img { width: 180px; }
	.hero__actions { flex-wrap: nowrap; gap: 10px; }
	.hero__actions .btn { flex: 1 1 0; }
	.hero__actions .btn--lg { padding: 14px 10px; font-size: .95rem; }
	.hero__points { flex-direction: column; gap: 10px; }
	.grille-verticales, .etapes, .approche { grid-template-columns: repeat(2, 1fr); }
	.chiffres { grid-template-columns: repeat(2, 1fr); }
	.approche { row-gap: 32px; }
	.approche__item { border-left: 0; }
	.approche__item:nth-child(even) { border-left: 1px solid var(--c-line); }
	.site-footer__grid { grid-template-columns: 1fr; }
	.site-footer__cols { grid-template-columns: repeat(2, 1fr); }
	.site-footer__trust-inner { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
	.container { padding-left: 24px; padding-right: 24px; }
	.grille-verticales, .etapes, .chiffres, .approche { grid-template-columns: 1fr; }
	.approche__item, .approche__item:nth-child(even) { border-left: 0; }
	.site-logo__img { height: 48px; }
	.site-footer__trust-inner { grid-template-columns: 1fr; gap: 16px; }
	.site-footer__cols { grid-template-columns: 1fr; gap: 26px; }
	.site-footer__bas-inner { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* =========================================================
   19. Carte de France interactive + tunnel devis
   ========================================================= */
.carte-fr { display: grid; grid-template-columns: 1.4fr 1fr; gap: 28px; align-items: start; background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 22px; }
.carte-fr__mapwrap { position: relative; }
.carte-fr__map svg { width: 100%; height: auto; display: block; }
.carte-fr__map svg path[data-d] { fill: var(--c-navy-100); stroke: #fff; stroke-width: .8; cursor: pointer; transition: fill .15s ease, opacity .3s ease; }
.carte-fr__map svg path[data-d]:hover, .carte-fr__map svg path[data-d]:focus { fill: var(--c-sky); outline: none; }
.carte-fr__map svg path[data-d].is-active { fill: var(--c-navy); }
.carte-fr__map svg.is-zoomed path[data-d]:not(.is-active) { fill: var(--c-navy-050); opacity: .3; }
.pn-dots circle.pn-dot { fill: var(--c-red); stroke: #fff; stroke-width: 1.2; opacity: 0; transition: opacity .15s ease; pointer-events: none; }
.pn-dots circle.pn-dot.is-on { opacity: 1; }
.carte-fr__retour { position: absolute; top: 6px; left: 6px; z-index: 2; display: inline-flex; align-items: center; gap: 5px; background: #fff; border: 1px solid var(--c-line-strong); border-radius: var(--radius); padding: 7px 12px; font-weight: 600; font-size: .86rem; color: var(--c-navy); cursor: pointer; }
.carte-fr__retour svg { transform: rotate(180deg); }
.carte-fr__retour:hover { border-color: var(--c-navy); }
.carte-fr__retour[hidden] { display: none; }
.carte-fr__panel { background: #fff; border: 1px solid var(--c-line); border-radius: 12px; padding: 18px; min-height: 220px; }
.carte-fr__hint { color: var(--c-ink-soft); }
.carte-fr__dept { font-size: 1.2rem; font-weight: 700; color: var(--c-title); margin: 0 0 4px; }
.carte-fr__code { color: var(--c-ink-soft); font-weight: 400; font-size: .95rem; }
.carte-fr__txt { font-size: .85rem; color: var(--c-ink-soft); margin: 0 0 12px; }
.carte-fr__villes { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 10px; max-height: 270px; overflow-y: auto; }
.carte-fr__ville { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 6px 8px; border-radius: 8px; color: var(--c-ink); font-size: .9rem; cursor: pointer; }
.carte-fr__ville:hover, .carte-fr__ville:focus { background: var(--c-navy-050); color: var(--c-navy); outline: none; }
.carte-fr__cta { width: 100%; }
.carte-fr__erreur { color: var(--c-ink-soft); }

.pn-modal { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 20px; }
.pn-modal[hidden] { display: none; }
.pn-modal__backdrop { position: absolute; inset: 0; background: rgba(6,41,80,.55); }
.pn-modal__dialog { position: relative; z-index: 1; background: #fff; border-radius: 16px; padding: 26px; width: 100%; max-width: 520px; max-height: 92vh; overflow-y: auto; box-shadow: var(--shadow); }
.pn-modal__close { position: absolute; top: 8px; right: 12px; background: none; border: 0; font-size: 1.9rem; line-height: 1; color: var(--c-ink-soft); cursor: pointer; }
.pn-modal__close:hover { color: var(--c-red-800); }
.pn-modal__titre { font-size: 1.3rem; font-weight: 700; color: var(--c-title); margin: 0 0 4px; }
.pn-modal__intro { color: var(--c-ink-soft); margin: 0 0 16px; font-size: .95rem; }
.pn-devis .pn-field { margin-bottom: 12px; }
.pn-devis label { display: block; font-size: .85rem; font-weight: 600; color: var(--c-ink); margin-bottom: 4px; }
.pn-devis input, .pn-devis select, .pn-devis textarea { width: 100%; font: inherit; color: var(--c-ink); background: #fff; border: 1.5px solid var(--c-line-strong); border-radius: var(--radius); padding: .6rem .7rem; }
.pn-devis input:focus, .pn-devis select:focus, .pn-devis textarea:focus { border-color: var(--c-navy); outline: none; box-shadow: 0 0 0 3px var(--c-navy-100); }
.pn-devis .is-invalid { border-color: var(--c-red); }
.pn-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pn-consent { display: flex; gap: 8px; align-items: flex-start; font-size: .82rem; color: var(--c-ink-soft); font-weight: 400; margin: 4px 0 14px; }
.pn-consent input { width: auto; margin-top: 3px; }
.pn-consent span { line-height: 1.45; }
.pn-hp { position: absolute; left: -9999px; }
.pn-devis__reassurance { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: center; padding: 12px 0 0; margin: 0; font-size: .8rem; color: var(--c-ink-soft); }
.pn-devis__reassurance li { display: inline-flex; align-items: center; gap: 5px; }
.pn-devis__reassurance li::before { content: ""; width: 14px; height: 14px; background: var(--c-navy); -webkit-mask: var(--check-mask) center/contain no-repeat; mask: var(--check-mask) center/contain no-repeat; }
.pn-devis__msg { margin: 14px 0 0; padding: 12px 14px; border-radius: 10px; font-size: .92rem; }
.pn-devis__msg.is-ok { background: var(--c-navy-050); color: var(--c-navy); }
.pn-devis__msg.is-err { background: var(--c-red-050); color: var(--c-red-800); }

@media (max-width: 860px) {
	.carte-fr { grid-template-columns: 1fr; }
	.pn-row { grid-template-columns: 1fr; }
}

/* =========================================================
   20. Observatoire / collectivités
   ========================================================= */
.lien-fleche { font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; color: var(--c-navy); }
.lien-fleche::after { content: "\2192"; transition: transform .15s; }
.lien-fleche:hover { text-decoration: none; }
.lien-fleche:hover::after { transform: translateX(4px); }

.obs-carte__source { display: inline-block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--c-red-800); margin-bottom: 2px; }
.obs-carte__lien { margin-top: 8px; font-weight: 600; font-size: .9rem; color: var(--c-navy); }

.obs-fait { display: flex; align-items: center; gap: 24px; background: var(--c-navy); color: #fff; border-radius: var(--radius-lg); padding: 26px 30px; max-width: var(--container-mid); margin-top: 8px; }
.obs-fait__chiffre { font-size: 3.4rem; font-weight: 800; line-height: 1; margin: 0; color: #fff; flex-shrink: 0; }
.obs-fait__chiffre span { font-size: 1.4rem; color: var(--c-navy-100); font-weight: 700; }
.obs-fait__t { font-weight: 700; margin: 0 0 4px; color: #fff; }
.obs-fait__d { color: var(--c-navy-100); font-size: .92rem; margin: 0 0 10px; }
.obs-fait .lien-fleche { color: #fff; }

.obs-module { max-width: var(--container-mid); margin-top: 36px; background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 26px; }
.obs-module h2 { margin-top: 0; }
.obs-module__intro { color: var(--c-ink-soft); }
.obs-module__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 16px; align-items: start; }
.obs-module__label { display: block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c-ink-soft); margin-bottom: 8px; }
.obs-module__ta { width: 100%; font-family: var(--font-mono, ui-monospace, monospace); font-size: .76rem; line-height: 1.5; border: 1px solid var(--c-line-strong); border-radius: var(--radius); padding: 10px 12px; color: var(--c-ink); background: #fff; resize: vertical; }

.obs-note { max-width: var(--container-mid); margin-top: 24px; background: var(--c-navy-050); border: 1px dashed var(--c-line-strong); border-radius: 12px; padding: 16px 18px; font-size: .92rem; color: var(--c-ink-soft); }
.obs-note strong { color: var(--c-navy); }

/* Carte de presence par departement (observatoire) */
.obs-carte { max-width: var(--container-mid); margin-top: 36px; }
.obs-carte__intro { color: var(--c-ink-soft); margin: 0 0 16px; }
.obs-source-note { font-size: .8rem; color: var(--c-ink-soft); margin-top: 12px; max-width: var(--container-mid); }

.pn-obs-map svg path[data-d].obs-lvl-2 { --lvl: #c91b20; }
.pn-obs-map svg path[data-d].obs-lvl-1 { --lvl: #e0736e; }
.pn-obs-map svg path[data-d].obs-lvl-0 { --lvl: #f4d3d1; }
.pn-obs-map svg path[data-d].obs-lvl-na { --lvl: var(--c-navy-100); }
.pn-obs-map svg path[data-d] { fill: var(--lvl); stroke: #fff; stroke-width: .7; cursor: pointer; transition: filter .15s ease; }
.pn-obs-map svg path[data-d]:hover, .pn-obs-map svg path[data-d]:focus { fill: var(--lvl); filter: brightness(.85); outline: none; }
.pn-obs-map svg path[data-d].is-active { fill: var(--lvl); filter: brightness(.8); stroke: var(--c-navy); stroke-width: 1.6; }

.obs-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 14px 0 0; padding: 0; font-size: .82rem; color: var(--c-ink-soft); }
.obs-legend li { display: flex; align-items: center; gap: 6px; }
.obs-legend__c { width: 14px; height: 14px; border-radius: 3px; display: inline-block; }
.obs-legend__c.obs-lvl-2 { background: #c91b20; }
.obs-legend__c.obs-lvl-1 { background: #e0736e; }
.obs-legend__c.obs-lvl-0 { background: #f4d3d1; border: 1px solid var(--c-line-strong); }

.obs-panel__lvl { display: flex; align-items: center; gap: 8px; font-weight: 700; margin: 0 0 12px; }
.obs-panel__dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
.obs-lvltxt-2 { color: #c91b20; } .obs-lvltxt-2 .obs-panel__dot { background: #c91b20; }
.obs-lvltxt-1 { color: #c05852; } .obs-lvltxt-1 .obs-panel__dot { background: #e0736e; }
.obs-lvltxt-0 { color: var(--c-ink); } .obs-lvltxt-0 .obs-panel__dot { background: #f4d3d1; border: 1px solid var(--c-line-strong); }
.obs-lvltxt-na { color: var(--c-ink-soft); } .obs-lvltxt-na .obs-panel__dot { background: var(--c-navy-100); }

/* Carte de saisonnalite (periode d'activite x concentration regionale) */
.saison-toggle { display: inline-flex; gap: 6px; background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: 999px; padding: 4px; margin: 0 0 18px; }
.saison-toggle__btn { border: 0; background: none; padding: 8px 16px; border-radius: 999px; font-weight: 600; font-size: .9rem; color: var(--c-ink-soft); cursor: pointer; transition: background .15s, color .15s; }
.saison-toggle__btn:hover { color: var(--c-navy); }
.saison-toggle__btn.is-active { background: var(--c-navy); color: #fff; }

.saison-mois { display: grid; grid-template-columns: repeat(12, 1fr); gap: 6px; margin: 0 0 18px; }
.saison-mois__cell { display: flex; flex-direction: column; align-items: stretch; gap: 6px; border: 1px solid var(--c-line); background: #fff; border-radius: 10px; padding: 8px 4px 6px; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.saison-mois__cell:hover { border-color: var(--c-line-strong); }
.saison-mois__cell.is-active { border-color: var(--c-navy); box-shadow: 0 0 0 2px var(--c-navy) inset; }
.saison-mois__bar { display: block; height: 22px; border-radius: 5px; background: #e6e9f0; }
.saison-mois__lab { font-size: .72rem; font-weight: 600; color: var(--c-ink-soft); text-align: center; }
.saison-mois__cell.is-active .saison-mois__lab { color: var(--c-navy); }

.pn-saison-map svg path[data-d] { stroke: #fff; stroke-width: .7; cursor: pointer; transition: opacity .15s ease, filter .15s ease; fill: #e6e9f0; }
.pn-saison-map svg path[data-d]:hover, .pn-saison-map svg path[data-d]:focus { filter: brightness(.9); outline: none; }
.pn-saison-map svg path[data-d].is-active { stroke: var(--c-navy); stroke-width: 1.6; }
.saison-panel__reg { font-size: .9rem; color: var(--c-ink-soft); margin: 0 0 10px; }

/* Pages observatoire : colonne de lecture centree et homogene */
.obs-article > * { max-width: var(--container-mid); margin-left: auto; margin-right: auto; }
.obs-article .entete-page { max-width: var(--container-mid); }

/* Bloc "fait" : libelle sous le chiffre + separateur */
.obs-fait__chiffre--sub { text-align: center; }
.obs-fait__chiffre--sub span { display: block; font-size: .98rem; font-weight: 600; color: var(--c-navy-100); margin-top: 4px; }
.obs-fait__body { border-left: 1px solid rgba(255,255,255,.22); padding-left: 28px; }

@media (max-width: 860px) {
	.obs-fait { flex-direction: column; align-items: flex-start; }
	.obs-fait__body { border-left: 0; padding-left: 0; }
	.obs-module__grid { grid-template-columns: 1fr; }
	.saison-mois { grid-template-columns: repeat(6, 1fr); }
	.saison-mois__bar { height: 18px; }
}

/* ============================================================
   Recherche interne (suggestions) + suivi de demande
   ============================================================ */
.site-search__results { margin-top: 8px; }
.site-search__list { list-style: none; margin: 0; padding: 0; background: #fff; border: 1px solid var(--c-line); border-radius: 12px; overflow: hidden; box-shadow: 0 16px 44px rgba(6,41,80,.16); }
.site-search__item { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 16px; text-decoration: none; border-bottom: 1px solid var(--c-line); }
.site-search__list li:last-child .site-search__item { border-bottom: 0; }
.site-search__item:hover { background: var(--c-navy-050); }
.site-search__it-t { color: var(--c-navy); font-weight: 600; }
.site-search__it-c { color: var(--c-ink-soft); font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; flex-shrink: 0; }
.site-search__empty { color: var(--c-ink-soft); background: #fff; border: 1px solid var(--c-line); border-radius: 12px; padding: 14px 16px; margin: 0; box-shadow: 0 16px 44px rgba(6,41,80,.16); }

.suivi-page { max-width: 720px; margin: 0 auto; }
.suivi-form { display: flex; flex-direction: column; gap: 14px; background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: 14px; padding: 22px; }
.suivi-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.suivi-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; color: var(--c-ink); font-size: .9rem; }
.suivi-form input { padding: 12px 14px; border: 1.5px solid var(--c-line-strong); border-radius: 10px; font-size: 1rem; }
.suivi-form input:focus { outline: none; border-color: var(--c-navy); }
.suivi-form .btn { align-self: flex-start; }
.suivi-result { margin-top: 20px; }
.suivi-msg { padding: 14px 16px; border-radius: 10px; }
.suivi-msg--err { background: #fdeaea; color: var(--c-red-800); }
.suivi-loading { color: var(--c-ink-soft); }
.suivi-card { background: #fff; border: 1px solid var(--c-line); border-radius: 16px; padding: 24px; box-shadow: 0 10px 30px rgba(6,41,80,.08); }
.suivi-card__ticket { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; color: var(--c-ink-soft); font-weight: 700; margin: 0 0 4px; }
.suivi-card__statut { font-size: 1.4rem; font-weight: 800; color: var(--c-title); margin: 0 0 6px; }
.suivi-card__desc { color: var(--c-ink-soft); margin: 0 0 22px; }
.suivi-steps { list-style: none; margin: 0 0 18px; padding: 0; display: flex; }
.suivi-step { flex: 1; position: relative; text-align: center; padding-top: 24px; font-size: .82rem; color: var(--c-ink-soft); }
.suivi-step__dot { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 16px; height: 16px; border-radius: 50%; background: var(--c-line); box-shadow: 0 0 0 3px #fff; z-index: 1; }
.suivi-step::before { content: ""; position: absolute; top: 7px; left: -50%; width: 100%; height: 3px; background: var(--c-line); }
.suivi-step:first-child::before { display: none; }
.suivi-step.is-done .suivi-step__dot, .suivi-step.is-cur .suivi-step__dot { background: var(--c-red); }
.suivi-step.is-done::before, .suivi-step.is-cur::before { background: var(--c-red); }
.suivi-step.is-cur .suivi-step__lab { color: var(--c-navy); font-weight: 700; }
.suivi-card__meta { color: var(--c-ink-soft); font-size: .85rem; margin: 0; border-top: 1px solid var(--c-line); padding-top: 14px; }
@media (max-width: 560px) { .suivi-form__row { grid-template-columns: 1fr; } .suivi-step__lab { font-size: .68rem; } }

/* ---------------------------------------------------------------------------
   Espace pro : atouts + formulaire d'inscription au réseau
   --------------------------------------------------------------------------- */
.pro-atouts { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.pro-atouts__item { background: #fff; border: 1px solid var(--c-line); border-radius: 14px; padding: 22px 20px; }
.pro-atouts__ic { display: inline-flex; width: 52px; height: 52px; align-items: center; justify-content: center; border-radius: 12px; background: var(--c-navy-050); color: var(--c-navy); margin-bottom: 12px; }
.pro-atouts__t { display: block; font-family: var(--font-title); font-weight: 700; color: var(--c-title); font-size: 1.08rem; margin-bottom: 4px; }
.pro-atouts__d { display: block; color: var(--c-ink-soft); line-height: 1.5; font-size: .95rem; }

.pro-form { max-width: var(--container-narrow); margin: 0 auto; }
.pro-fieldset { border: 1px solid var(--c-line); border-radius: 16px; padding: 24px 22px; margin: 0 0 22px; background: #fff; }
.pro-fieldset.is-invalid { border-color: var(--c-red); box-shadow: 0 0 0 3px var(--c-red-050); }
.pro-legend { display: flex; align-items: center; gap: 12px; font-family: var(--font-title); font-weight: 700; color: var(--c-title); font-size: 1.2rem; padding: 0; margin-bottom: 6px; }
.pro-legend__n { flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--c-navy); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: .95rem; }
.pro-hint { color: var(--c-ink-soft); margin: 0 0 16px; font-size: .95rem; }

/* Champs texte du bloc "entreprise" (le style .pn-devis ne s'applique pas ici) */
.pro-form .pn-field { margin-bottom: 14px; }
.pro-form .pn-field label { display: block; font-size: .85rem; font-weight: 600; color: var(--c-ink); margin-bottom: 5px; }
.pro-form .pn-field input, .pro-form .pn-field textarea { width: 100%; font: inherit; color: var(--c-ink); background: #fff; border: 1.5px solid var(--c-line-strong); border-radius: var(--radius); padding: .6rem .7rem; }
.pro-form .pn-field input:focus, .pro-form .pn-field textarea:focus { border-color: var(--c-navy); outline: none; box-shadow: 0 0 0 3px var(--c-navy-100); }
.pro-form .pn-field.is-invalid input, .pro-form .pn-field.is-invalid textarea { border-color: var(--c-red); }

/* Choix nuisibles */
.pro-choix { display: grid; grid-template-columns: 1fr; gap: 10px; }
.pro-choix__item { display: flex; align-items: center; gap: 12px; border: 1px solid var(--c-line); border-radius: 12px; padding: 12px 14px; cursor: pointer; transition: border-color .15s, background .15s; }
.pro-choix__item:hover { border-color: var(--c-navy-100); }
.pro-choix__item input { flex: none; width: 20px; height: 20px; accent-color: var(--c-cta); }
.pro-choix__item:has(input:checked) { border-color: var(--c-cta); background: var(--c-red-050); }
.pro-choix__ic { flex: none; color: var(--c-navy); display: inline-flex; }
.pro-choix__lbl { font-weight: 600; color: var(--c-title); }

/* Zones : barre + régions */
.pro-zones__bar { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.pro-choix__item--all { flex: none; }
.pro-zones__count { color: var(--c-ink-soft); font-size: .9rem; font-weight: 600; }
.pro-regions { display: grid; gap: 10px; }
.pro-region { border: 1px solid var(--c-line); border-radius: 12px; overflow: hidden; }
.pro-region__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; cursor: pointer; list-style: none; font-weight: 600; color: var(--c-title); }
.pro-region__head::-webkit-details-marker { display: none; }
.pro-region__head::after { content: "+"; color: var(--c-navy); font-size: 1.2rem; line-height: 1; }
.pro-region[open] .pro-region__head::after { content: "\2212"; }
.pro-region[open] .pro-region__head { border-bottom: 1px solid var(--c-line); }
.pro-region__all { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.pro-region__all input { width: 18px; height: 18px; accent-color: var(--c-cta); }
.pro-region__meta { margin-left: auto; margin-right: 8px; color: var(--c-ink-soft); font-size: .8rem; font-weight: 500; }
.pro-region__grid { display: grid; grid-template-columns: 1fr; gap: 6px; padding: 12px 16px; }
.pro-dept { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 8px; cursor: pointer; }
.pro-dept:hover { background: var(--c-bg-soft); }
.pro-dept input { width: 17px; height: 17px; accent-color: var(--c-cta); }
.pro-dept__code { flex: none; font-variant-numeric: tabular-nums; font-weight: 700; color: var(--c-navy); min-width: 26px; }
.pro-dept__nom { color: var(--c-ink); }

.pro-form .pn-consent.is-invalid { color: var(--c-red-800); }
.pro-form__msg { margin: 16px 0 0; padding: 14px 16px; border-radius: 10px; font-weight: 500; }
.pro-form__msg.is-ok { background: var(--c-navy-050); color: var(--c-navy-800); border: 1px solid var(--c-navy-100); }
.pro-form__msg.is-err { background: var(--c-red-050); color: var(--c-red-800); border: 1px solid var(--c-red); }

@media (min-width: 620px) {
	.pro-atouts { grid-template-columns: repeat(3, 1fr); }
	.pro-choix { grid-template-columns: repeat(2, 1fr); }
	.pro-region__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
	.pro-region__grid { grid-template-columns: repeat(3, 1fr); }
}

/* ---------------------------------------------------------------------------
   Bouton institutionnel + bloc signalement officiel + vidéo (observatoire)
   --------------------------------------------------------------------------- */
.btn--navy { background: var(--c-navy); color: #fff; }
.btn--navy:hover { background: var(--c-navy-800); color: #fff; }
.btn--navy svg { margin-left: 2px; }

.obs-signalement { max-width: var(--container-mid); display: flex; gap: 18px; align-items: flex-start; background: #fff; border: 1px solid var(--c-line); border-left: 4px solid var(--c-navy); border-radius: 14px; padding: 24px; margin-top: 26px; box-shadow: var(--shadow-sm); }
.obs-signalement__ic { flex: none; width: 48px; height: 48px; border-radius: 12px; background: var(--c-navy-050); color: var(--c-navy); display: inline-flex; align-items: center; justify-content: center; }
.obs-signalement__body { min-width: 0; }
.obs-signalement__sur { display: block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c-navy); margin-bottom: 4px; }
.obs-signalement h2 { margin: 0 0 8px; font-size: 1.3rem; }
.obs-signalement p { color: var(--c-ink-soft); line-height: 1.6; margin: 0 0 16px; }
.obs-signalement__note { font-size: .8rem; color: var(--c-ink-soft); margin: 14px 0 0 !important; display: inline-flex; align-items: center; gap: 6px; }
.obs-signalement__note svg { color: var(--c-navy); flex: none; }

.obs-video { max-width: var(--container-mid); margin: 32px auto 0; }
.obs-video h2 { margin-bottom: 6px; }
.obs-video__intro { color: var(--c-ink-soft); margin: 0 0 16px; }
.obs-video__frame { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #000; box-shadow: var(--shadow-sm); }
.obs-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

@media (max-width: 560px) {
	.obs-signalement { flex-direction: column; gap: 12px; padding: 20px; }
}

/* ---------------------------------------------------------------------------
   Modale de devis : moteur multi-étapes (réutilise les classes .le-*)
   --------------------------------------------------------------------------- */
.pn-modal__dialog--engine { max-width: 620px; }
.pn-modal__dialog--engine .le-q { font-size: 1.18rem; margin-bottom: 14px; }
.pn-modal__dialog--engine .le-opt { padding: 14px 8px; gap: 8px; }
.pn-modal__dialog--engine .le-opt__ico { width: 42px; height: 42px; }
.pn-modal__dialog--engine .le-opt__lab { font-size: .84rem; }
.pn-modal__dialog--engine .le-step { margin-top: 10px; }
.pnd-engine .le-form textarea { padding: 11px 12px; border: 1.5px solid var(--c-line-strong); border-radius: 10px; font: inherit; font-size: 1rem; resize: vertical; }
.pnd-engine .le-form textarea:focus { outline: none; border-color: var(--c-navy); }
.pnd-engine .le-consent a { color: var(--c-red-800); }
.pnd-engine .le-done { padding: 20px 8px; }

@media (max-width: 560px) {
	.pn-modal__dialog--engine .le-opts { grid-template-columns: repeat(2, 1fr) !important; }
	.pn-modal__dialog--engine .le-row { grid-template-columns: 1fr; }
}

/* Colonne de lecture réutilisable (remplace les max-width inline) */
.page-lecture { max-width: calc(var(--container-narrow) + 40px); padding-top: 32px; padding-bottom: 32px; }
.entete-page--mid { max-width: var(--container-mid); }

/* ---------------------------------------------------------------------------
   Bloc Diagnostic (accueil) : carte "process" à 4 livrables.
   Volontairement différent de .couverture (2 colonnes) qui le précède et de
   .cta-bande (marine) qui le suit, pour casser la répétition verticale.
   --------------------------------------------------------------------------- */
.diag { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 40px 36px 36px; box-shadow: var(--shadow-sm); }
.diag::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--c-red); }
.diag__head { max-width: 660px; margin: 0 auto 34px; text-align: center; }
.diag__head .surtitre { justify-content: center; }
.diag__head h2 { margin-bottom: 10px; }
.diag__head .section__intro { margin: 0; }

.diag-etapes { list-style: none; margin: 0; padding: 0; display: grid; gap: 26px 20px; counter-reset: diag; }
.diag-etape { position: relative; text-align: center; padding: 0 6px; }
.diag-etape__ic { display: inline-flex; width: 62px; height: 62px; align-items: center; justify-content: center; border-radius: 50%; background: var(--c-navy-050); color: var(--c-navy); margin-bottom: 12px; position: relative; z-index: 1; }
.diag-etape__num { position: absolute; top: -4px; left: 50%; margin-left: 12px; width: 24px; height: 24px; border-radius: 50%; background: var(--c-red); color: #fff; font-size: .78rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; z-index: 2; }
.diag-etape__t { display: block; font-family: var(--font-title); font-weight: 700; color: var(--c-title); font-size: 1.02rem; margin-bottom: 4px; }
.diag-etape__d { display: block; color: var(--c-ink-soft); font-size: .92rem; line-height: 1.5; }

.diag__cta { text-align: center; margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--c-line); }
.diag__note { display: inline-flex; align-items: center; gap: 7px; margin: 14px 0 0; font-size: .85rem; color: var(--c-ink-soft); }
.diag__note svg { color: var(--c-navy); }

@media (min-width: 700px) {
	.diag-etapes { grid-template-columns: repeat(4, 1fr); }
	/* Trait de liaison entre les pastilles, façon parcours. */
	.diag-etape::after { content: ""; position: absolute; top: 31px; left: calc(50% + 40px); width: calc(100% - 80px); height: 2px; background: var(--c-line); }
	.diag-etape:last-child::after { display: none; }
}
@media (max-width: 699px) {
	.diag { padding: 30px 22px 28px; }
	.diag-etapes { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 460px) {
	.diag-etapes { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------------------
   Contenu éditorial enrichi : figures/infographies, encadrés, tableaux
   --------------------------------------------------------------------------- */
.infographie { margin: 26px 0; border: 1px solid var(--c-line); border-radius: 14px; padding: 18px 18px 12px; background: #fff; }
.infographie svg { display: block; width: 100%; height: auto; }
.infographie figcaption { margin-top: 10px; font-size: .82rem; color: var(--c-ink-soft); line-height: 1.45; text-align: center; }
.infographie__t { margin: 0 0 14px; font-family: var(--font-title); font-weight: 700; font-size: 1rem; color: var(--c-title); text-align: center; }

/* Photos éditoriales (shortcode [pn_photo]) — même cadre que .infographie */
.pn-photo { margin: 26px 0; border: 1px solid var(--c-line); border-radius: 14px; padding: 10px 10px 12px; background: #fff; }
.pn-photo picture { display: block; }
.pn-photo__img { display: block; width: 100%; height: auto; border-radius: 9px; }
.pn-photo figcaption { margin: 10px 4px 0; font-size: .82rem; color: var(--c-ink-soft); line-height: 1.45; text-align: center; }
.pn-photos { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 26px 0; }
/* Liens entrants vers les articles du silo (bloc automatique, pas d'injection) */
.pn-questions { margin: 30px 0; border: 1px solid var(--c-line); border-left: 4px solid var(--c-navy); border-radius: 12px; padding: 16px 20px; background: var(--c-bg-soft); }
.pn-questions__t { margin: 0 0 10px; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c-navy); }
.pn-questions ul { margin: 0; padding-left: 18px; }
.pn-questions li { margin: 5px 0; line-height: 1.45; }
.pn-questions a { color: var(--c-ink); }
.pn-questions a:hover { color: var(--c-red); }

.pn-photo--portrait .pn-photo__img { max-width: 400px; margin-inline: auto; }
.pn-photos .pn-photo { margin: 0; }
@media (min-width: 620px) { .pn-photos { grid-template-columns: 1fr 1fr; } }


/* Réponse directe en tête de page (visée featured snippet + extraction LLM) */
.pn-reponse { background: var(--c-navy-050); border-left: 4px solid var(--c-navy); border-radius: 12px; padding: 18px 20px; margin: 0 0 26px; }
.pn-reponse__t { display: block; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--c-navy); margin-bottom: 6px; }
.pn-reponse p { margin: 0; color: var(--c-ink); line-height: 1.6; }
.pn-reponse p + p { margin-top: 10px; }

/* Encadré d'alerte / point de vigilance */
.pn-avert { display: flex; gap: 14px; align-items: flex-start; background: var(--c-red-050); border: 1px solid var(--c-red); border-radius: 12px; padding: 16px 18px; margin: 24px 0; }
.pn-avert__ic { flex: none; color: var(--c-red-800); line-height: 0; margin-top: 2px; }
.pn-avert p { margin: 0; color: var(--c-ink); line-height: 1.55; font-size: .95rem; }
.pn-avert strong { color: var(--c-red-800); }

/* À retenir */
.pn-cles { background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: 12px; padding: 18px 20px 18px 22px; margin: 24px 0; }
.pn-cles__t { display: block; font-family: var(--font-title); font-weight: 700; color: var(--c-title); margin-bottom: 8px; }
.pn-cles ul { margin: 0; padding-left: 18px; }
.pn-cles li { color: var(--c-ink-soft); line-height: 1.55; margin-bottom: 5px; }
.pn-cles li strong { color: var(--c-title); }

/* Tableau comparatif */
.pn-tableau { margin: 26px 0; overflow-x: auto; border: 1px solid var(--c-line); border-radius: 12px; }
.pn-tableau table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: .92rem; }
.pn-tableau th { background: var(--c-navy); color: #fff; text-align: left; padding: 11px 14px; font-weight: 600; }
.pn-tableau td { border-top: 1px solid var(--c-line); padding: 11px 14px; color: var(--c-ink); vertical-align: top; }
.pn-tableau tbody tr:nth-child(even) { background: var(--c-bg-soft); }
.pn-tableau .oui { color: #1a7f37; font-weight: 700; }
.pn-tableau .non { color: var(--c-red-800); font-weight: 700; }

/* Sources en fin de contenu */
.pn-sources { margin: 30px 0 0; padding-top: 16px; border-top: 1px solid var(--c-line); font-size: .85rem; color: var(--c-ink-soft); }
.pn-sources__t { display: block; font-weight: 700; color: var(--c-title); margin-bottom: 6px; }
.pn-sources ul { margin: 0; padding-left: 18px; }
.pn-sources li { margin-bottom: 4px; }

@media (max-width: 560px) {
	.infographie { padding: 14px 12px 10px; }
	.pn-avert { flex-direction: column; gap: 8px; }
}

/* ---------------------------------------------------------------------------
   Maillage du silo : bloc « Dans ce dossier » / « Poursuivre la lecture »
   --------------------------------------------------------------------------- */
.dossier-nav { max-width: var(--container-narrow); margin: 40px auto 0; background: var(--c-navy-050); border: 1px solid var(--c-navy-100); border-radius: 14px; padding: 22px 24px; }
.dossier-nav__t { margin: 0 0 4px; font-family: var(--font-title); font-weight: 700; font-size: 1.1rem; color: var(--c-title); }
.dossier-nav__intro { margin: 0 0 14px; font-size: .92rem; color: var(--c-ink-soft); }
.dossier-nav__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.dossier-nav__item a { display: flex; align-items: center; gap: 9px; padding: 9px 4px; color: var(--c-navy); font-weight: 600; font-size: .95rem; border-bottom: 1px solid rgba(6,41,80,.08); text-decoration: none; }
.dossier-nav__item a::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--c-red); }
.dossier-nav__item a:hover { color: var(--c-red-800); text-decoration: none; }
.dossier-nav__item:last-child a { border-bottom: 0; }
.dossier-nav__parent { display: inline-flex; align-items: center; gap: 7px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--c-navy-100); font-size: .9rem; font-weight: 600; color: var(--c-navy); text-decoration: none; }
.dossier-nav__parent:hover { color: var(--c-red-800); text-decoration: none; }
.dossier-nav__parent svg { flex: none; }

@media (min-width: 620px) {
	.dossier-nav__liste { grid-template-columns: 1fr 1fr; gap: 2px 26px; }
}

/* ---------------------------------------------------------------------------
   Liens DANS le contenu éditorial : ils doivent se voir.
   Le style global (marine sans soulignement) les rendait indistinguables du
   texte courant, qui est lui-même en marine foncé.
   --------------------------------------------------------------------------- */
.prose a:not(.btn),
.article-body a:not(.btn),
.local-prose a:not(.btn) {
	color: var(--c-red-800);
	text-decoration: underline;
	text-decoration-color: rgba(201, 27, 32, .35);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
	font-weight: 500;
	transition: text-decoration-color .12s, background-color .12s;
}
.prose a:not(.btn):hover,
.article-body a:not(.btn):hover,
.local-prose a:not(.btn):hover {
	text-decoration-color: var(--c-red);
	background: var(--c-red-050);
}
/* Les liens du sommaire et des encadrés gardent leur propre traitement. */
.toc a, .pn-sources a { text-decoration: none; }

/* Sections rédigées des pages locales : colonne de lecture dans le style du site */
.local-sec .local-prose p { color: var(--c-ink-soft); line-height: 1.65; margin: 0 0 14px; max-width: 62em; }
.local-sec .local-prose p:last-child { margin-bottom: 0; }
.local-sec .local-prose a { color: var(--c-red-800); text-decoration: underline; text-decoration-color: rgba(201,27,32,.35); text-decoration-thickness: 1.5px; text-underline-offset: 3px; font-weight: 500; }
.local-sec .local-prose a:hover { text-decoration-color: var(--c-red); background: var(--c-red-050); }
.local-lead a, .local-cle a { color: var(--c-red-800); text-decoration: underline; text-underline-offset: 3px; }

/* ---------------------------------------------------------------------------
   Pages locales : passages en 2 colonnes, cartes d'espèces illustrées,
   refonte du bloc prix.
   --------------------------------------------------------------------------- */

/* « Autres nuisibles à {ville} » et « La méthode d'une intervention » sur 2 colonnes */
@media (min-width: 760px) {
	.local-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; }
	.local-method { grid-template-columns: 1fr 1fr; gap: 12px 16px; max-width: none; }
	.local-method li { align-items: flex-start; }
	.local-method li::before { margin-top: 1px; }
}

/* Cartes d'espèces illustrées */
.local-esp--photo { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.local-esp__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; background: var(--c-bg-soft); border-bottom: 1px solid var(--c-line); }
.local-esp__txt { padding: 16px 18px 18px; }
.local-esp--photo h3 { margin: 0 0 6px; font-size: 1.02rem; }
.local-esp--simple .local-esp__txt { padding: 0; }

/* Bloc prix : cartes lisibles plutôt qu'un tableau brut */
.local-prix { display: grid; gap: 12px; }
.local-prix__ligne { display: flex; align-items: center; justify-content: space-between; gap: 18px; background: #fff; border: 1px solid var(--c-line); border-radius: 12px; padding: 15px 18px; transition: border-color .12s; }
.local-prix__ligne:hover { border-color: var(--c-navy-100); }
.local-prix__lib { display: flex; align-items: center; gap: 12px; color: var(--c-ink); font-weight: 600; font-size: .96rem; }
.local-prix__ico { flex: none; width: 34px; height: 34px; border-radius: 9px; background: var(--c-navy-050); color: var(--c-navy); display: inline-flex; align-items: center; justify-content: center; }
.local-prix__val { flex: none; color: var(--c-navy); font-weight: 800; font-size: 1.02rem; white-space: nowrap; background: var(--c-navy-050); border-radius: 8px; padding: 6px 12px; }
.local-prix-note { display: flex; align-items: flex-start; gap: 9px; font-size: .85rem; color: var(--c-ink-soft); margin: 14px 0 0; line-height: 1.5; }
.local-prix-note svg { flex: none; color: var(--c-navy); margin-top: 1px; }

@media (min-width: 760px) {
	.local-prix { grid-template-columns: 1fr 1fr; gap: 12px 16px; }
}
@media (max-width: 560px) {
	.local-prix__ligne { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* ---------- Page à propos et équipe ---------- */
.apropos { padding: 8px 20px 72px; }
.apropos__hero { margin: 0 0 48px; }
.apropos__h1 { margin: 6px 0 18px; }
.apropos__chapo { font-size: 1.125rem; line-height: 1.65; color: var(--c-ink-soft); }
.apropos__sec { margin: 0 0 56px; }
.apropos__sec > h2 { margin: 0 0 18px; }
.apropos__prose { max-width: none; }
.apropos__prose p { margin: 0 0 14px; line-height: 1.7; }
.apropos__prose p:last-child { margin-bottom: 0; }
.apropos__intro { margin: 0 0 28px; color: var(--c-ink-soft); line-height: 1.7; }

.apropos__principes { display: grid; grid-template-columns: 1fr; gap: 18px; }
.apropos__pr { background: #fff; border: 1px solid var(--c-line); border-radius: 14px; padding: 22px 22px 20px; }
.apropos__pr-ic { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: var(--c-navy-050); color: var(--c-navy); margin-bottom: 12px; }
.apropos__pr h3 { margin: 0 0 8px; font-size: 1.0625rem; }
.apropos__pr p { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--c-ink-soft); }

.equipe { display: grid; grid-template-columns: 1fr; gap: 20px; }
.equipe__m { background: #fff; border: 1px solid var(--c-line); border-radius: 16px; padding: 24px; display: flex; flex-direction: column; }
.equipe__tete { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.equipe__id { min-width: 0; }
.equipe__nom { margin: 0 0 4px; font-size: 1.125rem; line-height: 1.25; }
.equipe__nom a { color: var(--c-navy); text-decoration: none; }
.equipe__nom a:hover, .equipe__nom a:focus-visible { text-decoration: underline; }
.equipe__role { margin: 0; font-size: .875rem; color: var(--c-ink-soft); }
.equipe__spe { display: flex; align-items: center; gap: 9px; margin: 0 0 14px; font-size: .9375rem; font-weight: 600; color: var(--c-navy); }
.equipe__spe-ic { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 9px; background: var(--c-red-050); color: var(--c-red-800); flex-shrink: 0; }
.equipe__spe-ic svg { width: 18px; height: 18px; }
.equipe__spe a { color: inherit; }
.equipe__parcours { margin: 0 0 16px; font-size: .9375rem; line-height: 1.65; color: var(--c-ink-soft); }
.equipe__veille { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.equipe__veille li { font-size: .8125rem; font-weight: 600; color: var(--c-ink-soft); background: var(--c-bg-soft); border-radius: 999px; padding: 5px 12px; }
.equipe__lien { margin-top: auto; align-self: flex-start; }

@media (min-width: 700px) {
	.apropos__principes { grid-template-columns: repeat(2, 1fr); }
	.equipe { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1080px) {
	.apropos__principes { grid-template-columns: repeat(4, 1fr); }
	.equipe { grid-template-columns: repeat(3, 1fr); }
}

/* --- Classes propres au portrait communal, a ajouter dans style.css --- */
.pf-expo{border-radius:14px;padding:1.15rem 1.3rem;margin:0 0 1.6rem;border:2px solid}
.pf-expo__lab{margin:0;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;opacity:.75}
.pf-expo__val{margin:.15rem 0 .5rem;font-size:1.9rem;font-weight:800;line-height:1.1}
.pf-expo__txt{margin:0;font-size:.97rem}
.pf-expo--tres-eleve{background:#fdf2f2;border-color:#c91b20;color:#8f1418}
.pf-expo--eleve{background:#fdf9ef;border-color:#c98a1b;color:#8a5c08}
.pf-expo--modere{background:#f2f6fb;border-color:#284a73;color:#1d3557}
.pf-expo--faible,.pf-expo--negligeable{background:#f3f8f4;border-color:#3f7d4e;color:#2c5a37}
.pf-ech{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.85rem}
.pf-ech__n{font-size:.74rem;padding:.2rem .55rem;border-radius:999px;background:rgba(0,0,0,.06);opacity:.55}
.pf-ech__n.is-on{opacity:1;font-weight:700;background:rgba(0,0,0,.14)}
.pf-lieux{list-style:none;padding:0;margin:.6rem 0 1.2rem}
.pf-lieux li{display:flex;align-items:baseline;gap:.6rem;padding:.5rem .2rem;border-bottom:1px solid #e8edf4}
.pf-lieux em{margin-left:auto;font-style:normal;font-size:.82rem;color:#77839a;white-space:nowrap}
.pf-d{flex:0 0 6.2rem;font-weight:800;color:#c91b20;font-variant-numeric:tabular-nums;white-space:nowrap}
.pf-vide{color:#55607a;font-style:italic;background:#f3f8f4;border-left:3px solid #3f7d4e;padding:.7rem .9rem;border-radius:0 8px 8px 0}
.pf-tab{overflow-x:auto;margin:1rem 0 1.2rem}
.pf-tab table{width:100%;border-collapse:collapse;font-size:.94rem;min-width:34rem}
.pf-tab th{text-align:left;background:#eef2f8;padding:.55rem .7rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;color:#55607a}
.pf-tab td{padding:.6rem .7rem;border-bottom:1px solid #e8edf4;vertical-align:top}
.pf-tab tr.is-risque td{background:#fdf2f2}
.pf-tab tr.is-ok td strong{color:#2c5a37}
.pf-tab tr.is-risque td strong{color:#8f1418}


/* --- Blocs éditoriaux des articles (rubriques Conseils) --- */

/* Chiffre clé : une donnée qu'on veut voir avant de lire le paragraphe. */
.pn-chiffre{display:flex;gap:1.1rem;align-items:center;background:#f2f6fb;border-left:4px solid #284a73;border-radius:0 12px 12px 0;padding:1.05rem 1.25rem;margin:1.6rem 0}
.pn-chiffre__v{font-size:2.15rem;font-weight:800;color:#284a73;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}
.pn-chiffre__t{margin:0;font-size:.97rem;color:#1a2233}
.pn-chiffre__s{display:block;margin-top:.3rem;font-size:.8rem;color:#77839a}

/* Idée reçue : le bloc qui distingue un guide d'un contenu de remplissage. */
.pn-mythe{border:2px solid #cfd9e6;border-radius:14px;overflow:hidden;margin:1.8rem 0}
.pn-mythe__f,.pn-mythe__v{padding:.95rem 1.25rem}
.pn-mythe__f{background:#fdf2f2;border-bottom:2px solid #cfd9e6}
.pn-mythe__v{background:#f3f8f4}
.pn-mythe__l{display:inline-block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-weight:800;margin-bottom:.35rem}
.pn-mythe__f .pn-mythe__l{color:#c91b20}
.pn-mythe__v .pn-mythe__l{color:#2c5a37}
.pn-mythe p{margin:0;font-size:.99rem}

/* Étapes numérotées. */
.pn-etapes{counter-reset:e;list-style:none;padding:0;margin:1.5rem 0}
.pn-etapes li{counter-increment:e;position:relative;padding:.2rem 0 1.05rem 3rem;border-left:2px solid #e3e8f0;margin-left:1rem}
.pn-etapes li:last-child{border-left-color:transparent;padding-bottom:0}
.pn-etapes li::before{content:counter(e);position:absolute;left:-1.05rem;top:0;width:2.1rem;height:2.1rem;border-radius:50%;background:#284a73;color:#fff;font-weight:800;font-size:.9rem;display:flex;align-items:center;justify-content:center}
.pn-etapes strong{display:block;margin-bottom:.15rem}

/* Tableau comparatif. */
.pn-tab{overflow-x:auto;margin:1.5rem 0}
.pn-tab table{width:100%;border-collapse:collapse;font-size:.94rem;min-width:32rem}
.pn-tab th{text-align:left;background:#062950;color:#fff;padding:.6rem .75rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;font-weight:700}
.pn-tab td{padding:.65rem .75rem;border-bottom:1px solid #e8edf4;vertical-align:top}
.pn-tab tbody tr:nth-child(even) td{background:#fbfcfe}
.pn-tab .oui{color:#2c5a37;font-weight:700}
.pn-tab .non{color:#c91b20;font-weight:700}
.pn-tab .partiel{color:#a8710f;font-weight:700}

/* Verdict de fin de section. */
.pn-verdict{background:#062950;color:#fff;border-radius:14px;padding:1.15rem 1.35rem;margin:1.8rem 0}
.pn-verdict__l{display:block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:.7;margin-bottom:.3rem}
.pn-verdict p{margin:0;font-size:1.02rem;line-height:1.55}

/* --- Ligne de signature : photo de l'auteur --- */
.article-meta__auth{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:inherit}
.article-meta__auth .pn-avatar{width:30px;height:30px}
.article-meta__auth:hover .article-meta__nom{text-decoration:underline}
.article-meta__nom{font-weight:600}
/* Titres : eviter les coupures qui laissent un mot ou un signe seul. */
.article-title,.entete-page h1{text-wrap:balance}

/* --- Ligne de signature : l'inline-flex de l'avatar creait un decalage de
   ligne de base avec la date. On passe le conteneur en flex. --- */
.article-meta__author{display:inline-flex;align-items:center;line-height:1}
.article-meta__date,.article-meta__sep{display:inline-flex;align-items:center;line-height:1}

/* --- Page auteur : contenus en cartes --- */
.auteur-contenus{margin:2.4rem 0 0}
.auteur-contenus__tete{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem 1rem;border-bottom:1px solid var(--c-line);padding-bottom:.6rem;margin-bottom:1.2rem}
.auteur-contenus__tete h2{margin:0}
.auteur-contenus__tete p{margin:0;font-size:.9rem;color:var(--c-ink-soft)}
.auteur-contenus__tete p span{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .4rem;margin-left:.35rem;border-radius:999px;background:var(--c-navy);color:#fff;font-size:.76rem;font-weight:700}
.ac-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(16.5rem,1fr));gap:1rem}
.ac{border:1px solid var(--c-line);border-radius:14px;overflow:hidden;background:#fff;transition:border-color .15s,transform .15s,box-shadow .15s}
.ac:hover{border-color:var(--c-navy);transform:translateY(-2px);box-shadow:0 6px 20px rgba(6,41,80,.09)}
.ac__lien{display:flex;flex-direction:column;height:100%;padding:1.05rem 1.15rem 1.15rem;text-decoration:none;color:inherit}
.ac__tag{align-self:flex-start;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;font-weight:800;color:var(--c-red-800);border-bottom:2px solid var(--c-red);padding-bottom:.15rem;margin-bottom:.6rem}
.ac__t{margin:0 0 .45rem;font-size:1.02rem;line-height:1.3;color:var(--c-navy);text-wrap:balance}
.ac__d{margin:0 0 .9rem;font-size:.9rem;line-height:1.5;color:var(--c-ink-soft)}
.ac__meta{margin-top:auto;font-size:.78rem;color:#8a93a5}
.ac:hover .ac__t{text-decoration:underline}


/* Portraits : communes voisines et index departemental */
.pf-voisins .dossier-nav__item a { justify-content: space-between; flex-wrap: wrap; }
.pf-niv { font-size: .74rem; font-weight: 700; letter-spacing: .02em; padding: 2px 8px; border-radius: 999px; background: var(--c-navy-100); color: var(--c-navy); white-space: nowrap; }
.pf-niv.is-tres-eleve { background: #fde2e1; color: #9b1c1c; }
.pf-niv.is-eleve { background: #ffe8d1; color: #9a4b00; }
.pf-niv.is-modere { background: #fff4c2; color: #7a5a00; }
.pf-niv.is-faible, .pf-niv.is-negligeable { background: #e3f3e6; color: #1f6b34; }
.pf-voisins__tout a { font-weight: 800; }
.pf-voisins__tout a::before { background: var(--c-navy); }
.pf-index { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: 4px 18px; }
.pf-index li { display: flex; justify-content: space-between; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--c-line); font-size: .93rem; }
.pf-index a { color: var(--c-navy); font-weight: 600; }
.pf-index__pct { color: var(--c-ink-soft); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pf-index__n { font-weight: 500; color: var(--c-ink-soft); font-size: .9em; }

/* --- Hub /conseils/ et archives : filtres par nuisible, cartes avec chapo --- */
.conseils-filtres { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 26px; }
.conseils-filtres__lien { display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px; border: 1px solid var(--c-line-strong); border-radius: 999px; background: #fff; color: var(--c-ink); font-size: .88rem; font-weight: 600; text-decoration: none; transition: border-color .12s, background .12s; }
.conseils-filtres__lien span { font-weight: 500; color: var(--c-ink-soft); font-size: .8rem; }
.conseils-filtres__lien:hover { border-color: var(--c-navy); text-decoration: none; }
.conseils-filtres__lien.is-active { background: var(--c-navy); border-color: var(--c-navy); color: #fff; }
.conseils-filtres__lien.is-active span { color: rgba(255,255,255,.75); }
.conseils-bloc { margin-top: 36px; }
.conseils-bloc__t { margin: 0 0 6px; }
.conseils-bloc__intro { margin: 0 0 16px; color: var(--c-ink-soft); max-width: 46em; }
.carte-article__rub { font-weight: 500; color: var(--c-ink-soft); text-transform: none; letter-spacing: 0; }
.carte-article__chapo { font-size: .92rem; color: var(--c-ink-soft); line-height: 1.5; }
@media (max-width: 640px) { .conseils-filtres { gap: 6px; } .conseils-filtres__lien { padding: 6px 10px; font-size: .82rem; } }
.lire-aussi { margin: 26px 0 0; padding: 14px 18px; background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: 12px; color: var(--c-ink-soft); line-height: 1.6; }
.lire-aussi strong { color: var(--c-title); }
