:root{
  --cvm-papier:#f9f9f6;
  --cvm-blanc:#ffffff;
  --cvm-encre:#3f4a2e;
  --cvm-encre-2:#5a6547;
  --cvm-gris:#616854;
  --cvm-filet:#d8dacd;
  --cvm-filet-fort:#b9bda9;
  --cvm-teinte:#eef0e6;
  --cvm-teinte-2:#e3e6d8;
  --cvm-brique:#a8452f;
  --cvm-brique-fonce:#8d3824;
  --cvm-brique-pale:#f4e6e1;
  --cvm-ombre:0 1px 2px rgba(63,74,46,.06),0 14px 40px -18px rgba(63,74,46,.28);
  --cvm-rayon:6px;
  --cvm-ease:cubic-bezier(.32,.72,0,1);
  --cvm-titre:"Jost","Avenir Next","Segoe UI",system-ui,sans-serif;
  --cvm-texte:"Source Sans 3","Source Sans Pro","Segoe UI",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html[data-cvm-exit-ouvert],html[data-cvm-menu-ouvert]{overflow:hidden}
body{margin:0;background:var(--cvm-papier);color:var(--cvm-encre);font-family:var(--cvm-texte);font-size:17px;line-height:1.6;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:var(--cvm-brique);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .35s var(--cvm-ease)}
a:hover{color:var(--cvm-brique-fonce)}
h1,h2,h3,h4{font-family:var(--cvm-titre);font-weight:500;line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em;color:var(--cvm-encre)}
h1{font-size:clamp(1.85rem,1.2rem + 2.6vw,3rem);font-weight:600}
h2{font-size:clamp(1.45rem,1.1rem + 1.4vw,2.1rem)}
h3{font-size:1.2rem;font-weight:600}
p{margin:0 0 1em}
strong{font-weight:600}
table{border-collapse:collapse;width:100%;font-size:.97rem}
th,td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--cvm-filet);vertical-align:top}
th{font-family:var(--cvm-titre);font-weight:500;color:var(--cvm-encre-2);font-size:.9rem;letter-spacing:.01em}
button{font:inherit}
:focus-visible{outline:2px solid var(--cvm-brique);outline-offset:2px}
.cvm-cadre{width:min(100% - 2.5rem,1180px);margin-inline:auto}
.cvm-etroit{max-width:760px}
.cvm-visu-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- boutons ---------- */
.cvm-btn-principal,.cvm-btn-second{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.7rem 1.35rem;border-radius:var(--cvm-rayon);font-family:var(--cvm-titre);font-weight:500;font-size:1rem;text-decoration:none;cursor:pointer;border:1.5px solid transparent;transition:background-color .35s var(--cvm-ease),color .35s var(--cvm-ease),transform .35s var(--cvm-ease),border-color .35s var(--cvm-ease)}
.cvm-btn-principal{background:var(--cvm-brique);color:#fff;border-color:var(--cvm-brique)}
.cvm-btn-principal:hover{background:var(--cvm-brique-fonce);border-color:var(--cvm-brique-fonce);color:#fff}
.cvm-btn-principal:active,.cvm-btn-second:active{transform:scale(.985)}
.cvm-btn-second{background:transparent;color:var(--cvm-encre);border-color:var(--cvm-filet-fort)}
.cvm-btn-second:hover{border-color:var(--cvm-encre);color:var(--cvm-encre)}

/* ---------- en-tête ---------- */
.cvm-filet-haut{height:4px;background:var(--cvm-encre)}
.cvm-entete{background:var(--cvm-papier);border-bottom:1px solid var(--cvm-filet)}
.cvm-entete-int{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:70px}
.cvm-marque{display:inline-flex;align-items:center;gap:.6rem;color:var(--cvm-encre);text-decoration:none;font-family:var(--cvm-titre)}
.cvm-marque-nom{font-size:1.05rem;font-weight:600;letter-spacing:.01em;line-height:1.1}
.cvm-marque-nom em{font-style:normal;font-weight:400;display:block;font-size:.8rem;color:var(--cvm-gris);letter-spacing:.06em;text-transform:uppercase}
.cvm-nav{display:flex;align-items:center;gap:1.5rem}
.cvm-nav-liste{list-style:none;margin:0;padding:0;display:flex;gap:1.35rem}
.cvm-nav-liste a{color:var(--cvm-encre);text-decoration:none;font-family:var(--cvm-titre);font-size:.98rem;padding:.3rem 0;border-bottom:2px solid transparent;transition:border-color .35s var(--cvm-ease)}
.cvm-nav-liste a:hover,.cvm-nav-liste a[aria-current]{border-bottom-color:var(--cvm-brique)}
.cvm-nav-cta{min-height:42px;padding:.5rem 1.1rem;font-size:.95rem}
.cvm-burger{display:none;width:48px;height:48px;border:1.5px solid var(--cvm-filet-fort);border-radius:var(--cvm-rayon);background:transparent;cursor:pointer;position:relative;z-index:31}
.cvm-burger-trait{display:block;width:22px;height:2px;background:var(--cvm-encre);margin:5px auto;transition:transform .4s var(--cvm-ease),opacity .3s var(--cvm-ease)}
.cvm-burger[aria-expanded="true"] .cvm-burger-trait:nth-child(1){transform:translateY(7px) rotate(45deg)}
.cvm-burger[aria-expanded="true"] .cvm-burger-trait:nth-child(2){opacity:0}
.cvm-burger[aria-expanded="true"] .cvm-burger-trait:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- fil d'Ariane ---------- */
.cvm-ariane{font-size:.88rem;color:var(--cvm-gris);margin:1rem 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.35rem}
.cvm-ariane li+li::before{content:"›";margin-right:.35rem;color:var(--cvm-filet-fort)}
.cvm-ariane a{color:var(--cvm-gris)}

/* ---------- ouverture (hero editorial split) ---------- */
.cvm-ouverture{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2.5rem 4rem;padding:2rem 0 3rem;align-items:start}
.cvm-ouverture-texte{max-width:34rem}
.cvm-sur-titre{font-family:var(--cvm-titre);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cvm-brique);margin:0 0 1rem;font-weight:500}
.cvm-baseline{font-size:1.15rem;line-height:1.5;color:var(--cvm-encre-2);max-width:32rem}
.cvm-preuves{list-style:none;margin:1.5rem 0 0;padding:1.25rem 0 0;border-top:1px solid var(--cvm-filet);display:grid;gap:.6rem}
.cvm-preuves li{display:flex;gap:.65rem;align-items:flex-start;font-size:.98rem}
.cvm-preuves li::before{content:"";flex:0 0 auto;width:9px;height:9px;margin-top:.55em;background:var(--cvm-brique);border-radius:2px;transform:rotate(45deg)}
.cvm-preuves strong{font-family:var(--cvm-titre);font-weight:600}
.cvm-encart-prix{margin-top:1.5rem;padding:1rem 1.15rem;background:var(--cvm-blanc);border:1px solid var(--cvm-filet);border-left:4px solid var(--cvm-brique);border-radius:var(--cvm-rayon)}
.cvm-encart-prix p{margin:0}
.cvm-encart-prix .cvm-chiffre{font-family:var(--cvm-titre);font-size:1.6rem;font-weight:600;display:block;line-height:1.1}
.cvm-encart-prix small{color:var(--cvm-gris);font-size:.85rem}
.cvm-ouverture-form{position:relative}
.cvm-reponse{font-size:1.05rem;line-height:1.6}
.cvm-reponse p{margin:0 0 .8em}

/* ---------- wizard ---------- */
.cvm-wz{background:var(--cvm-blanc);border:1px solid var(--cvm-filet);border-radius:var(--cvm-rayon);box-shadow:var(--cvm-ombre);padding:1.4rem 1.5rem 1.5rem;position:relative}
.cvm-wz::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--cvm-encre);border-radius:var(--cvm-rayon) var(--cvm-rayon) 0 0}
.cvm-wz-tete{margin-bottom:1rem}
.cvm-wz-titre{font-family:var(--cvm-titre);font-weight:600;font-size:1.25rem;margin:0 0 .35rem;line-height:1.2}
.cvm-wz-etape{margin:0;font-size:.85rem;color:var(--cvm-gris);font-family:var(--cvm-titre);letter-spacing:.04em}
.cvm-wz-jauge{height:4px;background:var(--cvm-teinte-2);border-radius:2px;margin-top:.6rem;overflow:hidden}
.cvm-wz-jauge-b{display:block;height:100%;background:var(--cvm-brique);transition:width .5s var(--cvm-ease)}
.cvm-wz-groupe{border:0;padding:0;margin:0 0 1rem;min-width:0}
.cvm-wz-q{font-family:var(--cvm-titre);font-weight:500;font-size:1.05rem;padding:0;margin-bottom:.6rem;color:var(--cvm-encre)}
.cvm-wz-choix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.cvm-wz-opt{position:relative;display:flex;align-items:center;min-height:50px;padding:.6rem .8rem .6rem 2.3rem;border:1.5px solid var(--cvm-filet);border-radius:var(--cvm-rayon);cursor:pointer;background:var(--cvm-papier);font-size:.97rem;line-height:1.3;transition:border-color .3s var(--cvm-ease),background-color .3s var(--cvm-ease)}
.cvm-wz-opt:hover{border-color:var(--cvm-filet-fort)}
.cvm-wz-opt input{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);width:16px;height:16px;margin:0;accent-color:var(--cvm-brique)}
.cvm-wz-opt:has(input:checked){border-color:var(--cvm-brique);background:var(--cvm-brique-pale)}
.cvm-wz-opt:has(input:focus-visible){outline:2px solid var(--cvm-brique);outline-offset:2px}
.cvm-wz-urgence{margin:.2rem 0 1rem;padding:.9rem 1rem;background:var(--cvm-brique-pale);border-left:4px solid var(--cvm-brique);border-radius:var(--cvm-rayon);font-size:.95rem;line-height:1.5}
.cvm-wz-urgence p{margin:0}
.cvm-wz-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.5rem}
.cvm-wz-suiv{background:var(--cvm-brique);color:#fff;border:0;border-radius:var(--cvm-rayon);min-height:48px;padding:.7rem 1.4rem;font-family:var(--cvm-titre);font-weight:500;font-size:1rem;cursor:pointer;transition:background-color .35s var(--cvm-ease),transform .35s var(--cvm-ease)}
.cvm-wz-suiv:hover{background:var(--cvm-brique-fonce)}
.cvm-wz-suiv:active{transform:scale(.985)}
.cvm-wz-prec{background:transparent;border:1.5px solid var(--cvm-filet-fort);color:var(--cvm-encre);border-radius:var(--cvm-rayon);min-height:48px;padding:.7rem 1.1rem;font-family:var(--cvm-titre);cursor:pointer}
.cvm-wz-err{width:100%;margin:.3rem 0 0;color:var(--cvm-brique-fonce);font-size:.92rem}
.cvm-wz-final-titre{font-family:var(--cvm-titre);font-weight:600;font-size:1.2rem;margin:0 0 .4rem}
.cvm-wz-final-texte{font-size:.95rem;color:var(--cvm-encre-2);margin-bottom:.6rem}
.cvm-wz-recap{font-size:.9rem;background:var(--cvm-teinte);padding:.55rem .8rem;border-radius:var(--cvm-rayon);margin-bottom:.8rem}
.cvm-wz-cadre-iframe{border:1px solid var(--cvm-filet);border-radius:var(--cvm-rayon);overflow:hidden;background:#fff}
.cvm-wz-cadre-iframe iframe{display:block;width:100%;height:1000px;border:0}
.cvm-wz-mention{font-size:.82rem;color:var(--cvm-gris);line-height:1.45;margin:.8rem 0 0}
.cvm-wz-nojs{font-size:.95rem}
.cvm-wz-final .cvm-wz-nav{margin-top:.6rem}
.cvm-wz-final .cvm-wz-prec{min-height:40px;font-size:.92rem}

/* ---------- blocs / sections ---------- */
.cvm-bloc{padding:3.2rem 0;border-top:1px solid var(--cvm-filet)}
.cvm-bloc-teinte{background:var(--cvm-teinte)}
.cvm-bloc-sombre{background:var(--cvm-encre);color:var(--cvm-papier)}
.cvm-bloc-sombre h2,.cvm-bloc-sombre h3{color:var(--cvm-papier)}
.cvm-bloc-sombre a{color:#e9c2b7}
.cvm-bloc-tete{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.2rem;align-items:baseline;margin-bottom:1.6rem;max-width:56rem}
.cvm-num{font-family:var(--cvm-titre);font-size:.85rem;color:var(--cvm-brique);letter-spacing:.12em;font-weight:500;padding-top:.3rem}
.cvm-bloc-tete h2{margin:0}
.cvm-bloc-tete p{grid-column:2;margin:.5rem 0 0;color:var(--cvm-encre-2);max-width:42rem}
.cvm-bloc-sombre .cvm-bloc-tete p{color:#cfd5c1}
.cvm-bloc-sombre .cvm-num{color:#e9c2b7}

/* ---------- galerie 4 toits ---------- */
.cvm-galerie{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(150px,auto);gap:.9rem}
.cvm-galerie figure{margin:0;position:relative;overflow:hidden;border-radius:var(--cvm-rayon);background:var(--cvm-encre)}
.cvm-galerie img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--cvm-ease)}
.cvm-galerie figure:hover img{transform:scale(1.03)}
.cvm-galerie figcaption{position:absolute;inset:auto 0 0 0;padding:1.6rem .95rem .85rem;background:linear-gradient(180deg,rgba(35,42,26,0) 0%,rgba(35,42,26,.82) 100%);color:#fff;font-size:.9rem;line-height:1.4}
.cvm-galerie figcaption b{display:block;font-family:var(--cvm-titre);font-weight:600;font-size:1.05rem;margin-bottom:.15rem}
.cvm-galerie-a{grid-column:span 7;grid-row:span 2}
.cvm-galerie-b{grid-column:span 5}
.cvm-galerie-c{grid-column:span 5}
.cvm-galerie-d{grid-column:span 12;min-height:220px}
.cvm-galerie-d img{aspect-ratio:16/6}

/* ---------- départements (lignes) ---------- */
.cvm-depts{list-style:none;margin:0;padding:0;border-top:1px solid var(--cvm-filet-fort)}
.cvm-dept-ligne{display:grid;grid-template-columns:minmax(0,2.2fr) repeat(4,minmax(0,1fr)) auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--cvm-filet);text-decoration:none;color:inherit;transition:background-color .3s var(--cvm-ease)}
.cvm-dept-ligne:hover{background:var(--cvm-blanc)}
.cvm-dept-nom{font-family:var(--cvm-titre);font-weight:600;font-size:1.15rem;color:var(--cvm-encre)}
.cvm-dept-nom small{display:block;font-weight:400;font-size:.85rem;color:var(--cvm-gris)}
.cvm-dept-stat{font-size:.9rem;color:var(--cvm-encre-2)}
.cvm-dept-stat b{display:block;font-family:var(--cvm-titre);font-size:1.15rem;font-weight:600;color:var(--cvm-encre)}
.cvm-dept-fleche{font-family:var(--cvm-titre);color:var(--cvm-brique);font-size:1.4rem;line-height:1}
.cvm-depts-note{font-size:.88rem;color:var(--cvm-gris);margin-top:1rem}

/* ---------- prix + simulateur ---------- */
.cvm-prix-grille{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2.5rem;align-items:start}
.cvm-tarifs th:last-child,.cvm-tarifs td:last-child{text-align:right;white-space:nowrap;font-family:var(--cvm-titre);font-weight:500}
.cvm-tarifs tr[data-cvm-dominant] td{background:var(--cvm-teinte)}
.cvm-tarifs caption{caption-side:bottom;text-align:left;font-size:.85rem;color:var(--cvm-gris);padding:.6rem 0 0}
.cvm-simu{background:var(--cvm-blanc);border:1px solid var(--cvm-filet);border-radius:var(--cvm-rayon);padding:1.4rem 1.5rem;box-shadow:var(--cvm-ombre)}
.cvm-simu h3{margin-bottom:.35rem}
.cvm-simu-intro{font-size:.92rem;color:var(--cvm-gris);margin-bottom:1rem}
.cvm-simu-champ{margin-bottom:1rem}
.cvm-simu-champ>span{display:block;font-family:var(--cvm-titre);font-size:.9rem;font-weight:500;margin-bottom:.4rem}
.cvm-simu-choix{display:flex;flex-wrap:wrap;gap:.45rem}
.cvm-simu-choix label{position:relative;padding:.45rem .8rem;border:1.5px solid var(--cvm-filet);border-radius:var(--cvm-rayon);font-size:.92rem;cursor:pointer;background:var(--cvm-papier);transition:border-color .3s var(--cvm-ease),background-color .3s var(--cvm-ease)}
.cvm-simu-choix input{position:absolute;opacity:0;width:1px;height:1px}
.cvm-simu-choix label:has(input:checked){border-color:var(--cvm-brique);background:var(--cvm-brique-pale)}
.cvm-simu-choix label:has(input:focus-visible){outline:2px solid var(--cvm-brique);outline-offset:2px}
.cvm-simu-range{width:100%;accent-color:var(--cvm-brique);margin:.2rem 0}
.cvm-simu-val{font-family:var(--cvm-titre);font-weight:600}
.cvm-simu-resultat{margin-top:1.2rem;padding:1rem 1.1rem;background:var(--cvm-teinte);border-radius:var(--cvm-rayon)}
.cvm-simu-resultat .cvm-chiffre{font-family:var(--cvm-titre);font-size:1.7rem;font-weight:600;display:block;line-height:1.1}
.cvm-simu-resultat small{display:block;color:var(--cvm-gris);font-size:.85rem;margin-top:.3rem}
.cvm-simu-detail{list-style:none;margin:.8rem 0 0;padding:.8rem 0 0;border-top:1px solid var(--cvm-filet-fort);font-size:.9rem;display:grid;gap:.25rem}
.cvm-simu-detail li{display:flex;justify-content:space-between;gap:1rem}
.cvm-simu .cvm-btn-principal{width:100%;margin-top:1rem}

/* ---------- quiz ABF + comparateur ---------- */
.cvm-abf-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.5rem;align-items:start}
.cvm-abf{background:var(--cvm-blanc);border:1px solid var(--cvm-filet);border-radius:var(--cvm-rayon);padding:1.4rem 1.5rem;box-shadow:var(--cvm-ombre)}
.cvm-abf-q{margin-bottom:1.1rem}
.cvm-abf-q p{font-family:var(--cvm-titre);font-weight:500;margin-bottom:.5rem}
.cvm-abf-opts{display:flex;flex-wrap:wrap;gap:.45rem}
.cvm-abf-opt{padding:.5rem .9rem;border:1.5px solid var(--cvm-filet);background:var(--cvm-papier);border-radius:var(--cvm-rayon);cursor:pointer;font-size:.93rem;transition:border-color .3s var(--cvm-ease),background-color .3s var(--cvm-ease)}
.cvm-abf-opt[aria-pressed="true"]{border-color:var(--cvm-brique);background:var(--cvm-brique-pale)}
.cvm-abf-verdict{margin-top:1rem;padding:1rem 1.1rem;border-radius:var(--cvm-rayon);background:var(--cvm-teinte);border-left:4px solid var(--cvm-encre)}
.cvm-abf-verdict[data-niveau="abf"]{border-left-color:var(--cvm-brique);background:var(--cvm-brique-pale)}
.cvm-abf-verdict b{font-family:var(--cvm-titre);font-size:1.1rem;display:block;margin-bottom:.3rem}
.cvm-abf-verdict p{margin:0;font-size:.95rem}
.cvm-abf-note{font-size:.85rem;color:var(--cvm-gris);margin:.8rem 0 0}
.cvm-duel{border:1px solid var(--cvm-filet);border-radius:var(--cvm-rayon);overflow:hidden;background:var(--cvm-blanc)}
.cvm-duel-tete{display:grid;grid-template-columns:1.3fr 1fr 1fr;background:var(--cvm-encre);color:var(--cvm-papier);font-family:var(--cvm-titre)}
.cvm-duel-tete>div{padding:.8rem .9rem;font-weight:500}
.cvm-duel-ligne{display:grid;grid-template-columns:1.3fr 1fr 1fr;border-top:1px solid var(--cvm-filet);font-size:.94rem}
.cvm-duel-ligne>div{padding:.7rem .9rem}
.cvm-duel-ligne>div:first-child{font-family:var(--cvm-titre);font-weight:500;color:var(--cvm-encre-2)}
.cvm-duel-ligne [data-cvm-gagne]{background:var(--cvm-brique-pale);font-weight:600}
.cvm-duel-pied{padding:.9rem;border-top:1px solid var(--cvm-filet);display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;font-size:.92rem}
.cvm-duel-pied label{display:inline-flex;align-items:center;gap:.4rem}
.cvm-duel-pied input[type=number]{width:5.5rem;padding:.35rem .5rem;border:1.5px solid var(--cvm-filet-fort);border-radius:var(--cvm-rayon);font:inherit}
.cvm-duel-total{margin-left:auto;font-family:var(--cvm-titre);font-weight:600}

/* ---------- guides ---------- */
.cvm-guides{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 3rem;border-top:1px solid var(--cvm-filet-fort)}
.cvm-guides li{border-bottom:1px solid var(--cvm-filet)}
.cvm-guides a{display:grid;grid-template-columns:2.4rem minmax(0,1fr);gap:.8rem;padding:1rem 0;color:var(--cvm-encre);text-decoration:none;font-family:var(--cvm-titre);font-size:1.05rem;transition:color .3s var(--cvm-ease)}
.cvm-guides a:hover{color:var(--cvm-brique)}
.cvm-guides a span{font-size:.8rem;color:var(--cvm-brique);letter-spacing:.1em;padding-top:.25rem}
.cvm-guides a small{display:block;font-family:var(--cvm-texte);font-size:.9rem;color:var(--cvm-gris);margin-top:.15rem}

/* ---------- FAQ ---------- */
.cvm-faq{border-top:1px solid var(--cvm-filet-fort);max-width:56rem}
.cvm-faq details{border-bottom:1px solid var(--cvm-filet)}
.cvm-faq summary{cursor:pointer;list-style:none;padding:1rem 2.2rem 1rem 0;font-family:var(--cvm-titre);font-weight:500;font-size:1.05rem;position:relative}
.cvm-faq summary::-webkit-details-marker{display:none}
.cvm-faq summary::after{content:"+";position:absolute;right:.2rem;top:.85rem;font-size:1.4rem;color:var(--cvm-brique);transition:transform .4s var(--cvm-ease)}
.cvm-faq details[open] summary::after{transform:rotate(45deg)}
.cvm-faq details>p,.cvm-faq details>div{padding:0 0 1.1rem;color:var(--cvm-encre-2);max-width:46rem}

/* ---------- KPI locaux ---------- */
.cvm-kpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:1.5rem 0 0}
.cvm-kpi a{display:block;padding:.9rem 1rem;background:var(--cvm-blanc);border:1px solid var(--cvm-filet);border-radius:var(--cvm-rayon);text-decoration:none;color:var(--cvm-encre);transition:border-color .3s var(--cvm-ease)}
.cvm-kpi a:hover{border-color:var(--cvm-brique)}
.cvm-kpi b{display:block;font-family:var(--cvm-titre);font-size:1.35rem;font-weight:600;line-height:1.1}
.cvm-kpi span{font-size:.85rem;color:var(--cvm-gris)}
.cvm-meteo{margin:1.2rem 0 0;padding:.7rem 1rem;border:1px dashed var(--cvm-filet-fort);border-radius:var(--cvm-rayon);font-size:.92rem;color:var(--cvm-encre-2)}

/* ---------- corps de contenu (moteur v3, guides) ---------- */
.cvm-corps{max-width:760px}
.cvm-corps h2{margin-top:2.4rem;padding-top:1.4rem;border-top:1px solid var(--cvm-filet)}
.cvm-corps h2:first-child{margin-top:0;border-top:0;padding-top:0}
.cvm-corps h3{margin-top:1.8rem}
.cvm-corps table{margin:1rem 0 1.4rem;background:var(--cvm-blanc);border:1px solid var(--cvm-filet);border-radius:var(--cvm-rayon);overflow:hidden}
.cvm-corps th{background:var(--cvm-teinte)}
.cvm-corps td:last-child{font-family:var(--cvm-titre);font-weight:500;white-space:nowrap}
.cvm-corps ul,.cvm-corps ol{padding-left:1.3rem}
.cvm-corps li{margin-bottom:.4rem}
.cvm-corps dl{border-top:1px solid var(--cvm-filet-fort);margin:1rem 0}
.cvm-corps dt{font-family:var(--cvm-titre);font-weight:500;font-size:1.05rem;padding:1rem 0 .3rem}
.cvm-corps dd{margin:0;padding:0 0 1rem;border-bottom:1px solid var(--cvm-filet);color:var(--cvm-encre-2)}
.cvm-corps figure{margin:1.6rem 0}
.cvm-corps figure img{border-radius:var(--cvm-rayon);width:100%}
.cvm-corps figcaption{font-size:.85rem;color:var(--cvm-gris);margin-top:.5rem}
.cvm-corps blockquote{margin:1.4rem 0;padding:.9rem 1.2rem;border-left:4px solid var(--cvm-brique);background:var(--cvm-blanc);font-size:1rem}
.cvm-corps blockquote p{margin:0}
.cvm-tldr{background:var(--cvm-blanc);border:1px solid var(--cvm-filet);border-left:4px solid var(--cvm-brique);border-radius:var(--cvm-rayon);padding:1rem 1.2rem;margin:0 0 1.6rem;font-size:1.02rem}
.cvm-tldr p{margin:0}
.cvm-encadre{background:var(--cvm-teinte);border-radius:var(--cvm-rayon);padding:1rem 1.2rem;margin:1.4rem 0}
.cvm-encadre p:last-child{margin:0}
.cvm-encadre-alerte{background:var(--cvm-brique-pale);border-left:4px solid var(--cvm-brique)}
.cvm-page-fixe{padding-bottom:1rem}
.cvm-page-fixe .cvm-corps{max-width:760px}
.cvm-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cvm-scroll table{min-width:520px}
.cvm-page-tete{padding:1.2rem 0 1.6rem;max-width:760px}
.cvm-page-tete .cvm-sur-titre{margin-bottom:.6rem}
.cvm-chapo{font-size:1.15rem;color:var(--cvm-encre-2);line-height:1.5}
.cvm-guide-grille{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:3rem;align-items:start}
.cvm-guide-grille>article{grid-column:1;grid-row:1}
.cvm-guide-grille>*,.cvm-prix-grille>*,.cvm-abf-grille>*,.cvm-ouverture>*,.cvm-kpi>*,.cvm-duel-ligne>*{min-width:0}
.cvm-corps,.cvm-corps>*{min-width:0}
.cvm-corps>.cvm-scroll,.cvm-scroll{max-width:100%}
.cvm-guide-cote{position:sticky;top:1rem;grid-column:2;grid-row:1}
.cvm-guide-cote .cvm-wz{padding:1.1rem 1.2rem 1.2rem}
.cvm-guide-cote .cvm-wz-choix{grid-template-columns:1fr}
.cvm-guide-cote .cvm-wz-opt{min-height:44px;padding-block:.45rem}
.cvm-guide-cote .cvm-wz-cadre-iframe iframe{height:1000px}
.cvm-sommaire{margin:0 0 1.8rem;padding:1rem 1.2rem;background:var(--cvm-blanc);border:1px solid var(--cvm-filet);border-radius:var(--cvm-rayon);font-size:.95rem}
.cvm-sommaire p{margin:0 0 .4rem;font-family:var(--cvm-titre);font-weight:500}
.cvm-sommaire ol{margin:0;padding-left:1.2rem;columns:2;column-gap:2rem}
.cvm-sommaire li{margin-bottom:.2rem;break-inside:avoid}
.cvm-sommaire a{color:var(--cvm-encre)}

/* ---------- listing entreprises ---------- */
.cvm-pros{list-style:none;margin:1rem 0 1.5rem;padding:0;border-top:1px solid var(--cvm-filet-fort)}
.cvm-pro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem 1.2rem;padding:.9rem 0;border-bottom:1px solid var(--cvm-filet);align-items:start}
.cvm-pro-nom{font-family:var(--cvm-titre);font-weight:600;font-size:1.05rem;margin:0}
.cvm-pro-rge{display:inline-block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-family:var(--cvm-titre);color:var(--cvm-brique);border:1px solid currentColor;border-radius:3px;padding:.1rem .4rem;margin-left:.4rem;vertical-align:middle}
.cvm-pro-detail{margin:0;font-size:.92rem;color:var(--cvm-encre-2);grid-column:1}
.cvm-pro-lien{grid-column:2;grid-row:1/3;font-size:.85rem;white-space:nowrap;align-self:center}
.cvm-pros-compte{font-size:.92rem;color:var(--cvm-gris);margin:0 0 .6rem}

