/**
 * Site News — frontend styles (mockup-aligned).
 */

:root {
	--sn-navy: #003366;
	--sn-gold: #f7a81b;
	--sn-orange: #e85d04;
	--sn-blue-badge: #1e5a8e;
	--sn-text: #333333;
	--sn-muted: #6b7280;
	--sn-border: #e5e7eb;
	--sn-radius: 10px;
	--sn-font: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

.site-news-page,
.sn-latest-news,
.sn-popular,
.sn-single,
.sn-archive {
	font-family: var(--sn-font);
	color: var(--sn-text);
}

/* Plugin links: no underline (including theme overrides) */
.sn-latest-news a,
.sn-popular a,
.sn-card a,
.sn-btn,
.sn-archive a,
.sn-single a {
	text-decoration: none;
}

.sn-latest-news a:hover,
.sn-latest-news a:focus,
.sn-latest-news a:active,
.sn-popular a:hover,
.sn-popular a:focus,
.sn-popular a:active,
.sn-card a:hover,
.sn-card a:focus,
.sn-card a:active,
.sn-btn:hover,
.sn-btn:focus,
.sn-btn:active,
.sn-archive a:hover,
.sn-archive a:focus,
.sn-archive a:active,
.sn-single a:hover,
.sn-single a:focus,
.sn-single a:active {
	text-decoration: none;
}

/* Latest news widget */
.sn-latest-news__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.sn-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.sn-filters__tab {
	display: inline-block;
	padding: 0.5rem 1rem;
	border: 1px solid var(--sn-border);
	border-radius: 6px;
	background: #fff;
	color: var(--sn-navy);
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.sn-filters__tab:hover,
.sn-filters__tab.is-active {
	background: var(--sn-navy);
	border-color: var(--sn-navy);
	color: #fff;
}

.sn-search {
	display: flex;
	align-items: stretch;
	max-width: 280px;
	border: 1px solid var(--sn-border);
	border-radius: 6px;
	overflow: hidden;
}

.sn-search input[type="search"] {
	flex: 1;
	border: 0;
	padding: 0.5rem 0.75rem;
	font-size: 0.875rem;
	min-width: 0;
}

.sn-search__btn {
	border: 0;
	background: var(--sn-navy);
	color: #fff;
	padding: 0 0.75rem;
	cursor: pointer;
}

/* Grid */
.sn-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

@media (max-width: 992px) {
	.sn-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.sn-grid {
		grid-template-columns: 1fr;
	}
}

.sn-grid.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

.sn-grid__empty {
	grid-column: 1 / -1;
	text-align: center;
	color: var(--sn-muted);
}

/* Cards */
.sn-card {
	background: #fff;
	border-radius: var(--sn-radius);
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 51, 102, 0.08);
	display: flex;
	flex-direction: column;
}

.sn-card__media {
	position: relative;
	display: block;
	overflow: hidden;
}

.sn-card__img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
}

.sn-card__img--placeholder {
	background: linear-gradient(135deg, #dce6f0, #b8c9db);
}

.sn-card__date-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: var(--sn-blue-badge);
	color: #fff;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	padding: 0.35rem 0.6rem;
	border-radius: 4px;
	line-height: 1.2;
}

.sn-card__body {
	padding: 1rem 1.25rem 1.25rem;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.sn-card__category {
	display: inline-block;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	padding: 0.25rem 0.5rem;
	border-radius: 3px;
	margin-bottom: 0.5rem;
	width: fit-content;
}

.sn-card__category--club-news { background: #fde8d8; color: #c45a00; }
.sn-card__category--projects { background: #fff3cd; color: #856404; }
.sn-card__category--partnerships { background: #d4edda; color: #155724; }
.sn-card__category--community { background: #cce5ff; color: #004085; }
.sn-card__category--awards { background: #fff3cd; color: #997404; }
.sn-card__category--youth { background: #e2d9f3; color: #4a2c7a; }
.sn-card__category--default { background: #eee; color: #333; }

.sn-card__title {
	margin: 0 0 0.5rem;
	font-size: 1.05rem;
	line-height: 1.35;
}

.sn-card__title a {
	color: var(--sn-navy);
	text-decoration: none;
}

.sn-card__excerpt {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	color: var(--sn-muted);
	line-height: 1.5;
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sn-card__read-more {
	color: var(--sn-navy);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
}

.sn-card__read-more:hover {
	color: var(--sn-gold);
}

/* Popular stories */
.sn-popular {
	background: var(--sn-navy);
	border-radius: var(--sn-radius);
	padding: 1.25rem;
	color: #fff;
}

.sn-popular__heading {
	margin: 0 0 1rem;
	font-size: 1.125rem;
	color: #fff;
}

.sn-popular__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sn-popular__item + .sn-popular__item {
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.sn-popular__link {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	text-decoration: none;
	color: #fff;
}

.sn-popular__thumb {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: 6px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.1);
}

.sn-popular__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.sn-popular__title {
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.35;
}

.sn-popular__footer {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.sn-popular__view-all {
	color: var(--sn-gold);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
}

.sn-popular__view-all:hover {
	color: #fff;
}

/* Buttons */
.sn-btn {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	border-radius: 6px;
	font-weight: 600;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	border: 2px solid transparent;
	transition: background 0.2s, color 0.2s;
}

.sn-btn--primary {
	background: var(--sn-gold);
	color: var(--sn-navy);
}

.sn-btn--primary:hover {
	background: #e09510;
	color: var(--sn-navy);
}

.sn-btn--outline {
	background: transparent;
	border-color: var(--sn-navy);
	color: var(--sn-navy);
}

.sn-latest-news__footer {
	margin-top: 2rem;
	text-align: center;
}

/* Single */
.sn-single {
	max-width: 800px;
	margin: 2rem auto;
	padding: 0 1.5rem;
}

.sn-single__title {
	color: var(--sn-navy);
	font-size: 2rem;
	margin: 0.5rem 0;
}

.sn-single__date {
	color: var(--sn-muted);
	font-size: 0.9rem;
}

.sn-single__featured {
	margin: 1.5rem 0;
	border-radius: var(--sn-radius);
	overflow: hidden;
}

.sn-single__featured img {
	width: 100%;
	height: auto;
	display: block;
}

.sn-single__content {
	line-height: 1.7;
}

.sn-single__footer {
	margin-top: 2rem;
}

/* Archive */
.sn-archive__header {
	max-width: 1200px;
	margin: 2rem auto 0;
	padding: 0 1.5rem;
}

.sn-archive__title {
	color: var(--sn-navy);
	font-size: 2rem;
}

.sn-archive .sn-latest-news {
	max-width: 1200px;
	margin: 0 auto 3rem;
	padding: 0 1.5rem;
}

.sn--hide-date .sn-card__date-badge {
	display: none;
}

.sn--hide-excerpt .sn-card__excerpt {
	display: none;
}
