/* SM Paysages Grand Centre — site vitrine test */
:root{
  --green-950:#052d28;
  --green-900:#083d35;
  --green-800:#0c5145;
  --green-700:#176b4c;
  --green-600:#2f7e3d;
  --green-500:#4d9a35;
  --mint:#10bfa6;
  --leaf:#75b843;
  --cream:#f7f5ee;
  --paper:#ffffff;
  --text:#16332d;
  --muted:#5e736d;
  --line:rgba(17,75,55,.15);
  --shadow:0 22px 60px rgba(4,38,31,.16);
  --radius:26px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:var(--cream);
  line-height:1.6;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
.skip-link{
  position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden;
}
.skip-link:focus{
  left:20px;top:20px;width:auto;height:auto;z-index:999;padding:10px 14px;background:#fff;border-radius:12px;
}

.container{width:min(1160px,calc(100% - 40px));margin-inline:auto}
.section{padding:88px 0}
.section-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--green-600);
  font-weight:800;
  text-transform:uppercase;
  font-size:.78rem;
  letter-spacing:.11em;
}
.section-kicker::after{
  content:"";
  width:38px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--leaf),transparent);
}
h1,h2,h3,p{margin-top:0}
h1,h2{
  font-family:"Playfair Display",Georgia,serif;
  letter-spacing:-.04em;
  line-height:1.02;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
h1{font-size:clamp(2.85rem,7vw,5.75rem);color:#fff;margin-bottom:22px}
h2{font-size:clamp(2rem,4vw,3.45rem);color:var(--green-950);margin-bottom:18px}
h3{font-size:1.08rem;line-height:1.25;margin-bottom:10px}
p{color:var(--muted)}

.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(150%) blur(16px);
  border-bottom:1px solid rgba(12,81,69,.08);
}
.navbar{
  width:min(1220px,calc(100% - 36px));
  height:82px;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand img{width:112px;filter:drop-shadow(0 8px 12px rgba(0,0,0,.10))}
.nav-links{
  display:flex;
  align-items:center;
  gap:26px;
  font-weight:700;
  font-size:.95rem;
}
.nav-links a:not(.nav-cta){
  position:relative;
}
.nav-links a:not(.nav-cta)::after{
  content:"";
  position:absolute;left:0;right:0;bottom:-10px;height:2px;
  transform:scaleX(0);
  transform-origin:left;
  background:var(--leaf);
  transition:.22s ease;
}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-cta{
  padding:13px 20px;
  color:#fff;
  border-radius:999px;
  background:linear-gradient(135deg,var(--green-700),var(--green-950));
  box-shadow:0 12px 26px rgba(8,61,53,.24);
}
.menu-toggle{display:none;background:transparent;border:0;padding:8px}
.menu-toggle span{display:block;width:28px;height:2px;background:var(--green-950);margin:6px 0;border-radius:2px}

.hero{
  position:relative;
  min-height:780px;
  padding:120px 0 38px;
  overflow:hidden;
  isolation:isolate;
}
.hero-bg{
  position:absolute;inset:0;
  background:url("assets/hero-jardin.webp") center/cover no-repeat;
  transform:scale(1.02);
  z-index:-3;
}
.hero-overlay{
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 78% 40%, rgba(11,81,66,.05), rgba(3,36,30,.58) 48%, rgba(2,26,23,.9) 100%),
    linear-gradient(90deg, rgba(2,26,23,.92), rgba(4,52,38,.58) 45%, rgba(4,36,30,.12));
  z-index:-2;
}
.hero::after{
  content:"";
  position:absolute;inset:auto -10% -1px -10%;
  height:110px;
  background:linear-gradient(180deg,transparent,var(--cream));
  z-index:-1;
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) 390px;
  align-items:center;
  gap:60px;
}
.eyebrow{
  color:#d7f1bd;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:.84rem;
  margin-bottom:16px;
}
.hero-text{
  color:rgba(255,255,255,.92);
  font-size:1.15rem;
  max-width:640px;
  margin-bottom:30px;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px}
.btn{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  min-height:50px;
  padding:14px 22px;
  border-radius:999px;
  font-weight:800;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{
  color:#fff;
  background:linear-gradient(135deg,var(--green-600),var(--green-900));
  box-shadow:0 16px 34px rgba(4,45,38,.25);
}
.btn-secondary{
  color:#fff;
  border-color:rgba(255,255,255,.6);
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(10px);
}
.hero-card{
  border:1px solid rgba(255,255,255,.26);
  background:rgba(255,255,255,.13);
  box-shadow:var(--shadow);
  border-radius:36px;
  padding:34px;
  backdrop-filter:blur(18px);
  color:#fff;
}
.hero-logo{
  width:170px;
  margin-bottom:20px;
  filter:drop-shadow(0 14px 20px rgba(0,0,0,.25));
}
.hero-card h2{
  color:#fff;
  font-family:Inter,system-ui,sans-serif;
  letter-spacing:-.04em;
  font-size:1.9rem;
  line-height:1.08;
  margin-bottom:10px;
}
.hero-card p{color:rgba(255,255,255,.86)}
.sap-badge{
  display:inline-flex;
  margin-top:14px;
  padding:10px 15px;
  border-radius:999px;
  background:linear-gradient(135deg,#8c1a73,#21356d);
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.03em;
  font-size:.78rem;
  box-shadow:0 10px 24px rgba(0,0,0,.22);
}
.contact-strip{
  margin-top:80px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.strip-item{
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:16px 20px;
  color:#fff;
  font-weight:900;
  line-height:1.28;
  text-align:left;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.18);
  background:linear-gradient(135deg,rgba(5,62,52,.92),rgba(5,45,40,.86));
  box-shadow:0 16px 36px rgba(0,0,0,.20);
  backdrop-filter:blur(14px);
}
.strip-icon{
  flex:0 0 auto;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:999px;
  color:#eaffdf;
  background:rgba(117,184,67,.22);
  border:1px solid rgba(234,255,223,.22);
  font-size:1.05rem;
  line-height:1;
}
.strip-text{
  display:block;
  min-width:0;
  overflow-wrap:anywhere;
}
.strip-item[href^="tel"] .strip-text{
  white-space:nowrap;
}
.strip-item[href^="mailto"] .strip-text{
  font-size:clamp(.82rem,1.15vw,.98rem);
}

.intro-section{padding-top:52px;padding-bottom:52px}
.intro-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:30px;
  align-items:stretch;
}
.intro-card{
  border-radius:var(--radius);
  background:var(--paper);
  padding:38px;
  box-shadow:0 18px 45px rgba(4,38,31,.08);
}
.stats{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
.stats div{
  border-radius:22px;
  padding:24px;
  background:linear-gradient(135deg,#fff,rgba(223,240,215,.72));
  border:1px solid var(--line);
}
.stats strong{display:block;font-size:1.18rem;margin-bottom:4px}
.stats span{color:var(--muted)}

.services{background:#fff}
.section-heading{text-align:center;max-width:820px;margin:0 auto 42px}
.service-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:18px;
}
.service-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:28px 22px;
  text-align:center;
  box-shadow:0 18px 45px rgba(4,38,31,.07);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.service-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 60px rgba(4,38,31,.12);
  border-color:rgba(77,154,53,.28);
}
.icon{
  display:grid;
  place-items:center;
  width:62px;height:62px;
  margin:0 auto 18px;
  border-radius:20px;
  background:#eff7e8;
  font-size:1.75rem;
}
.service-card p{font-size:.92rem;margin:0}

.about{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,#f4f8f1,#fff);
}
.about::before{
  content:"";
  position:absolute;inset:0;
  background:url("assets/fond-vegetal.webp") center/cover no-repeat;
  opacity:.08;
}
.about-grid{
  position:relative;
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:60px;
  align-items:center;
}
.about-visual{
  min-height:360px;
  display:grid;
  place-items:center;
}
.about-visual img{
  width:min(360px,90%);
  opacity:.9;
  filter:drop-shadow(0 18px 26px rgba(4,38,31,.14));
}
.about-content{
  padding:42px;
  border-radius:32px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:var(--shadow);
  backdrop-filter:blur(14px);
}
.check-list{
  margin:24px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:13px;
}
.check-list li{
  position:relative;
  padding-left:32px;
  font-weight:700;
}
.check-list li::before{
  content:"✓";
  position:absolute;left:0;top:-1px;
  width:23px;height:23px;
  display:grid;place-items:center;
  border-radius:50%;
  color:#fff;
  background:var(--green-600);
  font-size:.82rem;
}

.gallery-section{background:#fff}
.gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.gallery-item{
  position:relative;
  overflow:hidden;
  margin:0;
  min-height:260px;
  border-radius:24px;
  box-shadow:0 18px 45px rgba(4,38,31,.12);
  cursor:pointer;
  background:var(--green-950);
}
.gallery-item img{
  width:100%;height:100%;min-height:260px;
  object-fit:cover;
  transition:transform .35s ease, opacity .35s ease;
}
.gallery-item:hover img{transform:scale(1.06);opacity:.86}
.gallery-item figcaption{
  position:absolute;left:16px;right:16px;bottom:16px;
  display:inline-flex;
  width:max-content;
  max-width:calc(100% - 32px);
  padding:9px 14px;
  border-radius:999px;
  background:rgba(5,45,40,.88);
  color:#fff;
  font-weight:800;
  font-size:.9rem;
  backdrop-filter:blur(8px);
}

.contact-section{
  position:relative;
  overflow:hidden;
}
.contact-bg{
  position:absolute;inset:0;
  background:
    linear-gradient(120deg,rgba(247,245,238,.97),rgba(247,245,238,.83)),
    url("assets/fond-vegetal.webp") center/cover no-repeat;
}
.contact-grid{
  position:relative;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:46px;
  align-items:start;
}
.contact-copy p{font-size:1.05rem}
.contact-details{
  display:grid;
  gap:13px;
  margin-top:28px;
}
.contact-details > *{
  padding:16px 18px;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  border:1px solid var(--line);
  font-weight:700;
}
.contact-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  padding:30px;
  border-radius:30px;
  background:#fff;
  box-shadow:var(--shadow);
  border:1px solid rgba(12,81,69,.12);
}
.contact-form label{
  display:grid;
  gap:8px;
  color:var(--green-950);
  font-weight:800;
  font-size:.92rem;
}
.contact-form .full{grid-column:1/-1}
input,textarea{
  width:100%;
  border:1px solid rgba(12,81,69,.16);
  border-radius:16px;
  padding:14px 15px;
  background:#fbfcfa;
  color:var(--text);
  outline:none;
  transition:border-color .18s ease, box-shadow .18s ease;
}
input:focus,textarea:focus{
  border-color:var(--green-600);
  box-shadow:0 0 0 4px rgba(77,154,53,.12);
}
textarea{resize:vertical}
.form-note{
  grid-column:1/-1;
  margin:0;
  font-size:.86rem;
  text-align:center;
}

.footer{
  padding:52px 0 20px;
  color:#dcefe7;
  background:linear-gradient(135deg,var(--green-950),#03221f);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.5fr .65fr 1fr;
  gap:44px;
  padding-bottom:34px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-logo{width:150px;margin-bottom:16px}
.footer p{color:#dcefe7;margin:0;line-height:1.55}
.footer h3{
  color:#8dd36c;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.85rem;
  margin-bottom:14px;
}
.footer a{
  display:block;
  color:#dcefe7;
  margin:7px 0;
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding-top:18px;
  font-size:.9rem;
  color:rgba(220,239,231,.78);
}

.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .55s ease, transform .55s ease;
}
.reveal.is-visible{
  opacity:1;
  transform:none;
}

.lightbox{
  border:0;
  padding:0;
  background:transparent;
  max-width:min(980px,calc(100% - 28px));
}
.lightbox::backdrop{background:rgba(3,25,22,.82)}
.lightbox img{
  border-radius:26px;
  max-height:78vh;
  width:100%;
  object-fit:contain;
  background:#fff;
  box-shadow:0 32px 80px rgba(0,0,0,.42);
}
.lightbox p{
  color:#fff;
  text-align:center;
  font-weight:800;
  margin:14px 0 0;
}
.lightbox-close{
  position:absolute;
  right:-8px;
  top:-48px;
  width:42px;height:42px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:50%;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:2rem;
  line-height:1;
  cursor:pointer;
}

@media (max-width:1050px){
  .service-grid{grid-template-columns:repeat(3,1fr)}
  .hero-grid{grid-template-columns:1fr}
  .hero-card{max-width:470px}
  .contact-strip{grid-template-columns:1fr;gap:12px}
  .strip-item{min-height:68px}
}
@media (max-width:820px){
  .navbar{height:74px}
  .brand img{width:88px}
  .menu-toggle{display:block}
  .nav-links{
    position:absolute;
    left:18px;right:18px;top:78px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:18px;
    border-radius:24px;
    background:#fff;
    box-shadow:var(--shadow);
  }
  .nav-links.is-open{display:flex}
  .nav-links a{padding:13px 12px}
  .nav-cta{text-align:center}
  .hero{padding-top:96px;min-height:auto}
  .hero-card{display:none}
  .intro-grid,.about-grid,.contact-grid,.footer-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .contact-form{grid-template-columns:1fr}
  .section{padding:68px 0}
}
@media (max-width:620px){

  .container{width:min(100% - 28px,1160px)}
  h1{font-size:2.65rem}
  h2{font-size:2.05rem}
  .hero-actions .btn{width:100%}
  .service-grid,.gallery{grid-template-columns:1fr}
  .intro-card,.about-content,.contact-form{padding:24px}
  .footer-bottom{flex-direction:column}
}


/* Corrections retours de ligne V4 */
.gallery-section .section-heading{
  max-width:1100px;
}

.about-content h2,
.gallery-section .section-heading h2,
.contact-copy h2{
  white-space:nowrap;
  word-break:keep-all;
  overflow-wrap:normal;
  hyphens:none;
}

.about-grid{
  grid-template-columns:.5fr 1.5fr;
}

.about-content h2{
  font-size:clamp(2.05rem,3.1vw,3.05rem);
}

.contact-copy h2{
  font-size:clamp(2.15rem,3.15vw,3.08rem);
}

@media (max-width:900px){
  .about-content h2,
  .gallery-section .section-heading h2,
  .contact-copy h2{
    white-space:normal;
  }
}


/* Corrections titres V5 */
.about-content h2.about-title{
  white-space:normal;
  font-size:clamp(2.05rem,3.25vw,3.15rem);
}

.about-content h2.about-title span{
  display:block;
}

.gallery-section .section-heading{
  max-width:1200px;
}

.gallery-section .section-heading h2{
  white-space:nowrap;
  font-size:clamp(2rem,3.1vw,2.85rem);
  line-height:1.04;
}


/* Correctif définitif titres V6 */
.about-content h2.about-title{
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
  hyphens:none !important;
  line-height:1.04 !important;
}

.about-content h2.about-title span{
  display:inline !important;
}

.gallery-section .section-heading{
  max-width:1280px !important;
  width:100% !important;
}

.gallery-section .section-heading h2.gallery-title{
  white-space:nowrap !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
  hyphens:none !important;
  font-size:clamp(2rem,3.25vw,2.95rem) !important;
  line-height:1.04 !important;
  letter-spacing:-.045em !important;
}

@media (max-width:760px){
  .gallery-section .section-heading h2.gallery-title{
    white-space:normal !important;
    font-size:2.05rem !important;
  }
}


/* Hero card V7 : moins de vide, contenu mieux rempli */
.hero-card{
  padding:24px !important;
  min-height:430px;
  display:flex;
}

.hero-card-inner{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  text-align:center;
}

.hero-logo{
  width:210px !important;
  margin:0 !important;
}

.hero-card-title h2{
  margin:0 0 10px !important;
  font-size:2.05rem !important;
  line-height:1.05 !important;
}

.hero-card-title p{
  margin:0 !important;
  font-size:1.02rem;
}

.hero-card-lines{
  width:100%;
  display:grid;
  gap:10px;
}

.hero-card-lines a{
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:10px 12px;
  border-radius:16px;
  color:#fff;
  font-weight:850;
  font-size:.92rem;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  overflow-wrap:anywhere;
}

.hero-card-lines span{
  flex:0 0 auto;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(117,184,67,.24);
}

.hero-card .sap-badge{
  margin-top:0 !important;
  align-self:center;
}

@media (max-width:1050px){
  .hero-card{
    min-height:0;
  }
}


/* Hero card V8 : moins de répétition, carte orientée services */
.hero-card-lines{
  display:none !important;
}

.hero-services{
  width:100%;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.hero-services span{
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:9px 10px;
  border-radius:15px;
  color:#fff;
  font-weight:850;
  font-size:.88rem;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  text-align:center;
}

.hero-card{
  min-height:420px !important;
}


/* Hero premium V9 */
.hero-overlay{
  background:
    radial-gradient(circle at 82% 30%, rgba(152, 196, 123, .14), rgba(5, 53, 42, .16) 26%, rgba(3, 31, 25, .76) 66%, rgba(2, 18, 15, .94) 100%),
    linear-gradient(100deg, rgba(2, 20, 17, .95), rgba(4, 48, 38, .62) 44%, rgba(4, 36, 30, .12));
}

.hero-grid{
  grid-template-columns:minmax(0,1.08fr) 430px !important;
  gap:72px !important;
}

.hero-content{
  max-width:760px;
}

.eyebrow{
  color:#f2f7d8 !important;
  text-shadow:0 3px 18px rgba(0,0,0,.18);
}

.hero-text{
  max-width:700px !important;
  font-size:1.17rem !important;
  line-height:1.6 !important;
}

.btn{
  min-height:56px !important;
  padding:15px 26px !important;
  box-shadow:0 16px 34px rgba(4,45,38,.14);
}

.btn-primary{
  background:linear-gradient(135deg,#5aa23d,#0b5a49 72%,#083d35) !important;
  box-shadow:0 22px 42px rgba(3,38,30,.30) !important;
}

.btn-secondary{
  background:rgba(255,255,255,.10) !important;
  border-color:rgba(255,255,255,.42) !important;
}

.hero-card{
  position:relative;
  min-height:462px !important;
  border:1px solid rgba(255,255,255,.24) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.09)),
    linear-gradient(135deg, rgba(87,121,69,.26), rgba(11,55,48,.20)) !important;
  box-shadow:
    0 26px 60px rgba(0,0,0,.20),
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -20px 40px rgba(255,255,255,.04) !important;
  backdrop-filter:blur(24px) saturate(140%) !important;
  -webkit-backdrop-filter:blur(24px) saturate(140%) !important;
  overflow:hidden;
}

.hero-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 18% 14%, rgba(255,255,255,.20), transparent 30%),
    linear-gradient(140deg, rgba(255,255,255,.06), transparent 36%);
  pointer-events:none;
}

.hero-card-inner{
  position:relative;
  z-index:1;
  gap:20px !important;
}

.hero-logo{
  width:230px !important;
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.22)) !important;
}

