/* Homepage visual refresh: page-scoped so shared pages keep their own layouts. */
.home-page {
    background: #fff;
    color: #142b4b;
}

.home-page .topbar {
    background: #08244a;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.home-page .navbar {
    min-height: 76px;
    border-bottom: 1px solid #e8eef6;
    box-shadow: 0 5px 20px rgba(17, 47, 87, .06) !important;
}

.home-page .navbar-brand img { max-height: 55px; width: auto; }
.home-page .navbar .nav-link { color: #183555; font-size: .9rem; font-weight: 650; }
.home-page .navbar .nav-link:hover, .home-page .navbar .nav-link.active { color: #0d64cc; }

.home-page .hero {
    position: relative;
    min-height: 590px;
    background-position: center;
    isolation: isolate;
}

.home-page .hero::after {
    position: absolute;
    z-index: -1;
    right: 8%;
    bottom: 12%;
    width: min(23vw, 260px);
    aspect-ratio: 1;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 50%;
    box-shadow: 0 0 0 24px rgba(255, 255, 255, .05), 0 0 0 48px rgba(255, 255, 255, .035);
    content: "";
}

.home-page .hero__content { max-width: 767.98px; padding: 94px 0; }
.home-page .hero .eyebrow { color: #b8d7ff; }
.home-page .hero h1 { max-width: 767.98px; text-wrap: balance; }
.home-page .hero h1 strong { color: #71adff; }
.home-page .hero p { font-size: 1.06rem; line-height: 1.75; }

.home-page .hero__proof {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 17px;
    margin: 0 0 27px;
    color: #e7f2ff;
    font-size: .82rem;
    font-weight: 700;
}

.home-page .hero__proof i { margin-right: 5px; color: #79b6ff; }
.home-page .hero .button { border-radius: 9px; padding: 13px 21px; }
.home-page .hero .button--outline { border-color: rgba(255,255,255,.65); color: #fff; }
.home-page .hero .button--outline:hover { border-color: #fff; background: rgba(255,255,255,.13); }

.home-page .section { padding: 88px 0; }
.home-page .section-title { width: min(1180px, calc(100% - 40px)); margin: 0 auto 34px; text-align: left; }
.home-page .section-title h2 { margin-bottom: 8px; color: #0b315f; font-size: clamp(1.75rem, 3vw, 2.4rem); letter-spacing: -.035em; }
.home-page .section-title h2 span { color: inherit; }
.home-page .section-title p { color: #617692; font-size: 1rem; }

.home-page .about { gap: 72px; }
.home-page .about__visual { border-radius: 18px; box-shadow: 0 22px 42px rgba(13, 45, 83, .16); }
.home-page .about__visual::after { position: absolute; inset: 0; background: linear-gradient(145deg, transparent 45%, rgba(4,32,67,.24)); content: ""; }
.home-page .about__stamp { z-index: 1; border-left: 4px solid #1672df; border-radius: 8px; color: #12365f; }
.home-page .about h2 { color: #0b315f; font-size: clamp(1.65rem, 2.6vw, 2.2rem); letter-spacing: -.03em; }
.home-page .about p { max-width: 767.98px; font-size: 1rem; line-height: 1.8; }
.home-page .text-link { display: inline-flex; align-items: center; gap: 7px; }

.home-page .courses .course {
    border-color: #e0eaf5;
    border-radius: 15px;
    box-shadow: 0 8px 24px rgba(13, 48, 90, .04);
}
.home-page .courses .course:hover { border-color: #b8d5f7; box-shadow: 0 18px 36px rgba(13, 48, 90, .12); }
.home-page .course__glyph { border-radius: 11px; }
.home-page .course .button { border-radius: 8px; }

.home-page .affiliation-section, .home-page .testimonial-section { border-top: 1px solid #e7eef7; }
.home-page .affiliation-section { background: #f8fbff; }
.home-page .affiliation-section { position: relative; overflow: hidden; }
.home-page .affiliation-section::before { position: absolute; top: 30px; left: -110px; width: 260px; height: 260px; border: 42px solid rgba(18, 102, 214, .045); border-radius: 50%; content: ""; }
.home-page .recognition-heading { position: relative; max-width: 767.98px; margin: 0 auto 42px; }
.home-page .recognition-kicker { display: inline-block; margin-bottom: 10px; color: #1266d6; font-family: var(--font-heading); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.home-page .recognition-heading h2 { margin: 0 0 10px; color: #0b315f; font-family: var(--font-heading); font-size: clamp(1.8rem, 3vw, 2.45rem); letter-spacing: -.04em; }
.home-page .recognition-heading p { margin: 0; color: #637792; }
.home-page .recognition-grid { position: relative; }
.home-page .affiliation-item { height: 100%; min-height: 228px; padding: 28px 24px 24px; border: 1px solid #e0eaf5; border-radius: 16px; background: rgba(255,255,255,.92); text-align: left; }
.home-page .affiliation-item:hover { border-color: #add0fa; }
.home-page .affiliation-item .icon-box { width: 52px; height: 52px; margin: 0 0 24px; border: 0; border-radius: 14px; background: #e7f1ff; color: #1266d6; }
.home-page .affiliation-item .icon-box i { font-size: 1.35rem; }
.home-page .recognition-label { display: block; margin-bottom: 8px; color: #6c82a0; font-family: var(--font-heading); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.home-page .affiliation-item h3 { margin: 0; color: #15385f; font-family: var(--font-heading); font-size: 1rem; font-weight: 700; line-height: 1.45; }
.home-page .affiliation-item h3 small { display: block; margin-top: 4px; color: #607795; font-family: var(--font-body); font-size: .82rem; font-weight: 600; }
.home-page .testimonial-section { background: linear-gradient(180deg, #fff 0%, #f7faff 100%); }
.home-page .ntbx-section { margin-top: 0; }

/* Notice board: static, readable cards instead of the legacy auto-scrolling ticker. */
.home-page .ntbx-section { position: relative; padding-block: clamp(4rem, 7vw, 6rem); background: #f6f9fd; }
.home-page .ntbx-board { position: relative; z-index: 1; overflow: hidden; border: 1px solid #dce7f3; border-radius: 18px; background: #fff; box-shadow: 0 18px 40px rgba(13, 48, 90, .1); }
.home-page .ntbx-header { min-height: 74px; padding: 1.15rem 1.5rem; background: #0b315f; }
.home-page .ntbx-header-left { font-family: var(--font-heading); font-size: clamp(1.15rem, 2vw, 1.45rem); }
.home-page .ntbx-live { padding: .35rem .65rem; border-radius: 999px; background: rgba(255,255,255,.1); font-size: .74rem; }
.home-page .ntbx-wrapper { height: auto; max-height: 570px; overflow: auto; padding: .9rem; background: linear-gradient(180deg, #f8fbff, #fff); }
.home-page .ntbx-track { gap: .75rem; transform: none !important; }
.home-page .ntbx-item { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1rem; border: 1px solid #e1eaf4; border-radius: 12px; background: #fff; box-shadow: 0 5px 15px rgba(13, 48, 90, .04); }
.home-page .ntbx-item:last-child { border-bottom: 1px solid #e1eaf4; }
.home-page .ntbx-item:hover { transform: translateY(-2px); border-color: #b9d6f8; background: #fff; box-shadow: 0 10px 22px rgba(13, 48, 90, .1); }
.home-page .ntbx-date { width: 70px; min-width: 70px; height: 70px; border-radius: 12px; background: #1266d6; box-shadow: none; }
.home-page .ntbx-day { font-size: 1.6rem; }
.home-page .ntbx-month { margin-top: .2rem; font-size: .7rem; }
.home-page .ntbx-top { margin-bottom: .35rem; }
.home-page .ntbx-tag { padding: .25rem .55rem; border-radius: 999px; font-size: .68rem; }
.home-page .ntbx-info h4 { margin: 0 0 .25rem; color: #12365f; font-family: var(--font-heading); font-size: 1rem; line-height: 1.35; }
.home-page .ntbx-info p { margin: 0; color: #60708a; font-size: .86rem; line-height: 1.55; }
.home-page .ntbx-link { padding: .55rem .7rem; border: 1px solid #c6ddf7; border-radius: 8px; color: #0e5fbe; font-size: .8rem; }
.home-page .ntbx-link:hover { gap: .5rem; border-color: #1266d6; color: #0e5fbe; background: #eef6ff; }

@media (max-width: 991.98px) { .home-page .ntbx-wrapper { max-height: none; } }
@media (max-width: 767.98px) { .home-page .ntbx-header { min-height: 64px; flex-direction: row; padding: 1rem; text-align: left; } .home-page .ntbx-header-left { justify-content: flex-start; font-size: 1.1rem; } .home-page .ntbx-live { font-size: .65rem; } .home-page .ntbx-wrapper { padding: .7rem; } .home-page .ntbx-item { grid-template-columns: 58px minmax(0, 1fr); gap: .8rem; padding: .85rem; } .home-page .ntbx-date { width: 58px; min-width: 58px; height: 58px; } .home-page .ntbx-day { font-size: 1.35rem; } .home-page .ntbx-link { grid-column: 2; justify-self: start; } .home-page .ntbx-info h4 { font-size: .95rem; } .home-page .ntbx-info p { font-size: .82rem; } }

/* Notice modal: a calm, focused reading surface. */
#noticeModal .modal-dialog { max-width: 760px; }
#noticeModal .ntbx-modal { border: 1px solid #dce7f3; border-radius: 18px; box-shadow: 0 24px 70px rgba(8, 39, 77, .24); }
#noticeModal .ntbx-modal-header { position: relative; min-height: 158px; padding: 1.7rem 2rem; border: 0; background: linear-gradient(135deg, #082e5b, #1266d6); }
#noticeModal .ntbx-modal-header::after { position: absolute; right: -28px; bottom: -54px; width: 170px; height: 170px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; box-shadow: 0 0 0 24px rgba(255,255,255,.05); content: ""; }
#noticeModal .ntbx-modal-header > div { position: relative; z-index: 1; }
#noticeModal .ntbx-modal-badge { padding: .38rem .7rem; border-color: rgba(255,255,255,.26); background: rgba(255,255,255,.12); font-family: var(--font-heading); font-size: .72rem; font-weight: 700; }
#noticeModal .ntbx-modal-header h3 { max-width: 630px; margin: .85rem 0 0; font-family: var(--font-heading); font-size: clamp(1.55rem, 3vw, 2.25rem); font-weight: 800; line-height: 1.18; letter-spacing: -.035em; }
#noticeModal .btn-close { position: relative; z-index: 2; width: 2.5rem; height: 2.5rem; margin: 0; padding: 0; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; background-color: rgba(255,255,255,.1); opacity: 1; }
#noticeModal .btn-close:hover { background-color: rgba(255,255,255,.22); }
#noticeModal .modal-body { padding: 1.75rem 2rem 2rem; background: #fff; }
#noticeModal .modal-body .row { --bs-gutter-x: 1rem; }
#noticeModal .ntbx-info-box { min-height: 96px; align-items: center; gap: .85rem; margin-bottom: 0; padding: 1rem; border-color: #dfe9f4; border-radius: 12px; background: #f8fbff; }
#noticeModal .ntbx-info-box:hover { transform: none; border-color: #b9d6f8; box-shadow: none; }
#noticeModal .ntbx-info-box i { width: 42px; height: 42px; border-radius: 11px; background: #e7f1ff; color: #1266d6; font-size: 1rem; }
#noticeModal .ntbx-info-box strong { margin-bottom: .2rem; color: #193959; font-family: var(--font-heading); font-size: .82rem; }
#noticeModal .ntbx-info-box p { color: #60708a; font-size: .9rem; }
#noticeModal .modal-body hr { margin: 1.55rem 0; border-color: #e3ebf4; }
#noticeModal .modal-body h5 { margin-bottom: .65rem; color: #12365f; font-family: var(--font-heading); font-size: 1.15rem; }
#noticeModal #modalMessage { max-width: 68ch; margin: 0; color: #526881; font-size: 1rem; line-height: 1.75; text-align: left; }
#noticeModal .modal-footer { justify-content: flex-end; gap: .7rem; padding: 1rem 2rem; border-top-color: #e3ebf4; background: #f8fbff; }
#noticeModal .modal-footer .btn { min-height: 42px; padding: .6rem 1rem; border-radius: 8px; font-family: var(--font-heading); font-size: .84rem; font-weight: 700; }
#noticeModal .ntbx-download-btn { border: 1px solid #1266d6; background: #1266d6; color: #fff; }
#noticeModal .ntbx-close-btn { border: 1px solid #cad8e7; background: #fff; color: #264866; }
#noticeModal .ntbx-close-btn:hover { border-color: #9ebee0; background: #edf5ff; color: #12365f; }

@media (max-width: 767.98px) { #noticeModal .modal-dialog { margin: .75rem; } #noticeModal .ntbx-modal-header { min-height: 142px; padding: 1.35rem; } #noticeModal .ntbx-modal-header h3 { font-size: 1.45rem; } #noticeModal .modal-body { padding: 1.25rem; } #noticeModal .ntbx-info-box { min-height: auto; flex-direction: row; text-align: left; } #noticeModal .modal-footer { padding: 1rem 1.25rem; flex-direction: row; } #noticeModal .modal-footer .btn { width: auto; } }

@media (max-width: 767.98px) {
    .home-page .navbar { min-height: 65px; }
    .home-page .hero { min-height: 540px; }
    .home-page .hero::after { right: 8%; bottom: 5%; width: 150px; }
    .home-page .hero__content { padding: 72px 0; }
    .home-page .hero__proof { display: grid; gap: 7px; }
    .home-page .section { padding: 62px 0; }
    .home-page .section-title { width: min(100% - 30px, 1180px); margin-bottom: 25px; }
    .home-page .about { gap: 38px; }
}

/* Popular course cards: readable at normal viewing distance. */
.home-page .courses .course { padding: 1.35rem; }
.home-page .course__type { font-size: 1rem; }
.home-page .durationn { font-size: .88rem; }
.home-page .course ul { font-size: .88rem; line-height: 1.75; }
.home-page .course .button { min-height: 44px; font-size: .88rem; }
