:root {
    --navy: #5b1023;
    --navy-2: #7a1830;
    --gold: #d9a441;
    --orange: #d9a441;
    --ink: #23151a;
    --muted: #6c7890;
    --soft: #faf6f7;
    --line: #eadde1;
    --radius: 8px;
    --shadow: 0 18px 45px rgba(91, 16, 35, .12);
}

* {
    box-sizing: border-box;
}

body {
    font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--ink);
    background: #fff;
    line-height: 1.65;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--navy);
    --bs-btn-border-color: var(--navy);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--navy-2);
    --bs-btn-hover-border-color: var(--navy-2);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #43101d;
    --bs-btn-active-border-color: #43101d;
}

.btn-outline-primary {
    --bs-btn-color: var(--navy);
    --bs-btn-border-color: var(--navy);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--navy);
    --bs-btn-hover-border-color: var(--navy);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--navy-2);
    --bs-btn-active-border-color: var(--navy-2);
}

.text-primary-emphasis {
    color: var(--navy) !important;
}

.text-bg-primary {
    color: #fff !important;
    background-color: var(--navy) !important;
}

a {
    color: var(--navy-2);
    text-decoration: none;
    transition: .2s ease;
}

a:hover {
    color: var(--orange);
}

.topbar {
    background: var(--navy);
    color: rgba(255, 255, 255, .88);
    font-size: .85rem;
    padding: .55rem 0;
}

.topbar-contact,
.topbar-links {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
}

.topbar a {
    color: rgba(255, 255, 255, .9);
}

.topbar a:hover {
    color: var(--gold);
}

.main-navbar {
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 10px 30px rgba(91, 16, 35, .08);
    backdrop-filter: blur(10px);
}

.navbar-brand {
    display: flex;
    align-items: center;
    gap: .75rem;
    color: var(--navy);
}

.navbar-brand img {
    width: 54px;
    height: 54px;
}

.navbar-brand strong,
.navbar-brand small {
    display: block;
    line-height: 1.1;
}

.navbar-brand small {
    color: var(--muted);
    font-weight: 600;
    letter-spacing: .02em;
}

.main-navbar .nav-link {
    color: var(--navy);
    font-weight: 700;
    padding: 1.75rem .65rem;
    position: relative;
}

.main-navbar .nav-link::after {
    content: '';
    position: absolute;
    left: .65rem;
    right: .65rem;
    bottom: 1.15rem;
    height: 3px;
    background: var(--orange);
    transform: scaleX(0);
    transform-origin: left;
    transition: .25s ease;
}

.main-navbar .nav-link:hover::after,
.main-navbar .nav-link.active::after {
    transform: scaleX(1);
}

.main-navbar .nav-link.active,
.main-navbar .nav-link:hover {
    color: var(--orange);
}

.dropdown-menu {
    border: 0;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: .75rem;
}

.dropdown-item {
    border-radius: 6px;
    font-weight: 600;
    padding: .65rem .9rem;
}

.main-navbar .dropdown-toggle::after {
    display: none;
}

.main-navbar .public-menu {
    position: relative;
}

.public-dropdown {
    min-width: 385px;
    padding: 1.25rem 0;
    margin-top: 0;
    background: #ededed;
    border-radius: 0;
    border: 0;
    box-shadow: 0 18px 35px rgba(91, 16, 35, .16);
}

.public-dropdown.wide {
    min-width: 470px;
}

.public-dropdown.compact {
    min-width: 330px;
}

