*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#30322f;line-height:1.6}.wrap{width:min(1160px,calc(100% - 40px));margin:auto}.preprod{position:fixed;z-index:99;top:8px;left:50%;transform:translateX(-50%);background:#b6cc4b;color:#20231b;border-radius:30px;padding:5px 13px;font-size:11px;font-weight:bold}header{position:sticky;top:0;z-index:50;background:#1d1e1c}.nav{height:84px;display:flex;align-items:center;justify-content:space-between}.nav img{width:180px;max-height:68px;object-fit:contain}.nav nav{display:flex;align-items:center;gap:26px}.nav nav a{color:white;text-decoration:none;font-size:13px}.toggle{display:none}.button{display:inline-block;background:#b6cc4b;color:#1d2119;text-decoration:none;border:0;border-radius:2px;padding:14px 22px;font-weight:bold;cursor:pointer}.mini{padding:10px 15px!important;color:#1d2119!important}.hero{min-height:690px;display:flex;align-items:center;background:linear-gradient(90deg,rgba(15,18,16,.78),rgba(15,18,16,.42) 55%,rgba(15,18,16,.08)),url("../images/homepage.jpeg") center/cover}.hero-in{color:white}.over{font-size:12px;font-weight:bold;letter-spacing:.16em;color:#9caf36;margin:0 0 15px}.hero .over{color:#c1d75c}.hero h1{font-size:clamp(45px,6vw,75px);line-height:1.03;letter-spacing:-.04em;max-width:850px;margin:0 0 22px}.lead{font-size:25px;max-width:680px}.actions{display:flex;gap:12px;margin-top:30px}.outline{background:rgba(0,0,0,.25);border:1px solid white;color:white}.section{padding:90px 0}.cols{display:grid;grid-template-columns:1fr 1.1fr;gap:70px}.section h2,.cta h2{font-size:clamp(34px,4vw,52px);line-height:1.1;letter-spacing:-.035em;margin:0 0 24px}.section p{font-size:17px;color:#535a55}.pale{background:#f2f3ef}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}.cards article{background:white;border-top:5px solid #b6cc4b;padding:30px;min-height:260px}.cards b{color:#93a735}.cards h3{font-size:23px;line-height:1.2}.cards p{font-size:15px}.note{font-size:13px!important;color:#858b86!important;font-style:italic}.center{text-align:center}.dark{background:#30312f;color:white}.dark h2,.dark p,.dark a,.dark label{color:white}.dark .over{color:#b6cc4b}.values{display:grid;grid-template-columns:1fr 1fr;gap:14px}.values div{border:1px solid #68713e;padding:25px}.values strong,.values small{display:block}.values strong{font-size:20px}.values small{color:#d7dbd5}.audiences{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#ddd;margin-top:38px}.audiences div{background:#30312f;border-top:5px solid #b6cc4b;padding:28px;min-height:175px}.audiences strong,.audiences small{display:block}.audiences strong{color:white;font-size:21px;margin-bottom:10px}.audiences small{color:#d7dbd5}.places{display:flex;flex-wrap:wrap;gap:9px;margin:25px 0}.places span{background:white;border:1px solid #d8ddd5;padding:9px 12px}.cta{text-align:center;background:#b6cc4b;padding:75px 0}.cta .over{color:#56611f}.cta p{max-width:720px;margin:0 auto 25px}.black{background:#1d1e1c;color:white}.contactgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.contact form{display:grid;gap:15px}.formrow{display:grid;grid-template-columns:1fr 1fr;gap:15px}label{font-size:13px;font-weight:bold}input,select,textarea{display:block;width:100%;margin-top:6px;padding:13px;border:1px solid #747873;background:#3a3b39;color:white;font:inherit}footer{background:#191a18;color:#d7dbd5;padding:35px 0}.foot{display:grid;grid-template-columns:.8fr 1.4fr 1.2fr;align-items:center;gap:25px;font-size:12px}.foot img{width:150px;max-height:65px;object-fit:contain}@media(max-width:850px){.toggle{display:block;background:none;border:0;color:white;font-size:25px}.nav nav{display:none;position:absolute;top:84px;left:0;right:0;background:#1d1e1c;padding:22px;flex-direction:column}.nav nav.open{display:flex}.cols,.contactgrid{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.audiences{grid-template-columns:1fr 1fr}.foot{grid-template-columns:1fr}.hero{background-position:60% center}}@media(max-width:560px){.cards,.audiences,.values,.formrow{grid-template-columns:1fr}.actions{display:grid}.section{padding:65px 0}.hero h1{font-size:43px}.nav img{width:145px}}
.meansgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:35px}.meansgrid div{background:#fff;border-top:5px solid #b6cc4b;padding:24px;min-height:145px}.meansgrid strong{display:block;font-size:42px;line-height:1;color:#30312f}.meansgrid span{display:block;margin-top:12px;font-size:14px}.oge{background:#fff}.oge .button{margin-top:12px}@media(max-width:850px){.meansgrid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.meansgrid{grid-template-columns:1fr}}
/* ===== V4 refinements ===== */
.logo img, .brand img { transform:scale(1.22); transform-origin:left center; }
.cards { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
.cards article { min-height:205px; padding:28px 30px; }
.cards article h3 { margin-top:20px; }

.meansgrid{
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:14px !important;
  margin-top:38px !important;
}
.meansgrid .meancard{
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  background:#fff !important;
  border-top:5px solid #b6cc4b !important;
  padding:26px 22px !important;
  min-height:165px !important;
}
.meansgrid .meancard strong{
  display:block !important;
  font-size:48px !important;
  line-height:1 !important;
  margin-bottom:18px !important;
}
.meansgrid .meancard span{
  display:block !important;
  font-size:15px !important;
  line-height:1.4 !important;
  font-weight:700 !important;
}
.means .note{margin-top:24px !important;}

.places{gap:10px !important;}
.places span{
  background:transparent !important;
  border:1px solid #b6cc4b !important;
  padding:10px 14px !important;
  position:relative;
}
.places span:before{
  content:"•";
  color:#8fa524;
  font-weight:800;
  margin-right:7px;
}
.oge-highlight{
  border-left:4px solid #b6cc4b;
  padding:10px 0 10px 16px;
  font-weight:700;
  margin:20px 0;
}

@media(max-width:1000px){
  .meansgrid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
}
@media(max-width:850px){
  .cards{grid-template-columns:1fr !important;}
  .meansgrid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .logo img, .brand img{transform:scale(1.12);}
}
@media(max-width:560px){
  .meansgrid{grid-template-columns:1fr !important;}
}

/* ===== V4.2 logo/header legibility ===== */
header .wrap, .site-header .wrap, .topbar .wrap { min-height:82px; }
.logo, .brand { display:flex; align-items:center; flex:0 0 auto; overflow:visible; }
.logo img, .brand img {
  width:150px !important;
  height:auto !important;
  max-height:62px !important;
  object-fit:contain;
  transform:none !important;
  opacity:1 !important;
}
@media(max-width:900px){
  .logo img, .brand img { width:132px !important; max-height:56px !important; }
}
@media(max-width:650px){
  header .wrap, .site-header .wrap, .topbar .wrap { min-height:68px; }
  .logo img, .brand img { width:118px !important; max-height:50px !important; }
}

/* ===== V4.3 rebuilt header brand ===== */
.logo, .brand{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  text-decoration:none !important;
  min-width:210px;
}
.logo > img, .brand > img{
  display:none !important;
}
.brand-type{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1;
}
.brand-type strong{
  color:#fff;
  font-size:21px;
  line-height:1;
  letter-spacing:.08em;
  font-weight:800;
}
.brand-type small{
  color:#b6cc4b;
  font-size:10px;
  line-height:1;
  margin-top:6px;
  letter-spacing:.05em;
  font-weight:700;
}
.brand-mark{
  width:34px;
  height:46px;
  position:relative;
  display:inline-block;
  flex:0 0 34px;
}
.brand-line{
  position:absolute;
  display:block;
  height:2px;
  background:#b6cc4b;
  transform-origin:left center;
  border-radius:2px;
}
.brand-line-a{width:27px; left:2px; top:25px; transform:rotate(-70deg);}
.brand-line-b{width:31px; left:10px; top:7px; transform:rotate(72deg);}
.brand-line-c{width:24px; left:6px; top:28px; transform:rotate(-18deg);}
.site-header .wrap, header .wrap, .topbar .wrap{
  min-height:86px !important;
}
@media(max-width:900px){
  .logo, .brand{min-width:180px; gap:10px !important;}
  .brand-type strong{font-size:18px;}
  .brand-type small{font-size:9px;}
  .brand-mark{transform:scale(.9); transform-origin:left center;}
}
@media(max-width:650px){
  .logo, .brand{min-width:auto;}
  .brand-type strong{font-size:16px;}
  .brand-type small{font-size:8px; margin-top:4px;}
  .brand-mark{width:28px; flex-basis:28px; transform:scale(.78);}
}

/* ===== V4.4 : retour au premier logo ===== */
.brand-mark, .brand-type { display:none !important; }
header .brand{
  display:flex !important;
  align-items:center !important;
  min-width:0 !important;
  text-decoration:none !important;
}
header .brand img{
  display:block !important;
  width:128px !important;
  height:auto !important;
  max-height:62px !important;
  object-fit:contain !important;
  transform:none !important;
  opacity:1 !important;
}
header .wrap.nav{
  min-height:78px !important;
}
@media(max-width:900px){
  header .brand img{width:116px !important;max-height:56px !important;}
}
@media(max-width:650px){
  header .brand img{width:102px !important;max-height:50px !important;}
}

/* ===== V4.5 : lisibilité du logo par le code uniquement ===== */

/* Header légèrement plus haut pour donner de l'air au logo */
header .wrap.nav{
  min-height:84px !important;
}

/* Cartouche clair derrière le logo original */
header .brand{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#f7f7f3 !important;
  padding:8px 14px !important;
  min-width:168px !important;
  min-height:56px !important;
  border-radius:2px !important;
  box-sizing:border-box !important;
  text-decoration:none !important;
}

/* Logo original, non modifié */
header .brand img{
  display:block !important;
  width:138px !important;
  height:auto !important;
  max-height:48px !important;
  object-fit:contain !important;
  transform:none !important;
  opacity:1 !important;
  filter:none !important;
}

/* Petit filet vert pour rattacher le cartouche à l'identité Arpentage */
header .brand{
  border-bottom:3px solid #b6cc4b !important;
}

/* Navigation mieux centrée verticalement */
header nav,
header .navlinks{
  align-items:center !important;
}

/* Tablette */
@media(max-width:900px){
  header .wrap.nav{
    min-height:78px !important;
  }
  header .brand{
    min-width:152px !important;
    min-height:52px !important;
    padding:7px 12px !important;
  }
  header .brand img{
    width:126px !important;
    max-height:44px !important;
  }
}

/* Mobile */
@media(max-width:650px){
  header .wrap.nav{
    min-height:70px !important;
  }
  header .brand{
    min-width:136px !important;
    min-height:48px !important;
    padding:6px 10px !important;
  }
  header .brand img{
    width:112px !important;
    max-height:40px !important;
  }
}

/* ===== V4.6 : logo plus grand, sans aplat ===== */
header .wrap.nav{
  min-height:92px !important;
}
header .brand{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  padding:0 !important;
  min-width:210px !important;
  min-height:70px !important;
  justify-content:flex-start !important;
  overflow:visible !important;
}
header .brand img{
  width:190px !important;
  max-height:72px !important;
  height:auto !important;
  object-fit:contain !important;
  filter:brightness(0) invert(1) !important;
  opacity:1 !important;
}
/* Le filtre rend les éléments sombres du logo blancs, pour le contraste sur anthracite.
   Le vert original est sacrifié dans le header uniquement; l'image source reste inchangée. */

@media(max-width:900px){
  header .brand{min-width:180px !important; min-height:62px !important;}
  header .brand img{width:165px !important; max-height:62px !important;}
}
@media(max-width:650px){
  header .wrap.nav{min-height:76px !important;}
  header .brand{min-width:145px !important; min-height:54px !important;}
  header .brand img{width:138px !important; max-height:52px !important;}
}


/* =========================================================
   V4.8 — HABILLAGE PHOTO DISCRET DES 8 PARTIES
   Les photos restent décoratives et ne gênent jamais la lecture.
   ========================================================= */

.deco{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

.deco > .wrap{
  position:relative;
  z-index:2;
}

/* Panneau photo latéral commun */
.deco::after{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
}

/* 1 — LE CABINET */
.deco-cabinet::after{
  right:0;
  top:0;
  width:31%;
  height:100%;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,.86) 28%,
      rgba(255,255,255,.35) 72%,
      rgba(255,255,255,.08) 100%),
    url("../images/section-cabinet.jpeg");
  opacity:.24;
}

/* 2 — NOS MISSIONS */
.deco-missions::after{
  right:0;
  top:0;
  width:27%;
  height:360px;
  background:
    linear-gradient(90deg,
      rgba(243,243,238,1) 0%,
      rgba(243,243,238,.78) 35%,
      rgba(243,243,238,.18) 100%),
    url("../images/section-missions.jpeg");
  opacity:.20;
}

/* 3 — TERRITOIRE : photo sous l'anthracite */
.deco-territoire::after{
  inset:0;
  width:100%;
  height:100%;
  background:
    linear-gradient(90deg,
      rgba(47,48,45,.97) 0%,
      rgba(47,48,45,.94) 42%,
      rgba(47,48,45,.82) 100%),
    url("../images/section-territoire.jpeg");
  opacity:1;
  background-position:center 50%;
}

/* 4 — NOS CLIENTS */
.deco-clients::after{
  right:0;
  bottom:0;
  width:30%;
  height:100%;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,.84) 34%,
      rgba(255,255,255,.20) 100%),
    url("../images/section-clients.jpeg");
  opacity:.20;
}

