:root{
  --accent:#5E4466;
  --ink:#211C26;
  --text:#4A4250;
  --muted:#6B6170;
  --bg:#F6F1EA;
  --surface:#FFFFFF;
  --sand:#EDE4D8;
  --photo:#E6DCCF;
  --line:#E2D8CB;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --pad:clamp(24px,6.5vw,96px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
img{max-width:100%}
.wrap{max-width:1440px;margin:0 auto}
.serif{font-family:var(--serif)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:999px;font-weight:500;font-size:16px;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:#4A3451}
.btn-ghost{border-color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--bg)}
.btn-light{background:var(--bg);color:var(--ink)}
.btn-light:hover{background:#fff}

/* Header */
.header{position:sticky;top:0;z-index:10;background:rgba(246,241,234,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.header-inner{height:88px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:.02em}
.logo svg{flex:none}
.nav{display:flex;align-items:center;gap:36px;font-size:15px}
.nav a:not(.btn):hover{color:var(--accent)}
.nav .btn{min-height:48px;padding:0 24px;font-size:15px}
.burger{display:none;width:44px;height:44px;border:0;background:none;padding:0;align-items:center;justify-content:center;cursor:pointer}

/* Hero */
.hero{padding:clamp(48px,7vw,104px) var(--pad) clamp(56px,6vw,96px);display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,6vw,96px);align-items:center}
.hero-text{display:flex;flex-direction:column;gap:28px}
.kicker{font-size:15px;color:var(--muted)}
.hero h1{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(46px,6vw,84px);line-height:1.02;letter-spacing:-.01em}
.hero h1 em{color:var(--accent)}
.hero p{margin:0;font-size:clamp(17px,1.4vw,19px);line-height:1.65;color:var(--text);max-width:34em}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;padding-top:6px}
.portrait{justify-self:end;width:100%;max-width:520px;aspect-ratio:520/620;border-radius:999px 999px 16px 16px;background:var(--photo);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:14px;padding:32px;overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover}

/* Roles */
.roles{margin:0 var(--pad);padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px 32px;font-family:var(--serif);font-style:italic;font-size:clamp(21px,1.7vw,24px);color:var(--text)}

/* Paths */
.paths{padding:clamp(72px,9vw,128px) var(--pad) clamp(64px,8vw,120px);display:flex;flex-direction:column;gap:clamp(36px,4.5vw,64px)}
.paths-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px 64px;flex-wrap:wrap}
.paths-head h2{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(36px,3.9vw,56px);line-height:1.08;max-width:12em}
.paths-head p{margin:0;font-size:17px;line-height:1.65;color:var(--text);max-width:26em}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.card{border-radius:24px;padding:clamp(32px,4vw,56px);display:flex;flex-direction:column;gap:26px;scroll-margin-top:110px}
.card-light{background:var(--surface)}
.card-dark{background:var(--ink);color:var(--bg)}
.card-tag{font-family:var(--serif);font-size:20px;color:var(--accent)}
.card-dark .card-tag{color:#D9C7DD}
.card h3{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(30px,2.8vw,40px);line-height:1.1}
.card p{margin:0;font-size:17px;line-height:1.65;color:var(--text)}
.card-dark p{color:#CFC6D2}
.list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.list a{display:flex;justify-content:space-between;align-items:center;min-height:58px;border-bottom:1px solid var(--line);font-size:17px;transition:color .2s}
.list a:hover{color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:1px solid #5A5160;padding:9px 18px;border-radius:999px;font-size:15px}
.cert{display:flex;align-items:center;gap:14px;font-size:14px;color:#CFC6D2}
.cert-badge{border:1px solid #5A5160;border-radius:8px;padding:8px 12px;font-weight:600;letter-spacing:.08em;color:var(--bg)}
.card .btn{align-self:flex-start;margin-top:auto}

/* Approach */
.approach{padding:clamp(16px,3vw,40px) var(--pad) clamp(72px,9vw,128px);display:grid;grid-template-columns:3fr 9fr;gap:32px}
.approach .label{font-size:15px;color:var(--muted);padding-top:14px}
.approach blockquote{margin:0 0 32px;font-family:var(--serif);font-size:clamp(28px,3.1vw,44px);line-height:1.25;max-width:22em}
.approach blockquote em{color:var(--accent)}
.link-underline{display:inline-block;font-weight:500;border-bottom:1px solid var(--ink);padding-bottom:4px}
.link-underline:hover{color:var(--accent);border-color:var(--accent)}

/* Newsletter */
.newsletter{margin:0 var(--pad);background:var(--sand);border-radius:24px;padding:clamp(36px,5vw,72px) clamp(24px,5.5vw,80px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 64px;align-items:center;scroll-margin-top:110px}
.newsletter h2{margin:0 0 14px;font-family:var(--serif);font-weight:500;font-size:clamp(32px,3.1vw,44px);line-height:1.1}
.newsletter p{margin:0;font-size:17px;line-height:1.65;color:var(--text)}
.form{display:flex;flex-direction:column;gap:10px}
.form label{font-size:14px;color:var(--text)}
.form-row{display:flex;gap:12px}
.form input{flex:1;min-width:0;height:56px;padding:0 22px;border:1px solid #CBBFB0;border-radius:999px;background:var(--bg);font:inherit;font-size:16px;color:var(--ink)}
.form .btn{min-height:56px;border:0;cursor:pointer;font-family:inherit}

/* Footer */
.footer{padding:clamp(64px,7vw,96px) var(--pad) 48px;display:flex;flex-direction:column;gap:56px;scroll-margin-top:110px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px 48px}
.footer-grid p{margin:16px 0 0;font-size:15px;line-height:1.65;color:var(--text);max-width:30em}
.footer-col{display:flex;flex-direction:column;gap:12px;font-size:15px}
.footer-col .title{font-size:14px;color:var(--muted);margin-bottom:4px}
.footer-col a:hover{color:var(--accent)}
.footer-bottom{padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px 28px;font-size:13px;color:var(--muted)}
.footer-bottom nav{display:flex;flex-wrap:wrap;gap:16px 28px}
.footer-bottom a:hover{color:var(--ink)}

/* Mockup banner */
.proto{background:var(--ink);color:#CFC6D2;font-size:13px;text-align:center;padding:10px 16px}

/* Responsive */
@media (max-width:1100px){
  .nav a:not(.btn){display:none}
}
@media (max-width:900px){
  .hero{grid-template-columns:1fr}
  .portrait{justify-self:stretch;max-width:none;aspect-ratio:4/4.3;border-radius:999px 999px 16px 16px}
  .cards,.newsletter{grid-template-columns:1fr}
  .approach{grid-template-columns:1fr;gap:16px}
  .approach .label{padding-top:0}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid > div:first-child{grid-column:1/-1}
}
@media (max-width:640px){
  .header-inner{height:72px}
  .logo{font-size:22px}
  .nav{display:none}
  .burger{display:flex}
  .hero-cta{flex-direction:column}
  .hero-cta .btn{width:100%}
  .roles{flex-direction:column}
  .card .btn{align-self:stretch}
  .form-row{flex-direction:column}
  .form .btn{width:100%}
}

/* Mobile menu */
.menu{position:fixed;inset:72px 0 0 0;background:var(--bg);z-index:9;padding:32px 24px;display:flex;flex-direction:column;gap:8px;transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s}
.menu.open{opacity:1;transform:none;visibility:visible}
.menu a:not(.btn){font-family:var(--serif);font-size:30px;padding:10px 0;border-bottom:1px solid var(--line)}
.menu .btn{margin-top:24px}
@media (min-width:641px){.menu{display:none}}

/* ---------- Pages internes ---------- */
.nav a[aria-current="page"]{color:var(--accent)}
.page-hero{padding:clamp(56px,8vw,112px) var(--pad) clamp(48px,6vw,80px);display:flex;flex-direction:column;gap:24px;max-width:1100px}
.crumb{font-size:14px;color:var(--muted)}
.crumb a{border-bottom:1px solid var(--line)}
.crumb a:hover{color:var(--accent);border-color:var(--accent)}
.page-hero h1{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(44px,5.4vw,76px);line-height:1.04;letter-spacing:-.01em}
.page-hero .lead{margin:0;font-size:clamp(18px,1.5vw,21px);line-height:1.6;color:var(--text);max-width:36em}
.hero-split{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(40px,6vw,96px);align-items:end;max-width:none}
.hero-split .portrait{aspect-ratio:4/4.6}

.block{padding:clamp(56px,7vw,104px) var(--pad);border-top:1px solid var(--line);display:grid;grid-template-columns:4fr 8fr;gap:32px 64px;margin:0}
.block h2{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(30px,3vw,42px);line-height:1.12;max-width:11em}
.block-body{display:flex;flex-direction:column;gap:24px;max-width:46em}
.block-body p{margin:0;font-size:17px;line-height:1.7;color:var(--text)}
.block-body h3{margin:12px 0 0;font-family:var(--serif);font-weight:500;font-size:26px}

.ticks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.ticks li{position:relative;padding:16px 0 16px 30px;border-bottom:1px solid var(--line);font-size:17px;line-height:1.5}
.ticks li::before{content:"";position:absolute;left:4px;top:24px;width:10px;height:10px;background:var(--accent);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.ticks.one{grid-template-columns:1fr}

.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.fact{background:var(--surface);border-radius:20px;padding:28px;display:flex;flex-direction:column;gap:10px}
.fact .k{font-size:14px;color:var(--muted)}
.fact .v{font-size:17px;line-height:1.5}
.fact .v.placeholder{color:var(--muted)}

.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.col-card{background:var(--surface);border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:16px}
.col-card h3{margin:0;font-family:var(--serif);font-weight:500;font-size:26px;line-height:1.15}
.col-card ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;font-size:16px;line-height:1.5;color:var(--text)}

.chips-light .chip{border-color:#CBBFB0;background:transparent}

.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:0 var(--pad) clamp(56px,7vw,96px)}
.stat{border-top:1px solid var(--ink);padding-top:20px;display:flex;flex-direction:column;gap:6px}
.stat .n{font-family:var(--serif);font-size:clamp(48px,5vw,72px);line-height:1;font-weight:500;color:var(--accent)}
.stat .l{font-size:16px;color:var(--text)}

.pubs{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.pubs li{display:grid;grid-template-columns:80px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline}
.pubs .y{font-size:15px;color:var(--muted)}
.pubs .t{font-family:var(--serif);font-size:24px;line-height:1.25}
.pubs .t em{display:block;font-family:var(--sans);font-style:normal;font-size:15px;color:var(--muted);margin-top:4px}

.press{display:flex;flex-wrap:wrap;gap:12px}
.press a{border:1px solid #CBBFB0;border-radius:999px;padding:12px 20px;font-size:15px;transition:border-color .2s,color .2s}
.press a:hover{border-color:var(--accent);color:var(--accent)}

.thesis{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2vw,28px);line-height:1.35;color:var(--ink);margin:0;padding:28px 32px;background:var(--sand);border-radius:20px}

.note{font-size:15px;line-height:1.65;color:var(--text);background:var(--sand);border-radius:20px;padding:24px 28px}

.cta-band{margin:clamp(24px,4vw,48px) var(--pad) 0;background:var(--ink);color:var(--bg);border-radius:24px;padding:clamp(40px,5vw,72px) clamp(24px,5.5vw,80px);display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.cta-band h2{margin:0 0 10px;font-family:var(--serif);font-weight:500;font-size:clamp(30px,3vw,44px);line-height:1.1}
.cta-band p{margin:0;font-size:17px;line-height:1.6;color:#CFC6D2;max-width:32em}
.cta-band .actions{display:flex;flex-wrap:wrap;gap:12px}
.btn-outline-light{border-color:#5A5160;color:var(--bg)}
.btn-outline-light:hover{border-color:var(--bg)}

.also{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.also a{background:var(--surface);border-radius:20px;padding:28px 32px;display:flex;justify-content:space-between;align-items:center;font-family:var(--serif);font-size:26px;transition:color .2s}
.also a:hover{color:var(--accent)}

.footer-contact a{border-bottom:1px solid var(--line)}

/* Liens neutralis\E9 s */
[data-soon]{cursor:help}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);background:var(--ink);color:var(--bg);padding:14px 22px;border-radius:999px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:20;max-width:calc(100% - 32px);text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media (max-width:900px){
  .hero-split{grid-template-columns:1fr}
  .block{grid-template-columns:1fr}
  .cols3,.facts,.stats{grid-template-columns:1fr}
  .also{grid-template-columns:1fr}
}
@media (max-width:640px){
  .ticks{grid-template-columns:1fr}
  .cta-band .actions,.cta-band .btn{width:100%}
  .pubs li{grid-template-columns:1fr;gap:4px}
}
