/* ============================================================
   Jean Emmanuel Ossong — feuille de style commune
   ============================================================ */

*{margin:0;padding:0;box-sizing:border-box}

:root{
  --blue:#14508c;
  --blue-dark:#0e3d6c;
  --gold:#9a5a1c;
  --green:#0f6b4a;
  --sand:#ece4da;
  --sand-light:#f6f1eb;
  --ink:#0e1b28;
  --text:#1e2b38;
  --text2:#54677a;
  --text3:#8fa1b0;
  --border:rgba(20,80,140,0.16);
  --border2:rgba(20,80,140,0.08);
  --font-title:'IBM Plex Serif',Georgia,serif;
  --font-sans:'IBM Plex Sans',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;
  --wrap:1180px;
}

html{scroll-behavior:smooth}
body{background:#fff;color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
::selection{background:rgba(20,80,140,0.14)}

/* ---------- En-tête ---------- */
.site-header{border-bottom:1px solid var(--border);background:#fff;position:sticky;top:0;z-index:50}
.header-inner{max-width:var(--wrap);margin:0 auto;padding:0 32px;height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.brand-mark{width:11px;height:11px;background:var(--blue);flex-shrink:0}
.brand-name{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--ink);letter-spacing:.1px}
.brand-role{font-family:var(--font-mono);font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--text2);border-left:1px solid var(--border);padding-left:11px;margin-left:2px}
.site-nav{display:flex;gap:4px;list-style:none}
.site-nav a{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:1.4px;text-transform:uppercase;color:var(--text2);text-decoration:none;padding:9px 13px;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.site-nav a:hover{color:var(--blue)}
.site-nav a[aria-current="page"]{color:var(--blue);border-bottom-color:var(--blue)}

/* ---------- Accueil ---------- */
.hero{position:relative;padding:0 0 96px}
.hero-band{position:absolute;top:0;left:0;width:44%;height:calc(100% - 56px);background:var(--sand);z-index:0}
.hero-inner{position:relative;z-index:1;max-width:var(--wrap);margin:0 auto;padding:76px 32px 0;display:grid;grid-template-columns:400px 1fr;gap:76px;align-items:start}

.profile-card{background:#fff;box-shadow:0 18px 44px rgba(14,27,40,0.11);padding:44px 40px 0;text-align:center}
.portrait{width:150px;height:150px;border-radius:50%;margin:0 auto 26px;background:var(--sand-light);display:flex;align-items:center;justify-content:center;overflow:hidden}
.portrait span{font-family:var(--font-title);font-size:40px;font-weight:400;color:var(--blue);letter-spacing:1px}
.portrait img{width:100%;height:100%;object-fit:cover}
.profile-card h2{font-family:var(--font-sans);font-size:23px;font-weight:600;color:var(--ink);line-height:1.25;margin-bottom:18px}
.profile-rule{width:38px;height:2px;background:var(--blue);margin:0 auto 18px}
.profile-role{font-family:var(--font-mono);font-size:10px;letter-spacing:2.6px;text-transform:uppercase;color:var(--text2);margin-bottom:34px}
.profile-links{border-top:1px solid var(--border2);display:flex;justify-content:center;gap:26px;padding:19px 0}
.profile-links a{font-family:var(--font-mono);font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--text2);text-decoration:none;transition:color .2s}
.profile-links a:hover{color:var(--blue)}

.hero-body{padding-top:52px}
.hero-body h1{font-family:var(--font-title);font-size:clamp(52px,7vw,86px);font-weight:600;color:var(--ink);line-height:1;letter-spacing:-1.5px;margin-bottom:18px}
.hero-lead{font-size:19px;color:var(--text);margin-bottom:32px;font-weight:400}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:26px;margin-bottom:38px}
.hero-body p:not(.hero-lead){font-size:15px;color:var(--text2);line-height:1.85;max-width:520px;margin-bottom:20px}
.hero-body p:last-child{margin-bottom:0}

/* ---------- Boutons ---------- */
.btn{display:inline-block;background:var(--blue);color:#fff;border:none;padding:14px 32px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:background .2s}
.btn:hover{background:var(--blue-dark)}
.link-underline{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--text2);text-decoration:none;padding-bottom:3px;border-bottom:1px solid var(--border);transition:color .2s,border-color .2s}
.link-underline:hover{color:var(--blue);border-bottom-color:var(--blue)}

/* ---------- Sections courantes ---------- */
.page{max-width:var(--wrap);margin:0 auto;padding:72px 32px 96px}
.page-head{max-width:660px;margin-bottom:64px}
.eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:2.2px;text-transform:uppercase;color:var(--blue);margin-bottom:14px;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:'';width:26px;height:1px;background:var(--blue)}
h1.page-title{font-family:var(--font-title);font-size:clamp(34px,4.6vw,52px);font-weight:600;color:var(--ink);line-height:1.1;letter-spacing:-.6px;margin-bottom:16px}
.page-lead{font-size:16.5px;color:var(--text2);line-height:1.8}
.section{margin-bottom:76px}
.section:last-child{margin-bottom:0}
h2.section-title{font-family:var(--font-title);font-size:26px;font-weight:600;color:var(--ink);margin-bottom:28px;padding-bottom:14px;border-bottom:2px solid var(--blue)}
h3{font-family:var(--font-sans);font-size:18px;font-weight:600;color:var(--ink)}

