/* Parcours — timeline, earlier roles, skills grid, formation/contact.
   Ported from "Parcours - Tiston.dc.html". */

.pc-wrap { padding: 64px 40px 96px; }

.pc-header { margin-bottom: 56px; }
.pc-header h1 { font-family: var(--font-display); font-weight: 700; font-size: 56px; line-height: 1.04; letter-spacing: -.02em; color: var(--ink-050); margin: 18px 0 20px; }
.pc-header p { font-size: 18px; line-height: 1.6; color: var(--ink-200); max-width: 680px; margin: 0; }

.pc-stats { display: flex; gap: 36px; margin-top: 32px; flex-wrap: wrap; }
.pc-stat__num { font-family: var(--font-display); font-weight: 700; font-size: 32px; line-height: 1; color: var(--ink-050); }
.pc-stat__num--accent { color: var(--mint-500); }
.pc-stat__label { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-400); margin-top: 6px; }

.section-label { font-family: var(--font-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-300); margin-bottom: 8px; }
.section-label--accent { color: var(--mint-500); }

/* timeline */
.job { position: relative; display: grid; grid-template-columns: 128px 1fr; gap: 28px; padding: 26px 0; border-bottom: 1px solid var(--ink-800); align-items: start; }
.job__meta { display: flex; flex-direction: column; gap: 8px; padding-top: 4px; }
.job__year { font-family: var(--font-mono); font-size: 15px; color: var(--mint-500); font-weight: 500; }
.job__mode { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.job__mode .pip { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.job__mode--accent { color: var(--mint-500); }
.job__mode--muted { color: var(--ink-300); }
.job h3 { font-family: var(--font-display); font-weight: 700; font-size: 21px; line-height: 1.2; color: var(--ink-050); margin: 0 0 4px; }
.job__company { font-family: var(--font-mono); font-size: 13px; color: var(--ink-300); margin-bottom: 14px; }
.job p { font-size: 15.5px; line-height: 1.6; color: var(--ink-200); margin: 0 0 14px; max-width: 640px; }
.job__stack { display: flex; gap: 8px; flex-wrap: wrap; }
.job__stack .chip { font-size: 11.5px; padding: 5px 10px; }

/* earlier */
.earlier { display: grid; grid-template-columns: 128px 1fr; gap: 28px; padding: 18px 0; border-bottom: 1px solid var(--ink-800); align-items: baseline; }
.earlier__year { font-family: var(--font-mono); font-size: 14px; color: var(--ink-300); }
.earlier__role { color: var(--ink-100); font-size: 15px; font-weight: 500; }
.earlier__company { font-family: var(--font-mono); font-size: 13px; color: var(--ink-400); }

/* skills */
.skills-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.skill-card { border: 1px solid var(--ink-700); border-radius: 10px; background: #0a0d12; padding: 22px 24px; }
.skill-card__label { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-300); margin-bottom: 14px; }
.skill-card__items { display: flex; gap: 8px; flex-wrap: wrap; }
.skill-chip { font-family: var(--font-mono); font-size: 12px; color: var(--ink-100); background: #11161e; border: 1px solid var(--ink-600); border-radius: 6px; padding: 6px 11px; }

/* formation + contact */
.foot-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }
/* one card hidden (contact off) — don't leave the other stranded in a half column */
.foot-grid:has(> [hidden]) { grid-template-columns: 1fr; }
.foot-card { border: 1px solid var(--ink-700); border-radius: 10px; background: #0a0d12; padding: 28px; }
.foot-card__label { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-300); margin-bottom: 14px; }
.foot-card__title { color: var(--ink-050); font-size: 16px; font-weight: 500; line-height: 1.4; }
.foot-card__sub { font-family: var(--font-mono); font-size: 13px; color: var(--ink-300); margin-top: 6px; }
.foot-card--cta {
  border-color: color-mix(in srgb, var(--mint-500) 30%, transparent);
  background: linear-gradient(180deg, #0a0d12, #0c1410);
  display: flex; flex-direction: column; justify-content: space-between;
}
.foot-card--cta .foot-card__label { color: var(--mint-500); }
.foot-card--cta p { color: var(--ink-100); font-size: 16px; line-height: 1.5; margin: 0; }
.foot-card__actions { display: flex; gap: 14px; margin-top: 18px; flex-wrap: wrap; }
.foot-card__actions .btn { font-size: 13px; padding: 11px 18px; }

.mt-48 { margin: 48px 0 8px; }
.mt-56 { margin: 56px 0 22px; }

@media (max-width: 760px) {
  .pc-wrap { padding: 44px 20px 72px; }
  .pc-header h1 { font-size: 40px; }
  .job, .earlier { grid-template-columns: 1fr; gap: 10px; }
  .job__meta { flex-direction: row; gap: 14px; align-items: center; }
  .skills-grid, .foot-grid { grid-template-columns: 1fr; }
}
