@font-face{font-family:"Newsreader";font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/newsreader-latin-wght-normal.woff2) format("woff2-variations"),url(/assets/fonts/newsreader-latin-wght-normal.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-wght-normal.woff2) format("woff2-variations"),url(/assets/fonts/instrument-sans-latin-wght-normal.woff2) format("woff2")}
:root{color-scheme:light}
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}

/* Mise en page : en-tête fixe, une vue par page (hash), bandeau sombre en haut de l'accueil, lignes de séparation plutôt que cartes. */
:root{
  --bg:#f2f6fa;
  --surface:#ffffff;
  --fg:#14263a;
  --muted:#4a5f73;
  --line:#d3dde8;
  --accent:#1b4f85;
  --accent-fg:#ffffff;
  --brass:#8a6a2a;
  --band:#1e4b7a;
  --band-fg:#ffffff;
  --band-muted:#cfe0f2;
  --band-line:#4a73a3;
  --todo-bg:#fff0bd;
  --todo-fg:#5a4300;
  --font-display:"Newsreader", Georgia, "Times New Roman", serif;
  --font-body:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0f1c2b; --surface:#162636; --fg:#e6eef7; --muted:#9fb3c8; --line:#27394d;
    --accent:#7db4ea; --accent-fg:#08192b; --brass:#d9b673;
    --band:#1d4268; --band-fg:#f2f7fc; --band-muted:#b4c9de; --band-line:#3a5d86;
    --todo-bg:#3a3012; --todo-fg:#f1dc9a;
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0f1c2b; --surface:#162636; --fg:#e6eef7; --muted:#9fb3c8; --line:#27394d;
  --accent:#7db4ea; --accent-fg:#08192b; --brass:#d9b673;
  --band:#1d4268; --band-fg:#f2f7fc; --band-muted:#b4c9de; --band-line:#3a5d86;
  --todo-bg:#3a3012; --todo-fg:#f1dc9a;
  color-scheme: dark;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--fg);
  font-family:var(--font-body); font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }

.wrap{
  max-width:1120px; margin-inline:auto;
  padding-left:max(16px, env(safe-area-inset-left, 0px));
  padding-right:max(16px, env(safe-area-inset-right, 0px));
}
h1,h2,h3{font-family:var(--font-display); font-weight:500; line-height:1.15; text-wrap:balance; margin:0}
h1{font-size:clamp(2.1rem, 5.2vw, 3.6rem); letter-spacing:-0.01em}
h2{font-size:clamp(1.6rem, 3.4vw, 2.3rem); letter-spacing:-0.005em}
h3{font-size:1.3rem}
p{margin:0}
a{color:var(--accent)}
:focus-visible{outline:3px solid var(--brass); outline-offset:3px; border-radius:3px}
.eyebrow{font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--brass)}
.lede{font-size:1.15rem; color:var(--muted); max-width:62ch}

/* En-tête */
.site-header{
  position:sticky; top:env(safe-area-inset-top, 0px); z-index:10;
  background:var(--bg); border-bottom:1px solid var(--line);
}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between; gap:12px 28px; flex-wrap:wrap; padding-block:14px}
.brand{display:flex; flex-direction:column; text-decoration:none; color:var(--fg); line-height:1.15}
.brand strong{font-family:var(--font-display); font-weight:600; font-size:1.35rem}
.brand span{font-size:.78rem; color:var(--muted); letter-spacing:.04em}
.nav{display:flex; gap:4px; overflow-x:auto; max-width:100%; -webkit-overflow-scrolling:touch}
.nav a{
  white-space:nowrap; text-decoration:none; color:var(--fg);
  padding:8px 12px; border-radius:6px; font-size:.95rem; font-weight:500;
}
.nav a:hover{background:var(--surface)}
.nav a[aria-current="page"]{color:var(--accent); box-shadow:inset 0 -2px 0 var(--accent); border-radius:6px 6px 0 0}
.nav a.cta{background:var(--accent); color:var(--accent-fg)}
.nav a.cta[aria-current="page"]{box-shadow:none; border-radius:6px}

/* Boutons */
.btn{
  display:inline-block; text-decoration:none; font-weight:600; font-size:1rem;
  padding:12px 22px; border-radius:6px; border:1.5px solid var(--accent);
  background:var(--accent); color:var(--accent-fg);
}
.btn.ghost{background:transparent; color:inherit; border-color:currentColor}
.actions{display:flex; gap:12px; flex-wrap:wrap}

