/* ── CV ─────────────────────────────────────────────────── */

.cv-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 3px solid var(--clr-main-borders);
}
.cv-header__identity {
  background: var(--clr-main-bg-alt);
  color: var(--clr-main-text-alt);
  padding: 2.5rem 2rem;
  border-right: 3px solid var(--clr-main-borders);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.5rem;
}
.cv-header__name {
  font-size: 56px;
  font-weight: 700;
  line-height: 0.93;
  letter-spacing: -0.04em;
  color: var(--clr-main-text-alt);
  margin-bottom: 0.75rem;
}
.cv-header__tagline {
  font-size: 15px;
  color: rgba(240,235,227,0.55);
  letter-spacing: 0.02em;
}
.cv-header__contact {
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.cv-contact-links {
  font-style: normal;
  display: flex;
  flex-direction: column;
}
.cv-contact-links a,
.cv-contact-links span {
  font-size: 14px;
  font-weight: 500;
  color: var(--clr-main-text);
  text-decoration: none;
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--clr-divider);
  display: block;
}
.cv-contact-links > :last-child { border-bottom: none; }
.cv-contact-links a:hover { color: var(--clr-main-highlight); }

.cv-section {
  border-bottom: 3px solid var(--clr-main-borders);
  padding: 1.75rem 2rem;
}
.cv-section__heading {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #999;
  margin-bottom: 1rem;
}

.cv-summary p {
  font-size: 13px;
  line-height: 1.75;
  color: #333;
  max-width: 72ch;
}

