/* ==========================================================
   TOIT POUR TOI — Feuille de style principale
   Palette : bleu nuit premium + or champagne + ivoire
   ========================================================== */

:root{
  --navy: #0B2545;
  --navy-2: #13315C;
  --navy-soft: #1F4068;
  --navy-deep: #061A33;
  --gold: #C9A227;
  --gold-dark: #8A6A1D;
  --gold-light: #E3C46A;
  --gold-shadow: #7A5A17;
  --gold-highlight: #F2DB8A;
  --ivory: #F5F1E8;
  --ivory-2: #FAF7EF;
  --paper: #FBFBF8;
  --ink: #1A1A1A;
  --ink-soft: #3A4656;
  --line: #E2DDCC;
  --shadow-sm: 0 4px 14px rgba(11,37,69,.08);
  --shadow-md: 0 10px 30px rgba(11,37,69,.12);
  --shadow-lg: 0 24px 60px rgba(11,37,69,.18);
  --radius: 4px;
  --radius-lg: 10px;
  --ease: cubic-bezier(.22,.61,.36,1);
  --container: 1240px;
  --gutter: clamp(20px, 4vw, 48px);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:'Inter','Helvetica Neue',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:16px;
  line-height:1.65;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

img,svg{max-width:100%;display:block;height:auto;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;-webkit-backface-visibility:hidden;backface-visibility:hidden}
img{image-rendering:auto}
svg{image-rendering:auto;shape-rendering:geometricPrecision;text-rendering:geometricPrecision}
*{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:var(--navy);text-decoration:none;transition:color .25s var(--ease)}
a:hover{color:var(--gold-dark)}

h1,h2,h3,h4{
  font-family:'Playfair Display','Cormorant Garamond',Georgia,serif;
  font-weight:500;
  color:var(--navy);
  line-height:1.18;
  letter-spacing:.3px;
  margin:0 0 .6em;
}
h1{font-size:clamp(2.2rem, 5vw, 3.6rem);font-weight:600}
h2{font-size:clamp(1.8rem, 3.5vw, 2.6rem)}
h3{font-size:clamp(1.25rem, 2vw, 1.5rem)}
p{margin:0 0 1em}

.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.section{padding:clamp(60px, 9vw, 120px) 0}
.section--tight{padding:clamp(40px, 6vw, 80px) 0}
.section--dark{background:var(--navy);color:var(--ivory)}
.section--dark h1,.section--dark h2,.section--dark h3{color:var(--ivory)}
.section--cream{background:var(--ivory-2)}

.eyebrow{
  display:inline-block;
  font-family:'Inter',sans-serif;
  font-size:.72rem;
  letter-spacing:.35em;
  text-transform:uppercase;
  color:var(--gold-dark);
  font-weight:600;
  margin-bottom:1rem;
}
.section--dark .eyebrow{color:var(--gold-light)}

.lead{font-size:1.125rem;color:var(--ink-soft);max-width:62ch}
.section--dark .lead{color:#C9D2E0}

.divider{width:64px;height:1px;background:var(--gold);margin:1.4rem 0 1.8rem;border:0}
.divider--center{margin-left:auto;margin-right:auto}

.text-center{text-align:center}

/* ===== Boutons — famille Or métallique premium (harmonisée au logo) ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:14px 32px;
  font-family:'Inter',sans-serif;
  font-size:.8rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:600;
  color:#0A1F44;
  cursor:pointer;
  position:relative;
  isolation:isolate;
  border-radius:7px;
  border:1px solid #6B4E12;
  background:
    /* ligne-horizon polie (haut du bouton) */
    linear-gradient(180deg,
      rgba(255,243,200,.55) 0%,
      rgba(255,243,200,0) 38%,
      rgba(0,0,0,0) 100%),
    /* dégradé métallique principal */
    linear-gradient(180deg,
      #EED48A 0%,
      #DCBA50 16%,
      #C9A227 42%,
      #B58719 72%,
      #8A6A1D 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,240,190,.75),
    inset 0 -1px 0 rgba(70,48,8,.5),
    inset 0 0 0 1px rgba(255,226,150,.22),
    0 1px 0 rgba(255,255,255,.35),
    0 10px 26px -14px rgba(70,48,8,.75),
    0 2px 6px -2px rgba(70,48,8,.4);
  text-shadow:0 1px 0 rgba(255,240,190,.45);
  transition:transform .25s var(--ease), box-shadow .3s var(--ease), filter .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
  white-space:nowrap;
  -webkit-font-smoothing:antialiased;
}
/* Sur-highlight subtil en haut (effet surface polie) */
.btn::before{
  content:"";position:absolute;inset:1px 1px auto 1px;height:45%;
  border-radius:6px 6px 2px 2px;pointer-events:none;z-index:-1;
  background:linear-gradient(180deg,
    rgba(255,245,205,.42) 0%,
    rgba(255,245,205,.12) 55%,
    rgba(255,245,205,0) 100%);
  mix-blend-mode:screen;
}
.btn:hover{
  filter:brightness(1.05) saturate(1.04);
  transform:translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255,245,200,.85),
    inset 0 -1px 0 rgba(70,48,8,.55),
    inset 0 0 0 1px rgba(255,226,150,.3),
    0 1px 0 rgba(255,255,255,.4),
    0 16px 34px -14px rgba(70,48,8,.85),
    0 3px 8px -3px rgba(70,48,8,.5);
}
.btn:active{transform:translateY(0);filter:brightness(.97)}
.btn:focus-visible{outline:2px solid #F2DB8A;outline-offset:3px}

.btn--gold{} /* alias — même style que .btn */

/* Outlined — même famille, version contour */
.btn--ghost,
.btn--ghost-light{
  background:linear-gradient(180deg, rgba(217,179,71,.04) 0%, rgba(122,90,23,.03) 100%);
  color:#8A6A1D;
  border:1px solid #B58719;
  box-shadow:
    inset 0 1px 0 rgba(255,240,190,.35),
    inset 0 -1px 0 rgba(70,48,8,.08),
    0 6px 16px -10px rgba(70,48,8,.35);
  text-shadow:none;
}
.btn--ghost::before,
.btn--ghost-light::before{display:none}
.btn--ghost:hover,
.btn--ghost-light:hover{
  color:#0A1F44;
  background:
    linear-gradient(180deg,
      rgba(255,243,200,.55) 0%,
      rgba(255,243,200,0) 38%,
      rgba(0,0,0,0) 100%),
    linear-gradient(180deg,
      #EED48A 0%,
      #DCBA50 16%,
      #C9A227 42%,
      #B58719 72%,
      #8A6A1D 100%);
  border-color:#6B4E12;
  text-shadow:0 1px 0 rgba(255,240,190,.45);
  box-shadow:
    inset 0 1px 0 rgba(255,245,200,.75),
    inset 0 -1px 0 rgba(70,48,8,.5),
    0 14px 30px -14px rgba(70,48,8,.8),
    0 2px 6px -2px rgba(70,48,8,.45);
}

/* Version claire (sur fond marine) : or légèrement plus lumineux et chaud */
.btn--ghost-light{
  color:#E3C46A;
  border-color:#D9B347;
  background:linear-gradient(180deg, rgba(242,219,138,.05) 0%, rgba(242,219,138,.02) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,240,190,.18),
    inset 0 0 0 1px rgba(242,219,138,.1),
    0 6px 18px -10px rgba(0,0,0,.55);
}
.btn--ghost-light:hover{color:#0A1F44}

/* ===== Header / Nav ===== */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(251,251,248,.92);
  backdrop-filter:saturate(140%) blur(12px);
  -webkit-backdrop-filter:saturate(140%) blur(12px);
  border-bottom:1px solid rgba(11,37,69,.08);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px var(--gutter);
  max-width:var(--container);margin:0 auto;
  gap:24px;
  flex-wrap:nowrap;
}
.nav__logo{flex:0 0 auto}
.nav__logo img{height:78px;width:auto;image-rendering:auto;background:transparent;box-shadow:none;border-radius:0;display:block;object-fit:contain}
@media(max-width:900px){.nav__logo img{height:64px}}
@media(max-width:640px){.nav__logo img{height:54px}}
.nav__menu{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0}
.nav__menu a{
  font-size:.82rem;font-weight:500;letter-spacing:.05em;
  color:var(--navy);padding:8px 0;position:relative;
}
.nav__menu a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
  background:var(--gold);transition:width .3s var(--ease);
}
.nav__menu a:hover::after,.nav__menu a.active::after{width:100%}
.nav__menu a.active{color:var(--gold-dark)}

/* Gold accent pill for "Nos biens" — visual highlight */
.nav__menu a.nav__accent{
  color:#0A1F44;
  background:
    linear-gradient(180deg, rgba(255,243,200,.55) 0%, rgba(255,243,200,0) 38%, rgba(0,0,0,0) 100%),
    linear-gradient(180deg, #EED48A 0%, #DCBA50 16%, #C9A227 42%, #B58719 72%, #8A6A1D 100%);
  border:1px solid #6B4E12;
  padding:8px 18px;border-radius:7px;font-weight:600;letter-spacing:.1em;
  box-shadow:
    inset 0 1px 0 rgba(255,240,190,.75),
    inset 0 -1px 0 rgba(70,48,8,.4),
    0 6px 16px -10px rgba(70,48,8,.55);
  text-shadow:0 1px 0 rgba(255,240,190,.45);
  transition:transform .25s var(--ease), filter .3s var(--ease), box-shadow .3s var(--ease);
}
.nav__menu a.nav__accent:hover{
  filter:brightness(1.05) saturate(1.04);
  transform:translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255,245,200,.85),
    inset 0 -1px 0 rgba(70,48,8,.45),
    0 10px 22px -10px rgba(70,48,8,.7);
  color:#0A1F44;
}
.nav__menu a.nav__accent::after{display:none}
@media (max-width:980px){
  .nav__menu a.nav__accent{
    display:inline-block;margin:10px 0;padding:10px 20px;
  }
}
.nav__cta{display:flex;gap:10px;align-items:center}
.nav__phone{font-size:.82rem;color:var(--ink-soft);letter-spacing:.05em}
.nav__phone strong{color:var(--navy)}

.nav__toggle{display:none;background:none;border:0;cursor:pointer;padding:8px}
.nav__toggle span{display:block;width:26px;height:1.8px;background:var(--navy);margin:5px 0;transition:.3s var(--ease)}
.nav__toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__toggle.open span:nth-child(2){opacity:0}
.nav__toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media (max-width: 980px){
  .nav__menu{
    position:fixed;inset:84px 0 auto 0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--paper);padding:20px var(--gutter) 32px;
    border-bottom:1px solid var(--line);
    transform:translateY(-110%);opacity:0;pointer-events:none;
    transition:transform .4s var(--ease), opacity .3s var(--ease);
    max-height:calc(100vh - 84px);overflow-y:auto;
  }
  .nav__menu.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav__menu li{border-bottom:1px solid var(--line)}
  .nav__menu a{display:block;padding:16px 0;font-size:.95rem}
  .nav__toggle{display:block}
  .nav__cta .nav__phone{display:none}
}

/* ===== HERO ===== */
.hero{
  position:relative;min-height:clamp(560px, 88vh, 860px);
  display:flex;align-items:center;
  background:
    radial-gradient(ellipse at 50% 40%, rgba(201,162,39,.07), transparent 60%),
    linear-gradient(180deg, #0A1F44 0%, #0D2A5E 55%, #12346F 100%);
  color:var(--ivory);overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 80% 20%, rgba(241,217,138,.04), transparent 45%),
    repeating-linear-gradient(45deg, rgba(255,255,255,.02) 0 1px, transparent 1px 80px);
  pointer-events:none;
}
.hero__inner{position:relative;z-index:2;max-width:var(--container);margin:0 auto;padding:80px var(--gutter);width:100%}
.hero__brand{width:clamp(640px, 82vw, 1200px);height:auto;aspect-ratio:auto;object-fit:contain;margin:0 0 32px;display:block;filter:none;background:transparent}
@media(max-width:640px){.hero__brand{width:96vw;margin:0 auto 24px}}

/* Hero homepage: clean centered layout. Logo and text both centered; logo inline with text width so everything is balanced. */
.hero--centered{min-height:clamp(680px, 94vh, 1000px);text-align:center}
.hero--centered .hero__inner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(60px,8vw,110px) clamp(24px,4vw,72px);max-width:1180px;margin:0 auto;width:100%}
.hero--centered .hero__brand{width:min(960px, 94vw);max-width:100%;height:auto;margin:0 auto 40px;display:block;image-rendering:-webkit-optimize-contrast}
.hero--centered .hero__tagline{margin:0 0 14px;text-align:center}
.hero--centered .hero__eyebrow{margin:0 0 1.4rem}
.hero--centered .hero__text{max-width:62ch;margin:0 auto 2.2rem;text-align:center}
.hero--centered .hero__ctas{justify-content:center}
@media (max-width:900px){
  .hero--centered .hero__brand{width:min(720px, 95vw);margin:0 auto 28px}
}
@media (max-width:640px){
  .hero--centered .hero__brand{width:min(500px, 96vw);margin:0 auto 22px}
}
.hero__tagline{
  font-family:'Playfair Display',Georgia,serif;font-style:italic;
  font-size:clamp(1.15rem, 2.2vw, 1.7rem);
  color:var(--gold-light);letter-spacing:.04em;font-weight:400;
  margin:0 0 14px;
}
.hero__eyebrow{
  font-family:'Inter',sans-serif;font-size:.78rem;
  letter-spacing:.4em;text-transform:uppercase;color:var(--gold-light);
  margin-bottom:1.2rem;display:inline-block;
}
.hero h1{color:var(--ivory);max-width:16ch;font-size:clamp(2.6rem, 6vw, 4.8rem);font-weight:500}
.hero h1 em{font-style:italic;color:var(--gold-light);font-weight:400}
.hero__services{
  display:flex;flex-wrap:wrap;gap:18px 42px;
  margin:2rem 0;font-family:'Playfair Display',serif;
  font-size:clamp(1.1rem, 2vw, 1.55rem);letter-spacing:.25em;
  text-transform:uppercase;color:var(--ivory);font-weight:400;
}
.hero__services span{position:relative}
.hero__services span::after{
  content:"•";color:var(--gold);margin-left:42px;opacity:.8;
}
.hero__services span:last-child::after{display:none}
.hero__text{font-size:1.08rem;color:#D4DBE8;max-width:58ch;margin:1.2rem 0 2.2rem}
.hero__ctas{display:flex;gap:14px;flex-wrap:wrap}

@media (max-width:640px){
  .hero__services{gap:8px 20px;font-size:1rem}
  .hero__services span::after{margin-left:20px}
}

/* ===== Grid cards (services, agences, avantages) ===== */
.grid{display:grid;gap:28px}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){
  .grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .grid--2,.grid--3,.grid--4{grid-template-columns:1fr}
}

