@font-face {
  font-family: "Caveat";
  src: url("../fonts/caveat/Caveat-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Caveat";
  src: url("../fonts/caveat/Caveat-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --pti-navy: #073b7a;
  --pti-navy-dark: #062f61;
  --pti-blue: #0b57a0;
  --pti-orange: #f36f21;
  --pti-sky: #eaf3fb;
  --bs-primary: var(--pti-navy);
  --bs-primary-rgb: 7, 59, 122;
  --bs-secondary: var(--pti-orange);
  --bs-secondary-rgb: 243, 111, 33;
  --bs-body-color: #12345f;
  --bs-body-font-family: Inter, "Segoe UI", Arial, sans-serif;
  --bs-link-color: var(--pti-navy);
  --bs-link-hover-color: var(--pti-orange);
}

html { scroll-behavior: smooth; scroll-padding-top: var(--anchor-offset, 130px); }
body { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; overflow-x: hidden; }
body > main { flex: 1 0 auto; }
body > .site-footer { flex-shrink: 0; }
a { text-decoration: none; }
.btn { --bs-btn-border-radius: 0; }
.btn-primary { --bs-btn-bg: var(--pti-navy); --bs-btn-border-color: var(--pti-navy); --bs-btn-hover-bg: #052f62; --bs-btn-hover-border-color: #052f62; }
.btn-secondary { --bs-btn-bg: var(--pti-orange); --bs-btn-border-color: var(--pti-orange); --bs-btn-hover-bg: #d85c13; --bs-btn-hover-border-color: #d85c13; }
.btn-outline-primary { --bs-btn-color: var(--pti-navy); --bs-btn-border-color: #c8daeb; --bs-btn-hover-bg: var(--pti-navy); --bs-btn-hover-border-color: var(--pti-navy); --bs-btn-active-bg: var(--pti-navy); --bs-btn-active-border-color: var(--pti-navy); }

.campaign-brand { display: inline-flex; align-items: center; gap: .65rem; }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy .brand-name { color: var(--pti-navy); font-size: 1.55rem; font-weight: 400; letter-spacing: -.04em; }
.brand-copy em { color: var(--pti-orange); font-style: normal; }
.brand-copy small { color: var(--pti-orange); font-size: .49rem; font-weight: 400; letter-spacing: .05em; margin-top: .3rem; }
.campaign-mark { display: block; width: 195px; height: 96px; flex: 0 0 195px; }
.navbar { min-height: 76px; }.navbar .nav-link { color: #234c7c; font-size: .85rem; font-weight: 650; }.navbar .nav-link:hover { color: var(--pti-orange); }

.hero { background: linear-gradient(180deg, #fff 0%, #fbfdff 55%, #f1f7fc 100%); }
.hero h1 { color: var(--pti-navy); letter-spacing: -.045em; }
.hero .lead { font-size: 1rem; line-height: 1.55; }
.eyebrow { color: #4d79ab; font-size: .7rem; font-weight: 800; letter-spacing: .23em; margin-bottom: .5rem; }
.micro-value { display: flex; align-items: center; gap: .55rem; }.micro-value p { margin: 0; line-height: 1.1; }.micro-value strong { display: block; font-size: .68rem; }.micro-value small { color: #6d84a2; display: block; font-size: .55rem; margin-top: .25rem; }
.support-areas .micro-value { height: 100%; min-height: 190px; padding: 1.5rem 1rem; flex-direction: column; justify-content: center; gap: 1rem; text-align: center; border: 1px solid #dce8f3; border-radius: .75rem; background: rgba(255,255,255,.82); }
.support-areas .micro-value p { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.support-areas .micro-value strong { font-size: 1rem; line-height: 1.35; }
.support-areas .micro-value small { display: block; font-size: .8125rem; line-height: 1.45; margin-top: .5rem; }
.support-area-icon { display: block; width: 40px; height: 40px; flex: 0 0 40px; }
.mini-mark { display: block; width: 25px; height: 25px; flex: 0 0 25px; }

.hero-art { container-type: inline-size; min-height: 290px; position: relative; display: flex; align-items: center; justify-content: center; padding-inline: .5rem; }
.pti-grid { --pti-cell: 18px; --pti-gap: 4px; --pti-letter-gap: 16px; display: flex; align-items: flex-start; gap: var(--pti-letter-gap); max-width: 100%; position: relative; z-index: 2; }
.pti-letter { display: grid; gap: var(--pti-gap); }.pti-letter .cell { width: var(--pti-cell); height: var(--pti-cell); border-radius: 1px; }.pti-letter .cell.on { background: linear-gradient(145deg, #0d57a6, var(--pti-navy)); }.pti-letter .cell.orange { background: var(--pti-orange); }.pti-letter .cell.off { background: transparent; }
.pti-letter.p { grid-template-columns: repeat(9, var(--pti-cell)); grid-template-rows: repeat(8, var(--pti-cell)); }.pti-letter.t { grid-template-columns: repeat(8, var(--pti-cell)); grid-template-rows: repeat(8, var(--pti-cell)); }.pti-letter.i { grid-template-columns: repeat(4, var(--pti-cell)); grid-template-rows: repeat(8, var(--pti-cell)); }
@container (max-width: 520px) { .pti-grid { --pti-cell: 16px; --pti-gap: 3px; --pti-letter-gap: 12px; } }
@container (max-width: 430px) { .pti-grid { --pti-cell: 14px; } }
@container (max-width: 380px) { .pti-grid { --pti-cell: 12px; } }
@container (max-width: 310px) { .pti-grid { --pti-cell: 10px; --pti-gap: 2px; --pti-letter-gap: 8px; } }
@container (max-width: 280px) { .pti-grid { --pti-cell: 8px; } }
@container (max-width: 230px) { .pti-grid { --pti-cell: 7px; --pti-gap: 1px; --pti-letter-gap: 4px; } }
.handnote { color: var(--pti-navy); font-family: "Caveat", cursive; font-style: italic; font-weight: 700; line-height: 1.1; transform: rotate(-5deg); }
.note-top { position: absolute; right: 7.35rem; top: -.01rem; font-size: 1.6rem; line-height: 1; text-align: center; z-index: 3; transform: rotate(-5deg); }.note-top span { position: absolute; right: -2rem; top: .45rem; display: block; font-size: 1.75rem; line-height: 1; transform: none; }
.floating { position: absolute; width: 20px; height: 20px; background: #dfeefa; }.f1 { left: 1rem; top: 4rem; }.f2 { left: 4rem; top: 1rem; }.f3 { left: 5rem; bottom: 2rem; }.f4 { right: 3.25rem; top: .75rem; background: var(--pti-orange); }
.donation-card { border-radius: 1rem; }.donation-card .form-control:focus { border-color: #7ba6cf; box-shadow: 0 0 0 .25rem rgba(7,59,122,.13); }.payments { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; color: #527297; font-size: .68rem; }.payu-logo { display: block; width: 52px; height: auto; }
.donation-card fieldset .btn-check + .btn { min-height: 58px; flex-direction: column; line-height: 1.2; }
.donation-card .form-check-label a { text-decoration: underline; text-underline-offset: 2px; }

.summary-section { background: #f1f7fc; }
.campaign-stat { display: flex; align-items: center; justify-content: center; gap: .8rem; height: 100%; min-height: 105px; padding: 1rem; border: 1px solid #dce8f3; background: #f8fbff; text-align: center; }
.campaign-stat-icon { display: grid; place-items: center; flex: 0 0 52px; width: 52px; height: 52px; background: #e2f0fb; color: var(--pti-navy); }
.campaign-stat-icon svg { width: 30px; height: 30px; }
.campaign-stat strong,.campaign-stat span:not(.campaign-stat-icon) { display: block; }
.campaign-stat strong { color: var(--pti-navy); font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.15; white-space: nowrap; }
.campaign-stat div > span { margin-top: .3rem; color: #607a97; font-size: .72rem; line-height: 1.3; }
.step { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: .75rem; text-align: center; }.step-no { width: 52px; height: 52px; flex: 0 0 52px; background: #e2f0fb; color: var(--pti-navy); display: grid; place-items: center; font-size: 1.25rem; font-weight: 800; }.step-icon { color: var(--pti-blue); display: block; font-size: 1.65rem; line-height: 1; margin-bottom: .4rem; }

.impact { background: linear-gradient(125deg, var(--pti-navy-dark), #0a447d); color: #fff; position: relative; overflow: hidden; }.impact::before,.impact::after { content: ""; position: absolute; width: 120px; height: 120px; opacity: .12; background: linear-gradient(90deg, transparent 42%, #79b5e6 42% 58%, transparent 58%),linear-gradient(0deg, transparent 42%, #79b5e6 42% 58%, transparent 58%); }.impact::before { left: -30px; bottom: 0; }.impact::after { right: -10px; bottom: -10px; }.impact .container { position: relative; z-index: 1; }
.impact .eyebrow { color: var(--pti-orange); }
.impact-heading-accent { color: var(--pti-orange); }
.feature { display: flex; gap: .75rem; }.feature-icon { width: 52px; height: 52px; background: #e2f0fb; color: var(--pti-navy); display: grid; place-items: center; flex: 0 0 52px; }.feature-icon svg { width: 30px; height: 30px; }.feature h3 { font-size: .8rem; font-weight: 700; }.feature p { color: #c8d8e8; font-size: .7rem; margin: 0; }.quote-mark { color: #d8e7f5; font-size: 4rem; line-height: .6; }.impact-quote p { color: #e3edf7; font-size: .82rem; margin-top: .75rem; }.impact-quote figcaption strong,.impact-quote figcaption small { display: block; }.impact-quote figcaption small { color: #9ec2df; font-size: .65rem; }

.allocation-total { display: inline-block; border: 1px solid rgba(255,255,255,.25); padding: .55rem .8rem; font-size: .85rem; }
.allocation-total strong { color: #ffad71; font-size: 1.25rem; }
.allocation-scroll { overflow-x: auto; padding-bottom: .35rem; }
.allocation-scroll:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.allocation-chart { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; min-width: 700px; }
.allocation-column { min-width: 0; text-align: center; }
.allocation-bar-wrap { height: 280px; display: flex; align-items: flex-end; justify-content: center; border-bottom: 1px solid rgba(255,255,255,.35); }
.allocation-bar { position: relative; width: 96px; height: calc(var(--rows) * 16px); flex: 0 0 96px; }
.allocation-bar::before { content: ""; position: absolute; top: 16px; right: 0; bottom: 0; left: 0; background: url("../img/chart-square-tile.svg") left top / 16px 16px repeat; }
.allocation-bar::after { content: ""; position: absolute; top: 0; left: 0; width: 64px; height: 16px; background: url("../img/chart-square-tile-orange.svg") left top / 16px 16px repeat-x; }
.allocation-bar.is-empty::before,.allocation-bar.is-empty::after { display: none; }
.allocation-bar strong { position: absolute; z-index: 1; bottom: calc(100% + 5px); left: 50%; transform: translateX(-50%); display: block; color: #fff; font-size: 1.05rem; line-height: 1.25; white-space: nowrap; }
.allocation-label { display: block; min-height: 3.2rem; margin-top: .9rem; font-size: .78rem; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.faq-section { background: #fbfdff; }.accordion { --bs-accordion-btn-color: var(--pti-navy); --bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(7,59,122,.12); --bs-accordion-active-bg: #edf5fb; --bs-accordion-active-color: var(--pti-navy); }.accordion-button { font-size: .82rem; font-weight: 700; }.accordion-body { color: #607a97; font-size: .78rem; }
.site-footer { background: #072f5e; }.site-footer a { color: inherit; }.site-footer nav a:hover { color: #fff; text-decoration: underline; }
.site-footer .footer-credit { font-size: .65625em; }

.payment-error-page { display: flex; align-items: center; background: #fff; }
.payment-error-wrap { padding-top: clamp(2rem, 5vw, 4rem); padding-bottom: 1.5rem; }
.payment-error-illustration { display: block; width: min(100%, 410px); height: auto; margin-inline: auto; }
.payment-error-eyebrow { margin-bottom: .8rem; color: var(--pti-navy); font-size: .72rem; font-weight: 700; letter-spacing: .32em; text-transform: uppercase; }
.payment-error-heading { margin-bottom: .85rem; color: #102f5e; font-size: clamp(2.35rem, 4vw, 3.5rem); font-weight: 800; letter-spacing: -.045em; line-height: 1.04; }
.payment-error-heading span { color: #ef542b; }
.payment-error-lead { margin-bottom: 1.3rem; color: #173767; font-size: clamp(.97rem, 1.35vw, 1.1rem); line-height: 1.5; }
.payment-error-alert { --bs-alert-color: #183766; --bs-alert-bg: #fff8f7; --bs-alert-border-color: #ffd2ce; padding: 1.35rem 1.45rem; border-radius: .5rem; line-height: 1.45; }
.payment-error-alert-icon { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, #cc3028, #f25532); color: #fff; font-size: 1.7rem; font-weight: 800; line-height: 1; }
.payment-error-alert strong { margin-bottom: .15rem; color: #8f1718; font-size: 1rem; }
.payment-error-alert p { color: #183766; font-size: .95rem; }
.payment-return-alert--success { --bs-alert-bg: #f3fcf8; --bs-alert-border-color: #bde7d4; }
.payment-return-alert--success .payment-error-alert-icon { background: linear-gradient(135deg, #168765, #28ba87); font-size: 1.45rem; }
.payment-return-alert--success strong { color: #12684e; }
.payment-return-alert--pending { --bs-alert-bg: #f4f9ff; --bs-alert-border-color: #c7dff5; }
.payment-return-alert--pending .payment-error-alert-icon { background: linear-gradient(135deg, #0b4b91, #4c9cdb); font-size: 1.3rem; }
.payment-return-alert--pending strong { color: #0b4b91; }
.payment-error-actions .btn { min-height: 46px; padding: .62rem 1.25rem; font-size: .9rem; font-weight: 600; }
.payment-error-actions svg { flex: 0 0 18px; width: 18px; height: 18px; }
.payment-error-return { background: linear-gradient(110deg, #f04b25, #fc642c); border-color: #ee4e27; color: #fff; }
.payment-error-return:hover,.payment-error-return:focus-visible { background: #d9411e; border-color: #d9411e; color: #fff; }
.payment-error-divider { height: 1px; margin-top: 2rem; background: #dce9f7; }
.contact-card { padding: clamp(1.25rem, 2.5vw, 1.75rem); border: 1px solid #cfe0f1; border-radius: .5rem; background: #f5f9fd; color: #173767; }
.contact-card h2 { color: #102f5e; }
.contact-address { display: grid; gap: .8rem; font-style: normal; }
.contact-row { display: flex; align-items: flex-start; gap: .75rem; }
.contact-row svg { flex: 0 0 21px; width: 21px; height: 21px; margin-top: .1rem; color: var(--pti-orange); }
.contact-row a { color: var(--pti-navy); font-weight: 650; text-decoration: none; }
.contact-row a:hover { color: var(--pti-orange); text-decoration: underline; }
.contact-registers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; padding-top: 1rem; border-top: 1px solid #d6e3f0; }
.contact-registers div { min-width: 0; }
.contact-registers dt { color: #607a97; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.contact-registers dd { margin: .15rem 0 0; color: #102f5e; font-weight: 700; overflow-wrap: anywhere; }

.regulations-page { background: #f7fafc; }
.regulations-content { max-width: 980px; }
.regulations-content > section { background: #fff; border: 1px solid #e2eaf3; border-radius: .75rem; margin-bottom: 1.5rem; padding: clamp(1.25rem, 3vw, 2.25rem); scroll-margin-top: 0; }
.regulations-content section h2 { color: var(--pti-navy); font-size: 1.35rem; font-weight: 750; margin-bottom: 1.25rem; }
.regulations-content section li { margin-bottom: .65rem; padding-left: .25rem; }
.regulations-content section ul { margin-top: .65rem; }
.regulations-content .amount-list { columns: 2; }
.regulations-toc a { color: var(--pti-navy); }.regulations-toc a:hover { color: var(--pti-orange); }
.regulations-content table { min-width: 900px; font-size: .82rem; }.regulations-content thead th { background: var(--pti-navy); color: #fff; }

@media print { .regulations-page header,.regulations-page footer,.regulations-toc,.regulations-content > .text-center { display: none !important; }.regulations-page { background: #fff; }.regulations-content { max-width: none; }.regulations-content > section { border: 0; break-inside: auto; padding: 0; }.regulations-content .table-responsive { overflow: visible; }.regulations-content table { min-width: 0; font-size: 8pt; } }

@media (min-width: 1200px) { .navbar-expand-xl > .container { align-self: stretch; } #mainNav { align-self: flex-end; align-items: flex-end; } }
@media (max-width: 1199.98px) { .navbar-collapse { padding-bottom: .75rem; } }
@media (max-width: 767.98px) { .navbar { min-height: 68px; }.brand-copy .brand-name { font-size: 1.25rem; }.brand-copy small { font-size: .38rem; }.hero-art { min-height: 235px; }.note-top { right: 6.85rem; }.impact-quote { border-left: 0 !important; border-top: 1px solid rgba(255,255,255,.25); padding: 1.5rem 0 0 !important; } }
@media (max-width: 991.98px) { .payment-error-illustration { max-width: 310px; }.payment-error-content { max-width: 700px; margin-inline: auto; } }
@media (max-width: 575.98px) { .payment-error-wrap { padding-top: 1.5rem; }.payment-error-illustration { max-width: 230px; }.payment-error-heading { font-size: clamp(2rem, 9vw, 2.6rem); }.payment-error-alert { padding: 1rem; }.payment-error-alert-icon { flex-basis: 36px; width: 36px; height: 36px; font-size: 1.35rem; }.contact-registers { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .brand-copy small { display: none; }.micro-value small { display: none; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