.public-dropdown .dropdown-item {
    color: #626262;
    border-radius: 0;
    font-size: 1.04rem;
    font-weight: 500;
    line-height: 1.35;
    padding: .78rem 2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.public-dropdown .dropdown-item:hover,
.public-dropdown .dropdown-item:focus {
    color: var(--orange);
    background: rgba(255, 255, 255, .55);
}

.dropdown-submenu {
    position: relative;
}

.dropdown-submenu .submenu {
    position: absolute;
    top: 0;
    left: 100%;
    min-width: 275px;
    list-style: none;
    margin: 0;
    padding: 1rem 0;
    background: #ededed;
    box-shadow: 0 18px 35px rgba(91, 16, 35, .16);
    opacity: 0;
    pointer-events: none;
    transform: translateX(10px);
    transition: .18s ease;
}

.dropdown-submenu:hover > .submenu,
.dropdown-submenu:focus-within > .submenu {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
}

@media (min-width: 992px) {
    .main-navbar .public-menu:hover > .public-dropdown,
    .main-navbar .public-menu:focus-within > .public-dropdown {
        display: block;
    }

    .main-navbar .public-menu:hover > .nav-link,
    .main-navbar .public-menu:focus-within > .nav-link {
        color: var(--orange);
    }

    .main-navbar .public-menu:hover > .nav-link::after,
    .main-navbar .public-menu:focus-within > .nav-link::after {
        transform: scaleX(1);
    }
}

.hero {
    min-height: 670px;
    position: relative;
    color: #fff;
    overflow: hidden;
    background: var(--navy);
}

.hero-slide {
    min-height: 670px;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
}

.hero-slide::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(100deg, rgba(50, 9, 21, .95) 0%, rgba(91, 16, 35, .82) 48%, rgba(217, 164, 65, .25) 100%),
        radial-gradient(circle at 72% 30%, rgba(217, 164, 65, .3), transparent 30%);
}

.hero-slide.gradient-navy-gold::before {
    background:
        linear-gradient(100deg, rgba(50, 9, 21, .95) 0%, rgba(91, 16, 35, .82) 48%, rgba(217, 164, 65, .28) 100%),
        radial-gradient(circle at 72% 30%, rgba(217, 164, 65, .32), transparent 30%);
}

.hero-slide.gradient-navy-orange::before {
    background:
        linear-gradient(100deg, rgba(50, 9, 21, .96) 0%, rgba(91, 16, 35, .78) 52%, rgba(217, 164, 65, .36) 100%),
        radial-gradient(circle at 75% 28%, rgba(217, 164, 65, .36), transparent 34%);
}

.hero-slide.gradient-dark-focus::before {
    background:
        linear-gradient(100deg, rgba(0, 0, 0, .9) 0%, rgba(91, 16, 35, .78) 55%, rgba(0, 0, 0, .2) 100%);
}

.hero-slide.gradient-clean-blue::before {
    background:
        linear-gradient(100deg, rgba(91, 16, 35, .92) 0%, rgba(122, 24, 48, .64) 58%, rgba(255, 255, 255, .1) 100%);
}

.hero-slide.gradient-gold-glow::before {
    background:
        linear-gradient(105deg, rgba(50, 9, 21, .96) 0%, rgba(99, 18, 39, .72) 50%, rgba(217, 164, 65, .46) 100%),
        radial-gradient(circle at 78% 28%, rgba(255, 207, 107, .42), transparent 32%);
}

.hero-slide.gradient-royal-blue::before {
    background:
        linear-gradient(105deg, rgba(50, 9, 21, .94) 0%, rgba(122, 24, 48, .78) 55%, rgba(217, 164, 65, .28) 100%);
}

.hero-slide.gradient-emerald-navy::before {
    background:
        linear-gradient(105deg, rgba(50, 9, 21, .96) 0%, rgba(9, 84, 86, .72) 58%, rgba(33, 166, 121, .28) 100%),
        radial-gradient(circle at 74% 30%, rgba(54, 205, 148, .28), transparent 34%);
}

.hero-slide.gradient-maroon-gold::before {
    background:
        linear-gradient(105deg, rgba(50, 9, 21, .95) 0%, rgba(93, 24, 43, .76) 56%, rgba(217, 164, 65, .34) 100%);
}

.hero-slide.gradient-purple-navy::before {
    background:
        linear-gradient(105deg, rgba(50, 9, 21, .96) 0%, rgba(54, 42, 123, .76) 56%, rgba(102, 77, 196, .28) 100%);
}

.hero-slide.gradient-teal-orange::before {
    background:
        linear-gradient(105deg, rgba(50, 9, 21, .96) 0%, rgba(10, 93, 116, .72) 56%, rgba(217, 164, 65, .36) 100%),
        radial-gradient(circle at 78% 30%, rgba(217, 164, 65, .32), transparent 32%);
}

.hero-slide.gradient-mono-dark::before {
    background:
        linear-gradient(100deg, rgba(0, 0, 0, .88) 0%, rgba(8, 19, 34, .74) 56%, rgba(0, 0, 0, .38) 100%);
}

.hero-slide.gradient-soft-academic::before {
    background:
        linear-gradient(105deg, rgba(50, 9, 21, .92) 0%, rgba(122, 24, 48, .64) 55%, rgba(244, 246, 250, .16) 100%),
        radial-gradient(circle at 76% 32%, rgba(217, 164, 65, .22), transparent 34%);
}

