/* ==========================================================================
   PELOUSE VERT — Design System
   Style : Pro / Classique — glassmorphism, animations fluides, hover 3D
   ========================================================================== */

:root{
  --vert-abysse:#07251a;
  --vert-profond:#0d3b28;
  --vert:#1e6f4c;
  --vert-clair:#3f9a6d;
  --sauge:#8fc98f;
  --or:#c9a227;
  --or-clair:#e2c574;
  --sable:#f7f5ef;
  --creme:#fdfcf8;
  --ink:#122019;
  --gris:#6b7a72;
  --gris-clair:#9aa8a1;
  --bordure:rgba(13,59,40,.12);
  --glass:rgba(255,255,255,.14);
  --glass-fort:rgba(255,255,255,.72);
  --glass-border:rgba(255,255,255,.30);
  --shadow-sm:0 2px 10px rgba(8,40,28,.08);
  --shadow:0 14px 40px rgba(8,40,28,.13);
  --shadow-lg:0 30px 70px rgba(8,40,28,.24);
  --radius:18px;
  --radius-lg:26px;
  --container:1200px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --font-titre:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-texte:'Jost', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  font-family:var(--font-texte);
  font-size:16px;
  line-height:1.7;
  color:var(--ink);
  background:var(--creme);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font-family:inherit; font-size:inherit; }
h1,h2,h3,h4{ font-family:var(--font-titre); font-weight:600; line-height:1.15; margin:0 0 .6em; letter-spacing:.2px; }
h1{ font-size:clamp(2.2rem,7vw,4.4rem); }
h2{ font-size:clamp(1.8rem,4.6vw,3rem); }
h3{ font-size:clamp(1.25rem,2.4vw,1.6rem); }
p{ margin:0 0 1.1em; color:var(--gris); }
ul{ margin:0; padding:0; list-style:none; }

/* ------------------------------ Layout ------------------------------ */
.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 22px;
}

