/* H&B Immobilier - feuille de style partagee.
   Genere depuis hb-immobilier-v2.html : ne pas editer a la main,
   modifier la source puis relancer build_site.py. */

/* ============================================================
   1. VARIABLES & RESET
   ============================================================ */
:root{
  --bg:#F7F5F1;
  --bg-alt:#EEEBE4;
  --ink:#212121;
  --ink-soft:#66625C;
  --gold:#1AB3AA;
  --gold-deep:#0E8A82;
  --navy:#1A3A5A;
  --navy-deep:#122A42;
  --white:#FFFFFF;
  --line:#DFD9CF;
  --shadow-sm:0 4px 18px rgba(26,58,90,.07);
  --shadow-md:0 14px 40px rgba(26,58,90,.12);
  --shadow-lg:0 30px 70px rgba(18,42,66,.22);
  --radius:14px;
  --radius-sm:9px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ivory:#EEEBE4;
  /* --- Reglage de la video du hero (facile a reajuster) --- */
  --hero-bright:1.10;   /* luminosite de la video : 1 = brut, >1 = plus clair */
  --hero-sat:1.09;      /* saturation : redonne du peps aux couleurs eclaircies */
  --hero-veil-l:.30;    /* voile haut (lisibilite du header) */
  --hero-veil-m:.06;    /* voile milieu : quasi nul -> Paris en pleine lumiere */
  --hero-veil-r:.42;    /* voile bas (lisibilite de la signature + cue) */
  --ivory-deep:#E4E0D6;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
ul{list-style:none;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.14;color:var(--ink);letter-spacing:-.005em;}
h1{font-weight:400;}
h2{font-weight:400;}

/* ============================================================
   2. UTILITAIRES
   ============================================================ */
.container{width:min(1240px,92vw);margin-inline:auto;}
.eyebrow{
  font-family:var(--sans);
  text-transform:uppercase;
  letter-spacing:.34em;
  font-size:.7rem;
  font-weight:500;
  color:var(--gold-deep);
  margin-bottom:1rem;
  display:inline-block;
}
.section{padding:clamp(4.5rem,9vw,8rem) 0;}
.section--alt{background:var(--bg-alt);}
.section-head{max-width:720px;margin:0 auto clamp(2.5rem,5vw,4rem);text-align:center;}
.section-head h2{font-size:clamp(2.5rem,5.4vw,4rem);letter-spacing:-.012em;}
.section-head p{color:var(--ink-soft);font-size:1.07rem;margin-top:1rem;}
.gold-rule{
  width:62px;height:2px;border:0;margin:1.2rem auto 0;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}

/* Boutons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:1rem 2.1rem;border-radius:50px;font-weight:500;font-size:.8rem;
  text-transform:uppercase;letter-spacing:.16em;
  transition:all .4s var(--ease);white-space:nowrap;
}
.btn--gold{background:var(--gold);color:#063b37;box-shadow:0 8px 24px rgba(26,179,170,.35);}
.btn--gold:hover{background:var(--gold-deep);transform:translateY(-3px);box-shadow:0 14px 32px rgba(26,179,170,.45);}
.btn--navy{background:var(--navy);color:#fff;}
.btn--navy:hover{background:var(--navy-deep);transform:translateY(-3px);box-shadow:var(--shadow-md);}
.btn--ghost{border:1.5px solid rgba(255,255,255,.55);color:#fff;}
.btn--ghost:hover{background:#fff;color:var(--navy);border-color:#fff;}
.btn--outline{border:1.5px solid var(--navy);color:var(--navy);}
.btn--outline:hover{background:var(--navy);color:#fff;transform:translateY(-3px);}

/* ============================================================
   3. HEADER
   ============================================================ */
.header{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  transition:all .45s var(--ease);
  padding:1.4rem 0;
}
/* Le hero est desormais lumineux : un voile degrade discret sous le header
   garde le logo blanc et le bouton MENU lisibles, sans assombrir la vue. */
.header:not(.scrolled)::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.18) 60%,transparent 100%);
}
.header:not(.scrolled) .logo__img--white{filter:drop-shadow(0 2px 9px rgba(0,0,0,.5));}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;}
.header.scrolled{
  background:rgba(250,250,250,.92);
  backdrop-filter:blur(14px);
  box-shadow:0 4px 24px rgba(26,58,90,.08);
  padding:.85rem 0;
}
/* Logo */
.logo{display:flex;align-items:center;gap:.7rem;}
.logo__mark{
  width:46px;height:46px;flex:none;border-radius:10px;
  background:linear-gradient(135deg,var(--navy),var(--navy-deep));
  display:grid;place-items:center;
  font-family:var(--serif);font-weight:700;font-size:1.05rem;color:var(--gold);
  letter-spacing:.02em;box-shadow:var(--shadow-sm);
  border:1px solid rgba(26,179,170,.35);
}
.logo__txt{line-height:1.05;}
.logo__txt b{font-family:var(--serif);font-size:1.25rem;font-weight:700;letter-spacing:.01em;color:var(--ink);}
.logo__txt span{display:block;font-size:.62rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin-top:2px;}
.header:not(.scrolled) .logo__txt b{color:#fff;}
.header:not(.scrolled) .logo__txt span{color:var(--gold);}

/* Navigation */
.nav{display:flex;align-items:center;gap:2rem;}
.nav__links{display:flex;gap:1.15rem;align-items:center;}
.nav__links a{
  font-size:.82rem;font-weight:500;letter-spacing:.01em;position:relative;
  padding:.3rem 0;color:var(--ink);transition:color .3s;
}
.header:not(.scrolled) .nav__links a{color:rgba(255,255,255,.9);}
.nav__links a::after{
  content:"";position:absolute;left:0;bottom:-2px;width:0;height:1.5px;
  background:var(--gold);transition:width .35s var(--ease);
}
.nav__links a:hover::after{width:100%;}
.nav__links a:hover{color:var(--gold-deep);}
.header:not(.scrolled) .nav__links a:hover{color:var(--gold);}
.header__cta{display:flex;align-items:center;gap:1.1rem;}
.header__phone{
  display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem;color:var(--navy);
  transition:color .3s;
}
.header:not(.scrolled) .header__phone{color:#fff;}
.header__phone:hover{color:var(--gold-deep);}
.header__phone svg{width:17px;height:17px;}
.header__phone--drop{position:relative;}
.header__phone-toggle{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem;color:var(--navy);cursor:pointer;transition:color .3s;}
.header:not(.scrolled) .header__phone-toggle{color:#fff;}
.header__phone-toggle:hover{color:var(--gold-deep);}
.header__phone-toggle .nav__chev{width:11px;height:8px;}
.header__phone--drop:hover .nav__chev,.header__phone--drop.open .nav__chev{transform:rotate(180deg);}
.phone-dd{position:absolute;top:100%;right:0;padding-top:14px;width:255px;opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s;z-index:1100;}
.header__phone--drop:hover .phone-dd,.header__phone--drop.open .phone-dd{opacity:1;visibility:visible;}
.phone-dd__inner{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:.7rem;position:relative;}
.phone-dd__inner::before{content:"";position:absolute;top:8px;right:26px;width:14px;height:14px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg);}
.phone-dd__inner a{display:flex;flex-direction:column;gap:1px;padding:.55rem .7rem;border-radius:9px;color:var(--navy);font-weight:700;font-size:.95rem;transition:background .3s;}
.phone-dd__inner a:hover{background:var(--bg-alt);}
.phone-dd__inner a b{font-family:var(--serif);font-size:.74rem;font-weight:600;color:var(--gold-deep);}

/* Burger mobile */
.burger{display:none;flex-direction:column;gap:5px;width:30px;height:24px;justify-content:center;}
.burger span{height:2px;width:100%;background:var(--ink);border-radius:2px;transition:all .35s var(--ease);}
.header:not(.scrolled) .burger span{background:#fff;}

/* ============================================================
   4. HERO
   ============================================================ */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:center;
  padding:8rem 0 7rem;overflow:hidden;
}
.hero__bg{position:absolute;inset:0;z-index:-2;}
.hero__bg img,.hero__bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:brightness(var(--hero-bright)) saturate(var(--hero-sat));}
.hero__video{opacity:0;transition:opacity 1s ease;}
.hero__video.ready{opacity:1;}
@media (max-width:760px){.hero__video{display:block;}} /* vidéo active sur mobile aussi */
@media (max-width:760px){
  /* Le texte prend toute la largeur : on repasse sur un voile vertical. */
  .hero__bg::after{background:linear-gradient(180deg,rgba(0,0,0,.34) 0%,rgba(0,0,0,.40) 55%,rgba(0,0,0,.52) 100%);}
}
.hero__bg::after{
  content:"";position:absolute;inset:0;
  /* Voile allege : assez sombre a gauche pour le texte blanc, quasi transparent
     a droite pour laisser voir Paris. Valeurs pilotees par les variables. */
  background:linear-gradient(100deg,
    rgba(0,0,0,var(--hero-veil-l)) 0%,
    rgba(0,0,0,var(--hero-veil-m)) 38%,
    rgba(0,0,0,.16) 68%,
    rgba(0,0,0,var(--hero-veil-r)) 100%);
}
.hero__content{max-width:760px;color:#fff;position:relative;}
.hero .eyebrow{color:#6FE3DA;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.6),0 2px 16px rgba(0,0,0,.5);}
.hero h1{
  color:#fff;font-size:clamp(2.5rem,6vw,4.6rem);letter-spacing:-.015em;
  margin-bottom:1.4rem;
  /* Ombre portee douce : garde le titre lisible maintenant que le fond est clair */
  text-shadow:0 2px 24px rgba(0,0,0,.45),0 1px 3px rgba(0,0,0,.3);
}
.hero h1 em{font-style:italic;color:var(--gold);}
.hero h1 .amp{color:var(--gold);font-style:italic;font-weight:600;padding:0 .02em;}
.hero__sub{font-size:clamp(1.05rem,2vw,1.3rem);color:rgba(255,255,255,.93);font-weight:300;max-width:620px;margin-bottom:2rem;text-shadow:0 1px 14px rgba(0,0,0,.5);}
.hero__values{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:2.4rem;}
.hero__values span{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.5rem 1.1rem;border:1px solid rgba(26,179,170,.4);border-radius:50px;
  font-size:.82rem;font-weight:500;letter-spacing:.03em;
  background:rgba(255,255,255,.05);backdrop-filter:blur(4px);
}
.hero__values span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);}
.hero__actions{display:flex;gap:1rem;flex-wrap:wrap;}

/* Barre de recherche */
.search{
  position:relative;z-index:5;margin-top:2.5rem;
}
.search__card{
  background:rgba(255,255,255,.97);backdrop-filter:blur(10px);
  border-radius:var(--radius);box-shadow:var(--shadow-lg);
  border:1px solid var(--line);padding:1.7rem;
}
.search__title{display:flex;align-items:center;gap:.6rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.2em;color:var(--gold-deep);font-weight:600;margin-bottom:1.3rem;}
.search__title::after{content:"";flex:1;height:1px;background:var(--line);}
.search__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;align-items:end;}
.field{display:flex;flex-direction:column;gap:.4rem;}
.field label{font-size:.74rem;font-weight:600;color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;}
.field select,.field input{
  width:100%;padding:.72rem .8rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.9rem;color:var(--ink);background:#fff;transition:border .3s,box-shadow .3s;
  appearance:none;
}
.field select{
  background-image: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 1l5 5 5-5' stroke='%230E8A82' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .85rem center;padding-right:2rem;cursor:pointer;
}
.field input:focus,.field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(26,179,170,.15);}
.field--range{display:flex;gap:.4rem;}
.field--range input{padding:.72rem .55rem;}
.search__submit{grid-column:span 1;}
.search__submit .btn{width:100%;padding:.78rem 1rem;}

/* ============================================================
   5. EXPERTISE
   ============================================================ */
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:3.5rem;}
.feature{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2.2rem 1.7rem;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s;
}
.feature:hover{transform:translateY(-8px);box-shadow:var(--shadow-md);border-color:rgba(26,179,170,.5);}
.feature__icon{
  width:54px;height:54px;border-radius:13px;margin-bottom:1.2rem;
  background:linear-gradient(135deg,rgba(26,179,170,.16),rgba(26,179,170,.06));
  display:grid;place-items:center;color:var(--gold-deep);
}
.feature__icon svg{width:26px;height:26px;}
.feature h3{font-size:1.18rem;margin-bottom:.5rem;}
.feature p{font-size:.92rem;color:var(--ink-soft);}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
.stat{
  background:linear-gradient(135deg,var(--navy),var(--navy-deep));color:#fff;
  border-radius:var(--radius);padding:2.6rem 2.2rem;display:flex;align-items:center;gap:1.6rem;
  position:relative;overflow:hidden;
}
.stat::before{content:"";position:absolute;right:-30px;top:-30px;width:140px;height:140px;border-radius:50%;background:rgba(26,179,170,.12);}
.stat__num{font-family:var(--serif);font-size:clamp(2.4rem,4vw,3.2rem);font-weight:700;color:var(--gold);line-height:1;}
.stat__lbl{font-size:1rem;color:rgba(255,255,255,.82);font-weight:300;}

/* ============================================================
   6. ZONES & CARTES DE BIENS
   ============================================================ */
.zone-band{position:relative;}
.zone-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:2.5rem;}
.zone-head__txt{max-width:640px;}
.zone-head__txt .zone-icon{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:.7rem;color:var(--gold-deep);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.2em;}
.zone-head__txt .zone-icon svg{width:22px;height:22px;}
.zone-head__txt h2{font-size:clamp(1.8rem,3.6vw,2.7rem);}
.zone-head__txt p{color:var(--ink-soft);margin-top:.6rem;font-size:1.04rem;}