/* ---------- maillage ---------- */
.cvm-maillage{padding:2.5rem 0}
.cvm-maillage-grp{margin-bottom:1.4rem}
.cvm-maillage-grp p{margin:0 0 .4rem;font-family:var(--cvm-titre);font-weight:500;font-size:.95rem;color:var(--cvm-encre-2)}
.cvm-chips{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}
.cvm-chips a{display:inline-block;padding:.35rem .7rem;border:1px solid var(--cvm-filet);border-radius:var(--cvm-rayon);background:var(--cvm-blanc);color:var(--cvm-encre);text-decoration:none;font-size:.9rem;transition:border-color .3s var(--cvm-ease)}
.cvm-chips a:hover{border-color:var(--cvm-brique);color:var(--cvm-brique)}
.cvm-chips small{color:var(--cvm-gris)}
.cvm-villes-table td:first-child a{color:var(--cvm-encre);font-family:var(--cvm-titre);font-weight:500;text-decoration:none}
.cvm-villes-table td:first-child a:hover{color:var(--cvm-brique)}
.cvm-climat-fiche{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin:1rem 0}
.cvm-climat-fiche div{padding:.8rem 1rem;background:var(--cvm-blanc);border:1px solid var(--cvm-filet);border-radius:var(--cvm-rayon)}
.cvm-climat-fiche b{display:block;font-family:var(--cvm-titre);font-size:1.3rem;font-weight:600}
.cvm-climat-fiche span{font-size:.85rem;color:var(--cvm-gris)}

