/*
Theme Name: Astra Extended Child
Theme URI: https://example.com/astra-extended-child
Description: An update-safe Astra child theme that adds affiliate-ready blog, archive, and single-post options on top of the Astra parent theme.
Author: OpenAI
Template: astra
Version: 1.1.0
Text Domain: astra-extended-child
*/

body .aec-reading-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 99999;
	height: var(--aec-progress-height, 4px);
	pointer-events: none;
	background: rgba(15, 23, 42, 0.08);
}

body.admin-bar .aec-reading-progress {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .aec-reading-progress {
		top: 46px;
	}
}

.aec-reading-progress__bar {
	display: block;
	width: 100%;
	height: 100%;
	transform: scaleX(0);
	transform-origin: left center;
	background: var(--aec-progress-color, #2563eb);
}

.aec-announcement-bar {
	background: var(--aec-announcement-bg, #111827);
	color: var(--aec-announcement-color, #ffffff);
}

.aec-announcement-bar__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	padding: 0.875rem 0;
	font-size: 0.95rem;
	line-height: 1.4;
}

.aec-announcement-bar__inner.is-left {
	justify-content: flex-start;
}

.aec-announcement-bar__inner.is-right {
	justify-content: flex-end;
}

.aec-announcement-bar__link,
.aec-announcement-bar__text {
	color: inherit;
}

.aec-announcement-bar__link {
	text-decoration: none;
	font-weight: 600;
	border-bottom: 1px solid currentColor;
}

.aec-announcement-bar__link:hover,
.aec-announcement-bar__link:focus {
	opacity: 0.88;
}

.entry-meta .aec-reading-time,
.entry-meta .aec-meta-separator {
	display: inline-flex;
	align-items: center;
}

body.aec-surface-enabled .ast-separate-container .site-main > article,
body.aec-surface-enabled .ast-separate-container .widget,
body.aec-surface-enabled .ast-separate-container .comments-area,
body.aec-surface-enabled .ast-separate-container .comment-respond,
body.aec-surface-enabled .ast-separate-container .ast-related-post {
	background: var(--aec-surface-bg, #ffffff);
	border: 1px solid var(--aec-surface-border, #e5e7eb);
	border-radius: var(--aec-surface-radius, 18px);
	box-shadow: var(--aec-surface-shadow, 0 14px 36px rgba(15, 23, 42, 0.08));
	overflow: hidden;
}

body.aec-surface-enabled .ast-separate-container .widget {
	padding: 1.5rem;
}

body.aec-surface-enabled.aec-surface-mode-lifted .ast-separate-container .ast-article-post {
	transition: transform 0.24s ease, box-shadow 0.24s ease;
}

body.aec-surface-enabled.aec-surface-mode-lifted .ast-separate-container .ast-article-post:hover,
body.aec-surface-enabled.aec-surface-mode-lifted .ast-separate-container .ast-article-post:focus-within {
	transform: translateY(-4px);
	box-shadow: var(--aec-surface-hover-shadow, 0 20px 44px rgba(15, 23, 42, 0.14));
}

body.aec-surface-enabled.aec-surface-mode-outline .ast-separate-container .site-main > article,
body.aec-surface-enabled.aec-surface-mode-outline .ast-separate-container .widget,
body.aec-surface-enabled.aec-surface-mode-outline .ast-separate-container .comments-area,
body.aec-surface-enabled.aec-surface-mode-outline .ast-separate-container .comment-respond,
body.aec-surface-enabled.aec-surface-mode-outline .ast-separate-container .ast-related-post {
	box-shadow: none;
}

.aec-post-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0 0 1.5rem;
}

.aec-post-filter__button {
	border: 1px solid var(--aec-surface-border, #d1d5db);
	background: #fff;
	color: #111827;
	border-radius: 999px;
	padding: 0.6rem 1rem;
	font-size: 0.92rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.aec-post-filter__button.is-active,
.aec-post-filter__button:hover,
.aec-post-filter__button:focus {
	background: #111827;
	color: #fff;
	border-color: #111827;
}

body[class*="aec-archive-layout-"] .site-main .ast-row > article .entry-title {
	font-size: var(--aec-archive-title-size, 28px);
}

body[class*="aec-archive-layout-"] .site-main .ast-row > article .entry-meta {
	font-size: var(--aec-archive-meta-size, 14px);
}

body[class*="aec-archive-layout-"] .site-main .ast-row > article .entry-content p {
	font-size: var(--aec-archive-excerpt-size, 16px);
}

body[class*="aec-archive-layout-"] .site-main .ast-row > article .post-content {
	padding: var(--aec-archive-card-padding, 0px);
}

body[class*="aec-archive-layout-"] .site-main .ast-row .ast-blog-featured-section img {
	width: 100%;
	object-fit: cover;
	aspect-ratio: var(--aec-archive-ratio, auto);
}

.aec-archive-layout-grid-2 .site-main .ast-row,
.aec-archive-layout-grid-3 .site-main .ast-row {
	display: grid;
	gap: var(--aec-archive-gap, 28px);
	align-items: start;
}

.aec-archive-layout-grid-2 .site-main .ast-row {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.aec-archive-layout-grid-3 .site-main .ast-row {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.aec-archive-layout-grid-2 .site-main .ast-row > article,
.aec-archive-layout-grid-3 .site-main .ast-row > article {
	width: 100%;
	margin: 0;
}

.aec-archive-layout-grid-2 .site-main .ast-row > article > div,
.aec-archive-layout-grid-3 .site-main .ast-row > article > div {
	height: 100%;
}

.aec-archive-layout-masonry .site-main .ast-row {
	column-gap: var(--aec-archive-gap, 28px);
	column-count: 3;
}

.aec-archive-layout-masonry .site-main .ast-row > article {
	display: inline-block;
	width: 100%;
	margin: 0 0 var(--aec-archive-gap, 28px);
	break-inside: avoid;
}

.aec-post-item.is-hidden {
	display: none !important;
}

.aec-reveal-item {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.45s ease, transform 0.45s ease;
}

.aec-reveal-item.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.aec-archive-pagination-load-more .ast-pagination,
.aec-archive-pagination-autoload .ast-pagination {
	display: none;
}

.aec-archive-loader {
	display: flex;
	justify-content: center;
	margin: 2rem 0 0;
}

.aec-archive-loader__button,
.aec-archive-loader__status {
	border-radius: 999px;
	padding: 0.85rem 1.25rem;
	font-weight: 600;
}

.aec-archive-loader__button {
	border: 1px solid #111827;
	background: #111827;
	color: #fff;
	cursor: pointer;
}

.aec-archive-loader__status {
	background: rgba(17, 24, 39, 0.08);
	color: #111827;
}

.single-post .site-main .entry-content,
.single-post .site-main .entry-content p,
.single-post .site-main .entry-content li {
	font-size: var(--aec-single-content-size, 18px);
}

.single-post .site-main .entry-content > * + * {
	margin-top: var(--aec-single-gap, 32px);
}

.single-post.aec-single-layout-card .site-main > article {
	padding: clamp(1.25rem, 1rem + 1vw, 2rem);
	border: 1px solid var(--aec-surface-border, #e5e7eb);
	border-radius: 22px;
	box-shadow: 0 18px 44px rgba(15, 23, 42, 0.08);
	background: #fff;
}

.single-post.aec-single-layout-magazine .site-main > article .entry-title {
	font-size: clamp(2.4rem, 5vw, 4rem);
	line-height: 1.05;
	letter-spacing: -0.04em;
	max-width: 14ch;
}

.single-post.aec-single-image-narrow .site-main img.wp-post-image {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
	display: block;
}

.single-post.aec-single-image-wide .site-main img.wp-post-image {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
	display: block;
}

.single-post.aec-single-image-full .site-main img.wp-post-image {
	width: 100%;
	max-width: none;
}

.aec-single-extras {
	display: grid;
	gap: 1.25rem;
	margin-top: 2rem;
}

.aec-affiliate-disclosure {
	margin-bottom: 1.5rem;
	padding: 1rem 1.15rem;
	border-left: 4px solid #111827;
	border-radius: 14px;
	background: #f8fafc;
	color: #111827;
}

.aec-affiliate-disclosure__label {
	margin: 0 0 0.35rem;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #475569;
}

.aec-affiliate-disclosure__text {
	margin: 0;
	font-size: 0.96rem;
	line-height: 1.55;
}

.aec-share-block,
.aec-author-box {
	border: 1px solid var(--aec-surface-border, #e5e7eb);
	border-radius: 20px;
	background: #fff;
}

.aec-share-block {
	padding: 1.1rem 1.25rem;
}

.aec-share-block__title {
	margin: 0 0 0.85rem;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #6b7280;
}

.aec-share-block__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.aec-share-block__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.65rem 0.95rem;
	border-radius: 999px;
	background: #f3f4f6;
	color: #111827;
	text-decoration: none;
	font-weight: 600;
}

.aec-share-block__link:hover,
.aec-share-block__link:focus {
	background: #111827;
	color: #fff;
}

.aec-author-box {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	gap: 1.25rem;
	padding: var(--aec-author-padding, 24px);
	align-items: start;
}

.aec-author-box__avatar img {
	display: block;
	border-radius: 50%;
}

.aec-author-box__eyebrow {
	margin: 0 0 0.4rem;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #6b7280;
}

.aec-author-box__name {
	margin: 0;
	font-size: var(--aec-author-title-size, 22px);
	line-height: 1.15;
}

.aec-author-box__name a {
	color: inherit;
	text-decoration: none;
}

.aec-author-box__bio {
	margin: 0.75rem 0 0;
	color: #4b5563;
}

.aec-author-box__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 1rem;
}

.aec-author-box__link {
	color: #111827;
	font-weight: 600;
	text-decoration: none;
}

.aec-single-navigation {
	margin-top: 2rem;
}

.aec-single-navigation .nav-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.aec-single-navigation a {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	color: #111827;
	text-decoration: none;
}

.aec-single-navigation__label {
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #6b7280;
}

.aec-single-navigation__title {
	font-size: 1rem;
	line-height: 1.35;
}

.single-post.aec-single-nav-boxed .aec-single-navigation a {
	padding: 1rem 1.1rem;
	border: 1px solid var(--aec-surface-border, #e5e7eb);
	border-radius: 18px;
	background: #fff;
}

@media (max-width: 921px) {
	.aec-archive-layout-grid-2 .site-main .ast-row,
	.aec-archive-layout-grid-3 .site-main .ast-row {
		grid-template-columns: 1fr;
	}

	.aec-archive-layout-masonry .site-main .ast-row {
		column-count: 2;
	}
}

@media (max-width: 768px) {
	.aec-author-box {
		grid-template-columns: 1fr;
	}

	.aec-single-navigation .nav-links {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 544px) {
	.aec-archive-layout-masonry .site-main .ast-row {
		column-count: 1;
	}
}
