/* ── 17. SINGLE NEWS / PUBLICATIONS ───────────────────────── */
.single-pub { padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(4rem, 7vw, 6rem); }
/* article.* — WordPress also puts "single-news" on <body> (see team.css) */
article.single-news { padding: clamp(2.5rem, 5vw, 4rem) 0 2rem; }
.single-news__date { display: block; font-size: .82rem; font-weight: 700; color: var(--blue-600); margin-bottom: .6rem; }
article.single-news h1 { margin-bottom: 1.6rem; }
.single-news__image { margin-bottom: 2rem; border-radius: var(--radius-lg); overflow: hidden; }

/* Single news — image carousel with its own dot pagination (auto-advances every 3s) */
.news-carousel { margin-bottom: 2rem; }
.news-carousel__track {
    position: relative; width: 100%; aspect-ratio: 16/9;
    border-radius: var(--radius-lg); overflow: hidden; background: var(--blue-50);
}
.news-carousel__slide {
    position: absolute; inset: 0; opacity: 0; transition: opacity 600ms var(--ease);
}
.news-carousel__slide.is-active { opacity: 1; }
.news-carousel__slide img { width: 100%; height: 100%; object-fit: contain; background: var(--blue-50); }
.news-carousel__dots { display: flex; justify-content: center; gap: .5rem; margin-top: 1rem; }
.news-carousel__dot {
    width: 9px; height: 9px; border-radius: 50%; background: var(--line-strong);
    transition: background var(--dur-base) var(--ease), transform var(--dur-base) var(--ease);
}
.news-carousel__dot.is-active { background: var(--blue-600); transform: scale(1.25); }
@media (hover: hover) and (pointer: fine) {
    .news-carousel__dot:hover { background: var(--blue-300); }
}
.single-news__body p, .single-pub__body p { margin-bottom: 1.1rem; }
.single-pub__mark { width: 60px; height: 60px; border-radius: 50%; background: var(--blue-50); border: 1px solid var(--blue-100); display: flex; align-items: center; justify-content: center; overflow: hidden; margin-bottom: 1.4rem; color: var(--blue-600); }
.single-pub__mark img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.single-pub__mark svg { width: 26px; height: 26px; }
.single-pub__meta { display: flex; gap: 1rem; margin: .8rem 0; font-size: .85rem; color: var(--ink-faint); }
.single-pub__authors { margin-bottom: 1.6rem; font-weight: 600; color: var(--ink-2); }
.single-pub__authors-lab { margin-top: 2rem; padding-top: 1.6rem; border-top: 1px solid var(--line); }
.single-pub__authors-lab-label { font-weight: 700; margin-right: .6rem; }
