/* ============================================================================
   DESIGN TOKENS — Direction B : Moderne & Colorée
   ============================================================================ */
:root{
  --bg:#F5F2FB;
  --surface:#FFFFFF;
  --ink:#1B1030;
  --ink-soft:#5B5270;
  --ink-faint:#9A90B0;
  --violet:#6C3CE9;
  --violet-soft:#EFE7FD;
  --coral:#FF6B57;
  --coral-soft:#FFEAE6;
  --mint:#0FB88A;
  --mint-soft:#E1F8F0;
  --line:#E9E3F7;
  --radius:20px;
  --radius-sm:12px;
  --shadow:0 10px 30px rgba(27,16,48,.06);
  --maxw:1100px;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Work Sans',sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,.mark,.btn{font-family:'Space Grotesk',sans-serif;}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;position:relative;}
section{position:relative;z-index:2;}
section[id]{scroll-margin-top:88px;}

/* decorative background blobs */
.blob{position:fixed;border-radius:50%;filter:blur(70px);opacity:.28;z-index:0;pointer-events:none;}
.b1{width:440px;height:440px;background:var(--violet);top:-160px;right:-120px;}
.b2{width:340px;height:340px;background:var(--coral);top:520px;left:-160px;opacity:.2;}
.b3{width:280px;height:280px;background:var(--mint);top:1100px;right:60px;opacity:.18;}

/* ============================================================================
   NAV
   ============================================================================ */
header.top{position:sticky;top:0;z-index:20;background:rgba(245,242,251,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.navrow{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;gap:20px;}
.mark{font-weight:700;font-size:17px;text-decoration:none;}
.mark span{color:var(--violet);}
nav ul{list-style:none;display:flex;gap:24px;flex-wrap:wrap;position:relative;}
nav a{color:var(--ink-soft);text-decoration:none;font-size:14px;font-weight:500;transition:color .15s ease;}
nav a:hover{color:var(--violet);}
nav a.is-active{color:var(--violet);}
.nav-indicator{position:absolute;left:0;top:0;height:2px;width:0;background:var(--violet);border-radius:2px;opacity:0;transition:transform .25s ease, top .25s ease, width .25s ease, opacity .2s ease;pointer-events:none;}
.nav-indicator.is-visible{opacity:1;}

.ai-badge{
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:10px;letter-spacing:.04em;
  text-transform:uppercase;padding:3px 8px;border-radius:100px;
  background:linear-gradient(120deg,var(--violet),var(--coral));color:#fff;
  vertical-align:middle;margin-left:5px;white-space:nowrap;
}
.ai-badge-lg{font-size:13px;padding:6px 14px;margin-left:12px;}
.navactions{display:flex;gap:10px;flex-shrink:0;}
.btn{font-size:13px;font-weight:600;padding:10px 18px;border-radius:100px;cursor:pointer;border:1.5px solid var(--ink);background:transparent;color:var(--ink);transition:transform .15s ease, box-shadow .15s ease;}
.btn:hover{transform:translateY(-1px);}
.btn.solid{background:var(--violet);border-color:var(--violet);color:#fff;box-shadow:0 6px 16px rgba(108,60,233,.28);}
.btn.icon-btn{width:38px;height:38px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.btn.icon-btn svg{width:18px;height:18px;}
.btn[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink);}
.link-btn{background:none;border:none;color:var(--violet);font-weight:600;font-size:13px;cursor:pointer;text-decoration:underline;margin-left:8px;}

/* ============================================================================
   HERO
   ============================================================================ */
.hero{padding:56px 0 76px;}
.hero-grid{display:grid;grid-template-columns:1fr 230px;gap:48px;align-items:center;}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--violet);background:var(--violet-soft);display:inline-block;padding:6px 14px;border-radius:100px;margin-bottom:18px;}
h1{font-size:48px;font-weight:700;letter-spacing:-.01em;margin-bottom:8px;line-height:1.05;}
.role{font-size:19px;color:var(--ink-soft);font-weight:500;margin-bottom:20px;}
.pills{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px;}
.pill{font-size:13px;font-weight:600;padding:7px 14px;border-radius:100px;background:var(--surface);border:1.5px solid var(--line);}
.pitch{max-width:560px;color:var(--ink-soft);font-size:16px;margin-bottom:28px;}
.pitch strong,.role-context strong,.role-achievements strong{color:var(--ink);font-weight:700;}

.hero-stats{display:flex;gap:28px;margin-bottom:28px;flex-wrap:wrap;}
.hero-stat{padding-left:20px;border-left:2px solid var(--line);}
.hero-stat:first-child{padding-left:0;border-left:none;}
.hero-stat-value{
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:26px;line-height:1.1;
  background:linear-gradient(120deg,var(--violet),var(--coral));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-stat-label{font-size:12px;color:var(--ink-soft);margin-top:4px;max-width:140px;}
body.focus-mode .hero-stat-value{background:none;-webkit-text-fill-color:initial;color:var(--ink);}
.herobtns{display:flex;gap:12px;flex-wrap:wrap;}
.herobtns a{text-decoration:none;}
.photo-ring{width:230px;height:230px;border-radius:50%;padding:6px;background:conic-gradient(from 200deg,var(--violet),var(--coral),var(--mint),var(--violet));}
.photo-box{width:100%;height:100%;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--ink-soft);overflow:hidden;}
.photo-box img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.photo-box strong{font-size:38px;font-family:'Space Grotesk',sans-serif;color:var(--violet);}
.photo-box span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-top:4px;}

/* ============================================================================
   TEASER FIT-CHECKER — bandeau discret, dans le flux normal (pas flottant)
   ============================================================================ */
.fit-teaser{margin-bottom:56px;}
.fit-teaser-inner{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  background:linear-gradient(120deg,var(--violet-soft),var(--coral-soft));
  border:1.5px solid var(--line);border-radius:100px;
  padding:14px 24px;text-decoration:none;color:var(--ink);
  transition:transform .15s ease, box-shadow .15s ease;
}
.fit-teaser-inner:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(108,60,233,.15);}
.fit-teaser-text{font-size:14.5px;font-weight:500;flex:1;min-width:200px;}
.fit-teaser-cta{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:14px;color:var(--violet);white-space:nowrap;}
body.focus-mode .fit-teaser-inner{background:#F1F1EF;}

/* ============================================================================
   SECTION TITLES (shared)
   ============================================================================ */
.sectitle{display:flex;align-items:center;gap:12px;margin-bottom:28px;}
.sectitle h2{font-size:26px;font-weight:700;}
.loop{width:26px;height:26px;flex-shrink:0;color:var(--violet);}

/* ============================================================================
   PILLARS
   ============================================================================ */
.pillars{padding:0 0 90px;}
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.pillar{background:var(--surface);border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow);border-top:5px solid var(--violet);}
.pillar[data-id="data-informed"]{border-top-color:var(--mint);}
.pillar[data-id="iterative"]{border-top-color:var(--coral);}
.pillar h3{font-size:19px;font-weight:700;margin-bottom:6px;}
.pillar .sub{font-size:13.5px;color:var(--violet);font-weight:600;margin-bottom:16px;}
.pillar[data-id="data-informed"] .sub{color:var(--mint);}
.pillar[data-id="iterative"] .sub{color:var(--coral);}
.pillar ul{list-style:none;display:flex;flex-direction:column;gap:9px;}
.pillar li{font-size:14px;color:var(--ink-soft);padding-left:16px;position:relative;line-height:1.5;}
.pillar li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--violet);}
.pillar[data-id="data-informed"] li::before{background:var(--mint);}
.pillar[data-id="iterative"] li::before{background:var(--coral);}

