    :root{
      --hero-image: url('../images/hero.webp');
      --border: #E8E5E0;
    }

    *{ box-sizing:border-box; margin:0; padding:0; }
    html{ scroll-behavior:smooth; }
    .skip-link{ position:absolute; left:16px; top:-60px; z-index:100; padding:10px 18px; border-radius:8px; background:#1C1B17; color:#fff;
      font-family:'Inter',system-ui,sans-serif; font-size:14px; text-decoration:none; transition:top .2s ease; }
    .skip-link:focus{ top:16px; }
    .sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
    .ico--16{ width:16px; height:16px; }
    .ico--18{ width:18px; height:18px; }
    .ico--20{ width:20px; height:20px; }
    .ico--22{ width:22px; height:22px; }
    .ico--40{ width:40px; height:40px; }
    body{ font-family:'Inter', system-ui, sans-serif; color:#1C1B17; }

    /* ===================== HERO + NAV ===================== */
    .hx{ position:relative; width:100%; min-height:810px; overflow:hidden; }
    .hx__bgfallback{ position:absolute; inset:0; background:linear-gradient(115deg,#3a2f1c,#6b5328 55%,#8a6a34); }
    .hx__bg{ position:absolute; inset:0; background-image:var(--hero-image); background-size:cover; background-position:center; }
    .hx__scrim{ position:absolute; inset:0; background:linear-gradient(270deg, rgba(41,36,22,0.04) 9.99%, rgba(41,36,22,0.56) 99.99%); }

    /* NAV */
    .nv{ position:absolute; top:0; left:0; right:0; z-index:50; display:flex; justify-content:center; padding:28px 16px; }
    .nv__bar{ display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; max-width:1280px; height:56px; padding:6px;
      background:rgba(0,0,0,0.6); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); border-radius:9999px; }
    .nv__brand{ display:flex; align-items:center; gap:12px; padding-left:6px; text-decoration:none; }
    .nv__logo{ display:grid; place-items:center; width:44px; height:44px; flex:none; }
    .nv__logo img{ width:44px; height:44px; display:block; }
    .nv__name{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:600; font-size:24px; line-height:1; color:#F6BB16; white-space:nowrap; }
    .nv__links{ display:flex; align-items:center; gap:24px; }
    .nv__links a{ font-size:14px; line-height:21px; color:#fff; text-decoration:none; white-space:nowrap; opacity:.92; transition:opacity .2s; }
    .nv__links a:hover{ opacity:1; }
    .nv__right{ display:flex; align-items:center; gap:6px; }
    .nv__phone{ display:flex; align-items:center; justify-content:center; gap:8px; height:44px; padding:0 16px; border-radius:9999px; color:#fff; font-size:14px; font-weight:500; letter-spacing:-0.15px; text-decoration:none;
      background:linear-gradient(180deg, rgba(153,153,153,0.1) 0%, rgba(255,255,255,0.1) 100%); border:1px solid rgba(255,255,255,0.18); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); }
    .nv__cta{ display:flex; align-items:center; justify-content:center; gap:8px; height:44px; padding:0 24px; border-radius:9999px; background:#FBF27E; color:#000; font-size:14px; font-weight:500; letter-spacing:-0.15px; text-decoration:none; transition:filter .2s; }
    .nv__cta:hover{ filter:brightness(0.96); }
    .nv__burger{ display:none; width:44px; height:44px; border-radius:999px; align-items:center; justify-content:center; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.18); color:#fff; cursor:pointer; flex:none; padding:0; }
    .nv__burger-ico--close{ display:none; }
    .nv__burger.is-open .nv__burger-ico--open{ display:none; }
    .nv__burger.is-open .nv__burger-ico--close{ display:block; }
    body.menu-open .nv{ position:fixed; }
    body.menu-open{ overflow:hidden; }

    /* MOBILE MENU OVERLAY */
    .mnav{ position:fixed; inset:0; z-index:45; display:flex; flex-direction:column; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .3s ease; }
    .mnav.is-open{ opacity:1; visibility:visible; pointer-events:auto; }
    .mnav__bg{ position:absolute; inset:0; background-image:var(--hero-image); background-size:cover; background-position:center; filter:blur(3px) brightness(.6); transform:scale(1.08); }
    .mnav__scrim{ position:absolute; inset:0; background:rgba(20,17,10,0.55); }
    .mnav__links{ position:relative; z-index:2; flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:40px; }
    .mnav__links a{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:400; font-size:32px; line-height:1; color:#fff; text-decoration:none; }
    .mnav__cta{ position:relative; z-index:2; margin:0 16px 24px; display:flex; align-items:center; justify-content:center; gap:10px; height:56px; border-radius:9999px; background:#FBF27E; color:#171311; font-size:18px; font-weight:600; letter-spacing:-0.2px; text-decoration:none; transition:filter .2s; }
    .mnav__cta:hover{ filter:brightness(0.96); }
    .mnav__cta svg{ width:20px; height:20px; }
    @media (prefers-reduced-motion: reduce){ .mnav{ transition:none; } }

    /* HERO CONTENT */
    .hx__inner{ position:relative; z-index:2; width:100%; max-width:1280px; margin:0 auto; padding:0 32px; min-height:810px; display:flex; flex-direction:column; justify-content:center; }
    .hx__col{ max-width:598px; padding-top:94px; }
    .hx__title{ width:598px; max-width:100%; height:115px; font-family:'Bricolage Grotesque',Georgia,serif; font-weight:400; font-size:52px; line-height:57px; letter-spacing:-1.3px; color:#fff; text-shadow:0px 1px 3px rgba(0,0,0,0.2); flex:none; }
    .hx__title strong{ font-weight:600; }
    .hx__sub{ margin-top:16px; max-width:512px; font-size:18px; line-height:28px; letter-spacing:-0.44px; color:rgba(255,255,255,0.9); text-shadow:0px 1px 3px rgba(0,0,0,0.2); }
    .hx__trust{ display:flex; flex-direction:row; align-items:flex-start; gap:12px; padding:0; height:58px; margin-top:24px; }
    .hx__rating{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
    .hx__rating-text{ display:flex; flex-direction:row; align-items:center; gap:4px; }
    .hx__stars{ display:flex; gap:2px; color:#F59E0B; }
    .hx__rate{ font-size:14px; line-height:20px; letter-spacing:0.2px; color:#fff; font-weight:700; }
    .hx__reviews{ font-size:14px; line-height:20px; color:rgba(255,255,255,0.8); text-decoration:underline; }
    .hx__cta{ display:inline-flex; align-items:center; justify-content:center; gap:12px; margin-top:24px; height:56px; padding:0 24px; border-radius:999px; background:#FBF27E; border:1px solid #F8F5CE; color:#2A241D; font-size:18px; font-weight:500; letter-spacing:-0.45px; text-decoration:none; width:max-content; transition:filter .2s, transform .2s; }
    .hx__cta:hover{ filter:brightness(0.96); transform:translateY(-1px); }
    .hx__chip{ display:inline-flex; align-items:center; gap:8px; margin-top:24px; padding:0 16px; height:44px;
      background:linear-gradient(180deg, rgba(153,153,153,0.1) 0%, rgba(255,255,255,0.1) 100%); border:1px solid rgba(255,255,255,0.18); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); border-radius:999px; width:max-content; max-width:100%; flex-wrap:wrap; }
    .hx__chip span.t{ font-size:14px; line-height:17px; font-weight:500; letter-spacing:-0.15px; color:#fff; white-space:nowrap; }
    .hx__div{ width:1px; height:14px; background:rgba(255,255,255,0.5); }
    .ico{ width:1em; height:1em; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
    .ico[fill="currentColor"]{ fill:currentColor; stroke:none; }

    /* ===================== NOS SERVICES ===================== */
    .svc__section{
      display:flex; flex-direction:column; align-items:stretch;
      padding:110px 0; position:relative; z-index:2; margin-top:-30px;
      border-radius:32px 32px 0 0;
      background:#FFF;
    }
    @media (min-width:768px){ .svc__section{ padding:112px 0; } }
    .svc__wrap{ width:100%; max-width:1280px; margin:0 auto; padding:0 20px; }
    @media (min-width:768px){ .svc__wrap{ padding:0 32px; } }
    .svc__h2{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:400; font-size:36px; line-height:1.05; letter-spacing:-0.5px; margin:0; }
    @media (min-width:768px){ .svc__h2{ font-size:58px; } }
    .svc__lead{ margin:16px 0 0; max-width:36rem; color:#6b6862; }

    .svc__grid{ margin-top:0; display:flex; flex-direction:column; gap:24px; }
    /* mobile order: heading -> image -> cards */
    .svc__acc{ display:contents; }
    .svc__head{ order:1; margin-top:24px; margin-bottom:0; }
    .svc__media{ order:2; }
    .svc__list{ order:3; }
    @media (min-width:768px){
      .svc__grid{ flex-direction:row; justify-content:space-between; align-items:center; gap:40px; }
      .svc__acc{ display:flex; flex-direction:column; order:1; flex:1 1 0; min-width:0; }
      .svc__media{ order:2; flex:1 1 0; min-width:0; margin-top:0; }
      .svc__head{ order:initial; margin-bottom:32px; }
      .svc__list{ order:initial; }
    }

    .svc__imgbox{ overflow:hidden; border-radius:24px; background:#1C1B17; }
    .svc__img{ aspect-ratio:1/1; width:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
      color:rgba(255,255,255,0.4); background-size:cover; background-position:center; }
    .svc__img span{ font-size:12px; text-transform:uppercase; letter-spacing:0.08em; }
    @keyframes imgIn{ 0%{opacity:.35; transform:scale(1);} 15%{opacity:1;} 100%{opacity:1; transform:scale(1.06);} }
    .svc__img.is-anim{ animation:imgIn 1s cubic-bezier(.2,.7,.2,1) both; }

    .svc__list{ display:flex; flex-direction:column; gap:4px; }
    .svc__item{ position:relative; overflow:hidden; border-radius:12px; border:1px solid transparent;
      transition:background-color .25s cubic-bezier(.4,0,.2,1), border-color .25s cubic-bezier(.4,0,.2,1); }
    .svc__item.is-open{ background:#FFFDF7; border-color:#E7E2D5; }

    .svc__bar{ position:absolute; left:0; top:0; height:100%; width:3px; background:#F5C518; transform:scaleY(0); transform-origin:top; opacity:0; }
    .svc__item.is-open .svc__bar{ opacity:1; }
    @keyframes barFillV{ from{transform:scaleY(0);} to{transform:scaleY(1);} }
    .svc__item.is-open .svc__bar.is-running{ animation:barFillV 6s linear both; }
    .svc__item.is-open .svc__bar.is-static{ transform:scaleY(1); }

    .svc__btn{ display:flex; width:100%; align-items:center; gap:12px; padding:16px 20px; text-align:left; background:none; border:0; cursor:pointer; font:inherit; color:inherit; }
    @media (min-width:768px){ .svc__btn{ padding:20px 24px; } }
    .svc__ico{ display:grid; place-items:center; height:36px; width:36px; flex:none; border-radius:999px; background:#FFFDF7; color:#3f3d38; transition:background-color .25s, color .25s; }
    .svc__item.is-open .svc__ico{ background:#1C1B17; color:#F5C518; }
    .svc__ico svg{ width:18px; height:18px; }
    .svc__name{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:500; font-size:24px; line-height:1.15; }
    @media (min-width:768px){ .svc__name{ font-size:30px; } }

    .svc__panelwrap{ display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1), opacity .3s cubic-bezier(.4,0,.2,1); }
    .svc__item.is-open .svc__panelwrap{ grid-template-rows:1fr; opacity:1; }
    .svc__panelinner{ overflow:hidden; }
    .svc__panel{ padding:0 20px 24px 68px; }
    @media (min-width:768px){ .svc__panel{ padding:0 24px 24px 72px; } }
    .svc__desc{ font-size:15px; line-height:1.6; color:#5f5c56; margin:0; }
    .svc__tags{ margin-top:16px; display:flex; flex-wrap:wrap; gap:8px; }
    .svc__tag{ border:1px solid rgba(28,27,23,0.2); border-radius:999px; padding:4px 12px; font-size:12px; font-weight:500; color:#3f3d38; }
    .svc__link{ margin-top:20px; display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:#1C1B17; text-decoration:none; }
    .svc__link:hover{ text-decoration:underline; }
    .svc__link svg{ width:16px; height:16px; }

    @media (prefers-reduced-motion: reduce){ .svc__img.is-anim{ animation:none; } }

    /* ===================== NOS FORMULES (TARIFS) ===================== */
    .frm{ --formules-office-image: url('../images/bureau.webp'); }
    .frm{ background:linear-gradient(180deg, rgba(253,239,176,0) 0%, #FDEFB0 60.98%), #fff; padding:112px 0 120px; }
    .frm__inner{ width:100%; max-width:1280px; margin:0 auto; padding:0 80px; }

    .frm__head{ text-align:center; max-width:650px; margin:0 auto; }
    .frm__eyebrow{ font-family:'Inter',system-ui,sans-serif; font-size:14px; line-height:17px; text-transform:uppercase; color:#18181B; margin-bottom:10px; }
    .frm__title{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:400; font-size:58px; line-height:70px; color:#18181B; }

    .frm__cards{ display:flex; flex-direction:row; gap:16px; margin-top:80px; }
    .frm-card{ flex:1; min-width:0; display:flex; flex-direction:column; background:#fff; box-shadow:0 1px 5px rgba(29,29,27,0.1); border-radius:25px; overflow:hidden; }
    .frm-card__hero{ display:flex; flex-direction:row; justify-content:space-between; align-items:flex-start; gap:16px; padding:30px; }
    .frm-card__stack{ display:flex; flex-direction:column; min-width:0; }
    .frm-card__pieces{ font-family:'Inter',system-ui,sans-serif; font-size:11.1px; line-height:16px; letter-spacing:0.12px; color:#1D1D1B; }
    .frm-card__name{ font-family:'Inter',system-ui,sans-serif; font-size:21.2px; line-height:31px; letter-spacing:0.24px; color:#1D1D1B; }
    .frm-card__body{ flex:1; display:flex; flex-direction:column; padding:0 30px 30px; }
    .frm-card__list{ flex:1; border-top:1px solid #D6D2CC; padding-top:4px; }
    .frm-card__item{ display:flex; flex-direction:row; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid #D6D2CC; }
    .frm-card__item:last-child{ border-bottom:none; }
    .frm-card__check{ flex:none; display:grid; place-items:center; width:24px; height:24px; background:#F7F5EE; border-radius:5px; color:#1D1D1B; }
    .frm-card__check svg{ width:14px; height:14px; }
    .frm-card__text{ font-family:'Inter',system-ui,sans-serif; font-size:12.6px; line-height:18px; letter-spacing:0.14px; color:#1D1D1B; }
    .frm-card__cta{ display:inline-flex; align-items:center; justify-content:center; gap:10px; margin-top:20px; height:48px; padding:0 24px;
      background:#2A241D; border-radius:999px; color:#fff; font-family:'Inter',system-ui,sans-serif; font-weight:500; font-size:15px;
      letter-spacing:-0.3px; text-decoration:none; transition:filter .2s; }
    .frm-card__cta:hover{ filter:brightness(1.18); }
    .frm-card__cta svg{ width:18px; height:18px; flex:none; }

    .frm__office{ position:relative; margin-top:48px; min-height:420px; border-radius:20px; overflow:hidden; background:#000; display:flex; align-items:center; padding:58px 50px; }
    .frm__office-img{ position:absolute; inset:0; background-image:var(--formules-office-image), linear-gradient(135deg,#2b2b2b,#4a4133); background-size:cover; background-position:center; }
    .frm__office-overlay{ position:absolute; inset:0;
      background:linear-gradient(90deg, rgba(0,0,0,0.2) 0.59%, rgba(0,0,0,0) 40.78%), linear-gradient(270deg, rgba(0,0,0,0.12) 54.37%, rgba(0,0,0,0.42) 100%); }
    .frm__office-content{ position:relative; z-index:2; max-width:580px; width:100%; }
    .frm__office-title{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:400; font-size:41px; line-height:51px; color:#fff; }
    .frm__office-lead{ margin-top:8px; max-width:448px; font-family:'Inter',system-ui,sans-serif; font-size:16px; line-height:22px; color:#fff; }
    .frm__office-features{ display:flex; flex-direction:column; gap:6px; margin-top:24px; }
    .frm__feature{ display:flex; flex-direction:row; align-items:center; gap:16px; padding:12px 12px 12px 20px; background:rgba(20,20,20,0.5); box-shadow:0 2px 2px rgba(0,0,0,0.1); border-radius:8px; }
    .frm__feature-ico{ flex:none; display:grid; place-items:center; width:32px; height:32px; background:rgba(255,255,255,0.1); border-radius:4px; color:#fff; }
    .frm__feature-ico svg{ width:20px; height:20px; }
    .frm__feature span{ font-family:'Inter',system-ui,sans-serif; font-size:16px; line-height:22px; color:#fff; }
    .frm__office-cta{ display:inline-flex; align-items:center; justify-content:center; gap:12px; margin-top:24px; height:56px; padding:0 24px; background:#FBF27E; border-radius:999px;
      color:#2A241D; font-family:'Inter',system-ui,sans-serif; font-weight:500; font-size:18px; letter-spacing:-0.45px; text-decoration:none; transition:filter .2s, transform .2s; }
    .frm__office-cta:hover{ filter:brightness(0.96); transform:translateY(-1px); }
    .frm__office-cta svg{ width:20px; height:20px; }

    @media (max-width:1024px){
      .frm{ padding:110px 0; }
      .frm__inner{ padding:0 24px; }
      .frm__head{ max-width:none; }
      .frm__title{ font-size:44px; line-height:52px; }
      .frm__cards{ flex-direction:column; margin-top:48px; }
      .frm__office{ padding:40px 28px; }
      .frm__office-title{ font-size:32px; line-height:40px; }
    }
    @media (max-width:640px){
      .frm{ padding:110px 0; }
      .frm__inner{ padding:0 16px; }
      .frm__title{ font-size:34px; line-height:40px; }
      .frm__office-title{ font-size:28px; line-height:36px; }
      .frm__feature span{ font-size:14px; }
      .frm__feature{ padding:12px; gap:12px; }
      .frm-card__cta, .frm__office-cta{ width:100%; }
    }

    /* ===================== COMMENT ÇA MARCHE ===================== */
    .cmt{ --comment-step1-image: url('../images/etape1.webp');
          --comment-step2-image: url('../images/etape2.webp');
          --comment-step3-image: url('../images/etape3.webp'); }
    .cmt{ background:#fff; padding:112px 0; }
    .cmt__inner{ width:100%; max-width:1280px; margin:0 auto; padding:0 40px; }
    .cmt__head{ display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; }
    .cmt__title{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:400; font-size:58px; line-height:70px; color:#18181B; }
    .cmt__sub{ font-family:'Inter',system-ui,sans-serif; font-size:16px; line-height:22px; color:#71717A; }
    .cmt__steps{ display:flex; flex-direction:row; gap:10px; margin-top:48px; }

    .cmt-step{ flex:1; min-width:0; display:flex; flex-direction:column; }
    .cmt-step__media{ position:relative; width:100%; aspect-ratio:1/1; border-radius:12px; overflow:hidden;
      background-image:var(--comment-step-image), linear-gradient(135deg,#6b5328,#8a6a34); background-size:cover; background-position:center; }
    .cmt-step--1 .cmt-step__media{ --comment-step-image:var(--comment-step1-image); }
    .cmt-step--2 .cmt-step__media{ --comment-step-image:var(--comment-step2-image); }
    .cmt-step--3 .cmt-step__media{ --comment-step-image:var(--comment-step3-image); }
    .cmt-step--3 .cmt-step__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(227,146,65,0.10), rgba(142,47,27,0.22)); }
    .cmt-step__num{ position:absolute; z-index:3; top:8px; left:8px; display:grid; place-items:center; width:30px; height:30px;
      background:rgba(0,0,0,0.2); border-radius:6px; color:#fff; font-family:'Inter',system-ui,sans-serif; font-size:14px; line-height:20px; }
    .cmt-step__caption{ padding:24px 24px 24px 0; display:flex; flex-direction:column; gap:8px; }
    .cmt-step__caption h3{ font-family:'Bricolage Grotesque',system-ui,sans-serif; font-weight:400; font-size:24px; line-height:34px; letter-spacing:-0.4px; color:#18181B; }
    .cmt-step__caption p{ font-family:'Inter',system-ui,sans-serif; font-size:16px; line-height:22px; color:#71717A; }

    /* WhatsApp mock (étape 1) */
    .cmt-chat{ position:absolute; z-index:2; inset:0; display:flex; flex-direction:column; justify-content:center; gap:14px; padding:22px 18px; }
    .cmt-chat__row{ display:flex; align-items:flex-end; gap:8px; }
    .cmt-chat__row--out{ justify-content:flex-end; }
    .cmt-bubble{ max-width:80%; padding:8px 10px; font-family:'Inter',system-ui,sans-serif; font-size:14px; line-height:18px; color:#111; box-shadow:0 14px 32px rgba(0,0,0,0.14); }
    .cmt-bubble--out{ background:#E7FFDB; border-radius:9px 0 9px 9px; }
    .cmt-bubble--in{ background:#fff; border-radius:0 9px 9px 9px; }
    .cmt-bubble__meta{ display:flex; justify-content:flex-end; align-items:center; gap:4px; margin-top:3px; font-size:11px; color:#9DA3A7; }
    .cmt-bubble__meta svg{ width:15px; height:10px; color:#02C0EB; }
    .cmt-ava{ width:32px; height:32px; border-radius:50%; flex:none; }
    .cmt-ava--person{ position:relative; background:#cdbfa6; box-shadow:0 8px 20px rgba(70,78,88,0.18); }
    .cmt-ava--person::after{ content:""; position:absolute; right:-1px; bottom:-1px; width:10px; height:10px; border-radius:50%; background:#00C357; border:2px solid #fff; }
    .cmt-ava--logo{ display:grid; place-items:center; background:#000; color:#F6BB16; box-shadow:0 8px 20px rgba(70,78,88,0.18); }
    .cmt-ava--logo svg{ width:18px; height:18px; }
    .cmt-quick{ display:flex; flex-direction:column; gap:4px; margin:6px 0 0 40px; }
    .cmt-quick a{ display:block; background:#fff; border-radius:8px; padding:9px 12px; text-decoration:none; text-align:center;
      font-family:'Inter',system-ui,sans-serif; font-size:14px; line-height:17px; color:#0096DE; box-shadow:0 14px 32px rgba(0,0,0,0.10); }

    @media (max-width:1024px){
      .cmt{ padding:110px 0; }
      .cmt__inner{ padding:0 24px; }
      .cmt__title{ font-size:44px; line-height:52px; }
      .cmt__steps{ flex-direction:column; gap:24px; margin-top:40px; }
      .cmt-step__media{ aspect-ratio:16/10; }
    }
    @media (max-width:640px){
      .cmt{ padding:110px 0; }
      .cmt__inner{ padding:0 16px; }
      .cmt__title{ font-size:34px; line-height:40px; }
      .cmt-step__media{ aspect-ratio:1/1; }
      .cmt-step__caption{ padding:16px 0; }
    }

    /* ===================== AVIS / CE QU'EN DISENT NOS CLIENTS ===================== */
    .avs{
      display:flex; flex-direction:column; align-items:center; gap:32px;
      padding:112px 80px; background:#F7F4F0;
    }
    .avs__head{ display:flex; flex-direction:column; align-items:center; gap:12px; max-width:720px; text-align:center; }
    .avs__title{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:400; font-size:58px; line-height:70px; letter-spacing:-1px; color:#18181B; }
    .avs__sub{ font-size:16px; line-height:22px; color:#71717A; max-width:560px; }
    .avs__trust{ display:flex; align-items:center; justify-content:center; gap:12px; }
    .avs__avatars{ display:flex; }
    .avs__avatars span{ display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:9999px;
      border:1px solid rgba(0,0,0,0.06); background:linear-gradient(180deg,#EFEFEF 0%,#D9D9D9 100%); margin-left:-8px; box-shadow:0 1px 2px rgba(0,0,0,0.08);
      font-family:'Inter',system-ui,sans-serif; font-size:12px; font-weight:700; color:#3f3d38; }
    .avs__avatars span:first-child{ margin-left:0; }
    .avs__col{ display:flex; flex-direction:column; gap:2px; }
    .avs__stars{ display:flex; gap:2px; color:#F59E0B; }
    .avs__meta{ display:flex; align-items:center; gap:4px; font-size:14px; line-height:20px; }
    .avs__rate{ font-weight:700; color:#18181B; letter-spacing:0.2px; }
    .avs__reviews{ color:#71717A; text-decoration:none; }

    .avs__stage{ position:relative; width:580px; max-width:100%; }
    .avs-card{
      position:absolute; top:0; left:0; right:0;
      opacity:0; transform:translateY(16px) scale(0.97);
      transition:opacity 0.7s ease, transform 0.7s ease;
      pointer-events:none;
      background:#fff; border:1px solid var(--border); border-radius:12px; padding:28px 24px;
    }
    .avs-card.is-active{ position:relative; opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
    .avs-card__quote{ position:absolute; top:18px; left:24px; font-family:'Bricolage Grotesque',Georgia,serif; font-size:54px; line-height:1; color:#DFC9A0; }
    .avs-card__g{ position:absolute; top:24px; right:24px; width:24px; height:24px; }
    .avs-card__person{ display:flex; align-items:center; gap:12px; padding-top:14px; }
    .avs-card__ava{ display:flex; width:32px; height:32px; flex:none; justify-content:center; align-items:center; aspect-ratio:1/1; border-radius:21px;
      border:1px solid rgba(54,54,54,0.20); background:linear-gradient(180deg, rgba(153,153,153,0.50) 0%, rgba(255,255,255,0.50) 100%);
      -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
      font-family:'Inter',system-ui,sans-serif; font-size:12px; font-weight:700; color:#3F3D38; }
    .avs-card__name{ font-size:15px; font-weight:700; color:#1A1A1A; }
    .avs-card__date{ font-size:13px; line-height:18px; color:#777777; }
    .avs-card__stars{ display:flex; gap:2px; color:#FBBC05; margin-top:16px; }
    .avs-card__text{ margin-top:12px; font-size:15px; line-height:24px; color:#333333; }

    .avs__dots{ display:flex; align-items:center; gap:8px; }
    .avs__dots[hidden]{ display:none; }
    .avs__dot{ width:8px; height:8px; padding:0; border:0; border-radius:9999px; background:#D8D2C4; cursor:pointer; transition:background-color .25s, width .25s; }
    .avs__dot.is-active{ width:22px; background:#18181B; }
    @media (max-width:768px){
      .avs{ padding:110px 20px; }
      .avs__title{ font-size:38px; line-height:46px; }
    }

    /* ===================== QUI SOMMES-NOUS ===================== */
    .qsn{
      --apropos-image: url('../images/equipe.webp');
      display:flex; flex-direction:column; align-items:center; gap:48px;
      padding:112px 80px; background:#fff;
    }
    .qsn__head{ display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; max-width:640px; }
    .qsn__title{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:400; font-size:58px; line-height:70px; letter-spacing:-1px; color:#18181B; }
    .qsn__sub{ font-size:16px; line-height:22px; color:#71717A; }

    .qsn-team{ display:flex; align-items:center; gap:40px; width:100%; max-width:1280px; }
    .qsn-text{ flex:1 1 0; max-width:488px; display:flex; flex-direction:column; gap:24px; }
    .qsn-text__body{ font-size:18px; line-height:24px; letter-spacing:-0.4px; color:#18181B; }
    .qsn-text__body p{ margin:0; }
    .qsn-text__body p + p{ margin-top:24px; }

    .qsn-stats{ display:flex; align-items:flex-start; gap:42px; }
    .qsn-stat{ display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; }
    .qsn-stat__icon{ color:#1C1B1F; }
    .qsn-stat__num{ font-size:18px; line-height:24px; letter-spacing:-0.4px; font-weight:600; color:#18181B; }
    .qsn-stat__label{ font-size:14px; line-height:20px; text-transform:uppercase; color:#71717A; }

    .qsn-cta-row{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
    .qsn-cta{ display:inline-flex; align-items:center; justify-content:center; gap:12px; height:56px; padding:0 24px; border-radius:999px; background:#FBF27E; color:#2A241D; font-size:18px; font-weight:500; letter-spacing:-0.45px; text-decoration:none; transition:filter .2s, transform .2s; }
    .qsn-cta:hover{ filter:brightness(0.96); transform:translateY(-1px); }
    .qsn-trust{ display:flex; align-items:center; gap:12px; }
    .qsn-trust__avatars{ display:flex; }
    .qsn-trust__avatars span{ display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:9999px;
      border:1px solid rgba(0,0,0,0.06); background:linear-gradient(180deg,#EFEFEF 0%,#D9D9D9 100%); margin-left:-8px; box-shadow:0 1px 2px rgba(0,0,0,0.08);
      font-family:'Inter',system-ui,sans-serif; font-size:12px; font-weight:700; color:#3f3d38; }
    .qsn-trust__avatars span:first-child{ margin-left:0; }
    .qsn-trust__col{ display:flex; flex-direction:column; gap:2px; }
    .qsn-trust__stars{ display:flex; gap:2px; color:#F59E0B; }
    .qsn-trust__meta{ display:flex; align-items:center; gap:4px; font-size:14px; line-height:20px; }
    .qsn-trust__rate{ font-weight:700; color:#18181B; letter-spacing:0.2px; }
    .qsn-trust__reviews{ color:#71717A; text-decoration:none; }

    .qsn-media{ flex:none; width:760px; max-width:100%; aspect-ratio:760/576; border-radius:136px 135px 113px 107px;
      background:var(--apropos-image) center/cover no-repeat, linear-gradient(135deg,#7c8a6a 0%,#3a4030 100%); }
    @media (max-width:1024px){
      .qsn-team{ flex-direction:column; }
      .qsn-text{ max-width:none; }
      .qsn-media{ width:100%; }
    }
    @media (max-width:768px){
      .qsn{ padding:110px 20px; }
      .qsn__title{ font-size:38px; line-height:46px; }
      .qsn-text__body{ font-size:18px; line-height:30px; }
      .qsn-stats{ gap:24px; justify-content:center; }
      .qsn-cta-row{ justify-content:center; }
      .qsn-media{ border-radius:48px 56px 44px 52px; }
    }

    /* ===================== FAQ / QUESTIONS FRÉQUENTES ===================== */
    .faq{ background:#F7F4EF; padding:112px 0 0; }
    .faq__inner{ max-width:1280px; margin:0 auto; padding:0 80px; display:flex; flex-direction:column; align-items:center; }
    .faq__head{ display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; max-width:720px; }
    .faq__title{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:400; font-size:58px; line-height:70px; letter-spacing:-1px; color:#18181B; }
    .faq__sub{ font-size:16px; line-height:22px; color:#71717A; }

    .faq__list{ width:800px; max-width:100%; margin-top:48px; padding-bottom:80px; display:flex; flex-direction:column; gap:10px; }
    .faq-item{ border-radius:20px; background:transparent; transition:background .25s ease; }
    .faq-item[open]{ background:#fff; }
    .faq-item > summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px; }
    .faq-item > summary::-webkit-details-marker{ display:none; }
    .faq-item[open] > summary{ padding-bottom:20px; }
    .faq-q{ font-size:18px; line-height:24px; letter-spacing:-0.45px; font-weight:500; color:#000; }
    .faq-icon{ flex:none; width:24px; height:24px; color:#000; transition:transform .25s ease; }
    .faq-item[open] .faq-icon{ transform:rotate(180deg); }
    .faq-answer{ padding:0 40px 40px; max-width:760px; }
    .faq-answer p{ margin:0; font-size:16px; line-height:21px; letter-spacing:-0.3125px; color:#70685C; }
    .faq-answer p + p{ margin-top:16px; }
    @media (prefers-reduced-motion:reduce){
      .faq-item, .faq-icon{ transition:none; }
    }
    @media (max-width:768px){
      .faq{ padding:110px 0 0; }
      .faq__inner{ padding:0 20px; }
      .faq__title{ font-size:38px; line-height:46px; }
      .faq-item > summary{ padding:24px; }
      .faq-item[open] > summary{ padding-bottom:12px; }
      .faq-answer{ padding:0 24px 24px; }
      .faq-q{ font-size:18px; line-height:24px; }
    }

    /* ===================== DEVIS / RECEVEZ VOTRE DEVIS EN 2 MIN ===================== */
    .devis{
      --devis-skyline: url('../images/skyline.webp');
      position:relative; z-index:1; overflow:hidden;
      border-radius:0 0 32px 32px;
      padding:140px 0 220px; margin-top:-41px;
      background:var(--devis-skyline) center bottom/cover no-repeat,
                 radial-gradient(147.57% 102.54% at 50% 100%, #FBF27E 26.92%, rgba(251,242,126,0) 100%),
                 #F7F4F0;
    }
    .devis__content{ position:relative; z-index:2; max-width:1129px; margin:0 auto; padding:0 32px; display:flex; flex-direction:column; align-items:center; gap:24px; }
    .devis__head{ display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; }
    .devis__title{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:400; font-size:60px; line-height:63px; letter-spacing:-1.5px; color:#000; }
    .devis__sub{ font-size:16px; line-height:21px; font-weight:500; letter-spacing:-0.3125px; color:#000; }

    .devis-form{ display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap; width:100%; }
    .devis-input{ box-sizing:border-box; width:240px; max-width:100%; height:56px; padding:0 20px; background:#fff; border:1px solid #18181B; border-radius:333px;
      font-family:'Inter',system-ui,sans-serif; font-size:16px; line-height:19px; letter-spacing:-0.3125px; color:#18181B; outline:none; transition:box-shadow .2s; }
    .devis-input:focus{ box-shadow:0 0 0 3px rgba(24,24,27,0.12); }
    .devis-input::placeholder{ color:#A39B8F; }
    .devis-input.is-invalid{ border-color:#E11D48; }
    .devis-input.is-invalid:focus{ box-shadow:0 0 0 3px rgba(225,29,72,0.18); }
    .devis-error{ width:100%; margin:0; text-align:center; font-family:'Inter',system-ui,sans-serif; font-size:14px; color:#E11D48; }
    .devis-date{ position:relative; width:300px; max-width:100%; cursor:pointer; }
    .devis-date .devis-input{ width:100%; padding-right:48px; cursor:pointer; }
    /* masquer l'icône native du sélecteur de date (on garde la nôtre) */
    .devis-date .devis-input::-webkit-calendar-picker-indicator{ position:absolute; right:0; top:0; width:48px; height:100%; opacity:0; cursor:pointer; }
    .devis-date__icon{ position:absolute; right:18px; top:50%; transform:translateY(-50%); width:22px; height:22px; color:#A39B8F; pointer-events:none; }
    .devis-submit{ display:inline-flex; align-items:center; justify-content:center; gap:12px; height:56px; padding:0 32px; background:#18181B; border:none; border-radius:333px;
      color:#fff; font-family:'Inter',system-ui,sans-serif; font-size:20px; font-weight:500; letter-spacing:-0.45px; cursor:pointer; transition:filter .2s, transform .2s; }
    .devis-submit:hover{ filter:brightness(1.2); transform:translateY(-1px); }
    @media (max-width:768px){
      .devis{ padding:110px 0 140px; }
      .devis__title{ font-size:40px; line-height:44px; letter-spacing:-1px; }
      .devis-input, .devis-date, .devis-submit{ width:100%; }
    }

    /* ===================== FOOTER ===================== */
    .ft{ position:relative; z-index:0; background:#000; padding:105px 0 64px; margin-top:-41px; }
    .ft__inner{ max-width:1280px; margin:0 auto; padding:0 80px; }
    .ft__top{ display:flex; align-items:flex-start; gap:48px; padding-top:64px; }
    .ft__brand{ width:384px; flex:none; }
    .ft__q{ font-family:'Bricolage Grotesque',Georgia,serif; font-weight:300; font-size:40px; line-height:50px; letter-spacing:-1px; color:#A8A5A0; }
    .ft__pills{ display:flex; gap:12px; margin-top:32px; }
    .ft__pill{ display:inline-flex; align-items:center; justify-content:center; gap:8px; height:44px; padding:0 24px; background:#FBF27E; border-radius:999px; color:#1C1E21; font-family:'Inter',system-ui,sans-serif; font-size:14px; font-weight:500; letter-spacing:-0.15px; text-decoration:none; transition:filter .2s, transform .2s; }
    .ft__pill:hover{ filter:brightness(0.96); transform:translateY(-1px); }
    .ft__cols{ flex:1; display:flex; gap:10px; }
    .ft-col{ flex:1; min-width:0; }
    .ft-col h3{ font-size:16px; line-height:24px; font-weight:700; color:#A8A5A0; margin:0; }
    .ft-col ul{ list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; }
    .ft-col--nohead h3{ visibility:hidden; }
    .ft-col li{ padding-top:8px; }
    .ft-col a{ font-size:16px; line-height:24px; color:#F7F1E8; text-decoration:none; transition:opacity .2s; }
    .ft-col a:hover{ opacity:.7; }
    .ft__divider{ height:1px; background:rgba(255,255,255,0.2); margin-top:40px; }
    .ft__bottom{ display:flex; align-items:center; justify-content:space-between; padding-top:24px; }
    .ft__copy{ font-size:16px; line-height:22px; letter-spacing:-0.63px; color:rgba(255,255,255,0.8); }
    .ft__social{ display:flex; gap:8px; }
    .ft__social a{ display:grid; place-items:center; width:32px; height:32px; border:1px solid rgba(255,255,255,0.3); border-radius:8px; color:#fff; transition:opacity .2s; }
    .ft__social a:hover{ opacity:.7; }
    @media (max-width:1024px){
      .ft__top{ flex-direction:column; gap:48px; }
      .ft__brand{ width:100%; }
    }
    @media (max-width:768px){
      .ft{ padding:80px 0 48px; }
      .ft__inner{ padding:0 20px; }
      .ft__q{ font-size:32px; line-height:40px; }
      .ft__cols{ flex-wrap:wrap; gap:32px; }
      .ft-col{ flex:1 1 40%; }
    }

    /* ===================== TRANSITIONS ===================== */
    /* entrée au chargement (hero) */
    @keyframes fadeUp { from{ opacity:0; transform:translateY(18px);} to{ opacity:1; transform:none;} }
    .fade-up{ animation:fadeUp .8s cubic-bezier(.2,.7,.2,1) both; }
    /* révélation au scroll (sections suivantes) */
    .reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
    .reveal.in{ opacity:1; transform:none; }
    @media (prefers-reduced-motion: reduce){ .fade-up,.reveal{ animation:none; opacity:1; transform:none; transition:none; } }

    /* ===================== MOBILE ===================== */
    @media (max-width:1024px){ .nv__links{ display:none; } .nv__phone span{ display:none; } .nv__phone{ padding:0 14px; } }
    @media (max-width:640px){
      .hx{ min-height:810px; } .hx__inner{ min-height:810px; padding:0 24px; }
      .hx__col{ width:100%; max-width:100%; padding-top:120px; display:flex; flex-direction:column; align-items:center; text-align:center; }
      .hx__title{ order:1; font-size:48px; line-height:54px; letter-spacing:-0.5px; width:auto; height:auto; }
      .hx__sub{ order:2; font-size:18px; line-height:28px; margin-top:12px; }
      .hx__cta{ order:3; font-size:18px; height:56px; width:100%; margin-top:44px; }
      .hx__trust{ order:4; justify-content:center; align-items:center; flex-wrap:wrap; row-gap:8px; column-gap:12px; margin-top:24px; padding-bottom:0; height:auto; }
      .hx__rate, .hx__reviews{ white-space:nowrap; }
      .hx__chip{ order:5; width:100%; justify-content:center; flex-wrap:wrap; row-gap:6px; column-gap:6px; margin-top:24px; height:auto; padding:8px 10px; }
      .hx__chip span.t{ font-size:11px; line-height:14px; }

      .nv{ display:flex; padding:16px; justify-content:space-between; align-items:center; align-self:stretch; }
      .nv__bar{ display:flex; padding:6px; justify-content:space-between; align-items:center; flex:1 0 0; gap:8px;
        border-radius:9999px; background:rgba(0,0,0,0.60); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); }
      .nv__brand{ flex:none; gap:0; padding-left:0; }
      .nv__name{ display:none; }
      .nv__right{ flex:1 0 0; gap:8px; }
      .nv__phone{ display:flex; flex:1 0 0; justify-content:center; padding:0 16px; }
      .nv__phone span{ display:inline; }
      .nv__cta{ display:none; }
      .nv__burger{ display:flex; }
    }