/* Accueil : bandeau */
.hero{background:var(--band); color:var(--band-fg)}
.hero .wrap{display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:48px; padding-block:72px 80px; align-items:center}
.hero .eyebrow{color:var(--band-muted)}
.hero h1{margin-top:18px}
.hero .lede{color:var(--band-muted); margin-top:22px}
.hero .actions{margin-top:32px}
.hero .btn{background:var(--band-fg); color:var(--band); border-color:var(--band-fg)}
.hero .btn.ghost{background:transparent; color:var(--band-fg); border-color:var(--band-muted)}
.ledger{border-top:2px solid var(--band-fg); min-width:0}
.ledger h2{font-size:1rem; font-family:var(--font-body); font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--band-muted); padding:14px 0}
.ledger dl{margin:0}
.ledger .row{display:grid; grid-template-columns:minmax(0,1fr); gap:2px; padding:12px 0; border-top:1px solid var(--band-line)}
.ledger dt{font-family:var(--font-display); font-size:1.2rem}
.ledger dd{margin:0; color:var(--band-muted); font-size:.95rem; text-align:left}
@media (min-width:861px){
  .ledger .row{grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr); gap:20px; padding:10px 0; align-items:baseline}
  .ledger dt{font-size:1.1rem}
  .ledger dd{font-size:.9rem; line-height:1.4}
}

/* Sections génériques */
.section{padding-block:72px}
.section.alt{background:var(--surface); border-block:1px solid var(--line)}
.section-head{display:flex; flex-direction:column; gap:14px; margin-bottom:40px; max-width:70ch}
.cols{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:32px 40px}
.cols.two{grid-template-columns:repeat(2, minmax(0,1fr))}
.col{border-top:2px solid var(--fg); padding-top:16px; display:flex; flex-direction:column; gap:10px; min-width:0}
.col p{color:var(--muted)}

.audience{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:40px}
.audience .col{border-top-color:var(--accent)}

.closing{background:var(--band); color:var(--band-fg)}
.closing .wrap{padding-block:56px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap}
.closing p{font-family:var(--font-display); font-size:1.6rem; max-width:32ch; line-height:1.25}
.closing .btn{background:var(--band-fg); color:var(--band); border-color:var(--band-fg)}

/* Accompagnement */
.page-head{padding-block:64px 24px}
.page-head .wrap{display:flex; flex-direction:column; gap:16px}
.svc-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0 56px}
.svc{border-top:1px solid var(--line); padding-block:28px; display:flex; flex-direction:column; gap:10px; min-width:0}
.svc p{color:var(--muted)}
.tags{list-style:none; padding:0; margin:6px 0 0; display:flex; flex-wrap:wrap; gap:6px}
.tags li{font-size:.82rem; padding:3px 10px; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:var(--surface)}
.pro{background:var(--surface); border-block:1px solid var(--line)}
.pro .wrap{padding-block:56px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:40px}
.pro ul{margin:0; padding-left:1.1rem; display:flex; flex-direction:column; gap:8px; color:var(--muted)}

/* Méthode */
.steps{list-style:none; padding:0; margin:0; counter-reset:step; max-width:820px}
.steps > li{
  counter-increment:step; display:grid; grid-template-columns:64px minmax(0,1fr); gap:8px 20px;
  padding-block:28px; border-top:1px solid var(--line);
}
.steps > li::before{
  content:counter(step); font-family:var(--font-display); font-size:2.4rem; line-height:1; color:var(--brass);
  grid-row:span 2;
}
.steps > li:last-child{border-bottom:1px solid var(--line)}
.steps h3{align-self:end}
.steps p{color:var(--muted)}
.note{max-width:62ch; color:var(--muted); font-size:.95rem; margin-top:32px}

/* À propos */
.about{display:grid; grid-template-columns:minmax(0,280px) minmax(0,1fr); gap:48px; align-items:start}
.portrait{
  aspect-ratio:4/5; max-width:100%; background:var(--band); color:var(--band-muted);
  display:flex; align-items:center; justify-content:center; text-align:center; padding:20px;
  font-family:var(--font-display); font-size:3.4rem; border-radius:4px;
}
.portrait.photo{padding:0; background:none; overflow:hidden}
.portrait.photo img{display:block; width:100%; height:100%; object-fit:cover}
.portrait small{display:block; font-family:var(--font-body); font-size:.78rem; margin-top:8px; letter-spacing:.06em}
.prose{display:flex; flex-direction:column; gap:18px; max-width:62ch; min-width:0}
.prose h3{margin-top:10px}
.prose ul{margin:0; padding-left:1.1rem; display:flex; flex-direction:column; gap:6px; color:var(--muted)}
.values{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:24px; margin-top:48px}

