/* Variables & base (garde ta palette) */
:root{
  --bg-principal:#ECF0F1;
  --bg-secondaire:#2C3E50;
  --couleur-primaire:#3498DB;
  --couleur-texte-sombre:#34495E;
  --couleur-texte-clair:#ECF0F1;
  --font-principal: 'Montserrat', sans-serif;
}

/* Reset minimal */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font-principal);
  background:var(--bg-principal);
  color:var(--couleur-texte-sombre);
}

/* Skip link */
.skip-link{
  position:absolute;
  left:-999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.skip-link:focus{
  left:10px;
  top:10px;
  width:auto;
  height:auto;
  padding:8px 12px;
  background:#000;
  color:#fff;
  z-index:1000;
  border-radius:4px;
}

/* Container */
.cv-container{
  display:flex;
  max-width:1100px;
  margin:24px auto;
  background:#fff;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.08);
}

/* Colonne gauche (header) */
.col-gauche{
  width:34%;
  background:var(--bg-secondaire);
  color:var(--couleur-texte-clair);
  padding:36px 28px;
}
.header-gauche{text-align:center}
.header-gauche h1{
  font-size:2rem;
  margin:6px 0 4px;
  letter-spacing:1px;
  text-transform:uppercase;
}
.subtitle{font-weight:400;margin:0 0 16px}

/* Contact */
.liste-contact{list-style:none;padding:0;margin:12px 0 28px}
.liste-contact li{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:.95rem}
.liste-contact a{color:var(--couleur-texte-clair);text-decoration:none}
.liste-contact a:focus,
.liste-contact a:hover{color:var(--couleur-primaire);text-decoration:underline}

/* Compétences */
.competences h2{font-size:1.05rem;margin:0 0 12px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.12)}
.skill-item{margin-bottom:14px}
.barre-progression{height:8px;background:#5D6D7E;border-radius:6px;overflow:hidden}
.niveau-skill{display:block;height:100%;background:var(--couleur-primaire);width:0;transition:width 900ms cubic-bezier(.2,.8,.2,1)}

/* Colonne droite */
.col-droite{width:66%;padding:36px 40px}
.col-droite h2{font-size:1.1rem;margin:0 0 10px;color:var(--couleur-texte-sombre)}
.section-bloc{margin-bottom:28px}
.experience-item{position:relative;padding-left:18px;margin-bottom:18px;border-left:2px solid var(--couleur-primaire)}
.experience-item::before{
  content:'';position:absolute;left:-6px;top:0;width:10px;height:10px;background:var(--couleur-primaire);border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 2px var(--couleur-primaire);
}
.poste-details{display:flex;justify-content:space-between;color:var(--couleur-gris-moyen);font-style:italic}

/* Footer */
.site-footer{padding:16px 20px;background:#fafafa;text-align:center;font-size:.9rem;color:#556}

/* Focus visible (accessibility) */
a:focus, button:focus {
  outline:3px dashed rgba(52,152,219,.9);
  outline-offset:3px;
  border-radius:4px;
}

/* Hover subtle */
a:hover{transition:color .2s ease}

/* Breakpoints */
/* Tablette paysage */
@media (max-width: 1024px){
  .col-gauche{padding:28px}
  .col-droite{padding:28px}
}

/* Mobile */
@media (max-width:768px){
  .cv-container{flex-direction:column;border-radius:0}
  .col-gauche,.col-droite{width:100%;padding:20px}
  .liste-contact{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
  .poste-details{flex-direction:column;gap:4px}
  .experience-item{padding-left:12px}
}
