/**
 * Page template layouts — full width, centered, sidebars, widget areas.
 *
 * @package GraceTheme
 */

:root {
	--gt-content-width: 1200px;
	--gt-sidebar-width: 280px;
}

/* Default page / centered — narrow content */
.gt-page .gt-article {
	max-width: min(var(--gt-content-width), 720px);
	margin-left: auto;
	margin-right: auto;
	padding: var(--space-12) var(--space-4) var(--space-16);
}

/* Full width — content stretches, constrained by padding */
.gt-page-fullwidth .gt-article {
	max-width: none;
	padding-left: var(--space-4);
	padding-right: var(--space-4);
}

/* Page layout wrapper for sidebar templates */
.gt-page-layout {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-8);
	max-width: var(--gt-content-width);
	margin: 0 auto;
	padding: 0 var(--space-4);
}

/* Sidebar left */
.gt-layout-sidebar-left {
	flex-direction: row;
}

.gt-layout-sidebar-left .gt-sidebar-left {
	order: 1;
	flex: 0 0 var(--gt-sidebar-width);
	min-width: 200px;
}

.gt-layout-sidebar-left .gt-page-content {
	order: 2;
	flex: 1 1 0;
	min-width: 0;
}

/* Sidebar right */
.gt-layout-sidebar-right {
	flex-direction: row;
}

.gt-layout-sidebar-right .gt-page-content {
	order: 1;
	flex: 1 1 0;
	min-width: 0;
}

.gt-layout-sidebar-right .gt-sidebar-right {
	order: 2;
	flex: 0 0 var(--gt-sidebar-width);
	min-width: 200px;
}

/* Both sidebars */
.gt-layout-sidebar-both {
	flex-direction: row;
}

.gt-layout-sidebar-both .gt-sidebar-left {
	order: 1;
	flex: 0 0 var(--gt-sidebar-width);
	min-width: 180px;
}

.gt-layout-sidebar-both .gt-page-content {
	order: 2;
	flex: 1 1 0;
	min-width: 0;
}

.gt-layout-sidebar-both .gt-sidebar-right {
	order: 3;
	flex: 0 0 var(--gt-sidebar-width);
	min-width: 180px;
}

/* Sidebar styling */
.gt-sidebar {
	padding-top: var(--space-4);
}

.gt-sidebar .gt-widget {
	margin-bottom: var(--space-6);
}

.gt-sidebar .gt-widget:last-child {
	margin-bottom: 0;
}

.gt-sidebar .gt-widget-title {
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--terracotta);
	margin-bottom: var(--space-3);
}

/* Content top / bottom widget areas */
.gt-widget-area {
	max-width: var(--gt-content-width);
	margin: 0 auto;
	padding: var(--space-6) var(--space-4);
}

.gt-content-top {
	border-bottom: 1px solid var(--linen);
}

.gt-content-bottom {
	border-top: 1px solid var(--linen);
	margin-top: var(--space-8);
}

.gt-widget-area .gt-widget {
	margin-bottom: var(--space-6);
}

.gt-widget-area .gt-widget:last-child {
	margin-bottom: 0;
}

/* Stack on mobile */
@media screen and (max-width: 768px) {
	.gt-page-layout {
		flex-direction: column;
	}

	.gt-layout-sidebar-left .gt-sidebar-left,
	.gt-layout-sidebar-right .gt-sidebar-right,
	.gt-layout-sidebar-both .gt-sidebar-left,
	.gt-layout-sidebar-both .gt-sidebar-right {
		flex: none;
		min-width: 0;
		width: 100%;
	}

	.gt-layout-sidebar-left .gt-sidebar-left {
		order: 2;
	}

	.gt-layout-sidebar-left .gt-page-content {
		order: 1;
	}
}

/* ── SEARCH RESULTS ── */
.gt-search-section {
	background: var(--cream);
	padding: var(--space-20) var(--space-12) calc(var(--space-20) + var(--space-5));
}

