@font-face{font-family:'Archivo';src:url(../fonts/Archivo-latin.woff2) format('woff2');font-weight:400 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url(../fonts/SourceSerif4-latin.woff2) format('woff2');font-weight:400 600;font-display:swap}
/* ========== Tokens (réutilisables pour une autre verticale) ========== */
:root{
  --paper:#F4F6F1;      /* fond, blanc teinté vert */
  --sheet:#FFFFFF;      /* fiche papier */
  --ink:#14171A;        /* encre */
  --ink-2:#3A4038;      /* texte secondaire */
  --ink-3:#5F665C;      /* métadonnées */
  --rule:#D5DBD0;       /* filets */
  --brand:#0E5A3A;      /* vert bouteille : bandeaux */
  --brand-deep:#0A4029;
  --brand-tint:#DCE8DF;
  --red:#C8281E;        /* punaises */
  --orange:#EE8A1A;     /* guêpes & frelons, surligneur */
  --orange-tint:#FCE3C4;
  --c-rats:#0E5A3A; --c-punaises:#C8281E; --c-frelons:#EE8A1A; --c-cafards:#14171A;

  --f-head:'Archivo', 'Arial Narrow', sans-serif;
  --f-read:'Source Serif 4', Georgia, serif;

  --m:8px;              /* module de grille */
  --gutter:clamp(16px, 4vw, 64px);
  --maxw:1312px;
  --ease-out:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scrollbar-color:var(--brand) var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.6 var(--f-read);caret-color:var(--red);text-rendering:optimizeLegibility}
