/* ============================================================
   FABanner — Financial Aid Page Banner
   Two-column: navy/bracket left, photo right.
   Mobile: photo stacks above navy.
   ============================================================ */

.FABanner {
    display: flex;
    align-items: stretch;
    min-height: 200px;
}

@media screen and (max-width: 991px){
    .FABanner {
    display: flex;
    align-items: stretch;
    min-height: 130px;
}
}

.FABanner-blue {
    position: relative;
    background: #0C233F;
    flex: 0 0 50%;
    display: flex;
    align-items: center;
    /* fallback: matches container's 15px gutter */
    padding: 48px 52px 48px 15px;
    overflow: hidden;
    flex-grow:1;
}

/* Align left edge of text with Bootstrap container at each breakpoint */
@media (min-width: 768px) {
    .FABanner-blue {
        padding-left: calc((100vw - 720px) / 2 + 15px);
    }
}

@media (min-width: 992px) {
    .FABanner-blue {
        padding-left: calc((100vw - 960px) / 2 + 15px);
    }
}

@media (min-width: 1200px) {
    .FABanner-blue {
        padding-left: calc((100vw - 1140px) / 2 + 15px);
    }
}

.FABanner-bracket {
    position: relative;
    padding: 10px 0 10px 24px;
    border-left: 4px solid #FFC62F;
}

.FABanner-bracket::before,
.FABanner-bracket::after {
    content: '';
    position: absolute;
    left: -4px;
    width: 16px;
    height: 4px;
    background: #FFC62F;
}

.FABanner-bracket::before { top: 0; }
.FABanner-bracket::after  { bottom: 0; }

.FABanner-heading {
    color: #ffffff;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: clamp(1.6rem, 4vw, 3rem);
    line-height: 1.2;
    margin: 0;
}

.FABanner-wm {
    position: absolute;
    right: 24px;
    bottom: -16px;
    width: 130px;
    height: auto;
    opacity: 0.1;
    pointer-events: none;
}

.FABanner-photo {
    flex: 0 0 50%;
    overflow: hidden;
    min-height: 200px;
}

.FABanner-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ============================================================
   CostTabs — Cost of Attendance Tabs Section
   ============================================================ */

.CostTabs {
    padding: 56px 0 0;
    overflow: hidden;
}

.CostTabs-intro {
    margin-bottom: 40px;
}

.CostTabs-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: 2rem;
    margin-bottom: 8px;
}

.CostTabs-subtitle {
    color: #0070B9;
    font-family: montserrat-bold, sans-serif;
    font-size: 1rem;
    margin: 0;
}

/* ----- Perch data source: hidden from display ----- */
.CostTabs-src {
    display: none;
}

/* ----- Desktop: two-column tab box ----- */
.CostTabs-box {
    display: flex;
    align-items: stretch;
    border: 2px solid #0C233F;
    margin-bottom: 0;
}

/* ----- Nav column ----- */
.CostTabs-nav {
    flex: 0 0 35%;
    display: flex;
    flex-direction: column;
    border-right: 2px solid #0C233F;
}

/* flex: 1 makes each tab grow to fill nav height equally */
.CostTabs-tab {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 20px 28px;
    background: #fff;
    border: none;
    border-top: 2px solid #0C233F;
    text-align: left;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1.25rem;
    color: #0C233F;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    z-index: 1;
}

.CostTabs-tab:first-child {
    border-top: none;
}

.CostTabs-tab:hover:not(.is-active) {
    background: #f0f4f8;
}

.CostTabs-tab.is-active {
    background: #0070B9;
    color: #fff;
    z-index: 2;
}

.CostTabs-tab.is-active::after {
    content: '';
    position: absolute;
    right: -19px;
    top: 50%;
    transform: translateY(-50%);
    border-top: 19px solid transparent;
    border-bottom: 19px solid transparent;
    border-left: 19px solid #0070B9;
    z-index: 3;
}

/* ----- Panels column ----- */
.CostTabs-panels {
    flex: 1;
    position: relative;
}

.CostTabs-panel {
    display: none;
    height: 100%;
    flex-direction: column;
}

.CostTabs-panel.is-active {
    display: flex;
}

/* Gold hatched corner decoration */
.CostTabs-deco {
    position: absolute;
    top: -15px;
    right: -15px;
    width: 100px;
    height: 100px;
    pointer-events: none;
    overflow: hidden;
}

.CostTabs-deco::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(
        45deg,
        #FFC62F 0,
        #FFC62F 1px,
        transparent 2px,
        transparent 7px
    );
    clip-path: polygon(0 0, 100% 0, 100% 100%);
}

.CostTabs-panel-inner {
    padding: 32px 40px;
    flex: 1;
}

.CostTabs-label {
    font-family: montserrat, sans-serif;
    font-weight: bold;
    font-size: 2.25rem;
    font-size: clamp(1.6rem, 4vw, 2.25rem);
    color: #000;
    margin-bottom: 4px;
}

.CostTabs-cost {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 2.75rem;
    color: #0070B9;
    margin-bottom: 20px;
    line-height: 1.1;
}

.CostTabs-cost::before {
    content: '[';
    color: #FFC62F;
    margin-right: 4px;
    font-family: montserrat, sans-serif;
}

.CostTabs-cost::after {
    content: ']';
    color: #FFC62F;
    margin-left: 4px;
    font-family: montserrat, sans-serif;
}

.CostTabs-items-label {
    font-size: 1.5rem;
    color: #000;
    margin-bottom: 16px;
}

.CostTabs-items {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 32px;
    margin-bottom: 28px;
}

.CostTabs-item {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: montserrat, sans-serif;
    font-size: 0.95rem;
    color: #000;
}

.CostTabs-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #0C233F;
    color: #FFC62F;
    flex-shrink: 0;
    font-size: 0.85rem;
}

.CostTabs-note {
    font-family: montserrat, sans-serif;
    font-size: 1rem;
    color: #000;
    margin: 0;
}

/* ----- CTA bar ----- */
.CostTabs-cta-wrap {
    display: flex;
    justify-content: flex-end;
    margin-top: 50px;
}


.CostTabs-cta {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    background: #FFC62F;
    padding: 20px 32px;
    text-decoration: none;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #0C233F;
    transition: background 0.2s;
    min-width: 380px;
    position: relative;
}
.CostTabs-cta::before {
    content: "";
    position: absolute;
    left: 100%;
    width: 50vw;
    height: 100%;
    background-color: #FFC62F;
    transition: background 0.2s;
}

.CostTabs-cta:hover {
    background: #e6b000;
    color: #0C233F;
    text-decoration: none;
}
.CostTabs-cta:hover::before {
    background: #e6b000;
}

.CostTabs-cta-arrow {
    font-size: 1.2rem;
    flex-shrink: 0;
}

/* ----- Mobile accordion ----- */
.CostTabs-accordion {
    border: 2px solid #0C233F;
}

.CostTabs-acc-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 18px 20px;
    background: #fff;
    border: none;
    border-top: 2px solid #0C233F;
    text-align: left;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #0C233F;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.CostTabs-acc-btn:first-child {
    border-top: none;
}

.CostTabs-acc-btn.is-active {
    background: #0070B9;
    color: #fff;
}

.CostTabs-acc-btn .fa-chevron-down {
    transition: transform 0.25s;
    flex-shrink: 0;
}

.CostTabs-acc-btn.is-active .fa-chevron-down {
    transform: rotate(180deg);
}

.CostTabs-acc-panel {
    display: none;
    border-top: 2px solid #0C233F;
}

.CostTabs-acc-panel.is-active {
    display: block;
}

/* ----- Tablet ----- */
@media (max-width: 991px) {
    .CostTabs-nav {
        flex: 0 0 40%;
    }

    .CostTabs-panel-inner {
        padding: 24px 28px;
    }

    .CostTabs-cost {
        font-size: 2.25rem;
    }
}

/* ============================================================
   CenterBoxCTA — Full-width background photo, centered content box.
   ============================================================ */

.CenterBoxCTA {
    position: relative;
    padding: 80px 0;
    background-color: #0C233F;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    margin-top: 100px;
}

.CenterBoxCTA-overlay {
    position: absolute;
    inset: 0;
    background: rgba(16, 35, 61, 0.65);
    pointer-events: none;
}

.CenterBoxCTA .container {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
}

.CenterBoxCTA-box {
    width: 100%;
    max-width: 900px;
    background: #fff;
    padding: 48px 52px;
    text-align: center;
}

.CenterBoxCTA-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: 2rem;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    line-height: 1.2;
    margin-bottom: 16px;
}

.CenterBoxCTA-text {
    font-family: montserrat, sans-serif;
    color: #000;
    font-size: 1rem;
    line-height: 1.65;
    margin-bottom: 32px;
}

.CenterBoxCTA-btn {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    background: #0C233F;
    color: #fff;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    padding: 14px 28px;
    text-decoration: none;
    transition: background 0.2s;
}

.CenterBoxCTA-btn:hover {
    background: #0070B9;
    color: #fff;
    text-decoration: none;
}