.gt-search-inner {
	max-width: var(--gt-content-width);
	margin: 0 auto;
}

.gt-search-header {
	margin-bottom: var(--space-12);
	padding-bottom: var(--space-8);
	border-bottom: 1px solid var(--linen);
}

.gt-search-title {
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 3.5vw, 2.75rem);
	font-weight: 600;
	color: var(--espresso);
	line-height: 1.2;
	margin-top: var(--space-2);
	margin-bottom: var(--space-3);
}

.gt-search-query {
	color: var(--terracotta);
}

.gt-search-count {
	font-size: 0.875rem;
	color: var(--text-light);
	margin: 0;
}

.gt-search-results {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.gt-search-result {
	background: white;
	border-radius: 8px;
	padding: var(--space-6) var(--space-8);
	box-shadow: 0 1px 4px rgba(44, 24, 16, 0.06);
	transition: box-shadow 0.2s, transform 0.2s;
}

.gt-search-result:hover {
	box-shadow: 0 4px 16px rgba(44, 24, 16, 0.1);
	transform: translateY(-1px);
}

.gt-search-result-type {
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--terracotta);
	margin-bottom: var(--space-2);
}

.gt-search-result-title {
	font-family: var(--font-display);
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1.3;
	margin-bottom: var(--space-2);
}

.gt-search-result-title a {
	color: var(--espresso);
	text-decoration: none;
	transition: color 0.2s;
}

.gt-search-result-title a:hover {
	color: var(--terracotta);
}

.gt-search-result-excerpt {
	font-size: 0.9375rem;
	color: var(--text-light);
	line-height: 1.7;
	margin-bottom: var(--space-3);
}

.gt-search-result-excerpt p {
	margin: 0;
}

.gt-search-result-link {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--terracotta);
	text-decoration: none;
	transition: color 0.2s;
}

.gt-search-result-link:hover {
	color: var(--terracotta-dark);
}

/* Search empty state */
.gt-search-empty {
	text-align: center;
	padding: var(--space-16) var(--space-4);
}

.gt-search-empty-msg {
	font-size: 1rem;
	color: var(--text-light);
	margin-bottom: var(--space-8);
}

.gt-search-empty .search-form {
	display: inline-flex;
	gap: var(--space-2);
	max-width: 480px;
	width: 100%;
}

.gt-search-empty .search-field {
	flex: 1;
	padding: var(--space-2) var(--space-4);
	font-family: var(--font-body);
	font-size: 0.9375rem;
	border: 1px solid var(--linen);
	border-radius: 4px;
	background: white;
	color: var(--text);
	outline: none;
}

.gt-search-empty .search-field:focus {
	border-color: var(--terracotta);
}

.gt-search-empty .search-submit {
	padding: var(--space-2) var(--space-6);
	background: var(--terracotta);
	color: var(--cream);
	border: none;
	border-radius: 4px;
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
}

.gt-search-empty .search-submit:hover {
	background: var(--terracotta-dark);
}

/* Search pagination */
.gt-search .navigation.pagination {
	margin-top: var(--space-12);
	display: flex;
	justify-content: center;
}

.gt-search .page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.gt-search .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	justify-content: center;
}

.gt-search .nav-links a,
.gt-search .nav-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	padding: var(--space-2) var(--space-3);
	border-radius: 4px;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.gt-search .nav-links a {
	color: var(--espresso);
	background: white;
	border: 1px solid var(--linen);
}

.gt-search .nav-links a:hover {
	background: var(--sand);
	border-color: var(--terracotta);
	color: var(--terracotta);
}

.gt-search .nav-links span.current {
	background: var(--terracotta);
	color: white;
	border: 1px solid var(--terracotta);
}

@media (max-width: 768px) {
	.gt-search-section {
		padding: var(--space-12) var(--space-6) var(--space-16);
	}

	.gt-search-result {
		padding: var(--space-5) var(--space-5);
	}
}

@media (max-width: 480px) {
	.gt-search-section {
		padding: var(--space-10) var(--space-4) var(--space-12);
	}
}

