:root{
    color-scheme:light;
    --concrete-light:#E8E3D9;
    --concrete-mid:#B9B0A0;
    --charcoal:#241F1A;
    --charcoal-2:#2F2A23;
    --steel:#4A4E52;
    --signal:#D0461E;
    --signal-dark:#A63817;
    --paper:#F7F4EE;
    --ink:#221E19;
    --font-display:'Big Shoulders Display', sans-serif;
    --font-body:'Inter', sans-serif;
    --font-mono:'JetBrains Mono', monospace;
  }

  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}
  }

  body{
    background-color:var(--concrete-light);
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--concrete-light);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }

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

  :focus-visible{outline:3px solid var(--signal);outline-offset:2px;}

  .wrap{
    max-width:1240px;
    margin:0 auto;
    padding-left:clamp(20px,5vw,48px);
    padding-right:clamp(20px,5vw,48px);
  }

  .eyebrow{
    font-family:var(--font-mono);
    font-size:12.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--signal);
    font-weight:600;
    display:inline-flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:22px;height:2px;
    background:var(--signal);
    display:inline-block;
  }

  h1,h2,h3{
    font-family:var(--font-display);
    text-transform:uppercase;
    line-height:0.98;
    letter-spacing:0.01em;
    font-weight:800;
  }

  /* ---------- Seam / tie-hole signature motif ---------- */
  .seam-divider{
    position:relative;
    height:26px;
    background:
      repeating-linear-gradient(90deg,
        transparent 0 19px,
        rgba(0,0,0,0.06) 19px 20px,
        transparent 20px 41px,
        rgba(0,0,0,0.06) 41px 42px,
        transparent 42px 68px,
        rgba(0,0,0,0.06) 68px 69px);
  }
  .seam-divider::before,
  .seam-divider::after{
    content:"";
    position:absolute;
    top:50%;left:0;right:0;
    height:1px;
    background:rgba(0,0,0,0.08);
  }
  .seam-divider--dark{
    background:
      repeating-linear-gradient(90deg,
        transparent 0 19px,
        rgba(247,244,238,0.06) 19px 20px,
        transparent 20px 41px,
        rgba(247,244,238,0.06) 41px 42px,
        transparent 42px 68px,
        rgba(247,244,238,0.06) 68px 69px);
  }
  .seam-divider--dark::before,
  .seam-divider--dark::after{background:rgba(247,244,238,0.08);}

  .tie-holes{
    position:absolute;
    inset:0;
    background-image:radial-gradient(circle, rgba(247,244,238,0.14) 1.6px, transparent 1.7px);
    background-size:34px 34px;
    pointer-events:none;
  }

  /* ---------- Header ---------- */
  .site-header{
    position:sticky;top:0;z-index:100;
    background:rgba(36,31,26,0.96);
    backdrop-filter:blur(6px);
    border-bottom:1px solid rgba(247,244,238,0.08);
  }
  .site-header .wrap{
    display:flex;align-items:center;justify-content:space-between;
    height:76px;
  }
  .logo{display:flex;align-items:center;}
  .logo img{
    height:44px;
    width:auto;
    display:block;
  }
  @media (max-width:520px){
    .logo img{height:36px;}
  }
  .main-nav{display:flex;align-items:center;gap:36px;}
  .main-nav ul{display:flex;gap:32px;}
  .main-nav a{
    font-size:14px;font-weight:600;
    color:var(--paper);
    text-transform:uppercase;
    letter-spacing:0.03em;
    position:relative;
    padding:6px 0;
  }
  .main-nav a::after{
    content:"";position:absolute;left:0;bottom:0;
    width:0;height:2px;background:var(--signal);
    transition:width 0.25s ease;
  }
  .main-nav a:hover::after,
  .main-nav a.active::after{width:100%;}
  .header-cta{
    display:flex;align-items:center;gap:8px;
    background:var(--signal-dark);
    color:var(--paper) !important;
    font-family:var(--font-mono);
    font-weight:600;font-size:14px;
    padding:10px 18px;
    white-space:nowrap;
  }
  .header-cta:hover{background:var(--signal);}
  .header-cta svg{width:15px;height:15px;flex-shrink:0;}

  .nav-toggle{
    display:none;
    background:none;border:none;
    width:32px;height:32px;
    position:relative;
  }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
    content:"";position:absolute;left:5px;right:5px;height:2px;background:var(--paper);
    transition:transform 0.2s ease, opacity 0.2s ease;
  }
  .nav-toggle span{top:15px;}
  .nav-toggle span::before{top:-8px;}
  .nav-toggle span::after{top:8px;}
  .nav-toggle[aria-expanded="true"] span{background:transparent;}
  .nav-toggle[aria-expanded="true"] span::before{transform:translateY(8px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span::after{transform:translateY(-8px) rotate(-45deg);}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    min-height:88vh;
    display:flex;
    align-items:flex-end;
    background:var(--charcoal);
    overflow:hidden;
  }
  .hero-media{
    position:absolute;inset:0;
  }
  .hero-media img{
    width:100%;height:100%;object-fit:cover;
    opacity:0.62;
  }
  .hero-media::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(36,31,26,0.30) 0%, rgba(36,31,26,0.62) 45%, rgba(36,31,26,0.97) 90%);
  }
  .hero-content{
    position:relative;
    z-index:2;
    padding-top:120px;
    padding-bottom:64px;
    width:100%;
  }
  .hero h1, .hero .hero-sub, .hero .eyebrow, .hero-trust{
    text-shadow:0 2px 14px rgba(20,17,14,0.7);
  }
  .hero h1{
    color:var(--paper);
    font-size:clamp(40px, 7.2vw, 92px);
    max-width:16ch;
    margin:18px 0 22px;
  }
  .hero-sub{
    color:var(--concrete-light);
    font-size:clamp(16px,2vw,20px);
    max-width:46ch;
    margin-bottom:34px;
  }
  .cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:26px;}
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:16px 28px;
    font-weight:700;font-size:15px;
    text-transform:uppercase;letter-spacing:0.04em;
    border:2px solid transparent;
    transition:background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }
  .btn svg{width:16px;height:16px;flex-shrink:0;}
  .btn-primary{background:var(--signal-dark);color:var(--paper);}
  .btn-primary:hover{background:var(--signal);}
  .btn-ghost{border-color:rgba(247,244,238,0.5);color:var(--paper);}
  .btn-ghost:hover{border-color:var(--paper);background:rgba(247,244,238,0.08);}
  .hero-trust{
    font-family:var(--font-mono);
    font-size:12.5px;
    letter-spacing:0.05em;
    color:var(--concrete-mid);
  }

  /* ---------- Stats strip ---------- */
  .stats-strip{
    background:var(--charcoal-2);
    position:relative;
  }
  .stats-strip .wrap{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    position:relative;
    z-index:1;
  }
  .stat{
    padding:38px 20px;
    text-align:center;
    border-left:1px solid rgba(247,244,238,0.1);
  }
  .stat:first-child{border-left:none;}
  .stat-num{
    font-family:var(--font-mono);
    font-weight:600;
    font-size:clamp(30px,5vw,46px);
    color:var(--paper);
    display:block;
  }
  .stat-label{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.09em;
    text-transform:uppercase;
    color:var(--concrete-mid);
    display:block;
    margin-top:8px;
  }

  /* ---------- Section shell ---------- */
  section{padding:96px 0;}
  .section-head{max-width:640px;margin-bottom:56px;}
  .section-head h2{
    font-size:clamp(30px,4.2vw,50px);
    margin-top:14px;
    color:var(--ink);
  }
  .section-head--dark h2{color:var(--paper);}
  .section-head p{
    margin-top:18px;
    font-size:16.5px;
    color:var(--steel);
    max-width:56ch;
  }
  .section-head--dark p{color:var(--concrete-mid);}
  .why-us .eyebrow, .contact .eyebrow, .page-banner .eyebrow{color:#E8703F;}
  .why-us .eyebrow::before, .contact .eyebrow::before,
  .page-banner .eyebrow::before{background:#E8703F;}

  /* ---------- About ---------- */
  .about{background:var(--concrete-light);}
  .about-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:64px;
    align-items:center;
  }
  .about-copy p{
    font-size:16.5px;
    color:var(--steel);
    margin-bottom:18px;
    max-width:52ch;
  }
  .about-copy .btn-primary{margin-top:10px;}
  .about-photo{
    position:relative;
    border:1px solid rgba(34,30,25,0.15);
    aspect-ratio:4/5;
    overflow:hidden;
    background:var(--concrete-mid);
  }
  .about-photo img{width:100%;height:100%;object-fit:cover;}

  /* ---------- Services ---------- */
  .services{background:var(--paper);}
  .service-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:rgba(34,30,25,0.14);
    border:1px solid rgba(34,30,25,0.14);
  }
  .service-card{
    background:var(--paper);
    padding:40px 32px;
    display:flex;
    flex-direction:column;
    transition:background 0.2s ease;
  }
  .service-card:hover{background:var(--concrete-light);}
  .service-icon{
    width:46px;height:46px;
    color:var(--signal-dark);
    margin-bottom:22px;
  }
  .service-icon svg{width:100%;height:100%;}
  .service-card h3{
    font-size:23px;
    text-transform:none;
    letter-spacing:0;
    font-weight:800;
    margin-bottom:12px;
    color:var(--ink);
  }
  .service-card p{
    font-size:15px;
    color:var(--steel);
    flex-grow:1;
    margin-bottom:20px;
  }
  .service-link{
    font-family:var(--font-mono);
    font-size:13px;
    font-weight:600;
    color:var(--signal-dark);
    letter-spacing:0.02em;
    display:inline-flex;
    align-items:center;
    gap:6px;
  }
  .service-link svg{width:13px;height:13px;transition:transform 0.2s ease;}
  .service-card:hover .service-link svg{transform:translateX(4px);}

  /* ---------- Why us ---------- */
  .why-us{
    background:var(--charcoal);
    position:relative;
    overflow:hidden;
  }
  .why-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:40px;
    position:relative;
    z-index:1;
  }
  .why-item{border-top:2px solid var(--signal-dark);padding-top:22px;}
  .why-icon{width:26px;height:26px;color:var(--signal);margin-bottom:16px;}
  .why-icon svg{width:100%;height:100%;}
  .why-item h3{
    font-size:19px;text-transform:none;letter-spacing:0;
    font-weight:700;color:var(--paper);margin-bottom:10px;
  }
  .why-item p{font-size:15px;color:var(--concrete-mid);}

  /* ---------- Gallery ---------- */
  .gallery{background:var(--concrete-light);}
  .gallery-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:6px;
  }
  .gallery-grid a{
    display:block;
    overflow:hidden;
    background:var(--concrete-mid);
    aspect-ratio:1/1;
    position:relative;
  }
  .gallery-grid a.tall{grid-column:span 2;grid-row:span 2;aspect-ratio:1/1;}
  .gallery-grid img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 0.4s ease;
  }
  .gallery-grid a:hover img{transform:scale(1.06);}
  .gallery-foot{
    margin-top:32px;
    display:flex;justify-content:center;
  }

  /* ---------- Contact ---------- */
  .contact{
    background:var(--charcoal-2);
    position:relative;
    overflow:hidden;
  }
  .contact-grid{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:64px;
    position:relative;
    z-index:1;
  }
  .contact-info h3{
    text-transform:none;letter-spacing:0;font-weight:800;
    font-size:20px;color:var(--paper);margin-bottom:22px;
  }
  .contact-list{display:flex;flex-direction:column;gap:18px;margin-bottom:30px;}
  .contact-list li{display:flex;gap:14px;align-items:flex-start;color:var(--concrete-light);font-size:15px;}
  .contact-list svg{width:19px;height:19px;flex-shrink:0;color:var(--signal);margin-top:2px;}
  .contact-list a:hover{color:var(--signal);}
  .social-row{display:flex;gap:12px;}
  .social-row a{
    width:40px;height:40px;
    border:1px solid rgba(247,244,238,0.25);
    display:flex;align-items:center;justify-content:center;
    color:var(--paper);
    transition:border-color 0.2s ease, color 0.2s ease;
  }
  .social-row a:hover{border-color:var(--signal);color:var(--signal);}
  .social-row svg{width:18px;height:18px;}

  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  .field{display:flex;flex-direction:column;gap:8px;}
  .field.full{grid-column:1/-1;}
  .field label{
    font-family:var(--font-mono);font-size:11.5px;
    letter-spacing:0.06em;text-transform:uppercase;
    color:var(--concrete-mid);
  }
  .field input, .field textarea{
    background:rgba(247,244,238,0.06);
    border:1px solid rgba(247,244,238,0.2);
    color:var(--paper);
    padding:13px 14px;
    font-size:15px;
  }
  .field input:focus, .field textarea:focus{
    border-color:var(--signal);
    background:rgba(247,244,238,0.1);
    outline:none;
  }
  .field textarea{resize:vertical;min-height:100px;}
  .form-grid .btn-primary{
    grid-column:1/-1;
    border:none;
    justify-self:start;
    margin-top:6px;
  }
  .form-note{
    font-size:12.5px;color:var(--concrete-mid);
    margin-top:14px;grid-column:1/-1;
  }
  .form-success{
    display:none;
    grid-column:1/-1;
    font-family:var(--font-mono);
    font-size:14px;
    color:var(--paper);
    background:rgba(208,70,30,0.18);
    border:1px solid var(--signal);
    padding:14px 16px;
  }
  .form-success.show{display:block;}

  /* ---------- Footer ---------- */
  footer{background:var(--charcoal);border-top:1px solid rgba(247,244,238,0.08);padding:56px 0 28px;}
  .footer-grid{
    display:grid;
    grid-template-columns:1.5fr 1fr 1fr 1fr;
    gap:40px;
    padding-bottom:40px;
  }
  .footer-logo{margin-bottom:18px;}
  .footer-logo img{height:52px;width:auto;display:block;}
  .footer-grid p{color:var(--concrete-mid);font-size:14px;margin-bottom:6px;}
  .footer-col h4{
    font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;
    text-transform:uppercase;color:var(--signal);margin-bottom:16px;font-weight:600;
  }
  .footer-col ul{display:flex;flex-direction:column;gap:10px;}
  .footer-col a{color:var(--concrete-mid);font-size:14px;}
  .footer-col a:hover{color:var(--paper);}
  .footer-bottom{
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
    padding-top:24px;border-top:1px solid rgba(247,244,238,0.08);
    font-size:12.5px;color:var(--steel);
  }
  .footer-bottom a{color:var(--steel);}
  .footer-bottom a:hover{color:var(--paper);}

  /* ---------- Reveal animation ---------- */
  .reveal{opacity:0;transform:translateY(24px);transition:opacity 0.7s ease, transform 0.7s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* ---------- Responsive ---------- */
  @media (max-width:880px){
    .main-nav{
      position:fixed;top:76px;left:0;right:0;bottom:0;
      background:var(--charcoal);
      flex-direction:column;align-items:flex-start;
      padding:32px clamp(20px,5vw,48px);
      transform:translateX(100%);
      transition:transform 0.3s ease;
      gap:28px;
    }
    .main-nav.open{transform:translateX(0);}
    .main-nav ul{flex-direction:column;gap:22px;}
    .main-nav a{font-size:20px;}
    .nav-toggle{display:block;}
    .about{background:var(--concrete-light);}
  .about-grid{grid-template-columns:1fr;gap:36px;}
    .about-photo{order:-1;aspect-ratio:16/10;}
    .service-grid{grid-template-columns:1fr;}
    .why-grid{grid-template-columns:1fr;gap:28px;}
    .stats-strip .wrap{grid-template-columns:1fr;}
    .stat{border-left:none;border-top:1px solid rgba(247,244,238,0.1);}
    .stat:first-child{border-top:none;}
    .contact-grid{grid-template-columns:1fr;gap:48px;}
    .gallery{background:var(--concrete-light);}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .gallery-grid a.tall{grid-column:span 2;grid-row:span 1;aspect-ratio:16/10;}
    .footer-grid{grid-template-columns:1fr;gap:32px;}
    .form-grid{grid-template-columns:1fr;}
  }
  @media (max-width:520px){
    section{padding:64px 0;}
    .hero{min-height:92vh;}
    .btn{padding:14px 22px;font-size:14px;}
  }
  /* ================= Pages intérieures ================= */

  /* ---------- Bandeau de titre ---------- */
  .page-banner{
    position:relative;
    background:var(--charcoal);
    overflow:hidden;
    display:flex;
    align-items:flex-end;
    min-height:340px;
  }
  .page-banner .hero-media img{opacity:0.34;}
  .page-banner .hero-media::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(36,31,26,0.62) 0%, rgba(36,31,26,0.82) 45%, rgba(36,31,26,0.97) 100%);
  }
  /* Ombre portée : garantit la lisibilité même sur une photo claire */
  .page-banner h1, .page-banner .lede, .page-banner .eyebrow{
    text-shadow:0 2px 12px rgba(20,17,14,0.75);
  }
  .page-banner-content{
    position:relative;z-index:2;width:100%;
    padding-top:100px;padding-bottom:46px;
  }
  .page-banner h1{
    color:var(--paper);
    font-size:clamp(34px,5.4vw,64px);
    margin-top:16px;
    max-width:20ch;
  }
  .page-banner .lede{
    color:var(--concrete-light);
    font-size:clamp(15.5px,1.7vw,18px);
    max-width:52ch;
    margin-top:18px;
  }

  /* ---------- Fil d'Ariane ---------- */
  .breadcrumb{
    background:var(--charcoal-2);
    border-bottom:1px solid rgba(247,244,238,0.08);
  }
  .breadcrumb .wrap{
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    padding-top:14px;padding-bottom:14px;
    font-family:var(--font-mono);
    font-size:11.5px;letter-spacing:0.06em;text-transform:uppercase;
    color:var(--concrete-mid);
  }
  .breadcrumb a{color:var(--concrete-mid);}
  .breadcrumb a:hover{color:var(--signal);}
  .breadcrumb span[aria-current]{color:var(--paper);}
  .breadcrumb svg{width:11px;height:11px;opacity:0.5;}

  /* ---------- Colonne de texte ---------- */
  .prose{max-width:720px;}
  .prose h2{
    font-size:clamp(26px,3.4vw,38px);
    color:var(--ink);
    margin:0 0 20px;
  }
  .prose h3{
    font-family:var(--font-body);
    text-transform:none;
    letter-spacing:0;
    font-weight:800;
    font-size:20px;
    line-height:1.3;
    color:var(--ink);
    margin:38px 0 14px;
  }
  .prose p{
    font-size:16.5px;
    color:var(--steel);
    margin-bottom:18px;
  }
  .prose strong{color:var(--ink);font-weight:600;}

  /* Liste à puces carrées */
  .square-list{margin:0 0 24px;}
  .square-list li{
    position:relative;
    padding-left:26px;
    margin-bottom:12px;
    font-size:16px;
    color:var(--steel);
  }
  .square-list li::before{
    content:"";
    position:absolute;
    left:0;top:9px;
    width:8px;height:8px;
    background:var(--signal);
  }

  /* ---------- Mise en page à deux colonnes ---------- */
  .split{
    display:grid;
    grid-template-columns:1.35fr 0.65fr;
    gap:56px;
    align-items:start;
  }
  .aside-card{
    background:var(--charcoal);
    padding:32px 28px;
    position:sticky;
    top:100px;
  }
  .aside-card h3{
    font-family:var(--font-body);
    text-transform:none;letter-spacing:0;
    font-size:19px;font-weight:800;
    color:var(--paper);
    margin-bottom:12px;
  }
  .aside-card p{
    font-size:14.5px;
    color:var(--concrete-mid);
    margin-bottom:20px;
  }
  .aside-card .btn{width:100%;justify-content:center;}
  .aside-phone{
    display:block;
    margin-top:14px;
    text-align:center;
    font-family:var(--font-mono);
    font-size:15px;
    color:var(--paper);
  }
  .aside-phone:hover{color:var(--signal);}
  .aside-note{
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid rgba(247,244,238,0.12);
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.05em;
    color:var(--steel);
    text-align:center;
  }

  /* ---------- Bande de rappel ---------- */
  .cta-band{
    background:var(--signal-dark);
    padding:52px 0;
  }
  .cta-band .wrap{
    display:flex;align-items:center;justify-content:space-between;
    gap:32px;flex-wrap:wrap;
  }
  .cta-band h2{
    color:var(--paper);
    font-size:clamp(26px,3.4vw,40px);
    max-width:20ch;
  }
  .cta-band .btn{
    background:var(--paper);
    color:var(--signal-dark);
    flex-shrink:0;
  }
  .cta-band .btn:hover{background:#fff;}

  /* ---------- Grille de secteurs (page Services) ---------- */
  .sector-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:rgba(34,30,25,0.14);
    border:1px solid rgba(34,30,25,0.14);
    margin-top:12px;
  }
  .sector-card{
    background:var(--paper);
    display:flex;flex-direction:column;
  }
  .sector-photo{
    aspect-ratio:16/10;
    overflow:hidden;
    background:var(--concrete-mid);
  }
  .sector-photo img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s ease;}
  .sector-card:hover .sector-photo img{transform:scale(1.05);}
  .sector-body{padding:32px 30px 34px;display:flex;flex-direction:column;flex-grow:1;}
  .sector-card h3{
    font-family:var(--font-body);
    text-transform:none;letter-spacing:0;
    font-size:22px;font-weight:800;
    color:var(--ink);margin-bottom:12px;
  }
  .sector-card p{font-size:15px;color:var(--steel);margin-bottom:20px;flex-grow:1;}
  .sector-card .service-link svg{transition:transform 0.2s ease;}
  .sector-card:hover .service-link svg{transform:translateX(4px);}

  /* ---------- Liste de travaux ---------- */
  .work-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:rgba(34,30,25,0.14);
    border:1px solid rgba(34,30,25,0.14);
  }
  .work-list li{
    background:var(--concrete-light);
    padding:18px 20px;
    font-size:15px;
    color:var(--ink);
    display:flex;align-items:center;gap:12px;
  }
  .work-list li::before{
    content:"";
    width:7px;height:7px;
    background:var(--signal);
    flex-shrink:0;
  }

  /* ---------- Galerie pleine page ---------- */
  .gallery-full{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:6px;
  }
  .gallery-full a{
    display:block;overflow:hidden;
    background:var(--concrete-mid);
    aspect-ratio:1/1;
    position:relative;
  }
  .gallery-full img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s ease;}
  .gallery-full a:hover img{transform:scale(1.06);}
  .gallery-full a::after{
    content:"";
    position:absolute;inset:0;
    background:rgba(36,31,26,0);
    transition:background 0.3s ease;
  }
  .gallery-full a:hover::after{background:rgba(36,31,26,0.15);}

  /* Visionneuse */
  .lightbox{
    position:fixed;inset:0;z-index:200;
    background:rgba(20,17,14,0.94);
    display:none;
    align-items:center;justify-content:center;
    padding:24px;
  }
  .lightbox.open{display:flex;}
  .lightbox img{
    max-width:92vw;max-height:84vh;
    object-fit:contain;
  }
  .lightbox-close, .lightbox-prev, .lightbox-next{
    position:absolute;
    background:transparent;
    border:1px solid rgba(247,244,238,0.35);
    color:var(--paper);
    width:46px;height:46px;
    display:flex;align-items:center;justify-content:center;
  }
  .lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{
    border-color:var(--signal);color:var(--signal);
  }
  .lightbox-close{top:24px;right:24px;}
  .lightbox-prev{left:24px;top:50%;transform:translateY(-50%);}
  .lightbox-next{right:24px;top:50%;transform:translateY(-50%);}
  .lightbox svg{width:18px;height:18px;}
  .lightbox-counter{
    position:absolute;
    bottom:26px;left:50%;transform:translateX(-50%);
    font-family:var(--font-mono);
    font-size:12.5px;
    letter-spacing:0.08em;
    color:var(--concrete-mid);
  }

  /* ---------- Page Contact ---------- */
  .contact-page-grid{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:64px;
  }
  .info-block{margin-bottom:34px;}
  .info-block h3{
    font-family:var(--font-body);
    text-transform:none;letter-spacing:0;
    font-size:13px;font-weight:700;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--signal-dark);
    margin-bottom:14px;
  }
  .info-block p, .info-block a{
    font-size:16px;color:var(--steel);
  }
  .info-block a:hover{color:var(--signal-dark);}
  .info-block .big{
    font-family:var(--font-mono);
    font-size:21px;
    color:var(--ink);
    font-weight:600;
    display:block;
    margin-bottom:6px;
  }
  .hours-list li{
    display:flex;justify-content:space-between;
    max-width:280px;
    font-size:15px;
    color:var(--steel);
    padding:7px 0;
    border-bottom:1px solid rgba(34,30,25,0.1);
  }
  .map-embed{
    position:relative;
    margin-top:6px;
    border:1px solid rgba(34,30,25,0.15);
    background:var(--concrete-mid);
    padding-bottom:43.75%;   /* proportion 16:7 */
    height:0;
    overflow:hidden;
  }
  .map-embed iframe{
    position:absolute;
    top:0;left:0;
    width:100%;
    height:100%;
    border:0;
    display:block;
  }
  .map-note{
    margin-top:14px;
  }
  .map-note a{
    font-family:var(--font-mono);
    font-size:13px;
    font-weight:600;
    letter-spacing:0.02em;
    color:var(--signal-dark);
    display:inline-flex;
    align-items:center;
    gap:7px;
  }
  .map-note svg{width:13px;height:13px;transition:transform 0.2s ease;}
  .map-note a:hover svg{transform:translateX(4px);}
  @media (max-width:520px){
    .map-embed{padding-bottom:75%;}   /* proportion 4:3 sur téléphone */
  }

  /* Formulaire sur fond pâle */
  .form-light .field label{color:var(--steel);}
  .form-light .field input,
  .form-light .field textarea{
    background:var(--paper);
    border:1px solid rgba(34,30,25,0.22);
    color:var(--ink);
  }
  .form-light .field input:focus,
  .form-light .field textarea:focus{
    border-color:var(--signal);
    background:#fff;
  }
  .form-light .form-note{color:var(--steel);}
  .form-light .form-success{
    background:rgba(208,70,30,0.12);
    border:1px solid var(--signal-dark);
    color:var(--ink);
  }
  .form-shell{
    background:var(--paper);
    border:1px solid rgba(34,30,25,0.14);
    padding:38px 36px;
  }
  .form-shell h3{
    font-family:var(--font-body);
    text-transform:none;letter-spacing:0;
    font-size:22px;font-weight:800;
    color:var(--ink);margin-bottom:8px;
  }
  .form-shell > p.intro{
    font-size:15px;color:var(--steel);margin-bottom:26px;
  }

  /* ---------- Responsive pages intérieures ---------- */
  @media (max-width:880px){
    .split{grid-template-columns:1fr;gap:40px;}
    .aside-card{position:static;}
    .sector-grid{grid-template-columns:1fr;}
    .work-list{grid-template-columns:1fr 1fr;}
    .gallery-full{grid-template-columns:repeat(2,1fr);}
    .contact-page-grid{grid-template-columns:1fr;gap:44px;}
    .cta-band .wrap{flex-direction:column;align-items:flex-start;}
    .page-banner{min-height:280px;}
  }
  @media (max-width:520px){
    .work-list{grid-template-columns:1fr;}
    .form-shell{padding:26px 20px;}
    .lightbox-prev{left:10px;}
    .lightbox-next{right:10px;}
  }

  /* ================= Barre utilitaire (inspirée de Pépin Fortin) ================= */
  .utility-bar{
    background:var(--charcoal-2);
    border-bottom:1px solid rgba(247,244,238,0.07);
  }
  .utility-bar .wrap{
    display:flex;align-items:center;justify-content:space-between;
    gap:20px;flex-wrap:wrap;
    padding-top:9px;padding-bottom:9px;
  }
  .utility-left{display:flex;align-items:center;gap:26px;flex-wrap:wrap;}
  .utility-left a, .utility-left span{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.05em;
    color:var(--concrete-mid);
    display:inline-flex;align-items:center;gap:7px;
  }
  .utility-left a:hover{color:var(--signal);}
  .utility-left svg{width:13px;height:13px;flex-shrink:0;opacity:0.8;}
  .utility-right{display:flex;align-items:center;gap:16px;}
  .utility-right .jobs-link{
    font-family:var(--font-mono);
    font-size:11.5px;letter-spacing:0.06em;text-transform:uppercase;
    color:var(--signal);
    border:1px solid var(--signal-dark);
    padding:5px 12px;
  }
  .utility-right .jobs-link:hover{background:var(--signal-dark);color:var(--paper);}
  .utility-social{display:flex;gap:12px;}
  .utility-social a{color:var(--concrete-mid);display:flex;}
  .utility-social a:hover{color:var(--signal);}
  .utility-social svg{width:15px;height:15px;}

  @media (max-width:880px){
    .utility-bar{display:none;}
  }

  /* ================= Fiches de projet ================= */
  .project-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
  }
  .project-card{
    background:var(--paper);
    border:1px solid rgba(34,30,25,0.14);
    display:flex;flex-direction:column;
    transition:border-color 0.2s ease, transform 0.2s ease;
  }
  .project-card:hover{border-color:var(--signal-dark);transform:translateY(-3px);}
  .project-photo{
    aspect-ratio:3/2;overflow:hidden;background:var(--concrete-mid);
  }
  .project-photo img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s ease;}
  .project-card:hover .project-photo img{transform:scale(1.05);}
  .project-body{padding:24px 24px 26px;display:flex;flex-direction:column;flex-grow:1;}
  .project-tag{
    font-family:var(--font-mono);
    font-size:11px;letter-spacing:0.09em;text-transform:uppercase;
    color:var(--signal-dark);
    margin-bottom:10px;
  }
  .project-card h3{
    font-family:var(--font-body);
    text-transform:none;letter-spacing:0;
    font-size:18px;font-weight:800;line-height:1.3;
    color:var(--ink);margin-bottom:10px;
  }
  .project-card p{font-size:14.5px;color:var(--steel);flex-grow:1;}
  .project-meta{
    display:flex;flex-wrap:wrap;gap:8px 20px;
    margin-top:16px;padding-top:14px;
    border-top:1px solid rgba(34,30,25,0.12);
  }
  .project-meta span{
    font-family:var(--font-mono);
    font-size:11.5px;letter-spacing:0.04em;
    color:var(--steel);
  }
  .project-meta strong{color:var(--ink);font-weight:600;}

  /* ================= Page Carrières ================= */
  .perks-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:28px;
  }
  .perk{border-top:2px solid var(--signal-dark);padding-top:20px;}
  .perk svg{width:24px;height:24px;color:var(--signal);margin-bottom:14px;}
  .perk h3{
    font-family:var(--font-body);text-transform:none;letter-spacing:0;
    font-size:17px;font-weight:700;color:var(--paper);margin-bottom:8px;
  }
  .perk p{font-size:14.5px;color:var(--concrete-mid);}

  .job-list{display:flex;flex-direction:column;gap:1px;background:rgba(34,30,25,0.14);border:1px solid rgba(34,30,25,0.14);}
  .job-row{
    background:var(--paper);
    padding:24px 28px;
    display:flex;align-items:center;justify-content:space-between;
    gap:24px;flex-wrap:wrap;
    transition:background 0.2s ease;
  }
  .job-row:hover{background:var(--concrete-light);}
  .job-row h3{
    font-family:var(--font-body);text-transform:none;letter-spacing:0;
    font-size:19px;font-weight:800;color:var(--ink);margin-bottom:6px;
  }
  .job-row p{font-size:14.5px;color:var(--steel);}
  .job-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
  .job-tags span{
    font-family:var(--font-mono);
    font-size:11px;letter-spacing:0.05em;text-transform:uppercase;
    color:var(--steel);
    border:1px solid rgba(34,30,25,0.2);
    padding:4px 9px;
  }

  @media (max-width:880px){
    .project-grid{grid-template-columns:1fr;}
    .perks-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:520px){
    .perks-grid{grid-template-columns:1fr;}
  }

  /* ---------- Ajustements propres à WordPress ---------- */
  .admin-bar .site-header{top:32px;}
  @media screen and (max-width:782px){
    .admin-bar .site-header{top:46px;}
  }
  .screen-reader-text{
    position:absolute;width:1px;height:1px;overflow:hidden;
    clip:rect(0,0,0,0);white-space:nowrap;
  }
  .skip-link:focus{
    position:fixed;top:10px;left:10px;z-index:300;
    background:var(--signal-dark);color:var(--paper);
    padding:12px 18px;width:auto;height:auto;clip:auto;
  }
  /* Le menu WordPress reprend le style du menu de la maquette */
  .main-nav ul.menu, .main-nav ul#primary-menu{display:flex;gap:32px;list-style:none;}
  .main-nav .menu-item a{
    font-size:14px;font-weight:600;color:var(--paper);
    text-transform:uppercase;letter-spacing:0.03em;
    position:relative;padding:6px 0;display:inline-block;
  }
  .main-nav .menu-item a::after{
    content:"";position:absolute;left:0;bottom:0;
    width:0;height:2px;background:var(--signal);
    transition:width 0.25s ease;
  }
  .main-nav .menu-item a:hover::after,
  .main-nav .current-menu-item a::after{width:100%;}
  @media (max-width:880px){
    .main-nav ul.menu, .main-nav ul#primary-menu{flex-direction:column;gap:22px;}
    .main-nav .menu-item a{font-size:20px;}
  }
  /* Messages de formulaire */
  .form-message{
    grid-column:1/-1;padding:14px 16px;font-size:14.5px;
    border:1px solid var(--signal);background:rgba(208,70,30,0.14);
    color:var(--paper);
  }
  .form-light .form-message{
    background:rgba(208,70,30,0.10);border-color:var(--signal-dark);color:var(--ink);
  }
  .form-message.erreur{border-color:#B03030;background:rgba(176,48,48,0.12);}

  /* =====================================================================
     Priorité sur les styles d'Elementor

     Elementor génère une feuille de style (« kit ») qui fixe la couleur des
     titres avec la même spécificité que la nôtre, mais chargée après. Elle
     l'emportait donc, et les titres s'affichaient en foncé sur les fonds
     sombres. Le préfixe « body » suffit à reprendre la main sans recourir
     à !important.
     ================================================================== */

  /* --- Bannière d'accueil --- */
  body .hero h1,
  body .hero .hero-sub{
    color:var(--paper);
  }
  body .hero .eyebrow{color:#E8703F;}
  body .hero-trust{color:var(--concrete-mid);}

  /* --- Bandeau de titre des pages intérieures --- */
  body .page-banner h1,
  body .page-banner .lede{
    color:var(--paper);
  }
  body .page-banner .eyebrow{color:#E8703F;}

  /* --- Sections sur fond charbon --- */
  body .section-head--dark h2,
  body .why-us h2,
  body .why-us h3,
  body .contact h3,
  body .aside-card h3,
  body .perk h3{
    color:var(--paper);
  }
  body .section-head--dark p,
  body .why-us p,
  body .contact-info p,
  body .aside-card p,
  body .perk p{
    color:var(--concrete-mid);
  }
  body .why-us .eyebrow,
  body .contact .eyebrow{color:#E8703F;}

  /* --- Bande de rappel orange --- */
  body .cta-band h2{color:var(--paper);}
  body .cta-band .btn{color:var(--signal-dark);}

  /* --- Bande de statistiques --- */
  body .stat-num{color:var(--paper);}
  body .stat-label{color:var(--concrete-mid);}

  /* --- Pied de page --- */
  body footer .footer-col h4{color:var(--signal);}
  body footer p,
  body footer .footer-col a{color:var(--concrete-mid);}
  body footer .footer-col a:hover{color:var(--paper);}

  /* --- En-tête --- */
  body .main-nav .menu-item a{color:var(--paper);}
  body .header-cta{color:var(--paper);}
  body .utility-left a,
  body .utility-left span{color:var(--concrete-mid);}

  /* --- Formulaire sur fond sombre --- */
  body .field label{color:var(--concrete-mid);}
  body .form-light .field label{color:var(--steel);}
  body .field input,
  body .field textarea{color:var(--paper);}
  body .form-light .field input,
  body .form-light .field textarea{color:var(--ink);}

  /* --- Logo de l'en-tête : même format que celui du pied de page --- */
  body .site-header .logo img{
    height:56px;
    width:auto;
    max-width:none;
  }
  @media (max-width:880px){
    body .site-header .logo img{height:46px;}
  }
  @media (max-width:520px){
    body .site-header .logo img{height:38px;}
  }
