/**
 * AskIfra Phase 3 CSS
 * 404, Search, Sidebar Polish, Miscellaneous, Print
 *
 * @package AskIfra
 * @since 1.0.0
 */

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

.error-404 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-16);
	align-items: center;
	padding: var(--space-16) 0 var(--space-10);
}

.error-404__visual {
	display: flex;
	align-items: center;
	justify-content: center;
}

.error-404__visual svg {
	max-width: 100%;
	height: auto;
}

.error-404__title {
	font-size: clamp(1.6rem, 3vw, 2.25rem);
	font-weight: var(--font-weight-extrabold);
	color: var(--color-text-primary);
	line-height: var(--line-height-tight);
	margin-bottom: var(--space-4);
}

.error-404__desc {
	font-size: var(--font-size-base);
	color: var(--color-text-secondary);
	line-height: var(--line-height-relaxed);
	margin-bottom: var(--space-6);
}

.error-404__search {
	margin-bottom: var(--space-6);
}

.error-404__search-label {
	font-size: var(--font-size-sm);
	font-weight: var(--font-weight-medium);
	color: var(--color-text-secondary);
	margin-bottom: var(--space-3);
}

.error-404__search .search-form {
	display: flex;
	gap: var(--space-2);
}

.error-404__search .search-field {
	flex: 1;
	padding: var(--space-3) var(--space-4);
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-lg);
	font-size: var(--font-size-sm);
	background: var(--color-bg);
	color: var(--color-text-primary);
	outline: none;
	transition: border-color var(--transition-fast);
}

.error-404__search .search-field:focus {
	border-color: var(--color-primary);
}

.error-404__search .search-submit {
	padding: var(--space-3) var(--space-5);
	background: var(--color-primary);
	color: #fff;
	border: none;
	border-radius: var(--radius-lg);
	font-size: var(--font-size-sm);
	font-weight: var(--font-weight-semibold);
	cursor: pointer;
	transition: background var(--transition-fast);
	white-space: nowrap;
}

.error-404__search .search-submit:hover {
	background: var(--color-primary-dark);
}

.error-404__actions {
	display: flex;
	gap: var(--space-3);
	flex-wrap: wrap;
}

.error-404__suggested {
	padding-top: var(--space-10);
	border-top: 1px solid var(--color-border);
	margin-bottom: var(--space-10);
}

.error-404__suggested-title {
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	margin-bottom: var(--space-6);
	color: var(--color-text-primary);
}

/* ==========================================================================
   SEARCH RESULTS PAGE
   ========================================================================== */

.search-again {
	margin-bottom: var(--space-8);
}

.search-again .search-form {
	display: flex;
	gap: var(--space-2);
	max-width: 560px;
}

.search-again .search-field {
	flex: 1;
	padding: var(--space-3) var(--space-5);
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-lg);
	font-size: var(--font-size-base);
	background: var(--color-bg);
	color: var(--color-text-primary);
	outline: none;
	transition: border-color var(--transition-fast);
}

.search-again .search-field:focus {
	border-color: var(--color-primary);
}

.search-again .search-submit {
	padding: var(--space-3) var(--space-6);
	background: var(--color-primary);
	color: #fff;
	border: none;
	border-radius: var(--radius-lg);
	font-size: var(--font-size-base);
	font-weight: var(--font-weight-semibold);
	cursor: pointer;
	transition: background var(--transition-fast);
}

.search-again .search-submit:hover {
	background: var(--color-primary-dark);
}

/* Search term highlight */
mark {
	background: var(--color-primary-light);
	color: var(--color-primary);
	padding: 0 2px;
	border-radius: 2px;
}

/* ==========================================================================
   SIDEBAR COMPLETE STYLES
   ========================================================================== */

.sidebar {
	position: sticky;
	top: calc(72px + var(--space-6));
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

/* Widget base */
.widget {
	background: var(--color-surface);
	border-radius: var(--radius-xl);
	padding: var(--space-6);
	box-shadow: var(--shadow-sm);
	border: 1px solid var(--color-border);
}

.widget__title {
	font-size: var(--font-size-base);
	font-weight: var(--font-weight-bold);
	color: var(--color-text-primary);
	margin: 0 0 var(--space-5);
	padding-bottom: var(--space-3);
	border-bottom: 2px solid var(--color-primary-light);
	position: relative;
	letter-spacing: -0.01em;
}

.widget__title::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 36px;
	height: 2px;
	background: var(--color-primary);
	border-radius: var(--radius-full);
}