/* 5 — ZONE D'INTERVENTION */
.deco-zone::after{
  left:0;
  bottom:0;
  width:100%;
  height:52%;
  background:
    linear-gradient(180deg,
      rgba(243,243,238,1) 0%,
      rgba(243,243,238,.82) 42%,
      rgba(243,243,238,.93) 100%),
    url("../images/section-zone.jpeg");
  opacity:.18;
  background-position:center 54%;
}

/* 6 — NOS MOYENS */
.deco-moyens::after{
  right:0;
  top:0;
  width:29%;
  height:100%;
  background:
    linear-gradient(90deg,
      rgba(243,243,238,1) 0%,
      rgba(243,243,238,.80) 34%,
      rgba(243,243,238,.16) 100%),
    url("../images/section-moyens.jpeg");
  opacity:.22;
}

/* 7 — OGE */
.deco-oge::after{
  left:0;
  bottom:0;
  width:31%;
  height:100%;
  background:
    linear-gradient(270deg,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,.84) 36%,
      rgba(255,255,255,.14) 100%),
    url("../images/section-oge.jpeg");
  opacity:.19;
}

/* 8 — CONTACT */
.deco-contact{
  background-image:
    linear-gradient(rgba(47,48,45,.94), rgba(47,48,45,.94)),
    url("../images/section-contact.jpeg") !important;
  background-size:cover !important;
  background-position:center 45% !important;
}