/* Grille des biens */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.7rem;}
.card{
  background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);display:flex;flex-direction:column;
}
.card:hover{transform:translateY(-9px);box-shadow:var(--shadow-lg);}
.card__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--bg-alt);cursor:pointer;}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.card:hover .card__media img{transform:scale(1.08);}
.card__zoom{
  position:absolute;inset:0;display:grid;place-items:center;opacity:0;
  background:rgba(18,42,66,.32);transition:opacity .4s;color:#fff;
}
.card__zoom svg{width:40px;height:40px;}
.card__media:hover .card__zoom{opacity:1;}
.card__labels{position:absolute;top:.85rem;left:.85rem;display:flex;flex-wrap:wrap;gap:.4rem;max-width:80%;}
.label{
  font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:.32rem .65rem;border-radius:50px;color:#fff;backdrop-filter:blur(2px);
}
.label--nouveaute{background:var(--navy);}
.label--exclusivite{background:var(--gold-deep);}
.label--baisse{background:#9c3d2e;}
.label--compromis{background:#4a4a4a;}
.label--coeur{background:#a8324a;}
.card__price-tag{
  position:absolute;bottom:.85rem;right:.85rem;background:rgba(255,255,255,.95);
  color:var(--navy);font-weight:700;font-size:1.02rem;padding:.4rem .9rem;border-radius:50px;
  box-shadow:var(--shadow-sm);font-family:var(--serif);
}
.card__body{padding:1.4rem 1.4rem 1.5rem;display:flex;flex-direction:column;flex:1;}
.card__type{font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--gold-deep);font-weight:600;margin-bottom:.4rem;}
.card__loc{font-family:var(--serif);font-size:1.22rem;font-weight:600;color:var(--ink);margin-bottom:.2rem;}
.card__dept{font-size:.85rem;color:var(--ink-soft);margin-bottom:1rem;display:flex;align-items:center;gap:.35rem;}
.card__dept svg{width:14px;height:14px;color:var(--gold-deep);}
.card__specs{display:flex;gap:1.3rem;padding-top:1rem;margin-top:auto;border-top:1px solid var(--line);}
.spec{display:flex;flex-direction:column;}
.spec b{font-size:1.02rem;font-weight:700;color:var(--ink);}
.spec span{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;}
.zone-foot{text-align:center;margin-top:2.8rem;}

/* Compteur de résultats (recherche) */
.results-meta{text-align:center;margin-bottom:2rem;font-size:.95rem;color:var(--ink-soft);}
.results-meta b{color:var(--navy);}
.no-result{text-align:center;padding:3rem;color:var(--ink-soft);grid-column:1/-1;}

/* ============================================================
   7. CARTE INTERACTIVE
   ============================================================ */
.map-wrap{display:grid;grid-template-columns:1.4fr .9fr;gap:0;align-items:stretch;}
.map-sidebar{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-left:0;border-radius:0 var(--radius) var(--radius) 0;overflow:hidden;box-shadow:var(--shadow-sm);}
.map-filters{padding:1.6rem 1.6rem 1rem;border-bottom:1px solid var(--line);}
.map-filters__title{font-family:var(--serif);font-size:1.25rem;font-weight:600;color:var(--ink);margin-bottom:1.2rem;}
.map-filters__label{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;display:block;margin-bottom:.4rem;margin-top:.9rem;}
.map-filters__select{width:100%;padding:.6rem .8rem;border:1px solid var(--line);border-radius:8px;font-family:var(--sans);font-size:.92rem;background:#fafaf8;color:var(--ink);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23888' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;cursor:pointer;}
.map-filters__select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(26,179,170,.15);}
.map-filters__checks{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.5rem;max-height:160px;overflow-y:auto;}
.map-filters__checks label{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;padding:.35rem .7rem;border:1px solid var(--line);border-radius:999px;cursor:pointer;transition:all .15s;background:#fafaf8;user-select:none;}
.map-filters__checks label:has(input:checked){background:var(--gold);color:#fff;border-color:var(--gold);}
.map-filters__checks input{display:none;}
.map-stage{
  position:relative;background:linear-gradient(135deg,#10283f,#1A3A5A);border-radius:var(--radius) 0 0 var(--radius);
  overflow:hidden;min-height:460px;box-shadow:var(--shadow-md);border:1px solid rgba(26,179,170,.2);border-right:0;
}
.map-stage svg{position:absolute;inset:0;width:100%;height:100%;}
/* Carte Leaflet (vraie carte de Paris, style Airbnb) */
#mapLeaflet{position:absolute;inset:0;width:100%;height:100%;z-index:0;background:#e8eef2;}
.leaflet-container{font-family:var(--sans,inherit);}
.price-pin{
  position:absolute;left:0;top:0;transform:translate(-50%,-50%);
  background:#fff;color:#1a3a5a;font-weight:600;font-size:.8rem;line-height:1;
  padding:.4rem .62rem;border-radius:999px;white-space:nowrap;cursor:pointer;
  box-shadow:0 2px 8px rgba(16,40,63,.28);border:1px solid rgba(16,40,63,.08);
  transition:transform .15s var(--ease),background .15s,color .15s,box-shadow .15s;
}
.price-pin:hover{transform:translate(-50%,-50%) scale(1.09);box-shadow:0 5px 16px rgba(16,40,63,.35);}
.price-pin.active{background:#1AB3AA;color:#fff;border-color:#1AB3AA;box-shadow:0 5px 18px rgba(26,179,170,.5);}
.map-river{fill:none;stroke:rgba(26,179,170,.35);stroke-width:3;stroke-linecap:round;}
.map-zone-shape{fill:rgba(255,255,255,.04);stroke:rgba(255,255,255,.12);stroke-width:1;transition:fill .4s;}
.map-pin{cursor:pointer;}
.map-pin circle{transition:all .35s var(--ease);}
.map-pin .pin-dot{fill:var(--gold);stroke:#fff;stroke-width:1.5;}
.map-pin:hover .pin-dot,.map-pin.active .pin-dot{fill:#fff;r:9;}
.map-pin .pin-halo{fill:var(--gold);opacity:.25;}
.map-pin:hover .pin-halo{opacity:.5;}
.map-legend{position:absolute;bottom:1rem;left:1rem;display:flex;flex-direction:column;gap:.4rem;background:rgba(18,42,66,.6);backdrop-filter:blur(6px);padding:.8rem 1rem;border-radius:10px;}
.map-legend span{font-size:.74rem;color:rgba(255,255,255,.85);display:flex;align-items:center;gap:.5rem;}
.map-legend i{width:10px;height:10px;border-radius:50%;display:inline-block;}
.map-detail{
  padding:1.6rem;flex:1;display:flex;flex-direction:column;
}
.map-detail__img{aspect-ratio:16/10;border-radius:var(--radius-sm);overflow:hidden;margin-bottom:1.2rem;background:var(--bg-alt);}
.map-detail__img img{width:100%;height:100%;object-fit:cover;}
.map-detail h3{font-size:1.3rem;margin-bottom:.3rem;}
.map-detail .md-dept{color:var(--ink-soft);font-size:.9rem;margin-bottom:1rem;}
.map-detail .md-price{font-family:var(--serif);font-size:1.9rem;color:var(--gold-deep);font-weight:700;margin-bottom:1rem;}
.map-detail .md-specs{display:flex;gap:1.4rem;margin-bottom:1.2rem;}
.map-detail__hint{color:var(--ink-soft);font-size:.95rem;text-align:center;margin:auto 0;padding:2rem 0;}
.map-detail__hint svg{width:42px;height:42px;color:var(--gold);margin:0 auto 1rem;display:block;}

/* ============================================================
   8. CALCULATEUR
   ============================================================ */
.calc-wrap{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center;}
.calc-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2.4rem;box-shadow:var(--shadow-sm);
}
.calc-row{margin-bottom:1.5rem;}
.calc-row label{display:block;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:.5rem;}
.calc-row input,.calc-row select{
  width:100%;padding:.85rem 1rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);
  font-family:inherit;font-size:1rem;appearance:none;
}
.calc-row input:focus,.calc-row select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(26,179,170,.15);}
.calc-row select{background-image: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 1l5 5 5-5' stroke='%230E8A82' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;cursor:pointer;}
.calc-result{
  background:linear-gradient(135deg,var(--navy),var(--navy-deep));color:#fff;border-radius:var(--radius);
  padding:2.6rem;text-align:center;position:relative;overflow:hidden;
}
.calc-result::after{content:"";position:absolute;left:-40px;bottom:-40px;width:160px;height:160px;border-radius:50%;background:rgba(26,179,170,.1);}
.calc-result small{text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;color:var(--gold);font-weight:600;}
.calc-result .estimate{font-family:var(--serif);font-size:clamp(1.55rem,4vw,2.35rem);font-weight:700;letter-spacing:-.01em;margin:.6rem 0 .3rem;color:#fff;}
.calc-result .ppm{color:rgba(255,255,255,.7);font-size:.95rem;position:relative;}
.calc-result .calc-note{margin-top:1.4rem;font-size:.8rem;color:rgba(255,255,255,.55);position:relative;}

/* ============================================================
   9. TENDANCES
   ============================================================ */
.trends{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;}
.trend{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2rem 1.6rem;transition:transform .4s var(--ease),box-shadow .4s;}
.trend:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.trend__k{font-family:var(--serif);font-size:2.1rem;font-weight:700;color:var(--gold-deep);}
.trend__k small{font-size:1rem;color:var(--ink-soft);}
.trend h4{font-size:1.05rem;margin:.5rem 0 .4rem;}
.trend p{font-size:.88rem;color:var(--ink-soft);}

/* ============================================================
   10. CONTACT
   ============================================================ */
.contact-wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;}
.contact-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2.6rem;box-shadow:var(--shadow-sm);}
.form-row{margin-bottom:1.3rem;}
.form-row label{display:block;font-size:.8rem;font-weight:600;color:var(--ink-soft);margin-bottom:.45rem;text-transform:uppercase;letter-spacing:.05em;}
.form-row input,.form-row textarea{
  width:100%;padding:.85rem 1rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.95rem;color:var(--ink);transition:border .3s,box-shadow .3s;
}
.form-row textarea{resize:vertical;min-height:120px;}
.form-row input:focus,.form-row textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(26,179,170,.15);}
.form-row.invalid input,.form-row.invalid textarea{border-color:#c0392b;box-shadow:0 0 0 3px rgba(192,57,43,.12);}
.form-error{display:none;color:#c0392b;font-size:.78rem;margin-top:.35rem;}
.form-row.invalid .form-error{display:block;}
.form-success{
  display:none;align-items:center;gap:.7rem;background:rgba(26,179,170,.12);border:1px solid var(--gold);
  color:var(--gold-deep);padding:1rem 1.2rem;border-radius:var(--radius-sm);font-weight:500;font-size:.95rem;margin-bottom:1.3rem;
}
.form-success.show{display:flex;}
.form-success svg{width:22px;height:22px;flex:none;}

.contact-info{display:flex;flex-direction:column;gap:1.3rem;}
.info-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.8rem;display:flex;gap:1.1rem;align-items:flex-start;transition:border-color .4s;}
.info-card:hover{border-color:rgba(26,179,170,.5);}
.info-card__ic{width:46px;height:46px;flex:none;border-radius:11px;background:linear-gradient(135deg,rgba(26,179,170,.16),rgba(26,179,170,.05));display:grid;place-items:center;color:var(--gold-deep);}
.info-card__ic svg{width:22px;height:22px;}
.info-card b{font-family:var(--serif);font-size:1.05rem;display:block;margin-bottom:.15rem;}
.info-card p,.info-card a{color:var(--ink-soft);font-size:.92rem;}
.info-card a:hover{color:var(--gold-deep);}

/* ============================================================
   11. ÉQUIPE
   ============================================================ */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;}
.member{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .45s var(--ease),box-shadow .45s;}
.member:hover{transform:translateY(-8px);box-shadow:var(--shadow-md);}
.member__photo{aspect-ratio:1/1;display:grid;place-items:center;background:linear-gradient(140deg,var(--navy),var(--navy-deep));padding:1.9rem;}
.member__photo img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid rgba(26,179,170,.55);box-shadow:0 12px 30px rgba(0,0,0,.32);transition:transform .7s var(--ease);}
.member:hover .member__photo img{transform:scale(1.05);}
.member__contacts{display:flex;flex-direction:column;gap:.55rem;align-items:center;margin-top:.2rem;}
.member__email{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink-soft);font-size:.82rem;word-break:break-all;}
.member__email:hover{color:var(--gold-deep);}
.member__email svg{width:15px;height:15px;flex:none;}
.team-sub{text-align:center;margin:4.5rem auto 2.6rem;max-width:620px;}
.team-sub h3{font-size:clamp(1.5rem,3vw,2.1rem);}
.team-sub .eyebrow{margin-bottom:.8rem;}
.team--agents{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:1.4rem;}
.team--agents .member__photo{padding:1.4rem;}
.team--agents .member__body{padding:1.2rem 1rem;}
.team--agents .member__body h4{font-size:1.05rem;}
.team--agents .member__role{font-size:.7rem;margin-bottom:.7rem;}
.team--agents .member__phone{font-size:.85rem;}
.team--agents .member__email{font-size:.72rem;}
.avatar-initials{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-weight:600;font-size:2.2rem;color:var(--gold);background:rgba(26,179,170,.12);border:3px solid rgba(26,179,170,.55);}
.member__body{padding:1.5rem;text-align:center;}
.member__body h4{font-size:1.25rem;margin-bottom:.2rem;}
.member__role{color:var(--gold-deep);font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600;margin-bottom:.9rem;}
.member__phone{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--navy);font-size:.92rem;}
.member__phone:hover{color:var(--gold-deep);}
.member__phone svg{width:15px;height:15px;}

/* ============================================================
   12. FOOTER
   ============================================================ */
.footer{background:var(--navy-deep);color:rgba(255,255,255,.7);padding:4.5rem 0 2rem;}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:3rem;margin-bottom:3rem;}
.footer .logo__txt b{color:#fff;}
.footer__about{margin-top:1.3rem;font-size:.95rem;font-weight:300;line-height:1.7;max-width:380px;}
.footer h5{color:#fff;font-family:var(--serif);font-size:1.1rem;margin-bottom:1.2rem;font-weight:600;}
.footer__links li{margin-bottom:.7rem;}
.footer__links a{font-size:.92rem;transition:color .3s;}
.footer__links a:hover{color:var(--gold);}
.socials{display:flex;gap:.8rem;margin-top:.3rem;}
.socials a{width:42px;height:42px;border-radius:11px;border:1px solid rgba(255,255,255,.15);display:grid;place-items:center;transition:all .35s var(--ease);}
.socials a:hover{background:var(--gold);border-color:var(--gold);color:var(--navy-deep);transform:translateY(-3px);}
.socials svg{width:19px;height:19px;}
.footer__bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:1.8rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.85rem;}

/* ============================================================
   13. LIGHTBOX GALERIE
   ============================================================ */
.lightbox{position:fixed;inset:0;z-index:2000;background:rgba(12,24,38,.95);display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .4s;}
.lightbox.open{display:flex;opacity:1;}
.lightbox__stage{position:relative;width:min(900px,90vw);}
.lightbox__img{width:100%;max-height:78vh;object-fit:contain;border-radius:var(--radius);box-shadow:var(--shadow-lg);}
.lightbox__cap{text-align:center;color:#fff;margin-top:1.1rem;}
.lightbox__cap h3{color:#fff;font-size:1.4rem;}
.lightbox__cap span{color:var(--gold);font-size:1.1rem;font-family:var(--serif);}
.lb-btn{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.12);backdrop-filter:blur(6px);color:#fff;display:grid;place-items:center;transition:all .3s;}
.lb-btn:hover{background:var(--gold);color:var(--navy-deep);}
.lb-prev{left:-72px;}.lb-next{right:-72px;}
.lb-btn svg{width:24px;height:24px;}
.lb-close{position:absolute;top:-54px;right:0;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;transition:all .3s;}
.lb-close:hover{background:var(--gold);color:var(--navy-deep);}
.lb-count{position:absolute;top:-48px;left:0;color:rgba(255,255,255,.7);font-size:.9rem;letter-spacing:.1em;}

/* ============================================================
   14. ANIMATIONS AU SCROLL
   ============================================================ */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.reveal.visible{opacity:1;transform:none;}
.reveal[data-delay="1"]{transition-delay:.1s;}
.reveal[data-delay="2"]{transition-delay:.2s;}
.reveal[data-delay="3"]{transition-delay:.3s;}

/* Menu mobile panneau */
.mobile-menu{
  position:fixed;inset:0;z-index:1500;background:rgba(18,42,66,.98);backdrop-filter:blur(8px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;
  opacity:0;pointer-events:none;transition:opacity .4s;
}
.mobile-menu.open{opacity:1;pointer-events:auto;}
.mobile-menu a{color:#fff;font-family:var(--serif);font-size:1.6rem;}
.mobile-menu a:hover{color:var(--gold);}
.mobile-menu .mm-close{position:absolute;top:1.6rem;right:1.6rem;color:#fff;font-size:2rem;}

/* ============================================================
   15. RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .search__grid{grid-template-columns:repeat(3,1fr);}
  .search__submit{grid-column:span 3;}
  .feature-grid,.trends{grid-template-columns:repeat(2,1fr);}
  .map-wrap{grid-template-columns:1fr;}
  .map-sidebar{border-left:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);}
  .map-stage{border-radius:var(--radius) var(--radius) 0 0;border-right:1px solid rgba(26,179,170,.2);border-bottom:0;}
  .calc-wrap,.contact-wrap{grid-template-columns:1fr;}
  .team{grid-template-columns:1fr 1fr;}
  .header__phone span{display:none;}
}
@media (max-width:760px){
  .nav{display:none;}
  .burger{display:flex;}
  .feature-grid,.trends,.stats,.team{grid-template-columns:1fr;}
  .search__grid{grid-template-columns:1fr 1fr;}
  .search__submit{grid-column:span 2;}
  .footer__grid{grid-template-columns:1fr;}
  .footer__bottom{flex-direction:column;text-align:center;}
  .lb-prev{left:8px;}.lb-next{right:8px;}
  .lb-btn{width:44px;height:44px;}
  .hero{padding-top:7rem;}
  .zone-head{flex-direction:column;align-items:flex-start;}
}
@media (max-width:440px){
  .search__grid{grid-template-columns:1fr;}
  .search__submit{grid-column:span 1;}
}

/* Logo image officiel (deux variantes : blanc sur fond fonce, marine sur fond clair) */
.logo__img{height:44px;width:auto;display:block;transition:opacity .35s var(--ease);}
.logo__img--dark{display:none;}
.header.scrolled .logo__img--white{display:none;}
.header.scrolled .logo__img--dark{display:block;}
.logo--footer .logo__img{height:50px;}

/* --- Menu deroulant "Nos agences" --- */
.nav__item--drop{position:relative;}
.nav__drop-toggle{display:inline-flex;align-items:center;gap:.35rem;}
.nav__chev{width:10px;height:7px;transition:transform .35s var(--ease);}
.nav__item--drop:hover .nav__chev{transform:rotate(180deg);}
.nav__dropdown{position:absolute;top:100%;left:50%;transform:translateX(-50%);padding-top:16px;width:330px;opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s;z-index:1100;}
.nav__item--drop:hover .nav__dropdown{opacity:1;visibility:visible;}
.nav__dropdown-inner{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:.7rem;transform:translateY(8px);transition:transform .35s var(--ease);}
.nav__item--drop:hover .nav__dropdown-inner{transform:translateY(0);}
.nav__dropdown-inner::before{content:"";position:absolute;top:10px;left:50%;transform:translateX(-50%) rotate(45deg);width:14px;height:14px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);}
.nav__dropdown-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;color:var(--gold-deep);font-weight:600;padding:.5rem .8rem .6rem;position:relative;}
.agency-item{display:block;padding:.7rem .8rem;border-radius:10px;transition:background .3s;}
.agency-item:hover{background:var(--bg-alt);}
.agency-item b{font-family:var(--serif);color:var(--navy);font-size:1rem;font-weight:600;display:block;}
.agency-item .ag-addr{display:block;color:var(--ink-soft);font-size:.82rem;margin-top:2px;transition:color .3s;}
.agency-item .ag-addr:hover{color:var(--navy);}
.agency-item .ag-phone{display:inline-block;color:var(--gold-deep);font-size:.82rem;font-weight:600;margin-top:4px;}
.agency-item .ag-phone:hover{text-decoration:underline;}
.nav__dropdown-sep{height:1px;background:var(--line);margin:.5rem .5rem;}
.dropdown-team{display:flex;align-items:center;gap:.55rem;padding:.75rem .8rem;border-radius:10px;font-weight:600;font-size:.9rem;color:var(--navy);transition:background .3s,color .3s;}
.dropdown-team:hover{background:var(--bg-alt);color:var(--gold-deep);}
.dropdown-team svg{width:18px;height:18px;color:var(--gold-deep);flex:none;}
.mm-team b{color:var(--gold)!important;}

/* --- Bascule menu/burger sous 1300px --- */
@media (max-width:1300px){
  .nav{display:none;}
  .burger{display:flex;}
}

/* --- Agences dans le menu mobile --- */
.mm-agences{display:flex;flex-direction:column;gap:.7rem;margin-top:.6rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.15);width:min(420px,80vw);}
.mm-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.22em;color:var(--gold);font-weight:600;text-align:center;}
.mm-ag{font-family:var(--sans)!important;font-size:.95rem!important;text-align:center;line-height:1.3;}
.mm-ag b{display:block;color:#fff;font-weight:600;}
.mm-ag span{display:block;color:rgba(255,255,255,.7);font-size:.82rem;}
.mm-ag:hover b,.mm-ag:hover span{color:var(--gold);}
@media (max-width:760px){.logo__img{height:38px;}.logo--footer .logo__img{height:44px;}}

/* ===== 3 modes de contact ===== */
.contact-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-bottom:2.6rem;}
.cmethod{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2.3rem 1.6rem;text-align:center;display:flex;flex-direction:column;align-items:center;transition:transform .45s var(--ease),box-shadow .45s,border-color .45s;}
.cmethod:hover{transform:translateY(-8px);box-shadow:var(--shadow-md);border-color:rgba(26,179,170,.5);}
.cmethod__ic{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;margin-bottom:1.3rem;background:linear-gradient(135deg,rgba(26,179,170,.16),rgba(26,179,170,.05));color:var(--gold-deep);}
.cmethod__ic svg{width:30px;height:30px;}
.cmethod h3{font-size:1.22rem;margin-bottom:.5rem;}
.cmethod__main{font-weight:600;color:var(--navy);font-size:.96rem;word-break:break-word;margin-bottom:.3rem;}
.cmethod__sub{font-size:.84rem;color:var(--ink-soft);margin-bottom:1.4rem;}
.cmethod .btn{margin-top:auto;width:100%;}
.cmethod--chat{background:linear-gradient(160deg,#fff,#eefaf8);border-color:rgba(26,179,170,.35);}
.cmethod__phones{display:flex;flex-direction:column;gap:.5rem;width:100%;margin-bottom:1rem;}
.cmethod__phones a{display:flex;flex-direction:column;gap:1px;padding:.55rem .7rem;border:1px solid var(--line);border-radius:10px;color:var(--navy);font-weight:700;font-size:1rem;transition:border-color .3s,background .3s,transform .3s;}
.cmethod__phones a:hover{border-color:var(--gold);background:rgba(26,179,170,.06);transform:translateY(-2px);}
.cmethod__phones a b{font-family:var(--serif);font-size:.78rem;font-weight:600;color:var(--gold-deep);}
.cmethod__sub:last-child{margin-top:auto;margin-bottom:0;}
.contact-wrap--single{grid-template-columns:1fr;max-width:680px;margin-inline:auto;}

/* ===== Chatbot IA ===== */
.chat-fab{position:fixed;right:24px;bottom:24px;width:62px;height:62px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:#063b37;display:grid;place-items:center;box-shadow:0 14px 34px rgba(26,179,170,.45);z-index:1800;transition:transform .35s var(--ease),opacity .3s,visibility .3s;animation:chatPulse 2.6s infinite;}
.chat-fab:hover{transform:scale(1.08);}
.chat-fab svg{width:28px;height:28px;}
.chat-fab.hidden{opacity:0;visibility:hidden;transform:scale(.6);}
.chat-fab__badge{position:absolute;top:-3px;right:-3px;background:var(--navy);color:#fff;font-size:.58rem;font-weight:700;letter-spacing:.05em;padding:.12rem .35rem;border-radius:50px;border:2px solid var(--bg);}
@keyframes chatPulse{0%{box-shadow:0 14px 34px rgba(26,179,170,.45),0 0 0 0 rgba(26,179,170,.4);}70%{box-shadow:0 14px 34px rgba(26,179,170,.45),0 0 0 16px rgba(26,179,170,0);}100%{box-shadow:0 14px 34px rgba(26,179,170,.45),0 0 0 0 rgba(26,179,170,0);}}
.chat-panel{position:fixed;right:24px;bottom:24px;width:370px;max-width:calc(100vw - 32px);height:560px;max-height:calc(100vh - 48px);background:#fff;border-radius:18px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;z-index:1900;opacity:0;visibility:hidden;transform:translateY(24px) scale(.96);transform-origin:bottom right;transition:all .4s var(--ease);border:1px solid var(--line);}
.chat-panel.open{opacity:1;visibility:visible;transform:none;}
.chat-head{background:linear-gradient(135deg,var(--navy),var(--navy-deep));color:#fff;padding:1.1rem 1.2rem;display:flex;align-items:center;justify-content:space-between;}
.chat-head__id{display:flex;align-items:center;gap:.7rem;}
.chat-avatar{width:42px;height:42px;border-radius:12px;background:rgba(26,179,170,.2);border:1px solid rgba(26,179,170,.5);display:grid;place-items:center;font-family:var(--serif);font-weight:700;color:var(--gold);font-size:.82rem;}
.chat-head__txt b{font-family:var(--serif);font-size:1.05rem;display:block;}
.chat-status{font-size:.72rem;color:rgba(255,255,255,.72);display:flex;align-items:center;gap:.4rem;}
.chat-status::before{content:"";width:7px;height:7px;border-radius:50%;background:#3ddc97;box-shadow:0 0 0 3px rgba(61,220,151,.25);}
.chat-close{color:#fff;font-size:1.6rem;line-height:1;width:32px;height:32px;border-radius:50%;transition:background .3s;}
.chat-close:hover{background:rgba(255,255,255,.15);}
.chat-body{flex:1;overflow-y:auto;padding:1.2rem;display:flex;flex-direction:column;gap:.7rem;background:var(--bg);}
.chat-msg{max-width:85%;padding:.7rem .95rem;border-radius:14px;font-size:.89rem;line-height:1.5;animation:chatIn .35s var(--ease);}
.chat-msg a{font-weight:600;text-decoration:underline;}
.chat-msg--bot{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start;color:var(--ink);}
.chat-msg--bot a{color:var(--gold-deep);}
.chat-msg--user{background:var(--navy);color:#fff;border-bottom-right-radius:4px;align-self:flex-end;}
.chat-msg--user a{color:var(--gold);}
@keyframes chatIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.chat-typing{display:inline-flex;gap:4px;}
.chat-typing i{width:7px;height:7px;border-radius:50%;background:var(--gold-deep);opacity:.5;animation:chatBlink 1.2s infinite;}
.chat-typing i:nth-child(2){animation-delay:.2s;}.chat-typing i:nth-child(3){animation-delay:.4s;}
@keyframes chatBlink{0%,60%,100%{opacity:.25;transform:translateY(0);}30%{opacity:1;transform:translateY(-3px);}}
.chat-quick{display:flex;flex-wrap:wrap;gap:.5rem;padding:0 1.2rem .6rem;background:var(--bg);}
.chat-chip{border:1px solid rgba(26,179,170,.5);color:var(--gold-deep);background:#fff;border-radius:50px;padding:.45rem .9rem;font-size:.79rem;font-weight:500;transition:all .3s;cursor:pointer;}
.chat-chip:hover{background:var(--gold);color:#063b37;border-color:var(--gold);}
.chat-input{display:flex;gap:.5rem;padding:.8rem;border-top:1px solid var(--line);background:#fff;}
.chat-input input{flex:1;border:1.5px solid var(--line);border-radius:50px;padding:.7rem 1rem;font-family:inherit;font-size:.9rem;}
.chat-input input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(26,179,170,.15);}
.chat-input button{width:44px;height:44px;flex:none;border-radius:50%;background:var(--gold);color:#063b37;display:grid;place-items:center;transition:background .3s,transform .3s;}
.chat-input button:hover{background:var(--gold-deep);transform:scale(1.05);}
.chat-input button svg{width:18px;height:18px;}
.chat-foot{font-size:.64rem;color:var(--ink-soft);text-align:center;padding:.45rem;background:#fff;border-top:1px solid var(--line);}
@media (max-width:760px){
  .contact-methods{grid-template-columns:1fr;}
  .chat-panel{right:8px;bottom:8px;height:calc(100vh - 16px);width:calc(100vw - 16px);max-height:none;border-radius:14px;}
  .chat-fab{right:16px;bottom:16px;}
}

/* ===== Header type hero : logo centre en haut, actions a droite ===== */
.header__inner{position:relative;}
.header:not(.scrolled) .nav{display:none;}
.header:not(.scrolled) .header__inner{justify-content:center;}
.header:not(.scrolled) .header__cta{position:absolute;right:0;top:50%;transform:translateY(-50%);}

/* ===== Barre de navigation en bas du hero ===== */
.hero__navbar{position:absolute;left:0;bottom:0;width:100%;z-index:6;padding:1.05rem 0;background:linear-gradient(0deg,rgba(18,42,66,.62),rgba(18,42,66,0));border-top:1px solid rgba(255,255,255,.15);}
.hero__navbar > .nav__links{width:min(1240px,92vw);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:1rem;}
.hero__navbar .nav__links > li{position:relative;}
.hero__navbar .nav__links > li > a,.hero__navbar .nav__drop-toggle{color:#fff;font-size:.92rem;font-weight:500;letter-spacing:.01em;display:inline-flex;align-items:center;gap:.4rem;padding:.35rem 0;position:relative;transition:color .3s;}
.hero__navbar .nav__links a:hover,.hero__navbar .nav__drop-toggle:hover{color:var(--gold);}
.hero__navbar .nav__links > li > a::after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:1.5px;background:var(--gold);transition:width .35s var(--ease);}
.hero__navbar .nav__links > li > a:hover::after{width:100%;}

/* Dropdown "Nos agences" qui s'ouvre vers le HAUT (dans le hero) */
.nav__item--up .nav__dropdown{top:auto;bottom:100%;padding-top:0;padding-bottom:16px;}
.nav__item--up .nav__dropdown-inner{transform:translateY(8px);}
.nav__item--up:hover .nav__dropdown-inner{transform:translateY(0);}
.nav__item--up .nav__dropdown-inner::before{top:auto;bottom:-7px;transform:translateX(-50%) rotate(225deg);}
.nav__item--up:hover .nav__chev{transform:rotate(180deg);}

/* La barre du bas est reservee au desktop large ; sinon -> burger */
@media (max-width:1100px){ .hero__navbar{display:none;} }

.header .logo__img{transition:height .4s var(--ease),opacity .35s var(--ease);}
.header:not(.scrolled) .logo__img{height:64px;}
.calc-cta{display:inline-flex;width:100%;margin-top:1.3rem;position:relative;}

/* ===== Header mobile : logo a gauche, burger a droite (RDV/tel dans le menu) ===== */
@media (max-width:760px){
  .header:not(.scrolled) .header__inner{justify-content:space-between;}
  .header:not(.scrolled) .header__cta{position:static;transform:none;}
  .header:not(.scrolled) .logo__img{height:40px;}
  .header__cta{gap:.5rem;}
  .header__phone--drop{display:none;}
  .header__cta .btn--gold{display:none;}
}
.mm-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--gold);color:#063b37 !important;font-family:var(--sans) !important;font-size:1rem !important;font-weight:600;padding:.85rem 2.2rem;border-radius:50px;margin-bottom:.4rem;box-shadow:0 8px 24px rgba(26,179,170,.35);}
.mm-cta:hover{background:var(--gold-deep);color:#063b37 !important;}

/* ===== Avis clients ===== */
.section--dark{background:linear-gradient(150deg,var(--navy),var(--navy-deep));position:relative;overflow:hidden;}
.section--dark::before{content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;border-radius:50%;background:rgba(26,179,170,.08);}
.section--dark .section-head h2{color:#fff;}
.section--dark .section-head p{color:rgba(255,255,255,.75);}
.rating-badge{display:inline-flex;align-items:center;gap:.7rem;margin-top:1.4rem;background:#fff;border-radius:50px;padding:.55rem 1.4rem;box-shadow:var(--shadow-md);}
.rating-stars{display:inline-flex;color:var(--gold);gap:2px;}
.rating-stars svg{width:18px;height:18px;}
.rating-badge b{font-family:var(--serif);font-size:1.05rem;color:var(--navy);}
.rating-badge span{color:var(--ink-soft);font-size:.86rem;display:inline-flex;align-items:center;gap:.4rem;}
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
.review{background:#fff;border-radius:var(--radius);padding:2rem 1.8rem;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-md);transition:transform .45s var(--ease);}
.review:hover{transform:translateY(-8px);}
.review__stars{display:inline-flex;color:var(--gold);gap:2px;}
.review__stars svg{width:17px;height:17px;}
.review__text{font-size:.97rem;color:var(--ink);line-height:1.65;flex:1;}
.review__author{display:flex;align-items:center;gap:.8rem;padding-top:.6rem;border-top:1px solid var(--line);}
.review__avatar{width:44px;height:44px;flex:none;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy-deep));color:var(--gold);display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:.88rem;}
.review__author b{display:block;font-family:var(--serif);font-size:1rem;color:var(--ink);}
.review__author span{font-size:.8rem;color:var(--ink-soft);}
@media(max-width:1080px){.reviews{grid-template-columns:1fr 1fr;}}
@media(max-width:760px){.reviews{grid-template-columns:1fr;}}

/* ===== Fiche bien detaillee ===== */
.bien-modal{position:fixed;inset:0;z-index:1950;background:rgba(12,24,38,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow-y:auto;opacity:0;transition:opacity .35s;}
.bien-modal.open{display:flex;opacity:1;}
.bien-modal__panel{position:relative;width:min(920px,100%);background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-lg);animation:bienIn .45s var(--ease);margin:auto;}
@keyframes bienIn{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:none;}}
.bien-close{position:absolute;top:1rem;right:1rem;z-index:3;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--navy);font-size:1.6rem;line-height:1;display:grid;place-items:center;box-shadow:var(--shadow-sm);transition:background .3s,color .3s;}
.bien-close:hover{background:var(--gold);color:#063b37;}
.bien-hero{position:relative;aspect-ratio:16/9;cursor:zoom-in;overflow:hidden;background:var(--bg-alt);}
.bien-hero img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.bien-hero:hover img{transform:scale(1.05);}
.bien-hero__labels{position:absolute;top:1rem;left:1rem;display:flex;flex-wrap:wrap;gap:.4rem;max-width:80%;}
.bien-hero__zoom{position:absolute;bottom:1rem;right:1rem;background:rgba(18,42,66,.8);color:#fff;font-size:.74rem;padding:.4rem .85rem;border-radius:50px;backdrop-filter:blur(2px);}
.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(18,42,66,.75);color:#fff;border:none;font-size:2rem;line-height:1;padding:.2rem .7rem;cursor:pointer;border-radius:4px;z-index:5;transition:background .2s;}
.carousel-btn:hover{background:rgba(26,179,170,.9);}
.carousel-prev{left:.5rem;}.carousel-next{right:.5rem;}
.carousel-count{position:absolute;bottom:.7rem;left:50%;transform:translateX(-50%);background:rgba(18,42,66,.7);color:#fff;font-size:.75rem;padding:.25rem .7rem;border-radius:50px;}
.carousel-thumbs{display:flex;gap:.4rem;padding:.5rem 0;overflow-x:auto;scrollbar-width:thin;}
.carousel-thumbs img{width:72px;height:52px;object-fit:cover;border-radius:4px;cursor:pointer;opacity:.6;transition:opacity .2s,outline .2s;flex-shrink:0;}
.carousel-thumbs img.active,.carousel-thumbs img:hover{opacity:1;outline:2px solid var(--gold);}
.bien-content{display:grid;grid-template-columns:1.5fr 1fr;gap:2rem;padding:2rem;}
.bien-type{font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--gold-deep);font-weight:600;margin-bottom:.4rem;}
.bien-main h2{font-size:2rem;margin-bottom:.3rem;}
.bien-loc{display:flex;align-items:center;gap:.4rem;color:var(--ink-soft);font-size:.95rem;margin-bottom:1.2rem;}
.bien-loc svg{width:15px;height:15px;color:var(--gold-deep);flex:none;}
.bien-desc{color:var(--ink-soft);line-height:1.75;margin-bottom:1.5rem;}
.bien-main h4{font-size:1.05rem;margin-bottom:.8rem;}
.bien-features{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;}
.bien-features li{position:relative;padding-left:1.5rem;font-size:.9rem;color:var(--ink);}
.bien-features li::before{content:"";position:absolute;left:0;top:.3rem;width:15px;height:15px;border-radius:50%;background:rgba(26,179,170,.16);}
.bien-features li::after{content:"";position:absolute;left:5.5px;top:.55rem;width:4px;height:4px;border-radius:50%;background:var(--gold-deep);}
.bien-aside{background:var(--bg-alt);border-radius:var(--radius);padding:1.6rem;display:flex;flex-direction:column;gap:1rem;align-self:start;}
.bien-price{font-family:var(--serif);font-size:1.9rem;font-weight:700;color:var(--gold-deep);}
.bien-specs{display:flex;gap:1.3rem;padding-bottom:1rem;border-bottom:1px solid var(--line);}
.bien-aside .btn{width:100%;}
.bien-agent{font-size:.8rem;color:var(--ink-soft);display:flex;align-items:center;gap:.55rem;line-height:1.4;}
.bien-agent span{width:34px;height:34px;flex:none;border-radius:8px;background:linear-gradient(135deg,var(--navy),var(--navy-deep));color:var(--gold);display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:.68rem;}
@media(max-width:760px){.bien-content{grid-template-columns:1fr;padding:1.4rem;gap:1.4rem;}.bien-features{grid-template-columns:1fr;}.bien-main h2{font-size:1.6rem;}}

/* ===== Modale legale ===== */
.legal-modal{position:fixed;inset:0;z-index:1970;background:rgba(12,24,38,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:flex-start;justify-content:center;padding:5vh 16px;overflow-y:auto;opacity:0;transition:opacity .35s;}
.legal-modal.open{display:flex;opacity:1;}
.legal-modal__panel{position:relative;width:min(720px,100%);background:#fff;border-radius:18px;padding:2.4rem;box-shadow:var(--shadow-lg);animation:bienIn .45s var(--ease);margin:auto;}
.legal-modal__panel h3{font-size:1.6rem;margin-bottom:1.2rem;padding-right:2.5rem;}
.legal-body h4{font-size:1rem;color:var(--navy);margin:1.3rem 0 .4rem;}
.legal-body p{font-size:.92rem;color:var(--ink-soft);line-height:1.7;}
.legal-body em{color:var(--gold-deep);font-style:normal;font-weight:600;}
.legal-body .legal-note{margin-top:1.5rem;padding:.9rem 1.1rem;background:rgba(26,179,170,.08);border-left:3px solid var(--gold);border-radius:8px;font-size:.85rem;color:var(--ink);}

/* ===== Bandeau cookies ===== */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:1850;max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:1.2rem 1.4rem;display:flex;flex-direction:column;gap:1rem;transform:translateY(140%);transition:transform .5s var(--ease);}
.cookie-banner.show{transform:translateY(0);}
.cookie-banner p{font-size:.86rem;color:var(--ink-soft);line-height:1.55;}
.cookie-banner a{color:var(--gold-deep);font-weight:600;text-decoration:underline;}
.cookie-actions{display:flex;gap:.7rem;justify-content:flex-end;}
.cookie-actions .btn{padding:.6rem 1.3rem;font-size:.85rem;}
.cookie-banner__main p:first-child{font-weight:600;color:var(--ink);margin-bottom:.2rem;}
.cookie-detail{margin-top:.6rem;display:flex;flex-direction:column;gap:.45rem;}
.cookie-opt{display:flex;align-items:baseline;gap:.5rem;font-size:.84rem;color:var(--ink-soft);cursor:pointer;}
.cookie-opt input{accent-color:var(--gold-deep);margin-top:2px;}
.cookie-opt span{font-weight:600;color:var(--ink);}
.cookie-opt small{font-weight:400;}
.cookie-actions .btn--text{background:none;border:none;color:var(--ink-soft);text-decoration:underline;font-size:.82rem;padding:.6rem .8rem;cursor:pointer;}
@media(max-width:520px){.cookie-actions{flex-wrap:wrap;justify-content:stretch;}.cookie-actions .btn{flex:1;min-width:40%;}}

.trends-update{text-align:center;margin-top:1.8rem;font-size:.8rem;color:var(--ink-soft);}
.trends-update b{color:var(--gold-deep);}

/* ===== Accessibilite ===== */
.skip-link{position:fixed;top:-60px;left:16px;z-index:3000;background:var(--navy);color:#fff;padding:.7rem 1.2rem;border-radius:0 0 10px 10px;font-weight:600;font-size:.85rem;transition:top .3s;}
.skip-link:focus{top:0;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2.5px solid var(--gold);outline-offset:2px;border-radius:4px;}

/* ===== Bouton retour en haut ===== */
.to-top{position:fixed;left:24px;bottom:24px;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--navy);border:1.5px solid var(--line);display:grid;place-items:center;box-shadow:var(--shadow-md);z-index:1750;opacity:0;visibility:hidden;transform:translateY(14px);transition:all .4s var(--ease);}
.to-top.show{opacity:1;visibility:visible;transform:none;}
.to-top:hover{background:var(--gold);color:#063b37;border-color:var(--gold);transform:translateY(-3px);}
.to-top svg{width:20px;height:20px;}
@media (max-width:760px){.to-top{left:14px;bottom:14px;width:44px;height:44px;}}

/* ===== Lien de menu actif (section courante) ===== */
.nav__links a.active{color:var(--gold-deep);}
.header:not(.scrolled) .nav__links a.active,.hero__navbar .nav__links a.active{color:var(--gold);}
.nav__links > li > a.active::after{width:100%;}

/* ===== Header 3 zones ===== */
.header__inner{display:flex;align-items:center;gap:1.2rem;}
.header__zone{display:flex;align-items:center;}
.header__zone--left{flex:1;justify-content:flex-start;}
.header__zone--center{flex:0 0 auto;justify-content:center;}
.header__zone--right{flex:1;justify-content:flex-end;gap:1.1rem;}
.header:not(.scrolled) .header__inner{justify-content:space-between;}
.header:not(.scrolled) .nav{display:none;}
.header__estim{display:inline-flex;align-items:center;gap:.6rem;background:linear-gradient(135deg,#ffffff,#eefaf9);color:var(--navy);padding:.42rem .95rem .42rem .45rem;font-size:.9rem;font-weight:600;border:1px solid rgba(26,179,170,.35);border-radius:50px;box-shadow:0 6px 20px rgba(26,179,170,.20);white-space:nowrap;position:relative;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s;}
.header__estim .estim-ic{width:32px;height:32px;flex:none;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-deep));display:grid;place-items:center;box-shadow:0 3px 10px rgba(26,179,170,.4);}
.header__estim .estim-ic svg{width:17px;height:17px;color:#fff;}
.header__estim .estim-txt{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;}
.header__estim .estim-txt small{font-weight:700;font-size:.6rem;color:var(--gold-deep);text-transform:uppercase;letter-spacing:.14em;}
.header__estim .estim-txt b{font-weight:700;font-size:.9rem;color:var(--navy);}
.header__estim:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(26,179,170,.34);border-color:var(--gold);}
.header__estim::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.65),transparent);transform:skewX(-20deg);animation:estimShine 5s ease-in-out infinite;}
@keyframes estimShine{0%,70%{left:-70%;}85%{left:140%;}100%{left:140%;}}
@media (prefers-reduced-motion:reduce){.header__estim::after{display:none;}}
.header__contact{padding:.68rem 1.6rem;font-size:.88rem;}
@media (max-width:1300px){
  .header__contact{display:none;}
  .header__zone--left .header__estim{display:none;}
}
/* Le mega-menu devient l'unique entree de navigation : on retire le burger. */
.burger{display:none!important;}
.menu-btn{white-space:nowrap;}
/* Header transparent au-dessus du hero -> bouton en blanc ; header colle -> encre. */
.header:not(.scrolled) .menu-btn{color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.45);}
.header:not(.scrolled) .menu-btn:hover{color:var(--gold);}
.header.scrolled .menu-btn{color:var(--ink);text-shadow:none;}
.header.scrolled .menu-btn:hover{color:var(--gold-deep);}
.menu-btn:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:4px;}
@media (max-width:560px){
  .menu-btn{letter-spacing:.14em;font-size:.68rem;gap:.45rem;}
}
/* Cibles tactiles >= 44px sur mobile (accessibilite) */
@media (max-width:900px){
  .menu-btn{min-height:44px;padding-block:.55rem;}
  .mega__close{min-height:44px;}
  .mega__col li a{padding-block:.3rem;display:inline-block;min-height:32px;}
  .mega__top a{min-height:44px;display:inline-flex;align-items:center;}
}
.estim-tab{position:fixed;left:0;top:50%;transform:translateY(-50%) translateX(-100%);z-index:1700;background:var(--gold);color:#063b37;writing-mode:vertical-rl;padding:1.1rem .55rem;border-radius:0 12px 12px 0;font-weight:700;font-size:.82rem;letter-spacing:.03em;box-shadow:0 10px 30px rgba(26,179,170,.4);display:flex;align-items:center;gap:.5rem;transition:background .3s,padding .3s;animation:estimIn .5s .8s var(--ease) forwards;}
@keyframes estimIn{to{transform:translateY(-50%) translateX(0);}}
.estim-tab svg{width:17px;height:17px;transform:rotate(90deg);}
.estim-tab:hover{background:var(--gold-deep);padding-left:.8rem;}
@media (max-width:900px){.estim-tab{display:none;}}
.mm-cta--estim{background:#fff!important;color:var(--navy)!important;}
.search__card.search-highlight{animation:searchPulse 1.5s var(--ease);}
@keyframes searchPulse{0%{box-shadow:0 0 0 0 rgba(26,179,170,.55),var(--shadow-lg);}100%{box-shadow:0 0 0 26px rgba(26,179,170,0),var(--shadow-lg);}}

.search__submit{grid-column:1/-1;}
@media(max-width:1080px){.search__submit{grid-column:1/-1;}}
@media(max-width:760px){.search__submit{grid-column:1/-1;}}
@media(max-width:440px){.search__submit{grid-column:1/-1;}}

/* ===== Header scrollé : logo décalé à gauche, le menu suit, Contact à droite ===== */
.header.scrolled .header__zone--left{flex:0 0 auto;}
.header.scrolled .header__zone--center{flex:0 0 auto;}
.header.scrolled .header__zone--right{flex:1;justify-content:flex-start;gap:1.4rem;}
.header.scrolled .header__contact{margin-left:auto;}

/* ===== Section Services ===== */
.metiers{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:3rem;}
.metier{display:inline-flex;flex-direction:column;align-items:center;gap:.55rem;padding:1.1rem 1.5rem;min-width:120px;background:#fff;border:1px solid var(--line);border-radius:14px;font-weight:600;font-size:.95rem;color:var(--navy);transition:transform .35s var(--ease),border-color .35s,background .35s,color .35s;}
.metier svg{width:26px;height:26px;color:var(--gold-deep);transition:color .35s;}
.metier:hover{border-color:var(--gold);background:rgba(26,179,170,.06);transform:translateY(-5px);}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-bottom:3rem;}
.biens-types{display:flex;align-items:center;gap:1.4rem;justify-content:center;text-align:left;background:linear-gradient(135deg,var(--navy),var(--navy-deep));color:#fff;border-radius:var(--radius);padding:1.9rem 2.4rem;max-width:920px;margin:0 auto;box-shadow:var(--shadow-md);}
.biens-types svg{width:40px;height:40px;color:var(--gold);flex:none;}
.biens-types p{font-size:1.08rem;font-weight:300;line-height:1.5;}
.biens-types b{color:var(--gold);font-weight:600;font-family:var(--serif);}
@media(max-width:1080px){.services-grid{grid-template-columns:1fr;}}
@media(max-width:760px){.metier{min-width:0;flex:1 1 40%;}.biens-types{flex-direction:column;text-align:center;}}

/* Bouton "Recherche avancée" dans chaque en-tête de zone */
.zone-search{flex:none;gap:.5rem;white-space:nowrap;align-self:center;}
.zone-search svg{width:16px;height:16px;}
@media(max-width:760px){.zone-search{width:100%;justify-content:center;}}

/* ===== Estimateur 2 phases ===== */
.estim-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2.4rem;box-shadow:var(--shadow-sm);}
.estim-steps{display:flex;align-items:center;gap:.7rem;margin-bottom:1.7rem;}
.estim-step{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;background:var(--bg-alt);color:var(--ink-soft);border:1px solid var(--line);flex:none;}
.estim-step.active{background:var(--gold);color:#063b37;border-color:var(--gold);}
.estim-steps i{flex:1;height:2px;background:var(--line);}
.estim-phase h3{font-size:1.25rem;margin-bottom:1.1rem;}
.estim-hint{font-size:.9rem;color:var(--ink-soft);margin-bottom:1.3rem;line-height:1.55;}
.estim-2col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.estim-card .calc-row{margin-bottom:1.1rem;}
.estim-back{display:block;margin:.9rem auto 0;color:var(--ink-soft);font-size:.88rem;}
.estim-back:hover{color:var(--navy);}
.hp{position:absolute!important;left:-9999px!important;}
.form-error{display:none;color:#c0392b;font-size:.82rem;margin-bottom:.9rem;}
.form-error.show{display:block;}
#estimDone{text-align:center;}
.estim-check{width:56px;height:56px;border-radius:50%;background:var(--gold);color:#063b37;display:grid;place-items:center;font-size:1.7rem;font-weight:700;margin:0 auto 1rem;}
.estim-range{font-family:var(--serif);font-size:clamp(1.6rem,4vw,2.3rem);font-weight:700;color:var(--navy);margin:.3rem 0;}
.estim-ppm{color:var(--ink-soft);font-size:.9rem;margin-bottom:1.1rem;}

/* Carré contact agence (droite, foncé) */
.estim-contact{background:linear-gradient(150deg,var(--navy),var(--navy-deep));color:#fff;border-radius:var(--radius);padding:2.4rem;box-shadow:var(--shadow-md);align-self:start;}
.estim-contact h3{color:#fff;font-size:1.4rem;margin-bottom:.4rem;}
.estim-contact > p{color:rgba(255,255,255,.75);font-size:.95rem;margin-bottom:1.5rem;line-height:1.55;}
.estim-contact .calc-row{margin-bottom:1rem;}
.estim-contact input,.estim-contact select,.estim-contact textarea{width:100%;padding:.82rem 1rem;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-sm);background:rgba(255,255,255,.06);color:#fff;font-family:inherit;font-size:.95rem;}
.estim-contact input::placeholder,.estim-contact textarea::placeholder{color:rgba(255,255,255,.5);}
.estim-contact select option{color:var(--ink);}
.estim-contact textarea{min-height:76px;resize:vertical;}
.estim-contact input:focus,.estim-contact select:focus,.estim-contact textarea:focus{outline:none;border-color:var(--gold);background:rgba(255,255,255,.1);}
.estim-contact .form-success{display:none;align-items:center;gap:.6rem;background:rgba(26,179,170,.18);border:1px solid var(--gold);color:#fff;padding:.9rem 1rem;border-radius:var(--radius-sm);font-size:.92rem;margin-bottom:1rem;}
.estim-contact .form-success.show{display:flex;}
.estim-contact .form-success svg{width:20px;height:20px;flex:none;color:var(--gold);}
@media(max-width:1080px){.estim-contact{margin-top:0;}}

/* Estimateur + contact : même hauteur */
.calc-wrap{align-items:stretch;}
.estim-contact{align-self:auto;}
.estim-card{display:flex;flex-direction:column;}
.estim-card > form{flex:1;display:flex;flex-direction:column;}

/* ===== Tri par zone ===== */
.zone-sort{display:flex;align-items:center;gap:.8rem;margin-bottom:1.6rem;}
.zone-sort__label{font-size:.78rem;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;}
.zone-sort select{padding:.6rem 2.4rem .6rem 1.1rem;border:1.5px solid var(--line);border-radius:10px;background:#fff;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--navy);cursor:pointer;appearance:none;background-image: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 1l5 5 5-5' stroke='%230E8A82' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;transition:border-color .3s;}
.zone-sort select:hover,.zone-sort select:focus{outline:none;border-color:var(--gold);}

/* ===== Mascotte esperluette "&" du chatbot ===== */
.chat-fab .chat-mascot{width:52px;height:52px;}
.chat-avatar{border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-deep));border:none;color:#063b37;overflow:hidden;}
.chat-avatar .chat-mascot{width:34px;height:34px;}
.chat-fab:hover .chat-mascot{animation:mascotWobble .6s var(--ease);}
@keyframes mascotWobble{0%,100%{transform:rotate(0);}25%{transform:rotate(-8deg);}75%{transform:rotate(8deg);}}

.legal-table{width:100%;border-collapse:collapse;margin:.6rem 0 1rem;font-size:.92rem;}
.legal-table th,.legal-table td{border:1px solid var(--line);padding:.55rem .8rem;text-align:left;}
.legal-table th{background:var(--bg-alt);font-family:var(--serif);}
.legal-note{margin-top:1rem;font-size:.85rem;color:var(--gold-deep);background:rgba(26,179,170,.08);border-left:3px solid var(--gold);padding:.7rem 1rem;border-radius:0 8px 8px 0;}

.member__agency{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:600;color:var(--gold-deep);background:rgba(26,179,170,.1);padding:.3rem .75rem;border-radius:50px;margin-bottom:.7rem;}
.member__agency svg{width:13px;height:13px;flex:none;}
.team--agents .member__agency{margin-bottom:0;}

/* ===== Partenaires ===== */
.partners{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;}
.partner{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.1rem;text-align:center;display:flex;flex-direction:column;gap:.3rem;transition:transform .4s var(--ease),box-shadow .4s,border-color .4s;}
.partner:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:rgba(26,179,170,.5);}
.partner span{font-family:var(--serif);font-size:1.12rem;font-weight:700;color:var(--navy);}
.partner small{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;}
@media(max-width:900px){.partners{grid-template-columns:1fr 1fr;}}

/* ===== Footer legal ===== */
.footer__legal{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;justify-content:flex-end;}
.footer__legal a{color:rgba(255,255,255,.6);font-size:.82rem;transition:color .3s;}
.footer__legal a:hover{color:var(--gold);}
@media(max-width:760px){.footer__legal{justify-content:center;}}

/* ===== Fix header mobile (état scrollé) : logo à gauche, burger à droite ===== */
@media (max-width:760px){
  .header.scrolled .header__zone--center{flex:1;justify-content:flex-start;}
  .header.scrolled .header__zone--right{flex:0 0 auto;justify-content:flex-end;}
  .header.scrolled .header__contact{margin-left:0;}
  .header:not(.scrolled) .logo__img{height:36px;}
  .header.scrolled .logo__img{height:34px;}
}

/* Zone de tap du burger (accessibilité mobile) */
@media (max-width:760px){
  #burger{width:44px;height:44px;justify-content:center;align-items:center;gap:6px;}
  #burger span{width:24px;}
}

/* ===== Preloader ===== */
.preloader{position:fixed;inset:0;z-index:6000;background:#FAFAFA;display:flex;align-items:center;justify-content:center;transition:opacity .7s ease,visibility .7s ease;}
.preloader.done{opacity:0;visibility:hidden;}
.pl-inner{display:flex;flex-direction:column;align-items:center;gap:1.6rem;}
.pl-logo{width:min(300px,64vw);height:auto;opacity:0;transform:translateY(14px) scale(.94);animation:plLogoIn 1s .15s cubic-bezier(.22,.61,.36,1) forwards;}
@keyframes plLogoIn{to{opacity:1;transform:none;}}
.pl-bar{width:150px;height:3px;border-radius:3px;background:rgba(26,179,170,.16);overflow:hidden;opacity:0;animation:plBarShow .4s .55s forwards;}
@keyframes plBarShow{to{opacity:1;}}
.pl-bar span{display:block;width:42%;height:100%;border-radius:3px;background:linear-gradient(90deg,#1AB3AA,#0E8A82);animation:plBarMove 1.15s .6s infinite cubic-bezier(.4,0,.2,1);}
@keyframes plBarMove{0%{transform:translateX(-130%);}100%{transform:translateX(360%);}}
@media (prefers-reduced-motion:reduce){.pl-logo,.pl-bar,.pl-bar span{animation:none;opacity:1;transform:none;}}
/* ============================================================
   MEGA-MENU PLEIN ECRAN
   ============================================================ */
.menu-btn{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--sans);font-size:.74rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.22em;color:inherit;
  padding:.5rem .2rem;background:none;border:none;transition:color .3s var(--ease);
}
.menu-btn:hover{color:var(--gold-deep);}
.menu-btn__ic{display:flex;flex-direction:column;gap:4px;width:20px;}
.menu-btn__ic span{display:block;height:1.5px;background:currentColor;border-radius:2px;transition:transform .35s var(--ease),width .35s var(--ease);}
.menu-btn__ic span:nth-child(1){width:20px;}
.menu-btn__ic span:nth-child(2){width:13px;}
.menu-btn:hover .menu-btn__ic span:nth-child(2){width:20px;}

.mega{
  position:fixed;inset:0;z-index:4000;background:var(--ivory);
  opacity:0;visibility:hidden;transform:translateY(-12px);
  transition:opacity .45s var(--ease),transform .45s var(--ease),visibility .45s;
  overflow-y:auto;overscroll-behavior:contain;
}
.mega.open{opacity:1;visibility:visible;transform:none;}

.mega__bar{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  width:min(1400px,94vw);margin-inline:auto;padding:1.6rem 0;
}
.mega__close{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:var(--sans);font-size:.74rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.22em;color:var(--ink);
  background:none;border:none;transition:color .3s var(--ease);
}
.mega__close:hover{color:var(--gold-deep);}
.mega__close svg{width:15px;height:15px;stroke-width:1.7;}
.mega__logo img{height:52px;width:auto;}
.mega__bar-right{display:flex;align-items:center;gap:1.6rem;}
.mega__lang{font-family:var(--sans);font-size:.74rem;letter-spacing:.18em;color:var(--ink-soft);}
.mega__lang b{color:var(--ink);font-weight:500;}
.mega__lang span{opacity:.4;margin:0 .35rem;}
.mega__cta{
  display:inline-flex;align-items:center;border:1px solid var(--ink);
  border-radius:50px;padding:.8rem 1.7rem;
  font-family:var(--sans);font-size:.72rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.16em;color:var(--ink);
  transition:all .35s var(--ease);
}
.mega__cta:hover{background:var(--gold);border-color:var(--gold);color:#063b37;}

.mega__top{
  display:flex;align-items:center;justify-content:center;gap:1.3rem;
  padding:.5rem 0 3.2rem;
}
.mega__top a{
  font-family:var(--sans);font-size:.82rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.2em;color:var(--ink);
  padding-bottom:.35rem;border-bottom:1px solid transparent;
  transition:color .3s var(--ease),border-color .3s var(--ease);
}
.mega__top a:hover,.mega__top a.is-active{color:var(--gold-deep);border-color:var(--gold);}
.mega__top i{font-style:normal;opacity:.3;}

.mega__grid{
  width:min(1400px,94vw);margin-inline:auto;
  display:grid;grid-template-columns:1fr 1fr 1fr 1.05fr;
  gap:clamp(1.5rem,3.5vw,3.5rem);padding-bottom:3rem;align-items:start;
}
.mega__col h3{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(1.6rem,2.3vw,2.15rem);color:var(--ink);
  margin-bottom:1.35rem;letter-spacing:-.01em;
}
.mega__col h3+ul{margin-bottom:2.6rem;}
.mega__col li{margin-bottom:.85rem;}
.mega__col li a{
  position:relative;display:inline-block;
  font-family:var(--sans);font-size:1rem;font-weight:300;
  color:var(--ink-soft);transition:color .3s var(--ease),transform .3s var(--ease);
}
.mega__col li a::after{
  content:"";position:absolute;left:0;bottom:-3px;height:1px;width:0;
  background:var(--gold);transition:width .35s var(--ease);
}
.mega__col li a:hover{color:var(--ink);transform:translateX(4px);}
.mega__col li a:hover::after{width:100%;}

.mega__media{overflow:hidden;border-radius:2px;}
.mega__media img{width:100%;height:100%;min-height:260px;object-fit:cover;
  transition:transform 1.1s var(--ease);}
.mega__media:hover img{transform:scale(1.04);}

.mega__foot{
  width:min(1400px,94vw);margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  border-top:1px solid var(--line);padding:1.3rem 0 2.2rem;
}
.mega__social{display:flex;gap:1.1rem;}
.mega__social a{color:var(--ink-soft);transition:color .3s var(--ease),transform .3s var(--ease);}
.mega__social a:hover{color:var(--gold-deep);transform:translateY(-2px);}
.mega__social svg{width:18px;height:18px;}
.mega__foot-note{font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-soft);}

/* Apparition en cascade des colonnes */
.mega.open .mega__top,
.mega.open .mega__col,
.mega.open .mega__media{animation:megaIn .6s var(--ease) both;}
.mega.open .mega__top{animation-delay:.05s;}
.mega.open .mega__col:nth-of-type(1){animation-delay:.12s;}
.mega.open .mega__col:nth-of-type(2){animation-delay:.19s;}
.mega.open .mega__col:nth-of-type(3){animation-delay:.26s;}
.mega.open .mega__media{animation-delay:.33s;}
@keyframes megaIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}

@media(max-width:1040px){
  .mega__grid{grid-template-columns:1fr 1fr;}
  .mega__media{display:none;}
}
@media(max-width:640px){
  .mega__grid{grid-template-columns:1fr;gap:1.2rem;}
  .mega__logo img{height:40px;}
  .mega__bar-right .mega__cta{display:none;}
  .mega__top{gap:.8rem;padding-bottom:2rem;flex-wrap:wrap;}
  .mega__top a{font-size:.74rem;}
  .mega__col h3{font-size:1.5rem;margin-bottom:1rem;}
  .mega__col h3+ul{margin-bottom:1.8rem;}
}
@media(prefers-reduced-motion:reduce){
  .mega,.mega.open .mega__top,.mega.open .mega__col,.mega.open .mega__media{
    transition:opacity .2s linear;animation:none;}
}

/* ============================================================
   NOUVELLES SECTIONS (vendre / ventes / prestations / alerte /
   vision / journal / recrutement)
   ============================================================ */

/* --- Grille de cartes generique --- */
.cards{display:grid;gap:clamp(1rem,2vw,1.6rem);}
.cards--3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));}
.cards--4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(1.6rem,2.4vw,2.2rem);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease);
}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:rgba(26,179,170,.4);}
.card__ic{
  width:46px;height:46px;border-radius:12px;display:grid;place-items:center;
  background:rgba(26,179,170,.1);color:var(--gold-deep);margin-bottom:1.15rem;
}
.card__ic svg{width:22px;height:22px;stroke-width:1.6;fill:none;stroke:currentColor;}
.card h3{font-size:1.5rem;font-weight:500;margin-bottom:.55rem;}
.card p{color:var(--ink-soft);font-size:.95rem;font-weight:300;line-height:1.7;}

/* --- Etapes numerotees (Vendre) --- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(1.2rem,2.6vw,2.4rem);}
.step{position:relative;padding-top:2.6rem;}
.step__n{
  position:absolute;top:0;left:0;font-family:var(--serif);
  font-size:2.9rem;font-weight:300;line-height:1;color:var(--gold);opacity:.55;
}
.step h3{font-size:1.35rem;font-weight:500;margin-bottom:.5rem;}
.step p{color:var(--ink-soft);font-size:.94rem;font-weight:300;line-height:1.7;}

/* --- Bandeau de chiffres --- */
.stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:1.5rem;text-align:center;margin-bottom:clamp(2.5rem,5vw,4rem);
}
.stat b{
  display:block;font-family:var(--serif);font-weight:400;
  font-size:clamp(2.6rem,5vw,3.6rem);line-height:1;color:var(--gold-deep);
}
.stat span{
  display:block;margin-top:.55rem;font-size:.72rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.2em;color:var(--ink-soft);
}

/* --- Biens vendus --- */
.sold{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:clamp(1rem,2vw,1.6rem);}
.sold__item{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--white);border:1px solid var(--line);}
.sold__img{position:relative;aspect-ratio:4/3;overflow:hidden;}
.sold__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);filter:saturate(.9);}
.sold__item:hover .sold__img img{transform:scale(1.06);}
.sold__badge{
  position:absolute;top:.9rem;left:.9rem;z-index:2;
  background:var(--ink);color:#fff;border-radius:50px;padding:.4rem 1rem;
  font-size:.64rem;font-weight:500;text-transform:uppercase;letter-spacing:.18em;
}
.sold__body{padding:1.1rem 1.3rem 1.4rem;}
.sold__body b{display:block;font-family:var(--serif);font-size:1.35rem;font-weight:500;}
.sold__meta{color:var(--ink-soft);font-size:.86rem;font-weight:300;margin-top:.2rem;}
.sold__price{margin-top:.7rem;font-size:.95rem;font-weight:500;color:var(--gold-deep);}

/* --- Formulaire d'alerte --- */
.alert-box{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(1.8rem,3.5vw,3rem);box-shadow:var(--shadow-sm);
  max-width:920px;margin-inline:auto;
}
.alert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.1rem;}
.alert-field label{
  display:block;font-size:.7rem;font-weight:500;text-transform:uppercase;
  letter-spacing:.16em;color:var(--ink-soft);margin-bottom:.5rem;
}
.alert-field select,.alert-field input{
  width:100%;padding:.85rem 1rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  font-family:var(--sans);font-size:.95rem;font-weight:300;color:var(--ink);
  background:var(--bg);transition:border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.alert-field select:focus,.alert-field input:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(26,179,170,.15);
}
.alert-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.6rem;}
.alert-note{font-size:.8rem;font-weight:300;color:var(--ink-soft);}
.alert-ok{
  display:none;margin-top:1.2rem;padding:.95rem 1.2rem;border-radius:var(--radius-sm);
  background:rgba(26,179,170,.12);border:1px solid rgba(26,179,170,.4);
  color:var(--gold-deep);font-size:.92rem;
}
.alert-ok.show{display:block;}

/* --- Vision (editorial) --- */
.vision-lead{
  max-width:860px;margin:0 auto clamp(2.5rem,5vw,4rem);text-align:center;
  font-family:var(--serif);font-weight:300;font-size:clamp(1.5rem,2.9vw,2.2rem);
  line-height:1.45;color:var(--ink);
}
.vision-lead em{font-style:italic;color:var(--gold-deep);}
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:clamp(1.5rem,3vw,3rem);}
.pillar{text-align:center;padding:0 .5rem;}
.pillar b{
  display:block;font-family:var(--serif);font-size:1.6rem;font-weight:500;margin-bottom:.6rem;
}
.pillar p{color:var(--ink-soft);font-size:.95rem;font-weight:300;line-height:1.75;}
.pillar-rule{width:40px;height:1px;background:var(--gold);margin:0 auto 1.1rem;}

/* --- Journal --- */
.posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:clamp(1.2rem,2.4vw,2rem);}
.post{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);}
.post:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
.post__img{aspect-ratio:16/10;overflow:hidden;}
.post__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.post:hover .post__img img{transform:scale(1.05);}
.post__body{padding:1.3rem 1.4rem 1.6rem;}
.post__tag{
  font-size:.66rem;font-weight:500;text-transform:uppercase;letter-spacing:.2em;
  color:var(--gold-deep);
}
.post__body h3{font-size:1.4rem;font-weight:500;margin:.6rem 0 .5rem;line-height:1.25;}
.post__body p{color:var(--ink-soft);font-size:.92rem;font-weight:300;line-height:1.7;}
.post__date{display:block;margin-top:.9rem;font-size:.76rem;color:var(--ink-soft);opacity:.8;}

/* --- Recrutement --- */
.jobs{display:grid;gap:.9rem;max-width:900px;margin:0 auto clamp(2rem,4vw,3rem);}
.job{
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.25rem 1.6rem;transition:border-color .35s var(--ease),transform .35s var(--ease);
}
.job:hover{border-color:rgba(26,179,170,.5);transform:translateX(4px);}
.job__t b{display:block;font-family:var(--serif);font-size:1.35rem;font-weight:500;}
.job__t span{font-size:.86rem;font-weight:300;color:var(--ink-soft);}
.job__tags{display:flex;gap:.5rem;flex-wrap:wrap;}
.job__tag{
  border:1px solid var(--line);border-radius:50px;padding:.32rem .85rem;
  font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);
}

/* ============================================================
   SECTIONS ENRICHIES (vendre / vision / recrutement)
   ============================================================ */

/* --- Trio "Revelez votre bien" --- */
.reveal3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(1.2rem,2.4vw,2rem);}
.rv{position:relative;border-radius:var(--radius);overflow:hidden;min-height:340px;
  display:flex;align-items:flex-end;isolation:isolate;}
.rv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  transition:transform 1.1s var(--ease);}
.rv::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.42) 55%,rgba(0,0,0,.78) 100%);}
.rv:hover img{transform:scale(1.06);}
.rv__body{padding:1.5rem 1.6rem 1.7rem;color:#fff;}
.rv__body b{display:block;font-family:var(--serif);font-size:1.6rem;font-weight:500;margin-bottom:.4rem;}
.rv__body p{font-size:.92rem;font-weight:300;line-height:1.65;color:rgba(255,255,255,.88);}

/* --- Sous-titre de bloc au sein d'une section --- */
.sub-head{text-align:center;max-width:700px;margin:clamp(3.5rem,7vw,5.5rem) auto clamp(2rem,4vw,3rem);}
.sub-head h3{font-size:clamp(1.9rem,3.6vw,2.7rem);font-weight:400;}
.sub-head p{color:var(--ink-soft);font-weight:300;margin-top:.7rem;}

/* --- Convictions (Notre vision) : lignes alternees --- */
.vblocks{display:flex;flex-direction:column;gap:clamp(2.5rem,5vw,4.5rem);}
.vblock{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;}
.vblock:nth-child(even) .vblock__media{order:-1;}
.vblock__media{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;}
.vblock__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease);}
.vblock:hover .vblock__media img{transform:scale(1.04);}
.vblock__txt .eyebrow{margin-bottom:.7rem;}
.vblock__txt h3{font-size:clamp(1.7rem,3.2vw,2.4rem);font-weight:400;margin-bottom:.9rem;}
.vblock__txt p{color:var(--ink-soft);font-weight:300;line-height:1.8;font-size:1rem;}
@media(max-width:820px){
  .vblock{grid-template-columns:1fr;}
  .vblock:nth-child(even) .vblock__media{order:0;}
}

