.news-page,
.news-article {
    margin: 0 auto;
    padding: 8.5rem 1rem 3rem;
}
.news-page { max-width: 980px; }
.news-article { max-width: 820px; }

.news-page h1,
.news-article h1 {
    color: var(--primary-dark);
    font-size: clamp(1.6rem, 4vw, 2.2rem);
    line-height: 1.25;
    margin: 0.4rem 0 0.6rem;
}
.news-lead {
    color: var(--gray-700);
    font-size: 1.1rem;
    line-height: 1.6;
    margin: 0 0 1.75rem;
}
.news-back { margin: 0 0 1rem; font-weight: 600; }

.news-meta {
    color: var(--gray-600);
    font-size: 0.92rem;
    font-weight: 600;
    margin: 0 0 0.5rem;
}
.news-tag {
    display: inline-block;
    background: var(--gray-100);
    color: var(--primary-dark);
    border-radius: 999px;
    padding: 0.15rem 0.65rem;
    margin-right: 0.4rem;
}

.news-upcoming {
    background: #ecfeff;
    border: 1px solid #a5f3fc;
    border-radius: var(--radius-lg);
    padding: 1.25rem 1.4rem;
    margin-bottom: 1.75rem;
}
.news-upcoming h2 { margin: 0 0 0.75rem; font-size: 1.2rem; color: var(--primary-dark); }
.news-upcoming ul { list-style: none; margin: 0; padding: 0; }
.news-upcoming li { padding: 0.45rem 0; }
.news-upcoming a { font-weight: 700; }
.news-upcoming span { display: block; color: var(--gray-700); font-size: 0.95rem; }

.news-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
.news-filters a {
    padding: 0.45rem 0.9rem;
    border: 1px solid var(--gray-300);
    border-radius: 999px;
    color: var(--gray-700);
    font-weight: 600;
    text-decoration: none;
}
.news-filters a.active { background: var(--primary); border-color: var(--primary); color: #fff; }

.news-list { display: grid; gap: 1.25rem; }
.news-card {
    display: grid;
    grid-template-columns: 260px 1fr;
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.news-card-image img { width: 100%; height: 100%; min-height: 180px; object-fit: cover; display: block; }
.news-card-body { padding: 1.1rem 1.3rem; grid-column: 2; }
.news-card-body h2 { font-size: 1.25rem; line-height: 1.3; margin: 0 0 0.5rem; }
.news-card-body h2 a { color: var(--primary-dark); text-decoration: none; }
.news-card-body h2 a:hover { text-decoration: underline; }
.news-card-body p:last-child { color: var(--gray-700); line-height: 1.6; margin: 0; }
.news-event { color: #0f766e; font-weight: 700; margin: 0 0 0.5rem; }
.news-empty { color: var(--gray-600); padding: 2rem 0; }

.news-event-box {
    background: #ecfeff;
    border: 1px solid #a5f3fc;
    border-radius: var(--radius-md);
    padding: 0.8rem 1rem;
    margin: 0 0 1.25rem;
}
.news-hero { margin: 0 0 1.5rem; }
.news-hero img { width: 100%; height: auto; border-radius: var(--radius-lg); display: block; }
.news-body p { color: var(--gray-700); line-height: 1.8; margin: 0 0 1rem; font-size: 1.05rem; overflow-wrap: anywhere; }

.news-share-page { margin-top: 2.5rem; }
.news-share-page h2 { font-size: 1.2rem; color: var(--primary-dark); margin: 0 0 0.75rem; }
.news-share-page .share-bar { margin-top: 0; }

.share-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--gray-200);
}
.share-bar-label { font-weight: 700; color: var(--gray-900); margin-right: 0.25rem; }
.share-btn {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 1rem;
    border: 0;
    border-radius: var(--radius-md);
    color: #fff;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}
.share-btn:hover { filter: brightness(0.92); color: #fff; }
.share-facebook { background: #1877f2; }
.share-messenger { background: #0866ff; }
.share-viber { background: #7360f2; }
.share-whatsapp { background: #128c4b; }
.share-copy { background: var(--gray-700); }
.share-status { flex-basis: 100%; color: #0f766e; font-weight: 600; min-height: 1.2em; }
.share-status:empty { display: none; }

@media (max-width: 640px) {
    .news-page, .news-article { padding-top: 7rem; }
    .news-card { grid-template-columns: 1fr; }
    .news-card-body { grid-column: 1; }
    .news-card-image img { height: 190px; min-height: 0; }
}
