/* ========================================================= 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", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; font-size: 10pt; line-height: 1.45; color: #1a1a1a; text-align: justify; -webkit-print-color-adjust: exact; print-color-adjust: exact; background: #ffffff; } /* ------------------------------ 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.5cm × 24.6cm (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, no bold, no border H2-H6: color varies by context, no bold, no border ------------------------------ */ .hb-heading-1, .h2, h1 { font-size: 12pt; font-weight: 700; 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: 700; 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; } .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: 0; color: #0263A3; font-size: 8pt; font-weight: 700; } /* ordered lists */ .hb-numbered-list, .ol, ol.hb-numbered-list { list-style: decimal !important; margin: 4pt 0 10pt 18pt; padding: 0; font-size: 9.5pt; } .hb-numbered-list li, .ol li, ol.hb-numbered-list li { margin: 0 0 5pt; padding-left: 2pt; 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: none !important; } /* 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; } /* ------------------------------ 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: #1a1a1a; text-align: left; } .hb-table th, .tbl th { font-weight: 700; text-transform: uppercase; } /* comparison table */ .hb-table-comparison, .tbl-comparison { font-size: 9pt; } .hb-table-comparison th, .tbl-comparison th { text-align: left; font-size: 9pt; font-weight: 700; text-transform: uppercase; } /* 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", "Segoe UI", 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: #1a1a1a; } .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 td a, table.programs td a { text-decoration: none; border-bottom: none; color: #1c75bc; font-weight: 700; } .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%; } /* 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 ------------------------------ */ /* ── Table of Contents ─────────────────────────── */ .toc-page { display: block; width: 100%; margin: 0; padding: 0; page-break-after: always; break-after: page; page-break-inside: avoid; break-inside: avoid; } .toc { width: 100%; margin: 0; padding: 0; } .toc-heading { display: block; font-size: 14pt; font-weight: 700; text-transform: uppercase; color: #0263A3; margin: 0 0 6pt; padding-bottom: 3pt; border-bottom: 2.5pt solid #0263A3; line-height: 1.2; } /* Each TOC row: flex row, single line, with dot leader filling gap */ .toc-entry { display: flex; flex-direction: row; align-items: baseline; margin: 0; padding: 1.5pt 0; line-height: 1.2; font-size: 9pt; color: #1a1a1a; overflow: hidden; white-space: nowrap; } /* Major section rows: bold, uppercase */ .toc-entry--major { font-weight: 700; text-transform: uppercase; font-size: 9pt; } /* Sub-items (universities): regular weight */ .toc-entry--sub { font-weight: 400; text-transform: none; font-size: 8.5pt; } /* Indented entries (universities) */ .toc-entry--indent { padding-left: 16pt; } /* Title text: no shrink, no wrap */ .toc-label { flex: 0 1 auto; overflow: hidden; text-overflow: clip; white-space: nowrap; } /* Dot leader: fills remaining space between title and page number */ .toc-leader { flex: 1 1 auto; overflow: hidden; white-space: nowrap; margin: 0 3pt; min-width: 16pt; } .toc-leader::after { content: " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."; display: inline; font-size: 7.5pt; letter-spacing: 0pt; color: #999; word-spacing: 0; } /* Page number: fixed width, right-aligned, no shrink */ span.toc-page { flex: 0 0 auto; text-align: right; min-width: 20pt; font-weight: 400; color: #1a1a1a; white-space: nowrap; font-style: normal; font-size: inherit; } /* Links inside TOC */ .toc-entry a, .toc-entry a:visited { color: inherit; 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: normal; 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 12pt; padding: 8pt 0 8pt 12pt; border-left: 3pt solid #199970; background: #F6FBF9; page-break-inside: avoid; break-inside: avoid; } .hb-step-title { font-size: 10.5pt; font-weight: 700; color: #199970; margin: 0 0 4pt; line-height: 1.25; page-break-after: avoid; break-after: avoid; } .hb-step-qr-wrap { margin: 4pt 0 6pt; text-align: center; } .hb-step-qr { display: inline-block; width: 72pt; height: 72pt; margin: 4pt 0 6pt; } .hb-telegram-link { margin: 4pt 0 2pt; text-align: center; } .hb-telegram-link a { color: #0263A3; text-decoration: underline; font-size: 9pt; } .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: underline; text-underline-offset: 2pt; } .hb-uni-name a, .hb-uni-name-link, .uni-name a.uni-name-link { color: #0263A3; text-decoration: underline; text-underline-offset: 2pt; 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; } /* ------------------------------ FUNDING SECTION Matches benefits styling with distinct bar color ------------------------------ */ .hb-funding-section, .funding-section { clear: both; margin: 6pt 0 8pt; page-break-inside: avoid; break-inside: avoid; } .hb-funding-heading { margin: 0 0 4pt; line-height: 1.3; } .hb-funding-bar, .funding-bar { display: inline-block; background: linear-gradient(135deg, #0263A3 0%, #0288D1 100%); color: #ffffff; font-weight: 700; padding: 4pt 12pt; font-size: 10pt; line-height: 1.35; letter-spacing: 0.3px; } .funding-ul { list-style: none; margin: 0; padding: 0; } .funding-li { margin: 3pt 0; padding: 0; font-size: 9.75pt; line-height: 1.35; } .funding-li .benefit-bullet { display: none; } .funding-li::before { content: "\27A4"; display: inline-block; margin-right: 6pt; color: #0263A3; font-weight: 700; } .hb-funding-section .hb-benefit-item::before { color: #0263A3; } .hb-funding-section .hb-benefit-text { background: #E3F2FD; border-left: 2pt solid #0288D1; } .funding-li .benefit-text { display: inline-block; background: #E3F2FD; padding: 2pt 6pt; border-left: 2pt solid #0288D1; } /* ------------------------------ UNIVERSITY SUMMARY LIST Black, bold, numbered ------------------------------ */ .hb-university-list { margin: 4pt 0 12pt 18pt; padding: 0; list-style: decimal; font-size: 10pt; color: #1a1a1a; } .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: #1a1a1a; 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: #1a1a1a; } .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-style: italic; font-weight: 400; font-size: 9.5pt; line-height: 1.4; display: block; padding: 4pt 2pt; } /* 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; }