.CenterBoxCTA-btn-arrow {
    font-size: 1.1rem;
    flex-shrink: 0;
    color: #FFC62F;
}

/* ============================================================
   Deadlines — Key Financial Aid Deadlines
   A yellow rect border (absolute) sits behind everything.
   White bg on the header, cards-wrap, and link interrupts
   the border, leaving corner stubs and side lines visible.
   ============================================================ */

.Deadlines {
    padding: 100px 0 0;
}

.Deadlines-inner {
    position: relative;
}

.Deadlines-border {
    position: absolute;
    inset: 0;
    border: 3px solid #FFC62F;
    z-index: 0;
    pointer-events: none;
    top: 24px;
    left: 50px;
    right: 50px;
    bottom: 30px;
}

.Deadlines-header {
    position: relative;
    z-index: 1;
    background: #fff;
    text-align: center;
    padding: 0 40px;
    max-width: 700px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.Deadlines-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    margin-bottom: 16px;
}

.Deadlines-subtext {
    font-family: montserrat, sans-serif;
    color: #000;
    font-size: 1rem;
    line-height: 1.65;
    margin: 0;
}

.Deadlines-cards-wrap {
    position: relative;
    z-index: 1;
    background: #fff;
    padding: 25px 0;
    margin-bottom: 0;
}

.Deadlines-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

/* Stretch boxes evenly when there are 3 or fewer */
.Deadlines-cards:has(> .Deadlines-card:only-child) {
    grid-template-columns: 1fr;
}
.Deadlines-cards:has(> .Deadlines-card:nth-child(2):last-child) {
    grid-template-columns: repeat(2, 1fr);
}
.Deadlines-cards:has(> .Deadlines-card:nth-child(3):last-child) {
    grid-template-columns: repeat(3, 1fr);
}

.Deadlines-card-desc ul li {
    text-align: start;
}

.Deadlines-card-desc p {
    text-align: start;
}

.Deadlines-card {
    background: #0C233F;
    padding: 28px 24px;
    text-align: center;
}

.Deadlines-card-date {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #FFC62F;
    font-size: 1.75rem;
    margin-bottom: 16px;
    line-height: 1.2;
}

.Deadlines-card-desc {
    font-family: montserrat, sans-serif;
    color: #fff;
    font-size: 1rem;
    line-height: 1.55;
    margin: 0;
}

.Deadlines-card-desc a {
    color: #fff;
}

.Deadlines-footer {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    min-height: 64px;
    align-items: center;
}

.Deadlines-link {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    background: #fff;
    padding: 20px 48px;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #0C233F;
    text-decoration: none;
    transition: color 0.2s;
}

.Deadlines-link:hover {
    color: #0070B9;
    text-decoration: none;
}

.Deadlines-link-arrow {
    color: #FFC62F;
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* ----- Tablet: 2-column grid ----- */
@media (max-width: 991px) {
    .Deadlines-header {
        max-width: 100%;
        padding: 28px 32px;
    }

    .Deadlines-cards {
        grid-template-columns: repeat(2, 1fr);
    }
    .Deadlines-border {
        display: none;
    }
}

/* ----- Mobile: single column ----- */
@media (max-width: 767px) {
    .Deadlines {
        padding: 40px 0;
    }

    .Deadlines-header {
        padding: 24px 24px;
        margin-bottom: 32px;
    }

    .Deadlines-cards {
        grid-template-columns: 1fr;
    }

    .Deadlines-cards-wrap {
        padding: 0 16px;
        margin-bottom: 32px;
    }

    .Deadlines-link {
        padding: 18px 32px;
    }
}

/* ============================================================
   RightBoxBgImg — Background photo (container-width) with
   right-side white content box and link list.
   ============================================================ */

.RightBoxBgImg {
    padding: 100px 0 0;
}

.RightBoxBgImg-inner {
    position: relative;
    display: flex;
    align-items: stretch;
    min-height: 380px;
    background-image: var(--bg-img);
    background-size: cover;
    background-position: center;
    padding: 150px 0 0 0;
}

.RightBoxBgImg-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.42);
    pointer-events: none;
    z-index: 1;
}

.RightBoxBgImg-spacer {
    flex: 1;
}

.RightBoxBgImg-box {
    position: relative;
    z-index: 2;
    flex: 0 0 38%;
    background: #fff;
    padding: 40px 36px;
}

.RightBoxBgImg-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    margin-bottom: 12px;
}

.RightBoxBgImg-intro {
    font-family: montserrat, sans-serif;
    font-size: 1rem;
    color: #000;
    line-height: 1.6;
    margin-bottom: 24px;
}

.RightBoxBgImg-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
}

.RightBoxBgImg-inner.no-top-pad {
    padding-top: 0;
}

.RightBoxBgImg-box.bordered {
    border: 2px solid #0C233F;
}

.RightBoxBgImg-plain-list {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
}

.RightBoxBgImg-plain-item {
    padding: 8px 0;
    font-family: montserrat, sans-serif;
    font-size: 1rem;
    color: #000;
    line-height: 1.5;
}

.RightBoxBgImg-plain-item::before {
    content: '\2014\00a0';
    color: #FFC62F;
}

.RightBoxBgImg-outro {
    font-family: montserrat, sans-serif;
    font-size: 0.9rem;
    color: #000;
    line-height: 1.6;
    margin-top: 20px;
}

.RightBoxBgImg-outro p {
    margin: 0;
}

.RightBoxBgImg-bottom-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: #0C233F;
    padding: 20px 36px;
    margin: 24px -36px -40px;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #fff;
    text-decoration: none !important;
    transition: background 0.2s;
}

.RightBoxBgImg-bottom-link:hover {
    background: #1a3a5c;
    color: #fff;
    text-decoration: none !important;
}

.RightBoxBgImg-bottom-arrow {
    color: #FFC62F;
    flex-shrink: 0;
    transition: transform 0.2s;
}

.RightBoxBgImg-bottom-link:hover .RightBoxBgImg-bottom-arrow {
    transform: translateX(4px);
}

.RightBoxBgImg-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.RightBoxBgImg-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 0;
    font-family: montserrat-bold, sans-serif;
    font-size: 1rem;
    color: #000;
    text-decoration: none;
    transition: color 0.2s;
}

.RightBoxBgImg-link:hover {
    color: #0070B9;
    text-decoration: none;
}

.RightBoxBgImg-arrow {
    color: #FFC62F;
    flex-shrink: 0;
    transition: transform 0.2s;
}

.RightBoxBgImg-link:hover .RightBoxBgImg-arrow {
    transform: translateX(4px);
}

/* ----- Mobile ----- */
@media (max-width: 767px) {
    .RightBoxBgImg {
        padding: 40px 0 0;
    }

    .RightBoxBgImg-inner {
        flex-direction: column;
        min-height: 0;
        background-image: none;
        padding: 0;
    }

    .RightBoxBgImg-spacer {
        min-height: 200px;
        background-image: var(--bg-img);
        background-size: cover;
        background-position: center;
    }

    .RightBoxBgImg-box {
        flex: none;
        width: 100%;
        padding: 28px 24px;
    }

    .RightBoxBgImg-bottom-link {
        padding: 18px 24px;
        margin: 20px -24px -28px;
    }
}

/* ============================================================
   FundingCards — 4-up image cards with hover text reveal
   ============================================================ */

.FundingCards {
    padding: 100px 0 0;
}

.FundingCards-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: 2rem;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    text-align: center;
    line-height: 1.3;
    /* max-width: 700px; */
    margin: 0 auto 50px;
}

.FundingCards-outer {
    max-width: 1480px;
    margin: 0 auto;
    padding: 0 30px;
}

.FundingCards-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px;
}

.FundingCards-wrapper {
    flex: 0 0 calc(25% - 3px);
    padding: 0 13px;
    position: relative;
}

.FundingCards-card {
    position: relative;
    display: block;
    height: 400px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    text-decoration: none;
    color: inherit;
}

/* Bracket accent — full-width top bar + left serif (odd) or full-width bottom bar + left serif (even) */
.FundingCards-wrapper::before {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 34px;
    z-index: 3;
    pointer-events: none;
}

.FundingCards-wrapper:nth-child(odd)::before {
    top: 0;
    border-top: 13px solid #FFC62F;
    border-left: 13px solid #FFC62F;
    border-right: 13px solid #FFC62F;
}

.FundingCards-wrapper:nth-child(even)::before {
    bottom: 0;
    border-bottom: 13px solid #FFC62F;
    border-left: 13px solid #FFC62F;
    border-right: 13px solid #FFC62F;
}

.FundingCards-card:hover {
    text-decoration: none;
}

.FundingCards-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top,
        rgba(12, 35, 63, 0.88) 0%,
        rgba(12, 35, 63, 0.15) 55%,
        transparent 100%);
    transition: background 0.35s ease;
    pointer-events: none;
}