/* ---------- pages fixes ---------- */
.cvm-form{display:grid;gap:1rem;max-width:560px}
.cvm-form label{display:grid;gap:.35rem;font-family:var(--cvm-titre);font-weight:500;font-size:.95rem}
.cvm-form input,.cvm-form textarea,.cvm-form select{font:inherit;font-family:var(--cvm-texte);padding:.65rem .8rem;border:1.5px solid var(--cvm-filet-fort);border-radius:var(--cvm-rayon);background:var(--cvm-blanc);color:var(--cvm-encre);width:100%}
.cvm-form textarea{min-height:140px}
.cvm-form-note{font-size:.85rem;color:var(--cvm-gris)}
.cvm-etapes{list-style:none;margin:1.5rem 0;padding:0;display:grid;gap:1rem;counter-reset:cvm-etape}
.cvm-etapes li{display:grid;grid-template-columns:2.6rem minmax(0,1fr);gap:1rem;counter-increment:cvm-etape;padding:1rem 0;border-top:1px solid var(--cvm-filet)}
.cvm-etapes li::before{content:counter(cvm-etape,decimal-leading-zero);font-family:var(--cvm-titre);color:var(--cvm-brique);font-weight:500;letter-spacing:.08em}
.cvm-etapes b{font-family:var(--cvm-titre);font-weight:600;display:block;margin-bottom:.2rem}
.cvm-etapes p{margin:0;color:var(--cvm-encre-2)}