/* Trait de rappel très discret */
.deco-clients::before,
.deco-oge::before{
  content:"";
  position:absolute;
  z-index:3;
  top:0;
  left:18%;
  right:18%;
  height:2px;
  background:#b6cc4b;
  opacity:.40;
}

/* Tablette */
@media(max-width:900px){
  .deco-cabinet::after,
  .deco-missions::after,
  .deco-clients::after,
  .deco-moyens::after,
  .deco-oge::after{
    width:40%;
    opacity:.12;
  }
  .deco-zone::after{
    opacity:.11;
  }
}

/* Mobile : ambiance très légère seulement */
@media(max-width:650px){
  .deco-cabinet::after,
  .deco-missions::after,
  .deco-clients::after,
  .deco-moyens::after,
  .deco-oge::after{
    width:100%;
    height:100%;
    opacity:.055;
  }

  .deco-zone::after{
    opacity:.06;
  }

  .deco-territoire::after{
    background:
      linear-gradient(rgba(47,48,45,.95), rgba(47,48,45,.91)),
      url("../images/section-territoire.jpeg");
    background-size:cover;
  }

  .deco-contact{
    background-image:
      linear-gradient(rgba(47,48,45,.95), rgba(47,48,45,.95)),
      url("../images/section-contact.jpeg") !important;
  }
}