/* Contact */
.contact-list{margin:0; border-top:2px solid var(--fg); max-width:720px}
.contact-list .row{display:grid; grid-template-columns:150px minmax(0,1fr); gap:16px; padding:18px 0; border-bottom:1px solid var(--line)}
.contact-list dt{font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:var(--brass); padding-top:4px}
.contact-list dd{margin:0; font-family:var(--font-display); font-size:1.4rem; overflow-wrap:anywhere; user-select:all}
.contact-list dd a{color:inherit; text-decoration-thickness:1px; text-underline-offset:4px}
.contact-list dd a:hover{color:var(--accent)}
.contact-list dd.txt{font-family:var(--font-body); font-size:1.05rem; line-height:1.55; user-select:text}
.hero .zone{margin-top:20px; color:var(--band-fg); font-size:1rem; line-height:1.5; padding-left:14px; border-left:2px solid var(--band-line)}
.foot-main{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px 48px; align-items:start}
.foot-id{display:flex; flex-direction:column; gap:4px}
.foot-id span{color:var(--muted); font-size:.95rem}
.foot-contact{display:flex; flex-direction:column; gap:12px}
.foot-contact div{display:grid; grid-template-columns:96px minmax(0,1fr); gap:12px; align-items:baseline}
.foot-contact dt, .foot-contact span{font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:var(--brass)}
.foot-contact a{color:var(--fg); overflow-wrap:anywhere}
.foot-bottom{border-top:1px solid var(--line); padding-top:22px; margin-top:12px; display:flex; flex-direction:column; gap:12px}
.foot-bottom a{color:var(--fg); width:fit-content}
.steps .step-body{min-width:0}
.steps .step-body p{margin:0}
.steps .step-body ul{margin:10px 0 0; padding-left:1.1rem; display:flex; flex-direction:column; gap:6px; color:var(--muted)}

/* V3 : illustrations (pictogrammes au trait, scènes simples) */
.ico{width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex:none}
.ico-tile{width:44px; height:44px; flex:none; display:grid; place-items:center; border-radius:10px; color:var(--accent); background:var(--surface); border:1px solid var(--line)}
.section.alt .ico-tile, .pro .ico-tile{background:var(--bg)}
.head-ico{display:flex; align-items:center; gap:14px}
.ledger dt{display:flex; align-items:center; gap:12px}
.ledger dt .ico{width:22px; height:22px; color:var(--band-muted)}
.scene-wrap{background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:14px 18px; margin-bottom:6px}
.scene{display:block; width:100%; height:auto; max-height:130px; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round}
.scene .a{stroke:var(--accent)}
.scene .b{stroke:var(--brass)}
.scene .l{stroke:var(--line); stroke-width:1.4}
.contact-list dt{display:flex; align-items:center; gap:10px}
.contact-list dt .ico{width:20px; height:20px; color:var(--accent)}
.values .col .ico-tile{margin-bottom:4px}
.steps > li::before{
  width:46px; height:46px; border:1.5px solid var(--brass); border-radius:50%;
  display:grid; place-items:center; font-size:1.45rem; align-self:start; justify-self:start;
}
@media (max-width:520px){
  .steps > li::before{width:38px; height:38px; font-size:1.2rem}
  }

/* V3b : bandeau d'accueil et illustrations d'en-tête */
.hero{position:relative; overflow:hidden}
.page-head .wrap{position:relative}
.page-head h1, .page-head .lede{max-width:min(100%, 640px)}
.ph-art{position:absolute; right:max(16px, env(safe-area-inset-right, 0px)); top:50%; transform:translateY(-46%); width:300px; height:180px; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; opacity:.95}
.ph-art .a{stroke:var(--accent)} .ph-art .b{stroke:var(--brass)} .ph-art .l{stroke:var(--line); stroke-width:1.4}
@media (max-width:980px){ .ph-art{position:static; transform:none; width:min(260px,70%); height:auto; margin-top:8px; order:5} }

/* Navigation mobile : tous les liens visibles */
@media (max-width:640px){ .nav{flex-wrap:wrap; overflow:visible; gap:2px} .nav a{padding:6px 10px; font-size:.92rem} }

/* Mentions légales */
.legal{max-width:760px; display:flex; flex-direction:column; gap:12px}
.legal h2{font-size:1.4rem; margin-top:28px}
.legal p, .legal li{color:var(--muted)}
.legal ul{margin:0; padding-left:1.1rem; display:flex; flex-direction:column; gap:6px}

/* Repères à compléter */
.todo{background:var(--todo-bg); color:var(--todo-fg); padding:1px 6px; border-radius:3px; font-style:normal; font-size:.92em; border:1px dashed var(--todo-fg)}

/* Pied de page */
.site-footer{border-top:1px solid var(--line); margin-top:0; background:var(--bg)}
.site-footer .wrap{padding-block:36px 44px; display:flex; flex-direction:column; gap:18px}
.foot-top{display:flex; justify-content:space-between; gap:12px 32px; flex-wrap:wrap; align-items:baseline}
.foot-top a{color:var(--fg)}
.foot-risk{font-size:.85rem; color:var(--muted); max-width:90ch}

@media (max-width:860px){
  .hero .wrap{grid-template-columns:minmax(0,1fr); gap:40px; padding-block:48px 56px}
  .cols, .cols.two, .audience, .svc-grid, .pro .wrap, .about, .values{grid-template-columns:minmax(0,1fr)}
  .about{gap:28px}
  .portrait{max-width:240px}
  .section{padding-block:52px}
  .svc-grid{gap:0}
  .foot-main{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:520px){
  body{font-size:16px}
  .contact-list .row{grid-template-columns:minmax(0,1fr); gap:4px}
  .steps > li{grid-template-columns:44px minmax(0,1fr); gap:6px 14px}
  .steps > li::before{font-size:1.9rem}
  .closing p{font-size:1.35rem}
}
