/* 首頁校園新聞輪播（熱門／最新）
   無障礙：控制鈕 ≥ 36px、焦點框 3px、文字對比 ≥ 4.5:1、字幕不疊在照片上、尊重 prefers-reduced-motion */
.news-carousel {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: .5rem .75rem .25rem;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: .5rem;
}

.news-carousel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .5rem;
}

.news-carousel-heading {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #0a58ca;
}

.news-carousel-controls {
    display: flex;
    align-items: center;
    gap: .25rem;
    flex-shrink: 0;
}

.nc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    color: #212529;
    background: #fff;
    border: 1px solid #6c757d;
    border-radius: 50%;
}

.nc-btn:hover {
    background: #e9ecef;
}

.nc-btn:focus-visible,
.news-slide a:focus-visible,
.news-carousel-more a:focus-visible {
    outline: 3px solid #0055cc;
    outline-offset: 2px;
}

.nc-counter {
    min-width: 2.75em;
    font-size: .875rem;
    color: #495057;
    text-align: center;
}

/* JS 未載入時只顯示第一則、隱藏控制鈕 */
.news-carousel:not(.nc-ready) .news-slide:not(:first-child) {
    display: none;
}

.news-carousel:not(.nc-ready) .news-carousel-controls {
    visibility: hidden;
}

.news-slide[hidden] {
    display: none;
}

.news-slide.is-active {
    animation: ncFade .4s ease-in-out;
}

@keyframes ncFade {
    from { opacity: 0; }
    to { opacity: 1; }
}

.news-slide a {
    display: block;
    color: inherit;
    text-decoration: none;
    border-radius: .375rem;
}

.news-slide img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    background: #f1f3f5;
    border-radius: .375rem;
}

/* 新聞無照片時的替代圖 */
.news-slide img[src$="/image/web/logo.png"] {
    object-fit: scale-down;
    padding: 1.5rem;
}

.news-slide-caption {
    display: block;
    padding: .5rem 0 .25rem;
}

.news-slide-meta {
    display: block;
    font-size: .875rem;
    color: #495057;
}

.news-slide-title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    min-height: 3em;
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.5;
    color: #0b3d91;
}

.news-slide a:hover .news-slide-title,
.news-slide a:focus .news-slide-title {
    text-decoration: underline;
}

.news-carousel-more {
    margin: auto 0 .25rem;
    font-size: .9rem;
    text-align: right;
}

@media (prefers-reduced-motion: reduce) {
    .news-slide.is-active {
        animation: none;
    }
}