.hero-card-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  color:#eef8e8;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:.7rem;
  font-weight:900;
}

.hero-card-title h2{
  font-size:2.16rem !important;
}

.hero-card-title p{
  color:rgba(255,255,255,.90) !important;
  font-size:1rem !important;
}

.hero-services-wrap{
  width:100%;
}

.hero-services-label{
  margin:0 0 12px !important;
  color:rgba(247,255,243,.82) !important;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:900;
}

.hero-services{
  width:100%;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.hero-service-item{
  min-height:88px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 10px;
  border-radius:18px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  text-align:center;
}

.hero-service-icon{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#edfae5;
  background:linear-gradient(135deg, rgba(117,184,67,.34), rgba(16,191,166,.22));
  border:1px solid rgba(255,255,255,.18);
}

.hero-service-icon svg{
  width:22px;
  height:22px;
}

.hero-service-text{
  color:#fff;
  font-size:.9rem;
  font-weight:850;
  line-height:1.2;
}

.sap-badge{
  padding:11px 18px !important;
  font-size:.76rem !important;
  box-shadow:0 14px 26px rgba(0,0,0,.24) !important;
}

@media (max-width:1050px){
  .hero-grid{
    grid-template-columns:1fr !important;
    gap:38px !important;
  }
}


/* V10 — hero plus haut de gamme + suppression des pictos grossiers */
.hero{
  min-height:820px !important;
  padding-top:132px !important;
}

.hero-bg{
  filter:saturate(1.06) contrast(1.04) brightness(.92);
}

.hero-overlay{
  background:
    radial-gradient(circle at 78% 36%, rgba(170,214,126,.13), transparent 26%),
    radial-gradient(circle at 42% 22%, rgba(255,255,255,.06), transparent 22%),
    linear-gradient(102deg, rgba(1,18,16,.96) 0%, rgba(4,48,39,.80) 42%, rgba(5,70,52,.30) 68%, rgba(2,20,18,.48) 100%) !important;
}

.hero-content h1{
  max-width:780px;
  text-shadow:0 14px 38px rgba(0,0,0,.30);
}

.hero-text{
  color:rgba(255,255,255,.94) !important;
  text-shadow:0 8px 22px rgba(0,0,0,.22);
}

.hero-grid{
  grid-template-columns:minmax(0,1fr) 470px !important;
  gap:82px !important;
}

.hero-card{
  min-height:510px !important;
  padding:30px !important;
  border-radius:38px !important;
  background:
    linear-gradient(145deg, rgba(255,255,255,.18), rgba(255,255,255,.075)),
    linear-gradient(160deg, rgba(92,122,72,.32), rgba(6,50,43,.28)) !important;
  border:1px solid rgba(255,255,255,.26) !important;
  box-shadow:
    0 34px 80px rgba(0,0,0,.26),
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 -26px 60px rgba(255,255,255,.045) !important;
  backdrop-filter:blur(30px) saturate(155%) !important;
  -webkit-backdrop-filter:blur(30px) saturate(155%) !important;
}

.hero-card::after{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:37px;
  background:linear-gradient(135deg, rgba(255,255,255,.20), transparent 24%, transparent 70%, rgba(255,255,255,.10));
  pointer-events:none;
}

.hero-card-inner{
  gap:18px !important;
}

.hero-logo{
  width:235px !important;
}

.hero-card-badge{
  background:linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.07)) !important;
  border-color:rgba(255,255,255,.24) !important;
}

.hero-card-title h2{
  font-size:2.2rem !important;
  text-shadow:0 10px 22px rgba(0,0,0,.18);
}

.hero-card-subline{
  margin-top:10px;
  color:rgba(241,252,237,.84);
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.02em;
}

.hero-services-wrap,
.hero-services,
.hero-service-item,
.hero-service-icon,
.hero-service-text{
  display:none !important;
}

.hero-premium-list{
  width:100%;
  display:grid;
  gap:10px;
}

.hero-premium-label{
  margin:0 0 2px !important;
  color:rgba(243,255,238,.80) !important;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:.68rem;
  font-weight:900;
  text-align:center;
}

.premium-line{
  min-height:62px;
  display:grid;
  grid-template-columns:42px 1fr;
  gap:12px;
  align-items:center;
  padding:10px 12px;
  border-radius:18px;
  background:linear-gradient(135deg, rgba(255,255,255,.115), rgba(255,255,255,.055));
  border:1px solid rgba(255,255,255,.15);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 10px 24px rgba(0,0,0,.075);
  text-align:left;
}

.premium-mark{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:15px;
  color:#f6fff0;
  background:
    radial-gradient(circle at 35% 25%, rgba(255,255,255,.24), transparent 34%),
    linear-gradient(135deg, rgba(120,190,76,.38), rgba(16,191,166,.22));
  border:1px solid rgba(255,255,255,.18);
}

.premium-mark svg{
  width:23px;
  height:23px;
}

.premium-line strong{
  display:block;
  color:#fff;
  font-size:.94rem;
  line-height:1.15;
}

.premium-line small{
  display:block;
  color:rgba(242,252,238,.72);
  font-size:.76rem;
  font-weight:650;
  line-height:1.25;
  margin-top:3px;
}

.hero-card .sap-badge{
  background:linear-gradient(135deg,#9b237e,#20356f) !important;
  border:1px solid rgba(255,255,255,.16);
}

.strip-item{
  background:
    linear-gradient(135deg,rgba(7,75,61,.94),rgba(3,47,42,.92)) !important;
  box-shadow:0 18px 40px rgba(0,0,0,.18) !important;
}

@media (max-width:1050px){
  .hero-grid{
    grid-template-columns:1fr !important;
    gap:42px !important;
  }
  .hero-card{
    max-width:520px !important;
  }
}

@media (max-width:820px){
  .hero{
    min-height:auto !important;
    padding-top:96px !important;
  }
}


/* =========================================================
   ÉTAPE 1 — HERO SITE IDENTIQUE À LA RÉFÉRENCE
   V10 conservée, seul le haut de page est repris.
   ========================================================= */

.hero-reference{
  position:relative;
  min-height:735px !important;
  padding:0 0 34px !important;
  overflow:hidden;
  isolation:isolate;
}

.hero-reference .hero-bg{
  position:absolute;
  inset:0;
  background-image:url("assets/hero-jardin-maquette-site.png") !important;
  background-size:cover !important;
  background-position:center center !important;
  transform:none !important;
  z-index:-3;
}

.hero-reference .hero-overlay{
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(90deg,
      rgba(1,18,15,.82) 0%,
      rgba(2,25,20,.72) 20%,
      rgba(3,33,26,.45) 38%,
      rgba(4,43,34,.13) 58%,
      rgba(4,43,34,.03) 100%
    ) !important;
}

.hero-reference::after{
  content:"";
  position:absolute;
  inset:auto -10% -1px -10%;
  height:90px;
  z-index:-1;
  background:linear-gradient(180deg, transparent 0%, rgba(247,245,238,.16) 62%, var(--cream) 100%) !important;
}

.hero-reference-content{
  min-height:575px;
  display:flex;
  align-items:center;
}

.hero-copy-reference{
  width:min(600px,100%);
  padding-top:28px;
  color:#fff;
}

.hero-copy-reference h1{
  margin:0 0 20px !important;
  max-width:580px !important;
  color:#fff !important;
  font-family:"Playfair Display", Georgia, serif !important;
  font-size:clamp(3.15rem,5.25vw,5.35rem) !important;
  line-height:.965 !important;
  letter-spacing:-.045em !important;
  text-shadow:0 12px 30px rgba(0,0,0,.30);
}

.hero-divider-reference{
  position:relative;
  width:126px;
  height:18px;
  margin:0 0 18px;
}

.hero-divider-reference::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:7px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,#88b849 0%,#88b849 38%,rgba(136,184,73,.18) 100%);
}

.hero-divider-reference::after{
  content:"❦";
  position:absolute;
  left:50%;
  top:-3px;
  transform:translateX(-50%);
  color:#88b849;
  font-size:14px;
  line-height:1;
}

.hero-text-reference{
  margin:0 0 30px !important;
  max-width:660px !important;
  color:rgba(255,255,255,.95) !important;
  font-size:1.12rem !important;
  line-height:1.56 !important;
  font-weight:650;
  text-shadow:0 7px 18px rgba(0,0,0,.28);
}

.hero-actions-reference{
  display:flex !important;
  flex-wrap:wrap;
  gap:18px !important;
}

.hero-reference .btn{
  min-height:58px !important;
  padding:15px 30px !important;
  border-radius:999px !important;
  font-weight:850 !important;
}