.hero-content {
    position: relative;
    max-width: 770px;
    padding: 6rem 0 7rem;
}

.section-kicker {
    color: var(--orange);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .78rem;
}

.text-gold {
    color: var(--gold) !important;
}

.hero h1 {
    font-size: var(--hero-title-size, 72px);
    font-weight: 800;
    line-height: 1.06;
    margin: 1rem 0;
}

.hero p {
    font-size: var(--hero-desc-size, 20px);
    color: rgba(255, 255, 255, .86);
    max-width: 640px;
}

.btn {
    border-radius: 7px;
    font-weight: 800;
    padding: .78rem 1.15rem;
}

.btn-gold {
    color: #251017;
    background: var(--gold);
    border-color: var(--gold);
}

.btn-gold:hover {
    color: #251017;
    background: #edbd5a;
    border-color: #edbd5a;
    transform: translateY(-1px);
}

.btn-outline-light:hover {
    color: var(--navy);
}

.section-padding {
    padding: 5.5rem 0;
}

.section-title {
    max-width: 760px;
    margin-bottom: 2.5rem;
}

.section-title h2 {
    color: var(--navy);
    font-size: clamp(1.9rem, 3vw, 3rem);
    font-weight: 800;
    line-height: 1.16;
    margin-top: .5rem;
}

.section-title p {
    color: var(--muted);
    margin-bottom: 0;
}

.compact-title {
    max-width: 620px;
    margin-bottom: 1.25rem;
}

.compact-title h2 {
    font-size: clamp(1.45rem, 2vw, 2.05rem);
    line-height: 1.2;
}

.soft-section {
    background: var(--soft);
}

.card-clean {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 10px 28px rgba(91, 16, 35, .06);
    transition: .25s ease;
    height: 100%;
}

.card-clean:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow);
}

.home-pmb-section {
    background:
        radial-gradient(circle at 14% 18%, rgba(217, 164, 65, .14), transparent 26%),
        linear-gradient(180deg, #fff 0%, #faf6f7 100%);
}

.pmb-highlight-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 4.5rem;
}

.pmb-highlight-card {
    position: relative;
    min-height: 118px;
    display: grid;
    align-content: center;
    gap: .25rem;
    border-radius: 8px;
    padding: 1.4rem 1.6rem;
    color: #fff;
    text-align: center;
    text-decoration: none;
    overflow: hidden;
    background:
        radial-gradient(circle at 0 0, rgba(255, 255, 255, .16), transparent 32%),
        linear-gradient(135deg, #5b1023, #7a1830);
    box-shadow: 0 18px 38px rgba(91, 16, 35, .16);
}

.pmb-highlight-card::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: .18;
    background-image: radial-gradient(circle, rgba(255, 255, 255, .95) 1px, transparent 1.6px);
    background-size: 11px 11px;
    transform: translateX(-42%);
}

.pmb-highlight-card span,
.pmb-highlight-card strong {
    position: relative;
    z-index: 1;
}

.pmb-highlight-card span {
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.pmb-highlight-card strong {
    font-size: clamp(1.2rem, 2.4vw, 1.7rem);
    line-height: 1.18;
}

.pmb-highlight-card:hover {
    color: #fff;
    transform: translateY(-4px);
    box-shadow: 0 22px 46px rgba(91, 16, 35, .22);
}

.pmb-home-showcase {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(380px, .86fr);
    gap: 3rem;
    align-items: center;
}

.pmb-home-copy {
    max-width: 760px;
}

.pmb-home-copy h2 {
    color: #5b1023;
    font-size: clamp(2.4rem, 4.5vw, 4.3rem);
    font-weight: 800;
    line-height: 1.05;
    margin: .65rem 0 1.5rem;
}

.pmb-home-copy p {
    color: #64748b;
    font-size: 1.1rem;
    line-height: 1.8;
    margin-bottom: 2rem;
}

.pmb-home-visual {
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 24px 54px rgba(91, 16, 35, .16);
}

.pmb-home-visual .carousel-item {
    position: relative;
}

.pmb-home-visual img {
    width: 100%;
    height: 420px;
    object-fit: cover;
}

.pmb-home-visual .carousel-item::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(50, 9, 21, .04), rgba(50, 9, 21, .68));
}