/* =========================================================
   V4.9 — FINITIONS VISUELLES
   Aucun changement de structure.
   ========================================================= */

/* Missions : image un peu plus présente */
.deco-missions::after{
  opacity:.24 !important;
}

/* Zone : relief légèrement plus perceptible */
.deco-zone::after{
  opacity:.24 !important;
}

/* Contact : photo un peu plus visible sans perdre le contraste */
.deco-contact{
  background-image:
    linear-gradient(rgba(47,48,45,.89), rgba(47,48,45,.89)),
    url("../images/section-contact.jpeg") !important;
}

/* Harmonisation douce des transitions */
.deco-cabinet,
.deco-clients,
.deco-moyens,
.deco-oge{
  background-clip:padding-box;
}

/* Légère respiration verticale supplémentaire */
.deco-missions,
.deco-zone,
.deco-moyens,
.deco-oge{
  scroll-margin-top:92px;
}

@media(max-width:900px){
  .deco-missions::after{opacity:.14 !important;}
  .deco-zone::after{opacity:.14 !important;}
  .deco-contact{
    background-image:
      linear-gradient(rgba(47,48,45,.91), rgba(47,48,45,.91)),
      url("../images/section-contact.jpeg") !important;
  }
}

@media(max-width:650px){
  .deco-missions::after{opacity:.07 !important;}
  .deco-zone::after{opacity:.075 !important;}
  .deco-contact{
    background-image:
      linear-gradient(rgba(47,48,45,.94), rgba(47,48,45,.94)),
      url("../images/section-contact.jpeg") !important;
  }
}