.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:36px 30px;transition:all .4s var(--ease);
  position:relative;overflow:hidden;
}
.card::before{
  content:"";position:absolute;top:0;left:0;width:0;height:3px;
  background:var(--gold);transition:width .5s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:transparent}
.card:hover::before{width:100%}
.card__icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:50%;background:var(--ivory);
  margin-bottom:18px;color:var(--navy);
}
.card h3{margin:0 0 .5em;font-size:1.35rem}
.card p{color:var(--ink-soft);font-size:.95rem;margin:0}
.card--dark{background:var(--navy-2);border-color:var(--navy-soft);color:var(--ivory)}
.card--dark h3{color:var(--ivory)}
.card--dark p{color:#B8C4D6}
.card--dark .card__icon{background:var(--navy-deep);color:var(--gold)}

/* ===== Equipe portraits ===== */
.team-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:36px;
}
@media (max-width:900px){.team-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}}

.member{
  text-align:center;position:relative;
}
.member__photo{
  position:relative;width:100%;aspect-ratio:4/5;overflow:hidden;
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg, #F5EBD2 0%, #EFE0BC 55%, #E8DAB8 100%);
  box-shadow:0 20px 40px -18px rgba(0,0,0,.35), 0 2px 6px rgba(0,0,0,.15);
  display:flex;align-items:flex-end;justify-content:center;
  border:1px solid rgba(201,169,97,.55);
}
.member__photo::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 90% 60% at 50% 100%, rgba(181,148,82,.12), transparent 70%);
  pointer-events:none;z-index:2;
}
.member__photo::after{
  content:"";position:absolute;left:10px;right:10px;bottom:10px;top:10px;
  border:1px solid rgba(201,169,97,.35);border-radius:calc(var(--radius-lg) - 6px);
  pointer-events:none;z-index:3;
}
.member__photo img{
  position:relative;z-index:1;
  height:100%;width:100%;
  object-fit:cover;object-position:center 20%;
}
.member__badge{
  position:absolute;top:18px;left:18px;z-index:2;
  background:var(--gold);color:var(--navy);
  font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  font-weight:600;padding:6px 12px;border-radius:2px;
}
.member__name{
  margin-top:24px;font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(1.5rem, 2.1vw, 1.75rem);color:var(--navy);
  text-transform:uppercase;letter-spacing:.06em;font-weight:700;
  line-height:1.15;
}
.member__role{
  font-size:clamp(.95rem, 1.25vw, 1.05rem);letter-spacing:.04em;
  color:var(--gold-dark);font-weight:500;margin:.55rem 0 .45rem;
  font-family:'Playfair Display',Georgia,serif;font-style:italic;
}
.member__agence{
  font-family:'Playfair Display',Georgia,serif;font-weight:700;
  font-size:clamp(1rem, 1.35vw, 1.15rem);letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-dark);margin:.25rem 0 0;line-height:1.2;
}

