 :root{--blue:#06245c;--blue2:#0d4caf;--green:#52b51f;--green2:#88e84c;--text:#10213d;--muted:#65748b;--soft:#f5f9fc;--shadow:0 24px 70px rgba(4,25,67,.14)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--text);background:white}h1,h2,h3,.logo{font-family:Montserrat,Arial,sans-serif}.notice{background:linear-gradient(90deg,var(--blue),var(--blue2));color:white;display:flex;justify-content:center;gap:30px;padding:10px 15px;font-weight:800;font-size:14px}.header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);box-shadow:0 12px 35px rgba(0,0,0,.08);display:flex;align-items:center;justify-content:space-between;padding:18px 5%}.logo{font-size:34px;font-weight:900;text-decoration:none;display:flex;align-items:center}.logo em{color:var(--green);font-style:italic}.logo strong{background:var(--blue);color:white;border-radius:50%;padding:5px 9px;margin:0 3px;font-style:italic}nav{display:flex;gap:24px}nav a{text-decoration:none;color:var(--blue);font-weight:900}.headerBtns{display:flex;gap:10px}.headerBtns a{text-decoration:none;border-radius:999px;padding:12px 17px;font-weight:900}.btnOutline{border:2px solid #dbe6f2;color:var(--blue)}.btnSolid{background:var(--green);color:white}.hero{background:radial-gradient(circle at 80% 20%,rgba(136,232,76,.26),transparent 28%),linear-gradient(135deg,#03183f,#073783 58%,#0d4caf);color:white;padding:90px 5%}.heroInner{max-width:1240px;margin:auto;display:grid;grid-template-columns:1.05fr .95fr;gap:58px;align-items:center}.pill,.tag{display:inline-flex;background:rgba(82,181,31,.13);color:var(--green2);border:1px solid rgba(136,232,76,.32);border-radius:999px;padding:10px 15px;font-size:13px;text-transform:uppercase;font-weight:900;letter-spacing:.7px}.hero h1{font-size:64px;line-height:1.02;letter-spacing:-2px;margin:22px 0}.lead{font-size:20px;line-height:1.75;color:#e7eefb;max-width:680px}.heroActions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}.mainBtn,.whiteBtn{display:inline-block;text-decoration:none;border-radius:16px;padding:17px 24px;font-weight:900}.mainBtn{background:var(--green);color:white;box-shadow:0 18px 34px rgba(82,181,31,.35)}.whiteBtn{background:white;color:var(--blue)}.miniStats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:42px}.miniStats div{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:18px}.miniStats b{display:block;font-size:30px;color:var(--green2)}.miniStats span{font-size:13px;color:#d9e5f4}.heroVisual{position:relative}.heroVisual img{width:100%;display:block;border-radius:32px;box-shadow:0 34px 90px rgba(0,0,0,.35);transform:rotate(1deg);border:14px solid rgba(255,255,255,.18)}.bubble{position:absolute;background:white;color:var(--blue);font-weight:900;border-radius:999px;padding:14px 18px;box-shadow:var(--shadow)}.b1{left:-20px;bottom:55px}.b2{right:-16px;top:55px}.section{max-width:1320px;margin:auto;padding:90px 5%}.sectionTitle{text-align:center;max-width:780px;margin:0 auto 52px}.sectionTitle h2,.dark h2,.contact h2,.mapSection h2{font-size:46px;line-height:1.1;color:var(--blue);letter-spacing:-1.4px;margin:16px 0}.sectionTitle p{color:var(--muted);font-size:18px;line-height:1.7}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.cards article{background:white;border:1px solid #e8eef6;border-radius:28px;padding:28px;box-shadow:0 18px 48px rgba(7,34,84,.08);transition:.25s}.cards article:hover{transform:translateY(-7px);border-color:rgba(82,181,31,.5)}.cards span{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef9eb,#edf4ff);border-radius:18px;width:54px;height:54px;font-size:26px;margin-bottom:18px}.cards h3{color:var(--blue);margin:0 0 10px}.cards p{color:var(--muted);line-height:1.6;margin:0}.dark{background:linear-gradient(135deg,#03183f,#06245c);color:white;padding:90px 5%}.darkInner{max-width:1240px;margin:auto;display:grid;grid-template-columns:1fr 1.15fr;gap:40px;align-items:center}.dark h2{color:white}.dark p{color:#d9e5f4;line-height:1.8}.light{background:rgba(255,255,255,.08)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.steps div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:26px}.steps b{color:var(--green2);font-size:26px}.steps h3{margin:10px 0}.gallery{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.2fr;gap:16px}.gallery div{min-height:235px;border-radius:30px;box-shadow:var(--shadow);position:relative;overflow:hidden;background:linear-gradient(145deg,rgba(6,36,92,.9),rgba(82,181,31,.62)),radial-gradient(circle at 30% 25%,white,transparent 22%)}.gallery div:nth-child(2){background:linear-gradient(145deg,#0d4caf,#7bd23b)}.gallery div:nth-child(3){background:linear-gradient(145deg,#073783,#03183f)}.gallery div:nth-child(4){background:linear-gradient(145deg,#52b51f,#06245c)}.gallery strong{position:absolute;color:white;font-size:22px;left:24px;bottom:22px}.reviews{background:var(--soft);padding:90px 5%}.reviewGrid{max-width:1240px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.reviewGrid article{background:white;border-radius:28px;padding:30px;box-shadow:var(--shadow)}.reviewGrid div{color:var(--green);font-weight:900}.reviewGrid p{font-size:18px;line-height:1.7;color:#46566f}.mapSection{display:grid;grid-template-columns:.75fr 1.25fr;gap:28px;align-items:center;max-width:1240px;margin:0 auto;padding:90px 5%}.mapSection p{color:var(--muted);line-height:1.7}.mapSection iframe{width:100%;min-height:360px;border:0;border-radius:30px;box-shadow:var(--shadow)}.contact{padding:90px 5%}.contactBox{max-width:1240px;margin:auto;background:linear-gradient(135deg,#f6fbff,#edf8ec);border-radius:38px;padding:44px;display:grid;grid-template-columns:.95fr 1.05fr;gap:36px;box-shadow:var(--shadow)}.contactText p{color:var(--muted);line-height:1.8}.contactLinks{display:grid;gap:14px;margin-top:24px}.contactLinks a{background:white;text-decoration:none;color:var(--text);border-radius:20px;padding:20px;box-shadow:0 12px 35px rgba(7,34,84,.08)}.contactLinks b{display:block;color:var(--blue);margin-bottom:6px}form{background:white;border-radius:30px;padding:30px;display:grid;gap:14px;box-shadow:0 16px 50px rgba(7,34,84,.1)}label{display:grid;gap:8px;font-weight:900;color:var(--blue)}input,textarea{width:100%;border:1px solid #dce7f0;border-radius:16px;padding:15px;font:inherit}textarea{min-height:140px;resize:vertical}button{background:var(--green);color:white;border:0;border-radius:16px;padding:17px;font:inherit;font-weight:900;cursor:pointer}.small{font-size:13px;color:#748299!important;margin:0}footer{background:#03183f;color:white;text-align:center;padding:34px 5%}footer p{color:#d9e5f4}footer a{color:white;text-decoration:none;font-weight:800}.floatPhone,.floatWhats{position:fixed;right:20px;z-index:30;color:white;text-decoration:none;box-shadow:0 18px 40px rgba(0,0,0,.25)}.floatPhone{bottom:86px;background:var(--blue);width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px}.floatWhats{bottom:20px;background:var(--green);border-radius:999px;padding:16px 20px;font-weight:900}.thanks{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#03183f,#0d4caf);padding:20px;color:white}.thanksBox{max-width:720px;background:white;color:var(--blue);border-radius:34px;padding:50px;text-align:center;box-shadow:var(--shadow)}.thanksBox .logo{justify-content:center}.thanksBox h1{font-size:42px}@media(max-width:1080px){.heroInner,.darkInner,.contactBox,.mapSection{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:52px}nav{display:none}.gallery{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.notice{display:none}.header{padding:14px 4%}.logo{font-size:27px}.btnOutline{display:none}.btnSolid{font-size:13px;padding:11px 12px!important}.hero{padding:55px 4%}.hero h1{font-size:39px}.lead{font-size:17px}.miniStats,.steps,.reviewGrid,.gallery,.cards{grid-template-columns:1fr}.section,.reviews,.dark,.mapSection,.contact{padding:62px 4%}.sectionTitle h2,.dark h2,.contact h2,.mapSection h2{font-size:34px}.contactBox{padding:22px;border-radius:26px}.bubble{display:none}}
/* Galerie avec vraies photos */
.gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.gallery .photo-card{
  min-height:285px;
  border-radius:30px;
  overflow:hidden;
  position:relative;
  box-shadow:0 24px 70px rgba(4,25,67,.14);
  background:#f5f9fc;
}
.gallery .photo-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.gallery .photo-card:hover img{
  transform:scale(1.05);
}
.gallery .photo-card strong{
  position:absolute;
  left:18px;
  right:18px;
  bottom:18px;
  color:white;
  font-size:21px;
  font-weight:900;
  background:linear-gradient(90deg,rgba(6,36,92,.94),rgba(82,181,31,.88));
  padding:13px 16px;
  border-radius:18px;
  box-shadow:0 12px 30px rgba(0,0,0,.25);
}
@media(max-width:1080px){
  .gallery{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:720px){
  .gallery{grid-template-columns:1fr;}
  .gallery .photo-card{min-height:280px;}
}


/* CORRECTION GALERIE - vraies photos bien cadrées */
#galerie{
  scroll-margin-top:110px;
}
.gallery-section{
  max-width:1320px;
  margin:auto;
}
.gallery{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:18px !important;
}
.gallery .photo-card{
  display:block !important;
  height:320px !important;
  min-height:320px !important;
  border-radius:30px !important;
  overflow:hidden !important;
  position:relative !important;
  background:#eef3f8 !important;
  box-shadow:0 24px 70px rgba(4,25,67,.14) !important;
  text-decoration:none !important;
}
.gallery .photo-card img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
  background:#f5f7fa !important;
  padding:0 !important;
  transition:transform .35s ease !important;
}
.gallery .photo-card:hover img{
  transform:scale(1.02) !important;
}
.gallery .photo-card strong{
  position:absolute !important;
  left:18px !important;
  right:18px !important;
  bottom:18px !important;
  color:white !important;
  font-size:21px !important;
  font-weight:900 !important;
  background:linear-gradient(90deg,rgba(6,36,92,.95),rgba(82,181,31,.88)) !important;
  padding:13px 16px !important;
  border-radius:18px !important;
  box-shadow:0 12px 30px rgba(0,0,0,.25) !important;
}

