/*
 * Main CSS - Non-Critical Styles
 * Loaded asynchronously after critical CSS
 * Contains all below-the-fold and component styles
 */

/* ==========================================================================
   CONTENT SECTIONS
   ========================================================================== */

.entry-content {
	margin-top: var(--spacing-2xl);
}

.entry-header {
	margin-bottom: var(--spacing-2xl);
}

.entry-title {
	margin-bottom: var(--spacing-md);
}

.entry-meta {
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
	margin-bottom: var(--spacing-lg);
}

.entry-meta a {
	color: var(--color-text-light);
}

.entry-meta a:hover {
	color: var(--color-primary);
}

/* ==========================================================================
   POSTS & ARTICLES
   ========================================================================== */

article {
	margin-bottom: var(--spacing-3xl);
}

.post-thumbnail {
	margin-bottom: var(--spacing-xl);
	overflow: hidden;
	border-radius: 4px;
}

.post-thumbnail img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform var(--transition-base);
}

.post-thumbnail a:hover img {
	transform: scale(1.02);
}

/* ==========================================================================
   TYPOGRAPHY EXTENDED
   ========================================================================== */

blockquote {
	margin: var(--spacing-2xl) 0;
	padding: var(--spacing-lg) var(--spacing-xl);
	border-left: 4px solid var(--color-primary);
	background-color: var(--color-background-alt);
	font-style: italic;
}

blockquote cite {
	display: block;
	margin-top: var(--spacing-md);
	font-size: var(--font-size-sm);
	font-style: normal;
	color: var(--color-text-light);
}

code, pre {
	font-family: "Courier New", Courier, monospace;
	font-size: 0.875em;
	background-color: var(--color-background-alt);
	padding: 0.125rem 0.25rem;
	border-radius: 3px;
}

pre {
	padding: var(--spacing-md);
	overflow-x: auto;
	margin: var(--spacing-lg) 0;
}

pre code {
	padding: 0;
	background: none;
}

ul, ol {
	margin-bottom: var(--spacing-lg);
	padding-left: var(--spacing-xl);
}

li {
	margin-bottom: var(--spacing-sm);
}

hr {
	border: 0;
	height: 1px;
	background-color: var(--color-border);
	margin: var(--spacing-2xl) 0;
}

/* ==========================================================================
   IMAGES & MEDIA
   ========================================================================== */

img {
	max-width: 100%;
	height: auto;
	display: block;
}

figure {
	margin: var(--spacing-2xl) 0;
}

figcaption {
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
	margin-top: var(--spacing-sm);
	text-align: center;
}

.wp-caption {
	max-width: 100%;
}

.wp-caption-text {
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
	margin-top: var(--spacing-sm);
	text-align: center;
}

/* Responsive embeds */
.embed-container {
	position: relative;
	padding-bottom: 56.25%; /* 16:9 aspect ratio */
	height: 0;
	overflow: hidden;
	max-width: 100%;
}

.embed-container iframe,
.embed-container object,
.embed-container embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* ==========================================================================
   BUTTONS & FORMS
   ========================================================================== */

button, .button, input[type="submit"], input[type="button"] {
	display: inline-block;
	padding: var(--spacing-sm) var(--spacing-lg);
	background-color: var(--color-primary);
	color: white;
	border: none;
	border-radius: 4px;
	font-size: var(--font-size-base);
	font-weight: 600;
	cursor: pointer;
	transition: background-color var(--transition-fast), transform var(--transition-fast);
	text-align: center;
	text-decoration: none;
}

button:hover, .button:hover, input[type="submit"]:hover, input[type="button"]:hover {
	background-color: var(--color-primary-dark);
	transform: translateY(-1px);
	text-decoration: none;
	color: white;
}

button:active, .button:active, input[type="submit"]:active, input[type="button"]:active {
	transform: translateY(0);
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
textarea,
select {
	width: 100%;
	padding: var(--spacing-sm) var(--spacing-md);
	border: 1px solid var(--color-border);
	border-radius: 4px;
	font-size: var(--font-size-base);
	font-family: inherit;
	background-color: var(--color-background);
	color: var(--color-text);
	transition: border-color var(--transition-fast);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="date"]:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--color-primary);
}

textarea {
	min-height: 150px;
	resize: vertical;
}