/* --- Avantages (Recrutement) --- */
.perks{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:clamp(1rem,2vw,1.6rem);}
.perk{display:flex;gap:.9rem;align-items:flex-start;background:var(--white);
  border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.4rem;
  transition:border-color .35s var(--ease),transform .35s var(--ease);}
.perk:hover{border-color:rgba(26,179,170,.45);transform:translateY(-3px);}
.perk__ic{flex:0 0 auto;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;
  background:rgba(26,179,170,.12);color:var(--gold-deep);}
.perk__ic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;}
.perk b{display:block;font-family:var(--sans);font-size:.98rem;font-weight:500;margin-bottom:.2rem;}
.perk span{font-size:.88rem;font-weight:300;color:var(--ink-soft);line-height:1.6;}

/* --- Bandeau final d'appel a l'action --- */
.cta-band{
  background:var(--navy);color:#fff;border-radius:var(--radius);
  padding:clamp(2.2rem,5vw,3.6rem);text-align:center;margin-top:clamp(2.5rem,5vw,4rem);
}
.cta-band h3{color:#fff;font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:400;margin-bottom:.8rem;}
.cta-band p{color:rgba(255,255,255,.8);font-weight:300;max-width:560px;margin:0 auto 1.8rem;}
.cta-band .btn--outline{border-color:rgba(255,255,255,.6);color:#fff;}
.cta-band .btn--outline:hover{background:#fff;color:var(--navy);}

/* ============================================================
   FICHES PRESTATIONS (modale)
   ============================================================ */
.card--link{cursor:pointer;position:relative;}
.card__more{
  display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;
  font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.16em;
  color:var(--gold-deep);transition:gap .3s var(--ease);
}
.card--link:hover .card__more{gap:.75rem;}
.card__more svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;}

.presta-modal{
  position:fixed;inset:0;z-index:4200;background:rgba(18,26,34,.6);
  -webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);
  display:none;align-items:flex-start;justify-content:center;
  padding:5vh 16px;overflow-y:auto;opacity:0;transition:opacity .35s var(--ease);
}
.presta-modal.open{display:flex;opacity:1;}
.presta-panel{
  background:var(--bg);border-radius:var(--radius);overflow:hidden;
  width:min(860px,100%);box-shadow:var(--shadow-lg);position:relative;
  animation:prestaIn .45s var(--ease) both;
}
@keyframes prestaIn{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}
.presta-close{
  position:absolute;top:1rem;right:1rem;z-index:3;
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.92);color:var(--ink);box-shadow:var(--shadow-sm);
  transition:background .3s var(--ease),transform .3s var(--ease);
}
.presta-close:hover{background:#fff;transform:rotate(90deg);}
.presta-close svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;}
.presta-hero{position:relative;aspect-ratio:21/9;overflow:hidden;}
.presta-hero img{width:100%;height:100%;object-fit:cover;}
.presta-hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.66));}
.presta-hero__t{
  position:absolute;left:0;right:0;bottom:0;padding:1.6rem clamp(1.5rem,3.5vw,2.6rem);
  color:#fff;z-index:2;
}
.presta-hero__t .eyebrow{color:#6FE3DA;margin-bottom:.45rem;}
.presta-hero__t h3{color:#fff;font-size:clamp(1.7rem,3.6vw,2.6rem);font-weight:400;line-height:1.15;}
.presta-body{padding:clamp(1.6rem,3.5vw,2.6rem);}
.presta-lead{
  font-family:var(--serif);font-weight:300;font-size:clamp(1.2rem,2.2vw,1.55rem);
  line-height:1.5;color:var(--ink);margin-bottom:1.8rem;
}
.presta-pts{display:grid;gap:1.1rem;}
.presta-pt{display:flex;gap:.9rem;align-items:flex-start;}
.presta-pt__n{
  flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  background:rgba(26,179,170,.14);color:var(--gold-deep);
  font-family:var(--sans);font-size:.72rem;font-weight:600;
}
.presta-pt b{display:block;font-family:var(--sans);font-size:.98rem;font-weight:500;margin-bottom:.2rem;}
.presta-pt span{font-size:.93rem;font-weight:300;color:var(--ink-soft);line-height:1.7;}
.presta-foot{
  margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);
  display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;
}
.presta-foot p{font-size:.86rem;font-weight:300;color:var(--ink-soft);flex:1;min-width:200px;}

/* ============================================================
   MULTI-PAGES : bandeau de page, fil d'Ariane, teasers d'accueil
   ============================================================ */

/* --- Bandeau en haut des pages interieures --- */
.page-hero{
  position:relative;padding:calc(7rem + 3vw) 0 clamp(2.5rem,5vw,4rem);
  background:var(--ivory);border-bottom:1px solid var(--line);overflow:hidden;
}
.page-hero--img{border-bottom:0;}
.page-hero--img .page-hero__bg{position:absolute;inset:0;z-index:0;}
.page-hero--img .page-hero__bg img{width:100%;height:100%;object-fit:cover;}
.page-hero--img .page-hero__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(0,0,0,.66) 0%,rgba(0,0,0,.5) 45%,rgba(0,0,0,.3) 100%);
}
.page-hero__inner{position:relative;z-index:2;max-width:820px;}
.page-hero--img .page-hero__inner{color:#fff;}
.page-hero--img h1{color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.4);}
.page-hero--img .eyebrow{color:#6FE3DA;}
.page-hero--img .page-hero__sub{color:rgba(255,255,255,.9);}
.page-hero h1{font-size:clamp(2.3rem,5.2vw,3.9rem);line-height:1.1;letter-spacing:-.015em;}
.page-hero__sub{
  margin-top:1rem;font-size:clamp(1rem,1.8vw,1.2rem);font-weight:300;
  color:var(--ink-soft);max-width:620px;line-height:1.7;
}

/* --- Fil d'Ariane --- */
.fil{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:1.1rem;
  font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
.fil a{color:inherit;transition:color .3s var(--ease);}
.fil a:hover{color:var(--gold-deep);}
.fil span{opacity:.45;}
.page-hero--img .fil{color:rgba(255,255,255,.75);}
.page-hero--img .fil a:hover{color:#6FE3DA;}

/* --- Teasers de l'accueil (renvoient vers les pages) --- */
.teasers{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:clamp(1rem,2vw,1.6rem);}
.teaser{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:300px;border-radius:var(--radius);overflow:hidden;isolation:isolate;
  color:#fff;padding:1.6rem;transition:transform .45s var(--ease);
}
.teaser:hover{transform:translateY(-5px);}
.teaser img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  transition:transform 1.1s var(--ease);}
.teaser:hover img{transform:scale(1.07);}
.teaser::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.08) 0%,rgba(0,0,0,.5) 55%,rgba(0,0,0,.84) 100%);}
.teaser .eyebrow{color:#6FE3DA;margin-bottom:.4rem;}
.teaser b{display:block;font-family:var(--serif);font-size:1.75rem;font-weight:500;margin-bottom:.45rem;}
.teaser p{font-size:.92rem;font-weight:300;color:rgba(255,255,255,.87);line-height:1.6;}
.teaser__go{
  display:inline-flex;align-items:center;gap:.45rem;margin-top:1rem;
  font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.16em;
  color:#fff;transition:gap .3s var(--ease);
}
.teaser:hover .teaser__go{gap:.85rem;}
.teaser__go svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;}

