/* Références clients : bandeau de logos, page « Nos clients » et pages client.
   Les logos restent sur fond blanc, y compris en thème sombre, pour garder leurs couleurs. */
.client-proof { padding:72px 0; background:var(--white); border-top:1px solid var(--gray-200); border-bottom:1px solid var(--gray-200); }
.client-proof .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; }
.client-proof-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,420px); gap:24px 56px; align-items:end; margin-bottom:36px; }
.client-proof-heading h2 { font-size:clamp(28px,3.4vw,40px); line-height:1.15; letter-spacing:-.035em; color:var(--gray-900); margin:0; }
.client-proof-heading p { color:var(--text-secondary); font-size:16px; line-height:1.75; margin:0; }
/* Flex centré : une dernière ligne incomplète reste centrée, quel que soit le nombre de clients. */
.client-logo-wall { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.client-logo-wall li { flex:1 1 140px; max-width:190px; }
.client-logo-wall a { display:flex; flex-direction:column; align-items:center; justify-content:space-between; gap:12px; height:100%; min-height:148px; padding:22px 14px 14px; background:#fff; border:1px solid #e2e8f0; border-radius:14px; text-decoration:none; transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.client-logo-wall a:hover, .client-logo-wall a:focus-visible { border-color:#2454ce; box-shadow:0 10px 24px #0f172a14; transform:translateY(-2px); }
.client-logo-wall img { flex:1; width:auto; height:auto; max-width:100%; max-height:64px; object-fit:contain; margin:auto 0; }
.client-logo-wall img.client-logo--tall { max-height:92px; }
.client-logo-sector { color:#475569; font-size:11px; font-weight:600; line-height:1.4; text-align:center; letter-spacing:.01em; }
.client-proof-link { display:inline-flex; align-items:center; gap:12px; margin-top:26px; color:var(--primary); font-size:14px; font-weight:600; text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; }
.client-proof-link>span { color:var(--accent-text); font-size:18px; }
[data-theme=dark] .client-logo-wall a { border-color:#334155; }

/* Page client */
.client-hero-grid { grid-template-columns:minmax(0,1fr) 360px; }
.client-hero h1 { font-size:clamp(40px,5vw,60px); }
.client-hero h1.client-title--long { font-size:clamp(30px,3.4vw,44px); line-height:1.12; }
.client-logo-card { display:flex; align-items:center; justify-content:center; min-height:280px; padding:44px; background:#fff; border:1px solid #e2e8f0; border-radius:22px; box-shadow:0 18px 40px #0f172a12; }
.client-logo-card img { width:100%; height:auto; max-height:170px; object-fit:contain; }
.client-logo-card img.client-logo--tall { width:auto; max-height:230px; }
.client-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 28px; margin:28px 0 22px; max-width:560px; }
.client-facts div { border-left:2px solid var(--orange); padding-left:14px; }
.client-facts dt { color:var(--text-secondary); font-size:12px; font-weight:600; letter-spacing:.02em; line-height:1.5; }
.client-facts dd { margin:4px 0 0; color:var(--gray-900); font-family:var(--font-heading); font-size:clamp(20px,2.2vw,26px); line-height:1.2; letter-spacing:-.02em; }
.client-website a { color:var(--primary); font-size:14px; font-weight:600; text-underline-offset:5px; }
.client-website a>span { color:var(--accent-text); }
.client-courses ul { list-style:none; padding:0; margin:18px 0 22px; display:grid; gap:10px; }
.client-courses li { display:block; padding:0; border:0; }
.client-courses li::before { content:none; }
.client-courses li a { display:flex; justify-content:space-between; gap:14px; padding:14px 16px; border:1px solid var(--gray-200); border-radius:10px; background:var(--white); color:var(--gray-900); font-size:14px; font-weight:600; line-height:1.45; text-decoration:none; }
.client-courses li a:hover { border-color:var(--primary); color:var(--primary); }
.client-courses li a>span { color:var(--accent-text); flex-shrink:0; }
.client-courses .btn { width:100%; justify-content:center; }
.client-quote { margin:32px 0; padding:26px 28px; border-left:3px solid var(--orange); background:var(--gray-50); border-radius:0 14px 14px 0; }
.client-quote blockquote { margin:0; font-size:18px; line-height:1.7; color:var(--gray-900); }
.client-quote figcaption { margin-top:12px; color:var(--text-secondary); font-size:14px; font-weight:600; }
.client-sources { padding:36px 0; border-top:1px solid var(--gray-200); }
.client-sources h2 { font-size:18px; margin:0 0 6px; color:var(--gray-900); }
.client-sources p { color:var(--text-secondary); font-size:14px; margin:0 0 12px; }
.client-sources ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px 22px; }
.client-sources a { color:var(--primary); font-size:14px; text-underline-offset:4px; }
.client-sources a>span { color:var(--accent-text); }

/* Appel à l'action commun */
.client-cta { padding:72px 0; background:var(--white); }
.client-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:48px 52px; border-radius:24px; background:linear-gradient(135deg,#0f172a 0%,#1e3a6e 70%,#2454ce 100%); color:#fff; }
.client-cta .section-tag { background:#ffffff1f; color:#fff; }
.client-cta h2 { color:#fff; font-size:clamp(26px,3vw,36px); line-height:1.2; letter-spacing:-.03em; margin:0 0 12px; }
.client-cta p { color:#dbe4f5; font-size:16px; line-height:1.75; max-width:560px; margin:0; }
.client-cta-actions { display:flex; flex-direction:column; align-items:flex-start; gap:16px; flex-shrink:0; }
.client-cta .btn-primary { background:#fff; color:#163b84; box-shadow:none; }
.client-cta .people-link { color:#fff; }
.client-cta .people-link>span { color:#fdba74; }

/* Page « Nos clients » */
.client-hub-intro { max-width:760px; }
.client-hub-intro h1 { font-size:clamp(44px,5.5vw,66px); line-height:1.07; letter-spacing:-.055em; color:var(--gray-900); margin:20px 0; }
.client-hub-intro h1>span { color:var(--primary); }
.client-hub-sectors { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.client-hub-sectors li { padding:6px 14px; border:1px solid var(--gray-300); border-radius:999px; background:var(--white); color:var(--text-body); font-size:13px; font-weight:600; }
.client-hub .client-proof { padding:48px 0; border-top:0; }
.client-hub-list { background:var(--gray-50); border-top:1px solid var(--gray-200); }
.client-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.client-card { display:flex; flex-direction:column; border:1px solid var(--gray-200); border-radius:16px; background:var(--white); overflow:hidden; scroll-margin-top:100px; }
.client-card-logo { display:flex; align-items:center; justify-content:center; height:170px; padding:30px; background:#fff; border-bottom:1px solid #e2e8f0; }
.client-card-logo img { width:auto; height:auto; max-width:78%; max-height:96px; object-fit:contain; }
.client-card-logo img.client-logo--tall { max-height:124px; }
.client-card-body { display:flex; flex-direction:column; flex:1; padding:24px; }
.client-card-sector { color:var(--accent-text); font-size:12px; font-weight:700; letter-spacing:.02em; margin:0 0 8px; }
.client-card h3 { font-size:22px; line-height:1.25; margin:0 0 10px; }
.client-card h3 a { color:var(--gray-900); text-decoration:none; }
.client-card h3 a:hover { color:var(--primary); }
.client-card-body>p:not(.client-card-sector) { color:var(--text-secondary); font-size:15px; line-height:1.7; margin:0 0 18px; }
.client-card .people-link { margin-top:auto; padding-top:14px; border-top:1px solid var(--gray-200); text-decoration:none; }

@media (max-width:900px) {
  .client-proof-heading { grid-template-columns:1fr; }
  .client-hero-grid { grid-template-columns:1fr; gap:32px; }
  .client-logo-card { min-height:200px; max-width:420px; width:100%; }
  .client-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .client-cta-inner { flex-direction:column; align-items:flex-start; padding:36px 28px; }
}
@media (max-width:600px) {
  .client-proof { padding:52px 0; }
  .client-logo-wall { gap:10px; }
  .client-logo-wall li { flex-basis:130px; }
  .client-logo-wall a { min-height:124px; padding:18px 10px 12px; }
  .client-logo-wall img { max-height:50px; }
  .client-logo-wall img.client-logo--tall { max-height:76px; }
  .client-facts { grid-template-columns:1fr 1fr; gap:14px 18px; }
  .client-grid { grid-template-columns:1fr; }
  .client-cta { padding:48px 0; }
}
