*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { font-size:16px; scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }

:root {
  --red:    #5A8C2A;
  --black:  #0A0A0A;
  --ink:    #1C1C1C;
  --muted:  #555555;
  --light:  #F7F7F5;
  --border: #E2E2DF;
  --white:  #FFFFFF;
  --fh: 'DM Sans', sans-serif;
  --fb: 'DM Sans', sans-serif;
}

body { font-family:var(--fb); background:var(--white); color:#1C1C1C; overflow-x:hidden; }
a { text-decoration:none; color:inherit; }
button { cursor:pointer; font-family:var(--fb); border:none; background:none; }

.wrap { max-width:1200px; margin:0 auto; padding:0 48px; }

/* REVEAL */
.sr { opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease; }
.sr.in { opacity:1; transform:none; }
.d1{transition-delay:.07s} .d2{transition-delay:.14s} .d3{transition-delay:.21s} .d4{transition-delay:.28s}

/* ══ HEADER ══ */
.hdr {
  position:fixed; inset:0 0 auto;
  height:60px; z-index:100;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
  display:flex; align-items:center;
}
.hdr-inner {
  display:flex; align-items:center; width:100%;
  gap:0;
}
.logo {
  display:flex; align-items:center; gap:8px;
  font-family:var(--fb); font-size:16px; font-weight:700;
  color:#0A0A0A; letter-spacing:-.02em;
  flex-shrink:0;
}
.logo-icon {
  width:30px; height:30px; border-radius:6px;
  background:var(--red);
  display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:700; color:#fff; letter-spacing:0;
}
nav { flex:1; display:flex; justify-content:center; gap:0; }
nav a {
  font-size:14px; font-weight:500; color:#555555;
  padding:6px 14px; border-radius:6px;
  transition:color .15s;
}
nav a:hover { color:var(--black); }
.hdr-right { display:flex; align-items:center; gap:8px; }
.hdr-mobile-actions { display:none; align-items:center; gap:8px; margin-left:auto; }
.btn-outline {
  font-size:13px; font-weight:500; color:var(--black);
  padding:7px 16px; border-radius:6px;
  border:1px solid var(--border);
  transition:border-color .2s;
}
.btn-outline:hover { border-color:#aaa; }
.btn-red {
  font-size:13px; font-weight:600; color:#fff;
  padding:7px 16px; border-radius:6px;
  background:var(--red);
  transition:background .2s;
}
.btn-red:hover { background:#477022; }

.hbg-devis { display:none; font-size:13px; padding:9px 16px; }

/* ══ HAMBURGER ══ */
.hbg {
  display:none; flex-direction:column;
  justify-content:center; align-items:center;
  gap:5px; width:40px; height:40px;
  background:none; border:none; cursor:pointer;
  padding:4px; border-radius:8px;
  transition:background .2s;
  flex-shrink:0;
}
.hbg:hover { background:var(--light); }
.hbg-bar {
  width:22px; height:2px;
  background:#0A0A0A; border-radius:2px;
  transition:transform .3s ease, opacity .3s ease, width .3s ease;
  transform-origin:center;
}
.hbg.open .hbg-bar:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hbg.open .hbg-bar:nth-child(2) { opacity:0; transform:scaleX(0); }
.hbg.open .hbg-bar:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ══ DRAWER ══ */
.drawer-overlay {
  position:fixed; inset:0; z-index:998;
  background:rgba(0,0,0,.5);
  backdrop-filter:blur(2px);
  opacity:0; pointer-events:none;
  transition:opacity .35s ease;
}
.drawer-overlay.open { opacity:1; pointer-events:all; }

.drawer {
  position:fixed; top:0; right:0; bottom:0; z-index:999;
  width:min(340px, 90vw);
  background:var(--white);
  box-shadow:-8px 0 40px rgba(0,0,0,.15);
  display:flex; flex-direction:column;
  transform:translateX(100%);
  transition:transform .4s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;
}
.drawer.open { transform:translateX(0); }

.drawer-head {
  display:flex; align-items:center;
  justify-content:space-between;
  padding:18px 20px;
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.drawer-logo { display:flex; align-items:center; gap:10px; }
.drawer-logo-box {
  width:34px; height:34px; border-radius:8px;
  background:var(--red); color:#fff;
  font-size:11px; font-weight:800;
  display:flex; align-items:center; justify-content:center;
  letter-spacing:-.02em;
}
.drawer-logo-name { font-size:14px; font-weight:700; color:#0A0A0A; }
.drawer-close {
  width:36px; height:36px; border-radius:8px;
  border:1px solid var(--border); background:none;
  cursor:pointer; font-size:16px; color:#0A0A0A;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, border-color .2s;
}
.drawer-close:hover { background:var(--light); border-color:#ccc; }

.drawer-nav {
  flex:1; padding:12px 12px;
  display:flex; flex-direction:column; gap:2px;
}
.drawer-link {
  display:flex; align-items:center; gap:14px;
  padding:14px 16px; border-radius:10px;
  font-size:15px; font-weight:600; color:#1C1C1C;
  text-decoration:none;
  transition:background .2s, color .2s;
}
.drawer-link i { font-size:17px; color:var(--red); width:20px; text-align:center; }
.drawer-link:hover { background:var(--light); color:var(--red); }

.drawer-foot {
  padding:20px;
  border-top:1px solid var(--border);
  display:flex; flex-direction:column; gap:12px;
  flex-shrink:0;
}
.drawer-tel {
  display:flex; align-items:center; gap:10px;
  font-size:16px; font-weight:700; color:#0A0A0A;
  text-decoration:none;
  padding:14px 16px;
  background:var(--light); border-radius:10px;
  border:1px solid var(--border);
  transition:border-color .2s;
}
.drawer-tel i { color:var(--red); font-size:17px; }
.drawer-tel:hover { border-color:#ccdabb; }
.drawer-cta {
  display:block; text-align:center;
  padding:14px; border-radius:10px;
  font-size:14px;
}
.drawer-hours {
  text-align:center; font-size:12px; color:#888;
}

/* ══ HERO ══ */
.hero {
  padding-top:60px;
  min-height:100vh;
  display:grid; grid-template-columns:1fr 1fr;
  overflow:hidden;
}
.hero-left {
  display:flex; flex-direction:column;
  justify-content:center;
  padding:80px 64px 80px 48px;
  border-right:1px solid var(--border);
}
.hero-label {
  display:inline-flex; align-items:center; gap:6px;
  font-size:11px; font-weight:600; color:var(--red);
  letter-spacing:.1em; text-transform:uppercase;
  margin-bottom:28px;
}
.hero-label-line { width:24px; height:1px; background:var(--red); }

h1 {
  font-family:var(--fh);
  font-size:clamp(44px, 5.5vw, 68px);
  font-weight:700;
  line-height:1.06;
  letter-spacing:-.03em;
  color:var(--black);
  margin-bottom:24px;
}
h1 em {
  font-style:normal;
  color:var(--red);
}

.hero-desc {
  font-size:16px; font-weight:400;
  line-height:1.8; color:#444444;
  max-width:440px; margin-bottom:40px;
}

.hero-actions { display:flex; gap:10px; align-items:center; margin-bottom:56px; }
.btn-hero-primary {
  font-size:13.5px; font-weight:600; color:#fff;
  padding:11px 24px; border-radius:7px;
  background:var(--red);
  display:inline-flex; align-items:center; gap:7px;
  transition:background .2s, transform .2s;
}
.btn-hero-primary:hover { background:#477022; transform:translateY(-1px); }
.btn-hero-ghost {
  font-size:14px; font-weight:600; color:#333333;
  padding:11px 20px; border-radius:7px;
  transition:color .2s;
}
.btn-hero-ghost:hover { color:var(--black); }

.hero-stats {
  padding-top:36px;
}
/* Hero stats — card style */
.hero-stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  padding-top:36px;
}
.hstat-card {
  background:#F0F4EC;
  border-radius:12px;
  padding:24px 20px;
  display:flex; flex-direction:column; gap:8px;
  border:1px solid #dde8d4;
  transition:transform .2s;
}
.hstat-card:hover { transform:translateY(-2px); }
.hstat-card--featured {
  background:#5A8C2A;
  border-color:#5A8C2A;
}
.hstat-card--featured .hstat-num  { color:#ffffff; }
.hstat-card--featured .hstat-label { color:rgba(255,255,255,.8); }
.hstat-num {
  font-family:var(--fb); font-size:36px; font-weight:800;
  color:#0A0A0A; line-height:1; letter-spacing:-.03em;
}
.hstat-label { font-size:13px; color:#555555; font-weight:400; line-height:1.45; }

/* Hero right — photo mosaic */
.hero-right {
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:0;
  background:var(--light);
}
.hero-photo {
  background:var(--light);
  border-bottom:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:8px;
  position:relative; overflow:hidden;
}
.hero-photo:last-child { border-bottom:none; }
.hero-img {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  transition:transform .6s ease;
}
.hero-photo:hover .hero-img { transform:scale(1.04); }

.hero-photo-label {
  position:absolute; bottom:16px; left:16px;
  background:var(--white); border-radius:6px;
  padding:7px 12px;
  font-size:11.5px; font-weight:600; color:var(--black);
  border:1px solid var(--border);
}

.hero-photo-tag {
  position:absolute; top:16px; right:16px;
  background:var(--red); color:#fff;
  font-size:10px; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; padding:4px 10px; border-radius:4px;
  z-index:2;
}

/* ══ SECTEURS ══ */
.secteurs {
  padding:88px 0;
  background:var(--light);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.secteurs-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.secteur-card {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:14px;
  padding:32px 28px;
  display:flex; flex-direction:column;
  transition:box-shadow .25s, transform .25s, border-color .25s;
  position:relative; overflow:hidden;
}
.secteur-card::before {
  content:'';
  position:absolute; top:0; left:0; right:0;
  height:3px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s ease;
}
.secteur-card:hover {
  box-shadow:0 8px 32px rgba(0,0,0,.08);
  transform:translateY(-3px);
  border-color:#d0d0ce;
}
.secteur-card:hover::before { transform:scaleX(1); }

.secteur-icon-wrap {
  width:52px; height:52px;
  background:#0A0A0A;
  border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:20px;
  flex-shrink:0;
}
.secteur-icon-wrap i {
  font-size:22px;
  color:#ffffff;
}
.secteur-title {
  font-size:18px; font-weight:800;
  color:#0A0A0A; letter-spacing:-.02em;
  margin-bottom:10px; line-height:1.2;
}
.secteur-desc {
  font-size:13.5px; color:#555555;
  line-height:1.75; margin-bottom:18px; flex:1;
}
.secteur-list {
  list-style:none;
  display:flex; flex-direction:column; gap:8px;
  margin-bottom:24px;
}
.secteur-list li {
  font-size:13px; color:#444444;
  display:flex; align-items:center; gap:9px;
  line-height:1.4;
}
.secteur-list li i {
  color:#5A8C2A; font-size:14px; flex-shrink:0;
}
.secteur-link {
  font-size:13px; font-weight:700;
  color:#5A8C2A;
  display:inline-flex; align-items:center; gap:6px;
  margin-top:auto;
  transition:gap .2s;
}
.secteur-card:hover .secteur-link { gap:10px; }

/* ══ INTRO COMMERCIALE ══ */
.intro-section {
  padding:88px 0;
  background:var(--white);
  border-bottom:1px solid var(--border);
}
.intro-inner {
  display:grid; grid-template-columns:5fr 7fr;
  gap:96px; align-items:start;
}
.intro-text {
  font-size:15px; color:#444444; line-height:1.85;
  margin-bottom:20px;
}
.intro-text strong { color:#0A0A0A; font-weight:600; }
.intro-pills {
  display:flex; flex-wrap:wrap; gap:8px;
  margin:24px 0 28px;
}
.intro-pill {
  font-size:12.5px; font-weight:500; color:#444444;
  background:var(--light); border:1px solid var(--border);
  border-radius:20px; padding:6px 14px;
  white-space:nowrap;
}

/* ══ TRUST BAND ══ */
/* ══ TRUST — conveyor belt ══ */
.trust {
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:28px 0; background:var(--white);
  overflow:hidden;
}
.trust-label-wrap {
  text-align:center; margin-bottom:20px;
}
.trust-label {
  font-size:11px; font-weight:600; color:#aaa;
  text-transform:uppercase; letter-spacing:.12em;
}
.tl-wrap {
  overflow:hidden;
  -webkit-mask:linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
  mask:linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}
.tl-track {
  display:flex; align-items:center; gap:56px;
  width:max-content;
  animation:conveyor 35s linear infinite;
}
.tl-track:hover { animation-play-state:paused; }
@keyframes conveyor {
  0%   { transform:translateX(0); }
  100% { transform:translateX(calc(-100% / 3)); }
}
.tl-item {
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; height:44px;
}
.tl-logo {
  height:36px; width:auto; max-width:140px;
  object-fit:contain;
  filter:grayscale(100%) opacity(40%);
  transition:filter .3s ease;
}
.tl-item:hover .tl-logo {
  filter:grayscale(0%) opacity(100%);
}

/* ══ PRODUCTS ══ */
.products { padding:96px 0; background:var(--white); }

.sec-head {
  display:grid; grid-template-columns:1fr 1fr;
  gap:48px; align-items:end;
  margin-bottom:48px;
}
.sec-head-left {}
.sec-kicker {
  font-size:11px; font-weight:600; color:var(--red);
  letter-spacing:.1em; text-transform:uppercase;
  display:flex; align-items:center; gap:6px;
  margin-bottom:16px;
}
.sec-kicker-line { width:20px; height:1px; background:var(--red); }
h2 {
  font-family:var(--fh);
  font-size:clamp(30px, 3.8vw, 46px);
  font-weight:800; letter-spacing:-.03em; line-height:1.08;
  color:#0A0A0A;
}
h2 em { font-style:normal; color:var(--red); }
.sec-head-right {
  display:flex; flex-direction:column; align-items:flex-end; gap:16px;
}
.sec-desc { font-size:15px; color:#555555; line-height:1.75; text-align:right; max-width:340px; }

/* Filter tabs */
.ftabs { display:flex; gap:4px; flex-wrap:wrap; margin-bottom:32px; }
.ftab {
  font-size:13px; font-weight:500; color:#555555;
  padding:6px 16px; border-radius:20px;
  border:1px solid var(--border); background:var(--white);
  transition:all .18s;
}
.ftab:hover { color:var(--black); border-color:#bbb; }
.ftab.on { background:var(--black); color:#fff; border-color:var(--black); }

/* Product grid — editorial card style */
.pgrid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--border);
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
}

.pcard {
  background:var(--white);
  display:flex; flex-direction:column;
  transition:background .2s;
  cursor:pointer;
  overflow:hidden;
  position:relative;
}
.pcard:hover { background:var(--light); }
.pcard-full-link { position:absolute; inset:0; z-index:1; }

.pcard-img {
  width:100%; aspect-ratio:16/10;
  background:var(--light);
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
  border-bottom:1px solid var(--border);
}
.pcard-img-bg {
  position:absolute; inset:0;
  transition:transform .4s ease;
}
.pcard:hover .pcard-img-bg { transform:scale(1.03); }
.pcard-photo {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  transition:transform .5s ease;
}
.pcard:hover .pcard-photo { transform:scale(1.05); }
.pcard-badge {
  position:absolute; top:10px; left:10px; z-index:2;
  font-size:10px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:var(--red);
  background:var(--white); border:1px solid var(--border);
  padding:3px 8px; border-radius:4px;
}

.pcard-body { padding:20px 22px 22px; flex:1; display:flex; flex-direction:column; }
.pcard-title {
  font-family:var(--fh);
  font-size:17px; font-weight:700;
  color:#0A0A0A; line-height:1.25;
  margin-bottom:8px; letter-spacing:-.02em;
}
.pcard-desc { font-size:13px; color:#555555; line-height:1.7; flex:1; margin-bottom:16px; }
.pcard-foot {
  display:flex; align-items:center; justify-content:space-between;
  padding-top:14px; border-top:1px solid var(--border);
}
.pcard-link {
  font-size:13px; font-weight:700; color:var(--red);
  display:flex; align-items:center; gap:4px;
  transition:gap .2s;
}
.pcard:hover .pcard-link { gap:8px; }
.pcard-meta { font-size:12px; color:#777777; font-weight:500; }
.pcard-features { list-style:none; margin:0 0 14px; display:flex; flex-direction:column; gap:6px; }
.pcard-features li { font-size:12.5px; color:#555555; display:flex; align-items:center; gap:8px; line-height:1.4; }
.pcard-features li i { color:#5A8C2A; font-size:13px; flex-shrink:0; }

/* CTA card */
.pcard-custom {
  grid-column: 1 / -1;
  display:grid;
  grid-template-columns: 280px 1fr;
  background:#161616;
}
.pcard-custom:hover { background:#1a1a1a; }
.pcard-custom .pcard-title { color:#fff; font-weight:800; font-size:20px; letter-spacing:-.02em; }
.pcard-custom .pcard-desc  { color:rgba(255,255,255,.75); font-size:14.5px; line-height:1.75; }
.pcard-custom .pcard-foot  { border-color:rgba(255,255,255,.12); }
.pcard-custom .pcard-link  { color:#7fc442; font-weight:700; font-size:14px; }
.pcard-custom .pcard-link:hover { color:#a0d96a; }
.pcard-custom .pcard-meta  { color:rgba(255,255,255,.45); }
.pcard-custom .pcard-img   { background:#1e1e1e; border-color:rgba(255,255,255,.08); height:100%; min-height:160px; }
.pcard-custom .pcard-img-icon { opacity:.08; font-size:52px; }
.pcard-custom .pcard-body  { display:flex; flex-direction:column; justify-content:center; padding:32px 36px; }


/* ══ TÉMOIGNAGES ══ */
.temoignages { padding:88px 0; background:var(--white); border-top:1px solid var(--border); }
.temo-head { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:48px; gap:32px; flex-wrap:wrap; }
.google-rating { background:var(--light); border:1px solid var(--border); border-radius:12px; padding:16px 20px; display:flex; flex-direction:column; gap:6px; }
.google-rating-top { display:flex; align-items:center; gap:10px; }
.google-score { font-size:22px; font-weight:800; color:#0A0A0A; letter-spacing:-.02em; }
.stars { display:flex; gap:2px; color:#FBBC05; font-size:15px; }
.google-count { font-size:12px; color:#777; font-weight:500; }
.temo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:32px; }
.temo-card { background:var(--light); border:1px solid var(--border); border-radius:14px; padding:28px; display:flex; flex-direction:column; gap:16px; transition:box-shadow .25s, transform .25s; position:relative; overflow:hidden; }
.temo-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.temo-card:hover { box-shadow:0 8px 28px rgba(0,0,0,.08); transform:translateY(-3px); }
.temo-card:hover::before { transform:scaleX(1); }
.temo-card--featured { background:#0A0A0A; border-color:#0A0A0A; }
.temo-card--featured .temo-text { color:rgba(255,255,255,.8); }
.temo-card--featured .temo-name { color:#fff; }
.temo-card--featured .temo-role { color:rgba(255,255,255,.45); }
.temo-card--featured .temo-badge { color:rgba(255,255,255,.4); border-color:rgba(255,255,255,.1); }
.temo-card--featured .temo-avatar { background:var(--red); color:#fff; }
.temo-card--featured .temo-author { border-color:rgba(255,255,255,.1); }
.temo-card--featured::before { background:var(--red); }
.temo-stars { display:flex; gap:3px; color:#FBBC05; font-size:14px; }
.temo-text { font-size:14px; color:#444444; line-height:1.8; flex:1; font-style:italic; }
.temo-author { display:flex; align-items:center; gap:12px; padding-top:16px; border-top:1px solid var(--border); }
.temo-avatar { width:40px; height:40px; border-radius:50%; background:var(--red); color:#fff; font-size:13px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.temo-name { font-size:14px; font-weight:700; color:#0A0A0A; }
.temo-role { font-size:12px; color:#777; margin-top:2px; }
.temo-badge { display:flex; align-items:center; gap:5px; font-size:11px; color:#888; font-weight:500; padding-top:12px; border-top:1px solid var(--border); }
.temo-badge i { color:var(--red); font-size:12px; }
.temo-footer { display:flex; justify-content:center; }
.temo-cta { display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:#0A0A0A; padding:12px 24px; border-radius:8px; border:1px solid var(--border); background:var(--white); transition:all .2s; }
.temo-cta:hover { border-color:#bbb; box-shadow:0 4px 12px rgba(0,0,0,.06); transform:translateY(-1px); }
.temo-cta i { color:var(--red); }

/* ══ GALERIE ══ */
.galerie { padding:96px 0 0; background:var(--light); border-top:1px solid var(--border); overflow:hidden; }
.galerie-head {
  display:flex; align-items:flex-end;
  justify-content:space-between; gap:32px;
  margin-bottom:48px;
}
.galerie-nav { display:flex; gap:10px; flex-shrink:0; }
.gnav-btn {
  width:44px; height:44px; border-radius:50%;
  border:1.5px solid var(--border);
  background:var(--white); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  font-size:16px; color:#0A0A0A;
  transition:background .2s, border-color .2s, color .2s, transform .2s;
}
.gnav-btn:hover { background:var(--red); border-color:var(--red); color:#fff; transform:scale(1.08); }
.gnav-btn:disabled { opacity:.35; cursor:default; transform:none; }

.galerie-track-wrap {
  overflow:hidden;
  padding:0 calc((100vw - 1200px)/2);
  cursor:grab;
}
.galerie-track-wrap:active { cursor:grabbing; }
.galerie-track {
  display:flex; gap:20px;
  transition:transform .45s cubic-bezier(.4,0,.2,1);
  will-change:transform;
  padding-bottom:4px;
}

.gcard {
  flex-shrink:0; width:320px;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:16px; overflow:hidden;
  transition:box-shadow .3s, transform .3s, border-color .3s;
}
.gcard:hover {
  box-shadow:0 16px 48px rgba(0,0,0,.1);
  transform:translateY(-6px);
  border-color:#ccdabb;
}
.gcard--dark { background:#0A0A0A; border-color:#222; }
.gcard--dark:hover { border-color:#444; box-shadow:0 16px 48px rgba(0,0,0,.4); }

.gcard-img {
  height:200px; position:relative;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; background:#f5f5f3;
}
.gcard-photo {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  transition:transform .5s ease;
}
.gcard:hover .gcard-photo { transform:scale(1.04); }
.gcard-ph {
  font-size:48px; opacity:.25; color:#0A0A0A;
  transition:transform .4s ease;
}
.gcard:hover .gcard-ph { transform:scale(1.15); }

.gcard-info { padding:20px 22px 22px; }
.gcard-cat {
  display:inline-block; font-size:10.5px; font-weight:700;
  color:var(--red); background:#EEF4E6; border:1px solid #D4E6B8;
  padding:3px 10px; border-radius:20px;
  letter-spacing:.07em; text-transform:uppercase;
  margin-bottom:10px;
}
.gcard-cat--light { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.15); color:#fff; }
.gcard-title { font-size:15px; font-weight:700; color:#0A0A0A; margin-bottom:5px; letter-spacing:-.01em; }
.gcard-meta  { font-size:12.5px; color:#888; }

.galerie-foot {
  display:flex; align-items:center;
  justify-content:space-between; gap:24px;
  padding:32px 0 64px;
}
.galerie-dots { display:flex; gap:6px; align-items:center; }
.gdot {
  width:6px; height:6px; border-radius:50%;
  background:var(--border); cursor:pointer;
  transition:background .2s, transform .2s, width .3s;
}
.gdot.active { background:var(--red); width:20px; border-radius:4px; }
.galerie-cta {
  font-size:13.5px; font-weight:700; color:var(--red);
  text-decoration:none; display:flex; align-items:center; gap:6px;
  transition:gap .2s;
}
.galerie-cta:hover { gap:10px; }

/* ══ USP — 2 colonnes fluide ══ */

.usp { padding:96px 0; background:var(--white); border-top:1px solid var(--border); }
.usp-head {
  display:grid; grid-template-columns:1fr 1fr;
  gap:48px; align-items:end; margin-bottom:52px;
}
.usp-head-right { display:flex; flex-direction:column; gap:20px; align-items:flex-start; }
.usp-head-right p { font-size:15px; color:#555555; line-height:1.8; max-width:380px; }

.usp-grid2 {
  display:grid; grid-template-columns:1fr 1fr;
  gap:16px;
}

.usp-item {
  background:var(--light);
  border:1px solid var(--border);
  border-radius:16px; padding:32px;
  display:flex; flex-direction:column; gap:12px;
  position:relative; overflow:hidden;
  transition:box-shadow .3s, transform .3s, border-color .3s;
}
.usp-item:hover {
  box-shadow:0 16px 48px rgba(0,0,0,.08);
  transform:translateY(-4px);
  border-color:#ccdabb;
}
/* Accent vert en haut gauche au hover */
.usp-item::after {
  content:'';
  position:absolute; top:0; left:0;
  width:4px; height:100%;
  background:var(--red);
  transform:scaleY(0); transform-origin:bottom;
  transition:transform .35s cubic-bezier(.4,0,.2,1);
  border-radius:0 0 0 16px;
}
.usp-item:hover::after { transform:scaleY(1); }

.usp-item-header {
  display:flex; align-items:center;
  justify-content:space-between; gap:12px;
}
.usp-item-icon {
  width:50px; height:50px; border-radius:12px;
  background:var(--red);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  transition:transform .3s, box-shadow .3s;
}
.usp-item:hover .usp-item-icon {
  transform:rotate(-6deg) scale(1.08);
  box-shadow:0 6px 18px rgba(90,140,42,.4);
}
.usp-item-icon i { font-size:20px; color:#fff; }

.usp-item-tag {
  font-size:11px; font-weight:700; color:var(--red);
  background:#EEF4E6; border:1px solid #D4E6B8;
  padding:5px 12px; border-radius:20px;
  letter-spacing:.06em; text-transform:uppercase;
  white-space:nowrap;
  transition:background .2s;
}
.usp-item:hover .usp-item-tag { background:#D4E6B8; }

.usp-item-title {
  font-size:18px; font-weight:800;
  color:#0A0A0A; letter-spacing:-.02em; line-height:1.2;
  transition:color .2s;
}
.usp-item:hover .usp-item-title { color:var(--red); }

.usp-item-text {
  font-size:13.5px; color:#555555; line-height:1.8; flex:1;
}

.usp-item-foot {
  display:flex; align-items:center; gap:14px;
  margin-top:8px; padding-top:16px;
  border-top:1px solid var(--border);
}
.usp-item-num {
  font-size:11px; font-weight:800; color:#ccc;
  letter-spacing:.08em; flex-shrink:0;
}
.usp-item-line {
  flex:1; height:1px;
  background:linear-gradient(to right, #D4E6B8, transparent);
}

/* ══ PROCESS ══ */
.process { padding:96px 0; background:var(--light); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.process-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.pstep {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:16px;
  padding:32px 28px 28px;
  position:relative; overflow:hidden;
  display:flex; flex-direction:column; gap:20px;
  transition:box-shadow .25s, transform .25s, border-color .25s;
}
.pstep:hover {
  box-shadow:0 12px 36px rgba(0,0,0,.09);
  transform:translateY(-4px);
  border-color:#ccdabb;
}
.pstep--alt {
  background:#EEF4E6;
  border-color:#D4E6B8;
}
.pstep--alt .pstep-num-bg { color:rgba(90,140,42,.06); }
.pstep--alt .pstep-icon-wrap { background:var(--red); }
.pstep--alt .pstep-counter { color:rgba(255,255,255,.4); }
.pstep--alt .pstep-title { color:#0A0A0A; }
.pstep--alt .pstep-text  { color:#555555; }
.pstep--alt:hover { border-color:#b8d494; }

/* Numéro en filigrane */
.pstep-num-bg {
  position:absolute; top:-10px; right:10px;
  font-size:96px; font-weight:800;
  color:rgba(0,0,0,.04);
  line-height:1; letter-spacing:-.04em;
  pointer-events:none; user-select:none;
  font-family:var(--fb);
}

/* Icône */
.pstep-icon-wrap {
  width:52px; height:52px;
  background:var(--red);
  border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; position:relative; z-index:1;
  transition:transform .25s;
}
.pstep:hover .pstep-icon-wrap { transform:scale(1.06); }
.pstep-icon-wrap i { font-size:22px; color:#fff; }

.pstep-content { position:relative; z-index:1; }
.pstep-counter {
  font-size:11px; font-weight:700; color:var(--red);
  letter-spacing:.1em; text-transform:uppercase;
  margin-bottom:8px;
}
.pstep--alt .pstep-counter { color:var(--red); }
.pstep-title { font-size:17px; font-weight:800; color:#0A0A0A; margin-bottom:8px; letter-spacing:-.02em; }
.pstep-text  { font-size:13.5px; color:#555555; line-height:1.75; }

/* ══ FAQ ══ */
.faq { padding:88px 0; background:var(--white); border-top:1px solid var(--border); }
.faq-head {
  display:flex; align-items:flex-end; justify-content:space-between;
  margin-bottom:48px; gap:24px; flex-wrap:wrap;
}
.faq-intro { font-size:14px; color:#777; }
.faq-intro a { color:var(--red); font-weight:600; text-decoration:none; }
.faq-intro a:hover { text-decoration:underline; }

.faq-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:0 48px; align-items:start;
}
.faq-col { display:flex; flex-direction:column; }

.faq-item {
  border-bottom:1px solid var(--border);
}
.faq-item:first-child { border-top:1px solid var(--border); }

.faq-q {
  width:100%; display:flex; align-items:center;
  justify-content:space-between; gap:16px;
  padding:20px 0;
  font-size:15px; font-weight:700; color:#0A0A0A;
  text-align:left; cursor:pointer;
  background:none; border:none;
  font-family:var(--fb); letter-spacing:-.01em;
  transition:color .2s;
}
.faq-q:hover { color:var(--red); }
.faq-q[aria-expanded="true"] { color:var(--red); }

.faq-icon {
  font-size:16px; color:var(--red); flex-shrink:0;
  transition:transform .3s ease;
}
.faq-q[aria-expanded="true"] .faq-icon {
  transform:rotate(45deg);
}

.faq-a {
  max-height:0; overflow:hidden;
  transition:max-height .35s ease, padding .35s ease;
}
.faq-a.open { max-height:300px; padding-bottom:20px; }
.faq-a p {
  font-size:14px; color:#555555; line-height:1.8;
}
.faq-a strong { color:#0A0A0A; font-weight:600; }

/* ══ DEVIS ══ */
.devis { padding:96px 0; background:var(--light); border-top:1px solid var(--border); }
.devis-inner {
  display:grid; grid-template-columns:5fr 7fr;
  gap:80px; align-items:start;
}
.devis-left p { font-size:15px; color:#444444; line-height:1.8; margin-top:20px; max-width:340px; }
.devis-promises { margin-top:32px; display:flex; flex-direction:column; gap:12px; }
.promise { display:flex; align-items:center; gap:10px; font-size:14px; color:#444444; }
.pcheck { color:var(--red); font-size:15px; flex-shrink:0; }
.devis-contact {
  margin-top:36px; padding-top:28px;
  border-top:1px solid var(--border);
  display:flex; flex-direction:column; gap:6px;
}
.devis-tel {
  display:inline-flex; align-items:center; gap:10px;
  font-size:18px; font-weight:800; color:#0A0A0A;
  text-decoration:none; letter-spacing:-.02em;
  transition:color .2s;
}
.devis-tel i { color:var(--red); font-size:17px; }
.devis-tel:hover { color:var(--red); }
.devis-hours { font-size:12px; color:#888; margin-left:27px; }

/* Form */
.form-wrap {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:16px;
  padding:40px;
  box-shadow:0 4px 24px rgba(0,0,0,.05);
}
.form-title {
  font-size:18px; font-weight:800; color:#0A0A0A;
  margin-bottom:28px; letter-spacing:-.02em;
  display:flex; align-items:center; gap:10px;
}
.form-title i { color:var(--red); font-size:20px; }

.fg-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fg { margin-bottom:16px; position:relative; }
.fg label {
  display:block; font-size:11.5px; font-weight:700;
  color:#333333; letter-spacing:.06em; text-transform:uppercase;
  margin-bottom:7px;
}
.req { color:var(--red); }
.fg-hint { font-size:10.5px; color:#888; font-weight:400; text-transform:none; letter-spacing:0; margin-left:4px; }
.fg input, .fg select, .fg textarea {
  width:100%; padding:11px 14px;
  border:1.5px solid var(--border); border-radius:8px;
  font-family:var(--fb); font-size:14px; color:#111111;
  background:var(--white); outline:none;
  transition:border-color .2s, box-shadow .2s;
  -webkit-appearance:none;
}
.fg input:focus, .fg select:focus, .fg textarea:focus {
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(90,140,42,.1);
}
.fg input.error, .fg select.error, .fg textarea.error {
  border-color:#e53e3e;
  box-shadow:0 0 0 3px rgba(229,62,62,.08);
}
.fg-err {
  display:none; font-size:11px; color:#e53e3e;
  margin-top:4px; font-weight:500;
}
.fg input.error ~ .fg-err,
.fg select.error ~ .fg-err { display:block; }
.fg textarea { min-height:100px; resize:vertical; }

/* File drop */
.file-drop {
  border:1.5px dashed var(--border); border-radius:8px;
  padding:20px 16px; text-align:center;
  cursor:pointer; background:var(--light);
  transition:border-color .2s, background .2s;
  display:flex; flex-direction:column; align-items:center; gap:6px;
}
.file-drop:hover, .file-drop.dragover {
  border-color:var(--red); background:#EEF4E6;
}
.file-drop i { font-size:24px; color:#aaa; }
.file-drop-text { font-size:13px; color:#666; }
.file-drop-link { color:var(--red); font-weight:600; text-decoration:underline; }
.file-drop-name { font-size:12px; color:var(--red); font-weight:600; min-height:16px; }

.fsub {
  width:100%; padding:14px;
  background:var(--red); color:#fff;
  font-family:var(--fb); font-size:14px; font-weight:700;
  border-radius:8px; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:8px;
  transition:background .2s, transform .2s, box-shadow .2s;
  margin-top:8px; letter-spacing:-.01em;
}
.fsub:hover { background:#477022; transform:translateY(-2px); box-shadow:0 8px 24px rgba(90,140,42,.3); }
.fsub:active { transform:translateY(0); }
.fsub:disabled { opacity:.6; cursor:wait; transform:none; }

.form-success {
  display:none; margin-top:16px;
  background:#EEF4E6; border:1px solid #D4E6B8;
  border-radius:8px; padding:14px 18px;
  font-size:14px; color:#2d6a0a;
  align-items:center; gap:10px;
}
.form-success.show { display:flex; }
.form-success i { font-size:18px; flex-shrink:0; }

.fnote { font-size:11px; color:#888; text-align:center; margin-top:12px; line-height:1.6; }

/* ══ FAQ ══ */
.faq { padding:96px 0; background:var(--white); border-top:1px solid var(--border); }
.faq-head {
  display:grid; grid-template-columns:1fr 1fr;
  gap:48px; align-items:end; margin-bottom:56px;
}
.faq-desc { font-size:15px; color:#555555; line-height:1.75; }
.faq-desc a { color:var(--red); font-weight:600; text-decoration:none; }
.faq-desc a:hover { text-decoration:underline; }
.faq-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:0 48px; align-items:start;
}
.faq-col { display:flex; flex-direction:column; }
.faq-item {
  border-bottom:1px solid var(--border);
}
.faq-item:first-child { border-top:1px solid var(--border); }
.faq-q {
  width:100%; display:flex; align-items:center;
  justify-content:space-between; gap:16px;
  padding:20px 0; background:none; border:none;
  font-family:var(--fb); font-size:15px; font-weight:700;
  color:#0A0A0A; text-align:left; cursor:pointer;
  transition:color .2s;
}
.faq-q:hover { color:var(--red); }
.faq-q[aria-expanded="true"] { color:var(--red); }
.faq-icon {
  font-size:16px; color:var(--red); flex-shrink:0;
  transition:transform .3s ease;
}
.faq-q[aria-expanded="true"] .faq-icon { transform:rotate(45deg); }
.faq-a {
  max-height:0; overflow:hidden;
  transition:max-height .35s ease, padding .35s ease;
  padding:0;
}
.faq-a.open {
  max-height:300px;
  padding-bottom:20px;
}
.faq-a p { font-size:14px; color:#555555; line-height:1.8; }
.faq-a p strong { color:#0A0A0A; font-weight:600; }

/* ══ REASS ══ */
.reass {
  background:var(--light);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:40px 0;
}
.reass-row { display:flex; align-items:stretch; gap:0; }
.ri {
  flex:1; display:flex; align-items:center; gap:12px;
  padding:0 32px; position:relative;
}
.ri + .ri::before {
  content:''; position:absolute; left:0; top:10%; height:80%;
  width:1px; background:var(--border);
}
.ri-icon {
  font-size:18px; flex-shrink:0;
  width:40px; height:40px; border-radius:8px;
  background:var(--white); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  color:#0A0A0A;
}
.ri-title { font-size:14px; font-weight:700; color:#0A0A0A; }
.ri-text  { font-size:12.5px; color:#555555; margin-top:2px; line-height:1.4; }

/* ══ FOOTER ══ */
footer { background:var(--white); border-top:1px solid var(--border); padding:64px 0 0; }
.foot-top {
  display:grid; grid-template-columns:2.5fr 1fr 1fr 1fr;
  gap:48px; padding-bottom:48px; border-bottom:1px solid var(--border);
}
.foot-logo-wrap { display:flex; align-items:center; gap:8px; margin-bottom:14px; }
.foot-logo-box {
  width:28px; height:28px; border-radius:5px; background:var(--red);
  display:flex; align-items:center; justify-content:center;
  font-size:10px; font-weight:700; color:#fff;
}
.foot-logo-name { font-size:14px; font-weight:600; color:var(--black); letter-spacing:-.01em; }
.foot-desc { font-size:13px; color:var(--muted); line-height:1.75; max-width:260px; margin-bottom:20px; }
.foot-soc { display:flex; gap:6px; }
.fsoc {
  width:30px; height:30px; border-radius:6px;
  background:var(--light); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:700; color:var(--muted);
  transition:all .18s;
}
.fsoc:hover { background:var(--red); border-color:var(--red); color:#fff; }

.foot-col-h { font-size:11px; font-weight:600; color:var(--black); letter-spacing:.06em; text-transform:uppercase; margin-bottom:14px; }
.foot-col ul { list-style:none; display:flex; flex-direction:column; gap:7px; }
.foot-col ul a { font-size:13px; color:var(--muted); transition:color .15s; }
.foot-col ul a:hover { color:var(--black); }
.foot-contact { display:flex; flex-direction:column; gap:7px; }
.fc-item { font-size:13px; color:#555555; display:flex; align-items:center; gap:10px; line-height:1.5; margin-bottom:11px; }
.fc-dot { display:none; }
.fc-icon { font-size:15px; color:#5A8C2A; flex-shrink:0; width:16px; text-align:center; }

.foot-bottom {
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 0; flex-wrap:wrap; gap:10px;
}
.foot-copy { font-size:12px; color:var(--muted); }
.foot-links { display:flex; gap:20px; }
.foot-links a { font-size:12px; color:var(--muted); transition:color .15s; }
.foot-links a:hover { color:var(--black); }

/* ══ RESPONSIVE ══ */
@media(max-width:1024px){
  .intro-inner { grid-template-columns:1fr; gap:40px; }
  .secteurs-grid { grid-template-columns:repeat(2,1fr); }
  .hero { grid-template-columns:1fr; min-height:auto; }
  .hero-left { padding:80px 48px 64px; border-right:none; border-bottom:1px solid var(--border); }
  .hero-right { height:340px; grid-template-rows:1fr; }
  .hero-photo:last-child { display:none; }
  .usp-head { grid-template-columns:1fr; }
  .temo-grid { grid-template-columns:1fr; }
  .faq-grid { grid-template-columns:1fr; }
  .faq-head { grid-template-columns:1fr; }
  .process-grid { grid-template-columns:repeat(2,1fr); }
  .devis-inner { grid-template-columns:1fr; gap:48px; }
  .sec-head { grid-template-columns:1fr; }
  .sec-head-right { align-items:flex-start; }
  .sec-desc { text-align:left; }
  .pgrid { grid-template-columns:repeat(2,1fr); }
  .foot-top { grid-template-columns:1fr 1fr; }
  .fg-row { grid-template-columns:1fr; }
  .usp-grid2 { grid-template-columns:1fr; }
  .galerie-head { flex-direction:column; gap:16px; align-items:flex-start; }
}

@media(max-width:768px){
  .wrap { padding:0 20px; }
  nav, .hdr-right { display:none; }
  .hdr-mobile-actions { display:flex; }
  .hbg { display:flex; }
  .hbg-devis { display:inline-flex; font-size:13px; padding:9px 16px; }

  /* Hero */
  h1 { font-size:clamp(32px, 8vw, 42px); }
  .hero-left { padding:60px 20px 48px; }
  .hero-label { flex-wrap:wrap; gap:4px; font-size:10px; }
  .hero-stats { grid-template-columns:1fr 1fr; gap:10px; }
  .hero-right { height:260px; }

  /* Produits */
  .pgrid { grid-template-columns:1fr; }
  .pcard-custom { grid-template-columns:1fr; }
  .pcard-custom .pcard-img { height:200px; min-height:unset; }

  /* Secteurs */
  .secteurs-grid { grid-template-columns:1fr; }

  /* Galerie */
  .gcard { width:280px; }

  /* USP */
  .usp-grid2 { grid-template-columns:1fr; }
  .usp-head { grid-template-columns:1fr; }

  /* Processus */
  .process-grid { grid-template-columns:1fr; }

  /* Formulaire */
  .fg-row { grid-template-columns:1fr; }
  .form-wrap { padding:24px 20px; }
  .devis-inner { gap:32px; }

  /* Footer */
  .foot-top { grid-template-columns:1fr; }
  .foot-bottom { flex-direction:column; gap:6px; text-align:center; }
  .reass-row { flex-direction:column; gap:16px; }
  .ri::before { display:none; }

  /* FAQ */
  .faq-head { grid-template-columns:1fr; }
  .faq-grid { grid-template-columns:1fr; }

  /* Témoignages */
  .temo-grid { grid-template-columns:1fr; }

  /* Sections titres */
  .sec-head { grid-template-columns:1fr; }
  .galerie-head { flex-direction:column; gap:16px; align-items:flex-start; }
  .galerie-foot { flex-direction:column; gap:12px; align-items:flex-start; }
}

@media(max-width:480px){
  .wrap { padding:0 16px; }
  .hero-left { padding:48px 16px 40px; }
  .hero-stats { grid-template-columns:1fr; }
  .hero-stat-card { padding:20px; }
  .process-grid { grid-template-columns:1fr; }
  .usp-grid2 { grid-template-columns:1fr; }
  .pgrid { grid-template-columns:1fr; }
  .secteurs-grid { grid-template-columns:1fr; }
  .gcard { width:260px; }
  .form-wrap { padding:20px 16px; }
  .fsub { font-size:13px; }
  .galerie-nav { display:none; }
}