/* --- Navigation entre prestations (bas de page) --- */
.presta-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem;}
.presta-nav a{
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:.9rem 1.1rem;
  background:var(--white);font-size:.92rem;font-weight:300;color:var(--ink-soft);
  transition:border-color .3s var(--ease),color .3s var(--ease),transform .3s var(--ease);
}
.presta-nav a:hover{border-color:rgba(26,179,170,.5);color:var(--ink);transform:translateY(-2px);}
.presta-nav a.is-current{border-color:var(--gold);color:var(--ink);background:rgba(26,179,170,.07);}

/* ============================================================
   REFONTE HEADER + HERO (2026-09-15)
   Header epure facon BR : Menu + FR/EN a gauche, logo au centre,
   Estimation (fine) + Contact a droite. Hero minimal, video claire.
   ============================================================ */

/* --- Zones du header : espacements fins et symetriques --- */
.header__zone--left{gap:1.5rem;}
.header__zone--right{gap:1.4rem;}
.header:not(.scrolled) .header__inner{justify-content:space-between;}
/* On neutralise le rearrangement asymetrique de l'ancien header scrolle */
.header.scrolled .header__zone--left{flex:1;justify-content:flex-start;}
.header.scrolled .header__zone--center{flex:0 0 auto;}
.header.scrolled .header__zone--right{flex:1;justify-content:flex-end;gap:1.4rem;}
.header.scrolled .header__contact{margin-left:0;}

