/*
Theme Name: Nuisy
Theme URI: https://nuisy.fr/
Author: Seobooster LTD
Description: Diagnostic nuisibles et mise en relation avec des professionnels (punaises de lit, frelons, rats, cafards, moustique tigre, mites, fourmis, puces).
Version: 1.0.0
Requires PHP: 7.4
Text Domain: nuisy
*/

/* ==========================================================================
   0. POLICES — auto-hébergées (P-086). Les binaires woff2 sont déposés dans
      assets/fonts/ à la publication ; en attendant, repli système propre.
   ========================================================================== */
@font-face{
	font-family:'Fraunces';font-style:normal;font-weight:900;font-display:swap;
	src:url('assets/fonts/fraunces-900.woff2') format('woff2');
}
@font-face{
	font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
	src:url('assets/fonts/inter-variable.woff2') format('woff2');
}

/* ==========================================================================
   1. VARIABLES — 1 fond neutre + 1 accent (P-116). Thème clair uniquement
      (CM-0575) : aucune variante prefers-color-scheme.
   ========================================================================== */
:root{
	--vert-profond:#004C40;
	--vert:#008060;
	--vert-vif:#00BC88;
	--menthe:#CCF3E3;
	--menthe-clair:#ECF3F0;
	--corail:#FF8660;
	--bleu-ciel:#E5F3FA;
	--gris:#E8E8ED;
	--encre:#0B0B0B;
	--encre-doux:rgba(11,11,11,.62);
	--fond:#FFFFFF;
	--surface:#FBFBFB;
	--ligne:#E3E3E0;

	--titre:'Fraunces', Georgia, 'Times New Roman', serif;
	--corps:'Inter', -apple-system, 'Segoe UI', Arial, sans-serif;

	--rayon-s:12px;
	--rayon-m:20px;
	--rayon-l:32px;
	--rayon-pill:999px;

	--ombre:0 20px 44px -24px rgba(0,32,26,.28);
	--ombre-s:0 8px 18px -12px rgba(0,32,26,.22);

	--largeur:1180px;
	--section-y:96px;
}

@media (max-width:760px){
	:root{ --section-y:56px; }
}

/* ==========================================================================
   2. RESET / BASE
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
	margin:0;background:var(--fond);color:var(--encre);
	font:400 16px/1.65 var(--corps);
	-webkit-font-smoothing:antialiased;
	overflow-x:hidden;
}
img,svg{max-width:100%;display:block}
a{color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0;width:100%}
:focus-visible{outline:3px solid var(--vert-vif);outline-offset:2px}
.nu-conteneur{max-width:var(--largeur);margin-inline:auto;padding-inline:24px}
.nu-section{padding-block:var(--section-y)}
.nu-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ==========================================================================
   3. TYPOGRAPHIE
   ========================================================================== */
h1,h2,h3,h4{font-family:var(--titre);font-weight:900;line-height:1.08;color:var(--vert-profond);margin:0 0 .5em}
h1{font-size:clamp(34px,5.4vw,52px)}
h2{font-size:clamp(26px,3.6vw,38px)}
h3{font-size:clamp(19px,2.2vw,23px)}
h4{font-size:18px}
p{margin:0 0 1em}
.nu-chapo{font-size:18px;color:var(--encre-doux);line-height:1.6}
.nu-etiquette{
	display:inline-block;font:700 11px/1 var(--corps);letter-spacing:.09em;text-transform:uppercase;
	color:var(--vert);margin-bottom:10px;
}

/* ==========================================================================
   4. BOUTONS
   ========================================================================== */
