/* ============================================================
   Blog (archive + single post) — Coffs Coast Drones
   Editorial reading treatment.
   ============================================================ */

.ccd-blog, .ccd-post { background: var(--bg-page); color: var(--text-body); }

/* ---------- Archive head ---------- */
.ccd-blog-head {
	position: relative;
	padding-block: clamp(48px, 6vw, 80px);
	border-bottom: 1px solid var(--border-subtle);
	overflow: hidden;
}
.ccd-blog-head__inner { position: relative; z-index: 1; max-width: 800px; }
.ccd-blog-head__title {
	font-family: var(--font-display, var(--font-heading));
	font-weight: 700;
	font-size: clamp(34px, 5vw, 56px);
	letter-spacing: -0.03em;
	color: var(--text-strong);
	margin: 0 0 16px;
	line-height: 1.05;
}
.ccd-blog-head__lede {
	font-size: 18px; line-height: 1.6;
	color: var(--text-body);
	max-width: 62ch;
	margin: 0;
}

.ccd-blog__body { padding-block: clamp(40px, 5vw, 72px); }

/* ---------- Lead card ---------- */
.ccd-blog-lead {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
	background: var(--surface-card);
	border: 1px solid var(--border-default);
	border-radius: var(--radius-md, 4px);
	overflow: hidden;
	margin-bottom: clamp(32px, 5vw, 56px);
	padding: clamp(20px, 3vw, 32px);
}
@media (max-width: 780px) { .ccd-blog-lead { grid-template-columns: 1fr; } }

.ccd-blog-lead__thumb {
	display: block;
	overflow: hidden;
	border-radius: var(--radius-sm, 3px);
	aspect-ratio: 4 / 3;
}
.ccd-blog-lead__thumb img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.ccd-blog-lead__thumb:hover img { transform: scale(1.03); }

.ccd-blog-lead__title {
	font-family: var(--font-display, var(--font-heading));
	font-weight: 700;
	font-size: clamp(24px, 3vw, 34px);
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--text-strong);
	margin: 12px 0 16px;
	text-wrap: balance;
}
.ccd-blog-lead__title a { color: inherit; text-decoration: none; }
.ccd-blog-lead__title a:hover { color: var(--brand); }
.ccd-blog-lead__excerpt {
	font-size: 16px; line-height: 1.6;
	color: var(--text-body);
	margin-bottom: 20px;
}

/* ---------- Grid of cards ---------- */
.ccd-blog-grid {
	list-style: none; padding: 0; margin: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 32px);
}
.ccd-blog-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) {
	.ccd-blog-grid, .ccd-blog-grid--3 { grid-template-columns: 1fr; }
}

.ccd-blog-card { display: flex; }
.ccd-blog-card__article {
	display: flex; flex-direction: column;
	background: var(--surface-card);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-md, 4px);
	overflow: hidden;
	flex: 1;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ccd-blog-card__article:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(20, 23, 26, .1);
	border-color: var(--border-strong);
}
.ccd-blog-card__thumb {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--paper-150);
}
.ccd-blog-card__thumb img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .5s ease;
}
.ccd-blog-card__article:hover .ccd-blog-card__thumb img { transform: scale(1.03); }

.ccd-blog-card__body { padding: 20px 22px; display: flex; flex-direction: column; flex: 1; }
.ccd-blog-card__meta { margin: 0 0 10px; }
.ccd-blog-card__title {
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 18px;
	line-height: 1.3;
	color: var(--text-strong);
	margin: 0 0 10px;
	letter-spacing: -0.005em;
}
.ccd-blog-card__title a { color: inherit; text-decoration: none; }
.ccd-blog-card__title a:hover { color: var(--brand); }
.ccd-blog-card__excerpt {
	font-size: 14px; line-height: 1.55;
	color: var(--text-body);
	margin: 0 0 auto;
}

/* ---------- Pagination ---------- */
.ccd-blog__pager { margin-top: clamp(32px, 5vw, 56px); }
.ccd-blog__pager .nav-links {
	display: flex; gap: 6px; justify-content: center;
	flex-wrap: wrap;
}
.ccd-blog__pager .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px;
	padding: 0 12px;
	font-family: var(--font-mono);
	font-size: 14px;
	color: var(--text-body);
	background: var(--surface-card);
	border: 1px solid var(--border-default);
	border-radius: var(--radius-sm, 3px);
	text-decoration: none;
}
.ccd-blog__pager .page-numbers:hover { border-color: var(--brand); color: var(--brand); }
.ccd-blog__pager .page-numbers.current {
	background: var(--brand); color: var(--brand-contrast); border-color: var(--brand);
}

