/* assets/css/pdf.css */

/* ---------- Page setup ---------- */
@page {
  size: A4;
  margin: 18mm 16mm 20mm 16mm;
}

/* Uncomment for wider inner margin on booklet-style output later */
/*
@page {
  size: A4;
  margin-top: 18mm;
  margin-right: 14mm;
  margin-bottom: 20mm;
  margin-left: 22mm;
}
*/

/* ---------- Print / PDF refinements ---------- */
@media print {
  html,
  body {
    background: #fff !important;
  }

  body {
    font-size: 10.5pt;
    line-height: 1.45;
  }

  /* Keep the main printable area restrained and readable */
  .page-content,
  .post,
  .post-content,
  .content,
  article,
  main {
    max-width: none !important;
  }

  /* ---------- Headings ---------- */
  h1, h2, h3, h4 {
    break-after: avoid-page;
    page-break-after: avoid;
  }

  h1 {
    margin-top: 0;
    margin-bottom: 0.6em;
  }

  h2, h3, h4 {
    margin-top: 1.3em;
    margin-bottom: 0.45em;
  }

  /* ---------- Paragraph flow ---------- */
  p,
  li,
  blockquote {
    orphans: 3;
    widows: 3;
  }

  p,
  ul,
  ol,
  dl,
  table,
  figure,
  blockquote,
  pre {
    margin-top: 0;
    margin-bottom: 0.9em;
  }

  /* ---------- Avoid awkward splits ---------- */
  img,
  figure,
  table,
  blockquote,
  pre,
  code,
  .results-table,
  .data-table,
  .callout,
  .note,
  .card {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  figcaption {
    break-before: avoid;
    page-break-before: avoid;
    font-size: 9pt;
  }

  /* ---------- Images ---------- */
  img {
    max-width: 100% !important;
    height: auto !important;
  }

  figure img {
    display: block;
  }

  /* ---------- Tables ---------- */
  table {
    width: 100%;
    border-collapse: collapse;
    font-size: 9.5pt;
  }

  thead {
    display: table-header-group;
  }

  tfoot {
    display: table-footer-group;
  }

  th,
  td {
    vertical-align: top;
    text-align: left;
    padding: 0.25rem 0.35rem;
  }

  /* ---------- Utility classes ---------- */
  .screen-only,
  .site-nav,
  .site-header nav,
  .site-footer nav,
  .pagination,
  .share-links,
  .related-posts,
  .button,
  .buttons,
  .search,
  .filters,
  .toc-toggle {
    display: none !important;
  }

  .print-only {
    display: block !important;
  }

  .page-break {
    break-before: page;
    page-break-before: always;
  }

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

  /* ---------- Links ---------- */
  a,
  a:visited {
    text-decoration: none;
    color: inherit;
  }

  /* Optional: show URLs after links in body copy */
  article a[href^="http"]::after,
  .post-content a[href^="http"]::after,
  .content a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 85%;
    word-break: break-all;
  }

  /* Don’t do this for image links / buttons / footnote backrefs if you use them */
  a.no-link-url::after,
  .footnote-backref::after,
  figure a::after {
    content: "";
  }

  /* ---------- Metadata block ---------- */
  .print-meta {
    margin: 0 0 1.2em 0;
    padding: 0.7em 0.9em;
    border: 1px solid #ccc;
    font-size: 9.5pt;
  }

  .print-meta p:last-child {
    margin-bottom: 0;
  }

  /* Species classification print/PDF override */

  .species-classification-page {
    color: #111111 !important;
    background: #ffffff !important;
  }

  .species-classification-header {
    border-bottom: 0.75pt solid #cfc7b8 !important;
    margin-bottom: 0.65cm !important;
    padding-bottom: 0.25cm !important;
    break-inside: avoid-page;
    page-break-inside: avoid;
  }

  .species-classification-page h1,
  .species-classification-page h2,
  .species-classification-page h3,
  .species-classification-page p,
  .species-classification-page li,
  .species-classification-page dt,
  .species-classification-page dd,
  .species-classification-page figcaption,
  .species-classification-header,
  .eyebrow,
  .model-family,
  .classification-card__label,
  .classification-legend,
  .classification-card__primary,
  .classification-card__summary,
  .classification-card__facts dt,
  .classification-card__facts dd,
  .classification-evidence-list dt,
  .classification-evidence-list dd,
  .classification-chart-card figcaption,
  .classification-download-link,
  .classification-download-link__action {
    color: #111111 !important;
    background: transparent !important;
    text-shadow: none !important;
  }

  .eyebrow,
  .model-family,
  .classification-card__label,
  .classification-legend,
  .classification-card__facts dt,
  .classification-evidence-list dt,
  .classification-chart-card figcaption,
  .classification-card__summary {
    color: #555555 !important;
  }

  .classification-card,
  .classification-traits,
  .classification-wheel-block,
  .classification-calendar-strip-block,
  .classification-chart-section,
  .classification-notes,
  .classification-downloads {
    color: #111111 !important;
    background: #fffdf8 !important;
    border: 0.75pt solid #d8d0c2 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    break-inside: avoid-page;
    page-break-inside: avoid;
  }

  .classification-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1.7fr) minmax(5.2cm, 1fr) !important;
    gap: 0.45cm !important;
    align-items: start !important;
  }

  .classification-card__facts,
  .classification-evidence-list {
    gap: 0.22cm 0.35cm !important;
  }

  .trait-badge {
    color: #222222 !important;
    background: #f3efe6 !important;
    border: 0.75pt solid #d8d0c2 !important;
    box-shadow: none !important;
  }

  .calendar-strip {
    gap: 0.12cm !important;
  }

  .calendar-month {
    min-height: 1.65cm !important;
    color: #222222 !important;
    background: #ffffff !important;
    border: 0.75pt solid #d8d0c2 !important;
    box-shadow: none !important;
  }

  .calendar-month--inactive {
    color: #777777 !important;
    background: #f5f5f5 !important;
    border-color: #dddddd !important;
    opacity: 1 !important;
  }

  .calendar-month--low {
    color: #222222 !important;
    background: #eef3ea !important;
    border-color: #b9c8b1 !important;
  }

  .calendar-month--active,
  .calendar-month--high {
    color: #111111 !important;
    background: #f4ead2 !important;
    border-color: #c8aa67 !important;
  }

  .calendar-month--very-high {
    color: #111111 !important;
    background: #ead39c !important;
    border-color: #9f7f3e !important;
    box-shadow: none !important;
  }

  .calendar-month__value,
  .calendar-month--inactive .calendar-month__value {
    color: #555555 !important;
  }

  .seasonal-wheel {
    filter: none !important;
    max-width: 7.2cm !important;
  }

  .seasonal-wheel__base {
    stroke: #dddddd !important;
  }

  .seasonal-wheel__tick--inactive { stroke: #d6d6d6 !important; }
  .seasonal-wheel__tick--low { stroke: #8fa486 !important; }
  .seasonal-wheel__tick--high,
  .seasonal-wheel__tick--active { stroke: #b6934f !important; }
  .seasonal-wheel__tick--very-high { stroke: #7f622e !important; }

  .seasonal-wheel__centre-label,
  .seasonal-wheel__centre-subtitle {
    fill: #111111 !important;
  }

  .classification-chart-grid {
    gap: 0.35cm !important;
  }

  .classification-chart-card {
    background: #ffffff !important;
    border: 0.75pt solid #d8d0c2 !important;
    box-shadow: none !important;
    break-inside: avoid-page;
    page-break-inside: avoid;
  }

  .classification-chart-card img {
    background: #ffffff !important;
  }

  .classification-chart-card figcaption {
    background: #f7f4ed !important;
    color: #444444 !important;
  }

  .classification-downloads {
    display: none !important;
  }

  @media print and (max-width: 760px) {
    .classification-grid,
    .classification-chart-grid {
      grid-template-columns: 1fr !important;
    }
  }

  /* ---------- Code / pre ---------- */
  pre,
  code {
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-wrap: anywhere;
  }

  pre {
    padding: 0.6em;
    border: 1px solid #ccc;
  }

  pre.highlight,
  .highlight pre,
  pre {
    background: #f7f4ed !important;
    color: #111111 !important;
    border: 0.75pt solid #cfc7b8 !important;
    border-left: 3pt solid #b6934f !important;
    border-radius: 4pt;
    padding: 0.55em 0.7em;
    margin: 0.45cm 0;
    box-shadow: none !important;
    text-shadow: none !important;

    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 8.8pt;
    line-height: 1.38;

    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-wrap: break-word;

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

  pre.highlight code,
  .highlight pre code,
  pre code {
    background: transparent !important;
    color: inherit !important;
    border: 0 !important;
    padding: 0 !important;
    font-family: inherit;
    font-size: inherit;
    white-space: inherit;
  }

  code {
    background: #f3efe6 !important;
    color: #111111 !important;
    border: 0.5pt solid #d8d0c2 !important;
    border-radius: 3pt;
    padding: 0.05em 0.25em;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.9em;
  }

  /* Avoid double-styling inline code inside code blocks */
  pre code {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
  }
}