/* WordPress default widgets clean-up */
.widget ul {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.widget ul li {
	font-size: var(--font-size-sm);
	color: var(--color-text-secondary);
	padding-bottom: var(--space-2);
	border-bottom: 1px solid var(--color-border-light);
}

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

.widget ul li a {
	color: var(--color-text-primary);
	font-size: var(--font-size-sm);
	font-weight: var(--font-weight-medium);
	text-decoration: none;
	transition: color var(--transition-fast);
	display: block;
	line-height: var(--line-height-snug);
}

.widget ul li a:hover {
	color: var(--color-primary);
}

/* Widget calendar */
.widget_calendar table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--font-size-sm);
}

.widget_calendar th,
.widget_calendar td {
	text-align: center;
	padding: var(--space-1);
}

.widget_calendar td a {
	color: var(--color-primary);
	font-weight: var(--font-weight-semibold);
}

/* Widget tag cloud */
.widget_tag_cloud .tagcloud {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.widget_tag_cloud .tagcloud a {
	font-size: var(--font-size-xs) !important;
	background: var(--color-bg);
	color: var(--color-text-secondary);
	border: 1px solid var(--color-border);
	padding: var(--space-1) var(--space-3);
	border-radius: var(--radius-full);
	text-decoration: none;
	transition: all var(--transition-fast);
}

.widget_tag_cloud .tagcloud a:hover {
	background: var(--color-primary);
	color: #fff;
	border-color: var(--color-primary);
}

/* ==========================================================================
   ADMIN BAR OFFSETS
   ========================================================================== */

.admin-bar .topbar {
	top: 32px;
}

.admin-bar .site-header {
	top: 32px;
}

.admin-bar .sidebar {
	top: calc(72px + 32px + var(--space-6));
}

.admin-bar .search-overlay {
	top: 32px;
}

.admin-bar .primary-nav {
	top: calc(60px + 32px);
}

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

@media screen and (max-width: 782px) {
	.admin-bar .topbar,
	.admin-bar .site-header {
		top: 46px;
	}

	.admin-bar .primary-nav {
		top: calc(60px + 46px);
	}
}

@media screen and (max-width: 600px) {
	.admin-bar .topbar,
	.admin-bar .site-header {
		top: 0;
	}

	.admin-bar .primary-nav {
		top: 60px;
	}
}

/* ==========================================================================
   GENERAL FORM STYLES (WordPress defaults)
   ========================================================================== */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
textarea,
select {
	font-family: var(--font-family);
	font-size: var(--font-size-sm);
	color: var(--color-text-primary);
	background: var(--color-surface);
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-3) var(--space-4);
	outline: none;
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
	width: 100%;
}

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,
textarea:focus,
select:focus {
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(46, 139, 115, 0.12);
}

/* ==========================================================================
   WORDPRESS ALIGNMENT CLASSES
   ========================================================================== */

.alignleft {
	float: left;
	margin: 0 var(--space-6) var(--space-4) 0;
}

.alignright {
	float: right;
	margin: 0 0 var(--space-4) var(--space-6);
}

.aligncenter {
	display: block;
	margin-inline: auto;
	text-align: center;
}

.alignwide {
	max-width: 900px;
	margin-inline: auto;
}

.alignfull {
	width: 100vw;
	margin-left: calc(50% - 50vw);
}

/* ==========================================================================
   GALLERY (WordPress core)
   ========================================================================== */

.gallery {
	display: grid;
	gap: var(--space-3);
	margin-block: var(--space-6);
}

.gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
.gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
.gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }

.gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--radius-md);
}

.gallery-caption {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	text-align: center;
	margin-top: var(--space-1);
}

/* ==========================================================================
   CAPTIONS
   ========================================================================== */

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

.wp-caption-text {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	text-align: center;
	margin-top: var(--space-2);
	font-style: italic;
}

/* ==========================================================================
   SITE WRAPPER MINIMUM HEIGHT
   ========================================================================== */