.cv-skills-dl {
  display: grid;
  grid-template-columns: 160px 1fr;
}
.cv-skills-dl dt,
.cv-skills-dl dd {
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--clr-divider);
  font-size: 13px;
  line-height: 1.55;
}
.cv-skills-dl dt:last-of-type,
.cv-skills-dl dd:last-of-type { border-bottom: none; }
.cv-skills-dl dt { font-weight: 700; padding-right: 1.5rem; }
.cv-skills-dl dd { color: #444; }

.cv-experience {
  padding: 0;
}
.cv-experience > .cv-section__heading {
  padding: 1.75rem 2rem 1rem;
  margin-bottom: 0;
}
.cv-experience .cv-role { border-top: 1px solid var(--clr-divider); }

.cv-role__header {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 1rem;
  padding: 1rem 2rem 0.75rem;
  border-bottom: 1px solid var(--clr-divider);
}
.cv-role__title {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.cv-role__subtitle {
  font-size: 13px;
  font-weight: 400;
  color: var(--clr-main-highlight);
  margin-left: 0.5rem;
}
.cv-role__dates {
  font-size: 12px;
  color: #999;
  font-weight: 500;
  white-space: nowrap;
}
.cv-role__body {
  padding: 0.875rem 2rem 1.25rem;
}
.cv-role__summary {
  font-size: 13px;
  color: #555;
  margin-bottom: 0.75rem;
  line-height: 1.65;
}
.cv-role__body ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.cv-role__body li {
  font-size: 13px;
  line-height: 1.65;
  color: #333;
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
}
.cv-role__body li::before {
  content: '→';
  color: var(--clr-main-highlight);
  font-weight: 700;
  flex-shrink: 0;
  line-height: 1.65;
}
.cv-role__body li strong {
  font-weight: 700;
  color: var(--clr-main-text);
}

.cv-role__links {
  display: flex;
  gap: 1.25rem;
  margin-bottom: 0.25rem;
}
.cv-role__links a {
  font-size: 12px;
  color: #888;
  text-decoration: none;
  border-bottom: 1px solid var(--clr-divider);
  padding-bottom: 1px;
}
.cv-role__links a:hover {
  color: var(--clr-main-highlight);
  border-color: var(--clr-main-highlight);
}

.cv-coursework {
  font-size: 12px;
  color: #666;
  margin-top: 0.5rem;
  line-height: 1.65;
}

.cv-community-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.cv-community-list li {
  font-size: 13px;
  line-height: 1.65;
  color: #333;
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
}
.cv-community-list li::before {
  content: '→';
  color: var(--clr-main-highlight);
  font-weight: 700;
  flex-shrink: 0;
  line-height: 1.65;
}

@media (max-width: 700px) {
  .cv-header { grid-template-columns: 1fr; }
  .cv-header__identity { border-right: none; border-bottom: 3px solid var(--clr-main-borders); }
  .cv-header__name { font-size: 44px; }
  .cv-skills-dl { grid-template-columns: 1fr; }
  .cv-skills-dl dt { border-bottom: none; padding-bottom: 0; font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: #999; }
  .cv-skills-dl dd { padding-top: 0; }
  .cv-role__header { grid-template-columns: 1fr; gap: 0.25rem; }
}

/* ── Readability pass (screen only; print is handled below) ───── */
@media screen {

  /* 1 — constrain line length on the body copy that was running full-bleed
         (.cv-summary already had its own max-width) */
  .cv-role__summary,
  .cv-role__body li,
  .cv-community-list li,
  .cv-coursework { max-width: 74ch; }

  /* 2 — bump reading text 13px → 15px (matches .about-text / .hero-sub) */
  .cv-summary p,
  .cv-role__summary,
  .cv-role__body li,
  .cv-skills-dl dt,
  .cv-skills-dl dd,
  .cv-community-list li { font-size: 15px; }
  .cv-role__title    { font-size: 17px; }
  .cv-role__subtitle { font-size: 14px; }
  .cv-section__heading { font-size: 12px; }

  /* 3 — WCAG-passing colors on the cream background */
  .cv-role__subtitle   { color: #3f6300; }            /* was --clr-main-highlight (2.06:1) → 5.98:1 */
  .cv-section__heading { color: #5e5e5e; }            /* was #999 (2.43:1) → ~5.7:1 */
  .cv-role__dates      { color: #5e5e5e; }
  .cv-role__body li::before,
  .cv-community-list li::before { color: #4e7800; }   /* 4.47:1 */
  .cv-summary p,
  .cv-role__summary { color: #2b2b2b; }
  .cv-coursework    { color: #4a4a4a; }

  /* 4 — drop redundant internal hairlines + open vertical rhythm
         (the brand 3px section borders stay) */
  .cv-section { padding-top: 2.25rem; padding-bottom: 2.25rem; }
  .cv-contact-links a,
  .cv-contact-links span { border-bottom: none; padding: 0.32rem 0; }
  .cv-skills-dl dt,
  .cv-skills-dl dd { border-bottom: none; padding: 0.34rem 0; }
  .cv-skills-dl { row-gap: 0.1rem; }
  .cv-role__body { padding-bottom: 1.6rem; }
  .cv-role__body ul { gap: 0.7rem; }
  .cv-role__summary { margin-bottom: 1rem; }
  .cv-summary p { line-height: 1.8; }
}

@media print {
  .nav, .footer, .cv-actions { display: none !important; }

  html { font-size: 10px; }
  body { background: white; }

  /* Header: compact single band, identity left, contact right */
  .cv-header {
    grid-template-columns: auto 1fr;
    align-items: center;
    border-color: #bbb;
  }
  .cv-header__identity {
    padding: 0.75rem 1.25rem;
    border-right-color: #bbb;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .cv-header__name { font-size: 30px; margin-bottom: 0.2rem; }
  .cv-header__tagline { font-size: 11px; }

  /* Contact: one row of pipe-separated links */
  .cv-header__contact { padding: 0.75rem 1.25rem; gap: 0.3rem; }
  .cv-header__contact .section-label { margin-bottom: 0.2rem; }
  .cv-contact-links { flex-direction: row; flex-wrap: wrap; gap: 0; }
  .cv-contact-links a,
  .cv-contact-links span {
    font-size: 11px;
    padding: 0 0.6rem 0 0;
    margin-right: 0.6rem;
    border-bottom: none;
    border-right: 1px solid #ccc;
  }
  .cv-contact-links > :last-child { border-right: none; padding-right: 0; margin-right: 0; }

  /* Sections */
  .cv-section { padding: 0.6rem 1.25rem; border-color: #bbb; }
  .cv-section__heading { margin-bottom: 0.35rem; }

  .cv-summary p { max-width: none; line-height: 1.5; }

  .cv-skills-dl dt,
  .cv-skills-dl dd { padding: 0.25rem 0; line-height: 1.4; border-color: #ddd; }

  /* Experience: match indentation of other sections by using section padding
     and removing the separate left padding from role header/body */
  .cv-experience { padding: 0.6rem 1.25rem; }
  .cv-experience > .cv-section__heading { padding: 0; margin-bottom: 0.35rem; }
  .cv-experience .cv-role { border-top-color: #ddd; }
  .cv-role__header {
    grid-template-columns: 1fr auto; /* keep dates on same line as title */
    padding: 0.4rem 0;
    border-bottom-color: #ddd;
  }
  .cv-role__body { padding: 0.35rem 0 0.55rem; }
  .cv-role__summary { margin-bottom: 0.3rem; line-height: 1.4; }
  .cv-role__body ul { gap: 0.15rem; }
  .cv-role__body li { line-height: 1.4; }
  .cv-role__body li::before { line-height: 1.4; }
  /* darkened green so the subtitle passes contrast on color print/PDF */
  .cv-role__subtitle { color: #3f6300; }
}
