/* ========================================================= ISP HANDBOOK - CORRECTED PRINT CSS Uses real page margins (2.54 cm all sides) Removes negative-margin / negative-offset layout tricks Keeps decorative elements from breaking content flow ========================================================= */ /* ------------------------------ PAGE SETUP ------------------------------ */ @page { size: A4; margin: 2.54cm; } /* Optional cover page: use only if your renderer supports named pages */ @page cover { size: A4; margin: 0; } /* ------------------------------ RESET ------------------------------ */ *, *::before, *::after { box-sizing: border-box; } html, body { margin: 0; padding: 0; font-family: "Century Gothic", sans-serif; font-size: 10pt; line-height: 1.45; color: #000000; text-align: justify; -webkit-print-color-adjust: exact; print-color-adjust: exact; background: #ffffff; /* Sharpness — crisp text rendering */ text-rendering: geometricPrecision; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-feature-settings: "kern" 1, "liga" 1; font-optical-sizing: auto; } /* ------------------------------ EXTERNAL PLAYWRIGHT HEADER/FOOTER Keep hidden in body flow if using templates ------------------------------ */ .page-header, .page-footer { display: none !important; } .page-header img { display: block; width: 8.45in; height: 1.03in; } /* ------------------------------ SAFE CONTENT WRAPPER ------------------------------ */ .page-content { display: block; width: 100%; max-width: 100%; margin: 0; padding: 0; position: relative; z-index: 1; overflow: visible; word-wrap: break-word; overflow-wrap: break-word; } /* Prevent accidental blank page after cover */ .cover-page+.page-content, .cover-page+.toc-page, .cover-page+.section-block { page-break-before: auto; break-before: auto; } /* Prevent accidental blank page from a leading .page-break */ .page-content> :first-child.page-break, .page-content> :first-child.section-block.page-break { page-break-before: auto; break-before: auto; } /* ------------------------------ DECORATIVE RIGHT-SIDE LABEL Hidden in the base HTML. Rendered as a PDF overlay by pdf_renderer.py onto content pages only. Kept here so the loads for src extraction. Dimensions: 2.05cm × 21.76cm (vertical strip, right edge, matches Word image4.png) ------------------------------ */ .hb-right-label { position: absolute; top: -9999px; left: -9999px; width: 1px; height: 1px; overflow: hidden; pointer-events: none; } .hb-right-label img { display: block; } /* ------------------------------ TYPOGRAPHY — matching Word handbook exactly H1: 12pt, #0263A3, uppercase, bold, no border H2-H6: color varies by context, bold, no border ------------------------------ */ .hb-heading-1, .h2, h1 { font-size: 12pt; font-weight: bold; color: #0263A3; margin: 4pt 0 10pt; padding-bottom: 0; border-bottom: none; line-height: 1.25; text-transform: uppercase; text-align: left; text-decoration: none; page-break-after: avoid; break-after: avoid; page-break-inside: avoid; break-inside: avoid; } .hb-heading-2, .h3, h2, h3, h4, h5, h6 { font-size: 11pt; font-weight: bold; color: #199970; margin: 12pt 0 6pt; padding-bottom: 0; border-bottom: none; line-height: 1.25; text-align: left; text-decoration: none; page-break-after: avoid; break-after: avoid; page-break-inside: avoid; break-inside: avoid; } /* Italic variant for Funding & Program-Specific Requirements heading */ .hb-heading-italic { font-style: italic; } .hb-paragraph, .p, p { margin: 6pt 0 2pt; font-size: 10pt; line-height: 1.5; text-align: justify; orphans: 3; widows: 3; } strong, b { font-weight: 700; } em, i { font-style: italic; } a, a:visited { color: #0263A3; text-decoration: none; border-bottom: 0.5pt solid #0263A3; word-break: break-word; } /* ------------------------------ LISTS ------------------------------ */ .hb-bullet-list, .ul, ul.hb-bullet-list { list-style: none !important; margin: 4pt 0 10pt 16pt; padding: 0; font-size: 9.5pt; } .hb-bullet-list li, .ul li, ul.hb-bullet-list li { position: relative; margin: 0 0 5pt; padding-left: 16pt; line-height: 1.45; page-break-inside: avoid; break-inside: avoid; } .hb-bullet-list li::before, .ul li::before, ul.hb-bullet-list li::before { content: "\27A4"; position: absolute; left: 0; top: 1.5pt; color: #0263A3; font-size: 9pt; font-weight: 700; line-height: 1.45; } /* ordered lists — counter-based markers for precise left-alignment with bullet lists */ .hb-numbered-list, .ol, ol.hb-numbered-list { list-style: none !important; counter-reset: hb-num; margin: 4pt 0 10pt 16pt; padding: 0; font-size: 9.5pt; } .hb-numbered-list li, .ol li, ol.hb-numbered-list li { position: relative; counter-increment: hb-num; margin: 0 0 5pt; padding-left: 16pt; line-height: 1.45; page-break-inside: avoid; break-inside: avoid; } .hb-numbered-list li::before, .ol li::before, ol.hb-numbered-list li::before { content: counter(hb-num) "."; position: absolute; left: 0; top: 0; color: #0263A3; font-weight: 700; font-size: 9.5pt; line-height: 1.45; } /* Sub-bullets — checkmarks, indented under parent bullet */ .hb-sub-bullets { margin-left: 32pt !important; } .hb-sub-bullets li::before { content: "\2713" !important; color: #199970; font-size: 9pt; font-weight: 700; } /* ------------------------------ FUNDING REQUIREMENTS SECTION Structured layout matching the React FundingRequirementsBlock. ------------------------------ */ .funding-req { margin: 10pt 0; page-break-inside: avoid; break-inside: avoid; } .funding-intro-card { margin: 8pt 0; padding: 8pt 12pt; border: 0.75pt solid #E5D9B6; border-radius: 4pt; background: #FFFCF3; } .funding-intro-item { margin-bottom: 4pt; } .funding-intro-label { display: block; font-size: 10pt; font-weight: 700; color: #0263A3; margin-bottom: 1pt; } .funding-intro-desc { display: block; font-size: 9.5pt; line-height: 1.5; color: #1f1f1f; } .funding-sources-card { margin: 8pt 0; padding: 8pt 12pt; border: 0.75pt solid #D4D4D4; border-radius: 4pt; background: #F9FAFB; } .funding-sources-header { font-size: 10.5pt; font-weight: 700; color: #0263A3; margin-bottom: 6pt; } .funding-source-item { display: flex; align-items: flex-start; gap: 6pt; margin-bottom: 5pt; } .funding-source-dot { display: inline-block; width: 5pt; height: 5pt; min-width: 5pt; border-radius: 50%; background: #0263A3; margin-top: 4pt; } .funding-source-title { font-size: 9.5pt; font-weight: 700; color: #1f1f1f; } .funding-source-desc { display: block; font-size: 9pt; line-height: 1.45; color: #555; margin-top: 1pt; } .funding-uni-section { margin-top: 8pt; } .funding-uni-header { font-size: 10pt; font-weight: 700; color: #0263A3; margin-bottom: 4pt; } /* ------------------------------ NOTES / EMPHASIS Guideline requires full bold text; NOTE and ONLY IF in red. ------------------------------ */ .hb-note, .note { margin: 10pt 0 12pt; padding: 8pt 10pt 8pt 14pt; border-left: 3.5pt solid #C00000; background: #FFF8F8; border-radius: 0 2pt 2pt 0; font-size: 10pt; line-height: 1.45; font-weight: 700; page-break-inside: avoid; break-inside: avoid; } .hb-note-keyword, .note-keyword, .note .keyword, .only-if { color: #C00000; font-weight: 700; } /* ------------------------------ BOLD EMPHASIS FOR KEY INFORMATION Payment amounts, REGULAR, PRIME, critical terms ------------------------------ */ .hb-bold-keyword { font-weight: 700; } .hb-red-keyword { font-weight: 700; color: #C00000; } /* ------------------------------ SCHOOL INFO - Green color for school information ------------------------------ */ .hb-school-info { color: #199970; font-size: 9.5px; } /* ------------------------------ HELPERS ------------------------------ */ .page-break { page-break-before: always; break-before: page; } .avoid-break { page-break-inside: avoid; break-inside: avoid; } .keep-with-next { page-break-after: avoid; break-after: avoid; } .clearfix::after { content: ""; display: block; clear: both; } .debug-block { border: 2px dashed #cc0000; padding: 12px; background: #fffbe6; page-break-inside: avoid; break-inside: avoid; } /* ------------------------------ COVER PAGE Prefer named page. If unsupported by renderer, cover will still render safely. ------------------------------ */ .cover-page { page: cover; page-break-after: always; break-after: page; margin: 0; padding: 0; position: relative; overflow: hidden; } .cover-img { display: block; width: 100%; height: auto; } /* ------------------------------ FULL-PAGE IMAGE PAGES Only use when intentionally full-page. ------------------------------ */ .fullpage-img-wrap { page: cover; page-break-before: always; break-before: page; page-break-after: always; break-after: page; margin: 0; padding: 0; position: relative; overflow: hidden; } .fullpage-img { display: block; width: 100%; height: auto; } img { max-width: 100%; height: auto; } /* ------------------------------ TABLES - GLOBAL Clean styling matching Word handbook: white cells, bold headers, thin black borders, no colored fills. ------------------------------ */ table { width: 100%; border-collapse: collapse; table-layout: fixed; max-width: 100%; overflow: hidden; page-break-inside: auto; break-inside: auto; } thead { display: table-header-group; } tfoot { display: table-row-group; } tr { page-break-inside: avoid; break-inside: avoid; } .hb-table, .tbl { width: 100%; border-collapse: collapse; table-layout: fixed; max-width: 100%; margin: 10pt 0 14pt; font-size: 9.5pt; line-height: 1.35; border: 0.75pt solid #000000; } .hb-table th, .hb-table td, .tbl th, .tbl td { border: 0.75pt solid #000000; padding: 6pt 8pt; vertical-align: top; word-wrap: break-word; overflow-wrap: break-word; font-size: 9.5pt; line-height: 1.35; background: #ffffff; color: #000000; text-align: left; } /* comparison table */ .hb-table-comparison, .tbl-comparison { font-size: 9pt; } .hb-table-comparison th, .tbl-comparison th { text-align: left; font-size: 9pt; } /* Section-divider row: teal background matching Word doc #31849B */ .hb-table th.is-regular-col, .hb-table td.is-regular-col, .tbl th.is-regular-col, .tbl td.is-regular-col { color: #ffffff; font-weight: 700; background: #31849B; } .hb-table td.is-regular-col, .tbl td.is-regular-col { color: #31849B; background: transparent; } .hb-table th.is-prime-col, .hb-table td.is-prime-col, .tbl th.is-prime-col, .tbl td.is-prime-col { color: #ffffff; font-weight: 700; background: #1F497D; } .hb-table td.is-prime-col, .tbl td.is-prime-col { color: #1F497D; background: transparent; } /* ------------------------------ PROGRAM TABLES Matching Word handbook: bold green (#199970) header text, white cells, thin black borders, no colored fills. ------------------------------ */ .hb-programs, table.programs { width: 100%; border-collapse: collapse; table-layout: fixed; max-width: 100%; margin: 10pt 0 14pt; border: 0.75pt solid #000000; font-family: "Century Gothic", sans-serif; } .hb-programs th, .hb-programs td, table.programs th, table.programs td { border: 0.75pt solid #000000; padding: 5pt 6pt; vertical-align: top; word-wrap: break-word; overflow-wrap: break-word; font-size: 8.75pt; line-height: 1.3; background: #ffffff; color: #000000; } .hb-programs th, table.programs th { font-weight: 700; background: #ffffff; color: #199970; text-transform: uppercase; text-align: left; letter-spacing: 0.3px; font-size: 8.5pt; padding: 6pt 6pt; } .hb-programs td, table.programs td { text-align: left; } .hb-programs th:nth-child(1), .hb-programs td:nth-child(1), table.programs th:nth-child(1), table.programs td:nth-child(1) { width: 22%; } .hb-programs th:nth-child(2), .hb-programs td:nth-child(2), table.programs th:nth-child(2), table.programs td:nth-child(2) { width: 14%; } .hb-programs th:nth-child(3), .hb-programs td:nth-child(3), table.programs th:nth-child(3), table.programs td:nth-child(3) { width: 16%; } .hb-programs th:nth-child(4), .hb-programs td:nth-child(4), table.programs th:nth-child(4), table.programs td:nth-child(4) { width: 30%; } .hb-programs th:nth-child(5), .hb-programs td:nth-child(5), table.programs th:nth-child(5), table.programs td:nth-child(5) { width: 18%; } .hb-programs td a, table.programs td a, .hb-program-name { color: #0263A3; text-decoration: none !important; border-bottom: none !important; font-weight: 400; } /* career list inside programs table */ .hb-career-list, .career-list { margin: 0; padding-left: 12pt; list-style-type: disc; } .hb-career-list li, .career-list li { margin: 0 0 2pt; padding-left: 0; line-height: 1.2; font-size: 8.75pt; } .hb-career-list li::before, .career-list li::before { content: none; } /* ------------------------------ TABLE OF CONTENTS Stable within content width ------------------------------ */ .toc-page { display: block; width: 100%; margin: 0; padding: 0; page-break-after: auto; break-after: auto; } .toc { width: 100%; margin: 0; padding: 0; } .toc-heading { display: block; width: 100%; font-size: 12pt; font-weight: bold; text-transform: uppercase; margin: 0 0 14pt; padding-bottom: 0; border-bottom: none; color: #0263A3; line-height: 1.2; } .toc-table { width: 100%; border-collapse: collapse; table-layout: fixed; margin: 0; border: none; } .toc-table td { border: none; vertical-align: bottom; padding: 3.5pt 0; line-height: 1.3; font-size: 10pt; color: #222222; background: transparent; text-align: left; } .toc-title { padding-right: 6pt; } .toc-dots { border-bottom: 1pt dotted #AABBCC; height: 0.9em; padding: 0; } .toc-pagenum { width: 34pt; text-align: right; font-weight: 700; color: #0263A3; white-space: nowrap; padding-left: 6pt; } .toc-row--major .toc-title, .toc-row--bold .toc-title { font-weight: 700; } .toc-row--sub .toc-title { font-weight: 400; } .toc-row--upper .toc-title { text-transform: uppercase; letter-spacing: 0.1px; } .toc-row--indent-1 .toc-title { padding-left: 12pt; } .toc-row--indent-2 .toc-title, .toc-row--deep .toc-title { padding-left: 24pt; } .toc-table a, .toc-table a:visited { color: #222222; text-decoration: none; border-bottom: none; } /* ------------------------------ SECTION BLOCKS ------------------------------ */ .section-block { display: block; width: 100%; margin: 0 0 12pt; padding: 0; border: none; } .section-block> :first-child { margin-top: 0; } .summary-section { display: block; } /* Tier group divider heading (Tier One, Tier Two, etc.) */ .tier-group-heading { page-break-before: always; break-before: page; } .tier-group-heading .hb-heading-1, .tier-group-heading .h1 { font-size: 12pt; font-weight: bold; color: #199970; text-align: center; border-bottom: none; border-top: none; padding: 10pt 0; margin: 20pt 0 12pt; } /* ------------------------------ ENROLMENT STEPS Dedicated page block ------------------------------ */ .hb-enrollment-steps, .sec-steps { page-break-before: always; break-before: page; page-break-after: always; break-after: page; } .hb-step { margin: 0 0 14pt; padding: 0; border-left: none; background: transparent; page-break-inside: avoid; break-inside: avoid; } .hb-step-title { font-size: 10.5pt; font-weight: 700; color: #199970; margin: 0 0 5pt; line-height: 1.25; page-break-after: avoid; break-after: avoid; } .hb-step-qr-wrap { margin: 4pt 0 6pt; text-align: center; } .hb-step-link-line { margin: 2pt 0 6pt; text-align: left; font-size: 10pt; } .hb-step-link-line a { color: #0263A3; text-decoration: underline; border-bottom: none; font-weight: 600; } .hb-step-qr { display: inline-block; width: 72pt; height: 72pt; margin: 4pt 0 6pt; } .hb-telegram-link { margin: 2pt 0 6pt; text-align: left; } .hb-telegram-link a { color: #0263A3; text-decoration: underline; font-size: 9pt; } /* Step 7 often lands at a page top; force safe placement below stamped header area. */ .hb-step.hb-step-7 { page-break-before: always; break-before: page; padding-top: 14pt; } .hb-plain-url { font-weight: 400; color: #0263A3; text-decoration: underline; } /* legacy step support */ .sec-steps .h3 { margin: 0 0 4pt; font-size: 10pt; color: #199970; } .sec-steps .p { margin: 0 0 6pt; } .sec-steps .ul { margin: 0 0 6pt 16pt; } /* ------------------------------ UNIVERSITY / SCHOOL PAGE ------------------------------ */ .uni, .hb-school-profile { page-break-before: always; break-before: page; padding: 0; } .hb-uni-name, .uni-name { font-size: 12pt; font-weight: 700; margin: 0 0 3pt; padding-bottom: 0; border-bottom: none; color: #0263A3; line-height: 1.2; text-transform: none; text-decoration: none; } .hb-uni-name a, .hb-uni-name-link, .uni-name a.uni-name-link { color: #0263A3; text-decoration: none; border-bottom: none; font-weight: 700; } /* School info directly below school name in green */ .hb-summary-title, .summary-title { font-size: 10pt; font-weight: 700; text-transform: uppercase; margin: 6pt 0 4pt; color: #199970; letter-spacing: 0.2px; } .hb-summary-ul, .summary-ul { list-style: none; margin: 0 0 8pt; padding: 0; } .hb-summary-ul li, .summary-ul li { margin: 0 0 3pt; padding: 0; font-size: 10pt; line-height: 1.3; color: #199970; font-weight: 700; } .hb-summary-ul li::before, .summary-ul li::before { content: none; } .hb-lbl, .lbl { font-weight: 700; color: #199970; } .hb-uni-website, .uni-website { margin: 4pt 0 8pt; font-size: 10pt; color: #199970; } /* top school layout */ .hb-school-top-table, .school-top-table { width: 100%; border-collapse: collapse; table-layout: fixed; margin: 0 0 6pt; border: none; } .hb-school-top-table td, .school-top-table td { border: none; padding: 0; vertical-align: top; } .hb-school-top-summary, .school-top-summary { width: 52%; padding-right: 10pt !important; } .hb-school-top-campus, .school-top-campus { width: 48%; text-align: right; } .hb-campus-img, .campus-top-img { display: block; width: 100%; max-height: 180pt; height: 180pt; border: 0.75pt solid #CBD5E1; object-fit: cover; box-shadow: 0 1pt 4pt rgba(0, 0, 0, 0.10); } .hb-campus-caption, .campus-top-cap { display: none; } .hb-campus-placeholder, .campus-placeholder-cell { width: 100%; min-height: 120pt; border: 1pt dashed #CBD5E1; color: #94A3B8; font-size: 10pt; padding: 10pt; background: #F8FAFC; } /* ------------------------------ BENEFITS SECTION Guideline colors retained ------------------------------ */ .hb-benefits-section, .benefits-section { clear: both; margin: 8pt 0 8pt; page-break-inside: avoid; break-inside: avoid; } .hb-benefits-heading { margin: 0 0 4pt; line-height: 1.3; } .hb-benefits-bar, .benefits-bar { display: inline-block; background: linear-gradient(135deg, #199970 0%, #00C853 100%); color: #ffffff; font-weight: 700; padding: 4pt 12pt; font-size: 10pt; line-height: 1.35; letter-spacing: 0.3px; } .hb-benefits-ul, .benefits-ul { list-style: none; margin: 0; padding: 0; } .hb-benefits-ul li, .hb-benefit-item, .benefit-li { margin: 3pt 0; padding: 0; font-size: 9.75pt; line-height: 1.35; background: none; border: none; } .hb-benefits-ul li::before, .hb-benefit-item::before, .benefit-li::before { content: "\27A4"; display: inline-block; margin-right: 6pt; color: #199970; font-weight: 700; } .hb-benefit-text, .benefit-text { display: inline-block; background: #E0F7FA; padding: 2pt 6pt; border-left: 2pt solid #00BCD4; } .benefit-bullet { display: none; } /* ------------------------------ UNIVERSITY SUMMARY LIST Black, bold, numbered ------------------------------ */ .hb-university-list { margin: 4pt 0 12pt 18pt; padding: 0; list-style: decimal; font-size: 10pt; color: #000000; } .hb-university-list li { margin: 0 0 5pt; padding-left: 0; font-weight: 700; line-height: 1.45; color: #0263A3; } .hb-university-list li::before { content: none; } /* ------------------------------ QUALIFICATION / MUTED TEXT ------------------------------ */ .hb-qualify, .qualify { margin: 10pt 0 8pt; font-weight: 700; font-size: 10pt; font-style: normal; color: #000000; width: 100%; padding: 8pt 10pt; background: #F4F7FA; border-left: 3pt solid #0263A3; } .hb-muted, .muted { color: #666666; font-size: 10pt; } /* ------------------------------ SECTION-SPECIFIC OVERRIDES ------------------------------ */ .sec-overview .hb-heading-1, .sec-overview .h2 { margin-top: 0; } .sec-overview .hb-paragraph, .sec-overview .p { text-align: justify; line-height: 1.4; } .sec-qualification .hb-heading-1, .sec-qualification .h2 { color: #C00000; } .sec-how .hb-heading-2 { color: #C00000; } .sec-qualification .hb-heading-2, .sec-qualification .h3 { margin-top: 10pt; } .sec-qualification .hb-table, .sec-qualification .tbl { margin: 6pt 0 10pt; } .sec-policy .hb-heading-2, .sec-policy .h3 { margin-top: 10pt; padding-bottom: 0; } .sec-policy .hb-note, .sec-policy .note { margin-top: 8pt; } .sec-policy .hb-table, .sec-policy .tbl { margin: 6pt 0 10pt; } .sec-refund .hb-table, .sec-refund .tbl { margin: 6pt 0 10pt; } .sec-contributions .hb-paragraph, .sec-contributions .p, .sec-contributions .hb-bullet-list li, .sec-contributions .ul li { font-weight: 700; color: #000000; } .sec-contributions .hb-heading-1, .sec-contributions .hb-heading-2, .sec-contributions .h2, .sec-contributions .h3 { color: #199970; } .sec-contributions .hb-table, .sec-contributions .tbl { margin: 6pt 0 10pt; } .sec-contributions .hb-programs th, .sec-contributions .hb-programs td, .sec-contributions table.programs th, .sec-contributions table.programs td, .sec-funding .hb-programs th, .sec-funding .hb-programs td, .sec-funding table.programs th, .sec-funding table.programs td { text-align: left; } .sec-contributions .hb-programs th, .sec-contributions table.programs th, .sec-funding .hb-programs th, .sec-funding table.programs th { color: #ffffff; font-weight: 700; font-size: 10pt; line-height: 1.2; background: #199970; } .sec-funding .hb-table, .sec-funding .tbl { margin: 6pt 0 10pt; } .sec-funding { page-break-before: always; break-before: page; } .sec-funding .hb-table th, .sec-funding .tbl th { color: #ffffff; font-weight: 700; background: #199970; } /* Images must stay inside margins */ .page-content img { max-width: 100%; height: auto; } /* ------------------------------ BREAKDOWN — RELOCATION COST ------------------------------ */ /* Banner heading (teal background bar) */ .hb-banner-heading { background: linear-gradient(135deg, #199970 0%, #0D7B55 100%); color: #FFFFFF !important; padding: 8pt 14pt; margin: 12pt 0 8pt; font-size: 11.5pt; font-weight: 700; letter-spacing: 0.4px; } /* Page break before Relocation Cost */ .sec-breakdown .page-break { page-break-before: always; break-before: page; } /* Relocation cost table — merged note cell */ .hb-relocation-table { margin: 0 0 12pt; } .hb-relocation-table td { vertical-align: top; padding: 5pt 8pt; border: 0.75pt solid #CBD5E1; font-size: 9.5pt; } .hb-merged-note { font-size: 9.5pt; line-height: 1.4; display: block; padding: 4pt 2pt; } .hb-merged-note-nb { font-weight: 400; font-style: normal; } /* ISP FINANCING line */ .hb-isp-financing { margin: 16pt 0 8pt; padding: 8pt 0; border-top: 2pt solid #0263A3; border-bottom: 2pt solid #0263A3; text-align: center; font-size: 10.5pt; letter-spacing: 0.3px; } .hb-isp-financing strong { font-weight: 700; color: #0263A3; } .hb-isp-financing em { font-style: italic; color: #199970; font-weight: 700; } /* NB: CREDIT FACILITY — green */ .hb-credit-note { text-align: center; color: #199970; font-size: 10.5pt; font-weight: 700; margin: 8pt 0; letter-spacing: 0.2px; } /* ========================================================= VISUAL POLISH — Premium print enhancements Purely additive: no existing rules were removed or altered ========================================================= */ /* ── Section headings – gradient accent bar ── */ .hb-heading-1::after { content: ""; display: block; width: 50pt; height: 2.5pt; background: linear-gradient(90deg, #0263A3, #199970); margin-top: 5pt; border-radius: 1.5pt; } /* Tier-group centred headings get a centred accent */ .tier-group-heading .hb-heading-1::after { margin-left: auto; margin-right: auto; } /* ── Sub-headings – colour-matched left accent ── */ .hb-heading-2 { border-left: 2.5pt solid currentColor; padding-left: 8pt; } /* ── Table of Contents – elegant header underline ── */ .toc-heading::after { content: ""; display: block; width: 100%; height: 1.5pt; background: linear-gradient(90deg, #0263A3, #199970 60%, transparent); margin-top: 5pt; } .toc-row--major .toc-title { color: #0263A3; } /* ── Note callouts – refined shadow depth ── */ .hb-note, .note { box-shadow: 0 1pt 5pt rgba(192, 0, 0, 0.07); } /* ── Enrollment step cards – modern depth & rounding ── */ .hb-step { box-shadow: 0 1pt 6pt rgba(25, 153, 112, 0.10); border-radius: 0 5pt 5pt 0; } /* ── Benefits bar – shadow pop ── */ .hb-benefits-bar, .benefits-bar { box-shadow: 0 2pt 6pt rgba(25, 153, 112, 0.15); border-radius: 2pt; } /* Benefit text pills – softer edges */ .hb-benefit-text, .benefit-text { border-radius: 2pt; } /* ── Campus photos – modern rounded corners + shadow ── */ .hb-campus-img, .campus-top-img { border-radius: 5pt; box-shadow: 0 2pt 10pt rgba(0, 0, 0, 0.13); } /* ── Funding info cards – subtle lift ── */ .funding-intro-card { box-shadow: 0 1pt 4pt rgba(0, 0, 0, 0.05); border-radius: 5pt; } .funding-sources-card { box-shadow: 0 1pt 4pt rgba(0, 0, 0, 0.05); border-radius: 5pt; } /* ── Qualification callout – rounded depth ── */ .hb-qualify, .qualify { border-radius: 0 4pt 4pt 0; box-shadow: 0 1pt 3pt rgba(2, 99, 163, 0.07); } /* ── Numbered list – marker colours now handled by ::before counter ── */ /* ── University name – no underline ── */ /* ── Banner heading – shadow & rounding ── */ .hb-banner-heading { box-shadow: 0 2pt 6pt rgba(13, 123, 85, 0.18); border-radius: 3pt; } /* ── ISP Financing frame – rounded ── */ .hb-isp-financing { border-radius: 3pt; } /* ── Links – smooth colour transitions ── */ a { transition: color 0.15s ease, border-color 0.15s ease; } /* ========================================================= SHARPNESS & CLARITY — Razor-crisp rendering ========================================================= */ /* All images: high-quality scaling, no blur */ img { image-rendering: auto; -webkit-backface-visibility: hidden; backface-visibility: hidden; transform: translateZ(0); /* GPU-composited layer */ } /* Icons, logos, QR codes: pixel-perfect edges */ .hb-step-qr, .cover-img, .fullpage-img, .page-header img { image-rendering: -webkit-optimize-contrast; } /* Tables — crisp text only, no layout interference */ .hb-table td, .hb-table th, .tbl td, .tbl th, .hb-programs td, .hb-programs th { text-rendering: geometricPrecision; } /* Headings — sharper weight rendering */ .hb-heading-1, .hb-heading-2, .hb-uni-name, .hb-step-title, .hb-benefits-bar, .toc-heading { text-rendering: geometricPrecision; -webkit-font-smoothing: antialiased; } /* Paragraph text — optimal readability */ .hb-paragraph, .p, p { text-rendering: optimizeLegibility; word-spacing: 0.02em; letter-spacing: 0.005em; } /* Bullet markers — sharp glyph rendering */ .hb-bullet-list li::before, .hb-sub-bullets li::before, .hb-benefits-ul li::before { text-rendering: geometricPrecision; -webkit-font-smoothing: antialiased; } /* Steps, notes, cards — crisp border-left lines */ .hb-step, .hb-note, .note, .hb-qualify, .qualify { -webkit-backface-visibility: hidden; backface-visibility: hidden; } /* Gradient bars — smooth without banding */ .hb-heading-1::after, .toc-heading::after, .hb-benefits-bar, .hb-banner-heading { -webkit-backface-visibility: hidden; backface-visibility: hidden; transform: translateZ(0); } /* Print media — force high-res */ @media print { * { -webkit-print-color-adjust: exact; print-color-adjust: exact; } img { image-rendering: auto; -webkit-backface-visibility: hidden; } }