/* Hauteurs adaptées pour les photos verticales/horizontales */
.gallery .photo-stairs{
  height:420px !important;
  min-height:420px !important;
}
.gallery .photo-parking,
.gallery .photo-hall,
.gallery .photo-trash{
  height:320px !important;
  min-height:320px !important;
}

@media(max-width:1080px){
  .gallery{
    grid-template-columns:repeat(2,1fr) !important;
  }
  .gallery .photo-card,
  .gallery .photo-stairs{
    height:360px !important;
    min-height:360px !important;
  }
}
@media(max-width:720px){
  .gallery{
    grid-template-columns:1fr !important;
  }
  .gallery .photo-card,
  .gallery .photo-stairs{
    height:330px !important;
    min-height:330px !important;
  }
}


/* FIX galerie taille */
.gallery{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:stretch !important;
}

.gallery .photo-card,
.gallery .photo-stairs,
.gallery .photo-parking,
.gallery .photo-hall,
.gallery .photo-trash{
  height:220px !important;
  min-height:220px !important;
  max-height:220px !important;
}

.gallery .photo-card img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}

.gallery .photo-card strong{
  font-size:16px !important;
  padding:10px 12px !important;
  bottom:10px !important;
  left:10px !important;
  right:10px !important;
}

@media(max-width:1080px){
  .gallery{
    grid-template-columns:repeat(2,1fr) !important;
  }
}

