/* =====================================================================
   BAGNES IMMOBILIER — thème des mini-sites de biens
   Système de design bagnesimmobilier.ch (octobre 2026) appliqué au
   gabarit commun des sites de vente (classes .topbar, .hero, .facts,
   .section, .volume, .synth, .specs, .dossier, .foot…).
   Monochrome : ink #353535, blanc, gris #e2e2e2, crème #f6f6f1.
   Mona Sans (graisse et largeur par font-variation-settings) + Lora.
   ===================================================================== */

@font-face{
  font-family:"Mona";
  src:url(mona-sans.woff2) format("woff2-variations"), url(mona-sans.woff2) format("woff2");
  font-weight:200 900; font-stretch:75% 125%; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Lora";
  src:url(lora.woff2) format("woff2");
  font-weight:400 700; font-style:normal; font-display:swap;
}

:root{
  /* jetons du système */
  --bi-ink:#353535;
  --bi-white:#fff;
  --bi-grey:#e2e2e2;
  --bi-cream:#f6f6f1;
  --bi-red:#ee4848;
  --bi-yellow:#ff9;
  --bi-green:#559843;
  --bi-overlay:rgba(53,53,53,.6);
  --bi-shadow:rgba(0,0,0,.15) 0 2px 5px 0, rgba(0,0,0,.05) 0 1px 1px 0;
  --bi-font-display:Mona, system-ui, sans-serif;
  --bi-font-body:Lora, Georgia, serif;
  --bi-ease-btn:.5s cubic-bezier(.65,0,.076,1);
  --header-height:80px;
  --layout-padding:5%;

  /* variables historiques du gabarit, rebranchées sur le système
     (utilisées par des styles en ligne et des règles propres à certains sites) */
  --charcoal:var(--bi-ink);
  --ink:var(--bi-ink);
  --white:#fff;
  --cream:var(--bi-cream);
  --grey-100:var(--bi-cream);
  --grey-200:var(--bi-grey);
  --sage:var(--bi-grey);
  --sage-deep:var(--bi-ink);
  --bg:#fff;
  --bg-alt:var(--bi-cream);
  --fg:var(--bi-ink);
  --fg-soft:#5a5a5a;
  --rule:var(--bi-ink);
  --accent:var(--bi-ink);
  --band:var(--bi-cream);
  --band-fg:var(--bi-ink);
  --band-soft:#5a5a5a;
  --ui:var(--bi-font-display);
  --text:var(--bi-font-body);
  --radius:0px;
  --measure:85ch;
  --pad:var(--layout-padding);
  color-scheme:light;
}
@media (min-width:993px){ :root{--header-height:100px; --layout-padding:32px} }
@media (min-width:1201px){ :root{--header-height:120px; --layout-padding:64px} }

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{
  -webkit-text-size-adjust:100%; scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-height) + 1rem);
  font-synthesis:none; text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  hanging-punctuation:first last;
}
body{
  margin:0 auto; max-width:1920px; background:#fff; color:var(--bi-ink);
  font-family:var(--bi-font-body); font-size:clamp(16px,.94vw,18px); line-height:1.5;
}
::selection{background:var(--bi-ink); color:#fff}
img{display:block; max-width:100%; height:auto}
a{color:inherit}
p{margin:0; text-wrap:pretty}
b,strong{font-weight:700}
:focus-visible{outline:2px solid var(--bi-ink); outline-offset:3px}

/* ---------- titres ---------- */
h1,h2,h3,h4{
  font-family:var(--bi-font-display); font-weight:normal; font-style:normal;
  text-wrap:balance; margin:0; letter-spacing:0;
}
h1{font-size:clamp(40px,3.91vw,75px); line-height:1; font-variation-settings:"wght" 640,"wdth" 100}
h2{font-size:clamp(25px,2.86vw,55px); line-height:1.2; font-variation-settings:"wght" 640,"wdth" 100}
h3{
  font-size:clamp(18px,1.67vw,24px); line-height:1.1; text-transform:uppercase;
  font-variation-settings:"wght" 700,"wdth" 125;
}
h4{font-size:clamp(18px,1.15vw,24px); line-height:1.3; font-variation-settings:"wght" 540,"wdth" 100}

/* ---------- primitives ---------- */
.wrap{max-width:1920px; margin-inline:auto; padding-inline:var(--layout-padding)}
.prose{max-width:85ch}
.lead{font-size:clamp(18px,1.15vw,24px); line-height:1.5; color:var(--bi-ink)}
.muted{color:var(--fg-soft)}
.prose.muted,.section__head .muted{color:var(--bi-ink)}

/* l'étiquette grise du système (span sous le h1 de bannière) */
.eyebrow{
  display:inline-block; width:fit-content; margin:0; padding:.35rem .6rem;
  background:var(--bi-grey); color:var(--bi-ink);
  font-family:var(--bi-font-display); font-size:clamp(14px,.83vw,16px); line-height:1.2;
  font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100;
  letter-spacing:0; text-transform:none;
}

/* le pignon décoratif de l'ancien gabarit n'existe pas dans le système */
.gable{display:none !important}

/* ---------- header ---------- */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:30;
  height:var(--header-height); max-width:1920px; margin-inline:auto;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  padding:0 var(--layout-padding);
  background:#fff; color:var(--bi-ink); border-bottom:1px solid var(--bi-ink);
}
.scrolled .topbar{background:#fff; color:var(--bi-ink); border-bottom-color:var(--bi-ink)}
.brand{display:block; flex:none; line-height:0; color:var(--bi-ink); text-decoration:none; filter:none}
.brand svg{display:block; width:120px; height:auto}
@media (min-width:993px){ .brand svg{width:150px} }
@media (min-width:1601px){ .brand svg{width:200px} }
.scrolled .brand,.topbar.open .brand{filter:none}

.topbar__end{display:flex; align-items:center; gap:1rem}
.nav{display:flex; align-items:center; gap:.25rem}
.nav a{
  position:relative; display:block; padding:.5rem .6rem; border:1px solid transparent; border-radius:10px;
  font-family:var(--bi-font-display); font-size:16px; font-weight:normal;
  font-variation-settings:"wght" 540,"wdth" 100; line-height:1.2;
  color:var(--bi-ink); text-decoration:none; white-space:nowrap;
  transition:background-color .2s ease, border-color .2s ease;
}
.nav a:hover,.nav a:focus-visible{background:var(--bi-grey); border-color:var(--bi-grey)}
@media (min-width:1201px) and (max-width:1600.98px){ .nav{gap:0} .nav a{font-size:15px; padding:.5rem .45rem} .topbar__end{gap:.75rem} }
@media (min-width:1201px) and (max-width:1400.98px){ .brand svg{width:120px} .nav a{font-size:14px; padding:.5rem .3rem} .topbar .cta{padding:.5rem .8rem} .topbar__end,.topbar__actions{gap:.5rem} }
@media (min-width:1601px){ .nav a{font-size:18px} .nav{gap:.25rem} }
.topbar__actions{display:flex; align-items:center; gap:.75rem}

/* bouton noir du système (.btn.black) : cercle gris qui glisse au survol */
.cta,.btn,.form__submit,.calc__cta{
  position:relative; isolation:isolate; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  width:fit-content; padding:.5rem 1rem; border-radius:10px; border:1px solid var(--bi-ink);
  background:var(--bi-ink); color:#fff; cursor:pointer; text-decoration:none; white-space:nowrap;
  font-family:var(--bi-font-display); font-size:16px; font-weight:normal; line-height:1.2;
  font-variation-settings:"wght" 540,"wdth" 100;
  transition:color var(--bi-ease-btn);
}
@media (min-width:993px){ .cta,.btn,.form__submit,.calc__cta{font-size:20px; padding:.8rem 1rem} }
.cta::before,.btn::before,.form__submit::before,.calc__cta::before{
  content:""; position:absolute; z-index:-1; top:50%; left:50%;
  width:120%; height:200%; border-radius:50%; background:var(--bi-grey);
  transform:translateX(-120%) translateY(-120%); transition:transform var(--bi-ease-btn);
}
.cta:hover,.btn:hover,.form__submit:hover:not(:disabled),.calc__cta:hover{color:var(--bi-ink); background:var(--bi-ink)}
.cta:hover::before,.btn:hover::before,.form__submit:hover:not(:disabled)::before,.calc__cta:hover::before{transform:translateX(-50%) translateY(-50%)}
.cta:active,.btn:active{color:var(--bi-grey)}
.scrolled .cta,.topbar.open .cta{background:var(--bi-ink); color:#fff; border-color:var(--bi-ink)}
.scrolled .cta:hover{color:var(--bi-ink)}
.topbar .cta{font-size:16px}
@media (min-width:1601px){ .topbar .cta{font-size:18px} }

/* sélecteur de langue */
.langbar{display:flex; gap:2px; padding:2px; border:1px solid var(--bi-ink); border-radius:10px; background:#fff}
.langbar button{
  appearance:none; cursor:pointer; border:0; background:transparent; color:var(--bi-ink);
  font-family:var(--bi-font-display); font-size:14px; font-weight:normal;
  font-variation-settings:"wght" 540,"wdth" 100; padding:.35rem .55rem; border-radius:8px;
}
.langbar button:hover{background:var(--bi-grey)}
.langbar button[aria-pressed="true"],
.scrolled .langbar button[aria-pressed="true"],
.topbar.open .langbar button[aria-pressed="true"]{background:var(--bi-ink); color:#fff}
.scrolled .langbar,.topbar.open .langbar{border-color:var(--bi-ink); background:#fff}
.topbar.open .langbar button{color:var(--bi-ink)}

/* burger + menu plein écran (sous 1201px) */
.burger{
  display:none; appearance:none; background:transparent; border:0; cursor:pointer;
  width:56px; height:56px; padding:18px 12px; margin-right:-12px; color:var(--bi-ink);
  flex-direction:column; justify-content:space-between;
}
.burger span{display:block; height:2px; width:100%; background:currentColor; transition:transform .25s ease, opacity .2s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

@media (max-width:1200.98px){
  .burger{display:flex}
  .topbar{flex-wrap:nowrap}
  .topbar__end{
    display:none; position:fixed; top:var(--header-height); left:0; right:0;
    height:calc(100dvh - var(--header-height)); overflow-y:auto;
    flex-direction:column; align-items:stretch; justify-content:space-between; gap:2rem;
    padding:1.5rem var(--layout-padding) var(--layout-padding); background:#fff; color:var(--bi-ink);
  }
  .topbar.open{background:#fff; border-bottom-color:var(--bi-ink); color:var(--bi-ink)}
  .topbar.open .topbar__end{display:flex}
  .nav{flex-direction:column; align-items:stretch; gap:.5rem}
  .nav a{font-size:24px; padding:.5rem 0; border-radius:0; border:0; border-bottom:1px solid var(--bi-grey)}
  .nav a:hover{background:transparent}
  .topbar__actions{justify-content:space-between}
  .topbar .cta{font-size:20px; padding:.8rem 1rem}
}

/* ---------- hero : la photo est le fond ---------- */
.hero{
  position:relative; isolation:isolate; display:grid; overflow:hidden;
  margin-top:var(--header-height); min-height:calc(100svh - var(--header-height));
  max-height:none; color:#fff;
}
@media (min-width:993px){ .hero{min-height:min(calc(100svh - var(--header-height)), 980px)} }
.hero__img{grid-area:1/1; width:100%; height:100%; object-fit:cover; border-radius:0}
.hero::after{
  content:""; grid-area:1/1; z-index:1; pointer-events:none;
  background:linear-gradient(rgba(0,0,0,0) 25%, rgba(0,0,0,.55) 60%, rgba(0,0,0,.85) 100%);
  box-shadow:inset 0 0 200px rgba(0,0,0,.9);
}
.hero__inner{
  grid-area:1/1; z-index:2; align-self:end; width:100%;
  padding-block:3rem; color:#fff; text-shadow:none;
  display:flex; flex-direction:column; gap:1.5rem;
}
@media (min-width:993px){ .hero__inner{padding-block:4rem} }
.hero__inner .eyebrow{color:var(--bi-ink)}
.hero h1{max-width:16ch; color:#fff}
.hero__lead{max-width:46ch; color:#fff; font-size:16px}
@media (min-width:1201px){ .hero__lead{font-size:24px} }
.hero__meta{
  display:flex; flex-wrap:wrap; gap:.5rem 2rem; align-items:baseline;
  border-top:1px solid #fff; padding-top:1.25rem;
}
.hero__price{
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(22px,1.88vw,36px); line-height:1.2; font-variant-numeric:tabular-nums;
}
.hero__note{
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(14px,.83vw,16px); text-transform:none; color:#fff;
}

/* ---------- chiffres clés : filets, pas de bandeau ---------- */
.facts{background:#fff; color:var(--bi-ink)}
.facts > .wrap{padding-inline:var(--layout-padding) !important}
.facts__grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0;
  background:transparent; border-bottom:1px solid var(--bi-ink);
}
@media (min-width:993px){ .facts__grid{grid-template-columns:repeat(auto-fit,minmax(0,1fr)); grid-auto-flow:column} }
.fact{
  background:transparent; display:flex; flex-direction:column-reverse; justify-content:flex-end; gap:.5rem;
  padding:2rem 1rem 2rem 0; border-top:1px solid var(--bi-ink);
}
@media (min-width:993px){
  .fact{border-top:0; padding:2.5rem 2rem 2.5rem 0}
  .fact + .fact{padding-left:2rem; border-left:1px solid var(--bi-ink)}
}
.fact dt{
  margin:0; font-family:var(--bi-font-body); font-size:clamp(14px,.83vw,16px); font-weight:400;
  text-transform:none; color:var(--bi-ink); letter-spacing:0;
}
.fact dd{
  margin:0; font-family:var(--bi-font-display); font-weight:normal;
  font-variation-settings:"wght" 640,"wdth" 100; font-size:clamp(32px,3.4vw,64px); line-height:1;
  font-variant-numeric:tabular-nums;
}
.fact dd span{font-size:.45em; margin-left:.2em; color:var(--bi-ink)}

/* ---------- sections : rythme 3 / 4 / 6 rem ---------- */
.section{padding-block:3rem}
@media (min-width:993px){ .section{padding-block:4rem} }
@media (min-width:1401px){ .section{padding-block:6rem} }
.section--alt{background:var(--bi-cream)}
.section__head{display:flex; flex-direction:column; align-items:flex-start; gap:1rem; margin-bottom:2rem}
@media (min-width:993px){ .section__head{margin-bottom:3rem} }
.section__head--flush{margin-bottom:0}
.section__head .prose{font-size:clamp(16px,.94vw,18px)}

.split{display:grid; gap:2rem; align-items:start}
@media (min-width:993px){ .split{grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:5%} }
@media (min-width:1201px){ .split{gap:10%} }
.stack{display:flex; flex-direction:column; gap:1rem}
.stack .lead{font-size:clamp(18px,1.15vw,24px)}

/* ---------- lots / volumes ---------- */
.volumes{display:grid; gap:0; border-top:1px solid var(--bi-ink)}
@media (min-width:993px){ .volumes{grid-template-columns:repeat(auto-fit,minmax(0,1fr)); grid-auto-flow:column} }
@media (max-width:992.98px){ .volumes{grid-template-columns:minmax(0,1fr) !important} }
.volume{padding:2rem 0; border-bottom:1px solid var(--bi-ink); display:flex; flex-direction:column; gap:1rem}
@media (min-width:993px){
  .volume{padding:2.5rem 2rem; border-bottom:0; border-right:1px solid var(--bi-ink)}
  .volume:first-child{padding-left:0}
  .volume:last-child{padding-right:0; border-right:0}
}
.volume__no{
  display:inline-block; width:fit-content; padding:.35rem .6rem; background:var(--bi-grey); color:var(--bi-ink);
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(14px,.83vw,16px); text-transform:none; line-height:1.2;
}
.section--alt .volume__no{background:#fff}
.volume h3{min-height:0}
.volume__rooms{list-style:none; margin:.25rem 0 0; padding:0; display:flex; flex-direction:column; gap:0; border-top:1px solid var(--bi-ink)}
.volume__rooms li{
  display:flex; justify-content:space-between; gap:1rem; padding:.6rem 0; border-bottom:1px solid var(--bi-ink);
  font-family:var(--bi-font-body); font-size:clamp(14px,.83vw,16px);
}
.volume__rooms b{
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100;
  font-variant-numeric:tabular-nums; color:var(--bi-ink); white-space:nowrap;
}
.volume__cube{
  font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(18px,1.15vw,22px); color:var(--bi-ink); font-variant-numeric:tabular-nums;
}
.volume__cube b{font-weight:normal}

/* ---------- galerie : angles vifs, zoom 1.1 ---------- */
.gallery{display:grid; gap:2rem 2vw}
@media (min-width:832px){
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery figure:first-child{grid-column:1/-1}
}
figure{margin:0; display:flex; flex-direction:column; gap:.75rem}
.gallery img,.plans img{border-radius:0}
figcaption{font-family:var(--bi-font-body); font-size:clamp(14px,.83vw,16px); line-height:1.5; color:var(--bi-ink); max-width:60ch}
figcaption b{font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; color:var(--bi-ink)}

.zoom-trigger{
  position:relative; display:block; width:100%; padding:0; border:0; background:none;
  cursor:zoom-in; border-radius:0; overflow:hidden; color:inherit;
}
.zoom-trigger img{transition:transform .25s linear}
.zoom-trigger:hover img,.zoom-trigger:focus-visible img{transform:scale(1.1)}
.zoom-badge{
  position:absolute; right:1rem; bottom:1rem; width:44px; height:44px;
  display:grid; place-items:center; border-radius:50px; border:1px solid var(--bi-ink);
  background:var(--bi-ink); color:#fff; opacity:0; transform:translateY(4px);
  transition:opacity .25s ease, transform .25s ease, background-color .2s ease; pointer-events:none;
}
.zoom-trigger:hover .zoom-badge,.zoom-trigger:focus-visible .zoom-badge{opacity:1; transform:none}
.zoom-badge svg{width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round}

.plans{display:grid; gap:2rem 2vw; margin-top:3rem}
@media (min-width:832px){ .plans{grid-template-columns:repeat(3,minmax(0,1fr))} }
.plans figure{gap:.75rem}
.plans .zoom-trigger{border:1px solid var(--bi-ink); background:#fff}
.plans .zoom-trigger img{border:0}
.plans figcaption{
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(14px,.83vw,16px); text-transform:none;
}

/* ---------- surfaces ---------- */
.synth{max-width:none; display:grid; border-top:1px solid var(--bi-ink); font-family:var(--bi-font-display); margin:0}
.synth__row{display:flex; align-items:baseline; justify-content:space-between; gap:1.5rem; padding:1rem 0; border-bottom:1px solid var(--bi-ink)}
.synth__row dt{font-size:clamp(16px,.94vw,18px); font-variation-settings:"wght" 540,"wdth" 100}
.synth__row dt span{display:block; margin-top:.2rem; font-family:var(--bi-font-body); font-size:clamp(14px,.83vw,16px); color:var(--fg-soft); font-weight:400}
.synth__row dd{
  margin:0; font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(18px,1.15vw,24px); font-variant-numeric:tabular-nums; white-space:nowrap;
}
.synth__row--total{border-bottom:2px solid var(--bi-ink)}
.synth__row--total dt{font-variation-settings:"wght" 700,"wdth" 125; text-transform:uppercase}
.synth__row--total dd{font-variation-settings:"wght" 640,"wdth" 100}
.synth__row--total dd{font-size:clamp(22px,1.88vw,36px)}
.synth__row--ext dt,.synth__row--ext dd{color:var(--bi-ink)}
.synth__row--ext dd{background:var(--bi-grey); padding:0 5px}

.levels{display:grid; gap:2rem}
@media (min-width:832px){ .levels{grid-template-columns:repeat(3,minmax(0,1fr)); gap:2vw} }
.level h3{padding-bottom:.75rem; border-bottom:1px solid var(--bi-ink); margin-bottom:0}
.level table{width:100%; border-collapse:collapse; font-family:var(--bi-font-body); font-size:clamp(14px,.83vw,16px)}
.level td{padding:.6rem 0; border-bottom:1px solid var(--bi-ink); vertical-align:baseline}
.level td+td{
  text-align:right; white-space:nowrap; color:var(--bi-ink);
  font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100; font-variant-numeric:tabular-nums;
}
.level tfoot td{border-bottom:0; border-top:2px solid var(--bi-ink); padding-top:.75rem; font-family:var(--bi-font-display); font-variation-settings:"wght" 640,"wdth" 100; color:var(--bi-ink)}
.level .ext td{color:var(--bi-ink)}
.level .ext td+td{background:var(--bi-grey)}

/* ---------- dépliants (détail, FAQ) ---------- */
.detail{margin-top:3rem; border-top:1px solid var(--bi-ink)}
.detail + .detail{border-top:0}
.detail{border-bottom:1px solid var(--bi-ink)}
.detail summary{
  cursor:pointer; list-style:none; padding:1.5rem 0;
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(18px,1.15vw,24px); line-height:1.3; text-transform:none; color:var(--bi-ink);
}
.detail summary::-webkit-details-marker{display:none}
.detail summary::after{
  content:"+"; flex:none; display:grid; place-items:center; width:40px; height:40px; margin:0;
  border:1px solid var(--bi-ink); border-radius:50px; background:var(--bi-ink); color:#fff;
  font-family:var(--bi-font-display); font-size:22px; line-height:1; transform:none;
  transition:background-color .2s ease, color .2s ease;
}
.detail[open] summary::after{content:"\2212"; transform:none}
.detail summary:hover{color:var(--bi-ink)}
.detail summary:hover::after{background:var(--bi-grey); color:var(--bi-ink)}
.detail .levels{padding-bottom:1.5rem}
.detail .prose{font-size:clamp(16px,.94vw,18px)}

/* ---------- données techniques ---------- */
.specs{display:grid; gap:0 4rem; border-top:1px solid var(--bi-ink); margin:0}
@media (min-width:993px){ .specs{grid-template-columns:repeat(2,minmax(0,1fr))} }
.spec{display:flex; justify-content:space-between; align-items:baseline; gap:1.5rem; padding:1rem 0; border-bottom:1px solid var(--bi-ink)}
.spec dt{
  color:var(--bi-ink); font-family:var(--bi-font-display); font-weight:normal;
  font-variation-settings:"wght" 540,"wdth" 100; font-size:clamp(16px,.94vw,18px);
}
.spec dd{
  margin:0; text-align:right; font-family:var(--bi-font-body); font-weight:400;
  font-size:clamp(16px,.94vw,18px); font-variant-numeric:normal;
}

/* ---------- situation ---------- */
.dist{list-style:none; margin:0; padding:0; display:grid; gap:0; border-top:1px solid var(--bi-ink)}
.dist li{
  display:flex; justify-content:space-between; gap:1.5rem; padding:1rem 0; border-bottom:1px solid var(--bi-ink);
  font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100; font-size:clamp(16px,.94vw,18px);
}
.dist span{font-family:var(--bi-font-body); color:var(--bi-ink); font-variant-numeric:normal; white-space:nowrap}
.dist__note{margin-top:1rem; font-size:clamp(14px,.83vw,16px)}

/* ---------- citation : section crème centrée (.cta.backgrounded du système) ---------- */
.quote{background:var(--bi-cream); color:var(--bi-ink); text-align:center}
.quote .wrap{display:flex; flex-direction:column; align-items:center}
.quote blockquote{
  margin:0 auto; max-width:30ch; text-wrap:balance;
  font-family:var(--bi-font-display); font-variation-settings:"wght" 640,"wdth" 100;
  font-size:clamp(25px,2.86vw,55px); line-height:1.2;
}
.quote cite{
  display:inline-block; margin-top:2rem; padding:.35rem .6rem; background:var(--bi-grey); font-style:normal;
  font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(14px,.83vw,16px); text-transform:none; color:var(--bi-ink);
}
.section--alt + .quote{background:#fff}

/* ---------- brochure : formulaire du site sur carte crème ---------- */
.dossier{background:#fff; color:var(--bi-ink)}
.dossier__grid{display:grid; gap:2rem; align-items:start}
@media (min-width:993px){ .dossier__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:5%} }
@media (min-width:1201px){ .dossier__grid{gap:10%} }
.dossier .eyebrow{color:var(--bi-ink)}
.dossier h2{color:var(--bi-ink)}
.dossier__pitch{color:var(--bi-ink); max-width:42ch; font-size:clamp(18px,1.15vw,24px)}
.dossier__list{list-style:none; margin:2rem 0 0; padding:0; display:flex; flex-direction:column; border-top:1px solid var(--bi-ink)}
.dossier__list li{
  position:relative; padding:.75rem 0 .75rem 1.5rem; border-bottom:1px solid var(--bi-ink);
  font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(16px,.94vw,18px); color:var(--bi-ink);
}
.dossier__list li::before{
  content:""; position:absolute; left:0; top:50%; width:8px; height:8px; margin-top:-4px;
  border-radius:50px; background:var(--bi-ink);
}

.form{display:grid; gap:1rem}
.dossier .form{background:var(--bi-cream); padding:2rem}
@media (min-width:1201px){ .dossier .form{padding:3rem} }
.form__field{display:grid; gap:.5rem}
.form__field label{
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 640,"wdth" 100;
  font-size:clamp(14px,.83vw,16px); text-transform:none; color:var(--bi-ink);
}
.form input[type=text],.form input[type=email],.form input[type=tel],.form select,.form textarea{
  width:100%; height:45px; padding:0 1rem; border-radius:10px;
  background:#fff; color:var(--bi-ink); border:1px solid var(--bi-ink);
  font-family:var(--bi-font-body); font-size:clamp(16px,.94vw,18px);
}
.form textarea{height:auto; min-height:165px; padding:1rem}
.form input::placeholder{color:#767676}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--bi-ink); outline-offset:1px; border-color:var(--bi-ink); background:#fff}
.form input[aria-invalid="true"]{border-color:var(--bi-red); outline-color:var(--bi-red)}
.form__hp{display:none}
.form__lot{
  font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100; font-size:clamp(14px,.83vw,16px);
  color:var(--bi-ink); padding:.6rem 1rem; border-radius:10px; background:var(--bi-grey); border:0;
}
.form__lot[hidden]{display:none}
.form__consent{display:flex; gap:.75rem; align-items:flex-start; margin-top:.25rem; cursor:pointer}
.form__consent input{
  appearance:none; -webkit-appearance:none; flex:none; width:18px; height:18px; margin:3px 0 0;
  border:2px solid var(--bi-ink); border-radius:4px; background:#fff; cursor:pointer; position:relative;
}
.form__consent input:checked{background:var(--bi-grey)}
.form__consent input:checked::after{
  content:""; position:absolute; left:4px; top:0; width:5px; height:10px;
  border:solid var(--bi-ink); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.form__consent span{font-family:var(--bi-font-body); font-size:16px; line-height:1.4; color:var(--bi-ink)}
.form__consent a{color:var(--bi-ink); font-weight:700}
.form__submit{justify-self:end; margin-top:.5rem}
.form__submit:disabled{opacity:.3; cursor:default; pointer-events:none}
.form__msg{font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100; font-size:clamp(14px,.83vw,16px); line-height:1.5}
.form__msg[data-state="error"]{color:#c43a3a}
.form__msg[data-state="ok"]{color:var(--bi-ink)}
.form__msg a{color:var(--bi-ink)}
.form__legal{font-size:12px; line-height:1.4; color:var(--bi-ink)}

/* ---------- contact ---------- */
.contact__grid{display:grid; gap:2rem}
@media (min-width:993px){ .contact__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:5%} }
@media (min-width:1201px){ .contact__grid{gap:10%} }
.contact a{display:inline-block; text-decoration:none; border-bottom:1px solid var(--bi-ink); padding-bottom:.1rem}
.contact a:hover{background:var(--bi-grey)}
.contact__lines{display:flex; flex-direction:column; gap:.5rem; font-size:clamp(16px,.94vw,18px)}
.section__head + .contact__name,.prose + .contact__name,p + .contact__name{margin-top:1.5rem}
.contact__name{
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 700,"wdth" 125;
  font-size:clamp(20px,1.67vw,28px); line-height:1.1; text-transform:uppercase;
}
.fin__foot{padding-top:.5rem}
.fin__by{margin-top:2rem; font-size:clamp(14px,.83vw,16px); color:var(--bi-ink); max-width:85ch}

/* ---------- maquette 3D ---------- */
div.visite{position:relative; border:1px solid var(--bi-ink); border-radius:0; overflow:hidden; background:#fff; aspect-ratio:16/9}
div.visite iframe{position:absolute; inset:0; width:100%; height:100%; border:0; display:block}
@media (max-width:832px){ div.visite{aspect-ratio:3/4.4} }
/* variante « section visite » (Chalet Lucy) : section crème, vignette cliquable */
html body section.visite{background:var(--bi-cream); color:var(--bi-ink)}
html body .visite__stage{border-radius:0; border:1px solid var(--bi-ink)}
html body .visite__lead{color:var(--bi-ink)}
html body .visite__cta{
  border-radius:10px; box-shadow:var(--bi-shadow); background:#fff; color:var(--bi-ink); border:1px solid var(--bi-ink);
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; font-size:20px;
}
html body .visite__launch:hover .visite__cta{background:var(--bi-grey)}
html body .visite__foot{font-family:var(--bi-font-body); font-size:clamp(14px,.83vw,16px); color:var(--bi-ink)}
html body .visite__foot a{color:var(--bi-ink); border-bottom-color:var(--bi-ink); font-weight:700}

/* ---------- pied de page (variante B, sobre) ---------- */
.foot{position:relative; margin:0; padding:0 0 1rem; border:0; color:var(--bi-ink); font-family:var(--bi-font-body); font-size:clamp(14px,.83vw,16px)}
.foot::before{content:none}
.fb{
  margin:0 var(--layout-padding); padding:3rem 0 2rem; border-top:1px solid var(--bi-ink);
  display:grid; gap:1.5rem 4rem; align-items:center;
}
@media (min-width:993px){ .fb{grid-template-columns:auto minmax(0,1fr) auto} }
.fb-logo{display:block; width:fit-content; line-height:0; color:var(--bi-ink)}
.fb-logo svg{display:block; width:160px; height:auto; fill:currentColor}
@media (min-width:1201px){ .fb-logo svg{width:180px} }
.fb-contact{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem 2.5rem; margin:0; max-width:none;
  font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100; font-size:clamp(16px,.94vw,18px);
}
.fb-contact a{color:var(--bi-ink); text-decoration:none; border-bottom:1px solid var(--bi-ink); padding-bottom:.1rem}
.fb-contact a:hover{background:var(--bi-grey)}
.fb-contact span{font-family:var(--bi-font-body)}
.fb-partners{display:flex; gap:1.5rem; align-items:center}
.fb-partners img{height:44px; width:auto}
.fb-nav{
  margin:0 var(--layout-padding); padding:1.25rem 0; list-style:none;
  border-top:1px solid var(--bi-ink); border-bottom:1px solid var(--bi-ink);
  display:flex; flex-wrap:wrap; gap:.5rem 2rem;
}
.fb-nav a{
  font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100; font-size:16px;
  color:var(--bi-ink); text-decoration:none;
}
.fb-nav a:hover{text-decoration:underline; text-underline-offset:3px}
.fb-notes{margin:0 var(--layout-padding); padding:2rem 0; display:grid; gap:1.5rem 3rem}
@media (min-width:993px){ .fb-notes{grid-auto-flow:column; grid-auto-columns:minmax(0,1fr)} }
.fb-notes p{margin:0; max-width:none; font-size:13px; line-height:1.55; color:#5a5a5a}
.fb-notes strong{
  display:block; margin-bottom:.35rem; font-size:14px; color:var(--bi-ink); font-weight:normal;
  font-family:var(--bi-font-display); font-variation-settings:"wght" 640,"wdth" 100;
}
.fb-notes a,.fb-copy a{color:inherit}
.fb-copy{
  margin:0 var(--layout-padding); padding:1.25rem 0 1rem; max-width:none; border-top:1px solid var(--bi-grey);
  font-family:var(--bi-font-display); font-variation-settings:"wght" 340,"wdth" 100; font-size:14px; color:var(--bi-ink);
}

/* ---------- visionneuse ---------- */
.lb[hidden]{display:none}
.lb{position:fixed; inset:0; z-index:60; display:grid; grid-template-rows:auto minmax(0,1fr) auto; background:var(--bi-ink); color:#fff}
.lb__bar{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem var(--layout-padding)}
.lb__count{font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100; font-size:16px; font-variant-numeric:tabular-nums; color:#fff}
.lb__stage{overflow:hidden; min-height:0; display:block; padding:0 1rem; overscroll-behavior:contain; -webkit-overflow-scrolling:touch}
.lb__img{width:100%; height:100%; object-fit:contain; cursor:zoom-in}
.lb.is-zoomed .lb__stage{overflow:auto; display:grid; place-items:start; cursor:grab}
.lb.is-zoomed .lb__stage:active{cursor:grabbing}
.lb.is-zoomed .lb__img{width:auto; height:auto; max-width:none; max-height:none; object-fit:none; cursor:zoom-out}
.lb__foot{display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; padding:1rem var(--layout-padding) 2rem}
.lb__cap{font-size:16px; line-height:1.5; color:#fff; max-width:60ch}
.lb__cap b{font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; color:#fff}
.lb__btn{
  appearance:none; cursor:pointer; flex:none; display:grid; place-items:center;
  width:44px; height:44px; border-radius:50px; background:var(--bi-ink); border:1px solid #fff; color:#fff;
  transition:background-color .2s ease, color .2s ease, opacity .2s ease;
}
.lb__btn:hover{background:var(--bi-grey); color:var(--bi-ink); border-color:var(--bi-grey)}
.lb__btn:disabled{opacity:.3; cursor:default}
.lb__btn svg{width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.lb__nav{display:flex; gap:.5rem}
.lb :focus-visible{outline:2px solid #fff; outline-offset:2px}
body.lb-open{overflow:hidden}
@media (max-width:640px){ .lb__foot{flex-direction:column; align-items:stretch; gap:1rem} .lb__nav{justify-content:flex-end} }

/* ---------- composants propres à certains sites ---------- */
.cta--dark,.scrolled .cta--dark{background:var(--bi-ink); color:#fff; border-color:var(--bi-ink)}
.cta--dark:hover{color:var(--bi-ink); background:var(--bi-ink)}

/* étapes du financement */
.fin__grid{display:grid; gap:2rem; align-items:start}
@media (min-width:993px){ .fin__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:5%} }
.steps{list-style:none; margin:0; padding:0; display:grid; border-top:1px solid var(--bi-ink)}
.steps li{display:grid; grid-template-columns:32px 1fr; gap:.25rem 1rem; padding:1rem 0; border-bottom:1px solid var(--bi-ink)}
.steps__no{
  grid-column:1; grid-row:1 / span 2; align-self:start; display:grid; place-items:center;
  width:32px; height:32px; border-radius:50px; background:var(--bi-ink); color:#fff;
  font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100; font-size:14px; font-weight:normal;
}
.steps__t{grid-column:2; grid-row:1; align-self:center; font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; font-size:clamp(16px,.94vw,18px)}
.steps__d{grid-column:2; grid-row:2; font-size:clamp(14px,.83vw,16px); color:var(--bi-ink)}
.fin__note{
  display:inline-block; width:fit-content; padding:.35rem .6rem; background:var(--bi-grey); color:var(--bi-ink);
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(14px,.83vw,16px); text-transform:none;
}
.fin__by a{color:inherit}

/* calculateur de mensualités */
.calc{border-top:1px solid var(--bi-ink); padding-top:2rem; margin-bottom:3rem}
.calc__controls{display:grid; gap:2rem}
@media (min-width:832px){ .calc__controls{grid-template-columns:repeat(3,minmax(0,1fr)); gap:2vw} }
.calc__ctrl{display:flex; flex-direction:column; gap:.5rem}
.calc__top{display:flex; align-items:baseline; justify-content:space-between; gap:1rem; min-height:1.75rem}
.calc__label{font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 640,"wdth" 100; font-size:clamp(14px,.83vw,16px); text-transform:none; letter-spacing:0; color:var(--bi-ink)}
.calc__out{font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; font-size:clamp(18px,1.15vw,22px); font-variant-numeric:tabular-nums; color:var(--bi-ink)}
.calc__hint{font-size:clamp(14px,.83vw,16px); line-height:1.45; color:var(--bi-ink)}
.calc input[type=range]{-webkit-appearance:none; appearance:none; width:100%; height:25px; margin:0; background:transparent; cursor:pointer}
.calc input[type=range]::-webkit-slider-runnable-track{height:.5rem; border-radius:50px; background:var(--bi-grey)}
.calc input[type=range]::-moz-range-track{height:.5rem; border-radius:50px; background:var(--bi-grey)}
.calc input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; appearance:none; width:25px; height:25px; margin-top:-8.5px; border:0; border-radius:50px; background:var(--bi-ink)}
.calc input[type=range]::-moz-range-thumb{width:25px; height:25px; border:0; border-radius:50px; background:var(--bi-ink)}
.calc input[type=range]:focus-visible{outline:none}
.calc input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--bi-ink)}
.calc input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--bi-ink)}
.calc__switch{display:flex; gap:2px; padding:2px; align-self:flex-start; border:1px solid var(--bi-ink); border-radius:10px; background:#fff}
.calc__switch button{appearance:none; cursor:pointer; background:transparent; border:0; border-radius:8px; padding:.45rem .85rem; color:var(--bi-ink); font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; font-size:14px}
.calc__switch button:hover{background:var(--bi-grey)}
.calc__switch button[aria-pressed="true"]{background:var(--bi-ink); color:#fff}
.calc__cta{margin-top:2rem}

/* cartes de financement */
.fin{margin-top:3rem; padding-top:3rem; border-top:1px solid var(--bi-ink)}
.fin__head{display:flex; flex-direction:column; align-items:flex-start; gap:1rem; margin-bottom:2rem}
.fin__cards{display:grid; gap:2rem 2vw; align-items:stretch}
@media (min-width:832px){ .fin__cards{grid-template-columns:repeat(2,minmax(0,1fr))} }
.fin__card{display:flex; flex-direction:column; gap:1rem; background:var(--bi-cream); border:1px solid var(--bi-ink); border-radius:0; padding:2rem}
@media (min-width:1201px){ .fin__card{padding:3rem} }
.section--alt .fin__card{background:#fff}
.fin__logo{height:2.75rem; align-self:flex-start; line-height:0; margin-bottom:.25rem}
.fin__logo svg,.fin__logo img{height:100%; width:auto; display:block}
.fin__relais{margin-top:1rem; font-size:clamp(16px,.94vw,18px)}
.fin__relais a{color:inherit; text-decoration:none; border-bottom:1px solid var(--bi-ink); padding-bottom:.1rem}
.fin__relais a:hover{background:var(--bi-grey)}

/* lots, documents et contact du gabarit « terrain » */
.skip{position:absolute; left:-9999px}
.skip:focus{left:1rem; top:1rem; z-index:80; background:#fff; padding:.7rem 1rem; border:1px solid var(--bi-ink); border-radius:10px}
.lots{display:grid; gap:0; border-top:1px solid var(--bi-ink); margin-top:3rem}
.lot__name{font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 700,"wdth" 125; font-size:clamp(18px,1.67vw,24px); line-height:1.1; text-transform:uppercase}
.lot__specs{font-family:var(--bi-font-body); font-size:clamp(14px,.83vw,16px); color:var(--bi-ink)}
.pill{
  display:inline-block; padding:.5rem; border-radius:0; letter-spacing:0; text-transform:none;
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; font-size:14px;
  background:var(--bi-grey); color:var(--bi-ink); box-shadow:none;
}
.pill--dispo{background:var(--bi-grey); color:var(--bi-ink)}
.pill--vendu{background:var(--bi-red); color:#fff; box-shadow:none}
.prest{border-top:1px solid var(--bi-ink)}
.prest__item{border-bottom:1px solid var(--bi-ink)}
.prest__item p{font-size:clamp(16px,.94vw,18px); color:var(--bi-ink)}
.synth__row--sub dt,.synth__row--sub dd{color:var(--bi-ink)}
.plan img{border:1px solid var(--bi-ink); border-radius:0; background:#fff}
.plan .zoom-trigger{border:1px solid var(--bi-ink); background:#fff}
.plan .zoom-trigger img{border:0}
.plan figcaption{font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; font-size:clamp(14px,.83vw,16px); text-transform:none}
.doc,.dossier .doc{
  display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem;
  border:1px solid var(--bi-ink); border-radius:10px; background:#fff; color:var(--bi-ink); text-decoration:none;
  font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100;
}
.doc:hover,.dossier .doc:hover{background:var(--bi-grey); border-color:var(--bi-ink)}
.doc span:last-child,.dossier .doc span:last-child{font-size:14px; color:var(--bi-ink); letter-spacing:0}
.contact__role{
  display:inline-block; width:fit-content; padding:.35rem .6rem; background:var(--bi-grey); color:var(--bi-ink);
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(14px,.83vw,16px); text-transform:none;
}
.contact__lines a{color:var(--bi-ink); border-bottom:1px solid var(--bi-ink)}
.contact__lines a:hover{background:var(--bi-grey); border-bottom-color:var(--bi-ink)}
.contact__addr{color:var(--bi-ink); font-size:clamp(16px,.94vw,18px); margin-top:.75rem}
.form select option{color:var(--bi-ink)}
.form textarea{font-family:var(--bi-font-body); line-height:1.5; resize:vertical}
.form textarea::placeholder{color:#767676}

/* Les Gentianes : sélecteur d'étages et fiche en pop-up */
html body .selecteur__visuel{border-radius:0; background:var(--bi-ink)}
html body .selecteur__visuel polygon.is-hot,html body .selecteur__visuel polygon:hover,html body .selecteur__visuel polygon:focus-visible{fill:rgba(53,53,53,.35); stroke:#fff}
html body .selecteur__hint{border-radius:0; background:var(--bi-grey); color:var(--bi-ink); font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; font-size:14px}
html body .lot{border-radius:0; border:1px solid var(--bi-ink); background:#fff}
html body .lot.is-hot{border-color:var(--bi-ink); box-shadow:0 0 0 1px var(--bi-ink); background:var(--bi-cream)}
html body .lot>img{border-radius:0}
html body .lot__name,html body .lot__price,html body .fm__price{font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 700,"wdth" 125; text-transform:uppercase}
html body .lot__price,html body .fm__price{font-variation-settings:"wght" 540,"wdth" 100; text-transform:none}
html body .lot__specs{color:var(--bi-ink)}
html body .pill{border-radius:0; padding:.35rem .5rem; text-transform:none; letter-spacing:0; font-size:13px; font-weight:normal; font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100; box-shadow:none}
html body .pill--dispo{background:var(--bi-grey); color:var(--bi-ink)}
html body .pill--offre{background:var(--bi-yellow); color:var(--bi-ink)}
html body .pill--vendu{background:var(--bi-red); color:#fff}
html body .lot__btn{border-radius:10px; border:1px solid var(--bi-ink); background:#fff; color:var(--bi-ink); font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; font-size:13px}
html body .lot__btn:hover{background:var(--bi-grey)}
html body .fm{background:rgba(53,53,53,.6)}
html body .fm__panel{border-radius:0; box-shadow:var(--bi-shadow)}
html body .fm__close{border-radius:50px; background:var(--bi-ink); color:#fff; border:1px solid var(--bi-ink)}
html body .fm__close svg{stroke:#fff}
html body .fm__close:hover{background:var(--bi-grey); color:var(--bi-ink)}
html body .fm__close:hover svg{stroke:var(--bi-ink)}
html body .fm__plan{border-radius:0; border:1px solid var(--bi-ink)}
html body .fm__zoom{background:var(--bi-ink); border-radius:50px}
html body .fm__plancap{color:var(--bi-ink); text-transform:none; letter-spacing:0; font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; font-size:14px}
html body .fm__info h3{font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 700,"wdth" 125; text-transform:uppercase}
html body .fm__desc,html body .fm__list li span{color:var(--bi-ink)}
html body .fm__list li{border-bottom:1px solid var(--bi-ink)}
html body .fm__list li b{font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100}
html body .fm__cta{border-radius:10px; background:var(--bi-ink); color:#fff; border:1px solid var(--bi-ink); font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; font-size:16px}
html body .fm__cta:hover{background:var(--bi-grey); color:var(--bi-ink)}
html body .fm__cta--ghost{background:#fff; color:var(--bi-ink)}
html body .fm__cta--ghost:hover{background:var(--bi-grey)}

/* Les Dziles : disponibilités */
html body .dispo__frame{border-radius:0}
html body .dispo-pill{border-radius:0; text-transform:none; letter-spacing:0; font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; font-size:13px; border-color:var(--bi-ink); color:var(--bi-ink)}
html body .dispo-pill[data-status="reserve"]{background:var(--bi-yellow); border:1.5px solid var(--bi-yellow); color:var(--bi-ink)}
html body .dispo-pill[data-status="vendu"]{background:var(--bi-red); border-color:var(--bi-red); color:#fff}
html body .dz-chip{border-radius:0}
html body .dz-chip--reserve{background:var(--bi-yellow); border:1.5px solid var(--bi-yellow)}
html body .dz-chip--vendu{background:var(--bi-red); border-color:var(--bi-red)}
html body .dz-unit--reserve .dz-box{fill:var(--bi-yellow); stroke:var(--bi-ink); stroke-dasharray:none}
html body .dz-unit--vendu .dz-box{fill:var(--bi-grey); stroke:var(--bi-grey)}
html body .dz-unit--vendu .dz-stext{fill:#c43a3a}
html body .dz-zone.dz-unit--disponible .dz-pin circle{fill:var(--bi-ink)}
html body .dz-zone.dz-unit--reserve .dz-pin circle{fill:var(--bi-yellow); stroke:#fff}
html body .dz-zone.dz-unit--vendu .dz-pin circle{fill:var(--bi-red)}
html body .dispo__legend,html body .dispo__photo figcaption{text-transform:none; color:var(--bi-ink); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100}
html body .dispo__note{color:var(--bi-ink)}

/* sur téléphone, les grilles du gabarit passent sur une colonne, même avec une largeur minimale en ligne */
@media (max-width:640px){
  .plans,.gallery,.levels,.specs,.volumes,.contact__grid,.dossier__grid,.split,.fin__cards,.fin__grid,.calc__controls,.lots,.prest{grid-template-columns:minmax(0,1fr) !important}
}

/* gabarit « terrain » : niveaux de la villa en colonnes à filets (comme .volumes) */
html body .lots{display:grid; gap:0; margin-top:3rem; border-top:1px solid var(--bi-ink)}
@media (min-width:993px){ html body .lots{grid-template-columns:repeat(auto-fit,minmax(0,1fr)); grid-auto-flow:column} }
html body .lots > .lot{
  display:flex; flex-direction:column; align-items:stretch; gap:.75rem; margin:0;
  padding:2rem 0; border:0; border-bottom:1px solid var(--bi-ink); border-radius:0; background:transparent; box-shadow:none; cursor:default;
}
@media (min-width:993px){
  html body .lots > .lot{padding:2.5rem 2rem; border-bottom:0; border-right:1px solid var(--bi-ink)}
  html body .lots > .lot:first-child{padding-left:0}
  html body .lots > .lot:last-child{padding-right:0; border-right:0}
}
html body .lots .lot__rooms{list-style:none; margin:.25rem 0 0; padding:0; border-top:1px solid var(--bi-ink)}
html body .lots .lot__rooms li{display:flex; justify-content:space-between; gap:1rem; padding:.6rem 0; border-bottom:1px solid var(--bi-ink); font-family:var(--bi-font-body); font-size:clamp(14px,.83vw,16px)}
html body .lots .lot__rooms span{font-family:var(--bi-font-display); font-variation-settings:"wght" 540,"wdth" 100; white-space:nowrap}
/* fiche technique dans une demi-colonne : une seule colonne */
.split .specs{grid-template-columns:minmax(0,1fr)}
/* plans : vignettes de même hauteur */
.plan .zoom-trigger{aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; background:#fff}
.plan .zoom-trigger img{width:100%; height:100%; object-fit:contain}
/* cartes de financement du gabarit « terrain » alignées sur les cartes .volume */
html body .fin__card h3{border:0; padding:0; margin:0; font-size:clamp(18px,1.67vw,24px)}
html body .fin__card .muted,html body .fin__card p{color:var(--bi-ink)}
html body .fin__no{
  display:inline-block; width:fit-content; padding:.35rem .6rem; background:#fff; color:var(--bi-ink);
  font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100;
  font-size:clamp(14px,.83vw,16px); text-transform:none; letter-spacing:0;
}
html body .fin__list{list-style:none; margin:.25rem 0 0; padding:0; border-top:1px solid var(--bi-ink)}
html body .fin__list li{display:flex; justify-content:space-between; gap:1rem; padding:.6rem 0; border-bottom:1px solid var(--bi-ink); font-family:var(--bi-font-body); font-size:clamp(14px,.83vw,16px)}
html body .fin__list b{font-family:var(--bi-font-display); font-weight:normal; font-variation-settings:"wght" 540,"wdth" 100; white-space:nowrap}

.fin.fin--seul{margin:0; padding:0; border:0}

@media print{ .topbar,.lb{display:none !important} .hero{margin-top:0} }
@media (prefers-reduced-motion:reduce){ *{animation:none !important; transition:none !important; scroll-behavior:auto !important} }