/* ---------- Single post ---------- */
.ccd-post__head {
	position: relative;
	padding-block: clamp(48px, 6vw, 80px);
	border-bottom: 1px solid var(--border-subtle);
	overflow: hidden;
}
.ccd-post__head-inner { position: relative; z-index: 1; max-width: 780px; }
.ccd-post__meta a { color: inherit; text-decoration: none; }
.ccd-post__meta a:hover { color: var(--brand); text-decoration: underline; }
.ccd-post__title {
	font-family: var(--font-display, var(--font-heading));
	font-weight: 700;
	font-size: clamp(32px, 5vw, 56px);
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--text-strong);
	margin: 0 0 16px;
	text-wrap: balance;
}
.ccd-post__deck {
	font-size: clamp(17px, 1.6vw, 20px);
	line-height: 1.55;
	color: var(--text-body);
	margin: 0;
	max-width: 62ch;
}

.ccd-post__hero { margin: clamp(24px, 3vw, 40px) 0; }
.ccd-post__hero-img {
	width: 100%; height: auto;
	max-height: 520px;
	object-fit: cover;
	border-radius: var(--radius-md, 4px);
	display: block;
}

.ccd-post__body {
	padding-block: clamp(16px, 3vw, 40px) clamp(40px, 6vw, 72px);
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	max-width: 780px;
	margin: 0 auto;
	padding-inline: clamp(16px, 4vw, 32px);
}
.ccd-post__content {
	font-family: var(--font-body);
	font-size: 18px;
	line-height: 1.75;
	color: var(--text-body);
}
.ccd-post__content h2 {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: clamp(24px, 3vw, 30px);
	color: var(--text-strong);
	margin: 40px 0 16px;
	letter-spacing: -0.015em;
}
.ccd-post__content h3 {
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 20px;
	color: var(--text-strong);
	margin: 32px 0 12px;
}
.ccd-post__content p { margin: 0 0 20px; }
.ccd-post__content a { color: var(--brand); }
.ccd-post__content a:hover { color: var(--accent); }
.ccd-post__content ul, .ccd-post__content ol { padding-left: 24px; margin: 0 0 20px; }
.ccd-post__content li { margin-bottom: 8px; }
.ccd-post__content img { max-width: 100%; height: auto; border-radius: var(--radius-sm, 3px); margin: 16px 0; }
.ccd-post__content blockquote {
	border-left: 3px solid var(--accent);
	padding: 6px 0 6px 20px;
	margin: 24px 0;
	font-style: italic;
	color: var(--text-strong);
	font-size: 20px;
	line-height: 1.5;
}
.ccd-post__content pre {
	background: var(--panel);
	color: var(--text-on-dark);
	padding: 16px;
	border-radius: var(--radius-sm, 3px);
	overflow-x: auto;
	font-family: var(--font-mono);
	font-size: 14px;
	line-height: 1.5;
}
.ccd-post__content code {
	background: var(--paper-150);
	padding: 2px 6px;
	border-radius: 2px;
	font-family: var(--font-mono);
	font-size: 0.9em;
}

.ccd-post__footer {
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid var(--border-subtle);
	display: flex; justify-content: space-between; align-items: center; gap: 16px;
	flex-wrap: wrap;
}
.ccd-post__tags {
	display: flex; align-items: center; gap: 8px;
	flex-wrap: wrap;
}
.ccd-post__tags .ccd-eyebrow { margin: 0 4px 0 0; }
.ccd-post__back a {
	color: var(--brand); text-decoration: none;
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 14px;
}
.ccd-post__back a:hover { text-decoration: underline; }

.ccd-post__related {
	background: var(--bg-subtle);
	padding-block: clamp(40px, 6vw, 72px);
	border-top: 1px solid var(--border-subtle);
}
.ccd-post__related .ccd-section-title { margin: 0 0 clamp(24px, 3vw, 32px); }