@media(max-width:720px){
  .gallery{
    grid-template-columns:1fr !important;
  }

  .gallery .photo-card{
    height:240px !important;
    min-height:240px !important;
    max-height:240px !important;
  }
}


/* ===== VERSION V2 SANS CACHE - GALERIE COMPACTE ===== */
#galerie{
  scroll-margin-top:120px !important;
}

#galerie .gallery{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:14px !important;
  width:100% !important;
}

#galerie .photo-card{
  display:block !important;
  position:relative !important;
  height:210px !important;
  min-height:210px !important;
  max-height:210px !important;
  border-radius:22px !important;
  overflow:hidden !important;
  background:#eef3f8 !important;
  box-shadow:0 12px 35px rgba(4,25,67,.16) !important;
  text-decoration:none !important;
}

#galerie .photo-card img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
}

#galerie .photo-card strong{
  position:absolute !important;
  left:10px !important;
  right:10px !important;
  bottom:10px !important;
  color:white !important;
  font-size:15px !important;
  line-height:1.1 !important;
  font-weight:900 !important;
  background:linear-gradient(90deg,rgba(6,36,92,.95),rgba(82,181,31,.9)) !important;
  padding:9px 11px !important;
  border-radius:12px !important;
}

@media(max-width:1080px){
  #galerie .gallery{
    grid-template-columns:repeat(2,1fr) !important;
  }
  #galerie .photo-card{
    height:230px !important;
    min-height:230px !important;
    max-height:230px !important;
  }
}

