:root{
    --paper:#F3F4F1;
    --card:#FFFFFF;
    --ink:#1B2530;
    --ink-soft:#4A5560;
    --flame:#E4531B;
    --flame-deep:#AF3A0E;
    --steel:#2F6E8F;
    --steel-deep:#1E4B63;
    --line:#DCDED8;
    --radius:14px;
    --font-display:'Barlow Condensed','Arial Narrow',sans-serif;
    --font-body:'IBM Plex Sans',system-ui,sans-serif;
    --font-mono:'IBM Plex Mono',monospace;
    --text:#1B2530;
    --topbar-bg:rgba(243,244,241,.92);
  }
  [data-theme="dark"]{
    --paper:#14191F;
    --card:#1D242C;
    --text:#EDEFEA;
    --ink-soft:#97A2AC;
    --line:#333D47;
    --topbar-bg:rgba(20,25,31,.92);
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    font-family:var(--font-body);
    background:var(--paper);
    color:var(--text);
    line-height:1.6;
    transition:background .25s ease,color .25s ease;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit}
  :focus-visible{outline:2px solid var(--flame);outline-offset:3px;border-radius:4px}
  .wrap{max-width:1100px;margin:0 auto;padding:0 20px}

  /* ===== Jauge thermomètre (élément signature) ===== */
  .gauge{
    height:6px;
    background:linear-gradient(90deg,var(--steel) 0%,#7FA3B5 35%,#E8B44A 62%,var(--flame) 100%);
    position:relative;
  }
  .gauge::after{
    content:"";position:absolute;inset:0;
    background:repeating-linear-gradient(90deg,transparent 0 46px,rgba(255,255,255,.5) 46px 48px);
  }

  /* ===== Header ===== */
  .topbar{
    position:sticky;top:0;z-index:50;
    background:var(--topbar-bg);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .topbar-inner{
    display:flex;align-items:center;justify-content:space-between;
    gap:16px;padding:14px 20px;max-width:1100px;margin:0 auto;
  }
  .brand{display:flex;flex-direction:column;text-decoration:none;line-height:1.1}
  .brand-name{
    font-family:var(--font-display);font-weight:700;font-size:1.55rem;
    letter-spacing:.04em;text-transform:uppercase;
  }
  .brand-name .dot{color:var(--flame)}
  .brand-sub{
    font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em;
    text-transform:uppercase;color:var(--ink-soft);
  }
  .nav{display:flex;gap:26px;align-items:center}
  .nav a{
    text-decoration:none;font-size:.92rem;font-weight:500;color:var(--ink-soft);
    transition:color .15s;
  }
  .nav a:hover{color:var(--text)}
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    font-family:var(--font-body);font-weight:600;font-size:.95rem;
    padding:11px 20px;border-radius:999px;text-decoration:none;
    transition:transform .15s,background .15s;cursor:pointer;border:none;
  }
  .btn:hover{transform:translateY(-1px)}
  .btn-solid{background:var(--flame-deep);color:#fff}
  .btn-solid:hover{background:var(--flame)}
  .btn-ghost{border:1.5px solid var(--text);color:var(--text);background:transparent}
  .btn-ghost:hover{background:var(--text);color:var(--paper)}
  .btn-call-top{padding:9px 16px;font-size:.88rem}
  .burger{
    display:none;background:none;border:none;cursor:pointer;
    font-size:1.5rem;color:var(--text);padding:4px 8px;
  }
  .theme-toggle{
    background:none;border:1.5px solid var(--line);border-radius:999px;
    width:38px;height:38px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;font-size:1.05rem;color:var(--text);
    transition:border-color .15s,transform .15s;
  }
  .theme-toggle:hover{border-color:var(--ink-soft);transform:rotate(15deg)}

  /* ===== Hero ===== */
  .hero{padding:clamp(56px,9vw,110px) 0 clamp(48px,7vw,80px)}
  .eyebrow{
    font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;
    text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:20px;
  }
  .eyebrow b{color:var(--flame-deep);font-weight:500}
  h1{
    font-family:var(--font-display);font-weight:700;text-transform:uppercase;
    font-size:clamp(2.7rem,8.5vw,5.4rem);line-height:.95;letter-spacing:.005em;
    margin-bottom:24px;
  }
  h1 .flame{color:var(--flame)}
  h1 .steel{color:var(--steel)}
  .lead{
    font-size:clamp(1rem,2.2vw,1.15rem);color:var(--ink-soft);
    max-width:56ch;margin-bottom:32px;
  }
  .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}
  .chips{display:flex;gap:8px;flex-wrap:wrap}
  .chip{
    font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;
    text-transform:uppercase;color:var(--ink-soft);
    border:1px solid var(--line);background:var(--card);
    padding:6px 12px;border-radius:999px;
  }

  /* ===== Sections communes ===== */
  section{padding:clamp(52px,7vw,88px) 0}
  .section-eyebrow{
    font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;
    text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:12px;
  }
  h2{
    font-family:var(--font-display);font-weight:700;text-transform:uppercase;
    font-size:clamp(1.9rem,4.5vw,2.8rem);line-height:1;margin-bottom:16px;
  }
  .section-intro{color:var(--ink-soft);max-width:60ch;margin-bottom:40px}

  /* ===== Métiers ===== */
  .services{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
  .card{
    background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
    padding:32px 28px;position:relative;overflow:hidden;
    transition:transform .18s,box-shadow .18s;
  }
  .card:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(27,37,48,.08)}
  .card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px}
  .card-flame::before{background:var(--flame)}
  .card-steel::before{background:var(--steel)}
  .card-tag{
    font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;
    text-transform:uppercase;display:block;margin-bottom:10px;
  }
  .card-flame .card-tag{color:var(--flame-deep)}
  .card-steel .card-tag{color:var(--steel-deep)}
  .card h3{
    font-family:var(--font-display);font-weight:700;text-transform:uppercase;
    font-size:1.7rem;line-height:1;margin-bottom:18px;
  }
  .card ul{list-style:none}
  .card li{
    padding:9px 0 9px 24px;position:relative;
    font-size:.95rem;color:var(--ink-soft);
    border-bottom:1px dashed var(--line);
  }
  .card li:last-child{border-bottom:none}
  .card li::before{content:"▸";position:absolute;left:0;font-size:.85rem}
  .card-flame li::before{color:var(--flame)}
  .card-steel li::before{color:var(--steel)}

  /* ===== Chiffres ===== */
  .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px}
  .stat{
    border-left:3px solid var(--flame);padding:6px 0 6px 18px;
  }
  .stat:nth-child(even){border-left-color:var(--steel)}
  .stat-num{
    font-family:var(--font-display);font-weight:700;
    font-size:clamp(2.2rem,5vw,3.2rem);line-height:1;
  }
  .stat-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}

  /* ===== Réalisations ===== */
  .gallery{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
  .tile{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--paper)}
  .tile-img{height:200px;display:block;overflow:hidden}
  .tile-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
  .tile:hover .tile-img img{transform:scale(1.04)}
  .tile-caption{padding:14px 16px}
  .tile-caption strong{display:block;font-size:.95rem;margin-bottom:2px}
  .tile-caption small{color:var(--ink-soft);font-size:.8rem}

  /* ===== Partenaires ===== */
  .partners-row{display:flex;flex-wrap:wrap;gap:12px}
  .partner{
    font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;
    text-transform:uppercase;color:var(--ink-soft);
    border:1px solid var(--line);background:var(--card);
    padding:10px 18px;border-radius:8px;
  }
  .zone-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
  .zone-tag{
    font-weight:500;font-size:.92rem;
    background:var(--card);border:1px solid var(--line);
    padding:8px 16px;border-radius:999px;
  }
  .zone-tag.main{border-color:var(--flame);color:var(--flame-deep)}

  /* ===== Contact ===== */
  .contact{background:var(--ink);color:#EDEFEA}
  .contact .section-eyebrow{color:#9AA5AE}
  .contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
  .phone-big{
    font-family:var(--font-display);font-weight:700;
    font-size:clamp(2.4rem,6vw,3.8rem);line-height:1;
    color:var(--flame);text-decoration:none;display:inline-block;margin:10px 0 28px;
  }
  .phone-big:hover{color:#F07A48}
  .contact-item{margin-bottom:18px}
  .contact-item .label{
    font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;
    text-transform:uppercase;color:#9AA5AE;display:block;margin-bottom:3px;
  }
  .contact-item a{color:#EDEFEA;text-decoration:underline;text-decoration-color:rgba(237,239,234,.35)}
  .form-card{
    background:var(--card);color:var(--text);
    border-radius:var(--radius);padding:30px 28px;
  }
  [data-theme="dark"] .form-card{
    background:#232E39;border:1px solid #3C4855;
  }
  .form-card h3{
    font-family:var(--font-display);font-weight:700;text-transform:uppercase;
    font-size:1.45rem;margin-bottom:20px;
  }
  .field{margin-bottom:16px}
  .field > label{
    display:block;font-family:var(--font-mono);font-size:.68rem;
    letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;
  }
  .field input,.field textarea,.field select{
    width:100%;padding:11px 14px;border:1.5px solid var(--line);
    border-radius:8px;font-family:var(--font-body);font-size:.95rem;
    background:var(--paper);color:var(--text);
  }
  .field input:focus,.field textarea:focus,.field select:focus{
    outline:none;border-color:var(--flame);
  }
  .field-error{display:none;font-size:.78rem;color:#E05252;margin-top:6px}
  .field.invalid input{border-color:#E05252}
  .field.invalid .field-error{display:block}
  .field.valid input{border-color:#3E9B4F}
  .form-note{font-size:.78rem;color:var(--ink-soft);margin-top:12px}

  /* ===== Footer ===== */
  footer{padding:26px 0;border-top:1px solid var(--line)}
  .footer-inner{
    display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;
    font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;
    text-transform:uppercase;color:var(--ink-soft);
  }
  .footer-inner a{color:var(--ink-soft)}
  .footer-inner a:hover{color:var(--text)}

  /* ===== Page Protection des données ===== */
.legal{max-width:760px}
.legal h4{
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--flame-deep);margin:28px 0 6px;
}
[data-theme="dark"] .legal h4{color:var(--flame)}
.legal p{color:var(--ink-soft);max-width:68ch}

  /* ===== Responsive ===== */
  @media (max-width:840px){
    .contact-grid{grid-template-columns:1fr}
  }
  @media (max-width:720px){
    .nav{
      display:none;position:absolute;top:100%;left:0;right:0;
      flex-direction:column;gap:0;background:var(--paper);
      border-bottom:1px solid var(--line);padding:8px 0;
    }
    .nav.open{display:flex}
    .nav a{padding:13px 24px;width:100%}
    .burger{display:block}
    .btn-call-top span{display:none}
    .btn-call-top{padding:9px 13px}
  }
  @media (prefers-reduced-motion:reduce){
    *{transition:none!important;animation:none!important}
    html{scroll-behavior:auto}
  }

/* ===== Page citernes ===== */
.btn-steel{background:var(--steel-deep);color:#fff}
.btn-steel:hover{background:var(--steel)}
.page-hero{padding:clamp(48px,7vw,80px) 0 clamp(36px,5vw,56px)}
.nav a[aria-current="page"]{color:var(--text);font-weight:600}
.card-link{
  display:inline-flex;align-items:center;gap:6px;margin-top:18px;
  font-weight:600;font-size:.92rem;text-decoration:none;color:var(--steel-deep);
}
.card-link:hover{text-decoration:underline}
[data-theme="dark"] .card-link{color:#7FB3D3}
.choice-legend{
  display:block;font-family:var(--font-mono);font-size:.68rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;
}
.choice-group{display:flex;flex-wrap:wrap;gap:10px}
.choice{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  border:1.5px solid var(--line);border-radius:999px;
  padding:10px 18px;cursor:pointer;background:var(--paper);
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);user-select:none;
  transition:border-color .15s,background .15s,color .15s;
}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice:hover{border-color:var(--ink-soft)}
.choice:has(input:checked){border-color:var(--steel);background:var(--steel-deep);color:#fff}
.choice:has(input:focus-visible){outline:2px solid var(--flame);outline-offset:3px}
.req{color:var(--flame)}
/* ===== Page contact ===== */
.contact-page-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:stretch}
.info-item{margin-bottom:20px}
.info-item .label{
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:3px;
}
.map-frame{
  min-height:400px;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;background:var(--card);
}
.map-frame iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:840px){
  .contact-page-grid{grid-template-columns:1fr}
  .map-frame{min-height:320px}
}

/* ===== Formulaires : envoi et anti-spam ===== */
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.form-status{padding:12px 16px;border-radius:8px;font-size:.9rem;margin-bottom:18px}
.form-status.ok{background:rgba(62,155,79,.12);border:1px solid #3E9B4F;color:#2E7D3C}
[data-theme="dark"] .form-status.ok{color:#7BC88A}
.form-status.err{background:rgba(224,82,82,.12);border:1px solid #E05252;color:#B23A3A}
[data-theme="dark"] .form-status.err{color:#F09A9A}
