:root{--navy:#172d61;--deep:#0d1835;--blue:#24427f;--orange:#f3a12b;--orange2:#d98617;--ink:#18202a;--muted:#68717b;--soft:#f6f8fb;--line:#e5e9ef;--white:#fff;--max:1200px;--radius:24px;--shadow:0 24px 70px rgba(13,24,53,.14);--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);line-height:1.65;background:#fff;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}button,input,textarea{font:inherit}.container{width:min(calc(100% - 40px),var(--max));margin:auto}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:16px;top:16px;z-index:999;background:#fff;padding:10px 14px;border-radius:8px}
.site-header{position:fixed;inset:0 0 auto;z-index:60;border-bottom:1px solid transparent;transition:.35s}.site-header.scrolled,.site-header.inner{background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-color:var(--line);box-shadow:0 10px 30px rgba(13,24,53,.06)}.header-row{height:94px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand img{width:255px;max-height:72px;object-fit:contain}.nav{display:flex;align-items:center;gap:28px;color:#fff;font-weight:800}.site-header.scrolled .nav,.site-header.inner .nav{color:var(--ink)}.nav a:not(.btn){position:relative}.nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-8px;width:0;height:2px;background:var(--orange);transition:.25s}.nav a:hover::after,.nav a[aria-current=page]::after{width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 22px;border-radius:999px;border:0;background:var(--orange);color:#fff!important;font-weight:900;box-shadow:0 14px 28px rgba(243,161,43,.24);transition:.25s;position:relative;overflow:hidden}.btn:hover{transform:translateY(-2px);background:var(--orange2);box-shadow:0 18px 36px rgba(243,161,43,.32)}.btn.secondary{background:#fff;color:var(--navy)!important;box-shadow:none}.menu-toggle{display:none;border:0;background:transparent;padding:8px}.menu-toggle span{display:block;width:28px;height:2px;margin:6px;background:#fff}.site-header.scrolled .menu-toggle span,.site-header.inner .menu-toggle span{background:var(--deep)}
.hero{height:680px;min-height:680px;display:flex;align-items:center;position:relative;overflow:hidden;isolation:isolate;color:#fff;background:var(--deep)}.hero-slides{position:absolute;inset:0;z-index:-4;overflow:hidden}.hero-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.05s cubic-bezier(.4,0,.2,1),visibility 1.05s linear}.hero-slide.is-active{opacity:1;visibility:visible;z-index:1}.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:center 50%;transform:scale(1.02);transition:transform 6.8s ease-out}.hero-slide.is-active img{transform:scale(1.07)}.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(8,17,38,.9),rgba(8,17,38,.67) 44%,rgba(8,17,38,.22) 78%),linear-gradient(0deg,rgba(8,17,38,.2),transparent 48%)}.hero::after{content:"";position:absolute;right:-150px;top:110px;width:500px;height:500px;border-radius:50%;border:1px solid rgba(255,255,255,.1);box-shadow:0 0 0 55px rgba(255,255,255,.018),0 0 0 112px rgba(243,161,43,.022);animation:ring 9s ease-in-out infinite;z-index:-1}@keyframes ring{50%{transform:scale(1.03)}}.hero-content{position:relative;z-index:3;max-width:900px;padding-top:112px;padding-bottom:70px;transform:translateY(-22px)}.eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:900;font-size:.77rem}.eyebrow::before,.section-kicker::before{content:"";width:34px;height:2px;background:var(--orange)}.section-kicker{color:var(--orange2)}.section-kicker::before{width:24px;height:1px}.hero h1,.page-hero h1{font-size:clamp(3.2rem,6.2vw,6.2rem);line-height:.93;letter-spacing:-.055em;margin:.18em 0 .22em;text-transform:uppercase}.hero h1 span{color:var(--orange)}.hero p{font-size:1.15rem;line-height:1.6;max-width:700px;color:rgba(255,255,255,.86)}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:27px}.hero-slider-ui{position:absolute;right:30px;bottom:24px;z-index:9;display:flex;align-items:center;gap:12px;padding:7px 9px;border-radius:999px;background:rgba(5,10,24,.36);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px)}.hero-arrow{width:38px;height:38px;border:0;border-radius:50%;background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer;opacity:.75;transition:.25s}.hero-arrow:hover{background:rgba(255,255,255,.12);opacity:1;transform:scale(1.04)}.hero-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hero-bullets{display:flex;gap:8px}.hero-bullet{position:relative;width:34px;height:24px;border:0;background:transparent;padding:0}.hero-bullet::before{content:"";position:absolute;left:0;right:0;top:11px;height:2px;background:rgba(255,255,255,.34)}.hero-bullet span{position:absolute;left:0;top:11px;height:2px;width:0;background:#fff}.hero-bullet.is-active span{width:100%;animation:progress 5.8s linear forwards}@keyframes progress{from{width:0}to{width:100%}}
.hero-info-strip{padding:0;background:#fff;border-bottom:1px solid var(--line)}.hero-info-grid{display:grid;grid-template-columns:repeat(3,1fr)}.hero-info-item{min-height:112px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:24px 30px;border-right:1px solid var(--line);position:relative;overflow:hidden;transition:.3s}.hero-info-item:last-child{border-right:0}.hero-info-item::before{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--orange);transition:.35s}.hero-info-item:hover{background:var(--soft)}.hero-info-item:hover::before{width:100%}.hero-info-index{font-size:.72rem;letter-spacing:.14em;color:var(--orange2);font-weight:900}.hero-info-item strong{display:block;text-transform:uppercase;font-size:1.03rem;color:var(--navy)}.hero-info-item div span{display:block;font-size:.86rem;color:var(--muted)}.hero-info-arrow{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;transition:.3s}.hero-info-item:hover .hero-info-arrow{transform:translateX(4px);color:var(--orange2);border-color:rgba(243,161,43,.45)}
section{padding:105px 0}.section-head{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:end;margin-bottom:48px}.section-head h2,.big-title{margin:.18em 0 0;font-size:clamp(2.35rem,4.7vw,4.8rem);line-height:.98;letter-spacing:-.045em;text-transform:uppercase;color:var(--deep)}.section-head p{margin:0;color:var(--muted);font-size:1.08rem;max-width:680px}.soft{background:var(--soft)}.dark{background:var(--deep);color:#fff}.dark h2,.dark h3{color:#fff}.dark p{color:rgba(255,255,255,.72)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service-card{min-height:390px;padding:30px;border-radius:var(--radius);position:relative;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 14px 36px rgba(13,24,53,.08);transition:.38s}.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:rgba(243,161,43,.35)}.service-card::after{content:"";position:absolute;right:-55px;top:-55px;width:150px;height:150px;border-radius:50%;border:1px solid rgba(23,45,97,.12);transition:.45s}.service-card:hover::after{transform:scale(1.12)}.icon-badge{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:rgba(243,161,43,.12);color:var(--orange2);margin-bottom:84px}.icon-badge svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.service-card h3{font-size:1.55rem;line-height:1.1;color:var(--navy);margin:0 0 12px}.service-card p{color:var(--muted);margin:0}.text-link{display:inline-flex;gap:8px;margin-top:22px;font-weight:900;color:var(--navy)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.image-panel{min-height:560px;border-radius:32px;overflow:hidden;position:relative;box-shadow:var(--shadow)}.image-panel img{width:100%;height:100%;object-fit:cover;transition:.6s}.image-panel::after{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.38);border-radius:22px}.image-panel:hover img{transform:scale(1.035)}.checks{display:grid;gap:14px;margin-top:26px}.check{display:flex;gap:14px;align-items:flex-start;padding:10px 0}.check b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:rgba(243,161,43,.14);color:var(--orange2)}.check span{color:var(--muted)}
.stat-band{padding:58px 0;background:var(--navy);color:#fff}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stat-box{padding:10px 24px;border-left:1px solid rgba(255,255,255,.14)}.stat-box:first-child{border-left:0;padding-left:0}.stat-box strong{display:block;font-size:clamp(2.1rem,4vw,3.8rem);line-height:1;color:var(--orange)}.stat-box span{color:rgba(255,255,255,.72)}
.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-auto-rows:295px;gap:16px}.gallery-item{position:relative;border-radius:22px;overflow:hidden;box-shadow:0 14px 36px rgba(13,24,53,.09);isolation:isolate}.gallery-item:first-child{grid-row:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.6s}.gallery-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(8,17,38,.72));z-index:1}.gallery-item:hover img{transform:scale(1.055);filter:saturate(1.06)}.gallery-caption{position:absolute;left:18px;right:18px;bottom:18px;z-index:2;color:#fff}.gallery-caption strong{font-size:1.05rem}.gallery-caption span{font-size:.82rem;color:rgba(255,255,255,.72)}
.cta-band{padding:72px 0;background:radial-gradient(circle at 82% 18%,rgba(243,161,43,.18),transparent 30%),var(--deep);color:#fff}.cta-row{display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:center}.cta-row h2{font-size:clamp(2.4rem,4.8vw,4.6rem);line-height:.98;letter-spacing:-.045em;text-transform:uppercase;margin:0}.cta-row p{color:rgba(255,255,255,.72)}.cta-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}
.page-hero{padding:185px 0 92px;background:linear-gradient(135deg,rgba(13,24,53,.97),rgba(23,45,97,.9)),url('../images/terrassement-engins-la-reunion.webp') center/cover no-repeat;color:#fff}.page-hero p{max-width:720px;color:rgba(255,255,255,.78);font-size:1.08rem}.service-detail{display:grid;grid-template-columns:.85fr 1.15fr;gap:36px;padding:34px 0;border-bottom:1px solid var(--line);align-items:center}.service-detail:last-child{border-bottom:0}.service-detail img{width:100%;height:300px;object-fit:cover;border-radius:22px}.service-detail h2{color:var(--navy);font-size:2rem;margin:.2rem 0 .5rem}.service-detail p{color:var(--muted)}.bullets{display:grid;gap:9px;margin:18px 0 0;padding:0;list-style:none}.bullets li{position:relative;padding-left:24px;color:var(--muted)}.bullets li::before{content:"";position:absolute;left:0;top:.67em;width:8px;height:8px;border-radius:50%;background:var(--orange)}.content-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.content-card{padding:32px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 14px 36px rgba(13,24,53,.07)}.content-card h3{color:var(--navy);font-size:1.35rem;margin-top:0}.content-card p{color:var(--muted)}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px}.contact-list{display:block;gap:14px}.contact-item{padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 14px 36px rgba(13,24,53,.07)}.contact-item strong{display:block;color:var(--navy);font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}.form-placeholder{min-height:440px;border:1px dashed #bac3ce;border-radius:24px;background:linear-gradient(145deg,#fff,#f7f8fa);display:grid;place-items:center;text-align:center;padding:44px}.legal{max-width:900px}.legal h2{color:var(--navy);margin-top:2.1em}.legal p,.legal li{color:var(--muted)}
.social-rail{position:fixed;left:18px;top:50%;transform:translateY(-50%);z-index:42;display:flex;flex-direction:column;gap:9px}.social-rail a{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(13,24,53,.78);color:#fff;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(10px);transition:.25s}.social-rail a:hover{background:var(--orange);transform:translateX(4px)}.social-rail svg{width:18px;height:18px;fill:currentColor}.floating-contact{position:fixed;right:22px;bottom:22px;z-index:50;display:flex;gap:7px;padding:7px;border-radius:999px;background:rgba(255,255,255,.9);border:1px solid rgba(13,24,53,.08);box-shadow:0 16px 42px rgba(0,0,0,.15);backdrop-filter:blur(14px)}.floating-contact a{min-height:46px;padding:0 15px;border-radius:999px;display:inline-flex;align-items:center;gap:9px;font-weight:900;font-size:.92rem}.floating-contact .phone{background:var(--deep);color:#fff}.floating-contact .mail{color:var(--deep)}.floating-contact svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.site-footer{padding:74px 0 22px;color:#fff;background:radial-gradient(circle at 85% 0,rgba(243,161,43,.09),transparent 28%),var(--deep)}.footer-grid{display:grid;grid-template-columns:1.3fr .8fr .9fr 1fr;gap:44px}.footer-logo{width:235px;background:#fff;border-radius:14px;padding:10px}.site-footer h3{text-transform:uppercase;letter-spacing:.12em;font-size:.9rem}.site-footer p,.site-footer a{color:rgba(255,255,255,.7)}.footer-links{display:grid;gap:8px}.footer-socials{display:flex;gap:10px;margin-top:16px}.footer-socials a{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);transition:.25s}.footer-socials a:hover{background:var(--orange);border-color:var(--orange);transform:translateY(-2px)}.footer-socials svg{width:16px;height:16px;fill:currentColor}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:46px;padding-top:18px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:rgba(255,255,255,.48);font-size:.88rem}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .72s var(--ease),transform .72s var(--ease)}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.08s}.delay-2{transition-delay:.16s}.delay-3{transition-delay:.24s}
@media(max-width:1050px){.social-rail{display:none}}@media(max-width:950px){.menu-toggle{display:block}.nav{position:absolute;top:84px;left:20px;right:20px;display:none;flex-direction:column;align-items:stretch;background:#fff;color:var(--ink)!important;padding:22px;border-radius:20px;box-shadow:var(--shadow)}.nav.open{display:flex}.section-head,.split,.cta-row,.contact-grid{grid-template-columns:1fr}.services-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-item:first-child{grid-row:span 1;grid-column:span 2}.stat-grid{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.cta-actions{justify-content:flex-start}.service-detail{grid-template-columns:1fr}.hero{height:620px;min-height:620px}.hero-content{padding-top:104px;transform:translateY(-16px)}}
@media(max-width:700px){.container{width:min(calc(100% - 28px),var(--max))}.header-row{height:80px}.brand img{width:210px}.hero{height:550px;min-height:550px}.hero-content{padding-top:92px;padding-bottom:95px;transform:translateY(-10px)}.hero h1{font-size:clamp(2.55rem,11.5vw,4rem)}.hero p{font-size:.96rem;line-height:1.5}.hero-slider-ui{left:50%;right:auto;bottom:18px;transform:translateX(-50%)}.hero-info-grid{grid-template-columns:1fr}.hero-info-item{min-height:80px;border-right:0;border-bottom:1px solid var(--line);padding:16px 18px}.hero-info-item:last-child{border-bottom:0}section{padding:78px 0}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:250px}.gallery-item:first-child{grid-column:auto}.content-grid,.stat-grid{grid-template-columns:1fr}.stat-box{border-left:0;border-top:1px solid rgba(255,255,255,.12);padding:20px 0}.stat-box:first-child{border-top:0}.footer-grid{grid-template-columns:1fr}.floating-contact{left:14px;right:14px;bottom:14px;justify-content:space-between}.floating-contact a{flex:1;justify-content:center}}@media(max-width:480px){.brand img{width:180px}.floating-contact .mail span{display:none}.floating-contact .mail{flex:0 0 50px;padding:0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.reveal{opacity:1!important;transform:none!important;transition:none!important}.hero-slide{transition:opacity .35s linear,visibility .35s linear!important}.hero-slide img,.hero-slide.is-active img{transform:none!important;transition:none!important}.hero-bullet.is-active span{width:100%!important;animation:none!important}.hero::after{animation:none!important}}


/* =========================================================
   V2 — corrections de lisibilité et d'équilibre visuel
   ========================================================= */

/* 1) Le logo doit rester lisible sur le hero */
.brand{
  display:inline-flex;
  align-items:center;
  padding:8px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.93);
  box-shadow:0 12px 28px rgba(12,23,52,.10);
  transition:background .25s ease, box-shadow .25s ease, transform .25s ease;
}
.brand:hover{
  transform:translateY(-1px);
}
.site-header.scrolled .brand,
.site-header.inner .brand{
  background:transparent;
  box-shadow:none;
  padding:0;
}

/* 2) Les titres étaient trop imposants */
.hero h1,
.page-hero h1{
  font-size:clamp(2.95rem,5.45vw,5.35rem);
  line-height:.95;
}

.section-head h2,
.big-title{
  font-size:clamp(2.05rem,4.05vw,3.95rem);
  line-height:1.01;
}

.service-detail h2{
  font-size:1.8rem;
}

.cta-row h2{
  font-size:clamp(2.15rem,4.1vw,3.85rem);
}

/* 3) Recentrer un peu le hero avec les nouvelles proportions */
.hero-content{
  max-width:840px;
  transform:translateY(-12px);
}

.hero p{
  font-size:1.08rem;
  max-width:660px;
}

/* 4) Les boutons du slider paraissaient visuellement coupés : on les remonte */
.hero-slider-ui{
  bottom:42px;
}

/* 5) Un peu plus d'air dans les gros blocs de titre / intro */
.section-head{
  grid-template-columns:1fr 1fr;
  gap:54px;
}

.section-head p{
  font-size:1.02rem;
}

/* 6) Cartes services : équilibre du rythme visuel */
.service-card{
  min-height:360px;
}
.icon-badge{
  margin-bottom:68px;
}

/* Tablette */
@media(max-width:950px){
  .hero h1,
  .page-hero h1{
    font-size:clamp(2.7rem,7vw,4.6rem);
  }

  .section-head h2,
  .big-title{
    font-size:clamp(1.9rem,5vw,3.2rem);
  }

  .hero-content{
    max-width:760px;
    transform:translateY(-8px);
  }

  .hero-slider-ui{
    bottom:34px;
  }
}

/* Mobile */
@media(max-width:700px){
  .brand{
    padding:7px 12px;
    border-radius:16px;
  }

  .hero h1{
    font-size:clamp(2.35rem,10.4vw,3.55rem);
    line-height:.94;
  }

  .page-hero h1{
    font-size:clamp(2.25rem,9.2vw,3.45rem);
  }

  .section-head h2,
  .big-title{
    font-size:clamp(1.85rem,8vw,2.9rem);
  }

  .hero p{
    font-size:.95rem;
  }

  .hero-slider-ui{
    bottom:26px;
  }

  .section-head{
    gap:26px;
  }
}


/* =========================================================
   V3 — raffinements demandés
   ========================================================= */

/* 1) Logo vraiment visible sur la galerie */
.site-header:not(.scrolled):not(.inner) .brand{
  background:rgba(255,255,255,.97)!important;
  padding:10px 16px!important;
  border-radius:20px!important;
  box-shadow:0 16px 34px rgba(12,23,52,.18)!important;
  border:1px solid rgba(255,255,255,.4);
}
.site-header:not(.scrolled):not(.inner) .brand img{
  filter:drop-shadow(0 2px 8px rgba(12,23,52,.08));
}
.site-header.scrolled .brand,
.site-header.inner .brand{
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
  border:0!important;
}

/* 2) Contrôles du slider : remontés et mieux posés */
.hero-slider-ui{
  bottom:76px!important;
  right:34px;
  box-shadow:0 18px 40px rgba(0,0,0,.18);
}

/* 3) Titres un peu plus sages */
.hero h1,
.page-hero h1{
  font-size:clamp(2.85rem,5.2vw,5.05rem)!important;
  line-height:.95!important;
}
.section-head h2,
.big-title{
  font-size:clamp(1.95rem,3.8vw,3.55rem)!important;
  line-height:1.02!important;
}
.service-detail h2{
  font-size:1.72rem!important;
}
.cta-row h2{
  font-size:clamp(2rem,3.8vw,3.45rem)!important;
}
.hero-content{
  max-width:820px;
}

/* 4) Section intro de l'accueil : petit élément visuel à droite */
.section-head.has-aside{
  align-items:start;
}
.section-head-side{
  display:grid;
  gap:24px;
  align-content:start;
}
.section-mini-panel{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.mini-chip{
  padding:16px 14px;
  border-radius:18px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}
.mini-chip strong{
  display:block;
  font-size:.9rem;
  color:var(--navy);
  text-transform:uppercase;
  letter-spacing:.03em;
}
.mini-chip span{
  display:block;
  margin-top:3px;
  font-size:.82rem;
  color:var(--muted);
}
.section-head-side p{
  margin:0;
}

/* 5) Les images dans les grands blocs doivent vraiment remplir */
.image-panel{
  height:560px;
  min-height:0!important;
}
.image-panel img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
.image-panel.home-platform img{
  object-position:center 46%;
}
.image-panel.crop-top img{
  object-position:center 28%;
}
@media(max-width:950px){
  .image-panel{
    height:460px;
  }
}
@media(max-width:700px){
  .image-panel{
    height:320px;
  }
}

/* 6) CTA plus accrocheur visuellement et contrasté */
.cta-band{
  padding:86px 0!important;
  background:
    radial-gradient(circle at 82% 24%, rgba(243,161,43,.18), transparent 22%),
    linear-gradient(135deg, #f7f1e8 0%, #fff 48%, #eef3fb 100%)!important;
  color:var(--ink)!important;
}
.cta-row{
  background:#fff;
  border:1px solid var(--line);
  border-radius:32px;
  padding:44px 46px;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.cta-row::after{
  content:"";
  position:absolute;
  right:-60px;
  bottom:-70px;
  width:240px;
  height:240px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(243,161,43,.18), transparent 68%);
  pointer-events:none;
}
.cta-row h2{
  color:var(--navy-deep)!important;
}
.cta-row p{
  color:var(--muted)!important;
}
.cta-row .btn.secondary{
  background:var(--navy-deep)!important;
  color:#fff!important;
  box-shadow:0 16px 32px rgba(12,23,52,.14);
}
@media(max-width:700px){
  .cta-row{
    padding:28px 24px;
    border-radius:24px;
  }
}

/* 7) Services / Contact : cartes enrichies avec icônes */
.content-card .icon-badge,
.contact-item .icon-badge{
  margin-bottom:18px!important;
  width:46px;
  height:46px;
  border-radius:14px;
}
.content-card .icon-badge svg,
.contact-item .icon-badge svg{
  width:22px;
  height:22px;
}
.contact-item.rich{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px;
  align-items:start;
}
.contact-item.rich .icon-badge{
  margin-bottom:0!important;
}

/* 8) Carte OpenStreetMap */
.contact-stack{
  display:grid;
  gap:18px;
}
.map-card{
  border:1px solid var(--line);
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  background:#fff;
}
.map-frame{
  width:100%;
  height:320px;
  border:0;
  display:block;
}
.map-caption{
  padding:14px 18px;
  font-size:.92rem;
  color:var(--muted);
  border-top:1px solid var(--line);
}
.map-caption a{
  color:var(--navy);
  font-weight:700;
}

/* 9) CTA/contact docks restent propres sur les bords */
.floating-contact{
  box-shadow:0 18px 40px rgba(0,0,0,.14);
}

/* 10) Responsive refinements */
@media(max-width:950px){
  .section-head{
    grid-template-columns:1fr!important;
    gap:26px!important;
  }
  .section-mini-panel{
    grid-template-columns:1fr 1fr 1fr;
  }
  .hero-slider-ui{
    bottom:62px!important;
  }
}
@media(max-width:700px){
  .section-mini-panel{
    grid-template-columns:1fr;
  }
  .hero-slider-ui{
    bottom:26px!important;
  }
  .site-header:not(.scrolled):not(.inner) .brand{
    padding:8px 12px!important;
    border-radius:16px!important;
  }
}


/* =========================================================
   V4 — ajustements finaux ciblés
   ========================================================= */

/* HERO : valeur demandée */
.hero-content {
  position: relative;
  z-index: 3;
  max-width: 900px;
  padding-top: 70px;
  padding-bottom: 70px;
  transform: translateY(-22px);
}

/* LOGOS : blanc sur transparent, bleu sur header blanc */
.brand{
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
  padding:0!important;
}
.brand .logo-blue{display:none}
.brand .logo-white{display:block}
.site-header.scrolled .brand .logo-white,
.site-header.inner .brand .logo-white{display:none}
.site-header.scrolled .brand .logo-blue,
.site-header.inner .brand .logo-blue{display:block}

/* Footer : logo blanc sans cartouche */
.footer-logo{
  background:transparent!important;
  padding:0!important;
  border-radius:0!important;
  width:250px!important;
}

/* Les contrôles du slideshow doivent être bien décollés du bas */
.hero-slider-ui{
  bottom:82px!important;
}

/* Les 3 petits items : plus vivants */
.section-mini-panel{
  gap:12px!important;
}
.mini-chip{
  position:relative;
  padding:18px 16px 17px 18px!important;
  border-radius:14px!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,1),rgba(247,249,252,1))!important;
  border:1px solid rgba(23,45,97,.10)!important;
  box-shadow:0 12px 28px rgba(12,23,52,.065)!important;
  overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.mini-chip::before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:3px;
  background:var(--orange);
}
.mini-chip::after{
  content:"";
  position:absolute;
  right:-22px;top:-22px;
  width:74px;height:74px;border-radius:50%;
  border:1px solid rgba(243,161,43,.20);
}
.mini-chip:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 36px rgba(12,23,52,.10)!important;
}
.mini-chip strong{
  color:var(--navy-deep)!important;
}
.mini-chip span{
  font-size:.8rem!important;
}

/* Galerie : plus resserrée, angles moins ronds */
.gallery-grid{
  gap:12px!important;
  grid-auto-rows:275px!important;
}
.gallery-item{
  border-radius:14px!important;
}
.gallery-caption{
  left:14px!important;
  right:14px!important;
  bottom:14px!important;
}
.gallery-item:hover{
  transform:translateY(-3px);
}

/* Images split : cadrage plein, plus net */
.image-panel{
  height:520px!important;
}
.image-panel img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
.image-panel.home-platform img{
  object-position:center 50%!important;
}
.image-panel.crop-top img{
  object-position:center 24%!important;
}

/* CTA : composition avec conseillère */
.cta-band{
  padding:72px 0!important;
}
.cta-row.cta-with-person{
  grid-template-columns:1.05fr .58fr .75fr!important;
  align-items:center!important;
  min-height:360px;
  padding:44px 46px 0 46px!important;
}
.cta-copy{
  padding-bottom:44px;
}
.cta-person{
  align-self:end;
  height:315px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
}
.cta-person img{
  max-height:335px;
  width:auto;
  object-fit:contain;
  filter:drop-shadow(0 18px 28px rgba(12,23,52,.12));
}
.cta-actions{
  justify-content:flex-end!important;
  align-items:center;
  padding-bottom:44px;
}
.cta-actions .btn{
  white-space:nowrap;
}
.cta-actions .btn.secondary{
  min-width:185px;
}

/* Méthode services : uniformisation icônes */
.content-card .icon-badge{
  display:grid!important;
}

/* Contact : icônes forcées */
.contact-item.rich{
  display:grid!important;
  grid-template-columns:46px 1fr!important;
  gap:16px!important;
}
.contact-item.rich .icon-badge{
  display:grid!important;
  margin:0!important;
}
.contact-item.rich .icon-badge svg{
  display:block!important;
}

/* Map */
.map-card{
  display:block!important;
  margin-top:18px;
}
.map-frame{
  display:block!important;
  width:100%!important;
  height:330px!important;
  border:0!important;
}

/* Responsive */
@media(max-width:950px){
  .hero-content{
    padding-top:72px!important;
    padding-bottom:72px!important;
    transform:translateY(-16px)!important;
  }
  .hero-slider-ui{
    bottom:60px!important;
  }
  .gallery-grid{
    gap:12px!important;
  }
  .cta-row.cta-with-person{
    grid-template-columns:1fr 280px!important;
  }
  .cta-copy{
    grid-column:1;
  }
  .cta-person{
    grid-column:2;
    grid-row:1 / span 2;
  }
  .cta-actions{
    grid-column:1;
    justify-content:flex-start!important;
  }
}
@media(max-width:700px){
  .hero-content{
    padding-top:64px!important;
    padding-bottom:70px!important;
    transform:translateY(-10px)!important;
  }
  .hero-slider-ui{
    bottom:24px!important;
  }
  .gallery-grid{
    gap:10px!important;
  }
  .gallery-item{
    border-radius:12px!important;
  }
  .cta-row.cta-with-person{
    grid-template-columns:1fr!important;
    padding:28px 24px 0!important;
  }
  .cta-person{
    grid-column:1!important;
    grid-row:auto!important;
    height:260px;
  }
  .cta-copy,
  .cta-actions{
    grid-column:1!important;
    padding-bottom:20px;
  }
  .cta-actions{
    justify-content:flex-start!important;
  }
  .cta-actions .btn.secondary{
    min-width:0;
  }
}


/* =========================================================
   V4.1 — CORRECTIONS VÉRIFIÉES
   ========================================================= */

/* Valeur exacte demandée pour le contenu du hero */
.hero-content {
  position: relative;
  z-index: 3;
  max-width: 900px;
  padding-top: 70px;
  padding-bottom: 70px;
  transform: translateY(-22px);
}

/* Logo blanc sur hero / logo bleu après scroll */
.brand{
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  padding:0 !important;
}
.brand .logo-white{display:block !important}
.brand .logo-blue{display:none !important}
.site-header.scrolled .brand .logo-white,
.site-header.inner .brand .logo-white{display:none !important}
.site-header.scrolled .brand .logo-blue,
.site-header.inner .brand .logo-blue{display:block !important}

/* Footer : vrai logo blanc transparent */
.footer-logo{
  width:260px !important;
  padding:0 !important;
  background:transparent !important;
  border-radius:0 !important;
}

/* 3 mini items */
.section-mini-panel{gap:12px !important}
.mini-chip{
  min-height:110px;
  padding:18px 16px 16px 20px !important;
  border-radius:13px !important;
  background:linear-gradient(145deg,#fff,#f5f8fc) !important;
  border:1px solid rgba(23,45,97,.10) !important;
  box-shadow:0 12px 30px rgba(12,23,52,.075) !important;
}
.mini-chip::before{
  content:"";
  position:absolute;
  left:0; top:18px; bottom:18px;
  width:3px;
  border-radius:3px;
  background:var(--orange);
}
.mini-chip strong{color:var(--navy-deep) !important}
.mini-chip:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 38px rgba(12,23,52,.11) !important;
}

/* Galerie plus compacte / moins arrondie */
.gallery-grid{
  gap:10px !important;
  grid-auto-rows:270px !important;
}
.gallery-item{
  border-radius:12px !important;
}
.gallery-caption{
  left:14px !important;
  right:14px !important;
  bottom:14px !important;
}

/* Images split : remplissage réel */
.image-panel{
  height:520px !important;
  min-height:520px !important;
}
.image-panel img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
.image-panel.home-platform img{object-position:center 50% !important}
.image-panel.crop-top img{object-position:center 28% !important}

/* CTA avec conseillère */
.cta-band{
  padding:72px 0 !important;
  background:linear-gradient(135deg,#f7f2e9 0%,#fff 50%,#edf3fb 100%) !important;
}
.cta-row.cta-with-person{
  display:grid !important;
  grid-template-columns:minmax(0,1.1fr) 320px minmax(220px,.65fr) !important;
  gap:30px !important;
  align-items:center !important;
  min-height:365px;
  padding:44px 46px 0 !important;
  overflow:hidden;
}
.cta-copy{padding-bottom:44px}
.cta-person{
  align-self:end;
  height:330px;
  display:flex !important;
  align-items:flex-end;
  justify-content:center;
}
.cta-person img{
  display:block;
  max-height:340px;
  width:auto;
  max-width:100%;
  object-fit:contain;
  filter:drop-shadow(0 18px 28px rgba(12,23,52,.13));
}
.cta-actions{
  display:flex !important;
  flex-direction:column;
  align-items:stretch !important;
  justify-content:center !important;
  padding-bottom:44px;
  gap:12px !important;
}
.cta-actions .btn{
  width:100%;
  white-space:nowrap;
}
.cta-actions .btn.secondary{
  background:var(--navy-deep) !important;
  color:#fff !important;
  min-width:0 !important;
}

/* Services / contact icons */
.content-card .icon-badge,
.contact-item.rich .icon-badge{
  display:grid !important;
  place-items:center;
  width:48px;
  height:48px;
  margin-bottom:18px !important;
}
.contact-item.rich{
  display:grid !important;
  grid-template-columns:48px 1fr !important;
  gap:16px !important;
  align-items:center !important;
}
.contact-item.rich .icon-badge{
  margin:0 !important;
}
.contact-item.rich svg,
.content-card .icon-badge svg{
  display:block !important;
  width:22px !important;
  height:22px !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.8 !important;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Contact : formulaire + carte */
.contact-stack{
  display:grid !important;
  gap:22px !important;
}
.map-card{
  display:block !important;
  overflow:hidden;
  border-radius:22px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:var(--shadow-soft);
}
.map-frame{
  display:block !important;
  width:100% !important;
  height:340px !important;
  border:0 !important;
}
.map-caption{
  padding:16px 18px 18px;
  color:var(--muted);
}
.map-caption strong{
  color:var(--navy-deep);
}
.map-caption span{
  display:block;
  margin:2px 0 8px;
}
.map-caption a{
  color:var(--orange-deep);
  font-weight:800;
}

/* Slider controls */
.hero-slider-ui{
  bottom:80px !important;
}

/* Responsive */
@media(max-width:950px){
  .hero-content{
    max-width:900px;
    padding-top:70px !important;
    padding-bottom:70px !important;
    transform:translateY(-16px) !important;
  }
  .cta-row.cta-with-person{
    grid-template-columns:minmax(0,1fr) 280px !important;
  }
  .cta-copy{grid-column:1}
  .cta-person{grid-column:2;grid-row:1 / span 2}
  .cta-actions{
    grid-column:1;
    flex-direction:row;
    justify-content:flex-start !important;
  }
  .cta-actions .btn{width:auto}
}
@media(max-width:700px){
  .hero-content{
    padding-top:64px !important;
    padding-bottom:68px !important;
    transform:translateY(-10px) !important;
  }
  .hero-slider-ui{bottom:24px !important}
  .gallery-grid{gap:10px !important}
  .cta-row.cta-with-person{
    grid-template-columns:1fr !important;
    padding:28px 24px 0 !important;
  }
  .cta-copy,.cta-person,.cta-actions{
    grid-column:1 !important;
    grid-row:auto !important;
  }
  .cta-copy{padding-bottom:8px}
  .cta-person{height:270px}
  .cta-actions{
    flex-direction:column;
    padding-bottom:26px;
  }
  .cta-actions .btn{width:100%}
  .map-frame{height:290px !important}
}


/* =========================================================
   V4.2 — OVERRIDES FINALISÉS ET VÉRIFIÉS
   ========================================================= */

/* HEADER : aucune boîte blanche quand le header est transparent */
.site-header:not(.scrolled):not(.inner) .brand,
.site-header:not(.scrolled):not(.inner) a.brand{
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  padding:0 !important;
  border-radius:0 !important;
}
.site-header:not(.scrolled):not(.inner) .brand .logo-white{display:block !important}
.site-header:not(.scrolled):not(.inner) .brand .logo-blue{display:none !important}
.site-header.scrolled .brand .logo-white,
.site-header.inner .brand .logo-white{display:none !important}
.site-header.scrolled .brand .logo-blue,
.site-header.inner .brand .logo-blue{display:block !important}

/* CTA ACCUEIL */
.cta-band .cta-row.cta-with-person{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 300px 230px !important;
  gap:28px !important;
  align-items:center !important;
  min-height:380px !important;
  padding:42px 44px 0 !important;
  overflow:hidden !important;
}
.cta-band .cta-row.cta-with-person .cta-copy{padding-bottom:42px !important}
.cta-band .cta-row.cta-with-person .cta-person{
  display:flex !important;
  height:345px !important;
  align-self:end !important;
  align-items:flex-end !important;
  justify-content:center !important;
  overflow:visible !important;
  position:relative !important;
  z-index:2 !important;
}
.cta-band .cta-row.cta-with-person .cta-person img{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:auto !important;
  height:335px !important;
  max-width:100% !important;
  object-fit:contain !important;
  object-position:center bottom !important;
}
.cta-band .cta-row.cta-with-person .cta-actions{
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
  align-items:stretch !important;
  justify-content:center !important;
  padding-bottom:42px !important;
  position:relative !important;
  z-index:3 !important;
}
.cta-band .cta-row.cta-with-person .cta-actions a.btn{
  display:flex !important;
  width:100% !important;
  min-width:0 !important;
  color:#fff !important;
  opacity:1 !important;
  visibility:visible !important;
}
.cta-band .cta-row.cta-with-person .cta-actions a.btn.secondary{
  background:#0c1734 !important;
  color:#fff !important;
  border:1px solid #0c1734 !important;
  box-shadow:0 14px 28px rgba(12,23,52,.16) !important;
}
.cta-band .cta-row.cta-with-person .cta-actions a.btn.secondary::before{display:none !important}

/* CONTACT : icônes garanties visibles */
.contact-list .contact-item.rich{
  display:grid !important;
  grid-template-columns:54px minmax(0,1fr) !important;
  gap:18px !important;
  align-items:center !important;
  margin-bottom:25px;
}
.contact-list .contact-item.rich .contact-icon{
  display:grid !important;
  place-items:center !important;
  width:48px !important;
  height:48px !important;
  border-radius:14px !important;
  background:#fff3e2 !important;
  color:#e68b0d !important;
  flex:0 0 48px !important;
}
.contact-list .contact-item.rich .contact-icon svg{
  display:block !important;
  width:23px !important;
  height:23px !important;
  fill:none !important;
  stroke:#e68b0d !important;
  stroke-width:1.9 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

@media(max-width:950px){
  .cta-band .cta-row.cta-with-person{
    grid-template-columns:minmax(0,1fr) 260px !important;
  }
  .cta-band .cta-row.cta-with-person .cta-person{grid-column:2 !important;grid-row:1 / span 2 !important}
  .cta-band .cta-row.cta-with-person .cta-actions{grid-column:1 !important;flex-direction:row !important;justify-content:flex-start !important}
  .cta-band .cta-row.cta-with-person .cta-actions a.btn{width:auto !important}
}
@media(max-width:700px){
  .cta-band .cta-row.cta-with-person{grid-template-columns:1fr !important;padding:28px 24px 0 !important}
  .cta-band .cta-row.cta-with-person .cta-copy,
  .cta-band .cta-row.cta-with-person .cta-person,
  .cta-band .cta-row.cta-with-person .cta-actions{grid-column:1 !important;grid-row:auto !important}
  .cta-band .cta-row.cta-with-person .cta-person{height:270px !important}
  .cta-band .cta-row.cta-with-person .cta-person img{height:265px !important}
  .cta-band .cta-row.cta-with-person .cta-actions{flex-direction:column !important;padding-bottom:26px !important}
  .cta-band .cta-row.cta-with-person .cta-actions a.btn{width:100% !important}
}


/* =========================================================
   V5 — FORMULAIRE DEVIS
   ========================================================= */

.quote-form-card{
  border:1px solid var(--line);
  border-radius:28px;
  background:#fff;
  box-shadow:var(--shadow);
  padding:34px;
}

.quote-form-head{
  margin-bottom:28px;
}

.quote-form-head h2{
  margin:.35rem 0 .45rem;
  color:var(--navy-deep);
  font-size:clamp(1.9rem,3.3vw,2.9rem);
  line-height:1.02;
  letter-spacing:-.035em;
}

.quote-form-head p{
  margin:0;
  color:var(--muted);
}

.quote-form{
  position:relative;
}

.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.field{
  display:grid;
  gap:7px;
}

.field-full{
  grid-column:1 / -1;
}

.field label{
  color:var(--navy-deep);
  font-size:.9rem;
  font-weight:800;
}

.field input,
.field select,
.field textarea{
  width:100%;
  border:1px solid #dce2e8;
  background:#fbfcfd;
  color:var(--ink);
  border-radius:14px;
  padding:14px 15px;
  outline:none;
  transition:border-color .22s ease,box-shadow .22s ease,background .22s ease;
}

.field textarea{
  resize:vertical;
  min-height:155px;
}

.field input:focus,
.field select:focus,
.field textarea:focus{
  background:#fff;
  border-color:var(--orange);
  box-shadow:0 0 0 4px rgba(243,161,43,.12);
}

.field-error{
  color:#a82b2b;
  font-size:.8rem;
}

.form-feedback{
  margin:0 0 22px;
  padding:14px 16px;
  border-radius:14px;
  font-weight:700;
}

.form-feedback.success{
  color:#23613d;
  background:#edf8f1;
  border:1px solid #ccebd7;
}

.form-feedback.error{
  color:#8c2424;
  background:#fff1f1;
  border:1px solid #f0cccc;
}

.form-bottom{
  margin-top:20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:22px;
}

.privacy-note{
  margin:0;
  max-width:570px;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.55;
}

.privacy-note a{
  color:var(--navy);
  text-decoration:underline;
  text-underline-offset:3px;
}

.submit-btn{
  flex:0 0 auto;
  cursor:pointer;
}

.hp-field{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  opacity:0!important;
}

.contact-stack .map-card{
  margin-top:0;
}

@media(max-width:700px){
  .quote-form-card{
    padding:24px 20px;
    border-radius:22px;
  }

  .form-grid{
    grid-template-columns:1fr;
  }

  .field-full{
    grid-column:auto;
  }

  .form-bottom{
    align-items:stretch;
    flex-direction:column;
  }

  .submit-btn{
    width:100%;
  }
}


/* =========================================================
   V5.1 — LEAFLET / OPENSTREETMAP
   ========================================================= */
.leaflet-contact-map{
  width:100%;
  height:360px;
  background:#eef2f4;
}
.map-card .leaflet-container{
  font-family:inherit;
}
.map-card .leaflet-popup-content-wrapper{
  border-radius:14px;
  box-shadow:0 16px 36px rgba(12,23,52,.18);
}
.map-card .leaflet-popup-content{
  margin:14px 16px;
  line-height:1.45;
  color:var(--ink);
}
.map-card .leaflet-popup-content strong{
  color:var(--navy-deep);
}
.map-card .leaflet-control-zoom a{
  color:var(--navy-deep);
}
@media(max-width:700px){
  .leaflet-contact-map{height:310px;}
}


/* =========================================================
   V5.2 — BANDEAU D'INFORMATION VIE PRIVÉE
   Ajout uniquement à la version CSS validée par le client.
   ========================================================= */
.privacy-notice-bar{
  position:fixed;
  left:24px;
  right:24px;
  bottom:22px;
  z-index:9998;
  max-width:1180px;
  margin:0 auto;
  transition:opacity .22s ease, transform .22s ease;
}
.privacy-notice-bar[hidden]{display:none !important;}
.privacy-notice-bar.is-hiding{opacity:0;transform:translateY(12px);}
.privacy-notice-inner{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  padding:17px 18px 17px 20px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:17px;
  background:rgba(12,23,52,.97);
  color:#fff;
  box-shadow:0 18px 48px rgba(6,14,31,.25);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.privacy-notice-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:12px;
  background:rgba(243,161,43,.13);
  color:var(--orange);
}
.privacy-notice-icon svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.privacy-notice-copy strong{
  display:block;
  margin-bottom:3px;
  color:#fff;
  font-size:.93rem;
}
.privacy-notice-copy p{
  margin:0;
  color:rgba(255,255,255,.76);
  font-size:.82rem;
  line-height:1.5;
}
.privacy-notice-copy a{
  color:#fff;
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}
.privacy-notice-button{
  appearance:none;
  border:0;
  border-radius:12px;
  padding:11px 17px;
  background:var(--orange);
  color:var(--navy-deep);
  font:inherit;
  font-size:.84rem;
  font-weight:900;
  white-space:nowrap;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease;
}
.privacy-notice-button:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(243,161,43,.22);
}
.privacy-notice-button:focus-visible{
  outline:3px solid rgba(255,255,255,.9);
  outline-offset:3px;
}
@media(max-width:700px){
  .privacy-notice-bar{
    left:12px;
    right:12px;
    bottom:12px;
  }
  .privacy-notice-inner{
    grid-template-columns:auto 1fr;
    gap:12px;
    padding:15px;
    border-radius:15px;
  }
  .privacy-notice-icon{
    align-self:start;
    width:38px;
    height:38px;
  }
  .privacy-notice-button{
    grid-column:1 / -1;
    width:100%;
  }
}
@media(prefers-reduced-motion:reduce){
  .privacy-notice-bar,
  .privacy-notice-button{transition:none;}
}


/* =========================================================
   V5.3 — BANDEAU VIE PRIVÉE COMPACT, BAS GAUCHE
   Override uniquement.
   ========================================================= */
.privacy-notice-bar{
  left:22px !important;
  right:auto !important;
  bottom:22px !important;
  width:min(430px, calc(100vw - 44px)) !important;
  max-width:430px !important;
  margin:0 !important;
}
.privacy-notice-inner{
  grid-template-columns:42px minmax(0,1fr) !important;
  gap:13px !important;
  padding:17px !important;
  border-radius:16px !important;
}
.privacy-notice-copy strong{
  font-size:.95rem !important;
}
.privacy-notice-copy p{
  font-size:.79rem !important;
  line-height:1.48 !important;
}
.privacy-notice-button{
  grid-column:1 / -1 !important;
  justify-self:start !important;
  width:auto !important;
  min-width:126px !important;
  padding:10px 16px !important;
}
@media(max-width:700px){
  .privacy-notice-bar{
    left:12px !important;
    right:12px !important;
    bottom:12px !important;
    width:auto !important;
    max-width:none !important;
  }
}


/* V5.3 — confort de lecture des pages juridiques */
.legal{
  max-width:980px !important;
}
.legal h1{
  margin:.18em 0 .35em;
  font-size:clamp(2.5rem,5vw,4.8rem);
  line-height:.98;
  letter-spacing:-.045em;
  text-transform:uppercase;
  color:var(--deep);
}
.legal h2{
  padding-top:1.15rem;
  border-top:1px solid var(--line);
}
.legal .legal-notice{
  margin:28px 0 36px;
  padding:20px 22px;
  border-left:4px solid var(--orange);
  border-radius:0 14px 14px 0;
  background:var(--soft);
}
.legal .legal-notice p{
  margin:0;
}
.legal strong{
  color:var(--navy);
}
.legal a{
  color:var(--navy);
  text-decoration:underline;
  text-underline-offset:3px;
}


/* =========================================================
   MASTER BTP — correctif HERO mobile uniquement
   ========================================================= */
@media(max-width:700px){
  /* Plus de hauteur pour laisser vivre texte + 2 CTA + navigation galerie */
  .hero{
    height:690px !important;
    min-height:690px !important;
  }

  .hero-content{
    width:100% !important;
    max-width:100% !important;
    padding-top:96px !important;
    padding-bottom:150px !important;
    transform:translateY(-6px) !important;
  }

  /* Le mot TERRASSEMENT reste dans la largeur disponible */
  .hero h1{
    font-size:clamp(2.25rem,9.7vw,3.45rem) !important;
    line-height:.94 !important;
    letter-spacing:-.047em !important;
    max-width:100% !important;
  }

  .hero p{
    max-width:100% !important;
  }

  /* Les deux CTA restent visibles et ne sont plus sous les flèches */
  .hero-actions{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:10px !important;
    margin-top:22px !important;
  }
  .hero-actions .btn{
    width:auto !important;
    max-width:100% !important;
  }

  /* Navigation galerie indépendante, en bas à droite */
  .hero-slider-ui{
    left:auto !important;
    right:16px !important;
    bottom:18px !important;
    transform:none !important;
  }
}

@media(max-width:480px){
  .hero{
    height:710px !important;
    min-height:710px !important;
  }
  .hero h1{
    font-size:clamp(2.15rem,9.4vw,3.1rem) !important;
  }
}

@media (max-width: 767px) {
  .hero-content {
    padding-left: 10px;
    padding-right: 10px;
  }
}