.section{ padding:76px 0; position:relative; }
.section--sable{ background:var(--sable); }
.section--vert{
  background:
    radial-gradient(1200px 500px at 15% -10%, rgba(143,201,143,.20), transparent 60%),
    linear-gradient(160deg,var(--vert-profond),var(--vert-abysse));
  color:#fff;
}
.section--vert p{ color:rgba(255,255,255,.76); }
.section--vert h2{ color:#fff; }

.section-head{ max-width:720px; margin:0 auto 46px; text-align:center; }
.section-head--left{ margin-left:0; text-align:left; }

.eyebrow{
  display:inline-block;
  font-size:.72rem;
  letter-spacing:3.4px;
  text-transform:uppercase;
  font-weight:600;
  color:var(--vert);
  margin-bottom:14px;
}
.section--vert .eyebrow{ color:var(--or-clair); }
.eyebrow::after{
  content:"";
  display:block;
  width:52px;
  height:2px;
  margin:12px auto 0;
  background:linear-gradient(90deg,var(--or),transparent);
}
.section-head--left .eyebrow::after{ margin-left:0; }

.lead{ font-size:1.06rem; }

/* ------------------------------ Buttons ------------------------------ */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:15px 34px;
  border:1px solid transparent;
  border-radius:999px;
  font-size:.82rem;
  font-weight:600;
  letter-spacing:1.6px;
  text-transform:uppercase;
  cursor:pointer;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s ease, color .3s ease, border-color .3s ease;
  will-change:transform;
}
.btn svg{ width:17px; height:17px; }
.btn--or{
  background:linear-gradient(135deg,var(--or-clair),var(--or));
  color:#231a02;
  box-shadow:0 12px 30px rgba(201,162,39,.30);
}
.btn--or:hover{ transform:translateY(-3px); box-shadow:0 20px 44px rgba(201,162,39,.42); }
.btn--vert{
  background:linear-gradient(135deg,var(--vert-clair),var(--vert));
  color:#fff;
  box-shadow:0 12px 30px rgba(30,111,76,.28);
}
.btn--vert:hover{ transform:translateY(-3px); box-shadow:0 20px 44px rgba(30,111,76,.38); }
.btn--ghost{
  border-color:rgba(255,255,255,.45);
  color:#fff;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.btn--ghost:hover{ background:rgba(255,255,255,.18); transform:translateY(-3px); }
.btn--ligne{
  border-color:var(--vert);
  color:var(--vert);
  background:transparent;
}
.btn--ligne:hover{ background:var(--vert); color:#fff; transform:translateY(-3px); }
.btn--bloc{ width:100%; }

/* ------------------------------ Top bar ------------------------------ */
.topbar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1201;
  height:40px;
  display:flex;
  align-items:center;
  background:var(--vert-abysse);
  color:rgba(255,255,255,.82);
  font-size:.76rem;
  letter-spacing:.6px;
  transition:transform .4s var(--ease), opacity .35s ease;
}
.topbar .container{
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:20px;
  text-align:center;
}
.topbar__note,
.topbar .container > span:first-child{ display:none; }
.topbar a{ display:inline-flex; align-items:center; gap:7px; }
.topbar a:hover{ color:var(--or-clair); }
.topbar svg{ width:14px; height:14px; flex:0 0 14px; }
body.is-scrolled .topbar{ transform:translateY(-100%); opacity:0; }

/* ------------------------------ Navigation ------------------------------ */
.nav{
  position:fixed;
  top:40px;
  left:0;
  right:0;
  z-index:1200;
  transition:background .4s ease, box-shadow .4s ease, backdrop-filter .4s ease, padding .4s ease, top .4s ease;
  padding:16px 0;
}
.nav__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.nav__logo{
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:#fff;
  transition:color .4s ease;
}
.nav__mark{
  width:44px;
  height:44px;
  flex:0 0 44px;
  border-radius:13px;
  background:linear-gradient(140deg,var(--vert-clair),var(--vert-profond));
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-titre);
  font-weight:700;
  font-size:1.05rem;
  color:var(--or-clair);
  letter-spacing:.5px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25);
}
.nav__name{ display:flex; flex-direction:column; line-height:1.1; }
.nav__name strong{
  font-family:var(--font-titre);
  font-size:1.24rem;
  font-weight:600;
  letter-spacing:.6px;
}
.nav__name span{
  font-size:.6rem;
  letter-spacing:2.6px;
  text-transform:uppercase;
  opacity:.7;
}

.nav__list{
  display:none;
  align-items:center;
  gap:34px;
}
.nav__list a{
  position:relative;
  font-size:.8rem;
  font-weight:500;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:#fff;
  padding:6px 0;
  transition:color .3s ease;
}
.nav__list a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:1.5px;
  background:var(--or-clair);
  transition:width .35s var(--ease);
}
.nav__list a:hover::after,
.nav__list a.is-active::after{ width:100%; }
.nav__cta{ display:none; }

/* État scrollé : barre opaque */
.nav.is-scrolled{
  top:0;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(16px) saturate(160%);
  -webkit-backdrop-filter:blur(16px) saturate(160%);
  box-shadow:0 10px 34px rgba(8,40,28,.10);
  padding:10px 0;
}
.nav.is-scrolled .nav__logo,
.nav.is-scrolled .nav__list a{ color:var(--vert-profond); }
.nav.is-scrolled .nav__list a::after{ background:var(--or); }
.nav.is-scrolled .nav__name span{ opacity:.55; }
.nav.is-scrolled .nav__burger span{ background:var(--vert-profond); }
.nav.is-scrolled .nav__cta{
  border-color:var(--vert);
  color:var(--vert);
  background:transparent;
}
.nav.is-scrolled .nav__cta:hover{ background:var(--vert); color:#fff; }

/* Burger */
.nav__burger{
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:12px;
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  cursor:pointer;
  transition:background .3s ease, border-color .3s ease;
}
.nav.is-scrolled .nav__burger{ border-color:var(--bordure); background:rgba(13,59,40,.05); }
.nav__burger span{
  display:block;
  width:20px;
  height:2px;
  background:#fff;
  border-radius:2px;
  transition:transform .35s var(--ease), opacity .3s ease, background .3s ease;
}
.nav.is-open .nav__burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav.is-open .nav__burger span:nth-child(2){ opacity:0; }
.nav.is-open .nav__burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* Panneau mobile */
.nav__panel{
  position:absolute;
  top:100%;
  left:14px;
  right:14px;
  border-radius:20px;
  padding:14px;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border:1px solid var(--glass-border);
  box-shadow:var(--shadow-lg);
  opacity:0;
  visibility:hidden;
  transform:translateY(-14px);
  transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
}
.nav.is-open .nav__panel{ opacity:1; visibility:visible; transform:translateY(0); }
.nav__panel a{
  display:block;
  padding:13px 16px;
  border-radius:12px;
  font-size:.86rem;
  font-weight:500;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--vert-profond);
  transition:background .25s ease, color .25s ease, padding-left .25s ease;
}
.nav__panel a:hover,
.nav__panel a.is-active{ background:rgba(30,111,76,.09); padding-left:22px; }
.nav__panel .btn{ margin-top:10px; }

