
:root{
  --accent:#B5C248;
  --accent-deep:#8E9C2E;
  --ink:#353928;
  --muted:#737869;
  --paper:#ffffff;
  --warm:#F7F5EC;
  --line:rgba(53,57,40,.14);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Helvetica Neue",Arial,sans-serif;
  font-size:17px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
.site-header{
  position:absolute;
  z-index:20;
  top:0; left:0; right:0;
  height:104px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  max-width:var(--max);
  margin:auto;
  padding:0 34px;
}
.brand img{
  display:block;
  width:112px;
  height:auto;
}
.desktop-nav{
  display:flex;
  gap:34px;
}
.desktop-nav a{
  text-decoration:none;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero{
  position:relative;
  min-height:760px;
  height:100vh;
  max-height:980px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:linear-gradient(110deg,#fff 0%,#fff 54%,#f8f7ef 100%);
}
.hero-copy{
  position:relative;
  z-index:2;
  width:min(590px,calc(100% - 68px));
  margin-left:max(34px,calc((100vw - var(--max))/2 + 34px));
  padding-top:50px;
}
.eyebrow{
  margin:0 0 22px;
  color:var(--accent-deep);
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
h1,h2,h3{
  margin-top:0;
  font-weight:300;
  letter-spacing:-.035em;
}
h1{
  margin-bottom:25px;
  font-size:clamp(62px,7vw,108px);
  line-height:.96;
}
h2{
  margin-bottom:0;
  font-size:clamp(44px,5vw,72px);
  line-height:1.04;
}
h3{
  margin-bottom:18px;
  font-size:34px;
  line-height:1.12;
}
.hero-intro{
  max-width:540px;
  margin:0 0 34px;
  color:var(--muted);
  font-size:20px;
  line-height:1.6;
}
.button{
  display:inline-block;
  padding:13px 20px;
  border:1px solid var(--accent-deep);
  color:var(--ink);
  text-decoration:none;
  font-size:14px;
}
.button:hover{background:var(--accent);border-color:var(--accent)}
.hero-mark{
  position:absolute;
  right:-2vw;
  top:50%;
  width:min(58vw,820px);
  transform:translateY(-50%);
  opacity:.18;
  pointer-events:none;
}
.hero-mark img{display:block;width:100%}
.section{padding:120px 34px}
.section-light{background:var(--warm)}
.section-inner{max-width:var(--max);margin:auto}
.split{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:90px;
  align-items:start;
}
.prose{max-width:690px}
.prose p{margin:0 0 24px}
.prose .lead{font-size:21px;line-height:1.65}
blockquote{
  margin:38px 0 0;
  padding:24px 0 0;
  border-top:1px solid var(--accent);
  color:var(--accent-deep);
  font-size:22px;
  font-style:italic;
}
.section-heading{max-width:760px;margin-bottom:70px}
.service-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
}
.service-card{
  position:relative;
  padding:42px;
  border:1px solid var(--line);
  background:#fff;
}
.service-num{
  display:block;
  margin-bottom:42px;
  color:var(--accent-deep);
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
}
.service-card>p{color:var(--muted)}
.service-subtitle{font-style:italic}
.service-details{
  margin-top:32px;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.service-details p{margin:0 0 18px}
.service-details ul{
  margin:12px 0 0;
  padding:0;
  list-style:none;
}
.service-details li{
  padding:9px 0;
  border-bottom:1px solid var(--line);
}
.mini-title{
  color:var(--accent-deep);
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.note{
  margin-top:26px!important;
  color:var(--muted);
  font-size:14px;
}
.section-contact{
  padding-bottom:55px;
  background:#33372a;
  color:#f7f7f1;
}
.section-contact .eyebrow{color:var(--accent)}
.contact-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:90px;
}
.contact-intro{
  max-width:470px;
  margin-top:28px;
  color:rgba(247,247,241,.72);
}
.contact-card{
  border-top:1px solid rgba(255,255,255,.22);
}
.contact-row{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:25px;
  padding:22px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.contact-row>span{
  color:var(--accent);
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.contact-row p{margin:0}
.contact-row a{text-decoration:none}
.cancellation{
  margin-top:30px;
  padding:26px;
  background:rgba(255,255,255,.06);
}
.cancellation p:last-child{margin-bottom:0;color:rgba(247,247,241,.75)}
.footer-signature{
  max-width:var(--max);
  margin:95px auto 0;
  padding-top:30px;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;
  align-items:center;
  gap:18px;
  color:rgba(247,247,241,.55);
  font-size:12px;
}
.footer-signature img{width:54px;opacity:.72}

@media(max-width:900px){
  .site-header{height:90px;padding:0 22px}
  .brand img{width:96px}
  .desktop-nav{display:none}
  .hero{
    min-height:700px;
    height:auto;
    padding:130px 0 90px;
  }
  .hero-copy{
    width:calc(100% - 44px);
    margin:0 22px;
    padding:0;
  }
  .hero-mark{
    width:95vw;
    right:-40vw;
    top:54%;
    opacity:.12;
  }
  h1{font-size:clamp(56px,17vw,86px)}
  .section{padding:86px 22px}
  .split,.service-grid,.contact-grid{display:block}
  .prose,.service-card,.contact-card{margin-top:46px}
  .service-card{padding:32px 26px}
  .service-card+ .service-card{margin-top:22px}
  .contact-row{grid-template-columns:1fr;gap:7px}
  .footer-signature{
    margin-top:68px;
    flex-direction:column;
    text-align:center;
  }
}
@media(max-width:520px){
  body{font-size:16px}
  h2{font-size:42px}
  h3{font-size:29px}
  .hero-intro{font-size:18px}
  .section{padding-top:74px;padding-bottom:74px}
}


/* V9 — preserve the original V1 hero composition exactly; no navigation */
.site-header{display:none!important}

/* Larger left-aligned closing signature */
.footer-signature{
  align-items:flex-start;
  justify-content:flex-start;
  text-align:left;
  flex-direction:column;
  gap:10px;
}
.footer-signature img{
  width:92px;
  opacity:.72;
}
@media(max-width:900px){
  .footer-signature{
    align-items:flex-start;
    text-align:left;
  }
  .footer-signature img{
    width:82px;
  }
}


/* V10 — typography and Services language from V8 */
body{
  font-family:"Avenir Next","Helvetica Neue",Arial,sans-serif;
  font-size:17px;
  line-height:1.68;
}
h1,h2,h3{
  font-weight:300;
  letter-spacing:-.04em;
}

/* Services — V8 editorial layout */
.care{
  padding:92px max(32px,calc((100vw - var(--max))/2));
}
.care-head{
  max-width:720px;
  margin-bottom:48px;
}
.care-row{
  display:grid;
  grid-template-columns:58px .9fr 1.1fr;
  gap:30px;
  padding:44px 0;
  border-top:1px solid var(--line);
}
.care-row:last-child{
  border-bottom:1px solid var(--line);
}
.care-index{
  color:var(--green-deep);
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  padding-top:6px;
}
.care-label{
  margin:0 0 7px!important;
  color:var(--green-deep)!important;
  font-size:11px!important;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.care-title p{
  margin:0;
  color:var(--muted);
  font-size:14px;
}
.care-text{
  max-width:590px;
}
.care-text>p{
  margin-top:0;
}
.additions{
  margin-top:23px;
  padding-left:19px;
  border-left:3px solid var(--green);
}
.additions span{
  display:block;
  margin-bottom:10px;
  color:var(--green-deep);
  font-size:11px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.additions p{
  margin:5px 0;
}
.disclaimer{
  margin-top:23px!important;
  color:var(--muted);
  font-size:13px;
}

@media(max-width:900px){
  .care{
    padding:76px 22px;
  }
  .care-head{
    margin-bottom:36px;
  }
  .care-row{
    grid-template-columns:36px 1fr;
    gap:12px 18px;
    padding:36px 0;
  }
  .care-text{
    grid-column:2;
  }
}
@media(max-width:520px){
  body{font-size:16px}
  h1{font-size:58px}
  h2{font-size:42px}
  h3{font-size:29px}
}


/* V11 — Informations pratiques: warm light V8 treatment */
#contact{
  background:linear-gradient(110deg,var(--cream-2),#FAF8F1) !important;
  color:var(--ink) !important;
}
#contact .kicker{
  color:var(--green-deep) !important;
}
#contact .contact-intro>p:last-child{
  color:var(--muted) !important;
}
#contact .contact-data,
#contact dl{
  border-color:rgba(55,58,45,.18) !important;
}
#contact dl>div{
  border-color:rgba(55,58,45,.13) !important;
}
#contact dt{
  color:var(--green-deep) !important;
}
#contact .cancel{
  background:#fff !important;
  color:var(--ink) !important;
  border-left:3px solid var(--green);
}
#contact .cancel strong{
  color:var(--green-deep) !important;
}
#contact .cancel p{
  color:var(--muted) !important;
}
#contact footer{
  border-color:rgba(55,58,45,.12) !important;
  color:rgba(55,58,45,.48) !important;
}