.hero-reference .btn-primary{
  color:#fff !important;
  background:linear-gradient(135deg,#78b143 0%,#5f9a34 100%) !important;
  border:1px solid rgba(255,255,255,.36) !important;
  box-shadow:0 16px 32px rgba(0,0,0,.18) !important;
}

.hero-reference .btn-secondary{
  color:#fff !important;
  background:rgba(255,255,255,.045) !important;
  border:2px solid rgba(255,255,255,.68) !important;
  box-shadow:0 16px 32px rgba(0,0,0,.10) !important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

/* On retire les éléments de la V10 qui gâchaient le hero */
.hero-reference .hero-card,
.hero-reference .hero-card-minimal,
.hero-reference .hero-float,
.hero-reference .hero-sticker,
.hero-reference .sap-sticker,
.hero-reference .sap-badge,
.hero-reference .eyebrow{
  display:none !important;
}

/* Barre contact façon référence : transparente, large, premium */
.contact-strip-reference{
  position:relative;
  z-index:2;
  margin-top:-10px !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:0 !important;
  align-items:stretch;
  overflow:hidden;
  border-radius:24px !important;
  background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.055)) !important;
  border:1px solid rgba(255,255,255,.20) !important;
  box-shadow:
    0 18px 40px rgba(0,0,0,.15),
    inset 0 1px 0 rgba(255,255,255,.12) !important;
  backdrop-filter:blur(18px) saturate(135%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(135%) !important;
}

.contact-strip-reference .strip-item{
  min-height:70px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:14px !important;
  padding:14px 28px !important;
  color:#fff !important;
  font-weight:800 !important;
  text-align:left !important;
  line-height:1.25 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

.contact-strip-reference .strip-item + .strip-item{
  border-left:1px solid rgba(255,255,255,.16) !important;
}

.contact-strip-reference .strip-icon{
  flex:0 0 auto;
  width:40px !important;
  height:40px !important;
  display:grid;
  place-items:center;
  border-radius:999px;
  color:#fff !important;
  background:rgba(255,255,255,.10) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  font-size:1.05rem !important;
}

.contact-strip-reference .strip-text{
  display:block;
  min-width:0;
  color:#fff !important;
  font-size:1rem !important;
  white-space:nowrap;
  overflow-wrap:normal !important;
}

.contact-strip-reference .strip-item[href^="mailto"] .strip-text{
  font-size:clamp(.84rem,1.05vw,1rem) !important;
}

/* responsive */
@media (max-width:980px){
  .hero-reference{
    min-height:auto !important;
    padding-bottom:28px !important;
  }

  .hero-reference-content{
    min-height:560px;
    align-items:center;
  }

  .hero-copy-reference{
    padding-top:12px;
  }

  .hero-copy-reference h1{
    max-width:560px !important;
    font-size:clamp(2.8rem,8vw,4.3rem) !important;
  }

  .contact-strip-reference{
    grid-template-columns:1fr !important;
    margin-top:0 !important;
  }

  .contact-strip-reference .strip-item + .strip-item{
    border-left:0 !important;
    border-top:1px solid rgba(255,255,255,.16) !important;
  }
}

@media (max-width:620px){
  .hero-reference-content{
    min-height:520px;
  }

  .hero-copy-reference h1{
    font-size:2.65rem !important;
  }

  .hero-text-reference{
    font-size:1rem !important;
  }

  .hero-text-reference br{
    display:none;
  }

  .hero-actions-reference .btn{
    width:100%;
  }

  .contact-strip-reference .strip-item{
    justify-content:center !important;
    text-align:center !important;
  }

  .contact-strip-reference .strip-text{
    white-space:normal;
  }
}


/* =========================================================
   ÉTAPE 1 V2 — HERO SITE corrigé
   - image non zoomée
   - titre bloqué en 3 lignes propres
   - pas de chevauchement boutons / barre contact
   ========================================================= */

.hero-reference-v2{
  min-height:645px !important;
  padding:0 0 28px !important;
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

.hero-reference-v2 .hero-bg{
  background-image:url("assets/hero-jardin-maquette-site.png") !important;
  background-repeat:no-repeat !important;
  background-size:100% auto !important;
  background-position:center top !important;
  transform:none !important;
  background-color:#0a2d24 !important;
}

.hero-reference-v2 .hero-overlay{
  background:
    linear-gradient(90deg,
      rgba(1,18,15,.78) 0%,
      rgba(2,24,19,.68) 20%,
      rgba(3,33,26,.42) 38%,
      rgba(4,43,34,.10) 58%,
      rgba(4,43,34,.03) 100%
    ) !important;
}

.hero-reference-v2::after{
  height:92px !important;
  background:linear-gradient(180deg, transparent 0%, rgba(247,245,238,.08) 58%, var(--cream) 100%) !important;
}

.hero-reference-v2 .container{
  width:min(1440px, calc(100% - 160px)) !important;
}

.hero-reference-v2 .hero-reference-content{
  min-height:515px !important;
  display:flex !important;
  align-items:center !important;
}

.hero-reference-v2 .hero-copy-reference{
  width:min(610px,100%) !important;
  padding-top:2px !important;
}

.hero-title-fixed{
  display:block !important;
  margin:0 0 18px !important;
  color:#fff !important;
  font-family:"Playfair Display", Georgia, serif !important;
  font-size:clamp(3rem,4.2vw,4.45rem) !important;
  line-height:.98 !important;
  letter-spacing:-.045em !important;
  text-shadow:0 10px 26px rgba(0,0,0,.28) !important;
}

.hero-title-fixed span{
  display:block !important;
  white-space:nowrap !important;
}

.hero-reference-v2 .hero-divider-reference{
  width:120px !important;
  height:18px !important;
  margin:0 0 18px !important;
}

.hero-reference-v2 .hero-text-reference{
  max-width:640px !important;
  margin:0 0 28px !important;
  color:rgba(255,255,255,.95) !important;
  font-size:clamp(1rem,1.23vw,1.12rem) !important;
  line-height:1.52 !important;
  font-weight:600 !important;
  text-shadow:0 6px 16px rgba(0,0,0,.26) !important;
}

.hero-reference-v2 .hero-actions-reference{
  display:flex !important;
  gap:18px !important;
  flex-wrap:wrap !important;
}

.hero-reference-v2 .btn{
  min-height:56px !important;
  padding:14px 28px !important;
}

.hero-reference-v2 .btn-primary{
  background:linear-gradient(135deg,#77b243 0%,#5b9633 100%) !important;
  border:1px solid rgba(255,255,255,.34) !important;
  box-shadow:0 14px 30px rgba(0,0,0,.15) !important;
}

.hero-reference-v2 .btn-secondary{
  background:rgba(255,255,255,.045) !important;
  border:2px solid rgba(255,255,255,.68) !important;
  box-shadow:0 14px 30px rgba(0,0,0,.08) !important;
}

.hero-reference-v2 .contact-strip-reference{
  width:min(1440px, calc(100% - 160px)) !important;
  margin-top:0 !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:0 !important;
  border-radius:22px !important;
}

.hero-reference-v2 .contact-strip-reference .strip-item{
  min-height:66px !important;
  padding:12px 26px !important;
  justify-content:flex-start !important;
}

.hero-reference-v2 .contact-strip-reference .strip-icon{
  width:38px !important;
  height:38px !important;
}

.hero-reference-v2 .contact-strip-reference .strip-text{
  font-size:clamp(.86rem,1.05vw,1rem) !important;
  white-space:nowrap !important;
}

@media (max-width:1200px){
  .hero-reference-v2 .container,
  .hero-reference-v2 .contact-strip-reference{
    width:min(100% - 90px, 1440px) !important;
  }

  .hero-title-fixed{
    font-size:clamp(2.75rem,5vw,4rem) !important;
  }
}

@media (max-width:980px){
  .hero-reference-v2{
    min-height:auto !important;
    padding-bottom:28px !important;
  }

  .hero-reference-v2 .container,
  .hero-reference-v2 .contact-strip-reference{
    width:min(100% - 40px, 1440px) !important;
  }

  .hero-reference-v2 .hero-reference-content{
    min-height:500px !important;
    align-items:center !important;
  }

  .hero-title-fixed{
    font-size:clamp(2.45rem,7vw,3.4rem) !important;
  }

  .hero-reference-v2 .contact-strip-reference{
    grid-template-columns:1fr !important;
  }

  .hero-reference-v2 .contact-strip-reference .strip-item + .strip-item{
    border-left:0 !important;
    border-top:1px solid rgba(255,255,255,.16) !important;
  }
}

@media (max-width:620px){
  .hero-reference-v2 .hero-reference-content{
    min-height:460px !important;
  }

  .hero-title-fixed{
    font-size:2.25rem !important;
    line-height:1.03 !important;
  }

  .hero-reference-v2 .hero-text-reference{
    font-size:.98rem !important;
  }

  .hero-reference-v2 .hero-text-reference br{
    display:none;
  }

  .hero-reference-v2 .hero-actions-reference .btn{
    width:100%;
  }

  .hero-reference-v2 .contact-strip-reference .strip-text{
    white-space:normal !important;
  }
}


/* =========================================================
   ÉTAPE 1 V3 — HERO COVER STABLE
   Comportement comme V10 premium :
   - l'image couvre toujours toute la zone
   - aucun vide quand on agrandit/rétrécit la fenêtre
   - point focal gardé sur statue + fleurs
   ========================================================= */

.hero-reference-v2 .hero-bg{
  background-size:cover !important;
  background-position:62% center !important;
  background-repeat:no-repeat !important;
}

/* Hauteur stable du hero sur grand écran */
.hero-reference-v2{
  min-height:720px !important;
  padding-bottom:32px !important;
}

/* Le contenu reste calé à gauche comme la référence */
.hero-reference-v2 .hero-reference-content{
  min-height:535px !important;
  align-items:center !important;
}

/* Évite que le texte remonte trop ou déborde selon zoom navigateur */
.hero-reference-v2 .hero-copy-reference{
  padding-top:0 !important;
}

/* Barre contact toujours dans le flux, sans chevauchement */
.hero-reference-v2 .contact-strip-reference{
  margin-top:0 !important;
}

/* Ajustement pour très grands écrans : on garde le cadrage jardin/statue */
@media (min-width:1500px){
  .hero-reference-v2 .hero-bg{
    background-position:60% center !important;
  }
}

/* Ajustement tablette : cover conservé, mais point focal un peu plus à droite */
@media (max-width:980px){
  .hero-reference-v2 .hero-bg{
    background-size:cover !important;
    background-position:64% center !important;
  }

  .hero-reference-v2 .hero-reference-content{
    min-height:515px !important;
  }
}

/* Mobile : on garde l'image couvrante, sans casser le texte */
@media (max-width:620px){
  .hero-reference-v2 .hero-bg{
    background-size:cover !important;
    background-position:68% center !important;
  }

  .hero-reference-v2{
    min-height:auto !important;
  }

  .hero-reference-v2 .hero-reference-content{
    min-height:500px !important;
  }
}


/* =========================================================
   ÉTAPE 1 V4 — placement barre contact
   Barre ancrée en bas du hero, façon maquette,
   sans dépendre de la hauteur du texte.
   ========================================================= */

.hero-reference-v2{
  position:relative !important;
  padding-bottom:120px !important;
}

.hero-reference-v2 .contact-strip-reference{
  position:absolute !important;
  left:50% !important;
  bottom:54px !important;
  transform:translateX(-50%) !important;
  width:min(1440px, calc(100% - 160px)) !important;
  margin-top:0 !important;
  z-index:5 !important;
}

/* On garde le texte/boutons bien au-dessus de la barre */
.hero-reference-v2 .hero-reference-content{
  min-height:535px !important;
}

/* Ajustement grand écran : barre un peu moins basse pour rester élégante */
@media (min-width:1500px){
  .hero-reference-v2 .contact-strip-reference{
    bottom:58px !important;
  }
}

/* Tablette : barre en flux normal pour éviter tout chevauchement */
@media (max-width:980px){
  .hero-reference-v2{
    padding-bottom:28px !important;
  }

  .hero-reference-v2 .contact-strip-reference{
    position:relative !important;
    left:auto !important;
    bottom:auto !important;
    transform:none !important;
    width:min(100% - 40px, 1440px) !important;
    margin-top:12px !important;
  }
}


/* =========================================================
   ÉTAPE 1 V5 — barre contact plus compacte et centrée
   ========================================================= */

.hero-reference-v2 .contact-strip-reference{
  width:min(1180px, calc(100% - 260px)) !important;
  bottom:60px !important;
  border-radius:20px !important;
}

.hero-reference-v2 .contact-strip-reference .strip-item{
  min-height:56px !important;
  padding:9px 18px !important;
  justify-content:center !important;
  text-align:center !important;
  gap:11px !important;
}

.hero-reference-v2 .contact-strip-reference .strip-icon{
  width:32px !important;
  height:32px !important;
  font-size:.92rem !important;
}

.hero-reference-v2 .contact-strip-reference .strip-text{
  text-align:center !important;
  font-size:clamp(.82rem,.98vw,.94rem) !important;
  line-height:1.2 !important;
  white-space:nowrap !important;
}

.hero-reference-v2 .contact-strip-reference .strip-item[href^="mailto"] .strip-text{
  font-size:clamp(.78rem,.92vw,.9rem) !important;
}

/* Grand écran : évite une barre trop immense */
@media (min-width:1500px){
  .hero-reference-v2 .contact-strip-reference{
    width:1120px !important;
    bottom:62px !important;
  }
}

/* Tablette : on garde compact mais sans forcer trop étroit */
@media (max-width:1200px){
  .hero-reference-v2 .contact-strip-reference{
    width:min(1120px, calc(100% - 90px)) !important;
  }
}

@media (max-width:980px){
  .hero-reference-v2 .contact-strip-reference{
    width:min(100% - 40px, 900px) !important;
  }

  .hero-reference-v2 .contact-strip-reference .strip-item{
    min-height:54px !important;
  }
}

@media (max-width:620px){
  .hero-reference-v2 .contact-strip-reference .strip-item{
    justify-content:center !important;
    text-align:center !important;
  }

  .hero-reference-v2 .contact-strip-reference .strip-text{
    white-space:normal !important;
  }
}


/* =========================================================
   ÉTAPE 1 V6 — barre contact façon "premier coup"
   - barre plus large pour éviter le vide sous les boutons
   - centrage texte conservé
   - hauteur compacte
   ========================================================= */

.hero-reference-v2 .contact-strip-reference{
  width:min(1350px, calc(100% - 96px)) !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  bottom:58px !important;
  margin-top:0 !important;
  border-radius:22px !important;
}

.hero-reference-v2 .contact-strip-reference .strip-item{
  min-height:60px !important;
  padding:10px 22px !important;
  justify-content:center !important;
  text-align:center !important;
  gap:12px !important;
}

.hero-reference-v2 .contact-strip-reference .strip-icon{
  width:34px !important;
  height:34px !important;
  font-size:.95rem !important;
}

.hero-reference-v2 .contact-strip-reference .strip-text{
  text-align:center !important;
  font-size:clamp(.84rem,1vw,.96rem) !important;
  line-height:1.18 !important;
  white-space:nowrap !important;
}

.hero-reference-v2 .contact-strip-reference .strip-item[href^="mailto"] .strip-text{
  font-size:clamp(.78rem,.92vw,.92rem) !important;
}

/* grand écran : garde l'esprit large de la première maquette */
@media (min-width:1500px){
  .hero-reference-v2 .contact-strip-reference{
    width:min(1360px, calc(100% - 140px)) !important;
    bottom:60px !important;
  }
}

/* tablette : pas trop serré */
@media (max-width:1200px){
  .hero-reference-v2 .contact-strip-reference{
    width:min(100% - 70px, 1220px) !important;
  }
}

@media (max-width:980px){
  .hero-reference-v2 .contact-strip-reference{
    position:relative !important;
    left:auto !important;
    bottom:auto !important;
    transform:none !important;
    width:min(100% - 40px, 900px) !important;
    margin-top:12px !important;
  }

  .hero-reference-v2 .contact-strip-reference .strip-item{
    min-height:56px !important;
  }
}

@media (max-width:620px){
  .hero-reference-v2 .contact-strip-reference .strip-text{
    white-space:normal !important;
  }
}


/* =========================================================
   ÉTAPE 1 V7 — compréhension corrigée
   Le problème n'était pas juste la largeur :
   la barre doit être dans la continuité du bloc hero,
   juste sous les boutons, comme sur la première maquette,
   pas "ancrée en bas" avec un grand vide avant.
   ========================================================= */

.hero-reference-v2{
  min-height:700px !important;
  padding-bottom:34px !important;
}

.hero-reference-v2 .hero-reference-content{
  min-height:500px !important;
  align-items:center !important;
}

/* La barre revient dans le flux, juste après le bloc texte/boutons */
.hero-reference-v2 .contact-strip-reference{
  position:relative !important;
  left:auto !important;
  bottom:auto !important;
  transform:none !important;

  width:min(1350px, calc(100% - 96px)) !important;
  margin:22px auto 0 !important;

  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:0 !important;

  border-radius:22px !important;
}

/* Compacte mais pas étriquée */
.hero-reference-v2 .contact-strip-reference .strip-item{
  min-height:58px !important;
  padding:10px 22px !important;
  justify-content:center !important;
  text-align:center !important;
  gap:12px !important;
}

.hero-reference-v2 .contact-strip-reference .strip-icon{
  width:34px !important;
  height:34px !important;
  font-size:.95rem !important;
}

.hero-reference-v2 .contact-strip-reference .strip-text{
  text-align:center !important;
  font-size:clamp(.84rem,1vw,.96rem) !important;
  line-height:1.18 !important;
  white-space:nowrap !important;
}

/* On évite que les anciens overrides absolute reprennent le dessus */
@media (min-width:1500px){
  .hero-reference-v2 .contact-strip-reference{
    position:relative !important;
    left:auto !important;
    bottom:auto !important;
    transform:none !important;
    width:min(1360px, calc(100% - 140px)) !important;
    margin-top:22px !important;
  }
}

@media (max-width:1200px){
  .hero-reference-v2 .contact-strip-reference{
    width:min(100% - 70px, 1220px) !important;
  }
}

@media (max-width:980px){
  .hero-reference-v2{
    padding-bottom:28px !important;
  }

  .hero-reference-v2 .contact-strip-reference{
    width:min(100% - 40px, 900px) !important;
    margin-top:16px !important;
    grid-template-columns:1fr !important;
  }

  .hero-reference-v2 .contact-strip-reference .strip-item + .strip-item{
    border-left:0 !important;
    border-top:1px solid rgba(255,255,255,.16) !important;
  }
}

@media (max-width:620px){
  .hero-reference-v2 .contact-strip-reference .strip-text{
    white-space:normal !important;
  }
}


/* =========================================================
   ÉTAPE 1 V8 — correction espace bas + barre alignée
   - suppression du grand vide sous la barre
   - barre alignée avec la zone des boutons / texte
   - contact toujours centré dans chaque bloc
   ========================================================= */

.hero-reference-v2{
  min-height:0 !important;
  padding-bottom:14px !important;
}

.hero-reference-v2::after{
  height:48px !important;
  background:linear-gradient(180deg, transparent 0%, rgba(247,245,238,.10) 48%, var(--cream) 100%) !important;
}

.hero-reference-v2 .hero-reference-content{
  min-height:500px !important;
  align-items:center !important;
}

/* Barre remise dans le flux, mais alignée sur la zone hero/boutons */
.hero-reference-v2 .contact-strip-reference{
  position:relative !important;
  left:auto !important;
  bottom:auto !important;
  transform:none !important;

  width:min(1500px, calc(100% - 174px)) !important;
  margin:20px auto 0 !important;

  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:0 !important;

  border-radius:22px !important;
}

/* Contenu centré, barre moins vide */
.hero-reference-v2 .contact-strip-reference .strip-item{
  min-height:58px !important;
  padding:10px 20px !important;
  justify-content:center !important;
  text-align:center !important;
  gap:12px !important;
}

.hero-reference-v2 .contact-strip-reference .strip-icon{
  width:34px !important;
  height:34px !important;
  font-size:.95rem !important;
}

.hero-reference-v2 .contact-strip-reference .strip-text{
  text-align:center !important;
  font-size:clamp(.84rem,1vw,.96rem) !important;
  line-height:1.18 !important;
  white-space:nowrap !important;
}

/* Très grands écrans : on évite que la barre parte trop loin */
@media (min-width:1700px){
  .hero-reference-v2 .contact-strip-reference{
    width:1500px !important;
  }
}

/* Écrans intermédiaires : garde l'alignement proche du bouton */
@media (max-width:1200px){
  .hero-reference-v2 .contact-strip-reference{
    width:min(100% - 90px, 1220px) !important;
  }
}

@media (max-width:980px){
  .hero-reference-v2{
    padding-bottom:24px !important;
  }

  .hero-reference-v2 .hero-reference-content{
    min-height:500px !important;
  }

  .hero-reference-v2 .contact-strip-reference{
    width:min(100% - 40px, 900px) !important;
    margin-top:16px !important;
    grid-template-columns:1fr !important;
  }

  .hero-reference-v2 .contact-strip-reference .strip-item + .strip-item{
    border-left:0 !important;
    border-top:1px solid rgba(255,255,255,.16) !important;
  }
}

@media (max-width:620px){
  .hero-reference-v2 .contact-strip-reference .strip-text{
    white-space:normal !important;
  }
}


/* ===== Section intro repensée : moins de vide, plus premium ===== */
.intro-grid-premium{
  display:grid;
  grid-template-columns: 1.08fr .92fr;
  gap:28px;
  align-items:stretch;
}
.intro-card-premium{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:100%;
  padding:42px 40px;
}
.intro-card-premium h2{
  margin:10px 0 16px;
  max-width:760px;
}
.intro-card-premium p{
  max-width:640px;
  margin:0;
  font-size:1.02rem;
  line-height:1.65;
}
.benefits-panel{
  border-radius:30px;
  padding:28px;
  background:linear-gradient(135deg,#fbfdf8 0%, rgba(226,240,220,.92) 100%);
  border:1px solid var(--line);
  box-shadow:0 18px 45px rgba(4,38,31,.08);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.benefits-header{
  margin-bottom:18px;
}
.benefits-header .section-kicker{
  margin-bottom:8px;
}
.benefits-header h3{
  margin:0;
  font-size:1.75rem;
  line-height:1.12;
  color:var(--ink);
}
.benefits-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.benefit-card-mini{
  min-height:132px;
  border-radius:24px;
  padding:22px 20px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(154,184,146,.36);
  box-shadow:0 10px 24px rgba(4,38,31,.05);
  display:flex;
  gap:14px;
  align-items:flex-start;
}
.benefit-icon{
  flex:0 0 auto;
  width:44px;
  height:44px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg, rgba(92,153,52,.18), rgba(92,153,52,.08));
  border:1px solid rgba(92,153,52,.18);
  color:var(--green-2);
  font-size:1.15rem;
  font-weight:800;
}
.benefit-card-mini strong{
  display:block;
  font-size:1.08rem;
  line-height:1.2;
  margin-bottom:6px;
  color:var(--ink);
}
.benefit-card-mini span:last-child{
  display:block;
  color:var(--muted);
  line-height:1.45;
  font-size:.96rem;
}
@media (max-width: 1120px){
  .intro-grid-premium{
    grid-template-columns:1fr;
  }
  .benefits-panel{
    padding:24px;
  }
}
@media (max-width: 720px){
  .intro-card-premium{
    padding:30px 24px;
  }
  .benefits-grid{
    grid-template-columns:1fr;
  }
  .benefit-card-mini{
    min-height:auto;
    padding:18px;
  }
  .benefits-header h3{
    font-size:1.45rem;
  }
}


/* =========================================================
   Ajustement desktop :
   rapprocher / aligner visuellement les boutons
   et la barre contact sur grand écran
   ========================================================= */

@media (min-width: 1200px){
  .hero-reference-v2{
    padding-bottom: 10px !important;
  }

  .hero-reference-v2 .hero-reference-content{
    min-height: 430px !important;
    align-items: flex-start !important;
    padding-top: 28px !important;
  }

  .hero-reference-v2 .hero-copy-reference{
    padding-top: 0 !important;
  }

  .hero-reference-v2 .contact-strip-reference{
    margin-top: 14px !important;
  }
}


/* =========================================================
   Correctif demandé :
   - sur grand écran, la barre contact doit démarrer au même endroit
     que les boutons / le contenu à gauche
   - on ne la rapproche pas trop verticalement
   - on réduit le vide blanc sous la barre
   ========================================================= */

@media (min-width: 1200px){
  /* On annule le dernier rapprochement trop agressif */
  .hero-reference-v2{
    padding-bottom: 4px !important;
  }

  /* garde une respiration normale entre boutons et barre */
  .hero-reference-v2 .contact-strip-reference{
    width: 100% !important;
    margin: 22px 0 0 0 !important;
    left: auto !important;
    transform: none !important;
  }

  /* la barre commence exactement à gauche du contenu / boutons */
  .hero-reference-v2 .contact-strip-reference .strip-item{
    justify-content: center !important;
    text-align: center !important;
  }

  /* on évite le gros fondu blanc sous la barre */
  .hero-reference-v2::after{
    height: 22px !important;
    background: linear-gradient(
      180deg,
      rgba(247,245,238,0) 0%,
      rgba(247,245,238,0.22) 60%,
      var(--cream) 100%
    ) !important;
  }

  /* hauteur du bloc hero plus naturelle, sans éloigner inutilement */
  .hero-reference-v2 .hero-reference-content{
    min-height: 500px !important;
    align-items: center !important;
    padding-top: 0 !important;
  }
}

/* Tablette et mobile : on conserve le comportement actuel */
@media (max-width: 1199px){
  .hero-reference-v2 .contact-strip-reference{
    margin-top: 18px !important;
  }
}


/* =========================================================
   V15 — barre contact alignée sur "Demander un devis"
   ========================================================= */

@media (min-width: 1200px){
  .hero-reference-v2{
    padding-bottom: 8px !important;
  }

  /* La barre ne doit plus faire bord à bord.
     Elle démarre au même point que le bouton de gauche. */
  .hero-reference-v2 .contact-strip-reference{
    width: calc(100% - 180px) !important;
    margin: 22px 0 0 180px !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }

  .hero-reference-v2 .contact-strip-reference .strip-item{
    justify-content: center !important;
    text-align: center !important;
  }

  /* On garde un petit fondu propre sous le hero, sans gros vide */
  .hero-reference-v2::after{
    height: 24px !important;
    background: linear-gradient(
      180deg,
      rgba(247,245,238,0) 0%,
      rgba(247,245,238,0.18) 58%,
      var(--cream) 100%
    ) !important;
  }
}

/* Ajustement écrans très larges : on garde visuellement le même départ */
@media (min-width: 1600px){
  .hero-reference-v2 .contact-strip-reference{
    width: calc(100% - 190px) !important;
    margin-left: 190px !important;
  }
}


/* =========================================================
   V16 — barre contact figée et alignée sur "Demander un devis"
   Objectif :
   - même départ à gauche que le bouton
   - plus de comportement bord à bord
   - comportement stable quand on agrandit / réduit la fenêtre
   ========================================================= */

@media (min-width: 1200px){
  .hero-reference-v2 .contact-strip-reference{
    /* on revient exactement à la largeur logique du container */
    width: min(1160px, calc(100% - 40px)) !important;
    max-width: 1160px !important;
    margin: 22px auto 0 !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }

  /* on garde un espacement propre sous les boutons */
  .hero-reference-v2 .hero-actions-reference{
    margin-bottom: 0 !important;
  }

  /* petit fondu discret seulement */
  .hero-reference-v2::after{
    height: 24px !important;
    background: linear-gradient(
      180deg,
      rgba(247,245,238,0) 0%,
      rgba(247,245,238,0.16) 58%,
      var(--cream) 100%
    ) !important;
  }
}


/* =========================================================
   V17 — suppression barre contact du hero
   ========================================================= */

.hero-reference-v2{
  padding-bottom: 34px !important;
}

.hero-reference-v2 .contact-strip-reference{
  display:none !important;
}

.hero-reference-v2::after{
  height: 42px !important;
  background: linear-gradient(
    180deg,
    rgba(247,245,238,0) 0%,
    rgba(247,245,238,0.18) 58%,
    var(--cream) 100%
  ) !important;
}


/* =========================================================
   V18 — retour au style de base pour la section services
   ========================================================= */

.service-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:18px;
}

.service-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:26px 20px 22px;
  text-align:center;
  box-shadow:0 18px 45px rgba(4,38,31,.07);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.service-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 60px rgba(4,38,31,.12);
  border-color:rgba(77,154,53,.28);
}

.service-card .icon{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  margin:0 auto 18px;
  border-radius:18px;
  color:#5d8d34;
  background:transparent;
}

.service-card .icon svg{
  width:38px;
  height:38px;
}

.service-card h3{
  font-size:1.06rem;
  line-height:1.15;
  margin:0 0 12px;
}

.service-card p{
  font-size:.95rem;
  line-height:1.48;
  margin:0;
  color:var(--muted);
}

@media (max-width: 1250px){
  .service-grid{
    grid-template-columns:repeat(3,1fr);
  }
}

@media (max-width: 760px){
  .service-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

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


/* =========================================================
   V19 — restauration exacte des icônes services d'origine
   ========================================================= */

.service-grid{
  display:grid !important;
  grid-template-columns:repeat(6,1fr) !important;
  gap:18px !important;
}

.service-card{
  background:#fff !important;
  border:1px solid var(--line) !important;
  border-radius:24px !important;
  padding:28px 22px !important;
  text-align:center !important;
  box-shadow:0 18px 45px rgba(4,38,31,.07) !important;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease !important;
}

.service-card:hover{
  transform:translateY(-6px) !important;
  box-shadow:0 24px 60px rgba(4,38,31,.12) !important;
  border-color:rgba(77,154,53,.28) !important;
}

.service-card .icon{
  display:grid !important;
  place-items:center !important;
  width:62px !important;
  height:62px !important;
  margin:0 auto 18px !important;
  border-radius:20px !important;
  background:#eff7e8 !important;
  color:#5d8d34 !important;
  font-size:1.75rem !important;
}

.service-card .icon svg{
  width:28px !important;
  height:28px !important;
  stroke:currentColor !important;
}

.service-card h3{
  margin:0 0 12px !important;
  font-size:1.12rem !important;
  line-height:1.2 !important;
  color:var(--ink) !important;
}

.service-card p{
  margin:0 !important;
  font-size:.92rem !important;
  line-height:1.55 !important;
  color:var(--muted) !important;
}

@media (max-width: 1250px){
  .service-grid{
    grid-template-columns:repeat(3,1fr) !important;
  }
}

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

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


/* =========================================================
   V20 — services restaurés depuis la vraie version de référence
   Icônes : tondeuse / haie / débroussailleuse / plante /
   aménagement / remise en état
   ========================================================= */

.services{
  background:linear-gradient(180deg,#fff,#fbfaf6) !important;
}

.service-grid{
  display:grid !important;
  grid-template-columns:repeat(6,1fr) !important;
  gap:18px !important;
}

.service-card{
  padding:30px 18px !important;
  border-radius:20px !important;
  background:#fff !important;
  border:1px solid var(--line) !important;
  box-shadow:0 18px 45px rgba(6,39,32,.08) !important;
  text-align:center !important;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease !important;
}

.service-card:hover{
  transform:translateY(-6px) !important;
  box-shadow:0 24px 60px rgba(4,38,31,.12) !important;
  border-color:rgba(77,154,53,.28) !important;
}

.service-icon{
  width:62px !important;
  height:62px !important;
  border-radius:16px !important;
  display:grid !important;
  place-items:center !important;
  margin:0 auto 18px !important;
  color:#5b8a33 !important;
  background:linear-gradient(135deg,#f0f8ea,#ebf4ef) !important;
}

.service-icon svg{
  width:32px !important;
  height:32px !important;
  stroke:currentColor !important;
}

.service-card h3{
  font-size:1.05rem !important;
  line-height:1.15 !important;
  margin:0 0 14px !important;
  color:#203a34 !important;
}

.service-card p{
  font-size:.95rem !important;
  line-height:1.58 !important;
  color:var(--muted) !important;
  margin:0 !important;
}

@media (max-width:1200px){
  .service-grid{
    grid-template-columns:repeat(3,1fr) !important;
  }
}

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

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


/* =========================================================
   V21 — pictogrammes services corrigés, façon capture d'origine
   ========================================================= */

.service-grid-original{
  display:grid !important;
  grid-template-columns:repeat(6,1fr) !important;
  gap:18px !important;
}

.service-grid-original .service-card{
  background:#fff !important;
  border:1px solid rgba(10,61,52,.10) !important;
  border-radius:20px !important;
  padding:26px 18px 24px !important;
  text-align:center !important;
  box-shadow:0 18px 45px rgba(4,38,31,.08) !important;
  min-height:255px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
}

.service-grid-original .service-card:hover{
  transform:translateY(-6px) !important;
  box-shadow:0 24px 60px rgba(4,38,31,.12) !important;
  border-color:rgba(77,154,53,.28) !important;
}

.service-grid-original .service-picto{
  width:78px !important;
  height:70px !important;
  margin:0 auto 12px !important;
  display:grid !important;
  place-items:center !important;
  color:#4e8731 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
}

.service-grid-original .service-picto svg{
  width:58px !important;
  height:58px !important;
  stroke:currentColor !important;
}

.service-grid-original .service-card h3{
  margin:0 0 12px !important;
  color:#14372f !important;
  font-size:1.05rem !important;
  line-height:1.15 !important;
  font-weight:800 !important;
}

.service-grid-original .service-card p{
  margin:0 !important;
  color:#50655f !important;
  font-size:.93rem !important;
  line-height:1.48 !important;
}

@media (max-width:1250px){
  .service-grid-original{
    grid-template-columns:repeat(3,1fr) !important;
  }
}

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

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


/* =========================================================
   V22 — section services copiée au plus près de la capture du bas
   ========================================================= */

.service-grid-v22{
  display:grid !important;
  grid-template-columns:repeat(6,1fr) !important;
  gap:18px !important;
}

.service-grid-v22 .service-card{
  background:#fff !important;
  border:1px solid rgba(9, 55, 46, .10) !important;
  border-radius:22px !important;
  padding:24px 16px 22px !important;
  text-align:center !important;
  box-shadow:0 10px 28px rgba(6,39,32,.06) !important;
  min-height:248px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
}

.service-grid-v22 .service-card:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 18px 40px rgba(4,38,31,.10) !important;
  border-color:rgba(77,154,53,.24) !important;
}

.service-grid-v22 .service-picto-v22{
  width:76px !important;
  height:64px !important;
  margin:0 auto 12px !important;
  display:grid !important;
  place-items:center !important;
  color:#5a9437 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
}

.service-grid-v22 .service-picto-v22 svg{
  width:54px !important;
  height:54px !important;
  stroke:currentColor !important;
}

.service-grid-v22 .service-card h3{
  margin:0 0 12px !important;
  color:#173a32 !important;
  font-size:1.02rem !important;
  line-height:1.14 !important;
  font-weight:800 !important;
}

.service-grid-v22 .service-card p{
  margin:0 !important;
  color:#4f635e !important;
  font-size:.93rem !important;
  line-height:1.5 !important;
}

@media (max-width:1250px){
  .service-grid-v22{
    grid-template-columns:repeat(3,1fr) !important;
  }
}

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

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


/* =========================================================
   V23 — uniquement section services
   Pictogrammes extraits de la capture de référence.
   ========================================================= */

.service-grid-v23{
  display:grid !important;
  grid-template-columns:repeat(6,1fr) !important;
  gap:18px !important;
}

.service-grid-v23 .service-card{
  background:#fff !important;
  border:1px solid rgba(9,55,46,.10) !important;
  border-radius:22px !important;
  padding:24px 16px 22px !important;
  text-align:center !important;
  box-shadow:0 10px 28px rgba(6,39,32,.06) !important;
  min-height:250px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
}

.service-grid-v23 .service-picto-img{
  width:86px !important;
  height:72px !important;
  margin:0 auto 10px !important;
  display:grid !important;
  place-items:center !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
}

.service-grid-v23 .service-picto-img img{
  width:76px !important;
  height:76px !important;
  object-fit:contain !important;
  display:block !important;
}

.service-grid-v23 .service-card h3{
  margin:0 0 12px !important;
  color:#173a32 !important;
  font-size:1.02rem !important;
  line-height:1.14 !important;
  font-weight:800 !important;
}

.service-grid-v23 .service-card p{
  margin:0 !important;
  color:#4f635e !important;
  font-size:.93rem !important;
  line-height:1.5 !important;
}

@media (max-width:1250px){
  .service-grid-v23{
    grid-template-columns:repeat(3,1fr) !important;
  }
}

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

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


/* V25 — section services : pictos un peu plus gros, propres et nets */
.service-grid-v23 .service-picto-img{
  width:118px !important;
  height:92px !important;
  margin:0 auto 12px !important;
  display:grid !important;
  place-items:center !important;
}
.service-grid-v23 .service-picto-img img{
  width:108px !important;
  height:82px !important;
  object-fit:contain !important;
  image-rendering:auto !important;
  display:block !important;
}
.service-grid-v23 .service-card{
  padding:24px 15px 22px !important;
}


/* =========================================================
   V26 — réduction douce des espaces verticaux sur tout le site
   Objectif : moins de scroll, sans effet tassé.
   ========================================================= */

/* Sections globales */
.section{
  padding-top:64px !important;
  padding-bottom:64px !important;
}

.section-heading{
  margin-bottom:32px !important;
}

.section-heading h2{
  margin-bottom:8px !important;
}

/* Hero : on garde l’impact, mais on limite l'espace bas */
.hero-reference-v2{
  padding-bottom:24px !important;
}

.hero-reference-v2::after{
  height:30px !important;
}

/* Intro / engagements */
.intro-section{
  padding-top:56px !important;
  padding-bottom:54px !important;
}

.intro-grid-premium{
  gap:22px !important;
}

.intro-card-premium{
  padding:34px 34px !important;
}

.benefits-panel{
  padding:24px !important;
}

.benefits-grid{
  gap:12px !important;
}

.benefit-card-mini{
  min-height:112px !important;
  padding:18px 18px !important;
}

/* Services */
.services{
  padding-top:58px !important;
  padding-bottom:58px !important;
}

.service-grid-v23,
.service-grid-v22,
.service-grid-original,
.service-grid{
  gap:16px !important;
}

.service-grid-v23 .service-card{
  min-height:232px !important;
  padding-top:20px !important;
  padding-bottom:20px !important;
}

.service-grid-v23 .service-picto-img{
  margin-bottom:8px !important;
}

/* À propos : réduction du grand vide avant Réalisations */
.about{
  padding-top:58px !important;
  padding-bottom:40px !important;
}

.about-grid{
  gap:38px !important;
}

.about-content{
  padding-top:34px !important;
  padding-bottom:34px !important;
}

.check-list{
  margin-top:18px !important;
}

/* Réalisations */
.gallery-section{
  padding-top:42px !important;
  padding-bottom:58px !important;
}

.gallery-section .section-heading{
  margin-bottom:28px !important;
}

.gallery{
  gap:16px !important;
}

.gallery-item{
  min-height:260px !important;
}

.gallery-item img{
  min-height:260px !important;
}

/* Contact */
.contact-section{
  padding-top:58px !important;
  padding-bottom:58px !important;
}

.contact-layout{
  gap:24px !important;
}

.contact-form,
.contact-card{
  padding-top:28px !important;
  padding-bottom:28px !important;
}

/* Footer */
.footer{
  padding-top:38px !important;
  padding-bottom:32px !important;
}

.footer-grid{
  gap:28px !important;
}

/* Mobile : on compacte aussi, mais on garde de la respiration */
@media (max-width: 760px){
  .section{
    padding-top:48px !important;
    padding-bottom:48px !important;
  }

  .intro-section,
  .services,
  .about,
  .gallery-section,
  .contact-section{
    padding-top:46px !important;
    padding-bottom:46px !important;
  }

  .section-heading{
    margin-bottom:24px !important;
  }

  .intro-card-premium,
  .benefits-panel,
  .about-content,
  .contact-form,
  .contact-card{
    padding:24px !important;
  }

  .gallery-item,
  .gallery-item img{
    min-height:220px !important;
  }
}


/* =========================================================
   V27 — correction titre intro
   Retour à un rendu plus équilibré, moins énorme.
   ========================================================= */

.intro-card h2,
.intro-card-premium h2{
  font-size:clamp(2.25rem,3.7vw,3.65rem) !important;
  line-height:1.03 !important;
  letter-spacing:-.045em !important;
  max-width:760px !important;
}

@media (max-width:760px){
  .intro-card h2,
  .intro-card-premium h2{
    font-size:clamp(2rem,9vw,2.8rem) !important;
  }
}


/* =========================================================
   V28 — correction séparateur feuille
   Remplace le symbole déformé par une vraie petite feuille propre.
   ========================================================= */

.hero-divider-reference::after,
.hero-divider::after,
.title-divider::after{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%, -50%) rotate(-12deg) !important;
  width:34px !important;
  height:18px !important;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2064%2032%27%3E%0A%20%20%3Cpath%20d%3D%27M14%2020%20C25%202%2044%203%2052%206%20C48%2020%2035%2029%2020%2025%20C17%2024%2015%2022%2014%2020%20Z%27%20fill%3D%27%252388b849%27/%3E%0A%20%20%3Cpath%20d%3D%27M18%2022%20C29%2017%2038%2011%2048%206%27%20fill%3D%27none%27%20stroke%3D%27%25230d3d34%27%20stroke-width%3D%272.2%27%20stroke-linecap%3D%27round%27%20opacity%3D%27.55%27/%3E%0A%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:contain !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
}

/* Le trait reste fin et propre autour de la feuille */
.hero-divider-reference::before,
.hero-divider::before,
.title-divider::before{
  height:3px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg,
    #88b849 0%,
    #88b849 42%,
    transparent 42%,
    transparent 58%,
    #88b849 58%,
    rgba(136,184,73,.28) 100%
  ) !important;
}


/* =========================================================
   V29 — correction feuille du séparateur
   Feuille plus fidèle, verte, propre, sans artefact noir.
   ========================================================= */

.hero-divider-reference,
.hero-divider,
.title-divider{
  position:relative !important;
}

.hero-divider-reference::after,
.hero-divider::after,
.title-divider::after{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%, -50%) rotate(-8deg) !important;
  width:30px !important;
  height:14px !important;
  background:url("assets/divider-leaf.svg") center / contain no-repeat !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
  z-index:2 !important;
}

.hero-divider-reference::before,
.hero-divider::before,
.title-divider::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  height:3px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg,
    rgba(141,186,69,0.95) 0%,
    rgba(141,186,69,0.95) 42%,
    transparent 42%,
    transparent 58%,
    rgba(141,186,69,0.95) 58%,
    rgba(141,186,69,0.28) 100%
  ) !important;
  z-index:1 !important;
}