/* =========================================================
   V4.10 — LOGO OFFICIEL GÉOMÈTRE-EXPERT
   ========================================================= */

.oge-logo-wrap{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin:0 0 28px 0;
}

.oge-logo-wrap a{
  display:inline-block;
  text-decoration:none;
}

.oge-logo{
  display:block;
  width:min(330px, 34vw);
  height:auto;
  object-fit:contain;
  filter:none;
  opacity:.96;
}

/* Le logo reste visible mais secondaire par rapport au contenu */
.deco-oge .oge-logo-wrap{
  position:relative;
  z-index:4;
}

@media(max-width:900px){
  .oge-logo{
    width:min(280px, 42vw);
  }
  .oge-logo-wrap{
    justify-content:flex-start;
    margin-bottom:22px;
  }
}

@media(max-width:650px){
  .oge-logo{
    width:min(250px, 72vw);
  }
  .oge-logo-wrap{
    margin-bottom:18px;
  }
}


/* =========================================================
   V4.11 — SECTION OGE COMPACTE
   Logo à gauche + contenu complet à droite.
   ========================================================= */

.deco-oge .oge-layout{
  display:grid !important;
  grid-template-columns:minmax(240px, .78fr) minmax(0, 1.42fr) !important;
  grid-template-areas:
    "logo content" !important;
  column-gap:72px !important;
  align-items:center !important;
}

/* Le logo occupe proprement la colonne de gauche */
.deco-oge .oge-logo-wrap{
  grid-area:logo !important;
  margin:0 !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  align-self:center !important;
}

.deco-oge .oge-logo{
  width:min(300px, 24vw) !important;
  max-width:100% !important;
}

/* Tous les autres enfants de la section vont à droite */
.deco-oge .oge-layout > :not(.oge-logo-wrap){
  grid-column:2 !important;
}

/* Réduit l'espace vertical interne de la section OGE */
.deco-oge{
  padding-top:72px !important;
  padding-bottom:72px !important;
}

.deco-oge .oge-layout{
  row-gap:0 !important;
}

/* Titre et texte plus rapprochés */
.deco-oge h2{
  margin-top:8px !important;
  margin-bottom:26px !important;
}

.deco-oge p{
  max-width:700px !important;
}

.deco-oge .btn,
.deco-oge a.btn{
  margin-top:20px !important;
}

/* Le filigrane reste discret */
.deco-oge::after{
  width:28% !important;
  opacity:.13 !important;
}

@media(max-width:900px){
  .deco-oge .oge-layout{
    grid-template-columns:220px minmax(0,1fr) !important;
    column-gap:40px !important;
  }
  .deco-oge .oge-logo{
    width:min(230px, 30vw) !important;
  }
  .deco-oge{
    padding-top:58px !important;
    padding-bottom:58px !important;
  }
}

@media(max-width:700px){
  .deco-oge .oge-layout{
    display:block !important;
  }
  .deco-oge .oge-logo-wrap{
    justify-content:flex-start !important;
    margin-bottom:26px !important;
  }
  .deco-oge .oge-logo{
    width:min(240px, 68vw) !important;
  }
  .deco-oge .oge-layout > :not(.oge-logo-wrap){
    grid-column:auto !important;
  }
  .deco-oge{
    padding-top:48px !important;
    padding-bottom:48px !important;
  }
}


/* =========================================================
   V4.12 — LOGO FOOTER
   Même rendu que le logo du header, sans aplat.
   ========================================================= */
footer .footer-brand{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:max-content;
  max-width:100%;
  text-decoration:none;
  background:transparent !important;
  padding:0 !important;
  border:0 !important;
}

footer .footer-brand img{
  display:block;
  width:180px !important;
  height:auto !important;
  max-height:68px !important;
  object-fit:contain !important;
  transform:none !important;
  opacity:1 !important;
  filter:none !important;
}

@media(max-width:850px){
  footer .footer-brand img{
    width:165px !important;
    max-height:62px !important;
  }
}

@media(max-width:560px){
  footer .footer-brand img{
    width:138px !important;
    max-height:52px !important;
  }
}


