/**
 * Print styles - a detail page prints as just the article.
 *
 * Hides the site chrome (header, footer, breadcrumb, back-to-top) and the
 * non-article furniture on detail pages (the share row, related items, ads and
 * the in-article series navigation), so a printout is the article itself: its
 * title, meta, hero and body. Loaded site-wide with media="print", so it never
 * touches on-screen rendering - the Print share button just calls window.print().
 *
 * Class names from the design are reused across templates (e.g. .article__box-8
 * is the series rail on PM Guide but the hero on Topics), so anything ambiguous
 * is scoped by the single-{type} body class WordPress emits.
 */

/* ---- Site chrome, on every page ---- */
.header__bar,
.crumb__nav,
.backlink__box,
.detail__box-26,   /* Industrial Park back-link nav */
.og-totop,
.skip-link,
footer {
  display: none !important;
}

/* ---- Share row (social + utility) and its label ---- */
.og-share-end,     /* News / Topics / PM Guide end-of-article share block */
.detail__box-23,   /* Industrial Park share block */
.og-share-util,
.og-share-sep {
  display: none !important;
}

/* ---- Related items, "More Updates" (News prev/next), and ads ---- */
.related__section,
.more__section,
.og-ad {
  display: none !important;
}

/* ---- A hero that is only the default placeholder emblem (no admin-uploaded
        image) is dropped from print - no point printing a placeholder graphic.
        A real uploaded hero is an <img>, not .hero-emblem, so it still prints.
        The :has() rule collapses the empty media box the emblem sat in. ---- */
.hero-emblem {
  display: none !important;
}

:has(> .hero-emblem) {
  display: none !important;
}

/* ---- Industrial Park: on-screen controls that carry nothing onto paper ----
        the PDF reader (prints as an empty frame), its buttons, the map's
        download button and the slider's own navigation. The map image and the
        first slide still print. ---- */
.ipd-map-dl,
.ipd-doc__bar,
.ipd-slider__nav,
.ipd-slider__thumbs {
  display: none !important;
}

/* A section whose only content is the reader goes with it, rather than leaving
   a heading over an empty frame. */
section:has(.ipd-doc) {
  display: none !important;
}

/* ---- PM Guide in-article series navigation (scoped so it can't hide the
        same class names on other templates) ---- */
.single-pm_guide .article__box-8,   /* part-pagination rail */
.single-pm_guide .article__box-22 { /* prev / next footer */
  display: none !important;
}

/* ---- Page setup ---- */
@page {
  margin: 12mm 12mm;
}

html,
body {
  background: #fff !important;
}

#root,
.og-home {
  min-height: 0 !important;
}

img {
  max-width: 100% !important;
}

/* Keep headings with the text that follows them. */
h1,
h2,
h3 {
  break-after: avoid;
}

/* ---- Compact typography: smaller than screen so a printout stays tight.
        !important because the page-specific screen CSS (e.g. a 40px title) has
        no media query and would otherwise still apply while printing. ---- */
.article__title,
.hero__title {
  font-size: 21px !important;
  line-height: 1.3 !important;
  margin: 0 0 10px !important;
}

.article__text,
.hero__text {
  font-size: 12px !important;
  line-height: 1.6 !important;
  margin-top: 10px !important;
}

.nwd-body,
.ind-body,
.egd-body {
  font-size: 11px !important;
  line-height: 1.6 !important;
}

.nwd-body p, .ind-body p, .egd-body p,
.nwd-body li, .ind-body li, .egd-body li,
.nwd-body td, .ind-body td, .egd-body td,
.nwd-body th, .ind-body th, .egd-body th,
.nwd-body blockquote, .ind-body blockquote, .egd-body blockquote {
  font-size: 11px !important;
  line-height: 1.6 !important;
}

.nwd-body h2, .ind-body h2, .egd-body h2 {
  font-size: 15px !important;
  line-height: 1.35 !important;
  margin: 16px 0 8px !important;
}

.nwd-body h3, .ind-body h3, .egd-body h3 {
  font-size: 13px !important;
  line-height: 1.35 !important;
  margin: 14px 0 6px !important;
}

.nwd-body h4, .ind-body h4, .egd-body h4 {
  font-size: 12px !important;
  margin: 12px 0 6px !important;
}

/* Author card - smaller name + bio to match. */
.nwd-author-card__name,
.ind-author-card__name,
.egd-author-card__name {
  font-size: 14px !important;
}

.nwd-author-card__bio p,
.ind-author-card__bio p,
.egd-author-card__bio p {
  font-size: 11px !important;
  line-height: 1.6 !important;
}
