/*
 * Cheetah Wireframe — main stylesheet.
 * Every value that a Customizer option controls is a CSS custom property;
 * fallbacks here mirror inc/defaults.php.
 */

/* ========== Reset & base ========== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	background: var(--cw-bg, #f3f4f6);
	color: var(--cw-text, #374151);
	font-family: var(--cw-font-body, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
	font-size: var(--cw-fs-base, 16px);
	font-weight: var(--cw-body-weight, 400);
	line-height: var(--cw-lh, 1.65);
	-webkit-font-smoothing: antialiased;
}

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

h1, h2, h3, h4, h5, h6 {
	color: var(--cw-headings, #111827);
	font-family: var(--cw-font-heading, inherit);
	font-weight: var(--cw-heading-weight, 700);
	line-height: var(--cw-heading-lh, 1.25);
	margin: 0 0 0.6em;
}

h1 { font-size: var(--cw-h1, 39px); }
h2 { font-size: var(--cw-h2, 31px); }
h3 { font-size: var(--cw-h3, 25px); }
h4 { font-size: var(--cw-h4, 20px); }
h5 { font-size: var(--cw-h5, 16px); }
h6 { font-size: var(--cw-h6, 14px); }

a {
	color: var(--cw-link, #2563eb);
	transition: color 0.15s;
}

a:hover,
a:focus {
	color: var(--cw-link-hover, #1d4ed8);
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 3px solid var(--cw-accent, #f59e0b);
	outline-offset: 3px;
}

body.cw-high-contrast {
	--cw-bg: #fff;
	--cw-surface: #fff;
	--cw-text: #000;
	--cw-headings: #000;
	--cw-border: #000;
	--cw-link: #0037b3;
	--cw-link-hover: #001f66;
	--cw-header-bg: #fff;
	--cw-header-text: #000;
	--cw-header-link: #000;
	--cw-header-link-hover: #0037b3;
	--cw-topbar-bg: #000;
	--cw-topbar-text: #fff;
	--cw-footer-bg: #000;
	--cw-footer-text: #fff;
	--cw-footer-link: #fff;
	--cw-btn-bg: #000;
	--cw-btn-bg-hover: #0037b3;
	--cw-btn-text: #fff;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	word-wrap: normal !important;
}

.skip-link:focus {
	clip: auto;
	clip-path: none;
	height: auto;
	width: auto;
	background: var(--cw-surface, #fff);
	color: var(--cw-link, #2563eb);
	display: block;
	left: 8px;
	top: 8px;
	padding: 12px 20px;
	z-index: 100000;
}

/* ========== Containers & layout ========== */
.cw-container {
	max-width: var(--cw-container, 1200px);
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
}

.cw-container-full {
	padding-left: 24px;
	padding-right: 24px;
}

.cw-layout-boxed .cw-site {
	max-width: calc(var(--cw-container, 1200px) + 96px);
	margin: 0 auto;
	background: var(--cw-surface, #fff);
	box-shadow: 0 0 40px rgba(0, 0, 0, 0.08);
}

.cw-content-area {
	display: grid;
	gap: var(--cw-gap, 24px);
	padding-top: var(--cw-section-y, 64px);
	padding-bottom: var(--cw-section-y, 64px);
	align-items: start;
}

.cw-content-area.cw-has-sidebar.cw-sidebar-right {
	grid-template-columns: minmax(0, 1fr) var(--cw-sidebar-w, 30%);
}

.cw-content-area.cw-has-sidebar.cw-sidebar-left {
	grid-template-columns: var(--cw-sidebar-w, 30%) minmax(0, 1fr);
}

.cw-content-area.cw-sidebar-left #primary {
	order: 2;
}

.cw-content-area.cw-sidebar-left #secondary {
	order: 1;
}

body.cw-mobile .cw-content-area.cw-has-sidebar {
	grid-template-columns: minmax(0, 1fr);
}

body.cw-mobile .cw-content-area.cw-sidebar-left #primary {
	order: 1;
}

body.cw-mobile .cw-content-area.cw-sidebar-left #secondary {
	order: 2;
}