/* =========================================================
   V4.13 — LOGO FOOTER BLANC / LISIBLE
   Modification par CSS uniquement : image source inchangée.
   ========================================================= */
footer .footer-brand{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:max-content !important;
  max-width:100% !important;
  background:transparent !important;
  padding:0 !important;
  border:0 !important;
  text-decoration:none !important;
}

footer .footer-brand img{
  display:block !important;
  width:180px !important;
  height:auto !important;
  max-height:68px !important;
  object-fit:contain !important;
  opacity:1 !important;
  transform:none !important;
  filter:brightness(0) invert(1) !important;
}

@media(max-width:850px){
  footer .footer-brand img{
    width:165px !important;
    max-height:62px !important;
  }
}

@media(max-width:560px){
  footer .footer-brand img{
    width:138px !important;
    max-height:52px !important;
  }
}


/* =========================================================
   V4.14 — HABILLAGE DISCRET SECTION CONTACT
   Visuel existant, ajouté uniquement par le code CSS.
   ========================================================= */

#contact{
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
}

#contact::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:-2 !important;
  background:
    linear-gradient(90deg,
      rgba(47,48,45,.97) 0%,
      rgba(47,48,45,.95) 42%,
      rgba(47,48,45,.87) 72%,
      rgba(47,48,45,.79) 100%),
    url("../images/section-contact.jpeg") center right / cover no-repeat !important;
}

#contact::after{
  content:"" !important;
  position:absolute !important;
  right:-4% !important;
  bottom:-10% !important;
  width:48% !important;
  height:72% !important;
  z-index:-1 !important;
  background:url("../images/section-contact.jpeg") center / cover no-repeat !important;
  opacity:.10 !important;
  filter:saturate(.75) contrast(.95) !important;
  mask-image:linear-gradient(to left, #000 20%, transparent 100%) !important;
  -webkit-mask-image:linear-gradient(to left, #000 20%, transparent 100%) !important;
}

#contact > *{
  position:relative !important;
  z-index:1 !important;
}

@media(max-width:800px){
  #contact::before{
    background:
      linear-gradient(rgba(47,48,45,.94), rgba(47,48,45,.94)),
      url("../images/section-contact.jpeg") center / cover no-repeat !important;
  }
  #contact::after{
    width:70% !important;
    opacity:.07 !important;
  }
}


/* =========================================================
   V4.15 — TYPOGRAPHIE MONTSERRAT
   Plus proche de la maquette historique Arpentage.
   ========================================================= */

html, body,
button, input, select, textarea{
  font-family:"Montserrat", Arial, Helvetica, sans-serif !important;
}

/* Titres principaux : géométriques, larges, affirmés */
h1, h2,
.hero h1,
.section-title{
  font-family:"Montserrat", Arial, Helvetica, sans-serif !important;
  font-weight:800 !important;
  letter-spacing:-0.035em !important;
}

/* Titres secondaires et cartes */
h3, h4,
.card h3,
.mission-card h3,
.client-card h3{
  font-family:"Montserrat", Arial, Helvetica, sans-serif !important;
  font-weight:700 !important;
  letter-spacing:-0.018em !important;
}

/* Surtitres / labels */
.eyebrow,
.overline,
.kicker,
.section-label{
  font-family:"Montserrat", Arial, Helvetica, sans-serif !important;
  font-weight:700 !important;
  letter-spacing:.16em !important;
}

/* Navigation, CTA et boutons */
nav a,
.btn,
button,
input[type="submit"]{
  font-family:"Montserrat", Arial, Helvetica, sans-serif !important;
  font-weight:600 !important;
  letter-spacing:-0.01em !important;
}

/* Corps : lisible sans être trop lourd */
p, li, label, input, select, textarea{
  font-family:"Montserrat", Arial, Helvetica, sans-serif !important;
  font-weight:400;
}

/* Hero proche de l'impact visuel de la maquette */
.hero h1{
  line-height:1.02 !important;
}

/* Grands titres de sections */
section h2{
  line-height:1.08 !important;
}

@media(max-width:700px){
  h1, h2, .hero h1{
    letter-spacing:-0.028em !important;
  }
}


/* =========================================================
   V4.16 — AFFINAGE TYPOGRAPHIQUE
   Plus d'élégance : moins de masse, plus d'air et de hiérarchie.
   ========================================================= */

/* Base */
body{
  font-weight:400 !important;
  letter-spacing:0 !important;
}