/* ------------------------------ Hero ------------------------------ */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:150px 0 90px;
  overflow:hidden;
  color:#fff;
}
.hero__bg{
  position:absolute;
  inset:0;
  background-image:url('https://images.unsplash.com/photo-1558904541-efa843a96f01?auto=format&fit=crop&w=1900&q=80');
  background-size:cover;
  background-position:center;
  transform:scale(1.06);
  animation:heroZoom 22s ease-in-out infinite alternate;
}
.hero__bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(7,37,26,.80) 0%, rgba(7,37,26,.62) 45%, rgba(7,37,26,.88) 100%),
    radial-gradient(900px 420px at 78% 18%, rgba(143,201,143,.24), transparent 62%);
}
@keyframes heroZoom{
  from{ transform:scale(1.06); }
  to{ transform:scale(1.16); }
}
.hero .container{ position:relative; z-index:2; }
.hero__badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:9px 20px;
  border-radius:999px;
  background:var(--glass);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  font-size:.72rem;
  letter-spacing:2.6px;
  text-transform:uppercase;
  margin-bottom:26px;
  animation:fadeUp .9s var(--ease) both;
}
.hero__badge svg{ width:15px; height:15px; color:var(--or-clair); }
.hero h1{
  color:#fff;
  max-width:16ch;
  margin:0 auto .5em;
  text-wrap:balance;
  animation:fadeUp 1s var(--ease) .1s both;
}
.hero h1 em{ font-style:italic; color:var(--or-clair); }
.hero__sub{
  max-width:60ch;
  margin:0 auto 36px;
  font-size:1.04rem;
  color:rgba(255,255,255,.80);
  animation:fadeUp 1s var(--ease) .2s both;
}
.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  justify-content:center;
  animation:fadeUp 1s var(--ease) .3s both;
}
.hero__stats{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  margin-top:56px;
  animation:fadeUp 1s var(--ease) .42s both;
}
.hero__stat{
  padding:20px 16px;
  border-radius:var(--radius);
  background:var(--glass);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.hero__stat strong{
  display:block;
  font-family:var(--font-titre);
  font-size:2rem;
  line-height:1;
  color:var(--or-clair);
}
.hero__stat span{
  font-size:.72rem;
  letter-spacing:2px;
  text-transform:uppercase;
  color:rgba(255,255,255,.74);
}
.hero__scroll{
  display:none;
  position:absolute;
  bottom:26px;
  left:50%;
  transform:translateX(-50%);
  z-index:2;
  font-size:.64rem;
  letter-spacing:3px;
  text-transform:uppercase;
  color:rgba(255,255,255,.6);
}
.hero__scroll::after{
  content:"";
  display:block;
  width:1px;
  height:38px;
  margin:10px auto 0;
  background:linear-gradient(180deg,var(--or-clair),transparent);
  animation:scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine{
  0%,100%{ opacity:.25; transform:scaleY(.5); transform-origin:top; }
  50%{ opacity:1; transform:scaleY(1); transform-origin:top; }
}

/* ------------------------------ Cards ------------------------------ */
.grid{ display:grid; gap:22px; grid-template-columns:1fr; }

.glass-card{
  position:relative;
  border-radius:var(--radius-lg);
  padding:30px 26px;
  background:linear-gradient(150deg, rgba(255,255,255,.16), rgba(255,255,255,.05));
  border:1px solid var(--glass-border);
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  box-shadow:var(--shadow);
  overflow:hidden;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .4s ease;
}
.glass-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(420px 200px at 12% 0%, rgba(255,255,255,.30), transparent 65%);
  opacity:0;
  transition:opacity .45s ease;
  pointer-events:none;
}
.glass-card > *{ position:relative; z-index:1; }

/* Carte service — hover 3D */
.card3d{
  perspective:1100px;
}
.card3d .card3d__inner{
  border-radius:var(--radius-lg);
  padding:32px 26px 30px;
  background:linear-gradient(160deg, rgba(255,255,255,.20), rgba(255,255,255,.06));
  border:1px solid var(--glass-border);
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  box-shadow:var(--shadow);
  transform-style:preserve-3d;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), background .5s ease;
  height:100%;
}
.card3d:hover .card3d__inner{
  transform:rotateX(6deg) rotateY(-7deg) translateY(-12px) scale(1.02);
  box-shadow:0 40px 80px rgba(8,40,28,.30);
  background:linear-gradient(160deg, rgba(255,255,255,.30), rgba(255,255,255,.12));
}
.card3d__inner:hover .card3d__icon{ transform:translateZ(40px) scale(1.08); }
.card3d__icon{
  width:62px;
  height:62px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:20px;
  background:linear-gradient(140deg,var(--vert-clair),var(--vert-profond));
  color:#fff;
  transition:transform .5s var(--ease);
  box-shadow:0 12px 26px rgba(8,40,28,.28);
}
.card3d__icon svg{ width:28px; height:28px; }
.card3d h3{ margin-bottom:.45em; }
.card3d p{ font-size:.94rem; margin-bottom:1em; }

