:root{
  --bone:#F7ECE5;
  --bone-deep:#EFDACE;
  --ink:#3F332D;
  --ink-soft:#8A796F;
  --moss:#E28FA6;
  --moss-deep:#6B4650;
  --ochre:#DB9DAF;
  --clay:#DB9DAF;
  --line:#EAD9CD;
  --white:#FFFAF6;
}

body{
  background:var(--bone);
  color:var(--ink);
  font-family:'Work Sans', sans-serif;
  font-size:17px;
  line-height:1.6;
}

h1,h2,h3{
  font-family:'Fraunces', serif;
  font-weight:500;
  color:var(--moss-deep);
  line-height:1.15;
  margin:0;
}

p{margin:0;}
a{color:inherit;}

.wrap{max-width:1040px;margin:0 auto;padding:0 32px;}

.note{
  max-width:640px; margin:0 auto 8px; text-align:center;
  font-family:'Work Sans',sans-serif; font-size:13px; color:var(--ink-soft);
  letter-spacing:.02em; padding:10px 0;
}

/* HERO */
.hero{
  display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;
  padding:76px 32px 84px; max-width:1040px; margin:0 auto;
}
.hero .eyebrow{font-size:15px; color:var(--clay); font-style:italic; font-family:'Fraunces',serif; margin-bottom:14px;}
.hero h1{font-size:44px; letter-spacing:-.01em;}
.hero p.lead{margin-top:20px; font-size:18px; color:var(--ink-soft); max-width:46ch;}
.hero .symptoms{margin-top:26px; display:flex; flex-wrap:wrap; gap:10px 10px;}
.hero .symptoms span{
  font-size:13.5px; color:var(--moss-deep); background:var(--bone-deep);
  border:1px solid var(--line); padding:6px 12px; border-radius:20px;
}
.hero .ctas{margin-top:34px; display:flex; gap:14px; flex-wrap:wrap;}
.btn-primary{
  background:var(--moss); color:var(--white); text-decoration:none;
  padding:14px 26px; border-radius:2px; font-size:15px; font-weight:500;
}
.btn-secondary{
  border:1px solid var(--ink); color:var(--ink); text-decoration:none;
  padding:13px 25px; border-radius:2px; font-size:15px;
}
.hero-visual{
  aspect-ratio:3/5; background:var(--moss-deep);
  border-radius:2px 60px 2px 60px;
  display:flex; align-items:flex-end; padding:20px;
  background-image:linear-gradient(165deg,#F1D2C4,#DD9E9B);
}
.hero-visual img{width:100%;height:100%;object-fit:cover;}

@media(max-width:800px){
  .hero{grid-template-columns:1fr; padding-top:48px;}
  .hero h1{font-size:34px;}
}

/* SECTIONS */
section{padding:70px 32px;}
.section-inner{max-width:1040px; margin:0 auto;}
.divider{border:none; border-top:1px solid var(--line); max-width:1040px; margin:0 auto;}

/* COMPRENDRE */
.comprendre{background:var(--white);}
.comprendre h2{font-size:30px; margin-bottom:22px;}
.comprendre .cols{display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:30px;}
.comprendre p{color:var(--ink-soft); max-width:60ch;}
.comprendre .cols h3{font-size:18px; color:var(--moss); margin-bottom:10px;}
.causes-list{list-style:none; padding:0; margin:14px 0 0; display:flex; flex-direction:column; gap:8px;}
.causes-list li{padding-left:18px; position:relative; color:var(--ink-soft); font-size:15.5px;}
.causes-list li::before{content:"—"; position:absolute; left:0; color:var(--clay);}
@media(max-width:800px){ .comprendre .cols{grid-template-columns:1fr;} }

/* TECHNIQUE PAGES */
.tech-hero{padding:56px 32px 40px; max-width:820px; margin:0 auto;}
.back-link{display:inline-block; margin-bottom:18px; font-size:14px;}
.tech-hero .tagline{display:block; font-family:'Fraunces',serif; font-style:italic; color:var(--clay); font-size:17px; margin-top:10px;}
.tech-hero h1{font-size:36px; margin-top:12px;}

.tech-body{padding:10px 32px 60px; max-width:820px; margin:0 auto;}
.tech-body p{color:var(--ink-soft); margin-bottom:18px; font-size:16.5px; max-width:66ch;}
.tech-body h2{font-size:21px; margin:36px 0 14px; color:var(--moss-deep);}
.indications{background:var(--bone-deep); border-radius:2px; padding:24px 26px; margin:14px 0;}
.indications p{color:var(--ink-soft); font-size:15px; margin:0;}
.note-box{border-left:2px solid var(--moss); padding:16px 20px; margin:20px 0; font-style:italic; color:var(--ink-soft); font-size:15px; background:var(--white);}

.tech-cta{text-align:center; padding:50px 32px 70px;}
.tech-cta .btn-primary{margin-top:18px; display:inline-block;}

/* APPROCHES */
.approches h2{font-size:30px; margin-bottom:10px;}
.approches > .section-inner > p.intro{color:var(--ink-soft); max-width:60ch; margin-bottom:34px;}
.approches-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.approche-card{background:var(--white); border:1px solid var(--line); border-radius:2px; padding:28px; display:flex; flex-direction:column; gap:10px;}
.approche-card .tag{font-family:'Fraunces',serif; font-style:italic; color:var(--clay); font-size:13.5px;}
.approche-card h3{font-size:19px; color:var(--moss-deep); font-weight:500;}
.approche-card p{color:var(--ink-soft); font-size:14.5px; flex:1;}
.approche-card a.more{font-size:14px; color:var(--moss); text-decoration:none; font-weight:500; margin-top:6px;}
@media(max-width:800px){ .approches-grid{grid-template-columns:1fr;} }

/* QUOTES */
.quote-flow{display:flex; flex-direction:column; gap:0;}
.quote{padding:26px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:40px 1fr; gap:18px;}
.quote .mark{font-family:'Fraunces',serif; font-size:34px; color:var(--clay); line-height:1;}
.quote p{font-size:16.5px; color:var(--ink); max-width:60ch;}
.quote .who{margin-top:10px; font-size:13.5px; color:var(--ink-soft);}

/* TARIFS */
.tarif-row{display:flex; justify-content:space-between; align-items:baseline; padding:18px 0; border-top:1px solid var(--line); max-width:640px;}
.tarif-row .label{font-size:16px;}
.tarif-row .price{font-family:'Fraunces',serif; font-size:20px; color:var(--moss-deep);}
.tarifs .infos{margin-top:26px; color:var(--ink-soft); font-size:14.5px; max-width:56ch;}

/* CONTACT FINAL */
.contact-final{text-align:center; padding:90px 32px;}
.contact-final h2{font-size:32px; max-width:20ch; margin:0 auto;}
.contact-final .btn-primary{margin-top:28px; display:inline-block;}
.contact-final .tel{margin-top:16px; display:block; color:var(--ink-soft); font-size:14.5px;}