/* =========================================================
   V30 — feuille plus visible et plus fidèle à l'original
   ========================================================= */
.hero-divider-reference::after,
.hero-divider::after,
.title-divider::after{
  width:38px !important;
  height:18px !important;
  transform:translate(-50%, -50%) rotate(-14deg) !important;
  background:url("assets/divider-leaf.svg") center / contain no-repeat !important;
  filter: drop-shadow(0 0 1px rgba(0,0,0,.08));
}

.hero-divider-reference::before,
.hero-divider::before,
.title-divider::before{
  background:linear-gradient(90deg,
    rgba(150,198,66,0.98) 0%,
    rgba(150,198,66,0.98) 39%,
    transparent 39%,
    transparent 61%,
    rgba(150,198,66,0.98) 61%,
    rgba(150,198,66,0.34) 100%
  ) !important;
}


/* =========================================================
   V31 — séparateur simple, propre, sans feuille
   ========================================================= */

.hero-divider-reference,
.hero-divider,
.title-divider{
  position:relative !important;
  width:120px !important;
  height:12px !important;
  margin:0 0 18px !important;
}

.hero-divider-reference::after,
.hero-divider::after,
.title-divider::after{
  content:none !important;
  display:none !important;
  background:none !important;
}

.hero-divider-reference::before,
.hero-divider::before,
.title-divider::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  height:3px !important;
  border-radius:999px !important;
  background:linear-gradient(
    90deg,
    rgba(150,198,66,.98) 0%,
    rgba(150,198,66,.98) 58%,
    rgba(150,198,66,.28) 100%
  ) !important;
}


