/* ==========================================================================
   KBS Service Conciergerie — feuille de style principale
   ========================================================================== */

:root{
  --ink:#14181c;
  --ink-2:#262e35;
  --cream:#f7f4ee;
  --cream-2:#efe9df;
  --white:#ffffff;
  --gold:#bd9455;
  --gold-2:#8f6f3d;
  --teal:#2f6b66;
  --teal-2:#1f4b47;
  --gray:#6b7178;
  --line:rgba(20,24,28,.10);
  --line-2:rgba(255,255,255,.16);

  --shadow-sm: 0 2px 10px rgba(20,24,28,.06);
  --shadow-md: 0 14px 40px rgba(20,24,28,.10);
  --shadow-lg: 0 30px 80px rgba(20,24,28,.20);

  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 26px;

  --container: 1220px;
  --header-h: 84px;

  --ease: cubic-bezier(.22,.9,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

body{
  margin:0;
  font-family:'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-optical-sizing:auto;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
input,textarea{ font-family:inherit; }

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:28px;
}

section{ position:relative; }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold-2);
}
.eyebrow::before{
  content:"";
  width:26px; height:1.5px;
  background:var(--gold);
  display:inline-block;
}
.eyebrow.on-dark{ color:#e7cd9c; }
.eyebrow.on-dark::before{ background:#e7cd9c; }

.section-head{
  max-width:680px;
  margin-bottom:52px;
}
.section-head.center{ margin-inline:auto; text-align:center; }

h1,h2,h3,h4{
  font-optical-sizing:auto;
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.02em;
  margin:14px 0 0;
  color:var(--ink);
}
h2{ font-size:clamp(30px,3.6vw,46px); }
h3{ font-size:20px; }
p{ margin:0; }
.lede{ color:var(--gray); font-size:17px; margin-top:14px; }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:16px 30px;
  border-radius:999px;
  font-weight:600;
  font-size:15px;
  border:1px solid transparent;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s, color .3s, border-color .3s;
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-2) 100%);
  color:#fff;
  box-shadow:0 14px 30px rgba(143,111,61,.35);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 18px 36px rgba(143,111,61,.45); }
