﻿/* ═══════════════════════════════════════════════════════════════════════
   System Catalog — No-Theme / PDF Print Stylesheet
   Loaded by HeadScripts.cshtml when ?notheme=true is present.
   Used by Adobe Acrobat Web Capture to generate the catalog PDF.

   RULES:
   - No CSS custom properties (var()) — Acrobat may not resolve them.
     Use literal hex values for all colours.
   - No CSS Grid or Flexbox for multi-column layouts.
     Use display: inline-block with percentage widths (Acrobat-safe).
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Notheme visibility helpers ─────────────────────────────────────── */

.hide-notheme {
    display: none !important;
}

/* ── Base / Reset ───────────────────────────────────────────────────── */

html, body {
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    color: #000000 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 9pt !important;
    line-height: 1.5 !important;
}

/* ── Page margins — breathing room for PDF / print output ──────────── */
body {
    padding: 12pt 18pt !important;
}

/* ── Suppress Acrobat/browser running headers & footers ────────────── */
/* CSS @page margin boxes override the default page title, URL, and    */
/* page-number content that Acrobat / browser print engines inject.    */
@page {
    margin: 0.35in 0.25in !important;
    @top-left   { content: ''; }
    @top-center { content: ''; }
    @top-right  { content: ''; }
    @bottom-left   { content: ''; }
    @bottom-center { content: ''; }
    @bottom-right  { content: ''; }
}

*, *::before, *::after {
    box-sizing: border-box;
}

/* ── Hide all UI chrome ─────────────────────────────────────────────── */

.site-nav,
.site-nav__hamburger,
.site-nav__skip,
.site-nav__actions,
.site-nav__search,
.site-nav__subnav,
.site-footer,
.hero__actions,
.hero__search--amu,
.hero__search--apu,
.hero__search--ras,
.hero__search--hon,
.hero__school-cards,
.subnav__back,
.subnav__toggle,
.breadcrumb,
.schools-overview .btn,
.school-card__actions,
.nav-card,
.quick-links,
.modal,
.modal-backdrop,
[data-bs-toggle],
.cookie-banner,
.skip-to-content,
.back-to-top,
.site-nav__mobile,
.hero__scroll,
.section-cta,
.home-section__cta,
/* ── Header / quick-nav bar ──────────────────────────────────── */
header,
.primary-nav,
/* ── Catalog sub-page sidebar ("In this section") ────────────── */
.catalog-sidebar,
/* ── Sub-footer CTA bar ("If you're ready to move forward…") ─── */
.subFooterBar,
.sub-footer-bar,
/* ── System policies widget — sidebar UI (not needed in PDF) ─── */
.content-sidebar,
.sidebar-toggle,
.sidebar-close,
/* ── Print Page CTA button ────────────────────────────────────── */
.content-panel__print,
/* ── Mobile nav hamburger inside primary-nav ─────────────────── */
.primary-nav__hamburger,
/* ── "In this section" sidebar panel heading ─────────────────── */
.sidebar-panel__heading,
/* ── Catalog year eyebrow (e.g. "2026 - 2027 Catalog") ──────── */
.section-eyebrow {
    display: none !important;
}

/* ── Logo — show (hidden separately via catalog-no-logo.css if noLogo) ─ */

.site-nav__logo,
.site-header__logo {
    display: block !important;
    max-width: 260px;
    margin: 0 auto 0.5rem;
}

/* ── Containers — full page width ───────────────────────────────────── */