/* =========================================================
   V32 — logo "À propos" légèrement agrandi + suppression note de test
   ========================================================= */

.about-visual{
  min-height:400px !important;
}

.about-visual img{
  width:min(430px, 96%) !important;
  max-width:430px !important;
  opacity:.96 !important;
  filter:drop-shadow(0 20px 28px rgba(4,38,31,.16)) !important;
}

@media (max-width: 900px){
  .about-visual{
    min-height:340px !important;
  }

  .about-visual img{
    width:min(360px, 92%) !important;
    max-width:360px !important;
  }
}


/* =========================================================
   V33 — logo À propos vraiment agrandi
   ========================================================= */

.about-grid{
  grid-template-columns:.82fr 1.18fr !important;
  gap:34px !important;
  align-items:center !important;
}

.about-visual{
  min-height:430px !important;
  display:grid !important;
  place-items:center !important;
}

.about-visual img{
  width:min(520px, 100%) !important;
  max-width:520px !important;
  opacity:.98 !important;
  transform:scale(1.08) !important;
  transform-origin:center !important;
  filter:drop-shadow(0 22px 32px rgba(4,38,31,.17)) !important;
}

.about-content{
  padding:38px 42px !important;
}

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

  .about-visual{
    min-height:320px !important;
  }

  .about-visual img{
    width:min(390px, 92%) !important;
    max-width:390px !important;
    transform:none !important;
  }
}


/* =========================================================
   V34 — logo À propos : juste milieu
   ========================================================= */

.about-grid{
  grid-template-columns:.79fr 1.21fr !important;
  gap:32px !important;
  align-items:center !important;
}

.about-visual{
  min-height:410px !important;
  display:grid !important;
  place-items:center !important;
}

.about-visual img{
  width:min(470px, 98%) !important;
  max-width:470px !important;
  opacity:.98 !important;
  transform:scale(1.03) !important;
  transform-origin:center !important;
  filter:drop-shadow(0 20px 28px rgba(4,38,31,.16)) !important;
}

.about-content{
  padding:38px 42px !important;
}

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

  .about-visual{
    min-height:320px !important;
  }

  .about-visual img{
    width:min(390px, 92%) !important;
    max-width:390px !important;
    transform:none !important;
  }
}


/* =========================================================
   V35 — aperçu Carte Privilège Jardin
   ========================================================= */

.loyalty-section{
  padding-top:58px !important;
  padding-bottom:58px !important;
  background:
    radial-gradient(circle at 85% 10%, rgba(141,186,69,.16), transparent 32%),
    linear-gradient(135deg, #f7f8f2 0%, #ffffff 100%);
}

.loyalty-grid{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:34px;
  align-items:center;
}

.loyalty-card{
  position:relative;
  min-height:390px;
  border-radius:34px;
  padding:30px;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 85% 18%, rgba(180,220,96,.28), transparent 28%),
    linear-gradient(145deg, #0a4b3d 0%, #062b26 60%, #041c19 100%);
  box-shadow:0 24px 64px rgba(4,38,31,.20);
  border:1px solid rgba(255,255,255,.18);
}

.loyalty-card::before{
  content:"";
  position:absolute;
  inset:-40% auto auto -20%;
  width:320px;
  height:320px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
}

.loyalty-card::after{
  content:"";
  position:absolute;
  right:-70px;
  bottom:-80px;
  width:250px;
  height:250px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
}

.loyalty-card-top{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}

.loyalty-chip{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:7px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:900;
}

.loyalty-number{
  color:rgba(255,255,255,.62);
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.08em;
}

.loyalty-card-main{
  position:relative;
  z-index:1;
  margin-top:58px;
}

.loyalty-icon{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  margin-bottom:16px;
  border-radius:18px;
  background:linear-gradient(135deg, rgba(141,186,69,.95), rgba(91,145,52,.92));
  box-shadow:0 12px 28px rgba(0,0,0,.18);
  font-size:1.2rem;
}

.loyalty-card h2{
  margin:0 0 14px;
  color:#fff;
  font-family:"Playfair Display", Georgia, serif;
  font-size:clamp(2.2rem,3.5vw,3.4rem);
  line-height:1;
  letter-spacing:-.045em;
}

.loyalty-card p{
  margin:0;
  max-width:330px;
  color:rgba(255,255,255,.78);
  font-weight:650;
  line-height:1.5;
}

.loyalty-stamps{
  position:relative;
  z-index:1;
  display:flex;
  gap:10px;
  margin-top:34px;
}

.loyalty-stamps span{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.76);
  font-weight:900;
}

.loyalty-stamps .is-done{
  background:#94c94c;
  color:#062b26;
  border-color:rgba(255,255,255,.34);
}

.loyalty-content h2{
  margin:8px 0 16px;
  color:var(--ink);
  font-family:"Playfair Display", Georgia, serif;
  font-size:clamp(2.15rem,3.3vw,3.35rem);
  line-height:1.02;
  letter-spacing:-.04em;
}

.loyalty-content p{
  max-width:660px;
  margin:0 0 24px;
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.68;
}

.loyalty-benefits{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin-bottom:24px;
}

.loyalty-benefits article{
  padding:16px 18px;
  border-radius:20px;
  background:#fff;
  border:1px solid rgba(9,55,46,.10);
  box-shadow:0 12px 28px rgba(6,39,32,.05);
}

.loyalty-benefits strong{
  display:block;
  margin-bottom:5px;
  color:#173a32;
  font-size:1.02rem;
}

.loyalty-benefits span{
  color:var(--muted);
  line-height:1.45;
}

.loyalty-btn{
  width:max-content;
}

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

  .loyalty-card{
    min-height:340px;
  }
}

@media (max-width:620px){
  .loyalty-section{
    padding-top:46px !important;
    padding-bottom:46px !important;
  }

  .loyalty-card{
    padding:24px;
    border-radius:28px;
  }

  .loyalty-card-main{
    margin-top:40px;
  }

  .loyalty-stamps span{
    width:36px;
    height:36px;
  }

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


/* =========================================================
   V36 — formulaire repensé
   ========================================================= */

select{
  width:100%;
  border:1px solid rgba(12,81,69,.16);
  border-radius:16px;
  padding:14px 15px;
  background:#fbfcfa;
  color:var(--text);
  outline:none;
  transition:border-color .18s ease, box-shadow .18s ease;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(12,81,69,.6) 50%),
    linear-gradient(135deg, rgba(12,81,69,.6) 50%, transparent 50%);
  background-position:
    calc(100% - 22px) calc(50% - 2px),
    calc(100% - 16px) calc(50% - 2px);
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
}

select:focus{
  border-color:var(--green-600);
  box-shadow:0 0 0 4px rgba(77,154,53,.12);
}

.contact-form{
  align-items:start;
}

.contact-copy p{
  max-width:560px;
}


/* =========================================================
   V37 — formulaire plus intégré et premium
   ========================================================= */
.contact-form{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  padding:34px;
  border-radius:34px;
  background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(250,252,248,.84));
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(12,81,69,.10);
  box-shadow:0 22px 60px rgba(10,58,46,.12), inset 0 1px 0 rgba(255,255,255,.55);
  overflow:hidden;
  align-items:start;
}
.contact-form::before{
  content:"";
  position:absolute;
  inset:auto -40px -60px auto;
  width:180px;
  height:180px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(141,211,108,.18), rgba(141,211,108,0));
  pointer-events:none;
}
.contact-form-head{
  position:relative;
  z-index:1;
  padding:0 2px 2px;
}
.contact-form-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--green-600);
}
.contact-form-kicker::after{
  content:"";
  width:34px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--leaf),transparent);
}
.contact-form-head p{
  margin:10px 0 0;
  color:#55726c;
  font-size:.98rem;
  line-height:1.55;
}
.contact-form label{
  position:relative;
  z-index:1;
  display:grid;
  gap:10px;
  padding:14px;
  border-radius:24px;
  background:rgba(247,250,245,.72);
  border:1px solid rgba(12,81,69,.08);
  color:var(--green-950);
  font-weight:800;
  font-size:.92rem;
}
.contact-form label > span{
  display:block;
  padding-left:2px;
}
.contact-form .full{grid-column:1/-1}
.contact-form input,
.contact-form textarea,
.contact-form select,
input,
textarea,
select{
  width:100%;
  border:1px solid rgba(12,81,69,.12);
  border-radius:18px;
  padding:15px 17px;
  background:rgba(255,255,255,.88);
  color:var(--text);
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.contact-form input::placeholder,
.contact-form textarea::placeholder{
  color:#7d948f;
}
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus,
input:focus,
textarea:focus,
select:focus{
  border-color:rgba(77,154,53,.72);
  background:#fff;
  box-shadow:0 0 0 4px rgba(77,154,53,.10), inset 0 1px 0 rgba(255,255,255,.88);
}
.contact-form textarea{
  min-height:190px;
  resize:vertical;
}
.contact-form select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  padding-right:44px;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(12,81,69,.65) 50%),
    linear-gradient(135deg, rgba(12,81,69,.65) 50%, transparent 50%),
    linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,0));
  background-position:
    calc(100% - 22px) calc(50% - 3px),
    calc(100% - 16px) calc(50% - 3px),
    100% 0;
  background-size:6px 6px, 6px 6px, 2.5rem 100%;
  background-repeat:no-repeat;
}
.contact-form .btn.full{
  margin-top:4px;
}
@media (max-width: 720px){
  .contact-form{
    grid-template-columns:1fr;
    padding:24px;
    gap:14px;
    border-radius:28px;
  }
  .contact-form label{
    padding:12px;
    border-radius:20px;
  }
  .contact-form textarea{min-height:170px}
}


/* =========================================================
   V38 — bloc Services à la personne + services visuels premium
   ========================================================= */

/* On masque l’ancienne section d’introduction pour retrouver le rythme de la maquette :
   Hero -> Services à la personne -> Nos services */
.intro-section{
  display:none !important;
}

.sap-premium-section{
  position:relative;
  z-index:5;
  margin-top:-58px;
  padding:0 0 28px;
  background:linear-gradient(180deg, transparent 0%, var(--cream) 58%, var(--cream) 100%);
}

.sap-premium-card{
  position:relative;
  display:grid;
  grid-template-columns:260px 1fr 170px 210px;
  gap:28px;
  align-items:center;
  min-height:150px;
  padding:22px 28px;
  border-radius:24px;
  background:
    radial-gradient(circle at 96% 12%, rgba(141,186,69,.16), transparent 30%),
    linear-gradient(135deg, rgba(255,255,250,.96), rgba(247,248,241,.92));
  border:1px solid rgba(9,55,46,.12);
  box-shadow:0 22px 58px rgba(4,38,31,.14);
  overflow:hidden;
}