/* --- Selecteur de langue FR / EN --- */
.lang-switch{display:inline-flex;align-items:center;gap:.5rem;}
.lang-switch__opt{
  font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;background:none;border:none;padding:0;cursor:pointer;
  color:inherit;opacity:.55;transition:opacity .3s var(--ease),color .3s var(--ease);
}
.lang-switch__opt.is-active{opacity:1;}
.lang-switch__opt:hover{opacity:1;}
.lang-switch__sep{font-size:.72rem;opacity:.4;}

/* --- Estimation en ligne : lien fin et typographique (fini le badge) --- */
.estim-link{
  display:inline-flex;align-items:center;gap:.55rem;position:relative;
  font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:inherit;white-space:nowrap;
  transition:color .3s var(--ease);
}
.estim-link svg{width:16px;height:16px;flex:none;opacity:.9;}
.estim-link span{position:relative;padding-bottom:2px;}
.estim-link span::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
  background:currentColor;transition:width .35s var(--ease);
}
.estim-link:hover span::after{width:100%;}

/* --- Nous contacter : pastille contour fin facon BR --- */
.header__contact{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;border-radius:50px;padding:.72rem 1.5rem;
  border:1px solid currentColor;background:none;color:inherit;white-space:nowrap;
  box-shadow:none;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);
}