.btn-ghost{
  background:transparent;
  color:var(--ink);
  border-color:rgba(20,24,28,.18);
}
.btn-ghost:hover{ border-color:var(--ink); transform:translateY(-2px); }
.btn-ghost.on-dark{ color:#fff; border-color:rgba(255,255,255,.35); }
.btn-ghost.on-dark:hover{ border-color:#fff; }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.6; pointer-events:none; }

/* ---------------- Header ---------------- */
.site-header{
  position:fixed; inset:0 0 auto 0;
  z-index:100;
  height:var(--header-h);
  display:flex; align-items:center;
  transition:background .4s var(--ease), box-shadow .4s var(--ease), height .3s var(--ease);
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.site-header.is-scrolled{
  height:72px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px) saturate(160%);
  box-shadow:var(--shadow-sm);
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ height:44px; width:auto; transition:height .3s var(--ease); }
.site-header.is-scrolled .brand img{ height:38px; }
.brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.brand-text strong{ font-size:15px; letter-spacing:.01em; color:#fff; transition:color .3s; }
.brand-text span{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.72); transition:color .3s; }
.site-header.is-scrolled .brand-text strong{ color:var(--ink); }
.site-header.is-scrolled .brand-text span{ color:var(--gray); }

.main-nav{ display:flex; align-items:center; gap:34px; }
.main-nav a{
  font-size:14.5px; font-weight:500; color:rgba(255,255,255,.88);
  position:relative; padding:6px 0; transition:color .3s;
}
.main-nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1.5px;
  background:currentColor; transition:right .35s var(--ease);
}
.main-nav a:hover::after{ right:0; }
.site-header.is-scrolled .main-nav a{ color:var(--ink-2); }

.header-cta{ display:flex; align-items:center; gap:14px; }
.phone-pill{
  display:flex; align-items:center; justify-content:center; gap:10px;
  font-size:14.5px; font-weight:600; color:#fff; white-space:nowrap;
  border:1px solid rgba(255,255,255,.35);
  padding:13px 26px; border-radius:999px; min-width:200px;
  transition:border-color .3s, color .3s, background .3s;
}
.phone-pill:hover{ background:rgba(255,255,255,.12); }
.site-header.is-scrolled .phone-pill{ color:var(--ink); border-color:rgba(20,24,28,.18); }
.site-header.is-scrolled .phone-pill:hover{ background:rgba(20,24,28,.05); }

.nav-toggle{
  display:none;
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.35);
  background:transparent;
  position:relative;
  flex-shrink:0;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; position:absolute; left:13px; right:13px; height:1.5px; background:#fff; transition:all .3s var(--ease);
}
.nav-toggle span{ top:21px; }
.nav-toggle span::before{ top:-6px; }
.nav-toggle span::after{ top:6px; }
.site-header.is-scrolled .nav-toggle{ border-color:rgba(20,24,28,.2); }
.site-header.is-scrolled .nav-toggle span, .site-header.is-scrolled .nav-toggle span::before, .site-header.is-scrolled .nav-toggle span::after{ background:var(--ink); }
.nav-open .nav-toggle span{ background:transparent; }
.nav-open .nav-toggle span::before{ top:0; transform:rotate(45deg); background:#fff; }
.nav-open .nav-toggle span::after{ top:0; transform:rotate(-45deg); background:#fff; }
.nav-open .site-header.is-scrolled .nav-toggle span::before,
.nav-open .site-header.is-scrolled .nav-toggle span::after{ background:var(--ink); }

/* ---------------- Hero ---------------- */
.hero{
  min-height:100vh;
  display:flex; align-items:center;
  padding-top:calc(var(--header-h) + 40px);
  padding-bottom:70px;
  position:relative;
  background:
    linear-gradient(180deg, rgba(15,18,21,.72) 0%, rgba(15,18,21,.42) 46%, rgba(15,18,21,.78) 100%),
    url('../img/hero-bg.jpg') center/cover no-repeat;
}
.hero .container{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:64px;
  align-items:center;
}
.hero-content{ color:#fff; }
.hero-content h1{
  color:#fff;
  font-size:clamp(36px,4.6vw,58px);
  margin-top:18px;
}
.hero-content .lede{ color:rgba(255,255,255,.82); max-width:520px; font-size:18px; }
.hero-actions{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }

.hero-stats{
  display:flex; gap:36px; margin-top:52px; flex-wrap:wrap;
  padding-top:30px; border-top:1px solid rgba(255,255,255,.22);
}
.hero-stats .stat b{
  display:block; font-size:30px; font-weight:800; color:#fff; letter-spacing:-.02em;
}
.hero-stats .stat span{ font-size:13px; color:rgba(255,255,255,.7); letter-spacing:.03em; }
.stars{ color:var(--gold); letter-spacing:2px; }

/* Hero form card */
.hero-form{
  background:rgba(255,255,255,.97);
  border-radius:var(--radius-lg);
  padding:38px 34px;
  box-shadow:var(--shadow-lg);
  position:relative;
}
.hero-form::before{
  content:"";
  position:absolute; inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg, rgba(189,148,85,.55), rgba(189,148,85,0) 40%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  pointer-events:none;
}
.hero-form h3{ font-size:22px; }
.hero-form .lede{ font-size:14.5px; margin-top:8px; }
.form-row{ display:flex; gap:12px; }
.field{ margin-top:16px; flex:1; }
.field label{ display:block; font-size:12.5px; font-weight:600; color:var(--ink-2); margin-bottom:7px; letter-spacing:.02em; }
.field input, .field textarea{
  width:100%; border:1px solid var(--line); background:#fff;
  border-radius:10px; padding:13px 14px; font-size:14.5px; color:var(--ink);
  transition:border-color .25s, box-shadow .25s;
}
.field input:focus, .field textarea:focus{
  outline:none; border-color:var(--gold); box-shadow:0 0 0 4px rgba(189,148,85,.15);
}
.field textarea{ resize:vertical; min-height:88px; }
.hero-form form{ margin-top:6px; }
.hero-form .btn{ margin-top:22px; }
.form-note{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--gray); margin-top:14px; justify-content:center; }
.form-success{
  display:none; text-align:center; padding:18px 4px;
}
.form-success.is-visible{ display:block; }
.form-success .check{
  width:52px; height:52px; border-radius:50%; margin:0 auto 14px;
  background:linear-gradient(135deg,var(--teal),var(--teal-2));
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:24px;
}
.hero-form.is-sent form{ display:none; }

/* ---------------- Marquee strip ---------------- */
.trust-strip{
  background:var(--ink);
  color:rgba(255,255,255,.65);
  padding:16px 0;
  font-size:13px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.trust-strip .container{
  display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; text-align:center;
}
.trust-strip strong{ color:#fff; }
.trust-strip .dot{ opacity:.4; }

/* ---------------- Reveal animation ---------------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-delay-1.is-visible{ transition-delay:.08s; }
.reveal-delay-2.is-visible{ transition-delay:.16s; }
.reveal-delay-3.is-visible{ transition-delay:.24s; }
.reveal-delay-4.is-visible{ transition-delay:.32s; }
.reveal-delay-5.is-visible{ transition-delay:.4s; }

/* ---------------- Avis (reviews) ---------------- */
.avis{ padding:110px 0 100px; background:var(--cream); }
.section-head.center .lede{
  display:flex; align-items:center; justify-content:center; gap:8px;
  font-weight:600; color:var(--ink-2); font-size:15px;
}
.section-head.center .lede .stars{ font-size:15px; }

.avis-marquee{
  position:relative;
  overflow:hidden;
  margin-inline:calc(-1 * 28px);
  mask-image:linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
}
.avis-track{
  display:flex; gap:22px; width:max-content;
  padding-inline:28px;
  animation:avis-scroll 46s linear infinite;
}
.avis-marquee:hover .avis-track{ animation-play-state:paused; }
@keyframes avis-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
.avis-fade{ display:none; }

.avis-card{
  flex:0 0 340px;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-md);
  padding:28px 26px; box-shadow:var(--shadow-sm);
}
.avis-card-head{ display:flex; align-items:center; gap:12px; }
.avis-card-head img{
  width:46px; height:46px; border-radius:50%; object-fit:cover; flex-shrink:0;
  border:1px solid var(--line);
}
.avis-card-head b{ display:block; font-size:14.5px; }
.avis-card-head .stars{ font-size:13px; display:block; margin-top:2px; }
.avis-card p{ font-size:14.5px; line-height:1.6; color:var(--ink-2); margin-top:16px; }
.avis-card.no-text .avis-card-head{ margin-bottom:2px; }

.avis-note{ font-size:12.5px; color:var(--gray); margin-top:26px; text-align:center; font-style:italic; }
.avis-actions{ display:flex; align-items:center; justify-content:center; gap:26px; margin-top:34px; flex-wrap:wrap; }
.avis-link{ font-size:14px; font-weight:600; color:var(--teal-2); display:inline-flex; align-items:center; gap:6px; }
.avis-link:hover{ text-decoration:underline; }

/* ---------------- Services ---------------- */
.services{ padding:110px 0; background:var(--white); }
.pillars{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.pillar{
  border:1px solid var(--line); border-radius:var(--radius-md);
  padding:32px 26px; background:var(--cream);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), background .4s;
}
.pillar:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); background:#fff; }
.pillar .num{
  width:42px; height:42px; border-radius:50%;
  background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:700; margin-bottom:20px;
}
.pillar h3{ margin-top:0; margin-bottom:14px; }
.pillar ul{ display:flex; flex-direction:column; gap:10px; }
.pillar li{ font-size:14px; color:var(--gray); padding-left:18px; position:relative; }
.pillar li::before{ content:"—"; position:absolute; left:0; color:var(--gold); }

.pricing{
  margin-top:60px; display:grid; grid-template-columns:1fr 1fr; gap:26px;
}
.price-card{
  border-radius:var(--radius-md); padding:36px 32px; border:1px solid var(--line);
  display:flex; flex-direction:column; gap:16px;
}
.price-card.is-premium{
  background:linear-gradient(160deg,var(--ink) 0%, #1f262d 100%); color:#fff; border-color:transparent;
  box-shadow:var(--shadow-lg);
}
.price-card .tag{ font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-2); }
.price-card.is-premium .tag{ color:#e7cd9c; }
.price-card .amount{ font-size:40px; font-weight:800; letter-spacing:-.02em; }
.price-card .amount span{ font-size:15px; font-weight:500; color:var(--gray); }
.price-card.is-premium .amount span{ color:rgba(255,255,255,.62); }
.price-card p{ color:var(--gray); font-size:14.5px; }
.price-card.is-premium p{ color:rgba(255,255,255,.75); }
.price-card .btn{ margin-top:auto; align-self:flex-start; }

/* ---------------- Biens (gallery) ---------------- */
.biens{ padding:110px 0; background:var(--cream); }
.biens-grid{
  display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:230px; gap:18px;
}
.biens-grid a{ grid-column:span 1; grid-row:span 1; }
.biens-grid a:nth-child(1){ grid-column:span 2; grid-row:span 2; }
.biens-grid a:nth-child(4){ grid-row:span 2; }
.bien-tile{
  position:relative; border-radius:var(--radius-md); overflow:hidden; height:100%;
  display:block;
}
.bien-tile img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .7s var(--ease);
}
.bien-tile:hover img{ transform:scale(1.08); }
.bien-tile::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.62) 100%);
}
.bien-cap{
  position:absolute; left:20px; right:20px; bottom:16px; z-index:2;
  color:#fff; font-weight:600; font-size:15px;
  display:flex; align-items:center; justify-content:space-between;
}
.bien-cap svg{ opacity:.85; }
.biens-grid a:nth-child(1) .bien-cap{ font-size:19px; }