/* Team card visibility on dark sections — white on navy */
.section--dark .member__name{color:#ffffff}
.section--dark .member__role{color:#F2D89A}
.section--dark .member__agence{color:#F2D89A}

/* ===== Agences ===== */
.agence{
  display:grid;grid-template-columns:1.1fr 1fr;gap:72px;align-items:center;
}
.agence--reverse{direction:rtl}
.agence--reverse > *{direction:ltr}
@media (max-width:900px){.agence{grid-template-columns:1fr;gap:36px}}

/* Image encadrée comme une gravure — double cadre or */
.agence__image{
  position:relative;aspect-ratio:5/4;padding:14px;
  background:linear-gradient(145deg,#F5F1E8 0%,#EAE2D0 100%);
  box-shadow:
    0 28px 60px -32px rgba(11,37,69,.45),
    0 4px 12px -6px rgba(11,37,69,.12),
    inset 0 0 0 1px rgba(201,169,97,.35);
  border-radius:3px;
}
.agence__image::before{
  content:"";position:absolute;left:6px;right:6px;top:6px;bottom:6px;
  border:1px solid rgba(201,169,97,.55);border-radius:2px;pointer-events:none;
  z-index:2;
}
.agence__image img{
  width:100%;height:100%;object-fit:cover;
  display:block;border-radius:1px;
  filter:contrast(1.04) saturate(1.05);
}
.agence__tag{
  position:absolute;top:-18px;left:28px;z-index:3;
  background:var(--navy);color:#F2D89A;
  padding:12px 26px;font-size:.82rem;letter-spacing:.28em;
  text-transform:uppercase;font-weight:700;border-radius:2px;
  box-shadow:0 8px 18px -4px rgba(11,37,69,.45);
  border:1px solid rgba(201,169,97,.65);
}
.agence__tag::before, .agence__tag::after{
  content:"";position:absolute;top:50%;width:14px;height:1px;
  background:#C9A961;opacity:.6;
}
.agence__tag::before{left:-18px}
.agence__tag::after{right:-18px}

.agence__body h2{font-size:2.15rem;margin:.2em 0 .3em;letter-spacing:-.005em}

/* Adresse façon plaque gravée */
.agence__body .agence__address{
  font-style:normal;font-size:1.02rem;color:var(--ink);
  margin:22px 0 30px;padding:22px 26px;
  background:linear-gradient(180deg,rgba(245,241,232,.6),rgba(245,241,232,.25));
  border-left:3px solid var(--gold);
  border-radius:1px;line-height:1.85;
  position:relative;
}
.agence__body .agence__address::before{
  content:"";position:absolute;left:12px;top:12px;right:12px;bottom:12px;
  border:1px solid rgba(201,169,97,.18);pointer-events:none;border-radius:1px;
}
.agence__body .agence__address strong{
  color:var(--navy);font-weight:500;font-family:'Playfair Display',serif;
  font-size:1.12rem;letter-spacing:.01em;
}

.agence__contacts{margin-top:26px;border-top:1px solid rgba(201,169,97,.3)}
.agence__contact{
  display:flex;align-items:center;gap:18px;padding:18px 0;
  border-bottom:1px solid rgba(201,169,97,.18);
}
.agence__contact:last-child{border-bottom:1px solid rgba(201,169,97,.3)}
.agence__contact > div:first-child{flex:1}
.agence__contact-name{
  font-weight:500;color:var(--navy);font-family:'Playfair Display',serif;
  font-size:1.15rem;letter-spacing:.01em;display:block;margin-top:3px;
}
.agence__contact-role{
  font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-dark);display:block;font-weight:600;
}
.agence__contact a{font-size:.92rem;color:var(--ink-soft)}
.agence__contact .btn{white-space:nowrap;font-size:.78rem;letter-spacing:.14em}

/* ===== Feature blocks / alternating ===== */
.feature{
  display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;
  padding:clamp(40px,6vw,80px) 0;
}
.feature--reverse .feature__body{order:-1}
@media (max-width:900px){
  .feature{grid-template-columns:1fr;gap:30px}
  .feature--reverse .feature__body{order:0}
}
.feature__media{position:relative}
.feature__media img{
  width:100%;aspect-ratio:5/4;object-fit:cover;
  border-radius:var(--radius-lg);box-shadow:var(--shadow-md);
  display:block;
}
.feature__media::before{
  content:"";position:absolute;inset:-18px -18px auto auto;
  width:55%;height:55%;border:2px solid var(--gold);
  border-radius:var(--radius-lg);z-index:-1;opacity:.5;
}
.feature__media::after{
  content:"";position:absolute;inset:auto auto -18px -18px;
  width:40%;height:40%;background:linear-gradient(135deg,rgba(201,169,97,.12),transparent 70%);
  border-radius:var(--radius-lg);z-index:-1;
}

/* ===== Value list ===== */
.values{list-style:none;padding:0;margin:0}
.values li{
  padding:16px 0 16px 42px;position:relative;
  border-bottom:1px solid var(--line);
  font-size:1rem;color:var(--ink-soft);
}
.values li::before{
  content:"";position:absolute;left:0;top:22px;
  width:22px;height:1px;background:var(--gold);
}
.values li strong{color:var(--navy);font-weight:600}

/* ===== Stats ===== */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;text-align:center}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat__num{
  font-family:'Playfair Display',serif;font-size:clamp(2.4rem,5vw,3.6rem);
  color:var(--gold);display:block;line-height:1;
}
.stat__label{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ivory);margin-top:.8rem;opacity:.9}

/* ===== Off-market highlight ===== */
.offmarket{
  position:relative;background:
    linear-gradient(135deg, rgba(6,26,51,.95), rgba(11,37,69,.92)),
    radial-gradient(circle at 70% 40%, rgba(201,169,97,.22), transparent 60%);
  color:var(--ivory);padding:clamp(70px, 10vw, 130px) 0;overflow:hidden;
}
.offmarket::before{
  content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(45deg, rgba(255,255,255,.02) 0 1px, transparent 1px 80px);
  pointer-events:none;
}
.offmarket__big{font-family:'Playfair Display',serif;font-size:clamp(4rem,12vw,8rem);color:var(--gold);font-weight:500;line-height:1;margin:0}
.offmarket h2{color:var(--ivory);font-size:clamp(1.8rem,3vw,2.4rem);margin-top:1rem}
.offmarket p{color:#C9D2E0;max-width:60ch}

/* ===== CTA band ===== */
.cta-band{
  background:var(--navy);color:var(--ivory);
  padding:clamp(50px,7vw,80px) 0;text-align:center;
}
.cta-band h2{color:var(--ivory)}
.cta-band p{color:#C9D2E0;max-width:52ch;margin:1rem auto 2rem}

/* ===== Biens cards ===== */
.biens-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:40px}
@media (max-width:1000px){.biens-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.biens-grid{grid-template-columns:1fr}}

.bien{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  overflow:hidden;transition:all .35s var(--ease);
  display:flex;flex-direction:column;
}
.bien:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.bien__image{aspect-ratio:4/3;background:var(--ivory);position:relative;overflow:hidden}
.bien__image img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.bien:hover .bien__image img{transform:scale(1.05)}
/* ===== Illustrations "placeholder" premium ===== */
.premium-illus{
  aspect-ratio:4/3;border-radius:var(--radius-lg);
  position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse 80% 60% at 50% 30%, rgba(201,169,97,.10), transparent 70%),
    linear-gradient(135deg,#0E2A4F 0%,#0B2545 55%,#071834 100%);
  box-shadow:0 24px 48px -24px rgba(11,37,69,.45), 0 2px 6px rgba(11,37,69,.1);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;padding:28px;color:#E4C680;
}
.premium-illus::before{
  content:"";position:absolute;left:18px;right:18px;top:18px;bottom:18px;
  border:1px solid rgba(201,169,97,.30);border-radius:4px;pointer-events:none;
}
.premium-illus::after{
  content:"";position:absolute;left:26px;right:26px;top:26px;bottom:26px;
  border:1px solid rgba(201,169,97,.12);border-radius:2px;pointer-events:none;
}
.premium-illus > *{position:relative;z-index:1}
.premium-illus svg{width:64px;height:64px;opacity:.95}
/* Rich "photo-like" scene */
.premium-illus--scene{
  aspect-ratio:5/4;padding:20px 28px 22px;
  background:
    radial-gradient(ellipse 90% 70% at 50% 30%, rgba(201,169,97,.12), transparent 70%),
    linear-gradient(160deg,#11315B 0%,#0B2545 50%,#061933 100%);
  justify-content:space-between;
}
.premium-illus--scene svg{width:100%;height:auto;max-width:460px;opacity:1;filter:drop-shadow(0 2px 10px rgba(0,0,0,.25))}
.premium-illus--scene .illus-sub{margin-top:6px}
.premium-illus .illus-title{
  font-family:'Playfair Display',serif;font-style:italic;font-weight:400;
  font-size:1.05rem;color:#D4B978;letter-spacing:.02em;text-align:center;max-width:22ch;line-height:1.3;
}
.premium-illus .illus-sub{
  font-family:'Inter',sans-serif;font-size:.62rem;letter-spacing:.35em;
  text-transform:uppercase;color:rgba(228,198,128,.55);text-align:center;
}
.premium-illus .illus-mono{
  font-family:'Playfair Display',serif;font-size:2.2rem;font-weight:500;
  color:#D4B978;letter-spacing:.08em;
}

.bien__placeholder{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:100%;height:100%;padding:24px;gap:14px;
  background:
    radial-gradient(ellipse 80% 60% at 50% 30%, rgba(201,169,97,.08), transparent 70%),
    linear-gradient(135deg,#0E2A4F 0%,#0B2545 50%,#071834 100%);
  color:#E4C680;position:relative;
}
.bien__placeholder::before{
  content:"";position:absolute;left:16px;right:16px;top:16px;bottom:16px;
  border:1px solid rgba(201,169,97,.22);border-radius:4px;pointer-events:none;
}
.bien__placeholder::after{
  content:"";position:absolute;left:22px;right:22px;top:22px;bottom:22px;
  border:1px solid rgba(201,169,97,.10);border-radius:2px;pointer-events:none;
}
.bien__placeholder svg{width:52px;height:52px;opacity:.9;position:relative;z-index:1}
.bien__placeholder-label{
  font-family:'Playfair Display',serif;font-style:italic;font-size:.95rem;
  color:#D4B978;letter-spacing:.04em;position:relative;z-index:1;
  text-align:center;line-height:1.35;max-width:14ch;
}
.bien__placeholder-sub{
  font-family:'Inter',sans-serif;font-size:.62rem;letter-spacing:.3em;
  text-transform:uppercase;color:rgba(228,198,128,.55);position:relative;z-index:1;
}
.bien__status{
  position:absolute;top:14px;left:14px;
  background:var(--gold);color:var(--navy);font-size:.68rem;letter-spacing:.2em;
  text-transform:uppercase;font-weight:600;padding:6px 12px;border-radius:2px;
}
.bien__status--sold{background:var(--navy);color:var(--gold-light)}
.bien__status--compromis{background:#8B6F28;color:var(--ivory)}
.bien__body{padding:22px 24px;display:flex;flex-direction:column;flex:1}
.bien__type{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-dark);font-weight:600}
.bien__title{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--navy);margin:.4rem 0 .6rem}
.bien__meta{display:flex;gap:16px;color:var(--ink-soft);font-size:.88rem;margin-bottom:14px}
.bien__meta span{display:inline-flex;gap:5px;align-items:center}
.bien__price{font-family:'Playfair Display',serif;font-size:1.45rem;color:var(--navy);margin-top:auto;font-weight:500}
.bien__dpe{display:inline-block;padding:2px 8px;border-radius:2px;font-size:.72rem;font-weight:700;color:#fff;margin-left:8px}
.dpe-A{background:#319c47}.dpe-B{background:#4eb03a}.dpe-C{background:#c7d500}
.dpe-D{background:#f8ea00;color:var(--ink)}.dpe-E{background:#f7b500;color:var(--ink)}
.dpe-F{background:#f07d00}.dpe-G{background:#e2231a}

/* Ribbon overlay (compromis / vendu) — diagonal banner */
.bien__image{position:relative;overflow:hidden}
.bien__ribbon{
  position:absolute;top:22px;right:-52px;
  width:200px;text-align:center;
  padding:8px 0;
  font-family:'Inter',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.22em;
  color:#fff;
  transform:rotate(35deg);
  z-index:3;
  box-shadow:0 3px 12px rgba(0,0,0,.3);
  pointer-events:none;
}
.bien__ribbon--sold{background:linear-gradient(135deg,#7a1010 0%,#a82424 100%)}
.bien__ribbon--compromis{background:linear-gradient(135deg,#8B6F28 0%,#b18a35 100%)}
.bien__ribbon--gold{background:linear-gradient(135deg,#9E7F2C 0%,#D4AF47 45%,#C7A956 100%);color:#1e1a12;text-shadow:0 1px 0 rgba(255,255,255,.18)}
.bien__ribbon--baisse{background:linear-gradient(135deg,#5A2A6B 0%,#8e44ad 100%)}
.bien__ribbon + .bien__status{opacity:.85}

/* Ancien prix barré (baisse de prix) */
.bien__old-price{
  margin-left:10px;
  font-size:.86em;
  color:var(--ink-soft);
  text-decoration:line-through;
  font-weight:500;
}

/* Signature agent (pied de fiche) */
.bien__signature{
  margin-top:18px;padding-top:14px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:2px;
  font-size:.76rem;line-height:1.45;color:var(--ink-soft);
}
.bien__signature strong{
  color:var(--navy);font-weight:600;font-size:.85rem;
  font-family:'Playfair Display',serif;letter-spacing:.01em;
}
.bien__signature .bien__rsac,
.bien__signature .bien__mentions{
  font-size:.7rem;color:var(--ink-soft);opacity:.85;font-style:italic;
}
.bien__signature .bien__mentions{margin-top:3px}

.biens-filters{
  display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 10px;justify-content:center;
}
.biens-filters button{
  background:linear-gradient(180deg, rgba(217,179,71,.04) 0%, rgba(122,90,23,.03) 100%);
  border:1px solid #B58719;color:#8A6A1D;
  padding:10px 22px;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
  cursor:pointer;transition:all .28s var(--ease);border-radius:7px;font-weight:600;
  box-shadow:inset 0 1px 0 rgba(255,240,190,.35);
}
.biens-filters button:hover,.biens-filters button.active{
  color:#0A1F44;border-color:#6B4E12;
  background:
    linear-gradient(180deg, rgba(255,243,200,.55) 0%, rgba(255,243,200,0) 38%, rgba(0,0,0,0) 100%),
    linear-gradient(180deg, #EED48A 0%, #DCBA50 16%, #C9A227 42%, #B58719 72%, #8A6A1D 100%);
  text-shadow:0 1px 0 rgba(255,240,190,.45);
  box-shadow:
    inset 0 1px 0 rgba(255,245,200,.75),
    inset 0 -1px 0 rgba(70,48,8,.4),
    0 8px 20px -10px rgba(70,48,8,.55);
}

/* ===== Agence tabs (contact) ===== */
.agence-tabs{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 28px;
}
@media (max-width:640px){.agence-tabs{grid-template-columns:1fr}}
.agence-tab{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:16px 18px;text-align:left;cursor:pointer;transition:all .28s var(--ease);
  display:flex;flex-direction:column;gap:3px;font-family:inherit;
  position:relative;overflow:hidden;
}
.agence-tab::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;
  transition:all .28s var(--ease);
}
.agence-tab:hover{border-color:var(--gold);transform:translateY(-1px)}
.agence-tab.is-active{
  background:linear-gradient(180deg,#FBF5E7 0%, #F5ECD3 100%);
  border-color:var(--gold);box-shadow:0 6px 18px -8px rgba(201,169,97,.45);
}
.agence-tab.is-active::before{background:var(--gold)}
.agence-tab__eyebrow{
  font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--gold-dark);font-weight:600;
}
.agence-tab__label{
  font-family:'Playfair Display',Georgia,serif;font-size:1.15rem;color:var(--navy);margin-top:2px;
}
.agence-tab__sub{font-size:.82rem;color:var(--ink-soft)}

/* ===== Formulaire contact ===== */
.form{display:grid;gap:18px;max-width:720px;margin:0 auto}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.form-row{grid-template-columns:1fr}}
.form label{display:block;font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;font-weight:600}
.form input,.form select,.form textarea{
  width:100%;padding:14px 16px;font-family:inherit;font-size:1rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  color:var(--ink);transition:all .25s var(--ease);
}
.form input:focus,.form select:focus,.form textarea:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,169,97,.15);
}
.form textarea{resize:vertical;min-height:160px}
.form__actions{text-align:center;margin-top:10px}
.form__consent{font-size:.82rem;color:var(--ink-soft)}
.form__consent label{display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:normal;font-size:.85rem;font-weight:400;color:var(--ink-soft)}
.form__consent input{width:auto;margin-top:4px}

/* ===== Footer ===== */
.site-footer{
  background:var(--navy-deep);color:#C9D2E0;padding:70px 0 30px;margin-top:0;
}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;gap:30px}}
@media (max-width:540px){.footer-grid{grid-template-columns:1fr}}
.footer__logo{height:60px;margin-bottom:18px}
.footer__brand p{color:#9CA9BD;font-size:.92rem;max-width:36ch}
.site-footer h4{
  color:var(--ivory);font-family:'Inter',sans-serif;font-size:.78rem;
  letter-spacing:.25em;text-transform:uppercase;font-weight:600;margin-bottom:16px;
}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:8px;font-size:.92rem}
.site-footer a{color:#9CA9BD}
.site-footer a:hover{color:var(--gold-light)}
.site-footer address{font-style:normal;font-size:.92rem;line-height:1.8;color:#9CA9BD}
.site-footer address strong{color:var(--ivory);font-weight:600}
.footer-bottom{
  padding-top:24px;border-top:1px solid rgba(255,255,255,.08);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;
  font-size:.82rem;color:#6E7B91;
}

/* ===== Breadcrumb / page header ===== */
.page-header{
  position:relative;padding:clamp(100px,12vw,160px) 0 clamp(50px,6vw,80px);
  background:
    linear-gradient(135deg, rgba(6,26,51,.9), rgba(11,37,69,.82)),
    radial-gradient(circle at 70% 30%, rgba(201,169,97,.2), transparent 60%),
    #0B2545;
  color:var(--ivory);text-align:center;overflow:hidden;
}
.page-header::before{
  content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(45deg, rgba(255,255,255,.02) 0 1px, transparent 1px 60px);
  pointer-events:none;
}
.page-header h1{color:var(--ivory);margin:0}
.page-header .lead{color:#C9D2E0;margin:1rem auto 0;text-align:center}
.breadcrumb{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-light);margin-bottom:1.5rem;position:relative;z-index:2}
.breadcrumb a{color:var(--gold-light)}

/* ===== Contact page specific ===== */
.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:start}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-info{background:var(--ivory-2);padding:40px;border-radius:var(--radius-lg);border-left:3px solid var(--gold)}
.contact-info h3{margin-top:0}

/* ===== Icon svg spacing ===== */
.svg-ico{width:22px;height:22px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.svg-ico--lg{width:28px;height:28px}

/* ===== Animations au scroll ===== */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease), transform .8s var(--ease)}
.reveal.in-view{opacity:1;transform:none}

/* ===== Accessibilité ===== */
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto}
}

/* ==========================================================
   MOBILE POLISH — smartphones only (≤640px)
   N'altère PAS la mise en page desktop/tablette : tout est
   scopé sous max-width:640px puis max-width:480px.
   ========================================================== */
@media (max-width: 640px){
  /* ---------- Base ---------- */
  html{font-size:15px}
  body{font-size:15px;line-height:1.6}
  .container{padding:0 20px}
  .section{padding:48px 0}
  .section--tight{padding:36px 0}

  /* ---------- Header / Nav ---------- */
  .site-header{background:rgba(251,251,248,.97)}
  .nav{padding:10px 20px;gap:12px}
  .nav__logo img{height:46px}
  .nav__toggle{display:block;padding:10px;min-width:44px;min-height:44px}
  .nav__toggle span{width:24px;height:2px;margin:5px auto;background:var(--navy);display:block}
  .nav__menu{
    position:fixed;inset:72px 0 auto 0;
    background:#FBFBF8;padding:14px 20px 22px;gap:0;
    flex-direction:column;align-items:stretch;
    border-bottom:1px solid var(--line);
    box-shadow:0 14px 30px -14px rgba(11,37,69,.2);
    max-height:calc(100vh - 72px);overflow-y:auto;
    transform:translateY(-110%);opacity:0;pointer-events:none;
    transition:transform .35s var(--ease), opacity .25s var(--ease);
  }
  .nav__menu.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav__menu li{border-bottom:1px solid rgba(226,221,204,.7)}
  .nav__menu li:last-child{border-bottom:0}
  .nav__menu a{display:block;padding:14px 4px;font-size:.98rem;letter-spacing:.04em}
  .nav__menu a.nav__accent{
    margin:10px 2px 6px;padding:12px 18px;text-align:center;
    display:block;font-size:.85rem;border-radius:8px;
  }
  .nav__cta .nav__phone{display:none}

  /* ---------- Hero ---------- */
  .hero{min-height:auto}
  .hero--centered{min-height:auto;text-align:center}
  .hero--centered .hero__inner{padding:48px 22px 56px;max-width:100%}
  .hero--centered .hero__brand{width:min(440px, 94vw);margin:0 auto 22px}
  .hero__tagline{font-size:1.15rem;margin:0 0 10px}
  .hero__eyebrow{
    font-size:.66rem;letter-spacing:.25em;
    margin-bottom:1rem;max-width:32ch;line-height:1.6;
  }
  .hero h1{font-size:clamp(2rem, 8vw, 2.6rem);max-width:18ch;margin-left:auto;margin-right:auto}
  .hero__text{font-size:1rem;line-height:1.6;margin:1rem auto 1.6rem;max-width:40ch}
  .hero__ctas{gap:10px;flex-direction:column;align-items:stretch;width:100%;max-width:320px;margin:0 auto}
  .hero__ctas .btn{width:100%;padding:15px 20px;font-size:.78rem;letter-spacing:.18em}

  /* ---------- Headings fluid mobile ---------- */
  h1{font-size:clamp(1.9rem, 7vw, 2.4rem)}
  h2{font-size:clamp(1.55rem, 6vw, 2rem);line-height:1.2}
  h3{font-size:1.15rem}
  .eyebrow{font-size:.66rem;letter-spacing:.28em}
  .divider{margin:1.1rem 0 1.4rem}
  .lead{font-size:1rem;line-height:1.65}

  /* ---------- Buttons ---------- */
  .btn{padding:13px 24px;font-size:.76rem;letter-spacing:.18em;min-height:46px}

  /* ---------- Cards grid (services/values) ---------- */
  .grid{gap:18px}
  .card{padding:26px 22px;border-radius:10px}
  .card h3{font-size:1.2rem}
  .card p{font-size:.94rem}
  .card__icon{width:48px;height:48px;margin-bottom:14px}

  /* ---------- Values list ---------- */
  .values li{padding:14px 0 14px 36px;font-size:.96rem}

  /* ---------- Team (équipe) ---------- */
  .team-grid{grid-template-columns:1fr;max-width:360px;margin:0 auto;gap:28px}
  .member__photo{border-radius:10px}
  .member__name{margin-top:18px;font-size:1.3rem;letter-spacing:.05em}
  .member__role{font-size:.98rem}
  .member__agence{font-size:.92rem;letter-spacing:.16em}
  .member__badge{top:12px;left:12px;font-size:.6rem;padding:5px 10px;letter-spacing:.18em}

  /* ---------- Agences ---------- */
  .agence{gap:28px}
  .agence__image{aspect-ratio:5/4;padding:10px}
  .agence__tag{
    top:-14px;left:14px;padding:10px 18px;
    font-size:.72rem;letter-spacing:.22em;
  }
  .agence__tag::before,.agence__tag::after{display:none}
  .agence__body h2{font-size:1.55rem;margin-top:.4em}
  .agence__body .agence__address{
    padding:18px 20px;font-size:.95rem;line-height:1.75;margin:18px 0 22px;
  }
  .agence__body .agence__address strong{font-size:1.02rem}
  .agence__contact{flex-wrap:wrap;gap:10px;padding:14px 0}
  .agence__contact > div:first-child{flex:1 1 100%}
  .agence__contact .btn{width:100%;margin-top:4px}
  .agence__contact-name{font-size:1.02rem}

  /* ---------- Features (alternating) ---------- */
  .feature{gap:24px;padding:24px 0}

  /* ---------- Stats ---------- */
  .stats{grid-template-columns:repeat(2,1fr);gap:22px 16px}
  .stat__num{font-size:2.2rem}
  .stat__label{font-size:.7rem;letter-spacing:.18em;margin-top:.5rem}

  /* ---------- Off-market band ---------- */
  .offmarket{padding:60px 0}
  .offmarket__big{font-size:clamp(3rem, 18vw, 5.5rem)}
  .offmarket h2{font-size:1.4rem;margin-top:.8rem}

  /* ---------- CTA band ---------- */
  .cta-band{padding:48px 0}
  .cta-band p{font-size:.98rem;margin:.8rem auto 1.5rem}

  /* ---------- Biens (listings) ---------- */
  .biens-grid{gap:20px;margin-top:28px}
  .bien__body{padding:18px 20px}
  .bien__title{font-size:1.15rem}
  .bien__price{font-size:1.25rem}
  .bien__meta{font-size:.84rem;gap:12px;flex-wrap:wrap}
  .biens-filters{gap:8px;margin:12px 0 6px}
  .biens-filters button{padding:9px 16px;font-size:.72rem;letter-spacing:.16em}
  .bien__ribbon{width:160px;font-size:.64rem;top:16px;right:-44px}

  /* ---------- Page header (sous-pages) ---------- */
  .page-header{padding:64px 0 40px}
  .page-header h1{font-size:clamp(2rem, 8vw, 2.6rem)}
  .page-header .lead{font-size:1rem}
  .breadcrumb{font-size:.65rem;letter-spacing:.25em;margin-bottom:1rem}

  /* ---------- Agence tabs ---------- */
  .agence-tabs{grid-template-columns:1fr;gap:10px;margin-bottom:22px}
  .agence-tab{padding:14px 16px}
  .agence-tab__label{font-size:1.02rem}
  .agence-tab__sub{font-size:.78rem}

  /* ---------- Form ---------- */
  .form{gap:14px}
  .form input,.form select,.form textarea{
    font-size:16px;padding:13px 14px;  /* 16px = pas de zoom iOS */
  }
  .form label{font-size:.72rem;letter-spacing:.12em}
  .form textarea{min-height:130px}
  .contact-info{padding:26px 22px}

  /* ---------- Contact grid ---------- */
  .contact-grid{gap:32px}

  /* ---------- Footer ---------- */
  .site-footer{padding:48px 0 24px}
  .footer-grid{grid-template-columns:1fr;gap:28px;margin-bottom:28px}
  .footer__logo{height:52px;margin-bottom:14px}
  .site-footer h4{margin-bottom:12px}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:8px;font-size:.78rem}

  /* ---------- Premium illustrations (placeholders) ---------- */
  .premium-illus{padding:22px}
  .premium-illus svg{width:52px;height:52px}
  .premium-illus .illus-title{font-size:.98rem}
  .premium-illus .illus-mono{font-size:1.8rem}
}

@media (max-width: 420px){
  .container{padding:0 16px}
  .hero--centered .hero__inner{padding:40px 18px 48px}
  .hero h1{font-size:1.85rem}
  .hero__tagline{font-size:1.05rem}
  .hero__text{font-size:.96rem}
  .btn{padding:12px 18px;font-size:.72rem}
  .section{padding:40px 0}
  .card{padding:22px 18px}
  .bien__ribbon{width:140px;top:12px;right:-40px;font-size:.6rem}
  .agence__tag{font-size:.66rem;padding:8px 14px;letter-spacing:.2em}
  .agence__body h2{font-size:1.35rem}
}

.bien__honoraires{
  margin-top: 6px;
  font-size: .78rem;
  color: #6a6a72;
  letter-spacing: .01em;
  line-height: 1.4;
}
