/* ==========================================================================
   Annuaires — couche UI v2 (« registre »)
   Tokens posés par site dans ui-skin.css. Variantes : body[data-hd] (light|ink|band),
   body[data-list] (rows|grid). Le widget VUD (#vud-*) n'est pas restylé ici.
   ========================================================================== */

/* ---------- Base ---------- */
body.u{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
/* spécificité nulle : toute règle existante (widget VUD, utilitaires) garde la main */
:where(body.u) :where(h1,h2,h3,h4){font-family:var(--f-disp);color:var(--ink);line-height:1.15;letter-spacing:-.01em}
body.u a{color:inherit}
/* widget VUD : on ne touche ni à sa typo ni à ses couleurs */
:where(body.u) :where([id^="vud-"]) :where(h1,h2,h3,h4){font-family:inherit;letter-spacing:normal;line-height:inherit;color:inherit}
:where(body.u) .vud-title{color:#fff}
body.u :focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.u-wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.u-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Boutons ---------- */
.u-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:600 1rem/1 var(--f-body);padding:.8rem 1.15rem;border-radius:var(--r);border:1px solid transparent;text-decoration:none!important;cursor:pointer;white-space:nowrap}
.u-btn--acc{background:var(--acc);color:#fff!important}
.u-btn--acc:hover{background:var(--acc-d)}
.u-btn--ink{background:var(--ink);color:#fff!important}
.u-btn--ink:hover{background:var(--acc)}
.u-btn--line{background:var(--paper);border-color:var(--line-2);color:var(--ink)!important}
.u-btn--line:hover{border-color:var(--ink)}
.u-btn svg{width:18px;height:18px;flex:none}
.u-link{color:var(--acc)!important;font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}

/* ---------- En-tête ---------- */
.u-hd{position:sticky;top:0;z-index:60;background:var(--hd-bg);color:var(--hd-ink);border-bottom:1px solid var(--hd-line)}
.u-hd .u-wrap{display:flex;align-items:center;gap:1.5rem;min-height:64px}
.u-brand{display:flex;align-items:center;gap:.6rem;text-decoration:none!important;color:inherit!important;min-width:0}
.u-brand svg{width:30px;height:30px;flex:none}
.u-brand b{font:800 1.08rem/1.15 var(--f-disp);letter-spacing:-.015em}
.u-nav{margin:0 0 0 auto;padding:0;display:flex;align-items:center;gap:1.4rem;list-style:none}
.u-nav a{font:500 .95rem/1 var(--f-body);text-decoration:none!important;color:inherit!important;padding:.4rem 0;border-bottom:2px solid transparent}
.u-nav a:hover{border-bottom-color:currentColor}
#menu-button{display:none;margin-left:auto;background:none;border:1px solid var(--hd-line);color:inherit;border-radius:var(--r);width:44px;height:44px;align-items:center;justify-content:center;flex:none}
#menu-button svg{width:22px;height:22px}
body[data-hd="light"]{--hd-bg:var(--paper);--hd-ink:var(--ink);--hd-line:var(--line)}
body[data-hd="ink"]{--hd-bg:var(--ink);--hd-ink:#fff;--hd-line:rgba(255,255,255,.16)}
body[data-hd="band"]{--hd-bg:var(--acc);--hd-ink:#fff;--hd-line:rgba(255,255,255,.22)}
body[data-hd="ink"] .u-hd .u-btn--ink,body[data-hd="band"] .u-hd .u-btn--ink{background:#fff;color:var(--ink)!important}
@media (max-width:980px){
  #menu-button{display:inline-flex}
  .u-hd .u-cta-top{display:none}
  .u-nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);color:var(--ink);padding:0 20px;border-bottom:1px solid var(--line);margin:0}
  .u-nav a{padding:1rem 0;border-bottom:1px solid var(--line)}
  .u-nav.hidden{display:none}
}
@media (min-width:981px){.u-nav.hidden{display:flex}}

/* ---------- Fil d'Ariane ---------- */
.u-bc{font-size:.88rem;color:var(--muted);padding-top:1.1rem}
.u-bc ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}
.u-bc li+li::before{content:"/";margin-right:.4rem;color:var(--line-2)}
.u-bc a{color:var(--muted);text-decoration:none}
.u-bc a:hover{color:var(--ink);text-decoration:underline}

/* ---------- Sections ---------- */
.u-sec{padding:56px 0;border-top:1px solid var(--line)}
.u-sec--wash{background:var(--wash);border-top:0}
.u-h2{font-size:clamp(1.45rem,2.4vw,1.85rem);font-weight:800;margin:0 0 .4rem}
.u-sec-sub{color:var(--muted);margin:0 0 1.6rem;max-width:66ch}
.u-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px}
@media (max-width:860px){.u-split{grid-template-columns:1fr;gap:40px}}

/* ---------- Accueil : en-tête de page ---------- */
.u-hero{padding:56px 0 48px}
.u-hero .u-wrap{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:64px;align-items:start}
.u-hero h1{font-size:clamp(2.2rem,4.8vw,3.6rem);font-weight:800;line-height:1.02;letter-spacing:-.025em;margin:0 0 1.2rem;max-width:15ch}
.u-lead{font-size:1.06rem;color:var(--muted);max-width:60ch;margin:0}
.u-lead+.u-lead{margin-top:.8rem}
.u-lead strong{color:var(--ink);font-weight:600}
@media (max-width:900px){.u-hero .u-wrap{grid-template-columns:1fr;gap:36px}.u-hero{padding:36px 0}}

.u-search{position:relative;margin-top:2rem;max-width:620px}
.u-search label{display:block;font-weight:600;font-size:.95rem;margin-bottom:.45rem}
.u-search-row{display:flex;border:2px solid var(--ink);border-radius:var(--r);background:var(--paper)}
.u-search-row input{flex:1;min-width:0;border:0;background:transparent;font:500 1.05rem/1.2 var(--f-body);color:var(--ink);padding:.95rem 1rem;outline:none}
.u-search-row input::placeholder{color:var(--muted)}
.u-search-row .u-btn{border-radius:0;margin:-2px -2px -2px 0}
.u-ac{position:absolute;left:0;right:0;top:100%;margin-top:4px;background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:0 12px 32px -12px rgba(15,23,42,.28);z-index:40;overflow:hidden}
.u-ac a{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 1rem;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}
.u-ac a:last-child{border-bottom:0}
.u-ac a span{color:var(--muted);font-variant-numeric:tabular-nums}
.u-ac a:hover,.u-ac a.on{background:var(--wash)}
.u-ac p{margin:0;padding:.8rem 1rem;color:var(--muted);font-size:.92rem}

/* index typographique (communes, régions) */
.u-index h2{font:700 1rem/1.3 var(--f-disp);margin:0 0 .7rem;padding-bottom:.6rem;border-bottom:2px solid var(--ink)}
.u-index ul{list-style:none;margin:0;padding:0}
.u-index li a{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.u-index li a:hover{color:var(--acc)}
.u-index li a span{color:var(--muted);font-size:.86rem;font-variant-numeric:tabular-nums}
.u-cols{columns:3 210px;column-gap:40px}
.u-cols li{break-inside:avoid}

/* prestations */
.u-svc{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));column-gap:28px;border-top:1px solid var(--line);margin:0;padding:0;list-style:none}
.u-svc a{display:block;padding:1.1rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);font:700 1.05rem/1.3 var(--f-disp)}
.u-svc a:hover{color:var(--acc)}

/* articles */
.u-posts{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.u-posts a{display:block;padding:1rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);font:600 1.08rem/1.35 var(--f-disp)}
.u-posts a:hover{color:var(--acc);text-decoration:underline;text-underline-offset:3px}

/* bandeau devis */
.u-devis{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding-top:28px;padding-bottom:28px}
.u-devis p{margin:0;font:700 1.3rem/1.3 var(--f-disp);max-width:40ch}
.u-devis small{display:block;font:400 .98rem/1.5 var(--f-body);color:var(--muted);margin-top:.3rem}

/* ---------- Guide (contenu long + sommaire) ---------- */
.u-guide{display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;align-items:start}
.u-toc{position:sticky;top:84px;max-height:calc(100vh - 110px);overflow:auto;font-size:.9rem}
.u-toc b{display:block;font:700 .95rem/1 var(--f-disp);margin-bottom:.6rem;padding-bottom:.6rem;border-bottom:2px solid var(--ink)}
.u-toc a{display:block;padding:.4rem 0;color:var(--muted);text-decoration:none;line-height:1.35;border-bottom:1px solid var(--line)}
.u-toc a:hover,.u-toc a.on{color:var(--ink)}
.u-toc a.on{font-weight:600}
@media (max-width:1000px){.u-guide{grid-template-columns:minmax(0,1fr)}.u-toc{display:none}}
.u-prose{max-width:72ch;overflow-wrap:break-word}
.u-prose>*:first-child{margin-top:0}
.u-prose h2{font-size:clamp(1.35rem,2.2vw,1.65rem);font-weight:800;margin:2.4rem 0 .7rem;scroll-margin-top:84px}
.u-prose h3{font-size:1.15rem;font-weight:700;margin:1.7rem 0 .5rem;scroll-margin-top:84px}
.u-prose p,.u-prose ul,.u-prose ol{margin:0 0 1rem}
.u-prose ul,.u-prose ol{padding-left:1.25rem}
.u-prose ul{list-style:disc}
.u-prose ol{list-style:decimal}
.u-prose li{margin:.3rem 0}
.u-prose li::marker{color:var(--acc)}
.u-prose strong{font-weight:650}
.u-prose a{color:var(--acc);text-decoration:underline;text-underline-offset:2px}
.u-prose blockquote{margin:1.4rem 0;padding:.2rem 0 .2rem 1.1rem;border-left:3px solid var(--acc);color:var(--muted)}
.u-prose .u-part{margin-top:3.2rem;padding-top:1.6rem;border-top:2px solid var(--ink)}
.u-table{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.2rem 0 1.6rem;border-top:2px solid var(--ink)}
.u-table table{width:100%;border-collapse:collapse;font-size:.94rem;min-width:520px}
.u-table th{text-align:left;font-weight:700;font-family:var(--f-disp)}
.u-table th,.u-table td{padding:.65rem .8rem .65rem 0;border-bottom:1px solid var(--line);vertical-align:top}