.sap-premium-card::after{
  content:"";
  position:absolute;
  right:-28px;
  top:-20px;
  width:240px;
  height:190px;
  opacity:.18;
  background:url("assets/fond-vegetal.webp") center/cover no-repeat;
  filter:saturate(.7);
  pointer-events:none;
}

.sap-premium-logo{
  display:grid;
  place-items:center;
  min-height:112px;
  padding-right:24px;
  border-right:1px solid rgba(9,55,46,.20);
}

.sap-premium-logo img{
  width:min(220px,100%);
  max-height:118px;
  object-fit:contain;
  filter:drop-shadow(0 10px 16px rgba(4,38,31,.15));
}

.sap-premium-copy{
  position:relative;
  z-index:1;
}

.sap-premium-copy h2{
  margin:8px 0 8px;
  color:#24482d;
  font-size:clamp(2.15rem,3.6vw,3.25rem);
  line-height:.96;
  letter-spacing:-.045em;
}

.sap-premium-copy p{
  margin:0;
  color:#243934;
  font-size:clamp(1.02rem,1.55vw,1.25rem);
  line-height:1.35;
}

.sap-premium-copy small{
  display:block;
  margin-top:12px;
  color:#5b6d67;
  font-size:.83rem;
}

.sap-premium-badge{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
}

.sap-premium-badge img{
  width:min(150px,100%);
  object-fit:contain;
}

.sap-premium-link{
  position:relative;
  z-index:1;
  justify-self:end;
  display:flex;
  align-items:center;
  gap:13px;
  color:#315b31;
  text-decoration:none;
  font-weight:900;
  white-space:nowrap;
}

.sap-premium-link-icon{
  display:grid;
  place-items:center;
  width:66px;
  height:66px;
  border-radius:50%;
  border:1px solid rgba(70,128,65,.36);
  color:#407b3e;
  font-size:1.7rem;
  background:rgba(255,255,255,.42);
}

.sap-premium-arrow{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  color:#fff;
  background:#5b9142;
  font-size:1rem;
}

.services-premium-v38{
  padding-top:20px !important;
  padding-bottom:64px !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(141,186,69,.09), transparent 34%),
    var(--cream);
}

.section-heading-v38{
  max-width:980px !important;
  margin:0 auto 28px !important;
  text-align:center;
}

.section-heading-v38 .section-kicker{
  justify-content:center;
}

.section-heading-v38 h2{
  margin:8px auto 0 !important;
  font-size:clamp(2.25rem,3.35vw,3.35rem) !important;
  line-height:1.02 !important;
  letter-spacing:-.045em !important;
  color:#1e2f2a !important;
}

.service-grid-v38{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:18px !important;
}

.service-grid-v38 .service-card-image{
  position:relative !important;
  min-height:260px !important;
  padding:0 !important;
  border-radius:22px !important;
  overflow:hidden !important;
  background:#0b2f28 !important;
  border:1px solid rgba(255,255,255,.8) !important;
  box-shadow:0 18px 44px rgba(6,39,32,.11) !important;
  transform:none;
}

.service-grid-v38 .service-card-image:hover{
  transform:translateY(-5px) !important;
  box-shadow:0 22px 52px rgba(6,39,32,.17) !important;
}

.service-card-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.03);
  transition:transform .45s ease;
}

.service-card-image:hover .service-card-photo{
  transform:scale(1.08);
}

.service-card-image::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg, rgba(4,31,26,.06) 0%, rgba(4,31,26,.28) 38%, rgba(4,31,26,.86) 100%),
    linear-gradient(90deg, rgba(4,31,26,.45), rgba(4,31,26,0));
}

.service-card-layer{
  position:absolute;
  inset:auto 0 0;
  z-index:2;
  padding:22px;
  color:#fff;
  text-align:left;
}

.service-mini-icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  margin:0 0 12px !important;
  border-radius:50%;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 8px 18px rgba(0,0,0,.12);
}

.service-mini-icon img{
  width:30px;
  height:30px;
  object-fit:contain;
}

.service-grid-v38 .service-card h3{
  margin:0 0 6px !important;
  color:#fff !important;
  font-family:inherit !important;
  font-size:1.2rem !important;
  line-height:1.18 !important;
  letter-spacing:normal !important;
}

.service-grid-v38 .service-card p{
  margin:0 !important;
  color:rgba(255,255,255,.82) !important;
  font-size:.93rem !important;
  line-height:1.45 !important;
}

@media (max-width:1080px){
  .sap-premium-card{
    grid-template-columns:210px 1fr 125px;
  }

  .sap-premium-link{
    grid-column:1/-1;
    justify-self:start;
    padding-top:4px;
  }

  .sap-premium-link-icon{
    width:48px;
    height:48px;
  }

  .service-grid-v38{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width:760px){
  .sap-premium-section{
    margin-top:-36px;
    padding-bottom:24px;
  }

  .sap-premium-card{
    grid-template-columns:1fr;
    gap:18px;
    padding:24px;
    border-radius:24px;
  }

  .sap-premium-logo{
    min-height:auto;
    padding:0 0 16px;
    border-right:0;
    border-bottom:1px solid rgba(9,55,46,.14);
  }

  .sap-premium-logo img{
    width:min(210px,80%);
    max-height:110px;
  }

  .sap-premium-badge{
    justify-content:start;
  }

  .sap-premium-badge img{
    width:125px;
  }

  .sap-premium-link{
    justify-self:start;
  }

  .services-premium-v38{
    padding-top:10px !important;
  }

  .service-grid-v38{
    grid-template-columns:1fr !important;
  }

  .service-grid-v38 .service-card-image{
    min-height:230px !important;
  }
}


/* =========================================================
   V39 — sécurité affichage : contenu visible même si JS bloqué
   ========================================================= */
.reveal{
  opacity:1 !important;
  transform:none !important;
}


/* =========================================================
   V40 — Services à la personne plus subtil / professionnel
   + renommage Avantage Privilège Jardin
   ========================================================= */

/* Ancien bloc SAP V38 neutralisé si présent */
.sap-premium-section,
.sap-premium-card,
.sap-premium-logo,
.sap-premium-copy,
.sap-premium-badge,
.sap-premium-link{
  all:unset;
}

/* Nouvelle intégration SAP : bande de réassurance premium */
.sap-pro-section{
  position:relative;
  z-index:5;
  margin-top:-34px;
  padding:0 0 34px;
  background:linear-gradient(180deg, transparent 0%, var(--cream) 56%, var(--cream) 100%);
}

.sap-pro-card{
  position:relative;
  display:grid;
  grid-template-columns:132px minmax(0,1fr) 132px auto;
  gap:22px;
  align-items:center;
  min-height:104px;
  padding:18px 22px;
  border-radius:24px;
  background:
    linear-gradient(135deg, rgba(255,255,250,.92), rgba(247,249,243,.88));
  border:1px solid rgba(9,55,46,.11);
  box-shadow:0 18px 44px rgba(4,38,31,.11);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  overflow:hidden;
}

.sap-pro-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 88% 12%, rgba(141,186,69,.13), transparent 28%),
    linear-gradient(90deg, rgba(255,255,255,.35), rgba(255,255,255,0));
  pointer-events:none;
}

.sap-pro-media,
.sap-pro-copy,
.sap-pro-badge,
.sap-pro-link{
  position:relative;
  z-index:1;
}

.sap-pro-media{
  display:grid;
  place-items:center;
  min-height:72px;
  padding-right:20px;
  border-right:1px solid rgba(9,55,46,.13);
}

.sap-pro-media img{
  display:block;
  width:112px;
  max-height:72px;
  object-fit:contain;
  filter:drop-shadow(0 7px 10px rgba(4,38,31,.13));
}

.sap-pro-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:4px;
  color:var(--green-600);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.sap-pro-kicker::after{
  content:"";
  width:32px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--leaf),transparent);
}

.sap-pro-copy h2{
  margin:0 0 5px !important;
  color:#173a32 !important;
  font-family:"Playfair Display", Georgia, serif !important;
  font-size:clamp(1.55rem,2.1vw,2.18rem) !important;
  line-height:1.02 !important;
  letter-spacing:-.035em !important;
}

.sap-pro-copy p{
  margin:0 !important;
  color:#344d47 !important;
  font-size:.98rem !important;
  line-height:1.42 !important;
}

.sap-pro-copy small{
  display:block;
  margin-top:4px;
  color:#6b7d77;
  font-size:.76rem;
}

.sap-pro-badge{
  justify-self:center;
  display:grid;
  place-items:center;
  width:92px;
  height:92px;
  border-radius:50%;
  background:#c90072;
  color:#fff;
  box-shadow:0 12px 26px rgba(201,0,114,.17);
  text-align:center;
  transform:rotate(-5deg);
}

.sap-pro-badge strong{
  display:block;
  font-size:2.05rem;
  line-height:.9;
  font-weight:950;
}

.sap-pro-badge span{
  display:block;
  max-width:70px;
  margin-top:5px;
  font-size:.58rem;
  line-height:1.08;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.sap-pro-link{
  justify-self:end;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:12px 18px;
  border-radius:999px;
  color:#fff !important;
  background:linear-gradient(135deg,var(--green-600),var(--green-800));
  text-decoration:none !important;
  font-weight:900;
  white-space:nowrap;
  box-shadow:0 10px 24px rgba(65,126,55,.18);
}

.sap-pro-link:hover{
  transform:translateY(-2px);
}

/* Petite harmonisation de la section Avantage Privilège Jardin */
.loyalty-chip{
  letter-spacing:.11em;
}

.loyalty-card h2{
  font-size:clamp(2rem,3.15vw,3.08rem) !important;
}

@media (max-width:1050px){
  .sap-pro-card{
    grid-template-columns:118px 1fr 100px;
  }

  .sap-pro-link{
    grid-column:2/-1;
    justify-self:start;
    margin-top:-4px;
  }

  .sap-pro-badge{
    width:82px;
    height:82px;
  }

  .sap-pro-badge strong{
    font-size:1.8rem;
  }
}

@media (max-width:760px){
  .sap-pro-section{
    margin-top:-24px;
    padding-bottom:28px;
  }

  .sap-pro-card{
    grid-template-columns:1fr;
    gap:14px;
    padding:20px;
    border-radius:22px;
  }

  .sap-pro-media{
    justify-content:start;
    min-height:auto;
    padding:0 0 12px;
    border-right:0;
    border-bottom:1px solid rgba(9,55,46,.11);
  }

  .sap-pro-media img{
    width:124px;
  }

  .sap-pro-badge{
    justify-self:start;
    width:76px;
    height:76px;
  }

  .sap-pro-badge strong{
    font-size:1.55rem;
  }

  .sap-pro-badge span{
    font-size:.52rem;
  }

  .sap-pro-link{
    grid-column:auto;
    justify-self:stretch;
  }
}


/* =========================================================
   V41 — Refonte Avantage Privilège Jardin + SAP standalone
   ========================================================= */
.section-tag{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
  color:var(--green-600);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.section-tag::after{
  content:"";
  width:34px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--leaf),transparent);
}

/* Loyalty section premium */
.loyalty-card-premium{
  display:grid;
  grid-template-columns:0.92fr 1.2fr;
  gap:0;
  overflow:hidden;
  padding:0 !important;
  border-radius:34px !important;
  background:
    radial-gradient(circle at 20% 15%, rgba(133,189,58,.18), transparent 25%),
    radial-gradient(circle at 85% 35%, rgba(121,180,78,.20), transparent 22%),
    linear-gradient(135deg, #062f2b 0%, #01483d 52%, #012824 100%) !important;
  box-shadow:0 28px 60px rgba(4,38,31,.22) !important;
  border:1px solid rgba(255,255,255,.08);
}

.loyalty-visual{
  position:relative;
  min-height:440px;
  padding:34px 30px 28px;
  color:#fff;
  overflow:hidden;
  background:
    radial-gradient(circle at 14% 10%, rgba(255,255,255,.10), transparent 26%),
    radial-gradient(circle at 80% 82%, rgba(255,255,255,.06), transparent 22%);
}
.loyalty-visual::before,
.loyalty-visual::after{
  content:"";
  position:absolute;
  border:1px solid rgba(255,255,255,.10);
  border-radius:50%;
}
.loyalty-visual::before{
  width:230px;height:230px;left:-90px;top:-60px;
}
.loyalty-visual::after{
  width:300px;height:300px;right:-120px;bottom:-120px;
}

.loyalty-badge-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  position:relative;
  z-index:1;
}
.loyalty-chip{
  display:inline-flex;
  padding:10px 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-weight:800;
  font-size:.9rem;
}
.loyalty-year{
  color:rgba(255,255,255,.72);
  font-weight:800;
  letter-spacing:.08em;
}