/* Cartes claires (sections sable) */
.card-light{
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:var(--radius-lg);
  padding:30px 26px;
  height:100%;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .4s ease;
}
.card-light:hover{
  transform:translateY(-10px);
  box-shadow:var(--shadow-lg);
  border-color:rgba(201,162,39,.45);
}
.card-light .card3d__icon{ background:linear-gradient(140deg,var(--vert-clair),var(--vert)); }
.card-light h3{ color:var(--vert-profond); }
.card-light p{ font-size:.93rem; }
.card-light ul li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:.9rem;
  color:var(--gris);
  margin-bottom:9px;
}
.card-light ul li svg{ width:17px; height:17px; flex:0 0 17px; margin-top:4px; color:var(--vert); }

/* ------------------------------ Split image / texte ------------------------------ */
.split{ display:grid; gap:34px; grid-template-columns:1fr; align-items:center; }
.split__media{ position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); }
.split__media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; transition:transform 1s var(--ease); }
.split__media:hover img{ transform:scale(1.05); }
.split__media--tall img{ aspect-ratio:3/4; }
.split__tag{
  position:absolute;
  left:18px;
  bottom:18px;
  padding:12px 20px;
  border-radius:14px;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid var(--glass-border);
  font-size:.72rem;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--vert-profond);
  font-weight:600;
}
.check-list{ margin:22px 0 26px; }
.check-list li{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-bottom:12px;
  color:var(--gris);
  font-size:.95rem;
}
.check-list li svg{ width:19px; height:19px; flex:0 0 19px; margin-top:4px; color:var(--vert); }
.section--vert .check-list li{ color:rgba(255,255,255,.78); }
.section--vert .check-list li svg{ color:var(--or-clair); }