/* ---------- Pied de page ---------- */
.u-ft{background:var(--ink);color:#e6e9ec;font-size:.95rem}
.u-ft .u-wrap{padding-top:52px;padding-bottom:28px}
.u-ft-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.u-ft h3{color:#fff!important;font:700 1rem/1.2 var(--f-disp)!important;margin:0 0 .9rem!important}
.u-ft p{margin:.5rem 0 0;color:#b8c0c8;font-weight:400}
.u-ft ul{list-style:none;margin:0;padding:0}
.u-ft li{margin:.4rem 0}
.u-ft a{color:#e6e9ec!important;text-decoration:none;font-weight:400}
.u-ft a:hover{text-decoration:underline}
.u-ft .u-brand b{color:#fff}
.u-ft-bot{border-top:1px solid rgba(255,255,255,.14);margin-top:36px;padding-top:18px;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:#9aa4ae;font-size:.86rem}
@media (max-width:900px){.u-ft-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.u-ft-grid{grid-template-columns:1fr}}
.u-ft .legal-links-bar{background:transparent!important;border-top:1px solid rgba(255,255,255,.14)!important;padding:14px 20px!important}
.u-ft .legal-links-bar a{color:#e6e9ec!important}
.u-ft .more-links-aae{color:#9aa4ae;opacity:1!important}
.u-ft .more-links-aae a{text-decoration:underline}
body.u .cocon-partners{background:var(--ink)!important;color:#b8c0c8!important;border-top:1px solid rgba(255,255,255,.1)!important;margin-top:0!important;padding:1rem 20px 1.4rem!important;text-align:center}
body.u .cocon-partners h3{color:#e6e9ec!important;font:600 .95rem/1 var(--f-body)!important}
body.u .cocon-partners ul{justify-content:center}
body.u .cocon-partners a{color:#b8c0c8!important}

/* ---------- Page ville ---------- */
.u-cityhd{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px;padding:28px 0 36px;align-items:start}
.u-cityhd h1{font-size:clamp(1.9rem,3.8vw,2.9rem);font-weight:800;line-height:1.05;letter-spacing:-.02em;margin:0 0 .9rem}
.u-cityhd p{margin:0 0 .9rem;color:var(--muted);max-width:62ch}
.u-cityhd .u-sum{color:var(--ink);font-size:1.05rem}
.u-cityhd .u-sum a{color:var(--acc)}
.u-cityhd h2{font:700 1rem/1.3 var(--f-disp);margin:1.4rem 0 .3rem}
body.u .u-cityhd .vud-cta-box{margin:1rem 0 0}
.u-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.3rem}
.u-cityhd #map{height:320px!important;border-radius:var(--r)!important;box-shadow:none!important;border:1px solid var(--line)}
@media (max-width:860px){.u-cityhd{grid-template-columns:1fr;gap:24px}.u-cityhd #map{height:220px!important}}

.u-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:0 0 1rem;margin:0;border-bottom:2px solid var(--ink)}
.u-toolbar input,.u-toolbar select{border:1px solid var(--line-2);background:var(--paper);border-radius:var(--r);padding:.62rem .75rem;font:500 .95rem var(--f-body);color:var(--ink);min-width:0}
.u-toolbar input{flex:1 1 220px}
.u-toolbar output{margin-left:auto;font-size:.9rem;color:var(--muted);font-variant-numeric:tabular-nums}

/* liste des pros : en lignes (registre) ou en grille */
body.u #results-container{display:block!important;margin:0}
body.u .search-result-item{background:transparent!important;box-shadow:none!important;border-radius:0!important;border-bottom:1px solid var(--line)}
body.u .search-result-item>div{padding:1.1rem 0!important;display:grid;grid-template-columns:minmax(0,1.6fr) auto minmax(0,1.2fr) auto;grid-template-areas:"t r s c" "m r s c" "l r s c";column-gap:28px;align-items:center}
body.u .search-result-item h3{grid-area:t;font:700 1.08rem/1.3 var(--f-disp)!important;margin:0 0 .15rem!important}
body.u .search-result-item h3 a{color:var(--ink)!important;text-decoration:none!important}
body.u .search-result-item h3 a:hover{color:var(--acc)!important;text-decoration:underline!important}
body.u .search-result-item>div>div.flex.items-center{grid-area:r;margin:0!important;white-space:nowrap;font-size:.92rem}
body.u .search-result-item>div>p:nth-of-type(1){grid-area:m;margin:0!important;font-size:.9rem;color:var(--muted)!important}
body.u .search-result-item>div>p:nth-of-type(2){grid-area:l;margin:0!important;font-size:.9rem;color:var(--muted)!important;text-transform:capitalize}
body.u .search-result-item>div>div.flex-wrap{grid-area:s;margin:0!important}
body.u .search-result-item>div>a:last-child{grid-area:c;font-weight:600;font-size:.93rem;color:var(--acc)!important;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
body.u .search-result-item .text-yellow-400{color:var(--star)!important}
body.u .search-result-item .text-gray-300{color:var(--line-2)!important}
body.u .search-result-item .text-gray-600{color:var(--muted)!important}
body.u .search-result-item svg{color:var(--muted)}
body.u .badge{display:inline-block;text-transform:none;letter-spacing:0;font-size:.8rem;font-weight:500;padding:.18rem .5rem;border-radius:var(--r);background:var(--wash);color:var(--ink);border:0}
body.u .badge-gray{background:transparent;color:var(--muted)}
@media (max-width:860px){
  body.u .search-result-item>div{grid-template-columns:1fr auto;grid-template-areas:"t t" "r r" "m m" "l l" "s s" "c c";row-gap:.35rem}
}
body[data-list="grid"] #results-container{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 28px}
body[data-list="grid"] .search-result-item>div{display:flex!important;flex-direction:column;align-items:flex-start;gap:.3rem}
body.u .search-result-item[hidden]{display:none!important}
.u-empty{padding:1.5rem 0;color:var(--muted)}

/* ---------- Fiche ---------- */
.u-fiche-hd{padding:28px 0 32px;border-bottom:2px solid var(--ink)}
.u-fiche-hd h1{font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:800;line-height:1.08;letter-spacing:-.02em;margin:0 0 .6rem;max-width:28ch}
.u-fiche-hd p{margin:0;color:var(--muted);font-size:1.02rem}
.u-rating{display:flex;align-items:center;gap:.5rem;margin-top:.6rem}
.u-stars{color:var(--star);letter-spacing:.06em}
.u-stars i{font-style:normal;color:var(--line-2)}
.u-fiche{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;align-items:start;padding:32px 0 56px}
.u-block{margin-bottom:40px}
.u-block>h2{font-size:1.3rem;font-weight:800;margin:0 0 .9rem;padding-bottom:.55rem;border-bottom:1px solid var(--line)}
.u-tags{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0;padding:0}
.u-tags li{padding:.35rem .7rem;background:var(--wash);border-radius:var(--r);font-size:.93rem}
.u-dl{margin:0}
.u-dl div{padding:.75rem 0;border-bottom:1px solid var(--line)}
.u-dl dt{font-size:.85rem;color:var(--muted)}
.u-dl dd{margin:.15rem 0 0;font-weight:600;word-break:break-word}
.u-dl dd a{color:var(--acc);font-weight:600}
.u-aside{position:sticky;top:84px;padding:1.4rem;border:1px solid var(--line-2);border-radius:var(--r)}
.u-aside h2{font-size:1.15rem;font-weight:800;margin:0 0 .3rem}
.u-aside .u-btn{width:100%;margin-top:1.1rem}
.u-review{padding:1rem 0;border-bottom:1px solid var(--line)}
.u-review-hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .7rem;margin-bottom:.35rem}
.u-review-hd b{font-weight:650}
.u-review-hd time{margin-left:auto;font-size:.86rem;color:var(--muted)}
.u-review p{margin:0}
.u-fiche #map{height:300px!important;border-radius:var(--r)!important;box-shadow:none!important;border:1px solid var(--line)}
.u-more>div{background:none!important;border:0!important;padding:0!important;margin:0!important}
.u-more a{color:var(--acc)}
@media (max-width:900px){.u-fiche{grid-template-columns:1fr;gap:8px}.u-aside{position:static}}

/* ---------- Pages internes non recomposées (statiques, régions) ---------- */
body.u.u-legacy main .bg-blue-700,body.u.u-legacy main .bg-blue-800,body.u.u-legacy main .bg-blue-600{background:var(--ink)!important}
body.u.u-legacy main .text-blue-800,body.u.u-legacy main .text-blue-700,body.u.u-legacy main .text-blue-600{color:var(--acc)!important}
body.u.u-legacy main .bg-orange-600{background:var(--acc)!important}
body.u.u-legacy main .shadow-lg,body.u.u-legacy main .shadow-md,body.u.u-legacy main .shadow{box-shadow:none!important}
body.u.u-legacy main .rounded-lg{border-radius:var(--r)!important}
body.u .bg-gray-100,body.u .bg-gray-50{background:var(--wash)!important}
body.u .text-white h1,body.u .text-white h2,body.u .text-white h3,body.u .text-white h4{color:inherit}

/* ---------- Mobile ---------- */
@media (max-width:640px){
  body.u{font-size:16px}
  .u-sec{padding:40px 0}
  .u-brand b{font-size:.98rem}
  .u-btn{white-space:normal;text-align:center}
  .u-actions .u-btn{flex:1 1 100%}
  .u-search-row{flex-wrap:wrap}
  .u-search-row .u-btn{width:100%;margin:0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ==========================================================================
   Gabarit « v2 » (annuaires récents) : structure conservée, couleurs de famille -> tokens
   ========================================================================== */
body.u-legacy{background:var(--paper)!important}
body.u-legacy [class*="text-brand-"]{color:var(--acc)!important}
body.u-legacy .text-brand-50,body.u-legacy .text-brand-100,body.u-legacy .text-brand-200,body.u-legacy .text-brand-300{color:var(--muted)!important}
body.u-legacy .text-brand-800,body.u-legacy .text-brand-900{color:var(--ink)!important}
body.u-legacy :is([class^="bg-brand-"],[class*=" bg-brand-"]){background:var(--acc)!important;color:#fff}
body.u-legacy .bg-brand-50,body.u-legacy .bg-brand-100{background:var(--wash)!important;color:var(--ink)}
body.u-legacy [class*="border-brand-"]{border-color:var(--line-2)!important}
body.u-legacy [class*="hover:text-brand-"]:hover{color:var(--acc-d)!important;text-decoration:underline}
body.u-legacy [class*="hover:bg-brand-"]:hover{background:var(--acc-d)!important}
body.u-legacy [class*="focus:ring-brand-"]:focus{box-shadow:0 0 0 2px var(--acc)!important}
body.u-legacy .bg-white a.hover\:text-white:hover{color:var(--acc)!important;text-decoration:underline}
body.u-legacy .text-yellow-400{color:var(--star)!important}

/* en-tête de page (ancienne photo assombrie) */
.u-g2hero{background:var(--paper)!important;color:var(--ink)!important;border-bottom:1px solid var(--line);padding-top:40px!important;padding-bottom:40px!important}
.u-g2hero .text-center{text-align:left!important}
.u-g2hero .mx-auto:not(.container){margin-left:0!important}
.u-g2hero .justify-center{justify-content:flex-start!important}
.u-g2hero h1{font-family:var(--f-disp)!important;color:var(--ink)!important;font-size:clamp(2rem,4.4vw,3.2rem)!important;font-weight:800!important;letter-spacing:-.02em;line-height:1.05!important}
.u-g2hero p{color:var(--muted)!important;font-size:1.08rem!important}
.u-g2hero nav,.u-g2hero nav a{color:var(--muted)!important}
.u-g2hero nav a:hover{color:var(--ink)!important}
.u-g2hero nav .text-white{color:var(--ink)!important}
.u-g2hero .bg-opacity-20{background:transparent!important;border-left:2px solid var(--ink);border-radius:0!important;padding:.2rem 1.2rem .2rem .9rem!important;text-align:left!important}
.u-g2hero .bg-opacity-20 .text-3xl,.u-g2hero .bg-opacity-20 .text-2xl{font-family:var(--f-disp);font-variant-numeric:tabular-nums;color:var(--ink)}
.u-g2hero select,.u-g2hero input{border:2px solid var(--ink)!important;border-radius:var(--r)!important;font-family:var(--f-body)}
.u-g2hero .bg-white.rounded-xl{background:transparent!important;box-shadow:none!important;padding:0!important}

/* blocs et cartes : filets plutôt qu'ombres */
body.u-legacy main .rounded-xl,body.u-legacy main .rounded-lg{border-radius:var(--r)!important}
body.u-legacy main .shadow-sm,body.u-legacy main .shadow-lg,body.u-legacy main .shadow,body.u-legacy main .shadow-md{box-shadow:none!important}
body.u-legacy main .bg-white.rounded-xl,body.u-legacy main .bg-white.rounded-lg{border:1px solid var(--line)!important}
body.u-legacy main .hover\:shadow-md:hover{border-color:var(--ink)!important}
body.u-legacy main h2{font-family:var(--f-disp);color:var(--ink)}
body.u-legacy main h3{font-family:var(--f-disp)}
body.u-legacy .article-content h2{font-family:var(--f-disp)!important;font-weight:800;border:0!important;padding-left:0!important}
body.u-legacy .article-content a{color:var(--acc)!important}
body.u-legacy .rounded-full{border-radius:var(--r)!important}
/* bandeau de fiche (aplat de couleur) -> en-tête sobre */
body.u-legacy main div.bg-brand-600.text-white,body.u-legacy main div.bg-brand-700.text-white{background:var(--paper)!important;color:var(--ink)!important;border-bottom:2px solid var(--ink);padding-left:0!important;padding-right:0!important}
body.u-legacy main div.bg-brand-600.text-white h1,body.u-legacy main div.bg-brand-700.text-white h1{color:var(--ink)!important;font-family:var(--f-disp);font-weight:800;letter-spacing:-.02em}
body.u-legacy main > .bg-white.rounded-lg.overflow-hidden{border:0!important}
body.u-legacy button:is([class^="bg-brand-"],[class*=" bg-brand-"]),body.u-legacy a:is([class^="bg-brand-"],[class*=" bg-brand-"]){border-radius:var(--r)!important}
body.u-legacy .article-content{box-shadow:none!important;border:0!important;padding:0!important;background:transparent!important}
/* blocs d'origine réinsérés tels quels sur une page recomposée */
.u-salvage .bg-white,.u-salvage .bg-gray-50,.u-salvage .bg-blue-50{background:transparent!important}
.u-salvage .shadow,.u-salvage .shadow-md,.u-salvage .shadow-lg,.u-salvage .shadow-sm{box-shadow:none!important}
.u-salvage .rounded,.u-salvage .rounded-lg,.u-salvage .rounded-xl{border-radius:var(--r)!important}
.u-salvage a{color:var(--acc)}
.u-salvage h2{font-size:clamp(1.3rem,2.2vw,1.6rem);font-weight:800;margin:0 0 1rem}
.u-salvage>.u-wrap>*+*{margin-top:2rem}
.u-salvage [class*="bg-blue-"],.u-salvage [class*="bg-orange-"],.u-salvage [class*="bg-green-"],.u-salvage [class*="bg-red-"],.u-salvage [class*="bg-indigo-"],.u-salvage [class*="bg-purple-"]{background:var(--wash)!important;color:var(--ink)!important}
.u-salvage .text-white{color:var(--ink)!important}
.u-salvage [class*="from-"],.u-salvage [class*="bg-gradient"]{background:var(--wash)!important;color:var(--ink)!important}
.u-salvage h2,.u-salvage h3{color:var(--ink)!important}

/* ==========================================================================
   Gabarit « g3 » (annuaires les plus récents) : restyle CSS seul, structure et widget VUD intacts
   ========================================================================== */
body.u-g3{background:var(--paper)!important}
body.u-g3 [class*="text-brand-"]{color:var(--acc)!important}
body.u-g3 .text-brand-50,body.u-g3 .text-brand-100,body.u-g3 .text-brand-200{color:var(--muted)!important}
body.u-g3 :is([class^="bg-brand-"],[class*=" bg-brand-"]){background:var(--acc)!important;color:#fff}
body.u-g3 .bg-brand-50,body.u-g3 .bg-brand-100{background:var(--wash)!important;color:var(--ink)}
body.u-g3 [class*="border-brand-"]{border-color:var(--line-2)!important}
body.u-g3 [class*="hover:bg-brand-"]:hover{background:var(--acc-d)!important}
body.u-g3 .text-yellow-400{color:var(--star)!important}
body.u-g3 .rounded-xl,body.u-g3 .rounded-2xl,body.u-g3 .rounded-lg{border-radius:var(--r)!important}
body.u-g3 main .shadow-sm,body.u-g3 main .shadow,body.u-g3 main .shadow-md,body.u-g3 main .shadow-lg,body.u-g3 section .shadow-sm,body.u-g3 section .shadow-md{box-shadow:none!important}
body.u-g3 main .bg-white.rounded-xl,body.u-g3 section .bg-white.rounded-xl{border:1px solid var(--line)!important}
body.u-g3 .font-extrabold{font-family:var(--f-disp)}
.u-g3hero{background:var(--paper)!important;color:var(--ink)!important;border-bottom:1px solid var(--line)}
.u-g3hero h1{color:var(--ink)!important;font-family:var(--f-disp);letter-spacing:-.02em}
.u-g3hero .text-white,.u-g3hero [class*="text-white"]{color:var(--ink)!important}
.u-g3hero p,.u-g3hero [class*="text-brand-1"],.u-g3hero [class*="text-gray-"]{color:var(--muted)!important}
.u-g3hero [class*="bg-white/"],.u-g3hero .bg-opacity-10,.u-g3hero .bg-opacity-20{background:var(--wash)!important}
.u-g3hero input{border:2px solid var(--ink)!important;border-radius:var(--r)!important}
.u-g3hero :is([class^="bg-brand-"],[class*=" bg-brand-"]),.u-g3hero button[class*="bg-"],.u-g3hero a:is([class^="bg-brand-"],[class*=" bg-brand-"]){color:#fff!important}
body.u-g3 section span.uppercase,body.u-g3 section span[class*="tracking-wider"],body.u-g3 section span[class*="tracking-widest"]{text-transform:none!important;letter-spacing:0!important;background:none!important;padding:0!important;font-weight:600;color:var(--muted)!important;font-size:.95rem!important}
/* zones en dégradé dont les couleurs de famille ont été retirées : fond lavis, texte encre */
body.u-legacy [class*="from-brand-"],body.u-legacy [class*="bg-gradient-to-"]{background:var(--wash)!important;color:var(--ink)!important}
body.u-legacy [class*="from-brand-"] .text-white,body.u-legacy [class*="bg-gradient-to-"] .text-white,body.u-legacy [class*="from-brand-"] h1,body.u-legacy [class*="from-brand-"] h2{color:var(--ink)!important}
body.u-legacy [class*="from-brand-"] [class*="text-brand-1"],body.u-legacy [class*="from-brand-"] [class*="text-brand-2"]{color:var(--muted)!important}
/* boutons d'action (formulaires de devis, appels) : toujours pleins */
body.u button:is([class^="bg-brand-"],[class*=" bg-brand-"]),body.u input[type=submit]:is([class^="bg-brand-"],[class*=" bg-brand-"]),body.u a:is([class^="bg-brand-"],[class*=" bg-brand-"]){background:var(--acc)!important;color:#fff!important;border:0!important}
body.u button:is([class^="bg-brand-"],[class*=" bg-brand-"]):hover,body.u a:is([class^="bg-brand-"],[class*=" bg-brand-"]):hover{background:var(--acc-d)!important}
/* mobile : cibles tactiles >= 44 px dans la liste des pros, carte plus courte */
@media (max-width:860px){
  body.u .search-result-item h3 a{display:block;padding:.35rem 0;min-height:44px;box-sizing:border-box}
  body.u .search-result-item>div>a:last-child{display:inline-flex;align-items:center;min-height:44px;padding:0 .2rem}
  body.u .u-cityhd #map{height:180px!important}
  .u-bc a{display:inline-block;padding:.5rem 0}
  .u-index li a{min-height:44px;box-sizing:border-box;align-items:center}
}
/* cartes Leaflet : sous l'en-tête collant */
#map{isolation:isolate;position:relative;z-index:0}
.u-hd{z-index:1000}
.leaflet-container a{color:var(--acc)}
/* photos GMB : en-tête de fiche et vignettes de liste */
.u-fiche-hd.u-has-photo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:32px;align-items:start}
.u-fiche-hd.u-has-photo>div{grid-row:1}
.u-photo{grid-column:2;grid-row:1;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r);background:var(--wash)}
@media (max-width:860px){.u-fiche-hd.u-has-photo{grid-template-columns:1fr}.u-photo{grid-column:1;grid-row:1}.u-fiche-hd.u-has-photo>div{grid-row:2}}
.u-thumb{grid-area:p;width:96px;height:72px;object-fit:cover;border-radius:var(--r);background:var(--wash)}
body.u .search-result-item>div:has(.u-thumb){grid-template-columns:96px minmax(0,1.6fr) auto minmax(0,1.2fr) auto;grid-template-areas:"p t r s c" "p m r s c" "p l r s c"}
@media (max-width:860px){
  body.u .search-result-item>div:has(.u-thumb){grid-template-columns:72px minmax(0,1fr);grid-template-areas:"p t" "p r" "m m" "l l" "s s" "c c";column-gap:14px}
  .u-thumb{width:72px;height:72px}
}
body[data-list="grid"] .search-result-item .u-thumb{width:100%;height:auto;aspect-ratio:3/2}
.u-photo-g2{float:right;width:min(400px,42%);height:auto;aspect-ratio:16/9;object-fit:cover;margin:0 0 1rem 1.5rem;border-radius:var(--r);background:var(--wash)}
@media (max-width:860px){.u-photo-g2{float:none;width:100%;margin:0 0 1rem}}
/* en-têtes avec photo (accueil historique : Pexels ; gabarit récent : photo d'origine nette) */
.u-hero-fig{margin:0;align-self:start}
.u-hero-fig img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);background:var(--wash)}
.u-hero-fig figcaption{font-size:.78rem;color:var(--muted);margin-top:.4rem}
.u-sec--tight{padding-top:32px;padding-bottom:40px}
.u-g2hero>div{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);column-gap:56px;align-items:center}
.u-g2hero>div>*{grid-column:1}
.u-g2hero>div>.u-g2fig{grid-column:2;grid-row:1/span 10;margin:0}
.u-g2fig img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
@media (max-width:900px){.u-g2hero>div{grid-template-columns:1fr}.u-g2hero>div>.u-g2fig{grid-column:1;grid-row:auto;order:-1;margin-bottom:1.2rem}.u-g2fig img{aspect-ratio:16/9}}
.u-g2hero .flex.gap-4,.u-g2hero .flex.flex-wrap{gap:2rem!important}
.u-g2hero .bg-opacity-20 .text-3xl,.u-g2hero .bg-opacity-20 .text-2xl{font-size:2rem!important;font-weight:800}
.u-g2hero .bg-opacity-20 div:last-child{font-size:.85rem;color:var(--muted)!important}
/* contenu éditorial : article, plus de boîte */
body.u-legacy main section.bg-white:has(> .article-content){border:0!important;padding:0!important;background:transparent!important;margin-bottom:2.5rem!important}
body.u-legacy main .article-content{max-width:72ch}
.u-g2hero select{width:100%;max-width:520px;padding:.85rem 1rem!important;font-size:1rem}
/* en-tête g2 : chiffres décollés de leur filet (la règle .bg-white.rounded-xl plus haut les remettait à 0) ; guide sans cadre */
.u-g2hero .bg-white.bg-opacity-20{padding:.15rem 1.4rem .15rem 1rem!important}
body.u-legacy main .seo-editorial.bg-white.rounded-lg,html body .seo-editorial.seo-editorial{background:transparent!important;box-shadow:none!important;border:0!important;padding:0!important}
body.u .seo-editorial>figure{max-width:100%!important}
/* g2 : vignette photo Google de l'établissement dans la liste */
div:has(> .flex > .u-thumb-g2){position:relative;padding-left:calc(1.25rem + 104px)!important;min-height:calc(88px + 2.5rem)}
.u-thumb-g2{position:absolute;left:1.25rem;top:1.25rem;width:88px;height:88px;object-fit:cover;border-radius:var(--r);background:var(--wash)}
body.u-g2 .flex.justify-between>span.text-xs{min-width:0;max-width:45%;overflow-wrap:anywhere;text-align:right}
@media (max-width:640px){div:has(> .flex > .u-thumb-g2){padding-left:calc(1rem + 76px)!important;min-height:calc(64px + 2rem)}
  .u-thumb-g2{left:1rem;top:1rem;width:64px;height:64px}
  body.u-g2 .flex.justify-between.items-start:has(>span.text-xs){flex-direction:column}
  body.u-g2 .flex.justify-between>span.text-xs{max-width:100%;text-align:left;margin-top:.4rem}}
/* g3 : photo Google de l'établissement sur la fiche */
.u-photo-g3{flex:none;width:200px;height:200px;object-fit:cover;border-radius:var(--r);background:var(--wash)}
@media (max-width:1023px){.u-photo-g3{width:100%;height:auto;aspect-ratio:16/9}}
/* mode léger : photo Google dans les cartes (image enfant direct) et en tête de fiche */
div.p-4:has(> .u-thumb-g2){position:relative;padding-left:calc(1rem + 104px)!important;min-height:calc(88px + 2rem)}
div.p-4:has(> .u-thumb-g2)>.u-thumb-g2{left:1rem;top:1rem}
.u-photo-leg{display:block;width:100%;max-height:340px;object-fit:cover;border-radius:var(--r);margin:0 0 1.2rem;background:var(--wash)}
@media (max-width:640px){div.p-4:has(> .u-thumb-g2){padding-left:calc(1rem + 76px)!important;min-height:calc(64px + 2rem)}}
/* encadrés à fond dégradé d'origine (newsletter, partenaire…) passés en fond clair : leurs boutons blancs deviennent pleins */
.u-g2hero button.bg-white,.u-g2hero a.bg-white,.u-g2hero input[type=submit].bg-white{background:var(--acc)!important;color:#fff!important;border:0!important}
.u-g2hero button.bg-white:hover,.u-g2hero a.bg-white:hover{background:var(--acc-d)!important}
/* boutons d'action en dégradé Tailwind (souvent vers une couleur absente du CDN 2.2 → fond qui s'efface) : fond plein */
body.u button[class*="bg-gradient-to-"],body.u a[class*="bg-gradient-to-"][class*="rounded"]:not(:has(*:not(span):not(svg):not(i))){background:var(--acc)!important;color:#fff!important}
body.u button[class*="bg-gradient-to-"]:hover{background:var(--acc-d)!important}
/* carte sans photo dans une liste illustrée : vignette neutre à l'initiale */
.u-thumb--none{display:flex;align-items:center;justify-content:center;font-family:var(--f-disp);font-weight:800;font-size:1.6rem;color:var(--acc);background:var(--wash);border:1px solid var(--line)}
body[data-list="grid"] .search-result-item .u-thumb--none{font-size:2.6rem}
/* bloc Régions seul dans sa section : pleine largeur, plus de colonnes */
.u-split>.u-index:only-child{grid-column:1/-1}
.u-split>.u-index:only-child .u-cols{columns:4 190px!important}
/* g2 accueil : vignette dans les cartes « populaires » ; FAQ placée après <main> remise dans la colonne */
div.p-5:has(> .u-thumb-g2){position:relative;padding-left:calc(1.25rem + 104px)!important;min-height:calc(88px + 2.5rem)}
@media (max-width:640px){div.p-5:has(> .u-thumb-g2){padding-left:calc(1rem + 76px)!important;min-height:calc(64px + 2rem)}}
body.u main ~ section.mb-12{width:100%;margin-left:auto!important;margin-right:auto!important;padding-left:1rem;padding-right:1rem}
@media (min-width:640px){body.u main ~ section.mb-12{max-width:640px}}@media (min-width:768px){body.u main ~ section.mb-12{max-width:768px}}
@media (min-width:1024px){body.u main ~ section.mb-12{max-width:1024px}}@media (min-width:1280px){body.u main ~ section.mb-12{max-width:1280px}}
/* g3 accueil : photo du site à droite du titre (variable posée dans ui-skin.css), recherche en un seul cadre, carte métier unique en largeur, pastilles-étiquettes retirées */
@media (min-width:1024px){body.u-g3 .u-g3hero:has(form[role=search]){min-height:440px}
  body.u-g3 .u-g3hero:has(form[role=search])::after{content:"";position:absolute;z-index:1;top:3rem;bottom:3rem;right:max(2rem,calc((100vw - 80rem)/2 + 2rem));width:min(36%,460px);background:var(--u-hero-img,none) center/cover no-repeat;border-radius:var(--r)}
  body.u-g3 .u-g3hero:has(form[role=search]) .max-w-3xl{max-width:min(48rem,56%)}}
.u-g3hero form .flex:has(> .flex-1 > input){border:2px solid var(--ink);border-radius:var(--r)!important;box-shadow:none!important;background:var(--paper)!important}
.u-g3hero form .flex:has(> .flex-1 > input) input{border:0!important;box-shadow:none!important;outline:0}
.u-g3hero form .flex:has(> .flex-1 > input):focus-within{outline:2px solid var(--acc);outline-offset:2px}
.u-g3hero form .flex:has(> .flex-1 > input) button{border-radius:0!important}
body.u-g3 #metiers .grid>a:only-child{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;column-gap:2rem;align-items:center;padding:1.6rem 1.8rem}
body.u-g3 #metiers .grid>a:only-child>.text-4xl{display:none}
body.u-g3 #metiers .grid>a:only-child>h3,body.u-g3 #metiers .grid>a:only-child>p{grid-column:1;margin-bottom:.25rem}
body.u-g3 #metiers .grid>a:only-child>div.flex{grid-column:2;grid-row:1/span 2;flex-direction:column;align-items:flex-end;gap:.2rem;font-weight:600;color:var(--ink)}
body.u-g3 section .text-center>span.uppercase:first-child{display:none}
@media (max-width:640px){body.u-g3 #metiers .grid>a:only-child{grid-template-columns:1fr}body.u-g3 #metiers .grid>a:only-child>div.flex{grid-column:1;grid-row:auto;flex-direction:row;align-items:center}}
/* classes Tailwind 3 utilisées par certains gabarits mais absentes du Tailwind 2.2.19 chargé (texte blanc sur blanc sinon) */
.text-slate-200,.hover\:text-slate-200:hover{color:#e2e8f0}.text-slate-700{color:#334155}
.bg-slate-600{background-color:#475569}.hover\:bg-slate-700:hover{background-color:#334155}.hover\:bg-slate-50:hover{background-color:#f8fafc}
.bg-amber-50{background-color:#fffbeb}.border-amber-200{border-color:#fde68a}.border-amber-500{border-color:#f59e0b}
.text-amber-900{color:#78350f}.hover\:text-amber-600:hover{color:#d97706}
header a.bg-white{color:var(--ink)!important}
/* g3 : bouton de recherche de l'en-tête (fond en style en ligne, texte forcé à l'encre par la règle .text-white) */
.u-g3hero form button[type=submit]{background:var(--acc)!important;color:#fff!important}
.u-g3hero form button[type=submit]:hover{background:var(--acc-d)!important}
/* textes de présentation (article-content) : puces à la couleur du site, intertitres h3 aérés */
body.u .article-content li::before{color:var(--acc)!important}
body.u .article-content h3{margin:1.4em 0 .45em!important;font-family:var(--f-disp)}
body.u .article-content ul,body.u .article-content ol{margin-top:.2em!important;margin-bottom:1em!important}
/* g2 mobile : les 3 chiffres de l'en-tête sur une ligne, cartes régions sur 2 colonnes */
@media (max-width:640px){
  body.u-g2 .u-g2hero .flex-wrap:has(>.bg-opacity-20){flex-wrap:nowrap!important;gap:.6rem!important}
  body.u-g2 .u-g2hero .flex-wrap>.bg-white.bg-opacity-20{flex:1 1 0;min-width:0;padding:.1rem .1rem .1rem .7rem!important}
  body.u-g2 .u-g2hero .flex-wrap>.bg-opacity-20 .text-3xl{font-size:1.45rem!important}
}
@media (max-width:767px){
  body.u-g2 section.mb-12>.grid.grid-cols-1:has(>a[href^="regions/"]){grid-template-columns:1fr 1fr!important;gap:.6rem!important}
  body.u-g2 section.mb-12>.grid.grid-cols-1>a[href^="regions/"]{padding:.75rem .8rem!important}
  body.u-g2 section.mb-12>.grid.grid-cols-1>a[href^="regions/"] h3{font-size:.95rem!important;line-height:1.25}
  body.u-g2 section.mb-12>.grid.grid-cols-1>a[href^="regions/"] .flex{flex-wrap:wrap;column-gap:.6rem;row-gap:0}
}
/* mode léger : dans l'ancien bandeau dégradé passé en fond clair, les boutons pleins (bg-brand) gardent leur texte blanc */
body.u-legacy [class*="from-brand-"] :is([class^="bg-brand-"],[class*=" bg-brand-"]).text-white,body.u-legacy [class*="bg-gradient-to-"] :is([class^="bg-brand-"],[class*=" bg-brand-"]).text-white{color:#fff!important}
/* mode léger : H1 géants (text-5xl/6xl) ramenés à une taille lisible sur mobile */
@media (max-width:640px){body.u-legacy h1.text-5xl,body.u-legacy h1.text-6xl{font-size:2.05rem!important;line-height:1.12!important}}
body.u-legacy [class*="from-brand-"] a.bg-white,body.u-legacy [class*="bg-gradient-to-"] a.bg-white{background:var(--paper)!important;color:var(--acc)!important;border:1px solid var(--line-2);box-shadow:none!important}
body.u-legacy [class*="from-brand-"] a.bg-white:hover,body.u-legacy [class*="bg-gradient-to-"] a.bg-white:hover{border-color:var(--acc)}
body.u-legacy [class*="from-brand-"],body.u-legacy [class*="from-brand-"] *,body.u-legacy [class*="bg-gradient-to-"] *{text-shadow:none!important}
/* mode léger : cartes « services » à icône emoji -> icône retirée ; sur mobile 2 colonnes compactes, H2 text-4xl ramené */
body.u-legacy .grid>div.bg-white:has(>.text-4xl+h3)>.text-4xl{display:none}
@media (max-width:640px){
  body.u-legacy .grid.grid-cols-1:has(>div.bg-white>.text-4xl+h3){grid-template-columns:1fr 1fr!important;gap:.6rem!important}
  body.u-legacy .grid>div.bg-white:has(>.text-4xl+h3){padding:.85rem .9rem!important}
  body.u-legacy .grid>div.bg-white:has(>.text-4xl+h3)>h3{font-size:1rem!important;line-height:1.25}
  body.u-legacy .grid>div.bg-white:has(>.text-4xl+h3)>p{margin-bottom:.5rem!important}
  body.u-legacy h2.text-4xl{font-size:1.6rem!important;line-height:1.2!important;margin-bottom:1.5rem!important}
}
@media (max-width:640px){
  body.u-legacy .grid.grid-cols-1:has(>a[href^="regions/"]){grid-template-columns:1fr 1fr!important;gap:.6rem!important}
  body.u-legacy .grid.grid-cols-1>a[href^="regions/"]{padding:.75rem .8rem!important}
  body.u-legacy .grid.grid-cols-1>a[href^="regions/"] h3{font-size:.95rem!important;line-height:1.25}
}
/* page ville : l'encart devis VUD est injecté dans l'en-tête -> notre bouton « Demander un devis » ferait doublon */
.u-cityhd:has(.vud-cta-box) .u-actions .u-btn--acc{display:none}
/* vidéos YouTube intégrées dont l'intégration est refusée (oEmbed 401, contrôle du 05/10) : lecteur vide -> bloc masqué */
figure:has(iframe[src*="/embed/vQ-gvK9Zp7s"]){display:none!important}
/* fiches sans téléphone / sans site : lien tel vide et « Visiter le site web » vers # -> masqués avec leur ligne */
a[href="tel:"]:empty,a[href="#"][target="_blank"]{display:none!important}
div.flex:has(>a[href="tel:"]:only-child:empty),div.flex:has(>a[href="#"][target="_blank"]:only-child){display:none!important}
/* fiche g2 : la photo flottante débordait de l'en-tête et rétrécissait le contenu dessous -> grille dans l'en-tête */
@media (min-width:861px){
  div:has(>.u-photo-g2){display:grid;grid-template-columns:minmax(0,1fr) min(380px,40%);column-gap:2rem;align-content:start}
  div:has(>.u-photo-g2)>*{grid-column:1}
  div:has(>.u-photo-g2)>.u-photo-g2{float:none;grid-column:2;grid-row:1/span 6;width:100%;margin:0;align-self:start}
}
/* noms/adresses sans espace (« Nom.Métier.Spécialité ») : césure forcée dans les cartes de liste, plus de débordement mobile */
body.u .flex-1{min-width:0}
body.u .flex-1>a,body.u .flex-1>p,body.u .flex-1>h3{overflow-wrap:anywhere}
/* tableaux des guides : le conteneur défilant ne doit pas élargir ses parents (grille/flex) sur mobile */
.u-table{max-width:100%}
body.u .prose,body.u .article-content,body.u .seo-editorial,body.u main .grid>*{min-width:0}
/* garde-fou : aucune page ne défile horizontalement (clip, pas hidden : ne casse pas les éléments sticky du widget VUD) */
html:has(body.u),body.u{overflow-x:clip}
/* mots très longs (« Construction/Rénovation/Extension », URL) dans titres et liens : coupés seulement s'ils débordent */
body.u h1,body.u h2,body.u h3,body.u a{overflow-wrap:break-word}
/* H1 secondaires rétrogradés en H2 (un seul H1 par page) : même taille qu'avant via leurs classes text-4xl/5xl */
/* g3 : pastilles de catégorie vides */
body.u span[class*="bg-"]:empty,body.u span[class*="rounded-full"]:empty{display:none}
/* carte générée vide (titre seul, ex. « Autres professionnels a Chanas » des fiches g3) : masquée */
body.u div.rounded-xl:not([id^="vud"]):has(> h2:only-child),body.u div.rounded-2xl:not([id^="vud"]):has(> h2:only-child){display:none}
/* encadré « En bref » des pages villes (chiffres calculés depuis la liste de la page) */
.u-enbref{border:1px solid var(--line-2,#d9dde3);border-left:3px solid var(--acc,#2d632b);background:var(--paper,#fff);border-radius:var(--r,6px);padding:14px 16px;margin:18px 0}
.u-enbref-t{font-weight:700;margin:0 0 6px;font-size:1rem}
.u-enbref ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.u-enbref li{padding-left:14px;position:relative}.u-enbref li:before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--acc,#2d632b)}
.u-enbref-src{margin:8px 0 0;font-size:.8rem;color:var(--muted,#6b7280)}

/* ===== punch v1 (10/10/2026) : profondeur, hiérarchie, interactions — aplats, aucun dégradé ; rien sous [id^="vud-"] / .vud-* ===== */
html:root{--r:8px;--sh1:0 1px 2px rgba(15,23,42,.05),0 2px 6px -2px rgba(15,23,42,.08);--sh2:0 18px 36px -18px rgba(15,23,42,.38),0 2px 6px -2px rgba(15,23,42,.08)}

/* En-tête : séparation nette */
.u-hd{box-shadow:0 1px 0 var(--line),0 10px 24px -22px rgba(15,23,42,.6)}

/* Titres de section : trait d'accent plein sous le titre */
.u-h2::after,body.u-legacy main>div>section>h2.text-2xl::after,body.u-legacy main section>h2.text-2xl::after,body.u-g3 main section>h2::after{content:"";display:block;width:44px;height:4px;margin-top:.6rem;background:var(--acc);border-radius:2px}
.text-center>.u-h2::after,h2.text-center::after{margin-left:auto;margin-right:auto}

/* Boutons : plus francs, réaction au survol */
.u-btn{font-weight:700;transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease}
.u-btn--acc:hover,.u-btn--ink:hover{transform:translateY(-1px);box-shadow:0 10px 20px -12px rgba(15,23,42,.55)}
.u-btn:active{transform:translateY(0)}

/* Cartes (gabarits g2/g3) : relief + survol */
body.u-legacy main .bg-white.hover\:shadow-md,body.u-legacy main a.bg-white,body.u-g3 main .bg-white.hover\:shadow-md,body.u-g3 main a.bg-white{box-shadow:var(--sh1)!important;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
body.u-legacy main .bg-white.hover\:shadow-md:hover,body.u-legacy main a.bg-white:hover,body.u-g3 main .bg-white.hover\:shadow-md:hover,body.u-g3 main a.bg-white:hover{transform:translateY(-3px);box-shadow:var(--sh2)!important;border-color:var(--acc)!important}
body.u-legacy main .bg-white.rounded-xl .text-yellow-600,body.u-legacy main a.bg-white .text-yellow-600{color:var(--acc)!important}

/* Listes de professionnels (pages villes) : ligne active marquée */
body.u .search-result-item{transition:background-color .15s ease,box-shadow .15s ease}
body.u .search-result-item:hover{background:var(--wash)!important;box-shadow:inset 3px 0 0 var(--acc)!important}
body.u .search-result-item h3 a{transition:color .15s ease}
body[data-list="grid"] .search-result-item{border:1px solid var(--line)!important;border-radius:var(--r)!important;background:var(--paper)!important;box-shadow:var(--sh1)!important}
body[data-list="grid"] .search-result-item:hover{transform:translateY(-3px);box-shadow:var(--sh2)!important;border-color:var(--acc)!important}

/* Vignettes sans photo : initiale sur aplat d'accent (au lieu d'un carré gris) */
.u-thumb--none,.u-thumb-g2.u-thumb--none{background:var(--acc)!important;color:#fff!important;border:0!important}
body[data-list="grid"] .search-result-item .u-thumb--none{aspect-ratio:auto;height:96px;font-size:2.2rem}

/* Chiffres du hero : plus gros, couleur d'accent */
.u-g2hero .bg-opacity-20{border-left:3px solid var(--acc)!important}
.u-g2hero .bg-opacity-20 .text-3xl,.u-g2hero .bg-opacity-20 .text-2xl{color:var(--acc)!important}

/* Photos : profondeur */
.u-g2fig img,.u-hero-fig img,.u-photo,.u-photo-g2,.u-photo-g3{box-shadow:var(--sh2)}

/* Index (grandes villes, régions, prestations) : survol directionnel */
.u-index li a,.u-svc a{transition:color .15s ease,padding-left .15s ease}
.u-index li a:hover,.u-svc a:hover{padding-left:.4rem}

/* Encadré « En bref » et aside fiche : bord d'accent */
.u-enbref{border-left:4px solid var(--acc)!important}
.u-aside{box-shadow:var(--sh1);border-top:4px solid var(--acc)}

/* FAQ : question ouverte repérable */
body.u main details[open]{border-color:var(--acc)!important}
body.u main details summary{transition:color .15s ease}
body.u main details summary:hover{color:var(--acc)}

/* Accessibilité : focus visible */
:where(body.u) :where(a,button,summary,input,select):focus-visible{outline:3px solid var(--acc);outline-offset:2px}

@media (prefers-reduced-motion:reduce){.u-btn,.search-result-item,body.u main .bg-white{transition:none!important;transform:none!important}}
/* ===== fin punch v1 ===== */

/* ===== punch v2 (10/10/2026) : identité, heros, listes, fiches — aplats, aucun dégradé ; rien sous [id^="vud-"] / .vud-*
   Variables lues (posées par ui-skin.css du site, lot A) : --brand-logo --brand-ratio --brand-h --brand-on(0|1) --brand-show --brand-svg
   --mark --hero-dir(ltr|rtl) --acc-ink. Toutes ont un défaut : sans elles, le rendu reste propre. ===== */
:root{--acc-ink:#fff}

/* B1 en-tête : logo réel (si fourni), trait d'accent, nom masqué visuellement quand le logo le porte */
.u-hd{border-bottom:4px solid var(--acc);box-shadow:none}
body[data-hd="band"] .u-hd{border-bottom-color:var(--ink)}
.u-hd .u-wrap{min-height:68px}
.u-brand b{font-size:1.16rem}
.u-brand svg{display:var(--brand-svg,block)}
.u-brand::before{content:"";flex:none;display:var(--brand-show,none);height:var(--brand-h,40px);aspect-ratio:var(--brand-ratio,3);max-width:min(58vw,240px);background:var(--brand-logo,none) left center/contain no-repeat;background-origin:content-box}
.u-brand b{max-width:calc((1 - var(--brand-on,0)) * 40em);overflow:hidden;white-space:nowrap}
.u-ft .u-brand::before{background-color:var(--paper);padding:6px 10px;border-radius:var(--r)}
.u-nav a{font-weight:600}
/* g3 : <img id="site-logo-img"> (PNG 1024² à marges) -> masqué, sauf logo rogné fourni par le site */
#site-logo-img{content:var(--brand-logo,url(/logo.png));height:calc(var(--brand-on,0) * 44px)!important;width:auto!important;max-width:220px;object-fit:contain;margin-right:calc(var(--brand-on,0) * 8px)!important}
#site-header a[href="/"]>svg{width:calc((1 - var(--brand-on,0)) * 1.75rem)}
#site-header a[href="/"]>span{max-width:calc((1 - var(--brand-on,0)) * 40em);overflow:hidden;white-space:nowrap}

/* B2 photos des heros : aplat d'accent décalé derrière la photo (bloc plein, pas d'ombre floue) */
.u-hero-fig img,.u-g2fig img,.u-cityhd #map{box-shadow:14px 14px 0 var(--acc)!important}
.u-hero-fig figcaption{margin-top:1.1rem}
/* g1 accueil (bloc sous le widget) */
.u-hero{position:relative;overflow:hidden;padding:64px 0 72px}
.u-hero .u-wrap{align-items:center;direction:var(--hero-dir,ltr)}
@media (min-width:901px){.u-hero .u-wrap{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
.u-hero .u-wrap>*{direction:ltr}
.u-hero h1{font-size:clamp(2.4rem,5vw,4rem);max-width:14ch}
.u-hero-fig img{aspect-ratio:4/3;min-height:340px}
.u-hero::after,.u-g2hero::after{content:"";position:absolute;z-index:0;right:-3vw;bottom:-4rem;width:min(30vw,380px);aspect-ratio:1;background:var(--mark,none) center/contain no-repeat;opacity:.07;pointer-events:none}
.u-hero .u-wrap{position:relative;z-index:1}
.u-hero .u-hero-fig{position:relative}
/* g2 accueil */
.u-g2hero{position:relative;overflow:hidden;padding-top:56px!important;padding-bottom:64px!important;border-bottom:0!important;background:var(--wash)!important}
.u-g2hero>div{direction:var(--hero-dir,ltr)}
@media (min-width:901px){section.u-g2hero>div{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important}}
.u-g2hero>div>*{direction:ltr}
section.u-g2hero h1{font-size:clamp(2.4rem,4.6vw,3.8rem)!important;line-height:1.02!important;max-width:16ch;margin-left:0!important;margin-right:auto!important}
.u-g2hero .bg-opacity-20{border-left:4px solid var(--acc)!important}
.u-g2hero .bg-opacity-20 div:last-child{font-weight:600;color:var(--ink)!important}
.u-g2hero select{min-height:56px;border-color:var(--ink)!important;background-color:var(--paper)!important;font-weight:600!important;color:var(--ink)!important}
@media (min-width:901px){
  .u-g2hero .bg-opacity-20 .text-3xl,.u-g2hero .bg-opacity-20 .text-2xl{font-size:3rem!important;line-height:1.05;color:var(--acc)!important}
  section.u-g2hero .u-g2fig img{min-height:400px}
  /* g2 page ville / région : photo réduite, en-tête plus court, la liste remonte */
  div.u-g2hero{padding-top:36px!important;padding-bottom:40px!important}
  div.u-g2hero>div{grid-template-columns:minmax(0,1fr) minmax(0,38%)!important}
  div.u-g2hero .u-g2fig img{aspect-ratio:16/10;max-height:280px}
  div.u-g2hero h1{font-size:clamp(2.4rem,4.4vw,3.6rem)!important}
}
/* g2 bloc éditorial : aligné à gauche, intertitre fort */
body.u-legacy main section.bg-white:has(>.article-content){margin-left:0!important;background:var(--wash)!important;border-left:6px solid var(--acc)!important;padding:2.2rem 2.4rem!important;border-radius:0 var(--r) var(--r) 0!important}
body.u-legacy main .article-content{margin-left:0!important}
body.u-legacy main .article-content>h2:first-child{font-size:clamp(1.6rem,2.8vw,2.2rem)!important;line-height:1.15}
/* g3 accueil */
.u-g3hero h1{font-size:clamp(2.4rem,4.6vw,3.8rem)!important;line-height:1.03!important}
@media (min-width:1024px){body.u-g3 .u-g3hero:has(form[role=search])::after{box-shadow:14px 14px 0 var(--acc)}}
body.u-g3 .u-g3hero form .flex:has(> .flex-1 > input) input{min-height:56px}
/* g3 en-tête de page ville (photo + voile dégradé en ligne) : photo en noir et blanc, voile neutre, trait d'accent */
body.u-g3 .hero-city{position:relative;border-bottom:6px solid var(--acc)}
body.u-g3 .hero-city::before{content:"";position:absolute;inset:0;z-index:0;-webkit-backdrop-filter:grayscale(1);backdrop-filter:grayscale(1);pointer-events:none}
body.u-g3 .hero-city .badge-count{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--ink)!important;border-radius:var(--r)!important}

/* B3 pages villes */
@media (min-width:861px){.u-toolbar{position:sticky;top:68px;z-index:40;background:var(--paper);padding-top:.8rem}}
.u-toolbar input,.u-toolbar select{min-height:48px}
.u-cityhd h1{font-size:clamp(2.1rem,4.2vw,3.3rem)}
/* vignette sans photo : symbole du site en filigrane, couleurs alternées */
.u-thumb--none{isolation:isolate;overflow:hidden}
.u-thumb--none:not(.u-thumb-g2){position:relative}
.u-thumb--none::before{content:"";position:absolute;inset:14%;z-index:-1;background:var(--mark,none) center/contain no-repeat;filter:brightness(0) invert(1);opacity:.22}
.search-result-item:nth-child(3n+2) .u-thumb--none,.grid>div:nth-child(3n+2)>.u-thumb--none,.space-y-4>div:nth-child(3n+2) .u-thumb--none{background:var(--ink)!important}
/* g2 : cartes pro en 2 colonnes, nom fort, téléphone en bouton */
@media (min-width:1024px){
  body.u-g2 main .lg\:col-span-2>.space-y-4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
  body.u-g2 main .lg\:col-span-2>.space-y-4>*{margin:0!important}
}
body.u-g2 main .space-y-4>div.bg-white a.text-lg,body.u-g2 main .grid>div.bg-white>a.text-lg{font-size:1.15rem!important;font-weight:800!important;font-family:var(--f-disp)}
body.u-legacy main a[href^="tel:"]:not([id^="vud"] *):not(.vud-cta-box *):not(.cta-call){display:inline-flex;align-items:center;background:var(--acc);color:var(--acc-ink)!important;padding:.45rem .8rem;border-radius:var(--r);font-weight:700;text-decoration:none!important}
body.u-legacy main a[href^="tel:"]:not([id^="vud"] *):not(.vud-cta-box *):not(.cta-call):hover{background:var(--acc-d)}
body.u-legacy main .space-y-4 .text-gray-400.text-sm{color:var(--ink)!important;font-weight:700}
/* couleurs Tailwind d'origine (jaune/ambre) -> couleur du site */
body.u-legacy main :is([class*="text-yellow-5"],[class*="text-yellow-6"],[class*="text-yellow-7"],[class*="text-yellow-8"]):not([id^="vud"] *):not(.vud-cta-box *){color:var(--acc)!important}
body.u-legacy main :is(a,button)[class*="bg-yellow-6"]:not([id^="vud"] *):not(.vud-cta-box *),body.u-legacy main :is(a,button)[class*="bg-amber-6"]:not([id^="vud"] *):not(.vud-cta-box *){background:var(--acc)!important;color:var(--acc-ink)!important}
body.u-legacy main :is(a,button)[class*="bg-yellow-6"]:hover:not([id^="vud"] *){background:var(--acc-d)!important}
body.u-legacy main span:is([class*="bg-yellow-50"],[class*="bg-yellow-1"],[class*="bg-amber-50"],[class*="bg-amber-1"]):not([id^="vud"] *){background:var(--wash)!important;color:var(--ink)!important;border-radius:var(--r)!important}
/* g3 : liste */
body.u-g3 main a[href^="tel:"].font-semibold{font-size:1.15rem;font-weight:800}

/* B4 fiches */
/* g2 : bandeau en aplat encre, étoiles lisibles, trait d'accent, symbole en filigrane */
body.u-g2 main>.bg-white>div.text-white.p-6:first-child{position:relative;overflow:hidden;background:var(--ink)!important;color:#fff!important;padding:2.2rem!important;border-bottom:6px solid var(--acc)!important}
body.u-g2 main>.bg-white>div.text-white.p-6:first-child h1{color:#fff!important;font-size:clamp(1.9rem,3.6vw,2.8rem)!important;font-weight:800;line-height:1.08}
body.u-g2 main>.bg-white>div.text-white.p-6:first-child p{color:rgba(255,255,255,.78)!important}
body.u-g2 main>.bg-white>div.text-white.p-6:first-child .text-yellow-400{color:var(--star)!important;font-size:1.25rem}
body.u-g2 main>.bg-white>div.text-white.p-6:first-child::after{content:"";position:absolute;right:-1rem;top:50%;transform:translateY(-50%);width:200px;aspect-ratio:1;background:var(--mark,none) center/contain no-repeat;opacity:.12;pointer-events:none}
body.u-g2 main>.bg-white>.p-6 .space-y-3{font-size:1.05rem}
body.u-g2 main>.bg-white>.p-6 .space-y-3 a[target="_blank"]{display:inline-flex;padding:.45rem .8rem;border:2px solid var(--ink);border-radius:var(--r);color:var(--ink)!important;font-weight:700;text-decoration:none!important}
body.u-g2 main>.bg-white>.p-6 .p-4.bg-gray-50,body.u-g2 main>.bg-white>.p-6 .p-4.rounded:not([id^="vud"] *){background:var(--wash)!important;border-left:3px solid var(--acc)}
@media (max-width:640px){body.u-g2 main>.bg-white>.p-6 .space-y-3 a{display:flex!important;justify-content:center;width:100%;padding:.75rem!important}}
/* g1 */
.u-review{background:var(--wash);border:0;border-left:3px solid var(--acc);padding:1rem 1.1rem;margin-bottom:.75rem;border-radius:0 var(--r) var(--r) 0}
.u-review-hd b{font-weight:700}
.u-dl dd{font-size:1.05rem}
.u-fiche-hd h1{font-size:clamp(1.9rem,3.8vw,2.9rem)}
.u-photo{box-shadow:14px 14px 0 var(--acc)!important}
/* g3 : boutons d'action aux couleurs du site */
body.u-g3 .cta-call{background-color:var(--acc)!important;color:var(--acc-ink)!important}
body.u-g3 .cta-call:hover{background-color:var(--acc-d)!important}
body.u-g3 .cta-direction{background-color:var(--ink)!important;color:#fff!important}
body.u-g3 main a.bg-green-600:not([id^="vud"] *),body.u-g3 main button.bg-green-600:not([id^="vud"] *){background:var(--acc)!important}
body.u-g3 main a.bg-blue-600:not([id^="vud"] *),body.u-g3 main button.bg-blue-600:not([id^="vud"] *){background:var(--ink)!important}
:where(body.u-g3 main) h2:not([id^="vud"] *){font-family:var(--f-disp)}

/* B5 accueil */
.u-index h2{font-size:1.45rem;font-weight:800;border-bottom-width:3px}
.u-index li a{font-weight:500}
.u-index li a::after{content:"→";color:var(--acc);opacity:0;transition:opacity .15s ease}
.u-index li a:hover::after{opacity:1}
.u-index li a:has(span)::after{content:none}
body.u-legacy main section>h2.text-2xl{font-size:clamp(1.6rem,2.6vw,2.1rem)!important;font-weight:800}
/* g2 cartes région : chiffre au-dessus du nom */
body.u-legacy main .grid>a[href^="regions/"]{display:flex!important;flex-direction:column-reverse;justify-content:flex-end;gap:.2rem}
body.u-legacy main .grid>a[href^="regions/"] .flex>span:first-child{font:800 1.5rem/1.1 var(--f-disp);color:var(--acc)!important}
body.u-legacy main .grid>a[href^="regions/"] .flex{align-items:baseline}
/* g2 top villes : liste dense « Ville … 50 » au lieu d'une grille de cases */
body.u-legacy main section>.grid:has(>a[href^="villes/"]>.truncate){grid-template-columns:repeat(auto-fill,minmax(240px,1fr))!important;column-gap:2.4rem!important;row-gap:0!important}
body.u-legacy main section>.grid>a[href^="villes/"]:has(>.truncate){display:flex!important;justify-content:space-between;align-items:baseline;gap:1rem;background:transparent!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;box-shadow:none!important;padding:.7rem 0!important;text-align:left!important;transform:none!important}
body.u-legacy main section>.grid>a[href^="villes/"]:has(>.truncate)>.truncate{font-size:1rem!important;font-weight:600}
body.u-legacy main section>.grid>a[href^="villes/"]:has(>.truncate):hover>.truncate{color:var(--acc)!important}
/* g3 : bloc « Vous êtes un professionnel ? » en dégradé (style en ligne) -> aplat encre */
body.u-g3 section[style*="135deg"]:not([style*="url("]){background:var(--ink)!important;border-top:6px solid var(--acc)}
body.u-g3 section[style*="135deg"]:not([style*="url("]) p{color:rgba(255,255,255,.8)!important}
body.u-g3 section[style*="135deg"]:not([style*="url("]) a.bg-transparent{border-color:#fff!important;border-width:2px;color:#fff!important}
body.u-g3 section[style*="135deg"]:not([style*="url("]) a.bg-white{background:var(--acc)!important;color:var(--acc-ink)!important}
body.u-g3 #villes .grid:not(:has(a)){display:none}
body.u-g3 .step-number{box-shadow:none!important;border-radius:var(--r)!important}
/* FAQ : signe +/− à droite */
body.u :is(main,main~section) details>summary:not([id^="vud"] *){list-style:none;display:flex;justify-content:space-between;gap:1rem;cursor:pointer}
body.u :is(main,main~section) details>summary::-webkit-details-marker{display:none}
body.u :is(main,main~section) details>summary:not([id^="vud"] *):not(:has(span,svg,img,i))::after{content:"+";flex:none;font:700 1.3rem/1 var(--f-disp);color:var(--acc)}
body.u :is(main,main~section) details[open]>summary:not([id^="vud"] *):not(:has(span,svg,img,i))::after{content:"−"}

/* B6 pied de page */
.u-ft{border-top:4px solid var(--acc)}
@media (min-width:901px){
  .u-ft-grid:has(>div:nth-child(3) li:nth-child(14)){grid-template-columns:1.2fr .9fr 2fr 1fr}
  .u-ft-grid>div:nth-child(3) ul:has(li:nth-child(14)){columns:2;column-gap:2rem}
  .u-ft-grid>div:nth-child(3) ul:has(li:nth-child(14)) li{break-inside:avoid;margin:0 0 .4rem}
}

/* B7 mobile */
@media (max-width:640px){
  .u-brand::before{height:32px}
  .u-hero{padding:36px 0 48px}
  .u-hero h1,section.u-g2hero h1,.u-g3hero h1{font-size:2.15rem!important}
  .u-hero-fig img{min-height:0}
  .u-hero-fig img,.u-g2fig img,.u-cityhd #map,.u-photo{box-shadow:8px 8px 0 var(--acc)!important}
  .u-g2fig img{max-height:220px}
  .u-hero::after,.u-g2hero::after{display:none}
  body.u-g2 main>.bg-white>div.text-white.p-6:first-child{padding:1.5rem!important}
  body.u-g2 main>.bg-white>div.text-white.p-6:first-child::after{display:none}
}
/* ===== fin punch v2 ===== */

/* ===== fix cartes hors liste ville (pages régions, accueils) — 10/10 ===== */
body.u :not(#results-container)>.search-result-item{border:1px solid var(--line)!important;border-radius:var(--r)!important;background:var(--paper)!important;box-shadow:var(--sh1,none)!important;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
body.u :not(#results-container)>.search-result-item:hover{transform:translateY(-3px);box-shadow:var(--sh2,none)!important;border-color:var(--acc)!important}
body.u :not(#results-container)>.search-result-item>div{display:flex!important;flex-direction:column;align-items:flex-start;gap:.4rem;padding:1.2rem 1.25rem!important;height:100%}
body.u :not(#results-container)>.search-result-item h3{font-size:1.12rem!important;line-height:1.3!important;margin:0!important;word-break:normal;overflow-wrap:anywhere}
body.u :not(#results-container)>.search-result-item>div>*{margin:0!important;max-width:100%}
body.u :not(#results-container)>.search-result-item>div>div.flex-wrap{display:flex;flex-wrap:wrap;gap:.35rem}
body.u :not(#results-container)>.search-result-item>div>a:last-child{margin-top:auto!important;padding-top:.4rem;font-weight:600;color:var(--acc)!important}
body.u :not(#results-container)>.search-result-item .u-thumb{width:100%!important;height:auto!important;aspect-ratio:16/9;margin-bottom:.4rem}

/* ===== h1 : majuscule initiale (titres generes en minuscule « installateurs PAC à … ») — 10/10 ===== */
body.u main h1:not([id^="vud"] *)::first-letter{text-transform:uppercase}
/* ===== punch v3 A ===== */
/* Lot A : pages ville / region, listes, filtres, carte, mobile. Aplats uniquement ; rien sous [id^="vud-"] / .vud-* / #vud-devis / .vud-cta-box */

/* ---- A1 : cartes g2 de la page ville (une carte horizontale par ligne) ---- */
html body.u-g2 main .lg\:col-span-2>.space-y-4{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
html body.u-g2 main .lg\:col-span-2>.space-y-4>div.bg-white{position:relative;margin:0!important;padding:20px 24px!important;border:1px solid var(--line)!important;box-shadow:none!important;transform:none!important;border-radius:var(--r)!important;background:var(--paper)!important}
html body.u-g2 main .lg\:col-span-2>.space-y-4>div.bg-white:has(>.flex>.u-thumb-g2){padding-left:128px!important;min-height:128px}
html body.u-g2 main .lg\:col-span-2>.space-y-4>div.bg-white:hover{border-color:var(--acc)!important;transform:none!important;box-shadow:none!important}
html body.u-g2 main .space-y-4 .u-thumb-g2{left:20px;top:20px}
/* ligne titre : nom pleine largeur, pastille du site dessous */
html body.u-g2 main .space-y-4>div.bg-white>.flex.justify-between.items-start{flex-wrap:wrap;gap:6px 12px;margin-bottom:10px!important}
html body.u-g2 main .space-y-4>div.bg-white>.flex.justify-between>.flex-1{flex:1 1 100%;min-width:0}
html body.u-g2 main .space-y-4>div.bg-white>.flex.justify-between>span.text-xs{order:3;flex:0 1 auto;max-width:100%!important;text-align:left!important;font-size:14px!important;line-height:1.4;padding:2px 10px!important;border-radius:var(--r)!important;background:var(--wash)!important;color:var(--ink)!important;overflow-wrap:anywhere}
html body.u-g2 main .space-y-4>div.bg-white a.text-lg{font-size:18px!important;font-weight:700!important;line-height:1.3;color:var(--ink)!important;text-decoration:none}
html body.u-g2 main .space-y-4>div.bg-white a.text-lg:hover{color:var(--acc)!important;text-decoration:underline}
html body.u-g2 main .space-y-4>div.bg-white a.text-lg::after{content:"";position:absolute;inset:0;z-index:0}
html body.u-g2 main .space-y-4>div.bg-white .flex-1>p{font-size:15px;line-height:1.5;margin-top:4px!important;color:var(--ink);color:color-mix(in srgb,var(--ink) 82%,transparent)!important}
html body.u-g2 main .space-y-4>div.bg-white>.flex.items-center.gap-2{gap:8px!important;font-size:15px}
html body.u-g2 main .space-y-4>div.bg-white>.flex.items-center.gap-2 .text-sm{font-size:15px!important;font-weight:600;color:var(--ink)!important}
html body.u-g2 main .space-y-4>div.bg-white>.flex.items-center.gap-2 .text-gray-500{font-weight:400;color:var(--ink)!important;color:color-mix(in srgb,var(--ink) 82%,transparent)!important}
html body.u-g2 main .space-y-4>div.bg-white>.flex.items-center.gap-2 .text-gray-300{color:var(--line-2)!important}
/* actions : zones >= 44 px */
html body.u-g2 main .space-y-4>div.bg-white>.flex.flex-wrap.gap-3{gap:10px!important;font-size:15px;position:relative;z-index:1}
html body.u-g2 main .space-y-4>div.bg-white>.flex.flex-wrap.gap-3>a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;font-size:15px;font-weight:600;border:1px solid var(--line-2);border-radius:var(--r);text-decoration:none!important;color:var(--acc-d)!important;background:var(--paper)}
html body.u-g2 main .space-y-4>div.bg-white>.flex.flex-wrap.gap-3>a:hover{border-color:var(--acc);background:var(--wash)}
html body.u-g2 main .space-y-4>div.bg-white>.flex.flex-wrap.gap-3>a[href^="tel:"]{background:var(--acc);border-color:var(--acc);color:#fff!important;font-variant-numeric:tabular-nums}
html body.u-g2 main .space-y-4>div.bg-white>.flex.flex-wrap.gap-3>a[href^="tel:"]:hover{background:var(--acc-d);border-color:var(--acc-d)}
html body.u-g2 main .space-y-4>div.bg-white>.flex.flex-wrap.gap-3>a[href*="google.com/maps"]{color:var(--ink)!important;font-weight:500}

/* ---- A2 : lignes de liste du gabarit u-legacy (solaire, demenagement, formation, frelon) ---- */
@media (min-width:1024px){
  html body.u-legacy main :is(.space-y-4,.grid):has(>.bg-white.p-4.rounded.shadow-md){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
}
html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md{position:relative;margin:0!important;padding:20px 24px!important;border:1px solid var(--line);box-shadow:none!important;transform:none!important;border-radius:var(--r)!important}
html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md:has(>.u-thumb-g2){padding-left:128px!important;min-height:128px}
html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md>.u-thumb-g2{left:20px;top:20px}
html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md:hover{border-color:var(--acc)!important;box-shadow:none!important;transform:none!important}
html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md h3{font-size:18px;line-height:1.3;margin:0 0 4px}
html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md h3 a::after{content:"";position:absolute;inset:0}
html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md :is(p.text-sm,.text-sm,p.text-gray-600){font-size:15px!important;line-height:1.5}
html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md :is(p.text-gray-600,p.text-sm){color:var(--ink);color:color-mix(in srgb,var(--ink) 82%,transparent)}
html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md span.text-xs:not(.text-yellow-400){font-size:13px!important;line-height:1.4;padding:4px 8px!important;max-width:100%;display:inline-flex;margin:0 4px 4px 0}
html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md span.inline-block.text-xs{display:inline-flex}

/* ---- A3 : zones cliquables (hors VUD) ---- */
body.u main a[href^="tel:"]:not([id^="vud-"]):not([class*="vud"]):not(:is([id^="vud-"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){display:inline-flex;align-items:center;min-height:44px}
html body.u-g3 main .text-xs[href^="tel:"]{font-size:15px;font-weight:600}
html body.u-g3 main .flex.flex-wrap.gap-3>a{display:inline-flex;align-items:center;min-height:44px}
html body.u main .search-result-item a:not(:is([id^="vud-"] *,[class*="vud"] *)){min-height:44px}
html body.u main select:not(:is([id^="vud-"] *,[class*="vud"] *)),html body.u main input:is([type=text],[type=search],:not([type])):not(:is([id^="vud-"] *,[class*="vud"] *)){min-height:44px}
html body.u-g2 main .space-y-6>.bg-white{padding:20px!important;border:1px solid var(--line)!important;box-shadow:none!important;border-radius:var(--r)!important}
html body.u-g2 main .space-y-6>.bg-white>h3{font-size:17px;font-weight:700;color:var(--ink)!important}
html body.u-g2 main .space-y-6>.bg-white p.text-sm{font-size:15px;line-height:1.55;color:var(--ink);color:color-mix(in srgb,var(--ink) 82%,transparent)}
html body.u-g2 main .space-y-6 .text-sm.space-y-1{margin:0}
html body.u-g2 main .space-y-6 .text-sm.space-y-1>a.block{display:flex;align-items:center;min-height:44px;margin:0!important;font-size:15px;color:var(--ink)!important;text-decoration:none;border-bottom:1px solid var(--line)}
html body.u-g2 main .space-y-6 .text-sm.space-y-1>a.block:last-child{border-bottom:0}
html body.u-g2 main .space-y-6 .text-sm.space-y-1>a.block:hover{color:var(--acc)!important;text-decoration:underline}
html body.u .search-result-item span:not([class]){font-size:14px}

/* ---- A5 : encadre d'introduction g2 ---- */
html body.u-g2 main>section.bg-white:has(>.article-content){padding:20px 24px!important;margin-bottom:24px!important;background:var(--wash)!important;border:0!important;border-left:3px solid var(--acc)!important;border-radius:var(--r)!important}
html body.u-g2 main>section.bg-white>.article-content{max-width:72ch;padding:0!important}
html body.u-g2 main>section.bg-white>.article-content h2{font-size:clamp(1.35rem,2.6vw,1.6rem)!important;line-height:1.2;margin:0 0 .5rem!important}
html body.u-g2 main>section.bg-white>.article-content p{font-size:17px;line-height:1.65;color:var(--ink)!important}
html body.u-g2 .u-g2hero .mt-4.flex.flex-wrap{gap:8px!important}
html body.u-g2 .u-g2hero .mt-4.flex.flex-wrap>span{flex:0 0 auto;width:auto;max-width:100%;font-size:14px;padding:6px 12px!important;border:1px solid var(--line-2);background:var(--paper)!important;color:var(--ink)!important}
html body.u-g2 .u-g2hero>div.mt-4.flex,html body.u-g2 .u-g2hero>.mt-4.flex{display:flex!important;flex-wrap:wrap;align-items:flex-start}
html body.u-legacy .u-g2hero>.mt-4.flex{display:flex!important;flex-wrap:wrap;align-items:flex-start;gap:8px!important}
html body.u-legacy .u-g2hero>.mt-4.flex>span.rounded-full{display:inline-flex;width:auto;flex:0 0 auto;max-width:100%;font-size:14px;padding:6px 12px!important;border:1px solid var(--line-2);background:var(--paper)!important;color:var(--ink)!important}

/* ---- A6 : page ville g3 ---- */
html body.u-g3 main .bg-white.rounded-xl>div>span.uppercase,html body.u-g3 main :is(span,p).text-xs.uppercase{font-size:13px!important;text-transform:none!important;letter-spacing:0!important;color:var(--ink)!important;color:color-mix(in srgb,var(--ink) 76%,transparent)!important;font-weight:500}
html body.u-g3 main .grid:has(>:only-child){grid-template-columns:minmax(0,1fr)!important}
html body.u-g3 main .grid>.bg-white a.text-sm.font-medium{font-size:15px;line-height:1.4;padding:8px 0}
html body.u-g3 main .grid>.bg-white .text-xs:not(a){font-size:14px!important}
html body.u-g3 main .grid>.bg-white .text-sm.text-gray-500,html body.u-g3 main .grid>.bg-white p.text-gray-500{font-size:15px;color:var(--ink);color:color-mix(in srgb,var(--ink) 80%,transparent)}
html body.u-g3 main .flex.flex-wrap.gap-3>a.rounded-lg{font-size:15px;box-shadow:none;border:1px solid var(--line-2)}

/* ---- A7 : En bref, carte ---- */
html body.u .u-enbref li{font-size:16px;line-height:1.5}
html body.u .u-enbref-src{font-size:14px;color:var(--ink);color:color-mix(in srgb,var(--ink) 75%,transparent)}
html body.u .u-cityhd #map,html body.u .leaflet-container{min-height:240px}
html body.u .leaflet-control-attribution{font-size:10px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* ---- A8 : page region ---- */
html body.u .u-index li a span{font-size:14px;color:var(--ink);color:color-mix(in srgb,var(--ink) 75%,transparent)}
html body.u .u-index li a{min-height:44px;box-sizing:border-box;align-items:center}
html body.u main .bg-brand-700+.p-6 h1,html body.u main h1.text-3xl{line-height:1.1}
@media (min-width:641px){html body.u main .bg-brand-700 h1.text-3xl{font-size:40px}}
html body.u main .grid.md\:grid-cols-3>div>h3.font-medium{font-size:14px;font-weight:500;color:var(--ink);color:color-mix(in srgb,var(--ink) 75%,transparent)}
html body.u main .grid.md\:grid-cols-3>div>h3.font-medium+p{font-size:17px;font-weight:600;color:var(--ink)}
html body.u-g2 main aside a.block,html body.u-g2 main aside li a{border-bottom:1px solid var(--line)}

/* ================= MOBILE (<= 640 px) ================= */
@media (max-width:640px){
  /* A4 fil d'Ariane sur une seule ligne, defilement horizontal */
  html body.u .u-bc.u-wrap{padding-top:0;padding-bottom:0}
  html body.u .u-bc ol{display:flex;flex-wrap:nowrap;align-items:center;overflow:hidden;white-space:nowrap;min-height:44px;margin:0;padding:0;font-size:14px;color:var(--ink);color:color-mix(in srgb,var(--ink) 78%,transparent)}
  html body.u .u-bc li:last-child{flex:0 1 auto;min-width:0}
  html body.u .u-bc li:last-child>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  html body.u .u-bc li{flex:0 0 auto;font-size:14px;display:flex;align-items:center;min-height:44px}
  html body.u .u-bc li a{display:inline-flex;align-items:center;min-height:44px}
  html body.u-legacy .u-g2hero nav.text-sm,html body.u-legacy nav.text-sm:not(header *):not(footer *):not(.u-g2hero nav){display:flex;flex-wrap:nowrap;align-items:center;overflow-x:auto;white-space:nowrap;scrollbar-width:none;min-height:44px;font-size:14px}
  html body.u-legacy nav.text-sm::-webkit-scrollbar{display:none}
  html body.u-legacy nav.text-sm>*{flex:0 0 auto}
  html body.u-legacy nav.text-sm a{display:inline-flex;align-items:center;min-height:44px}
  html body.u-g3 header.sticky+div.bg-white.border-b{margin-top:0}
  html body.u-g3 header.sticky+div.bg-white.border-b>.container{padding-top:0!important;padding-bottom:0!important}
  html body.u-g3 header.sticky+main,html body.u-g3 header.sticky+div+main{padding-top:20px}

  /* planchers de lecture : rien sous 14 px dans le contenu */
  html body.u main :is(.text-xs,small,.u-enbref-src,figcaption):not(:is([id^="vud-"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){font-size:14px!important}
  html body.u .leaflet-control-attribution{font-size:10px!important}
  html body.u .leaflet-control-zoom a{width:40px;height:40px;line-height:40px}
  html body.u main .search-result-item :is(p,span,div,li){font-size:max(1em,14px)}
  html body.u-g2 main .space-y-4>div.bg-white>.flex.justify-between>span.text-xs{font-size:14px!important}

  /* A1 mobile : carte g2 compacte, vignette 64 px */
  html body.u-g2 main .lg\:col-span-2>.space-y-4>div.bg-white{padding:16px!important}
  html body.u-g2 main .lg\:col-span-2>.space-y-4>div.bg-white:has(>.flex>.u-thumb-g2){padding-left:92px!important;min-height:96px}
  html body.u-g2 main .space-y-4 .u-thumb-g2{left:16px;top:16px;width:64px;height:64px}
  html body.u-g2 main .space-y-4>div.bg-white>.flex.justify-between.items-start{flex-direction:row;margin-bottom:8px!important}
  html body.u-g2 main .space-y-4>div.bg-white>.flex.justify-between.items-start:has(>span.text-xs){flex-direction:row}
  html body.u-g2 main .space-y-4>div.bg-white>.flex.flex-wrap.gap-3{margin-left:-76px}
  html body.u-g2 main .space-y-4>div.bg-white>.flex.items-center.gap-2{margin-left:0}
  html body.u-g2 main .space-y-4>div.bg-white>.flex.flex-wrap.gap-3>a[href^="tel:"]{flex:1 1 100%;justify-content:center}
  html body.u-g2 main .space-y-4>div.bg-white>.flex.flex-wrap.gap-3>a:not([href^="tel:"]){flex:1 1 calc(50% - 5px);justify-content:center}
  /* A2 mobile */
  html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md{padding:16px!important}
  html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md:has(>.u-thumb-g2){padding-left:92px!important;min-height:96px}
  html body.u-legacy main :is(.space-y-4,.grid)>.bg-white.p-4.rounded.shadow-md>.u-thumb-g2{left:16px;top:16px}

  /* A5 mobile : le texte passe avant l'image du hero g2 */
  html .u-g2hero>div>.u-g2fig{order:10;margin:20px 0 0}
  html .u-g2hero>div>.u-g2fig img{height:160px;aspect-ratio:auto;object-fit:cover;width:100%}
  html body.u-g2 main>section.bg-white:has(>.article-content){padding:16px 20px!important}

  /* A6 mobile : en-tete g3 */
  html body.u-g3 header nav.flex.justify-between{gap:10px;flex-wrap:nowrap}
  html body.u-g3 header nav.flex.justify-between>a{display:inline-flex;align-items:center;min-height:44px;font-size:17px;white-space:nowrap;flex:0 1 auto;min-width:0}
  html body.u-g3 header nav.flex.justify-between>a>span{margin-left:4px!important}
  html body.u-g3 header nav.flex.justify-between>div{gap:12px;flex:0 0 auto}
  html body.u-g3 header nav.flex.justify-between>div>a{font-size:14px;display:inline-flex;align-items:center;min-height:44px}
  html body.u-g3 header nav.flex.justify-between>div>a:not(:last-child){display:none}
  html body.u-g3 main .bg-white.rounded-xl.flex-wrap{gap:16px 24px!important;padding:16px!important}
  html body.u-g3 main .bg-white.rounded-xl.flex-wrap>div{flex:1 1 40%}
  /* A7 filtres / formulaires de liste */
  html body.u main .u-wrap :is(select,input[type=text],input[type=search],input:not([type])):not(:is([id^="vud-"] *,[class*="vud"] *)),html body.u main :is(.flex,div)>:is(select):not(:is([id^="vud-"] *,[class*="vud"] *)){width:100%;min-height:48px;font-size:16px}
  /* A9 pieds de page g3 */
  html body.u-g3 footer .footer-col ul.space-y-2{columns:2;column-gap:16px}
  html body.u-g3 footer .footer-col ul.space-y-2>li{break-inside:avoid;margin:0!important}
  html body.u-g3 footer :is(span,p,.text-xs){font-size:14px!important}
  html body.u-g3 footer a{display:inline-flex;align-items:center;min-height:44px;font-size:15px}
  html body.u-g3 footer .footer-col ul.space-y-2 a{font-size:15px}
  html body.u footer a,html body.u .u-ft a{min-height:44px;display:inline-flex;align-items:center}
}

/* revue finale 10/10 : liens tel: vides (fiche sans numero) = bouton mort + carre vide -> masques */
body.u a[href="tel:"]:not([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *){display:none!important}
/* ===== punch v3 B ===== */
/* Lot B : fiches, accueils, pieds de page, lecture. Jamais le widget VUD (exclusion :not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)) sur chaque regle generique). */

/* ---------- B1 lecture : taille, interligne, contraste ---------- */
body.u main :is(p,li):not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){line-height:1.6}
body.u main :is(.text-gray-500,.text-gray-600,.text-gray-400,.text-gray-700):not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *,[class*="bg-gray-9"] *,[class*="bg-brand-9"] *)){color:var(--muted);color:color-mix(in srgb,var(--ink) 80%,transparent)!important}
body.u main .text-gray-400:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *,[class*="bg-gray-9"] *,[class*="bg-brand-9"] *)){color:var(--muted);color:color-mix(in srgb,var(--ink) 72%,transparent)!important}
body.u main .text-xs:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)),body.u footer .text-xs:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){font-size:13px;line-height:1.4}
body.u main :is(p,li).text-sm:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){font-size:15px}
body.u main :is(.u-block,.article-content,.u-prose,.seo-editorial) p:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){max-width:68ch}

/* ---------- B2 fiche variante legacy (bg-brand-700 / 600 sans u-g2) : en-tete + mise en page ---------- */
body.u-legacy:not(.u-g2) main:has(> .bg-white.rounded-lg.overflow-hidden){max-width:1180px;margin-inline:auto;padding:28px 20px 64px}
body.u-legacy:not(.u-g2) main > .bg-white.rounded-lg.overflow-hidden{border:1px solid var(--line)!important;background:var(--paper)!important}
body.u-legacy:not(.u-g2) main > .bg-white > div:is(.bg-brand-700,.bg-brand-600).text-white{background:var(--acc-d)!important;color:var(--acc-ink)!important;border-bottom:0!important;padding:32px 32px 28px!important}
body.u-legacy:not(.u-g2) main > .bg-white > div:is(.bg-brand-700,.bg-brand-600).text-white h1{color:var(--acc-ink)!important;font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.1;text-wrap:balance;max-width:24ch}
body.u-legacy:not(.u-g2) main > .bg-white > div:is(.bg-brand-700,.bg-brand-600).text-white p{color:var(--acc-ink)!important;opacity:.9;font-size:17px;margin-top:10px}
body.u-legacy:not(.u-g2) main > .bg-white > div:is(.bg-brand-700,.bg-brand-600).text-white .mb-3{margin:14px 0 0}
body.u-legacy:not(.u-g2) main > .bg-white > div:is(.bg-brand-700,.bg-brand-600).text-white .flex.items-center{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:17px;font-weight:600}
body.u-legacy:not(.u-g2) main > .bg-white > div.p-6{padding:32px!important;display:block}
body.u-legacy:not(.u-g2) main > .bg-white > div.p-6 > .grid{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
body.u-legacy:not(.u-g2) main > .bg-white > div.p-6 > .grid > div{min-width:0}
@media (min-width:900px){body.u-legacy:not(.u-g2) main > .bg-white > div.p-6 > .grid{grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:44px;align-items:start}}
body.u-legacy:not(.u-g2) main .bg-gray-50.p-4.rounded-lg{background:var(--wash)!important;border:1px solid var(--line);padding:24px!important}
body.u-legacy:not(.u-g2) main .bg-gray-50.p-4.rounded-lg h2{margin:0 0 16px;font-size:1.3rem}
body.u-legacy:not(.u-g2) main .bg-gray-50.p-4 h3.font-medium{font-family:var(--f-body);font-size:13px;font-weight:600;color:var(--muted)!important;margin:0 0 2px}
body.u-legacy:not(.u-g2) main .bg-gray-50.p-4 .mb-3{margin-bottom:16px}
body.u-legacy:not(.u-g2) main .bg-gray-50.p-4 .mb-3 > p{font-size:16px;font-weight:600;color:var(--ink)!important;margin:0;overflow-wrap:anywhere}
body.u-legacy:not(.u-g2) main .bg-gray-50.p-4 a[target]{font-size:16px;font-weight:600;overflow-wrap:anywhere}
body.u-legacy:not(.u-g2) main .bg-gray-50.p-4 button{min-height:48px;font-size:16px;font-weight:700;background:var(--acc)!important;color:var(--acc-ink)!important;border:0;border-radius:var(--r)!important;cursor:pointer;margin-top:4px}
body.u-legacy:not(.u-g2) main .bg-gray-50.p-4 button:hover{background:var(--acc-d)!important}
body.u-legacy:not(.u-g2) main > .bg-white > div.p-6 h2.text-xl{font-size:1.4rem;line-height:1.25;margin:0 0 14px}
body.u-legacy:not(.u-g2) main #map{height:340px;border:1px solid var(--line);border-radius:var(--r)!important;box-shadow:none!important}
body.u-legacy:not(.u-g2) main > .bg-white > div.p-6 .mt-8{margin-top:36px}
/* etat vide propre (avis, tarifs) */
body.u-legacy:not(.u-g2) main .space-y-4 > p.text-gray-500{background:var(--wash);border:1px solid var(--line);border-radius:var(--r);padding:16px 20px;margin:0;font-size:16px}
body.u-legacy:not(.u-g2) main .mt-8 > .bg-gray-50.p-4.rounded-lg{padding:16px 20px!important}

body.u-legacy:not(.u-g2) main > .bg-white > div:is(.bg-brand-700,.bg-brand-600).text-white .mb-3 > span{color:var(--ink);font-size:13px;font-weight:600;padding:4px 10px}
body.u-legacy:not(.u-g2) main > .bg-white > div.p-6 .md\:col-span-2 > .mb-8{margin-bottom:36px}
body.u-legacy:not(.u-g2) main > .bg-white > div.p-6 h2.text-xl{margin-top:0}
@media (max-width:640px){
  body.u-legacy:not(.u-g2) main:has(> .bg-white.rounded-lg.overflow-hidden){padding:12px 12px 40px}
  body.u-legacy:not(.u-g2) main > .bg-white > div:is(.bg-brand-700,.bg-brand-600).text-white{padding:24px 20px 22px!important}
  body.u-legacy:not(.u-g2) main > .bg-white > div.p-6{padding:20px 16px!important}
  body.u-legacy:not(.u-g2) main .bg-gray-50.p-4.rounded-lg{padding:18px!important}
  body.u-legacy:not(.u-g2) main .bg-gray-50.p-4 button{width:100%}
  main:has(> .bg-white.rounded-lg.overflow-hidden) #devis-section{padding:20px 16px!important}
  main:has(> .bg-white.rounded-lg.overflow-hidden) form button[type=submit]{width:100%}
}
/* liste de services / formations : etiquettes, plus de puces doublees */
body.u-legacy main > .bg-white.rounded-lg.overflow-hidden :is(ul.grid,ul.list-disc,ul.list-inside):not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
body.u-legacy main > .bg-white.rounded-lg.overflow-hidden :is(ul.grid,ul.list-disc,ul.list-inside) > li:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){list-style:none;margin:0;padding:7px 12px;border:1px solid var(--line-2,var(--line));background:var(--wash);border-radius:var(--r);font-size:15px;line-height:1.35;color:var(--ink)}

/* ---------- B3 formulaires des fiches (jamais le VUD) ---------- */
main:has(> .bg-white.rounded-lg.overflow-hidden) form:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){display:block}
main:has(> .bg-white.rounded-lg.overflow-hidden) form label:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){display:block;font-family:var(--f-body);font-size:14px;font-weight:600;color:var(--ink);margin:0 0 6px;line-height:1.3}
main:has(> .bg-white.rounded-lg.overflow-hidden) form :is(input:not([type=hidden],[type=checkbox],[type=radio],[type=submit],[type=button]),select,textarea):not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){display:block;box-sizing:border-box;width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line-2,var(--line));border-radius:var(--r);background:var(--paper);color:var(--ink);font:400 16px/1.4 var(--f-body);box-shadow:none}
main:has(> .bg-white.rounded-lg.overflow-hidden) form textarea:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){min-height:120px;resize:vertical}
main:has(> .bg-white.rounded-lg.overflow-hidden) form :is(input,select,textarea):not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)):focus-visible{outline:2px solid var(--acc);outline-offset:1px;border-color:var(--acc)}
main:has(> .bg-white.rounded-lg.overflow-hidden) form :is(input,textarea):not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *))::placeholder{color:color-mix(in srgb,var(--ink) 55%,transparent)}
main:has(> .bg-white.rounded-lg.overflow-hidden) form button[type=submit]:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){min-height:48px;padding:0 28px;border:0;border-radius:var(--r)!important;background:var(--acc)!important;background-image:none!important;color:var(--acc-ink)!important;font:700 16px/1 var(--f-body);cursor:pointer;transform:none!important;box-shadow:none!important}
main:has(> .bg-white.rounded-lg.overflow-hidden) form button[type=submit]:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)):hover{background:var(--acc-d)!important}
main:has(> .bg-white.rounded-lg.overflow-hidden) form > :is(div,.space-y-4) + :is(div,.grid){margin-top:16px}
main:has(> .bg-white.rounded-lg.overflow-hidden) form .grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
main:has(> .bg-white.rounded-lg.overflow-hidden) form .grid > *{min-width:0}
@media (min-width:768px){main:has(> .bg-white.rounded-lg.overflow-hidden) form .grid.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
main:has(> .bg-white.rounded-lg.overflow-hidden) #devis-section{padding:28px 32px!important;margin-top:36px;background:var(--wash)!important;border:1px solid var(--line)!important}
main:has(> .bg-white.rounded-lg.overflow-hidden) #devis-section > h2{font-size:1.5rem;text-align:left;color:var(--ink)!important;margin:0 0 8px}
main:has(> .bg-white.rounded-lg.overflow-hidden) #devis-section > p{text-align:left;margin:0 0 22px;font-size:16px}
main:has(> .bg-white.rounded-lg.overflow-hidden) #devis-section .text-center{text-align:left}

/* ---------- B4 fiche g2 (bandeau .bg-brand-600) : note, coordonnees, avis, services ---------- */
body.u-g2 main > .bg-white > div.text-white.p-6:first-child .flex.items-center.mt-3{font-size:17px;font-weight:600;gap:8px}
body.u-g2 main > .bg-white > .p-6 h2.text-xl{font-size:1.35rem;margin-bottom:16px}
body.u-g2 main > .bg-white > .p-6 .space-y-3 span.text-gray-700{font-size:17px;color:var(--ink)!important;line-height:1.5}
body.u-g2 main > .bg-white > .p-6 .space-y-3 a{min-height:48px;display:inline-flex;align-items:center;font-size:16px;font-weight:700}
body.u-g2 main > .bg-white > .p-6 .space-y-3 a[href^="tel:"]{padding:0 20px;background:var(--acc);color:var(--acc-ink)!important;border-radius:var(--r);text-decoration:none}
body.u-g2 main > .bg-white > .p-6 h3.text-lg{font-size:1.15rem;margin:28px 0 12px}
body.u-g2 main > .bg-white > .p-6 .p-4.bg-gray-50{padding:20px!important;font-size:17px;border:1px solid var(--line);border-left:3px solid var(--acc)}
body.u-g2 main > .bg-white > .p-6 .p-4.bg-gray-50 p{font-size:17px;color:var(--ink)!important;margin:0 0 8px}
body.u-g2 main > .bg-white > .p-6 .p-4.bg-gray-50 a{display:inline-flex;align-items:center;min-height:44px;font-size:16px}
body.u-g2 main #map{border:1px solid var(--line);box-shadow:none!important}

/* ---------- B5 fiche g3 ---------- */
body.u-g3 main .lg\:col-span-2 > img.object-cover{object-fit:contain;background:#fff;border:1px solid var(--line);padding:12px;height:260px;max-height:260px;box-shadow:none!important}
body.u-g3 main .bg-white.rounded-xl.overflow-hidden > div#map:empty{display:none}
body.u-g3 main .bg-white.rounded-xl dl dt{font-size:13px;font-weight:600;text-transform:none;letter-spacing:0;color:color-mix(in srgb,var(--ink) 70%,transparent)!important}
body.u-g3 main .bg-white.rounded-xl dl dd{font-size:16px;font-weight:600;color:var(--ink)}
body.u-g3 main .bg-white.rounded-xl > .flex.items-center.justify-between.mb-4 > .flex span.text-xs.rounded-full:first-child{display:none}
body.u-g3 main > .bg-white h1{text-wrap:balance}
body.u-g3 main :is(a,span).text-sm{font-size:15px}
body.u-g3 main > .bg-white.rounded-xl .text-sm.md\:text-base{font-size:16px}
body.u-g3 header + .bg-white.border-b{padding-block:6px}
body.u-g3 header + .bg-white.border-b nav{font-size:15px;line-height:1.5}
body.u-g3 header + .bg-white.border-b nav a{display:inline-flex;align-items:center;min-height:36px}

/* ---------- B6 fiche g1 ---------- */
.u-fiche-hd h1{font-size:clamp(1.9rem,3.8vw,2.75rem);text-wrap:balance}
.u-aside dt{font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:color-mix(in srgb,var(--ink) 72%,transparent)}
.u-aside dd{font-size:16px;font-weight:600;line-height:1.45;color:var(--ink);overflow-wrap:anywhere}
.u-aside dd a{display:inline-flex;align-items:center;min-height:44px}
.u-review-hd{font-size:14px}
.u-review-hd b{font-size:15px}
.u-review-hd time{font-size:14px;color:color-mix(in srgb,var(--ink) 72%,transparent)}
.u-review > p{font-size:16px;line-height:1.65;max-width:68ch}
.u-block h2{margin-bottom:14px}
.u-tags li{font-size:15px}

/* ---------- B7 accueils ---------- */
.u-g2hero .bg-opacity-20 div:last-child{font-size:14px!important;font-weight:600}
body.u-g2 section.mb-12 .grid > .bg-white.rounded-xl .text-sm{font-size:14px}
body.u-g2 section.mb-12 .grid > .bg-white.rounded-xl .text-gray-400{font-size:14px}
body.u-g2 section.mb-12 .grid > .bg-white.rounded-xl > span.text-xs{font-size:13px}
body.u-g3 .step-number ~ p,body.u-g3 .group > p.text-sm{font-size:16px;line-height:1.6}
body.u-g3 section:has(#villes-grid:empty),body.u-g3 section#villes:not(:has(a[href*="ville"]:not(.inline-flex))){padding-block:36px}
.u-svc li a{font:500 16px/1.4 var(--f-body)}
.u-hero-fig{min-width:0}

/* ---------- B8 pieds de page ---------- */
.u-ft-bot{font-size:15px}
.u-ft-bot a{display:inline-flex;align-items:center;min-height:44px;font-size:15px}
.u-ft li a{display:inline-flex;align-items:center;min-height:32px}
footer .footer-col a.text-sm{font-size:15px}
footer .footer-col span.text-xs{font-size:13px}
footer .footer-col h4{letter-spacing:.02em}
@media (min-width:1024px){footer nav.grid:has(> .footer-col ul.space-y-2 > li:nth-child(13)){grid-template-columns:repeat(4,minmax(0,1fr))}
  footer nav.grid > .footer-col:has(ul.space-y-2 > li:nth-child(13)){grid-column:span 2}}
@media (min-width:641px){
  footer .footer-col ul.space-y-2:has(> li:nth-child(13)){columns:2;column-gap:28px}
  footer .footer-col ul.space-y-2:has(> li:nth-child(13)) > li{break-inside:avoid;margin-top:0;padding-bottom:8px}
}

/* revue finale 10/10 */
/* accueil : liste de prestations a 1 seul <li> (texte colle) = pleine largeur, corps normal */
body.u .u-svc>li:only-child{grid-column:1/-1}
body.u .u-svc>li:only-child a{font-weight:400;line-height:1.7;max-width:68ch}
/* guide d accueil : sommaire retire par le JS -> l article reprend toute la largeur */
body.u .u-guide>.u-prose:only-child{grid-column:1/-1}
/* g2 mobile : lignes flex-col + items-end (acces rapide region) alignees a gauche, pleine largeur */
@media (max-width:767px){body.u-legacy .flex.flex-col.items-end:not([id^="vud"] *,[class*="vud"] *){align-items:stretch}
body.u-legacy .flex.flex-col.items-end>a{text-align:center;min-height:44px}}
/* g2 fiche mobile : titre + note sur deux lignes au lieu d etre serres cote a cote */
@media (max-width:640px){body.u-legacy .flex.items-start.justify-between.mb-4:has(>.text-right){flex-direction:column;gap:.75rem}
body.u-legacy .flex.items-start.justify-between.mb-4>.text-right{text-align:left;width:100%}
body.u-legacy .flex.items-start.justify-between.mb-4>.text-right .justify-end{justify-content:flex-start}}
/* punch4a (agent verif00) 2026-10-10 : correctifs issus du balayage Playwright (226 domaines, 902 pages). Rien ne touche le widget VUD (exclusions :not(...) + 2 identifiants pour la specificite). */
/* 1. boutons telephone : la regle « liens text-brand-6* » de punch4b recolorait le texte en teinte du site foncee SUR le fond --acc du bouton (texte illisible, 2,1:1). On rend le texte du bouton. */
html body.u-legacy main a[href^="tel:"]:not(.cta-call):not(:is([id^="vud"] *,[class*="vud"] *)):not(#vud-devis *):not(#vud-hero *){color:var(--acc-ink,#fff)!important}
/* 2. etoiles de note : .text-yellow-* recolore en bleu fonce (invisible sur bandeau sombre, 2,4:1). Ambre commun >= 3:1 sur blanc comme sur fond sombre (element graphique). */
html body.u main .u-stars:not(:is([id^="vud"] *,[class*="vud"] *)):not(#vud-devis *):not(#vud-hero *){color:#94600a!important}
/* 3. etoiles du bandeau sombre des fiches (g2) : la regle text-yellow-* de punch4b les passait en bleu fonce sur #17202a (2,1:1) -> ambre clair. */
html body.u-legacy main :is([class*="bg-brand-"],[class*="bg-gray-9"]) span.text-yellow-400:not(:is([id^="vud"] *,[class*="vud"] *)):not(#vud-devis *):not(#vud-hero *){color:#f5b800!important}
/* 4. bouton « Toutes les regions » (bg-brand-100) : fond d'accent plein + texte fonce de la teinte (4,3:1, aide-borne-recharge) -> fond pale + texte fonce. */
html body.u-legacy main a[class*="bg-brand-100"]:not(:is([id^="vud"] *,[class*="vud"] *)):not(#vud-devis *):not(#vud-hero *){background:var(--wash,#eef3f6)!important;color:color-mix(in srgb,var(--acc) 70%,#000)!important}
/* 5. attribution Leaflet/OSM en mobile restait a 10 px (la regle de punch4b est battue par les regles leaflet-touch). */
html body.u .leaflet-container .leaflet-control-attribution:is(*,.leaflet-control){font-size:12px!important}
/* 6. en-tete data-hd="light" dont la skin impose un fond sombre (bulle-transparente) : la regle 8 de punch4b rendait le menu noir sur noir (1,4:1). Si la couleur d'en-tete (--hd-ink) est claire, on la garde ; sinon la regle 8 reste valable. */
html body.u[data-hd="light"][data-hd] .u-hd[class] .u-nav a:not(.u-btn){color:oklch(from var(--hd-ink) calc(l*l) c h)!important}
/* 7. sous-titre du bandeau de fiche (p.text-yellow-100 dans bg-yellow-600/bg-brand-*, fond sombre en g2) : couleur de teinte foncee sur fond ink (1,4:1) -> clair. */
html body.u-g2 main :is([class*="bg-yellow-"],[class*="bg-brand-"],[class*="bg-gray-9"]) p[class*="text-yellow-100"]:not(:is([id^="vud"] *,[class*="vud"] *)):not(#vud-devis *):not(#vud-hero *){color:rgba(255,255,255,.86)!important}
/* punch4b (agent verif01) 2026-10-10 : correctifs issus du balayage Playwright. Rien ne touche le widget VUD. */
/* 1. pieds de page sombres : le legacy peignait les liens text-brand-* de la couleur du fond (invisibles) */
html body.u .u-ft a:is([class*="text-brand-"],[class*="text-gray-"]){color:#e6e9ec!important}
html body.u .u-ft a:is([class*="text-brand-"],[class*="text-gray-"]):hover{color:#fff!important}
html body.u .u-ft p{color:#e2e6ea}
/* 2. pieds sombres Tailwind (credit photo Pexels etc.) : le gris retombait sur #475569 sur fond #111827 */
html body.u footer[class*="bg-gray-9"] :is(p,a):not([class*="text-white"]){color:#aeb6c2}
html body.u footer[class*="bg-gray-9"] a:hover{color:#fff}
/* 3. boutons colores : text-white perdu (a{color:inherit}) => texte sombre sur bleu/rouge/vert */
html body.u a.text-white:is([class*="bg-blue-"],[class*="bg-green-"],[class*="bg-red-"],[class*="bg-slate-"],[class*="bg-gray-8"],[class*="bg-gray-9"],[class*="bg-purple-"],[class*="bg-indigo-"],[class*="bg-teal-"]):not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){color:#fff}
html body.u a.bg-green-600.text-white:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){background-color:#047857}
html body.u a.bg-green-600.text-white:hover:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){background-color:#065f46}
html body.u main .text-green-600:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){color:#047857}
/* 4. cartes ville des pages region : l'etiquette de commune (nowrap) etait ecrasee et debordait */
html body.u main .flex.justify-between.items-start:has(> span.whitespace-nowrap){gap:.5rem}
html body.u main .flex.justify-between.items-start > span.whitespace-nowrap{flex:none}
html body.u main .flex.justify-between.items-start > a:has(+ span.whitespace-nowrap){min-width:0;overflow-wrap:anywhere}
html body.u main span.text-xs[class*="bg-brand-50"]:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){color:var(--acc-d)!important}
/* 5. tableaux des guides sur mobile : colonnes de 120 px => 12 lignes ; on laisse defiler plutot qu'ecraser */
@media (max-width:640px){html body.u .u-table :is(td,th){min-width:150px}}
/* 6. attribution Leaflet/OpenStreetMap : 10 px => 12 px */
html body.u .leaflet-container .leaflet-control-attribution,html body.u .leaflet-control-attribution a{font-size:12px}
/* 7. liens text-brand-600 : la teinte du site sur fond pale tombait a 4,2-4,4 : on fonce de 18 % */
/* 8. en-tete clair a fond de couleur vive (orange) : liens du menu 4,1:1 => plus sombres */
html body.u[data-hd="light"] .u-hd .u-nav a:not(.u-btn){color:color-mix(in srgb,var(--ink) 55%,#000)!important}
html body.u-legacy main :is(a,span,h2,h3,h4,p)[class*="text-yellow-"]:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){color:color-mix(in srgb,var(--acc) 78%,#000)!important}

html body.u-legacy main :is(a,span,h3,h4,p):is([class*="text-brand-6"],[class*="text-brand-7"]):not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){color:color-mix(in srgb,var(--acc) 82%,#000)!important}
/* 9. bandeaux sombres : text-brand-50..300 etait peint en gris-bleu fonce (--muted) = invisible */
html body.u-legacy :is([class*="bg-brand-7"],[class*="bg-brand-8"],[class*="bg-brand-9"]) :is(.text-brand-50,.text-brand-100,.text-brand-200,.text-brand-300):not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){color:rgba(255,255,255,.88)!important}
/* 10. liens des textes de guide : teinte du site fonce de 18 % (4,2:1 sur fond pale) */
html body.u-legacy .article-content a:not(:is([id^="vud"] *,[class*="vud"] *,#vud-devis *,.vud-cta-box *)){color:color-mix(in srgb,var(--acc) 82%,#000)!important}

/* ===== punch5a (accueils g1) 2026-10-10 : confiance + acces rapide, sans degrade/pastille ===== */
body.u .u-hero{padding:72px 0 80px}
body.u .u-hero h1{font-size:clamp(2.5rem,5.2vw,4.25rem);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}
body.u .u-hero .u-lead{font-size:1.125rem;line-height:1.6;color:var(--ink);color:color-mix(in srgb,var(--ink) 82%,transparent);max-width:56ch}
body.u .u-hero .u-search{margin-top:2.25rem;max-width:640px}
body.u .u-hero .u-search label{font-size:1rem;font-weight:700;margin-bottom:.55rem}
body.u .u-hero .u-search-row{border:2px solid var(--ink);background:var(--paper);box-shadow:0 1px 0 var(--line)}
body.u .u-hero .u-search-row:focus-within{outline:3px solid var(--acc);outline-offset:2px}
body.u .u-hero .u-search-row input{min-height:60px;font-size:1.125rem;padding:1rem 1.15rem}
body.u .u-hero .u-search-row .u-btn{min-height:60px;min-width:150px;font-size:1.05rem;font-weight:700;background:var(--acc);color:var(--acc-ink,#fff);border-color:var(--acc)}
body.u .u-hero .u-search-row .u-btn:hover{background:var(--acc-d);border-color:var(--acc-d)}
body.u .u-hero .u-search-row input:focus{outline:none}

/* rythme des sections */
body.u main .u-sec{padding:72px 0}
body.u main .u-sec--tight{padding:48px 0 56px}
body.u main .u-sec .u-h2,body.u main .u-index h2{font-size:clamp(1.6rem,2.6vw,2.15rem);line-height:1.12;letter-spacing:-.02em}
body.u main .u-index h2{border-bottom:0;padding-bottom:0;margin-bottom:1.1rem}
body.u main .u-index h2::after{content:"";display:block;width:44px;height:4px;margin-top:.6rem;background:var(--acc);border-radius:2px}
body.u main .u-sec-sub{font-size:1.05rem;color:var(--ink);color:color-mix(in srgb,var(--ink) 72%,transparent);margin-bottom:1.75rem}

/* acces rapides : cartes a bord fin, zone tactile >= 48 px */
body.u main .u-index .u-cols a{overflow-wrap:anywhere;hyphens:manual}
body.u main .u-index .u-cols{columns:auto!important;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
body.u main .u-split>.u-index:only-child .u-cols{columns:auto!important}
body.u main .u-index li a,body.u main .u-svc a{border:1px solid var(--line-2);border-radius:var(--r);background:var(--paper);padding:.8rem 1rem;min-height:52px;box-sizing:border-box;align-items:center;font-weight:600;transition:border-color .15s ease,color .15s ease,background-color .15s ease}
body.u main .u-index li a:hover,body.u main .u-svc a:hover{padding-left:1rem;border-color:var(--acc);color:var(--acc-d);background:var(--paper)}
body.u main .u-index li a::after{opacity:.55;flex:none}
body.u main .u-index li a:hover::after{opacity:1}
body.u main .u-index li a:focus-visible,body.u main .u-svc a:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
body.u main .u-svc{border-top:0;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
body.u main .u-svc a{padding:1.1rem 1.15rem;font-size:1.05rem}
body.u main .u-sec--wash .u-index li a{background:var(--paper)}
body.u main .u-split{gap:56px}
body.u main .u-split:has(>.u-index:not(:only-child)){grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
body.u main .u-split>.u-index:not(:only-child) .u-cols{grid-template-columns:repeat(auto-fill,minmax(165px,1fr))}
body.u main .u-split>.u-index:not(:only-child) li a{padding:.7rem .85rem;font-size:.97rem}
body.u main .u-split>.u-index:not(:only-child) li a::after{content:none}

/* CTA devis + guide */
body.u main .u-guide{max-width:1100px}

/* pied de page */
body.u .u-ft .u-wrap{padding-top:64px;padding-bottom:32px}
body.u .u-ft-grid{gap:48px}
body.u .u-ft h3{font-size:1rem;margin-bottom:1rem}
body.u .u-ft li a{min-height:40px}
body.u .u-ft p{line-height:1.65;max-width:46ch}
body.u .u-ft-bot{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.22)}

@media (max-width:640px){
  body.u .u-hero{padding:32px 0 44px}
  body.u .u-hero h1{font-size:2.3rem!important}
  body.u .u-hero .u-lead{font-size:1.05rem}
  body.u .u-hero .u-search-row input{min-height:56px}
  body.u .u-hero .u-search-row .u-btn{min-height:56px;width:100%}
  body.u main .u-sec{padding:48px 0}
  body.u main .u-sec--tight{padding:36px 0 40px}
  body.u main .u-index .u-cols,body.u main .u-split>.u-index:not(:only-child) .u-cols{grid-template-columns:repeat(auto-fill,minmax(152px,1fr));gap:8px}
  body.u main .u-index li a{padding:.7rem .85rem;font-size:.98rem;min-height:48px;word-break:normal;overflow-wrap:anywhere}
  body.u main .u-svc{grid-template-columns:1fr;gap:8px}
  body.u main .u-split,body.u main .u-split:has(>.u-index:not(:only-child)){grid-template-columns:minmax(0,1fr);gap:40px}
}
/* ===== fin punch5a ===== */
/* ===== punch5b : accueils g2 + g3 (2026-10-10) — pas de degrade/pastille/eyebrow ; VUD exclu ===== */
/* g2 : texte editorial en 2 colonnes (au lieu d une colonne etroite + vide) */
@media (min-width:1000px){
body.u-g2[data-root="/"] main > section.bg-white.rounded-xl.p-8:first-child .article-content{max-width:none;column-count:2;column-gap:56px}
body.u-g2[data-root="/"] main > section.bg-white.rounded-xl.p-8:first-child .article-content > :is(h2){column-span:all;margin-top:0}
body.u-g2[data-root="/"] main > section.bg-white.rounded-xl.p-8:first-child .article-content > :is(ul,h3){break-inside:avoid}
}
body.u-g2[data-root="/"] main > section.bg-white.rounded-xl.p-8:first-child{padding:32px 36px;box-shadow:none;border-color:var(--line)}
body.u-g2[data-root="/"] main > section.bg-white.rounded-xl.p-8:first-child .article-content p{font-size:17px;line-height:1.7;color:var(--ink)}
body.u-g2[data-root="/"] main > section.bg-white.rounded-xl.p-8:first-child .article-content li{font-size:17px;line-height:1.6}
/* g2 : cartes region, compteur sur une ligne */
body.u-g2[data-root="/"] main section.mb-12 .grid > a.block > .flex{flex-wrap:wrap;gap:2px 14px;align-items:baseline}
body.u-g2[data-root="/"] main section.mb-12 .grid > a.block > .flex > span:first-child{white-space:nowrap;font-size:16px}
body.u-g2[data-root="/"] main section.mb-12 .grid > a.block{min-height:76px;border-color:var(--line);box-shadow:none}
body.u-g2[data-root="/"] main section.mb-12 .grid > a.block:hover{border-color:var(--acc);box-shadow:none}
body.u-g2[data-root="/"] main section.mb-12 .grid > a.block:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
body.u-g2[data-root="/"] main section.mb-12 > h2{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:20px}
body.u-g2[data-root="/"] main > section.mb-12{margin-bottom:56px}
/* g2 : villes = cibles tactiles >= 44 px */
body.u-g2[data-root="/"] main section.mb-12 a:is(.block):not(.p-5){min-height:48px}
/* g2 : recherche ville bien visible */
body.u-g2[data-root="/"] .u-g2hero select{min-height:52px;font-size:17px;min-width:min(100%,360px);padding-inline:16px}
/* g3 : sections rythmees (fonds alternes), cibles tactiles, libelles sans majuscules forcees */
body.u-g3[data-root="/"] section#metiers,body.u-g3[data-root="/"] section#villes{background:var(--paper)}
body.u-g3[data-root="/"] section.bg-white.border-t{background:var(--wash)!important}
body.u-g3[data-root="/"] section#regions{background:var(--wash)!important}
body.u-g3[data-root="/"] section#villes a,body.u-g3[data-root="/"] section#regions a{min-height:48px}
body.u-g3[data-root="/"] main .uppercase,body.u-g3[data-root="/"] section .uppercase{text-transform:none;letter-spacing:0}
body.u-g3[data-root="/"] section[style*="linear-gradient"]:not(:has([id^="vud"])){background:var(--acc-d,#1e3a8a)!important}
body.u-g3[data-root="/"] .u-g3hero :is(h1){text-wrap:pretty}
body.u-g3[data-root="/"] .u-g3hero :is(input[type=text],input[type=search],input:not([type])){min-height:52px;font-size:17px}
body.u-g3[data-root="/"] .u-g3hero :is(button,[type=submit]):not([class*="vud"]){min-height:52px;font-size:16px}
/* ===== punch v6 A : pages ville / region (agent villes) ===== */
/* Aplats uniquement. Rien sous [id^="vud-"] / .vud-* / #vud-devis / .vud-cta-box. */

/* ---- 6A1 : cartes pro g1 (.search-result-item) : carte entiere cliquable + bouton « Voir la fiche » >= 44 px ---- */
html body.u main .search-result-item{position:relative}
html body.u main .search-result-item h3 a::after{content:"";position:absolute;inset:0;z-index:0}
html body.u main .search-result-item>div>a:last-child{
  position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:0 18px;box-sizing:border-box;
  border:1px solid var(--acc);border-radius:var(--r);background:var(--paper);
  color:var(--acc-d,var(--acc))!important;font-weight:600;font-size:15px;text-decoration:none!important;white-space:nowrap}
html body.u main .search-result-item>div>a:last-child:hover{background:var(--acc);color:#fff!important;text-decoration:none!important}
html body.u main .search-result-item>div>a:last-child:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
html body[data-list="grid"].u main .search-result-item>div>a:last-child{align-self:stretch;margin-top:.5rem}
@media (max-width:860px){
  html body.u main .search-result-item>div>a:last-child{align-self:stretch;width:100%;margin-top:.4rem}
}

/* ---- 6A2 : bandeau de chiffres des pages ville legacy (texte blanc sur fond clair = illisible) ---- */
html body.u section:has(>.container>.grid>.bg-white\/10){padding-top:32px!important;padding-bottom:32px!important}
html body.u section .grid>.bg-white\/10{background:var(--paper)!important;border:1px solid var(--line-2);border-radius:var(--r)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;padding:16px 20px!important;box-shadow:none!important}
html body.u section .grid>.bg-white\/10>p.text-sm{color:var(--muted)!important;opacity:1!important;font-size:14px!important;line-height:1.4;margin:0 0 2px!important}
html body.u section .grid>.bg-white\/10>p:not(.text-sm){color:var(--ink)!important;font-size:clamp(1.15rem,2.2vw,1.5rem)!important;font-weight:700;line-height:1.25;margin:0!important}
@media (max-width:640px){
  html body.u section:has(>.container>.grid>.bg-white\/10) .grid{gap:10px!important;margin-top:16px!important}
  html body.u section .grid>.bg-white\/10{padding:12px 16px!important}
}

/* ---- 6A3 : en-tete des pages ville g3 : sous-titre (code postal) lisible sur le fond du hero ---- */
html body.u-g3 .hero-city :is(p,p span){color:#fff!important;opacity:1!important;font-size:17px}
html body.u-g3 .hero-city svg{color:#fff}

/* ---- 6A4 : carte et visuels de tete : bord fin au lieu de l ombre decalee ---- */
html body.u .u-cityhd #map.leaflet-container,html body.u .u-cityhd #map{box-shadow:none!important;border:1px solid var(--line-2)!important;border-radius:var(--r)!important}
html body.u-g2:has(.u-g2hero nav) .u-g2fig img{box-shadow:none!important;border:1px solid var(--line-2);border-radius:var(--r)}

/* ---- 6A5 : outils de liste g1 (filtre / tri / compteur) ---- */
html body.u .u-toolbar{gap:10px 12px;align-items:center}
html body.u .u-toolbar output{font-size:15px;font-weight:600;color:var(--ink)}
html body.u .u-toolbar :is(input,select){font-size:16px}
html body.u .u-sec-sub{font-size:16px;line-height:1.5}

/* ---- 6A6 : cartes pro g3 (page ville) : carte entiere cliquable, contacts >= 44 px, empilement mobile ---- */
html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl{position:relative;box-shadow:none!important;border:1px solid var(--line)}
html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl:hover{border-color:var(--acc)}
html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl h3 a::after{content:"";position:absolute;inset:0;z-index:0}
html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl>.flex.justify-between>.text-right{position:relative;z-index:1}
html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl a[href^="http"]:not([href*="vud"]){display:inline-flex;align-items:center;min-height:44px;font-size:15px;color:var(--ink)!important;text-decoration:underline;text-underline-offset:3px}
@media (max-width:640px){
  html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl{padding:16px!important}
  html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl>.flex.justify-between{flex-wrap:wrap;gap:12px}
  html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl>.flex.justify-between>.flex-1{flex:1 1 100%}
  html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl>.flex.justify-between>.text-right{flex:1 1 100%;margin-left:0!important;text-align:left!important;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
  html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl>.flex.justify-between>.text-right br{display:none}
  html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl>.flex.justify-between>.text-right a[href^="tel:"]{flex:1 1 auto;justify-content:center}
  html body.u-g3 main :is(.space-y-4,.space-y-5)>.bg-white.rounded-xl>.flex.justify-between>.text-right a[href^="http"]{padding:0 16px;border:1px solid var(--line-2);border-radius:var(--r);text-decoration:none}
}

/* ---- 6A7 (revue 10/10) : intro de ville g2 en une seule colonne (la phrase etait coupee en deux colonnes) ---- */
body.u-g2 main .article-content:not(:has(>p~p)):not(:has(ul,ol)){column-count:1!important;columns:auto!important;max-width:72ch!important}

/* ===== punch6b (10/10/2026) agent FICHES : contact accessible d emblee, note lisible, cibles >= 44 px. Aplats, aucun degrade ; jamais le widget VUD. ===== */

/* --- g1 (u-fiche) : sur mobile les coordonnees passent juste apres l en-tete (avant services/avis/carte) --- */
@media (max-width:900px){
  body.u .u-fiche>.u-aside{order:-1;margin-bottom:28px}
}
body.u .u-fiche-hd .u-rating{margin-top:.9rem;gap:.6rem;font-size:1.05rem}
body.u .u-fiche-hd .u-rating .u-stars{font-size:1.3rem;letter-spacing:.08em}
body.u .u-fiche-hd .u-rating>span:not(.u-stars){font-weight:600;color:var(--ink)}
body.u .u-fiche-hd .u-actions .u-btn{min-height:48px}
body.u .u-aside{border-radius:var(--r)}
body.u .u-aside h2{font-size:1.25rem;margin-bottom:.5rem}
body.u .u-block>h2{font-size:1.4rem}
body.u .u-review-hd .u-stars{font-size:1rem}

/* --- g2 legacy a grille (installateurs-pac, cuisiniste-luxe...) : coordonnees remontees sur mobile --- */
@media (max-width:1023px){
  body.u-legacy:not(.u-g2):not(.u-g3) main>.grid:has(>.lg\:col-span-2 h1){display:flex;flex-direction:column;gap:1.5rem}
  body.u-legacy:not(.u-g2):not(.u-g3) main>.grid:has(>.lg\:col-span-2 h1)>.lg\:col-span-2{display:contents}
  body.u-legacy:not(.u-g2):not(.u-g3) main>.grid:has(>.lg\:col-span-2 h1)>.lg\:col-span-2>*{order:3;margin:0}
  body.u-legacy:not(.u-g2):not(.u-g3) main>.grid:has(>.lg\:col-span-2 h1)>.lg\:col-span-2>:first-child{order:1}
  body.u-legacy:not(.u-g2):not(.u-g3) main>.grid:has(>.lg\:col-span-2 h1)>div:not(.lg\:col-span-2){order:2}
  body.u-legacy:not(.u-g2):not(.u-g3) main>.grid:has(>.lg\:col-span-2 h1)>div:not(.lg\:col-span-2) .sticky{position:static}
}
body.u-legacy:not(.u-g2):not(.u-g3) main>.grid:has(>.lg\:col-span-2 h1) h1{line-height:1.1;text-wrap:balance}
body.u-legacy:not(.u-g2):not(.u-g3) main>.grid:has(>.lg\:col-span-2 h1) .prose h2{font-size:clamp(1.3rem,2.4vw,1.6rem)}
body.u-legacy:not(.u-g2):not(.u-g3) main>.grid:has(>.lg\:col-span-2 h1) a[href^="tel:"].block{min-height:52px;display:flex;align-items:center;justify-content:center;font-size:1.1rem}

/* --- g2 bandeau (cabinet-psychiatre, onsen-france...) : telephone et site en vrais boutons >= 48 px --- */
body.u-g2 main .bg-brand-600~.p-6 a[href^="tel:"],body.u-legacy main .bg-brand-600~.p-6 a[href^="tel:"]{min-height:48px;padding:.6rem 1.1rem;font-size:1.05rem}
body.u-g2 main .bg-brand-600~.p-6 a[target="_blank"][href]:not([href="#"]):not([href*="google.com/maps"]){display:inline-flex;align-items:center;min-height:48px}
body.u-g2 main .bg-brand-600~.p-6 h2{font-size:1.35rem}

/* --- g3 : liens « voir tous » >= 44 px ; hero un peu plus ferme --- */
body.u-g3 main a.inline-flex.items-center.font-semibold{min-height:44px}
body.u-g3 main h1{letter-spacing:-.02em;text-wrap:balance}
@media (max-width:1023px){
  body.u-legacy:not(.u-g2):not(.u-g3) main>.grid:has(>.lg\:col-span-2 h1) img.u-photo-leg{max-height:230px;object-fit:cover}
}
@media (max-width:900px){
  body.u .u-fiche-hd{padding-bottom:24px;border-bottom:1px solid var(--line)}
}

/* ===== revue 10/10 : fin des ombres decalees (visuels de tete, photo de fiche) et des degrades inline des sites detective ===== */
html body.u .u-hero-fig img,html body.u .u-g2fig img,html body.u img.u-photo,html body.u .u-photo{box-shadow:none!important;border:1px solid var(--line-2);border-radius:var(--r)}
@media (min-width:1024px){html body.u-g3 .u-g3hero:has(form[role=search])::after{box-shadow:none!important}}
html body.u header[data-sticky-header][style*="linear-gradient"]{background:#0c1e3e!important}
html body.u aside[style*="linear-gradient"]:not([class*="vud"]):not([id^="vud"]){background:#0c1e3e!important;box-shadow:none!important}
html body.u aside[style*="linear-gradient"] div[style*="linear-gradient(135deg,#0e7490"],html body.u div[style*="linear-gradient(135deg,#0e7490"]{background:#0e7490!important;box-shadow:none!important}
html body.u aside[style*="linear-gradient"] p[style*="uppercase"],html body.u div[style*="linear-gradient(135deg,#0e7490"] p[style*="uppercase"]{text-transform:none!important;letter-spacing:0!important;font-size:13px!important}
html body.u aside[style*="linear-gradient"] p[style*="color:#0e7490"]{color:#67e8f9!important}
html body.u aside[style*="linear-gradient"] span[style*="uppercase"]{text-transform:none!important;letter-spacing:0!important;font-size:12px!important;background:#fff!important;color:#0c1e3e!important}

/* ===== punch7a (11/10/2026) : bloc « Autres pros de la ville » (maillage fiches) — lignes nettes, note alignée ; aplats, rien sous vud ===== */
body.u h2~.maillage-block>.maillage-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.u .maillage-list--fiches{list-style:none;margin:0;padding:0;border-top:1px solid var(--line,#e5e7eb)}
body.u .maillage-fiche-item{margin:0;border-bottom:1px solid var(--line,#e5e7eb)}
body.u .maillage-link--fiche{display:flex;align-items:center;gap:.5rem;min-height:44px;padding:.6rem .25rem;text-decoration:none;color:inherit;transition:background-color .15s ease,padding-left .15s ease}
body.u .maillage-link--fiche:hover{background:var(--wash,#f8fafc);padding-left:.6rem}
body.u .maillage-fiche-name{flex:1 1 auto;min-width:0;font-weight:600;line-height:1.3}
body.u .maillage-link--fiche:hover .maillage-fiche-name{color:var(--acc)}
body.u .maillage-rating{flex:0 0 auto;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
body.u .maillage-reviews{flex:0 0 auto;font-size:.85em;color:#64748b;white-space:nowrap}
@media (prefers-reduced-motion:reduce){body.u .maillage-link--fiche{transition:none}}
/* fil d’Ariane g2 en flex : séparateurs « › » collés -> espacement */
html body.u-legacy nav.text-sm:not(header *):not(footer *){column-gap:.4rem}
/* formulaire devis du site (process_quote.php, hors VUD) : bouton d’envoi gris -> couleur d’action */
html body.u form[action$="process_quote.php"]:not([id^="vud"] *) button[type=submit]{background:var(--acc)!important;color:#fff!important;font-weight:700;min-height:48px}
html body.u form[action$="process_quote.php"]:not([id^="vud"] *) button[type=submit]:hover{background:var(--acc-d,var(--acc))!important}
/* pied de page mobile : listes longues (>8 liens) sur 2 colonnes, ordre conservé */
@media (max-width:640px){.u-ft-grid ul:has(>li:nth-child(9)){column-count:2;column-gap:1.25rem}.u-ft-grid ul:has(>li:nth-child(9))>li{break-inside:avoid;margin:0!important;padding:.2rem 0}.u-ft-grid ul:has(>li:nth-child(9)){margin-top:0!important}}
/* bouton « Contactez-nous » bleu générique (FAQ accueil) -> couleur d’action du site, hors VUD */
html body.u a[href$="contact.html"][class*="bg-blue-"]:not([id^="vud"] *):not(footer *){background:var(--acc)!important;color:#fff!important;font-weight:700}
html body.u a[href$="contact.html"][class*="bg-blue-"]:not([id^="vud"] *):not(footer *):hover{background:var(--acc-d,var(--acc))!important}
html body.u a[href="/blog/"][class*="bg-blue-"]:not([id^="vud"] *):not(footer *){background:var(--acc)!important;color:#fff!important;font-weight:700}
/* fiches g3 : sous-titre métier (« détective privé à Paris ») avec majuscule initiale */
html body.u-g3 h1:not([id^="vud"] *) ~ p.text-gray-500.mb-3::first-letter{text-transform:uppercase}
/* fiches g2 : « Voir sur Google Maps » (avis) en bouton contour lisible, cible 44px */
html body.u main a[href*="google.com/maps?cid="]:not([id^="vud"] *){display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.55rem 1rem;border:1.5px solid var(--acc);border-radius:var(--r,8px);color:var(--acc)!important;font-weight:700;text-decoration:none}
html body.u main a[href*="google.com/maps?cid="]:not([id^="vud"] *):hover{background:var(--acc);color:#fff!important}
/* mobile : cibles tactiles des noms de pros (listes villes) et liens téléphone >= 36px sans changer le rendu */
@media (max-width:767px){html body.u main h3:not([id^="vud"] *)>a,html body.u main a.text-lg.font-bold:not([id^="vud"] *),html body.u main .mt-6.text-center>a.hover\:underline{display:inline-block;padding-top:.4rem;padding-bottom:.4rem;min-height:36px}
html body.u main a.u-tel:not([id^="vud"] *){display:inline-flex!important;align-items:center;min-height:36px!important}}
@media (max-width:767px){html body.u main dd>a:not([id^="vud"] *),html body.u main p.font-medium>a:not([id^="vud"] *),html body.u main li>a.flex.items-center:not([id^="vud"] *){display:inline-flex;align-items:center;min-height:32px}}
@media (max-width:767px){html body.u main .flex.flex-wrap>a.text-sm.rounded:not([id^="vud"] *){display:inline-flex;align-items:center;min-height:36px}}
/* héros d’accueil g2 à l’origine en dégradé sombre (dégradés neutralisés -> texte blanc sur fond clair) : aplat sombre */
html body.u section.bg-gradient-to-b.from-gray-700.text-white:not([id^="vud"] *){background:var(--ink,#111827)!important;background-image:none!important}
html body.u section.bg-gradient-to-b.from-gray-700.text-white:not([id^="vud"] *) :is(h1,h2,h3,p,span:not([class*="bg-"])){color:#f3f4f6!important}
/* pieds de page sombres : compteurs gris (« (82) ») trop pâles -> gris clair lisible */
html body.u footer[class*="bg-gray-9"] .text-gray-500,html body.u footer[class*="bg-slate-9"] .text-gray-500,html body.u .u-ft .text-gray-500{color:#a3acb9!important}
/* méta d’articles (« 3 min de lecture ») gris-400 trop pâle sur blanc */
html body.u .text-xs.text-gray-400:not([id^="vud"] *):not(footer *):not(.u-ft *){color:#6b7280!important}
/* étoiles de note un ton plus soutenu (contraste ≥ 4,5 sur blanc et fonds teintés) ; gris-500 du contenu sur fonds teintés -> gris un ton plus foncé */
html body.u :is(main,section) .text-gray-500:not([id^="vud"] *):not(footer *){color:#5b6370!important}
html body.u nav .text-gray-400:not([id^="vud"] *):not(footer *){color:#6b7280!important}
/* 13 annuaires solaires : ancienne feuille (css/styles.css) force « footer{background:#9a3412!important} » -> pied de page de la refonte (aplat --ink) pour des textes lisibles */
html body.u footer.u-ft{background-color:var(--ink)!important}
/* cartes « bg-brand-50 » rendues avec la couleur pleine de la marque (titre invisible) -> fond clair comme les cartes voisines */
html body.u a.bg-brand-50:not([id^="vud"] *):not(header *):not(footer *){background:var(--wash,#f6f7f5)!important;color:inherit}
html body.u a.bg-brand-50:not([id^="vud"] *):not(header *):not(footer *):hover{background:#fff!important;border-color:var(--acc)!important}
/* recherche de commune injectée sur les accueils « entreprises » */
html body.u .u-search-inject{max-width:720px;margin:2rem auto 1rem;width:calc(100% - 32px);box-sizing:border-box;padding:1.25rem 1rem;background:var(--paper,#fff);border:1px solid var(--line,#e5e7eb);border-radius:var(--r,8px);box-shadow:var(--sh1)}
html body.u .u-search-inject label{display:block;font-weight:700;margin-bottom:.5rem}
/* menu mobile plein écran sur fond blanc (gabarit fiches g3) : liens hérités blancs de l’en-tête sombre -> texte foncé */
html body.u header #mobile-menu.bg-white a:not(.text-white),html body.u header #mobile-menu.bg-white button{color:#111827!important}
/* message après envoi d’un formulaire de lead */
html body.u .u-form-msg:not(:empty){margin-top:1rem;padding:.85rem 1rem;border-radius:var(--r,8px);font-weight:600;line-height:1.4}
html body.u .u-form-msg.is-ok{background:#ecfdf3;color:#065f46;border:1px solid #a7f3d0}
html body.u .u-form-msg.is-ko{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
html body.u .u-search-inject.u-in-hero{margin:0;width:auto;max-width:none;padding:.4rem .5rem;border:0;box-shadow:none;background:transparent}
html body.u .u-search-inject.u-in-hero label{font-size:.85rem;margin-bottom:.35rem}
@media (min-width:768px){html body.u .u-search-inject.u-in-hero{min-width:440px}html body.u .u-search-inject.u-in-hero input{min-width:0;flex:1 1 auto}}
/* étoiles lisibles dans les en-têtes sombres des fiches (bg-gray-600/700/800 : étoiles vert foncé sur fond foncé) */
html body.u-legacy main [class*="bg-gray-"]:is(.bg-gray-600,.bg-gray-700,.bg-gray-800).text-white span.text-yellow-400:not(:is([id^="vud"] *,[class*="vud"] *)):not(#vud-devis *){color:#f5b800!important}
/* pages régions : bloc Préfecture / Superficie / Population en 3 colonnes égales (rendu 2 colonnes inégales + 3e ligne vide) */
@media (min-width:768px){html body.u main .grid.md\:grid-cols-3:has(>div>h3.font-medium):not(:is([id^="vud"] *,[class*="vud"] *)):not(#vud-devis *){grid-template-columns:repeat(3,minmax(0,1fr))!important}}
/* ===== fin punch7a ===== */
