:root {
  --navy: #10243b;
  --navy-2: #193957;
  --ink: #152238;
  --muted: #5c6978;
  --orange: #d9772d;
  --orange-dark: #984818;
  --paper: #ffffff;
  --soft: #f5f7fa;
  --line: #dfe5eb;
  --shadow: 0 18px 46px rgba(16,36,59,.10);
  --radius: 18px;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
a:hover { color: var(--orange-dark); }
img { max-width: 100%; display: block; }
.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.skip-link {
  position: fixed; left: 16px; top: -80px; z-index: 999;
  background: #fff; color: var(--navy); padding: 12px 16px; border-radius: 10px;
  box-shadow: var(--shadow); font-weight: 700;
}
.skip-link:focus { top: 16px; }
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.94); backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(223,229,235,.9);
}
.nav {
  min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.brand { text-decoration: none; font-weight: 800; letter-spacing: -.02em; color: var(--navy); font-size: 1.04rem; }
.nav-links { display: flex; align-items: center; gap: 22px; font-size: .92rem; font-weight: 650; }
.nav-links a { text-decoration: none; color: #38495c; }
.nav-links a:hover { color: var(--orange-dark); }
.lang-switch { padding-left: 16px; border-left: 1px solid var(--line); font-weight: 800; color: var(--navy)!important; }
.menu-toggle { display:none; border:1px solid var(--line); background:#fff; border-radius:10px; padding:9px 11px; font:inherit; font-weight:700; color:var(--navy); }
.hero {
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 22%, rgba(217,119,45,.13), transparent 26%),
    linear-gradient(145deg, #f8fafc 0%, #fff 58%);
  border-bottom: 1px solid var(--line);
}
.hero-grid { display:grid; grid-template-columns:minmax(0, 1.45fr) minmax(280px,.55fr); grid-template-areas:"intro portrait" "body portrait"; column-gap:68px; row-gap:0; align-items:center; padding:64px 0 58px; }
.hero-intro { grid-area:intro; }
.hero-body { grid-area:body; }
.eyebrow { color: var(--orange-dark); font-size:.82rem; text-transform:uppercase; letter-spacing:.14em; font-weight:800; margin:0 0 16px; }
h1 { color: var(--navy); font-size:clamp(2.9rem, 7vw, 5.7rem); line-height:.93; letter-spacing:-.055em; margin:0 0 18px; }
.role { font-size:clamp(1.3rem, 2.5vw, 2rem); color:var(--navy-2); font-weight:750; margin:0 0 22px; letter-spacing:-.02em; }
.hero-claim { font-size:clamp(1.35rem, 2.25vw, 1.85rem); line-height:1.34; max-width:800px; color:var(--navy); font-weight:760; letter-spacing:-.02em; margin:0 0 22px; }
.hero-copy { font-size:1.06rem; max-width:790px; color:#3f4f61; margin:0 0 20px; }
.hero-method { margin:0; max-width:800px; color:var(--navy); font-weight:700; }
.availability-block { max-width:760px; margin:26px 0 0; padding:14px 17px; border-left:4px solid var(--orange); border-radius:0 12px 12px 0; background:rgba(217,119,45,.075); }
.availability-status { margin:0; color:var(--navy); font-size:.92rem; line-height:1.38; font-weight:850; letter-spacing:.045em; text-transform:uppercase; }
.availability-location { margin:4px 0 0; color:var(--muted); font-size:.90rem; line-height:1.4; font-weight:650; }
.hero-meta { display:flex; flex-wrap:wrap; gap:10px 18px; margin:26px 0 0; color:var(--muted); font-size:.93rem; font-weight:600; }
.hero-meta span + span::before { content:"•"; margin-right:18px; color:var(--orange); }
.actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:28px; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 18px; border-radius:11px; text-decoration:none; font-weight:780; border:1px solid transparent; transition:.18s ease; }
.btn-primary { background:var(--navy); color:#fff; }
.btn-primary:hover { background:var(--navy-2); color:#fff; transform:translateY(-1px); }
.btn-secondary { background:#fff; border-color:#bdc8d2; color:var(--navy); }
.btn-secondary:hover { border-color:var(--orange); color:var(--orange-dark); transform:translateY(-1px); }
.text-link { margin-left:4px; font-weight:700; color:var(--navy-2); text-underline-offset:4px; }
.portrait-wrap { grid-area:portrait; justify-self:end; width:min(100%,300px); text-align:center; transform:translateY(-28px); }
.portrait-card { width:260px; height:260px; margin:0 auto; border-radius:50%; overflow:hidden; background:#eef1f4; border:1px solid var(--line); box-shadow:0 14px 38px rgba(16,36,59,.10); }
.portrait-card img { width:100%; height:100%; object-fit:cover; object-position:center 28%; border-radius:50%; filter:grayscale(100%) contrast(1.03); }
.portrait-status { display:flex; justify-content:center; align-items:center; gap:9px; margin:18px 0 0; color:#667485; font-size:.76rem; text-transform:uppercase; letter-spacing:.14em; font-weight:800; }
.portrait-status span { width:7px; height:7px; border-radius:50%; background:var(--orange); box-shadow:0 0 0 3px rgba(217,119,45,.10); }
section { padding:78px 0; }
section[id] { scroll-margin-top:88px; }
section.alt { background:var(--soft); }
.section-kicker { margin:0 0 8px; color:var(--orange-dark); font-size:.78rem; text-transform:uppercase; letter-spacing:.14em; font-weight:850; }
h2 { margin:0 0 20px; max-width:900px; color:var(--navy); font-size:clamp(2rem, 4vw, 3.15rem); line-height:1.12; letter-spacing:-.04em; }
.section-intro { margin:0 0 34px; max-width:780px; color:var(--muted); font-size:1.04rem; }
.metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:32px; }
.metric { display:flex; flex-direction:column; min-height:180px; padding:24px 20px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:0 7px 24px rgba(16,36,59,.045); }
.metric::before { content:""; display:block; width:36px; height:4px; margin:0 0 18px; border-radius:999px; background:var(--orange); }
.metric-value { display:block; color:var(--navy); font-size:clamp(1.75rem, 3vw, 2.6rem); font-weight:850; letter-spacing:-.045em; line-height:1.05; margin-bottom:13px; }
.metric p { margin:0; color:#48586a; font-size:.93rem; line-height:1.48; }
.metric-source { display:block; margin-top:auto; padding-top:14px; color:#7a8795; font-size:.76rem; line-height:1.35; font-weight:700; }
.metric-finance .metric-value { font-size:clamp(1.45rem, 2.25vw, 2.05rem); line-height:1.12; }
.case-grid { display:grid; gap:22px; margin-top:36px; }
.case { display:grid; grid-template-columns:245px 1fr; gap:34px; padding:30px; border:1px solid var(--line); border-left:4px solid var(--orange); border-radius:var(--radius); background:#fff; }
.case-side { padding-right:26px; border-right:1px solid var(--line); }
.case-label { color:var(--orange-dark); text-transform:uppercase; font-size:.75rem; letter-spacing:.12em; font-weight:850; margin:0 0 8px; }
.case-company { margin:0; color:var(--navy); font-weight:850; font-size:1.28rem; line-height:1.24; letter-spacing:-.012em; }
.case h3 { margin:0 0 12px; color:var(--navy); font-size:1.46rem; line-height:1.25; letter-spacing:-.02em; }
.case p { margin:0 0 12px; color:#425164; }
.case p:last-child { margin-bottom:0; }
.career-section { padding:52px 0; background:#fff; border-bottom:1px solid var(--line); }
.career-section h2 { margin-bottom:24px; }
.career-list { max-width:900px; border-top:1px solid var(--line); }
.career-row { display:grid; grid-template-columns:112px 1fr; gap:22px; padding:13px 0; border-bottom:1px solid var(--line); color:#425164; line-height:1.45; }
.career-date { color:var(--orange-dark); font-weight:850; font-variant-numeric:tabular-nums; }
.career-row strong { color:var(--navy); }
.career-link { display:inline-block; margin-top:18px; font-weight:800; color:var(--navy); text-underline-offset:4px; }
.career-facts-title { margin:28px 0 8px; color:var(--navy); font-size:1.08rem; line-height:1.3; font-weight:800; }
.career-facts { max-width:900px; margin:24px 0 0; border-top:1px solid var(--line); }
.career-facts div { display:grid; grid-template-columns:210px 1fr; gap:22px; padding:11px 0; border-bottom:1px solid var(--line); }
.career-facts dt { color:var(--orange-dark); font-size:.74rem; text-transform:uppercase; letter-spacing:.08em; font-weight:850; }
.career-facts dd { margin:0; color:#536274; font-size:.90rem; line-height:1.48; }
.cards { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:34px; }
.card { position:relative; padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.card::before { content:""; position:absolute; left:28px; top:0; width:34px; height:3px; border-radius:0 0 999px 999px; background:var(--orange); }
.card h3 { margin:0 0 10px; color:var(--navy); font-size:1.22rem; line-height:1.3; }
.card p { margin:0; color:#4a596b; }
.approach-grid { display:grid; grid-template-columns:repeat(2,1fr); column-gap:54px; row-gap:0; margin-top:34px; }
.approach-item { position:relative; padding:26px 0 30px 54px; border-top:1px solid var(--line); }
.approach-no { position:absolute; left:0; top:27px; color:var(--orange-dark); font-size:.78rem; letter-spacing:.10em; font-weight:850; }
.approach-no::after { content:""; display:block; width:24px; height:3px; margin-top:8px; border-radius:999px; background:var(--orange); }
.approach-item h3 { margin:0 0 8px; color:var(--navy); font-size:1.20rem; }
.approach-item p { margin:0; color:#4a596b; }
.signature { margin:30px 0 0; padding:26px 30px; border-radius:var(--radius); background:var(--navy); color:#fff; font-size:1.24rem; font-weight:750; line-height:1.45; }
.response-note { margin:10px 0 0; color:var(--muted); font-size:.83rem; line-height:1.45; }
.target-section { padding:64px 0; }
.target-section h2 { margin-bottom:28px; }
.target-list { display:grid; margin:0; }
.target-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:42px; border-top:1px solid var(--line); }
.target-item { display:grid; grid-template-columns:118px 1fr; gap:18px; align-content:start; margin:0; padding:16px 0; }
.target-item dt { color:var(--orange-dark); font-size:.76rem; text-transform:uppercase; letter-spacing:.09em; font-weight:850; }
.target-item dd { margin:0; color:#425164; font-weight:650; line-height:1.48; }
.contact-section { padding:78px 0 86px; }
.contact-box { display:grid; grid-template-columns:1.35fr .65fr; gap:44px; padding:42px; background:var(--navy); color:#fff; border-radius:28px; box-shadow:var(--shadow); }
.contact-box h2 { color:#fff; margin-bottom:16px; }
.contact-box p { color:#dfe8f0; margin:0 0 18px; }
.contact-box .btn-primary { background:#fff; color:var(--navy); }
.contact-box .btn-primary:hover { background:#f3f6f9; }
.contact-box .btn-secondary { background:transparent; border-color:#90a1b2; color:#fff; }
.contact-box .btn-secondary:hover { border-color:#fff; color:#fff; }
.contact-box .response-note { margin:10px 0 0; color:#c5d1dc; font-size:.83rem; }
.contact-box .actions-secondary .text-link { color:#f5f8fb; }
.contact-box .actions-secondary .text-link:hover { color:#ffd7b8; }
.contact-details { border-left:1px solid rgba(255,255,255,.18); padding-left:34px; align-self:center; }
.contact-details dl { margin:0; }
.contact-details div { margin-bottom:19px; }
.contact-details div:last-child { margin-bottom:0; }
.contact-details dt { font-size:.73rem; text-transform:uppercase; letter-spacing:.12em; color:#aebdcb; font-weight:800; margin-bottom:4px; }
.contact-details dd { margin:0; font-weight:700; }
.contact-details a { color:#fff; text-underline-offset:4px; }
.site-footer { border-top:1px solid var(--line); padding:24px 0 32px; color:#667485; font-size:.88rem; }
.footer-row { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.footer-row a { position:relative; z-index:2; display:inline-block; padding:4px 0; color:var(--navy-2); text-underline-offset:4px; pointer-events:auto; }
:focus-visible { outline:3px solid rgba(217,119,45,.45); outline-offset:3px; border-radius:5px; }
@media (max-width: 980px) {
  .hero-grid { grid-template-columns:1fr 260px; grid-template-areas:"intro portrait" "body portrait"; column-gap:36px; row-gap:0; padding:50px 0 52px; }
  .metrics { grid-template-columns:repeat(2,1fr); }
  .case { grid-template-columns:190px 1fr; gap:26px; }
}
@media (max-width: 780px) {
  .container { width:min(calc(100% - 30px), var(--max)); }
  .menu-toggle { display:block; }
  .nav { min-height:64px; }
  .nav-links { display:none; position:absolute; left:15px; right:15px; top:70px; flex-direction:column; align-items:stretch; gap:0; padding:10px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:var(--shadow); }
  .nav-links.open { display:flex; }
  .nav-links a { padding:11px 12px; }
  .lang-switch { padding-left:12px; border-left:0; border-top:1px solid var(--line); margin-top:4px; }
  .hero-grid { grid-template-columns:1fr; grid-template-areas:"intro" "portrait" "body"; padding:38px 0 42px; }
  .portrait-wrap { justify-self:start; width:220px; transform:none; margin:18px 0 2px; text-align:left; }
  .portrait-card { width:200px; height:200px; margin:0; }
  .portrait-status { justify-content:flex-start; font-size:.70rem; margin-top:13px; }
  .hero-meta { gap:6px 12px; }
  .hero-meta span + span::before { margin-right:12px; }
  section { padding:60px 0; }
  .metrics { grid-template-columns:1fr; }
  .metric { min-height:0; padding:20px 18px; }
  .metric::before { width:34px; height:4px; margin-bottom:14px; }
  .case { grid-template-columns:1fr; padding:24px; }
  .case-side { padding-right:0; padding-bottom:18px; border-right:0; border-bottom:1px solid var(--line); }
  .career-section { padding:42px 0; }
  .career-row { grid-template-columns:90px 1fr; gap:14px; padding:12px 0; }
  .career-facts div { grid-template-columns:1fr; gap:5px; padding:12px 0; }
  .cards, .approach-grid { grid-template-columns:1fr; }
  .approach-grid { row-gap:0; }
  .approach-item { padding:23px 0 25px 48px; }
  .approach-no { top:24px; }
  .target-row { grid-template-columns:1fr; }
  .target-item { grid-template-columns:108px 1fr; gap:14px; }
  .target-item + .target-item { border-top:1px solid var(--line); }
  .contact-box { grid-template-columns:1fr; padding:30px 24px; }
  .contact-details { border-left:0; border-top:1px solid rgba(255,255,255,.18); padding-left:0; padding-top:26px; }
  .actions { align-items:stretch; }
}
@media (max-width: 480px) {
  h1 { font-size:3rem; }
  .role { font-size:1.25rem; }
  .hero-claim { font-size:1.25rem; }
  .portrait-wrap { width:185px; }
  .portrait-card { width:170px; height:170px; }
  .btn { width:100%; }
  .text-link { width:100%; margin:4px 0 0; text-align:center; }
  .hero-meta { display:grid; gap:3px; }
  .hero-meta span + span::before { content:""; margin:0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none!important; }
}

/* ---------- Formulaire de contact ---------- */
.contact-form { margin-top:26px; display:grid; gap:14px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.contact-form .field { display:grid; gap:6px; }
.contact-form label { font-size:.78rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:#c5d1dc; }
.contact-form .opt { font-weight:400; text-transform:none; letter-spacing:0; color:#9fb0c0; }
.contact-form input, .contact-form textarea {
  width:100%; padding:11px 13px; font:inherit; font-size:.95rem; color:#fff;
  background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.44);
  border-radius:10px; transition:border-color .15s, background .15s;
}
.contact-form textarea { resize:vertical; min-height:96px; }
.contact-form input:focus-visible, .contact-form textarea:focus-visible {
  outline:none; border-color:#fff; background:rgba(255,255,255,.20); box-shadow:0 0 0 3px rgba(255,255,255,.10);
}
.contact-form button { justify-self:start; margin-top:4px; }
.hp-field { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.actions-secondary { margin-top:22px; }
.form-status { margin:0; font-size:.9rem; color:#dfe8f0; }
@media (max-width: 760px) {
  .form-row { grid-template-columns:1fr; }
  .contact-form button { justify-self:stretch; width:100%; }
}

/* ---------- V11 · Accroches + impact avec KPI latéraux ---------- */
.hero-claim {
  font-size: clamp(1.65rem, 3vw, 2.5rem);
  line-height: 1.18;
  max-width: 860px;
  margin-top: 4px;
}
.hook-section {
  padding: 64px 0;
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.hook-grid {
  display: grid;
  grid-template-columns: minmax(250px,.7fr) minmax(0,1.3fr);
  gap: 70px;
  align-items: start;
}
.hook-head h2 { margin-bottom: 10px; font-size: clamp(2rem, 3.6vw, 3rem); }
.hook-subtitle { margin: 0; color: var(--muted); font-weight: 750; font-size: 1rem; }
.hook-list { border-top: 1px solid var(--line); }
.hook-item {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr);
  gap: 12px;
  align-items: start;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.hook-no {
  color: var(--orange-dark);
  font-size: .78rem;
  letter-spacing: .11em;
  font-weight: 850;
  padding-top: 4px;
}
.hook-item p {
  margin: 0;
  color: var(--navy);
  font-size: clamp(1.08rem, 1.8vw, 1.34rem);
  line-height: 1.35;
  font-weight: 780;
  letter-spacing: -.015em;
}
.case-grid { gap: 18px; }
.case { grid-template-columns: 230px minmax(0,1fr); gap: 34px; }
.case-side { min-width: 0; }
.case-years {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.35;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.case-metrics {
  display: grid;
  gap: 16px;
  margin-top: 24px;
}
.case-altran .case-metrics { gap: 11px; }
.case-metric { display: grid; gap: 3px; }
.case-metric-value {
  display: block;
  color: var(--navy);
  font-size: 1.12rem;
  line-height: 1.12;
  font-weight: 780;
  letter-spacing: -.025em;
}
.case-metric-label {
  display: block;
  color: #7a8795;
  font-size: .70rem;
  line-height: 1.32;
  font-weight: 650;
}
.case-body { min-width: 0; }
.case-conclusion {
  color: var(--navy)!important;
  font-weight: 800;
  margin-top: 16px!important;
}
@media (max-width: 980px) {
  .hook-grid { grid-template-columns: minmax(220px,.7fr) minmax(0,1.3fr); gap: 40px; }
  .case { grid-template-columns: 200px minmax(0,1fr); gap: 28px; }
}
@media (max-width: 780px) {
  .hook-section { padding: 50px 0; }
  .hook-grid { grid-template-columns: 1fr; gap: 26px; }
  .hook-head h2 { margin-bottom: 8px; }
  .case { grid-template-columns: 1fr; }
  .case-side { padding-right: 0; padding-bottom: 20px; border-right: 0; border-bottom: 1px solid var(--line); }
  .case-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 20px; }
}
@media (max-width: 480px) {
  .hook-item { grid-template-columns: 38px minmax(0,1fr); gap: 8px; }
  .case-metrics { grid-template-columns: 1fr; gap: 12px; }
}