/* --- Etats de couleur : au-dessus du hero (transparent) vs colle (clair) --- */
.header:not(.scrolled) .lang-switch,
.header:not(.scrolled) .estim-link{color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.4);}
.header:not(.scrolled) .estim-link:hover{color:#fff;}
.header:not(.scrolled) .header__contact{color:#fff;border-color:rgba(255,255,255,.6);text-shadow:none;}
.header:not(.scrolled) .header__contact:hover{background:#fff;border-color:#fff;color:var(--navy);}

.header.scrolled .lang-switch,
.header.scrolled .estim-link{color:var(--ink);text-shadow:none;}
.header.scrolled .estim-link:hover{color:var(--gold-deep);}
.header.scrolled .header__contact{color:var(--ink);border-color:var(--line);}
.header.scrolled .header__contact:hover{background:var(--gold);border-color:var(--gold);color:#063b37;}

.lang-switch__opt:focus-visible,
.estim-link:focus-visible,
.header__contact:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px;}

/* --- Responsive header --- */
.header__contact{display:inline-flex;}
@media (max-width:1040px){ .lang-switch{display:none;} .estim-link span{display:none;} .estim-link{order:-1;} }
@media (max-width:760px){ .estim-link svg{width:20px;height:20px;} .estim-link{min-width:44px;min-height:44px;justify-content:center;padding:0;} }
@media (max-width:600px){ .header__contact{display:none;} }

/* ============================================================
   HERO MINIMAL
   ============================================================ */
.hero{align-items:flex-end;}
.hero__content{max-width:none;width:100%;padding-bottom:clamp(4.5rem,11vh,8rem);}
.hero__eyebrow{
  display:inline-block;font-family:var(--sans);font-size:.74rem;font-weight:500;
  letter-spacing:.32em;text-transform:uppercase;color:#fff;opacity:.92;
  margin-bottom:1.1rem;text-shadow:0 1px 12px rgba(0,0,0,.5);
}
.hero__title{
  color:#fff;font-family:var(--serif);font-weight:300;
  font-size:clamp(2.8rem,7vw,5.6rem);line-height:1.02;letter-spacing:-.015em;
  text-shadow:0 2px 30px rgba(0,0,0,.42),0 1px 4px rgba(0,0,0,.3);
}
.hero__title em{font-style:italic;color:#fff;}

/* Signal "Decouvrir" en bas du hero */
.hero__scroll{
  position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);z-index:6;
  display:inline-flex;flex-direction:column;align-items:center;gap:.4rem;
  font-family:var(--sans);font-size:.64rem;font-weight:500;letter-spacing:.22em;
  text-transform:uppercase;color:#fff;opacity:.85;
  text-shadow:0 1px 10px rgba(0,0,0,.5);transition:opacity .3s var(--ease);
}
.hero__scroll:hover{opacity:1;}
.hero__scroll svg{width:20px;height:20px;animation:heroScrollBob 2.2s ease-in-out infinite;}
@keyframes heroScrollBob{0%,100%{transform:translateY(0);}50%{transform:translateY(5px);}}
@media (max-width:600px){ .hero__scroll{display:none;} }
@media (prefers-reduced-motion:reduce){ .hero__scroll svg{animation:none;} }

/* --- Voile du hero : sombre en haut/bas, lumineux au centre --- */
.hero__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(0,0,0,var(--hero-veil-l)) 0%,
    rgba(0,0,0,var(--hero-veil-m)) 26%,
    rgba(0,0,0,.04) 52%,
    rgba(0,0,0,.24) 78%,
    rgba(0,0,0,var(--hero-veil-r)) 100%);
}
@media (max-width:760px){
  .hero__bg::after{background:linear-gradient(180deg,rgba(0,0,0,.32) 0%,rgba(0,0,0,.10) 45%,rgba(0,0,0,.5) 100%);}
}

/* ============================================================
   PAGES A BANDEAU CLAIR (hero-light) : header en texte encre
   des le haut de page (pas de video sombre derriere).
   ============================================================ */
.hero-light .header:not(.scrolled)::before{display:none;}
.hero-light .header:not(.scrolled) .menu-btn,
.hero-light .header:not(.scrolled) .lang-switch,
.hero-light .header:not(.scrolled) .estim-link{color:var(--ink);text-shadow:none;}
.hero-light .header:not(.scrolled) .menu-btn:hover,
.hero-light .header:not(.scrolled) .lang-switch__opt:hover,
.hero-light .header:not(.scrolled) .estim-link:hover{color:var(--gold-deep);}
.hero-light .header:not(.scrolled) .header__contact{color:var(--ink);border-color:var(--line);text-shadow:none;}
.hero-light .header:not(.scrolled) .header__contact:hover{background:var(--gold);border-color:var(--gold);color:#063b37;}
.hero-light .header:not(.scrolled) .logo__img--white{display:none;}
.hero-light .header:not(.scrolled) .logo__img--dark{display:block;filter:none;}

/* Contenu reserve aux lecteurs d'ecran / au SEO (invisible a l'ecran) */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ============================================================
   20. SELECTION : FAVORIS, COMPARATEUR, VISITE 3D, QUARTIER
   ============================================================ */

/* ---------- Badge "Visite 3D" sur la carte ---------- */
.card__360{
  position:absolute;left:14px;bottom:14px;z-index:2;
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.34rem .66rem;border-radius:999px;
  background:rgba(18,42,66,.84);backdrop-filter:blur(6px);
  color:#fff;font-size:.68rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
}
.card__360 svg{width:14px;height:14px;}

/* ---------- Coeur + comparateur sur la carte ---------- */
.card{position:relative;}
.card__tools{
  position:absolute;top:12px;right:12px;z-index:3;
  display:flex;flex-direction:column;gap:.45rem;
  opacity:0;transform:translateX(6px);
  transition:opacity .25s var(--ease),transform .25s var(--ease);
}
.card:hover .card__tools,
.card:focus-within .card__tools{opacity:1;transform:none;}
.card__tool{
  width:36px;height:36px;display:grid;place-items:center;
  border-radius:50%;background:rgba(255,255,255,.93);
  color:var(--navy);box-shadow:var(--shadow-sm);
  transition:background .2s,color .2s,transform .2s var(--ease);
}
.card__tool svg{width:17px;height:17px;}
.card__tool:hover{background:#fff;transform:scale(1.08);}
.card__tool.is-on{background:var(--gold);color:#fff;}
.card__tool.is-on svg{fill:currentColor;}
@media (hover:none){.card__tools{opacity:1;transform:none;}}

/* ---------- Boutons dans la fiche bien ---------- */
.bien-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.9rem;}
.bien-act{
  display:flex;align-items:center;gap:.55rem;width:100%;
  padding:.62rem .8rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:#fff;color:var(--ink-soft);font-size:.82rem;text-align:left;
  transition:border-color .2s,color .2s,background .2s;
}
.bien-act svg{width:17px;height:17px;flex:none;}
.bien-act:hover{border-color:var(--gold);color:var(--navy);}
.bien-act.is-on{border-color:var(--gold);background:rgba(26,179,170,.09);color:var(--gold-deep);}
.bien-act.is-on svg{fill:currentColor;}

/* ---------- Visite virtuelle 360 ---------- */
.bien-tour{margin-top:2.2rem;}
.bien-tour h4{font-size:1.25rem;margin-bottom:.9rem;}
.tour-frame{
  position:relative;border-radius:var(--radius);overflow:hidden;
  aspect-ratio:16/10;background:var(--navy-deep);box-shadow:var(--shadow-sm);
}
.tour-frame img{width:100%;height:100%;object-fit:cover;filter:brightness(.52) saturate(.8);}
.tour-frame iframe{width:100%;height:100%;border:0;display:block;}
.tour-play{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:.5rem;
  color:#fff;text-align:center;padding:1.5rem;
}
.tour-play__ic{
  width:60px;height:60px;display:grid;place-items:center;border-radius:50%;
  background:var(--gold);box-shadow:0 10px 30px rgba(26,179,170,.4);
  transition:transform .3s var(--ease);
}
.tour-play__ic svg{width:26px;height:26px;}
.tour-play:hover .tour-play__ic{transform:scale(1.09);}
.tour-play b{font-family:var(--serif);font-size:1.35rem;font-weight:500;}
.tour-play span:last-child{font-size:.84rem;opacity:.82;}

/* ---------- Le quartier ---------- */
.bien-quartier{margin-top:2.4rem;}
.bien-quartier h4{font-size:1.25rem;margin-bottom:1rem;}
.qt-scores{
  display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;
  padding:1.1rem;border-radius:var(--radius);background:var(--bg-alt);margin-bottom:1.4rem;
}
.qt-scores>div{display:flex;flex-direction:column;gap:.45rem;align-items:center;text-align:center;}
.qt-scores span:first-child{font-size:.74rem;color:var(--ink-soft);letter-spacing:.04em;}
.qt-score{display:flex;gap:3px;}
.qt-score i{width:7px;height:7px;border-radius:50%;background:var(--line);display:block;}
.qt-score i.on{background:var(--gold);}
.qt-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;}
.qt-block h5{
  font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-deep);margin-bottom:.6rem;
}
.qt-block p{font-size:.88rem;color:var(--ink-soft);line-height:1.6;}
.qt-metro li{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;
  padding:.44rem 0;border-bottom:1px solid var(--line);font-size:.86rem;
}
.qt-metro li:last-child{border-bottom:0;}
.qt-metro b{
  min-width:30px;padding:.1rem .4rem;border-radius:5px;text-align:center;
  background:var(--navy);color:#fff;font-size:.7rem;font-weight:500;
}
.qt-metro em{font-style:normal;font-size:.76rem;color:var(--ink-soft);white-space:nowrap;}
.qt-list li{
  padding:.4rem 0 .4rem 1rem;position:relative;font-size:.86rem;color:var(--ink-soft);
}
.qt-list li::before{
  content:"";position:absolute;left:0;top:.95em;
  width:5px;height:5px;border-radius:50%;background:var(--gold);
}
.qt-note{margin-top:1rem;font-size:.74rem;color:var(--ink-soft);font-style:italic;}
@media (max-width:720px){
  .qt-scores{grid-template-columns:repeat(2,1fr);}
  .qt-cols{grid-template-columns:1fr;}
}

/* ---------- Coeur dans le header ---------- */
.fav-link{
  position:relative;display:grid;place-items:center;
  width:38px;height:38px;border-radius:50%;color:inherit;
  transition:background .2s;
}
.fav-link svg{width:19px;height:19px;}
.fav-link:hover{background:rgba(255,255,255,.12);}
.hero-light .fav-link:hover,.header.scrolled .fav-link:hover{background:rgba(26,58,90,.07);}
.fav-link__n{
  position:absolute;top:2px;right:0;min-width:17px;height:17px;padding:0 4px;
  display:none;place-items:center;border-radius:999px;
  background:var(--gold);color:#fff;font-size:.64rem;font-weight:600;line-height:1;
}
.fav-link__n.is-on{display:grid;}

/* ---------- Message court ---------- */
.hb-toast{
  position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);
  z-index:1200;padding:.72rem 1.3rem;border-radius:999px;
  background:var(--navy-deep);color:#fff;font-size:.85rem;
  box-shadow:var(--shadow-md);opacity:0;pointer-events:none;
  transition:opacity .3s,transform .3s var(--ease);
}
.hb-toast.show{opacity:1;transform:translate(-50%,0);}

