/* ===== Retouches graphiques (22/10/2026) =====
   Chargé après le style d'origine de index.html : ne remplace que ce qui est listé ici.
   Garde l'identité de Dominique (Cormorant Garamond + Jost, bleu nuit, or) et corrige mise en page, mobile, contraste. */

:root{--mut:#6b7079;--navy-bh:#0b1e3b}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--mut:#a3abb6}}
:root[data-theme="dark"]{--mut:#a3abb6}

/* Marges latérales : .sec écrasait le padding de .w (texte collé au bord sur mobile) */
.sec.w{padding-left:24px;padding-right:24px}
.w{padding-left:24px;padding-right:24px}

/* ---------- En-tête : monogramme + nom à gauche, menu à droite, menu mobile ---------- */
header{position:sticky;top:0;background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.nav{flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:1200px;padding:14px 28px;gap:24px}
.logo{display:flex;align-items:center;gap:14px;font-size:1.15rem!important;letter-spacing:.3em!important;white-space:nowrap;line-height:1}
.logo .mono{width:40px;height:40px;flex:none;background:var(--gold);-webkit-mask:url(bh-monogramme.svg) center/contain no-repeat;mask:url(bh-monogramme.svg) center/contain no-repeat}
.logo .wm b{font-weight:400}
nav{gap:8px 26px;justify-content:flex-end;font-size:.68rem;letter-spacing:.22em}
nav a{padding:8px 0;border-bottom:1px solid transparent;opacity:.78}
nav a.on{border-bottom-color:var(--gold);color:var(--ink)}
.burger{display:none}

@media(max-width:1020px){
  .nav{padding:12px 20px;position:relative}
  .logo{font-size:1rem!important;letter-spacing:.24em!important;gap:12px}
  .logo .mono{width:36px;height:36px}
  .burger{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-10px;background:none;border:0;color:var(--ink);cursor:pointer}
  .burger span,.burger span:before,.burger span:after{display:block;width:22px;height:1px;background:currentColor;position:relative;transition:.25s}
  .burger span:before,.burger span:after{content:"";position:absolute;left:0}
  .burger span:before{top:-7px}.burger span:after{top:7px}
  body.menu-open .burger span{background:transparent}
  body.menu-open .burger span:before{top:0;transform:rotate(45deg)}
  body.menu-open .burger span:after{top:0;transform:rotate(-45deg)}
  nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;flex-wrap:nowrap;gap:0;padding:4px 24px 20px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 18px 30px -24px rgba(0,0,0,.35);max-height:calc(100vh - 70px);overflow:auto}
  body.menu-open nav{display:flex}
  nav a{padding:15px 0;border-bottom:1px solid var(--line);font-size:.76rem;opacity:.9}
  nav a.on{border-bottom-color:var(--line);color:var(--gold)}
}
@media(max-width:380px){.logo .wm{letter-spacing:.16em}}

/* ---------- Boutons ---------- */
.btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.btn.s{min-height:0}
.hero .btn + .btn,.cta .btn + .btn{margin-left:10px}

/* Boutons contour lisibles en sombre (le bleu nuit d'origine disparaissait sur le fond) */
@media(prefers-color-scheme:dark){:where(:root:not([data-theme="light"])) .btn.o{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 45%,transparent)}}
:where(:root[data-theme="dark"]) .btn.o{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 45%,transparent)}

/* ---------- Héros : texte lisible, boutons distincts ---------- */
.hero{min-height:min(86vh,760px);display:flex;align-items:center;padding:120px 0 110px;
  background:linear-gradient(90deg,rgba(6,16,32,.7) 0%,rgba(6,16,32,.38) 48%,rgba(6,16,32,.05) 75%),linear-gradient(180deg,rgba(6,16,32,0) 60%,rgba(6,16,32,.35)),image-set(url(hero-wide.webp) type('image/webp'),url(hero-wide.jpg) type('image/jpeg')) center/cover}
