
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');

:root {
  --ink: #171717;
  --muted: #6d6d68;
  --paper: #fbfaf7;
  --line: #dedbd3;
  --accent: #8d3f2f;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "DM Sans", system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
.site { overflow: hidden; }
.container { width: min(var(--max), calc(100% - 64px)); margin: 0 auto; }
header.nav {
  position: absolute; z-index: 5; top: 0; left: 0; right: 0;
  padding: 26px 0; color: var(--ink);
  mix-blend-mode: normal;
}
.nav-inner { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand { font-family:"Libre Baskerville", serif; font-size:26px; font-weight:400; letter-spacing:-.015em; line-height:1.15; }
.nav-links { display:flex; gap:28px; font-size:14px; }
.nav-links a { opacity:.9; }
.hero { min-height:0; height:auto; display:block; position:relative; background:var(--paper); padding-top:84px; }
.hero::before { display:none; }
.hero-image { position:relative; inset:auto; display:block; width:100%; height:auto; object-fit:contain; object-position:center; }
.identity { padding:64px 0 76px; }
.identity h1 {
  font-size:clamp(42px,5vw,68px); margin:0 0 12px; letter-spacing:-.035em;
}
.identity-tagline {
  margin:0; max-width:760px; font-family:"Libre Baskerville",serif;
  font-style:italic; font-size:clamp(18px,2vw,24px); line-height:1.45;
}
.intro { padding: 150px 0 62px; position:relative; }
.intro .container { display:flex; justify-content:flex-end; }
.intro p {
  width:72%; font-family:"Libre Baskerville",serif; font-size:15px; font-style:italic;
  line-height:1.75; max-width:720px; margin:0; color:var(--muted);
  padding-top:32px; border-top:1px solid var(--line);
}
.intro p span { display:block; }
.section { padding: 90px 0; }
.section + .section { border-top:1px solid var(--line); }
.section-grid { display:grid; grid-template-columns: 28% 1fr; gap:8%; }
.section h2 { font-size:clamp(34px,4vw,58px); margin:0; position:sticky; top:30px; }
.copy { max-width:760px; }
.copy p { margin:0 0 25px; }
.quote {
  margin:58px 0 0; padding:0 0 0 28px; border-left:1px solid var(--ink);
  font-family:"Libre Baskerville",serif; font-style:italic; font-size:20px; line-height:1.55;
}
.quote cite { display:block; margin-top:17px; font-family:"DM Sans",sans-serif; font-style:normal; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.steps { margin-top:50px; border-top:1px solid var(--line); }
.step { display:grid; grid-template-columns:90px 1fr; gap:30px; padding:32px 0; border-bottom:1px solid var(--line); }
.step-no { font-family:"Libre Baskerville",serif; color:var(--muted); }
.step h3 { font-size:27px; margin:0 0 10px; }
.step p { margin:0; max-width:700px; }
.cta-wrap { text-align:center; padding:100px 0; }
.cta {
  display:inline-flex; align-items:center; justify-content:center;
  padding:17px 28px; border:1px solid var(--ink); border-radius:999px;
  font-size:14px; letter-spacing:.04em; transition:.2s ease;
}
.cta:hover { background:var(--ink); color:white; }
.practice { background:#f0eee8; }
.practice-lead { font-family:"Libre Baskerville",serif; font-size:17px; line-height:1.7; max-width:900px; }
.bio-hero { padding:145px 0 70px; }
.bio-layout { display:grid; grid-template-columns: 42% 1fr; gap:8%; align-items:start; }
.bio-image { width:100%; display:block; aspect-ratio: 4/5; object-fit:cover; object-position:center top; }
.bio-copy h1 { font-size:clamp(45px,6vw,76px); margin:0 0 45px; }
.bio-copy p { margin:0 0 25px; }
.bio-copy .closing {
  font-family:"Libre Baskerville",serif; font-size:28px; line-height:1.35; margin-top:42px;
}
.footer { border-top:1px solid var(--line); padding:35px 0 50px; font-size:13px; color:var(--muted); }
.footer-inner { display:flex; justify-content:space-between; gap:20px; }
@media (max-width: 800px) {
  .container { width:min(var(--max), calc(100% - 38px)); }
  header.nav { padding:20px 0; }
  .nav-links { gap:15px; }
  .hero { min-height:70vh; }
  .hero-image { object-position:58% center; }
  .identity { padding:44px 0 54px; }
  .intro { padding: 150px 0 62px; position:relative; }
  .intro .container { display:block; }
  .intro p { width:100%; }
  .section { padding:65px 0; }
  .section-grid, .bio-layout { grid-template-columns:1fr; gap:38px; }
  .section h2 { position:static; }
  .bio-hero { padding:110px 0 50px; }
  .bio-image { aspect-ratio: 1/1.1; }
  .step { grid-template-columns:55px 1fr; gap:15px; }
  .footer-inner { flex-direction:column; }
}

strong { font-weight:400; }

.hero-content h1 { color:var(--ink); font-size:clamp(24px,2.6vw,34px); margin:0; letter-spacing:-.015em; font-weight:400; }

.intro::after {
  content:"";
  display:block;
  width:min(var(--max), calc(100% - 64px));
  margin:54px auto 0;
  border-bottom:1px solid var(--line);
}

.intro + .section { padding-top: 58px; }

@media (max-width: 800px) {
  .brand { font-size:21px; max-width:72%; font-weight:400; }
  .hero { min-height:0; height:auto; padding-top:76px; }
  .hero-image { position:relative; width:100%; height:auto; object-fit:contain; object-position:center; }
  .hero-content h1 { font-size:23px; }
}

/* Final homepage refinements */
header.nav { color:#555; }
.nav-inner { align-items:flex-start; }
.brand { display:none; }
.nav-links { margin-left:auto; font-family:"Libre Baskerville",serif; font-size:14px; }
.nav-links a { font-family:"Libre Baskerville",serif; font-size:14px; font-weight:400; color:#555; }

.hero { position:relative; padding-top:0; background:var(--paper); }
.hero-image { width:100%; height:auto; display:block; object-fit:contain; }
.hero-title { position:absolute; left:0; right:0; top:12%; color:#666; }
.hero-title h1 { font-family:"Libre Baskerville",serif; font-weight:400; font-size:clamp(58px,7.5vw,112px); line-height:.98; letter-spacing:-.045em; margin:0; max-width:760px; }
.hero-title p { font-family:"Libre Baskerville",serif; font-style:italic; font-size:clamp(17px,1.8vw,25px); margin:26px 0 0; color:#666; }

.intro { padding:52px 0 54px; }
.opening-quote { margin:0 auto; max-width:720px; text-align:center; border:0; font-family:"Libre Baskerville",serif; font-size:15px; font-style:italic; line-height:1.65; color:#666; }
.opening-quote cite { display:block; margin-top:20px; font-family:"Libre Baskerville",serif; font-size:13px; font-style:italic; color:#777; }
.intro::after { margin-top:42px; }
.intro + .section { padding-top:50px; }

.quote { margin:42px 0; }
.after-quote { margin-top:42px !important; }
#etapes .quote:first-of-type { margin-top:52px; }
.practice .copy p { font-weight:400; }
@media (max-width:800px) {
  .nav-links { gap:14px; }
  .nav-links a { font-size:12px; }
  .hero-title { top:14%; }
  .hero-title h1 { font-size:clamp(40px,11vw,62px); max-width:70%; }
  .hero-title p { font-size:14px; max-width:68%; margin-top:14px; }
  .intro { padding:40px 0 42px; }
}

/* Final CTA spacing */
.cta-wrap { padding: 38px 0; }
.final-contact { padding: 46px 0 52px; }
@media (max-width:800px) {
  .cta-wrap { padding: 30px 0; }
  .final-contact { padding: 36px 0 42px; }
}

/* Julie Coudry portrait: very subtle luminosity reduction */
.bio-image { filter: brightness(0.94); }

/* v4: two micro-adjustments only */
.hero-title h1 { font-size: clamp(52px, 6.8vw, 98px); }
.bio-title, .bio-hero h1, .bio-page h1, main.bio h1 { color: #8a8a86; }

/* V4 — seule modification : même police pour le titre Julie Coudry */
.bio-copy h1,
.bio h1,
body.bio-page h1 {
  font-family: "Libre Baskerville", serif;
}

/* V4 — titre Julie Coudry : même police ET même couleur que le titre principal */
.bio-copy h1,
.bio h1,
body.bio-page h1 {
  font-family: "Libre Baskerville", serif;
  color: #666;
}