/* ============================================================================
   SKILLS / FILTERS
   ============================================================================ */
.skills-section{padding:0 0 70px;}
.skills-hint{color:var(--ink-soft);font-size:14px;margin-bottom:22px;}
.skills-groups{display:flex;flex-direction:column;gap:16px;}
.skills-group{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;}
.skills-group-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);min-width:90px;padding-top:9px;}
.skills-chips{display:flex;gap:10px;flex-wrap:wrap;}
.chip{font-size:13.5px;font-weight:600;padding:8px 16px;border-radius:100px;background:var(--surface);border:1.5px solid var(--line);cursor:pointer;transition:all .15s ease;}
.chip:hover{border-color:var(--violet);}
.chip.active{background:var(--violet);border-color:var(--violet);color:#fff;}

/* ============================================================================
   EXPERIENCES
   ============================================================================ */
.experiences-section{padding:0 0 90px;}
.filter-status{font-size:13.5px;color:var(--ink-soft);margin-bottom:18px;}
.experiences-list{display:flex;flex-direction:column;gap:20px;}
.company-block{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px 30px 8px;transition:opacity .2s ease;}
.company-block.is-hidden{display:none;}
.company-header{display:flex;align-items:center;gap:18px;margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid var(--line);}
.company-logo{width:56px;height:56px;border-radius:14px;object-fit:cover;flex-shrink:0;background:var(--violet-soft);}
.company-logo-fallback{width:56px;height:56px;border-radius:14px;flex-shrink:0;background:var(--violet-soft);color:var(--violet);display:flex;align-items:center;justify-content:center;font-weight:700;font-family:'Space Grotesk',sans-serif;font-size:17px;}
.company-name{font-size:19px;font-weight:700;}
.company-meta{font-size:13px;color:var(--ink-soft);margin-top:2px;}
.company-total{margin-left:auto;text-align:right;font-size:12px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;}
.company-total strong{display:block;font-size:14px;color:var(--ink);text-transform:none;letter-spacing:0;font-family:'Space Grotesk',sans-serif;}
.role-block{padding-bottom:26px;margin-bottom:26px;border-bottom:1px dashed var(--line);}
.role-block:last-child{border-bottom:none;margin-bottom:0;}
.role-block.is-hidden{display:none;}
.role-top{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.role-title{font-size:16.5px;font-weight:700;}
.role-dates{font-size:13px;color:var(--ink-faint);font-weight:500;white-space:nowrap;}
.role-context{font-size:14.5px;color:var(--ink-soft);margin-bottom:12px;}
.role-achievements-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;margin-bottom:8px;font-family:'Space Grotesk',sans-serif;}
.role-achievements{list-style:none;display:flex;flex-direction:column;gap:7px;margin-bottom:14px;}
.role-achievements li{font-size:14px;color:var(--ink-soft);padding-left:20px;position:relative;line-height:1.5;}
.role-achievements li::before{content:"";position:absolute;left:0;top:6px;width:9px;height:9px;border-radius:3px;background:var(--mint-soft);border:1.5px solid var(--mint);}
.role-meta{display:flex;gap:16px;flex-wrap:wrap;background:#FAF8FE;border-radius:10px;padding:10px 14px;margin-bottom:14px;}
.role-meta-item{font-size:12.5px;color:var(--ink-soft);display:flex;align-items:center;gap:6px;}
.role-meta-item b{color:var(--ink);font-weight:600;}
.role-skills{display:flex;gap:8px;flex-wrap:wrap;}
.role-skill{font-size:12px;font-weight:600;padding:5px 12px;border-radius:100px;background:var(--mint-soft);color:var(--mint);}
.role-skill.is-matched{background:var(--violet);color:#fff;}

/* ============================================================================
   FORMATION / LANGUES / CERTIFICATIONS
   ============================================================================ */
.formation-section{padding:0 0 90px;}
.formation-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;align-items:start;}
.formation-subtitle{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-bottom:12px;font-family:'Space Grotesk',sans-serif;}
.formation-col .formation-subtitle:not(:first-child){margin-top:22px;}
.formation-list{list-style:none;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;}
.formation-list li{padding:16px 20px;border-bottom:1px solid var(--line);}
.formation-list li:last-child{border-bottom:none;}
.formation-item-title{font-size:14.5px;font-weight:600;margin-bottom:3px;}
.formation-item-meta{font-size:13px;color:var(--ink-soft);}
.formation-side{display:flex;flex-direction:column;gap:20px;}
.formation-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;border-top:5px solid var(--mint);}
.formation-card:last-child{border-top-color:var(--coral);}
.lang-list{list-style:none;display:flex;flex-direction:column;gap:10px;}
.lang-list li{display:flex;justify-content:space-between;font-size:14px;}
.lang-list .lang-level{color:var(--ink-soft);font-weight:500;}

/* ============================================================================
   RECOMMANDATION — citation vedette
   ============================================================================ */
.testimonial-section{padding:60px 0 80px;}
.testimonial-card{
  background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:52px 60px;max-width:820px;margin:0 auto;text-align:center;
}
.testimonial-eyebrow{margin-bottom:18px;}
.quote-mark{
  display:block;font-family:'Space Grotesk',sans-serif;font-weight:700;
  font-size:84px;line-height:1;color:var(--violet-soft);margin-bottom:-16px;
}
.testimonial-quote{font-size:19px;line-height:1.6;color:var(--ink);font-weight:500;font-style:italic;margin-bottom:28px;}
.testimonial-attribution{display:flex;align-items:center;justify-content:center;gap:14px;}
.testimonial-avatar{
  width:52px;height:52px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--violet),var(--coral));color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:16px;
}
.testimonial-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;}
.testimonial-name{font-weight:700;font-size:15px;text-align:left;}
.testimonial-role{font-size:13px;color:var(--ink-soft);text-align:left;}
body.focus-mode .testimonial-card{box-shadow:none;border:1px solid var(--line);}
body.focus-mode .quote-mark{color:#F1F1EF;}
body.focus-mode .testimonial-avatar{background:var(--ink);}

/* ============================================================================
   FIT-CHECKER (Gemini) — traitement volontairement différent du reste du
   site : bande plein cadre dégradée, pour que ce bloc "saute aux yeux"
   quand on y arrive en scrollant (c'est la fonctionnalité la plus
   différenciante du CV, elle mérite un vrai temps fort visuel).
   ============================================================================ */
.fit-section{
  padding:88px 0;
  background:linear-gradient(120deg,#3A1F7A 0%,var(--violet) 55%,var(--coral) 100%);
  margin:0;
}
.fit-section .sectitle h2{color:#fff;}
.fit-intro{color:rgba(255,255,255,.88);font-size:15.5px;max-width:640px;margin-bottom:24px;}
.fit-box{background:var(--surface);border-radius:var(--radius);box-shadow:0 24px 60px rgba(20,10,50,.35);padding:26px;}
.fit-box textarea{width:100%;border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:14px;font-family:inherit;font-size:14.5px;resize:vertical;color:var(--ink);}
.fit-box textarea:focus{outline:none;border-color:var(--violet);}
.fit-actions{display:flex;align-items:center;gap:14px;margin-top:16px;}
.fit-error{color:var(--coral);font-size:13.5px;font-weight:600;}
.fit-loading-status{margin-top:10px;font-size:13.5px;color:var(--ink-soft);transition:opacity .25s ease;display:flex;align-items:center;gap:8px;}
.fit-loading-status[hidden]{display:none;}
.fit-loading-status::before{
  content:"";width:13px;height:13px;border-radius:50%;flex-shrink:0;
  border:2px solid var(--violet-soft);border-top-color:var(--violet);
  animation:fit-spin .7s linear infinite;
}
@keyframes fit-spin{to{transform:rotate(360deg);}}
.fit-result{margin-top:22px;background:var(--surface);border-radius:var(--radius);box-shadow:0 24px 60px rgba(20,10,50,.3);padding:30px;}
.fit-score-row{display:flex;align-items:center;gap:20px;margin-bottom:20px;}
.fit-score{width:78px;height:78px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:22px;color:#fff;background:conic-gradient(var(--violet) calc(var(--pct,0) * 1%), var(--line) 0);position:relative;flex-shrink:0;}
.fit-score::after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--surface);}
.fit-score span{position:relative;z-index:1;color:var(--ink);}
.fit-explanation{font-size:15px;color:var(--ink-soft);flex:1;}
.fit-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:20px;}
.fit-columns h4{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);margin-bottom:10px;}
.fit-columns ul{list-style:none;display:flex;flex-direction:column;gap:8px;}
.fit-columns li{font-size:14px;color:var(--ink-soft);padding-left:16px;position:relative;}
.fit-columns li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--mint);}
.fit-columns.gaps li::before{background:var(--coral);}
.fit-question{background:var(--violet-soft);border-radius:var(--radius-sm);padding:16px 18px;font-size:14px;color:var(--ink);}
.fit-question b{color:var(--violet);}