.site-wrapper {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site-main {
	flex: 1;
}

/* ==========================================================================
   GUTENBERG BLOCK EDITOR COMPATIBILITY
   ========================================================================== */

.wp-block-image img {
	border-radius: var(--radius-lg);
}

.wp-block-quote {
	border-left: 4px solid var(--color-primary);
	background: var(--color-primary-light);
	padding: var(--space-5) var(--space-6);
	border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
}

.wp-block-quote p {
	font-style: italic;
	color: var(--color-text-secondary);
}

.wp-block-button__link {
	background: var(--color-primary) !important;
	border-radius: var(--radius-full) !important;
	font-family: var(--font-family);
	font-weight: var(--font-weight-semibold);
	transition: background var(--transition-fast);
}

.wp-block-button__link:hover {
	background: var(--color-primary-dark) !important;
}

.wp-block-separator {
	border-color: var(--color-border);
}

.wp-block-code,
.wp-block-preformatted pre {
	background: #1e2535;
	color: #e2e8f0;
	padding: var(--space-5);
	border-radius: var(--radius-lg);
	font-size: var(--font-size-sm);
	overflow-x: auto;
}

/* ==========================================================================
   PRINT STYLES
   ========================================================================== */

@media print {
	.topbar,
	.site-header,
	.sidebar,
	.site-footer,
	.reading-progress-wrap,
	.search-overlay,
	.related-posts,
	.comments-area,
	.nav-toggle,
	.search-toggle,
	.btn {
		display: none !important;
	}

	body {
		font-size: 12pt;
		color: #000;
		background: #fff;
	}

	.container {
		max-width: 100%;
		padding: 0;
	}

	.single-post-wrap {
		grid-template-columns: 1fr;
	}

	.entry-content a::after {
		content: ' (' attr(href) ')';
		font-size: 10pt;
		color: #555;
	}

	h1, h2, h3, h4 {
		page-break-after: avoid;
	}

	img {
		max-width: 100% !important;
	}

	.single-post__hero {
		max-height: 300px;
		overflow: hidden;
	}
}

/* ==========================================================================
   RESPONSIVE – PHASE 3 SPECIFIC
   ========================================================================== */

@media (max-width: 900px) {
	.error-404 {
		grid-template-columns: 1fr;
		text-align: center;
		padding-top: var(--space-10);
		gap: var(--space-8);
	}

	.error-404__visual {
		order: -1;
	}

	.error-404__visual svg {
		max-width: 280px;
	}

	.error-404__actions {
		justify-content: center;
	}

	.sidebar {
		position: static;
	}
}

@media (max-width: 600px) {
	.search-again .search-form {
		flex-direction: column;
	}

	.error-404__search .search-form {
		flex-direction: column;
	}

	.gallery-columns-3,
	.gallery-columns-4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ==========================================================================
   ADMIN BAR — body padding correction for site-sticky-wrap
   ========================================================================== */
.admin-bar body {
	padding-top: calc(36px + 72px + 32px) !important;
}
@media (max-width: 782px) {
	.admin-bar body {
		padding-top: calc(36px + 60px + 46px) !important;
	}
}
@media (max-width: 600px) {
	.admin-bar body {
		padding-top: calc(36px + 60px) !important;
	}
	.admin-bar .site-sticky-wrap {
		top: 0 !important;
	}
}

/* ==========================================================================
   FULL WIDTH PAGE (No Sidebar) — Privacy Policy, Disclaimer, Terms
   ========================================================================== */

.full-width-content {
	max-width: 860px;
	margin: 0 auto;
	padding-block: var(--space-10);
}

.page-article__header {
	margin-bottom: var(--space-8);
	padding-bottom: var(--space-6);
	border-bottom: 2px solid var(--color-primary-light);
	position: relative;
}

.page-article__header::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 60px;
	height: 2px;
	background: var(--color-primary);
}

.page-article__title {
	font-size: clamp(1.6rem, 3vw, 2.5rem);
	font-weight: var(--font-weight-extrabold);
	color: var(--color-text-primary);
	line-height: var(--line-height-tight);
	margin-bottom: var(--space-3);
}

.page-article__meta {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	margin: 0;
}

.page-article__content {
	font-size: var(--font-size-md);
	line-height: var(--line-height-loose);
}

/* mobile nav styles live in navigation.css */
