:root{
    --ink:#18202A; --ink2:#222E3A; --ink3:#2C3946;
    --paper:#F5F6F7; --paper2:#E9EDF0;
    --line:#D2D9DE; --line-dark:rgba(255,255,255,.16);
    --soft:#4E5A66; --steel:#8A979F;
    --minium:#B50C17; --minium-dark:#8E0A13; --minium-lt:#FF6B5C;
    --disp:"Bricolage Grotesque",system-ui,sans-serif;
    --body:"Schibsted Grotesk",system-ui,sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{font-family:var(--body);background:var(--paper);color:var(--ink);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
  img{display:block;max-width:100%}
  a{color:inherit;text-decoration:none}
  a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--minium);outline-offset:2px}
  .skip-link{position:absolute;left:16px;top:-64px;z-index:100;background:var(--ink);color:#fff;padding:12px 18px;border-radius:2px;font-weight:600;font-size:.9rem;transition:top .15s ease}
  .skip-link:focus-visible{top:16px}
  .wrap{max-width:1240px;margin:0 auto;padding:0 32px}
  .disp{font-family:var(--disp)}
  h1,h2,h3{font-family:var(--disp);font-weight:800;line-height:1.02;letter-spacing:-.01em;text-wrap:balance}
  .accent{color:var(--minium)}
  /* libellé technique — utilisé avec parcimonie, jamais en tête de chaque section */
  .tag{font-family:var(--body);font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--soft)}
  .tag .dot{color:var(--minium-dark)}

  /* ---------- boutons ---------- */
  .btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--body);font-weight:600;font-size:.95rem;padding:15px 28px;border-radius:2px;border:1px solid transparent;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}
  .btn-minium{background:var(--minium);color:#fff}
  .btn-minium:hover{background:var(--minium-dark)}
  .btn-ghost-d{border-color:rgba(24,32,42,.35);color:var(--ink);background:transparent}
  .btn-ghost-d:hover{border-color:var(--ink)}
  .btn-ghost-l{border-color:rgba(255,255,255,.4);color:#fff;background:transparent}
  .btn-ghost-l:hover{border-color:#fff}

  /* ---------- header ---------- */
  header{position:fixed;inset:0 0 auto 0;z-index:50;background:var(--ink);border-bottom:1px solid var(--line-dark);transition:box-shadow .25s ease}
  header.scrolled{box-shadow:0 6px 24px rgba(24,32,42,.28)}
  .nav{display:flex;align-items:center;gap:30px;padding:14px 0}
  .brand{display:flex;align-items:center;gap:13px;margin-right:auto}
  .brand .mark{height:44px;width:auto;display:block;flex:none}
  .brand .bname{display:flex;flex-direction:column;line-height:1.05}
  .brand .bname b{font-family:var(--disp);font-weight:800;font-size:16.5px;letter-spacing:1.5px;color:#fff}
  .brand .bname i{font-style:normal;font-weight:600;font-size:9px;letter-spacing:1.7px;color:var(--minium-lt);margin-top:3px}
  @media (max-width:520px){.brand .mark{height:38px}.brand .bname b{font-size:14.5px}.brand .bname i{font-size:8px;letter-spacing:1.3px}}
  .nav-links{display:flex;gap:22px;list-style:none;align-self:stretch;align-items:center;flex-wrap:nowrap}
  .nav-links>li{display:flex;align-items:center;position:relative}
  .nav-links a{color:rgba(255,255,255,.82);font-size:.86rem;font-weight:500;letter-spacing:.04em;transition:color .15s;white-space:nowrap}
  .nav-links a:hover{color:#fff}
  .nav-sub-group>a::after{content:"";width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);margin-left:9px;opacity:.72;display:inline-block}
  .nav-drop{display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);min-width:258px;background:var(--ink2);border:1px solid var(--line-dark);border-radius:3px;padding:8px;list-style:none;z-index:60;box-shadow:0 16px 36px rgba(0,0,0,.34)}
  .nav-drop::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
  .nav-drop a{display:block;padding:10px 14px;border-radius:2px;font-size:13.5px;letter-spacing:.02em}
  .nav-drop a:hover{background:rgba(255,255,255,.07);color:#fff}
  .nav-sub-group:hover .nav-drop,.nav-sub-group:focus-within .nav-drop{display:block}
  .nav-cta{display:flex;align-items:center;gap:16px;flex:none}
  .nav-phone{color:#fff;font-weight:600;font-size:.92rem;white-space:nowrap;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.28);padding-bottom:2px}
  .nav-phone:hover{border-bottom-color:var(--minium-lt)}
  .nav-cta .btn{padding:11px 20px;font-size:.88rem;white-space:nowrap}
  @media (max-width:1500px){.nav-links{gap:17px}.nav-links a{font-size:.82rem}}
  @media (max-width:1330px){.nav-links{gap:13px}.nav-links a{font-size:.79rem}.nav-cta{gap:13px}.nav-cta .btn{padding:10px 16px;font-size:.83rem}}
  @media (max-width:1100px){.nav-phone{display:none}}
  .burger{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px;position:relative}
  .burger span{display:block;width:22px;height:2px;background:#fff;margin:5px auto;transition:.2s}

  /* ---------- hero : couverture pleine largeur ---------- */
  .hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;background:var(--ink);overflow:hidden;color:#fff}
  .slides{position:absolute;inset:0}
  .hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%}
  .hero .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;opacity:0;animation:herocycle 28s infinite}
  .hero .slide.s1{animation-delay:7s}
  .hero .slide.s2{animation-delay:14s}
  .hero .slide.s3{animation-delay:21s}
  @keyframes herocycle{0%{opacity:0}4%{opacity:1}22%{opacity:1}26%{opacity:0}100%{opacity:0}}
  @media (prefers-reduced-motion:reduce){.hero .slide{display:none}}
  .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,32,42,.30) 0%,rgba(24,32,42,.16) 45%,rgba(24,32,42,.90) 100%);z-index:1}
  .hero-inner{position:relative;z-index:2;width:100%;max-width:820px;padding:190px 32px 90px;padding-left:clamp(28px,9vw,160px)}
  .hero .tag{color:rgba(255,255,255,.75)}
  .hero .tag .dot{color:var(--minium-lt)}
  .hero h1{font-size:clamp(2.5rem,5vw,4.2rem)}
  .hero h1 .accent{color:var(--minium-lt)}
  .hero .seam{display:block;margin:26px 0 22px;overflow:visible}
  .hero .seam path{stroke:var(--minium);stroke-width:3;fill:none;stroke-linecap:square;stroke-dasharray:190;stroke-dashoffset:190;animation:seamdraw 1s .5s cubic-bezier(.4,0,.2,1) forwards}
  @keyframes seamdraw{to{stroke-dashoffset:0}}
  .hero .sub{max-width:540px;color:rgba(255,255,255,.85);font-size:1.04rem}
  .hero .ctas{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap}
  .hero .trust{margin-top:44px;border-top:1px solid rgba(255,255,255,.28);padding-top:16px;max-width:560px}
  .hero .trust span{font-size:.82rem;font-weight:500;letter-spacing:.05em;color:rgba(255,255,255,.85);display:inline-block;margin-right:22px}
  .hero .trust span::before{content:"◆";color:var(--minium-lt);font-size:.6rem;margin-right:8px;vertical-align:2px}
  /* tampon d'atelier sur la photo */
  .stamp{position:absolute;right:26px;bottom:26px;width:128px;height:128px;animation:spin 70s linear infinite;z-index:3}
  .stamp text{font-family:var(--body);font-size:11.5px;font-weight:600;letter-spacing:.28em;fill:var(--ink)}
  .stamp circle{fill:rgba(245,246,247,.92)}
  .stamp .roof{stroke:var(--minium);stroke-width:5;fill:none;stroke-linecap:round;stroke-linejoin:round}
  @keyframes spin{to{transform:rotate(360deg)}}
  @media (prefers-reduced-motion:reduce){
    .hero .seam path{animation:none;stroke-dashoffset:0}
    .stamp{animation:none}
  }

  /* ---------- bande métiers ---------- */
  .band{background:var(--paper2);border-bottom:1px solid var(--line)}
  .band .wrap{display:flex;align-items:center;overflow-x:auto;scrollbar-width:none}
  .band .wrap::-webkit-scrollbar{display:none}
  .band span{font-family:var(--disp);font-weight:700;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);white-space:nowrap;padding:18px 0}
  .band i{font-style:normal;color:var(--minium);font-size:.7rem;margin:0 22px}

  /* ---------- sections ---------- */
  .section{padding:110px 0}
  .sec-top{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:56px}
  .sec-top .tag{margin-bottom:14px}
  .sec-top h2{font-size:clamp(2rem,3.6vw,3rem);max-width:560px}
  .sec-top .lead{color:var(--soft);max-width:440px;justify-self:end;font-size:1rem;border-left:2px solid var(--minium);padding-left:18px}
  .sec-top.one{grid-template-columns:1fr}

  /* ---------- à propos ---------- */
  .about{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start}
  .about .photo{position:relative}
  .about .photo img{border-radius:2px;aspect-ratio:4/5;object-fit:cover;width:100%}
  .about .photo::after{content:"";position:absolute;inset:16px -16px -16px 16px;border:2px solid var(--minium);border-radius:2px;z-index:-1}
  /* carte d'appel — la photo de M. Bannour est le bouton */
  .call-card{position:absolute;left:-18px;bottom:36px;display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--line);border-radius:2px;padding:10px 18px 10px 10px;box-shadow:0 6px 20px rgba(24,32,42,.18);transition:border-color .18s ease,transform .18s ease}
  .call-card:hover{border-color:var(--minium);transform:translateY(-2px)}
  .call-card .badge{position:relative;width:56px;height:56px;border-radius:50%;overflow:hidden;flex:none}
  .call-card .badge img{width:100%;height:100%;object-fit:cover;border-radius:0;transform:scale(1.55);transform-origin:50% 55.5%}
  .call-card .badge::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--minium);opacity:0;animation:ringpulse 2.6s infinite}
  @keyframes ringpulse{0%{opacity:.75;transform:scale(1)}75%{opacity:0;transform:scale(1.5)}100%{opacity:0;transform:scale(1.5)}}
  @media (prefers-reduced-motion:reduce){.call-card .badge::after{animation:none}}
  .call-txt b{font-family:var(--disp);font-size:.92rem;font-weight:800;display:block;line-height:1.15}
  .call-txt .call-line{margin-top:3px;font-size:.82rem;font-weight:600;color:var(--minium-dark);display:inline-flex;align-items:center;gap:7px}
  .call-txt .call-line svg{width:13px;height:13px;fill:var(--minium-dark)}
  .about .facts{margin-top:36px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
  .about .fact{display:grid;grid-template-columns:170px 1fr;gap:18px;padding:15px 0;border-top:1px solid var(--line)}
  .about .fact:first-child{border-top:0}
  .about .fact b{font-family:var(--disp);font-size:.95rem;font-weight:700}
  .about .fact span{color:var(--soft);font-size:.95rem}
  .about .lede{margin-top:22px;font-size:1.15rem;color:var(--ink);font-weight:500;line-height:1.45}
  .about p.body{margin-top:16px;color:var(--soft);max-width:560px}

  /* ---------- services : feuille de devis ---------- */
  .devis{border-top:2px solid var(--ink)}
  .devis-row{display:grid;grid-template-columns:64px 1.1fr 1.3fr auto;gap:24px;align-items:baseline;padding:26px 10px;border-bottom:1px solid var(--line);border-left:3px solid transparent;transition:background .15s ease,border-color .15s ease}
  .devis-row:hover{background:var(--paper2);border-left-color:var(--minium)}
  .devis-row .ref{font-family:var(--disp);font-weight:800;color:var(--minium-dark);font-size:.95rem}
  .devis-row h3{font-size:1.35rem}
  .devis-row p{color:var(--soft);font-size:.95rem;max-width:520px}
  .devis-row .go{font-weight:600;font-size:.9rem;color:var(--ink);white-space:nowrap;opacity:0;transform:translateX(-6px);transition:.15s}
  .devis-row:hover .go{opacity:1;transform:none}
  .devis-row .go::after{content:" →";color:var(--minium-dark)}

  /* ---------- réalisations ---------- */
  #realisations{background:var(--paper2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .real-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;gap:12px}
  .real-item{position:relative;overflow:hidden;border-radius:2px;cursor:pointer}
  .real-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
  .real-item:hover img{transform:scale(1.05)}
  .real-item .cap{position:absolute;inset:auto 0 0 0;padding:40px 14px 12px;background:linear-gradient(transparent,rgba(24,32,42,.9));color:#fff;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
  .real-item .cap b{display:block;font-family:var(--disp);font-size:1rem;font-weight:800;letter-spacing:.02em;text-transform:none;margin-bottom:2px}
  .real-item.large{grid-column:span 2;grid-row:span 2}
  .real-note{margin-top:18px;font-size:.85rem;color:var(--soft)}

  /* ---------- vidéos ---------- */
  .vids{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
  .vid{position:relative;aspect-ratio:9/16;border-radius:2px;overflow:hidden;background:var(--ink2)}
  .vid video{width:100%;height:100%;object-fit:cover;display:block}
  .vid .vcap{position:absolute;inset:auto 0 0 0;margin:0;padding:52px 14px 12px;background:linear-gradient(transparent,rgba(24,32,42,.45) 38%,rgba(24,32,42,.95));color:#fff;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-shadow:0 1px 3px rgba(0,0,0,.55)}
  .vids-note{margin-top:18px;font-size:.85rem;color:rgba(255,255,255,.55)}
  .vids-note + .vids-note{margin-top:12px;color:rgba(255,255,255,.4)}

  /* ---------- méthode : planning de chantier ---------- */
  .plan{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--ink);margin-top:8px}
  .phase{position:relative;padding:26px 26px 8px 0;border-right:1px solid var(--line)}
  .phase:last-child{border-right:0}
  .phase::before{content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;background:var(--minium);border-radius:50%}
  .phase .j{font-family:var(--disp);font-weight:800;font-size:.85rem;letter-spacing:.08em;color:var(--minium);text-transform:uppercase}
  .phase h3{margin-top:12px;font-size:1.1rem}
  .phase p{margin-top:8px;color:var(--soft);font-size:.92rem}

  /* ---------- avis ---------- */
  #avis{background:var(--paper)}
  .avis{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}
  .avis blockquote{font-family:var(--disp);font-size:1.12rem;font-weight:700;line-height:1.35;color:var(--ink)}
  .avis blockquote::before{content:"“";display:block;font-size:3.4rem;color:var(--minium);line-height:.7;margin-bottom:14px;font-family:var(--disp)}
  .avis .who{margin-top:16px;font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}

  /* ---------- zone ---------- */
  .zone{background:var(--ink);color:#fff}
  .zone-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:stretch}
  .zone .tag{color:var(--minium-lt)}
  .zone h2{font-size:clamp(2rem,3.6vw,3rem);margin-top:14px}
  .zone p{margin-top:16px;color:rgba(255,255,255,.72);max-width:520px;letter-spacing:.01em}
  .deps{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,1fr);column-gap:36px;border-top:1px solid var(--line-dark)}
  .dep{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-dark);font-family:var(--disp);font-weight:700;font-size:1.02rem}
  .dep small{flex:none;min-width:2.3em;font-family:var(--disp);font-weight:800;font-size:1.05rem;color:var(--minium-lt);letter-spacing:.02em}
  .zone-link{margin-top:24px;display:inline-flex;align-items:center;gap:9px;padding-bottom:2px;border-bottom:1px solid var(--minium);font-size:.95rem;font-weight:600;color:#fff;transition:color .18s ease}
  .zone-link svg{width:14px;height:14px;flex:none;fill:var(--minium)}
  .zone-link:hover{color:var(--minium-lt)}

  /* ---------- contact ---------- */
  .contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px}
  .contact h2{font-size:clamp(2rem,3.6vw,3rem);margin-top:14px}
  .contact .intro{margin-top:18px;color:var(--soft);max-width:430px}
  .contact .direct{margin-top:32px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
  .contact .direct a,.contact .direct span{display:flex;gap:12px;align-items:baseline;padding:13px 0;border-top:1px solid var(--line);font-size:1rem;font-weight:500}
  .contact .direct a:first-child,.contact .direct span:first-child{border-top:0}
  .contact .direct b{font-family:var(--disp);font-weight:800;min-width:96px;color:var(--minium)}
  .contact .direct a.tel{font-family:var(--disp);font-weight:800;font-size:1.5rem}
  form{display:grid;gap:18px;background:#fff;border:1px solid var(--line);border-radius:2px;padding:30px}
  .frow{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  label{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);display:block;margin-bottom:7px}
  input,select,textarea{width:100%;font-family:var(--body);font-size:1rem;padding:13px 14px;border:1px solid var(--line);border-radius:2px;background:#fff;color:var(--ink);transition:border .15s}
  input:focus,select:focus,textarea:focus{border-color:var(--minium-dark)}
  textarea{min-height:130px;resize:vertical}
  form .note{font-size:.8rem;color:var(--soft)}
  .form-ok{display:none;background:#EAF3EC;border:1px solid #BFD9C6;color:#2F6B4F;padding:16px 18px;border-radius:2px;font-size:.95rem}
  .form-ok.show{display:block}

  /* ---------- footer ---------- */
  footer{background:var(--ink);color:rgba(255,255,255,.72);padding:80px 0 40px;font-size:.92rem;border-top:1px solid var(--line-dark)}
  .foot{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:50px}
  footer h4{font-family:var(--disp);color:#fff;font-size:.95rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px}
  footer a:hover{color:#fff}
  footer li{list-style:none;margin:8px 0}
  .foot-brand .word{font-family:var(--disp);color:#fff;font-size:1.4rem;font-weight:800}
  .foot-brand .word span{color:var(--minium-lt)}
  .foot-brand p{margin-top:12px;max-width:300px}
  .legal{margin-top:50px;padding-top:24px;border-top:1px solid var(--line-dark);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.8rem;color:rgba(255,255,255,.62)}

  /* ---------- sticky mobile CTA ---------- */
  .sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:45;display:none;background:var(--ink);padding:10px 14px calc(10px + env(safe-area-inset-bottom));gap:10px;border-top:1px solid var(--line-dark)}
  .sticky-cta .btn{flex:1;justify-content:center;padding:13px 16px;font-size:.95rem}
  .sticky-cta .thumb{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none}

  /* ---------- rail d'appel flottant (desktop) ---------- */
  .side-call{position:fixed;right:14px;top:50%;transform:translateY(-50%) translateX(14px);z-index:44;display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--ink);border:1px solid var(--line-dark);border-radius:2px;padding:14px 10px;color:#fff;box-shadow:0 10px 26px rgba(24,32,42,.3);opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease,border-color .18s ease}
  .side-call.show{opacity:1;pointer-events:auto;transform:translateY(-50%) translateX(0)}
  .side-call.show:hover{border-color:var(--minium);transform:translateY(-50%) translateX(-2px)}
  .side-call .badge{position:relative;width:60px;height:60px;border-radius:50%;overflow:hidden;flex:none}
  .side-call .badge img{width:100%;height:100%;object-fit:cover;border-radius:0;transform:scale(1.55);transform-origin:50% 55.5%}
  .side-call .badge::before{content:"";position:absolute;inset:-6px;border:2px dashed var(--minium);border-radius:50%;animation:ringspin 22s linear infinite}
  @keyframes ringspin{to{transform:rotate(360deg)}}
  @media (prefers-reduced-motion:reduce){.side-call .badge::before{animation:none}}
  .side-call .lbl{writing-mode:vertical-rl;font-family:var(--disp);font-weight:800;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase}
  .side-call .lbl span{color:var(--minium-lt)}

  /* ---------- reveal ---------- */
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
  .reveal.visible{opacity:1;transform:none}
  @media (prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none}
    html{scroll-behavior:auto}
    .real-item img{transition:none}
  }

  /* ---------- responsive ---------- */
  @media (max-width:1080px){
    .hero-inner{padding:150px 0 76px}
    .about{grid-template-columns:1fr;gap:56px}
    .sec-top{grid-template-columns:1fr;gap:20px}
    .sec-top .lead{justify-self:start}
  }
  @media (max-width:980px){
    .nav-links,.nav-phone{display:none}
    .nav-cta{display:none}
    .nav{gap:16px}
    .burger{display:block}
    .sticky-cta{display:flex}
    .side-call{display:none}
    body{padding-bottom:64px}
    header.menu-open .nav-links{display:flex;flex-direction:column;align-items:stretch;position:absolute;top:100%;left:0;right:0;background:var(--ink);padding:20px 32px 30px;gap:4px;border-top:1px solid var(--line-dark)}
    header.menu-open .nav-links a{display:block;padding:12px 0;font-size:1.05rem;border-bottom:1px solid var(--line-dark)}
    header.menu-open .nav-links{overflow-y:auto;max-height:calc(100svh - 70px)}
    header.menu-open .nav-links>li{display:block}
    header.menu-open .nav-sub-group>a{color:#fff;font-weight:600}
    header.menu-open .nav-sub-group>a::after{display:none}
    header.menu-open .nav-drop{display:block;position:static;transform:none;min-width:0;background:none;border:0;box-shadow:none;padding:0}
    header.menu-open .nav-drop a{padding:11px 0 11px 18px;font-size:.98rem;color:rgba(255,255,255,.78);border-bottom:1px solid var(--line-dark)}
    header.menu-open .nav-drop a::before{content:"—";color:var(--minium-lt);margin-right:8px;opacity:.85}
    .devis-row{grid-template-columns:48px 1fr auto;grid-template-areas:"ref h3 go" "ref p go";row-gap:6px}
    .devis-row .ref{grid-area:ref}
    .devis-row h3{grid-area:h3}
    .devis-row p{grid-area:p}
    .devis-row .go{grid-area:go;opacity:1;transform:none}
    .zone-grid,.contact{grid-template-columns:1fr;gap:48px}
    .plan{grid-template-columns:1fr 1fr}
    .phase:nth-child(2){border-right:0}
    .phase{border-bottom:1px solid var(--line);padding-bottom:26px}
    .avis{grid-template-columns:1fr;gap:34px}
    .foot{grid-template-columns:1fr 1fr}
  }
  @media (max-width:640px){
    .section{padding:76px 0}
    .wrap{padding:0 22px}
    .real-grid{grid-template-columns:1fr 1fr;grid-auto-rows:170px}
    .real-item.large{grid-column:span 2;grid-row:span 1}
    .deps{grid-template-columns:1fr;grid-template-rows:none;column-gap:0}
    .dep{padding:11px 0;font-size:.98rem}
    .zone-link{font-size:.9rem}
    .vids{grid-template-columns:1fr}
    .frow{grid-template-columns:1fr}
    .plan{grid-template-columns:1fr}
    .phase{border-right:0}
    .foot{grid-template-columns:1fr}
    .stamp{width:96px;height:96px;right:14px;bottom:14px}
    .hero .trust span{display:block;margin:8px 0}
  }

/* ---- pages annexes : fil d'Ariane, hero de page, prose, FAQ, liens ---- */
.crumbs{border-bottom:1px solid rgba(255,255,255,.08);background:#101820}
.crumbs .wrap{padding:10px 0;font:600 12.5px/1.4 "Schibsted Grotesk",system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#93A3B4}
.crumbs a{color:#FF6B5C;text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.page-hero{padding:64px 0 46px;background:linear-gradient(180deg,#18202A 0%,#131A22 100%)}
.page-hero h1{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:clamp(30px,4.6vw,52px);line-height:1.06;margin:14px 0 18px;color:#fff;letter-spacing:-.02em}
.page-hero .lede{max-width:70ch;color:#C7D2DC;font-size:17.5px;line-height:1.65}
.page-hero .ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.page-hero .tag{color:#FF6B5C}
.prose{max-width:78ch}
.prose h2{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:clamp(22px,2.4vw,30px);line-height:1.15;margin:42px 0 14px;color:#fff}
.prose p{color:#C7D2DC;font-size:16.5px;line-height:1.7;margin:0 0 14px}
.prose ul.bullets{margin:0 0 18px;padding-left:0;list-style:none}
.prose ul.bullets li{position:relative;padding-left:22px;margin-bottom:9px;color:#C7D2DC;font-size:16.5px;line-height:1.6}
.prose ul.bullets li:before{content:"◆";position:absolute;left:0;top:2px;color:var(--minium);font-size:11px}
.page-links{list-style:none;padding:0;margin:8px 0 30px;display:grid;gap:10px}
.page-links a{color:#FF6B5C;text-decoration:none;border-bottom:1px solid rgba(255,107,92,.35);padding-bottom:2px}
.page-links a:hover{border-bottom-color:#FF6B5C}
.faq{display:grid;gap:10px;margin-top:18px}
.faq-item{border-left:2px solid var(--minium);padding:14px 18px;background:#141C24}
.faq-item summary{cursor:pointer;font-weight:700;color:#fff;font-size:16.5px}
.faq-item p{margin:10px 0 0;color:#C7D2DC;font-size:16px;line-height:1.65}
.nap{margin:38px 0 0;padding:18px 20px;background:#141C24;border-left:2px solid #FF6B5C;color:#C7D2DC;font-size:15.5px;line-height:1.6}
.nap a{color:#FF6B5C;text-decoration:none}
.nap-hours{color:#93A3B4;font-size:14.5px;margin:6px 0 0}
.page-nav{margin:0 0 22px}
.page-nav h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;color:#fff;font-size:17px;margin:0 0 10px;letter-spacing:.01em}
.nav-links .nav-drop a{font-size:12.5px;letter-spacing:.04em}