/* HERO */
.hero h1{
  font-weight:700 !important;
  font-size:clamp(46px, 5.15vw, 76px) !important;
  line-height:1.01 !important;
  letter-spacing:-0.040em !important;
  max-width:760px !important;
}
.hero p,
.hero .lead{
  font-weight:400 !important;
  font-size:clamp(18px, 1.55vw, 24px) !important;
  line-height:1.45 !important;
  max-width:720px !important;
}

/* Surtitres */
.eyebrow,
.overline,
.kicker,
.section-label{
  font-weight:600 !important;
  font-size:12px !important;
  letter-spacing:.18em !important;
}

/* Grands titres */
section h2,
.section h2,
.oge h2{
  font-weight:700 !important;
  font-size:clamp(38px, 4.15vw, 58px) !important;
  line-height:1.05 !important;
  letter-spacing:-0.035em !important;
}

/* Cabinet : un peu moins massif */
#cabinet h2{
  max-width:470px !important;
}

/* Missions : titre légèrement plus compact */
#expertises h2{
  max-width:840px !important;
}

/* Cartes */
.card h3,
.mission-card h3,
.client-card h3,
.deco-territoire h3{
  font-weight:600 !important;
  font-size:clamp(18px, 1.45vw, 23px) !important;
  line-height:1.2 !important;
  letter-spacing:-0.018em !important;
}

/* Numéros / données */
.mission-card .num,
.means .number,
.means .value{
  font-weight:700 !important;
}

/* Paragraphes */
p,
.card p,
.mission-card p,
.client-card p{
  font-weight:400 !important;
  font-size:15px !important;
  line-height:1.62 !important;
  letter-spacing:-0.005em !important;
}

/* Territoire sombre */
.deco-territoire h2{
  font-size:clamp(42px, 4.25vw, 60px) !important;
}
.deco-territoire p{
  font-size:16px !important;
  line-height:1.65 !important;
}

/* Clients */
#clients h2{
  max-width:820px !important;
}
#clients .client-card h3{
  font-size:20px !important;
}

/* Zone */
#zone h2{
  font-size:clamp(40px, 4vw, 56px) !important;
  max-width:980px !important;
}
#zone p{
  max-width:1040px !important;
}

/* Moyens */
.means h2{
  max-width:920px !important;
}
.means .number,
.means .value{
  font-size:42px !important;
  line-height:1 !important;
}
.means .label,
.means .caption{
  font-weight:600 !important;
  font-size:14px !important;
  line-height:1.35 !important;
}

/* OGE */
.deco-oge h2{
  font-size:clamp(40px, 4.05vw, 56px) !important;
  font-weight:700 !important;
  line-height:1.05 !important;
  max-width:720px !important;
}
.deco-oge p{
  font-size:15px !important;
  line-height:1.62 !important;
}

/* CTA */
.visual-cta h2,
.cta h2{
  font-weight:700 !important;
  font-size:clamp(38px, 3.8vw, 54px) !important;
  line-height:1.08 !important;
  letter-spacing:-0.03em !important;
}
.visual-cta p,
.cta p{
  font-size:15px !important;
  line-height:1.55 !important;
}

/* Contact */
#contact h2{
  font-weight:700 !important;
  font-size:clamp(38px, 3.8vw, 52px) !important;
  line-height:1.08 !important;
}
#contact label{
  font-weight:500 !important;
  font-size:13px !important;
}
#contact input,
#contact select,
#contact textarea{
  font-size:14px !important;
}

/* Navigation et boutons : plus fins */
nav a,
.btn,
button,
input[type="submit"]{
  font-weight:600 !important;
}
header nav a{
  font-size:13px !important;
}
.btn{
  font-size:14px !important;
}

/* Footer */
footer{
  font-size:12px !important;
}
footer a,
footer p{
  font-weight:400 !important;
}

/* Tablette */
@media(max-width:900px){
  .hero h1{
    font-size:clamp(42px, 7vw, 62px) !important;
  }
  section h2,
  .section h2{
    font-size:clamp(34px, 5.5vw, 48px) !important;
  }
  p,
  .card p,
  .mission-card p,
  .client-card p{
    font-size:14.5px !important;
  }
}

/* Mobile */
@media(max-width:650px){
  .hero h1{
    font-size:clamp(38px, 10vw, 50px) !important;
    letter-spacing:-0.035em !important;
  }
  section h2,
  .section h2,
  .deco-oge h2,
  #zone h2,
  #contact h2{
    font-size:clamp(31px, 8vw, 42px) !important;
    letter-spacing:-0.028em !important;
  }
  .eyebrow,
  .overline,
  .kicker,
  .section-label{
    font-size:11px !important;
    letter-spacing:.16em !important;
  }
}