/* Petite animation d'apparition quand on scrolle jusqu'ici (déclenchée en JS,
   dégrade proprement si JS échoue : la section reste visible par défaut). */
.fit-section.fit-reveal-pending{opacity:0;transform:translateY(28px);transition:opacity .6s ease-out, transform .6s ease-out;}
.fit-section.fit-reveal-pending.is-revealed{opacity:1;transform:translateY(0);}

body.focus-mode .fit-section{background:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
body.focus-mode .fit-loading-status::before{border-color:var(--line);border-top-color:var(--ink-soft);}
body.focus-mode .fit-section .sectitle h2{color:var(--ink);}
body.focus-mode .fit-intro{color:var(--ink-soft);}
body.focus-mode .fit-box,body.focus-mode .fit-result{box-shadow:none;border:1px solid var(--line);}
body.focus-mode .ai-badge{background:var(--ink);}


/* ============================================================================
   SIDE PROJECTS
   ============================================================================ */
.projects-section{padding:0 0 90px;}
.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;}
.project-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;border-top:5px solid var(--coral);}
.project-card h3{font-size:17px;font-weight:700;margin-bottom:8px;}
.project-card p{font-size:14px;color:var(--ink-soft);margin-bottom:14px;}
.project-card a{font-size:13px;font-weight:600;color:var(--violet);text-decoration:none;}
.project-skills{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;}
.project-skills span{font-size:11px;font-weight:600;padding:4px 10px;border-radius:100px;background:var(--coral-soft);color:var(--coral);}