/* ---------- Chiffres clés ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--border);margin-top:52px}
.kpi{padding:22px 20px 0;border-right:1px solid var(--border2)}
.kpi:last-child{border-right:none}
.kpi-num{font-family:var(--font-sans);font-size:32px;font-weight:600;color:var(--blue);line-height:1;font-feature-settings:"tnum"}
.kpi-num sub{font-size:15px;color:var(--gold);bottom:0}
.kpi-label{font-family:var(--font-mono);font-size:9.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--text2);margin-top:7px}

/* ---------- Parcours ---------- */
.tl-item{display:grid;grid-template-columns:190px 1fr;gap:40px;padding:32px 0;border-bottom:1px solid var(--border2)}
.tl-item:last-child{border-bottom:none}
.tl-date{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--blue);line-height:1.5}
.tl-now{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--green);margin-bottom:7px}
.tl-now::before{content:'';width:6px;height:6px;background:var(--green);border-radius:50%}
.tl-org{font-family:var(--font-mono);font-size:10px;color:var(--gold);letter-spacing:.6px;text-transform:uppercase;margin:4px 0 14px}
.tl-body ul{list-style:none;display:flex;flex-direction:column;gap:7px}
.tl-body li{font-size:14px;color:var(--text2);display:flex;gap:9px;line-height:1.6}
.tl-body li::before{content:'\203A';color:var(--blue);flex-shrink:0}

/* ---------- Grilles ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:36px}
.block{border-top:2px solid var(--blue);padding-top:22px}
.block h3{margin-bottom:9px}
.block p{font-size:14px;color:var(--text2);line-height:1.7;margin-bottom:14px}
.block-note{font-family:var(--font-mono);font-size:9.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold);margin-bottom:11px}
.tag-row{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--text2);padding-top:13px;border-top:1px solid var(--border2)}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:15px;border-top:1px solid var(--border2);margin-top:15px}
.metric-val{font-family:var(--font-sans);font-size:19px;font-weight:600;color:var(--blue);line-height:1;font-feature-settings:"tnum"}
.metric-val sub{font-size:10px;color:var(--gold);bottom:0}
.metric-key{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--text2);margin-top:5px}

/* ---------- Listes de compétences ---------- */
.skill-group{margin-bottom:26px}
.skill-label{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold);margin-bottom:9px}
.skill-list{list-style:none}
.skill-list li{display:flex;align-items:baseline;justify-content:space-between;gap:14px;font-size:14px;padding:7px 0;border-bottom:1px solid var(--border2)}
.skill-list li:last-child{border-bottom:none}
.skill-list em{font-style:normal;font-family:var(--font-mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--gold);flex-shrink:0}