/* ------------------------------ Chiffres ------------------------------ */
.stats{ display:grid; grid-template-columns:1fr; gap:18px; }
.stat{
  text-align:center;
  padding:28px 18px;
  border-radius:var(--radius-lg);
  background:linear-gradient(150deg, rgba(255,255,255,.18), rgba(255,255,255,.06));
  border:1px solid var(--glass-border);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.stat:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.stat strong{
  display:block;
  font-family:var(--font-titre);
  font-size:clamp(2.2rem,6vw,3rem);
  line-height:1;
  color:var(--or-clair);
}
.stat span{
  display:block;
  margin-top:8px;
  font-size:.72rem;
  letter-spacing:2.2px;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
}

/* ------------------------------ Zone d'intervention ------------------------------ */
.zone{ display:grid; gap:26px; grid-template-columns:1fr; }
.zone__map{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid var(--bordure); }
.zone__map iframe{ width:100%; height:340px; border:0; display:block; }
.zone__list{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:22px; }
.zone__list li{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:.9rem;
  color:var(--gris);
  padding:11px 14px;
  border-radius:12px;
  background:#fff;
  border:1px solid var(--bordure);
  transition:border-color .3s ease, transform .3s var(--ease);
}
.zone__list li:hover{ border-color:rgba(201,162,39,.5); transform:translateY(-3px); }
.zone__list svg{ width:15px; height:15px; color:var(--or); flex:0 0 15px; }

/* ------------------------------ Témoignages ------------------------------ */
.quotes{ display:grid; grid-template-columns:1fr; gap:22px; }
.quote{
  padding:32px 26px;
  border-radius:var(--radius-lg);
  background:#fff;
  border:1px solid var(--bordure);
  box-shadow:var(--shadow-sm);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
  height:100%;
}
.quote:hover{ transform:translateY(-8px); box-shadow:var(--shadow); }
.quote__stars{ display:flex; gap:4px; margin-bottom:16px; color:var(--or); }
.quote__stars svg{ width:17px; height:17px; }
.quote p{ font-family:var(--font-titre); font-size:1.12rem; font-style:italic; color:var(--vert-profond); line-height:1.6; }
.quote__who{ display:flex; align-items:center; gap:13px; margin-top:20px; padding-top:18px; border-top:1px solid var(--bordure); }
.quote__who img{ width:48px; height:48px; border-radius:50%; object-fit:cover; }
.quote__who strong{ display:block; font-size:.92rem; color:var(--ink); }
.quote__who span{ font-size:.76rem; color:var(--gris-clair); letter-spacing:.6px; }

/* ------------------------------ Galerie ------------------------------ */
.gallery{ display:grid; grid-template-columns:1fr; gap:14px; }
.gallery__item{
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  cursor:pointer;
  background:var(--vert-abysse);
}
.gallery__item img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  transition:transform .8s var(--ease), opacity .5s ease;
}
.gallery__item:hover img{ transform:scale(1.08); opacity:.86; }
.gallery__item figcaption{
  position:absolute;
  left:14px;
  bottom:12px;
  right:14px;
  font-size:.76rem;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.6);
  opacity:0;
  transform:translateY(10px);
  transition:opacity .4s ease, transform .4s var(--ease);
}
.gallery__item:hover figcaption{ opacity:1; transform:translateY(0); }
.gallery__item::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(7,37,26,.75));
  opacity:0;
  transition:opacity .4s ease;
  pointer-events:none;
}
.gallery__item:hover::after{ opacity:1; }

/* Lightbox */
.lightbox{
  position:fixed;
  inset:0;
  z-index:3000;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(4,20,14,.92);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  opacity:0;
  transition:opacity .35s ease;
  padding:24px;
}
.lightbox.is-active{ opacity:1; }
.lightbox img{ max-width:94%; max-height:88%; border-radius:14px; box-shadow:var(--shadow-lg); }
.lightbox__close{
  position:absolute;
  top:18px;
  right:20px;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.3);
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:22px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}
.lightbox__close:hover{ background:rgba(255,255,255,.22); }