/* ---------------- Portrait ---------------- */
.portrait{ padding:110px 0; background:var(--white); }
.portrait .container{ display:grid; grid-template-columns:.72fr 1.28fr; gap:70px; align-items:center; }
.portrait-photo{ position:relative; }
.portrait-photo img{
  border-radius:var(--radius-lg); width:100%; aspect-ratio:4/5; object-fit:cover;
  box-shadow:var(--shadow-lg);
}
.portrait-badge{
  position:absolute; left:-22px; bottom:-22px;
  background:#fff; border-radius:16px; padding:18px 22px;
  box-shadow:var(--shadow-md); border:1px solid var(--line);
}
.portrait-badge b{ display:block; font-size:24px; font-weight:800; }
.portrait-badge span{ font-size:12px; color:var(--gray); text-transform:uppercase; letter-spacing:.05em; }
.portrait-quote{
  font-size:21px; line-height:1.5; font-weight:500; color:var(--ink-2);
  margin:22px 0 26px; padding-left:22px; border-left:3px solid var(--gold);
}
.portrait-name{ display:flex; align-items:center; gap:14px; margin-top:26px; }
.portrait-name b{ font-size:16px; display:block; }
.portrait-name span{ font-size:13.5px; color:var(--gray); }

/* ---------------- CTA banner ---------------- */
.cta-banner{
  padding:130px 0;
  background:
    linear-gradient(180deg, rgba(15,18,21,.82), rgba(15,18,21,.88)),
    url('../img/cta-bg.jpg') center/cover fixed no-repeat;
  color:#fff; text-align:center;
}
@media (max-width:900px){
  .cta-banner{ background-attachment:scroll; }
}
.cta-banner .eyebrow{ justify-content:center; }
.cta-banner .container{ max-width:760px; }
.cta-banner h2{ color:#fff; }
.cta-banner .lede{ color:rgba(255,255,255,.78); }
.cta-banner .hero-actions{ justify-content:center; margin-top:36px; }

/* ---------------- Contact ---------------- */
.contact{ padding:110px 0; background:var(--cream); }
.contact .container{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.contact-cards{ display:grid; gap:18px; }
.contact-card{
  display:flex; align-items:center; gap:18px;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-md);
  padding:22px 24px; box-shadow:var(--shadow-sm);
}
.contact-card > div{ min-width:0; }
.contact-icon{
  width:48px; height:48px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg,var(--teal),var(--teal-2));
  color:#fff; display:flex; align-items:center; justify-content:center;
}
.contact-card b{ display:block; font-size:15px; }
.contact-card span, .contact-card a.value{ font-size:14px; color:var(--gray); }
.contact-visual{
  border-radius:var(--radius-lg); overflow:hidden; position:relative;
  aspect-ratio:1/1; box-shadow:var(--shadow-lg);
}
.contact-visual img{ width:100%; height:100%; object-fit:cover; }
.contact-visual .pin{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
}
.contact-visual .pin-dot{
  width:64px; height:64px; border-radius:50%;
  background:rgba(189,148,85,.28); display:flex; align-items:center; justify-content:center;
}
.contact-visual .pin-dot::before{
  content:""; width:26px; height:26px; border-radius:50%;
  background:var(--gold); box-shadow:0 0 0 8px rgba(255,255,255,.9);
}
.contact-visual figcaption{
  position:absolute; left:20px; bottom:20px; right:20px;
  background:rgba(255,255,255,.94); border-radius:12px; padding:14px 16px;
  font-size:13.5px; font-weight:600; display:flex; align-items:center; justify-content:space-between;
}

