handbook_engine / app /static /css /print.css
internationalscholarsprogram's picture
Fix enrollment rendering parity and header-safe Step 7 layout
a94f84a
/* =========================================================
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 <img> 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;
}
}