.container,
.container-fluid,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.page-wrap {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ── Navigation bar — collapse to minimal header ────────────────────── */

.site-nav {
    display: none !important;
}

/* ── Subnav strip ───────────────────────────────────────────────────── */

.subnav {
    display: none !important;
}

/* ── Hero sections — hide system hero banner entirely ────────────── */

.hero--system {
    display: none !important;
}

/* ── EU hero sections — strip imagery, keep title text only ─────────── */
.hero--eu {
    background: #ffffff !important;
    min-height: auto !important;
    height: auto !important;
    padding: 0.5rem 0 !important;
    border-bottom: 2px solid #22314e;
    background-image: none !important;
}

.hero--system::before,
.hero--eu::before,
.hero--system::after,
.hero--eu::after {
    display: none !important; /* dark overlay + background image */
}

/* Hero content: collapse split layout to simple block */
.hero__content--split,
.hero__content {
    display: block !important;
    padding: 0.5rem 0 !important;
}

.hero__text {
    display: block !important;
    max-width: 100% !important;
}

.hero__inner {
    padding: 0.5rem 0 !important;
}

.hero__title,
.no-theme-title {
    font-size: 18pt; /* h1 role — see MASTER HEADING LADDER */
    font-weight: 700;
    color: #22314e !important;
    background: #e4ebf3;
    padding: 2pt 6pt;
    margin-bottom: 0.3rem;
    text-shadow: none !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

h1 {
    margin: 0;
}

.hero__subtitle {
    font-size: 9pt;
    color: #333333 !important;
    text-shadow: none !important;
}

/* ── School cards — inline-block grid (Acrobat-safe, no CSS Grid) ───── */

.schools-grid,
.grid-2,
.school-tile,
.home-section__grid,
.schools-list {
    display: block !important;
}

.school-card {
    display: block !important;
    width: 100% !important;
    vertical-align: top !important;
    border: 1px solid #dde3ec;
    border-top: 3px solid #22314e; /* --color-navy fallback */
    padding: 0.5rem;
    margin: 0 0.5% 0.75rem !important;
    font-size: 8.5pt;
    page-break-inside: avoid;
    break-inside: avoid;
    background: #ffffff;
}

.school-card__name {
    font-size: 10pt;
    font-weight: 700;
    color: #000000 !important;
    margin-bottom: 4px;
}

.school-card__body,
.school-card__desc {
    font-size: 8pt;
    color: #333333 !important;
}

/* ── School accent colours ──────────────────────────────────────────── */

.school-card--amu,
[data-school="amu"] .school-card__bar {
    border-top-color: #003087 !important; /* --color-amu */
}

.school-card--apu,
[data-school="apu"] .school-card__bar {
    border-top-color: #2e7d32 !important; /* --color-apu */
}

.school-card--rasmussen,
[data-school="rasmussen"] .school-card__bar {
    border-top-color: #c62828 !important; /* --color-rasmussen */
}

.school-card--hondros,
[data-school="hondros"] .school-card__bar {
    border-top-color: #e65100 !important; /* --color-hondros */
}

/* ── School tile (small card variant) ──────────────────────────────── */

.school-tile {
    display: inline-block !important;
    width: 23% !important;
    vertical-align: top !important;
    border: 1px solid #dde3ec;
    border-top: 3px solid #22314e;
    padding: 0.4rem;
    margin: 0 0.5% 0.5rem !important;
    font-size: 8pt;
    page-break-inside: avoid;
    break-inside: avoid;
}

.school-tile__name {
    font-size: 8.5pt;
    font-weight: 700;
    color: #000000 !important;
}

/* ── Section headings ───────────────────────────────────────────────── */

.section-heading,
.home-section__title,
.schools-overview__heading {
    font-size: 12pt;
    font-weight: 700;
    color: #22314e !important; /* --color-navy */
    background: #edf2f7;
    border-left: 3px solid #22314e;
    border-bottom: 1px solid #dde3ec;
    padding: 1.5pt 5pt;
    margin-bottom: 10px;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* ── Program badges ─────────────────────────────────────────────────── */

.prog-badges {
    display: block !important;
}

.prog-badge {
    display: inline-block !important;
    border: 1px solid #dde3ec;
    border-radius: 3px;
    padding: 1px 6px;
    font-size: 7.5pt;
    margin: 1px 2px;
    color: #333333 !important;
    background: #f5f6f8 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* ── Tables — page-break control ────────────────────────────────────── */

.glance-table,
.program-table,
table {
    width: 100%;
    border-collapse: collapse;
    font-size: 8pt;
    page-break-inside: auto;
}

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

td, th {
    border: 1px solid #dde3ec;
    padding: 3pt 5pt;
    text-align: left;
    vertical-align: top;
}

th,
thead td {
    background: #f5f6f8 !important;
    font-weight: 700;
    font-size: 9pt !important;
    color: #22314e !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* ── Table captions — hide (redundant with surrounding headings) ─────── */
caption,
.APUSDegreeProgramTableCaption {
    display: none !important;
}

/* ── Glance-table / Program-table row layout ─────────────────────────── */
/* Rows use Bootstrap .row + .col-* inside <td>. Strip flexbox and render
   each column inline so: [course code] [course name] [credits] reads L→R */
.glance-table .row,
.program-table .row {
    display: table !important;
    width: 100% !important;
}

.glance-table .row > div,
.program-table .row > div {
    display: table-cell !important;
    vertical-align: middle !important;
    padding: 1pt 3pt !important;
}

/* Total row credits — floated right inside col-1, same structure as course rows */
.glance-table td .float-right,
.program-table td .float-right {
    float: right !important;
    display: inline !important;
}

/* Col widths: code ~25% (matches Bootstrap col-3), name ~67%, credits ~8% */
.glance-table .col-3,
.glance-table .col-sm-2,
.program-table .col-3,
.program-table .col-sm-2 {
    width: 25% !important;
}

/* Total row label spans col-3 + col-8 = 92% */
.glance-table .col-11,
.glance-table .col-sm-11,
.program-table .col-11,
.program-table .col-sm-11 {
    width: 92% !important;
}

.glance-table .col-1,
.glance-table .col-sm-1,
.program-table .col-1,
.program-table .col-sm-1 {
    width: 8% !important;
    text-align: right !important;
}

/* Striped rows — match prod table-striped alternating background */
.glance-table tbody tr:nth-child(even),
.program-table tbody tr:nth-child(even) {
    background-color: #f8f9fa !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Course code button — strip all button chrome, render as plain text */
a.course-code-btn,
button.course-code-btn {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 8pt !important;
    font-weight: 700 !important;
    color: #000000 !important;
    cursor: default !important;
    display: inline !important;
    text-decoration: none !important;
}

/* Hide the course-detail pop-up dialog (not useful in PDF) */
.course-detail-modal,
.course-modal,
dialog {
    display: none !important;
}

/* ── Footnotes ──────────────────────────────────────────────────────── */

/* Hide the interactive littlefoot button — show the print-friendly sup span instead */
.littlefoot__button {
    display: none !important;
}

/* Footnote reference superscripts only — scope to <span> so block-level
   footnote list containers (.page-footnotes, ol.footnotes, li.footnote)
   that also carry littlefoot--print are NOT forced inline */
span.sup-footnote,
span.littlefoot--print {
    display: inline !important;
    vertical-align: super;
    font-size: 7pt !important;
    line-height: 1;
}

/* Footnote definition list — restore natural block/list-item display */
.page-footnotes,
.page-footnotes .container,
.page-footnotes .row,
.page-footnotes .col,
ol.footnotes {
    display: block !important;
}

li.footnote {
    display: list-item !important;
}

/* Override the generic .content-panel span { 9pt } rule — two classes beats one class+element */
.content-panel .sup-footnote,
.content-panel .sup-footnote a {
    font-size: 7pt !important;
}

/* Footnote anchor — plain text, no browser-default blue/underline */
.sup-footnote a,
.sup-footnote a:visited,
.page-footnotes a,
.page-footnotes a:visited {
    color: #000000 !important;
    text-decoration: none !important;
}

/* Footnote definition list */
.page-footnotes {
    margin-top: 12pt;
    border-top: 1px solid #dde3ec;
    padding-top: 6pt;
}

.page-footnotes ol.footnotes {
    list-style: decimal;
    padding-left: 1.5rem !important;
    margin: 0;
}

.page-footnotes ol.footnotes li.footnote {
    font-size: 7.5pt;
    color: #333333 !important;
    line-height: 1.45;
    margin-bottom: 4pt;
    padding-left: 0.25rem;
}

/* ── Links — use default browser styling ────────────────────────────── */

/* ── Lists — reduce default browser 40px indent to fit print columns ── */
ul, ol {
    padding-left: 1.2rem !important;
    margin-left: 0 !important;
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
}

/* Suppress print.css li margin-bottom (24px → compact) */
ul li, ol li {
    margin-bottom: 2pt !important;
}

/* Nested list levels — each additional level adds a smaller step (1rem)
   so 3-deep nesting = 1.2 + 1 + 1 = 3.2rem vs browser default 3 × 40px = 120px */
ul ul, ol ul, ul ol, ol ol {
    padding-left: 1rem !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
/* Bootstrap .tab-content tab panes — force all visible in print (replaces print.css rule) */
.tab-content .tab-pane {
    display: block !important;
    opacity: 1 !important;
    transition: none !important;
}

/* Tab panels: collapse flex-row layouts so section order reads correctly --
   d-flex inside [role=tabpanel] creates side-by-side columns that break reading
   order when printed without a containing column-count layout */
[role="tabpanel"] .d-flex,
[role="tabpanel"] .flex-row,
[role="tabpanel"] .flex-sm-row,
[role="tabpanel"] .flex-md-row {
    display: block !important;
}

[role="tabpanel"] .flex-fill,
[role="tabpanel"] .flex-grow-1 {
    width: 100% !important;
    flex: none !important;
}

/* ── Body text — normalize to 9pt across all sections ───────────────── */
p, li {
    font-size: 9pt !important;
    line-height: 1.5 !important;
}

/* ── System Policies Widget — content layout ────────────────────────── */
/* The widget uses JS to set [hidden] on all panels except the active one.
   Override here so ALL content panels are visible in the PDF. */

/* Display all panels, groups and sub-group headings
   (overrides the HTML `hidden` attribute set by the panel-switching JS)
   Rules are written BOTH with and without [hidden] because Adobe Acrobat
   does not reliably honour attribute-selector overrides for the native
   `hidden` attribute. */
.content-panel,
.content-panel[hidden],
.policy-content-main__panel,
.policy-content-main__panel[hidden],
.policy-content-main__group,
.policy-content-main__group[hidden],
.policy-content-main__subgroup,
.policy-content-main__subgroup[hidden] {
    display: block !important;
}

/* ── Details / Accordion — force content always visible ────────────── */
/* Adobe Acrobat does not support the HTML <details> element natively.
   All accordion content must be forced visible regardless of open/closed state. */
details,
details[open],
details:not([open]) {
    display: block !important;
}

details > summary {
    display: block !important;
    list-style: none !important;
}

details > summary::-webkit-details-marker {
    display: none !important;
}

/* Force the body of every accordion panel to always show */
.content-accordion__content,
.content-accordion > *:not(summary) {
    display: block !important;
    max-height: none !important;
    overflow: visible !important;
    visibility: visible !important;
}

/* ── School tabs widget ──────────────────────────────────────────────── */
/* Hide the tab bar and mobile select — all tab panels show as flat content */
.prog-tabs,
.prog-tabs__select {
    display: none !important;
}

/* Force all tab panels (active + inactive) to display */
[role="tabpanel"],
[role="tabpanel"][hidden] {
    display: block !important;
}

/* Match prod list spacing — reduce browser-default 40px indent, tighten line-height */
[role="tabpanel"] ul,
[role="tabpanel"] ol {
    padding-left: 20px !important;
    margin-top: 0 !important;
    margin-bottom: 10px !important;
}

[role="tabpanel"] li {
    line-height: 1.3 !important;
    margin-bottom: 3px !important;
}

/* Full-width single column layout — sidebar is hidden above */
.content-layout {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
}

.policy-content-main {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
}

/* Group block: top-level section (e.g. "About", "Policies") */
.policy-content-main__group {
    display: block !important;
    margin-bottom: 1rem;
    padding-top: 0.5rem;
    page-break-inside: auto;
    page-break-after: avoid;
    break-after: avoid;
}

/* Non-first major sections start on a new page */
.policy-content-main__group ~ .policy-content-main__group {
    page-break-before: always !important;
    break-before: page !important;
    margin-top: 0 !important;
}

/* First panel in each group must NOT double-break (group already forces a new page) */
.policy-content-main__group + .content-panel,
.policy-content-main__group + .policy-content-main__panel {
    page-break-before: avoid !important;
    break-before: avoid !important;
}

/* Group title (h2): e.g. "About" — banded so major sections are findable
   when flipping through the printed PDF */
.policy-content-main__title {
    font-size: 16pt; /* below the 18pt h1 — see MASTER HEADING LADDER */
    font-weight: 700;
    color: #22314e !important;
    background: #edf2f7 !important;
    margin: 0 0 0.5rem !important;
    padding: 2pt 6pt;
    border-bottom: 2px solid #22314e;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Sub-group heading (3-level layout) — pinned to its first panel */
.policy-content-main__subgroup {
    display: block !important;
    page-break-after: avoid;
    break-after: avoid;
    margin-top: 0.6rem;
}

/* Sub-group title (h3): a policy family inside a group — between the 16pt
   group title and the 13pt policy title (see MASTER HEADING LADDER) */
.policy-content-main__subgroup-title {
    font-size: 14pt;
    font-weight: 700;
    color: #22314e !important;
    background: #edf2f7 !important;
    border-left: 4px solid #22314e;
    margin: 0.6rem 0 0.3rem;
    padding: 1.5pt 5pt;
    page-break-after: avoid;
    break-after: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Individual panel wrapper — each section starts on a new page */
.content-panel,
.policy-content-main__panel {
    display: block !important;
    margin-bottom: 0.4rem;
    padding-bottom: 0.3rem;
    page-break-before: always !important;
    break-before: page !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
}

/* Strip borders and backgrounds from ALL accordions inside the Licensure panel.
   State items (Florida, Michigan, etc.) are top-level accordions in a flat list —
   there is no outer wrapper. With break-inside: auto the browser may split a
   details element at a page boundary; removing the visible box means the split
   produces natural whitespace instead of an empty bordered rectangle.
   Uses .content-accordion-set to cover both about-licensure and
   disclosures-professional-licensure panels (and any future sets). */
.content-accordion-set details.content-accordion {
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    margin-bottom: 3pt !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
}

.content-accordion-set details.content-accordion > summary.content-accordion__toggle,
.content-accordion-set details.content-accordion > summary {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid #dde3ec !important;
    padding: 3pt 4pt !important;
}


/* Panel section heading (h3): THE policy title. Band + left accent bar make
   every policy start identifiable when flipping through the printed PDF —
   if a consumer drops background fills, the bar + size + navy still mark it.
   Padding (not margin) carries the band so the PDF generator's whitespace
   clamps cannot collapse it. Pinned to its content — no orphan headings. */
.policy-content-main__section-heading {
    font-size: 13pt !important;
    font-weight: 700;
    color: #22314e !important;
    background: #edf2f7 !important;
    /* !important: the generic banded h3 rule below is (0,1,1) and would
       otherwise override this rule's (0,1,0) bar/padding with its 2px/1pt */
    border-left: 4px solid #22314e !important;
    padding: 1.5pt 5pt !important;
    margin: 0.7rem 0 0.3rem !important;
    page-break-after: avoid;
    break-after: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* ═══════════════════════════════════════════════════════════════════════
   MASTER HEADING LADDER — the one spec every context scale must follow.
   Sizes are strictly monotonic within each context; all heading colours
   are navy #22314e except rich-text h4–h6 (black).

   ONE BAND LANGUAGE, scaled by level (all bands print-color-adjust: exact,
   tight 1–2pt vertical padding so they read as markers, not blocks):
     L1 h1/page titles   band #e4ebf3 + 2px navy bottom border, pad 2pt 6pt
     L2 h2 roles         band #edf2f7 + 3px navy left bar,      pad 1.5pt 5pt
                         (group/tab titles keep bottom border instead of bar;
                          structural policy/subgroup h3 keep the 4px bar)
     L3 h3 roles         band #f1f5f9 + 2px navy left bar,      pad 1pt 4pt
     L4 h4               band #f6f8fb + 2px muted #8194b8 bar,  pad 1pt 4pt
     h5/h6               plain bold — too small for bands

   Structural (System Policies widget):
     h1  page title      18pt  L1 band  (.content-main__title, .hero__title)
     h2  group           16pt  L2 band + bottom border (.policy-content-main__title)
     h3  sub-group       14pt  band #edf2f7 + 4px bar  (.policy-content-main__subgroup-title)
     h3  POLICY TITLE    13pt  band #edf2f7 + 4px bar  (.policy-content-main__section-heading)
     accordion titles    10pt  (h5 rung) band on summary — both the
                         summary.content-accordion__toggle text itself and
                         any inner .content-accordion__heading h2
                         (9pt inside two-col panels, tracking panel h5)

   Author-marked pseudo-headings in CMS rich text:
     p.sub-heading  ≡ h4 rung in every context (size follows that
     context's h4 clamp; L4 band + muted bar).

   CMS rich-text INSIDE policy panels (sizes in section 6 of the merged
   block; band props inherit from the generic rules below):
     h2 11.5 > h3 10.5 > h4 9.5 > h5 9 > h6 8.5       (panel body 8.5pt)

   Generic .content-panel pages (below):
     h2 15 > h3 13 > h4 11 > h5 10 > h6 9.5           (body 9pt)

   Program pages (.prog-body / .prog-print-cols-wrapper, section 10):
     tab 13 > h2 11.5 > h3 10 > h4 9.5 > h5 9 > h6 8.5 (body 9pt)
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Content heading scale ───────────────────────────────────────────── */
/* Fallback for CMS rich-text headings (h2–h6) inside panels that do     */
/* not carry policy-content-main__section-heading (e.g. future widgets). */

.policy-content-main__panel h2,
.content-panel h2 {
    font-size: 15pt;
    font-weight: 700;
    color: #22314e !important;
    background: #edf2f7;
    border-left: 3px solid #22314e;
    padding: 1.5pt 5pt;
    margin: 0.5rem 0 0.25rem;
    page-break-after: avoid;
    break-after: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.policy-content-main__panel h3,
.content-panel h3 {
    font-size: 13pt;
    font-weight: 700;
    color: #22314e !important;
    background: #f1f5f9;
    border-left: 2px solid #22314e;
    padding: 1pt 4pt;
    margin: 0.4rem 0 0.2rem;
    page-break-after: avoid;
    break-after: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.policy-content-main__panel h4,
.content-panel h4 {
    font-size: 11pt;
    font-weight: 700;
    color: #000000 !important;
    background: #f6f8fb;
    border-left: 2px solid #8194b8;
    padding: 1pt 4pt;
    margin: 0.35rem 0 0.15rem;
    page-break-after: avoid;
    break-after: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Author-marked pseudo-heading: <p class="sub-heading"> renders at the h4
   rung (e.g. the home-page Licensure panel intro). !important throughout —
   the p/span normalizers (font-size 9pt !important, transparent background)
   and inline CMS styles win otherwise. */
p.sub-heading,
.policy-content-main__panel p.sub-heading,
.content-panel p.sub-heading {
    font-size: 11pt !important;
    font-weight: 700 !important;
    color: #000000 !important;
    background: #f6f8fb !important;
    border-left: 2px solid #8194b8 !important;
    padding: 1pt 4pt !important;
    margin: 0.35rem 0 0.15rem !important;
    line-height: 1.3 !important;
    page-break-after: avoid;
    break-after: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.policy-content-main__panel h5,
.content-panel h5 {
    font-size: 10pt;
    font-weight: 700;
    color: #000000 !important;
    margin: 0.25rem 0 0.1rem;
    page-break-after: avoid;
    break-after: avoid;
}

.policy-content-main__panel h6,
.content-panel h6 {
    font-size: 9.5pt;
    font-weight: 700;
    color: #000000 !important;
    margin: 0.25rem 0 0.1rem;
    page-break-after: avoid;
    break-after: avoid;
}

/* Panel body text */
.policy-content-main__panel p,
.policy-content-main__panel li {
    font-size: 8.5pt;
    color: #1a1a1a !important;
    margin-bottom: 4pt;
    line-height: 1.5;
}

/* Out-list grid — multi-column UL layout (e.g. state lists in Licensure panel)
   Uses inline-block columns — Acrobat does not support CSS Grid or Flexbox */
.out-list-grid {
    display: block;
    font-size: 0; /* collapse inline-block gaps */
    margin: 6pt 0;
}

.out-list-grid ul {
    display: inline-block;
    vertical-align: top;
    width: 24%;
    font-size: 8.5pt; /* restore after parent font-size:0 */
    /* list-style: none; */
    padding: 0 !important;
    margin: 0;
    padding-left: 1.5rem !important;
    box-sizing: border-box;
}

.out-list-grid ul li {
    font-size: 8.5pt;
    color: #1a1a1a !important;
    line-height: 1.5;
    margin-bottom: 2pt;
}

/* Sidebar subgroup headings (shown when sidebar IS printed, e.g. on other pages) */
.sidebar-accordion__toggle,
.sidebar-subgroup__toggle {
    font-size: 9pt;
    font-weight: 700;
    color: #22314e !important;
    list-style: none;
    padding: 2pt 0;
}

/* ── A-Z letter navigation (course-descriptions pages) ─────────────── */
/* This is an interactive jump-nav — useless in PDF; hide entirely */
.letternav,
.course-alpha-nav,
.az_sitemap .azMenu {
    display: none !important;
}

/* ── Strip CMS editor inline background / font overrides ────────────── */
/* Rich-text editor injects inline style="background:...; font-family:...; font-size:..."
   onto <p> and <span>. Override here so PDF output uses the base Arial/9pt consistently. */
.content-panel p,
.content-panel span,
.content-panel div {
    background-color: transparent !important;
    background: transparent !important;
}

.content-panel p,
.content-panel span,
.content-panel li {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 9pt !important;
}

/* ── Course Listing page (per-subject course descriptions) ──────────── */
/* Used by: /hondros/.../course-listing/{school}/{subject}?notheme=true   */

/* Page title (e.g. "BIO Biology") */
#page-title h2 {
    font-size: 13pt;
    font-weight: 700;
    color: #22314e !important;
    background: #e4ebf3;
    margin: 0 0 0.6rem;
    padding: 2pt 6pt;
    border-bottom: 2px solid #22314e;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Hide interactive search bar — not useful in PDF */
.catalog-course-search,
#catalog-course-search {
    display: none !important;
}

/* Hide course-detail modal overlay (positioned:fixed, invisible but present in DOM) */
.course-detail-modal-page-overlay,
#spd-course-backdrop {
    display: none !important;
}

/* Show all course blocks even if the search JS hid them via [hidden] */
.courseBlock,
.courseBlock[hidden] {
    display: block !important;
}

/* Course block container: separator line + page-break control */
.courseBlock {
    margin-bottom: 0.8rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid #dde3ec;
    page-break-inside: avoid;
    break-inside: avoid;
}

.courseBlock:last-child {
    border-bottom: none;
}

/* Course title row: "BIO 117 Introduction to Anatomy and Physiology C†Δ" */
.courseBlockTitle {
    margin: 0 0 2pt;
    line-height: 1.4;
}

.courseBlockTitle strong {
    font-size: 10pt;
    font-weight: 700;
    color: #22314e !important;
}

/* Credit hours line: "4 Quarter Credit Hours" */
.courseBlockCreditsHours {
    display: block;
    font-size: 8.5pt;
    color: #444444 !important;
    margin-top: 1pt;
}

/* Description, lecture/lab hours, prerequisites, corequisites paragraphs */
.courseBlockDesc,
.catalogCourseDesc p {
    font-size: 8.5pt;
    color: #1a1a1a !important;
    line-height: 1.5;
    margin: 0 0 3pt;
}

/* Bold sub-labels inside description (e.g. "Lecture: 4 Credits") */
.courseBlockDesc strong,
.catalogCourseDesc strong {
    font-weight: 700;
}

/* 2-column course list — activated by .two-column on the wrapping div
   (set directly in Details.System Catalog Course Descriptions.cshtml — no Sitefinity page config needed). */
.two-column #catalog-course-list.catalogCourseDesc--cols,
.two-column #apus-course-list.catalogCourseDesc--cols {
    column-count: 2 !important;
    column-gap: 1.5rem !important;
    column-fill: auto !important;
}

/* ── Images inside policy content — prevent block-stretch ───────────── */
.policy-content-main img,
.content-panel img {
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
}

.policy-content-main p img,
.content-panel p img {
    display: inline-block !important;
    max-width: 200px !important;
    width: auto !important;
    height: auto !important;
    margin: 4pt 0 2pt !important;
}

/* ── General print page-break helpers ───────────────────────────────── */

.school-section,
.program-section,
.home-section {
    page-break-inside: avoid;
    break-inside: avoid;
}

/* ── Programs listing pages (Associates, Bachelors, Masters, etc.) ───── */
/* Bootstrap is not loaded in notheme, so .d-flex / .flex-sm-row are inert.
   Restore the intended 2-column side-by-side layout and style for PDF.    */

/* Page title */
h1.content-main__title,
.content-panel h1 {
    font-size: 18pt !important; /* h1 role — see MASTER HEADING LADDER */
    font-weight: 700;
    color: #22314e !important;
    background: #e4ebf3;
    margin: 0 0 8pt !important;
    border-bottom: 2px solid #22314e;
    padding: 2pt 6pt;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Programs listing -- single column for sequential print order
   Flex side-by-side splits each column across pages (non-sequential):
   display:block stacks every degree-level group top-to-bottom. */
.content-panel .flex-sm-row,
.content-panel .d-flex {
    display: block !important;
}

.content-panel .flex-sm-row > div,
.content-panel .d-flex > div {
    display: block !important;
    width: 100% !important;
}

/* Program listing — 2-column layout via column-count.
   column-fill: auto = natural flow (fill left col first, spill to right).
   In PDF/print, page height provides the column height constraint. */
.content-panel .program-listing .flex-sm-row,
.content-panel .program-listing .d-flex {
    display: block !important;
    width: 100% !important;
    column-count: 2 !important;
    column-gap: 1.5rem !important;
    column-fill: auto !important;
    overflow: visible !important;
}

.content-panel .program-listing .flex-sm-row > div,
.content-panel .program-listing .d-flex > div {
    display: block !important;
    width: 100% !important;
}

.content-panel .program-listing li {
    font-size: 9pt !important;
    line-height: 1.45 !important;
    margin-bottom: 1pt;
}

.content-panel .program-listing li a,
.content-panel .program-listing li a:visited {
    color: #000000 !important;
    text-decoration: none !important;
    font-style: normal !important;
}

.content-panel .program-listing li a em,
.content-panel .program-listing li em {
    font-style: normal !important;
}

/* School section heading (h2.mt-4) */
.content-panel .flex-sm-row h2,
.content-panel .d-flex h2 {
    font-size: 12pt !important;
    font-weight: 700 !important;
    color: #22314e !important;
    margin: 8pt 0 3pt !important;
    padding-bottom: 2pt;
    border-bottom: 1px solid #c0cad8;
    break-after: avoid;
    page-break-after: avoid;
}

.content-panel .flex-sm-row h2:first-child,
.content-panel .d-flex h2:first-child {
    margin-top: 0 !important;
}

/* Program list */
.content-panel .flex-sm-row ul,
.content-panel .d-flex ul {
    list-style: disc !important;
    padding-left: 1.1rem !important;
    margin: 0 0 6pt !important;
    break-before: avoid;
    page-break-before: avoid;
}

/* Program list item — scoped to .flex-fill columns (school page programs) only */
.content-panel .flex-sm-row .flex-fill li,
.content-panel .d-flex .flex-fill li {
    font-size: 10pt !important;
    line-height: 1.45 !important;
    padding: 0 !important;
    margin-bottom: 1pt;
}

/* Program link — plain black text, no underline, no italics.
   Scoped to .flex-fill so other listing pages (e.g. certificate index) keep browser-default link styles. */
.content-panel .flex-sm-row .flex-fill li a,
.content-panel .flex-sm-row .flex-fill li a:visited,
.content-panel .d-flex .flex-fill li a,
.content-panel .d-flex .flex-fill li a:visited {
    color: #000000 !important;
    text-decoration: none !important;
    font-style: normal !important;
}

.content-panel .flex-sm-row .flex-fill li a em,
.content-panel .flex-sm-row .flex-fill li em,
.content-panel .d-flex .flex-fill li a em,
.content-panel .d-flex .flex-fill li em {
    font-style: normal !important;
}

/* Remove italics from <em> inside any content-panel list link (e.g. certificate index) */
.content-panel li a em,
.content-panel li em {
    font-style: normal !important;
}

/* ── Content accordion (Prior Catalogs year groups + System Policies state lists) ──
   Force <details> open, hide the ► marker, bold the summary heading.
   ─────────────────────────────────────────────────────────────────────────────── */

details.content-accordion > *:not(summary) {
    display: block !important;
}

/* Accordion container — visible bordered box.
   break-inside: auto here so large outer wrappers (e.g. "Details Specific to
   Physical Campus Locations:") can flow across pages without leaving an empty
   border box above the page break */
details.content-accordion {
    border: 1px solid #c8cfd9 !important;
    border-radius: 4px !important;
    background: #ffffff !important;
    margin-bottom: 5pt !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
}

/* Summary / toggle — bold heading treatment replacing the interactive chevron style */
details.content-accordion > summary.content-accordion__toggle {
    display: block !important;
    list-style: none !important;
    cursor: default;
    font-weight: 700 !important;
    font-size: 10pt !important; /* accordion title = h5 rung — see MASTER HEADING LADDER */
    color: #22314e !important;
    background: #edf2f7 !important;
    padding: 2pt 6pt !important;
    border-bottom: 1px solid #c8cfd9;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Fallback for summaries without the toggle class */
details.content-accordion > summary {
    list-style: none !important;
    cursor: default;
    font-weight: 700 !important;
    font-size: 10pt !important; /* accordion title = h5 rung — see MASTER HEADING LADDER */
    color: #22314e !important;
    background: #edf2f7 !important;
    padding: 2pt 6pt !important;
    border-bottom: 1px solid #c8cfd9;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

details.content-accordion > summary::-webkit-details-marker {
    display: none !important;
}

details.content-accordion > summary::marker {
    display: none !important;
    content: "" !important;
}

/* Accordion body text */
.content-accordion__content {
    padding: 4pt 8pt 6pt !important;
    font-size: 8.5pt !important;
}

/* Accordion heading (h2 inside summary) — override the generic .content-panel h2 16pt */
.content-accordion-set details.content-accordion > summary .content-accordion__heading,
details.content-accordion > summary .content-accordion__heading {
    font-size: 10pt !important; /* accordion title = h5 rung — see MASTER HEADING LADDER */
    font-weight: 700 !important;
    color: #22314e !important;
    margin: 0 !important;
    line-height: 1.3 !important;
    padding: 0 !important;
    /* the summary already carries the band — no second band/bar on the h2 */
    background: transparent !important;
    border-left: none !important;
}

/* Accordion content links — black, no underline, inline so pairs sit side-by-side */
.content-accordion__content a,
.content-accordion__content a:visited {
    display: inline-block !important;
    margin-right: 2rem !important;
    margin-bottom: 1pt !important;
    color: #000000 !important;
    text-decoration: none !important;
}

/* Accordion set — block layout (Acrobat-safe, overrides production flex) */
.content-accordion-set {
    display: block !important;
    margin: 6pt 0 !important;
}

/* ── Academic Calendar widget ───────────────────────────────────────── */
/* Targets the Rasmussen academic-calendar / app-ui widget.               */
/* Classes: .academic-calendar, .quarter, .quarter-title,                 */
/* .quarter-dates, .holidays, .holidays-title, .holidays-sub,             */
/* .holidays-list                                                          */

.academic-calendar {
    width: 100% !important;
}

/* Each quarter block — borderless, clean text */
.quarter {
    width: 100% !important;          /* override inline style="width:75%" */
    border: none !important;
    border-radius: 0;
    padding: 0 0 2pt 0;
    margin-bottom: 8pt;
    background: transparent !important;
    page-break-inside: avoid;
    break-inside: avoid;
}

/* Quarter heading: "Summer Quarter 2026" */
.quarter-title {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 13pt !important;
    font-weight: 700;
    color: #22314e !important;
    margin-bottom: 2pt;
}

/* Dates container */
.quarter-dates > p {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 10pt !important;
    margin-bottom: 0;
    margin-top: 0;
}

/* Term table inside each quarter — strip all borders */
.quarter-dates table {
    border: none !important;
    font-size: 11pt !important;
    margin: 0 !important;
    width: auto !important;
    border-collapse: collapse;
}

.quarter-dates td {
    border: none !important;
    padding: 1pt 0 !important;
    font-size: 11pt !important;
    vertical-align: top;
    background: transparent !important;
}

.quarter-dates td:first-child {
    padding-right: 2rem !important;
}

.academic-calendar .quarter-dates table p {
    margin-block-end: 0 !important;
    margin-block-start: 0 !important;
    margin: 0 !important;
    font-size: 11pt !important;
}

/* ── University Holidays section ──────────────────────────────────── */
.holidays {
    border-top: none !important;
    margin-top: 12pt;
    padding-top: 0;
}

.holidays-title {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 10pt !important;
    font-weight: 700;
    color: #22314e !important;
    letter-spacing: 0.04em;
    margin-bottom: 2pt;
}

.holidays-sub {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 8.5pt !important;
    color: #555555 !important;
    font-style: italic;
    margin-bottom: 4pt;
}

.holidays-list {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 9pt !important;
    color: #1a1a1a !important;
    line-height: 1.6;
}

/* ── HCN Program table (Hondros) — force desktop layout in notheme/PDF ─ */
/* hcn-catalog-program.css fires @media (max-width:768px) because Playwright */
/* opens pages with a ~0 px viewport, hiding the table and showing a JS-built */
/* mobile card view. These overrides restore the desktop table and suppress   */
/* the card view. Affects both Full-Time and Part-Time curriculum tracks.     */

/* 1. Force desktop table always visible */
table.programTable,
table#programTable {
    display: table !important;
    width: 100% !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    table-layout: auto !important;
    border-collapse: collapse !important;
    margin: 0 0 8pt 0 !important;
}

/* 2. Suppress JS-built mobile card view */
.mobile-view,
#mobileView {
    display: none !important;
}

/* 3. Remove horizontal-scroll wrapper (clips content in PDF) */
.table-responsive {
    overflow-x: visible !important;
    overflow: visible !important;
}

/* ── system-table (Rasmussen self-directed assessments etc.) ─────────── */
/* The table has style="table-layout:fixed" inline + <colgroup> with inline
   col widths (28%/28%/36%/8%) which squash the credits column to ~76px on
   screen and even thinner in print. Override col widths and set explicit
   percentage widths via the cell classes that are present on all rows. */
table.system-table {
    table-layout: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    word-break: break-word !important;
}

/* Clear <col> inline width hints — let cell class widths below take effect */
table.system-table colgroup col {
    width: auto !important;
}

/* Column width distribution: 15 / 20 / 55 / 10 = 100% */
table.system-table td.course-equiv,
table.system-table th.course-equiv    { width: 15% !important; }

table.system-table td.assessment-name,
table.system-table th.assessment-name { width: 20% !important; }

table.system-table td.assessment-desc,
table.system-table th.assessment-desc { width: 55% !important; }

table.system-table td.credits,
table.system-table th.credits {
    width: 10% !important;
    min-width: 40pt !important;
    text-align: center !important;
}

table.system-table th,
table.system-table td {
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
}

/* 4. Table cells — PDF-safe borders and font */
table.programTable th,
table.programTable td,
table#programTable th,
table#programTable td {
    border: 1px solid #c8cfd9 !important;
    padding: 3pt 5pt !important;
    font-size: 8.5pt !important;
    font-family: Arial, Helvetica, sans-serif !important;
    vertical-align: top;
    background: #ffffff !important;
}

/* 5. Column headers — covers both th and td-in-thead (e.g. glance-table uses td) */
table.programTable thead th,
table.programTable thead td,
table#programTable thead th,
table#programTable thead td {
    background: #f1f5f9 !important;
    font-weight: 700;
    font-size: 9pt !important;
    color: #1a1a1a !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* 6. Section / term divider rows (e.g. "TERM 1", "MODULE") */
table.programTable .section-row td,
table#programTable .section-row td {
    background: #e2e8f0 !important;
    font-weight: 700;
    font-size: 8pt !important;
    color: #1a1a1a !important;
    text-transform: uppercase;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* 7. Totals row */
table.programTable .totals-row td,
table#programTable .totals-row td {
    font-weight: 700;
    background: #f8fafc !important;
    border-top: 2px solid #a0aec0 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* 8. Numeric columns — centre-align (matches desktop CSS intent) */
table.programTable td:nth-child(n+3),
table#programTable td:nth-child(n+3) {
    text-align: center;
}

/* 9. Page-break safety */
table.programTable tr,
table#programTable tr {
    page-break-inside: avoid;
    break-inside: avoid;
}

/* ── Course Listing index page — A-Z multi-column layout ─────────────
   Applies to: course-descriptions/course-listing/?notheme=true
   ─────────────────────────────────────────────────────────────────── */

/* Hide course count badge */
span.coursesCount {
    display: none !important;
}

/* 3-column flow for the full A-Z sitemap */
.az_sitemap {
    column-count: 3;
    column-gap: 1.4rem;
    column-fill: balance;
    margin-top: 6pt;
}

/* Letter section heading — stays glued to its list, styled as a compact divider */
.az_sitemap h2.letternav-head {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 10pt !important;
    font-weight: 700;
    color: #22314e !important;
    margin: 6pt 0 2pt;
    padding-bottom: 2pt;
    border-bottom: 1.5px solid #22314e;
    break-after: avoid;
    page-break-after: avoid;
}

.az_sitemap h2.letternav-head:first-of-type {
    margin-top: 0;
}

/* Course group list — keep glued to its letter heading, no indent */
.az_sitemap ul.course-group {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 4pt !important;
    break-before: avoid;
    page-break-before: avoid;
    break-inside: avoid;
    page-break-inside: avoid;
}

/* Each course entry */
.az_sitemap ul.course-group li {
    font-size: 8.5pt !important;
    line-height: 1.4 !important;
    padding: 0.5pt 0 !important;
    break-inside: avoid;
    page-break-inside: avoid;
}

.az_sitemap ul.course-group li a {
    color: #000000 !important;
    text-decoration: none;
}

/* ── @media print block (for browser Ctrl+P fallback) ───────────────── */

@media print {
    html, body {
        margin: 0 !important;
        height: auto !important;
    }

    .hero--system,
    .hero--eu {
        page-break-before: avoid !important;
    }

    .school-section,
    .program-section {
        page-break-inside: avoid !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════════
   Policy Panels & Program Page Print Rules
   (Merged from system-catalog-pdf-two-col-test.css)
   ═══════════════════════════════════════════════════════════════════════ */


/* ── 1. Per-panel two-column layout ──────────────────────────────────────
   The base CSS fires  page-break-before: always  on every panel so each
   section gets its own PDF page.  In two-column mode we want two panels
   to share a row, so we soften that to auto and switch to inline-block.

   .content-panel is scoped to .policy-content-main to avoid hitting the
   top-level page wrapper on program/course-description pages.             */

.policy-content-main__panel,
.policy-content-main .content-panel {
    display: inline-block !important;
    width: 48% !important;
    vertical-align: top !important;
    box-sizing: border-box !important;
    margin: 0 0.5% 1.25rem !important;
    padding: 0.4rem 0.6rem !important;
    border: 1px solid #dde3ec !important;
    page-break-before: auto !important;
    break-before: auto !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
}


/* ── 2. First panel after a group header — must not double-break ───────
   The group block itself already triggers a new page; the first panel
   that follows must continue on that same page, not start another.        */

.policy-content-main__group+.policy-content-main__panel,
.policy-content-main__group+.content-panel {
    page-break-before: auto !important;
    break-before: auto !important;
}


/* ── 3. Group / sub-group / title blocks — always full width ───────────
   Major section dividers (About, Disclosures, Policies…) and their
   heading elements must span both column slots.                           */

.policy-content-main__group,
.policy-content-main__subgroup,
.policy-content-main__title,
.policy-content-main__section-heading,
h1.content-main__title {
    display: block !important;
    width: 100% !important;
}

/* Non-first groups still start a fresh page (same as base stylesheet) */
.policy-content-main__group~.policy-content-main__group {
    page-break-before: always !important;
    break-before: page !important;
}


/* ── 4. Tables inside scoped panels — compact for narrower column width  */

.policy-content-main__panel table,
.policy-content-main .content-panel table {
    width: 100% !important;
    font-size: 7pt !important;
}

.policy-content-main__panel td,
.policy-content-main__panel th,
.policy-content-main .content-panel td,
.policy-content-main .content-panel th {
    padding: 2pt 3pt !important;
    font-size: 7pt !important;
}


/* ── 5. Body text inside scoped panels — slightly smaller for columns ── */

.policy-content-main__panel p,
.policy-content-main__panel li,
.policy-content-main .content-panel p,
.policy-content-main .content-panel li {
    font-size: 8pt !important;
    line-height: 1.45 !important;
}


/* ── 6. Rich-text headings inside scoped panels ─────────────────────────
   In-body CMS headings step down from the 14pt policy title — see the
   MASTER HEADING LADDER: h2 12.5 > h3 11.5 > h4 10.5 > h5 10 > h6 9.5
   (panel body text is 9pt). Strictly monotonic — no two levels share
   a size, and none reaches the policy-title 14pt. */

.policy-content-main__panel h2,
.policy-content-main .content-panel h2 {
    font-size: 11.5pt !important;
}

.policy-content-main__panel h3,
.policy-content-main .content-panel h3 {
    font-size: 10.5pt !important;
}

.policy-content-main__panel h4,
.policy-content-main .content-panel h4,
.policy-content-main__panel p.sub-heading,
.policy-content-main .content-panel p.sub-heading {
    font-size: 9.5pt !important;
}

.policy-content-main__panel h5,
.policy-content-main .content-panel h5 {
    font-size: 9pt !important;
}

.policy-content-main__panel h6,
.policy-content-main .content-panel h6 {
    font-size: 8.5pt !important;
}

/* Policy titles keep their ladder size inside panels. This guard must stay
   AFTER the rich-text clamps above — its (0,3,1) specificity out-ranks the
   (0,2,1) h3 clamp so the banded 14pt title wins the cascade. */
.policy-content-main__panel h3.policy-content-main__section-heading,
.policy-content-main .content-panel h3.policy-content-main__section-heading {
    font-size: 13pt !important;
}


/* ── 7. Accordion items inside scoped panels — tighten spacing ───────  */

.policy-content-main__panel details.content-accordion,
.policy-content-main .content-panel details.content-accordion {
    margin-bottom: 4pt !important;
}

.policy-content-main__panel details.content-accordion>summary,
.policy-content-main .content-panel details.content-accordion>summary {
    font-size: 9pt !important; /* in-panel h5 rung (panel h5 is 9pt) */
    padding: 2pt 4pt !important;
}

/* Inner accordion heading follows the in-panel h5 size; padding stays 0
   (the summary already carries the band padding). */
.policy-content-main__panel details.content-accordion>summary .content-accordion__heading,
.policy-content-main .content-panel details.content-accordion>summary .content-accordion__heading {
    font-size: 9pt !important;
}


/* ── 8. Images inside scoped panels — constrain to column width ─────── */

.policy-content-main:not(.policy-content-main--tabbed) .policy-content-main__panel img,
.policy-content-main:not(.policy-content-main--tabbed) .content-panel img {
    max-width: 100% !important;
    height: auto !important;
}


/* ── 9. Program meta items — reduce UA paragraph spacing ───────────────
   UA default gives each <p> 12px top + 12px bottom margin, making the
   “Associate of Applied Science Degree / Fully online / …” block taller
   than needed and wasting print-page vertical space.                      */

.content-main__meta p,
.content-main__meta-item {
    margin-top: 2pt !important;
    margin-bottom: 2pt !important;
}


/* ── 10. Program pages: print tab content rules ─────────────────────────── */

/* Tab section headings — printed instead of the suppressed tab nav buttons */
.prog-print-tab-heading {
    font-size: 13pt !important; /* program tab section — see MASTER HEADING LADDER */
    font-weight: 700 !important;
    background: #edf2f7 !important;
    /* left bar, not bottom border — bottom border is the page-title
       signature (see the depth-tier section); bars mark in-page headings */
    border-left: 3px solid #22314e !important;
    border-bottom: none !important;
    margin-top: 8pt !important;
    margin-bottom: 4pt !important;
    padding: 1.5pt 5pt !important;
    break-after: avoid !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Zero out inner prog-body margins — prevents blank gap at top of column */
.prog-print-cols-wrapper .prog-body {
    margin: 0 !important;
    padding: 0 !important;
}

/* Collapse flex-row containers so content reads sequentially */
.prog-print-cols-wrapper .d-flex,
.prog-print-cols-wrapper .flex-row,
.prog-print-cols-wrapper .flex-sm-row,
.prog-print-cols-wrapper .flex-md-row {
    display: block !important;
}

.prog-print-cols-wrapper .flex-fill,
.prog-print-cols-wrapper .flex-grow-1 {
    width: 100% !important;
    flex: none !important;
}

/* Tables — never split a row mid-way */
.prog-print-cols-wrapper .glance-table,
.prog-print-cols-wrapper table {
    width: 100% !important;
    font-size: 7pt !important;
}

.prog-print-cols-wrapper .programTable {
    width: 100% !important;
    font-size: 6.5pt !important;
}

.prog-print-cols-wrapper .programTable td,
.prog-print-cols-wrapper .programTable th {
    padding: 2pt 3pt !important;
    font-size: 6.5pt !important;
    white-space: normal !important;
    word-break: break-word !important;
}

/* Header cells must never wrap mid-word */
.prog-print-cols-wrapper .programTable thead th,
.prog-print-cols-wrapper .programTable thead td,
.prog-print-cols-wrapper thead th,
.prog-print-cols-wrapper thead td {
    white-space: nowrap !important;
    word-break: normal !important;
    font-size: 9pt !important;
}

.prog-print-cols-wrapper tr {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
}

.prog-print-cols-wrapper td,
.prog-print-cols-wrapper th {
    padding: 2pt 3pt !important;
    font-size: 7pt !important;
}

/* Restore flex on notifications — icon+body layout must stay flex */
.prog-notification {
    display: flex !important;
    gap: 0.75rem !important;
    align-items: flex-start !important;
    border-radius: 4px !important;
    padding: 0.6rem 0.9rem !important;
    margin-top: 0.75rem !important;
    margin-bottom: 0.75rem !important;
    font-size: 8pt !important;
    line-height: 1.5 !important;
}

.prog-notification--info {
    background: #eff6ff !important;
    border: 1px solid #93c5fd !important;
    border-left: 4px solid #3b82f6 !important;
    color: #1e3a5f !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.prog-notification--warning {
    background: #fffbeb !important;
    border: 1px solid #f59e0b !important;
    border-left: 4px solid #f59e0b !important;
    color: #78350f !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.prog-notification__icon {
    flex-shrink: 0 !important;
    font-size: 1rem !important;
}

.prog-notification__body {
    flex: 1 !important;
    min-width: 0 !important;
}

.prog-notification__close {
    display: none !important;
}

/* Keep headings attached to the content that follows them */
.prog-print-cols-wrapper h2,
.prog-print-cols-wrapper h3 {
    break-after: avoid !important;
    page-break-after: avoid !important;
}

.prog-print-cols-wrapper h2,
.prog-body h2 {
    font-size: 11.5pt !important;
    margin-top: 6pt !important;
    margin-bottom: 3pt !important;
    background: #edf2f7 !important;
    border-left: 3px solid #22314e !important;
    padding: 1pt 4pt !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.prog-print-cols-wrapper h3,
.prog-body h3 {
    font-size: 10pt !important;
    background: #f1f5f9 !important;
    border-left: 2px solid #22314e !important;
    padding: 1pt 4pt !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* h4–h6 must step below h3 — without these the base .content-panel sizes
   leak in and h4 (12pt) renders LARGER than h3 (11pt). See MASTER LADDER. */
.prog-print-cols-wrapper h4,
.prog-body h4,
.prog-print-cols-wrapper p.sub-heading,
.prog-body p.sub-heading {
    font-size: 9.5pt !important;
    margin: 4pt 0 2pt !important;
    background: #f6f8fb !important;
    border-left: 2px solid #8194b8 !important;
    padding: 1pt 4pt !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.prog-print-cols-wrapper h5,
.prog-body h5 {
    font-size: 9pt !important;
    margin: 3pt 0 1pt !important;
}

.prog-print-cols-wrapper h6,
.prog-body h6 {
    font-size: 8.5pt !important;
    margin: 3pt 0 1pt !important;
}

.prog-print-cols-wrapper p,
.prog-print-cols-wrapper li,
.prog-print-cols-wrapper .prog-paragraph,
.prog-body p,
.prog-body li,
.prog-paragraph {
    font-size: 9pt !important;
    line-height: 1.5 !important;
}


/* ── 11. @media print mirror — for browser Ctrl+P fallback ────────────  */

@media print {
    .prog-print-cols-wrapper {
        break-after: avoid !important;
        page-break-after: avoid !important;
    }

    .prog-print-cols-wrapper tr {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    /* Prevent blank last page */
    html, body {
        padding-bottom: 0 !important;
    }
    .content-panel {
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
    }
}

/* ─── 12. Home page (--tabbed): keep panels full-width, single-column ──────
   The home page wraps everything in .policy-content-main--tabbed.
   Override the inline-block 48 % rules from section 1 so home-page
   panels stay full-width (single-column) in notheme/print mode.             */

.policy-content-main--tabbed .policy-content-main__panel,
.policy-content-main--tabbed .content-panel {
    display: block !important;
    width: 100% !important;
    margin: 0 0 1.25rem !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
    border: none !important;
    padding: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   13. Depth-tiered page-title demotion (notheme-depth-N on <body>)
   The catalog PDF merges many standalone pages. The home page flattens its
   policies into one document (h2 groups > h3 policies), but every unit page
   carries its own h1 — so without these tiers a leaf policy like "Refund
   Policies" renders the same L1 band as a major section. _SystemCatalog
   .cshtml stamps notheme-depth-N (URL path segments, capped at 4); each
   tier demotes the page h1 to its rung on the MASTER HEADING LADDER and
   clamps inner headings to stay below it.
   Depth 0/1 (home, unit roots like /hondros/): h1 keeps the L1 band.
   Must stay LAST in the file — the tiers rely on cascade order.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Depth 2 — section pages (e.g. /hondros/about/): h1 reads as the 16pt
   L2 group band. Inner headings already fit (generic h2 15pt < 16pt). */
.notheme-depth-2 h1,
.notheme-depth-2 h1.content-main__title,
.notheme-depth-2 .content-panel h1,
.notheme-depth-2 .hero__title {
    font-size: 16pt !important;
    background: #edf2f7 !important;
    border-bottom: 2px solid #22314e !important;
    border-left: none !important;
    padding: 2pt 6pt !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* ── Depth 3 — sub-section / program pages: h1 reads as a 15pt banded
   page title; inner h2-h4 clamp beneath it.
   Page titles keep the band + BOTTOM BORDER signature at every depth —
   left bars are reserved for in-page headings, so a demoted title never
   shares its treatment with the sections inside it. */
.notheme-depth-3 h1,
.notheme-depth-3 h1.content-main__title,
.notheme-depth-3 .content-panel h1,
.notheme-depth-3 .hero__title,
.notheme-depth-3 #page-title h2 {
    font-size: 15pt !important;
    background: #edf2f7 !important;
    border-left: none !important;
    border-bottom: 2px solid #22314e !important;
    padding: 1.5pt 5pt !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.notheme-depth-3 .policy-content-main__panel h2,
.notheme-depth-3 .content-panel h2 {
    font-size: 13pt !important;
}

.notheme-depth-3 .policy-content-main__panel h3,
.notheme-depth-3 .content-panel h3 {
    font-size: 12pt !important;
}

.notheme-depth-3 .policy-content-main__panel h4,
.notheme-depth-3 .content-panel h4,
.notheme-depth-3 .policy-content-main__panel p.sub-heading,
.notheme-depth-3 .content-panel p.sub-heading {
    font-size: 11pt !important;
}

/* ── Depth 4+ — leaf policy pages: h1 reads as a 14pt banded page title
   (band + bottom border — see the depth-3 note); inner h2-h4 clamp
   beneath it (base h5 10pt / h6 9.5pt already fit under the 10.5pt h4). */
.notheme-depth-4 h1,
.notheme-depth-4 h1.content-main__title,
.notheme-depth-4 .content-panel h1,
.notheme-depth-4 .hero__title,
.notheme-depth-4 #page-title h2 {
    font-size: 14pt !important;
    background: #edf2f7 !important;
    border-left: none !important;
    border-bottom: 2px solid #22314e !important;
    padding: 1.5pt 5pt !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.notheme-depth-4 .policy-content-main__panel h2,
.notheme-depth-4 .content-panel h2 {
    font-size: 12.5pt !important;
}

.notheme-depth-4 .policy-content-main__panel h3,
.notheme-depth-4 .content-panel h3 {
    font-size: 11.5pt !important;
}

.notheme-depth-4 .policy-content-main__panel h4,
.notheme-depth-4 .content-panel h4,
.notheme-depth-4 .policy-content-main__panel p.sub-heading,
.notheme-depth-4 .content-panel p.sub-heading {
    font-size: 10.5pt !important;
}
