

:root{
  --bg:#eef4ea;
  --bg-2:#dfeadc;
  --paper:#ffffff;
  --ink:#132016;
  --muted:#546557;
  --brand:#8af153;
  --brand-dark:#4a9628;
  --line:rgba(19,32,22,.11);
  --shadow:0 26px 50px rgba(19,32,22,.12);
  --shadow-sm:0 14px 28px rgba(19,32,22,.08);
  --radius:24px;
  --radius-sm:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at top right, rgba(138,241,83,.22), transparent 34%),
    linear-gradient(180deg,#f5f8f3 0%,var(--bg) 58%,var(--bg-2) 100%);
  line-height:1.6;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
iframe{max-width:100%}
.container{width:min(1380px,calc(100% - 24px));margin:0 auto}
h1,h2,h3{font-family:'Barlow Condensed',sans-serif;line-height:.98;margin:0 0 14px;letter-spacing:.01em}
h1{font-size:clamp(2.65rem,6vw,5rem)}
h2{font-size:clamp(2rem,4vw,3rem)}
h3{font-size:clamp(1.5rem,3vw,2rem)}
p{margin:0 0 14px}
.lead{font-size:1.08rem;color:#334236}
.kicker{display:inline-flex;align-items:center;gap:8px;font-size:.83rem;font-weight:900;text-transform:uppercase;letter-spacing:.16em;color:var(--brand-dark);margin-bottom:12px}
.kicker::before{content:'';width:34px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--brand),transparent)}
.topbar{background:#101510;color:#eff7ed;font-size:.93rem;border-bottom:1px solid rgba(255,255,255,.08)}
.topbar a{color:#fff;font-weight:800}
.topbar__inner{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:10px 0;flex-wrap:wrap}
.opening-status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-weight:900;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.24);min-width:150px;justify-content:center;contain:layout}
.opening-status::before{content:'';width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(255,255,255,.12)}
.opening-status[data-state="open"]{background:rgba(138,241,83,.28);color:#dfffcb;border-color:rgba(138,241,83,.65)}
.opening-status[data-state="oncall"]{background:rgba(255,194,87,.28);color:#ffe4b3;border-color:rgba(255,194,87,.65)}
.opening-status[data-state="closed"]{background:rgba(255,255,255,.18);color:#ffffff;border-color:rgba(255,255,255,.35)}

.header{position:sticky;top:0;z-index:90;backdrop-filter:blur(14px);background:rgba(249,251,248,.88);border-bottom:1px solid var(--line)}
.header__inner{display:flex;align-items:center;gap:22px;min-height:88px;position:relative}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand img{width:58px;height:58px;object-fit:contain;border-radius:16px;background:#fff;padding:6px;border:1px solid var(--line)}
.brand__name{font-family:'Barlow Condensed',sans-serif;font-size:2rem;line-height:1;color:#132016}
.brand__tag{display:block;font-size:.9rem;color:var(--muted)}
.menu-toggle{display:none;appearance:none;border:1px solid var(--line);background:#fff;padding:11px 14px;border-radius:14px;font-weight:800;cursor:pointer}
.nav__header,.nav__cta{display:none}
.nav{margin-left:auto}
.menu{display:flex;gap:8px;list-style:none;padding:0;margin:0;align-items:center}
.menu a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 14px;border-radius:14px;font-weight:800;color:#1f2a20;transition:transform .2s ease,background-color .2s ease,color .2s ease}
.menu a:hover,.menu a:focus-visible,.menu a.is-active{background:#edf6e8;color:#101510;transform:translateY(-1px)}
.header__cta{display:flex;align-items:center}

/* ── Dropdown menu ─────────────────────────────────────────────────────────── */
.menu-item--dropdown{position:relative}
.menu-item--dropdown>a{gap:5px}
.menu-item--dropdown>a::after{content:'▾';font-size:.7rem;opacity:.7;transition:transform .2s ease}
.menu-item--dropdown.is-hover>a::after,
.menu-item--dropdown:focus-within>a::after{transform:rotate(-180deg)}
.dropdown{
  display:none;
  position:absolute;
  top:calc(100% + 6px);
  left:50%;
  transform:translateX(-50%);
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:0 20px 40px rgba(0,0,0,.12);
  padding:8px;
  min-width:220px;
  z-index:999;
  flex-direction:column;
  gap:2px;
}
/* Zone tampon invisible entre le bouton parent et le sous-menu
   pour garder le hover continu pendant le mouvement de la souris */
.dropdown::before{
  content:'';
  position:absolute;
  top:-14px;
  left:0;
  right:0;
  height:14px;
  background:transparent;
  pointer-events:auto;
}
.menu-item--dropdown.is-hover>.dropdown,
.menu-item--dropdown:focus-within>.dropdown{display:flex}
.dropdown a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:10px;
  font-size:.88rem;
  font-weight:700;
  color:var(--ink);
  white-space:nowrap;
  transition:background .15s ease;
  text-decoration:none;
}
.dropdown a:hover{background:#edf6e8;transform:none}
.dropdown a .dd-icon{font-size:1rem;width:24px;text-align:center;flex-shrink:0}
.dropdown::after{
  content:'';
  position:absolute;
  top:-5px;
  left:50%;
  transform:translateX(-50%);
  border:5px solid transparent;
  border-bottom-color:var(--paper);
  border-top:none;
}
/* Mobile dropdown */
@media(max-width:1080px){
  .menu-item--dropdown{position:relative}
  .menu-item--dropdown>a{padding-right:46px;position:relative}
  .menu-item--dropdown>a::after{
    content:'▾';
    position:absolute;
    right:14px;
    top:50%;
    transform:translateY(-50%);
    font-size:.85rem;
    opacity:.7;
    transition:transform .2s ease;
    pointer-events:none;
  }
  .menu-item--dropdown.is-open>a::after{
    transform:translateY(-50%) rotate(-180deg);
  }
  .dropdown{
    display:none;
    position:static;
    transform:none;
    box-shadow:none;
    border:none;
    background:#f5fbf0;
    border-radius:10px;
    padding:4px 0 4px 16px;
    margin-top:2px;
  }
  .menu-item--dropdown.is-open>.dropdown{
    display:flex;
  }
  /* Désactiver l'ouverture au survol/focus sur mobile */
  .menu-item--dropdown:hover>.dropdown,
  .menu-item--dropdown:focus-within>.dropdown{display:none}
  .menu-item--dropdown.is-open:hover>.dropdown,
  .menu-item--dropdown.is-open:focus-within>.dropdown{display:flex}
  .dropdown::before,.dropdown::after{display:none}
}
.phone-chip,.btn--primary,.call-float{background:linear-gradient(135deg,var(--brand),#bdfb9c);color:#0f160f}
.phone-chip{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:999px;font-weight:900;box-shadow:0 16px 28px rgba(138,241,83,.3)}
.panel,.card,.hero-summary,.home-highlight,.contact-item,.table-row,.zone-pill{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.panel{padding:30px}
.card{padding:28px;position:relative;overflow:hidden}
.card::after,.panel::after{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--brand),transparent);opacity:.8}
.badge{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.92);border:1px solid rgba(19,32,22,.08);font-weight:900;font-size:.92rem}
.hero{padding:28px 0 22px}
.hero-banner{padding:18px}
.hero-banner__media{position:relative;min-height:430px;border-radius:28px;overflow:hidden;background:linear-gradient(180deg, rgba(7,11,8,.08), rgba(7,11,8,.6)), url('../img/camion-rg-hydraulique.webp') center 36%/cover no-repeat}
.hero-banner__media::after,.feature-visual::after,.cta-banner::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(-55deg, rgba(138,241,83,.13) 0 8px, transparent 8px 28px)}
.hero-banner__badges{position:absolute;left:18px;right:18px;bottom:18px;display:flex;gap:12px;flex-wrap:wrap;z-index:2}
.hero-banner__content{padding:28px 8px 8px}
.hero-banner__intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:24px;align-items:start}
.hero-summary{padding:24px;background:#f2f7ef}
.hero-summary--contact{display:flex;flex-direction:column;gap:10px}
.hero-summary__actions{margin-top:auto;padding-top:8px}
.hero-actions{display:flex;flex-direction:column;gap:16px;margin-top:18px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 18px;border-radius:16px;font-weight:900;border:1px solid transparent;transition:transform .18s ease,box-shadow .18s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 18px 28px rgba(19,32,22,.12)}
.btn--secondary{background:#fff;border-color:var(--line);color:#162218}
.stripe{display:flex;gap:10px;flex-wrap:wrap;font-size:.92rem;font-weight:800;color:#4a594c}
.stripe span{background:#f2f7ef;border:1px solid var(--line);padding:9px 12px;border-radius:999px}
.home-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.home-highlight{padding:20px}
.home-highlight strong{display:block;font-family:'Barlow Condensed',sans-serif;font-size:1.75rem;line-height:1;margin-bottom:8px}
.section{padding:34px 0;position:relative}
.section-divider::before{content:'';position:absolute;left:0;right:0;top:0;height:12px;background:repeating-linear-gradient(-55deg, rgba(138,241,83,.18) 0 10px, transparent 10px 26px);opacity:.65}
.section--muted{background:linear-gradient(180deg, rgba(255,255,255,.25), rgba(232,239,229,.7))}
.section-head{margin-bottom:18px}
.grid-2,.grid-3,.grid-4,.footer-grid,.contact-card,.dual-feature{display:grid;gap:20px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.dual-feature{grid-template-columns:1.05fr .95fr;align-items:center}
.feature-visual{min-height:430px;border-radius:30px;border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(160deg, rgba(255,255,255,.06), rgba(255,255,255,0) 40%),linear-gradient(180deg, rgba(16,20,16,.16), rgba(16,20,16,.52)),url('../img/camion-rg-hydraulique.webp') center/cover no-repeat;position:relative;overflow:hidden}
.feature-copy{padding:34px}
.check-list{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:12px}
.check-list li{position:relative;padding-left:30px;margin:0;color:#243025}
.check-list li::before{content:'✓';position:absolute;left:0;top:0;font-weight:900;color:var(--brand-dark)}
.page-intro{padding:22px 0 8px}
.breadcrumb{display:flex;gap:10px;flex-wrap:wrap;font-size:.95rem;color:var(--muted)}
.breadcrumb a{font-weight:800}
.page-hero{padding:8px 0 18px}
.cta-banner{background:linear-gradient(135deg,#111612 0%, #1b221d 50%, #101510 100%);color:#fff;border-radius:32px;padding:34px;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.cta-banner > *{position:relative}
.cta-banner .lead,.cta-banner p,.cta-banner a{color:#e4eee3}

.contact-hours{overflow:hidden;position:relative}
.contact-hours__head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:22px}
.contact-hours__head .lead{max-width:760px}
.hours-list{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.hours-item{background:#f7faf5;border:1px solid var(--line);border-radius:22px;padding:18px;display:flex;gap:14px;align-items:flex-start;min-height:170px}
.hours-item--main{background:#f2f7ef}
.hours-item__icon{display:inline-grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:16px;background:#fff;border:1px solid var(--line);font-size:1.35rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.hours-item h3{font-size:1.65rem;margin-bottom:8px}
.hours-item p{margin-bottom:4px;color:#354337}
.hours-item strong{color:#132016;font-weight:900}
.contact-card{grid-template-columns:1fr 1fr}
.contact-item{padding:24px}
.contact-item strong{display:block;font-family:'Barlow Condensed',sans-serif;font-size:1.8rem;margin-bottom:10px}
.map-wrap{padding:16px}
.table-list{display:grid;gap:12px}
.table-row{display:grid;grid-template-columns:1.2fr .9fr 1fr;gap:12px;padding:16px 18px;border-radius:18px;align-items:center}
.table-row strong{font-size:1rem}
.zone-list{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.compact-zone-list{grid-template-columns:repeat(2,1fr)}
.zone-pill{padding:16px 14px;text-align:center;font-weight:800}
.service-card__icon{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#edf6e8;border:1px solid var(--line);font-size:1.6rem;margin-bottom:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.service-card{transition:transform .22s ease, box-shadow .22s ease}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}

/* Animations au survol des cadres */
.panel,.card,.contact-item,.home-highlight,.hero-summary,.zone-pill{
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease, background-color .24s ease;
}
.panel:hover,.card:hover,.contact-item:hover,.home-highlight:hover,.hero-summary:hover,.zone-pill:hover{
  transform:translateY(-7px);
  border-color:rgba(74,150,40,.28);
  box-shadow:0 28px 52px rgba(19,32,22,.16);
}
.contact-item,.card,.panel{isolation:isolate}
.contact-item::before,.card::before,.panel::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(135deg, rgba(138,241,83,.16), transparent 44%);
  opacity:0;
  pointer-events:none;
  transition:opacity .24s ease;
  z-index:-1;
}
.contact-item:hover::before,.card:hover::before,.panel:hover::before{opacity:1}
.contact-item{position:relative;overflow:hidden}
@media (prefers-reduced-motion: reduce){
  .panel,.card,.contact-item,.home-highlight,.hero-summary,.zone-pill,.panel::before,.card::before,.contact-item::before{transition:none}
  .panel:hover,.card:hover,.contact-item:hover,.home-highlight:hover,.hero-summary:hover,.zone-pill:hover{transform:none}
}

.socials{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.social{display:inline-grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:999px;border:1px solid transparent;color:#fff;text-decoration:none;overflow:hidden;line-height:1;padding:0;background:rgba(255,255,255,.08);transition:transform .2s,box-shadow .2s,filter .2s}
.social:hover{transform:translateY(-2px);filter:brightness(1.1)}
.social svg{display:block;width:20px;height:20px;flex-shrink:0}
.social>span[aria-hidden="true"]{display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1}

/* Couleurs de marque actives par défaut, hover renforce l'effet */
.social--facebook{background:#1877f2;border-color:#1877f2}
.social--facebook:hover{box-shadow:0 6px 16px rgba(24,119,242,.45)}
.social--instagram{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);border-color:transparent}
.social--instagram:hover{box-shadow:0 6px 16px rgba(220,39,67,.45)}
.social--linkedin{background:#0a66c2;border-color:#0a66c2}
.social--linkedin:hover{box-shadow:0 6px 16px rgba(10,102,194,.45)}
.social--youtube{background:#ff0000;border-color:#ff0000}
.social--youtube:hover{box-shadow:0 6px 16px rgba(255,0,0,.45)}
.social--x{background:#000;border-color:#fff}
.social--x:hover{box-shadow:0 6px 16px rgba(255,255,255,.20)}
.social--tiktok{background:#000;border-color:#fff}
.social--tiktok:hover{box-shadow:0 6px 16px rgba(255,255,255,.20)}
.social--whatsapp{background:#25d366;border-color:#25d366}
.social--whatsapp:hover{box-shadow:0 6px 16px rgba(37,211,102,.45)}
.social--google{background:#4285f4;border-color:#4285f4}
.social--google:hover{box-shadow:0 6px 16px rgba(66,133,244,.45)}
.social--extranet{background:var(--brand,#16a34a);border-color:var(--brand,#16a34a)}
.social--extranet:hover{box-shadow:0 6px 16px rgba(22,163,74,.45)}
/* Carte zone d’intervention */
.intervention-map-card{overflow:hidden}
.intervention-map{width:100%;height:460px;border-radius:22px;border:1px solid var(--line);background:#edf6e8;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.map-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;color:var(--muted);font-weight:800}
.map-legend span{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;background:#f7faf5;border:1px solid var(--line)}
.map-legend__dot{width:12px;height:12px;border-radius:50%;display:inline-block;border:2px solid currentColor}
.map-legend__dot--zone0{color:#16a34a;background:rgba(34,197,94,.34)}
.map-legend__dot--zone1{color:#f59e0b;background:rgba(251,191,36,.38)}
.map-legend__dot--zone2{color:#dc2626;background:rgba(239,68,68,.30)}
.map-legend__dot--outside{color:#475569;background:rgba(100,116,139,.22)}
@media (max-width:860px){
  .intervention-map{height:360px;border-radius:18px}
}

/* ═══════════════════════════════════════════════════════════════════════════
   PIED DE PAGE — refonte (v4, 5 colonnes sans horaires)
═════════════════════════════════════════════════════════════════════════════ */
.footer{margin-top:40px;background:#101510;color:#f4fbf2;border-top:4px solid var(--brand)}
.footer-top{padding:36px 0 26px}

/* Grille principale : 5 colonnes (Marque légèrement plus large + 4 autres). */
.footer-grid{
  display:grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr;
  gap:32px 28px;
  align-items:start;
}
.footer-col{min-width:0}

/* Titres de colonnes — taille équilibrée */
.footer h3{
  font-size:.85rem;
  margin:0 0 14px;
  color:#fff;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  position:relative;
  padding-bottom:10px;
}
.footer h3::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:26px; height:2px;
  background:var(--brand);
  border-radius:2px;
}

.footer p,.footer li,.footer a{color:#d7e2d8;font-size:.9rem;line-height:1.5}
.footer a{text-decoration:none;transition:color .15s}
.footer a:hover{color:#fff}
.footer ul{list-style:none;padding:0;margin:0}

.brand--footer .brand__name,.brand--footer .brand__tag{color:#fff}
.footer-baseline{margin:14px 0 16px;max-width:36ch;font-size:.9rem}

/* Liste des liens de navigation : un lien par ligne, joli hover */
.footer-nav-list{display:flex;flex-direction:column;gap:7px}
.footer-nav-list a{
  display:inline-block;
  padding:2px 0;
  transition:color .15s,transform .15s;
}
.footer-nav-list a:hover{color:#fff;transform:translateX(3px)}

/* Liste contact avec petites icônes alignées */
.footer-contact-list{display:flex;flex-direction:column;gap:11px}
.footer-contact-list li{display:flex;gap:9px;align-items:flex-start;line-height:1.5}
.footer-contact-list__icon{
  flex:0 0 18px;
  width:18px;height:18px;
  display:grid;place-items:center;
  color:var(--brand,#16a34a);
  margin-top:3px;
}

/* ─── Barre du bas (copyright / liens légaux / téléphone) ───────────────── */
.footer-band{
  border-top:1px solid rgba(255,255,255,.10);
  padding:16px 0;
  color:#cad8cc;
  font-size:.84rem;
}
.footer-band__inner{
  display:flex;
  gap:16px 24px;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
}
.footer-band__copy{flex:0 1 auto}
.footer-band__links{
  list-style:none;
  margin:0;padding:0;
  display:flex;
  gap:6px 18px;
  flex-wrap:wrap;
  flex:1 1 auto;
  justify-content:center;
}
.footer-band__links a{color:#cad8cc;text-decoration:none;transition:color .15s}
.footer-band__links a:hover{color:#fff}
.footer-band__phone{font-weight:700}
.footer-band__phone a{color:#fff;text-decoration:none}
.footer-band__phone a::before{content:"☎ ";color:var(--brand)}

.call-float{position:fixed;right:18px;bottom:18px;z-index:95;display:inline-flex;align-items:center;gap:10px;padding:14px 18px;border-radius:999px;font-weight:900;letter-spacing:.03em;box-shadow:0 24px 36px rgba(138,241,83,.34);border:1px solid rgba(17,25,18,.07)}
.call-float::before{content:'☎';font-size:18px}
.maintenance{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#f8fbf7 0%, #eef4ec 100%)}
.maintenance-card{max-width:760px;background:#fff;border:1px solid var(--line);border-radius:32px;box-shadow:var(--shadow);padding:38px;text-align:center;position:relative;overflow:hidden}
.timing-grid{align-items:start}
.schedule-list .table-row{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.12)}
.schedule-list--light .table-row{background:#fff;color:var(--ink);border-color:var(--line)}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .55s ease, transform .55s ease}
.reveal.is-visible{opacity:1;transform:none}

/* ─── Responsive footer ─────────────────────────────────────────────────── */
@media (max-width:1100px){
  .hero-banner__intro,.grid-3,.grid-4,.zone-list,.dual-feature,.home-highlights,.hours-list{grid-template-columns:1fr 1fr}
  /* Tablette : 3 colonnes (marque sur toute la largeur en haut, puis 2x2 dessous) */
  .footer-grid{grid-template-columns:1fr 1fr 1fr; gap:28px 22px}
  .footer-col--brand{grid-column:1 / -1}
}
@media (max-width:760px){
  .hero-banner__media{min-height:300px;background-position:center}
  .hero-banner__content{padding:22px 4px 4px}
  .hero-banner__intro,.grid-2,.grid-3,.grid-4,.contact-card,.zone-list,.dual-feature,.home-highlights,.compact-zone-list,.timing-grid,.hours-list{grid-template-columns:1fr}
  .contact-hours__head{display:grid}
  .table-row{grid-template-columns:1fr}
  .footer-top{padding:30px 0 22px}
  .footer-grid{grid-template-columns:1fr; gap:24px}
  .footer-col--brand{grid-column:span 1}
  .footer-band__inner{justify-content:flex-start;flex-direction:column;align-items:flex-start;gap:10px}
  .footer-band__links{justify-content:flex-start}
}

/* Page avis clients */
.avis-hero__panel{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:26px;align-items:center;overflow:hidden;position:relative}
.avis-hero__panel h1{font-size:clamp(2.15rem,4.4vw,3.6rem);max-width:760px}
.avis-hero__panel .lead{max-width:760px}
.avis-highlights{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.avis-highlights span{display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border-radius:999px;background:#f2f7ef;border:1px solid var(--line);font-weight:800;color:#263326}
.avis-highlights strong{color:var(--brand-dark);font-weight:900}
.avis-hero__badge{justify-self:end;width:190px;min-height:190px;border-radius:34px;background:linear-gradient(145deg,#101510,#263326);color:#fff;display:grid;place-items:center;text-align:center;padding:22px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.12)}
.avis-hero__badge span{display:grid;place-items:center;width:64px;height:64px;border-radius:22px;background:linear-gradient(135deg,var(--brand),#bdfb9c);color:#101510;font-size:2rem;box-shadow:0 16px 28px rgba(138,241,83,.22)}
.avis-hero__badge strong{font-family:'Barlow Condensed',sans-serif;font-size:2rem;line-height:1;margin-top:8px}
.avis-hero__badge small{color:#dfeadc;font-weight:700}
.avis-section__head{max-width:850px;margin-bottom:22px}
.avis-cards{margin-bottom:22px}
.avis-card{min-height:220px}
.avis-card__icon,.avis-widget-panel__icon{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:18px;background:#edf6e8;border:1px solid var(--line);font-size:1.65rem;margin-bottom:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.avis-card h3{margin-bottom:10px}
.avis-widget-panel{margin-top:20px;overflow:hidden;position:relative}
.avis-widget-panel__intro{display:flex;gap:16px;align-items:flex-start;margin-bottom:12px}
.avis-widget-panel__intro h2{font-size:clamp(1.85rem,3.4vw,2.65rem)}
.avis-widget-panel__intro p{color:var(--muted);margin-bottom:0}
@media (max-width:860px){
  .avis-hero__panel{grid-template-columns:1fr}
  .avis-hero__badge{justify-self:start;width:100%;min-height:auto;grid-template-columns:auto 1fr;column-gap:14px;text-align:left;border-radius:24px}
  .avis-hero__badge strong{margin-top:0}
  .avis-hero__badge small{grid-column:2}
  .avis-widget-panel__intro{display:block}
}

/* Formulaire de contact */
.contact-form-card{grid-row:span 2}
.contact-form{display:grid;gap:14px;margin-top:16px}
.form-row{display:grid;gap:7px}
.form-row label{font-weight:900;color:#243025}
.form-row label span{color:var(--brand-dark)}
.form-row input,.form-row textarea,.form-row select{
  width:100%;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f7faf5;
  color:var(--ink);
  font:inherit;
  padding:13px 14px;
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.form-row select{
  /* Réinitialise l'apparence native du select pour qu'il colle aux autres champs */
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  /* Chevron SVG vert (couleur RG) en arrière-plan, aligné à droite */
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234A9628' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;
  background-position:right 16px center;
  padding-right:42px;
  cursor:pointer;
}
.form-row textarea{resize:vertical;min-height:140px}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{
  border-color:rgba(74,150,40,.55);
  background-color:#fff;
  box-shadow:0 0 0 4px rgba(138,241,83,.22);
}
.contact-form .btn{width:fit-content;cursor:pointer;font:inherit}
.captcha-row{margin:4px 0 2px;display:flex;align-items:center;overflow-x:auto;max-width:100%}
.captcha-help{margin:0;color:var(--muted);font-weight:800}
.form-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
@media (max-width:860px){
  .contact-form-card{grid-row:auto}
  .contact-form .btn{width:100%}
}
.form-feedback{display:none;margin-top:12px;padding:12px 14px;border-radius:16px;font-weight:800}
.form-feedback--success{display:block;background:#edf6e8;border:1px solid rgba(74,150,40,.25);color:#254a18}
.form-feedback--error{display:block;background:#fff4f0;border:1px solid rgba(180,70,35,.22);color:#84351f}

/* Contact : formulaire placé sous Horaires et Accès */
.contact-card--form-below{grid-template-columns:1fr}
.contact-card--form-below .contact-form-card{grid-row:auto;width:100%}
.contact-action{margin-top:8px;gap:10px;width:fit-content;box-shadow:0 16px 28px rgba(138,241,83,.24)}
.contact-action span{font-size:1.05rem}

/* Cartes atelier avec photo intégrée */
.atelier-services .section-head{max-width:880px}
.atelier-service-grid{align-items:stretch}
.atelier-service-card{display:flex;flex-direction:column;gap:20px;padding:24px;min-height:100%}
.atelier-service-card__content{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.atelier-service-card__content h2{margin-bottom:4px}
.atelier-service-card__content p{margin-bottom:0}
.atelier-service-card__tag{display:inline-flex;padding:6px 11px;border-radius:999px;background:#edf6e8;border:1px solid var(--line);color:var(--ink);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em}
.atelier-service-card__media{margin:0;border-radius:22px;overflow:hidden;border:1px solid var(--line);background:#edf6e8;aspect-ratio:4/3;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.atelier-service-card__media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.atelier-service-card:hover .atelier-service-card__media img{transform:scale(1.035)}
@media (max-width:700px){
  .atelier-service-card{padding:20px;gap:16px}
  .atelier-service-card__media{border-radius:18px}
}

/* Galerie atelier */
.atelier-photos .section-head{max-width:880px}
.atelier-gallery{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;align-items:stretch}
.atelier-photo-card{position:relative;min-height:320px;border-radius:28px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#101510;isolation:isolate}
.atelier-photo-card--large{grid-row:span 2;min-height:660px}
.atelier-photo-card img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .45s ease;z-index:-2}
.atelier-photo-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,21,16,.08) 0%,rgba(16,21,16,.22) 42%,rgba(16,21,16,.78) 100%);z-index:-1}
.atelier-photo-card:hover img{transform:scale(1.045)}
.atelier-photo-card__content{position:absolute;left:0;right:0;bottom:0;padding:24px;color:#fff}
.atelier-photo-card__content span{display:inline-flex;margin-bottom:10px;padding:6px 10px;border-radius:999px;background:rgba(138,241,83,.92);color:#101510;font-weight:900;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}
.atelier-photo-card__content h3{color:#fff;margin-bottom:8px;font-size:clamp(1.75rem,3vw,2.3rem)}
.atelier-photo-card__content p{color:#edf6e8;margin-bottom:0;max-width:620px}
@media (max-width:860px){
  .atelier-gallery{grid-template-columns:1fr}
  .atelier-photo-card,.atelier-photo-card--large{min-height:330px;grid-row:auto}
  .atelier-photo-card__content{padding:20px}
}

/* Page tarifs */
.tariff-hero .panel{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#f4faef 58%,#e7f5de 100%)}
.tariff-alert{margin:20px 0;padding:16px 18px;border-radius:18px;background:#101510;color:#f4fbf2;border-left:5px solid var(--brand);box-shadow:var(--shadow-sm)}
.tariff-alert strong{color:#bdfb9c}
.tariff-table-wrap{overflow-x:auto;border-radius:24px;box-shadow:var(--shadow-sm);border:1px solid var(--line);background:#fff}
.tariff-table{width:100%;border-collapse:collapse;min-width:820px;background:#fff}
.tariff-table th{background:#101510;color:#fff;text-align:left;font-weight:900;padding:18px 20px;font-size:.96rem;letter-spacing:.02em}
.tariff-table td{padding:18px 20px;border-top:1px solid var(--line);vertical-align:top;color:#263126}
.tariff-table td strong{display:block;color:#132016;font-weight:900;margin-bottom:4px}
.tariff-table td span{display:block;color:var(--muted);font-size:.92rem;line-height:1.35}
.tariff-table tbody tr:nth-child(even){background:#f7faf5}
.tariff-cards .card{display:flex;flex-direction:column}
.tariff-price{display:inline-flex;align-self:flex-start;padding:8px 12px;border-radius:999px;background:#edf6e8;border:1px solid var(--line);font-weight:900;color:var(--brand-dark);margin-bottom:14px}
.price-line{font-size:1.05rem;color:#314034;margin-bottom:4px}
.price-line strong{font-size:1.25rem;color:#132016}
.mini-pricing{display:grid;gap:12px;margin-top:18px}
.mini-pricing div{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center;padding:14px 16px;border-radius:18px;background:#f7faf5;border:1px solid var(--line)}
.mini-pricing strong{font-weight:900;color:#132016}
.mini-pricing span{color:var(--muted);font-weight:700}
.tariff-cta-row{margin-top:20px}
@media (max-width:720px){
  .tariff-table{min-width:760px}
  .mini-pricing div{grid-template-columns:1fr}
}

/* Compléments page tarifs : qualité flexible et photos location */
.quality-strip{display:flex;gap:20px;align-items:flex-start;margin-top:24px;padding:24px;border-radius:24px;background:#101510;color:#f4fbf2;border:1px solid rgba(138,241,83,.28);box-shadow:var(--shadow-sm)}
.quality-strip__icon{flex:0 0 52px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#101510;font-weight:900;font-size:1.5rem}
.quality-strip h3{color:#fff;margin:6px 0 10px;font-size:clamp(1.35rem,2.2vw,1.9rem)}
.quality-strip p{color:#edf6e8;margin-bottom:14px}
.inline-checks{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.inline-checks li{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(138,241,83,.12);border:1px solid rgba(138,241,83,.28);color:#fff;font-weight:800;font-size:.9rem}
.inline-checks li::before{content:'✓';color:#bdfb9c;font-weight:900}
.equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-bottom:24px}
.equipment-card{overflow:hidden;border-radius:28px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.equipment-card figure{margin:0;aspect-ratio:16/10;background:#101510;overflow:hidden}
.equipment-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.equipment-card:hover img{transform:scale(1.035)}
.equipment-card__body{padding:22px}
.equipment-card__body h3{margin:6px 0 8px;font-size:1.35rem}
.equipment-card__body p{margin:0;color:var(--muted)}
@media (max-width:780px){
  .quality-strip{flex-direction:column;padding:20px}
  .equipment-grid{grid-template-columns:1fr}
}


/* Catalogue et pages produit location */
.rental-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
.rental-product-card{display:flex;flex-direction:column;overflow:hidden;border-radius:30px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;color:inherit;min-height:100%}
.rental-product-card:hover,.rental-product-card:focus-visible{transform:translateY(-7px);box-shadow:0 28px 52px rgba(19,32,22,.16);border-color:rgba(74,150,40,.32);outline:none}
.rental-product-card figure{position:relative;margin:0;aspect-ratio:16/10;overflow:hidden;background:#101510}
.rental-product-card img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.rental-product-card:hover img,.rental-product-card:focus-visible img{transform:scale(1.04)}
.rental-product-card figure::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,21,16,0) 35%,rgba(16,21,16,.74) 100%)}
.rental-product-card figure span{position:absolute;left:18px;bottom:18px;z-index:2;display:inline-flex;padding:9px 13px;border-radius:999px;background:linear-gradient(135deg,var(--brand),#bdfb9c);color:#101510;font-weight:900;box-shadow:0 14px 24px rgba(0,0,0,.18)}
.rental-product-card__body{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:24px;gap:10px}
.rental-product-card__body h3{margin:0;font-size:clamp(1.85rem,3vw,2.45rem)}
.rental-product-card__body p{color:var(--muted);margin:0}
.rental-product-card__body .btn{margin-top:auto}
.inline-checks--dark li{background:#f2f7ef;border-color:var(--line);color:#263326}
.inline-checks--dark li::before{color:var(--brand-dark)}
.rental-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.72fr);gap:24px;align-items:stretch}
.rental-detail-grid .panel{display:flex;flex-direction:column;justify-content:center}
.rental-detail-media{margin:0;min-height:420px;border-radius:30px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:#101510;position:relative}
.rental-detail-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
@media (max-width:860px){
  .rental-catalog,.rental-detail-grid{grid-template-columns:1fr}
  .rental-detail-media{min-height:320px}
}

/* =========================================================
   Correctif structure commune : en-tête / menu / pied de page
   Objectif : menu identique, propre et sans chevauchement.
   ========================================================= */
.header__inner{
  display:grid;
  grid-template-columns:minmax(220px, 280px) minmax(0, 1fr) auto;
  align-items:center;
  gap:16px;
  min-height:88px;
}
.brand{
  min-width:0;
  max-width:360px;
}
.brand > div{
  min-width:0;
}
.brand__name,
.brand__tag{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.brand__name{
  font-size:clamp(1.55rem, 2vw, 2rem);
}
.brand__tag{
  font-size:.86rem;
}
.nav{
  margin-left:0;
  justify-self:end;
  min-width:0;
}
.menu{
  flex-wrap:wrap;
  justify-content:flex-end;
  row-gap:6px;
}
.menu a{
  min-height:40px;
  padding:0 8px;
  font-size:.85rem;
  white-space:nowrap;
}
.header__cta{
  justify-self:end;
}
.phone-chip,
.btn--primary,
.btn--secondary,
.call-float{
  color:#000000 !important;
}
.phone-chip span,
.btn--primary span,
.btn--secondary span,
.call-float span{
  color:#000000 !important;
}
.topbar__inner{
  align-items:center;
}
.topbar a,
.topbar a span{
  color:#ffffff !important;
}
.footer a[href^="tel"],
.footer a[href^="tel"] span,
.footer-band a[href^="tel"],
.footer-band a[href^="tel"] span{
  color:#d7e2d8 !important;
}

@media (max-width:1240px){
  .header__inner{
    grid-template-columns:minmax(220px, 300px) minmax(0, 1fr) auto;
    gap:12px;
  }
  .brand img{
    width:52px;
    height:52px;
  }
  .brand__name{
    font-size:1.65rem;
  }
  .brand__tag{
    font-size:.78rem;
  }
  .menu a{
    padding:0 9px;
    font-size:.88rem;
  }
  .phone-chip{
    padding:0 14px;
  }
}

@media (max-width:1080px){
  .header__inner{
    display:flex;
  }
  .menu-toggle{
    display:inline-flex;
    margin-left:auto;
  }
  /* Menu plein écran sur mobile */
  .nav{
    position:fixed;
    inset:0;
    width:100%;
    height:100vh;
    height:100dvh;
    top:0;
    left:0;
    right:0;
    background:#f9fbf8;
    border:none;
    display:none;
    padding:0;
    box-shadow:none;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    z-index:200;
  }
  .nav.is-open{
    display:block;
  }
  .nav.is-open .nav__header{
    display:flex;
  }
  .nav__header{
    position:fixed;
    top:0;
    left:0;
    right:0;
    height:72px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 18px;
    background:#fff;
    border-bottom:1px solid var(--line);
    z-index:2;
  }
  .nav__brand{
    font-family:'Barlow Condensed',sans-serif;
    font-size:1.4rem;
    font-weight:800;
    color:var(--ink);
    letter-spacing:.02em;
  }
  .nav__close{
    appearance:none;
    border:1px solid var(--line);
    background:#fff;
    width:44px;
    height:44px;
    border-radius:14px;
    display:inline-grid;
    place-items:center;
    cursor:pointer;
    font-size:1.5rem;
    line-height:1;
    color:var(--ink);
    padding:0;
    transition:background .15s ease,transform .15s ease;
  }
  .nav__close:hover,.nav__close:focus-visible{
    background:#edf6e8;
    transform:scale(1.05);
  }
  /* Liste des liens du menu plein écran */
  .menu{
    display:grid;
    gap:4px;
    padding:90px 18px 28px;
    justify-content:stretch;
  }
  .menu>li>a{
    justify-content:flex-start;
    width:100%;
    min-height:56px;
    padding:0 18px;
    font-size:1.1rem;
    border-radius:14px;
  }
  .menu a.is-active{
    background:#edf6e8;
    color:var(--brand-dark);
  }
  /* CTA "Appeler" visible en bas du menu */
  .nav__cta{
    display:none;
  }
  .nav.is-open .nav__cta{
    display:block;
    padding:8px 18px 28px;
    border-top:1px solid var(--line);
    margin-top:8px;
  }
  .nav__cta .phone-chip{
    display:flex;
    width:100%;
    min-height:56px;
    font-size:1.05rem;
  }
  .header__cta{
    display:none;
  }
  /* Empêcher le scroll du body quand le menu est ouvert */
  body.menu-open{
    overflow:hidden;
  }
}

@media (max-width:520px){
  .container{
    width:min(100% - 16px, 1380px);
  }
  .header__inner{
    min-height:78px;
    gap:10px;
  }
  .brand{
    gap:10px;
    max-width:calc(100% - 92px);
  }
  .brand img{
    width:46px;
    height:46px;
    border-radius:13px;
  }
  .brand__name{
    font-size:1.38rem;
  }
  .brand__tag{
    display:none;
  }
  .menu-toggle{
    padding:10px 12px;
  }
  .topbar__inner{
    display:grid;
    gap:6px;
    font-size:.86rem;
  }
}

/* Correctifs RG-HYDRAULIQUE — menu sur une ligne + accroche marque sur deux lignes */
@media (min-width:1081px){
  .header__inner{
    grid-template-columns:minmax(255px, 320px) minmax(0, 1fr) auto;
    gap:12px;
  }
  .brand__tag{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    line-height:1.22;
  }
  .menu{
    flex-wrap:nowrap;
    justify-content:flex-end;
    gap:5px;
  }
  .menu a{
    padding:0 6px;
    font-size:.76rem;
    min-height:40px;
    white-space:nowrap;
  }
  .phone-chip{
    min-height:42px;
    padding:0 9px;
    font-size:.85rem;
    white-space:nowrap;
  }
}

@media (min-width:1081px) and (max-width:1180px){
  .header__inner{
    grid-template-columns:minmax(235px, 285px) minmax(0, 1fr) auto;
    gap:10px;
  }
  .brand img{
    width:50px;
    height:50px;
  }
  .brand__name{
    font-size:1.5rem;
  }
  .brand__tag{
    font-size:.72rem;
  }
  .menu a{
    padding:0 6px;
    font-size:.78rem;
  }
  .phone-chip{
    padding:0 10px;
    font-size:.9rem;
  }
}


/* Ajustement menu desktop */
@media (min-width: 1101px){
  .header__inner{
    gap:14px;
    justify-content:space-between;
  }
  .brand{
    flex-shrink:0;
  }
  .nav{
    flex:1;
    margin-left:18px;
  }
  .menu{
    justify-content:center;
    flex-wrap:nowrap;
    gap:4px;
  }
  .menu a{
    padding:0 10px;
    font-size:.95rem;
    white-space:nowrap;
  }
  .header__cta{
    flex-shrink:0;
  }
}


/* ============================================================================
   Boutons noirs (remplace les style="color:#000 !important" inline)
   ============================================================================ */
.btn--primary,
.btn--secondary{color:#000 !important}
.btn--primary:visited,
.btn--secondary:visited,
.btn--primary:hover,
.btn--secondary:hover{color:#000 !important}

/* Classe utilitaire visually-hidden pour accessibilité */
.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;white-space:nowrap !important;border:0 !important}

/* ============================================================================
   Bannière clients (logos défilants) — utilisée sur les pages villes
   ============================================================================ */
.rg-clients-banner{margin:48px auto;padding:0 20px}
.rg-clients-inner{max-width:1180px;margin:0 auto;padding:34px 0 30px;overflow:hidden;border-radius:28px;background:linear-gradient(135deg,#fff 0%,#f7f9f5 100%);border:1px solid rgba(20,40,20,.08);box-shadow:0 16px 38px rgba(0,0,0,.08);text-align:center}
.rg-clients-eyebrow{margin:0 0 8px;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#6a8f20}
.rg-clients-inner h2{max-width:820px;margin:0 auto 26px;padding:0 22px;font-size:clamp(1.35rem,2.5vw,2rem);line-height:1.18;color:#172017}
.rg-clients-marquee{position:relative;width:100%;overflow:hidden;padding:16px 0;background:rgba(255,255,255,.72)}
.rg-clients-marquee:before,.rg-clients-marquee:after{content:"";position:absolute;top:0;z-index:2;width:90px;height:100%;pointer-events:none}
.rg-clients-marquee:before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}
.rg-clients-marquee:after{right:0;background:linear-gradient(270deg,#fff,rgba(255,255,255,0))}
.rg-clients-track{display:flex;align-items:center;gap:54px;width:max-content;animation:rgClientsMarquee 32s linear infinite;list-style:none;margin:0;padding:0}
.rg-clients-track li{display:flex;align-items:center;list-style:none;margin:0;padding:0}
.rg-clients-track img{width:170px;height:82px;object-fit:contain;padding:10px 14px;border-radius:18px;background:#fff;filter:grayscale(1);opacity:.78;transition:filter .25s ease,opacity .25s ease,transform .25s ease}
.rg-clients-track img:hover{filter:grayscale(0);opacity:1;transform:translateY(-3px)}
@keyframes rgClientsMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (max-width:720px){
  .rg-clients-banner{margin:36px auto;padding:0 14px}
  .rg-clients-inner{border-radius:22px;padding-top:28px}
  .rg-clients-track{gap:28px;animation-duration:24s}
  .rg-clients-track img{width:132px;height:66px}
}
/* ============================================================================
   Carte locale (pages villes) — donne une taille au conteneur Google Maps
   ============================================================================ */
.local-map{margin:24px 0;border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:0 6px 18px rgba(0,0,0,.06);background:#fff}
.local-map__canvas{width:100%;height:420px;display:block}
@media (max-width:720px){
  .local-map__canvas{height:320px}
}
/* ============================================================================
   Page 404 — mise en page du bloc "Page introuvable"
   ============================================================================ */
.not-found{padding:60px 20px 80px;text-align:center}
.not-found__inner{max-width:760px;margin:0 auto;padding:48px 32px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.not-found__code{display:inline-block;font-family:'Barlow Condensed',sans-serif;font-size:clamp(3rem,7vw,5rem);line-height:1;margin:0 0 8px;color:var(--brand-dark);font-weight:800;letter-spacing:.04em}
.not-found__title{font-size:clamp(2rem,4.5vw,3.5rem);margin:0 0 18px;color:var(--ink)}
.not-found__text{color:var(--muted);font-size:1.05rem;margin:0 0 28px;line-height:1.6}
.not-found__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:36px}
.not-found__links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding-top:28px;border-top:1px solid var(--line)}
.not-found__links a{display:inline-flex;align-items:center;padding:10px 16px;border-radius:999px;background:#edf6e8;border:1px solid rgba(74,150,40,.18);color:var(--brand-dark);font-weight:700;font-size:.92rem;transition:transform .18s ease,background-color .18s ease}
.not-found__links a:hover{background:#d6ecc9;transform:translateY(-2px)}
@media (max-width:640px){
  .not-found{padding:40px 14px}
  .not-found__inner{padding:32px 20px}
  .not-found__actions{flex-direction:column}
  .not-found__actions .btn{width:100%}
}

/* ============================================================================
   Bandeau cookies (RGPD / CNIL) — v3 discret avec marque RG-HYDRAULIQUE
   ============================================================================ */
#rg-cookie-banner{
  position:fixed;
  left:18px;
  bottom:18px;
  z-index:9999;
  width:min(380px, calc(100vw - 36px));
  background:#fff;
  color:#1a2520;
  border:1px solid rgba(19,32,22,.08);
  border-radius:20px;
  padding:18px 20px 16px;
  box-shadow:0 22px 52px rgba(0,0,0,.18), 0 4px 14px rgba(0,0,0,.06);
  font-size:.9rem;
  line-height:1.5;
  opacity:0;
  transform:translateY(28px) scale(.96);
  transition:opacity .45s cubic-bezier(.2,.8,.2,1),
             transform .45s cubic-bezier(.2,.8,.2,1);
}
#rg-cookie-banner.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}
#rg-cookie-banner.is-leaving{
  opacity:0;
  transform:translateY(28px) scale(.96);
}
#rg-cookie-banner a{
  color:#2d6118;
  text-decoration:underline;
  font-weight:700;
}
#rg-cookie-banner a:hover{
  color:#1f4310;
}
.rg-cookie-header{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:12px;
}
.rg-cookie-icon{
  flex-shrink:0;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(135deg, rgba(189,251,156,.25), rgba(138,241,83,.15));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
.rg-cookie-icon svg{
  display:block;
  filter:drop-shadow(0 2px 4px rgba(74,150,40,.18));
  animation:rgCookieFloat 3s ease-in-out infinite;
}
@keyframes rgCookieFloat{
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(-2px) rotate(-3deg)}
}
.rg-cookie-titles{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.rg-cookie-brand{
  font-family:'Barlow Condensed',sans-serif;
  font-size:1.15rem;
  line-height:1;
  color:#132016;
  letter-spacing:.02em;
  font-weight:800;
}
.rg-cookie-subtitle{
  font-size:.74rem;
  font-weight:700;
  color:#2d6118;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.rg-cookie-msg{
  margin:0 0 14px;
  color:#3a4a40;
  font-size:.88rem;
}
.rg-cookie-actions{
  display:flex;
  gap:8px;
  justify-content:flex-end;
}
.rg-cookie-btn{
  cursor:pointer;
  font-family:inherit;
  font-weight:700;
  font-size:.85rem;
  padding:9px 16px;
  border-radius:11px;
  border:none;
  transition:transform .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.rg-cookie-btn:hover{
  transform:translateY(-1px);
}
.rg-cookie-btn--refuse{
  background:transparent;
  color:#5a6660;
  border:1px solid rgba(19,32,22,.14);
}
.rg-cookie-btn--refuse:hover{
  background:#f4f6f3;
  color:#1a2520;
}
.rg-cookie-btn--accept{
  background:linear-gradient(135deg, var(--brand), #bdfb9c);
  color:#0a1206;
  box-shadow:0 4px 14px rgba(138,241,83,.34);
}
.rg-cookie-btn--accept:hover{
  box-shadow:0 6px 18px rgba(138,241,83,.46);
}
@media (max-width:520px){
  #rg-cookie-banner{
    left:12px;
    right:12px;
    bottom:12px;
    width:auto;
    padding:16px 18px 14px;
  }
}
@media (prefers-reduced-motion:reduce){
  #rg-cookie-banner{transition:opacity .2s ease}
  #rg-cookie-banner,#rg-cookie-banner.is-visible,#rg-cookie-banner.is-leaving{transform:none}
  .rg-cookie-icon svg{animation:none}
}

/* ============================================================================
   Zones d'images des pages services (Fabrication flexibles, Réparation vérins)
   ============================================================================ */

/* Grande image en haut de page (sous le hero) */
.page-hero-image{
  margin:0;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:#fff;
  position:relative;
}
.page-hero-image img{
  width:100%;
  height:auto;
  max-height:520px;
  object-fit:cover;
  display:block;
}
.page-hero-image figcaption{
  padding:14px 22px;
  font-size:.92rem;
  color:var(--muted);
  font-weight:600;
  background:#f5fbf0;
  border-top:1px solid var(--line);
}

/* Galerie de 3 images alignées */
.image-gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.image-gallery__item{
  margin:0;
  border-radius:var(--radius-sm);
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
  display:flex;
  flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease;
}
.image-gallery__item:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow);
}
.image-gallery__item img{
  width:100%;
  height:240px;
  object-fit:cover;
  display:block;
}
.image-gallery__item figcaption{
  padding:12px 16px;
  font-size:.88rem;
  font-weight:700;
  color:#243025;
  background:#fff;
  border-top:1px solid var(--line);
}
.image-gallery__note{
  margin-top:14px;
  font-size:.86rem;
  color:var(--muted);
  font-style:italic;
}

/* Image latérale (utilisée dans grid-2 avec du texte à côté) */
.image-card{
  margin:0;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:#fff;
}
.image-card img{
  width:100%;
  height:100%;
  min-height:340px;
  object-fit:cover;
  display:block;
}

/* Responsive */
@media (max-width:900px){
  .image-gallery{grid-template-columns:1fr 1fr;}
  .image-gallery__item img{height:200px;}
  .image-card img{min-height:260px;}
  .page-hero-image img{max-height:380px;}
}
@media (max-width:560px){
  .image-gallery{grid-template-columns:1fr;}
  .image-gallery__item img{height:220px;}
  .page-hero-image img{max-height:280px;}
  .page-hero-image figcaption{padding:12px 16px;font-size:.85rem;}
}

/* ─── Bouton flottant "Appeler" : masqué quand le footer est visible ─────── */
.call-float{
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
}
.call-float--hidden{
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  visibility: hidden;
}

/* ─── Bandeau "Preuve sociale" réutilisable (partial avis-banner.php) ───── */
.rg-avis-banner{
  background: linear-gradient(135deg, rgba(138,241,83,.05), rgba(189,251,156,.08));
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding: 28px 0;
  margin: 32px 0;
}
.rg-avis-banner__inner{
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 28px;
  align-items: center;
}
.rg-avis-banner__rating{
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.rg-avis-banner__stars{
  color: #fbbc05;
  font-size: 1.4rem;
  letter-spacing: 2px;
  line-height: 1;
}
.rg-avis-banner__numbers strong{
  font-size: 1.6rem;
  font-weight: 800;
  margin-right: 4px;
}
.rg-avis-banner__numbers span{
  color: var(--muted, #cad8cc);
  font-size: .92rem;
}
.rg-avis-banner__text p{
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
}
.rg-avis-banner__cta{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
@media (max-width: 900px){
  .rg-avis-banner__inner{
    grid-template-columns: 1fr;
    gap: 16px;
    text-align: center;
  }
  .rg-avis-banner__rating{
    align-items: center;
  }
  .rg-avis-banner__cta{
    justify-content: center;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PAGE CGV — Conditions Générales de Vente
═════════════════════════════════════════════════════════════════════════════ */

/* Bandeau de métadonnées en haut (version, date, bouton PDF) */
.cgv-meta{
  display:flex;
  flex-wrap:wrap;
  gap:14px 28px;
  align-items:center;
  margin-top:22px;
  padding:16px 20px;
  background:rgba(22,163,74,.06);
  border:1px solid rgba(22,163,74,.18);
  border-radius:14px;
}
.cgv-meta__item{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.cgv-meta__label{
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--muted,#64748b);
  font-weight:700;
}
.cgv-meta__value{
  font-size:1rem;
  font-weight:800;
  color:var(--ink,#0f172a);
}
.cgv-meta__pdf{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
}

/* Contenu principal des CGV — typographie confortable pour la lecture */
.cgv-content{
  max-width:880px;
  margin:0 auto;
  padding:36px 40px;
  line-height:1.7;
}
.cgv-content h2{
  font-size:1.4rem;
  margin:2.2rem 0 .9rem;
  padding-bottom:.5rem;
  border-bottom:2px solid var(--brand,#16a34a);
  color:var(--ink,#0f172a);
}
.cgv-content h2:first-child{
  margin-top:0;
}
.cgv-content h3{
  font-size:1.1rem;
  margin:1.5rem 0 .6rem;
  color:var(--ink,#0f172a);
}
.cgv-content p{
  margin:0 0 .9rem;
  color:#374151;
}
.cgv-content ul{
  margin:.6rem 0 1.2rem;
  padding-left:1.4rem;
}
.cgv-content ul li{
  margin-bottom:.5rem;
  color:#374151;
}
.cgv-content strong{
  color:var(--ink,#0f172a);
}
.cgv-content a{
  color:var(--brand,#16a34a);
  text-decoration:underline;
}

/* Bloc de pied de page CGV (contact + date de mise à jour) */
.cgv-footer{
  max-width:880px;
  margin:24px auto 0;
  padding:24px 32px;
  background:#f8fafc;
  border:1px solid var(--line,#e5e7eb);
  border-radius:14px;
}
.cgv-footer p{margin:0 0 .8rem}
.cgv-footer ul{padding-left:1.4rem;margin:0 0 .8rem}
.cgv-footer li{margin-bottom:.4rem}
.cgv-footer__note{
  margin-top:1rem !important;
  padding-top:1rem;
  border-top:1px solid var(--line,#e5e7eb);
  font-size:.88rem;
  color:var(--muted,#64748b);
  font-style:italic;
}

@media (max-width:760px){
  .cgv-content{padding:24px 22px}
  .cgv-content h2{font-size:1.2rem}
  .cgv-meta{flex-direction:column;align-items:flex-start}
  .cgv-meta__pdf{margin-left:0;width:100%;justify-content:center}
  .cgv-footer{padding:18px 20px}
}

/* ─── Bandeau urgence sticky mobile (contact.php) ─────────────────────────
   Affiché côté serveur quand le visiteur arrive d'une source "urgence"
   (UTM ou referer Meta). Sticky en haut sous le header, masqué sur desktop
   où l'utilisateur a déjà accès au bouton "Appeler" du header.            */
.rg-urgence-banner{
  display:none; /* desktop : caché par défaut (override @media ci-dessous) */
}
.rg-urgence-banner__inner{
  display:flex; align-items:center; gap:12px;
  padding:10px 12px;
}
.rg-urgence-banner__label{
  font-size:1.5rem; line-height:1;
  flex:0 0 auto;
  animation:rg-urg-pulse 1.6s ease-in-out infinite;
}
@keyframes rg-urg-pulse{
  0%,100%{ transform:scale(1) }
  50%{ transform:scale(1.12) }
}
@media (prefers-reduced-motion: reduce){
  .rg-urgence-banner__label{ animation:none }
}
.rg-urgence-banner__txt{
  flex:1 1 auto; min-width:0;
  display:flex; flex-direction:column; line-height:1.25;
  color:#fff;
}
.rg-urgence-banner__txt strong{
  font-size:.98rem; font-weight:900;
}
.rg-urgence-banner__txt span{
  font-size:.82rem; opacity:.92;
}
.rg-urgence-banner__cta{
  flex:0 0 auto;
  display:inline-flex; align-items:center; gap:6px;
  padding:11px 14px;
  border-radius:999px;
  background:#fff; color:#b71c1c;
  font-weight:900; font-size:.95rem;
  box-shadow:0 6px 14px rgba(0,0,0,.18);
  white-space:nowrap;
}
.rg-urgence-banner__cta:active{ transform:translateY(1px) }

@media (max-width:880px){
  .rg-urgence-banner{
    display:block;
    position:sticky;
    top:0;
    z-index:95; /* > header (90) pour rester visible au-dessus */
    background:linear-gradient(135deg,#d32f2f 0%,#b71c1c 100%);
    color:#fff;
    border-bottom:1px solid rgba(0,0,0,.18);
    box-shadow:0 4px 14px rgba(211,47,47,.32);
  }
  /* Quand le bandeau urgence est affiché (classe posée par PHP sur <body>),
     on décale le header sticky juste en-dessous pour qu'ils s'empilent
     proprement sans se chevaucher. */
  body.has-urgence-banner .header{ top:54px }
}