@media(max-width:720px){
  #galerie .gallery{
    grid-template-columns:1fr !important;
  }
  #galerie .photo-card{
    height:230px !important;
    min-height:230px !important;
    max-height:230px !important;
  }
}


/* ===== GALERIE COMPLETE V3 - TOUTES PHOTOS REELLES ===== */
#galerie{
  scroll-margin-top:120px !important;
}
#galerie .gallery{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:16px !important;
  width:100% !important;
}
#galerie .photo-card{
  display:block !important;
  position:relative !important;
  height:230px !important;
  min-height:230px !important;
  max-height:230px !important;
  border-radius:22px !important;
  overflow:hidden !important;
  background:#eef3f8 !important;
  box-shadow:0 12px 35px rgba(4,25,67,.16) !important;
  text-decoration:none !important;
}
#galerie .photo-card img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  transition:transform .35s ease !important;
}
#galerie .photo-card:hover img{
  transform:scale(1.05) !important;
}
#galerie .photo-card strong{
  position:absolute !important;
  left:10px !important;
  right:10px !important;
  bottom:10px !important;
  color:white !important;
  font-size:15px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  background:linear-gradient(90deg,rgba(6,36,92,.95),rgba(82,181,31,.9)) !important;
  padding:9px 11px !important;
  border-radius:12px !important;
}
@media(max-width:1080px){
  #galerie .gallery{
    grid-template-columns:repeat(2,1fr) !important;
  }
  #galerie .photo-card{
    height:240px !important;
    min-height:240px !important;
    max-height:240px !important;
  }
}
@media(max-width:720px){
  #galerie .gallery{
    grid-template-columns:1fr !important;
  }
  #galerie .photo-card{
    height:250px !important;
    min-height:250px !important;
    max-height:250px !important;
  }
}

/* ===== GALERIE V4 SANS DOUBLONS ===== */
#galerie{scroll-margin-top:120px !important;}
#galerie .gallery{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:18px !important;
}
#galerie .photo-card{
  display:block !important;
  position:relative !important;
  height:245px !important;
  min-height:245px !important;
  max-height:245px !important;
  border-radius:22px !important;
  overflow:hidden !important;
  background:#eef3f8 !important;
  box-shadow:0 12px 35px rgba(4,25,67,.16) !important;
  text-decoration:none !important;
}
#galerie .photo-card img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  transition:transform .35s ease !important;
}
#galerie .photo-card:hover img{transform:scale(1.05) !important;}
#galerie .photo-card strong{
  position:absolute !important;
  left:10px !important;
  right:10px !important;
  bottom:10px !important;
  color:white !important;
  font-size:15px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  background:linear-gradient(90deg,rgba(6,36,92,.95),rgba(82,181,31,.9)) !important;
  padding:9px 11px !important;
  border-radius:12px !important;
}
@media(max-width:1080px){
  #galerie .gallery{grid-template-columns:repeat(2,1fr) !important;}
}
@media(max-width:720px){
  #galerie .gallery{grid-template-columns:1fr !important;}
  #galerie .photo-card{height:250px !important;min-height:250px !important;max-height:250px !important;}
}


/* ===== PARTICULIERS SECTION ===== */
.particuliers-section{
  padding-top:40px !important;
}

.part-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
  margin-top:35px;
}

.part-card{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  height:340px;
  box-shadow:0 14px 40px rgba(0,0,0,.18);
}

.part-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}

