:root {
	--necpt-blue: #244393;
	--necpt-date-color: #8a8f98;
	--necpt-title-color: #244393;
	--necpt-desc-color: #555555;
	--necpt-readmore-color: #244393;
	--necpt-card-bg: #ffffff;
	--necpt-font: inherit;
	--necpt-date-fs: 12px;
	--necpt-title-fs: 18px;
	--necpt-desc-fs: 14px;
	--necpt-readmore-fs: 14px;
	--necpt-gap: 24px;
	--necpt-radius: 6px;
	--necpt-shadow: 0 2px 10px rgba(0,0,0,0.08);
	--necpt-shadow-hover: 0 6px 18px rgba(0,0,0,0.12);
	--necpt-single-title-color: #244393;
	--necpt-single-title-fs: 32px;
	--necpt-single-content-fs: 16px;
}

.necpt-wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 40px 20px;
	font-family: var(--necpt-font);
}

.necpt-archive-title {
	color: var(--necpt-title-color);
	margin-bottom: 30px;
}

.necpt-grid {
	display: grid;
	grid-template-columns: repeat(var(--necpt-columns, 3), 1fr);
	gap: var(--necpt-gap);
}

.necpt-card {
	background: var(--necpt-card-bg);
	border-radius: var(--necpt-radius);
	overflow: hidden;
	box-shadow: var(--necpt-shadow);
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.necpt-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--necpt-shadow-hover);
}

.necpt-card-image-link {
	display: block;
	line-height: 0;
}

/* Image is always 100% width and a fixed height regardless of the source
   image's own dimensions; the dynamic settings CSS reinforces this with
   !important so it can never be overridden by the original image size. */
.necpt-card-image {
	width: 100%;
	height: 180px;
	overflow: hidden;
	background: #eee;
	display: block;
}

.necpt-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.necpt-card-image-placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #e5e9f5, #d3daf0);
}