/* ---------- Barre du comparateur ---------- */
.cmp-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:1100;
  background:var(--navy-deep);color:#fff;
  transform:translateY(100%);transition:transform .35s var(--ease);
}
.cmp-bar.show{transform:none;}
.cmp-bar__in{
  width:min(1240px,92vw);margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.9rem 0;flex-wrap:wrap;
}
.cmp-bar__txt{font-size:.9rem;}
.cmp-bar__txt b{color:var(--gold);font-size:1.05rem;}
.cmp-bar__btns{display:flex;align-items:center;gap:.8rem;}
.cmp-bar .btn{padding:.55rem 1.4rem;font-size:.8rem;}
.cmp-bar .btn:disabled{opacity:.45;cursor:not-allowed;}
.cmp-bar__clear{
  color:rgba(255,255,255,.7);font-size:.8rem;text-decoration:underline;
  text-underline-offset:3px;
}
.cmp-bar__clear:hover{color:#fff;}

/* ---------- Modale du comparateur ---------- */
.cmp-modal{
  position:fixed;inset:0;z-index:1300;display:none;
  background:rgba(18,42,66,.62);backdrop-filter:blur(4px);
  padding:3vh 2vw;overflow:auto;
}
.cmp-modal.open{display:block;}
.cmp-modal__panel{
  position:relative;width:min(1100px,96vw);margin-inline:auto;
  background:var(--bg);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);padding:2.4rem 2rem 2rem;
}
.cmp-title{font-size:1.9rem;margin-bottom:1.4rem;}
.cmp-scroll{overflow-x:auto;}
.cmp-table{width:100%;border-collapse:collapse;font-size:.88rem;}
.cmp-table th,.cmp-table td{
  padding:.7rem .8rem;border-bottom:1px solid var(--line);
  text-align:left;vertical-align:middle;
}
.cmp-table tbody th{
  font-family:var(--sans);font-weight:400;font-size:.76rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);
  white-space:nowrap;width:1%;
}
.cmp-table td{min-width:168px;}
.cmp-strong td{font-size:1.02rem;font-weight:500;color:var(--navy);}
.cmp-corner{border-bottom:1px solid var(--line);}
.cmp-head{display:flex;flex-direction:column;gap:.3rem;padding-bottom:.6rem;}
.cmp-head img{width:100%;height:96px;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:.4rem;}
.cmp-head b{font-family:var(--serif);font-size:1.15rem;font-weight:500;}
.cmp-head span{font-size:.76rem;color:var(--ink-soft);}
.cmp-del{
  align-self:flex-start;margin-top:.2rem;font-size:.72rem;color:var(--ink-soft);
  text-decoration:underline;text-underline-offset:3px;
}
.cmp-del:hover{color:#c0392b;}
.cmp-best{
  display:inline-block;margin-left:.4rem;font-style:normal;font-size:.68rem;
  padding:.1rem .45rem;border-radius:999px;background:rgba(26,179,170,.14);color:var(--gold-deep);
}
.cmp-oui{color:var(--gold-deep);font-weight:500;}
.cmp-non{color:var(--ink-soft);}
.cmp-cta{width:100%;padding:.52rem .8rem;font-size:.76rem;}
.cmp-table em{font-style:normal;font-size:.74rem;color:var(--ink-soft);}
@media (max-width:720px){
  .cmp-modal__panel{padding:2rem 1rem 1.4rem;}
  .cmp-title{font-size:1.45rem;}
}

/* ---------- Page "Ma selection" ---------- */
.fav-vide{
  text-align:center;max-width:560px;margin:2rem auto 0;
  padding:3rem 1.6rem;border:1px dashed var(--line);border-radius:var(--radius);
}
.fav-vide__ic{
  width:64px;height:64px;margin:0 auto 1.2rem;display:grid;place-items:center;
  border-radius:50%;background:var(--bg-alt);color:var(--gold);
}
.fav-vide__ic svg{width:30px;height:30px;}
.fav-vide h3{font-size:1.5rem;margin-bottom:.6rem;}
.fav-vide p{color:var(--ink-soft);font-size:.92rem;}
.fav-note{
  display:flex;gap:.8rem;align-items:flex-start;max-width:720px;
  margin:2.6rem auto 0;padding:1rem 1.2rem;
  border-radius:var(--radius-sm);background:var(--bg-alt);
}
.fav-note svg{width:19px;height:19px;flex:none;color:var(--gold);margin-top:.15rem;}
.fav-note p{font-size:.82rem;color:var(--ink-soft);line-height:1.6;}
.fav-note a{color:var(--gold-deep);text-decoration:underline;text-underline-offset:3px;}

/* ============================================================
   21. SIMULATEUR DE PRET
   ============================================================ */
.pret-tabs{display:flex;gap:.6rem;justify-content:center;margin-bottom:1.8rem;flex-wrap:wrap;}
.pret-grid{display:grid;grid-template-columns:1fr .85fr;gap:1.6rem;align-items:start;}
.pret-input{position:relative;display:flex;align-items:center;}
.pret-input input{width:100%;padding-right:4.2rem;}
.pret-input span{
  position:absolute;right:.9rem;font-size:.84rem;color:var(--ink-soft);pointer-events:none;
}
.pret-hint{display:block;margin-top:.35rem;font-size:.74rem;color:var(--ink-soft);line-height:1.5;}
.pret .calc-row label b{float:right;color:var(--gold-deep);font-weight:500;}

.pret-res{
  position:sticky;top:96px;padding:1.8rem 1.6rem;
  border-radius:var(--radius);background:var(--navy-deep);color:#fff;
  box-shadow:var(--shadow-md);
}
.pret-res__lab{
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.62);
}
.pret-res__big{
  font-family:var(--serif);font-size:2.9rem;line-height:1.1;margin:.4rem 0 .2rem;color:#fff;
}
.pret-res__big small{font-family:var(--sans);font-size:.95rem;color:rgba(255,255,255,.6);}
.pret-res__sub{font-size:.82rem;color:rgba(255,255,255,.72);margin-bottom:1.3rem;}
.pret-lines li{
  display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:.52rem 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:.86rem;
}
.pret-lines li:last-child{border-bottom:0;}
.pret-lines span{color:rgba(255,255,255,.72);}
.pret-lines b{font-weight:500;white-space:nowrap;}
.pret-lines .is-total{margin-top:.3rem;padding-top:.7rem;border-top:1px solid rgba(255,255,255,.26);}
.pret-lines .is-total b{color:var(--gold);font-size:1.02rem;}
.pret-flag{
  margin-top:1.3rem;padding:.95rem 1.1rem;border-radius:var(--radius-sm);
  background:rgba(26,179,170,.15);border-left:3px solid var(--gold);
}
.pret-flag b{display:block;font-family:var(--sans);font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.25rem;}
.pret-flag span{display:block;font-size:1.02rem;margin-bottom:.3rem;}
.pret-flag small{font-size:.74rem;color:rgba(255,255,255,.66);line-height:1.5;}

.pret-lead{
  margin-top:1.8rem;padding:1.6rem;border-radius:var(--radius);
  background:#fff;border:1px solid var(--line);
  display:grid;grid-template-columns:1fr 1.1fr;gap:1.6rem;align-items:center;
}
.pret-lead h3{font-size:1.45rem;margin-bottom:.4rem;}
.pret-lead p{font-size:.86rem;color:var(--ink-soft);line-height:1.6;}
.pret-lead__row{display:flex;gap:.6rem;flex-wrap:wrap;}
.pret-lead__row input{flex:1 1 170px;}
.pret-lead__row .btn{flex:none;}
.pret-legal{
  margin-top:1.4rem;font-size:.72rem;color:var(--ink-soft);line-height:1.6;
  padding-top:1.1rem;border-top:1px solid var(--line);
}
@media (max-width:900px){
  .pret-grid{grid-template-columns:1fr;}
  .pret-res{position:static;}
  .pret-lead{grid-template-columns:1fr;}
}

/* ============================================================
   22. AVANT / APRES
   ============================================================ */
.ba-wrap{margin:2.6rem 0 1rem;}
.ba-wrap h3{font-size:1.5rem;margin-bottom:.5rem;}
.ba-intro{font-size:.9rem;color:var(--ink-soft);margin-bottom:1.1rem;line-height:1.6;}
.ba{
  --ba-pos:50%;
  position:relative;border-radius:var(--radius);overflow:hidden;
  aspect-ratio:3/2;box-shadow:var(--shadow-sm);user-select:none;
}
.ba__img{width:100%;height:100%;object-fit:cover;display:block;}
/* La couche "avant" se decoupe au curseur : l'image dessous reste
   a la taille du cadre, donc les deux versions restent alignees. */
.ba__before{
  position:absolute;top:0;left:0;right:0;bottom:0;
  clip-path:inset(0 calc(100% - var(--ba-pos)) 0 0);
}
/* La photo brute : sous-exposee, moins saturee, legere derive chaude. */
.ba__img--brut{filter:brightness(.78) saturate(.68) contrast(.92) sepia(.14);}
.ba__tag{
  position:absolute;bottom:14px;z-index:3;
  padding:.3rem .7rem;border-radius:999px;
  background:rgba(18,42,66,.8);color:#fff;
  font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
}
.ba__tag--a{left:14px;}
.ba__tag--b{right:14px;}
.ba__handle{
  position:absolute;top:0;bottom:0;left:var(--ba-pos);width:2px;
  background:#fff;box-shadow:0 0 14px rgba(0,0,0,.35);
  transform:translateX(-1px);z-index:4;pointer-events:none;
}
.ba__handle::after{
  content:"";position:absolute;top:50%;left:50%;
  width:40px;height:40px;transform:translate(-50%,-50%);
  border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);
}
.ba__range{
  position:absolute;top:0;left:0;z-index:5;width:100%;height:100%;
  margin:0;opacity:0;cursor:ew-resize;
}
.ba-note{margin-top:.7rem;font-size:.74rem;color:var(--ink-soft);font-style:italic;}

/* ============================================================
   23. GUIDES DE QUARTIER
   ============================================================ */
.qg-chiffres{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.2rem;
}
.qg-chiffres>div{
  padding:1.4rem 1.1rem;border-radius:var(--radius);background:var(--bg-alt);text-align:center;
}
.qg-chiffres b{
  display:block;font-family:var(--serif);font-size:2rem;font-weight:500;
  color:var(--navy);line-height:1.1;margin-bottom:.3rem;
}
.qg-chiffres span{font-size:.76rem;color:var(--ink-soft);line-height:1.4;}
.qg-src{margin-top:.9rem;font-size:.74rem;color:var(--ink-soft);font-style:italic;text-align:center;}

.qg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;}
.qg-block{padding:1.5rem;border-radius:var(--radius);background:#fff;border:1px solid var(--line);}
.qg-block h4{
  font-family:var(--sans);font-size:.74rem;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-deep);margin-bottom:.9rem;
}
.qg-block p{font-size:.9rem;color:var(--ink-soft);line-height:1.65;}

.qg-profils{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
.qg-profil{padding:1.4rem;border-radius:var(--radius);background:var(--bg-alt);}
.qg-profil b{
  display:block;font-family:var(--serif);font-size:1.22rem;font-weight:500;margin-bottom:.45rem;
}
.qg-profil p{font-size:.86rem;color:var(--ink-soft);line-height:1.6;}

.qg-regard{
  margin-top:2.4rem;padding:2rem;border-radius:var(--radius);
  background:var(--navy-deep);color:#fff;
}
.qg-regard .eyebrow{color:var(--gold);}
.qg-regard p{margin-top:.7rem;font-family:var(--serif);font-size:1.3rem;line-height:1.55;color:rgba(255,255,255,.93);}
@media (max-width:860px){
  .qg-chiffres{grid-template-columns:repeat(2,1fr);}
  .qg-grid,.qg-profils{grid-template-columns:1fr;}
}

/* ============================================================
   24. ARTICLE DU JOURNAL
   ============================================================ */
.article{max-width:740px;margin-inline:auto;}
.article__chapo{
  font-family:var(--serif);font-size:1.4rem;line-height:1.55;
  color:var(--navy);margin-bottom:2rem;
  padding-bottom:1.6rem;border-bottom:1px solid var(--line);
}
.article h3{font-size:1.55rem;margin:2.2rem 0 .8rem;}
.article h3:first-of-type{margin-top:0;}
.article p{font-size:1rem;line-height:1.8;color:var(--ink-soft);margin-bottom:1rem;}
.article p:last-child{margin-bottom:0;}

/* ---------- Curseurs du simulateur ---------- */
.calc-row--slider{display:block;}
.calc-row--slider label{display:block;margin-bottom:.55rem;}
.pret input[type="range"]{
  -webkit-appearance:none;appearance:none;
  width:100%;height:4px;padding:0;margin:.3rem 0 .2rem;
  border:0;border-radius:999px;background:var(--line);
  cursor:pointer;
}
.pret input[type="range"]:focus-visible{outline:2px solid var(--gold);outline-offset:6px;}
.pret input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:20px;height:20px;border-radius:50%;
  background:var(--gold);border:3px solid #fff;
  box-shadow:0 2px 8px rgba(26,58,90,.28);
  transition:transform .15s var(--ease);
}
.pret input[type="range"]::-webkit-slider-thumb:hover{transform:scale(1.14);}
.pret input[type="range"]::-moz-range-thumb{
  width:20px;height:20px;border-radius:50%;
  background:var(--gold);border:3px solid #fff;
  box-shadow:0 2px 8px rgba(26,58,90,.28);
}
.pret input[type="range"]::-moz-range-track{
  height:4px;border-radius:999px;background:var(--line);
}

/* ============================================================
   25. INDEX DES QUARTIERS : AGENCES + VIGNETTES
   ============================================================ */

/* ---------- Les 3 quartiers ou H&B a une agence ---------- */
.qg-phares{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
.qg-phare{
  display:flex;flex-direction:column;overflow:hidden;
  border-radius:var(--radius);background:#fff;
  border:1px solid var(--line);box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s;
}
.qg-phare:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:var(--gold);}
.qg-phare__img{aspect-ratio:16/10;overflow:hidden;}
.qg-phare__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.qg-phare:hover .qg-phare__img img{transform:scale(1.05);}
.qg-phare__body{padding:1.4rem;display:flex;flex-direction:column;gap:.3rem;flex:1;}
.qg-phare__tag{
  align-self:flex-start;margin-bottom:.3rem;
  padding:.24rem .66rem;border-radius:999px;
  background:var(--gold);color:#fff;
  font-size:.64rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
}
.qg-phare__body b{font-family:var(--serif);font-size:1.65rem;font-weight:500;line-height:1.15;}
.qg-phare__sous{font-size:.84rem;color:var(--ink-soft);}
.qg-phare__adr{
  margin-top:.5rem;padding:.6rem .8rem;border-radius:var(--radius-sm);
  background:var(--bg-alt);font-size:.82rem;color:var(--navy);line-height:1.5;
}
.qg-phare__meta{margin-top:.5rem;font-size:.78rem;color:var(--ink-soft);}
.qg-phare .teaser__go{margin-top:auto;padding-top:.9rem;}

/* ---------- Les 20 vignettes d'arrondissement ---------- */
.qg-vignettes{
  display:grid;grid-template-columns:repeat(5,1fr);gap:.85rem;
}
.qg-vig{
  position:relative;display:flex;flex-direction:column;gap:.18rem;
  padding:1.1rem 1rem;border-radius:var(--radius-sm);
  background:#fff;border:1px solid var(--line);
  transition:border-color .25s,transform .25s var(--ease),box-shadow .25s;
}
.qg-vig:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:var(--shadow-sm);}
.qg-vig b{font-family:var(--serif);font-size:1.3rem;font-weight:500;line-height:1.1;}
.qg-vig__sous{
  font-size:.72rem;color:var(--ink-soft);line-height:1.35;
  min-height:2.1em;
}
.qg-vig__prix{margin-top:.4rem;font-size:.92rem;font-weight:500;color:var(--gold-deep);}
.qg-vig__prix small{font-size:.7rem;font-weight:400;color:var(--ink-soft);}
.qg-vig.is-agence{
  border-color:var(--gold);background:linear-gradient(180deg,rgba(26,179,170,.07),#fff 60%);
}
.qg-vig__star{color:var(--gold);font-size:.8em;margin-left:.25rem;vertical-align:super;}

/* ---------- Encart agence sur la page du quartier ---------- */
.qg-agence{
  display:flex;gap:1.3rem;align-items:flex-start;
  max-width:820px;margin:2.2rem auto 0;padding:1.6rem 1.8rem;
  border-radius:var(--radius);background:var(--navy-deep);color:#fff;
  box-shadow:var(--shadow-md);
}
.qg-agence__ic{
  flex:none;width:52px;height:52px;display:grid;place-items:center;
  border-radius:50%;background:rgba(26,179,170,.18);color:var(--gold);
}
.qg-agence__ic svg{width:26px;height:26px;}
.qg-agence .eyebrow{color:var(--gold);}
.qg-agence b{
  display:block;margin-top:.35rem;
  font-family:var(--serif);font-size:1.5rem;font-weight:500;color:#fff;
}
.qg-agence p{margin:.2rem 0 1rem;font-size:.92rem;color:rgba(255,255,255,.78);}
.qg-agence .btn{padding:.52rem 1.3rem;font-size:.78rem;}

/* ---------- Navigation entre quartiers (23 liens) ---------- */
.presta-nav--wrap{flex-wrap:wrap;gap:.5rem;}
.presta-nav--wrap a{font-size:.82rem;}

@media (max-width:1080px){
  .qg-vignettes{grid-template-columns:repeat(4,1fr);}
}
@media (max-width:900px){
  .qg-phares{grid-template-columns:1fr;}
  .qg-vignettes{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:620px){
  .qg-vignettes{grid-template-columns:repeat(2,1fr);}
  .qg-agence{flex-direction:column;gap:.9rem;padding:1.3rem;}
}

/* ============================================================
   26. ATTRIBUTION DES PHOTOS (licences Creative Commons)
   ============================================================ */

/* ---------- Mention en bas de chaque guide de quartier ---------- */
.credit-photo{
  margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);
  font-size:.74rem;line-height:1.7;color:var(--ink-soft);
}
.credit-photo a{
  color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:var(--line);transition:color .2s;
}
.credit-photo a:hover{color:var(--gold-deep);text-decoration-color:var(--gold);}

/* ---------- Page "Credits photos" ---------- */
.credit-note{
  margin:2rem 0;padding:1.5rem 1.7rem;
  border-radius:var(--radius);background:var(--bg-alt);
  border-left:3px solid var(--gold);
}
.credit-note h3{font-size:1.3rem;margin-bottom:.6rem;}
.credit-note p{font-size:.88rem;line-height:1.7;color:var(--ink-soft);}
.credit-note p + p{margin-top:.7rem;}
.credit-note b{color:var(--navy);font-weight:500;}

.credits-table{width:100%;border-collapse:collapse;font-size:.84rem;}
.credits-table thead th{
  padding:.7rem .8rem;text-align:left;white-space:nowrap;
  border-bottom:2px solid var(--line);
  font-family:var(--sans);font-size:.7rem;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);
}
.credits-table td,.credits-table tbody th{
  padding:.68rem .8rem;border-bottom:1px solid var(--line);
  text-align:left;vertical-align:top;
}
.credits-table tbody th{
  font-family:var(--serif);font-size:1.02rem;font-weight:500;
  color:var(--navy);white-space:nowrap;
}
.credits-table td{color:var(--ink-soft);}
.credits-table tbody tr:hover{background:var(--bg-alt);}
.credits-table a{
  color:var(--gold-deep);text-decoration:underline;text-underline-offset:3px;
}
.credits-table a:hover{color:var(--navy);}
@media (max-width:760px){
  .credits-table{font-size:.78rem;}
  .credits-table td,.credits-table tbody th{padding:.55rem .6rem;}
}

/* =====================================================================
   AFFINAGE MOBILE — ajoute le 30/10/2026
   1. Supprime le debordement horizontal (libelles de boutons trop longs)
   2. Compose un vrai hero sur telephone (titre + appel a l'action)
   3. Cibles tactiles >= 44px (recommandation Apple / WCAG 2.5.5)
   4. Typographie relevee : plus rien sous 13px sur petit ecran
   ===================================================================== */