.pmb-visual-badge {
    position: absolute;
    left: 1.25rem;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 2;
    color: #fff;
}

.pmb-visual-badge span {
    display: inline-flex;
    border-radius: 999px;
    padding: .38rem .8rem;
    color: #251017;
    background: var(--gold);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.pmb-visual-badge strong {
    display: block;
    max-width: 420px;
    margin-top: .65rem;
    font-size: clamp(1.2rem, 2.5vw, 1.8rem);
    line-height: 1.18;
}

.home-news-section {
    background:
        radial-gradient(circle at 88% 8%, rgba(217, 164, 65, .14), transparent 24%),
        #fff;
}

.home-news-section .news-card {
    border-top: 4px solid transparent;
}

.home-news-section .news-card:hover {
    border-top-color: var(--gold);
}

.program-card {
    padding: 2rem;
    border-top: 4px solid var(--gold);
}

.program-showcase {
    display: grid;
    grid-template-columns: minmax(280px, 420px) 1fr;
    gap: 1.5rem;
    align-items: stretch;
}

.featured-program-card {
    padding: 2.4rem;
}

.featured-program-card h3 {
    color: var(--navy);
    font-size: clamp(1.65rem, 3vw, 2.4rem);
    font-weight: 800;
    line-height: 1.12;
    margin: .65rem 0 1rem;
}

.featured-program-card p {
    color: #39516e;
}

.program-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 1.25rem;
}

.program-tags span {
    background: rgba(91, 16, 35, .08);
    border: 1px solid rgba(91, 16, 35, .1);
    border-radius: 999px;
    color: var(--navy);
    font-size: .82rem;
    font-weight: 800;
    padding: .42rem .75rem;
}

.program-side-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 10px 28px rgba(91, 16, 35, .06);
    display: grid;
    grid-template-columns: minmax(250px, 42%) 1fr;
    overflow: hidden;
}

.program-side-panel img {
    width: 100%;
    height: 100%;
    min-height: 420px;
    object-fit: cover;
}

.program-side-content {
    padding: 2rem;
}

.program-side-content h3 {
    color: var(--navy);
    font-size: clamp(1.35rem, 2vw, 2rem);
    font-weight: 800;
    line-height: 1.2;
    margin-top: .55rem;
}

.program-mini-card {
    background: var(--soft);
    border: 1px solid var(--line);
    border-radius: 8px;
    height: 100%;
    padding: 1rem;
}

.program-mini-card i {
    color: var(--gold);
    display: block;
    font-size: 1.5rem;
    margin-bottom: .65rem;
}

.program-mini-card strong,
.program-mini-card small {
    display: block;
}

.program-mini-card strong {
    color: var(--navy);
    font-weight: 800;
    margin-bottom: .25rem;
}

.program-mini-card small {
    color: var(--muted);
}

.program-card .icon,
.feature-card .icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    color: var(--navy);
    background: rgba(217, 164, 65, .18);
    font-size: 1.65rem;
    margin-bottom: 1.25rem;
}

.feature-card {
    padding: 1.65rem;
}

.news-card img,
.gallery-card img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: var(--radius) var(--radius) 0 0;
}

.gallery-card {
    overflow: hidden;
    min-height: 220px;
}

.campus-showcase {
    display: grid;
    grid-template-columns: minmax(0, 1.85fr) minmax(360px, .9fr);
    gap: 1.5rem;
    align-items: stretch;
    margin-bottom: 3.5rem;
}

.campus-video-panel,
.student-review-panel {
    min-height: 520px;
    border-radius: 8px;
    overflow: hidden;
}

.campus-video-panel {
    position: relative;
    background: #121a25;
    box-shadow: 0 22px 48px rgba(91, 16, 35, .16);
}

.campus-video-panel iframe {
    border: 0;
}

.campus-video-caption {
    position: absolute;
    left: 1.25rem;
    right: 1.25rem;
    bottom: 1.25rem;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-radius: 8px;
    color: #fff;
    background: linear-gradient(90deg, rgba(50, 9, 21, .84), rgba(50, 9, 21, .46));
    backdrop-filter: blur(8px);
}