/* =========================================================
   V4.17 — TITRES PLUS SOBRES / PLUS ÉLÉGANTS
   ========================================================= */

/* Hero : réduction nette */
.hero h1{
  font-size:clamp(40px, 4.25vw, 62px) !important;
  line-height:1.03 !important;
  letter-spacing:-0.035em !important;
  max-width:690px !important;
  font-weight:700 !important;
}

.hero p,
.hero .lead{
  font-size:clamp(17px, 1.25vw, 20px) !important;
  line-height:1.48 !important;
}

/* Tous les grands titres de sections */
section h2,
.section h2,
.oge h2{
  font-size:clamp(32px, 3.15vw, 46px) !important;
  line-height:1.08 !important;
  letter-spacing:-0.030em !important;
  font-weight:700 !important;
}

/* Cabinet */
#cabinet h2{
  font-size:clamp(34px, 3.25vw, 47px) !important;
  max-width:455px !important;
}

/* Missions */
#expertises h2{
  font-size:clamp(34px, 3.35vw, 48px) !important;
  max-width:790px !important;
}

/* Territoire */
.deco-territoire h2{
  font-size:clamp(34px, 3.35vw, 48px) !important;
  max-width:500px !important;
}

/* Clients */
#clients h2{
  font-size:clamp(34px, 3.25vw, 47px) !important;
  max-width:760px !important;
}

/* Zone */
#zone h2{
  font-size:clamp(34px, 3.3vw, 48px) !important;
  max-width:900px !important;
}

/* Moyens */
.means h2{
  font-size:clamp(34px, 3.25vw, 47px) !important;
  max-width:820px !important;
}

/* Ordre des Géomètres-Experts */
.deco-oge h2{
  font-size:clamp(34px, 3.25vw, 47px) !important;
  line-height:1.08 !important;
  max-width:650px !important;
}

/* CTA */
.visual-cta h2,
.cta h2{
  font-size:clamp(32px, 3vw, 44px) !important;
  line-height:1.1 !important;
  max-width:900px !important;
}

/* Contact */
#contact h2{
  font-size:clamp(34px, 3.2vw, 46px) !important;
  line-height:1.08 !important;
}

/* Surtitres légèrement plus discrets */
.eyebrow,
.overline,
.kicker,
.section-label{
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:.17em !important;
}

/* Mobile */
@media(max-width:650px){
  .hero h1{
    font-size:clamp(35px, 9vw, 44px) !important;
  }
  section h2,
  .section h2,
  #cabinet h2,
  #expertises h2,
  .deco-territoire h2,
  #clients h2,
  #zone h2,
  .means h2,
  .deco-oge h2,
  #contact h2,
  .visual-cta h2,
  .cta h2{
    font-size:clamp(29px, 7.5vw, 38px) !important;
  }
}


/* =========================================================
   V4.18 — Ajustements demandés
   - CTA "Votre projet" parfaitement centré
   - Numéros supprimés des cartes Missions
   - Cartes Missions plus compactes
   ========================================================= */

.cta .wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.cta .over,
.cta h2,
.cta p,
.cta .button{
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

#expertises .cards article{
  min-height:165px !important;
  padding:24px 30px 22px !important;
}

#expertises .cards article h3{
  margin:0 0 13px !important;
}

#expertises .cards article p{
  margin:0 !important;
}

@media(max-width:850px){
  #expertises .cards article{
    min-height:150px !important;
  }
}


/* V4.19 — ajustement du libellé du badge hero */
.hero .pill,
.hero .badge,
.hero .preprod,
.hero .eyebrow {
  max-width: 100%;
  white-space: normal;
}

/* V4.25 — PRODUCTION */


/* V4.27 — Google Maps dans le bloc Contact */
.maps-link{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin-top:.65rem;
  color:inherit;
  text-decoration:none;
  font-weight:600;
  border-bottom:1px solid rgba(255,255,255,.35);
  padding-bottom:.15rem;
  transition:opacity .2s ease,border-color .2s ease;
}
.maps-link:hover{
  opacity:.82;
  border-color:currentColor;
}
.maps-link span{
  font-size:1.05em;
  line-height:1;
}


/* V4.29 — confirmation d'envoi du formulaire */
#msg.success{
  display:block;
  margin-top:14px;
  padding:12px 15px;
  border:1px solid rgba(183,211,60,.65);
  background:rgba(183,211,60,.12);
  font-weight:600;
  line-height:1.45;
}