/* ---------- pied ---------- */
.cvm-pied{background:var(--cvm-encre);color:#d9ddcd;padding:3rem 0 5.5rem;margin-top:3rem;font-size:.93rem}
.cvm-pied a{color:#eef0e6;text-decoration:none}
.cvm-pied a:hover{color:#fff;text-decoration:underline}
.cvm-pied-haut{display:grid;grid-template-columns:1.6fr 1fr 1.3fr 1fr;gap:2.5rem}
.cvm-pied-marque .cvm-marque-svg{color:#eef0e6}
.cvm-pied-nom{font-family:var(--cvm-titre);font-weight:600;color:#fff;font-size:1.1rem;margin:.6rem 0 .5rem}
.cvm-pied-texte{margin:0;color:#b9bfa8}
.cvm-pied-titre{font-family:var(--cvm-titre);font-weight:500;color:#fff;letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;margin:0 0 .7rem}
.cvm-pied ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.cvm-pied-villes{margin-top:2.2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14)}
.cvm-pied-villes p:last-child{margin:0;line-height:1.9}
.cvm-pied-bas{margin:2rem 0 0;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.14);font-size:.82rem;color:#a4ab93}

/* ---------- barre sticky mobile ---------- */
.cvm-barre{position:fixed;inset:auto 0 0 0;z-index:20;padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(249,249,246,.94);backdrop-filter:blur(8px);border-top:1px solid var(--cvm-filet);display:none;transform:translateY(0);transition:transform .45s var(--cvm-ease)}
.cvm-barre[data-cvm-masquee]{transform:translateY(110%)}
.cvm-barre-btn{display:flex;align-items:center;justify-content:center;min-height:50px;background:var(--cvm-brique);color:#fff;border-radius:var(--cvm-rayon);font-family:var(--cvm-titre);font-weight:500;font-size:1.05rem;text-decoration:none}

/* ---------- exit popup (carte glissante) ---------- */
.cvm-exit{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:1rem}
.cvm-exit[hidden]{display:none}
.cvm-exit-fond{position:absolute;inset:0;background:rgba(35,42,26,.55)}
.cvm-exit-boite{position:relative;width:min(100%,520px);background:var(--cvm-papier);border-radius:var(--cvm-rayon);padding:2rem 1.8rem 1.6rem;box-shadow:0 30px 80px -20px rgba(0,0,0,.45);border-top:5px solid var(--cvm-brique);animation:cvm-glisse .55s var(--cvm-ease)}
@keyframes cvm-glisse{from{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}
.cvm-exit-fermer{position:absolute;top:.6rem;right:.6rem;width:44px;height:44px;border:0;background:transparent;font-size:1.6rem;line-height:1;color:var(--cvm-gris);cursor:pointer;border-radius:var(--cvm-rayon)}
.cvm-exit-fermer:hover{background:var(--cvm-teinte);color:var(--cvm-encre)}
.cvm-exit-titre{font-family:var(--cvm-titre);font-weight:600;font-size:1.35rem;line-height:1.2;margin:0 2rem .9rem 0}
.cvm-exit-args{list-style:none;margin:0 0 1.3rem;padding:0;display:grid;gap:.45rem;font-size:.97rem}
.cvm-exit-args li{display:flex;gap:.6rem}
.cvm-exit-args li::before{content:"";flex:0 0 auto;width:8px;height:8px;margin-top:.55em;background:var(--cvm-brique);transform:rotate(45deg);border-radius:2px}
.cvm-exit-iframe iframe{width:100%;height:600px;border:0;display:block}
.cvm-exit-cta{display:flex;align-items:center;justify-content:center;min-height:50px;background:var(--cvm-brique);color:#fff;border-radius:var(--cvm-rayon);font-family:var(--cvm-titre);font-weight:500;font-size:1.05rem;text-decoration:none;transition:background-color .35s var(--cvm-ease)}
.cvm-exit-cta:hover{background:var(--cvm-brique-fonce);color:#fff}
.cvm-exit-non{display:block;text-align:center;margin-top:.8rem;font-size:.9rem;color:var(--cvm-gris)}

/* ---------- apparitions (discrètes) ---------- */
@media (prefers-reduced-motion:no-preference){
  [data-cvm-apparait]{opacity:0;transform:translateY(14px);transition:opacity .8s var(--cvm-ease),transform .8s var(--cvm-ease)}
  [data-cvm-apparait][data-cvm-vu]{opacity:1;transform:none}
}

/* ---------- responsive : point de rupture 815 px ---------- */
@media (max-width:1024px){
  .cvm-guide-grille{grid-template-columns:minmax(0,1fr)}
  .cvm-guide-grille>article{grid-column:auto;grid-row:auto}
  .cvm-guide-cote{position:static;grid-column:auto;grid-row:auto}
  .cvm-pied-haut{grid-template-columns:1fr 1fr}
  .cvm-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:814px){
  body{font-size:16px}
  .cvm-cadre{width:min(100% - 2rem,1180px)}
  .cvm-burger{display:block}
  .cvm-nav{position:fixed;inset:0 0 0 auto;width:min(86vw,360px);background:var(--cvm-papier);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:5.5rem 1.5rem 2rem;border-left:1px solid var(--cvm-filet);transform:translateX(105%);transition:transform .5s var(--cvm-ease);z-index:30;overflow-y:auto}
  html[data-cvm-menu-ouvert] .cvm-nav{transform:none}
  .cvm-nav-liste{flex-direction:column;gap:0}
  .cvm-nav-liste li{border-bottom:1px solid var(--cvm-filet)}
  .cvm-nav-liste a{display:block;padding:.9rem 0;font-size:1.15rem;border-bottom:0;opacity:0;transform:translateY(10px);transition:opacity .5s var(--cvm-ease),transform .5s var(--cvm-ease)}
  html[data-cvm-menu-ouvert] .cvm-nav-liste a{opacity:1;transform:none}
  html[data-cvm-menu-ouvert] .cvm-nav-liste li:nth-child(2) a{transition-delay:.05s}
  html[data-cvm-menu-ouvert] .cvm-nav-liste li:nth-child(3) a{transition-delay:.1s}
  html[data-cvm-menu-ouvert] .cvm-nav-liste li:nth-child(4) a{transition-delay:.15s}
  html[data-cvm-menu-ouvert] .cvm-nav-liste li:nth-child(5) a{transition-delay:.2s}
  html[data-cvm-menu-ouvert] .cvm-nav-liste li:nth-child(6) a{transition-delay:.25s}
  .cvm-nav-cta{margin-top:1.5rem;min-height:50px}
  .cvm-voile{position:fixed;inset:0;background:rgba(35,42,26,.4);z-index:29;opacity:0;pointer-events:none;transition:opacity .4s var(--cvm-ease)}
  html[data-cvm-menu-ouvert] .cvm-voile{opacity:1;pointer-events:auto}
  .cvm-ouverture{grid-template-columns:minmax(0,1fr);gap:1.2rem;padding:1.2rem 0 2rem}
  .cvm-ouverture-texte{display:contents}
  .cvm-ouverture-texte h1{order:1}
  .cvm-ouverture-texte .cvm-sur-titre{order:0}
  .cvm-ouverture-texte .cvm-baseline{order:2;margin:0}
  .cvm-ouverture-texte .cvm-reponse{order:2}
  .cvm-ouverture-form{order:3}
  .cvm-ouverture-texte .cvm-preuves{order:4;margin-top:.4rem}
  .cvm-ouverture-texte .cvm-encart-prix{order:5;margin-top:.2rem}
  .cvm-ouverture-texte .cvm-kpi{order:5}
  .cvm-ouverture-texte .cvm-meteo{order:6}
  .cvm-wz{padding:1.1rem 1rem 1.2rem}
  .cvm-wz-choix{grid-template-columns:1fr 1fr;gap:.45rem}
  .cvm-wz-opt{min-height:46px;font-size:.92rem;padding-left:2.1rem}
  .cvm-bloc{padding:2.4rem 0}
  .cvm-bloc-tete{grid-template-columns:minmax(0,1fr);gap:.3rem}
  .cvm-bloc-tete p{grid-column:1}
  .cvm-galerie{grid-template-columns:1fr 1fr;grid-auto-rows:auto}
  .cvm-galerie-a{grid-column:span 2;grid-row:auto}
  .cvm-galerie-b,.cvm-galerie-c{grid-column:span 1}
  .cvm-galerie-d{grid-column:span 2;min-height:0}
  .cvm-galerie img{aspect-ratio:16/10}
  .cvm-galerie-b img,.cvm-galerie-c img{aspect-ratio:1/1}
  .cvm-galerie figcaption{font-size:.82rem;padding:1.3rem .7rem .6rem}
  .cvm-galerie figcaption b{font-size:.95rem}
  .cvm-dept-ligne{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"nom fleche" "stats stats";gap:.5rem 1rem}
  .cvm-dept-nom{grid-area:nom}
  .cvm-dept-fleche{grid-area:fleche}
  .cvm-dept-stats{grid-area:stats;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .8rem}
  .cvm-dept-stat b{display:inline;font-size:1rem;margin-right:.3rem}
  .cvm-prix-grille,.cvm-abf-grille{grid-template-columns:minmax(0,1fr);gap:1.8rem}
  .cvm-guides{grid-template-columns:minmax(0,1fr)}
  .cvm-kpi{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
  .cvm-kpi a{padding:.7rem .8rem}
  .cvm-kpi b{font-size:1.15rem}
  .cvm-pro{grid-template-columns:minmax(0,1fr)}
  .cvm-pro-lien{grid-column:1;grid-row:auto;font-size:.88rem}
  .cvm-sommaire ol{columns:1}
  .cvm-pied-haut{grid-template-columns:minmax(0,1fr);gap:1.8rem}
  .cvm-pied{padding-bottom:6.5rem}
  .cvm-barre{display:block}
  .cvm-exit{align-items:flex-end;padding:0}
  .cvm-exit-boite{width:100%;border-radius:var(--cvm-rayon) var(--cvm-rayon) 0 0;padding:1.6rem 1.2rem calc(1.2rem + env(safe-area-inset-bottom));max-height:88vh;overflow-y:auto}
  .cvm-duel-tete,.cvm-duel-ligne{grid-template-columns:1.1fr 1fr 1fr;font-size:.86rem}
  .cvm-duel-tete>div,.cvm-duel-ligne>div{padding:.6rem .55rem}
  .cvm-tarifs th,.cvm-tarifs td{padding:.5rem .4rem;font-size:.9rem}
}
@media (min-width:815px){
  .cvm-dept-stats{display:contents}
  .cvm-voile{display:none}
}
@media (max-width:400px){
  .cvm-wz-choix{grid-template-columns:1fr}
  .cvm-kpi{grid-template-columns:1fr 1fr}
  .cvm-marque-nom{font-size:.95rem}
}
