
:root{--green:#337f45;--green-dark:#245f34;--black:#17171a;--bg:#f7f9f6;--text:#20252a;--muted:#687178;--line:#e4e9e5;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--text);line-height:1.55;background:#fff;overflow-x:hidden}a{text-decoration:none;color:inherit}.container{width:min(1180px,92%);margin:auto}
.header{position:fixed;z-index:50;top:0;left:0;right:0;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.05);transition:.25s}.header.scrolled{box-shadow:0 10px 30px rgba(0,0,0,.07)}.header-contact{display:flex;align-items:center;gap:14px;margin-left:auto}.header-phone{display:flex;align-items:center;gap:8px;color:var(--black);text-decoration:none;white-space:nowrap}.header-phone small{display:block;font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:#727a7f;font-weight:800;margin-bottom:3px}.header-phone strong{display:block;font-size:14px;line-height:1;color:var(--black)}.phone-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#eef7ef;color:var(--green);font-size:15px}.header-phone:hover strong{color:var(--green)}.header-cta{white-space:nowrap}.hero-contact{display:flex;align-items:center;flex-wrap:wrap;gap:9px 12px;margin-top:18px;font-size:14px;color:#596268}.hero-contact a{color:var(--black);font-weight:800;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.15)}.hero-contact a:hover{color:var(--green);border-color:var(--green)}.hero-contact-sep{color:#a7afb2}.nav{height:80px;display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{width:145px}.menu{display:flex;gap:24px;font-size:13px;font-weight:800}.menu a:hover{color:var(--green)}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:8px;font-size:14px;font-weight:900;border:1px solid transparent;cursor:pointer;transition:.2s}.btn-green{background:var(--green);color:#fff;box-shadow:0 10px 25px rgba(51,127,69,.18)}.btn-green:hover{background:var(--green-dark);transform:translateY(-2px)}.btn-white{background:#fff;color:var(--green)}.btn-outline{background:#fff;border-color:#cfd7d1}.btn-outline:hover{border-color:var(--green);color:var(--green)}
.hero{padding:155px 0 70px;background:radial-gradient(circle at 85% 20%,rgba(51,127,69,.13),transparent 35%),linear-gradient(#fbfcfa,#fff)}.grid2{display:grid;grid-template-columns:1.03fr .97fr;gap:65px;align-items:center}.eyebrow{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:950;color:var(--green);display:inline-flex;align-items:center;gap:8px}.dot{width:7px;height:7px;background:var(--green);border-radius:50%}
h1{font-size:clamp(44px,6vw,74px);line-height:.98;letter-spacing:-3.5px;color:var(--black);margin:17px 0 22px}h1 span{color:var(--green)}h2{font-size:43px;line-height:1.05;letter-spacing:-1.8px;color:var(--black);margin:10px 0 13px}h3{color:var(--black)}.lead{font-size:19px;color:var(--muted);max-width:650px}.actions{display:flex;gap:11px;flex-wrap:wrap;margin:28px 0}.trust{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;font-weight:800;color:#596268}.trust span:before{content:"✓";color:var(--green);margin-right:5px}
.hero-img{height:515px;border-radius:22px;overflow:hidden;position:relative;box-shadow:0 28px 70px rgba(0,0,0,.14)}.hero-img img{width:100%;height:100%;object-fit:cover}.float{position:absolute;bottom:22px;left:-18px;background:#fff;border-radius:13px;padding:15px 18px;box-shadow:0 15px 35px rgba(0,0,0,.16);font-size:12px;font-weight:800}.float strong{font-size:21px;display:block}
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.marquee-track{width:max-content;display:flex;animation:move 26s linear infinite}.marquee span{padding:18px 30px;font-size:11px;letter-spacing:.13em;font-weight:950;color:#788188;text-transform:uppercase;white-space:nowrap}.marquee b{color:var(--green);margin-left:25px}@keyframes move{to{transform:translateX(-50%)}}
section{padding:88px 0}.head{max-width:760px;margin-bottom:38px}.head p{font-size:17px;color:var(--muted)}.reveal{opacity:0;transform:translateY(34px);transition:.75s ease}.reveal.show{opacity:1;transform:none}.left{opacity:0;transform:translateX(-40px);transition:.8s}.left.show{opacity:1;transform:none}.right{opacity:0;transform:translateX(40px);transition:.8s}.right.show{opacity:1;transform:none}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{border:1px solid var(--line);border-radius:16px;padding:26px;min-height:205px;transition:.25s;background:#fff}.card:hover{transform:translateY(-7px);box-shadow:0 18px 45px rgba(15,30,20,.09)}.icon{width:45px;height:45px;border-radius:12px;background:#edf5ee;color:var(--green);display:grid;place-items:center;margin-bottom:18px;font-size:21px}.card p{font-size:14px;color:var(--muted)}
.dark{background:var(--black);color:#fff}.dark h2,.dark h3{color:#fff}.dark .head p,.dark p{color:#c1c8cb}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.photo{width:100%;height:520px;object-fit:cover;border-radius:20px}.checks{display:grid;gap:18px;margin-top:25px}.check{display:flex;gap:12px}.check i{flex:0 0 31px;height:31px;border-radius:50%;background:rgba(51,127,69,.2);color:#84c38f;display:grid;place-items:center;font-style:normal;font-weight:900}.check b{display:block}.check p{font-size:14px;margin:3px 0}
.logo-row{display:flex;gap:45px;align-items:center;overflow:hidden;white-space:nowrap;padding:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.client{font-weight:900;color:#9aa1a5;font-size:19px;letter-spacing:.03em;filter:grayscale(1)}.logo-scroll{animation:logos 25s linear infinite;width:max-content;display:flex;gap:50px}@keyframes logos{to{transform:translateX(-50%)}}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.g{height:285px;border-radius:16px;overflow:hidden;position:relative}.g img{width:100%;height:100%;object-fit:cover;transition:.55s}.g:hover img{transform:scale(1.07)}.tag{position:absolute;bottom:14px;left:14px;right:14px;background:rgba(20,22,22,.82);color:#fff;padding:12px;border-radius:9px;font-size:12px;font-weight:900}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.step{border-top:3px solid #dce7df;padding:20px}.num{color:var(--green);font-weight:950;font-size:12px}.step p{font-size:14px;color:var(--muted)}
.zone{background:#f1f6f1;border-radius:22px;padding:42px}.pills{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.pill{background:#fff;border:1px solid #dbe3dc;padding:9px 13px;border-radius:30px;font-size:12px;font-weight:900}
.slider{overflow:hidden}.track{display:flex;transition:.5s}.slide{min-width:100%}.quote{background:#f6f8f5;border-radius:20px;padding:35px;max-width:820px}.stars{color:#d5971e;letter-spacing:3px}.quote p{font-size:20px}.quote small{color:var(--muted)}.controls{display:flex;gap:8px;margin-top:15px}.controls button{width:42px;height:42px;border-radius:50%;background:#fff;border:1px solid var(--line);cursor:pointer}.controls button:hover{border-color:var(--green);color:var(--green)}
.faq{max-width:850px}.faq-item{border-bottom:1px solid var(--line)}.faq-q{padding:21px 0;display:flex;justify-content:space-between;font-weight:900;cursor:pointer}.faq-q span{color:var(--green);font-size:20px;transition:.25s}.faq-a{max-height:0;overflow:hidden;color:var(--muted);transition:.3s}.faq-a p{margin:0 0 20px}.faq-item.open .faq-a{max-height:180px}.faq-item.open .faq-q span{transform:rotate(45deg)}
.cta{background:linear-gradient(120deg,#337f45,#245f34);color:#fff;border-radius:23px;padding:50px}.cta h2{color:#fff}.cta p{color:#dceade}.form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.form input,.form select,.form textarea{width:100%;padding:15px;border:0;border-radius:8px;font:inherit}.form textarea{min-height:105px}.full{grid-column:1/-1}
footer{background:#121315;color:#aeb5b9;padding:45px 0}.foot{display:flex;justify-content:space-between;gap:30px}.foot-logo{width:145px}.foot b{color:#fff;display:block;margin-bottom:8px}
.sticky-mobile{display:none}

/* Réseaux sociaux desktop */
.social-contact{
  position:absolute;
  top:80px;
  right:max(4%, calc((100vw - 1180px) / 2));
  z-index:40;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  margin:0;
  padding:8px 0;
}
.social-contact a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:#17171a;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
  transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.social-contact a:hover{
  transform:translateY(-1px);
  background:#17171a;
  color:#fff;
  border-color:#17171a;
}
@media(max-width:900px){
  .social-contact{
    top:72px;
    right:10px;
    gap:6px;
    padding:7px 0;
  }
  .social-contact a{
    min-height:32px;
    padding:6px 9px;
    font-size:11px;
  }
}

@media(max-width:900px){.menu{display:none}.header-contact{gap:8px}.header-phone span:not(.phone-icon){display:none}.header-phone .phone-icon{width:38px;height:38px;font-size:17px}.header-cta{font-size:12px;padding:11px 13px}.grid2,.split{grid-template-columns:1fr}.cards,.steps{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:1fr 1fr}.hero-img{height:390px}.float{left:12px}.sticky-mobile{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;background:#fff;padding:9px;border-top:1px solid var(--line);gap:8px}.sticky-mobile a{flex:1}.sticky-mobile .call{background:#17171a;color:#fff}}
@media(max-width:560px){section{padding:65px 0}.cards,.steps,.gallery,.form{grid-template-columns:1fr}.full{grid-column:auto}.stats{grid-template-columns:1fr}.hero{padding-top:125px}.hero-img{height:320px}h1{letter-spacing:-2.3px}.head h2,h2{font-size:35px}.zone,.cta{padding:28px}.foot{flex-direction:column}}

/* Mobile-first finishing touches */
@media (max-width: 900px){
  body{padding-bottom:68px}
  .nav{height:72px}
  .nav>.btn{padding:11px 14px;font-size:12px}
  .hero{padding-top:116px}
  .hero .actions .btn{min-height:48px}
  .form input,.form select,.form textarea{min-height:50px;font-size:16px} /* avoids iOS zoom on input focus */
  .sticky-mobile{padding:8px max(9px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(9px,env(safe-area-inset-right))}
  .sticky-mobile .btn{min-height:48px}
  .logo-row{overflow:hidden}
  .client{font-size:16px}
}
@media (max-width:560px){
  .nav>.btn{white-space:nowrap}
  .hero .lead{font-size:17px}
  .trust{gap:10px}
  .marquee span{padding-left:20px;padding-right:20px}
  .logo-row{margin-left:-4vw;margin-right:-4vw}
  .logo-scroll{gap:30px}
  .client{font-size:14px}
}

@media(max-width:520px){.hero-contact{font-size:13px;gap:7px 9px}.hero-contact-sep{display:none}.hero-contact span:last-child{width:100%}.header-cta{padding:10px 11px}.nav{gap:8px}.logo{width:125px}}

/* Réseaux sociaux : rendu vectoriel net, inspiré de la maquette */
.social-contact{gap:8px;padding:8px 0}
.social-contact a{width:36px;height:36px;min-height:36px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e3e9e5;color:#5c6366;box-shadow:0 3px 10px rgba(20,40,25,.035);transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease}
.social-contact a:hover{transform:translateY(-2px);background:#fff;color:var(--green);border-color:#cddbd0}
.social-contact a svg{width:22px;height:22px;display:block}
.social-contact .icon-linkedin circle{fill:#5c6366}
.social-contact .icon-linkedin path{fill:#fff}
.social-contact .icon-instagram{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.social-contact .icon-instagram circle:last-child{fill:currentColor;stroke:none}
.social-contact .icon-whatsapp{fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.social-contact .icon-whatsapp .wa-phone{fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:900px){
  .social-contact{top:72px;right:10px;gap:7px;padding:7px 0}
  .social-contact a{width:34px;height:34px;min-height:34px}
  .social-contact a svg{width:21px;height:21px}
}

.form-status{width:100%;margin-top:12px;font-size:14px;line-height:1.5;color:rgba(255,255,255,.82)}
.form button:disabled{opacity:.65;cursor:wait}

/* ─── Conformité / cookies ─── */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:9999;background:#fff;color:#17352a;border:1px solid rgba(23,53,42,.15);border-radius:16px;box-shadow:0 18px 60px rgba(0,0,0,.18);padding:18px 20px}.cookie-banner[hidden]{display:none}.cookie-banner-inner{max-width:1100px;margin:auto;display:flex;gap:24px;align-items:center;justify-content:space-between}.cookie-banner p{margin:6px 0 5px;font-size:14px;line-height:1.5;color:#50605a}.cookie-banner a{font-size:13px;color:#17352a}.cookie-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}.cookie-btn{border:1px solid #17352a;border-radius:9px;padding:10px 14px;background:#fff;color:#17352a;cursor:pointer;font-weight:600}.cookie-accept{background:#17352a;color:#fff}.legal-links{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:18px;padding-top:14px;border-top:1px solid rgba(23,53,42,.12);font-size:13px}.legal-links a,.cookie-settings-link{color:inherit;text-decoration:none;background:none;border:0;padding:0;font:inherit;cursor:pointer}.legal-links a:hover,.cookie-settings-link:hover{text-decoration:underline}.form-privacy-note{font-size:12px;line-height:1.5;opacity:.85;margin:12px 0 0}.form-privacy-note a{text-decoration:underline}.form-status{font-size:13px;line-height:1.45;margin-top:10px}
@media(max-width:700px){.cookie-banner{left:10px;right:10px;bottom:10px;padding:15px}.cookie-banner-inner{display:block}.cookie-actions{margin-top:12px;justify-content:stretch}.cookie-btn{flex:1;min-width:0}.legal-links{gap:10px;font-size:12px}}

/* ─── Formulaire contact V22 ─── */
.form-intro{margin-top:-2px!important;margin-bottom:8px!important;color:rgba(255,255,255,.78)!important}.modern-form{grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}.modern-form .field{display:flex;flex-direction:column;gap:7px}.modern-form .field>span,.form-label{font-size:12px;font-weight:850;letter-spacing:.02em;color:rgba(255,255,255,.92)}.modern-form .field i{font-style:normal;color:#bce8c4}.modern-form input,.modern-form select,.modern-form textarea{background:rgba(255,255,255,.97)!important;color:#20252a!important;border:1px solid transparent!important;border-radius:11px!important;padding:14px 15px!important;min-height:50px;box-shadow:0 5px 20px rgba(0,0,0,.07)}.modern-form input::placeholder,.modern-form textarea::placeholder{color:#8b9690}.modern-form input:focus,.modern-form select:focus,.modern-form textarea:focus{outline:none!important;border-color:#9bd4a5!important;box-shadow:0 0 0 4px rgba(155,212,165,.18),0 8px 24px rgba(0,0,0,.08)!important}.modern-form textarea{min-height:118px!important;resize:vertical}.form-choice{margin-bottom:2px}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:8px}.choice{position:relative;cursor:pointer}.choice input{position:absolute;opacity:0;pointer-events:none}.choice span{display:flex;flex-direction:column;gap:3px;min-height:67px;justify-content:center;padding:11px 13px;border:1px solid rgba(255,255,255,.2);border-radius:11px;background:rgba(255,255,255,.08);transition:.2s}.choice b{font-size:12px;color:#fff}.choice small{font-size:10px;color:rgba(255,255,255,.62)}.choice:hover span{border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.12)}.choice input:checked+span{border-color:#b9e4c0;background:#fff;box-shadow:0 7px 22px rgba(0,0,0,.1)}.choice input:checked+span b{color:#245f34}.choice input:checked+span small{color:#65726b}.form-submit-wrap{margin-top:2px}.form-submit-btn{min-height:52px;width:100%;gap:10px;font-size:14px}.form-submit-btn span:last-child{font-size:18px;transition:.2s}.form-submit-btn:hover span:last-child{transform:translateX(3px)}.modern-form .form-privacy-note{color:rgba(255,255,255,.72);opacity:1}.modern-form .form-privacy-note a{color:#fff}.modern-form .form-status{grid-column:1/-1;color:#fff;background:rgba(255,255,255,.1);padding:10px 12px;border-radius:9px}.modern-form button:disabled{transform:none!important}
@media(max-width:700px){.modern-form{grid-template-columns:1fr}.modern-form .full{grid-column:auto}.choice-grid{grid-template-columns:1fr}.choice span{min-height:54px}.modern-form .form-submit-wrap{grid-column:auto}}


/* ─── Identité visuelle NP CLEAN — harmonisation globale V27 ─── */
:root{--green:#327b47;--green-dark:#205c35;--black:#151d20;--bg:#f6f8f5;--text:#283238;--muted:#647078;--line:#e4e9e4;--white:#fff}
body{color:var(--text);background:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;letter-spacing:-.012em}
.container{width:min(1200px,92%)}
.header{background:rgba(255,255,255,.94);border-bottom:1px solid rgba(24,52,34,.08);box-shadow:0 5px 25px rgba(23,40,28,.035)}
.header.scrolled{box-shadow:0 12px 34px rgba(20,38,26,.1)}
.nav{height:82px;gap:clamp(12px,2vw,28px)}
.logo,.foot-logo{object-fit:contain}
.menu{gap:clamp(13px,2.1vw,28px);font-size:13px;letter-spacing:-.01em}
.menu a{transition:color .2s ease}
.btn{border-radius:10px;padding:14px 20px;font-weight:800;letter-spacing:-.01em;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
.btn-green{background:linear-gradient(135deg,#388652,#276b3e);box-shadow:0 8px 22px rgba(50,123,71,.18)}
.btn-green:hover{background:linear-gradient(135deg,#2d7445,#205c35);box-shadow:0 12px 26px rgba(50,123,71,.23)}
.btn-outline{background:rgba(255,255,255,.88);border-color:#d9e2da}
.btn-outline:hover{background:#f2f8f2;border-color:#9fc6a7}
.hero{position:relative;isolation:isolate;padding:158px 0 76px;background:radial-gradient(ellipse at 82% 20%,rgba(79,153,93,.15),transparent 36%),linear-gradient(120deg,#fbfcf9 0%,#fff 56%,#f5f9f4 100%)}
.hero:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.2),transparent 65%)}
.grid2{gap:clamp(32px,5vw,72px)}
h1{font-size:clamp(42px,5.5vw,70px);line-height:1.01;letter-spacing:-.045em;font-weight:850;color:#151d20;margin:18px 0 22px}
h1 span{color:var(--green)}
h2{font-size:clamp(30px,3.6vw,46px);line-height:1.07;letter-spacing:-.04em;font-weight:820;margin:12px 0 16px}
h3{letter-spacing:-.025em;line-height:1.2}
.eyebrow{font-size:12px;letter-spacing:.095em;font-weight:850;color:var(--green)}
.lead{font-size:clamp(17px,1.6vw,20px);line-height:1.58;color:#59656c;max-width:660px}
.hero-img{border-radius:24px;box-shadow:0 28px 70px rgba(20,39,26,.15);border:1px solid rgba(255,255,255,.65)}
.hero-img img{display:block;transition:transform .7s ease}
.hero-img:hover img{transform:scale(1.025)}
.float{border:1px solid rgba(29,71,40,.08);border-radius:15px;padding:16px 19px;box-shadow:0 16px 38px rgba(20,39,26,.14)}
section{padding:clamp(64px,7.2vw,94px) 0}
.head{max-width:790px;margin-bottom:40px}
.head p{font-size:17px;line-height:1.75;color:var(--muted)}
.cards{gap:17px}
.card{border:1px solid #e5ebe5;border-radius:18px;padding:25px;background:linear-gradient(160deg,#fff 0%,#fcfdfb 100%);box-shadow:0 3px 12px rgba(22,45,27,.025);min-height:200px}
.card:hover{border-color:#cbdccc;box-shadow:0 18px 42px rgba(22,45,27,.09);transform:translateY(-5px)}
.icon{background:linear-gradient(145deg,#edf6ee,#e4f0e6);color:var(--green);border-radius:13px}
.zone{background:linear-gradient(135deg,#f5f9f4,#eef5ee);border:1px solid #e2ebe2;border-radius:24px;padding:clamp(24px,4vw,46px);box-shadow:0 12px 36px rgba(26,55,32,.045)}
.pill{border-color:#dce6dc;border-radius:999px;background:rgba(255,255,255,.92);padding:9px 14px;transition:background .2s,border-color .2s,transform .2s}
a.pill:hover{background:#e5f2e7;border-color:#b5d3bb;transform:translateY(-1px)}
.dark{background:linear-gradient(135deg,#171e1b,#202b23)}
.dark .card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.dark .card p{color:#c3cdc5}
.cta{background:linear-gradient(120deg,#2e7d46 0%,#205b36 100%);border-radius:25px;padding:clamp(28px,5vw,52px);box-shadow:0 20px 48px rgba(32,92,53,.17)}
.form input,.form select,.form textarea{border:1px solid #e0e8e1;box-shadow:0 3px 10px rgba(0,0,0,.025)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid rgba(74,148,88,.3);border-color:#8fbe98}
footer{background:#151a17;color:#bdc7bf}
.foot b{color:#fff}
.logo-row{border-color:#e5ebe5}
.quote{border:1px solid #e5ebe5;box-shadow:0 8px 28px rgba(22,45,27,.04)}
.steps .step{border-top-color:#dbe7dc}
@media(max-width:900px){
 .nav{height:74px;gap:12px}.menu{gap:12px}
 .hero{padding-top:128px}
 .hero-img{height:400px}
 .grid2,.split{gap:35px}
}
@media(max-width:560px){
 .nav{height:68px}.logo{width:118px}
 .hero{padding-top:112px;padding-bottom:48px}
 h1{font-size:clamp(37px,10vw,48px);letter-spacing:-.04em}
 h2{letter-spacing:-.035em}
 .hero-img{height:300px;border-radius:18px}
 .card{padding:22px;min-height:0}
 .zone{border-radius:19px;padding:23px}
 .cta{border-radius:19px}
 .header-cta{padding:10px 11px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* V29 — refonte visuelle plus affirmée, commune à toutes les pages */
:root{
  --green:#2f7845;--green-dark:#1f5933;--black:#142019;--bg:#f7faf7;
  --text:#27332b;--muted:#657169;--line:#e1e9e2;
  --green-pale:#edf5ee;--shadow-soft:0 12px 32px rgba(25,55,32,.07);
  --shadow-strong:0 24px 64px rgba(25,55,32,.15)
}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{color:var(--text);letter-spacing:-.01em;-webkit-font-smoothing:antialiased}
.container{width:min(1200px,91.5%)}
.header{background:rgba(255,255,255,.94);border-bottom:1px solid rgba(30,65,39,.09);backdrop-filter:blur(18px)}
.header.scrolled{box-shadow:0 10px 36px rgba(20,45,26,.09)}
.nav{height:84px;gap:clamp(12px,2vw,28px)}
.logo{width:154px;max-height:48px;object-fit:contain}
.menu{gap:clamp(14px,2vw,27px);font-size:13px;letter-spacing:-.01em}
.menu a{position:relative;padding:9px 0;transition:color .2s ease}
.menu a:after{content:"";position:absolute;left:0;right:100%;bottom:1px;height:2px;border-radius:2px;background:var(--green);transition:right .22s ease}
.menu a:hover:after{right:0}
.header-phone strong{font-size:15px}
.header-cta{border-radius:12px!important;padding:15px 21px!important}
.btn{border-radius:12px;padding:15px 22px;font-size:14px;min-height:49px;letter-spacing:-.01em}
.btn-green{background:linear-gradient(135deg,#38844d,#28683d);box-shadow:0 9px 24px rgba(47,120,69,.22)}
.btn-green:hover{background:linear-gradient(135deg,#28683d,#1f5933);box-shadow:0 14px 30px rgba(47,120,69,.27);transform:translateY(-2px)}
.btn-outline{border:1px solid #cfdcd0;background:rgba(255,255,255,.9)}
.btn-outline:hover{background:#edf5ee;border-color:#9fc3a6}
.hero{position:relative;isolation:isolate;padding:166px 0 86px;background:radial-gradient(ellipse at 86% 12%,rgba(73,145,88,.17),transparent 34%),radial-gradient(ellipse at 8% 80%,rgba(230,241,231,.7),transparent 35%),linear-gradient(180deg,#f7faf7 0%,#fff 94%)}
.hero:before{content:"";position:absolute;z-index:-1;width:380px;height:380px;border:1px solid rgba(47,120,69,.09);border-radius:50%;right:-210px;top:135px;box-shadow:0 0 0 38px rgba(47,120,69,.025),0 0 0 78px rgba(47,120,69,.02);pointer-events:none}
.grid2{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(36px,5vw,72px)}
.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:850;gap:10px}
.eyebrow .dot{width:8px;height:8px;box-shadow:0 0 0 5px rgba(47,120,69,.1)}
h1{font-size:clamp(46px,5.3vw,72px);line-height:1.01;letter-spacing:-.055em;margin:20px 0 23px;max-width:720px}
h1 span{color:var(--green)}
h2{font-size:clamp(32px,3.3vw,46px);line-height:1.08;letter-spacing:-.045em;margin:12px 0 17px}
h3{letter-spacing:-.025em;line-height:1.25}
.lead{font-size:clamp(17px,1.45vw,20px);line-height:1.72;color:#58665d;max-width:610px}
.hero-contact{margin-top:22px;gap:9px 13px;font-size:13px}
.hero-contact a{border-bottom-color:rgba(47,120,69,.25)}
.hero .actions{gap:12px;margin:30px 0 25px}
.trust{gap:8px 9px;font-size:12px;color:#405448}
.trust span{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid #e1eae2;border-radius:999px;background:rgba(255,255,255,.82)}
.trust span:before{content:"✓";display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#e4f2e6;color:var(--green);font-size:10px;font-weight:900;margin-right:7px}
.hero-img{height:clamp(400px,43vw,555px);border-radius:30px;box-shadow:var(--shadow-strong);transform:translateY(-2px);isolation:isolate}
.hero-img:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,35,18,0) 58%,rgba(10,35,18,.18));pointer-events:none}
.hero-img img{transition:transform .8s cubic-bezier(.2,.7,.2,1);object-position:center}
.hero-img:hover img{transform:scale(1.035)}
.float{z-index:2;left:-22px;bottom:25px;border:1px solid rgba(30,65,39,.08);border-radius:16px;padding:17px 20px;box-shadow:0 18px 44px rgba(20,45,26,.18)}
.marquee{background:#fbfdfb;border-color:#e7eee8}
.marquee span{padding:20px 30px;font-size:10px;letter-spacing:.16em;color:#65756a}
section{padding:100px 0}
section#prestations,section#realisations,section#faq{background:#fff}
section#engagements,section.dark{background:linear-gradient(125deg,#15251a 0%,#1b3925 60%,#245b36 100%)}
.head{max-width:790px;margin-bottom:43px}
.head .eyebrow{margin-bottom:5px}
.head h2{max-width:740px}
.head p{font-size:17px;line-height:1.8;max-width:720px;color:#647168}
.cards{gap:18px}
.card{position:relative;isolation:isolate;border:1px solid #e3ebe4;border-radius:22px;padding:29px 27px 30px;min-height:232px;background:linear-gradient(155deg,#fff 0%,#fcfefc 100%);box-shadow:0 4px 14px rgba(23,57,31,.025);overflow:hidden}
.card:before{content:"";position:absolute;z-index:-1;width:130px;height:130px;border-radius:50%;right:-70px;top:-70px;background:rgba(47,120,69,.045);transition:transform .35s ease}
.card:hover{transform:translateY(-6px);border-color:#c9ddcd;box-shadow:0 22px 46px rgba(25,55,32,.1)}
.card:hover:before{transform:scale(1.5)}
.icon{width:52px;height:52px;border-radius:16px;background:linear-gradient(145deg,#edf6ee,#e0eee2);color:var(--green);margin-bottom:22px;font-size:22px}
.service-icon{width:25px;height:25px}
.card h3{font-size:18px;margin:0 0 10px}
.card p{font-size:14px;line-height:1.75;color:#657168}
.dark .split{gap:clamp(36px,6vw,80px)}
.dark .photo{height:clamp(360px,40vw,520px);border-radius:28px;box-shadow:0 25px 60px rgba(0,0,0,.2)}
.dark .eyebrow{color:#a4d7ad!important}
.dark h2{font-size:clamp(32px,3.4vw,46px)}
.check{gap:14px}
.check i{flex-basis:34px;height:34px;background:rgba(117,190,131,.16);color:#a6d9ae}
.check b{font-size:15px}
.check p{line-height:1.7;color:#c5d2c8}
.gallery{gap:18px}
.g{height:clamp(245px,25vw,330px);border-radius:22px;box-shadow:var(--shadow-soft)}
.g:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(12,24,15,.7));pointer-events:none}
.g img{transition:transform .75s cubic-bezier(.2,.7,.2,1)}
.g:hover img{transform:scale(1.06)}
.tag{z-index:1;left:17px;right:17px;bottom:17px;background:rgba(15,28,18,.72);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:13px 15px;font-size:12px}
.steps{gap:16px}
.step{border-top:3px solid #d9e8dc;background:#fbfdfb;border-radius:0 0 15px 15px;padding:22px 20px}
.num{font-size:11px;letter-spacing:.12em}
.step h3{font-size:17px}
.step p{line-height:1.7}
.zone{background:linear-gradient(135deg,#f0f7f1,#e8f2e9);border:1px solid #dfebe0;border-radius:28px;padding:clamp(26px,4vw,48px)}
.pill{border-radius:999px;padding:10px 15px;border-color:#dce8de;font-size:12px;transition:background .2s,border-color .2s,transform .2s}
.pill:hover{background:#fff;border-color:#a9cdae;transform:translateY(-1px)}
.quote{border:1px solid #e1eae2;background:linear-gradient(145deg,#fbfdfb,#f2f7f2);border-radius:24px;padding:clamp(26px,4vw,42px);box-shadow:var(--shadow-soft)}
.quote p{font-size:clamp(18px,2vw,22px);line-height:1.65;color:#29382e}
.faq-item{border-bottom:1px solid #e3ebe4}
.faq-q{padding:23px 0;font-size:16px;gap:20px}
.faq-q span{flex:0 0 30px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#edf5ee}
.faq-a{line-height:1.8}
.cta{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(120deg,#2f7845 0%,#245f37 58%,#1e4c2d 100%);border-radius:30px;padding:clamp(28px,5vw,58px);box-shadow:0 24px 60px rgba(33,94,51,.18)}
.cta:before{content:"";position:absolute;z-index:-1;right:-115px;top:-175px;width:390px;height:390px;border:1px solid rgba(255,255,255,.17);border-radius:50%;box-shadow:0 0 0 32px rgba(255,255,255,.045),0 0 0 68px rgba(255,255,255,.03)}
.cta h2{font-size:clamp(32px,3.4vw,45px);max-width:720px}
.cta .form{gap:13px;margin-top:30px}
.form input,.form select,.form textarea{border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:16px 17px;background:#fff;color:#1d2b21;box-shadow:0 2px 8px rgba(0,0,0,.035)}
.form input::placeholder,.form textarea::placeholder{color:#87918a}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid rgba(211,238,216,.45);border-color:#b8d8be}
.form-choice{border:1px solid rgba(255,255,255,.22);border-radius:15px;padding:17px;background:rgba(255,255,255,.08)}
.form-label{display:block;font-size:13px;font-weight:800;margin-bottom:11px}
.choice-grid{gap:9px}
.choice{border:1px solid rgba(255,255,255,.2);border-radius:12px;background:rgba(255,255,255,.08);padding:13px;transition:background .2s,border-color .2s}
.choice:has(input:checked){background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.65)}
.choice small{display:block;margin-top:3px;opacity:.8}
.form .btn{min-height:55px;border-radius:13px}
footer{background:#111b14;padding:55px 0;color:#b8c6bb}
footer a{transition:color .2s}
footer a:hover{color:#fff}
.foot{gap:clamp(24px,4vw,60px)}
.sticky-mobile{background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-top:1px solid #e2e9e2;box-shadow:0 -8px 28px rgba(17,36,22,.09)}
:focus-visible{outline:3px solid rgba(47,120,69,.45);outline-offset:3px}
@media(max-width:1000px){
 .nav{gap:12px}.logo{width:130px}.menu{gap:13px;font-size:12px}.header-phone strong{font-size:13px}
 .hero{padding-top:145px}.grid2{gap:34px}.hero-img{height:430px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
 .nav{height:72px}.hero{padding-top:126px}.grid2,.split{grid-template-columns:1fr}.hero .left{max-width:760px}.hero-img{height:clamp(300px,58vw,460px);margin-top:8px}.hero-img:after{background:linear-gradient(180deg,rgba(10,35,18,0) 55%,rgba(10,35,18,.12))}.dark .photo{height:clamp(300px,55vw,440px)}
 section{padding:76px 0}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.social-contact{position:static;justify-content:flex-end;padding:8px 4%;background:#fff}
}
@media(max-width:560px){
 html{scroll-padding-top:82px}.container{width:calc(100% - 36px)}.hero{padding:115px 0 50px}.hero:before{width:240px;height:240px;right:-165px;top:100px}
 h1{font-size:clamp(39px,11vw,52px);line-height:1.03;letter-spacing:-.055em;margin:17px 0 18px}h2{font-size:clamp(30px,8vw,36px);letter-spacing:-.04em}
 .lead{font-size:17px;line-height:1.7}.hero-contact{font-size:12px;gap:8px}.hero .actions{display:grid;grid-template-columns:1fr;margin:24px 0 20px}.hero .actions .btn{width:100%}.hero-img{height:285px;border-radius:23px}.float{left:12px;bottom:13px;padding:12px 14px}
 .trust{gap:7px}.trust span{font-size:11px;padding:7px 9px}.marquee span{padding:16px 20px;font-size:9px}
 section{padding:64px 0}.head{margin-bottom:28px}.head p{font-size:15px;line-height:1.75}.cards,.steps,.gallery,.form{grid-template-columns:1fr}.card{min-height:0;padding:24px;border-radius:19px}.icon{margin-bottom:17px}.g{height:245px}.zone,.cta{padding:24px 20px;border-radius:22px}.cta .form{gap:11px}.form-choice{padding:13px}.choice-grid{display:grid;grid-template-columns:1fr}.choice{padding:12px}.dark .photo{height:270px;border-radius:22px}.quote{padding:24px}.quote p{font-size:18px}.foot{flex-direction:column}.social-contact{gap:6px}.social-contact a{font-size:10px;padding:6px 8px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* Bandeau supérieur rassurant et navigation décalée */
.top-ribbon{position:fixed;top:0;left:0;right:0;z-index:61;min-height:36px;padding:7px 5.5%;display:flex;align-items:center;justify-content:center;gap:9px;background:#173d2a;color:#fff;font-size:12px;letter-spacing:.01em;text-align:center}
.top-ribbon strong{font-weight:850}.ribbon-check{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#c9e9ce;color:#173d2a;font-weight:900;font-size:11px}.top-ribbon>a{margin-left:12px;color:#fff;font-weight:800;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.55);white-space:nowrap}.top-ribbon>a:hover{border-color:#fff}.header{top:36px}.hero{padding-top:145px}
/* Carte cliquable Île-de-France */
.idf-map-card{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(280px,1.2fr);align-items:center;gap:24px;margin:26px 0 28px;padding:clamp(20px,3vw,32px);background:rgba(255,255,255,.8);border:1px solid #dce8dc;border-radius:24px;box-shadow:0 15px 38px rgba(24,60,35,.07)}
.idf-map-copy h3{font-size:clamp(23px,2.5vw,32px);line-height:1.12;letter-spacing:-.8px;margin:12px 0}.idf-map-copy p{font-size:14px;line-height:1.7;color:#5b6860;max-width:330px}.idf-map-legend{display:grid;gap:8px;margin-top:22px;font-size:12px;color:#31543b}.idf-map-legend span{display:flex;align-items:center;gap:8px;font-weight:800}.idf-map-legend i{display:inline-block;width:11px;height:11px;border-radius:3px;background:#286541}.idf-map-legend small{color:#6c766f;line-height:1.5}.idf-map-wrap{max-width:510px;width:100%;margin:auto}.idf-map{width:100%;height:auto;display:block;overflow:visible}.map-dept{fill:#e8f1e8;stroke:#fff;stroke-width:4;stroke-linejoin:round;transition:fill .2s,filter .2s;cursor:pointer}.map-dept.map-priority{fill:#b7d9bd}.map-dept.map-paris{fill:#1d5a36}.idf-map a:hover .map-dept,.idf-map a:focus .map-dept{fill:#78b783;filter:drop-shadow(0 4px 5px rgba(20,55,29,.15));outline:none}.idf-map text{font-family:inherit;font-size:17px;font-weight:850;text-anchor:middle;dominant-baseline:middle;fill:#24452e;pointer-events:none}.idf-map a[href="nettoyage-paris.html"] text{fill:#fff}.idf-map .map-hub{fill:#fff;stroke:#1d5a36;stroke-width:3;pointer-events:none}.idf-map .map-hub-label{font-size:11px;letter-spacing:1.5px;fill:#1d5a36}.map-hint{font-size:11px;text-align:center;color:#6b756d;margin:0}.top-ribbon + .header + .social-contact{top:130px}
@media(max-width:700px){.top-ribbon{min-height:42px;padding:7px 10px;gap:6px;font-size:10px;flex-wrap:wrap;line-height:1.35}.top-ribbon>a{margin-left:4px}.header{top:42px}.hero{padding-top:130px}.idf-map-card{grid-template-columns:1fr;gap:10px;padding:22px 17px}.idf-map-copy p{max-width:none}.idf-map-wrap{max-width:400px}.top-ribbon + .header + .social-contact{top:126px}}


/* V31 — Réseaux sociaux visibles et détachés de l'image du hero */
.social-contact{
  position:relative !important; top:auto !important; right:auto !important;
  z-index:20; width:min(1180px, calc(100% - 64px)); margin:12px auto 0 !important;
  padding:8px 0 0 !important; display:flex; justify-content:flex-end; align-items:center;
  gap:10px; background:transparent !important; box-sizing:border-box;
}
.social-contact a{
  flex:0 0 38px; width:38px !important; height:38px !important; min-height:38px !important;
  padding:0 !important; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  background:#fff; color:#1d5a36; border:1px solid #dce8dc; box-shadow:0 4px 14px rgba(20,55,29,.10);
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.social-contact a:hover,.social-contact a:focus-visible{transform:translateY(-2px);background:#edf6ee;box-shadow:0 7px 18px rgba(20,55,29,.16);outline:2px solid #80b88a;outline-offset:2px}
.social-contact a svg,.social-contact a .social-icon{width:20px !important;height:20px !important;max-width:20px;max-height:20px}
.social-contact a svg[width="800px"]{width:20px !important;height:20px !important}
/* Carte d'Île-de-France : fond cartographique, relief visuel et contours plus nets */
.idf-map-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#fbfdfb 0%,#f0f7f0 58%,#e5f0e7 100%);border:1px solid #d3e3d5;box-shadow:0 22px 55px rgba(24,60,35,.10)}
.idf-map-card:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.38;background-image:linear-gradient(rgba(67,119,79,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(67,119,79,.055) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(90deg,transparent 10%,#000 55%,#000)}
.idf-map-copy,.idf-map-wrap{position:relative;z-index:1}
.idf-map-wrap{max-width:540px;padding:14px;border-radius:22px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 12px 28px rgba(32,75,42,.08)}
.idf-map{filter:drop-shadow(0 7px 5px rgba(28,70,39,.08))}
.map-dept{stroke:#fff;stroke-width:5;stroke-linejoin:round;paint-order:stroke fill;filter:drop-shadow(0 2px 1px rgba(29,90,54,.04))}
.map-dept.map-priority{fill:#a8d1b0}
.map-dept.map-paris{fill:#174c2d}
.idf-map a:hover .map-dept,.idf-map a:focus .map-dept{fill:#69a977;filter:drop-shadow(0 5px 6px rgba(20,55,29,.2))}
.idf-map text{font-size:16px;font-weight:900;paint-order:stroke;stroke:rgba(255,255,255,.55);stroke-width:.5px}
.idf-map a[href="nettoyage-paris.html"] text{stroke:none}
.idf-map .map-hub{r:7;fill:#fff;stroke:#1d5a36;stroke-width:3}
.idf-map .map-hub-label{font-size:10px;font-weight:900;letter-spacing:1.6px;paint-order:normal;stroke:none}
.map-hint{padding-top:8px;font-weight:700;letter-spacing:.01em}
@media(max-width:900px){
 .social-contact{width:calc(100% - 40px);margin:8px auto 0 !important;padding:6px 0 0 !important;justify-content:flex-end;gap:9px}
 .social-contact a{flex-basis:36px;width:36px !important;height:36px !important;min-height:36px !important}
 .social-contact a svg,.social-contact a .social-icon{width:19px !important;height:19px !important}
}
@media(max-width:560px){
 .social-contact{width:calc(100% - 36px);margin:8px auto 2px !important;justify-content:flex-end;padding:5px 0 0 !important;gap:8px}
 .social-contact a{flex-basis:36px;width:36px !important;height:36px !important;min-height:36px !important}
 .idf-map-card{border-radius:20px}
 .idf-map-wrap{padding:8px;border-radius:16px}
}


/* V32 — correctif visibilité réseaux sociaux : ligne autonome sous l'en-tête */
.social-contact{position:relative!important;inset:auto!important;display:flex!important;visibility:visible!important;opacity:1!important;z-index:55!important;width:min(1180px,92%)!important;margin:10px auto 0!important;padding:5px 0!important;justify-content:flex-end!important;align-items:center!important;gap:9px!important;background:transparent!important;overflow:visible!important}
.social-contact a{display:inline-flex!important;flex:0 0 38px!important;width:38px!important;height:38px!important;min-height:38px!important;padding:0!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:#fff!important;color:#245f34!important;border:1px solid #cfded1!important;box-shadow:0 4px 14px rgba(20,55,29,.12)!important;line-height:1!important}
.social-contact a svg,.social-contact a svg.social-icon{display:block!important;visibility:visible!important;opacity:1!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;max-width:20px!important;max-height:20px!important;overflow:visible!important}
.social-contact .icon-linkedin circle{fill:#245f34!important;stroke:none!important}
.social-contact .icon-linkedin path{fill:#fff!important;stroke:none!important}
.social-contact .icon-instagram{fill:none!important;stroke:#245f34!important;stroke-width:1.8!important}
.social-contact .icon-instagram circle:last-child{fill:#245f34!important;stroke:#245f34!important}
.social-contact .icon-whatsapp{fill:none!important;stroke:#245f34!important;stroke-width:1.8!important}
@media(max-width:700px){.social-contact{width:calc(100% - 36px)!important;margin:8px auto 0!important;gap:8px!important}.social-contact a{flex-basis:36px!important;width:36px!important;height:36px!important;min-height:36px!important}.social-contact a svg,.social-contact a svg.social-icon{width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important}}


/* V33 — réseaux sociaux intégrés à la ligne de navigation */
.header .nav{display:flex;align-items:center;gap:clamp(12px,1.7vw,26px)}
.header .nav>.social-contact{position:static!important;inset:auto!important;display:flex!important;visibility:visible!important;opacity:1!important;flex:0 0 auto;width:auto!important;margin:0!important;padding:0!important;justify-content:center!important;align-items:center!important;gap:7px!important;background:transparent!important;z-index:2!important;overflow:visible!important}
.header .nav>.social-contact a{display:inline-flex!important;flex:0 0 34px!important;width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:#fff!important;color:#245f34!important;border:1px solid #d5e2d7!important;box-shadow:0 2px 8px rgba(20,55,29,.08)!important}
.header .nav>.social-contact a svg{display:block!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;max-height:18px!important}
.header .nav>.social-contact .icon-linkedin circle{fill:#245f34!important}.header .nav>.social-contact .icon-linkedin path{fill:#fff!important}.header .nav>.social-contact .icon-instagram{fill:none!important;stroke:#245f34!important;stroke-width:1.8!important}.header .nav>.social-contact .icon-instagram circle:last-child{fill:#245f34!important}.header .nav>.social-contact .icon-whatsapp{fill:none!important;stroke:#245f34!important;stroke-width:1.8!important}
.header .header-contact{display:flex;align-items:center;gap:clamp(12px,1.4vw,22px);margin-left:auto}
@media(max-width:1050px){.header .nav{gap:12px}.header .nav>.social-contact{gap:5px!important}.header .nav>.social-contact a{flex-basis:30px!important;width:30px!important;height:30px!important;min-height:30px!important}.header .nav>.social-contact a svg{width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important}}
@media(max-width:760px){.header .nav{flex-wrap:wrap;justify-content:space-between;row-gap:8px}.header .nav>.social-contact{order:3;width:auto!important;margin-left:auto!important}.header .nav>.menu{order:2}.header .nav>.header-contact{order:4;width:100%;justify-content:flex-end}.header .nav>.btn.btn-green{order:4}.header .nav>.social-contact a{width:32px!important;height:32px!important;flex-basis:32px!important}}
/* Carte schématique aux contours plus organiques et proportions retravaillées */
.idf-map{max-width:100%;height:auto}.map-dept{stroke-width:3.2;stroke-linejoin:round;stroke-linecap:round}.idf-map text{font-size:17px;font-weight:900;paint-order:stroke;stroke:rgba(255,255,255,.55);stroke-width:.6px}.idf-map .map-hub-label{font-size:10px;letter-spacing:1.5px;stroke:none}

/* V36: numéro du 92 lisible sur la petite géométrie du département */
.idf-map text.map-label-92{font-size:13px;font-weight:900;fill:#24452e;stroke:rgba(255,255,255,.55);stroke-width:.5px;pointer-events:none}

/* V37: label 92 drawn above all map polygons so Paris cannot hide it */
.idf-map text.map-label-92{font-size:13px;font-weight:900;fill:#24452e;stroke:rgba(255,255,255,.55);stroke-width:.5px;paint-order:stroke; text-anchor:middle;dominant-baseline:middle}

/* V39 — correction mobile iPhone : bandeau compact, navigation alignée et carte sobre */
@media (max-width: 760px) {
  .top-ribbon {
    position: fixed !important;
    top: 0 !important; left: 0 !important; right: 0 !important;
    min-height: 42px !important; height: auto !important;
    padding: 8px 12px !important;
    display: flex !important; flex-wrap: nowrap !important;
    align-items: center !important; justify-content: center !important;
    gap: 7px !important; line-height: 1.2 !important;
    font-size: 10px !important; text-align: left !important;
    white-space: nowrap !important; overflow: hidden !important;
  }
  .top-ribbon > span:nth-child(2) { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .top-ribbon .ribbon-separator,
  .top-ribbon > span:nth-child(2) { }
  .top-ribbon > span:nth-child(2) { max-width: 68%; }
  .top-ribbon > a { margin-left: 2px !important; font-size: 10px !important; flex: 0 0 auto; }
  .ribbon-check { flex: 0 0 17px; }

  .header { top: 42px !important; }
  .header .nav {
    height: auto !important; min-height: 0 !important;
    padding-top: 11px !important; padding-bottom: 11px !important;
    display: flex !important; flex-wrap: wrap !important;
    align-items: center !important; justify-content: space-between !important;
    column-gap: 8px !important; row-gap: 10px !important;
  }
  .header .nav > a:first-child { order: 1 !important; flex: 0 1 auto; }
  .header .nav > a:first-child .logo { display: block; width: 122px !important; max-width: 36vw; height: auto; }
  .header .nav > .menu { display: none !important; }
  .header .nav > .social-contact {
    order: 2 !important; margin: 0 !important; padding: 0 !important;
    width: auto !important; flex: 0 0 auto !important;
    display: flex !important; align-items: center !important; justify-content: flex-end !important;
    gap: 7px !important;
  }
  .header .nav > .social-contact a {
    flex: 0 0 32px !important; width: 32px !important; height: 32px !important;
    min-height: 32px !important; box-shadow: 0 1px 4px rgba(20,55,29,.07) !important;
  }
  .header .nav > .social-contact a svg { width: 17px !important; height: 17px !important; }
  .header .nav > .header-contact {
    order: 3 !important; width: 100% !important; margin: 0 !important;
    display: flex !important; flex-direction: row !important;
    justify-content: space-between !important; align-items: center !important;
    gap: 12px !important;
  }
  .header .nav > .header-contact .header-phone {
    display: inline-flex !important; align-items: center !important; gap: 8px !important;
    min-width: 0; white-space: nowrap !important;
  }
  .header .nav > .header-contact .header-phone span:not(.phone-icon) { display: inline-block !important; }
  .header .nav > .header-contact .header-phone small { display: none !important; }
  .header .nav > .header-contact .phone-icon {
    flex: 0 0 34px !important; width: 34px !important; height: 34px !important;
    display: grid !important; place-items: center !important; font-size: 16px !important;
    line-height: 1 !important; margin: 0 !important;
  }
  .header .nav > .header-contact .header-phone strong { font-size: 13px !important; line-height: 1.2 !important; }
  .header .nav > .header-contact .header-cta {
    display: inline-flex !important; align-items: center !important; justify-content: center !important;
    flex: 0 0 auto !important; margin: 0 !important; padding: 11px 14px !important;
    min-height: 40px !important; font-size: 12px !important; line-height: 1.1 !important;
    white-space: nowrap !important; border-radius: 10px !important;
  }
  .hero { padding-top: 178px !important; }

  /* Carte plus éditoriale sur mobile : pas de quadrillage, pas d'effets flottants */
  .idf-map-card {
    display: flex !important; flex-direction: column !important; align-items: stretch !important;
    gap: 12px !important; padding: 22px 16px !important; margin: 22px 0 !important;
    background: #f8fbf8 !important; border: 1px solid #e0e9e1 !important;
    border-radius: 18px !important; box-shadow: none !important; overflow: hidden !important;
  }
  .idf-map-card:before { display: none !important; }
  .idf-map-copy, .idf-map-wrap { position: static !important; z-index: auto !important; }
  .idf-map-copy h3 { font-size: 25px !important; line-height: 1.12 !important; margin: 9px 0 !important; letter-spacing: -.6px !important; }
  .idf-map-copy p { font-size: 14px !important; line-height: 1.6 !important; margin-bottom: 0 !important; }
  .idf-map-wrap {
    width: 100% !important; max-width: none !important; margin: 0 auto !important;
    padding: 4px !important; background: transparent !important; border: 0 !important;
    border-radius: 0 !important; box-shadow: none !important;
  }
  .idf-map { display: block !important; width: 100% !important; max-width: 100% !important; height: auto !important; filter: none !important; overflow: visible !important; }
  .map-dept { filter: none !important; transition: none !important; stroke-width: 2.5 !important; }
  .idf-map a:hover .map-dept, .idf-map a:focus .map-dept { filter: none !important; }
  .idf-map text { font-size: 16px !important; stroke: none !important; paint-order: normal !important; }
  .idf-map text.map-label-92 { font-size: 12px !important; }
  .idf-map .map-hub-label { font-size: 9px !important; }
  .map-hint { padding-top: 6px !important; font-size: 11px !important; font-weight: 600 !important; letter-spacing: 0 !important; }
}
@media (max-width: 390px) {
  .top-ribbon { gap: 5px !important; padding-left: 8px !important; padding-right: 8px !important; font-size: 9px !important; }
  .top-ribbon > span:nth-child(2) { max-width: 64%; }
  .top-ribbon > a { font-size: 9px !important; }
  .header .nav > a:first-child .logo { width: 112px !important; }
  .header .nav > .social-contact { gap: 5px !important; }
  .header .nav > .social-contact a { flex-basis: 29px !important; width: 29px !important; height: 29px !important; min-height: 29px !important; }
  .header .nav > .header-contact .header-phone strong { font-size: 12px !important; }
  .header .nav > .header-contact .header-cta { padding: 10px 11px !important; font-size: 11px !important; }
}
@media (prefers-reduced-motion: reduce), (max-width: 760px) {
  .idf-map-card, .idf-map, .idf-map * { animation: none !important; }
}

/* Correctif mobile — empêcher les débordements horizontaux sur iOS */
html {
  max-width: 100%;
  overflow-x: clip;
}
body {
  max-width: 100%;
  overflow-x: clip;
}
img,
video,
iframe,
svg,
canvas {
  max-width: 100%;
}


/* ─── V40 — Formulaire premium harmonisé sur toutes les pages ─── */
.cta{overflow:hidden}
.cta .modern-form{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;margin-top:26px;padding:clamp(18px,3vw,30px);border:1px solid rgba(255,255,255,.2);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.055));box-shadow:0 18px 48px rgba(13,42,23,.13);}
.cta .modern-form .full{grid-column:1/-1}
.cta .modern-form .field{min-width:0;display:flex;flex-direction:column;gap:8px;margin:0}
.cta .modern-form .field>span,.cta .modern-form .form-label{display:block;margin:0;color:#f7fbf7;font-size:12px;font-weight:750;letter-spacing:.035em;line-height:1.4}
.cta .modern-form .field i{font-style:normal;color:#d4f0d9}
.cta .modern-form input:not([type=radio]),.cta .modern-form select,.cta .modern-form textarea{display:block;width:100%;min-width:0;box-sizing:border-box;margin:0;padding:14px 15px;min-height:51px;border:1px solid rgba(28,65,39,.08);border-radius:12px;background:#fff;color:#1d2a21;font:inherit;font-size:15px;line-height:1.35;box-shadow:0 3px 12px rgba(10,30,16,.055);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.cta .modern-form input::placeholder,.cta .modern-form textarea::placeholder{color:#87928a;opacity:1}
.cta .modern-form input:focus,.cta .modern-form select:focus,.cta .modern-form textarea:focus{outline:none;border-color:#a8d8b0;box-shadow:0 0 0 4px rgba(206,239,211,.22);}
.cta .modern-form textarea{min-height:120px;resize:vertical}
.cta .modern-form .form-choice{margin:0}
.cta .modern-form .choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.cta .modern-form .choice{position:relative;display:block;min-width:0;margin:0;cursor:pointer}
.cta .modern-form .choice input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.cta .modern-form .choice span{display:flex;flex-direction:column;justify-content:center;gap:5px;min-height:74px;box-sizing:border-box;padding:13px 14px;border:1px solid rgba(255,255,255,.23);border-radius:13px;background:rgba(255,255,255,.075);transition:background .18s ease,border-color .18s ease,transform .18s ease}
.cta .modern-form .choice b{color:#fff;font-size:12px;font-weight:800;line-height:1.35}
.cta .modern-form .choice small{color:rgba(255,255,255,.72);font-size:11px;line-height:1.4}
.cta .modern-form .choice:hover span{border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.13)}
.cta .modern-form .choice input:focus-visible+span{outline:3px solid #d5f0d9;outline-offset:3px}
.cta .modern-form .choice input:checked+span{border-color:#c6e9cc;background:#fff;box-shadow:0 7px 20px rgba(12,35,18,.12)}
.cta .modern-form .choice input:checked+span b{color:#205c35}
.cta .modern-form .choice input:checked+span small{color:#68766c}
.cta .modern-form .form-submit-wrap{min-width:0;margin:0;padding-top:2px}
.cta .modern-form .form-submit-btn{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:56px;padding:15px 19px;border:0;border-radius:13px;background:#fff;color:#205c35;font-size:14px;font-weight:800;box-shadow:0 8px 22px rgba(9,33,15,.13);transition:transform .18s ease,box-shadow .18s ease}
.cta .modern-form .form-submit-btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(9,33,15,.19)}
.cta .modern-form .form-submit-btn span:last-child{font-size:21px;line-height:1}
.cta .modern-form .form-privacy-note{margin:12px 0 0;color:rgba(255,255,255,.76);font-size:11px;line-height:1.65}
.cta .modern-form .form-privacy-note a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.cta .modern-form .form-status{grid-column:1/-1;color:#fff;background:rgba(255,255,255,.12);padding:12px 14px;border-radius:10px}
.form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
@media(max-width:700px){.cta .modern-form{grid-template-columns:minmax(0,1fr);gap:14px;padding:17px;border-radius:17px}.cta .modern-form .full{grid-column:1}.cta .modern-form .choice-grid{grid-template-columns:minmax(0,1fr);gap:8px}.cta .modern-form .choice span{min-height:58px;padding:11px 13px}.cta .modern-form .form-submit-wrap{grid-column:1}.cta .modern-form input:not([type=radio]),.cta .modern-form select,.cta .modern-form textarea{font-size:16px}}
