:root{
  --bg: #f4f7fa;            /* fond clair */
  --primary: #0b5cff;       /* bleu principal */
  --secondary: #ff6b35;     /* couleur accent (orange) */
  --muted: #6b7280;
  --text: #111827;
  --card: #ffffff;
  --max-width: 980px;
  --radius: 12px;
  --gap: 20px;
  --shadow: 0 4px 12px rgba(0,0,0,0.08);
  --font: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}

* { box-sizing: border-box; }
html,body { margin:0; padding:0; font-family:var(--font); color:var(--text); line-height:1.6; background:var(--bg); }
a { color:var(--primary); text-decoration:none; }
a:hover { text-decoration:underline; }

/* HEADER */
.cv-header {
  max-width: var(--max-width);
  margin: 30px auto;
  padding: 25px;
  text-align: center;
  background: var(--card);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.name {
  font-size: 32px;
  font-weight: 700;
  margin: 0;
  color: var(--primary);
}
.subtitle {
  color: var(--muted);
  margin: 6px 0 15px 0;
  font-weight: 500;
}
.contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 14px;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 15px;
}
.contact-list li {
  margin: 0;
}

/* MAIN CONTENT */
.cv-main { max-width: var(--max-width); margin:auto; padding:20px; }

section {
  background: var(--card);
  border-radius: var(--radius);
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: var(--shadow);
}

section h2, section h3 {
  margin-bottom: 12px;
  border-left: 4px solid var(--secondary);
  padding-left: 10px;
  color: var(--primary);
}

/* LISTS */
.skills, .simple-list { list-style:none; padding-left:0; margin:0 0 14px 0; }
.skills li, .simple-list li { margin-bottom:6px; color:var(--text); }

/* TWO-COL LAYOUT */
.two-col { display:flex; gap:var(--gap); margin-bottom:18px; flex-wrap:wrap; }
.col { flex:1; min-width:300px; }

/* JOBS */
.job, .assoc-item { margin-bottom:16px; padding:12px; border-left:3px solid var(--primary); background:#f9fbff; border-radius:6px; }
.job h4, .assoc-item h4 { margin:0 0 6px 0; font-size:16px; color:var(--text); }
.date { display:inline-block; font-size:13px; color:var(--muted); margin-bottom:8px; }
.job ul { margin:6px 0 0 18px; }

/* NOTE */
.note { margin-top:8px; font-style:italic; color:var(--secondary); }

/* FOOTER */
.cv-footer { text-align:center; margin-top:18px; font-size:13px; color:var(--muted); }

/* RESPONSIVE */
@media (max-width:880px) {
  .two-col { flex-direction:column; }
  .contact-list { flex-direction: column; align-items:center; }
}
