/* Profil coach façon CV (23/10/2026) */
.cv{ --cv-navy:#10233F; --cv-copper:#A9552F; --cv-ink:#1E2430; --cv-ink2:#4A505B; --cv-mute:#6B707A; --cv-line:#E5DBCF; --cv-paper:#FBF8F3;
  color:var(--cv-ink); padding:28px 0 72px; background:var(--cv-paper); }
.cv-wrap{ max-width:1080px; margin:0 auto; padding:0 16px; }
.cv-back{ font-size:13.5px; color:var(--cv-mute); text-decoration:none; display:inline-block; margin-bottom:18px; }
.cv-back:hover{ color:var(--cv-navy); }
.cv-hero{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:36px; align-items:center; background:#fff; border:1px solid var(--cv-line); border-radius:22px; padding:28px; }
.cv-photo{ aspect-ratio:4/4.6; border-radius:16px; overflow:hidden; background:#EFE6DA; display:grid; place-items:center; }
.cv-photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 12%; display:block; }
.cv-photo .cv-ini{ font-family:'Fraunces',Georgia,serif; font-size:72px; color:var(--cv-navy); }
.cv-kicker{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--cv-copper); margin:0 0 8px; }
.cv-name{ font-family:'Fraunces',Georgia,serif; font-size:clamp(30px,4.4vw,44px); line-height:1.05; color:var(--cv-navy); margin:0; }
.cv-title{ font-size:16px; font-weight:600; color:var(--cv-ink2); margin:8px 0 0; }
.cv-tags{ display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 0; padding:0; list-style:none; }
.cv-tags li{ font-size:13px; font-weight:600; color:var(--cv-navy); background:#F1ECE4; border-radius:999px; padding:6px 12px; }
.cv-facts{ display:flex; flex-wrap:wrap; gap:8px 22px; margin:18px 0 0; font-size:14px; color:var(--cv-ink2); }
.cv-facts span b{ color:var(--cv-navy); }
.cv-ctas{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.cv-btn{ display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14.5px; border-radius:999px; padding:12px 22px; text-decoration:none; border:1px solid transparent; }
.cv-btn--primary{ background:var(--cv-copper); color:#fff; }
.cv-btn--primary:hover{ background:#8E4626; }
.cv-btn--ghost{ background:#fff; color:var(--cv-navy); border-color:var(--cv-line); }
.cv-btn--ghost:hover{ border-color:var(--cv-navy); }
.cv-avail{ margin:12px 0 0; font-size:13.5px; color:var(--cv-mute); }
.cv-avail.is-on{ color:#1F7A4D; font-weight:600; }

.cv-body{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; margin-top:24px; align-items:start; }
.cv-sec{ background:#fff; border:1px solid var(--cv-line); border-radius:18px; padding:24px 26px; }
.cv-sec + .cv-sec{ margin-top:18px; }
.cv-sec h2{ font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--cv-copper); margin:0 0 14px; font-weight:700; font-family:inherit; }
.cv-sec p{ margin:0 0 10px; color:var(--cv-ink2); line-height:1.65; font-size:15px; }
.cv-sec p:last-child{ margin-bottom:0; }
.cv-tl{ list-style:none; margin:0; padding:0; display:grid; gap:18px; }
.cv-tl li{ position:relative; padding-left:22px; }
.cv-tl li::before{ content:""; position:absolute; left:0; top:7px; width:9px; height:9px; border-radius:50%; background:var(--cv-copper); }
.cv-tl li::after{ content:""; position:absolute; left:4px; top:20px; bottom:-14px; width:1px; background:var(--cv-line); }
.cv-tl li:last-child::after{ display:none; }
.cv-tl h3{ margin:0; font-size:16px; color:var(--cv-navy); }
.cv-tl .cv-where{ font-size:13.5px; color:var(--cv-mute); margin:2px 0 6px; }
.cv-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.cv-chips span{ font-size:13px; border:1px solid var(--cv-line); border-radius:10px; padding:6px 10px; color:var(--cv-ink2); background:var(--cv-paper); }
.cv-side .cv-sec{ padding:20px; }
.cv-dl{ margin:0; display:grid; gap:12px; }
.cv-dl dt{ font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--cv-mute); }
.cv-dl dd{ margin:3px 0 0; font-weight:600; color:var(--cv-navy); font-size:14.5px; }
.cv-prog{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.cv-prog a{ display:flex; justify-content:space-between; gap:10px; text-decoration:none; color:var(--cv-navy); font-weight:600; font-size:14px; padding:10px 12px; border-radius:10px; background:var(--cv-paper); }
.cv-prog a:hover{ background:#F1ECE4; }
.cv-note{ font-size:12.5px; color:var(--cv-mute); margin-top:10px; }
.cv-empty{ text-align:center; padding:60px 16px; }

@media (max-width:860px){
  .cv-hero{ grid-template-columns:1fr; gap:22px; padding:20px; }
  .cv-photo{ max-width:240px; }
  .cv-body{ grid-template-columns:1fr; }
}