/* V12 — Contact / cancellation / copyright zoning */

/* Contact uses exactly the same warm background as À propos */
#contact{
  background:var(--cream) !important;
  color:var(--ink) !important;
}

/* Cancellation is a distinct white card */
#contact .cancel{
  background:#fff !important;
  color:var(--ink) !important;
  border-left:3px solid var(--green);
}

/* Copyright becomes its own full-width white closing zone */
.copyright-zone{
  width:100%;
  background:#fff;
  padding:30px max(32px,calc((100vw - var(--max))/2)) 34px;
}
.copyright-zone footer{
  margin:0;
  padding-top:0;
  border-top:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:10px;
  color:rgba(55,58,45,.48);
  font-size:11px;
  text-align:left;
}
.copyright-zone footer img{
  width:92px;
  opacity:.72;
}

@media(max-width:900px){
  .copyright-zone{
    padding:28px 22px 32px;
  }
  .copyright-zone footer{
    align-items:flex-start;
    text-align:left;
  }
  .copyright-zone footer img{
    width:82px;
  }
}


/* V13 — exact requested zoning, corrected for the V1 class structure */

/* CONTACT: exactly the same background as À propos (.section-light) */
#contact.section-contact{
  background:var(--warm) !important;
  color:var(--ink) !important;
}