.hero .w{width:100%}
.hero .eyebrow{color:#ead9b6;opacity:1}
.hero h1{margin-bottom:.45em}
.hero p{opacity:.95;font-size:1.05rem;max-width:500px}
.hero .btn{background:#fff;color:var(--navy-bh);border-color:#fff}
.hero .btn.o{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.hero .btn:hover,.hero .btn.o:hover{background:var(--gold);border-color:var(--gold);color:#fff}

/* ---------- Grille des biens : cartes centrées, hauteur égale ---------- */
.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),360px));justify-content:center;gap:48px 32px}
.card img,.card .ph{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.ph{position:relative;background:linear-gradient(140deg,var(--ph),color-mix(in srgb,var(--gold) 28%,var(--ph)))}
.ph:after{content:"";position:absolute;inset:0;margin:auto;width:64px;height:64px;background:var(--gold);opacity:.35;-webkit-mask:url(bh-monogramme.svg) center/contain no-repeat;mask:url(bh-monogramme.svg) center/contain no-repeat}
.card .b{padding-top:20px}
.card .mut{font-size:.7rem;letter-spacing:.18em}
.card h3{line-height:1.2}

/* ---------- Sections ajoutées à l'accueil ---------- */
.svc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.svc a{display:flex;flex-direction:column;gap:10px;padding:40px 32px;text-decoration:none;border-left:1px solid var(--line);transition:background .25s}
.svc a:first-child{border-left:0}
.svc a:hover{background:color-mix(in srgb,var(--gold) 7%,transparent)}
.svc .num{margin:0}
.svc h3{font-size:1.65rem;margin:0}
.svc p{margin:0;color:var(--mut);font-size:.95rem;line-height:1.7}
.svc .go{margin-top:auto;padding-top:14px;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
@media(max-width:700px){.svc a{border-left:0;border-top:1px solid var(--line);padding:30px 4px}.svc a:first-child{border-top:0}}

.cta{background:var(--navy-bh);color:#f3ede0;text-align:center}
.cta .w{max-width:760px}
.cta h2{color:#fff}
.cta h2:after{background:var(--gold)}
.cta p{opacity:.85;margin:0 auto 32px;max-width:540px}
.cta .btn{background:#fff;color:var(--navy-bh);border-color:#fff}
.cta .btn.o{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.cta .btn:hover,.cta .btn.o:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.cta .eyebrow{color:#d9c39b}

.gd{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px}
.gd a{display:block;padding:26px 0 0;border-top:1px solid var(--gold);text-decoration:none}
.gd b{display:block;font:500 1.3rem/1.25 'Cormorant Garamond',Georgia,serif;margin-bottom:8px}
.gd span{color:var(--mut);font-size:.92rem}
.center{text-align:center}

/* ---------- Pied de page ---------- */
footer .mono{display:block;width:54px;height:54px;margin:0 auto 18px;background:var(--gold);-webkit-mask:url(bh-monogramme.svg) center/contain no-repeat;mask:url(bh-monogramme.svg) center/contain no-repeat}
footer p{line-height:2}
footer a{display:inline-block;padding:2px 0}

/* ---------- Mobile ---------- */
@media(max-width:600px){
  .hero{min-height:auto;padding:84px 0 72px}
  .hero .btn,.cta .btn{display:flex;width:100%;margin:0 0 12px!important}
  .sec{padding:64px 0}
  h2{margin-bottom:1.1em}
}

/* Liste de biens vide ou courte : message et bouton centrés sous le titre */
.grid > p.mut{grid-column:1/-1;text-align:center}
.grid + p{text-align:center}
:root[data-theme="light"] .alt{background:#f6f4ef}
:root[data-theme="dark"] .alt{background:#111823}

/* ===== Lot 2 (22/10/2026 soir) : thème clair partout, pages intérieures, pages statiques ===== */

/* ---------- 1. Thème clair imposé (complète data-theme="light" posé sur <html>) ---------- */
:root[data-theme="light"]{color-scheme:light}

/* ---------- 9. Lisibilité : plus rien sous ~11,5 px ---------- */
.btn{font-size:.76rem;letter-spacing:.2em}
.btn.s{font-size:.72rem}
.eyebrow,.num{font-size:.74rem;letter-spacing:.28em}
nav{font-size:.72rem;letter-spacing:.2em}
form label{font-size:.74rem}
.card .mut{font-size:.74rem}
.tbl th{font-size:.72rem}
.small{font-size:.84rem}
.svc .go{font-size:.72rem}

/* ---------- 10. Bouton « Estimer mon bien » dans l'en-tête ---------- */
nav{margin-left:auto}
.hd-cta{flex:none;min-height:0!important;padding:11px 18px;font-size:.68rem;letter-spacing:.16em;background:var(--navy-bh);border:1px solid var(--navy-bh);color:#fff}
.hd-cta:hover{background:var(--gold);border-color:var(--gold);color:#fff}
@media(min-width:1021px){.logo{letter-spacing:.26em!important}nav{gap:8px 22px}}

@media(max-width:1020px){.hd-cta{order:2;margin-left:auto;padding:9px 12px;font-size:.62rem;letter-spacing:.12em}.burger{order:3}}
@media(max-width:560px){.hd-cta{display:none}}
.nav:has(a[href="#/gestion"]) .hd-cta{display:none}

/* ---------- 4. En-tête des pages intérieures (H1 à taille de page, pas d'affiche) ---------- */
body:not(:is([data-page=accueil],[data-page=gestion],[data-page=crm],[data-page=mandats],[data-page=mandat],[data-page=securite])) #app>section h1{font-size:clamp(2.1rem,4.2vw,3.2rem);line-height:1.1;margin:0 0 .35em;max-width:860px;text-wrap:balance}
#app>section .eyebrow+h1,#app>section .num+h1{margin-top:0}
.pt{padding:76px 0 44px;border-bottom:1px solid var(--line)}
.pt .lead{color:var(--mut);font-size:1.08rem;max-width:620px;margin:0}
@media(max-width:600px){.pt{padding:48px 0 32px}}

/* Liste des biens / vendus : titre à gauche comme les autres pages, cartes alignées dessous */
body:is([data-page=biens],[data-page=vendus]) .grid{justify-content:start;margin-top:40px}
body[data-page=biens] .sec>.alt{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 40px;padding:36px 40px!important;margin-top:64px!important;border-top:1px solid var(--gold)}
body[data-page=biens] .sec>.alt h3{grid-column:1;margin:0;font-size:1.6rem}
body[data-page=biens] .sec>.alt p{grid-column:1;margin:0;color:var(--mut)}
body[data-page=biens] .sec>.alt .btn{grid-column:2;grid-row:1/3}
@media(max-width:700px){body[data-page=biens] .sec>.alt{grid-template-columns:1fr;padding:28px 20px!important}body[data-page=biens] .sec>.alt .btn{grid-column:1;grid-row:auto;margin-top:16px}}

/* ---------- 3. Accueil : « L'agence » et « Vous cherchez un bien ? » ---------- */
.pitch{text-align:center}
.pitch .grand{font:400 clamp(1.5rem,2.6vw,2.1rem)/1.35 'Cormorant Garamond',Georgia,serif;max-width:760px;margin:0 auto 30px;text-wrap:balance}
.pitch-txt{max-width:640px;margin:0 auto;text-align:left}
.pitch-txt p{margin:0 0 1.1em}
.pitch-cta{margin:34px 0 0}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.duo .photo{aspect-ratio:4/3;overflow:hidden;background:var(--ph)}
.duo .photo img{width:100%;height:100%;object-fit:cover;display:block}
.duo h2{text-align:left;margin-bottom:.6em}
.duo h2:after{margin-left:0}
.duo .lead{color:var(--mut);font-size:1.05rem;margin:0}
.engage{list-style:none;padding:0;margin:26px 0 30px}
.engage li{position:relative;padding:14px 0 14px 28px;border-top:1px solid var(--line)}
.engage li:last-child{border-bottom:1px solid var(--line)}
.engage li:before{content:"";position:absolute;left:0;top:1.5em;width:14px;height:1px;background:var(--gold)}
.engage b{font-weight:500}
@media(max-width:900px){.duo{grid-template-columns:1fr;gap:36px}}
/* engagements numérotés 01 02 03 */
body[data-page=accueil] .alt .cols{counter-reset:e}
body[data-page=accueil] .alt .box:before{counter-increment:e;content:"0" counter(e);display:block;font:italic 1.1rem 'Cormorant Garamond',Georgia,serif;color:var(--gold);margin-bottom:6px}

/* ---------- 5-6. Pages à formulaire (Vendre, Acheter, Contact) ---------- */
.fcols{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start}
.fargs{position:sticky;top:100px}
.fargs .num{margin:0 0 6px}
.fargs p{margin:0 0 26px}
.fbox{background:var(--card);border:1px solid var(--line);padding:40px}
.fbox>p:first-child{margin-top:0}
.fbox form,.fone form{max-width:none}
.fone{max-width:860px}
.fone h2{margin-bottom:1em}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.trio>div{border-top:1px solid var(--gold);padding-top:22px}
.trio .n,.etapes5 li:before{font:italic 1.15rem 'Cormorant Garamond',Georgia,serif;color:var(--gold)}
.trio h3{font-size:1.5rem;margin:.3em 0 .4em}
.trio p{color:var(--mut);margin:0}
.etapes5{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0 24px;counter-reset:s}
.etapes5 li{border-top:1px solid var(--gold);padding-top:20px;counter-increment:s}
.etapes5 li:before{content:counter(s);display:block}
.etapes5 b{display:block;font:500 1.25rem/1.25 'Cormorant Garamond',Georgia,serif;margin:.3em 0 .4em}
.etapes5 span{color:var(--mut);font-size:.92rem}
@media(max-width:900px){.fcols{grid-template-columns:1fr;gap:32px}.fargs{position:static}.trio,.etapes5{grid-template-columns:1fr;gap:28px}}
@media(max-width:600px){.fbox{padding:0;border:0;background:none}}

/* ---------- 7. Fiche d'un bien ---------- */
@media screen{
  body[data-page=bien] #app>section.sec{display:flex;flex-direction:column}
  body[data-page=bien] #app>section.sec>.tag{align-self:flex-start}
  body[data-page=bien] .gal{order:1;margin:28px 0 0}
  body[data-page=bien] .stats{order:2;margin-top:28px}
  body[data-page=bien] .hd{order:3;margin-top:32px;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:56px;align-items:start}
  body[data-page=bien] .hd>#visite{position:sticky;top:96px;border:1px solid var(--line);padding:30px 28px;background:var(--card)}
  body[data-page=bien] .hd>#visite form{max-width:none}
}
.gal:not(:has(img)){display:none}
#visite{scroll-margin-top:90px}
.stick-m{display:none}
@media(max-width:700px){
  body[data-page=bien] .hd{grid-template-columns:1fr}
  body[data-page=bien] .hd>#visite{position:static;padding:0;border:0}
  body[data-page=bien] .gal{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;margin-inline:-24px;padding-inline:24px}
  body[data-page=bien] .gal img,body[data-page=bien] .gal img:first-child{flex:0 0 88%;aspect-ratio:4/3;scroll-snap-align:start}
  body[data-page=bien] .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0 12px}
  .stick-m{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;justify-content:center;align-items:center;min-height:56px;border:0;background:var(--navy-bh);color:#fff;font:500 .76rem Jost,sans-serif;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
  body[data-page=bien] footer{padding-bottom:96px}
}

/* ---------- Agence ---------- */
body[data-page=agence] .hd{grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:64px;align-items:start;margin-top:28px}
body[data-page=agence] .hd h3{margin-top:2em}
body[data-page=agence] .hd .cols{grid-template-columns:repeat(3,1fr);gap:28px}
body[data-page=agence] .note{border:1px solid var(--line);border-top:1px solid var(--gold);padding:28px;line-height:2;position:sticky;top:100px;margin:0}
@media(max-width:800px){body[data-page=agence] .hd{grid-template-columns:1fr}body[data-page=agence] .hd .cols{grid-template-columns:1fr}body[data-page=agence] .note{position:static}}

/* ---------- Honoraires et pages légales : même bord gauche que le reste du site ---------- */
.sec.w.legal{max-width:1100px}
.legal>*{max-width:800px}
.legal ul{padding-left:1.2em}
.legal li{margin:.3em 0}

/* ---------- 8. Pied de page en colonnes ---------- */
footer .ft-acc{margin:6px 0 36px}
footer .ft-acc a{color:#e8dcc4}
.ft-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;max-width:860px;margin:0 auto;padding:34px 0;border-block:1px solid rgba(255,255,255,.12);text-align:left;line-height:1.6}
.ft-g h4{font:500 .72rem Jost,sans-serif;letter-spacing:.26em;text-transform:uppercase;color:#d9c39b;margin:0 0 12px}
.ft-g a{display:block;padding:5px 0;color:#d4d8de;opacity:1}
.ft-g a:hover{color:#fff}
.ft-bas{margin:26px auto 0;max-width:860px;font-size:.8rem;opacity:.65;line-height:1.7}
@media(max-width:700px){.ft-g{grid-template-columns:1fr 1fr;gap:24px 16px}.ft-g>div:last-child{grid-column:1/-1}.ft-g a{padding:9px 0}}

/* ---------- 2. Pages statiques (guides, mise en location) : body.st ---------- */
.st{--bg:#fff;--card:#fff;--ink:#14181f;--mut:#6b7079;--navy:#0b1e3b;--navy-bh:#0b1e3b;--gold:#9a7b4f;--line:#e6e3dd;background:#fff;color:var(--ink);font:400 16px/1.8 Jost,system-ui,sans-serif}
.st header{display:block;padding:0;z-index:9;border-bottom:1px solid var(--line);color:var(--ink)}
.st .nav{display:flex;margin:auto}
.st header a{color:var(--ink);text-decoration:none}
.st .logo{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;text-transform:uppercase}
.st .logo b{color:var(--ink);font-weight:500}
.st nav{text-transform:uppercase}
@media(min-width:1021px){.st nav{display:flex}}
@media(max-width:1020px){.st nav{display:none}body.st.menu-open nav{display:flex}}
.st nav a:hover,.st nav a.on{color:var(--gold);opacity:1}
.st .btn,.st .hd-cta{text-decoration:none;text-transform:uppercase;font-family:Jost,sans-serif;font-weight:500}
.st main{max-width:780px;margin:0 auto;padding:64px 24px 88px}
.st h1{font:400 clamp(2.1rem,4.2vw,3rem)/1.12 'Cormorant Garamond',Georgia,serif;margin:.25em 0 .4em;text-wrap:balance}
.st h2{font:500 1.75rem/1.2 'Cormorant Garamond',Georgia,serif;margin:2.2em 0 .6em}
.st h2:before{content:"";display:block;width:44px;height:1px;background:var(--gold);margin-bottom:18px}
.st .lead{font-size:1.12rem;color:var(--mut)}
.st main a{color:var(--ink);text-decoration-color:var(--gold);text-underline-offset:3px}
.st .crumb{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;margin:0}
.st .crumb a{color:var(--mut);text-decoration:none}
.st table{font-size:.95rem}
.st td,.st th{border:0;border-bottom:1px solid var(--line);padding:12px 10px}
.st th{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mut);font-weight:500}
.st details{border-bottom:1px solid var(--line);padding:0}
.st summary{list-style:none;position:relative;padding:18px 36px 18px 0;font-weight:500}
.st summary::-webkit-details-marker{display:none}
.st summary:after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font:300 1.5rem Jost,sans-serif;color:var(--gold)}
.st details[open] summary:after{content:"−"}
.st details>:not(summary){margin:0 0 18px}
.st main .btn{background:var(--navy);color:#fff;border:1px solid var(--navy);padding:15px 30px;font-size:.76rem;letter-spacing:.2em;margin-top:18px}
.st main .btn:hover{background:var(--gold);border-color:var(--gold)}
.st ul.cards{border-top:1px solid var(--line);margin-top:40px}
.st ul.cards li{padding:26px 0;color:var(--mut)}
.st ul.cards a{display:block;text-decoration:none;margin-bottom:6px}
.st ul.cards b{font:500 1.45rem/1.25 'Cormorant Garamond',Georgia,serif;color:var(--ink)}
.st ul.cards br{display:none}
.st main ol{list-style:none;padding:0;counter-reset:s}
.st main ol li{counter-increment:s;position:relative;padding:16px 0 16px 44px;border-top:1px solid var(--line)}
.st main ol li:before{content:counter(s);position:absolute;left:0;top:13px;font:italic 1.35rem 'Cormorant Garamond',Georgia,serif;color:var(--gold)}
.st footer{background:#0b1e3b;color:#b9bfc9;text-align:center;padding:64px 24px 40px}
.st footer .logo{justify-content:center;color:#fff;font-size:1.25rem!important}
.st footer .logo b{color:var(--gold)}
@media(max-width:600px){.st main{padding:40px 24px 64px}.st table{font-size:.84rem}.st td,.st th{padding:10px 6px}}
.st .hd-cta{margin-top:0}
.st header .hd-cta,.st header .hd-cta:hover{color:#fff}
.st footer a{text-decoration:none}
.st footer a:hover{color:#fff}
.card .tag,.tag{font-size:.7rem}

/* Un élément marqué hidden reste caché, même s'il a la classe .btn */
[hidden]{display:none!important}

/* ===== Lot 3 (revue UI/UX 22/10/2026) ===== */

/* C1. Boutons principaux pleins (bleu nuit) ; le contour reste pour les actions secondaires */
:where(body:not(:is([data-page=gestion],[data-page=crm],[data-page=mandats],[data-page=mandat],[data-page=securite]))) #app .sec:not(.cta) .btn:not(.o,.s,.r){background:var(--navy-bh);border-color:var(--navy-bh);color:#fff}
:where(body:not(:is([data-page=gestion],[data-page=crm],[data-page=mandats],[data-page=mandat],[data-page=securite]))) #app .sec:not(.cta) .btn:not(.o,.s,.r):hover{background:var(--gold);border-color:var(--gold);color:#fff}

/* C2. Héros : texte lisible sur mobile */
.hero h1,.hero p,.hero .eyebrow{text-shadow:0 1px 18px rgba(0,0,0,.35)}
@media(max-width:700px){
  .hero{background:linear-gradient(180deg,rgba(6,16,32,.5) 0%,rgba(6,16,32,.62) 50%,rgba(6,16,32,.8) 100%),image-set(url(hero-wide.webp) type('image/webp'),url(hero-wide.jpg) type('image/jpeg')) 62% center/cover}
  .hero h1,.hero p,.hero .eyebrow{text-shadow:none}
}

/* C3. Vendre : formulaire avant les arguments sur mobile et tablette */
@media(max-width:900px){body[data-page=estimation] .fcols>.fbox{order:-1}}

/* C4. Tablette : plus de grille 2 + 1 orpheline */
@media(min-width:701px) and (max-width:1020px){
  .svc{grid-template-columns:repeat(3,minmax(0,1fr))}
  .svc a{padding:32px 20px}
  .svc h3{font-size:1.4rem}
  body[data-page=accueil] .alt .cols,.gd{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
  .trio{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
  .trio h3{font-size:1.3rem}
}
@media(min-width:701px) and (max-width:800px){body[data-page=agence] .hd .cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}}

/* C5. Chiffres alignés */
h1,h2,h3,.price,.stats b,.trio .n,.etapes5 li:before,body[data-page=accueil] .alt .box:before,.st main ol li:before{font-variant-numeric:lining-nums}

/* C6. Accessibilité : or lisible, champs visibles, focus clavier, cibles 44 px */
:root{--gold-txt:#866a43}
.eyebrow,.num,.svc .go,.trio .n,.etapes5 li:before,body[data-page=accueil] .alt .box:before,.st main ol li:before,.st .crumb a{color:var(--gold-txt)}
#app a[style*="--gold"]{color:var(--gold-txt)!important}
form[data-mail] input:not([type=checkbox]),form[data-mail] select,form[data-mail] textarea{border-bottom-color:#938e84}
.opt input{width:20px;height:20px;accent-color:var(--gold)}
.opt{min-height:44px}
:focus-visible{outline:2px solid var(--gold-txt);outline-offset:3px}
.hero :focus-visible,.cta :focus-visible,footer :focus-visible,.stick-m:focus-visible,.hd-cta:focus-visible{outline-color:#fff}
form[data-mail] :is(input,select,textarea):focus-visible{outline:0}
.hd-cta{min-height:44px!important}

/* C7. Listes déroulantes au dessin du site, champs alignés */
form[data-mail] select{-webkit-appearance:none;appearance:none;padding-right:44px;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23866a43' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 16px center}
form[data-mail] input:not([type=checkbox]),form[data-mail] select{height:52px;line-height:normal}
form[data-mail].g2{align-items:end}

/* C8. Mobile : « Estimer mon bien » collé en bas (le header perd son flou, sinon position:fixed se cale sur lui) */
@media(max-width:560px){
  header{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--bg)}
  body:is([data-page=accueil],[data-page=agence],[data-page=honoraires],[data-page=contact]) .hd-cta,body.st .hd-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;min-height:56px!important;margin:0;padding:0 16px env(safe-area-inset-bottom,0px);justify-content:center;align-items:center;border:0;background:var(--navy-bh);color:#fff;font-size:.76rem;letter-spacing:.2em}
  body:is([data-page=accueil],[data-page=agence],[data-page=honoraires],[data-page=contact]) footer,body.st footer{padding-bottom:120px}
  body.st:has(nav a.on[href="/mise-en-location/"]) .hd-cta{display:none}
}

/* C9. Fiche d'un bien de 701 à 900 px : une colonne + bouton collant ; galerie 4 colonnes */
@media(min-width:701px) and (max-width:900px){
  body[data-page=bien] .hd{grid-template-columns:1fr;gap:40px}
  body[data-page=bien] .hd>#visite{position:static}
  .stick-m{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;justify-content:center;align-items:center;min-height:56px;border:0;background:var(--navy-bh);color:#fff;font:500 .76rem Jost,sans-serif;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
  body[data-page=bien] footer{padding-bottom:96px}
}
@media(min-width:701px){body[data-page=bien] .gal{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* C10. Un seul bien en vente : carte horizontale */
.card h3{text-wrap:balance}
@media(min-width:801px){
  .grid:has(> .card:only-child){grid-template-columns:minmax(0,1fr)}
  .grid > .card:only-child{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;align-items:center;max-width:980px;width:100%;justify-self:center}
  body[data-page=biens] .grid > .card:only-child{justify-self:start}
  .grid > .card:only-child .b{padding:0}
  .grid > .card:only-child h3{font-size:1.9rem}
}

/* C11. Rythme : en-tête de page + première section */
.pt+.sec{padding-top:56px}
@media(max-width:600px){.pt+.sec{padding-top:40px}}

/* C12. Menu : « Acheter » reste actif sur la recherche et la fiche */
body:is([data-page=recherche],[data-page=bien]) nav a[href="#/biens"]{opacity:1;color:var(--ink);border-bottom-color:var(--gold)}
@media(max-width:1020px){body:is([data-page=recherche],[data-page=bien]) nav a[href="#/biens"]{color:var(--gold);border-bottom-color:var(--line)}}

/* C13. Pages statiques alignées sur le site */
.st nav{font-weight:300}
.st nav a{opacity:.78}
.st nav a:hover{opacity:1;color:var(--gold)}
.st nav a.on{color:var(--ink);opacity:1;border-bottom-color:var(--gold)}
@media(max-width:1020px){.st nav a.on{color:var(--gold);border-bottom-color:var(--line)}}
.st main ol b{font:500 1.2rem/1.3 'Cormorant Garamond',Georgia,serif;letter-spacing:.01em}
.st main ul:not(.cards){list-style:none;padding-left:0}
.st main ul:not(.cards) li{position:relative;padding-left:26px;margin:.45em 0}
.st main ul:not(.cards) li:before{content:"";position:absolute;left:0;top:.9em;width:12px;height:1px;background:var(--gold)}
.etapes5 li:before,.st main ol li:before{content:"0" counter(s)}
@media(min-width:900px){
  .st main:has(> ul.cards){max-width:1100px}
  .st main:has(> ul.cards) h1,.st main:has(> ul.cards) .lead{max-width:760px}
  .st ul.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px}
}

/* C14. Finitions */
.mut,.svc p,.trio p,.etapes5 span,.gd span,.lead{font-weight:400}
@media(max-width:600px){.tbl th{letter-spacing:.08em}.tbl td,.tbl th{padding:12px 6px}}

/* C15. Supports des gabarits T8, T9, T13, T16-T19 (sans effet tant que les gabarits ne sont pas changés) */
.ag-photo,.pg-photo{margin:32px 0 48px}
.ag-photo img,.pg-photo img{display:block;width:100%;aspect-ratio:21/9;object-fit:cover}
.pg-photo.r32 img{aspect-ratio:3/2}
.pg-photo.r169 img{aspect-ratio:16/9}
.fargs-photo{margin:0 0 32px}
.fargs-photo img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
@media(max-width:900px){.fargs-photo{display:none}}
@media(max-width:700px){.ag-photo img,.pg-photo img{aspect-ratio:4/3}}
.zones{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:14px 0 0}
.zones li{border:1px solid var(--line);padding:7px 14px;font-size:.86rem;white-space:nowrap;background:var(--card)}
.st .cta-st{margin:64px 0 0;padding:48px 32px;background:var(--navy-bh);color:#fff;text-align:center}
.st .cta-st h2{color:#fff;margin-top:0}
.st .cta-st .btn{background:#fff;color:var(--navy-bh);border-color:#fff}
.st .cta-st .btn.o{background:transparent;color:#fff}

/* C16. Revue CRO : retour d'envoi, bouton près du prix, contact, champs, boutons des pages statiques */
.ok-box{border-top:1px solid var(--gold);padding:28px 0}
.ok-box h3{margin:0 0 .4em}
.cta-d{align-self:flex-start;margin-top:14px}
@media(max-width:900px){.cta-d{display:none}}
@media(max-width:700px){body[data-page=bien] [data-act=print]{display:none}}
@media(max-width:900px){body[data-page=contact] .fcols>.fbox{order:-1}}
form label{font-size:.78rem}
:where(.st main) .btn:not(.o,.s,.r){background:var(--navy-bh);border-color:var(--navy-bh);color:#fff}
:where(.st main) .btn:not(.o,.s,.r):hover{background:var(--gold);border-color:var(--gold)}
body[data-page=bien] a.mut.noprint{display:inline-block;padding:12px 0}


/* C17. Menu à 7 entrées + « Confier ma recherche » sur une seule ligne (ordinateur) */
@media(min-width:1021px){nav{flex-wrap:nowrap;gap:8px 18px;letter-spacing:.14em;white-space:nowrap}.logo{letter-spacing:.2em!important}}
@media(min-width:1021px) and (max-width:1280px){nav{gap:8px 14px;font-size:.66rem;letter-spacing:.12em}.hd-cta{padding:11px 14px;letter-spacing:.12em}}
.ag-photo img,.pg-photo img,.fargs-photo img{height:auto}
/* C18. Espace de gestion connecté : 13 entrées de menu, retour à la ligne au lieu de déborder (ordinateur) */
@media(min-width:1021px){nav:has(a[href="#/logout"]){flex-wrap:wrap;white-space:normal;justify-content:flex-end;row-gap:4px;max-width:880px}}
/* C19. Revue UI/UX v8 (22/10) : espace de gestion lisible au téléphone, hiérarchie des boutons, grilles */
@media(max-width:900px){
div[style*="overflow-x:auto"]{position:relative;background:linear-gradient(to right,var(--bg) 30%,transparent),linear-gradient(to left,var(--bg) 30%,transparent) right,linear-gradient(to right,rgba(11,29,58,.18),transparent) left,linear-gradient(to left,rgba(11,29,58,.18),transparent) right;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}
div[style*="overflow-x:auto"] .tbl{min-width:880px}
div[style*="overflow-x:auto"] .tbl td:first-child,div[style*="overflow-x:auto"] .tbl th:first-child{position:sticky;left:0;background:var(--bg);z-index:1}
.tbl td{vertical-align:top}}
div[style*="overflow-x:auto"] .tbl td:nth-child(1){white-space:nowrap}
.btn.r{background:transparent!important;color:#7d2f2f!important;border-color:#7d2f2f!important}
.btn.r:hover,.btn.r:focus-visible{background:#7d2f2f!important;color:#fff!important}
.btn[data-act=publish]{background:var(--navy-bh);border-color:var(--navy-bh);color:#fff;min-height:44px}
.btn[data-act=publish][disabled]{opacity:.45!important;cursor:not-allowed}
.cols>.box b{font-variant-numeric:lining-nums;font-size:2.2rem;line-height:1;display:block;margin-bottom:6px;font-weight:400}
.cols[style*="gap:16px"]{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:24px!important}
@media(max-width:900px){.cols[style*="gap:16px"]{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px 16px!important}.cols[style*="gap:16px"] .box:last-child{grid-column:1/-1}}
.row>.acts .btn{min-height:44px}
@media(min-width:1021px){.grid:has(> .card:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch}}
@media(min-width:901px){body[data-page=bien] .fbox{position:sticky;top:96px;align-self:start}}
body:has(nav a[href="#/logout"]) footer{display:none}
.hon input:not([type=checkbox]):not([type=file]):not([type=radio]),.hon select,.hon textarea{border:1px solid #b9b4aa;background:#fff;padding:12px 14px;min-height:46px;width:100%}
select{text-overflow:ellipsis;max-width:100%}
.steps{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:6px}
.steps button{flex:none;min-height:40px;scroll-snap-align:start}
.tbl td:empty::after{content:"—";color:var(--mut)}
@media(min-width:1021px){nav a[href="#/gestion"]{margin-left:12px;padding-left:18px;border-left:1px solid var(--line)}nav a[href="#/logout"]{color:#7d2f2f}}
/* C20. Revue CRO v8 (22/10) : formulaire de recherche dans le premier écran, case alertes, bandeau mobile */
body[data-page=recherche] #app{display:flex;flex-direction:column}
body[data-page=recherche] #app>section.pt{order:1}
body[data-page=recherche] #app>section.alt{order:2}
body[data-page=recherche] #app>section.sec:not(.alt){order:3}
body[data-page=recherche] #app>footer{order:4}
@media(min-width:901px){body[data-page=recherche] .pg-photo.r169 img{aspect-ratio:3/1;object-position:center 30%}body[data-page=recherche] .pg-photo{margin:20px 0 20px}}
body[data-page=recherche] .hd-cta{display:none}
.consent:has(.cb:user-invalid){border-color:#8e2f2f;background:#fbf3f3}
form :is(input,select,textarea,.consent){scroll-margin-top:96px}
form[data-mail] p[role=status]:empty{margin:0;min-height:0;padding:0}
.opt{align-items:flex-start;gap:12px;padding:8px 0;margin-bottom:8px}
.opt input{width:24px;height:24px;flex:none}
.opt span{font-size:.9rem;line-height:1.5;color:var(--ink)}
@media(min-width:701px) and (max-width:1020px){.svc .go{letter-spacing:.1em;font-size:.68rem;white-space:nowrap}}
@media(max-width:560px){
body[data-page=contact] .hd-cta{display:none}
@supports (animation-timeline:scroll()){body[data-page=accueil] .hd-cta{animation:bhcta linear both;animation-timeline:scroll(root);animation-range:380px 560px}}}
@keyframes bhcta{from{opacity:0;pointer-events:none;transform:translateY(100%)}to{opacity:1;pointer-events:auto;transform:none}}


/* ===== Retours de Dominique 25/10/2026 ===== */

/* Haut de page « tout bleu comme avant » : voile bleu nuit uniforme sur sa photo nette */
.hero{background:linear-gradient(90deg,rgba(11,30,59,.62) 0%,rgba(11,30,59,.42) 42%,rgba(11,30,59,.08) 72%,rgba(11,30,59,0) 100%),linear-gradient(180deg,rgba(11,30,59,0) 70%,rgba(11,30,59,.3) 100%),image-set(url(hero-lille-2000.webp) type('image/webp'),url(hero-lille-2000.jpg) type('image/jpeg')) center/cover}
@media(max-width:700px){.hero{background:linear-gradient(180deg,rgba(11,30,59,.42) 0%,rgba(11,30,59,.55) 100%),image-set(url(hero-lille-1280.webp) type('image/webp'),url(hero-lille-1280.jpg) type('image/jpeg')) 28% center/cover}}

/* « Lille en grand » */
.hero .eyebrow.hero-ville{font-size:clamp(.95rem,1.5vw,1.2rem);letter-spacing:.26em;margin-bottom:22px}
.hero .eyebrow.hero-ville span{white-space:nowrap}
.hero h1,.hero p,.hero .eyebrow{text-shadow:0 1px 14px rgba(6,16,32,.45)}
@media(max-width:700px){.hero .eyebrow.hero-ville{letter-spacing:.18em}.hero .eyebrow.hero-ville b{display:block;margin-bottom:4px}.hero .eyebrow.hero-ville i{display:none}}
.hero .eyebrow.hero-ville i{font-style:normal}
.hero .eyebrow.hero-ville b{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:1.9em;letter-spacing:.12em;vertical-align:-.08em}

/* Bloc secteurs : deux colonnes égales */
.zones-bh .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
.zones-bh>.eyebrow,.zones-bh h2,.zones-bh>p:last-child{text-align:center}
.zones-bh h2{margin-bottom:28px}
.zones-bh p:last-child{margin-top:28px}
@media(max-width:700px){.zones-bh .cols{grid-template-columns:1fr;gap:28px}}


/* ===== Revue CRO 25/10/2026 ===== */
/* 2. Champs en erreur visibles (après une première tentative d'envoi) */
form[data-mail] :is(input,select,textarea):user-invalid{border-color:#8e2f2f;background:#fbf3f3}
form[data-mail] label:has(:user-invalid){color:#8e2f2f}
/* 3. Bandeau bas mobile : masqué sur l'accueil si le navigateur ne gère pas l'apparition au défilement */
@media(max-width:560px){@supports not (animation-timeline:scroll()){body[data-page=accueil] .hd-cta{display:none}}}
/* 6a. Vendre : pas de bouton « Confier ma recherche » à côté du formulaire de vente */
body[data-page=estimation] .hd-cta{display:none}
/* 9. Cibles tactiles */
footer a{padding:12px 0}
@media(max-width:700px){.consent a{padding:12px 4px;margin:-12px -4px;display:inline-block}.consent .cb{width:28px;height:28px}}
/* 10. Étiquettes de formulaire lisibles */
form label{font-size:.8125rem}


/* ===== Page côte d'Opale 25/10/2026 ===== */
.st main.opale{max-width:none;padding:0}
.opale .op-hero{background:var(--navy-bh);color:#fff}
.opale .op-in{max-width:1120px;margin:0 auto;padding:72px 24px 80px}
.opale .op-hero .crumb,.opale .op-hero .crumb a{color:#c9cfd8}
.opale .op-hero h1{color:#fff;max-width:24ch}
.opale .op-hero .lead{color:#dfe3ea;max-width:62ch}
.opale .op-acts{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 0}
.st .opale .op-acts .btn{margin:0}
.st .opale .btn.w{background:#fff;color:var(--navy-bh);border-color:#fff}
.st .opale .btn.o{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.st .opale .btn.w:hover,.st .opale .btn.o:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.opale .op-w{max-width:1120px;margin:0 auto;padding:16px 24px 88px}
.opale .op-k{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-txt);margin:0 0 8px}
.opale h3{font:500 1.4rem/1.25 'Cormorant Garamond',Georgia,serif;margin:0 0 10px;text-wrap:balance}
.opale .op-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.opale .op-trio>div{border-top:1px solid var(--gold);padding-top:22px}
.opale .op-trio p:not(.op-k),.opale .op-communes p:not(.op-k){color:var(--mut);margin:0 0 14px}
.st .opale .op-trio a{text-decoration:none;font-weight:500;display:inline-block;padding:11px 0;margin:-11px 0}
.st main.opale ul.op-communes{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(6,1fr);gap:24px}
.st main.opale ul.op-communes li{border:1px solid var(--line);padding:26px 24px;margin:0;grid-column:span 2}
.st main.opale ul.op-communes li:nth-child(4){grid-column:2/4}
.st main.opale ul.op-communes li:nth-child(5){grid-column:4/6}
.st main.opale ul.op-communes li:before{display:none}
.opale .op-2{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.opale .op-fin{background:#f6f3ee;border-top:1px solid var(--line)}
.opale .op-fin .op-in{text-align:center;padding:64px 24px}
.opale .op-fin h2{margin:0 0 .4em}
.st .opale .btn.o2{background:transparent;color:var(--navy-bh);border-color:var(--navy-bh)}
.st .opale .btn.o2:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.opale .op-fin h2:before{margin:0 auto 18px}
.opale .op-fin .lead{margin:0 auto;color:#4f5560}
.opale .op-fin .op-acts{justify-content:center}
@media(max-width:900px){.opale .op-trio,.opale .op-2{grid-template-columns:1fr;gap:8px 0}.st main.opale ul.op-communes{grid-template-columns:1fr 1fr}.st main.opale ul.op-communes li,.st main.opale ul.op-communes li:nth-child(n+4){grid-column:auto}.st main.opale ul.op-communes li:last-child{grid-column:1/-1}.opale .op-trio>div{padding-bottom:12px}}
@media(max-width:600px){.opale .op-in{padding:44px 24px 52px}.st main.opale ul.op-communes{grid-template-columns:1fr;gap:14px}.opale .op-acts .btn{flex:1 1 100%;text-align:center}}
/* ===== fin côte d'Opale ===== */


/* ===== Revues finales 25/10/2026 ===== */
/* UX 4. Menu et bouton d'en-tête lisibles sur ordinateur (le bouton reste visible de 1021 à 1180 px) */
@media(min-width:1021px){nav{font-size:.74rem;letter-spacing:.1em;gap:8px 16px}.hd-cta{font-size:.72rem;letter-spacing:.1em}}
/* UX 5. Vendre : « Délai de vente » sur toute la largeur (ordre des champs inchangé) */
form.g2[data-mail]>div:has([name=delai]){grid-column:1/-1}
/* UX 6. Contact : la page est un formulaire, pas de bouton d'en-tête */
body[data-page=contact] .hd-cta{display:none}
/* UX 7 et 9. Fil d'Ariane : zone tactile et taille lisible */
.crumb a{display:inline-block;padding:12px 0;margin:-12px 0}
.st .crumb{font-size:.78rem}
/* UI 1. Même échelle de titres que les pages du site */
.st h1{font-size:clamp(2.1rem,4vw,3.2rem)}
.st h2{font-size:clamp(1.6rem,2.4vw,2.4rem)}
/* UI 2. Bandeau des guides : trait or centré */
.st .cta-st h2:before{margin-left:auto;margin-right:auto}
/* UI 3. Guides : pas de trou après la dernière carte, pas de mot seul en fin de titre */
@media(min-width:701px){.st ul.cards li:last-child:nth-child(odd){grid-column:1/-1}}
.st ul.cards a{text-wrap:balance}
/* UI 4. Accueil à 768 : cartes Acheter / Vendre / Louer lisibles */
@media(min-width:701px) and (max-width:900px){.svc .go{letter-spacing:.14em;font-size:.68rem}.svc h3{font-size:1.2rem}}

/* Pages villes (26/10/2026, tools/villes-26-10.py) */
.ville .vl-fig{margin:56px 0 8px}
.ville .vl-fig img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.ville .vl-fig figcaption{font-size:.75rem;color:var(--mut);margin-top:6px;text-align:right}
.vl-chiffres{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}
.vl-chiffres>div{border:1px solid var(--line);padding:20px 18px}
.vl-chiffres .op-k{margin-bottom:6px}
.vl-n{font-family:'Cormorant Garamond',Georgia,serif;font-size:2rem;line-height:1.1;margin:0 0 6px;font-variant-numeric:lining-nums;color:var(--ink)}
.vl-s{color:var(--mut);font-size:.88rem;margin:0}
.vl-tab{overflow-x:auto}
.vl-tab td,.vl-tab th{font-variant-numeric:lining-nums}
.vl-src,.vl-q{font-size:.88rem;color:var(--mut)}
.st main ul.vl-vois li,.st main ul.vl-grille li{padding:0;margin:0}
.st main ul.vl-vois li:before,.st main ul.vl-grille li:before{display:none}
.vl-vois{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.vl-vois a{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border:1px solid var(--line);padding:14px 16px;text-decoration:none;color:var(--ink)}
.vl-vois small{color:var(--gold-txt);white-space:nowrap;font-variant-numeric:lining-nums}
.vl-grille{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.vl-grille a{display:block;height:100%;text-decoration:none;color:var(--ink);border:1px solid var(--line);background:var(--card,#fff)}
.vl-grille img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.vl-c{display:block;padding:14px 16px 16px}
.vl-c b{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:1.3rem;line-height:1.25;margin-bottom:4px}
.vl-c small{color:var(--mut);font-size:.85rem;font-variant-numeric:lining-nums}
.vl-grille a:hover b,.vl-vois a:hover span{color:var(--gold-txt)}
.vl-tout{margin-top:28px}
@media(max-width:900px){.vl-chiffres{grid-template-columns:1fr 1fr}.vl-grille,.vl-vois{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.vl-chiffres{grid-template-columns:1fr}.vl-grille,.vl-vois{grid-template-columns:1fr}.vl-n{font-size:1.7rem}.ville .vl-fig{margin-top:36px}}