.FundingCards-card:hover .FundingCards-card-overlay {
    background: linear-gradient(to top,
        rgba(12, 35, 63, 0.95) 0%,
        rgba(12, 35, 63, 0.70) 55%,
        rgba(12, 35, 63, 0.35) 100%);
}

.FundingCards-card-body {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20px 20px 30px 20px;
    z-index: 1;
}

.FundingCards-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.FundingCards-card-title {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1.5rem;
    color: #fff;
    margin: 0;
    line-height: 1.3;
}

.FundingCards-card-arrow {
    color: #FFC62F;
    font-size: 1.1rem;
    flex-shrink: 0;
    transition: transform 0.25s ease;
}

.FundingCards-card:hover .FundingCards-card-arrow {
    transform: translateX(4px);
}

.FundingCards-card-desc {
    font-family: montserrat, sans-serif;
    font-size: 1rem;
    color: #fff;
    line-height: 1.55;
    margin: 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(6px);
    transition: max-height 0.4s ease, opacity 0.3s ease 0.05s, transform 0.35s ease, margin-top 0.35s ease;
}

.FundingCards-card:hover .FundingCards-card-desc {
    max-height: 150px;
    opacity: 1;
    transform: translateY(0);
    margin-top: 10px;
}

/* ----- Tablet: 2 columns ----- */
@media (max-width: 991px) {
    .FundingCards-outer {
        padding: 0 20px;
    }

    .FundingCards-wrapper {
        flex: 0 0 calc(50% - 2px);
    }

    .FundingCards-card {
        height: 340px;
    }
}

/* Mobile: photo stacks on top, blue below */
@media (max-width: 767px) {
    .FABanner {
        flex-direction: column;
    }

    .FABanner-photo {
        order: -1;
        min-height: 0px;
    }

    .FABanner-blue {
        flex: none;
        padding: 36px 28px;
    }

    /* CostTabs: accordion handles layout, just shrink a few values */
    .CostTabs {
        padding: 40px 0 0;
    }

    .CostTabs-panel-inner {
        padding: 24px 20px;
    }

    .CostTabs-cost {
        font-size: 2rem;
    }

    .CostTabs-items {
        grid-template-columns: 1fr;
    }

    .CostTabs-cta {
        min-width: 0;
        width: 100%;
    }

    .CenterBoxCTA {
        padding: 40px 0;
    }

    .CenterBoxCTA-box {
        padding: 28px 24px;
    }

    .CenterBoxCTA-btn {
        display: flex;
        justify-content: space-between;
    }

    /* FundingCards: single column, description always visible */
    .FundingCards {
        padding: 40px 0;
    }

    .FundingCards-outer {
        padding: 0 15px;
    }

    .FundingCards-grid {
        gap: 12px;
    }

    .FundingCards-wrapper {
        flex: 0 0 100%;
        padding: 0;
    }

    .FundingCards-card {
        height: 280px;
    }

    .FundingCards-card-desc {
        max-height: 150px;
        opacity: 1;
        transform: translateY(0);
        margin-top: 8px;
    }

    /* Overlay always on on mobile */
    .FundingCards-card-overlay {
        background: linear-gradient(to top,
            rgba(12, 35, 63, 0.95) 0%,
            rgba(12, 35, 63, 0.70) 55%,
            rgba(12, 35, 63, 0.35) 100%);
    }

    /* All brackets at the top on mobile */
    .FundingCards-wrapper:nth-child(even)::before {
        bottom: auto;
        top: 0;
        border-bottom: none;
        border-top: 13px solid #FFC62F;
    }
}

/* ============================================================
   BannerForm — Photo covers left 50vw (screen edge to form edge);
   form box aligns to container right. Mobile: photo top, stack below.
   ============================================================ */

.BannerForm {
    padding: 0 0 0;
    margin-top: 100px;
    position: relative;
}

/* Photo + dark overlay, clipped to exactly the left half of the viewport.
   Because the form box is flex: 0 0 50% of the centered container,
   its left edge always lands at 50vw across all desktop breakpoints. */
.BannerForm::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 50vw;
    background-image: linear-gradient(rgba(0,0,0,0.52), rgba(0,0,0,0.52)), var(--bg-img);
    background-size: cover;
    background-position: center;
    pointer-events: none;
    z-index: 0;
}

.BannerForm-photo-mob {
    display: none;
}

.BannerForm .container {
    position: relative;
    z-index: 1;
}

.BannerForm-row {
    display: flex;
    align-items: stretch;
    min-height: 480px;
}

.BannerForm-left {
    align-self: center;
    margin-left: auto;
    padding: 40px;
    background: #fff;
}

.BannerForm-list-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1.2rem;
    color: #0C233F;
    margin-bottom: 16px;
}

.BannerForm-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.BannerForm-list-item {
    position: relative;
    padding: 5px 0 5px 28px;
    font-family: montserrat, sans-serif;
    font-size: 1rem;
    color: #000;
    line-height: 1.5;
}

.BannerForm-list-item::before {
    content: '—';
    position: absolute;
    left: 0;
    color: #FFC62F;
}

.BannerForm-box {
    flex: 0 0 50%;
    background: #fff;
    border: 2px solid #0C233F;
    border-left: 0px solid transparent;
    position: relative;
    z-index: 2;
    padding: 48px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.BannerForm-box-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    line-height: 1.2;
    margin-bottom: 24px;
}

/* ----- Mobile ----- */
@media (max-width: 767px) {
    .BannerForm {
        padding: 40px 0 0;
    }

    .BannerForm::before {
        display: none;
    }

    .BannerForm-photo-mob {
        display: block;
        background-image: var(--bg-img);
        background-size: cover;
        background-position: center;
        min-height: 240px;
    }

    .BannerForm .container {
        margin-top: -24px;
        position: relative;
        z-index: 3;
    }

    .BannerForm-row {
        flex-direction: column;
        min-height: 0;
    }

    .BannerForm-left {
        margin-left: 0;
        align-self: stretch;
        padding: 28px 24px 20px;
    }

    .BannerForm-box {
        flex: none;
        width: 100%;
        padding: 20px 24px 32px;
        justify-content: flex-start;
        border-left: 2px solid #0C233F;
        
    }
}

/* ============================================================
   PicText — Two-column picture/video + text section.
   Options: photo side, video swap, hatched gold deco, multi-CTA.
   ============================================================ */

.PicText {
    padding: 100px 0 0;
}

.PicText-media {
    position: relative;
}

.PicText-media img {
    width: 100%;
    height: auto;
    display: block;
}

.PicText-media iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    display: block;
    border: 0;
}

/* Hatched gold corner decoration — same pattern as CostTabs panels */
.PicText-deco {
    position: absolute;
    top: -15px;
    right: -15px;
    width: 100px;
    height: 100px;
    pointer-events: none;
    overflow: hidden;
}

.PicText-deco::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(
        45deg,
        #FFC62F 0,
        #FFC62F 1px,
        transparent 2px,
        transparent 7px
    );
    clip-path: polygon(0 0, 100% 0, 100% 100%);
}