.loyalty-visual-main{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  height:calc(100% - 56px);
  padding-top:40px;
}
.loyalty-orb{
  width:72px;
  height:72px;
  margin-bottom:28px;
  border-radius:22px;
  background:linear-gradient(135deg, #81bd3a, #a7d94d);
  box-shadow:0 18px 36px rgba(126,182,63,.25);
  position:relative;
}
.loyalty-orb::before{
  content:"✦";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:white;
  font-size:1.5rem;
}
.loyalty-number-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.loyalty-number-row .step{
  width:52px;
  height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-weight:900;
  font-size:1.25rem;
  color:#dfe8e6;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
}
.loyalty-number-row .step.active{
  background:linear-gradient(135deg, #aee84b, #80bc39);
  color:#0c352d;
  border-color:transparent;
}

.loyalty-content{
  padding:42px 42px 38px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.02));
  color:#fff;
}
.loyalty-content h2{
  margin:0 0 14px !important;
  color:#fff !important;
  font-size:clamp(2.25rem,3.7vw,4rem) !important;
  line-height:.98 !important;
  letter-spacing:-.04em !important;
}
.loyalty-lead{
  margin:0 0 24px !important;
  color:rgba(255,255,255,.82) !important;
  font-size:1.08rem !important;
  line-height:1.5 !important;
  max-width:640px;
}
.loyalty-features-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:16px;
  margin:0 0 26px;
}
.loyalty-feature-item{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:142px;
  padding:18px 18px 16px;
  border-radius:22px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.loyalty-feature-item strong{
  color:#fff;
  font-size:1rem;
  line-height:1.25;
}
.loyalty-feature-item span{
  color:rgba(255,255,255,.74);
  font-size:.95rem;
  line-height:1.42;
}
.loyalty-cta-row{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.loyalty-note{
  color:rgba(255,255,255,.68);
  font-size:.92rem;
  line-height:1.4;
}

/* Services à la personne standalone */
.sap-standalone-section{
  padding:24px 0 18px;
  background:linear-gradient(180deg, var(--cream) 0%, #f8faf5 100%);
}
.sap-standalone-card{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:30px;
  align-items:center;
  padding:34px 36px;
  border-radius:32px;
  background:
    radial-gradient(circle at 88% 16%, rgba(201,0,114,.06), transparent 18%),
    radial-gradient(circle at 20% 85%, rgba(129,189,58,.08), transparent 18%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(247,249,243,.92));
  border:1px solid rgba(9,55,46,.10);
  box-shadow:0 22px 48px rgba(8,42,35,.11);
}
.sap-standalone-left h2{
  margin:0 0 12px !important;
  color:#173a32 !important;
  font-size:clamp(2rem,3vw,3rem) !important;
  line-height:1.02 !important;
  letter-spacing:-.04em !important;
}
.sap-standalone-left p{
  margin:0 0 16px !important;
  color:#38524b !important;
  font-size:1.05rem !important;
  line-height:1.55 !important;
  max-width:650px;
}
.sap-standalone-left small{
  display:block;
  margin-top:10px;
  color:#6d7e79;
}
.sap-standalone-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:10px;
}
.sap-standalone-list li{
  position:relative;
  padding-left:26px;
  color:#173a32;
  font-weight:700;
}
.sap-standalone-list li::before{
  content:"";
  position:absolute;
  left:0; top:10px;
  width:10px; height:10px;
  border-radius:50%;
  background:linear-gradient(135deg, #a8dd47, #78b53d);
  box-shadow:0 0 0 5px rgba(129,189,58,.12);
}
.sap-standalone-right{
  display:grid;
  place-items:center;
}
.sap-logos-wrap{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:24px;
  width:100%;
}
.sap-main-logo{
  width:min(100%, 290px);
  justify-self:center;
  object-fit:contain;
  filter:drop-shadow(0 10px 18px rgba(7,26,58,.10));
}
.sap-tax-badge{
  width:min(100%, 180px);
  justify-self:center;
  object-fit:contain;
}

@media (max-width: 1100px){
  .loyalty-card-premium{
    grid-template-columns:1fr;
  }
  .loyalty-visual{
    min-height:260px;
  }
  .loyalty-content{
    padding:34px 28px 30px;
  }
  .loyalty-features-grid{
    grid-template-columns:1fr;
  }

  .sap-standalone-card{
    grid-template-columns:1fr;
  }
}
@media (max-width: 760px){
  .loyalty-visual{
    padding:26px 20px 22px;
    min-height:220px;
  }
  .loyalty-orb{
    width:62px;height:62px;border-radius:18px;
  }
  .loyalty-number-row .step{
    width:44px;height:44px;font-size:1.05rem;
  }
  .loyalty-content h2{
    font-size:clamp(2rem,7vw,3rem) !important;
  }

  .sap-standalone-card{
    padding:24px 20px;
    border-radius:24px;
    gap:20px;
  }
  .sap-logos-wrap{
    grid-template-columns:1fr;
    gap:12px;
  }
  .sap-main-logo{
    width:min(100%, 250px);
  }
  .sap-tax-badge{
    width:min(100%, 150px);
  }
}


/* =========================================================
   V42 — correction HTML réellement appliquée + finitions
   ========================================================= */

.nav-links{
  gap:clamp(14px, 1.6vw, 26px);
}

.nav-links a[href="#sap"]{
  white-space:nowrap;
}

/* Section Avantage Privilège Jardin : plein écran premium, moins vide */
.loyalty-section{
  padding-top:54px !important;
  padding-bottom:54px !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(141,186,69,.08), transparent 34%),
    linear-gradient(180deg, #fbfcf8 0%, #f5f8ef 100%) !important;
}

.loyalty-card-premium{
  display:grid !important;
  grid-template-columns:.86fr 1.14fr !important;
  gap:0 !important;
  min-height:430px !important;
  overflow:hidden !important;
  padding:0 !important;
  border-radius:34px !important;
  background:
    radial-gradient(circle at 15% 12%, rgba(255,255,255,.14), transparent 24%),
    radial-gradient(circle at 82% 22%, rgba(141,186,69,.18), transparent 24%),
    linear-gradient(135deg, #062f2b 0%, #01483d 48%, #012824 100%) !important;
  box-shadow:0 30px 70px rgba(4,38,31,.22) !important;
  border:1px solid rgba(255,255,255,.10) !important;
}

.loyalty-card-premium::before,
.loyalty-card-premium::after{
  display:none !important;
}

.loyalty-visual{
  position:relative;
  min-height:430px;
  padding:34px 30px 30px;
  color:#fff;
  overflow:hidden;
}

.loyalty-visual::before,
.loyalty-visual::after{
  content:"";
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.10);
  pointer-events:none;
}

.loyalty-visual::before{
  width:280px;
  height:280px;
  left:-110px;
  top:-90px;
  background:rgba(255,255,255,.05);
}

.loyalty-visual::after{
  width:330px;
  height:330px;
  right:-130px;
  bottom:-135px;
}

.loyalty-badge-top{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.loyalty-card-premium .loyalty-chip{
  padding:10px 16px !important;
  border-radius:999px !important;
  color:#fff !important;
  background:rgba(255,255,255,.10) !important;
  border:1px solid rgba(255,255,255,.24) !important;
  font-size:.82rem !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
}

.loyalty-year{
  color:rgba(255,255,255,.70);
  font-weight:900;
  letter-spacing:.08em;
}

.loyalty-visual-main{
  position:relative;
  z-index:1;
  height:calc(100% - 54px);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding-top:58px;
}

.loyalty-orb{
  width:74px;
  height:74px;
  margin-bottom:30px;
  border-radius:24px;
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.48), transparent 30%),
    linear-gradient(135deg, #a9dc48, #6fad35);
  box-shadow:0 18px 42px rgba(124,187,54,.30);
  position:relative;
}

.loyalty-orb::before{
  content:"✦";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:1.45rem;
}

.loyalty-number-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.loyalty-number-row .step{
  width:52px;
  height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:1.18rem;
  font-weight:950;
  color:rgba(255,255,255,.78);
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
}

.loyalty-number-row .step.active{
  color:#0b342d;
  background:linear-gradient(135deg, #aee84b, #82bd39);
  border-color:transparent;
  box-shadow:0 12px 22px rgba(126,189,55,.22);
}

.loyalty-card-premium .loyalty-content{
  padding:44px 44px 38px !important;
  color:#fff !important;
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015)) !important;
}

.loyalty-card-premium .section-tag{
  color:#aee84b !important;
}

.loyalty-card-premium .section-tag::after{
  background:linear-gradient(90deg,#aee84b,transparent) !important;
}

.loyalty-card-premium h2{
  margin:0 0 14px !important;
  color:#fff !important;
  font-size:clamp(2.3rem,3.8vw,4.1rem) !important;
  line-height:.98 !important;
  letter-spacing:-.045em !important;
}

.loyalty-lead{
  margin:0 0 24px !important;
  max-width:650px !important;
  color:rgba(255,255,255,.82) !important;
  font-size:1.08rem !important;
  line-height:1.55 !important;
}

.loyalty-features-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
  margin:0 0 26px !important;
}

.loyalty-feature-item{
  min-height:142px;
  padding:18px 17px;
  border-radius:22px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.11);
}

.loyalty-feature-item strong{
  display:block;
  margin-bottom:8px;
  color:#fff;
  font-size:1rem;
  line-height:1.25;
}

.loyalty-feature-item span{
  color:rgba(255,255,255,.74);
  font-size:.93rem;
  line-height:1.45;
}

.loyalty-cta-row{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}

.loyalty-note{
  color:rgba(255,255,255,.68);
  font-size:.92rem;
}

/* SAP vraie section dédiée */
.sap-standalone-section{
  padding-top:54px !important;
  padding-bottom:54px !important;
  background:linear-gradient(180deg, #f5f8ef 0%, #fbfcf8 100%) !important;
}

.sap-standalone-card{
  display:grid !important;
  grid-template-columns:1.05fr .95fr !important;
  gap:34px !important;
  align-items:center !important;
  padding:38px 40px !important;
  border-radius:34px !important;
  background:
    radial-gradient(circle at 88% 14%, rgba(201,0,114,.07), transparent 20%),
    radial-gradient(circle at 18% 84%, rgba(129,189,58,.10), transparent 22%),
    linear-gradient(135deg, rgba(255,255,255,.97), rgba(247,249,243,.93)) !important;
  border:1px solid rgba(9,55,46,.10) !important;
  box-shadow:0 24px 58px rgba(8,42,35,.12) !important;
}

.sap-standalone-left h2{
  margin:0 0 14px !important;
  color:#173a32 !important;
  font-size:clamp(2.1rem,3.1vw,3.1rem) !important;
  line-height:1.02 !important;
}

.sap-standalone-left p{
  margin:0 0 17px !important;
  color:#38524b !important;
  font-size:1.07rem !important;
  line-height:1.55 !important;
}

.sap-standalone-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:10px;
}

.sap-standalone-list li{
  position:relative;
  padding-left:27px;
  color:#173a32;
  font-weight:800;
}

.sap-standalone-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.5em;
  width:10px;
  height:10px;
  border-radius:50%;
  background:linear-gradient(135deg, #a8dd47, #78b53d);
  box-shadow:0 0 0 5px rgba(129,189,58,.13);
}

.sap-standalone-left small{
  display:block;
  margin-top:13px;
  color:#6d7e79;
}

.sap-logos-wrap{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:26px;
  align-items:center;
}

.sap-main-logo{
  width:min(100%,320px);
  justify-self:center;
  object-fit:contain;
  filter:drop-shadow(0 12px 20px rgba(7,26,58,.12));
}

.sap-tax-badge{
  width:min(100%,180px);
  justify-self:center;
  object-fit:contain;
}

@media (max-width:1100px){
  .loyalty-card-premium,
  .sap-standalone-card{
    grid-template-columns:1fr !important;
  }

  .loyalty-visual{
    min-height:250px;
  }

  .loyalty-features-grid{
    grid-template-columns:1fr !important;
  }

  .sap-logos-wrap{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:760px){
  .nav-links a[href="#sap"]{
    white-space:normal;
  }

  .loyalty-card-premium .loyalty-content{
    padding:30px 22px !important;
  }

  .loyalty-visual{
    min-height:220px;
    padding:26px 22px;
  }

  .loyalty-number-row .step{
    width:44px;
    height:44px;
  }

  .sap-standalone-card{
    padding:26px 22px !important;
    border-radius:26px !important;
  }

  .sap-logos-wrap{
    grid-template-columns:1fr;
    gap:16px;
  }

  .sap-main-logo{
    width:min(100%,260px);
  }

  .sap-tax-badge{
    width:min(100%,150px);
  }
}


/* =========================================================
   V43 — Avantage Privilège Jardin ultra premium, sans effet carte tampon
   ========================================================= */

.loyalty-section{
  padding-top:58px !important;
  padding-bottom:58px !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(194,166,88,.08), transparent 35%),
    linear-gradient(180deg, #fbfcf8 0%, #f4f7ee 100%) !important;
}

.privilege-panel-v43{
  position:relative;
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  min-height:560px;
  overflow:hidden;
  border-radius:36px;
  color:#f8f1dd;
  background:
    radial-gradient(circle at 18% 28%, rgba(196,165,85,.18), transparent 23%),
    radial-gradient(circle at 78% 18%, rgba(125,188,72,.14), transparent 24%),
    linear-gradient(135deg, #021d19 0%, #06372f 46%, #021f1c 100%);
  border:1px solid rgba(207,176,98,.36);
  box-shadow:
    0 34px 90px rgba(4,38,31,.26),
    inset 0 1px 0 rgba(255,255,255,.08);
}

.privilege-panel-v43::before{
  content:"";
  position:absolute;
  inset:18px;
  border-radius:28px;
  border:1px solid rgba(207,176,98,.28);
  pointer-events:none;
}

.privilege-panel-v43::after{
  content:"";
  position:absolute;
  right:0;
  top:0;
  width:58%;
  height:100%;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.055), transparent 36%),
    linear-gradient(90deg, transparent, rgba(255,255,255,.025));
  pointer-events:none;
}

.privilege-left-v43{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:560px;
  padding:44px 42px 42px;
  isolation:isolate;
}

.privilege-left-v43::before{
  content:"";
  position:absolute;
  left:-145px;
  top:100px;
  width:440px;
  height:440px;
  border-radius:50%;
  border:1px solid rgba(207,176,98,.16);
  box-shadow:
    0 0 0 26px rgba(207,176,98,.035),
    0 0 0 56px rgba(207,176,98,.022),
    0 0 0 90px rgba(207,176,98,.014);
  z-index:-1;
}

.privilege-left-v43::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:290px;
  height:210px;
  opacity:.11;
  background:
    radial-gradient(ellipse at 30% 100%, rgba(168,216,88,.5), transparent 42%),
    linear-gradient(35deg, transparent 45%, rgba(207,176,98,.42) 46%, transparent 48%);
  z-index:-1;
}

.privilege-top-v43{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  position:relative;
  z-index:1;
}

.privilege-pill-v43{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:12px 18px;
  border-radius:999px;
  color:#f5df9e;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(207,176,98,.46);
  text-transform:uppercase;
  font-size:.82rem;
  letter-spacing:.16em;
  font-weight:900;
}

.privilege-pill-v43 span{
  color:#d2b566;
  font-size:.95rem;
}

.privilege-ref-v43{
  color:rgba(245,223,158,.72);
  font-size:.9rem;
  letter-spacing:.18em;
  font-weight:800;
}

.privilege-seal-v43{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:210px;
  height:210px;
  margin:auto;
  border-radius:50%;
  color:#f2d98a;
  background:
    radial-gradient(circle at 35% 28%, rgba(255,255,255,.12), transparent 28%),
    linear-gradient(145deg, rgba(207,176,98,.22), rgba(207,176,98,.035));
  border:1px solid rgba(207,176,98,.52);
  box-shadow:
    0 22px 52px rgba(0,0,0,.22),
    inset 0 0 0 12px rgba(207,176,98,.05),
    inset 0 0 0 22px rgba(207,176,98,.045);
}

.privilege-seal-v43::before{
  content:"";
  position:absolute;
  inset:28px;
  border-radius:50%;
  border:2px solid rgba(207,176,98,.70);
  box-shadow:0 0 34px rgba(207,176,98,.16);
}

.privilege-seal-v43 span{
  position:relative;
  z-index:1;
  font-size:4.4rem;
  text-shadow:0 10px 22px rgba(0,0,0,.25);
}

.privilege-condition-v43{
  position:relative;
  z-index:1;
  max-width:330px;
  margin:0;
  color:rgba(248,241,221,.72);
  font-size:.98rem;
  line-height:1.5;
}

.privilege-content-v43{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:54px 58px 50px 48px;
  text-align:center;
}

.privilege-kicker-v43{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin-bottom:18px;
  color:#d8bd72;
  text-transform:uppercase;
  letter-spacing:.26em;
  font-size:.82rem;
  font-weight:900;
}

.privilege-kicker-v43::before,
.privilege-kicker-v43::after{
  content:"";
  width:150px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(216,189,114,.65), transparent);
}

.privilege-kicker-v43 span:first-child{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  border:1px solid rgba(216,189,114,.50);
  letter-spacing:0;
  font-size:.9rem;
}

.privilege-content-v43 h2{
  margin:0 auto 18px !important;
  color:#f8f1dd !important;
  font-size:clamp(3rem,5.6vw,6rem) !important;
  line-height:.86 !important;
  letter-spacing:-.055em !important;
  text-shadow:0 18px 48px rgba(0,0,0,.22);
}

.privilege-lead-v43{
  max-width:690px;
  margin:0 auto 32px !important;
  color:rgba(248,241,221,.82) !important;
  font-size:clamp(1.05rem,1.5vw,1.32rem) !important;
  line-height:1.55 !important;
}

.privilege-benefits-v43{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-bottom:32px;
  text-align:left;
}

.privilege-benefits-v43 article{
  position:relative;
  min-height:190px;
  padding:24px 22px 22px;
  border-radius:24px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.025));
  border:1px solid rgba(207,176,98,.28);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 16px 40px rgba(0,0,0,.08);
}

.benefit-icon-v43{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  margin-bottom:18px;
  border-radius:50%;
  color:#f2d98a;
  border:1px solid rgba(207,176,98,.46);
  background:rgba(207,176,98,.06);
  font-size:1.2rem;
}

.privilege-benefits-v43 strong{
  display:block;
  margin-bottom:12px;
  color:#f2d98a;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:.92rem;
  line-height:1.35;
}

.privilege-benefits-v43 p{
  margin:0 !important;
  color:rgba(248,241,221,.72) !important;
  font-size:.96rem !important;
  line-height:1.55 !important;
}

.privilege-footer-v43{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  flex-wrap:wrap;
}

