/* ─────────────────────────────────────────────────────────────
   Omni Resume — Print stylesheet
   Applies to the whole site; the resume canvas is the priority.
   Supports A4, Letter, Legal, A5 page sizes via body classes.
   Print.js injects a matching @page rule when the user prints.
   ───────────────────────────────────────────────────────────── */

@media print {
  /* ── Default page setup (overridden by print.js based on page size) ── */
  @page {
    size: A4;
    margin: 0;
  }

  /* ── Reset for print ──────────────────────────────────── */
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

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

  /* ── Hide all non-resume UI ───────────────────────────── */
  .skip-link,
  .site-header,
  .site-footer,
  .nav-drawer,
  .nav,
  .site-nav-list,
  .site-nav-item,
  .builder-header,
  .builder-header-inner,
  .builder-header-actions,
  .builder-header-status,
  .builder-mobile-tabs,
  .builder-sidebar,
  .builder-editor,
  .builder-preview-toolbar,
  .builder-preview-scroll::before,
  .builder-preview-scroll::after,
  .builder-toolbar,
  .builder-controls,
  .toolbar,
  .toolbar-group,
  .modal,
  dialog,
  .toast-region,
  .toast,
  .breadcrumbs,
  .page-header,
  .section-header,
  .section,
  .home-hero,
  .home-trust,
  .home-category-grid,
  .home-tools,
  .home-ats,
  .home-cover,
  .home-examples,
  .home-resources,
  .home-privacy,
  .home-faq,
  .home-cta,
  .no-print,
  [data-print='hide'],
  [data-print='exclude'],
  .pagination,
  .cookie-banner,
  .analytics-banner,
  nav,
  aside:not(.resume-sidebar),
  .sidebar:not(.resume-sidebar),
  .advertisement,
  .ad,
  button:not(.print-keep),
  .btn:not(.print-keep),
  input,
  textarea,
  select,
  .field,
  .form,
  .dropdown {
    display: none !important;
  }

  /* ── Show elements that are normally hidden ───────────── */
  .print-only {
    display: block !important;
  }

  .print-hidden {
    display: none !important;
  }

  /* ── Reveal the preview surface on the builder page ───── */
  .builder-body,
  .builder-main,
  .builder-layout,
  .builder-preview,
  .builder-preview-scroll,
  .builder-preview-canvas-wrap,
  .builder-preview-canvas {
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    overflow: visible !important;
    transform: none !important;
    box-shadow: none !important;
  }

  /* ── Resume canvas ────────────────────────────────────── */
  .resume-canvas,
  .resume-preview,
  .resume-page,
  .cover-letter-canvas {
    display: block !important;
    width: 210mm !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 16mm !important;
    border: none !important;
    box-shadow: none !important;
    background: #ffffff !important;
    color: #000000 !important;
    page-break-after: always;
    break-after: page;
    box-sizing: border-box;
  }

  .resume-canvas:last-child,
  .resume-page:last-child,
  .cover-letter-canvas:last-child {
    page-break-after: auto;
    break-after: auto;
  }

  /* ── Page size overrides (driven by body class) ───────── */
  body.page-a4 .resume-canvas,
  body.page-a4 .resume-page,
  body.page-a4 .cover-letter-canvas {
    width: 210mm !important;
  }

  body.page-letter .resume-canvas,
  body.page-letter .resume-page,
  body.page-letter .cover-letter-canvas {
    width: 8.5in !important;
  }

  body.page-legal .resume-canvas,
  body.page-legal .resume-page,
  body.page-legal .cover-letter-canvas {
    width: 8.5in !important;
  }

  body.page-a5 .resume-canvas,
  body.page-a5 .resume-page,
  body.page-a5 .cover-letter-canvas {
    width: 148mm !important;
  }

  /* ── Margin overrides (driven by body class) ──────────── */
  body.margin-none .resume-canvas,
  body.margin-none .resume-page {
    padding: 0 !important;
  }

  body.margin-narrow .resume-canvas,
  body.margin-narrow .resume-page {
    padding: 10mm !important;
  }

  body.margin-normal .resume-canvas,
  body.margin-normal .resume-page {
    padding: 16mm !important;
  }

  body.margin-wide .resume-canvas,
  body.margin-wide .resume-page {
    padding: 22mm !important;
  }

  /* ── Prevent awkward breaks ───────────────────────────── */
  .resume-section,
  .resume-entry,
  .experience-item,
  .education-item,
  .project-item,
  .certification-item {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* For very long sections, allow breaks but avoid orphaned headings */
  .resume-section[data-long='true'] {
    page-break-inside: auto;
    break-inside: auto;
  }

  h1, h2, h3, h4, h5, h6,
  .resume-name,
  .resume-title,
  .resume-section-title {
    page-break-after: avoid;
    break-after: avoid;
    color: #000000 !important;
  }

  p, li, .resume-summary, .resume-entry-body {
    orphans: 3;
    widows: 3;
  }

  /* Avoid headings landing at the very bottom of a page */
  .resume-section-title {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* ── Header handling ──────────────────────────────────── */
  .resume-header {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  .resume-header[data-style='banner'] {
    margin: 0 0 1.5rem 0 !important;
    border-radius: 0 !important;
  }

  /* ── Link handling ────────────────────────────────────── */
  a {
    color: #000000 !important;
    text-decoration: none !important;
  }

  a[href^='http']::after,
  a[href^='mailto']::after,
  a[href^='tel']::after {
    content: '';
  }

  /* Keep the resume content black on white by default.
     Templates that opt into print color preservation set
     `.print-preserve-colors` on the canvas. */
  .resume-canvas,
  .resume-canvas * {
    color: #000000 !important;
    background-color: transparent !important;
    border-color: #cccccc !important;
  }

  .resume-canvas.print-preserve-colors,
  .resume-canvas.print-preserve-colors * {
    /* Keep template colors */
  }

  /* Ensure tints that were kept stay light for legibility */
  .resume-canvas[data-print-accent='true'] .resume-section-title,
  .resume-canvas[data-print-accent='true'] .resume-entry-subtitle strong {
    color: inherit !important;
  }

  /* ── Images ───────────────────────────────────────────── */
  img {
    max-width: 100% !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* ── Tables (ATS-safe templates) ──────────────────────── */
  table {
    page-break-inside: auto;
    break-inside: auto;
  }

  tr {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* ── Page numbering (only when the consumer opts in) ──── */
  .print-page-number {
    position: fixed;
    bottom: 0.4in;
    right: 0.5in;
    font-size: 9pt;
    color: #666666;
    display: block !important;
  }

  /* ── Force readable font rendering in print ───────────── */
  .resume-canvas {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: geometricPrecision;
  }
}

/* ── Cover letter print output ───────────────────────────── */
@media print {
  .cover-letter-canvas {
    display: block !important;
    width: 210mm !important;
    padding: 22mm !important;
    margin: 0 auto !important;
    border: none !important;
    box-shadow: none !important;
    background: #ffffff !important;
    color: #000000 !important;
    page-break-after: always;
    break-after: page;
  }

  .cover-letter-canvas:last-child {
    page-break-after: auto;
    break-after: auto;
  }

  .cover-letter-canvas * {
    color: #000000 !important;
    background-color: transparent !important;
  }
}

/* ── Legal and A5 support via body class ─────────────────── */
@media print {
  body.page-legal {
    /* Legal requires special handling since it's taller than typical printers */
  }

  body.page-a5 {
    /* A5 is smaller; resume content scales down automatically */
  }
}

/* ── Reduced-motion safety net (already applied globally) ── */
@media print {
  * {
    animation-duration: 0s !important;
    animation-delay: 0s !important;
    transition-duration: 0s !important;
    transition-delay: 0s !important;
  }
}