/* Corner variants via data-corner attribute */
.PicText-deco[data-corner="top-left"] {
    top: -15px;
    right: auto;
    left: -15px;
}
.PicText-deco[data-corner="top-left"]::before {
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

.PicText-deco[data-corner="bottom-right"] {
    top: auto;
    right: -15px;
    bottom: -15px;
}
.PicText-deco[data-corner="bottom-right"]::before {
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.PicText-deco[data-corner="bottom-left"] {
    top: auto;
    right: auto;
    bottom: -15px;
    left: -15px;
}
.PicText-deco[data-corner="bottom-left"]::before {
    clip-path: polygon(0 0, 100% 100%, 0 100%);
}

@media (min-width: 992px) {
    .PicText-text {
        padding-left: 2rem;
    }
}

.PicText-subtitle {
    color: #0070B9;
    font-family: montserrat-bold, sans-serif;
    font-size: 1rem;
    margin-bottom: 8px;
}

.PicText-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    line-height: 1.2;
    margin-bottom: 16px;
}

.PicText-body {
    font-family: montserrat, sans-serif;
    color: #000;
    font-size: 1rem;
    line-height: 1.65;
    margin-bottom: 28px;
}

.PicText-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.PicText-btn {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    background: #0C233F;
    color: #fff;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    padding: 14px 28px;
    text-decoration: none !important;
    transition: background 0.2s;
}

.PicText-btn:hover {
    background: #0070B9;
    color: #fff;
    text-decoration: none;
}

.PicText-btn-arrow {
    color: #FFC62F;
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* ----- Mobile ----- */
@media (max-width: 767px) {
    .PicText {
        padding: 40px 0 0;
    }

    .PicText-deco {
        width: 70px;
        height: 70px;
        top: -10px;
        right: -10px;
    }

    .PicText-deco[data-corner="top-left"] {
        right: auto;
        left: -10px;
    }

    .PicText-deco[data-corner="bottom-right"] {
        top: auto;
        right: -10px;
        bottom: -10px;
    }

    .PicText-deco[data-corner="bottom-left"] {
        top: auto;
        right: auto;
        bottom: -10px;
        left: -10px;
    }

    .PicText-btn {
        width: 100%;
        justify-content: space-between;
    }
}

/* ----- Bleed variant -----
   Image spans flush to the left (or right) page edge.
   Text stays aligned with the container's inner content edge.
   Outer-padding formula: 50vw - (container-max / 2) + 15px (BS4 gutter)
   Bootstrap 4 container widths: 960px at lg, 1140px at xl.
   ------------------------------------------------------------------ */

/* Flex structure — active at all desktop breakpoints */
@media (min-width: 992px) {
    .PicText--bleed .PicText-bleed-row {
        display: flex;
        align-items: stretch;
    }

    /* Image column: exactly half the viewport, flush to the page edge */
    .PicText--bleed .PicText-bleed-img {
        flex: 0 0 50%;
        overflow: hidden;
    }

    .PicText--bleed .PicText-bleed-img .PicText-media {
        height: 100%;
    }

    .PicText--bleed .PicText-bleed-img .PicText-media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    /* Text column base — inner padding (image side) is always 3rem */
    .PicText--bleed .PicText-bleed-content {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding-top: 3rem;
        padding-bottom: 3rem;
        padding-left: 3rem;
    }

    .PicText--bleed.PicText--img-right .PicText-bleed-row {
        flex-direction: row-reverse;
    }

    .PicText--bleed.PicText--img-right .PicText-bleed-content {
        padding-left: 0;
        padding-right: 3rem;
    }
}

/* lg (992–1199px): BS4 container = 960px → outer = 50vw - 480px + 15px */
@media (min-width: 992px) and (max-width: 1199px) {
    .PicText--bleed .PicText-bleed-content {
        padding-right: max(15px, calc(50vw - 465px));
    }

    .PicText--bleed.PicText--img-right .PicText-bleed-content {
        padding-left: max(15px, calc(50vw - 465px));
    }
}

/* xl+ (≥1200px): BS4 container = 1140px → outer = 50vw - 570px + 15px */
@media (min-width: 1200px) {
    .PicText--bleed .PicText-bleed-content {
        padding-right: max(15px, calc(50vw - 555px));
    }

    .PicText--bleed.PicText--img-right .PicText-bleed-content {
        padding-left: max(15px, calc(50vw - 555px));
    }
}

/* Mobile: bleed collapses — image full-width, text padded normally */
@media (max-width: 991px) {
    .PicText--bleed .PicText-bleed-row {
        display: flex;
        flex-direction: column;
    }

    .PicText--bleed .PicText-bleed-img {
        margin-bottom: 2rem;
    }

    .PicText--bleed .PicText-bleed-img .PicText-media img {
        width: 100%;
        height: auto;
        display: block;
    }

    .PicText--bleed .PicText-bleed-content {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

/* split-yellowwhite left column heading */
.syw-l .syw-in h2 {
    color: #000;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
}

/* split-yellowwhite list (right column) */
.syw-list-label {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    margin-bottom: 10px;
    color: #000;
}

.syw-list {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
}

.syw-list li {
    padding: 7px 0;
    border-bottom: 1px dashed #000;
    font-size: 1rem;
    color: #000;
}

.syw-list li:first-child {
    border-top: 1px dashed #000;
}

.syw-cost-label {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #000;
    margin-top: 20px;
    margin-bottom: 8px;
}

.syw-cost-value {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    color: #0C233F;
    line-height: 1.2;
    margin: 0;
}

.syw-cost-value::before {
    content: '[ ';
    color: #fff;
    font-family: montserrat, sans-serif;
}

.syw-cost-value::after {
    content: ' ]';
    color: #fff;
    font-family: montserrat, sans-serif;
}

/* ============================================================
   FAProcess — Image left (screen edge), numbered steps right.
   Mobile: image stacks above content.
   ============================================================ */

.FAProcess {
    display: flex;
    align-items: stretch;
    min-height: 400px;
    padding: 100px 0 0
}

@media screen and (max-width: 991px){
    .FAProcess {
    padding: 40px 0 0
}
}


.FAProcess-photo {
    flex: 0 0 50%;
    overflow: hidden;
}

.FAProcess-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.FAProcess-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 60px 15px 60px 48px;
}

/* Align right edge of content with Bootstrap container */
@media (min-width: 768px) {
    .FAProcess-content {
        padding-right: calc((100vw - 720px) / 2 + 15px);
    }
}

@media (min-width: 992px) {
    .FAProcess-content {
        padding-right: calc((100vw - 960px) / 2 + 15px);
    }
}

@media (min-width: 1200px) {
    .FAProcess-content {
        padding-right: calc((100vw - 1140px) / 2 + 15px);
    }
}

.FAProcess-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    line-height: 1.2;
    margin-bottom: 32px;
}

.FAProcess-list {
    list-style: none;
    padding: 0;
    margin: 0 0 32px;
}

.FAProcess-item {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 14px 0;
}

.FAProcess-numwrap {
    position: relative;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    padding-left: 20px;
}

/* Bracket decoration — mirrors .FABanner-bracket */
.FAProcess-bracket {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #FFC62F;
}

.FAProcess-bracket::before,
.FAProcess-bracket::after {
    content: '';
    position: absolute;
    left: 0;
    width: 12px;
    height: 4px;
    background: #FFC62F;
}

.FAProcess-bracket::before { top: 0; }
.FAProcess-bracket::after  { bottom: 0; }

.FAProcess-num {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1.25rem;
    flex-shrink: 0;
}

.FAProcess-num--navy {
    background: #0C233F;
    color: #fff;
}

.FAProcess-num--gold {
    background: #FFC62F;
    color: #0C233F;
}

.FAProcess-num--blue {
    background: #0070B9;
    color: #fff;
}

.FAProcess-intro {
    font-size: 1rem;
    color: #10233D;
    line-height: 1.6;
    margin-bottom: 28px;
}

.FAProcess-intro p {
    margin: 0 0 12px;
}

.FAProcess-intro p:last-child {
    margin-bottom: 0;
}

.FAProcess-step-body {
    flex: 1;
}

.FAProcess-text {
    font-family: montserrat-bold, sans-serif;
    font-size: 1rem;
    color: #10233D;
    line-height: 1.5;
    margin: 0;
}

.FAProcess-detail {
    font-size: 0.95rem;
    color: #10233D;
    line-height: 1.6;
    margin-top: 6px;
}

.FAProcess-detail p {
    margin: 0 0 8px;
}

.FAProcess-detail p:last-child {
    margin-bottom: 0;
}

.FAProcess-content .PicText-btn {
    align-self: flex-start;
}

/* Media wrapper — fills photo column height, anchors deco element */
.FAProcess-photo .FAProcess-media {
    position: relative;
    height: 100%;
}

.FAProcess-photo .FAProcess-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ----- Image-right variant (non-bleed) ----- */
.FAProcess--img-right .FAProcess-photo {
    order: 2;
}

.FAProcess--img-right .FAProcess-content {
    padding-left: 15px;
    padding-right: 48px;
}

@media (min-width: 768px) {
    .FAProcess--img-right .FAProcess-content {
        padding-left: calc((100vw - 720px) / 2 + 15px);
        padding-right: 3rem;
    }
}

@media (min-width: 992px) {
    .FAProcess--img-right .FAProcess-content {
        padding-left: calc((100vw - 960px) / 2 + 15px);
    }
}

@media (min-width: 1200px) {
    .FAProcess--img-right .FAProcess-content {
        padding-left: calc((100vw - 1140px) / 2 + 15px);
    }
}

/* ----- Bleed variant -----
   Image spans flush to the page edge; text aligns with container.
   Mirrors PicText--bleed logic.
   ---------------------------------------------------------------- */

/* Override inherited flex from .FAProcess so bleed-row takes full width */
.FAProcess--bleed {
    display: block;
}

@media (min-width: 992px) {
    .FAProcess--bleed .FAProcess-bleed-row {
        display: flex;
        align-items: stretch;
    }

    .FAProcess--bleed .FAProcess-bleed-img {
        flex: 0 0 50%;
        overflow: hidden;
    }

    .FAProcess--bleed .FAProcess-bleed-img .FAProcess-media {
        position: relative;
        height: 100%;
    }

    .FAProcess--bleed .FAProcess-bleed-img .FAProcess-media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .FAProcess--bleed .FAProcess-bleed-content {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding-top: 60px;
        padding-bottom: 60px;
        padding-left: 48px;
    }

    .FAProcess--bleed.FAProcess--img-right .FAProcess-bleed-row {
        flex-direction: row-reverse;
    }

    .FAProcess--bleed.FAProcess--img-right .FAProcess-bleed-content {
        padding-left: 0;
        padding-right: 48px;
    }
}

/* lg (992–1199px): align right edge of content with BS4 container */
@media (min-width: 992px) and (max-width: 1199px) {
    .FAProcess--bleed .FAProcess-bleed-content {
        padding-right: max(15px, calc(50vw - 465px));
    }

    .FAProcess--bleed.FAProcess--img-right .FAProcess-bleed-content {
        padding-left: max(15px, calc(50vw - 465px));
    }
}

/* xl+ */
@media (min-width: 1200px) {
    .FAProcess--bleed .FAProcess-bleed-content {
        padding-right: max(15px, calc(50vw - 555px));
    }

    .FAProcess--bleed.FAProcess--img-right .FAProcess-bleed-content {
        padding-left: max(15px, calc(50vw - 555px));
    }
}

/* ----- Mobile ----- */
@media (max-width: 767px) {
    .FAProcess {
        flex-direction: column;
    }

    .FAProcess-photo {
        flex: none;
        min-height: 240px;
    }

    .FAProcess-photo .FAProcess-media {
        height: 100%;
    }

    .FAProcess-content {
        padding: 40px 15px;
    }

    .FAProcess-content .PicText-btn {
        width: auto;
        justify-content: flex-start;
    }
}

@media (max-width: 991px) {
    .FAProcess--bleed .FAProcess-bleed-row {
        display: flex;
        flex-direction: column;
    }

    .FAProcess--bleed .FAProcess-bleed-img {
        margin-bottom: 0;
        min-height: 100px;
        object-fit: cover;
    }

    .FAProcess--bleed .FAProcess-bleed-img .FAProcess-media img {
        width: 100%;
        height: auto;
        display: block;
    }

    .FAProcess--bleed .FAProcess-bleed-content {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

/* ============================================================
   LAB — List And Boxes: two-col text/list top, 2×2 link boxes below.
   Reuses .syw-list / .syw-list-label for the list column.
   Box corner animation mirrors .schoolBox / .schoolBoxY pattern.
   ============================================================ */

.LAB {
    padding: 100px 0 0;
}

.LAB-top {
    margin-bottom: 48px;
}

.LAB-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    line-height: 1.2;
    margin-bottom: 16px;
}

.LAB-body {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #000;
    line-height: 1.6;
    margin-bottom: 28px;
}

.LAB-boxes {
    margin-left: -10px;
    margin-right: -10px;
}

.LAB-box-col {
    padding: 0 10px;
    margin-bottom: 20px;
}

.LAB-box {
    display: flex;
    align-items: center;
    background: #0C233F;
    color: #fff;
    padding: 24px 28px;
    min-height: 110px;
    position: relative;
    overflow: hidden;
    text-decoration: none !important;
}

.LAB-box-text {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1.1rem;
    margin: 0;
    position: relative;
    z-index: 2;
    transition: color ease 0.5s;
}

.LAB-box:hover .LAB-box-text {
    color: #0C233F;
}

.LAB-box-arrow {
    position: absolute;
    bottom: 8px;
    right: 10px;
    font-size: 1.1rem;
    line-height: 1;
    z-index: 2;
    transition: color ease 0.5s;
}

.LAB-box:hover .LAB-box-arrow {
    color: #0C233F;
}

.LAB-box-corner {
    position: absolute;
    bottom: 0;
    right: 0;
    border-right: 25px solid #FFC62F;
    border-bottom: 25px solid #FFC62F;
    border-left: 25px solid transparent;
    border-top: 25px solid transparent;
    transition: all ease 0.5s;
}

.LAB-box:hover .LAB-box-corner {
    border-width: 300px;
}

/* ----- Mobile ----- */
@media (max-width: 767px) {
    .LAB {
        padding: 40px 0;
    }

    .LAB-top {
        margin-bottom: 32px;
    }
}

/* ============================================================
   CMUTabs — What Makes Up the Cost of Attendance tabs.
   Horizontal gold tab nav (top), white active tab with bracket
   decorations, panel with two-column cost breakdown.
   Mobile: accordion.
   ============================================================ */

.CMUTabs {
    padding: 100px 0 0;
}

.CMUTabs-intro {
    text-align: center;
    margin-bottom: 48px;
}

.CMUTabs-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: clamp(1.6rem, 3.5vw, 2.5rem);
    line-height: 1.2;
    margin-bottom: 12px;
}

.CMUTabs-subtitle {
    font-family: montserrat, sans-serif;
    font-size: 1rem;
    color: #000;
    line-height: 1.6;
    max-width: 600px;
    margin: 0 auto;
}

/* ----- Hidden Perch data source ----- */
.CMUTabs-src {
    display: none;
}

/* ----- Tab nav ----- */
.CMUTabs-nav {
    display: flex;
    background: #FFC62F;
    padding: 15px 15px 0;
}

.CMUTabs-tab {
    flex: 1;
    padding: 20px 16px;
    background: #FFC62F;
    border: none;
    text-align: center;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #0C233F;
    cursor: pointer;
    position: relative;
    transition: background 0.2s;
}


.CMUTabs-tab:hover:not(.is-active) {
    background: #e6b000;
}

.CMUTabs-tab.is-active {
    background: #fff;
}



/* ----- Panels ----- */

.CMUTabs-panel {
    display: none;
    padding: 48px 52px;
}

.CMUTabs-panel.is-active {
    display: block;
}

/* Column headers */
.CMUTabs-col-headers {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    padding-bottom: 8px;
}

.CMUTabs-col-label {
    font-family: montserrat-bold, sans-serif;
    font-size: 1rem;
    color: #000;
}

.CMUTabs-col-label::before {
    content: '[ ';
    color: #FFC62F;
    font-family: montserrat, sans-serif;
}

.CMUTabs-col-label::after {
    content: ' ]';
    color: #FFC62F;
    font-family: montserrat, sans-serif;
}

/* Line items */
.CMUTabs-items {
    margin-bottom: 24px;
}

.CMUTabs-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px dashed #ccc;
}


.CMUTabs-item-label {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #000;
}

.CMUTabs-item-cost {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1.5rem;
    color: #0070B9;
    flex-shrink: 0;
}

/* Estimated Total row */
.CMUTabs-total {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 24px;
    margin-top: 32px;
}

.CMUTabs-total-label {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1.2rem;
    color: #000;
}

.CMUTabs-total-cost {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 2rem;
    color: #0070B9;
}

.CMUTabs-total-cost::before {
    content: '[ ';
    color: #FFC62F;
    font-family: montserrat, sans-serif;
}

.CMUTabs-total-cost::after {
    content: ' ]';
    color: #FFC62F;
    font-family: montserrat, sans-serif;
}

/* ----- Mobile accordion ----- */
.CMUTabs-accordion {
    border: 2px solid #FFC62F;
}

.CMUTabs-acc-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 18px 20px;
    background: #FFC62F;
    border: none;
    border-top: 1px solid rgba(12, 35, 63, 0.2);
    text-align: left;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #0C233F;
    cursor: pointer;
    transition: background 0.2s;
}