/* ========== Top bar ========== */
.cw-topbar {
	background: var(--cw-topbar-bg, #1f2937);
	color: var(--cw-topbar-text, #e5e7eb);
	font-size: 13px;
}

.cw-topbar a {
	color: inherit;
	text-decoration: none;
}

.cw-topbar-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 16px;
	padding-top: 7px;
	padding-bottom: 7px;
}

.cw-topbar-left,
.cw-topbar-right {
	display: flex;
	align-items: center;
	gap: 16px;
}

.cw-topbar-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.cw-topbar-menu {
	display: flex;
	gap: 14px;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ========== Header (shared) ========== */
.cw-header {
	background: var(--cw-header-bg, #fff);
	color: var(--cw-header-text, #111827);
	padding-top: var(--cw-header-pad-y, 16px);
	padding-bottom: var(--cw-header-pad-y, 16px);
	position: relative;
	z-index: 90;
}

body.cw-header-bordered .cw-header {
	border-bottom: 1px solid var(--cw-border, #e5e7eb);
}

.cw-sticky-header .cw-header-wrap {
	position: sticky;
	top: 0;
	z-index: 90;
}

.cw-header-wrap.cw-scrolled .cw-header {
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.admin-bar.cw-sticky-header .cw-header-wrap {
	top: 32px;
}

.cw-transparent-header .cw-header-wrap {
	position: absolute;
	left: 0;
	right: 0;
	z-index: 90;
}

.cw-transparent-header.cw-sticky-header .cw-header-wrap {
	position: sticky;
}

.cw-transparent-header .cw-header {
	background: transparent;
}

.cw-transparent-header .cw-header-wrap.cw-scrolled .cw-header {
	background: var(--cw-header-bg, #fff);
}

/* Header rows & zones (Header Builder) */
.cw-header-device-tablet,
.cw-header-device-mobile {
	display: none;
}

body.cw-tablet .cw-header-device-desktop,
body.cw-mobile .cw-header-device-desktop {
	display: none;
}

body.cw-tablet .cw-header-device-tablet,
body.cw-mobile .cw-header-device-mobile {
	display: block;
}

body.cw-tablet .cw-topbar,
body.cw-mobile .cw-topbar {
	display: none;
}

.cw-header-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--cw-gap, 24px);
	min-height: 40px;
}

.cw-zone {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}

.cw-el {
	display: flex;
	align-items: center;
	min-width: 0;
}

/* 3-zone rows: left grows from start, center stays centered, right aligns end */
.cw-row-main,
.cw-row-bottom {
	position: relative;
}

.cw-zone-main-left,
.cw-zone-bottom-left {
	margin-right: auto;
}

.cw-zone-main-right,
.cw-zone-bottom-right {
	margin-left: auto;
}

.cw-zone-main-center,
.cw-zone-bottom-center {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	max-width: 50%;
}

/* When a row has no center zone the absolute centering rule is inert. */
.cw-header-bottom {
	border-top: 1px solid var(--cw-border, #e5e7eb);
	margin-top: var(--cw-header-pad-y, 16px);
	padding-top: calc(var(--cw-header-pad-y, 16px) * 0.6);
}

.cw-row-topbar {
	min-height: 0;
	padding-top: 7px;
	padding-bottom: 7px;
	font-size: 13px;
}

.cw-topbar .cw-zone {
	gap: 16px;
}

.cw-contact-items {
	display: flex;
	align-items: center;
	gap: 16px;
}

.cw-contact-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: inherit;
	text-decoration: none;
}

.cw-account-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--cw-header-link, #374151);
	text-decoration: none;
	font-size: var(--cw-nav-fs, 15px);
}

.cw-account-link:hover {
	color: var(--cw-header-link-hover, #2563eb);
}

.cw-el-hint {
	font-size: 11px;
	opacity: 0.5;
	font-style: italic;
}

.cw-inline-search {
	min-width: 220px;
}

/* Minimal preset shows its menu toggle at all sizes */
.cw-header-style-minimal .cw-mobile-toggle,
.cw-el-menu-toggle .cw-mobile-toggle {
	display: inline-flex;
}

.cw-header-style-minimal .cw-el-nav {
	display: none;
}

/* Header extras */
.cw-header-extras {
	display: flex;
	align-items: center;
	gap: 14px;
}

.cw-search-toggle,
.cw-mobile-toggle,
.cw-mobile-close {
	background: none;
	border: 0;
	padding: 6px;
	cursor: pointer;
	color: var(--cw-header-link, #374151);
	display: inline-flex;
	align-items: center;
}

.cw-search-toggle:hover,
.cw-mobile-toggle:hover {
	color: var(--cw-header-link-hover, #2563eb);
}

.cw-mobile-toggle {
	display: none;
}

body.cw-mobile .cw-mobile-toggle {
	display: inline-flex;
}

.cw-cart-link {
	position: relative;
	display: inline-flex;
	color: var(--cw-header-link, #374151);
	padding: 6px;
}

.cw-cart-count {
	position: absolute;
	top: -4px;
	right: -6px;
	background: var(--cw-primary, #2563eb);
	color: #fff;
	font-size: 10px;
	line-height: 1;
	padding: 3px 5px;
	border-radius: 999px;
	min-width: 16px;
	text-align: center;
}

/* Search panel */
.cw-search-panel {
	background: var(--cw-header-bg, #fff);
	border-top: 1px solid var(--cw-border, #e5e7eb);
	padding: 14px 0;
	position: absolute;
	left: 0;
	right: 0;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

/* ========== Primary navigation ========== */
.cw-primary-nav {
	display: flex;
}

body.cw-mobile .cw-primary-nav,
body.cw-mobile .cw-el-nav,
body.cw-mobile .cw-el-nav-secondary,
body.cw-mobile .cw-el-search-form,
body.cw-mobile .cw-el-contact,
body.cw-mobile .cw-zone-main-center .cw-el-html {
	display: none;
}

.cw-menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cw-menu li {
	position: relative;
}

.cw-menu a {
	display: block;
	padding: 8px 12px;
	color: var(--cw-header-link, #374151);
	font-size: var(--cw-nav-fs, 15px);
	font-weight: var(--cw-nav-weight, 500);
	letter-spacing: var(--cw-nav-ls, 0);
	text-decoration: none;
}

.cw-nav-uppercase .cw-menu a {
	text-transform: uppercase;
}

.cw-menu a:hover,
.cw-menu .current-menu-item > a,
.cw-menu .current_page_item > a {
	color: var(--cw-header-link-hover, #2563eb);
}

/* Nav style: underline */
.cw-nav-underline .cw-menu > li > a {
	position: relative;
}

.cw-nav-underline .cw-menu > li > a::after {
	content: "";
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 2px;
	height: 2px;
	background: var(--cw-header-link-hover, #2563eb);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.2s;
}

.cw-nav-underline .cw-menu > li > a:hover::after,
.cw-nav-underline .cw-menu > li.current-menu-item > a::after {
	transform: scaleX(1);
}

/* Nav style: pills */
.cw-nav-pills .cw-menu > li > a {
	border-radius: 999px;
	transition: background 0.15s, color 0.15s;
}

.cw-nav-pills .cw-menu > li > a:hover,
.cw-nav-pills .cw-menu > li.current-menu-item > a {
	background: var(--cw-header-link-hover, #2563eb);
	color: var(--cw-header-bg, #fff);
}

/* Nav style: boxed */
.cw-nav-boxed .cw-menu > li > a {
	border: 1px solid transparent;
	border-radius: var(--cw-radius, 8px);
	transition: border-color 0.15s;
}

.cw-nav-boxed .cw-menu > li > a:hover,
.cw-nav-boxed .cw-menu > li.current-menu-item > a {
	border-color: var(--cw-header-link-hover, #2563eb);
}

/* Dropdowns */
.cw-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: var(--cw-header-bg, #fff);
	border: 1px solid var(--cw-border, #e5e7eb);
	border-radius: var(--cw-radius, 8px);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
	list-style: none;
	margin: 0;
	padding: 6px;
	opacity: 0;
	visibility: hidden;
	z-index: 95;
}

.cw-menu .sub-menu .sub-menu {
	top: -7px;
	left: 100%;
}

.cw-menu li:hover > .sub-menu,
.cw-menu li.cw-focus > .sub-menu {
	opacity: 1;
	visibility: visible;
}

body.cw-dd-fade .cw-menu .sub-menu {
	transition: opacity 0.18s, visibility 0.18s;
}

body.cw-dd-slide .cw-menu .sub-menu {
	transform: translateY(8px);
	transition: opacity 0.18s, visibility 0.18s, transform 0.18s;
}

body.cw-dd-slide .cw-menu li:hover > .sub-menu,
body.cw-dd-slide .cw-menu li.cw-focus > .sub-menu {
	transform: translateY(0);
}

.cw-menu-hint a {
	opacity: 0.6;
	font-style: italic;
}

/* Header CTA */
.cw-header-cta.cw-cta-solid {
	background: var(--cw-btn-bg, #2563eb);
	color: var(--cw-btn-text, #fff);
}

.cw-header-cta.cw-cta-outline {
	background: transparent;
	color: var(--cw-header-link, #374151);
	border: 2px solid var(--cw-btn-bg, #2563eb);
}

.cw-header-cta.cw-cta-text {
	background: none;
	color: var(--cw-header-link-hover, #2563eb);
	padding: 0;
}

/* ========== Mobile menu ========== */
.cw-mobile-menu {
	position: fixed;
	z-index: 99999;
	background: var(--cw-header-bg, #fff);
	overflow-y: auto;
}

body.cw-mobile-offcanvas .cw-mobile-menu {
	top: 0;
	bottom: 0;
	left: auto;
	right: 0;
	width: min(340px, 86vw);
	box-shadow: -12px 0 32px rgba(0, 0, 0, 0.18);
}

body.cw-mobile-dropdown .cw-mobile-menu {
	left: 0;
	right: 0;
	top: 0;
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.16);
}

.cw-mobile-menu-inner {
	padding: 56px 24px 32px;
	position: relative;
}

.cw-mobile-close {
	position: absolute;
	top: 12px;
	right: 12px;
}

.cw-mobile-overlay {
	position: fixed;
	inset: 0;
	background: rgba(17, 24, 39, 0.55);
	z-index: 99998;
}

.cw-mobile-nav {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cw-mobile-nav > li {
	border-bottom: 1px solid var(--cw-border, #e5e7eb);
}

.cw-mobile-nav a {
	display: block;
	padding: 12px 4px;
	text-decoration: none;
	color: var(--cw-header-link, #374151);
	font-size: 16px;
}

.cw-mobile-nav li {
	position: relative;
}

.cw-submenu-toggle {
	position: absolute;
	right: 0;
	top: 8px;
	width: 32px;
	height: 32px;
	border: 1px solid var(--cw-border, #e5e7eb);
	border-radius: 6px;
	background: none;
	cursor: pointer;
}

.cw-submenu-toggle::after {
	content: "▾";
}

.cw-mobile-nav .sub-menu {
	display: none;
	list-style: none;
	padding-left: 16px;
}

.cw-mobile-nav .cw-sub-open > .sub-menu {
	display: block;
}

/* ========== Buttons ========== */
.cw-btn,
button.cw-btn,
.wp-block-button__link,
input[type="submit"] {
	display: inline-block;
	background: var(--cw-btn-bg, #2563eb);
	color: var(--cw-btn-text, #fff);
	border: 2px solid var(--cw-btn-bg, #2563eb);
	border-radius: var(--cw-btn-radius, 6px);
	padding: var(--cw-btn-pad-y, 12px) var(--cw-btn-pad-x, 24px);
	font-size: var(--cw-fs-base, 16px);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.cw-btn:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover {
	background: var(--cw-btn-bg-hover, #1d4ed8);
	border-color: var(--cw-btn-bg-hover, #1d4ed8);
	color: var(--cw-btn-text, #fff);
}

.cw-btn-outline {
	background: transparent;
	color: inherit;
}

/* ========== Hero ========== */
.cw-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: var(--cw-hero-min-h, 60vh);
	background: var(--cw-secondary, #7c3aed);
	background-size: cover;
	background-position: center;
	color: var(--cw-hero-text, #fff);
	overflow: hidden;
}

.cw-hero-fullscreen {
	min-height: 100vh;
}

.cw-hero-overlay {
	position: absolute;
	inset: 0;
	background: var(--cw-hero-overlay, rgba(17, 24, 39, 0.6));
}

.cw-hero-inner {
	position: relative;
	width: 100%;
	padding-top: var(--cw-section-y, 64px);
	padding-bottom: var(--cw-section-y, 64px);
}

.cw-hero-content {
	max-width: var(--cw-hero-content-w, 720px);
}

.cw-hero-center .cw-hero-content,
.cw-hero-fullscreen .cw-hero-content {
	margin: 0 auto;
	text-align: center;
}

.cw-hero-heading {
	color: inherit;
	font-size: calc(var(--cw-h1, 39px) * 1.25);
	margin-bottom: 0.4em;
}

.cw-hero-subheading {
	font-size: calc(var(--cw-fs-base, 16px) * 1.2);
	opacity: 0.92;
	margin: 0 0 1.4em;
}

.cw-hero-buttons {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.cw-hero-center .cw-hero-buttons,
.cw-hero-fullscreen .cw-hero-buttons {
	justify-content: center;
}

.cw-hero-split .cw-hero-inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--cw-section-y, 64px);
	align-items: center;
}

.cw-hero-split .cw-hero-media img,
.cw-hero-placeholder {
	width: 100%;
	border-radius: var(--cw-radius, 8px);
}

.cw-hero-placeholder {
	aspect-ratio: 4 / 3;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.14) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.14) 50%, rgba(255, 255, 255, 0.14) 75%, transparent 75%);
	background-size: 24px 24px;
	border: 2px dashed rgba(255, 255, 255, 0.5);
}

body.cw-mobile .cw-hero-split .cw-hero-inner {
	grid-template-columns: 1fr;
}

.cw-hero-split .cw-hero-content {
	text-align: left;
}

/* ========== Breadcrumbs ========== */
.cw-breadcrumbs-wrap {
	padding-top: 14px;
}

.cw-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 13px;
}

.cw-breadcrumbs li + li::before {
	content: "/";
	margin-right: 6px;
	opacity: 0.4;
}

.cw-breadcrumbs a {
	text-decoration: none;
}

/* ========== Posts / archives ========== */
.cw-page-header {
	margin-bottom: var(--cw-gap, 24px);
}

.cw-page-title {
	margin-bottom: 0.2em;
}

.cw-posts {
	display: grid;
	gap: var(--cw-gap, 24px);
}

.cw-posts-grid2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cw-posts-grid3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.cw-mobile .cw-posts-grid2,
body.cw-mobile .cw-posts-grid3 {
	grid-template-columns: 1fr;
}

.cw-post-card {
	background: var(--cw-surface, #fff);
	border: 1px solid var(--cw-border, #e5e7eb);
	border-radius: var(--cw-radius, 8px);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.cw-posts-list .cw-post-card {
	flex-direction: row;
}

.cw-posts-list .cw-card-thumb {
	flex: 0 0 38%;
}

body.cw-mobile .cw-posts-list .cw-post-card {
	flex-direction: column;
}

.cw-card-thumb {
	display: block;
	overflow: hidden;
}

.cw-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s;
}

.cw-post-card:hover .cw-card-thumb img {
	transform: scale(1.03);
}

.cw-ratio-16-9 { aspect-ratio: 16 / 9; }
.cw-ratio-4-3 { aspect-ratio: 4 / 3; }
.cw-ratio-1-1 { aspect-ratio: 1 / 1; }

.cw-card-body {
	padding: var(--cw-gap, 24px);
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.cw-entry-title {
	margin: 0;
	font-size: var(--cw-h3, 25px);
}

.cw-posts-grid3 .cw-entry-title {
	font-size: var(--cw-h4, 20px);
}

.cw-entry-title a {
	color: inherit;
	text-decoration: none;
}

.cw-entry-title a:hover {
	color: var(--cw-link, #2563eb);
}

.cw-entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 13px;
	opacity: 0.85;
}

.cw-meta-sep {
	opacity: 0.5;
}

.cw-entry-summary {
	margin: 0;
}

.cw-entry-summary p {
	margin: 0;
}

.cw-readmore {
	font-weight: 600;
	text-decoration: none;
	margin-top: auto;
}

.cw-result-type {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 1px;
	opacity: 0.6;
}

/* ========== Single ========== */
.cw-single,
.cw-page {
	background: var(--cw-surface, #fff);
	border: 1px solid var(--cw-border, #e5e7eb);
	border-radius: var(--cw-radius, 8px);
	padding: clamp(20px, 4vw, 48px);
}

.cw-entry-thumb {
	margin: var(--cw-gap, 24px) 0;
}

.cw-entry-thumb img {
	border-radius: var(--cw-radius, 8px);
	display: block;
}

.cw-entry-content > * + * {
	margin-top: 1em;
}

.cw-entry-content a {
	text-decoration: underline;
}

.cw-tags {
	margin-top: var(--cw-gap, 24px);
	font-size: 14px;
}

.cw-author-box {
	display: flex;
	gap: 16px;
	margin-top: var(--cw-gap, 24px);
	padding: var(--cw-gap, 24px);
	background: var(--cw-bg, #f3f4f6);
	border-radius: var(--cw-radius, 8px);
}

.cw-author-avatar img {
	border-radius: 50%;
}

.cw-author-name {
	margin-bottom: 0.3em;
	font-size: var(--cw-h5, 16px);
}

.post-navigation {
	margin: var(--cw-gap, 24px) 0;
}

.post-navigation .nav-links {
	display: flex;
	justify-content: space-between;
	gap: var(--cw-gap, 24px);
}

.post-navigation a {
	text-decoration: none;
	display: block;
}

.post-navigation .cw-nav-label {
	display: block;
	font-size: 12px;
	opacity: 0.7;
}

.cw-related {
	margin: var(--cw-section-y, 64px) 0 0;
}

.cw-related-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--cw-gap, 24px);
}

.cw-related-thumb img {
	border-radius: var(--cw-radius, 8px);
	display: block;
}

.cw-related-item-title {
	font-size: var(--cw-h5, 16px);
	margin: 8px 0 2px;
}

.cw-related-item-title a {
	color: inherit;
	text-decoration: none;
}

/* ========== Sidebar & widgets ========== */
.cw-sidebar .widget {
	background: var(--cw-surface, #fff);
	border: 1px solid var(--cw-border, #e5e7eb);
	border-radius: var(--cw-radius, 8px);
	padding: var(--cw-gap, 24px);
	margin-bottom: var(--cw-gap, 24px);
}

.widget-title {
	font-size: var(--cw-h5, 16px);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 14px;
}

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

.widget ul li {
	padding: 6px 0;
	border-bottom: 1px solid var(--cw-border, #e5e7eb);
}

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

.cw-widget-posts li {
	display: flex;
	gap: 12px;
	align-items: center;
}

.cw-widget-post-thumb img {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border-radius: var(--cw-radius, 8px);
	display: block;
}

.cw-widget-post-text a {
	text-decoration: none;
	font-weight: 600;
	display: block;
}

.cw-widget-post-date {
	font-size: 12px;
	opacity: 0.7;
}

.cw-widget-placeholder {
	border: 2px dashed var(--cw-border, #e5e7eb);
	border-radius: var(--cw-radius, 8px);
	padding: 24px;
	text-align: center;
	font-size: 13px;
	opacity: 0.7;
}

/* Social icon lists */
.cw-social {
	display: flex;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cw-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: rgba(127, 127, 127, 0.15);
	color: inherit;
}

.cw-social a:hover {
	background: var(--cw-primary, #2563eb);
	color: #fff;
}

/* ========== Pagination ========== */
.pagination,
.cw-main .navigation {
	margin-top: var(--cw-gap, 24px);
}

.page-numbers {
	display: inline-block;
	padding: 8px 14px;
	border: 1px solid var(--cw-border, #e5e7eb);
	border-radius: var(--cw-radius, 8px);
	text-decoration: none;
	margin-right: 4px;
	background: var(--cw-surface, #fff);
}

.page-numbers.current {
	background: var(--cw-primary, #2563eb);
	border-color: var(--cw-primary, #2563eb);
	color: #fff;
}

/* ========== Forms ========== */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="password"],
input[type="number"],
textarea,
select {
	width: 100%;
	max-width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--cw-border, #e5e7eb);
	border-radius: var(--cw-btn-radius, 6px);
	background: var(--cw-surface, #fff);
	color: var(--cw-text, #374151);
	font: inherit;
}

input:focus,
textarea:focus,
select:focus {
	outline: 2px solid var(--cw-primary, #2563eb);
	outline-offset: 1px;
}

.cw-search-form {
	display: flex;
	gap: 8px;
}

.cw-search-submit {
	flex: 0 0 auto;
	background: var(--cw-btn-bg, #2563eb);
	color: var(--cw-btn-text, #fff);
	border: 0;
	border-radius: var(--cw-btn-radius, 6px);
	padding: 0 16px;
	cursor: pointer;
}

/* ========== Comments ========== */
.cw-comments {
	margin-top: var(--cw-gap, 24px);
	background: var(--cw-surface, #fff);
	border: 1px solid var(--cw-border, #e5e7eb);
	border-radius: var(--cw-radius, 8px);
	padding: clamp(20px, 4vw, 48px);
}

.cw-comment-list {
	list-style: none;
	margin: 0 0 var(--cw-gap, 24px);
	padding: 0;
}

.cw-comment-list .comment-body {
	padding: 16px 0;
	border-bottom: 1px solid var(--cw-border, #e5e7eb);
}

.cw-comment-list .children {
	list-style: none;
	padding-left: 32px;
}

.comment-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 4px;
}

.comment-form p {
	margin: 0 0 14px;
}

/* ========== 404 ========== */
.cw-error-404 {
	text-align: center;
	max-width: 560px;
	margin: 0 auto;
}

.cw-404-code {
	font-size: clamp(80px, 16vw, 160px);
	font-weight: 800;
	line-height: 1;
	margin: 0;
	color: var(--cw-border, #e5e7eb);
}

/* ========== Footer ========== */
.cw-footer {
	background: var(--cw-footer-bg, #111827);
	color: var(--cw-footer-text, #9ca3af);
	margin-top: auto;
}

.cw-footer a {
	color: var(--cw-footer-link, #e5e7eb);
	text-decoration: none;
}

.cw-footer a:hover {
	text-decoration: underline;
}

.cw-footer-widgets {
	padding: var(--cw-footer-pad-y, 56px) 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.cw-footer-widgets-grid {
	display: grid;
	gap: var(--cw-gap, 24px);
}

.cw-footer-cols-1 .cw-footer-widgets-grid { grid-template-columns: 1fr; }
.cw-footer-cols-2 .cw-footer-widgets-grid { grid-template-columns: repeat(2, 1fr); }
.cw-footer-cols-3 .cw-footer-widgets-grid { grid-template-columns: repeat(3, 1fr); }
.cw-footer-cols-4 .cw-footer-widgets-grid { grid-template-columns: repeat(4, 1fr); }

body.cw-mobile .cw-footer-widgets-grid {
	grid-template-columns: 1fr !important;
}

.cw-footer .widget-title {
	color: #fff;
}

.cw-footer .widget ul li {
	border-color: rgba(255, 255, 255, 0.08);
}

.cw-footer-bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px 24px;
	padding-top: 20px;
	padding-bottom: 20px;
	font-size: 13px;
}

.cw-footer-menu {
	display: flex;
	gap: 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ========== Back to top ========== */
.cw-back-to-top {
	position: fixed;
	right: 22px;
	bottom: 22px;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: var(--cw-primary, #2563eb);
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.2s, visibility 0.2s, transform 0.2s;
	z-index: 9000;
}

.cw-back-to-top.cw-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

/* ========== Landing template ========== */
.cw-landing .cw-landing-main {
	min-height: 100vh;
}

/* ========== Distraction-free checkout ========== */
.cw-distraction-free .cw-topbar,
.cw-distraction-free .cw-primary-nav,
.cw-distraction-free .cw-header-extras,
.cw-distraction-free .cw-footer-widgets,
.cw-distraction-free .cw-breadcrumbs-wrap {
	display: none !important;
}

/* ========== Alignment & blocks ========== */
.alignwide {
	margin-left: calc(-1 * min(6vw, 80px));
	margin-right: calc(-1 * min(6vw, 80px));
}

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

.cw-layout-boxed .alignfull {
	margin-left: 0;
	margin-right: 0;
}

/* Structured sections created by the companion AI Site Architect plugin. */
.cheetah-ai-section {
	padding-top: clamp(32px, 6vw, var(--cw-section-y, 64px));
	padding-bottom: clamp(32px, 6vw, var(--cw-section-y, 64px));
}

.cheetah-ai-hero {
	padding-left: max(24px, calc((100vw - var(--cw-container, 1200px)) / 2));
	padding-right: max(24px, calc((100vw - var(--cw-container, 1200px)) / 2));
	text-align: center;
	background: var(--cw-surface, #fff);
}

.cheetah-ai-hero > p,
.cheetah-ai-hero > .wp-block-buttons,
.cheetah-ai-cta > p,
.cheetah-ai-cta > .wp-block-buttons {
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	max-width: 760px;
}

.cheetah-ai-cta {
	text-align: center;
}

.cheetah-ai-faq .wp-block-details {
	padding: 16px 18px;
	border: 1px solid var(--cw-border, #e5e7eb);
	border-radius: var(--cw-radius, 8px);
}

.wp-block-quote,
blockquote {
	border-left: 4px solid var(--cw-primary, #2563eb);
	margin: 1.5em 0;
	padding: 0.5em 0 0.5em 1.25em;
	font-style: italic;
}

pre,
code {
	background: var(--cw-bg, #f3f4f6);
	border-radius: 4px;
}

pre {
	padding: 16px;
	overflow: auto;
}

table {
	width: 100%;
	border-collapse: collapse;
}

th,
td {
	border: 1px solid var(--cw-border, #e5e7eb);
	padding: 8px 12px;
	text-align: left;
}

/* ========== Mega menu ========== */
.cw-menu li.cw-mega {
	position: static;
}

.cw-menu li.cw-mega > .sub-menu {
	left: 0;
	right: 0;
	width: 100%;
	display: grid;
	gap: var(--cw-gap, 24px);
	padding: var(--cw-gap, 24px);
}

.cw-menu li.cw-mega.cw-mega-cols-2 > .sub-menu { grid-template-columns: repeat(2, 1fr); }
.cw-menu li.cw-mega.cw-mega-cols-3 > .sub-menu { grid-template-columns: repeat(3, 1fr); }
.cw-menu li.cw-mega.cw-mega-cols-4 > .sub-menu { grid-template-columns: repeat(4, 1fr); }
.cw-menu li.cw-mega.cw-mega-cols-5 > .sub-menu { grid-template-columns: repeat(5, 1fr); }

.cw-menu li.cw-mega > .sub-menu > li > a {
	font-weight: 700;
	text-transform: uppercase;
	font-size: 12px;
	letter-spacing: 0.05em;
	opacity: 0.8;
}

.cw-menu li.cw-mega > .sub-menu > li > .sub-menu {
	position: static;
	opacity: 1;
	visibility: visible;
	transform: none;
	border: none;
	box-shadow: none;
	padding: 0;
	min-width: 0;
}

/* ========== Live search results ========== */
.cw-live-results {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	background: var(--cw-surface, #fff);
	border: 1px solid var(--cw-border, #e5e7eb);
	border-radius: var(--cw-radius, 8px);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.14);
	z-index: 9999;
	overflow: hidden;
}

.cw-live-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	text-decoration: none;
	color: var(--cw-text, #374151);
	border-bottom: 1px solid var(--cw-border, #e5e7eb);
}

.cw-live-item:last-child {
	border-bottom: none;
}

.cw-live-item:hover {
	background: var(--cw-bg, #f3f4f6);
}

.cw-live-item[aria-selected="true"] {
	background: var(--cw-bg, #f3f4f6);
	box-shadow: inset 3px 0 var(--cw-primary, #2563eb);
}

.cw-live-item img {
	width: 42px;
	height: 42px;
	object-fit: cover;
	border-radius: 6px;
	flex: 0 0 auto;
}

.cw-live-title {
	display: block;
	font-weight: 600;
}

.cw-live-meta {
	display: block;
	font-size: 12px;
	opacity: 0.7;
}

.cw-live-empty {
	padding: 14px;
	font-size: 13px;
	opacity: 0.7;
}

/* ========== Preloader ========== */
.cw-preloader {
	position: fixed;
	inset: 0;
	background: var(--cw-bg, #f3f4f6);
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.4s, visibility 0.4s;
}

.cw-preloader.cw-done {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.cw-preloader-spinner {
	width: 44px;
	height: 44px;
	border: 4px solid var(--cw-border, #e5e7eb);
	border-top-color: var(--cw-primary, #2563eb);
	border-radius: 50%;
	animation: cw-spin 0.8s linear infinite;
	display: inline-block;
}

@keyframes cw-spin {
	to { transform: rotate(360deg); }
}

/* ========== Scroll progress ========== */
.cw-scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	z-index: 100000;
	background: transparent;
	pointer-events: none;
}

.cw-scroll-progress span {
	display: block;
	height: 100%;
	width: 0;
	background: var(--cw-accent, #f59e0b);
	transition: width 0.1s linear;
}

.admin-bar .cw-scroll-progress {
	top: 32px;
}

/* ========== Modal (Quick View) ========== */
.cw-modal {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.cw-modal[hidden] {
	display: none;
}

.cw-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(17, 24, 39, 0.6);
}

.cw-modal-dialog {
	position: relative;
	background: var(--cw-surface, #fff);
	border-radius: var(--cw-radius, 8px);
	max-width: 860px;
	width: 100%;
	max-height: 86vh;
	overflow: auto;
	padding: clamp(20px, 3vw, 40px);
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.3);
}

.cw-modal-close {
	position: absolute;
	top: 12px;
	right: 12px;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 8px;
	color: var(--cw-text, #374151);
	z-index: 2;
}

body.cw-modal-open {
	overflow: hidden;
}

.cw-quickview-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--cw-gap, 24px);
	align-items: start;
}

body.cw-mobile .cw-quickview-grid {
	grid-template-columns: 1fr;
}

.cw-quickview-image img {
	border-radius: var(--cw-radius, 8px);
	display: block;
}

.cw-quickview-link {
	margin-top: 12px;
	font-size: 14px;
}

/* ========== Maintenance mode ========== */
.cw-maintenance {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100vh;
	margin: 0;
	background: var(--cw-bg, #f3f4f6);
	text-align: center;
	padding: 24px;
}

.cw-maintenance-wrap {
	max-width: 640px;
}

.cw-maintenance-site {
	opacity: 0.6;
	font-size: 14px;
	margin-top: 2em;
}

/* ========== Motion preferences ========== */
body.cw-motion-always *,
body.cw-motion-always *::before,
body.cw-motion-always *::after {
	scroll-behavior: auto !important;
	animation-duration: 0.01ms !important;
	animation-iteration-count: 1 !important;
	transition-duration: 0.01ms !important;
}

@media (prefers-reduced-motion: reduce) {
	body.cw-motion-system *,
	body.cw-motion-system *::before,
	body.cw-motion-system *::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
