.program-intro-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(400px, 0.85fr);
    gap: 3rem;
    width: min(100% - 2rem, 1200px);
    margin-inline: auto;
    align-items: start;
}

.program-intro-content,
.program-intro-form {
    min-width: 0;
}

.program-intro-content h1,
.program-intro-copy > :first-child {
    margin-top: 0;
}

.program-intro-copy > :last-child {
    margin-bottom: 0;
}

.program-intro-form .web-form-wrapper-program-page {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}


/* ==================================================
   QUICK LINKS / ICONS
   ================================================== */

.program-quick-links-section {
    position: relative;
    margin-top: -65px;
    padding: 2.5rem 1rem;
    background-color: #002d72;
}

.program-quick-links-inner {
    width: min(100%, 1200px);
    margin-inline: auto;
}

.program-icon-grid {
    display: grid;
    grid-template-columns: repeat(var(--icon-count), minmax(0, 1fr));
    gap: 1.5rem;
    margin: 0;
}

.program-icon-grid + .program-icon-grid,
.program-icon-grid + .program-action-grid {
    margin-top: 2rem;
}

.program-icon-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
    padding: 0.75rem;
    color: #ffffff;
    text-align: center;
    text-decoration: none;
}

.program-icon-link i {
    color: inherit;
}

.program-icon-link:hover,
.program-icon-link:focus-visible {
    color: #fdb813;
    text-decoration: none;
}

.program-icon-link:focus-visible {
    outline: 3px solid #fdb813;
    outline-offset: 4px;
}


/* ==================================================
   ACTION BUTTONS
   ================================================== */

.program-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
}

/* One button */
.program-action-grid:has(.program-action-link:only-child) {
    grid-template-columns: 1fr;
}

.program-action-grid:has(.program-action-link:only-child) .program-action-link {
    width: calc((100% - 3rem) / 3);
    justify-self: center;
}

/* Two buttons */
.program-action-grid:has(.program-action-link:nth-child(2):last-child) {
    grid-template-columns: repeat(2, calc((100% - 3rem) / 3));
    justify-content: center;
}

.program-action-link {
    display: block;
    padding: 0.8rem 1rem;
    background-color: #fdb813;
    color: #0a2140;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.program-action-link:hover {
    background-color: #ffffff;
    color: #0a2140;
    text-decoration: none;
}

.program-action-link:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 3px;
}


/* ==================================================
   BACKGROUND / DEGREE SECTION
   ================================================== */

.program-background-inner {
    display: flex;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 4rem 20px;
    box-sizing: border-box;
}

.program-background-inner-left {
    justify-content: flex-start;
}

.program-background-inner-right {
    justify-content: flex-end;
}

.program-background-content {
    width: min(100%, 450px);
    padding: 2.5rem;
    background-color: rgba(0, 45, 114, 0.9);
    color: #ffffff;
    font-family: var(--fontBlinnInner);
    font-size: 1.25rem;
    line-height: 1.3;
}

.program-intro-section-no-links {
    margin-bottom: -65px;
}


/* ==================================================
   RESPONSIVE
   ================================================== */

@media screen and (max-width: 900px) {
    .program-intro-layout {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

@media screen and (max-width: 800px) {
    .program-background-inner {
        display: block;
        padding: 0;
    }

    .program-background-content {
        width: 100%;
        max-width: none;
        padding: 2rem 1rem;
    }
}

@media screen and (max-width: 700px) {
    .program-icon-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2rem 1.5rem;
    }

    .program-action-grid,
    .program-action-grid:has(.program-action-link:only-child),
    .program-action-grid:has(.program-action-link:nth-child(2):last-child) {
        grid-template-columns: 1fr;
        justify-content: stretch;
    }

    .program-action-grid:has(.program-action-link:only-child) .program-action-link {
        width: 100%;
    }

    .program-action-grid .program-action-link {
        grid-column: auto !important;
    }
}


/* ==================================================
   TEMPORARY DEMO OVERRIDE
   Return legacy sections to normal document flow.
   ================================================== */

.wrapper-sections {
    top: 0 !important;
    margin-top: 0 !important;
}