.part-card:hover img{
  transform:scale(1.05);
}

.part-overlay{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:22px;
  background:linear-gradient(to top, rgba(4,25,67,.92), rgba(4,25,67,.15));
  color:white;
}

.part-overlay h3{
  margin:0 0 6px;
  font-size:24px;
  font-weight:800;
}

.part-overlay p{
  margin:0;
  font-size:15px;
  opacity:.95;
}

@media(max-width:768px){
  .refection-mini-gallery{
    max-width:100% !important;
    gap:6px !important;
  }

  .refection-mini-gallery a{
    width:140px !important;
    height:92px !important;
    min-width:140px !important;
    max-width:140px !important;
    min-height:92px !important;
    max-height:92px !important;
    flex:0 0 140px !important;
  }
}


/* ===== FORCE FINALE TAILLE PHOTOS REFECTION V6 ===== */
#particuliers .refection-mini-gallery{
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  gap:10px !important;
  max-width:980px !important;
  margin:25px auto 0 auto !important;
}

#particuliers .refection-mini-gallery a{
  width:240px !important;
  height:155px !important;
  min-width:240px !important;
  max-width:240px !important;
  min-height:155px !important;
  max-height:155px !important;
  flex:0 0 240px !important;
  display:block !important;
  overflow:hidden !important;
  border-radius:14px !important;
  box-shadow:0 10px 25px rgba(0,0,0,.18) !important;
  background:#eef3f8 !important;
  padding:0 !important;
  margin:0 !important;
}

#particuliers .refection-mini-gallery a img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}

@media(max-width:768px){
  #particuliers .refection-mini-gallery{
    gap:8px !important;
    max-width:100% !important;
  }

  #particuliers .refection-mini-gallery a{
    width:160px !important;
    height:105px !important;
    min-width:160px !important;
    max-width:160px !important;
    min-height:105px !important;
    max-height:105px !important;
    flex:0 0 160px !important;
  }
}


/* ===== AVIS PARTICULIERS ===== */
.reviews-section{
  padding-top:40px !important;
}

.reviews-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
  max-width:1000px;
  margin:30px auto 0 auto;
}

.review-card{
  background:white;
  border-radius:18px;
  padding:24px;
  box-shadow:0 10px 25px rgba(0,0,0,.08);
}

.review-card .stars{
  color:#f5b400;
  font-size:20px;
  margin-bottom:10px;
  letter-spacing:2px;
}

.review-card p{
  color:#444;
  line-height:1.6;
  margin-bottom:16px;
}

.review-card strong{
  color:#0a2c5e;
  font-size:15px;
}

@media(max-width:768px){
  .reviews-grid{
    grid-template-columns:1fr;
  }

  .review-card{
    padding:18px;
  }
}


/* ===== AVIS GOOGLE + WHATSAPP V7 ===== */
.avis-actions{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:24px;
}

.avis-actions a{
  display:inline-block;
  text-decoration:none;
  color:white;
  padding:14px 20px;
  border-radius:999px;
  font-weight:900;
  box-shadow:0 10px 25px rgba(0,0,0,.12);
  transition:transform .25s ease;
}

.avis-actions a:hover{
  transform:translateY(-3px);
}

.avis-google{
  background:#0a2c5e;
}

.avis-whatsapp{
  background:#25D366;
}

.reviews-section{
  padding-top:55px !important;
}

.reviews-grid{
  display:grid !important;
  grid-template-columns:repeat(2,1fr) !important;
  gap:20px !important;
  max-width:1000px !important;
  margin:30px auto 0 auto !important;
}

.review-card{
  background:white !important;
  border-radius:18px !important;
  padding:24px !important;
  box-shadow:0 10px 25px rgba(0,0,0,.08) !important;
}

.review-card .stars{
  color:#f5b400 !important;
  font-size:20px !important;
  margin-bottom:10px !important;
  letter-spacing:2px !important;
}

.review-card p{
  color:#444 !important;
  line-height:1.6 !important;
  margin-bottom:16px !important;
}

.review-card strong{
  color:#0a2c5e !important;
  font-size:15px !important;
}

@media(max-width:768px){
  .reviews-grid{
    grid-template-columns:1fr !important;
  }
  .avis-actions a{
    width:100%;
    max-width:300px;
    text-align:center;
  }
}