/* ------------------------------ Tarifs ------------------------------ */
.prices{ display:grid; grid-template-columns:1fr; gap:22px; }
.price-card{
  position:relative;
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:var(--radius-lg);
  padding:34px 26px;
  display:flex;
  flex-direction:column;
  box-shadow:var(--shadow-sm);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .4s ease;
}
.price-card:hover{ transform:translateY(-10px); box-shadow:var(--shadow-lg); }
.price-card--star{
  border-color:rgba(201,162,39,.55);
  box-shadow:0 24px 60px rgba(8,40,28,.16);
}
.price-card__flag{
  position:absolute;
  top:-13px;
  left:26px;
  padding:7px 16px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--or-clair),var(--or));
  color:#231a02;
  font-size:.66rem;
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:700;
}
.price-card h3{ color:var(--vert-profond); margin-bottom:.2em; }
.price-card__amount{
  font-family:var(--font-titre);
  font-size:2.7rem;
  line-height:1;
  color:var(--vert);
  margin:14px 0 6px;
}
.price-card__amount small{ font-size:.9rem; color:var(--gris-clair); font-family:var(--font-texte); letter-spacing:.6px; }
.price-card__note{ font-size:.82rem; color:var(--gris-clair); margin-bottom:18px; }
.price-card ul{ margin:18px 0 26px; }
.price-card ul li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:.9rem;
  color:var(--gris);
  padding:9px 0;
  border-bottom:1px dashed var(--bordure);
}
.price-card ul li svg{ width:17px; height:17px; flex:0 0 17px; margin-top:4px; color:var(--vert); }
.price-card .btn{ margin-top:auto; }