.CMUTabs-acc-btn:first-child {
    border-top: none;
}

.CMUTabs-acc-btn.is-active {
    background: #0C233F;
    color: #fff;
}

.CMUTabs-acc-btn .fa-chevron-down {
    transition: transform 0.25s;
    flex-shrink: 0;
}

.CMUTabs-acc-btn.is-active .fa-chevron-down {
    transform: rotate(180deg);
}

.CMUTabs-acc-panel {
    display: none;
    padding: 28px 20px;
    border-top: 1px solid #FFC62F;
}

.CMUTabs-acc-panel.is-active {
    display: block;
}

/* ----- Mobile overrides ----- */
@media (max-width: 767px) {
    .CMUTabs {
        padding: 48px 0;
    }

    .CMUTabs-col-headers {
        display: none;
    }

    .CMUTabs-item-cost {
        font-size: 1.2rem;
    }

    .CMUTabs-total-cost {
        font-size: 1.5rem;
    }

    .CMUTabs-panel {
        padding: 28px 20px;
    }
}

/* ============================================================
   PTag — Price Tag section.
   SVG badge overlaps top-left of the navy/white two-column box.
   ============================================================ */

.PTag {
    padding: 80px 0 0;
}

.PTag-wrap {
    position: relative;
    padding-top: 90px;
}

.PTag-badge {
    position: absolute;
    top: 0;
    left: -10px;
    width: 280px;
    z-index: 2;
    pointer-events: none;
}

.PTag-badge svg {
    width: 100%;
    height: auto;
    display: block;
}

.PTag-badge-price {
    position: absolute;
    left: 18%;
    top: 36%;
    transform: translateY(-60%);
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 2rem;
    color: #fff;
    line-height: 1;
    white-space: nowrap;
    transform: rotate(-8deg);
}

.PTag-box {
    display: flex;
    align-items: stretch;
}

.PTag-left {
    flex: 0 0 45%;
    background: #0C233F;
    padding: 120px 40px 48px;
}

.PTag-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #fff;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    line-height: 1.2;
    margin-bottom: 8px;
}

.PTag-subtitle {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #FFC62F;
    font-size: 1.3rem;
    margin-bottom: 20px;
}

.PTag-body {
    font-family: montserrat, sans-serif;
    font-size: 1rem;
    color: #fff;
    line-height: 1.65;
    margin: 0;
}