.privilege-cta-v43{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:15px 30px;
  border-radius:999px;
  color:#092b25 !important;
  background:
    linear-gradient(135deg, #f7e6a4, #c6a34f 48%, #f7e6a4);
  border:1px solid rgba(255,236,168,.72);
  box-shadow:
    0 16px 36px rgba(207,176,98,.20),
    inset 0 1px 0 rgba(255,255,255,.55);
  text-decoration:none !important;
  font-size:1.04rem;
  font-weight:950;
}

.privilege-cta-v43::before{
  content:"☘";
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  margin-right:12px;
  border-radius:50%;
  color:#082b25;
  background:rgba(255,255,255,.34);
}

.privilege-footer-v43 span{
  max-width:250px;
  color:rgba(248,241,221,.64);
  font-size:.94rem;
  line-height:1.4;
  text-align:left;
}

@media (max-width:1100px){
  .privilege-panel-v43{
    grid-template-columns:1fr;
  }

  .privilege-left-v43{
    min-height:300px;
  }

  .privilege-seal-v43{
    width:160px;
    height:160px;
  }

  .privilege-seal-v43 span{
    font-size:3.3rem;
  }

  .privilege-content-v43{
    padding:38px 28px 34px;
  }

  .privilege-benefits-v43{
    grid-template-columns:1fr;
  }

  .privilege-benefits-v43 article{
    min-height:auto;
  }
}

@media (max-width:760px){
  .privilege-panel-v43{
    border-radius:28px;
  }

  .privilege-left-v43{
    padding:26px 22px;
    min-height:260px;
  }

  .privilege-top-v43{
    align-items:flex-start;
  }

  .privilege-ref-v43{
    font-size:.78rem;
  }

  .privilege-seal-v43{
    width:130px;
    height:130px;
  }

  .privilege-seal-v43 span{
    font-size:2.6rem;
  }

  .privilege-content-v43 h2{
    font-size:clamp(2.6rem,13vw,4.4rem) !important;
  }

  .privilege-kicker-v43{
    gap:10px;
    letter-spacing:.16em;
    font-size:.72rem;
  }

  .privilege-kicker-v43::before,
  .privilege-kicker-v43::after{
    width:54px;
  }

  .privilege-footer-v43{
    justify-content:flex-start;
  }

  .privilege-cta-v43{
    width:100%;
  }

  .privilege-footer-v43 span{
    max-width:none;
    text-align:center;
  }
}


/* =========================================================
   V44 — Avantage Privilège Jardin compact et mieux intégré
   ========================================================= */

/* On neutralise l'ancien gros bloc V43 si le CSS reste présent */
.privilege-panel-v43,
.privilege-left-v43,
.privilege-content-v43{
  all:unset;
}

/* Nouveau bandeau compact */
.privilege-compact-section{
  padding-top:34px !important;
  padding-bottom:34px !important;
  background:
    linear-gradient(180deg, #fbfcf8 0%, #f6f8f1 100%) !important;
}

.privilege-compact-card{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr) auto;
  align-items:center;
  gap:24px;
  padding:24px 28px;
  border-radius:28px;
  color:#f8f1dd;
  background:
    radial-gradient(circle at 4% 0%, rgba(212,184,105,.18), transparent 24%),
    radial-gradient(circle at 88% 18%, rgba(129,189,58,.12), transparent 22%),
    linear-gradient(135deg, #052d28 0%, #063f35 48%, #05251f 100%);
  border:1px solid rgba(207,176,98,.30);
  box-shadow:0 20px 48px rgba(4,38,31,.16);
  overflow:hidden;
  position:relative;
}

.privilege-compact-card::before{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:22px;
  border:1px solid rgba(207,176,98,.14);
  pointer-events:none;
}

.privilege-compact-card::after{
  content:"☘";
  position:absolute;
  right:22px;
  top:16px;
  color:rgba(207,176,98,.16);
  font-size:4.4rem;
  line-height:1;
  pointer-events:none;
}

.privilege-compact-main,
.privilege-compact-points,
.privilege-compact-cta{
  position:relative;
  z-index:1;
}

.privilege-compact-kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-bottom:8px;
  color:#d8bd72;
  font-size:.76rem;
  font-weight:950;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.privilege-compact-kicker::before{
  content:"☘";
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:50%;
  color:#092b25;
  background:linear-gradient(135deg,#f7e6a4,#c8a34e);
  letter-spacing:0;
  font-size:.86rem;
}

.privilege-compact-main h2{
  margin:0 0 7px !important;
  color:#fff8e8 !important;
  font-size:clamp(1.85rem,2.85vw,3rem) !important;
  line-height:.98 !important;
  letter-spacing:-.04em !important;
}

.privilege-compact-main p{
  margin:0 !important;
  max-width:620px;
  color:rgba(248,241,221,.78) !important;
  font-size:1rem !important;
  line-height:1.45 !important;
}

.privilege-compact-points{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.privilege-compact-points span{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:9px 13px;
  border-radius:999px;
  color:#f8f1dd;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(207,176,98,.22);
  font-weight:800;
  font-size:.88rem;
  white-space:nowrap;
}

.privilege-compact-points span::before{
  content:"";
  width:7px;
  height:7px;
  margin-right:8px;
  border-radius:50%;
  background:#d8bd72;
  box-shadow:0 0 0 4px rgba(216,189,114,.10);
}

.privilege-compact-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 20px;
  border-radius:999px;
  color:#092b25 !important;
  background:linear-gradient(135deg,#f7e6a4,#c8a34e 55%,#f8e9b2);
  border:1px solid rgba(255,236,168,.64);
  box-shadow:0 12px 28px rgba(207,176,98,.18);
  text-decoration:none !important;
  font-weight:950;
  white-space:nowrap;
}

.privilege-compact-cta:hover{
  transform:translateY(-2px);
}

@media (max-width:1100px){
  .privilege-compact-card{
    grid-template-columns:1fr;
    gap:18px;
  }

  .privilege-compact-points{
    max-width:100%;
  }

  .privilege-compact-cta{
    width:max-content;
  }
}

@media (max-width:640px){
  .privilege-compact-section{
    padding-top:26px !important;
    padding-bottom:26px !important;
  }

  .privilege-compact-card{
    padding:22px;
    border-radius:24px;
  }

  .privilege-compact-points{
    gap:8px;
  }

  .privilege-compact-points span{
    width:100%;
    justify-content:flex-start;
  }

  .privilege-compact-cta{
    width:100%;
  }
}


/* =========================================================
   V45 — Avantage Privilège + Avantage fiscal sur une même ligne
   ========================================================= */

/* Neutralisation des anciennes sections séparées si du CSS reste chargé */
.privilege-compact-section,
.sap-standalone-section{
  display:none !important;
}

.benefits-duo-section{
  padding-top:34px !important;
  padding-bottom:38px !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(129,189,58,.07), transparent 32%),
    linear-gradient(180deg, #fbfcf8 0%, #f6f8f1 100%) !important;
}

.benefits-duo-card{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1px 1fr;
  gap:26px;
  align-items:center;
  padding:24px 28px;
  border-radius:30px;
  background:
    radial-gradient(circle at 2% 0%, rgba(216,189,114,.13), transparent 23%),
    radial-gradient(circle at 92% 8%, rgba(201,0,114,.06), transparent 22%),
    linear-gradient(135deg, rgba(255,255,255,.97), rgba(247,249,243,.92));
  border:1px solid rgba(9,55,46,.10);
  box-shadow:0 22px 48px rgba(8,42,35,.11);
  overflow:hidden;
}

.benefits-duo-card::after{
  content:"";
  position:absolute;
  right:-60px;
  top:-65px;
  width:190px;
  height:190px;
  border-radius:50%;
  background:rgba(129,189,58,.08);
  pointer-events:none;
}

.benefits-duo-block{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:18px;
  align-items:center;
  min-width:0;
}

.benefits-duo-separator{
  position:relative;
  z-index:1;
  width:1px;
  min-height:104px;
  background:linear-gradient(180deg, transparent, rgba(9,55,46,.18), transparent);
}

.benefits-duo-icon{
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  border-radius:20px;
  color:#0a352d;
  background:linear-gradient(135deg,#f7e6a4,#c8a34e 58%,#f8e9b2);
  border:1px solid rgba(207,176,98,.45);
  box-shadow:0 12px 26px rgba(207,176,98,.16);
  font-size:1.55rem;
}

.sap-duo-logo{
  display:grid;
  place-items:center;
  width:138px;
  min-width:138px;
}

.sap-duo-logo img{
  display:block;
  width:138px;
  max-height:82px;
  object-fit:contain;
  filter:drop-shadow(0 10px 16px rgba(7,26,58,.12));
}

.benefits-duo-copy{
  min-width:0;
}

.benefits-duo-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:5px;
  color:var(--green-600);
  font-size:.72rem;
  font-weight:950;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.benefits-duo-kicker::after{
  content:"";
  width:32px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--leaf),transparent);
}

.benefits-duo-copy h2{
  margin:0 0 7px !important;
  color:#173a32 !important;
  font-size:clamp(1.52rem,2.15vw,2.18rem) !important;
  line-height:1.02 !important;
  letter-spacing:-.035em !important;
}

.benefits-duo-copy p{
  margin:0 !important;
  color:#38524b !important;
  font-size:.98rem !important;
  line-height:1.45 !important;
}

.benefits-duo-copy small{
  display:block;
  margin-top:6px;
  color:#6d7e79;
  font-size:.78rem;
}

.benefits-duo-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.benefits-duo-tags span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:7px 10px;
  border-radius:999px;
  color:#24463d;
  background:rgba(129,189,58,.10);
  border:1px solid rgba(129,189,58,.20);
  font-weight:800;
  font-size:.78rem;
  white-space:nowrap;
}

.benefits-duo-tags span::before{
  content:"";
  width:6px;
  height:6px;
  margin-right:7px;
  border-radius:50%;
  background:#78b53d;
}

@media (max-width:1050px){
  .benefits-duo-card{
    grid-template-columns:1fr;
    gap:20px;
  }

  .benefits-duo-separator{
    width:100%;
    min-height:1px;
    height:1px;
    background:linear-gradient(90deg, transparent, rgba(9,55,46,.16), transparent);
  }
}

@media (max-width:640px){
  .benefits-duo-section{
    padding-top:26px !important;
    padding-bottom:28px !important;
  }

  .benefits-duo-card{
    padding:22px;
    border-radius:24px;
  }

  .benefits-duo-block{
    grid-template-columns:1fr;
    gap:12px;
  }

  .benefits-duo-icon{
    width:54px;
    height:54px;
    border-radius:17px;
  }

  .sap-duo-logo{
    justify-content:start;
    width:150px;
    min-width:0;
  }

  .sap-duo-logo img{
    width:150px;
  }

  .benefits-duo-tags span{
    width:100%;
  }
}


/* =========================================================
   V46 — logo Services à la personne légèrement plus présent
   Sans modifier la grille ni déplacer les textes.
   ========================================================= */

.sap-duo-logo{
  overflow:visible !important;
}

.sap-duo-logo img{
  transform:scale(1.18) !important;
  transform-origin:center center !important;
}


/* =========================================================
   V47 — Services : titre stable + suppression petits pictos
   ========================================================= */

.services-premium-v38 .section-heading,
.section-heading-v38{
  max-width:none !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.services-premium-v38 .section-heading h2,
.section-heading-v38 h2{
  max-width:none !important;
  width:100% !important;
  white-space:nowrap !important;
  font-size:clamp(2.25rem, 3.15vw, 3.35rem) !important;
  line-height:1.02 !important;
}

.service-mini-icon{
  display:none !important;
}

.service-card-layer{
  padding:24px 26px 24px !important;
}

.service-grid-v38 .service-card h3{
  margin-bottom:8px !important;
}

@media (max-width: 900px){
  .services-premium-v38 .section-heading h2,
  .section-heading-v38 h2{
    white-space:normal !important;
  }
}


/* =========================================================
   V49 — Services : suppression du voile sombre global
   Dégradé uniquement derrière le texte
   ========================================================= */

.service-card-photo{
  filter:brightness(1.08) contrast(1.04) saturate(1.08) !important;
}

.service-card-image::before{
  display:none !important;
  content:none !important;
}

.service-card-layer{
  inset:auto 0 0 0 !important;
  padding:76px 26px 24px !important;
  background:linear-gradient(
    180deg,
    rgba(3,31,26,0) 0%,
    rgba(3,31,26,.22) 32%,
    rgba(3,31,26,.68) 70%,
    rgba(3,31,26,.90) 100%
  ) !important;
}

.service-grid-v38 .service-card h3,
.service-grid-v38 .service-card p{
  text-shadow:0 2px 10px rgba(0,0,0,.35) !important;
}

.service-grid-v38 .service-card-image:hover .service-card-photo{
  filter:brightness(1.12) contrast(1.05) saturate(1.10) !important;
}


/* =========================================================
   V50 — déplacement Avantage fiscal après les réalisations
   ========================================================= */

.gallery-section{
  padding-bottom:56px !important;
}

.benefits-duo-section{
  padding-top:18px !important;
  padding-bottom:58px !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(129,189,58,.07), transparent 32%),
    linear-gradient(180deg, #fbfcf8 0%, #f6f8f1 100%) !important;
}

.contact-section{
  padding-top:70px !important;
}


/* =========================================================
   V52 — vérification / correction des ancrages de navigation
   ========================================================= */

#services,
#apropos,
#realisations,
#sap,
#contact{
  scroll-margin-top:96px;
}

@media (max-width:760px){
  #services,
  #apropos,
  #realisations,
  #sap,
  #contact{
    scroll-margin-top:84px;
  }
}


/* =========================================================
   V53 — coordonnées protégées + zone Orléans / Bourges
   ========================================================= */

.contact-details-protected button.contact-reveal{
  width:100%;
  min-height:46px;
  padding:12px 15px;
  border:0;
  border-radius:12px;
  background:#fff;
  color:var(--green-950);
  font:inherit;
  font-weight:800;
  text-align:left;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(6,39,32,.06);
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.contact-details-protected button.contact-reveal:hover{
  transform:translateY(-2px);
  background:#f9fbf6;
  box-shadow:0 14px 30px rgba(6,39,32,.10);
}

.contact-details-protected .contact-revealed-link{
  width:100%;
  display:block;
}


/* =========================================================
   V54 — pages Mentions légales / CGV
   ========================================================= */

.footer-legal-links{
  display:inline-flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  justify-content:flex-end;
}

.footer-legal-links a{
  color:inherit;
  text-decoration:none;
  opacity:.92;
}

.footer-legal-links a:hover{
  opacity:1;
  text-decoration:underline;
}

.legal-main{
  background:
    radial-gradient(circle at 80% 0%, rgba(141,186,69,.12), transparent 34%),
    linear-gradient(180deg,#fbfcf8 0%,#f5f8ef 100%);
}

.legal-hero{
  padding:150px 0 54px;
  background:
    linear-gradient(90deg, rgba(3,42,34,.92), rgba(4,73,58,.78)),
    url("assets/fond-vegetal.webp") center/cover no-repeat;
  color:#fff;
}

.legal-hero .container{
  max-width:1040px;
}

.legal-back{
  display:inline-flex;
  margin-bottom:24px;
  color:rgba(255,255,255,.84);
  text-decoration:none;
  font-weight:800;
}

.legal-back:hover{
  color:#fff;
}

.legal-hero .section-kicker{
  color:#cfe9a9;
}

.legal-hero h1{
  margin:12px 0 16px;
  max-width:900px;
  color:#fff;
  font-family:"Playfair Display", Georgia, serif;
  font-size:clamp(2.7rem,5vw,5rem);
  line-height:.96;
  letter-spacing:-.045em;
}

.legal-hero p{
  max-width:760px;
  margin:0;
  color:rgba(255,255,255,.82);
  font-size:1.08rem;
  line-height:1.65;
}

.legal-section{
  padding-top:58px !important;
  padding-bottom:70px !important;
}

.legal-layout{
  max-width:1040px;
  display:grid;
  gap:18px;
}

.legal-card{
  padding:30px 32px;
  border-radius:26px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(9,55,46,.10);
  box-shadow:0 18px 44px rgba(8,42,35,.08);
}

.legal-card h2{
  margin:0 0 14px;
  color:#173a32;
  font-family:"Playfair Display", Georgia, serif;
  font-size:clamp(1.6rem,2.2vw,2.15rem);
  line-height:1.08;
}

.legal-card p{
  margin:0 0 12px;
  color:#405c55;
  line-height:1.7;
}

.legal-card p:last-child{
  margin-bottom:0;
}

.legal-intro{
  border-color:rgba(141,186,69,.20);
  background:
    radial-gradient(circle at 96% 0%, rgba(141,186,69,.12), transparent 30%),
    rgba(255,255,255,.95);
}

.legal-alert{
  border-color:rgba(201,0,114,.16);
  background:
    radial-gradient(circle at 100% 0%, rgba(201,0,114,.07), transparent 32%),
    rgba(255,255,255,.95);
}

.legal-dl{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:12px 20px;
  margin:0;
}

.legal-dl dt{
  color:#173a32;
  font-weight:900;
}

.legal-dl dd{
  margin:0;
  color:#405c55;
  line-height:1.5;
}

.legal-contact-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:22px;
}

.legal-contact-actions .contact-reveal,
.legal-contact-actions .contact-revealed-link{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:12px 16px;
  border-radius:999px;
  border:0;
  background:linear-gradient(135deg,var(--green-600),var(--green-800));
  color:#fff;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
}

@media (max-width:760px){
  .legal-hero{
    padding:120px 0 42px;
  }

  .legal-card{
    padding:24px 20px;
    border-radius:22px;
  }

  .legal-dl{
    grid-template-columns:1fr;
    gap:4px 0;
  }

  .legal-dl dt{
    margin-top:12px;
  }

  .legal-contact-actions{
    grid-template-columns:1fr;
  }

  .footer-legal-links{
    justify-content:flex-start;
  }
}
