/* ==========================================================================
   Lebenslauf / CV — Bildschirm + Druck
   Wird zusammen mit style.css geladen.
   ========================================================================== */

.cv-main { padding: clamp(28px, 4vw, 56px) 0 clamp(56px, 8vw, 96px); }

.cv-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  max-width: 900px;
  margin: 0 auto 24px;
}
.cv-eyebrow {
  font-family: var(--font-mono);
  font-size: .66rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}
.cv-page-title {
  font-size: clamp(1.9rem, 3.6vw, 2.7rem);
  line-height: 1;
  letter-spacing: -.035em;
  font-weight: 600;
}
.cv-actions { display: flex; flex-wrap: wrap; gap: 8px; }

.cv-sheet {
  max-width: 900px;
  margin: 0 auto;
  padding: clamp(26px, 4.6vw, 58px);
  background: var(--bg-elev);
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: var(--shadow);
}

/* Kopf */
.cv-head {
  display: flex;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
  padding-bottom: 22px;
  border-bottom: 2px solid var(--ink);
}
.cv-name {
  font-size: clamp(1.9rem, 3.6vw, 2.6rem);
  line-height: 1;
  letter-spacing: -.045em;
  font-weight: 600;
}
.cv-role { margin-top: 9px; color: var(--muted); font-size: .95rem; }
.cv-contact {
  font-size: .8rem;
  line-height: 1.85;
  color: var(--ink-2);
  text-align: right;
  font-family: var(--font-mono);
}
.cv-contact a { text-decoration: none; border-bottom: 1px solid var(--line-strong); }
.cv-contact a:hover { color: var(--accent); border-color: var(--accent); }

/* Abschnitte */
.cv-section {
  padding: 24px 0 8px;
  border-bottom: 1px solid var(--line);
}
.cv-section:last-child { border-bottom: none; padding-bottom: 0; }
.cv-section > h3 {
  font-family: var(--font-mono);
  font-size: .66rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 500;
  margin-bottom: 14px;
}
.cv-profile {
  max-width: 78ch;
  color: var(--ink-2);
  font-size: .93rem;
  line-height: 1.6;
}

.cv-entry {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 18px;
  padding-bottom: 14px;
}
.cv-entry + .cv-entry { padding-top: 12px; border-top: 1px dashed var(--line); }
.cv-entry:last-child { padding-bottom: 0; }
.cv-year {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .02em;
  color: var(--muted);
  padding-top: 3px;
}
.cv-entry h4 {
  margin: 0 0 3px;
  font-size: .96rem;
  font-weight: 600;
  letter-spacing: -.012em;
}
.cv-entry p {
  margin: 0;
  font-size: .87rem;
  line-height: 1.55;
  color: var(--ink-2);
}
.cv-entry .cv-note {
  margin-top: 4px;
  font-size: .8rem;
  color: var(--muted);
}

.cv-skills { display: grid; gap: 9px; }
.cv-skills > div {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 16px;
  font-size: .87rem;
}
.cv-skills dt {
  font-family: var(--font-mono);
  font-size: .66rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  padding-top: 3px;
}
.cv-skills dd { margin: 0; color: var(--ink-2); line-height: 1.5; }

.cv-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
  font-size: .89rem;
  color: var(--ink-2);
}
.cv-interests { font-size: .89rem; color: var(--ink-2); }

.cv-footnote {
  max-width: 900px;
  margin: 16px auto 0;
  font-size: .78rem;
  color: var(--muted);
  text-align: center;
}
.cv-footnote code { font-family: var(--font-mono); font-size: .92em; }

/* ---------- Mobil ---------- */
@media (max-width: 620px) {
  .cv-head { flex-direction: column; gap: 16px; }
  .cv-contact { text-align: left; }
  .cv-entry { grid-template-columns: 1fr; gap: 3px; }
  .cv-year { padding-top: 0; }
  .cv-skills > div { grid-template-columns: 1fr; gap: 2px; }
  .cv-toolbar { align-items: flex-start; }
}

/* ---------- Druck / PDF ---------- */
@page { size: A4; margin: 14mm 15mm; }

@media print {
  :root,
  :root[data-theme="dark"] {
    --bg: #fff;
    --bg-elev: #fff;
    --ink: #000;
    --ink-2: #1c1c1c;
    --muted: #555;
    --line: #ccc;
    --line-strong: #999;
    --accent: #000;
  }

  html, body { background: #fff !important; }
  body { font-size: 10pt; }

  .site-header,
  .cv-toolbar,
  .site-footer,
  .cv-footnote,
  .skip { display: none !important; }

  .cv-main { padding: 0 !important; }
  .cv-sheet {
    max-width: none;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
  }

  .cv-head { border-bottom: 1.4pt solid #000; padding-bottom: 6pt; }
  .cv-name { font-size: 19pt; }
  .cv-role { font-size: 9.5pt; margin-top: 4pt; }
  .cv-contact { font-size: 8pt; line-height: 1.55; }

  .cv-section {
    padding: 5pt 0 1pt;
    border-bottom: .5pt solid #ccc;
    break-inside: avoid;
  }
  .cv-section > h3 { font-size: 7.5pt; margin-bottom: 3pt; }
  .cv-profile, .cv-entry p, .cv-skills, .cv-inline, .cv-interests {
    font-size: 9pt;
    line-height: 1.33;
  }
  .cv-entry { padding-bottom: 3pt; break-inside: avoid; }
  .cv-entry + .cv-entry { padding-top: 3pt; border-top: none; }
  .cv-entry h4 { font-size: 9.5pt; }
  .cv-year { font-size: 7.5pt; }
  .cv-entry .cv-note { font-size: 8pt; }
  .cv-skills { gap: 1pt; }
  .cv-skills dt { font-size: 7.5pt; }
  .cv-inline { gap: 5pt 18pt; }

  a { color: #000; text-decoration: none; }
  a[href^="http"]::after { content: ""; }
}