/* Contact typography/lines adapted to the light background */
#contact .eyebrow{
  color:var(--accent-deep) !important;
}
#contact .contact-intro{
  color:var(--muted) !important;
}
#contact .contact-card{
  border-top:1px solid var(--line) !important;
}
#contact .contact-row{
  border-bottom:1px solid var(--line) !important;
}
#contact .contact-row > span{
  color:var(--accent-deep) !important;
}
#contact .contact-row a{
  color:var(--ink) !important;
}

/* POLITIQUE D’ANNULATION: white rectangle */
#contact .cancellation{
  background:#fff !important;
  color:var(--ink) !important;
  border-left:3px solid var(--accent);
}
#contact .cancellation .mini-title{
  color:var(--accent-deep) !important;
}
#contact .cancellation p{
  color:var(--muted) !important;
}

/* COPYRIGHT: independent full-width white closing band */
.copyright-zone{
  width:100%;
  background:#fff !important;
  padding:32px max(34px,calc((100vw - var(--max))/2)) 36px;
}
.copyright-zone .footer-signature{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:#fff !important;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:10px;
  color:rgba(53,57,40,.52) !important;
  text-align:left;
}
.copyright-zone .footer-signature img{
  width:92px;
  opacity:.72;
}

@media(max-width:900px){
  .copyright-zone{
    padding:28px 22px 32px;
  }
  .copyright-zone .footer-signature{
    align-items:flex-start;
    text-align:left;
  }
  .copyright-zone .footer-signature img{
    width:82px;
  }
}


/* V14 — Contact labels use the same green as the Contact heading */
#contact .contact-row > span{
  color:var(--accent-deep) !important;
}


/* V15 — Services accent labels + vertical line for add-ons */
#services .care-label,
#services .additions span{
  color:var(--accent-deep) !important;
}

#services .additions{
  border-left:3px solid var(--accent) !important;
  padding-left:20px;
}


/* V17 — Services heading in ENSO green */
#services .section-heading .eyebrow,
#services .care-head .kicker,
#services .care-head .eyebrow{
  color:var(--accent-deep) !important;
}


/* V18 — unify section labels and Contact field labels */
#services .eyebrow,
#services .kicker,
#services .section-heading .eyebrow,
#services .care-head .kicker{
  color:var(--accent-deep) !important;
  font-size:12px !important;
  font-weight:700 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
  font-family:inherit !important;
}

/* Contact field labels use exactly the Contact section accent */
#contact .contact-row > span{
  color:var(--accent-deep) !important;
}


/* V19 — darker Contact field labels */
#contact .contact-row > span{
  color:#6F7B1F !important;
  font-weight:700 !important;
}


/* V20 — spacing refinement: calmer, denser, still airy */

/* Hero: slightly less vertical expanse */
.hero{
  min-height:650px !important;
  height:84vh !important;
  max-height:820px !important;
}

/* About: reduce vertical padding while preserving the two-column rhythm */
#apropos.section{
  padding-top:96px !important;
  padding-bottom:96px !important;
}
#apropos .split{
  gap:76px !important;
}
#apropos .prose p{
  margin-bottom:20px;
}
#apropos blockquote{
  margin-top:30px;
}

/* Services: tighten section and internal vertical rhythm */
#services{
  padding-top:94px !important;
  padding-bottom:94px !important;
}
#services .section-heading,
#services .care-head{
  margin-bottom:52px !important;
}
#services .service-card{
  padding-top:36px;
  padding-bottom:36px;
}
#services .care-row{
  padding-top:38px !important;
  padding-bottom:38px !important;
}
#services .service-num{
  margin-bottom:32px;
}
#services .service-details,
#services .additions{
  margin-top:22px !important;
}

/* Contact: less empty vertical space and a tighter close */
#contact.section-contact{
  padding-top:92px !important;
  padding-bottom:46px !important;
}
#contact .contact-grid{
  gap:72px !important;
}
#contact .contact-row{
  padding-top:18px;
  padding-bottom:18px;
}
#contact .cancellation{
  margin-top:24px;
  padding:22px;
}

/* Copyright: compact closing signature */
.copyright-zone{
  padding-top:24px !important;
  padding-bottom:28px !important;
}
.copyright-zone .footer-signature{
  gap:8px !important;
}

@media(max-width:900px){
  .hero{
    min-height:570px !important;
    height:auto !important;
  }
  #apropos.section,
  #services,
  #contact.section-contact{
    padding-top:72px !important;
    padding-bottom:72px !important;
  }
  #services .section-heading,
  #services .care-head{
    margin-bottom:38px !important;
  }
  #services .care-row{
    padding-top:32px !important;
    padding-bottom:32px !important;
  }
  #contact .contact-card{
    margin-top:36px !important;
  }
  .copyright-zone{
    padding-top:22px !important;
    padding-bottom:26px !important;
  }
}
