/* ---------------------------------------------------------------------------
   Curriculum vitae — a single A4/Letter page on screen, and the same page when
   printed. All layout is in mm-agnostic relative units so one stylesheet serves
   both paper sizes.
--------------------------------------------------------------------------- */

.cv-toolbar {
  position: sticky;
  top: var(--header-height);
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 14px var(--gutter);
  background: var(--surface);
  border-bottom: 1px solid var(--line);
}
.cv-toolbar__note { font-size: 13px; color: var(--faint); }

.cv-stage { padding: clamp(24px, 4vw, 48px) var(--gutter); background: var(--bg); }

/* The sheet itself. Fixed aspect on screen; real paper when printed. */
/*
  The sheet is white paper whatever the site theme is doing, so it pins its own
  accessible palette: the brand orange is too light for 7pt text on white.
*/
.cv-sheet {
  --cv-accent: #cc2c00;      /* 5.4:1 on white */
  --cv-ink:    #141417;
  --cv-muted:  rgba(20, 20, 23, .72);

  display: grid;
  grid-template-columns: 30% 1fr;
  max-width: 900px;
  margin-inline: auto;
  background: #fff;
  color: #141417;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: var(--shadow-soft);
  font-size: 9.2pt;
  line-height: 1.5;
}

/* ------------------------------------------------------------------ aside */

.cv-aside {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 26px 20px;
  background: #141417;
  color: #ececf1;
}
.cv-aside__wordmark { font-family: var(--font-display); font-size: 15pt; letter-spacing: .01em; }
.cv-aside__wordmark span { color: #ff4d1c; }
.cv-aside__role {
  margin-top: 5px;
  font-size: 6.6pt;
  font-weight: 700;
  letter-spacing: .16em;
  color: rgba(236, 236, 241, .55);
  text-transform: uppercase;
}
.cv-aside__rule { height: 2px; background: #ff4d1c; }

.cv-aside h2 {
  margin-bottom: 8px;
  font-size: 6.8pt;
  font-weight: 700;
  letter-spacing: .18em;
  color: #ff4d1c;
  text-transform: uppercase;
}
.cv-aside ul { list-style: none; }
.cv-aside li + li { margin-top: 5px; }
.cv-aside__list { font-size: 8pt; color: rgba(236, 236, 241, .82); word-break: break-word; }

.cv-skill { margin-bottom: 9px; }
.cv-skill__head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
  font-size: 8pt;
}
.cv-skill__level { color: rgba(236, 236, 241, .5); font-size: 7pt; }
.cv-skill__track { height: 3px; border-radius: 2px; background: rgba(236, 236, 241, .16); overflow: hidden; }
.cv-skill__fill  { height: 100%; background: #ff4d1c; }

.cv-chip {
  display: inline-block;
  margin: 0 4px 4px 0;
  padding: 3px 7px;
  border: 1px solid rgba(236, 236, 241, .22);
  border-radius: 3px;
  font-size: 6.4pt;
  font-weight: 700;
  letter-spacing: .06em;
}

/* ------------------------------------------------------------------- main */

.cv-main { padding: 26px 26px 20px; display: flex; flex-direction: column; gap: 15px; }

.cv-main__name {
  font-family: var(--font-display);
  font-size: 21pt;
  line-height: 1.05;
  text-transform: none;
  color: #141417;
}
.cv-main__name span { color: var(--cv-accent); }
.cv-main__title {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 6px;
  font-size: 7.2pt;
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--cv-muted);
  text-transform: uppercase;
}
.cv-main__title::before {
  content: '';
  width: 16px; height: 2px;
  background: var(--cv-accent);
  flex: none;
}

.cv-section__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 9px;
}
.cv-section__head h2 {
  font-family: var(--font-display);
  font-size: 10.5pt;
  text-transform: uppercase;
  color: #141417;
}
.cv-section__head::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(10, 10, 12, .14);
}

.cv-summary { font-size: 8.6pt; line-height: 1.6; color: rgba(20, 20, 23, .84); }
.cv-summary strong { color: #141417; }

.cv-entry + .cv-entry { margin-top: 11px; }
.cv-entry__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
}
.cv-entry__role   { font-size: 9.4pt; font-weight: 700; }
.cv-entry__period { font-size: 6.8pt; font-weight: 700; letter-spacing: .1em; color: var(--cv-accent); white-space: nowrap; }
.cv-entry__org    { margin-top: 1px; font-size: 7.8pt; color: var(--cv-muted); }
.cv-entry__bullets { margin-top: 5px; padding-left: 13px; font-size: 8.2pt; line-height: 1.5; color: rgba(20, 20, 23, .82); }
.cv-entry__bullets li + li { margin-top: 3px; }
.cv-entry__bullets li::marker { color: var(--cv-accent); }
.cv-entry__bullets li strong { color: #141417; }

.cv-projects { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.cv-project {
  padding: 9px 10px;
  border: 1px solid rgba(10, 10, 12, .12);
  border-radius: 4px;
}
.cv-project__label { font-size: 6.2pt; font-weight: 700; letter-spacing: .12em; color: var(--cv-accent); text-transform: uppercase; }
.cv-project__name  { margin: 3px 0 2px; font-size: 8.4pt; font-weight: 700; }
.cv-project__note  { font-size: 7.2pt; line-height: 1.4; color: var(--cv-muted); }

.cv-services { font-size: 8.2pt; color: rgba(20, 20, 23, .82); }
.cv-education { margin-top: 6px; font-size: 8.2pt; }
.cv-education span { color: var(--cv-muted); }

.cv-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid rgba(10, 10, 12, .12);
  font-size: 6.4pt;
  font-weight: 700;
  letter-spacing: .14em;
  color: rgba(20, 20, 23, .68);
  text-transform: uppercase;
}

/* --------------------------------------------------------------- narrow */

@media (max-width: 760px) {
  .cv-sheet { grid-template-columns: 1fr; font-size: 11px; }
  .cv-projects { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------- print */

@page {
  size: A4 portrait;
  margin: 0;
}

@media print {
  /* Everything except the sheet is screen furniture. */
  .site-header,
  .cv-toolbar,
  .cta,
  .skip-link,
  .preloader,
  #dtfx-bar,
  #dtfx-grain,
  #dtfx-glow,
  #dtfx-ring { display: none !important; }

  html, body {
    background: #fff !important;
    color: #141417 !important;
  }

  .cv-stage { padding: 0 !important; background: #fff !important; }

  .cv-sheet {
    max-width: none;
    width: 100%;
    min-height: 100vh;
    border-radius: 0;
    box-shadow: none;
    break-inside: avoid;
  }

  .cv-entry, .cv-project, .cv-skill { break-inside: avoid; }

  /* Keep the orange accents and dark sidebar in the PDF. */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

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