label {
	display: block;
	margin-bottom: var(--spacing-xs);
	font-weight: 600;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.site-footer {
	background-color: var(--color-background-alt);
	border-top: 1px solid var(--color-border);
	padding: var(--spacing-2xl) 0;
	margin-top: var(--spacing-3xl);
}

.site-info {
	text-align: center;
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
}

/* ==========================================================================
   PAGINATION
   ========================================================================== */

.pagination {
	display: flex;
	justify-content: center;
	gap: var(--spacing-sm);
	margin: var(--spacing-3xl) 0;
	flex-wrap: wrap;
}

.pagination .page-numbers {
	display: inline-block;
	padding: var(--spacing-sm) var(--spacing-md);
	border: 1px solid var(--color-border);
	border-radius: 4px;
	color: var(--color-text);
	text-decoration: none;
	transition: all var(--transition-fast);
	min-width: 44px;
	text-align: center;
}

.pagination .page-numbers:hover {
	border-color: var(--color-primary);
	color: var(--color-primary);
	background-color: var(--color-background-alt);
}

.pagination .page-numbers.current {
	background-color: var(--color-primary);
	color: white;
	border-color: var(--color-primary);
}

/* ==========================================================================
   COMMENTS
   ========================================================================== */

.comments-area {
	margin-top: var(--spacing-3xl);
	padding-top: var(--spacing-3xl);
	border-top: 1px solid #e5e7eb;
	background-color: #ffffff !important;
	padding: var(--spacing-xl);
	border-radius: 8px;
}

.comment-list {
	list-style: none;
	padding: 0;
	margin: var(--spacing-2xl) 0;
}

.comment {
	margin-bottom: var(--spacing-2xl);
	padding: var(--spacing-lg);
	background-color: #f9fafb !important;
	border-radius: 4px;
	border: 1px solid #e5e7eb;
}

.comment-author {
	font-weight: 700;
	margin-bottom: var(--spacing-sm);
	color: #333333 !important;
}

.comment-metadata {
	font-size: var(--font-size-sm);
	color: #6b7280 !important;
	margin-bottom: var(--spacing-md);
}

.comment-metadata a {
	color: #6b7280 !important;
}

.comment-content {
	margin-bottom: var(--spacing-md);
	color: #333333 !important;
}

.comment-content p {
	color: #333333 !important;
}

.reply {
	font-size: var(--font-size-sm);
}

.children {
	list-style: none;
	padding-left: var(--spacing-xl);
	margin-top: var(--spacing-lg);
}

/* Comment Form */
.comment-respond {
	margin-top: var(--spacing-2xl);
	padding: var(--spacing-xl);
	background-color: #ffffff !important;
	border-radius: 8px;
	border: 1px solid #e5e7eb;
}

.comment-reply-title {
	color: #333333 !important;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	background-color: #ffffff !important;
	color: #333333 !important;
	border: 1px solid #d1d5db !important;
	padding: 12px 16px;
	font-size: 16px;
}

.comment-form input[type="text"]:focus,
.comment-form input[type="email"]:focus,
.comment-form input[type="url"]:focus,
.comment-form textarea:focus {
	background-color: #ffffff !important;
	color: #333333 !important;
	border-color: #10b981 !important;
	outline: none;
	box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
}

.comment-form input[type="text"]::placeholder,
.comment-form input[type="email"]::placeholder,
.comment-form input[type="url"]::placeholder,
.comment-form textarea::placeholder {
	color: #9ca3af !important;
}

.comment-form label {
	color: #333333 !important;
	font-weight: 600;
	display: block;
	margin-bottom: 8px;
}

.comment-form textarea {
	min-height: 150px;
}

.comment-form-comment,
.comment-form-author,
.comment-form-email,
.comment-form-url {
	margin-bottom: var(--spacing-lg);
}

.form-submit {
	margin-top: var(--spacing-lg);
}

/* ==========================================================================
   MOBILE MENU
   ========================================================================== */
.submenu-toggle {
	background: none;
	border: none;
	padding: 10px;
	cursor: pointer;
	color: var(--body-text);
	font-size: 0.875rem;
	margin-left: 5px;
	vertical-align: middle;
}

@media (max-width: 768px) {
	.main-navigation {
		position: relative;
	}

	.main-navigation ul {
		position: fixed;
		top: 0;
		right: -100%;
		width: 280px;
		height: 100vh;
		background: var(--card-bg);
		box-shadow: -2px 0 10px rgba(0, 0, 0, 0.2);
		padding: 60px 0 20px 0;
		overflow-y: auto;
		z-index: 9999;
		transition: right 0.3s ease;
		flex-direction: column;
		gap: 0;
	}

	.main-navigation.toggled ul {
		right: 0;
		display: block !important;
	}

	.main-navigation ul li {
		display: block;
		width: 100%;
		border-bottom: 1px solid var(--color-border);
	}

	.main-navigation ul a {
		display: block;
		padding: 15px 20px;
		color: var(--body-text);
		text-decoration: none;
	}

	.main-navigation ul a:hover {
		background: var(--primary-green);
		color: #ffffff;
	}

	.main-navigation ul .sub-menu {
		display: none;
		padding-left: 20px;
		position: static;
		width: 100%;
		background: transparent;
		box-shadow: none;
	}

	.main-navigation ul .menu-item-has-children.submenu-open > .sub-menu {
		display: block;
	}

	.main-navigation ul .sub-menu li {
		border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	}

	/* Mobile menu overlay */
	body.mobile-menu-open::before {
		content: '';
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.5);
		z-index: 9998;
	}

	/* Close button positioning */
	.main-navigation.toggled + .menu-toggle,
	.site-header .menu-toggle {
		position: relative;
		z-index: 10000;
	}
}