/* ============================================================================
   FOOTER
   ============================================================================ */
.site-footer{background:var(--ink);color:#fff;padding:44px 0;position:relative;z-index:2;}
.site-footer .mark span{color:var(--coral);}
.footer-grid{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.footer-grid p{color:#B6ADC9;font-size:13.5px;margin-top:4px;}
.footer-links{display:flex;gap:18px;}
.footer-links a{color:#fff;text-decoration:none;font-size:13.5px;font-weight:500;}
.footer-links a:hover{color:var(--coral);}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
/* Palier intermédiaire : resserre le menu avant de le masquer complètement,
   pour repousser le point où il passerait sur 2 lignes. */
@media(max-width:1080px) and (min-width:801px){
  nav ul{gap:16px;}
  nav a{font-size:13px;}
  .navrow{padding:16px 20px;}
  .navactions{gap:6px;}
}

@media(max-width:800px){
  .hero-grid{grid-template-columns:1fr;text-align:left;}
  .photo-ring{order:-1;width:150px;height:150px;}
  .pillar-grid{grid-template-columns:1fr;}
  .fit-columns{grid-template-columns:1fr;}
  nav{display:none;}
  h1{font-size:34px;}
  .navrow{flex-wrap:wrap;}
}

/* ============================================================================
   FOCUS LECTURE MODE — vision allégée : on coupe la déco, on resserre la palette
   ============================================================================ */
body.focus-mode{background:#FDFDFC;}
body.focus-mode .blob{display:none;}
body.focus-mode .eyebrow{background:#F1F1EF;color:var(--ink-soft);}
body.focus-mode .photo-ring{background:none;padding:0;border:1px solid var(--line);}
body.focus-mode .pillar,
body.focus-mode .company-block,
body.focus-mode .fit-box,
body.focus-mode .fit-result,
body.focus-mode .project-card{box-shadow:none;border:1px solid var(--line);}
body.focus-mode .pillar{border-top:1px solid var(--line);}
body.focus-mode .project-card{border-top:1px solid var(--line);}
body.focus-mode .chip.active,
body.focus-mode .btn.solid{background:var(--ink);border-color:var(--ink);}
body.focus-mode .role-skill{background:#F1F1EF;color:var(--ink-soft);}
body.focus-mode .role-skill.is-matched{background:var(--ink);color:#fff;}
body.focus-mode .role-meta{background:#F1F1EF;}
body.focus-mode .role-achievements li::before{background:#F1F1EF;border-color:var(--ink-soft);}
body.focus-mode .pill{background:#F1F1EF;}

/* ============================================================================
   IMPRESSION / PDF — on garde la lisibilité, on coupe le superflu
   ============================================================================ */
@media print{
  /* Rien de tout ça n'a de sens sur un document figé : nav interactive,
     Fit-Checker (nécessite une vraie IA en direct), bandeau teaser,
     indicateur de scroll, bouton de reset des filtres. */
  header.top,#fit-checker,.fit-teaser,.herobtns,.skills-hint .link-btn,.nav-indicator{display:none !important;}

  body{
    color:#000;line-height:1.45;
    background:
      radial-gradient(ellipse 700px 450px at 95% 0%, rgba(108,60,233,.07), transparent 60%),
      radial-gradient(ellipse 650px 450px at 0% 100%, rgba(255,107,87,.06), transparent 60%);
  }
  .hero,.pillars,.skills-section,.experiences-section,.projects-section{padding:16px 0;}

  /* La largeur d'une page A4/Letter tombe pile dans le point de rupture
     "mobile" (≤800px) : on force donc ici les mises en page desktop
     (colonnes), sans quoi tout s'empile inutilement et le CV gonfle en
     nombre de pages. */
  .hero-grid{grid-template-columns:1fr 190px;text-align:left;}
  .photo-ring{order:0;width:160px;height:160px;}
  .pillar-grid{grid-template-columns:repeat(3,1fr);}
  h1{font-size:38px;}

  /* Le scorecard (flex + wrap sur le site) est ici forcé en grille 3
     colonnes fixes : la colonne texte du hero est plus étroite en print,
     un flex qui wrap ferait sauter le 3e chiffre tout seul sur une 2e
     ligne avec un vilain trou en dessous. */
  .hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;}
  .hero-stat{padding-left:12px;border-left:1.5px solid var(--line);}
  .hero-stat:first-child{padding-left:0;border-left:none;}
  .hero-stat-value{font-size:21px;}
  .hero-stat-label{font-size:10.5px;max-width:none;}

  /* Les ombres portées ne rendent pas bien sur un support figé ; on les
     retire mais on garde les à-plats de couleur (bordures colorées des
     piliers, dégradés d'avatar/photo...) qui, eux, impriment très bien. */
  .pillar,.project-card,.formation-list,.formation-card,.testimonial-card{
    box-shadow:none;border:1px solid #E4E1EC;break-inside:avoid;
  }
  .pillar{border-top-width:5px;} /* garde la couleur d'identification de chaque pilier */

  /* Un bloc entreprise avec plusieurs rôles peut désormais se couper entre
     deux rôles (sinon un bloc de 6 rôles comme SNCF force une page quasi
     vide à chaque fois qu'il ne rentre pas en entier) ; en revanche un
     rôle individuel ne se coupe jamais au milieu. */
  .company-block{box-shadow:none;border:1px solid #E4E1EC;break-inside:auto;padding:22px 24px 6px;}
  .role-block{break-inside:avoid;padding-bottom:16px;margin-bottom:16px;}
  .company-header{break-after:avoid-page;margin-bottom:16px;padding-bottom:16px;}
  .role-context{margin-bottom:8px;}
  .role-achievements{margin-bottom:10px;gap:5px;}
  .role-achievements-label{margin-bottom:5px;}
  .role-meta{padding:6px 12px;margin-bottom:10px;}
  .experiences-list{gap:14px;}
  .pillar{padding:20px 18px;}
  .sectitle{margin-bottom:16px;}
  .hero-grid{gap:32px;}
  .formation-card{padding:16px;}
  .formation-list li{padding:11px 16px;}
  .testimonial-card{padding:28px 32px;}
  .quote-mark{font-size:56px;margin-bottom:-8px;}
  .testimonial-quote{font-size:16px;margin-bottom:18px;}

  .quote-mark{color:var(--violet-soft);}
  .site-footer{background:#fff;color:#000;border-top:1px solid #ddd;}
  .site-footer a{color:#000;}
  a{text-decoration:none;color:inherit;}
  .wrap{max-width:100%;}

  /* Les halos flous du site sont retirés à l'export : en position "fixed",
     ils seraient rastérisés à nouveau sur CHAQUE page, ce qui alourdit
     énormément le fichier. Le dégradé CSS léger posé sur body (ci-dessus)
     donne le même effet de couleur douce, sans le poids. */
  .blob{display:none;}

  /* Filet de sécurité pour forcer la conservation des couleurs même si
     un moteur de rendu ignore l'option printBackground. */
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}