.PTag-right {
    flex: 1;
    background: #fff;
    border: 2px solid #0C233F;
    padding: 40px 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.PTag-items {
    margin-bottom: 24px;
}

.PTag-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px dashed #ccc;
}


.PTag-item-label {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #000;
}

.PTag-item-cost {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1.5rem;
    color: #0070B9;
    flex-shrink: 0;
}

.PTag-total {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 16px;
    margin-top: 24px;
}

.PTag-total-label {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1.2rem;
    color: #000;
}

.PTag-total-cost {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 2rem;
    color: #0070B9;
}

.PTag-total-cost::before {
    content: '[ ';
    color: #FFC62F;
    font-family: montserrat, sans-serif;
}

.PTag-total-cost::after {
    content: ' ]';
    color: #FFC62F;
    font-family: montserrat, sans-serif;
}

/* ----- Mobile ----- */
@media (max-width: 767px) {
    .PTag {
        padding: 40px 0;
    }

    .PTag-wrap {
        padding-top: 60px;
    }

    .PTag-badge {
        width: 200px;
    }

    .PTag-badge-price {
        font-size: 1.4rem;
    }

    .PTag-box {
        flex-direction: column;
    }

    .PTag-left {
        flex: none;
        padding: 100px 24px 32px;
    }

    .PTag-right {
        padding: 28px 24px;
    }

    .PTag-item-cost {
        font-size: 1.2rem;
    }

    .PTag-total-cost {
        font-size: 1.5rem;
    }
}

/* ============================================================
   CBT — Center Bracket Text: centered heading inside yellow bracket
   rectangle, followed by a row of navy link boxes.
   ============================================================ */

.CBT {
    padding: 80px 0 0;
    text-align: center;
}

.CBT-bracket-wrap {
    position: relative;
    display: inline-block;
    padding: 40px 80px;
    margin-bottom: 56px;
}

/* Top bracket: horizontal bar + short vertical stubs on each end, facing down */
.CBT-bracket-wrap::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 260px;
    height: 28px;
    border-top: 14px solid rgba(255, 198, 47, 0.25);
    border-left: 14px solid rgba(255, 198, 47, 0.25);
    border-right: 14px solid rgba(255, 198, 47, 0.25);
    pointer-events: none;
}

/* Bottom bracket: horizontal bar + short vertical stubs on each end, facing up */
.CBT-bracket-wrap::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 260px;
    height: 28px;
    border-bottom: 14px solid rgba(255, 198, 47, 0.25);
    border-left: 14px solid rgba(255, 198, 47, 0.25);
    border-right: 14px solid rgba(255, 198, 47, 0.25);
    pointer-events: none;
}

.CBT-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: clamp(1.6rem, 3.5vw, 2.5rem);
    line-height: 1.3;
    margin: 0;
}

.CBT-heading p {
    margin: 0;
}

/* ----- Link boxes (3-up row) ----- */
.CBT-link-col {
    margin-bottom: 20px;
}

.CBT-link-box {
    display: flex;
    align-items: center;
    background: #0C233F;
    color: #fff;
    padding: 18px 24px;
    min-height: 75px;
    position: relative;
    overflow: hidden;
    text-decoration: none !important;
}

.CBT-link-text {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1.05rem;
    margin: 0;
    position: relative;
    z-index: 2;
    transition: color ease 0.5s;
}

.CBT-link-box:hover .CBT-link-text {
    color: #0C233F;
}

.CBT-link-arrow {
    position: absolute;
    bottom: 8px;
    right: 10px;
    font-size: 1.1rem;
    line-height: 1;
    z-index: 2;
    transition: color ease 0.5s;
}

.CBT-link-box:hover .CBT-link-arrow {
    color: #0C233F;
}

.CBT-link-corner {
    position: absolute;
    bottom: 0;
    right: 0;
    border-right: 25px solid #FFC62F;
    border-bottom: 25px solid #FFC62F;
    border-left: 25px solid transparent;
    border-top: 25px solid transparent;
    transition: all ease 0.5s;
}

.CBT-link-box:hover .CBT-link-corner {
    border-width: 300px;
}

/* ----- Mobile ----- */
@media (max-width: 767px) {
    .CBT {
        padding: 48px 0 0;
    }

    .CBT-bracket-wrap {
        padding: 32px 36px;
        margin-bottom: 40px;
    }
}

/* ============================================================
   TBI — Text Blocks with Icons.
   2-col block grid + full-width navy result bar + optional CTA.
   ============================================================ */

.TBI {
    padding: 80px 0 0;
}

.TBI-section-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    line-height: 1.2;
    margin-bottom: 40px;
}

/* ----- Block grid ----- */
.TBI-blocks {
    margin-bottom: 0;
}

.TBI-block-col {
    margin-bottom: 0;
    padding-top: 32px;
    padding-bottom: 32px;
    border-bottom: 1px dotted #e0e0e0;
}

/* Inner borders only — vertical divider between columns, no outer edges */
@media (min-width: 768px) {
    
    .TBI-block-col:nth-last-child(-n+2) {
        border-bottom: none;
    }
    /* Catch single-item last row */
    .TBI-block-col:last-child {
        border-bottom: none;
    }
}

.TBI-block {
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.TBI-icon {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.TBI-icon img {
    width: 60%;
    height: 60%;
    object-fit: contain;
}

.TBI-block-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: 1.7rem;
    line-height: 1.3;
    margin-bottom: 10px;
}

.TBI-block-body {
    font-family: montserrat, sans-serif;
    font-size: 0.95rem;
    color: #000;
    line-height: 1.65;
    margin: 0;
}

.TBI-block-body p {
    margin: 0;
}

/* ----- Result bar — background constrained to container width ----- */
.TBI-result {
    padding: 40px 0;
}

.TBI-result .container {
    background: #CBD9EF;
    padding-top: 40px;
    padding-bottom: 40px;
    clip-path: polygon(0 0, 100% 0, 88% 50%, 100% 100%, 0 100%);
}

.TBI-result-row {
    display: flex;
    align-items: center;
    gap: 40px;
}

.TBI-result-left {
    display: flex;
    align-items: center;
    gap: 0px;
    flex-shrink: 0;
    flex-direction: row-reverse;
}

.TBI-result-icon {
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.TBI-result-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.TBI-result-eq {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    color: #0C233F;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 3.5rem;
    flex-shrink: 0;
    line-height: 1;
}

.TBI-result-label {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    color: #fff;
    margin: 0;
    white-space: nowrap;
}

.TBI-result-right {
    flex: 1;
}

.TBI-result-body {
    font-family: montserrat, sans-serif;
    font-size: 0.95rem;
    color: #10233D;
    line-height: 1.65;
    max-width: 80%;
}

.TBI-result-body p {
    margin: 0;
}

/* ----- CTA ----- */
.TBI-cta {
    padding: 40px 0;
}

.TBI-cta .container {
    display: flex;
    justify-content: center;
}

/* ----- Mobile ----- */
@media (max-width: 767px) {
    .TBI {
        padding: 48px 0 0;
    }

    .TBI-result-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
    }

    .TBI-result-label {
        white-space: normal;
    }

    .TBI-cta .container {
        justify-content: flex-start;
    }
}

/* ============================================================
   BTB — Bracket and Text Boxes: centered heading + bracket label
   above a row of image/navy card boxes.
   ============================================================ */

.BTB {
    padding: 100px 0 0;
    text-align: center;
}

.BTB-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #000;
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    line-height: 1.2;
    margin: 0 0 20px;
}

.BTB-intro {
    color: #000;
    font-size: clamp(1rem, 1.5vw, 1.1rem);
    max-width: 560px;
    margin: 0 auto 0;
    line-height: 1.6;
}

.BTB-intro p {
    margin: 0;
}

/* Bracket decoration — left [ and right ] flanking the heading+intro */
.BTB-bracket-wrap {
    position: relative;
    display: inline-block;
    padding: 16px 40px;
    margin-bottom: 40px;
}

/* Left [ bracket */
.BTB-bracket-wrap::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 30px;
    border-top: 12px solid #FFC62F;
    border-left: 12px solid #FFC62F;
    border-bottom: 12px solid #FFC62F;
    pointer-events: none;
}

/* Right ] bracket */
.BTB-bracket-wrap::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 30px;
    border-top: 12px solid #FFC62F;
    border-right: 12px solid #FFC62F;
    border-bottom: 12px solid #FFC62F;
    pointer-events: none;
}

/* ----- Cards ----- */
.BTB-card-col {
    margin-bottom: 30px;
}

.BTB-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    background: #0C233F;
}

.BTB-card-img {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    padding: 20px 20px 0;
}

.BTB-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.BTB-card-body {
    color: #fff;
    padding: 28px 24px;
    flex: 1;
    text-align: left;
    text-align: center;
}

.BTB-card-title {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: clamp(1rem, 1.8vw, 1.2rem);
    color: #fff;
    margin: 0 0 12px;
    line-height: 1.3;
}

