/* Fichiers Sofia v4.101 locaux, inchangés ; licence OFL.txt dans assets/fonts/. */
@font-face {
  font-family: "Sofia Sans";
  src: url("assets/fonts/sofia-sans-regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Sofia Sans";
  src: url("assets/fonts/sofia-sans-bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
@font-face {
  font-family: "Sofia Sans Condensed";
  src: url("assets/fonts/sofia-sans-condensed-bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

/* Couleurs de marque ; les variables de thème décrivent leur usage à l’écran. */
:root {
  --graphite: #282b30;
  --oxyde: #b74632;
  --rose: #f5e4df;
  --paper: #faf9f6;
  --white: #fff;
  color-scheme: light;
  --background: var(--paper);
  --surface: var(--white);
  --text: var(--graphite);
  --accent: var(--oxyde);
  --line: #d8d6d2;
  --rule-strong: var(--graphite);
  --focus: var(--oxyde);
  --button-bg: var(--oxyde);
  --button-text: var(--white);
  --button-hover-bg: var(--graphite);
  --button-hover-text: var(--white);
  --contact-bg: var(--rose);
  --contact-line: #c6b6b1;
  --case-bg: var(--graphite);
  --case-text: var(--paper);
  --case-line: #777a7f;
  --logo-light-display: block;
  --logo-dark-display: none;
  font-family: "Sofia Sans", Arial, sans-serif;
  font-synthesis: none;
  color: var(--text);
  background: var(--background);
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --background: var(--graphite);
  --surface: #202226;
  --text: var(--paper);
  --accent: var(--rose);
  --line: #666b73;
  --rule-strong: #a3a7ad;
  --focus: var(--rose);
  --button-hover-bg: var(--rose);
  --button-hover-text: var(--graphite);
  --contact-bg: #373035;
  --contact-line: #7c7075;
  --case-bg: #1c1e22;
  --logo-light-display: none;
  --logo-dark-display: block;
}

/* Repli système si JavaScript est désactivé ou ne se charge pas. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --background: var(--graphite);
    --surface: #202226;
    --text: var(--paper);
    --accent: var(--rose);
    --line: #666b73;
    --rule-strong: #a3a7ad;
    --focus: var(--rose);
    --button-hover-bg: var(--rose);
    --button-hover-text: var(--graphite);
    --contact-bg: #373035;
    --contact-line: #7c7075;
    --case-bg: #1c1e22;
    --logo-light-display: none;
    --logo-dark-display: block;
  }
}

*{box-sizing:border-box}body{margin:0;font-size:18px;line-height:1.6}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}a:hover{text-decoration:underline}a:focus-visible{outline:3px solid var(--focus);outline-offset:6px}main:focus{outline:none}.container{width:min(100% - 96px,1248px);margin-inline:auto}
.header{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-block:32px;border-bottom:1px solid var(--line)}.brand{display:block;flex-shrink:0}.brand img{display:block;width:270px;height:auto}nav{display:flex;gap:32px;font-size:16px}nav a{text-decoration:none;padding-block:12px}nav a:last-child{color:var(--accent)}.skip-link{position:absolute;left:24px;top:12px;transform:translateY(-200%);padding:12px 20px;background:var(--surface);z-index:2}.skip-link:focus{transform:translateY(0)}
.hero{padding-top:72px;display:grid;grid-template-columns:1fr 280px;column-gap:70px}.eyebrow{font-size:13px;text-transform:uppercase;letter-spacing:.13em;font-weight:700;line-height:1.6;color:var(--accent);margin:0 0 24px}h1,h2,h3,p{margin-top:0}h1{font-family:"Sofia Sans Condensed",Arial,sans-serif;font-size:clamp(64px,7vw,104px);line-height:1.02;letter-spacing:-.01em;font-weight:700;margin-bottom:28px}h1 span{color:var(--accent)}.intro{max-width:56ch;font-size:21px;line-height:1.6;margin-bottom:28px}.button{display:inline-flex;gap:30px;align-items:center;background:var(--button-bg);color:var(--button-text);padding:15px 24px;font-size:16px;font-weight:700;text-decoration:none}.button:hover{background:var(--button-hover-bg);color:var(--button-hover-text);text-decoration:none}.hero-aside{align-self:center;padding-top:20px}.hero-aside img{width:225px;height:225px;object-fit:contain;display:block;margin:0 auto 35px}.hero-aside p{font-size:16px;line-height:1.7;margin-bottom:20px}.aside-line{display:block;width:44px;height:3px;background:var(--oxyde)}.hero-foot{grid-column:1/-1;border-top:1px solid var(--line);display:flex;justify-content:space-between;margin-top:64px;padding-block:24px;font-size:14px}.hero-foot>a{text-decoration:none}.hero-foot>a span{margin-left:24px}
.interventions{background:var(--surface);padding-block:88px}.section-heading{display:grid;grid-template-columns:1fr 1fr;column-gap:72px;align-items:end;margin-bottom:48px}.section-heading .eyebrow{grid-column:1/-1}h2{font-family:"Sofia Sans Condensed",Arial,sans-serif;font-size:clamp(36px,3.6vw,54px);font-weight:700;letter-spacing:0;line-height:1.08;margin-bottom:24px}.section-heading h2{margin-bottom:0}.section-heading>p:last-child{max-width:430px;margin-bottom:0}.intervention-list{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.intervention-list article{border-top:1px solid var(--rule-strong);padding-top:23px;display:flex;flex-direction:column}.number{font-size:14px;color:var(--accent);margin-bottom:20px}h3{font-size:24px;line-height:1.25;letter-spacing:-.01em;margin-bottom:16px}.intervention-list article>p{font-size:17px;line-height:1.65;margin-bottom:24px}.intervention-list .outcome{font-size:14px;font-weight:700;margin-top:auto;margin-bottom:0;padding-left:13px;border-left:2px solid var(--oxyde)}
.method{display:grid;grid-template-columns:1fr 1fr;gap:85px;padding-block:96px}.method-intro>p:last-child{font-size:17px;max-width:400px}.steps{list-style:none;counter-reset:step;padding:0;margin:0}.steps li{counter-increment:step;position:relative;border-top:1px solid var(--line);padding:24px 0 24px 48px}.steps li::before{content:"0" counter(step);position:absolute;left:0;top:26px;color:var(--accent);font-size:14px}.steps h3{font-size:21px;margin-bottom:8px}.steps p{font-size:17px;margin:0}.contact{background:var(--contact-bg);padding-block:80px}.contact-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center}.contact h2{margin-bottom:0}.contact-copy>p{font-size:17px}.contact-copy .contact-note{font-size:15px;border-top:1px solid var(--contact-line);padding-top:20px;margin-bottom:0}.footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:32px;font-size:14px}.footer p{margin:0}.footer a{text-decoration:none}section[id]{scroll-margin-top:24px}
.contact .eyebrow{color:var(--text)}
.example-link { display: inline-flex; gap: 24px; align-items: center; margin-top: 36px; padding-block: 10px; font-size: 16px; }
.case-study { padding-block: 80px; background: var(--case-bg); color: var(--case-text); }
.case-study .eyebrow { color: var(--rose); }
.case-heading { margin-bottom: 46px; }
.case-heading h2 { margin-bottom: 0; }
.case-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 72px; margin: 0; }
.case-facts > div { border-top: 1px solid var(--case-line); padding-top: 22px; }
.case-facts dt { color: var(--rose); font-size: 16px; font-weight: 700; margin-bottom: 12px; }
.case-facts dd { max-width: 54ch; margin: 0; font-size: 18px; line-height: 1.6; }
@media (max-width: 720px) {
  .case-study { padding-block: 52px; }
  .case-heading { margin-bottom: 32px; }
  .case-facts { grid-template-columns: 1fr; gap: 28px; }
  .example-link { margin-top: 24px; }
}
.about { background: var(--surface); padding-block: 88px; }
.profiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 72px; }
.profiles article { border-top: 1px solid var(--rule-strong); padding-top: 28px; }
.profiles h3 { font-size: 28px; margin-bottom: 8px; }
.profiles p { max-width: 54ch; font-size: 18px; line-height: 1.6; }
.profiles .profile-role { color: var(--accent); font-size: 16px; margin-bottom: 24px; }
.profiles article > p:last-child { margin-bottom: 0; }
@media (max-width: 720px) {
  .about { padding-block: 52px; }
  .profiles { grid-template-columns: 1fr; gap: 36px; }
  .profiles article { padding-top: 22px; }
  .profiles h3 { font-size: 25px; }
}
@media(min-width:721px){.intervention-list h3{min-height:2.6em}}
@media(min-width:1600px){.hero{padding-top:100px}}
@media(max-width:1000px){.container{width:calc(100% - 64px)}.hero{grid-template-columns:1fr 200px;gap:32px}.hero-aside img{width:180px;height:180px}.brand img{width:235px}nav{gap:20px}.method{gap:40px}.intervention-list{gap:24px}}
@media(max-width:720px){body{font-size:16px}.container{width:calc(100% - 40px)}.header{flex-direction:column;align-items:flex-start;gap:14px;padding-block:24px 12px}.brand img{width:245px}nav{width:100%;justify-content:space-between;gap:12px;font-size:15px}.hero{padding-top:44px;display:block}.hero .eyebrow{max-width:none;font-size:12px;letter-spacing:.08em;line-height:1.7;margin-bottom:20px}h1{font-size:clamp(52px,15vw,68px);margin-bottom:24px}.intro{font-size:18px;line-height:1.6;margin-bottom:28px}.button{font-size:16px;padding:14px 18px;gap:20px}.hero-aside{display:none}.hero-foot{margin-top:40px;font-size:12px;padding-block:20px}.hero-foot>a span{margin-left:8px}.interventions{padding-block:52px}.section-heading{display:block;margin-bottom:32px}.section-heading h2{margin-bottom:24px}.section-heading>p:last-child{font-size:17px}.intervention-list{grid-template-columns:1fr;gap:32px}.intervention-list article{padding-top:18px}.number{margin-bottom:14px}.intervention-list article>p{margin-bottom:20px}.intervention-list .outcome{margin-bottom:0}.method{grid-template-columns:1fr;gap:26px;padding-block:56px}.method-intro>p:last-child{font-size:17px}.contact{padding-block:48px}.contact-inner{grid-template-columns:1fr;gap:28px}.contact-copy>p{font-size:17px}.footer{align-items:flex-start;flex-wrap:wrap;gap:10px 20px;padding-block:24px}.footer>p:nth-child(2){flex-basis:100%;order:3}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media print{nav,.skip-link,.button,.hero-foot,.footer>a{display:none}.container{width:100%}.hero,.method,.contact-inner{display:block}.hero-aside{display:none}.hero,.interventions,.method,.contact{padding:24px 0}.intervention-list article,.steps li{break-inside:avoid}h1{font-size:44px}h2{font-size:30px}}


[hidden] { display: none !important; }
.header-tools { display: flex; align-items: center; gap: 28px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.theme-control { display: inline-flex; align-items: center; gap: 2px; margin: 0; min-inline-size: 0; padding: 3px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); }
.theme-control label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: var(--text);
  cursor: pointer;
}
.theme-control label:hover { color: var(--accent); }
.theme-control svg { display: block; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.theme-control input:checked + label { color: var(--background); background: var(--text); }
.theme-control input:focus-visible + label { outline: 3px solid var(--focus); outline-offset: 3px; }
.brand .logo-light, .hero-aside .logo-light { display: var(--logo-light-display); }
.brand .logo-dark, .hero-aside .logo-dark { display: var(--logo-dark-display); }
@media (max-width: 1000px) {
  .header-tools { flex-direction: column; align-items: flex-end; gap: 10px; }
}
@media (max-width: 720px) {
  .header-tools { width: 100%; align-items: stretch; gap: 6px; }
  .theme-control { align-self: flex-start; }
}
@media print {
  :root, :root[data-theme], :root:not([data-theme]) {
    --background: #fff;
    --surface: #fff;
    --text: #282b30;
    --accent: #b74632;
    --line: #d8d6d2;
    --rule-strong: #282b30;
    --contact-bg: #f5e4df;
    --contact-line: #c6b6b1;
    --logo-light-display: block;
    --logo-dark-display: none;
    color-scheme: light;
  }
  .theme-control { display: none; }
}