.necpt-card-body {
	padding: 16px 16px 18px;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

.necpt-card-date {
	font-size: var(--necpt-date-fs);
	font-weight: 700;
	letter-spacing: 0.5px;
	color: var(--necpt-date-color);
	margin-bottom: 8px;
}

.necpt-card-title {
	font-size: var(--necpt-title-fs);
	line-height: 1.35;
	margin: 0 0 8px;
}

.necpt-card-title a {
	color: var(--necpt-title-color);
	text-decoration: none;
	font-weight: 700;
}

.necpt-card-title a:hover {
	text-decoration: underline;
}

.necpt-card-desc {
	color: var(--necpt-desc-color);
	font-size: var(--necpt-desc-fs);
	line-height: 1.5;
	margin: 0 0 14px;
	flex-grow: 1;
}

.necpt-card-readmore {
	color: var(--necpt-readmore-color);
	font-weight: 700;
	font-size: var(--necpt-readmore-fs);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: auto;
}

.necpt-card-readmore:hover {
	text-decoration: underline;
}

.necpt-arrow {
	transition: transform 0.2s ease;
}

.necpt-card-readmore:hover .necpt-arrow {
	transform: translateX(3px);
}

@media (max-width: 900px) {
	.necpt-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.necpt-grid { grid-template-columns: 1fr; }
}

.necpt-single-wrap {
	max-width: 850px;
	font-family: var(--necpt-font);
}

.necpt-back-link {
	display: inline-block;
	color: var(--necpt-blue);
	text-decoration: none;
	font-weight: 600;
	margin-bottom: 20px;
}

.necpt-back-link:hover {
	text-decoration: underline;
}

.necpt-back-link-bottom {
	margin-top: 30px;
	margin-bottom: 0;
}

.necpt-single-date {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.5px;
	color: var(--necpt-date-color);
	margin-bottom: 10px;
}

.necpt-single-title {
	color: var(--necpt-single-title-color);
	font-size: var(--necpt-single-title-fs);
	line-height: 1.3;
	margin: 0 0 24px;
}

.necpt-single-image {
	width: 100%;
	border-radius: var(--necpt-radius);
	overflow: hidden;
	margin-bottom: 28px;
}

.necpt-single-image img {
	width: 100%;
	height: auto;
	display: block;
}

.necpt-single-content {
	font-size: var(--necpt-single-content-fs);
	line-height: 1.75;
	color: #333;
}

.necpt-single-content p {
	margin-bottom: 1.2em;
}

/* ---------- Archive heading + pagination (primary color) ---------- */
.necpt-archive-title {
	position: relative;
	padding-bottom: 14px;
}
.necpt-archive-title::after {
	content: "";
	display: block;
	width: 60px;
	height: 4px;
	border-radius: 2px;
	background: var(--necpt-primary, #244393);
	position: absolute;
	left: 0;
	bottom: 0;
}

.necpt-pagination {
	margin-top: 40px;
	display: flex;
	justify-content: center;
}
.necpt-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
	justify-content: center;
}
.necpt-pagination ul.page-numbers li {
	margin: 0;
	padding: 0;
	list-style: none;
}
.necpt-pagination .page-numbers {
	display: inline-block;
}
.necpt-pagination a.page-numbers,
.necpt-pagination span.page-numbers {
	min-width: 40px;
	padding: 9px 14px;
	text-align: center;
	border: 1px solid var(--necpt-primary, #244393);
	border-radius: var(--necpt-radius, 6px);
	color: var(--necpt-primary, #244393);
	background: #fff;
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.2;
	transition: background 0.2s ease, color 0.2s ease;
}
.necpt-pagination a.page-numbers:hover {
	background: var(--necpt-primary, #244393);
	color: #fff;
}
.necpt-pagination span.page-numbers.current {
	background: var(--necpt-primary, #244393);
	color: #fff;
}
.necpt-pagination span.page-numbers.dots {
	border-color: transparent;
	background: transparent;
	color: #888;
}

.necpt-viewall-wrap {
	text-align: center;
	margin-top: 30px;
}
.necpt-viewall {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 26px;
	border-radius: var(--necpt-radius, 6px);
	background: var(--necpt-primary, #244393);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}
.necpt-viewall:hover { opacity: 0.9; color: #fff; }
.necpt-viewall:hover .necpt-arrow { transform: translateX(3px); }

/* ---- v1.2: featured, time, sort ---- */
.necpt-card-image { position: relative; }
.necpt-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
	background: var(--necpt-primary, #244393);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 20px;
	line-height: 1.2;
}
.necpt-dt-sep { opacity: 0.6; margin: 0 2px; }
.necpt-single-date--featured { margin-top: 4px; }
.necpt-dt-label { font-weight: 700; }
.necpt-sort {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 22px;
	font-size: 14px;
}
.necpt-sort-label { color: #666; }
.necpt-sort-link {
	padding: 6px 14px;
	border: 1px solid var(--necpt-primary, #244393);
	border-radius: var(--necpt-radius, 6px);
	color: var(--necpt-primary, #244393);
	text-decoration: none;
	font-weight: 600;
}
.necpt-sort-link.is-active,
.necpt-sort-link:hover {
	background: var(--necpt-primary, #244393);
	color: #fff;
}

/* ---- v1.3: keep link text visible in every state (visited / focus / after "Back") ---- */
.necpt-viewall,
.necpt-viewall:link,
.necpt-viewall:visited,
.necpt-viewall:focus,
.necpt-viewall:active,
.necpt-viewall:hover {
	background: var(--necpt-primary, #244393) !important;
	color: #fff !important;
	text-decoration: none !important;
	-webkit-text-fill-color: #fff;
}
.necpt-viewall .necpt-arrow { color: inherit !important; }

.necpt-sort-link,
.necpt-sort-link:link,
.necpt-sort-link:visited {
	color: var(--necpt-primary, #244393) !important;
	background: transparent;
	text-decoration: none !important;
}
.necpt-sort-link.is-active,
.necpt-sort-link:hover,
.necpt-sort-link:focus,
.necpt-sort-link:active {
	background: var(--necpt-primary, #244393) !important;
	color: #fff !important;
}

.necpt-pagination a.page-numbers,
.necpt-pagination a.page-numbers:link,
.necpt-pagination a.page-numbers:visited {
	color: var(--necpt-primary, #244393);
}
.necpt-pagination a.page-numbers:hover,
.necpt-pagination a.page-numbers:focus,
.necpt-pagination a.page-numbers:active,
.necpt-pagination span.page-numbers.current {
	background: var(--necpt-primary, #244393);
	color: #fff;
}

.necpt-card-readmore,
.necpt-card-readmore:link,
.necpt-card-readmore:visited,
.necpt-card-readmore:focus,
.necpt-card-readmore:active { color: var(--necpt-readmore-color, #244393); }

.necpt-back-link,
.necpt-back-link:link,
.necpt-back-link:visited,
.necpt-back-link:focus,
.necpt-back-link:active { color: var(--necpt-blue, #244393); }