/* ---------------- Footer ---------------- */
.site-footer{ background:var(--ink); color:rgba(255,255,255,.68); padding:70px 0 26px; }
.footer-top{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:46px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-brand{ display:flex; gap:12px; align-items:flex-start; }
.footer-brand img{ height:42px; }
.footer-brand p{ margin-top:14px; font-size:14px; line-height:1.7; color:rgba(255,255,255,.55); max-width:280px; }
.footer-col h4{ color:#fff; font-size:14px; letter-spacing:.04em; text-transform:uppercase; margin-bottom:18px; font-weight:600; }
.footer-col ul{ display:flex; flex-direction:column; gap:12px; }
.footer-col a{ font-size:14.5px; color:rgba(255,255,255,.62); transition:color .25s; }
.footer-col a:hover{ color:#fff; }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; padding-top:26px; flex-wrap:wrap; gap:12px;
  font-size:13px; color:rgba(255,255,255,.42);
}
.footer-social{ display:flex; gap:12px; }
.footer-social a{
  width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
  display:flex; align-items:center; justify-content:center; color:#fff; transition:background .25s, border-color .25s;
}
.footer-social a:hover{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.4); }

/* ---------------- Back to top ---------------- */
.to-top{
  position:fixed; right:26px; bottom:26px; z-index:90;
  width:48px; height:48px; border-radius:50%;
  background:var(--ink); color:#fff; border:none;
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .3s, transform .3s, visibility .3s;
  box-shadow:var(--shadow-md);
}
.to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }

/* ---------------- Responsive ---------------- */
@media (max-width:1080px){
  .hero .container{ grid-template-columns:1fr; }
  .hero-form{ max-width:520px; }
  .portrait .container{ grid-template-columns:1fr; }
  .portrait-photo{ max-width:380px; margin-inline:auto; }
  .contact .container{ grid-template-columns:1fr; }
  .contact-visual{ order:-1; max-width:460px; margin-inline:auto; width:100%; }
  .pillars{ grid-template-columns:repeat(2,1fr); }
  .footer-top{ grid-template-columns:1fr 1fr; row-gap:36px; }
}
@media (max-width:860px){
  .main-nav, .header-cta .phone-pill{ display:none; }
  .nav-toggle{ display:block; }
  .site-header .container{ position:relative; }
  .main-nav.mobile{
    display:flex; flex-direction:column; align-items:flex-start; gap:0;
    position:fixed; top:var(--header-h); left:0; right:0;
    background:#fff; padding:10px 24px 26px;
    max-height:calc(100vh - var(--header-h));
    overflow-y:auto;
    transform:translateY(-12px); opacity:0; visibility:hidden;
    transition:all .35s var(--ease);
    box-shadow:var(--shadow-md);
  }
  .nav-open .main-nav.mobile{ transform:translateY(0); opacity:1; visibility:visible; }
  .main-nav.mobile a{ color:var(--ink); padding:15px 0; width:100%; border-bottom:1px solid var(--line); font-size:16px; }
  .main-nav.mobile .phone-pill{ display:flex; justify-content:center; margin-top:16px; color:var(--ink); border-color:var(--line); }
}
@media (max-width:720px){
  section{ padding-top:76px; padding-bottom:76px; }
  .avis{ padding-bottom:66px; }
  .container{ padding-inline:22px; }
  .pillars{ grid-template-columns:1fr; }
  .pricing{ grid-template-columns:1fr; }
  .biens-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:170px; gap:14px; }
  .biens-grid a:nth-child(1){ grid-column:span 2; grid-row:span 1; }
  .biens-grid a:nth-child(4){ grid-row:span 1; }
  .footer-top{ grid-template-columns:1fr; }
  .form-row{ flex-direction:column; }
  .section-head{ margin-bottom:36px; }

  .hero{ padding-top:calc(var(--header-h) + 24px); padding-bottom:44px; min-height:auto; }
  .hero-content .lede{ font-size:16px; }
  .hero-actions{ gap:12px; }
  .hero-actions .btn{ flex:1 1 auto; }
  .hero-stats{ gap:22px; margin-top:38px; padding-top:22px; }
  .hero-stats .stat b{ font-size:24px; }
  .hero-form{ padding:30px 22px; }

  .avis-marquee{ margin-inline:calc(-1 * 22px); }
  .avis-track{ padding-inline:22px; animation-duration:34s; }
  .avis-card{ flex-basis:280px; padding:22px 20px; }

  .pillar{ padding:26px 22px; }
  .price-card{ padding:28px 24px; }

  .portrait-badge{ left:-10px; bottom:-14px; padding:14px 16px; }
  .portrait-badge b{ font-size:20px; }
  .portrait-quote{ font-size:19px; padding-left:16px; }

  .cta-banner{ padding:80px 0; }

  .contact-card{ padding:18px; }
  .footer-top{ padding-bottom:34px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; gap:16px; }
}
@media (max-width:480px){
  .hero-content h1{ font-size:32px; }
  .eyebrow{ font-size:12px; }
  h2{ font-size:28px; }
  .hero-stats{ gap:18px 26px; }
  .biens-grid{ grid-template-columns:1fr; grid-auto-rows:220px; }
  .biens-grid a:nth-child(1), .biens-grid a:nth-child(4){ grid-column:span 1; grid-row:span 1; }
  .avis-card{ flex-basis:240px; }
}