/* --- Titre du hero : invisible a l'ecran sur desktop (SEO + lecteurs d'ecran) --- */
.hero__h1{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.hero__cta{display:none;}

@media (max-width:760px){

  /* --- 1. Debordement : les libelles longs se replient au lieu de pousser la page --- */
  .btn{
    white-space:normal;
    max-width:100%;
    text-align:center;
    line-height:1.32;
    padding:.95rem 1.4rem;
    letter-spacing:.11em;
  }
  .zone-foot .btn{width:100%;}

  /* --- 2. Hero : la video laisse place a l'image + un message --- */
  .hero{
    min-height:75svh;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-end;
    padding:6rem 0 2.8rem;
  }
  .hero__h1{
    position:static;width:92vw;height:auto;margin:0 auto;padding:0;
    overflow:visible;clip:auto;white-space:normal;border:0;
    display:block;color:#fff;
  }
  .hero__h1-line{
    display:block;
    font-family:var(--serif);
    font-size:clamp(2.1rem,10vw,2.9rem);
    font-weight:300;
    line-height:1.08;
    letter-spacing:-.015em;
    text-shadow:0 2px 20px rgba(0,0,0,.45);
  }
  .hero__h1-sub{
    display:block;
    margin-top:.85rem;
    font-family:var(--sans);
    font-size:.95rem;
    font-weight:300;
    line-height:1.45;
    color:rgba(255,255,255,.92);
    text-shadow:0 1px 12px rgba(0,0,0,.5);
  }
  .hero__cta{
    display:inline-flex;
    width:92vw;
    margin:1.9rem auto 0;
    min-height:52px;
  }
  .hero__scroll{display:none;}   /* l'appel a l'action remplace la fleche */

  /* --- 3. Cibles tactiles confortables --- */
  .mega__col li a,
  .mega__top a,
  .mega__logo{
    min-height:44px;
    display:flex;
    align-items:center;
  }
  .fav-link,
  .menu-btn{min-height:44px;min-width:44px;}

  /* --- 4. Typographie : plus rien d'illisible --- */
  .eyebrow{font-size:.78rem;letter-spacing:.17em;}
  .search__title{font-size:.86rem;}
  .search__card label,
  .search label{font-size:.82rem;}
  .mega__foot-note{font-size:.78rem;}
}

/* --- Affinage mobile (suite) : cibles tactiles et lisibilite des cartes --- */
@media (max-width:760px){

  /* Boutons coeur / comparateur des annonces : 36px -> 44px */
  .card__tool{width:44px;height:44px;}
  .card__tool svg{width:19px;height:19px;}

  /* Icones sociales et liens de pied de page */
  .socials a{width:44px;height:44px;}
  .mega__social{gap:.6rem;}
  .mega__social a{min-width:44px;min-height:44px;display:grid;place-items:center;}
  .footer__legal{gap:0 .9rem;}
  .footer__legal a{min-height:44px;display:inline-flex;align-items:center;font-size:.86rem;}

  /* Menu deroulant de tri : hauteur confortable au doigt */
  .zone-sort select{min-height:44px;}

  /* Caracteristiques des biens : surface, pieces, type */
  .spec span{font-size:.82rem;letter-spacing:.05em;}
  .spec b{font-size:1.08rem;}
  .card__type{font-size:.8rem;letter-spacing:.14em;}

  /* Divers libelles secondaires */
  .eyebrow{font-size:.82rem;}
  .zone-sort__label{font-size:.82rem;}
  .partner small{font-size:.8rem;}
  .cookie-opt small{font-size:.8rem;}
  .chat-foot{font-size:.72rem;}
}

/* --- Affinage mobile (fin) : lisibilite du hero et confort de la carte --- */
@media (max-width:760px){

  /* Voile degrade sous le titre : garantit la lisibilite quelle que soit
     l'image de fond (pont, eau claire, ciel lumineux...) */
  .hero::before{
    content:"";
    position:absolute;left:0;right:0;bottom:0;
    height:58%;
    background:linear-gradient(to top,
      rgba(12,28,44,.78) 0%,
      rgba(12,28,44,.52) 38%,
      rgba(12,28,44,0) 100%);
    z-index:-1;
    pointer-events:none;
  }
  .hero__h1-sub{color:rgba(255,255,255,.96);}

  /* Carte : plus de hauteur = pastilles de prix moins serrees */
  .map-stage{min-height:min(72svh,620px);}
  .price-pin{padding:.38rem .58rem;}
  .price-pin.active{z-index:500;}   /* la pastille touchee passe devant */
}

/* --- Petits telephones (<=430px) : l'en-tete doit tenir sans rogner le coeur ---
   A 320px il fallait 342px pour 294px disponibles (logo fige a 180px).
   On reduit le logo et les ecarts : 280px necessaires, ca tient partout. */
@media (max-width:430px){
  .header__inner{gap:.5rem;}
  .logo img{width:140px;height:auto;}
}

/* Cartes equipe sans photo */
.team--no-photo .member{text-align:center;}
.team--no-photo .member__body{padding:1.6rem 1rem;}

/* =====================================================================
   PASSE MOBILE 2 — refonte des proportions (30/10/2026)

   Cause racine corrigee ici : presque tous les clamp() du site ont un
   PLANCHER pense pour le desktop. Sur un telephone le terme vw tombe
   toujours sous ce plancher, donc le mobile recevait systematiquement
   la valeur desktop. Exemple mesure a 375px :
     .section    padding clamp(4.5rem,9vw,8rem)   -> 9vw=34px  < 72px  => 72px
     h2          font    clamp(2.5rem,5.4vw,4rem) -> 5.4vw=20px < 40px => 40px
   D'ou l'impression de "tout est trop gros". On redescend les planchers
   pour le petit ecran uniquement ; le desktop n'est pas touche.
   ===================================================================== */
@media (max-width:760px){

  /* --- A. Rythme vertical : 12 sections x 144px de padding = 1728px de vide --- */
  .section{padding:3rem 0;}
  .section-head{margin-bottom:2rem;}
  .section-head h2{font-size:clamp(1.75rem,7.4vw,2.3rem);line-height:1.16;}
  .section-head p{font-size:1rem;margin-top:.7rem;}
  .gold-rule{margin-top:1rem;margin-bottom:0;}

  /* --- B. Footer : 22 liens empiles faisaient 1313px de haut --- */
  .footer{padding-top:3rem;}
  .footer__grid{gap:2rem;}
  .footer__links{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem;}
  .footer__links a{min-height:44px;display:flex;align-items:center;font-size:.9rem;}
  .footer__about{font-size:.95rem;line-height:1.6;}
  .footer__bottom{padding-top:1.2rem;gap:.6rem;}
  .footer__legal{gap:0 .8rem;}
  .footer__legal a{min-height:40px;font-size:.84rem;}
  .footer h5{margin-bottom:.5rem;}

  /* --- C. Recherche : 7 champs empiles = 607px. Les paires vont 2 par ligne --- */
  .search__grid{grid-template-columns:1fr 1fr;gap:.7rem .7rem;}
  .search__grid .field--wide,.search__grid .search__submit{grid-column:1/-1;}
  /* Prix et Surface contiennent deux champs : a 2 colonnes chacun ne faisait
     que 66px, insuffisant pour saisir "1 200 000". Ils prennent toute la ligne. */
  .search__grid .field:has(.field--range){grid-column:1/-1;}
  .field--range{display:flex;gap:.6rem;}
  .field--range input{flex:1;min-width:0;min-height:46px;}
  .search__submit .btn,.search__submit button{min-height:50px;}

  /* --- D. Cibles tactiles restantes (mesure : 32 sous 44px) --- */
  .map-filters__select{min-height:48px;}
  .leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important;font-size:1.25rem!important;}
  .cookie-opt input[type=checkbox]{width:20px;height:20px;}
  .cookie-opt{min-height:44px;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
  .cookie-actions .btn{min-height:46px;}
  .cmp-bar__clear{min-height:44px;padding-inline:.8rem;}
  .cmp-bar__btns .btn{min-height:44px;}
  .chat-close{width:44px;height:44px;font-size:1.5rem;}
  .chat-input button{min-width:46px;min-height:46px;}

  /* --- E. Typographie : plus rien sous 12px, et le menu redevient lisible --- */
  .menu-btn{font-size:.84rem;}
  .mega__close{font-size:.84rem;}
  .label{font-size:.75rem;}
  .teaser__go{font-size:.8rem;}
  .mega__top a{font-size:.88rem;}   /* navigation principale : etait a 11.8px */
  .footer__legal a{min-height:44px;}

  /* Appel et email = les CTA n.1 d'une agence immobiliere sur telephone.
     Ils etaient a 22-24px de haut : on les rend franchement tappables. */
  .member__phone,.member__email{min-height:44px;display:flex;align-items:center;gap:.5rem;}
  .member__phone{font-weight:600;}
  .member__contacts{gap:.2rem;}
  .fil a,.fil b{min-height:40px;display:inline-flex;align-items:center;}

  /* --- G. Fiche de bien + galerie : le composant le plus utilise sur mobile.
     Mesure avant : fleches 34x38, actions 41px, fermeture 42px. --- */
  .carousel-btn{
    width:48px;height:48px;padding:0;border-radius:50%;
    font-size:1.5rem;display:grid;place-items:center;
    background:rgba(18,42,66,.82);
  }
  .carousel-prev{left:.6rem;} .carousel-next{right:.6rem;}
  .carousel-thumbs{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding-bottom:.7rem;}
  .carousel-thumbs img{width:84px;height:60px;scroll-snap-align:start;}
  .bien-close{width:44px;height:44px;display:grid;place-items:center;}
  .bien-act{min-height:46px;}
  .bien-main .btn{min-height:50px;}

  /* --- H. Collision mesuree : la bulle de chat (282-344 x 722-784) recouvrait
     le bouton principal du hero (7-353 x 703-755). Au telephone le pouce tombe
     en bas a droite : on toucherait le chat en visant "Decouvrir nos biens".
     On remonte le bloc hero au-dessus de la zone de la bulle. --- */
  .hero{padding-bottom:6.5rem;}

  /* Cadrage : l'image est majoritairement du ciel sur un ecran etroit.
     On descend le point d'ancrage pour garder le pont et la Seine. */
  .hero__fallback,.hero__bg img{object-position:50% 75%;}

  /* --- F. Carte : 576px + 379px de panneau = 955px, soit plus d'un ecran --- */
  .map-stage{min-height:min(58svh,440px);}
  .map-filters{padding:1.2rem 1.2rem .9rem;}
  .map-filters__title{font-size:1.1rem;margin-bottom:.8rem;}
  .map-detail{padding:1.2rem;}
}

/* Le survol n'existe pas au doigt : les vignettes actives doivent se voir
   sans hover, et les outils de carte rester visibles en permanence. */
@media (hover:none){
  .carousel-btn{background:rgba(18,42,66,.82);}
  .carousel-thumbs img{opacity:.75;}
  .carousel-thumbs img.active{opacity:1;}
  .chat-status,.chat-foot{font-size:.76rem;}

}

/* Tres petits ecrans UNIQUEMENT (iPhone SE 1re gen, Galaxy Fold ferme).
   Palier a 340px et non 380px : 375px est une largeur courante
   (iPhone SE/12 mini) qui doit garder la mise en page 2 colonnes. */
@media (max-width:340px){
  .section-head h2{font-size:1.6rem;}
  .footer__links{grid-template-columns:1fr;}
}

/* ============================================================
   FICHE DE BIEN (page dediee : /acquerir/...-<id>/)
   Le header etant fixe, la galerie demarre sous sa hauteur.
   ============================================================ */

/* --- Mosaique de photos : grande image + colonne de vignettes --- */
.fiche-gallery{
  position:relative;
  display:grid;
  grid-template-columns:2fr 1fr;
  grid-auto-rows:1fr;
  gap:8px;
  height:clamp(400px,58vh,640px);
  margin:0 auto 2.6rem;
  padding:6.2rem clamp(1rem,2.6vw,2.2rem) 0;
  max-width:1680px;
  box-sizing:content-box;
}
.fiche-gallery--solo{grid-template-columns:1fr;}
.fiche-gallery .fg-main,
.fiche-gallery .fg-thumb{
  position:relative;display:block;padding:0;border:0;overflow:hidden;
  background:var(--bg-alt);cursor:zoom-in;border-radius:2px;
}
.fiche-gallery img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .7s var(--ease);
}
.fiche-gallery .fg-main:hover img,
.fiche-gallery .fg-thumb:hover img{transform:scale(1.04);}
.fg-side{display:grid;grid-template-rows:repeat(3,1fr);gap:8px;min-height:0;}
.fg-side .fg-thumb{min-height:0;}
/* Compteur sur la derniere vignette : indique qu'il y a plus a voir */
.fg-more{
  position:absolute;inset:0;display:grid;place-items:center;
  background:rgba(18,42,66,.58);color:#fff;
  font-family:var(--sans);font-size:.92rem;font-weight:500;letter-spacing:.06em;
  transition:background .3s var(--ease);
}
.fg-thumb:hover .fg-more{background:rgba(18,42,66,.7);}
.fg-count{
  position:absolute;left:clamp(1.6rem,3.2vw,2.8rem);bottom:1.1rem;
  background:rgba(18,42,66,.72);color:#fff;
  font-family:var(--sans);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.5rem .9rem;border-radius:50px;pointer-events:none;
}

/* --- Fil d'Ariane --- */
.fiche-fil{
  font-family:var(--sans);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:2.2rem;
}
.fiche-fil a{color:var(--muted);transition:color .3s var(--ease);}
.fiche-fil a:hover{color:var(--gold-deep);}
.fiche-fil i{margin:0 .5rem;font-style:normal;opacity:.5;}
.fiche-fil b{color:var(--ink);font-weight:500;}

/* --- Colonnes : contenu + encart lateral --- */
.fiche-grid{
  display:grid;grid-template-columns:minmax(0,1fr) 370px;
  gap:clamp(2.5rem,5vw,5rem);align-items:start;
}
.fiche-labels{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.1rem;}
.fiche-eyebrow{
  display:block;font-family:var(--sans);font-size:.78rem;font-weight:500;
  letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);
  margin-bottom:.9rem;
}
.fiche-titre{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(1.9rem,4.2vw,3.4rem);line-height:1.08;letter-spacing:-.01em;
  text-transform:uppercase;color:var(--ink);margin:0;
}
.fiche-titre i{font-style:normal;color:var(--gold);margin:0 .2em;}
.fiche-sous{
  font-family:var(--sans);font-size:clamp(1rem,1.5vw,1.2rem);font-weight:300;
  color:var(--muted);margin:.9rem 0 0;
}
/* Lignes de metro : la proximite transports est l'argument n.1 a Paris */
.fiche-metros{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem;}
.fiche-metro{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--sans);font-size:.84rem;color:var(--ink);
  background:var(--bg-alt);border:1px solid var(--line);
  border-radius:50px;padding:.4rem .9rem .4rem .4rem;
}
.fiche-metro b{
  display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--gold);color:#fff;font-size:.78rem;font-weight:600;flex:none;
}
.fiche-metro em{font-style:normal;color:var(--muted);font-size:.78rem;}
.fiche-desc{
  font-size:1.03rem;line-height:1.75;color:var(--ink);
  margin:0 0 2.4rem;max-width:66ch;
}
.fiche-main h4{
  font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink);margin:2.4rem 0 1rem;
}

/* --- Encart lateral : prix et actions restent sous les yeux --- */
.fiche-aside{position:sticky;top:6.5rem;}
.fiche-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1.8rem;box-shadow:var(--shadow-sm);
}
.fiche-card .btn{width:100%;margin-bottom:.6rem;}
.fiche-partage{
  display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;
  margin-top:.9rem;padding:.7rem;background:none;border:1px dashed var(--line);
  border-radius:8px;cursor:pointer;color:var(--muted);
  font-family:var(--sans);font-size:.8rem;letter-spacing:.08em;
  transition:color .3s var(--ease),border-color .3s var(--ease);
}
.fiche-partage:hover{color:var(--gold-deep);border-color:var(--gold);}
.fiche-partage svg{width:16px;height:16px;flex:none;}

.fiche-retour{margin:3.5rem 0 1rem;text-align:center;}

/* --- Bien retire du flux --- */
.fiche-vide{padding:9rem 0 5rem;text-align:center;}
.fiche-vide h1{font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,4vw,3rem);margin:.6rem 0;}
.fiche-vide .gold-rule{margin:1.4rem auto;}
.fiche-vide p{color:var(--muted);max-width:52ch;margin:0 auto 2rem;}

/* ============================================================
   FICHE — TELEPHONE
   Plancher des clamp() verifie a 375px : la mosaique a 3 colonnes
   n'a pas de sens sur un ecran etroit, on garde une photo plein
   cadre et le compteur sert de porte d'entree vers la galerie.
   ============================================================ */
@media (max-width:860px){
  .fiche-grid{grid-template-columns:1fr;gap:2.5rem;}
  .fiche-aside{position:static;}
}
@media (max-width:760px){
  .fiche-gallery{
    grid-template-columns:1fr;
    height:auto;
    padding:5.2rem .9rem 0;
    margin-bottom:1.8rem;
  }
  .fiche-gallery .fg-main{aspect-ratio:4/3;}
  .fg-side{display:none;}          /* la galerie plein ecran prend le relais */
  .fg-count{left:1.5rem;bottom:.9rem;font-size:.68rem;}
  .fiche-fil{margin-bottom:1.5rem;font-size:.7rem;}
  .fiche-fil i{margin:0 .35rem;}
  .fiche-titre{line-height:1.12;}
  .fiche-sous{margin-top:.7rem;}
  .fiche-metros{gap:.45rem;margin-top:1rem;}
  .fiche-metro{font-size:.78rem;min-height:40px;}
  .fiche-desc{font-size:1rem;line-height:1.7;margin-bottom:2rem;}
  .fiche-main h4{margin:2rem 0 .9rem;}
  .fiche-card{padding:1.3rem;}
  .fiche-card .btn{min-height:50px;}
  .fiche-partage{min-height:46px;}
  .fiche-retour{margin:2.5rem 0 .5rem;}
  .fiche-retour .btn{width:100%;}
  .fiche-vide{padding:7rem 0 3.5rem;}
}

/* Page 404 : on evite de renvoyer l'accueil sans explication. */
.erreur404{padding:9rem 0 6rem;}
.erreur404 h1{font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,4.2vw,3.1rem);margin:.6rem 0;}
.erreur404 .gold-rule{margin:1.4rem auto;}
.erreur404 p{color:var(--muted);margin:0 auto 1.6rem;max-width:52ch;}
.erreur404__actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin:2rem 0 2.4rem;}
.erreur404__aide{font-size:.92rem;}
.erreur404__aide a{color:var(--gold-deep);}
@media (max-width:760px){
  .erreur404{padding:7rem 0 4rem;}
  .erreur404__actions{flex-direction:column;}
  .erreur404__actions .btn{width:100%;min-height:50px;}
}

/* Pastille de regroupement : meme langage visuel que les pastilles de prix,
   pour que le passage groupe -> prix soit lisible au zoom. */
.price-cluster{
  position:absolute;transform:translate(-50%,-50%);
  display:grid;place-items:center;min-width:38px;height:38px;padding:0 .4rem;
  background:var(--gold);color:#fff;border-radius:50px;
  font-family:var(--sans);font-size:.82rem;font-weight:600;
  border:2px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.22);
  cursor:pointer;transition:transform .2s var(--ease);
}
.price-cluster:hover{transform:translate(-50%,-50%) scale(1.08);}
.marker-cluster{background:none!important;border:0!important;}
.marker-cluster div{background:none!important;}
