/* ============================================================
   RÉSUMÉ — screen view inherits the site; print view becomes a
   clean, selectable, ATS-friendly black-on-white document.
   ============================================================ */

.cv {
  max-width: 62rem;
  margin: 0 auto;
  padding-block: clamp(2rem, 5vw, 4rem) clamp(4rem, 8vw, 6rem);
}

.cv-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  justify-content: space-between;
  padding-block: 1.25rem;
  border-bottom: var(--rule) solid var(--line);
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

.cv-head { display: grid; gap: 1rem; padding-bottom: 1.75rem; border-bottom: 2px solid var(--amber); }
.cv-head h1 {
  font-family: var(--display);
  font-size: clamp(2.5rem, 7vw, 4.5rem);
  line-height: 0.95;
  letter-spacing: -0.025em;
}
.cv-head h1 span { color: var(--amber); }
.cv-head .title { font-size: 1.0625rem; color: var(--bone-70); font-weight: 500; }
.cv-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1.25rem;
  font-family: var(--mono);
  font-size: 0.75rem;
  color: var(--bone-50);
  letter-spacing: 0.02em;
}
.cv-contact a:hover { color: var(--amber); }

.cv-sec { padding-block: clamp(1.75rem, 3vw, 2.5rem); border-bottom: var(--rule) solid var(--line); }
.cv-sec > h2 {
  font-family: var(--mono);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 1.25rem;
}
.cv-sec p.summary { color: var(--bone-70); max-width: 84ch; line-height: 1.6; }

.job { display: grid; gap: 0.75rem; }
.job + .job { margin-top: 2rem; padding-top: 2rem; border-top: var(--rule) solid var(--line); }
.job-head { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; align-items: baseline; justify-content: space-between; }
.job-head h3 { font-size: 1.0625rem; font-weight: 700; letter-spacing: -0.01em; }
.job-head .org { font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--amber); text-transform: uppercase; }
.job-head .when { font-family: var(--mono); font-size: 0.6875rem; letter-spacing: 0.08em; color: var(--bone-35); white-space: nowrap; }

.job ul { display: grid; gap: 0.5rem; }
.job li {
  position: relative;
  padding-left: 1.15rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--bone-70);
  max-width: 92ch;
}
.job li::before {
  content: "▪";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--bone-decor);
  font-size: 0.7rem;
  line-height: 1.9;
}
.job li strong { color: var(--bone); font-weight: 600; }
.job .win { margin-top: 0.35rem; }
.job .win li::before { content: "★"; color: var(--amber); }

.cv-cols { display: grid; gap: 1.5rem; }
@media (min-width: 760px) { .cv-cols { grid-template-columns: repeat(2, 1fr); gap: 2.5rem; } }
.cv-block h4 { font-size: 0.9375rem; font-weight: 700; margin-bottom: 0.4rem; }
.cv-block p, .cv-block li { font-size: 0.875rem; color: var(--bone-70); line-height: 1.55; }
.cv-block ul { display: grid; gap: 0.3rem; }

.skillrow { display: grid; gap: 0.35rem; margin-bottom: 1rem; }
@media (min-width: 700px) { .skillrow { grid-template-columns: 11rem 1fr; gap: 1.5rem; align-items: baseline; } }
.skillrow dt { font-family: var(--mono); font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--bone-35); }
.skillrow dd { margin: 0; font-size: 0.9375rem; color: var(--bone-70); line-height: 1.5; }

/* ---------- PRINT: the document that actually gets sent ---------- */
@media print {
  @page { size: letter; margin: 0.5in; }

  /* Most sizing in this project is rem/clamp based, so the root has to shrink
     for the print cascade to take effect at all. */
  html { font-size: 9px; overflow: visible; }
  :root { --gutter: 0px; }

  /* Display letter-spacing confuses résumé parsers — normalize for print. */
  .cv-head h1, .cv-head .title, .cv-contact, .job li, .skillrow dd,
  .cv-sec p.summary, .cv-block p, .cv-block li {
    letter-spacing: normal !important;
  }
  /* Variable-font weights subset in ways that make PDF text extraction insert
     stray spaces ("Pro ject Manager"). Résumé parsers read these two lines, so
     print them in a plain static face at a normal weight. */
  .cv-head h1 { font-family: Georgia, "Times New Roman", serif; font-weight: 700; }
  .cv-head .title { font-family: Helvetica, Arial, sans-serif; font-weight: 400; }

  html, body { background: #fff !important; color: #111 !important; }
  body { font-size: 10.5pt; }
  .wrap { max-width: none; padding: 0 !important; margin: 0 !important; }
  .nav, .grain, .sheet, .bloom, .progress,
  .cv-bar, .foot, .skip, footer { display: none !important; }

  .cv { max-width: none; padding: 0; margin: 0; }

  .cv-head { border-bottom: 1.5pt solid #111; padding-bottom: 8pt; gap: 4pt; }
  .cv-head h1 { font-size: 24pt; line-height: 1; color: #111 !important; letter-spacing: -0.02em; }
  .cv-head h1 span { color: #111 !important; }
  .cv-head .title { font-size: 10.5pt; color: #333 !important; }
  .cv-contact { font-size: 8.5pt; color: #333 !important; gap: 2pt 10pt; }
  .cv-contact a { color: #111 !important; text-decoration: none; }

  .cv-sec { padding-block: 7pt 5pt; border-bottom: 0.5pt solid #bbb; break-inside: auto; }
  .cv-sec > h2 { font-size: 8pt; color: #111 !important; letter-spacing: 0.18em; margin-bottom: 5pt; break-after: avoid; }
  .cv-sec p.summary { color: #222 !important; font-size: 9.5pt; line-height: 1.35; max-width: none; }

  /* Let a long role flow across a page break rather than jumping wholesale to
     the next page — but never orphan its heading. */
  .job { gap: 3pt; break-inside: auto; }
  .job-head { break-after: avoid; break-inside: avoid; }
  .job + .job { margin-top: 7pt; padding-top: 7pt; border-top: 0.5pt dotted #ccc; }
  .job-head h3 { font-size: 10pt; color: #111 !important; }
  .job-head .org { font-size: 8.5pt; color: #111 !important; }
  .job-head .when { font-size: 8.5pt; color: #444 !important; }
  .job ul { gap: 2.5pt; }
  .job li { font-size: 9.5pt; line-height: 1.3; color: #222 !important; max-width: none; break-inside: avoid; }
  .job li strong { color: #000 !important; }
  .job li::before { color: #666 !important; }
  .job .win li::before { content: "★"; color: #111 !important; }

  .skillrow { margin-bottom: 3pt; grid-template-columns: 9rem 1fr; }
  .skillrow dt { font-size: 8pt; color: #444 !important; }
  .skillrow dd { font-size: 9.5pt; color: #222 !important; line-height: 1.35; }

  .cv-cols { gap: 10pt; }
  .cv-block h4 { font-size: 9.5pt; color: #111 !important; }
  .cv-block p, .cv-block li { font-size: 9.5pt; color: #222 !important; line-height: 1.35; }

  a { color: #111 !important; text-decoration: none !important; }
}
