/* ============================================================================
   ADVOKE CV — print.css
   The PDF export engine. Browser print-to-PDF with strict page control.
   A4 and US Letter. No clipping. No overlap. Correct page breaks.
   ============================================================================ */

/* ── 1. Page setup — default A4 ──────────────────────────────────────── */
@page {
  size: A4;
  margin: 0;
}

/* Alternate formats toggled via body class */
@page letter {
  size: Letter;
  margin: 0;
}

/* ── 2. Global print reset ───────────────────────────────────────────── */
@media print {
  *,
  *::before,
  *::after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    animation: none !important;
    transition: none !important;
  }

  html,
  body {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    height: auto !important;
    background: #FFF !important;
    font-size: 11pt !important;
    line-height: 1.4 !important;
    overflow: visible !important;
    -webkit-font-smoothing: antialiased;
  }

  /* Kill app chrome */
  .site-header,
  .site-footer,
  .mobile-nav,
  .skip-link,
  .nav-toggle,
  .site-nav,
  .header-actions,
  .toast-host,
  .modal__footer,
  .reading-progress,
  [data-no-print],
  .no-print,
  .btn,
  button,
  .editor__toolbar,
  .editor__panel,
  .editor__tabs,
  .gallery__filters,
  .gallery__search,
  .breadcrumbs,
  nav[aria-label="Breadcrumb"],
  nav[aria-label="Primary"],
  nav[aria-label="Footer"],
  .page-hero,
  .section-head-row .row,
  .article-card__cta,
  .load-more {
    display: none !important;
    visibility: hidden !important;
  }

  /* Reset layout constraints */
  .app,
  main,
  .container,
  .container-wide,
  .container-narrow,
  .container-full,
  .article,
  .editor,
  .editor__workspace,
  .editor__preview,
  .preview-stage,
  .preview-page {
    display: block !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #FFF !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    transform: none !important;
    overflow: visible !important;
  }

  /* ── 3. Resume page — the printed artefact ────────────────────────── */

  .resume,
  .resume-page,
  .resume__page,
  [data-resume-page] {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #FFF !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    break-inside: auto;
    page-break-inside: auto;
    transform: none !important;
    zoom: 1 !important;
  }

  /* ── 4. A4 page dimensions ────────────────────────────────────────── */
  body[data-print-format="a4"] .resume,
  body[data-print-format="a4"] .resume-page,
  .resume--a4 {
    width: 210mm !important;
    min-height: 297mm !important;
    padding: var(--print-margin, 14mm) !important;
  }

  /* US Letter */
  body[data-print-format="letter"] .resume,
  body[data-print-format="letter"] .resume-page,
  .resume--letter {
    width: 215.9mm !important;
    min-height: 279.4mm !important;
    padding: var(--print-margin, 14mm) !important;
  }

  /* Margin presets */
  body[data-print-margin="narrow"] { --print-margin: 8mm; }
  body[data-print-margin="normal"] { --print-margin: 14mm; }
  body[data-print-margin="wide"]   { --print-margin: 20mm; }

  /* ── 5. Typography in print — pt-based, not vw/rem ─────────────────── */
  .resume,
  .resume * {
    font-size: 10.5pt !important;
    line-height: 1.4 !important;
    color: #000 !important;
    letter-spacing: 0 !important;
    text-shadow: none !important;
    box-shadow: none !important;
  }

  .resume h1 { font-size: 19pt !important; line-height: 1.15 !important; }
  .resume h2 { font-size: 13pt !important; line-height: 1.2 !important; }
  .resume h3 { font-size: 11.5pt !important; line-height: 1.25 !important; }
  .resume h4 { font-size: 10.5pt !important; line-height: 1.3 !important; }
  .resume h5 { font-size: 10pt !important; }
  .resume h6 { font-size: 9pt !important; }

  .resume p,
  .resume li,
  .resume dd,
  .resume td,
  .resume th,
  .resume span,
  .resume a,
  .resume div {
    font-size: 10.5pt !important;
    line-height: 1.42 !important;
  }

  .resume small,
  .resume .text-xs {
    font-size: 9pt !important;
  }

  /* Preserve accent colors for print — yellow stays yellow */
  .resume [class*="accent"],
  .resume [style*="color"] {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* Keep brand yellow in print */
  .resume .resume__accent,
  .resume .section-title::after,
  .resume .divider-accent {
    background: #FFC107 !important;
    color: #FFC107 !important;
  }

  /* ── 6. Page break control ────────────────────────────────────────── */

  /* Avoid breaking inside critical blocks */
  .resume .entry,
  .resume .job,
  .resume .experience-item,
  .resume .education-item,
  .resume .project-item,
  .resume .certification-item,
  .resume .award-item,
  .resume .language-item,
  .resume .volunteer-item,
  .resume .publication-item,
  .resume .custom-item,
  .resume li,
  .resume .contact-row,
  .resume .header-block,
  .resume .profile-header,
  .resume figure,
  .resume blockquote,
  .resume .callout {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* Never orphan a heading */
  .resume h1,
  .resume h2,
  .resume h3,
  .resume h4,
  .resume h5,
  .resume h6 {
    break-after: avoid !important;
    page-break-after: avoid !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    orphans: 3;
    widows: 3;
  }

  /* Never separate a heading from its first paragraph */
  .resume h2 + p,
  .resume h3 + p,
  .resume h4 + p,
  .resume .section-title + .section-body,
  .resume .section-heading + .section-content {
    break-before: avoid !important;
    page-break-before: avoid !important;
  }

  /* Widow / orphan protection for paragraphs */
  .resume p {
    orphans: 3;
    widows: 3;
  }

  /* Section separators */
  .resume .section {
    break-inside: auto;
    page-break-inside: auto;
  }

  /* Force new page helpers */
  .page-break {
    break-before: page !important;
    page-break-before: always !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .page-break-avoid {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* ── 7. Sidebar layouts in print — collapse to single column ────── */
  .resume--sidebar,
  .resume--sidebar * {
    grid-template-columns: 1fr !important;
  }

  .resume [class*="sidebar"],
  .resume [class*="rail"] {
    background: transparent !important;
    color: #000 !important;
    padding: 0 !important;
  }

  /* Keep two-column split only if template is explicitly print-safe */
  .resume .split-print-safe {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8mm !important;
  }

  /* ── 8. Remove decorative backgrounds but keep yellow accents ──── */
  .resume [class*="gradient"],
  .resume [style*="gradient"] {
    background: none !important;
    background-image: none !important;
  }

  /* ── 9. Links in print — show URL only for external references ── */
  .resume a[href^="http"]:not(.no-url)::after {
    content: "";
  }

  .resume a {
    text-decoration: none !important;
    color: #000 !important;
    border-bottom: none !important;
  }

  /* ── 10. Avatar / profile icon in print ────────────────────────── */
  .resume .avatar,
  .resume .profile-icon,
  .resume .resume-avatar,
  .resume [class*="avatar"] {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    background-color: #FFC107 !important;
    color: #0F172A !important;
    border: 1px solid #0F172A !important;
  }

  .resume .avatar img {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* ── 11. Lists in print ───────────────────────────────────────── */
  .resume ul,
  .resume ol {
    padding-left: 1.2em !important;
    margin: 0.3em 0 !important;
  }

  .resume ul { list-style: disc !important; }
  .resume ol { list-style: decimal !important; }

  .resume li {
    margin-bottom: 0.15em !important;
    padding-left: 0.2em !important;
  }

  .resume li::marker {
    color: #000 !important;
  }

  /* ── 12. Borders and dividers stay visible ───────────────────── */
  .resume hr,
  .resume .divider,
  .resume .section-divider {
    background: #000 !important;
    height: 1px !important;
    border: none !important;
    margin: 3mm 0 !important;
  }

  .resume .section-title,
  .resume .section-heading {
    border-bottom: 1px solid #000 !important;
    padding-bottom: 1mm !important;
  }

  /* ── 13. Multi-page continuation ─────────────────────────────── */
  .resume + .resume,
  .resume-page + .resume-page {
    break-before: page !important;
    page-break-before: always !important;
  }

  /* Page number placeholder — unhidden by browser if supported */
  .print-page-number {
    display: block !important;
    text-align: center;
    font-size: 8pt !important;
    color: #666 !important;
    margin-top: 2mm;
  }

  /* ── 14. Prevent blank trailing page ─────────────────────────── */
  .resume > *:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  .resume::after,
  .resume-page::after {
    content: "";
    display: block;
    height: 0;
    overflow: hidden;
  }

  /* ── 15. Reset sticky / fixed positioning ───────────────────── */
  .resume [style*="position: sticky"],
  .resume [style*="position:sticky"],
  .resume [style*="position: fixed"],
  .resume [style*="position:fixed"],
  .resume .sticky,
  .resume .fixed {
    position: static !important;
  }

  /* ── 16. Table printing ──────────────────────────────────────── */
  .resume table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 9.5pt !important;
  }

  .resume th,
  .resume td {
    padding: 2mm 2.5mm !important;
    border: 1px solid #999 !important;
  }

  .resume thead {
    display: table-header-group !important;
  }

  .resume tr {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
}

/* ── 17. Screen-only preview of the print layout (optional) ─────────── */
@media screen {
  .print-preview-active .resume-page {
    width: 210mm;
    min-height: 297mm;
    padding: 14mm;
    margin: 0 auto 24px;
    background: #FFF;
    box-shadow:
      0 1px 3px rgba(15, 23, 42, 0.08),
      0 12px 32px -12px rgba(15, 23, 42, 0.18);
    border-radius: 2px;
    overflow: hidden;
  }

  .print-preview-active .resume-page--letter {
    width: 215.9mm;
    min-height: 279.4mm;
  }
}

/* ── 18. Reduced-motion + print double-guard ─────────────────────────── */
@media print and (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
}