.btn{
	display:inline-flex;align-items:center;justify-content:center;gap:8px;
	padding:15px 30px;border-radius:var(--rayon-pill);
	font:700 12px/1 var(--corps);letter-spacing:.09em;text-transform:uppercase;
	text-decoration:none;border:2px solid transparent;transition:.15s ease;
}
.btn--vert{background:var(--vert-vif);color:#fff}
.btn--vert:hover{background:var(--vert-profond)}
.btn--ligne{background:transparent;border-color:var(--vert-profond);color:var(--vert-profond)}
.btn--ligne:hover{background:var(--vert-profond);color:#fff}
.btn--corail{background:var(--corail);color:#fff}
.btn--corail:hover{background:#e56a48}
.btn--large{padding:17px 36px;font-size:13px;width:100%}
.btn--pied{background:#fff;color:var(--vert-profond)}
.btn--pied:hover{background:var(--menthe)}

/* ==========================================================================
   5. EN-TÊTE
   ========================================================================== */
.nu-bandeau{
	background:linear-gradient(90deg,var(--bleu-ciel),#FBE3E8);
	color:var(--vert-profond);text-align:center;font:600 13px/1.4 var(--corps);
	padding:9px 16px;
}
.nu-bandeau b{font-weight:800}

.nu-entete{border-bottom:1px solid var(--ligne);background:var(--fond);position:sticky;top:0;z-index:40}
.nu-entete-in{
	max-width:var(--largeur);margin-inline:auto;padding:14px 24px;
	display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;
}
.nu-nav-gauche{display:flex;align-items:center;gap:26px}
.nu-nav-gauche a{
	font:700 12px/1 var(--corps);letter-spacing:.09em;text-transform:uppercase;
	text-decoration:none;color:var(--encre);white-space:nowrap;
}
.nu-nav-gauche a:hover{color:var(--vert)}
.nu-logo{display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:var(--vert-profond)}
.nu-logo svg{width:30px;height:30px}
.nu-logo-mot{font-family:var(--titre);font-weight:900;font-size:24px;color:var(--vert-vif)}
.nu-actions{display:flex;align-items:center;justify-content:flex-end;gap:20px}
.nu-actions a.nu-lien-tel{font:700 13px/1 var(--corps);text-decoration:none;color:var(--vert-profond);white-space:nowrap}
.nu-burger{display:none;border:0;background:none;padding:8px}
.nu-burger svg{width:24px;height:24px}
.nu-mobile-panel{display:none}

@media (max-width:900px){
	.nu-nav-gauche{display:none}
	.nu-entete-in{grid-template-columns:auto 1fr auto}
	.nu-actions a.nu-lien-tel{display:none}
	.nu-burger{display:block}
	.nu-mobile-panel{
		display:none;position:fixed;inset:0;background:var(--fond);z-index:50;
		padding:20px 24px;overflow-y:auto;
	}
	.nu-mobile-panel.is-ouvert{display:block}
	.nu-mobile-tete{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}
	.nu-mobile-panel a{display:block;padding:16px 0;border-bottom:1px solid var(--ligne);
		font:700 14px/1 var(--corps);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--encre)}
	.nu-mobile-panel .btn{margin-top:24px}
}

/* ==========================================================================
   6. HÉROS ACCUEIL
   ========================================================================== */
.nu-hero{padding-block:56px var(--section-y)}
.nu-hero-in{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.nu-hero-photos{display:grid;grid-template-columns:1.2fr 1fr;gap:10px}
.nu-hero-photos img{width:100%;height:420px;object-fit:cover}
.nu-hero-photos > :first-child img{border-radius:var(--rayon-l) var(--rayon-s) var(--rayon-s) var(--rayon-l)}
.nu-hero-photos > :last-child img{border-radius:var(--rayon-s) var(--rayon-l) var(--rayon-l) var(--rayon-s)}
.nu-hero-texte h1{color:var(--vert-vif)}
.nu-hero-texte h1 mark{background:none;color:var(--vert-profond);text-decoration:underline;text-decoration-color:var(--corail);text-decoration-thickness:4px;text-underline-offset:6px}
.nu-hero-avis{display:flex;align-items:center;gap:10px;margin-top:18px;font-size:14px;color:var(--encre-doux)}
.nu-hero-avis .etoiles{color:var(--corail);letter-spacing:2px}

.nu-hero-form{
	margin-top:28px;background:var(--fond);border:1px solid var(--ligne);border-radius:var(--rayon-l);
	padding:26px;box-shadow:var(--ombre);
}
.nu-hero-form legend,.nu-ville-form legend{font-family:var(--titre);font-weight:900;font-size:19px;color:var(--vert-profond);padding:0 0 14px}

@media (max-width:900px){
	.nu-hero-in{grid-template-columns:1fr;gap:28px}
	.nu-hero-photos img{height:220px}
}

/* ==========================================================================
   7. FORMULAIRE DEVIS 3 ÉTAPES
   ========================================================================== */
.nu-devis{width:100%}
.nu-devis-etapes{display:flex;gap:8px;margin:0 0 16px;list-style:none}
.nu-devis-etapes span{
	width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
	background:var(--gris);color:var(--encre-doux);font:700 12px/1 var(--corps);
}
.nu-devis-etapes span.is-actif{background:var(--vert-vif);color:#fff}
.nu-devis-pas legend{width:100%}
.nu-devis-grille{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:18px}
.nu-devis-case{
	display:flex;align-items:center;gap:8px;border:1.5px solid var(--ligne);border-radius:var(--rayon-s);
	padding:12px 14px;cursor:pointer;font-size:14px;font-weight:600;transition:.15s;
}
.nu-devis-case:has(input:checked){border-color:var(--vert-vif);background:var(--menthe-clair);color:var(--vert-profond)}
.nu-devis-case input{accent-color:var(--vert-vif)}
.nu-champ{display:block;margin-bottom:14px;font-size:13px;font-weight:700;color:var(--vert-profond)}
.nu-champ span{display:block;margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em;font-size:11px}
.nu-champ input,.nu-champ textarea{
	width:100%;padding:13px 14px;border:1.5px solid var(--ligne);border-radius:var(--rayon-s);
	font:400 15px/1.3 var(--corps);color:var(--encre);background:var(--surface);
}
.nu-champ input:focus,.nu-champ textarea:focus{border-color:var(--vert-vif);background:#fff}
.nu-devis-note{font-size:12px;color:var(--encre-doux);margin-top:10px;text-align:center}
.nu-confirmation{
	background:var(--menthe-clair);color:var(--vert-profond);border-radius:var(--rayon-s);
	padding:16px 18px;font-weight:700;margin-bottom:18px;
}

/* ==========================================================================
   8. MOSAÏQUE DES NUISIBLES (pastilles menthe)
   ========================================================================== */
.nu-mosaique-tete{text-align:center;max-width:640px;margin:0 auto 48px}
.nu-mosaique{
	display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;
	max-width:820px;margin:0 auto;
}
.nu-pastille{
	display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;
	width:120px;text-align:center;
}
.nu-pastille-rond{
	width:100px;height:100px;border-radius:50%;background:var(--menthe);
	display:grid;place-items:center;color:var(--vert-profond);overflow:hidden;
	transition:transform .18s ease;
}
.nu-pastille:nth-child(3n) .nu-pastille-rond{width:130px;height:130px}
.nu-pastille:nth-child(5n) .nu-pastille-rond{width:76px;height:76px}
.nu-pastille-rond img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.nu-pastille:hover .nu-pastille-rond{transform:translateY(-6px)}
.nu-pastille span.nu-pastille-nom{font-size:13px;font-weight:700;color:var(--encre)}
.nu-mosaique-cta{text-align:center;margin-top:40px}

/* ==========================================================================
   9. CARTES DÉCALÉES + CARTE COMMENT ÇA MARCHE
   ========================================================================== */
.nu-decalees{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.nu-decalees > :nth-child(2){transform:translateY(28px)}
.nu-carte-etape{background:var(--surface);border-radius:var(--rayon-l);overflow:hidden;border:1px solid var(--ligne)}
.nu-carte-etape img{width:100%;height:220px;object-fit:cover}
.nu-carte-etape-corps{padding:22px}
.nu-carte-etape-num{
	display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;
	background:var(--vert-profond);color:#fff;font:800 13px/1 var(--titre);margin-bottom:12px;
}
@media (max-width:900px){
	.nu-decalees{grid-template-columns:1fr}
	.nu-decalees > :nth-child(2){transform:none}
}

/* ==========================================================================
   10. CARTE CORAIL SUPERPOSÉE
   ========================================================================== */
.nu-corail-bloc{position:relative;border-radius:var(--rayon-l);overflow:hidden;min-height:420px;display:flex;align-items:flex-end}
.nu-corail-bloc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.nu-corail-carte{
	position:relative;z-index:1;background:var(--corail);color:#fff;border-radius:var(--rayon-l);
	max-width:460px;padding:34px;margin:28px;box-shadow:var(--ombre);
}
.nu-corail-carte h2,.nu-corail-carte .nu-etiquette{color:#fff}
.nu-corail-carte p{color:rgba(255,255,255,.92)}

/* ==========================================================================
   11. BLOC CARTE VILLE (teaser vers /villes/)
   ========================================================================== */
.nu-bloc-carte{
	display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
	background:var(--bleu-ciel);border-radius:var(--rayon-l);padding:56px;
}
.nu-bloc-carte svg{width:100%;height:auto}
@media (max-width:900px){ .nu-bloc-carte{grid-template-columns:1fr;padding:32px 24px} }

/* ==========================================================================
   12. GRILLES ARTICLES (actualité, maison)
   ========================================================================== */
.nu-section-tete{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:32px;gap:20px}
.nu-section-tete p{margin:0}
.nu-voir-tout{font:700 12px/1 var(--corps);letter-spacing:.06em;text-transform:uppercase;color:var(--vert);text-decoration:none;white-space:nowrap}
.nu-grille-articles{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.nu-grille-articles.nu-grille--3{grid-template-columns:repeat(3,1fr)}
.nu-carte-article{text-decoration:none;color:inherit;display:block}
.nu-carte-article figure{margin:0 0 14px;border-radius:var(--rayon-m);overflow:hidden;aspect-ratio:4/3;background:var(--menthe-clair)}
.nu-carte-article img{width:100%;height:100%;object-fit:cover}
.nu-vignette-repli{display:grid;place-items:center;width:100%;height:100%;color:var(--vert)}
.nu-carte-article h3{font-size:17px;margin-bottom:6px}
.nu-carte-article .nu-date{font-size:12px;color:var(--encre-doux)}
@media (max-width:900px){
	.nu-grille-articles,.nu-grille-articles.nu-grille--3{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
	.nu-grille-articles,.nu-grille-articles.nu-grille--3{grid-template-columns:1fr}
	.nu-section-tete{flex-direction:column;align-items:flex-start}
}

/* ==========================================================================
   13. FAQ ACCORDÉON
   ========================================================================== */
.nu-faq{max-width:760px;margin:0 auto}
.nu-faq details,.nu-devis-pas ~ .nu-faq details{border-bottom:1px solid var(--ligne);padding:18px 0}
.nu-faq summary{
	list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;
	cursor:pointer;font-weight:700;font-size:15px;color:var(--encre);
}
.nu-faq summary::-webkit-details-marker{display:none}
.nu-faq summary::after{content:'+';font-size:20px;color:var(--vert);flex:none;transition:transform .15s}
.nu-faq details[open] summary::after{transform:rotate(45deg)}
.nu-faq details > div,.nu-faq details > p{margin-top:12px;color:var(--encre-doux)}

/* ==========================================================================
   14. PIED DE PAGE
   ========================================================================== */
.nu-pied-cta{background:var(--vert-profond);color:#fff;padding:56px 0}
.nu-pied-cta-in{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.nu-pied-cta h2{color:#fff;margin:0;font-size:clamp(24px,3vw,32px)}
.nu-pied{background:var(--vert);color:#fff;padding:52px 0 0}
.nu-pied-grille{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;padding-bottom:40px}
.nu-pied-marque .nu-logo{color:#fff}
.nu-pied-marque .nu-logo-mot{color:#fff}
.nu-pied-marque p{color:rgba(255,255,255,.85);margin-top:14px;max-width:280px}
.nu-pied h4{color:#fff;font-family:var(--corps);font-weight:800;font-size:13px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:16px}
.nu-pied ul li{margin-bottom:10px}
.nu-pied a{color:rgba(255,255,255,.88);text-decoration:none;font-size:14px}
.nu-pied a:hover{color:#fff;text-decoration:underline}
.nu-pied-bas{border-top:1px solid rgba(255,255,255,.22);padding:18px 0;text-align:center;font-size:12px;color:rgba(255,255,255,.75)}
@media (max-width:900px){
	.nu-pied-grille{grid-template-columns:1fr}
	.nu-pied-cta-in{flex-direction:column;align-items:flex-start}
}

/* ==========================================================================
   15. FICHE NUISIBLE
   ========================================================================== */
.nu-fiche-hero{background:var(--bleu-ciel);padding-block:36px 0}
.nu-fiche-fil{font-size:13px;color:var(--encre-doux);margin-bottom:18px}
.nu-fiche-fil a{color:var(--vert-profond);text-decoration:none}
.nu-fiche-hero-in{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center;padding-bottom:36px}
.nu-fiche-hero h1{color:var(--vert-profond)}
.nu-fiche-hero-img{border-radius:var(--rayon-l);overflow:hidden;aspect-ratio:4/3}
.nu-fiche-hero-img img{width:100%;height:100%;object-fit:cover}

.nu-onglets{background:var(--fond);border-bottom:1px solid var(--ligne);position:sticky;top:0;z-index:30}
.nu-onglets-in{max-width:var(--largeur);margin-inline:auto;padding-inline:24px;display:flex;gap:28px;overflow-x:auto}
.nu-onglet{
	white-space:nowrap;padding:16px 2px;font:700 13px/1 var(--corps);color:var(--encre-doux);
	text-decoration:none;border-bottom:3px solid transparent;
}
.nu-onglet.is-actif,.nu-onglet:hover{color:var(--vert-profond);border-color:var(--vert-vif)}

.nu-fiche-corps{display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:start;padding-block:56px}
.nu-fiche-texte h2{scroll-margin-top:80px}
.nu-fiche-cote{position:sticky;top:76px;display:flex;flex-direction:column;gap:28px}

.nu-faq-carte{background:var(--surface);border:1px solid var(--ligne);border-radius:var(--rayon-m);padding:22px}
.nu-faq-carte h2{font-size:20px;margin-bottom:6px}
.nu-faq-carte details{border-bottom:1px solid var(--ligne);padding:14px 0}
.nu-faq-carte details:last-child{border-bottom:0}
.nu-faq-carte summary{font-size:14px}

.nu-especes{background:var(--surface);border:1px solid var(--ligne);border-radius:var(--rayon-m);padding:22px}
.nu-especes h2{font-size:20px;margin-bottom:14px}
.nu-espece-ligne{display:flex;align-items:center;gap:12px;padding:10px 0;text-decoration:none;color:inherit;border-top:1px solid var(--ligne)}
.nu-espece-ligne:first-of-type{border-top:0}
.nu-espece-ligne figure{width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--menthe);flex:none;display:grid;place-items:center}
.nu-espece-ligne figure img{width:100%;height:100%;object-fit:cover}
.nu-espece-ligne span{font-weight:700;font-size:14px}
.nu-espece-ligne svg{margin-left:auto;width:16px;height:16px;color:var(--vert)}

.nu-auteur-menthe{
	display:flex;gap:16px;align-items:flex-start;background:var(--menthe-clair);border-radius:var(--rayon-m);
	padding:22px;margin-top:40px;
}
.nu-auteur-menthe img{border-radius:50%;flex:none}
.nu-auteur-label{font:700 11px/1 var(--corps);letter-spacing:.06em;text-transform:uppercase;color:var(--vert);margin:0 0 4px}
.nu-auteur-nom{font-weight:800;text-decoration:none;color:var(--vert-profond)}
.nu-auteur-bio{font-size:14px;color:var(--encre-doux);margin:6px 0 0}

@media (max-width:900px){
	.nu-fiche-hero-in{grid-template-columns:1fr}
	.nu-fiche-corps{grid-template-columns:1fr}
	.nu-fiche-cote{position:static}
}

/* ==========================================================================
   16. BIBLIOTHÈQUE /nuisibles/
   ========================================================================== */
.nu-biblio-tete{text-align:center;max-width:640px;margin:0 auto 40px}
.nu-biblio-recherche{max-width:480px;margin:0 auto 48px}
.nu-biblio-recherche form{position:relative}
.nu-biblio-recherche input{
	width:100%;padding:15px 20px 15px 46px;border-radius:var(--rayon-pill);border:1.5px solid var(--ligne);
	font-size:15px;background:var(--surface);
}
.nu-biblio-recherche svg{position:absolute;left:18px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--encre-doux)}
.nu-biblio-liste{columns:2;column-gap:40px}
.nu-biblio-ligne{
	display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;
	padding:12px 0;border-bottom:1px solid var(--ligne);break-inside:avoid;
}
.nu-biblio-ligne figure{width:44px;height:44px;border-radius:50%;background:var(--menthe);overflow:hidden;flex:none;display:grid;place-items:center;color:var(--vert-profond)}
.nu-biblio-ligne figure img{width:100%;height:100%;object-fit:cover}
.nu-biblio-ligne span{font-weight:700;font-size:14.5px;flex:1}
.nu-biblio-ligne svg{width:16px;height:16px;color:var(--vert)}
.nu-biblio-vide{text-align:center;color:var(--encre-doux);padding:40px 0}
@media (max-width:700px){ .nu-biblio-liste{columns:1} }

/* ==========================================================================
   17. PAGES VILLE / VILLES
   ========================================================================== */
.nu-ville-hero{background:var(--menthe-clair);padding-block:64px}
.nu-ville-hero-in{display:grid;grid-template-columns:1fr 440px;gap:48px;align-items:start}
.nu-ville-chiffres{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:28px}
.nu-ville-chiffre{background:#fff;border-radius:var(--rayon-m);padding:22px}
.nu-ville-chiffre b{display:block;font-family:var(--titre);font-size:30px;color:var(--vert-vif);font-weight:900}
.nu-ville-chiffre span{font-size:13px;color:var(--encre-doux)}
.nu-ville-form{background:#fff;border-radius:var(--rayon-l);padding:26px;box-shadow:var(--ombre)}
.nu-ville-zones{padding-block:var(--section-y)}
.nu-ville-zones ul{display:flex;flex-wrap:wrap;gap:10px}
.nu-ville-zones li{background:var(--surface);border:1px solid var(--ligne);border-radius:var(--rayon-pill);padding:8px 16px;font-size:13px;font-weight:600}
@media (max-width:900px){ .nu-ville-hero-in{grid-template-columns:1fr} }

.nu-carte-france{padding-block:var(--section-y);text-align:center}
.nu-carte-france svg{max-width:560px;margin:0 auto}
.nu-carte-france .nu-ville-point{fill:var(--vert-vif)}
.nu-carte-france a text{font:700 11px var(--corps);fill:var(--vert-profond)}
.nu-carte-france a:hover .nu-ville-point{fill:var(--corail)}
.nu-carte-villes-liste{
	display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:720px;margin:40px auto 0;
}
.nu-carte-villes-liste a{
	display:block;text-align:center;padding:12px 8px;border-radius:var(--rayon-s);background:var(--surface);
	border:1px solid var(--ligne);text-decoration:none;font-weight:700;font-size:13.5px;color:var(--vert-profond);
}
.nu-carte-villes-liste a:hover{background:var(--menthe)}
@media (max-width:700px){ .nu-carte-villes-liste{grid-template-columns:repeat(2,1fr)} }

/* ==========================================================================
   18. PAGES SIMPLES (contact, à propos, confidentialité) — aucune image
   ========================================================================== */
.nu-page-simple{max-width:760px;margin:0 auto;padding-block:var(--section-y)}
.nu-page-simple h1{margin-bottom:22px}
.nu-page-simple .nu-contact-grille{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:32px}
.nu-contact-infos ul{margin-top:16px}
.nu-contact-infos li{padding:10px 0;border-top:1px solid var(--ligne);font-size:15px}
.nu-contact-infos li:first-child{border-top:0}
@media (max-width:700px){ .nu-page-simple .nu-contact-grille{grid-template-columns:1fr} }

/* ==========================================================================
   19. ARTICLE (maison / actualité)
   ========================================================================== */
.nu-article{max-width:760px;margin:0 auto;padding-block:56px}
.nu-article-entete{margin-bottom:24px}
.nu-auteur-entete{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--encre-doux);margin-top:16px}
.nu-auteur-entete img{border-radius:50%}
.nu-auteur-entete a{color:var(--vert-profond);font-weight:700;text-decoration:none}
.nu-auteur-entete a:hover{text-decoration:underline}
.nu-article-une{border-radius:var(--rayon-l);overflow:hidden;max-height:460px;margin:24px 0 8px}
.nu-article-une img{width:100%;height:100%;max-height:460px;object-fit:cover}
.nu-sommaire{background:var(--surface);border:1px solid var(--ligne);border-radius:var(--rayon-m);padding:22px 24px;margin:28px 0}
.nu-sommaire p{font:800 12px/1 var(--corps);letter-spacing:.06em;text-transform:uppercase;color:var(--vert);margin-bottom:10px}
.nu-sommaire ol{counter-reset:som}
.nu-sommaire li{counter-increment:som;margin-bottom:8px;font-size:14.5px}
.nu-sommaire li a{color:var(--encre);text-decoration:none}
.nu-sommaire li a:hover{color:var(--vert)}
.nu-corps{font-size:17px;line-height:1.75}
.nu-corps h2{margin-top:1.6em;scroll-margin-top:20px}
.nu-corps h3{margin-top:1.2em}
.nu-corps ul,.nu-corps ol{margin:0 0 1.2em;padding-left:1.3em;list-style:disc}
.nu-corps ol{list-style:decimal}
.nu-corps a{color:var(--vert);text-decoration:underline}
.nu-sources{margin-top:40px;padding-top:24px;border-top:1px solid var(--ligne)}
.nu-sources h2{font-size:18px}
.nu-sources li{padding:4px 0;font-size:13.5px}
.nu-sources a{color:var(--vert);text-decoration:underline}
.sbs_tableau{overflow-x:auto;margin:1.4em 0;border-radius:var(--rayon-s)}
.sbs_tableau table{width:100%;border-collapse:collapse;font-size:14px}
.sbs_tableau th,.sbs_tableau td{padding:10px 12px;border:1px solid var(--ligne);text-align:left}

/* ==========================================================================
   20. ARCHIVES GÉNÉRIQUES (catégorie, auteur, recherche, 404)
   ========================================================================== */
.nu-archive-tete{padding-block:56px 32px;text-align:center}
.nu-archive-tete p{color:var(--encre-doux)}
.nu-404{max-width:560px;margin:0 auto;padding-block:120px;text-align:center}
.nu-404 svg{width:64px;height:64px;margin:0 auto 20px;color:var(--vert)}

/* ==========================================================================
   21. RESPONSIVE FIN — 390px impeccable
   ========================================================================== */
@media (max-width:600px){
	.nu-conteneur{padding-inline:18px}
	.nu-decalees{gap:18px}
	.nu-devis-grille{grid-template-columns:1fr}
	.nu-corail-carte{margin:16px;padding:24px}
	.nu-corail-bloc{min-height:320px}
	.nu-fiche-hero-in{padding-bottom:24px}
	.nu-onglets-in{gap:18px}
	.nu-biblio-liste{columns:1}
}

/* Photos de la banque locale du thème */
.nu-photo{display:block;width:100%;object-fit:cover}
.nu-carte-etape > .nu-photo{height:220px}
.nu-corail-bloc > .nu-photo{position:absolute;inset:0;height:100%}
.nu-actions .btn{white-space:nowrap}
.nu-pied-marque .nu-logo{justify-content:flex-start}
@media (max-width:600px){
	.nu-actions{gap:10px}
	.nu-actions .btn{padding:12px 16px;font-size:11px}
	.nu-devis-grille{grid-template-columns:repeat(2,1fr);gap:8px}
	.nu-devis-case{padding:12px 10px;font-size:14px}
	.nu-bandeau{font-size:12px}
}

.nu-carte-france svg text{font:600 8.5px var(--corps)}
.nu-carte-france a text{font:700 8.5px var(--corps)}
.nu-ville-chiffres{grid-template-columns:repeat(2,minmax(0,1fr))}
.nu-ville-chiffre{min-width:0}
.nu-ville-chiffre b{overflow-wrap:anywhere;font-size:clamp(22px,6vw,34px)}
@media (max-width:480px){ .nu-ville-chiffres{grid-template-columns:1fr} .nu-ville-chiffre b{overflow-wrap:normal} }

/* ==========================================================================
   22. PAGES PROFONDES (RE-0192) — contact tenant sur un écran (RE-0143),
       à propos, pages légales
   ========================================================================== */
/* Contact */
.nu-contact{background:linear-gradient(180deg,var(--menthe-clair) 0,var(--fond) 100%);padding-block:40px}
.nu-contact-in{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center}
.nu-contact h1{font-size:clamp(34px,4.4vw,54px);margin-bottom:12px;color:var(--vert-profond)}
.nu-contact h1 em,.nu-apropos-hero h1 em{font-style:normal;color:var(--vert-vif);text-decoration:underline;text-decoration-color:var(--corail);text-decoration-thickness:4px;text-underline-offset:6px}
.nu-contact-intro{font-size:17px;color:var(--encre-doux);margin:0 0 22px}
.nu-contact-urgence{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--rayon-m);background:var(--vert-profond);color:#fff;text-decoration:none;box-shadow:var(--ombre-s);transition:transform .2s}
.nu-contact-urgence:hover{transform:translateY(-2px)}
.nu-contact-urgence b{display:block;font:800 16px/1.2 var(--corps)}
.nu-contact-urgence small{display:block;font-size:13.5px;opacity:.85;margin-top:3px}
.nu-contact-ico{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--vert-vif)}
.nu-contact-fleche{margin-left:auto;font-size:22px;color:var(--corail)}
.nu-contact-mail{display:flex;align-items:center;gap:8px;margin:16px 0 0;font-size:14.5px;color:var(--encre-doux)}
.nu-contact-mail a{color:var(--vert-profond);font-weight:700}
.nu-contact-form{background:var(--fond);border:1px solid var(--ligne);border-radius:var(--rayon-l);padding:26px 28px;box-shadow:var(--ombre)}
.nu-contact-form .nu-champ{margin-bottom:12px}
.nu-contact-form textarea{width:100%;padding:12px 14px;border:1.5px solid var(--ligne);border-radius:var(--rayon-s);font:400 15px/1.5 var(--corps);background:var(--surface);resize:vertical;min-height:88px}
.nu-contact-form textarea:focus{border-color:var(--vert-vif);background:#fff;outline:0}
.nu-contact-form .btn{width:100%}
.nu-contact-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nu-contact-motifs{border:0;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:8px}
.nu-contact-motifs legend{font:700 11px/1 var(--corps);letter-spacing:.05em;text-transform:uppercase;color:var(--vert-profond);margin-bottom:10px;padding:0}
.nu-contact-motifs label{cursor:pointer}
.nu-contact-motifs input{position:absolute;opacity:0;pointer-events:none}
.nu-contact-motifs span{display:inline-block;padding:8px 14px;border-radius:var(--rayon-pill);border:1.5px solid var(--ligne);font:600 13px/1 var(--corps);color:var(--encre);background:var(--surface);transition:all .15s}
.nu-contact-motifs input:checked + span{background:var(--vert-profond);border-color:var(--vert-profond);color:#fff}
.nu-contact-motifs input:focus-visible + span{outline:3px solid var(--vert-vif);outline-offset:2px}
.nu-confirmation{background:var(--menthe);color:var(--vert-profond);border-radius:var(--rayon-s);padding:10px 14px;font-weight:700;margin:0 0 12px}
@media (max-width:860px){
	.nu-contact{padding-block:18px 24px}
	.nu-contact-in{grid-template-columns:1fr;gap:14px}
	.nu-contact .nu-etiquette{display:none}
	.nu-contact h1{font-size:30px;margin-bottom:4px}
	.nu-contact-intro{font-size:14.5px;margin-bottom:0}
	.nu-contact-urgence,.nu-contact-mail{display:none}
	.nu-contact-form{padding:16px;border-radius:var(--rayon-m)}
	.nu-contact-motifs{gap:6px;margin-bottom:10px}
	.nu-contact-motifs span{padding:7px 11px;font-size:12.5px}
	.nu-contact-form .nu-champ{margin-bottom:9px}
	.nu-contact-form .nu-champ input{padding-block:10px}
	.nu-contact-form textarea{min-height:72px}
	.nu-contact-duo{gap:8px}
}
.nu-contact-mobile-aide{display:none}
@media (max-width:860px){
	.nu-contact-mobile-aide{display:flex;justify-content:space-between;gap:10px;margin-top:10px;font-size:13px}
	.nu-contact-mobile-aide a{color:var(--vert-profond);font-weight:700}
}

/* À propos */
.nu-apropos-hero{background:var(--menthe-clair);padding-block:64px}
.nu-apropos-hero-in{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.nu-apropos-hero h1{font-size:clamp(34px,4.6vw,58px);color:var(--vert-profond)}
.nu-apropos-hero .nu-chapo p{margin:0 0 .6em}
.nu-apropos-boutons{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.nu-apropos-visuel{position:relative}
.nu-apropos-visuel .nu-photo{height:440px;border-radius:var(--rayon-l) var(--rayon-s) var(--rayon-l) var(--rayon-s);box-shadow:var(--ombre)}
.nu-apropos-chiffres{position:absolute;left:-28px;bottom:-28px;display:flex;background:var(--fond);border-radius:var(--rayon-m);box-shadow:var(--ombre);overflow:hidden}
.nu-apropos-chiffres div{padding:16px 20px;text-align:center;border-left:1px solid var(--ligne)}
.nu-apropos-chiffres div:first-child{border-left:0}
.nu-apropos-chiffres b{display:block;font:900 28px/1 var(--titre);color:var(--vert-vif)}
.nu-apropos-chiffres span{display:block;margin-top:6px;font:600 12px/1.2 var(--corps);color:var(--encre-doux)}
.nu-apropos-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.nu-apropos-trio article{background:var(--surface);border:1px solid var(--ligne);border-radius:var(--rayon-l);padding:32px 28px;transition:transform .2s,box-shadow .2s}
.nu-apropos-trio article:hover{transform:translateY(-4px);box-shadow:var(--ombre)}
.nu-apropos-trio article:nth-child(3){background:var(--vert-profond);border-color:var(--vert-profond)}
.nu-apropos-trio article:nth-child(3) h3{color:#fff}
.nu-apropos-trio article:nth-child(3) p{color:rgba(255,255,255,.88)}
.nu-apropos-ico{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:var(--menthe);color:var(--vert-profond);margin-bottom:20px}
.nu-apropos-ico svg{width:28px;height:28px}
.nu-apropos-trio article:nth-child(3) .nu-apropos-ico{background:var(--corail);color:#fff}
.nu-apropos-trio h3{font-size:24px}
.nu-apropos-trio p{margin:0;color:var(--encre-doux);line-height:1.6}
.nu-apropos-methode{background:var(--surface);border-block:1px solid var(--ligne)}
.nu-apropos-etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:etape;list-style:none;padding:0;margin:0;position:relative}
.nu-apropos-etapes::before{content:"";position:absolute;top:26px;left:26px;right:26px;height:2px;background:repeating-linear-gradient(90deg,var(--vert-vif) 0 8px,transparent 8px 16px)}
.nu-apropos-etapes li{counter-increment:etape;position:relative}
.nu-apropos-etapes li::before{content:counter(etape);display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--vert-vif);color:#fff;font:900 22px/1 var(--titre);margin-bottom:18px;position:relative;box-shadow:0 0 0 6px var(--surface)}
.nu-apropos-etapes b{display:block;font:900 20px/1.2 var(--titre);color:var(--vert-profond);margin-bottom:8px}
.nu-apropos-etapes span{display:block;color:var(--encre-doux);font-size:15px;line-height:1.6}
.nu-apropos-auteurs{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.nu-apropos-auteur{display:flex;gap:22px;align-items:flex-start;padding:28px;border-radius:var(--rayon-l);border:1px solid var(--ligne);text-decoration:none;color:var(--encre);background:var(--fond);transition:border-color .2s,box-shadow .2s}
.nu-apropos-auteur:hover{border-color:var(--vert-vif);box-shadow:var(--ombre-s)}
.nu-apropos-auteur img{flex:none;width:88px;height:88px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 4px var(--menthe)}
.nu-apropos-auteur h3{font-size:22px;margin-bottom:4px}
.nu-apropos-specialite{display:inline-block;margin:0 0 10px;padding:5px 10px;border-radius:var(--rayon-pill);background:var(--menthe-clair);color:var(--vert);font:700 12px/1.3 var(--corps)}
.nu-apropos-auteur p:last-child{margin:0;color:var(--encre-doux);font-size:15px;line-height:1.6}
.nu-apropos-limites-in{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center;background:#FFF1EC;border-radius:var(--rayon-l);padding:48px}
.nu-apropos-limites-in p{color:var(--encre-doux);margin:0}
.nu-apropos-non{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.nu-apropos-non li{display:grid;grid-template-columns:40px 1fr;column-gap:14px;align-items:center;background:var(--fond);border-radius:var(--rayon-m);padding:14px 18px}
.nu-apropos-non li::before{content:"✕";grid-row:span 2;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--corail);color:#fff;font-weight:900}
.nu-apropos-non b{font:800 16px/1.2 var(--corps);color:var(--vert-profond)}
.nu-apropos-non span{font-size:14px;color:var(--encre-doux)}
@media (max-width:900px){
	.nu-apropos-hero{padding-block:36px 56px}
	.nu-apropos-hero-in,.nu-apropos-limites-in,.nu-apropos-auteurs{grid-template-columns:1fr;gap:28px}
	.nu-apropos-visuel .nu-photo{height:260px}
	.nu-apropos-chiffres{left:12px;right:12px;bottom:-24px}
	.nu-apropos-chiffres div{flex:1;padding:12px 8px}
	.nu-apropos-chiffres b{font-size:22px}
	.nu-apropos-trio{grid-template-columns:1fr}
	.nu-apropos-etapes{grid-template-columns:1fr 1fr;row-gap:28px}
	.nu-apropos-etapes::before{display:none}
	.nu-apropos-limites-in{padding:28px 20px}
	.nu-apropos-auteur{padding:20px;gap:16px}
	.nu-apropos-auteur img{width:64px;height:64px}
}
@media (max-width:480px){ .nu-apropos-etapes{grid-template-columns:1fr} }

/* Pages légales */
.nu-legal-tete{background:var(--menthe-clair);padding-block:56px 44px;border-bottom:1px solid var(--ligne)}
.nu-legal-tete h1{font-size:clamp(32px,4.2vw,52px);color:var(--vert-profond)}
.nu-legal-tete .nu-chapo{max-width:720px}
.nu-legal-tete .nu-chapo p{margin:0}
.nu-legal-maj{display:inline-flex;align-items:center;gap:8px;margin:18px 0 0;padding:7px 14px;border-radius:var(--rayon-pill);background:var(--fond);font:600 13px/1 var(--corps);color:var(--vert)}
.nu-legal-maj::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--vert-vif)}
.nu-legal{display:grid;grid-template-columns:260px 1fr;gap:48px;padding-block:48px var(--section-y);align-items:start}
.nu-legal-sommaire{position:sticky;top:96px;background:var(--surface);border:1px solid var(--ligne);border-radius:var(--rayon-m);padding:22px}
.nu-legal-sommaire p{font:800 12px/1 var(--corps);letter-spacing:.06em;text-transform:uppercase;color:var(--vert);margin:0 0 14px}
.nu-legal-sommaire ol{list-style:none;padding:0;margin:0;counter-reset:som}
.nu-legal-sommaire li{counter-increment:som}
.nu-legal-sommaire a{display:flex;gap:10px;padding:8px 0;font-size:14px;color:var(--encre);text-decoration:none;border-top:1px solid var(--ligne)}
.nu-legal-sommaire li:first-child a{border-top:0}
.nu-legal-sommaire a::before{content:counter(som,decimal-leading-zero);font-weight:800;color:var(--vert-vif)}
.nu-legal-sommaire a:hover{color:var(--vert)}
.nu-legal-corps{display:grid;gap:20px;min-width:0}
.nu-legal-carte{position:relative;background:var(--fond);border:1px solid var(--ligne);border-radius:var(--rayon-l);padding:30px 32px 26px 96px;scroll-margin-top:100px}
.nu-legal-num{position:absolute;left:28px;top:28px;display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--menthe);color:var(--vert-profond);font:900 18px/1 var(--titre)}
.nu-legal-carte h2{font-size:24px;margin:8px 0 12px}
.nu-legal-carte .nu-corps{font-size:16px;line-height:1.7}
.nu-legal-carte .nu-corps p:last-child{margin-bottom:0}
.legal-carte dl{display:grid;grid-template-columns:minmax(140px,220px) 1fr;margin:0;border:1px solid var(--ligne);border-radius:var(--rayon-m);overflow:hidden}
.legal-carte dt,.legal-carte dd{margin:0;padding:12px 16px;border-top:1px solid var(--ligne);font-size:15px}
.legal-carte dt{background:var(--surface);font-weight:700;color:var(--vert-profond)}
.legal-carte dt:first-of-type,.legal-carte dt:first-of-type + dd{border-top:0}
.legal-carte dd{overflow-wrap:anywhere}
.nu-legal-points{list-style:none!important;padding:0!important;display:grid;gap:10px}
.nu-legal-points li{display:flex;gap:12px;align-items:flex-start;background:var(--menthe-clair);border-radius:var(--rayon-s);padding:12px 14px}
.nu-legal-points li::before{content:"";flex:none;width:10px;height:10px;margin-top:8px;border-radius:50%;background:var(--vert-vif)}
@media (max-width:900px){
	.nu-legal{grid-template-columns:1fr;gap:20px;padding-top:24px}
	.nu-legal-sommaire{position:static}
	.nu-legal-carte{padding:74px 20px 20px}
	.nu-legal-num{left:20px;top:20px;width:40px;height:40px}
	.legal-carte dl{grid-template-columns:1fr}
	.legal-carte dd{border-top:0;padding-top:0}
}
@media (max-width:860px){
	.nu-contact-mobile-aide{flex-direction:column;align-items:center;gap:4px;margin:10px 0 0;font-size:12.5px;text-align:center}
	.nu-contact-form textarea{min-height:60px;height:60px}
	.nu-contact-form .btn{padding-block:13px}
	.nu-contact-form .nu-champ span{margin-bottom:4px}
}
.nu-apropos-limites{padding-top:0}
.nu-legal-points li{display:block;position:relative;padding:12px 14px 12px 34px}
.nu-legal-points li::before{position:absolute;left:14px;top:12px;margin-top:7px}

/* Héros accueil — rééquilibrage 18/09 (retour Mathias R-0643) : photos et texte partent de la même
   ligne et finissent à la même ligne, deux photos de même largeur, tout le héros tient dans un écran. */
@media (min-width:901px){
	.nu-hero{padding-block:40px 72px}
	.nu-hero-in{grid-template-columns:1fr 1fr;gap:48px;align-items:stretch}
	.nu-hero-photos{grid-template-columns:1fr 1fr;min-height:460px}
	.nu-hero-photos > div{height:100%}
	.nu-hero-photos img{height:100%}
	.nu-hero-texte{display:flex;flex-direction:column;justify-content:center}
	.nu-hero-texte h1{font-size:clamp(36px,3.5vw,46px);margin-bottom:16px}
	.nu-hero-texte .nu-chapo{font-size:17px;margin:0}
	.nu-hero-form{margin-top:22px;padding:22px 24px}
	.nu-hero-form .nu-devis-etapes{margin-bottom:10px}
	.nu-hero-form legend{padding-bottom:12px}
	.nu-hero-form .nu-devis-grille{gap:8px;margin-bottom:16px}
	.nu-hero-form .nu-devis-case{padding-block:11px}
}
@media (max-width:900px){
	.nu-hero{padding-top:28px}
	.nu-hero-photos{grid-template-columns:1fr 1fr}
	.nu-hero-photos img{height:180px}
}
.nu-insecable{white-space:nowrap}
.nu-champ textarea{resize:vertical;min-height:84px;font:400 15px/1.5 var(--corps);text-transform:none;letter-spacing:0}