/* ------------------------------ CTA bandeau ------------------------------ */
.cta-band{
  position:relative;
  padding:64px 30px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  text-align:center;
  color:#fff;
  background:
    radial-gradient(700px 320px at 20% 10%, rgba(143,201,143,.28), transparent 60%),
    linear-gradient(150deg,var(--vert-profond),var(--vert-abysse));
  box-shadow:var(--shadow-lg);
}
.cta-band h2{ color:#fff; }
.cta-band p{ color:rgba(255,255,255,.78); max-width:56ch; margin:0 auto 28px; }
.cta-band__actions{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }

/* ------------------------------ Contact ------------------------------ */
.contact{ display:grid; grid-template-columns:1fr; gap:30px; }
.info-list li{
  display:flex;
  gap:15px;
  align-items:flex-start;
  padding:18px 0;
  border-bottom:1px solid var(--bordure);
}
.info-list li:last-child{ border-bottom:0; }
.info-list__icon{
  width:46px;
  height:46px;
  flex:0 0 46px;
  border-radius:13px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(140deg,var(--vert-clair),var(--vert-profond));
  color:#fff;
}
.info-list__icon svg{ width:20px; height:20px; }
.info-list strong{ display:block; font-size:.74rem; letter-spacing:2px; text-transform:uppercase; color:var(--gris-clair); margin-bottom:3px; }
.info-list a,.info-list span{ color:var(--ink); font-size:.98rem; }
.info-list a:hover{ color:var(--vert); }

.form-card{
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:var(--radius-lg);
  padding:30px 24px;
  box-shadow:var(--shadow);
}
.field{ margin-bottom:18px; }
.field label{
  display:block;
  font-size:.72rem;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--gris);
  margin-bottom:8px;
  font-weight:600;
}
.field input,
.field select,
.field textarea{
  width:100%;
  padding:14px 16px;
  border:1px solid var(--bordure);
  border-radius:12px;
  background:var(--sable);
  color:var(--ink);
  transition:border-color .3s ease, background .3s ease, box-shadow .3s ease;
}
.field textarea{ min-height:130px; resize:vertical; }
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--vert-clair);
  background:#fff;
  box-shadow:0 0 0 4px rgba(63,154,109,.14);
}
.field-row{ display:grid; grid-template-columns:1fr; gap:0 18px; }
.form-note{ font-size:.78rem; color:var(--gris-clair); margin-top:14px; }
.form-msg{
  margin-top:16px;
  padding:14px 18px;
  border-radius:12px;
  font-size:.9rem;
  display:none;
}
.form-msg.is-ok{ display:block; background:rgba(63,154,109,.12); border:1px solid rgba(63,154,109,.35); color:var(--vert-profond); }
.form-msg.is-err{ display:block; background:rgba(190,60,60,.10); border:1px solid rgba(190,60,60,.35); color:#8c2323; }

/* ------------------------------ Footer ------------------------------ */
.footer{
  background:var(--vert-abysse);
  color:rgba(255,255,255,.72);
  padding:60px 0 26px;
}
.footer__grid{ display:grid; grid-template-columns:1fr; gap:34px; }
.footer h4{
  color:#fff;
  font-family:var(--font-texte);
  font-size:.76rem;
  letter-spacing:2.4px;
  text-transform:uppercase;
  margin-bottom:18px;
}
.footer p{ color:rgba(255,255,255,.62); font-size:.9rem; }
.footer__logo{ display:inline-flex; align-items:center; gap:12px; margin-bottom:16px; }
.footer__logo strong{ font-family:var(--font-titre); font-size:1.3rem; color:#fff; letter-spacing:.6px; }
.footer__links li{ margin-bottom:10px; }
.footer__links a{ font-size:.9rem; transition:color .3s ease, padding-left .3s ease; }
.footer__links a:hover{ color:var(--or-clair); padding-left:5px; }
.footer__bottom{
  margin-top:44px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:space-between;
  font-size:.78rem;
  color:rgba(255,255,255,.5);
}

/* ------------------------------ Page header ------------------------------ */
.page-head{
  position:relative;
  padding:150px 0 70px;
  text-align:center;
  color:#fff;
  overflow:hidden;
  background:
    radial-gradient(900px 420px at 78% 0%, rgba(143,201,143,.24), transparent 62%),
    linear-gradient(155deg,var(--vert-profond),var(--vert-abysse));
}
.page-head h1{ color:#fff; margin-bottom:.3em; }
.page-head p{ color:rgba(255,255,255,.76); max-width:62ch; margin:0 auto; }
.breadcrumb{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-size:.74rem;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
  margin-top:20px;
}
.breadcrumb a:hover{ color:var(--or-clair); }
.breadcrumb svg{ width:13px; height:13px; }

/* ------------------------------ Reveal ------------------------------ */
.reveal{
  opacity:0;
  transform:translateY(34px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal.is-visible{ opacity:1; transform:translateY(0); }
@keyframes revealFallback{
  to{ opacity:1; transform:translateY(0); }
}
.reveal{ animation:revealFallback .9s var(--ease) 1.4s forwards; }
.reveal.is-visible{ animation:none; }

@keyframes fadeUp{
  from{ opacity:0; transform:translateY(26px); }
  to{ opacity:1; transform:translateY(0); }
}

/* ------------------------------ Utilitaires ------------------------------ */
.txt-centre{ text-align:center; }
.mt-30{ margin-top:30px; }
.mt-46{ margin-top:46px; }
.mb-0{ margin-bottom:0; }
.divider{ height:1px; background:var(--bordure); margin:40px 0; }

/* ==========================================================================
   RESPONSIVE — mobile first. Multi-colonnes à partir de 768px.
   ========================================================================== */

@media (min-width:560px){
  .hero__stats{ grid-template-columns:repeat(2,1fr); }
  .gallery{ grid-template-columns:repeat(2,1fr); }
}

@media (min-width:768px){
  .section{ padding:96px 0; }
  .container{ padding:0 32px; }
  .topbar__note,
  .topbar .container > span:first-child{ display:inline; }
  .topbar .container{ justify-content:space-between; }
  .grid--2{ grid-template-columns:repeat(2,1fr); }
  .grid--3{ grid-template-columns:repeat(3,1fr); }
  .grid--4{ grid-template-columns:repeat(4,1fr); }
  .stats{ grid-template-columns:repeat(2,1fr); }
  .field-row{ grid-template-columns:1fr 1fr; }
  .gallery{ grid-template-columns:repeat(3,1fr); }
  .split{ grid-template-columns:1fr 1fr; gap:52px; }
  .split--inverse .split__media{ order:2; }
  .zone{ grid-template-columns:1.15fr .85fr; align-items:center; }
  .contact{ grid-template-columns:1fr 1.25fr; gap:44px; }
  .footer__grid{ grid-template-columns:1.4fr 1fr 1fr 1.2fr; }
  .cta-band{ padding:80px 50px; }
  .topbar .container{ flex-direction:row; justify-content:space-between; text-align:left; }
  .hero__scroll{ display:block; }
  .glass-card{ padding:38px 34px; }
  .card3d .card3d__inner{ padding:38px 32px 34px; }
  .price-card{ padding:42px 32px; }
  .form-card{ padding:40px 36px; }
  .gallery__item img{ aspect-ratio:1/1; }
}

@media (min-width:1024px){
  .section{ padding:112px 0; }
  .grid--4{ grid-template-columns:repeat(4,1fr); }
  .grid--3.gap-lg{ gap:30px; }
  .hero__stats{ grid-template-columns:repeat(4,1fr); max-width:1000px; margin-left:auto; margin-right:auto; gap:18px; }
  .stats{ grid-template-columns:repeat(4,1fr); gap:22px; }
  .gallery{ grid-template-columns:repeat(4,1fr); gap:18px; }
  .quotes{ grid-template-columns:repeat(3,1fr); }
  .prices{ grid-template-columns:repeat(3,1fr); }
  .nav{ padding:20px 0; }
  .nav__list{ display:flex; }
  .nav__cta{ display:inline-flex; }
  .nav__burger{ display:none; }
  .nav__panel{ display:none; }
  .hero{ padding:120px 0 100px; }
  .hero__bg{ background-attachment:fixed; }
  .split{ gap:68px; }

  .footer{ padding:80px 0 30px; }
  .page-head{ padding:200px 0 90px; }
}

/* ==========================================================================
   COMPLÉMENTS — numéros, FAQ, blocs tarifs
   ========================================================================== */
.num-badge{
  width:54px;
  height:54px;
  border-radius:15px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-titre);
  font-size:1.45rem;
  font-weight:600;
  color:var(--or-clair);
  background:rgba(255,255,255,.14);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  margin-bottom:18px;
}

.faq{ max-width:880px; margin-left:auto; margin-right:auto; }

.faq__item{
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:16px;
  margin-bottom:12px;
  overflow:hidden;
  transition:border-color .3s ease, box-shadow .3s ease;
}
.faq__item:hover{ border-color:rgba(201,162,39,.45); }
.faq__item.is-open{ box-shadow:var(--shadow-sm); }
.faq__q{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:20px 22px;
  background:none;
  border:0;
  cursor:pointer;
  text-align:left;
  font-size:.98rem;
  font-weight:500;
  color:var(--vert-profond);
}
.faq__q svg{ width:18px; height:18px; flex:0 0 18px; color:var(--vert); transition:transform .35s var(--ease); }
.faq__item.is-open .faq__q svg{ transform:rotate(180deg); }
.faq__a{
  max-height:0;
  overflow:hidden;
  padding:0 22px;
  transition:max-height .45s var(--ease), padding .35s ease;
}
.faq__item.is-open .faq__a{ max-height:560px; padding:0 22px 22px; }
.faq__a p{ margin:0; font-size:.94rem; }

.stat--light{
  background:#fff;
  border:1px solid var(--bordure);
}
.stat--light strong{ color:var(--vert); }
.stat--light span{ color:var(--gris); }
.stat--light:hover{ box-shadow:var(--shadow-lg); }

.note-box{
  padding:22px 24px;
  border-radius:var(--radius);
  background:var(--sable);
  border:1px solid var(--bordure);
  font-size:.9rem;
  color:var(--gris);
}
.section--sable .note-box{ background:#fff; }

.prestation{ padding:34px 0; border-bottom:1px solid var(--bordure); }
.prestation:last-child{ border-bottom:0; padding-bottom:0; }
.prestation__head{ display:flex; align-items:center; gap:16px; margin-bottom:14px; flex-wrap:wrap; }
.prestation__head h3{ margin:0; color:var(--vert-profond); }

.price-line{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:13px 0;
  border-bottom:1px dashed var(--bordure);
  font-size:.94rem;
  color:var(--gris);
}
.price-line:last-child{ border-bottom:0; }
.price-line strong{ color:var(--vert-profond); font-weight:600; white-space:nowrap; }

@media (min-width:768px){
  .grid--2.gap-lg{ gap:34px; }
}


/* Image en tete d'une carte claire */
.card-light__img{
  margin:-30px -26px 22px;
  aspect-ratio:16/10;
  object-fit:cover;
}
@media (min-width:1024px){
  .card-light__img{ margin:-30px -26px 24px; }
}