.BTB-card-text {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
    line-height: 1.6;
}

.BTB-card-text p {
    margin: 0;
}

/* ----- Mobile ----- */
@media (max-width: 767px) {
    .BTB {
        padding: 48px 0 40px;
    }

    .BTB-bracket-wrap {
        padding: 20px 36px;
        margin-bottom: 32px;
    }
}

/* ============================================================
   SchTabs — Scholarship Opportunities tabs.
   Horizontal gold tab nav (top), white active tab,
   panel with 2-column grid of navy link buttons.
   Mobile: accordion.
   ============================================================ */

.SchTabs {
    padding: 80px 0 80px;
}

.SchTabs-intro {
    text-align: center;
    margin-bottom: 48px;
}

.SchTabs-heading {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    color: #0C233F;
    font-size: clamp(1.6rem, 3.5vw, 2.5rem);
    line-height: 1.2;
    margin-bottom: 12px;
}

.SchTabs-subtitle {
    font-family: montserrat, sans-serif;
    font-size: 1rem;
    color: #000;
    line-height: 1.6;
    max-width: 600px;
    margin: 0 auto;
}

/* ----- Hidden Perch data source ----- */
.SchTabs-src {
    display: none;
}

/* ----- Tab nav ----- */
.SchTabs-nav {
    display: flex;
    background: #FFC62F;
    padding: 15px 15px 0;
}

.SchTabs-tab {
    flex: 1;
    padding: 20px 16px;
    background: #FFC62F;
    border: none;
    text-align: center;
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #0C233F;
    cursor: pointer;
    transition: background 0.2s;
}

.SchTabs-tab:hover:not(.is-active) {
    background: #e6b000;
}

.SchTabs-tab.is-active {
    background: #fff;
}

/* ----- Panels ----- */
.SchTabs-panels {
    border-top: none;
}

.SchTabs-panel {
    display: none;
    padding: 36px 0 0;
}

.SchTabs-panel.is-active {
    display: block;
}

/* ----- 2-column button grid ----- */
.SchTabs-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.SchTabs-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: #0C233F;
    padding: 20px 24px;
    text-decoration: none !important;
    transition: background 0.2s;
}

.SchTabs-btn:hover {
    background: #1a3a5c;
    text-decoration: none !important;
}

.SchTabs-btn-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.SchTabs-btn-name {
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #fff;
    line-height: 1.3;
}

.SchTabs-btn-amount {
    font-family: montserrat, sans-serif;
    font-size: 0.95rem;
    color: #FFC62F;
}

.SchTabs-btn-arrow {
    color: #fff;
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* ----- Accordion (mobile) ----- */
.SchTabs-accordion {
    border-top: 2px solid #FFC62F;
}

.SchTabs-acc-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 18px 20px;
    background: #FFC62F;
    border: none;
    border-bottom: 2px solid rgba(12, 35, 63, 0.2);
    font-family: montserrat-bold, sans-serif;
    font-weight: bold;
    font-size: 1rem;
    color: #0C233F;
    cursor: pointer;
    text-align: left;
}

.SchTabs-acc-btn .fa-chevron-down {
    transition: transform 0.2s;
}

.SchTabs-acc-btn.is-active .fa-chevron-down {
    transform: rotate(180deg);
}

.SchTabs-acc-panel {
    display: none;
    padding: 24px 0;
}

.SchTabs-acc-panel.is-active {
    display: block;
}

.securityDD .scho-dd a {
    color: #fff;
    text-decoration: underline;
}


/* ----- Mobile ----- */
@media (max-width: 767px) {
    .SchTabs {
        padding: 48px 0 48px;
    }

    .SchTabs-grid {
        grid-template-columns: 1fr;
    }
}
.box-check{
    padding-top: 60px;
}

.box-check .container .row .mealPCol {
    padding: 0px;
}
.box-check h3 {
    padding: 0px;
}

.box-check section {
    padding-top: 0px;
}