/* ── 404 PAGE ── */
.gt-404 {
	min-height: 80vh;
	display: flex;
	align-items: center;
}

.gt-404-section {
	position: relative;
	width: 100%;
	max-width: var(--gt-content-width);
	margin: 0 auto;
	padding: var(--space-20) var(--space-12);
	overflow: hidden;
	display: flex;
	align-items: center;
}

.gt-404-inner {
	position: relative;
	z-index: 2;
	max-width: 560px;
}

.gt-404-eyebrow {
	font-family: var(--font-body);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--terracotta);
	margin-bottom: var(--space-4);
}

.gt-404-heading {
	font-family: var(--font-display);
	font-size: clamp(2.5rem, 5vw, 3.75rem);
	font-weight: 600;
	color: var(--espresso);
	line-height: 1.15;
	margin-bottom: var(--space-6);
}

.gt-404-subtext {
	font-size: 1.0625rem;
	color: var(--text-light);
	line-height: 1.7;
	margin-bottom: var(--space-10);
	max-width: 460px;
}

/* Search form inside 404 */
.gt-404-search {
	margin-bottom: var(--space-8);
}

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

.gt-404-search .search-field {
	flex: 1 1 200px;
	padding: var(--space-2) var(--space-4);
	font-family: var(--font-body);
	font-size: 0.9375rem;
	border: 1px solid var(--linen);
	border-radius: 4px;
	background: var(--cream);
	color: var(--text);
	outline: none;
	transition: border-color 0.2s;
}

.gt-404-search .search-field:focus {
	border-color: var(--terracotta);
	box-shadow: 0 0 0 3px rgba(193, 105, 79, 0.15);
}

.gt-404-search .search-submit {
	padding: var(--space-2) var(--space-6);
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	background: var(--terracotta);
	color: var(--cream);
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: background-color 0.2s;
}

.gt-404-search .search-submit:hover {
	background: var(--terracotta-dark);
}

.gt-404-search .search-submit:focus {
	outline: 2px solid var(--gold);
	outline-offset: 2px;
}

/* Action buttons */
.gt-404-actions {
	display: flex;
	gap: var(--space-4);
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: var(--space-10);
}

.gt-404-btn-secondary {
	background: transparent;
	color: var(--terracotta);
	border: 1.5px solid var(--terracotta);
	padding: calc(var(--space-2) - 1.5px) calc(var(--space-4) - 1.5px);
}

.gt-404-btn-secondary:hover {
	background: var(--terracotta);
	color: var(--cream);
}

/* Quick navigation links */
.gt-404-links-label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--warm-gray);
	margin-bottom: var(--space-3);
}

.gt-404-links-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2) var(--space-6);
}

.gt-404-links-list li {
	margin: 0;
}

.gt-404-links-list a {
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--espresso);
	text-decoration: none;
	border-bottom: 1px solid var(--linen);
	padding-bottom: 1px;
	transition: color 0.2s, border-color 0.2s;
}

.gt-404-links-list a:hover {
	color: var(--terracotta);
	border-color: var(--terracotta-light);
}

/* Decorative large 404 number */
.gt-404-decoration {
	position: absolute;
	right: -20px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 1;
	pointer-events: none;
	user-select: none;
}

.gt-404-number {
	font-family: var(--font-display);
	font-size: clamp(8rem, 18vw, 18rem);
	font-weight: 700;
	line-height: 1;
	color: var(--linen);
	display: block;
	letter-spacing: -0.04em;
}

/* Responsive */
@media screen and (max-width: 900px) {
	.gt-404-decoration {
		display: none;
	}

	.gt-404-section {
		padding: var(--space-16) var(--space-6);
	}

	.gt-404-inner {
		max-width: 100%;
	}
}

@media screen and (max-width: 480px) {
	.gt-404-section {
		padding: var(--space-12) var(--space-4);
	}

	.gt-404-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.gt-404-actions .gt-btn {
		text-align: center;
	}
}