.campus-video-caption span,
.student-review-foot span {
    display: block;
    color: var(--gold);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.campus-video-caption h3 {
    max-width: 560px;
    margin: .2rem 0 0;
    font-size: clamp(1.1rem, 2vw, 1.65rem);
    font-weight: 800;
}

.campus-video-caption a {
    color: #fff;
    font-weight: 800;
    white-space: nowrap;
}

.campus-video-caption .bi-youtube {
    color: #ff1f1f;
}

.campus-video-empty {
    min-height: 520px;
    display: grid;
    align-content: center;
    justify-items: center;
    text-align: center;
    padding: 2rem;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(91, 16, 35, .94), rgba(122, 24, 48, .78)),
        url('../images/pattern.svg');
}

.campus-video-empty .bi-youtube {
    width: 96px;
    height: 70px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    color: #fff;
    background: #ff1f1f;
    font-size: 3rem;
    margin-bottom: 1.4rem;
}

.campus-video-empty span {
    color: var(--gold);
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.campus-video-empty h3 {
    max-width: 560px;
    margin: .6rem 0;
    font-weight: 800;
}

.student-review-panel {
    position: relative;
    border: 1px solid #eadde1;
    background:
        radial-gradient(circle at 82% 8%, rgba(217, 164, 65, .16), transparent 32%),
        linear-gradient(180deg, #fbf4f6 0%, #fff 44%);
    box-shadow: 0 18px 42px rgba(91, 16, 35, .08);
}

.student-review-card {
    min-height: 520px;
    display: flex;
    flex-direction: column;
    padding: 2.1rem 2.1rem 6rem;
}

.student-review-head {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.student-avatar {
    position: relative;
    flex: 0 0 auto;
    width: 86px;
    height: 86px;
    border: 4px solid #5b1023;
    border-radius: 50%;
    padding: 4px;
    background: #fff;
}

.student-avatar img,
.student-avatar span {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    border-radius: 50%;
    object-fit: cover;
    background: var(--navy);
    color: #fff;
    font-size: 2rem;
    font-weight: 800;
}

.student-avatar i {
    position: absolute;
    right: -9px;
    bottom: 5px;
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #7a1830;
    border: 3px solid #fff;
}

.student-review-name {
    min-width: 0;
    flex: 1;
}

.student-review-name h3 {
    color: var(--navy);
    font-size: 1.15rem;
    font-weight: 800;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.student-review-name p {
    color: #7a1830;
    font-weight: 700;
    margin: .15rem 0 0;
}

.student-year {
    align-self: flex-start;
    border: 1px solid #e4c9d0;
    border-radius: 8px;
    color: #5b1023;
    background: rgba(255, 255, 255, .58);
    font-weight: 800;
    letter-spacing: .12em;
    padding: .65rem .9rem;
}

.student-review-card blockquote {
    flex: 1;
    display: flex;
    align-items: center;
    color: #50627a;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.1rem, 1.7vw, 1.45rem);
    font-style: italic;
    line-height: 1.8;
    margin: 2rem 0;
}

.student-review-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid #eadde1;
    padding-top: 1.4rem;
}

.student-review-foot strong {
    display: block;
    color: #5b1023;
    font-weight: 800;
}

.student-review-foot > i {
    color: #7a1830;
    font-size: 1.35rem;
}

.student-review-controls {
    position: absolute;
    left: 2.1rem;
    right: 2.1rem;
    bottom: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    pointer-events: none;
}

.student-review-controls .carousel-indicators {
    position: static;
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 0;
    pointer-events: auto;
}

.student-review-controls .carousel-indicators [data-bs-target] {
    width: 11px;
    height: 11px;
    border: 0;
    border-radius: 999px;
    background: #e4c9d0;
    opacity: 1;
}

.student-review-controls .carousel-indicators .active {
    width: 34px;
    background: #5b1023;
}

.review-control {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border: 1px solid #e4c9d0;
    border-radius: 50%;
    color: #5b1023;
    background: #fbf4f6;
    pointer-events: auto;
}

.review-control:hover {
    color: #fff;
    background: #5b1023;
}

.home-updates,
.home-gallery,
.home-testimonials {
    position: relative;
    z-index: 1;
}

.home-testimonials {
    background:
        linear-gradient(180deg, #fff 0%, #faf6f7 100%);
}

.home-testimonials .section-title {
    margin-bottom: 2rem;
}

.home-testimonial-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
    gap: 2rem;
    align-items: stretch;
}

.home-testimonial-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2rem 0;
}

.home-testimonial-copy h2 {
    color: var(--navy);
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 800;
    line-height: 1.08;
    margin: .75rem 0 1rem;
}

.home-testimonial-copy p {
    max-width: 560px;
    color: var(--muted);
    font-size: 1.08rem;
    margin-bottom: 1.4rem;
}

.home-gallery {
    clear: both;
    background: #fff;
}

.home-gallery .section-title {
    margin-bottom: 2rem;
}

.news-card .body,
.announcement-card,
.agenda-card,
.download-card {
    padding: 1.35rem;
}

.meta {
    color: var(--muted);
    font-size: .86rem;
}

.stats-band {
    background:
        linear-gradient(135deg, rgba(91, 16, 35, .98), rgba(122, 24, 48, .94)),
        url('../images/pattern.svg');
    color: #fff;
    padding: 4rem 0;
}

.stat-card {
    border-left: 3px solid var(--gold);
    padding-left: 1.3rem;
}

.stat-card strong {
    display: block;
    font-size: clamp(2rem, 4vw, 3.3rem);
    line-height: 1;
}

.stat-card span {
    color: rgba(255, 255, 255, .78);
    font-weight: 600;
}

.page-hero {
    background:
        linear-gradient(100deg, rgba(91, 16, 35, .94), rgba(122, 24, 48, .83)),
        url('../images/page-hero.svg') center/cover;
    color: #fff;
    padding: 5.5rem 0;
}

.page-hero h1 {
    font-weight: 800;
    font-size: clamp(2rem, 4vw, 3.4rem);
}

.content-block {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 2rem;
    box-shadow: 0 12px 30px rgba(91, 16, 35, .05);
}

.list-check {
    padding-left: 0;
    list-style: none;
}

.list-check li {
    position: relative;
    padding-left: 2rem;
    margin-bottom: .75rem;
}

.list-check li::before {
    content: '\F26A';
    font-family: bootstrap-icons;
    color: var(--gold);
    position: absolute;
    left: 0;
}

.pmb-cta {
    background:
        linear-gradient(135deg, rgba(91, 16, 35, .98), rgba(122, 24, 48, .95)),
        url('../images/pattern.svg');
    color: #fff;
    padding: 4.5rem 0;
}

.pmb-cta h2 {
    font-weight: 800;
}

.pmb-cta p {
    color: rgba(255, 255, 255, .78);
    margin-bottom: 0;
}

.site-footer {
    background: #3b0b17;
    color: rgba(255, 255, 255, .78);
    padding: 4.5rem 0 1.5rem;
}

.site-footer h3 {
    color: #fff;
    font-size: 1rem;
    font-weight: 800;
    margin-bottom: 1rem;
}

.site-footer a {
    display: block;
    color: rgba(255, 255, 255, .78);
    margin-bottom: .55rem;
}

.site-footer a:hover {
    color: var(--gold);
}

.footer-brand {
    display: flex;
    gap: .85rem;
    align-items: center;
}

.footer-brand img {
    width: 56px;
    height: 56px;
}

.footer-brand strong,
.footer-brand span {
    display: block;
}

.footer-brand strong {
    color: #fff;
}

.social-links {
    display: flex;
    gap: .65rem;
}

.social-links a {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 8px;
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .13);
    margin-top: 3rem;
    padding-top: 1.25rem;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.wa-float {
    position: fixed;
    right: 22px;
    bottom: 22px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #25d366;
    color: #fff;
    z-index: 20;
    font-size: 1.55rem;
    box-shadow: 0 12px 28px rgba(37, 211, 102, .32);
}

.wa-float:hover {
    color: #fff;
    transform: translateY(-2px);
}

.pmb-online-strip {
    background:
        linear-gradient(135deg, rgba(91, 16, 35, .96), rgba(122, 24, 48, .9)),
        url('../images/pattern.svg');
    color: #fff;
    border-radius: 8px;
    padding: 2rem;
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    align-items: center;
    margin-bottom: 2.5rem;
    box-shadow: 0 22px 48px rgba(91, 16, 35, .18);
}

.pmb-online-strip span {
    color: var(--gold);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.pmb-online-strip h2 {
    max-width: 720px;
    margin: .35rem 0 .5rem;
    font-weight: 800;
}

.pmb-online-strip p {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.78);
}

.pmb-form-card .form-label,
.pmb-check-box .form-label {
    color: var(--navy);
    font-weight: 700;
}

.pmb-online-aside {
    border-radius: 8px;
    background: var(--navy);
    color: #fff;
    padding: 2rem;
    position: sticky;
    top: 110px;
    box-shadow: 0 22px 48px rgba(91, 16, 35, .18);
}

.pmb-online-aside h2 {
    font-weight: 800;
    margin-bottom: 1rem;
}

.pmb-online-aside ol {
    margin: 0;
    padding-left: 1.2rem;
    display: grid;
    gap: .85rem;
    color: rgba(255,255,255,.82);
}

.pmb-success-card {
    max-width: 820px;
    margin: 0 auto;
    text-align: center;
    border-top: 5px solid var(--gold);
}

.pmb-success-card span {
    color: var(--muted);
    text-transform: uppercase;
    font-size: .86rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.pmb-success-card strong {
    display: block;
    color: var(--navy);
    font-size: clamp(2rem, 6vw, 4rem);
    line-height: 1.05;
    margin: .75rem 0 1rem;
}

.pmb-status-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .55rem 1rem;
    margin: .5rem 0 1.2rem;
    background: rgba(217, 164, 65, .16);
    color: var(--navy);
    font-weight: 800;
}

.pmb-data-list {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: .7rem 1rem;
    margin: 0 0 1.25rem;
}

.pmb-data-list dt {
    color: var(--muted);
    font-weight: 700;
}

.pmb-data-list dd {
    margin: 0;
    color: var(--ink);
    font-weight: 600;
}

.reveal {
    opacity: 0;
    transform: translateY(22px);
    transition: .65s ease;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 991.98px) {
    .main-navbar .nav-link {
        padding: .8rem 0;
    }

    .main-navbar .nav-link::after {
        left: 0;
        right: auto;
        width: 44px;
        bottom: .35rem;
    }

    .hero,
    .hero-slide {
        min-height: 620px;
    }

    .hero-content {
        padding: 4rem 0 5rem;
    }

    .hero h1 {
        font-size: min(var(--hero-title-size, 72px), 12vw);
    }

    .hero p {
        font-size: min(var(--hero-desc-size, 20px), 5vw);
    }

    .program-showcase,
    .program-side-panel,
    .campus-showcase,
    .home-testimonial-grid,
    .pmb-online-strip,
    .pmb-home-showcase {
        grid-template-columns: 1fr;
    }

    .pmb-online-strip {
        align-items: flex-start;
        flex-direction: column;
    }

    .pmb-online-aside {
        position: static;
    }

    .pmb-highlight-grid {
        grid-template-columns: 1fr;
        margin-bottom: 2.5rem;
    }

    .pmb-home-visual img {
        height: 340px;
    }

    .program-side-panel img {
        min-height: 280px;
        max-height: 360px;
    }

    .campus-video-panel,
    .student-review-panel,
    .student-review-card,
    .campus-video-empty {
        min-height: auto;
    }

    .campus-video-caption {
        position: static;
        align-items: flex-start;
        flex-direction: column;
        border-radius: 0;
        background: var(--navy);
    }

    .public-dropdown,
    .public-dropdown.wide,
    .public-dropdown.compact {
        min-width: 100%;
        box-shadow: none;
        padding: .45rem 0;
        margin-bottom: .75rem;
    }

    .public-dropdown .dropdown-item {
        font-size: .96rem;
        padding: .7rem 1rem;
    }

    .dropdown-submenu .submenu {
        position: static;
        min-width: 100%;
        box-shadow: none;
        opacity: 1;
        pointer-events: auto;
        transform: none;
        padding: 0 0 0 1rem;
        display: none;
    }

    .dropdown-submenu:focus-within > .submenu,
    .dropdown-submenu:hover > .submenu {
        display: block;
    }
}

@media (max-width: 575.98px) {
    .topbar-contact,
    .topbar-links {
        gap: .55rem .85rem;
    }

    .navbar-brand img {
        width: 46px;
        height: 46px;
    }

    .navbar-brand strong {
        font-size: .9rem;
    }

    .section-padding {
        padding: 4rem 0;
    }

    .content-block {
        padding: 1.35rem;
    }

    .student-review-card {
        padding: 1.4rem;
    }

    .student-review-head,
    .student-review-foot {
        align-items: flex-start;
        flex-direction: column;
    }

    .student-review-controls {
        position: static;
        padding: 0 1.4rem 1.4rem;
    }

    .student-review-card blockquote {
        margin: 1.5rem 0;
    }

    .student-avatar {
        width: 76px;
        height: 76px;
    }
}