.PTag2 { --navy:#132349; --navy-2:#0e1c3a; --gold:#f4b942; --gold-dark:#e0a52e; --ink:#132349; background:#fff; padding:64px 0; }
.PTag2 .container { max-width:1180px; margin:0 auto; padding:0 24px; }
.PTag2-src { display:none !important; }

/* Intro */
.pt2-intro {    text-align: center;
    max-width: 760px;
    margin: 0 auto;
    line-height: 0px;
    padding: 40px 0px;}
.pt2-heading { font-size:1.25rem; font-weight:800; color:var(--navy); margin:0 0 8px; }
.pt2-subtitle { font-size:1.1rem; font-weight:700; color:var(--navy); margin:0 0 24px; }
.pt2-intro-copy p:first-child,
.pt2-intro-copy > *:first-child { font-weight:700; color:var(--navy); margin-bottom:8px; }
.pt2-intro-copy { color:#333; line-height:1.6; }

/* Compare panel */
.pt2-compare { display:grid; grid-template-columns:1fr 1fr; border:1px solid #d9d9d9; margin-bottom:40px; }
@media (max-width:820px){ .pt2-compare { grid-template-columns:1fr; } }

.pt2-actual { background:var(--navy); color:#fff; padding:48px 40px; display:flex; flex-direction:column; justify-content:center; }
.pt2-actual-eyebrow { font-style:italic; font-size:1.4rem; font-weight:400; }
.pt2-actual-highlight { font-style:italic; font-size:2rem; font-weight:800; color:var(--gold); line-height:1.2; margin-bottom:16px; }
.pt2-actual-amount-row { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.pt2-actual-amount { font-size:2.75rem; font-weight:800; }
.pt2-actual-unit { font-size:1.1rem; }
.pt2-actual-period { font-size:1.05rem; margin-top:4px; }

.pt2-sticker { padding:36px 40px; }
.pt2-sticker-label { display:block; color:#8a8f9a; font-weight:700; letter-spacing:.02em; margin-bottom:16px; font-size:1.05rem; }
.pt2-item { display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px dashed #c9c9c9; }
.pt2-item-label {     font-weight: 700;
    color: var(--navy);
    font-family: 'montserrat-bold';}
.pt2-item-cost {     font-weight: 700;
    color: #0070b9;
    font-family: 'montserrat-bold';}

.pt2-sticker-total-row { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:24px; }
.pt2-sticker-total-label { font-weight:800; color:var(--navy); font-size:1.9rem; }

.pt2-tag-shape {     position: relative;
    display: inline-flex;
    align-items: center;
    background: var(--gold);
    color: #fff;
    font-weight: 800;
    font-size: 1.6rem;
    padding: 10px 30px 10px 18px;
    clip-path: polygon(0 0,90% 0,110% 50%,88% 100%,0 100%);}
.pt2-tag-amount { position:relative; z-index:1; }
.pt2-tag-strike { position:absolute; left:10px; right:26px; top:50%; height:3px; background:#fff; transform:translateY(-50%) rotate(-6deg); }
.pt2-tag-dot {     position: absolute;
    right: 6px;
    top: 50%;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff;
    transform: translateY(-50%); }

.pt2-sticker-note { font-style:italic; color:#555; font-size:.92rem; margin-top:20px; line-height:1.5; }

/* Additional Costs accordion */
.pt2-additional { margin-top:8px; }
.pt2-additional-heading { text-align:center; font-size:1.6rem; font-weight:800; color:var(--navy); margin-bottom:20px; }

.pt2-acc-panel { border:1px solid #e2e2e2; margin-bottom:16px; }
.pt2-acc-btn { width:100%; display:flex; align-items:center; justify-content:space-between; background:var(--navy); color:#fff; font-weight:800; font-size:1.05rem; padding:16px 20px; border:0; cursor:pointer; text-align:left; }
.pt2-acc-btn i { transition:transform .2s ease; }
.pt2-acc-btn.is-active i { transform:rotate(180deg); }

.pt2-acc-body { display:none; background:var(--navy); color:#fff; }
.pt2-acc-body.is-active { display:block; }

.pt2-acc-table-head, .pt2-acc-row { display:grid; grid-template-columns:1fr 130px 130px; gap:12px; padding:14px 20px; border-top:1px solid rgba(255,255,255,.12); }
.pt2-acc-table-head {     color: #fff;
    font-weight: 700;
    font-size: .95rem;
    font-family: 'montserrat-bold';}
.pt2-acc-row-label { font-weight:700; }
.pt2-acc-row-semester, .pt2-acc-row-year, .pt2-acc-th-semester, .pt2-acc-th-year { text-align:right; }

.pt2-acc-footnotes { padding:16px 20px; border-top:1px solid rgba(255,255,255,.12); font-size:.85rem; color:#dfe3ee; }
.pt2-acc-pdf { padding:16px 20px; border-top:1px solid rgba(255,255,255,.12); }
.pt2-acc-pdf a { color:#fff; font-weight:700; text-decoration:underline; }

/* Top-level tabs (desktop) */
.PTag2-box .PTag2-nav { display:flex; background:var(--gold); }
.PTag2-tab { flex:1; padding:16px 20px; background:transparent; border:0; font-weight:800; color:var(--navy); cursor:pointer; }
.PTag2-tab.is-active { background:#fff; border:2px solid #1a3fbd; }
.PTag2-panel { display:none; padding-top:20px; }
.PTag2-panel.is-active { display:block; }

/* Mobile accordion for top-level tabs */
.PTag2-accordion .PTag2-acc-top-btn { width:100%; display:flex; justify-content:space-between; align-items:center; background:var(--gold); border:0; font-weight:800; color:var(--navy); padding:16px 20px; cursor:pointer; margin-bottom:2px; }
.PTag2-accordion .PTag2-acc-top-btn i { transition:transform .2s ease; }
.PTag2-accordion .PTag2-acc-top-btn.is-active i { transform:rotate(180deg); }
.PTag2-accordion .PTag2-acc-top-panel { display:none; padding-top:32px; }
.PTag2-accordion .PTag2-acc-top-panel.is-active { display:block; }

.tabs-header-cost-afford {
    text-align: center;
    margin-bottom: 40px;
}

.tabs-header-cost-afford h2 {
        font-size: 2.25rem;
    font-weight: 800;
    color: var(--navy);
    margin: 0 0 8px;
}


.PTag2-additional-built {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: start;
}

.PTag2-additional-built .pt2-acc-panel {
    margin-bottom: 0; /* grid gap handles spacing now instead */
}

@media (max-width: 767px) {
    .PTag2-additional-built {
        grid-template-columns: 1fr;
    }
}

.btn-splits-financial {
    display: flex;
}
.btn-fin-wrapper {
    display: flex;
    gap: 20px;
}

.TBI-block-col.col-12 {
    border-bottom: 1px dotted #e0e0e0;
    padding-bottom: 32px;
}


.PTag2 { --navy:#132349; --navy-2:#0e1c3a; --gold:#f4b942; --gold-dark:#e0a52e; --ink:#132349; background:#fff; padding:64px 0; }
.PTag2 .container { max-width:1180px; margin:0 auto; padding:0 24px; }
.PTag2-src { display:none !important; }
 
/* Intro */
.pt2-intro { text-align:center; max-width:760px; margin:0 auto 40px; }
.pt2-heading { font-size:1.45rem; font-weight:800; color:var(--navy); margin:0 0 8px; }
.pt2-subtitle { font-size:1.1rem; font-weight:700; color:var(--navy); margin:0 0 24px; }
.pt2-intro-copy p:first-child,
.pt2-intro-copy > *:first-child { font-weight:700; color:var(--navy); margin-bottom:8px; }
.pt2-intro-copy { color:#333; line-height:1.6; }
 
/* Compare panel */
.pt2-compare { display:grid; grid-template-columns:1fr 1fr; border:1px solid #d9d9d9; margin-bottom:40px; }
@media (max-width:820px){ .pt2-compare { grid-template-columns:1fr; } }
 
.pt2-actual { background:var(--navy); color:#fff; padding:48px 40px; display:flex; flex-direction:column; justify-content:center; }
.pt2-actual-eyebrow { font-style:italic; font-size:1.4rem; font-weight:400; }
.pt2-actual-highlight { font-style:italic; font-size:2rem; font-weight:800; color:var(--gold); line-height:1.2; margin-bottom:16px; }
.pt2-actual-amount-row { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.pt2-actual-amount { font-size:2.75rem; font-weight:800; }
.pt2-actual-unit { font-size:1.1rem; }
.pt2-actual-period { font-size:1.05rem; margin-top:4px; }
 
.pt2-sticker { padding:36px 40px; }
.pt2-sticker-label { display:block; color:#8a8f9a; font-weight:700; letter-spacing:.02em; margin-bottom:16px; font-size:1.05rem; }
.pt2-item { display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px dashed #c9c9c9; }
.pt2-item-label { font-weight:700; color:var(--navy); }
.pt2-item-cost { font-weight:700; color:#2e6fd9; }
 
.pt2-sticker-total-row { display:flex; align-items:center; justify-content:spece-between; gap:16px; margin-top:24px; }
.pt2-sticker-total-label { font-weight:800; color:var(--navy); font-size:1.8rem; }
 
.pt2-tag-shape { position:relative; display:inline-flex; align-items:center; background:var(--gold); color:#fff; font-weight:800; font-size:1.6rem; padding:10px 30px 10px 18px; clip-path:polygon(0 0,88% 0,100% 50%,88% 100%,0 100%); }
.pt2-tag-amount { position:relative; z-index:1; }
.pt2-tag-strike { position:absolute; left:10px; right:26px; top:50%; height:3px; background:#fff; transform:translateY(-50%) rotate(-6deg); }
.pt2-tag-dot { position:absolute; right:16px; top:50%; width:8px; height:8px; border-radius:50%; background:#fff; transform:translateY(-50%); }
 
.pt2-sticker-note { font-style:italic; color:#555; font-size:.92rem; margin-top:20px; line-height:1.5; }
 
/* Simple sticker layout (no box) — used when a tab has no single fixed total */
.pt2-simple { max-width:700px; margin:0 auto 40px; }
.pt2-simple .pt2-sticker-label { display:block; color:#8a8f9a; font-weight:700; letter-spacing:.02em; margin-bottom:16px; font-size:1.05rem; text-align:left; }
.pt2-simple-item { border-bottom:1px dashed #c9c9c9; padding:14px 0; }
.pt2-simple-item-row { display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
.pt2-simple-item-row .pt2-item-label { font-weight:700; color:var(--navy); }
.pt2-simple-item-row .pt2-item-cost { font-weight:700; color:#2e6fd9; white-space:nowrap; }
.pt2-simple-item-note { margin:6px 0 0; color:#555; font-size:.92rem; line-height:1.5; }
 
/* Additional Costs accordion */
.pt2-additional { margin-top:8px; }
.pt2-additional-heading { text-align:center; font-size:1.6rem; font-weight:800; color:var(--navy); margin-bottom:20px; }
 
.pt2-acc-panel { border:1px solid #e2e2e2; margin-bottom:16px; }
.pt2-acc-btn { width:100%; display:flex; align-items:center; justify-content:space-between; background:var(--navy); color:#fff; font-weight:800; font-size:1.05rem; padding:16px 20px; border:0; cursor:pointer; text-align:left; }
.pt2-acc-btn i { transition:transform .2s ease; }
.pt2-acc-btn.is-active i { transform:rotate(180deg); }

:root {
    --navy: #132349;
    --navy-2: #0e1c3a;
    --gold: #f4b942;
    --gold-dark: #e0a52e;
    --ink: #132349;
}

.PTag2 {
    background: #fff;
    padding: 64px 0;
}
 
.pt2-acc-body { display:none; background:var(--navy); color:#fff; }
.pt2-acc-body.is-active { display:block; }
 
.pt2-acc-table-head, .pt2-acc-row { display:grid; grid-template-columns:1fr 130px 130px; gap:12px; padding:14px 20px; border-top:1px solid rgba(255,255,255,.12); }
.pt2-acc-table-head.pt2-acc-two-col, .pt2-acc-row.pt2-acc-two-col { grid-template-columns:1fr 130px; }
.pt2-acc-table-head { color:var(--gold); font-weight:700; font-size:.85rem; }
.pt2-acc-row-label { font-weight:700; }
.pt2-acc-row-semester, .pt2-acc-row-year, .pt2-acc-th-semester, .pt2-acc-th-year { text-align:right; }
 
.pt2-acc-footnotes { padding:16px 20px; border-top:1px solid rgba(255,255,255,.12); font-size:.85rem; color:#dfe3ee; }
.pt2-acc-pdf { padding:16px 20px; border-top:1px solid rgba(255,255,255,.12); }
.pt2-acc-pdf a { color:var(--gold); font-weight:700; text-decoration:underline; }
 
/* Top-level nav — real page links now, not JS-swapped tabs */
.PTag2-nav { display:flex; flex-wrap:wrap; background:var(--gold); }
.PTag2-tab { flex:1; min-width:160px; padding:16px 20px; background:transparent; font-weight:800; color:var(--navy); text-align:center; text-decoration:none; }
.PTag2-tab.is-active { background:#fff; border:2px solid #1a3fbd; }
.PTag2-panel-content { padding-top:40px; }
 
/* Helper fields only used by JS for matching — never shown */
.pt2-page-url { display:none !important; }
 
@media (max-width:600px) {
    .PTag2-tab { min-width:100%; }
}
.cost-afford-fin-heading {
    text-align: center;
    padding: 30px 0px;
}

.disclaimer-text {
padding: 30px 0px;
}

.pt-80 {
    padding-top: 80px;
}





.pt2-acc-row.pt2-acc-row--full {
    grid-template-columns: 1fr;
}

.pt2-acc-row.pt2-acc-row--full .pt2-acc-row-semester,
.pt2-acc-row.pt2-acc-row--full .pt2-acc-row-year {
    display: none;
}