/* ---------- Citations ---------- */
.quote{font-family:var(--font-title);font-size:15.5px;line-height:1.75;color:var(--text);padding-left:22px;border-left:2px solid var(--border);margin-bottom:18px}
.quote-author{padding-left:24px}
.quote-author strong{display:block;font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--ink)}
.quote-author span{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--text2)}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:72px;align-items:start}
.detail-list{list-style:none;border-top:1px solid var(--border)}
.detail-list li{display:flex;gap:18px;padding:14px 0;border-bottom:1px solid var(--border2);font-size:14.5px;align-items:baseline}
.detail-list li:last-child{border-bottom:none}
.detail-key{font-family:var(--font-mono);font-size:9.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--text3);width:80px;flex-shrink:0}
.detail-list a{color:var(--text);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.detail-list a:hover{color:var(--blue);border-bottom-color:var(--blue)}
.availability{display:flex;align-items:center;gap:11px;margin-top:22px;padding-top:16px;border-top:1px solid var(--border2);font-size:14px;color:var(--green)}
.availability::before{content:'';width:8px;height:8px;background:var(--green);border-radius:50%;flex-shrink:0}
.form{border-top:2px solid var(--blue);padding-top:28px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 30px}
.field.full{grid-column:1/-1}
.field label{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--text2);margin-bottom:8px}
.field input,.field select,.field textarea{width:100%;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--text);padding:9px 2px;font-family:var(--font-sans);font-size:14.5px;outline:none;transition:border-color .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--blue);border-bottom-width:2px;padding-bottom:8px}
.field textarea{resize:vertical;min-height:104px;line-height:1.6}
.form-foot{grid-column:1/-1;display:flex;align-items:center;gap:18px;margin-top:8px;flex-wrap:wrap}
.form-note{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.8px;color:var(--text2)}
.zone{display:flex;align-items:center;gap:16px;padding:15px 0;border-bottom:1px solid var(--border2)}
.zone:first-child{border-top:1px solid var(--border)}
.zone h3{font-size:15px;margin-bottom:2px}
.zone p{font-size:13px;color:var(--text2)}
.zone-state{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--green);white-space:nowrap}
.zone-state.target{color:var(--gold)}

/* ---------- Pied de page ---------- */
.site-footer{background:var(--ink);color:#9fb2c4;padding:48px 32px 26px;margin-top:0}
.footer-inner{max-width:var(--wrap);margin:0 auto}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:44px;margin-bottom:34px}
.footer-name{font-family:var(--font-title);font-size:19px;color:#fff;font-weight:600;margin-bottom:5px}
.footer-role{font-family:var(--font-mono);font-size:9px;letter-spacing:2.2px;text-transform:uppercase;color:#7e94a8;margin-bottom:15px}
.footer-desc{font-size:12.5px;line-height:1.75;max-width:290px}
.footer-col h4{font-family:var(--font-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#7fb3e0;margin-bottom:14px;font-weight:500}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.footer-col a{font-size:12.5px;color:#9fb2c4;text-decoration:none;transition:color .2s}
.footer-col a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1);padding-top:20px;font-family:var(--font-mono);font-size:9px;color:#7e94a8;letter-spacing:.5px}

/* ---------- Impression ---------- */
@media print{
  .site-header,.site-footer,.hero-actions,.form,.hero-band{display:none!important}
  body{font-size:11pt}
  .page{padding:0}
  .profile-card{box-shadow:none;border:1px solid #ccc}
}

/* ---------- Adaptatif ---------- */
@media(max-width:1000px){
  .hero-band{width:100%;height:340px}
  .hero-inner{grid-template-columns:1fr;gap:48px;padding-top:56px}
  .profile-card{max-width:400px}
  .hero-body{padding-top:0}
  .contact-grid{grid-template-columns:1fr;gap:48px}
  .grid-3,.grid-4{grid-template-columns:1fr 1fr}
  .kpis{grid-template-columns:1fr 1fr}
  .kpi{border-bottom:1px solid var(--border2);padding-bottom:20px}
  .footer-top{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .header-inner{height:auto;padding:16px 20px;flex-direction:column;align-items:flex-start;gap:12px}
  .site-nav{flex-wrap:wrap;gap:0;margin-left:-13px}
  .brand-role{display:none}
  .page,.hero-inner{padding-left:20px;padding-right:20px}
  .grid-3,.grid-4,.form-grid{grid-template-columns:1fr}
  .tl-item{grid-template-columns:1fr;gap:14px}
  .hero-body h1{font-size:46px}
  .footer-top{grid-template-columns:1fr}
  .site-footer{padding-left:20px;padding-right:20px}
}
