/* ============================================================================
   print.css — the "Download CV" glass button + the printable one-page CV.
   The .print-cv block is built by print.js and hidden on screen; @media print
   hides the whole app and shows only the CV as clean black-on-white A4.
   ========================================================================== */

/* ---- Download CV button (glass token set, matches nav/burger chrome) ---- */
.print-cv-btn {
  position: fixed;
  left: 50%;
  bottom: 14px;
  transform: translateX(-50%);
  z-index: 60;

  font-family: "Neue Haas Grotesk", ui-sans-serif, system-ui, sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: .02em;
  color: #fff;

  padding: 8.8px 18px;
  border: 0;
  border-radius: 6px;
  cursor: pointer;

  background: #000000bf;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow: 0 0 0 1px #ffffff33 inset;
  transition: box-shadow .3s cubic-bezier(.25, .46, .45, .94);
}
.print-cv-btn:hover,
.print-cv-btn:focus-visible { box-shadow: 0 0 13px #b2b2b2 inset; }
.print-cv-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.print-cv-btn:focus { outline: none; }

/* On small screens .corner/.hint are hidden (hero.css), so bottom-center is
   free — but nudge up a touch to clear thumb reach / safe area. */
@media (max-width: 640px) {
  .print-cv-btn { bottom: 16px; padding: 8px 14px; font-size: 11px; }
}

/* ---- the CV is never shown on screen ---- */
.print-cv { display: none; }

/* ============================================================================
   PRINT — hide the entire interactive app, render only the CV.
   ========================================================================== */
@media print {
  /* Kill the whole app chrome and the button itself. */
  .viewport,
  header,
  nav,
  .corner,
  .hint,
  #detail-root,
  #about-root,
  #contact-root,
  .print-cv-btn {
    display: none !important;
  }

  html, body {
    height: auto !important;
    overflow: visible !important;
    background: #fff !important;
    color: #000 !important;
  }

  @page {
    size: A4 portrait;
    margin: 14mm 15mm;
  }

  .print-cv {
    display: block !important;
    position: static !important;
    box-sizing: border-box;
    width: 100%;
    max-width: 180mm;
    margin: 0 auto;

    font-family: "Times New Roman", Georgia, "Liberation Serif", serif;
    font-size: 10.5pt;
    line-height: 1.34;
    color: #000;
    background: #fff;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* ---- header ---- */
  .print-cv .pcv-head {
    margin: 0 0 8pt;
    padding-bottom: 6pt;
    border-bottom: 1.2pt solid #000;
  }
  .print-cv .pcv-name {
    font-size: 20pt;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: .01em;
    margin: 0 0 2pt;
  }
  .print-cv .pcv-role {
    font-size: 11pt;
    font-weight: 700;
    margin: 0 0 3pt;
  }
  .print-cv .pcv-contact {
    font-size: 9.5pt;
    margin: 0;
    color: #111;
  }

  /* ---- bio ---- */
  .print-cv .pcv-bio {
    margin: 0 0 8pt;
    text-align: justify;
  }

  /* ---- sections ---- */
  .print-cv .pcv-section {
    margin: 0 0 8pt;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .print-cv .pcv-h2 {
    font-size: 11pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin: 0 0 4pt;
    padding-bottom: 1.5pt;
    border-bottom: .6pt solid #000;
  }

  /* ---- item lists ---- */
  .print-cv .pcv-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .print-cv .pcv-item {
    margin: 0 0 5pt;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .print-cv .pcv-item:last-child { margin-bottom: 0; }

  /* compact single-line items (achievements & competitions, languages) */
  .print-cv .pcv-item-inline {
    margin: 0 0 2.5pt;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .print-cv .pcv-item-inline:last-child { margin-bottom: 0; }
  .print-cv .pcv-item-line { margin: 0; }

  .print-cv .pcv-item-title {
    font-size: 10.5pt;
    font-weight: 700;
    margin: 0 0 1pt;
  }
  .print-cv .pcv-item-note {
    margin: 0 0 1pt;
    font-style: italic;
  }
  .print-cv .pcv-metrics {
    margin: 0 0 1pt;
    font-weight: 700;
  }
  .print-cv .pcv-item-desc {
    margin: 0 0 1pt;
    text-align: justify;
  }
  .print-cv .pcv-link {
    margin: 0;
    font-size: 9.5pt;
    color: #111;
    word-break: break-all;
  }

  /* category tag — plain text (bracketed), stays ATS-parseable */
  .print-cv .pcv-tag {
    font-weight: 400;
    font-style: italic;
    font-size: 9.5pt;
    color: #333;
  }
  .print-cv .pcv-tag::before { content: "["; }
  .print-cv .pcv-tag::after { content: "]"; }

  /* ---- skills ---- */
  .print-cv .pcv-skills { margin: 0; }

  /* ---- RODO / data-processing consent clause (small print, very end) ---- */
  .print-cv .pcv-rodo {
    margin: 10pt 0 0;
    font-size: 7pt;
    line-height: 1.3;
    color: #666;
  }

  /* keep the name/first heading from orphaning at a page break */
  .print-cv h1, .print-cv h2, .print-cv h3 {
    page-break-after: avoid;
    break-after: avoid;
  }
}