/* ==========================================================================
   SIDEBAR & WIDGETS
   ========================================================================== */

.sidebar {
	margin-top: var(--spacing-2xl);
}

.widget {
	margin-bottom: var(--spacing-2xl);
	padding: var(--spacing-lg);
	background-color: var(--color-background-alt);
	border-radius: 4px;
}

.widget-title {
	font-size: var(--font-size-xl);
	margin-bottom: var(--spacing-md);
}

.widget ul {
	list-style: none;
	padding: 0;
}

.widget li {
	padding: var(--spacing-sm) 0;
	border-bottom: 1px solid var(--color-border);
}

.widget li:last-child {
	border-bottom: none;
}

/* ==========================================================================
   404 PAGE
   ========================================================================== */

.error-404 {
	text-align: center;
	padding: var(--spacing-3xl) 0;
}

.error-404 .page-title {
	font-size: clamp(3rem, 10vw, 6rem);
	margin-bottom: var(--spacing-md);
}

/* ==========================================================================
   SEARCH FORM
   ========================================================================== */

.search-form {
	display: flex;
	gap: var(--spacing-sm);
}

.search-form label {
	flex: 1;
	margin: 0;
}

.search-form input[type="search"] {
	width: 100%;
}

.search-form button {
	white-space: nowrap;
}

/* ==========================================================================
   RESPONSIVE GRID
   ========================================================================== */

.grid {
	display: grid;
	gap: var(--spacing-xl);
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

/* ==========================================================================
   TABLET STYLES
   ========================================================================== */

@media (min-width: 768px) {
	:root {
		--container-padding: 2rem;
	}

	.sidebar {
		margin-top: 0;
	}

	.grid-2-col {
		grid-template-columns: 2fr 1fr;
	}
}

/* ==========================================================================
   DESKTOP STYLES
   ========================================================================== */

@media (min-width: 1024px) {
	.grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ==========================================================================
   ACCESSIBILITY
   ========================================================================== */

:focus {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

button:focus,
a:focus {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

/* Reduced motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* ==========================================================================
   UTILITIES
   ========================================================================== */

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.mt-0 { margin-top: 0; }
.mt-sm { margin-top: var(--spacing-sm); }
.mt-md { margin-top: var(--spacing-md); }
.mt-lg { margin-top: var(--spacing-lg); }
.mt-xl { margin-top: var(--spacing-xl); }

.mb-0 { margin-bottom: 0; }
.mb-sm { margin-bottom: var(--spacing-sm); }
.mb-md { margin-bottom: var(--spacing-md); }
.mb-lg { margin-bottom: var(--spacing-lg); }
.mb-xl { margin-bottom: var(--spacing-xl); }

.hidden { display: none; }
.visible { display: block; }

/* ==========================================================================
   LOADING STATES
   ========================================================================== */

.loading {
	opacity: 0.6;
	pointer-events: none;
}

.fade-in {
	animation: fadeIn var(--transition-base);
}

@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}