::selection{background:var(--orange);color:var(--ink)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration-thickness:2px;text-underline-offset:.18em}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--f-head);margin:0;text-wrap:balance}
p{margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.icon{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ========== Boutons ========== */
.btn{display:inline-flex;align-items:center;gap:10px;font:800 16px/1 var(--f-head);text-decoration:none;padding:15px 20px;border:2px solid var(--ink);cursor:pointer;transition:transform .25s var(--ease-out), background-color .2s, color .2s}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:none}
.btn--ink{background:var(--ink);color:#fff}
.btn--ink:hover{background:var(--brand-deep);border-color:var(--brand-deep)}
.btn--orange{background:var(--orange);color:var(--ink)}
.btn--orange:hover{background:#F59B33}
.btn--ghost{background:transparent;color:inherit;border-color:currentColor}

/* ========== En-tête ========== */
.top{background:var(--sheet);border-bottom:2px solid var(--ink);position:sticky;top:0;z-index:20}
.top .wrap{display:flex;align-items:center;gap:32px;height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font:900 21px/1 var(--f-head);font-stretch:82%;letter-spacing:-.01em;white-space:nowrap}
.logo-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--brand);color:#fff;font:900 18px/1 var(--f-head);font-stretch:70%;letter-spacing:.02em}
.nav{display:flex;gap:4px;margin:0;padding:0;list-style:none}
.nav a{display:flex;align-items:center;gap:8px;padding:10px 11px;font:700 16px/1 var(--f-head);text-decoration:none;color:var(--ink-2);white-space:nowrap}
.top-actions a{white-space:nowrap}
.nav a:hover{color:var(--ink);background:var(--paper)}
.nav i{width:10px;height:10px;display:inline-block}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:18px}
.pro-link{font:700 16px/1 var(--f-head);text-decoration:none;color:var(--ink-2)}
.pro-link:hover{color:var(--ink);text-decoration:underline}
.top .btn{padding:12px 16px;font-size:16px}
.nav-extra{display:none}
.top.open .nav-extra{display:block}
.menu-btn{display:none;background:none;border:2px solid var(--ink);padding:9px;cursor:pointer;color:var(--ink)}

/* ========== Héros (bandeau de fiche) ========== */
.hero{background:var(--brand);color:#fff;position:relative}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,88px);padding-top:clamp(28px,3.4vw,52px)}
.hero-copy{padding-bottom:48px}
.hero h1{font-weight:900;font-stretch:66%;font-size:clamp(50px,6.1vw,88px);line-height:.9;letter-spacing:-.02em}
.hero h1 span{display:block;margin-top:14px;font-size:.42em;line-height:1.05;font-stretch:78%;letter-spacing:-.005em;color:var(--orange-tint)}
.hero .lede{font-size:clamp(18px,1.6vw,21px);line-height:1.55;max-width:36em;margin-top:18px;color:#E4EEE7}
.hero .lede strong{color:#fff;font-weight:600}

.finder{margin-top:26px;background:var(--sheet);color:var(--ink);border:2px solid var(--ink);display:grid;grid-template-columns:1.4fr 1fr auto;max-width:720px}
.finder label{display:block;padding:12px 16px 14px;border-right:2px solid var(--ink);cursor:text}
.finder .lbl{display:block;font:800 12px/1 var(--f-head);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}
.finder input,.finder select{width:100%;border:0;background:transparent;font:600 18px/1.2 var(--f-head);color:var(--ink);padding:0;appearance:none;-webkit-appearance:none}
.finder input::placeholder{color:#656C62}
.finder input:focus,.finder select:focus{outline:none}
.finder label:focus-within{box-shadow:inset 0 -4px 0 var(--orange)}
.finder .sel{position:relative}
.finder .sel .icon{position:absolute;right:14px;bottom:15px;width:16px;height:16px;pointer-events:none}
.finder button{border:0;margin:0;font-size:18px;padding:0 24px;border-left:0}
.finder-note{margin:16px 0 0;font:600 16px/1.4 var(--f-head);color:#CFE0D4;display:flex;align-items:center;gap:8px}

/* fiche du jour, qui sort du bandeau */
.sheet{background:var(--sheet);color:var(--ink);border:2px solid var(--ink);box-shadow:0 24px 48px -16px rgba(5,30,18,.55);transform:rotate(-1.6deg);align-self:end;position:relative;margin-bottom:-40px;animation:pull 1.1s var(--ease-out) .15s both}
@keyframes pull{from{transform:translateY(56px) rotate(0deg)}to{transform:rotate(-1.6deg)}}
.sheet-head{display:flex;justify-content:flex-start;align-items:center;background:var(--red);color:#fff;padding:12px 18px;font:800 13px/1 var(--f-head);letter-spacing:.1em;text-transform:uppercase}
.sheet-head b{font:900 30px/1 var(--f-head);font-stretch:62%;letter-spacing:0}
.sheet-body{padding:22px 22px 24px}
.sheet h2{font-size:clamp(26px,2.3vw,32px);font-weight:900;font-stretch:75%;line-height:1.02}
.verdict{border:2px solid var(--ink);padding:16px 18px;margin-top:18px}
.verdict h3{font:900 13px/1 var(--f-head);letter-spacing:.1em;text-transform:uppercase}
.verdict p{font-size:18px;line-height:1.5;margin-top:8px}
mark{background:linear-gradient(transparent 12%, var(--orange-tint) 12%, var(--orange-tint) 92%, transparent 92%);color:inherit;padding:0 2px}
.sheet-foot{display:flex;justify-content:space-between;align-items:center;margin-top:18px;font:700 14px/1 var(--f-head);color:var(--ink-3)}
.sheet-foot a{display:inline-flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;font-weight:800;font-size:16px}
.sheet-foot a:hover{text-decoration:underline}
.sheet-foot .icon{width:18px;height:18px}
.nw{white-space:nowrap}
.sheet-src{margin-top:10px;font:600 13px/1.4 var(--f-head);color:var(--ink-3)}

/* ========== Classeur des nuisibles ========== */
.section{padding:clamp(64px,8vw,112px) 0 0}
.section--binder{padding-top:60px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}
.section-head h2{font-size:clamp(36px,4.6vw,60px);font-weight:900;font-stretch:70%;line-height:.95;letter-spacing:-.01em}
.section-head p{max-width:30em;color:var(--ink-2);font-size:18px}
.binder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;margin:0;padding:36px 0 0}
.tab{position:relative;background:var(--sheet);border:2px solid var(--ink);display:flex;flex-direction:column;transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out)}
.tab .tab-label{position:absolute;left:var(--off,-2px);top:-36px;height:36px;padding:0 14px;display:flex;align-items:center;background:var(--c);color:var(--on, #fff);border:2px solid var(--ink);border-bottom:0;font-size:20px;font-weight:900;font-stretch:76%;line-height:1;white-space:nowrap}
.tab .tab-label a{text-decoration:none;color:inherit}
.binder > li:nth-child(2){--off:22px}.binder > li:nth-child(3){--off:46px}.binder > li:nth-child(4){--off:70px}
.signs{font-size:16px;line-height:1.45;color:var(--ink-2);max-width:15em}
.tab:hover,.tab:focus-within{transform:translateY(-8px);box-shadow:0 18px 30px -18px rgba(20,23,26,.45)}
.tab-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 10px;border-bottom:2px solid var(--ink);background:linear-gradient(var(--tint) 0 0)}
.tab h3{font-size:30px;font-weight:900;font-stretch:72%;line-height:.95}
.tab h3 a{text-decoration:none}
.tab h3 a::after{content:"";position:absolute;inset:0;z-index:0}
.tab img{width:104px;height:104px;mix-blend-mode:multiply;flex:none;margin:-6px -6px 0 0}
.tab ul{list-style:none;margin:0;padding:6px 18px 8px;flex:1}
.tab li{border-bottom:1px solid var(--rule)}
.tab li:last-child{border-bottom:0}
.tab li a{position:relative;z-index:1;display:flex;gap:10px;justify-content:space-between;padding:12px 0;font:600 16px/1.3 var(--f-head);text-decoration:none}
.tab li a:hover{text-decoration:underline;text-decoration-color:var(--c)}
.tab li .icon{width:16px;height:16px;margin-top:2px;color:var(--ink-3)}
.tab-foot{position:relative;z-index:1;display:flex;align-items:center;gap:8px;padding:14px 18px;line-height:1.25;border-top:2px solid var(--ink);font:800 14px/1 var(--f-head);text-decoration:none;background:var(--sheet)}
.tab-foot:hover{background:var(--tint)}
.tab-foot .icon{width:16px;height:16px;margin-left:auto}
.t-rats{--c:var(--c-rats);--tint:#E3EDE5}
.t-punaises{--c:var(--c-punaises);--tint:#F7E1DE}
.t-frelons{--c:var(--c-frelons);--on:var(--ink);--tint:#FCEBD5}
.t-cafards{--c:var(--c-cafards);--tint:#E7E9E4}

/* ========== Méthode ========== */
.method{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.method h2{font-size:clamp(36px,4.6vw,60px);font-weight:900;font-stretch:70%;line-height:.95}
.method .intro{margin-top:20px;color:var(--ink-2);max-width:28em}
.stamp{display:inline-block;margin-top:28px;border:3px solid var(--red);color:var(--red);font:900 18px/1 var(--f-head);letter-spacing:.14em;text-transform:uppercase;padding:10px 14px;transform:rotate(-4deg);box-shadow:inset 0 0 0 2px var(--paper), inset 0 0 0 4px var(--red)}
.steps{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink);counter-reset:s}
.steps li{display:grid;grid-template-columns:72px 1fr;gap:20px;padding:24px 0;border-bottom:2px solid var(--ink);counter-increment:s}
.steps li::before{content:counter(s);font:900 64px/.8 var(--f-head);font-stretch:62%;color:var(--brand)}
.steps h3{font-size:24px;line-height:1.15;font-weight:800;font-stretch:85%}
.tab h3,.sheet h2,.verdict h3,.claim-body strong{line-height:1}
.sheet-head span:last-child{white-space:nowrap}
.steps p{margin-top:6px;color:var(--ink-2);max-width:36em}
.steps .stamp{margin-top:16px;font-size:14px;padding:8px 12px}

/* ========== Fiches à lire (banc d'essai) ========== */
.table{width:100%;border-collapse:collapse;background:var(--sheet);border:2px solid var(--ink);font-variant-numeric:tabular-nums}
.table th{font:800 12px/1 var(--f-head);letter-spacing:.1em;text-transform:uppercase;text-align:left;background:var(--ink);color:#fff;padding:12px 16px}
.table td{padding:16px;border-top:1px solid var(--rule);vertical-align:middle}
.table tr:hover td{background:#F8FAF6}
.table .num{font:900 28px/1 var(--f-head);font-stretch:62%;color:var(--ink-3);width:64px}
.table .title a{font:700 18px/1.3 var(--f-head);text-decoration:none}
.table .title a:hover{text-decoration:underline}
.chip{display:inline-flex;align-items:center;gap:8px;font:700 14px/1 var(--f-head);white-space:nowrap}
.chip i{width:12px;height:12px;background:var(--c);display:inline-block}
.table .time{font:600 16px/1 var(--f-head);color:var(--ink-3);white-space:nowrap;text-align:right}

/* ========== Annuaire ========== */
.dir{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.dir h2{font-size:clamp(36px,4.6vw,60px);font-weight:900;font-stretch:70%;line-height:.95}
.dir .intro{margin-top:20px;color:var(--ink-2);max-width:30em}
.featured{margin-top:28px;background:var(--sheet);border:2px solid var(--ink);display:grid;grid-template-columns:auto 1fr}
.featured .dn{background:var(--brand);color:#fff;font:900 88px/1 var(--f-head);font-stretch:62%;padding:18px 20px;display:flex;align-items:center}
.featured .dt{padding:18px 20px}
.featured strong{display:block;font:800 22px/1.1 var(--f-head);font-stretch:85%}
.featured span{display:block;font:700 16px/1.4 var(--f-head);color:var(--ink-2);margin-top:6px}
.featured small{display:block;font:600 13px/1.4 var(--f-head);color:var(--ink-3);margin-top:8px}
.region{font:800 13px/1 var(--f-head);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:0 0 12px}
.deps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;list-style:none;margin:0;padding:0}
.deps li{display:flex}
.deps a{flex:1;display:flex;flex-direction:column;gap:6px;padding:12px 12px 14px;background:var(--sheet);border:2px solid var(--ink);text-decoration:none;min-height:96px;transition:background-color .2s, color .2s}
.deps b{font:900 34px/1 var(--f-head);font-stretch:62%}
.deps span{font:600 13px/1.2 var(--f-head);color:var(--ink-2)}
.deps a:hover{background:var(--brand);color:#fff}
.deps a:hover span{color:#D6E6DB}
.deps .on a{background:var(--brand-tint)}
.all-deps{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font:800 16px/1 var(--f-head);text-decoration:none}
.all-deps:hover{text-decoration:underline}

/* ========== Bande pro ========== */
.pro{margin-top:clamp(64px,8vw,112px);background:var(--ink);color:#fff}
.pro .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);padding-top:clamp(56px,7vw,96px);padding-bottom:clamp(56px,7vw,96px);align-items:center}
.pro h2{font-size:clamp(36px,4.6vw,60px);font-weight:900;font-stretch:70%;line-height:.95}
.pro p{margin-top:20px;color:#C9CEC6;max-width:34em}
.pro .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.pro .btn--orange{border-color:var(--orange)}
.pro .btn--ghost{color:#fff}
.pro .btn--ghost:hover{background:#fff;color:var(--ink)}
.claim{background:var(--sheet);color:var(--ink);border:2px solid #fff;position:relative;transform:rotate(1.4deg)}
.claim::after{content:"";position:absolute;right:-2px;top:-2px;width:34px;height:34px;background:var(--ink);clip-path:polygon(0 0,100% 0,100% 100%)}
.mark-unclaimed{position:absolute;right:46px;top:18px;border:2px dashed var(--ink-3);color:var(--ink-3);font:900 12px/1 var(--f-head);letter-spacing:.12em;text-transform:uppercase;padding:6px 8px;transform:rotate(5deg)}
.claim-body{padding:24px 18px 20px}
.claim-body strong{font:900 26px/1 var(--f-head);font-stretch:75%;display:block}
.claim-body span{display:block;font:600 16px/1.4 var(--f-head);color:var(--ink-2);margin-top:6px}
.checks{list-style:none;padding:0;margin:16px 0 0;font:600 16px/1.3 var(--f-head)}
.checks li{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--rule)}
.box{width:20px;height:20px;border:2px solid var(--ink);display:grid;place-items:center;flex:none}
.box svg{width:14px;height:14px;stroke:var(--brand);stroke-width:3}
.box.empty{border-style:dashed}

/* ========== Pied ========== */
.foot{padding:56px 0 40px;border-top:2px solid var(--ink);background:var(--sheet)}
.foot .grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:32px}
.foot h3{font:800 13px/1 var(--f-head);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:14px}
.foot ul{list-style:none;margin:0;padding:0}
.foot li a{display:block;padding:5px 0;font:600 16px/1.3 var(--f-head);text-decoration:none}
.foot li a:hover{text-decoration:underline}
.foot .about{font-size:16px;color:var(--ink-2);margin-top:16px;max-width:30em}
.foot .legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:40px;padding-top:20px;border-top:1px solid var(--rule);font:600 13px/1.4 var(--f-head);color:var(--ink-3)}

/* ========== Responsive ========== */
@media (max-width:1180px){
  .nav{display:none}
  .menu-btn{display:block}
  .top-actions{margin-left:auto}
  .top.open .nav{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:100%;background:var(--sheet);border-bottom:2px solid var(--ink);padding:8px var(--gutter) 16px}
  .top.open .nav a{padding:14px 0;font-size:18px;border-bottom:1px solid var(--rule)}
  .binder{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}
  .deps{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:900px){
  .hero .wrap,.method,.dir,.pro .wrap{grid-template-columns:1fr}
  .sheet{max-width:520px;margin-bottom:24px}
  .hero-copy{padding-bottom:8px}
  .foot .grid{grid-template-columns:1fr 1fr}
  .foot .grid > div:first-child{grid-column:1/-1}
}
@media (max-width:640px){
  body{font-size:18px}
  .top .wrap{height:60px;gap:12px}
  .pro-link,.top .btn{display:none}
  .menu-btn{display:block;margin-left:auto}
  .logo{font-size:18px}
  .finder{grid-template-columns:1fr}
  .finder label{border-right:0;border-bottom:2px solid var(--ink)}
  .finder button{padding:16px;justify-content:center}
  .binder{grid-template-columns:1fr;row-gap:44px}
  .section-head{flex-direction:column;align-items:start}
  .steps li{grid-template-columns:52px 1fr;gap:14px}
  .steps li::before{font-size:52px}
  .table thead{display:none}
  .table tr{display:grid;grid-template-columns:48px 1fr;padding:14px 14px 16px;border-top:1px solid var(--rule)}
  .table tr:first-child{border-top:0}
  .table td{padding:0;border:0}
  .table .num{grid-row:span 3;width:auto}
  .table .chip,.table .time{text-align:left;margin-top:8px}
  .table td.time{text-align:left;padding-top:6px}
  .deps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .deps a{min-height:84px}
  .featured .dn{font-size:64px}
  .foot .grid{grid-template-columns:1fr}
  .mark-unclaimed{position:static;display:inline-block;margin:16px 0 0 18px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ========== Thème : couleurs des silos supplémentaires ========== */
:root{--c-termites:#6B4A2B;--c-pros:#2B3A8C}
.t-termites{--c:var(--c-termites);--tint:#EFE6DC}
.t-pros{--c:var(--c-pros);--tint:#E2E5F2}
.nav a[aria-current]{color:var(--ink);box-shadow:inset 0 -3px 0 var(--ink)}
.foot-h{font:800 13px/1 var(--f-head);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:0 0 14px}
.plain-list{padding-left:20px}.plain-list li{margin:6px 0}

/* ========== Bandeau de fiche et de hub ========== */
.fiche-band{background:var(--c,var(--brand));color:var(--on,#fff)}
.fiche-band-grid{display:grid;grid-template-columns:150px minmax(0,1fr) 230px;gap:0;align-items:stretch;padding-top:0}
.fiche-num{padding:28px 24px 28px 0;border-right:2px solid color-mix(in srgb,currentColor 35%,transparent);font:800 14px/1.2 var(--f-head);letter-spacing:.08em;text-transform:uppercase}
.fiche-num strong{display:block;font:900 104px/1 var(--f-head);font-stretch:62%;letter-spacing:-.02em;margin-top:10px}
.fiche-title{padding:28px 36px 36px}
.fiche-title h1,.page-head h1{font-size:clamp(36px,5vw,64px);font-weight:900;font-stretch:72%;line-height:.98;letter-spacing:-.015em;margin-top:12px}
.crumbs{font:700 14px/1.3 var(--f-head);opacity:.85}
.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}
.fiche-meta{margin:0;padding:28px 0 28px 24px;border-left:2px solid color-mix(in srgb,currentColor 35%,transparent);font:500 14px/1.5 var(--f-head)}
.fiche-meta dt{opacity:.75;text-transform:uppercase;letter-spacing:.08em;font-size:12px}
.fiche-meta dd{margin:0 0 12px;font-weight:800;font-size:18px}
.page-head{padding:44px 0 36px;border-bottom:2px solid var(--ink)}
.page-head.fiche-band{border-bottom:0}

/* ========== Colonne de lecture ========== */
.fiche-body,.page-body{display:grid;grid-template-columns:minmax(0,720px) minmax(0,1fr);gap:clamp(32px,5vw,72px);padding-top:44px;padding-bottom:88px;align-items:start}
.page-body{grid-template-columns:minmax(0,1fr)}
.prose{font-size:18px;line-height:1.7;color:#22261F;max-width:68ch}
.prose > * + *{margin-top:1em}
.prose h2{font-size:clamp(26px,2.6vw,32px);font-weight:800;font-stretch:82%;line-height:1.1;margin-top:1.8em}
.prose h3{font-size:22px;font-weight:800;font-stretch:88%;margin-top:1.5em}
.prose a{color:var(--ink);text-decoration-color:var(--c,var(--brand))}
.prose ul,.prose ol{padding-left:1.3em}
.prose li + li{margin-top:.4em}
.prose table{border-collapse:collapse;width:100%;font-size:16px;font-variant-numeric:tabular-nums}
.prose th,.prose td{border:1px solid var(--rule);padding:8px 10px;text-align:left}
.prose th{background:var(--ink);color:#fff;font:800 13px/1.2 var(--f-head);letter-spacing:.06em;text-transform:uppercase}
.prose .verdict{max-width:none;background:var(--sheet)}
.verdict-label{font:900 13px/1 var(--f-head);letter-spacing:.1em;text-transform:uppercase;margin:0}
.fiche-aside{position:sticky;top:96px}
.faq details{border-top:1px solid var(--rule);padding:12px 0}
.faq summary{cursor:pointer;font:700 18px/1.35 var(--f-head)}
.faq details p{margin-top:8px}
.sources ol{font-size:16px;color:var(--ink-2)}
.sources .checked{color:var(--ink-3)}
.hub-list{margin-top:8px}

/* ========== Appel à l'action ========== */
.cta-devis{background:var(--sheet);border:2px solid var(--ink);padding:20px}
.cta-devis-title{font:900 22px/1.1 var(--f-head);font-stretch:80%;margin:0}
.cta-devis p + p{margin-top:8px;font-size:16px;color:var(--ink-2)}
.finder--inline{margin-top:16px;grid-template-columns:1fr;max-width:none}
.finder--inline label{border-right:0;border-bottom:2px solid var(--ink)}
.finder--inline button{padding:14px;justify-content:center}

@media (max-width:900px){
  .fiche-band-grid{grid-template-columns:1fr}
  .fiche-num{border-right:0;padding:20px 0 0}
  .fiche-num strong{font-size:64px;display:inline;margin:0 0 0 8px}
  .fiche-title{padding:12px 0 20px}
  .fiche-meta{border-left:0;border-top:2px solid color-mix(in srgb,currentColor 35%,transparent);padding:16px 0;display:grid;grid-template-columns:repeat(3,auto);column-gap:20px}
  .fiche-meta dt{grid-row:1}.fiche-meta dd{grid-row:2;margin:0}
  .fiche-body{grid-template-columns:1fr}
  .fiche-aside{position:static}
  .prose{font-size:18px}
}

/* ========== Logo (vectorisé depuis la création Canva) ========== */
.logo{gap:9px}
.logo img{display:block;height:auto}
.logo-signe{width:46px}
.logo-nom{width:96px}
.logo--foot img{width:230px}
@media (max-width:640px){.logo-signe{width:32px}.logo-nom{width:70px}}

/* ========== Révision anti-« AI slop » (critique du 14/11/2026) ========== */
/* Une seule fiche penchée, posée sur une liasse : plus d'ombre floue de mockup. */
.sheet{box-shadow:none;align-self:auto;margin-bottom:0}
.sheet-stack{position:relative;align-self:end;margin-bottom:-40px}
.sheet-stack::before{content:"";position:absolute;inset:0;background:var(--sheet);border:2px solid var(--ink);transform:translate(9px,9px) rotate(.6deg)}
.claim{transform:none}
.mark-unclaimed{transform:none}
/* Intercalaire : c'est l'onglet qui se soulève, pas une carte. */
.tab:hover,.tab:focus-within{transform:none;box-shadow:none}
.tab .tab-label{transition:transform .25s var(--ease-out)}
.tab:hover .tab-label,.tab:focus-within .tab-label{transform:translateY(-6px)}
.tab li a{justify-content:flex-start}
.tab li a:hover{text-decoration:underline;text-decoration-thickness:2px}
.tab-foot{justify-content:flex-start}
/* Promesse sous la recherche : une liste de cases cochées, pas un bloc « comment ça marche ». */
.promesse{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:10px 28px;font:600 16px/1.3 var(--f-head);color:#E4EEE7}
.promesse li{display:flex;align-items:center;gap:10px}
.promesse .box{border-color:#E4EEE7;width:20px;height:20px}
.promesse .box svg{stroke:#fff;stroke-width:3;fill:none;width:14px;height:14px}
/* Capitales espacées réservées aux en-têtes de tableau et aux étiquettes de champ. */
.sheet-head,.verdict h3,.verdict-label,.region,.foot-h,.fiche-num,.fiche-meta dt,.tab-foot{text-transform:none;letter-spacing:0}
.sheet-head{font:800 16px/1 var(--f-head)}
.verdict h3,.verdict-label{font:800 16px/1.2 var(--f-head)}
.region{font:800 16px/1 var(--f-head);color:var(--ink)}
.foot-h{font:800 16px/1 var(--f-head);color:var(--ink)}
.fiche-num{font:800 16px/1.2 var(--f-head)}
.fiche-meta dt{font-size:13px;opacity:.8}
.all-deps{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
.sheet-foot a{text-decoration:underline;text-decoration-thickness:2px}
@media (max-width:640px){.promesse{grid-template-columns:1fr}}

.tab img{width:120px;height:120px}
/* Recherche réduite au seul code postal : une décision de moins au moment du stress. */
.finder{grid-template-columns:1fr auto}
.doute{border:2px solid var(--ink);background:var(--sheet);padding:28px 32px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 32px;align-items:center}
.doute h2{font-size:clamp(28px,3vw,36px);font-weight:900;font-stretch:72%;line-height:1}
.doute p{grid-column:1;color:var(--ink-2);max-width:40em}
.doute .btn{grid-column:2;grid-row:1 / span 2}
@media (max-width:900px){
  .sheet-stack{margin-bottom:28px}
  .sheet-stack::before{display:none}
  .sheet{transform:none;animation:none}
}
@media (max-width:640px){
  .sheet-stack{display:none}
  .finder{grid-template-columns:1fr}
  .doute{grid-template-columns:1fr;padding:22px 20px}
  .doute .btn{grid-column:1;grid-row:auto;justify-content:center}
}

/* Air entre le logo et le menu. */
.top .logo{margin-right:20px;flex:none}

/* ========== Annuaire ========== */
.annuaire-band{--c:var(--brand)}
.annuaire-band > .wrap:not(.fiche-band-grid){padding-top:44px;padding-bottom:48px}
.annuaire-h1{font-size:clamp(36px,5vw,64px);font-weight:900;font-stretch:72%;line-height:.98;max-width:16em}
.annuaire-lede{margin-top:14px;max-width:38em;color:#E4EEE7;font-size:18px}
.annuaire-band .finder{margin-top:24px;max-width:560px}
.reco{border:2px solid var(--ink);background:var(--sheet);padding:20px 22px;margin-top:28px;position:relative}
.reco h2{font-size:24px;font-weight:800;font-stretch:85%;line-height:1.1}
.reco p{margin-top:6px;color:var(--ink-2);font-size:16px}
.reco .stamp{position:absolute;right:18px;top:16px;margin:0;font-size:13px}
.reco--vide{border-style:dashed;background:transparent}
.annuaire-liste{margin-top:36px}
.annuaire-liste h2{font-size:clamp(24px,2.4vw,30px);font-weight:900;font-stretch:76%;margin-bottom:14px}
.table--annuaire td{font-size:16px}
.table--annuaire .title a{font:700 17px/1.3 var(--f-head)}
.table--annuaire .cp{color:var(--ink-3);font:600 13px/1 var(--f-head);margin-left:4px}
.t-r{text-align:right}
.source{margin-top:14px;font:500 13px/1.5 var(--f-head);color:var(--ink-3);max-width:62em}
.villes{margin-top:20px;border:2px solid var(--ink);background:var(--sheet);padding:16px 18px}
.villes h2{font:800 16px/1 var(--f-head);margin-bottom:10px}
.villes ul{list-style:none;margin:0;padding:0;columns:2;column-gap:16px}
.villes li{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid var(--rule);font:600 14px/1.3 var(--f-head);break-inside:avoid}
.villes li span{color:var(--ink-3);font-variant-numeric:tabular-nums}
.villes li a{text-decoration:none}.villes li a:hover{text-decoration:underline}
.villes li.on a{font-weight:800}
.deps em{font:600 13px/1.2 var(--f-head);font-style:normal;color:var(--ink-3)}
.deps .dep-off{display:flex;flex-direction:column;gap:6px;padding:12px 12px 14px;border:2px dashed var(--rule);min-height:96px;flex:1;color:var(--ink-3)}
.deps .dep-off b{font:900 34px/1 var(--f-head);font-stretch:62%}
.notice{border:2px solid var(--orange);background:var(--orange-tint);padding:14px 16px;margin-bottom:28px;max-width:60em}
.entreprise-head h1{max-width:20em}
.entreprise-lieu{margin-top:8px;font:700 18px/1.3 var(--f-head);color:var(--ink-2)}
.entreprise-head .mark-unclaimed{position:static;display:inline-block;margin-top:14px}
.fiche-data{margin:0;border-top:2px solid var(--ink)}
.fiche-data div{display:grid;grid-template-columns:220px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule)}
.fiche-data dt{font:800 15px/1.4 var(--f-head);color:var(--ink-2)}
.fiche-data dd{margin:0;font-size:17px}
.mono{font-variant-numeric:tabular-nums;letter-spacing:.02em}
.claim-cta{margin-top:32px;border:2px solid var(--ink);background:var(--sheet);padding:20px 22px}
.claim-cta h2{font-size:24px;font-weight:900;font-stretch:78%}
.claim-cta p{margin-top:8px;color:var(--ink-2)}
.claim-cta .actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:14px}
@media (max-width:640px){
  .fiche-data div{grid-template-columns:1fr;gap:2px}
  .villes ul{columns:1}
  .table--annuaire thead{display:none}
  .table--annuaire tr{display:block;padding:12px 14px;border-top:1px solid var(--rule)}
  .table--annuaire td{display:block;border:0;padding:2px 0;text-align:left}
}

.table--annuaire td{line-height:1.4}
@media (max-width:640px){.table--annuaire td.time{color:var(--ink-3);font-size:13px}}

/* ========== Annuaire : cartes de pros ========== */
.filtres{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 18px}
.filtres a{display:inline-flex;gap:6px;align-items:center;padding:8px 12px;border:2px solid var(--ink);background:var(--sheet);font:700 15px/1 var(--f-head);text-decoration:none}
.filtres a span{color:var(--ink-3);font-variant-numeric:tabular-nums}
.filtres a[aria-current]{background:var(--ink);color:#fff}.filtres a[aria-current] span{color:#C9CEC6}
.cartes{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.carte{background:var(--sheet);border:2px solid var(--ink);padding:16px 18px 14px;display:grid;gap:12px}
.carte--reclamee{border-color:var(--brand)}
.carte-head h3{font-size:22px;font-weight:800;font-stretch:85%;line-height:1.1}
.carte-head h3 a{text-decoration:none}.carte-head h3 a:hover{text-decoration:underline}
.carte-lieu{margin-top:4px;font:600 15px/1.3 var(--f-head);color:var(--ink-2)}
.carte-lieu span{color:var(--ink-3)}
.g-rating{margin-top:6px;font:700 15px/1 var(--f-head)}
.g-rating .src{font-weight:600;color:var(--ink-3);font-size:13px}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.chips li{font:700 13px/1 var(--f-head);padding:6px 8px;background:var(--brand-tint);border:1px solid #BCD3C3}
.chips .chip-m{background:var(--orange-tint);border-color:#F3C995}
.carte-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.carte-actions .btn{padding:11px 14px;font-size:15px}
.btn--ghost-ink{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--ghost-ink:hover{background:var(--ink);color:#fff}
.lien-avis{font:700 15px/1 var(--f-head);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
.carte-src{font:500 12px/1.3 var(--f-head);color:var(--ink-3)}
@media (max-width:640px){.carte-actions .btn{flex:1 1 100%;justify-content:center}}

.contact-pro{border:2px solid var(--ink);background:var(--sheet);padding:18px 20px;display:grid;gap:12px;margin-bottom:24px}
