.announcement-bar {
    overflow: hidden;
    background: #d6af3d;
    color: #070a3a;
    white-space: nowrap;
    padding: .72rem 0;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em
}

.announcement-track {
    display: inline-flex;
    align-items: center;
    gap: 1.3rem;
    min-width: max-content;
    animation: notice-scroll 28s linear infinite
}

.announcement-track b {
    font-size: 1rem
}

@keyframes notice-scroll {
    to {
        transform: translateX(-50%)
    }
}

.officers-section {
    background: #fff
}

.officer-card {
    background: #f7f7f3;
    height: 100%;
    overflow: hidden
}

.officer-card img {
    width: 100%;
    height: 245px;
    object-fit: cover;
    filter: saturate(.82)
}

.officer-card div {
    padding: 1.45rem
}

.officer-card p {
    font-size: .67rem;
    color: #9a7414;
    font-weight: 800;
    letter-spacing: .12em;
    margin: 0 0 .7rem
}

.officer-card h3 {
    font-family: var(--serif);
    font-size: 1.45rem;
    line-height: 1.15;
    color: #070a3a
}

.officer-card span {
    font-size: .88rem;
    line-height: 1.65;
    color: #4f5770
}

.updates-section {
    background: #070a3a;
    color: #fff
}

.updates-section h2 {
    color: #fff
}

.update-list {
    margin-top: 2rem;
    border-top: 1px solid #565a87
}

.update-list a {
    display: flex;
    gap: 1.2rem;
    align-items: center;
    border-bottom: 1px solid #565a87;
    padding: 1.25rem 0;
    color: #fff;
    text-decoration: none
}

.update-list a:hover {
    color: #ead17b
}

.update-list>a>span {
    color: #d6af3d;
    font-family: var(--serif);
    font-size: 1.4rem
}

.update-list small {
    display: block;
    color: #d6af3d;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .12em;
    margin-bottom: .35rem
}

.update-list strong {
    display: block;
    font-size: .98rem;
    line-height: 1.4
}

.update-list i {
    margin-left: auto
}

.events-panel {
    background: #fff;
    color: #10143d;
    padding: 2rem;
    height: 100%
}

.events-panel h3 {
    font-family: var(--serif);
    font-size: 2rem;
    margin-bottom: 1.5rem
}

.events-panel article {
    display: flex;
    gap: 1rem;
    border-top: 1px solid #d9d9d2;
    padding: 1rem 0
}

.events-panel time {
    width: 46px;
    height: 52px;
    background: #070a3a;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1
}

.events-panel time b {
    font-family: var(--serif);
    font-size: 1.45rem
}

.events-panel time span {
    font-size: .6rem;
    letter-spacing: .08em;
    margin-top: .3rem
}

.events-panel strong {
    font-size: .95rem
}

.events-panel p {
    font-size: .8rem;
    line-height: 1.5;
    color: #667;
    margin: .3rem 0
}

.gallery-section .carousel-item {
    height: 560px
}

.gallery-section .carousel-item:after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #05072fce, #05072f23)
}

.gallery-section .carousel-item img {
    height: 100%;
    object-fit: cover
}

.gallery-section .carousel-caption {
    z-index: 2;
    text-align: left;
    left: max(8%, calc((100% - 1140px)/2));
    right: auto;
    bottom: 22%;
    width: min(600px, 76%)
}

.gallery-section .carousel-caption h2 {
    color: #fff;
    font-family: var(--serif);
    font-size: clamp(2.7rem, 5vw, 4.8rem);
    line-height: 1.02
}

.gallery-section .carousel-control-prev,
.gallery-section .carousel-control-next {
    width: 8%
}

@media(max-width:767.98px) {
    .announcement-bar {
        font-size: .62rem
    }

    .officer-card img {
        height: 220px
    }

    .updates-section {
        padding: 75px 0
    }

    .gallery-section .carousel-item {
        height: 420px
    }

    .gallery-section .carousel-caption {
        left: 10%;
        bottom: 18%
    }

    .events-panel {
        margin-top: 0
    }
}

/* Hero slider enhancements */
.carousel-fade .carousel-item {
    transition: opacity .8s ease-in-out;
}