/*
Theme Name: GoKarts USA
Theme URI: https://gokartsusa.st/
Author: GoKarts USA
Description: Source-matched WooCommerce theme for GoKarts USA — go karts, mini bikes, dirt bikes, ATVs, UTVs, scooters, engines and parts.
 Version: 9.4.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: gokartsusa
*/

/* =========================================================================
   Design tokens — lifted from gokartsusa.biz
   ========================================================================= */
:root {
	--ink: #242424;
	--ink-soft: rgba(36, 36, 36, .72);
	--ink-faint: rgba(36, 36, 36, .5);
	--line: rgba(36, 36, 36, .1);
	--line-strong: rgba(36, 36, 36, .28);
	--page: #ffffff;
	--surface: #f3f3f3;
	--accent: #464646;
	--sale: #c23434;
	--sale-soft: rgba(194, 52, 52, .1);
	--link: #4554a7;
	--footer-bg: #000000;
	--footer-text: #ffffff;
	--mobile-menu-bg: #222222;
	--radius: 2px;
	--container: 1400px;
	--font: "system_ui", -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', 'Liberation Sans', Arial, sans-serif;
	--nav-ls: 2px;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body.gku-body {
	margin: 0;
	background: var(--page);
	color: var(--ink);
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.6;
	overflow-x: hidden;
}

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

a { color: var(--ink); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4, h5 {
	font-family: var(--font);
	font-weight: 400;
	color: var(--ink);
	line-height: 1.25;
	margin: 0 0 .6em;
}
h1 { font-size: 40px; line-height: 52px; }
h2 { font-size: 32px; }
h3 { font-size: 22px; }
h4 { font-size: 18px; }
p { margin: 0 0 1em; }

.gku-container {
	width: 100%;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 20px;
}

.gku-skip-link {
	position: absolute;
	left: -9999px;
}
.gku-skip-link:focus {
	left: 12px; top: 12px; z-index: 999;
	background: var(--ink); color: #fff; padding: 10px 16px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* =========================================================================
   Buttons
   ========================================================================= */
.gku-btn,
.button,
button.button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: var(--ink);
	color: #fff;
	border: 1px solid var(--ink);
	border-radius: var(--radius);
	padding: 14px 26px;
	font-family: var(--font);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: var(--nav-ls);
	text-transform: uppercase;
	line-height: 1.2;
	cursor: pointer;
	transition: background .15s ease, color .15s ease;
	text-decoration: none;
}
.gku-btn:hover,
.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background: #3a3a3a;
	border-color: #3a3a3a;
	color: #fff;
	text-decoration: none;
}
.gku-btn--ghost,
.woocommerce a.button.alt.gku-btn--ghost {
	background: transparent;
	color: var(--ink);
	border-color: var(--ink);
}
.gku-btn--ghost:hover { background: var(--ink); color: #fff; }
.gku-btn--block { width: 100%; }
.gku-btn--lg { padding: 17px 34px; }
.gku-btn--disabled,
.gku-btn[disabled] { opacity: .45; pointer-events: none; }

input[type="text"], input[type="email"], input[type="tel"], input[type="search"],
input[type="password"], input[type="number"], select, textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection--single {
	width: 100%;
	background: #fff;
	color: var(--ink);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	padding: 12px 14px;
	font-family: var(--font);
	font-size: 15px;
	line-height: 1.4;
}
textarea { min-height: 120px; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--ink); outline-offset: 1px; }

/* =========================================================================
   Announcement + utility bars
   ========================================================================= */
.gku-announce {
	background: var(--ink);
	color: #fff;
	font-size: 13px;
	letter-spacing: 1px;
	text-transform: uppercase;
	text-align: center;
	padding: 9px 0;
}
.gku-announce a { color: #fff; text-decoration: underline; }

.gku-utility {
	background: var(--surface);
	border-bottom: 1px solid var(--line);
	font-size: 12px;
	letter-spacing: 1px;
	text-transform: uppercase;
}
.gku-utility__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 22px;
	padding-top: 8px;
	padding-bottom: 8px;
}
.gku-utility__links { margin-left: auto; display: flex; flex-wrap: wrap; gap: 18px; }
.gku-utility__ship { color: var(--ink-soft); }

/* =========================================================================
   Header
   ========================================================================= */
.gku-header {
	background: #fff;
	border-bottom: 1px solid var(--line);
	position: relative;
	z-index: 40;
}
.gku-header__top {
	display: flex;
	align-items: center;
	gap: 22px;
	padding-top: 16px;
	padding-bottom: 16px;
}
.gku-header__logo img { max-height: 62px; width: auto; }
.gku-logo__text {
	font-size: 22px;
	letter-spacing: 2px;
	text-transform: uppercase;
	font-weight: 600;
}

.gku-search {
	flex: 1 1 auto;
	max-width: 620px;
	display: flex;
	align-items: center;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	overflow: hidden;
}
.gku-search input[type="search"] {
	border: 0;
	padding: 11px 14px;
	font-size: 14px;
}
.gku-search input[type="search"]:focus { outline: none; }
.gku-search button {
	background: var(--ink);
	border: 0;
	color: #fff;
	padding: 11px 16px;
	cursor: pointer;
	display: flex;
	align-items: center;
}

.gku-header__actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.gku-iconbtn {
	position: relative;
	background: none;
	border: 0;
	color: var(--ink);
	padding: 10px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius);
}
.gku-iconbtn:hover { background: rgba(36, 36, 36, .1); }
.gku-iconbtn__count {
	position: absolute;
	top: 2px; right: 0;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--sale);
	color: #fff;
	font-size: 11px;
	line-height: 18px;
	text-align: center;
}
.gku-iconbtn__count.is-empty { display: none; }

.gku-burger { display: none; background: none; border: 0; color: var(--ink); padding: 8px; cursor: pointer; }

/* Primary nav */
.gku-nav__head { display: none; }
.gku-nav-overlay { display: none; }
.gku-menu,
.gku-nav ul.menu {
	list-style: none;
	margin: 0;
	padding: 0 0 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 26px;
	align-items: center;
}
.gku-menu li { position: relative; }
.gku-menu > li > a,
.gku-nav ul.menu > li > a {
	display: block;
	padding: 8px 0;
	font-size: 14px;
	letter-spacing: var(--nav-ls);
	text-transform: uppercase;
	color: var(--ink);
}
.gku-menu > li > a:hover { text-decoration: none; color: var(--sale); }
.gku-menu .sub-menu,
.gku-menu ul {
	list-style: none;
	margin: 0;
	padding: 8px 0;
	position: absolute;
	top: 100%;
	left: -14px;
	min-width: 230px;
	background: #fff;
	border: 1px solid var(--line);
	box-shadow: 0 12px 30px rgba(0, 0, 0, .1);
	display: none;
	z-index: 60;
}
.gku-menu li:hover > ul,
.gku-menu li:focus-within > ul { display: block; }
.gku-menu ul a {
	display: block;
	padding: 9px 16px;
	font-size: 14px;
	text-transform: none;
	letter-spacing: 0;
}
.gku-menu ul a:hover { background: var(--surface); text-decoration: none; }

/* =========================================================================
   Homepage — mirrors source section order
   ========================================================================= */
.gku-main { display: block; min-height: 40vh; }

.gku-section { padding: 54px 0; }
.gku-section--alt { background: var(--surface); }
.gku-section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 26px;
}
.gku-section__head h2,
.gku-section__head .gku-block-title {
	margin: 0;
	font-size: 28px;
	letter-spacing: 1px;
	text-transform: uppercase;
}
.gku-section__more {
	font-size: 13px;
	letter-spacing: var(--nav-ls);
	text-transform: uppercase;
	border-bottom: 1px solid var(--ink);
	padding-bottom: 2px;
}
.gku-section__more:hover { text-decoration: none; color: var(--sale); border-color: var(--sale); }

/* Hero */
.gku-hero { position: relative; background: var(--surface); }
.gku-hero__img { width: 100%; object-fit: cover; }
.gku-hero__img--mobile { display: none; }
.gku-hero__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	padding: 22px 0;
}

/* Promo strip under hero */
.gku-promos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}
.gku-promo {
	position: relative;
	display: block;
	overflow: hidden;
	border: 1px solid var(--line);
}
.gku-promo img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.gku-promo:hover img { transform: scale(1.04); }
.gku-promo__label {
	position: absolute;
	left: 0; bottom: 0; right: 0;
	background: rgba(36, 36, 36, .82);
	color: #fff;
	padding: 12px 16px;
	font-size: 13px;
	letter-spacing: var(--nav-ls);
	text-transform: uppercase;
}

/* Category tiles (Shop categories) */
.gku-cats {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 18px;
}
.gku-cat-tile {
	display: block;
	border: 1px solid var(--line);
	background: #fff;
	text-align: center;
	padding-bottom: 14px;
	transition: border-color .15s ease;
}
.gku-cat-tile:hover { border-color: var(--ink); text-decoration: none; }
.gku-cat-tile img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.gku-cat-tile__name {
	display: block;
	margin-top: 12px;
	font-size: 14px;
	letter-spacing: 1px;
	text-transform: uppercase;
}

/* Product grid + cards (shared with shop/archives) */
.gku-products,
.woocommerce ul.products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; display: none; }
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
	padding: 0;
}
.gku-card,
.woocommerce ul.products li.product {
	position: relative;
	background: #fff;
	border: 1px solid var(--line);
	display: flex;
	flex-direction: column;
	text-align: center;
	padding-bottom: 16px;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.gku-card:hover,
.woocommerce ul.products li.product:hover {
	border-color: var(--line-strong);
	box-shadow: 0 8px 24px rgba(0, 0, 0, .06);
}
.woocommerce ul.products li.product a img,
.gku-card img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: #fff;
	margin: 0 0 12px;
	padding: 10px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.gku-loop-title,
.gku-card__title {
	font-size: 15px;
	line-height: 1.4;
	font-weight: 400;
	padding: 0 14px;
	margin: 0 0 8px;
	color: var(--ink);
}
.woocommerce ul.products li.product .price,
.gku-card__price {
	display: block;
	color: var(--ink);
	font-size: 17px;
	font-weight: 600;
	margin: 0 0 12px;
	padding: 0 14px;
}
.woocommerce ul.products li.product .price del { color: var(--ink-faint); font-weight: 400; margin-right: 6px; }
.woocommerce ul.products li.product .price ins { color: var(--sale); text-decoration: none; }
.woocommerce ul.products li.product .button,
.gku-card .gku-btn {
	margin: auto 14px 0;
	font-size: 12px;
	padding: 12px 16px;
}
.woocommerce span.onsale,
.gku-badge-sale {
	position: absolute;
	top: 10px; left: 10px;
	background: var(--sale);
	color: #fff;
	border-radius: var(--radius);
	padding: 4px 10px;
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 0;
	min-height: 0;
	line-height: 1.6;
	z-index: 2;
}
.woocommerce ul.products li.product .star-rating { margin: 0 auto 8px; font-size: 13px; color: #f0a500; }

/* Row of products per category (source "sale items" rows) */
.gku-row + .gku-row { margin-top: 44px; }
.gku-row__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	border-bottom: 1px solid var(--line);
	padding-bottom: 10px;
	margin-bottom: 20px;
}
.gku-row__eyebrow {
	display: block;
	font-size: 12px;
	letter-spacing: var(--nav-ls);
	text-transform: uppercase;
	color: var(--sale);
}
.gku-row__title { margin: 0; font-size: 26px; text-transform: uppercase; letter-spacing: 1px; }

/* Welcome / parts blocks */
.gku-welcome { text-align: center; max-width: 900px; margin: 0 auto; }
.gku-welcome h2 { font-size: 34px; }
.gku-welcome p { color: var(--ink-soft); font-size: 17px; }
.gku-welcome__quote { font-style: italic; font-size: 19px; color: var(--ink); }

.gku-parts {
	background: var(--ink);
	color: #fff;
	text-align: center;
	padding: 56px 20px;
}
.gku-parts h2 { color: #fff; text-transform: uppercase; letter-spacing: 2px; }
.gku-parts .gku-btn { background: #fff; color: var(--ink); border-color: #fff; }
.gku-parts .gku-btn:hover { background: var(--surface); color: var(--ink); border-color: var(--surface); }

/* Testimonials */
.gku-reviews { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.gku-review {
	background: #fff;
	border: 1px solid var(--line);
	padding: 22px;
	font-size: 15px;
}
.gku-review__stars { color: #f0a500; letter-spacing: 2px; margin-bottom: 8px; }
.gku-review__name { font-weight: 600; margin-top: 12px; display: block; }

/* Trust / USP strip */
.gku-usps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	padding: 26px 0;
}
.gku-usp { text-align: center; font-size: 14px; }
.gku-usp strong { display: block; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 4px; }
.gku-usp span { color: var(--ink-soft); }

/* Homepage FAQ */
.gku-faq { max-width: 900px; margin: 0 auto; }
.gku-faq__item { border-bottom: 1px solid var(--line); padding: 16px 0; }
.gku-faq__q { font-size: 17px; margin: 0 0 6px; font-weight: 600; }
.gku-faq__a { margin: 0; color: var(--ink-soft); }

/* =========================================================================
   Blog
   ========================================================================= */
.gku-postgrid,
.gku-post-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.gku-post-card {
	background: #fff;
	border: 1px solid var(--line);
	display: flex;
	flex-direction: column;
}
.gku-post-card__thumb img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.gku-post-card__body { padding: 18px; }
.gku-post-card__cat {
	font-size: 11px;
	letter-spacing: var(--nav-ls);
	text-transform: uppercase;
	color: var(--sale);
}
.gku-post-card__title { font-size: 18px; margin: 8px 0; }
.gku-post-card__meta,
.gku-post-meta { font-size: 13px; color: var(--ink-faint); }
.gku-post-figure img { width: 100%; }

.gku-prose { max-width: 820px; }
.gku-prose img { margin: 20px 0; }
.gku-prose h2 { font-size: 28px; margin-top: 1.4em; }
.gku-prose h3 { font-size: 21px; margin-top: 1.2em; }
.gku-prose ul, .gku-prose ol { padding-left: 20px; }
.gku-prose a { color: var(--link); text-decoration: underline; }
.gku-prose--legal { max-width: 860px; }
.gku-prose table, .gku-table {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0;
	font-size: 15px;
}
.gku-prose th, .gku-prose td, .gku-table th, .gku-table td {
	border: 1px solid var(--line);
	padding: 10px 12px;
	text-align: left;
}
.gku-prose th, .gku-table th { background: var(--surface); }

.gku-page-hero {
	background: var(--surface);
	border-bottom: 1px solid var(--line);
	padding: 34px 0;
	margin-bottom: 34px;
}
.gku-page-hero h1 { margin: 0; }
.gku-breadcrumbs { font-size: 13px; color: var(--ink-faint); margin-bottom: 10px; }
.gku-breadcrumbs a { color: var(--ink-faint); }

.gku-pagination { margin: 34px 0; display: flex; gap: 8px; flex-wrap: wrap; }
.gku-pagination .page-numbers {
	border: 1px solid var(--line-strong);
	padding: 8px 14px;
	border-radius: var(--radius);
	font-size: 14px;
}
.gku-pagination .page-numbers.current { background: var(--ink); color: #fff; border-color: var(--ink); }

/* =========================================================================
   Layout with sidebar (shop / blog)
   ========================================================================= */
.gku-layout {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 34px;
	align-items: start;
	padding: 30px 0 60px;
}
.gku-layout__main { min-width: 0; }
.gku-layout__side { min-width: 0; }
.gku-widget { border: 1px solid var(--line); padding: 18px; margin-bottom: 20px; background: #fff; }
.gku-widget__title {
	font-size: 13px;
	letter-spacing: var(--nav-ls);
	text-transform: uppercase;
	margin: 0 0 12px;
	font-weight: 600;
}
.gku-widget__list, .gku-widget ul { list-style: none; margin: 0; padding: 0; }
.gku-widget__list li, .gku-widget ul li { padding: 6px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.gku-widget__list li:last-child { border-bottom: 0; }
.gku-widget ul ul { padding-left: 12px; }

.gku-store-content, .gku-woo-main { min-width: 0; }
.gku-shop-hero { padding: 26px 0 8px; }
.gku-shop-hero__lede, .gku-cat-intro { max-width: none; color: var(--ink-soft); }
.gku-archive-desc, .gku-cat-seo, .gku-product-seo, .gku-seo-copy { max-width: none; }
.gku-cat-seo h2, .gku-product-seo h2 { font-size: 26px; }

.gku-seo-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin: 22px 0;
}
.gku-seo-card { border: 1px solid var(--line); background: #fff; display: flex; flex-direction: column; text-align: center; padding-bottom: 14px; }
.gku-seo-card__media img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; padding: 10px; }
.gku-seo-card__title { font-size: 15px; padding: 0 12px; margin: 0 0 6px; }
.gku-seo-card__price { font-weight: 600; margin-bottom: 10px; }
.gku-seo-card__cta { margin: auto 12px 0; }

/* =========================================================================
   Single product
   ========================================================================= */
.woocommerce div.product { padding: 26px 0 50px; }
.woocommerce div.product div.images,
.woocommerce div.product div.summary { margin-bottom: 30px; }
.woocommerce div.product div.images img { border: 1px solid var(--line); background: #fff; }
.woocommerce div.product .product_title { font-size: 32px; margin-bottom: 12px; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--ink); font-size: 26px; font-weight: 600; }
.woocommerce div.product p.price del { color: var(--ink-faint); font-weight: 400; }
.woocommerce div.product p.price ins { color: var(--sale); text-decoration: none; }
.woocommerce div.product form.cart { margin: 22px 0; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.woocommerce div.product form.cart .variations { width: 100%; }
.woocommerce .quantity .qty, .gku-qty {
	width: 84px;
	text-align: center;
	padding: 13px 8px;
	border: 1px solid var(--line-strong);
}
.woocommerce div.product .woocommerce-tabs { display: none; }
.woocommerce .related, .gku-related { padding: 30px 0; border-top: 1px solid var(--line); }
.gku-single__media img { width: 100%; }

/* Variation swatches */
.gku-swatches { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 16px; }
.gku-swatch {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 44px;
	border: 1px solid var(--line-strong);
	background: #fff;
	padding: 10px 16px;
	font-size: 13px;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
	border-radius: var(--radius);
}
.gku-swatch:hover { border-color: var(--ink); }
.gku-swatch.is-active { background: var(--ink); color: #fff; border-color: var(--ink); }
.gku-swatch.is-disabled { opacity: .35; pointer-events: none; text-decoration: line-through; }
.gku-swatch-select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.gku-swatch__dot {
	display: inline-block;
	width: 22px;
	height: 22px;
	flex: 0 0 22px;
	border: 2px solid #fff;
	border-radius: 50%;
	box-shadow: 0 0 0 1px var(--line-strong);
}
.gku-swatch__thumb {
	display: inline-block;
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	border: 1px solid var(--line);
}

/* =========================================================================
   Cart drawer
   ========================================================================= */
.gku-drawer-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, .5);
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s ease;
	z-index: 900;
}
.gku-drawer-overlay.is-open { opacity: 1; visibility: visible; }
.gku-drawer {
	position: fixed;
	top: 0; right: 0; bottom: 0;
	width: min(420px, 92vw);
	background: #fff;
	border-left: 1px solid var(--line);
	transform: translateX(100%);
	transition: transform .25s ease;
	z-index: 901;
	display: flex;
	flex-direction: column;
}
.gku-drawer.is-open { transform: none; }
.gku-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	border-bottom: 1px solid var(--line);
}
.gku-drawer__title { font-size: 14px; letter-spacing: var(--nav-ls); text-transform: uppercase; margin: 0; font-weight: 600; }
.gku-drawer__close { background: none; border: 0; font-size: 26px; line-height: 1; cursor: pointer; color: var(--ink); }
.gku-drawer__body { flex: 1 1 auto; overflow-y: auto; padding: 18px 20px; }
.gku-drawer__foot { border-top: 1px solid var(--line); padding: 18px 20px; display: grid; gap: 10px; }
.gku-drawer__note, .gku-drawer__warn { font-size: 13px; color: var(--ink-soft); }
.gku-drawer__warn { color: var(--sale); }
.gku-drawer__foot .gku-btn--ghost { background: #fff; color: var(--ink); }

.gku-mini-item { display: grid; grid-template-columns: 64px 1fr auto; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); align-items: center; }
.gku-mini-item img { width: 64px; height: 64px; object-fit: contain; border: 1px solid var(--line); }
.gku-mini-item__name { font-size: 14px; }
.gku-mini-item__meta { font-size: 12px; color: var(--ink-faint); }
.gku-mini-item__price { font-weight: 600; font-size: 14px; }
.gku-mini-remove { background: none; border: 0; color: var(--ink-faint); cursor: pointer; font-size: 18px; }
.gku-mini-remove:hover { color: var(--sale); }

.gku-progress { margin-bottom: 14px; }
.gku-progress__label { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 6px; display: block; }
.gku-progress__bar { height: 6px; background: var(--surface); border-radius: 999px; overflow: hidden; }
.gku-progress__fill { height: 100%; background: var(--ink); width: 0; transition: width .3s ease; }

/* =========================================================================
   Cart / checkout / thank you
   ========================================================================= */
.gku-cart, .gku-checkout, .gku-thankyou { padding: 30px 0 60px; }
.gku-cart__grid, .gku-checkout__grid, .gku-thankyou__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: 30px;
	align-items: start;
}
.gku-cart__summary, .gku-checkout__side, .gku-panel {
	border: 1px solid var(--line);
	background: #fff;
	padding: 22px;
}
.gku-panel--sticky { position: sticky; top: 20px; }
.gku-panel--notice { background: var(--surface); }
.gku-block-title, .gku-cart__summary .gku-block-title {
	font-size: 13px;
	letter-spacing: var(--nav-ls);
	text-transform: uppercase;
	font-weight: 600;
	margin-bottom: 14px;
}

.gku-cart-row {
	display: grid;
	grid-template-columns: 84px minmax(180px, 1fr) 86px minmax(90px, auto);
	gap: 14px;
	padding: 16px 0;
	border-bottom: 1px solid var(--line);
	align-items: center;
}
.gku-cart-row__media img { width: 84px; height: 84px; object-fit: contain; border: 1px solid var(--line); }
.gku-cart-row__name { font-size: 15px; }
.gku-cart-row__unit { font-size: 13px; color: var(--ink-faint); }
.gku-cart-row__qty input { width: 76px; text-align: center; }
.gku-cart-row__total { font-weight: 600; }
.gku-cart-head {
	display: grid;
	grid-template-columns: 84px minmax(180px, 1fr) 86px minmax(90px, auto);
	gap: 14px;
	padding: 11px 0;
	border-bottom: 2px solid var(--ink);
	color: var(--ink-soft);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--nav-ls);
	text-transform: uppercase;
}
.gku-cart-head span:last-child,
.gku-cart-row__total { text-align: right; }
.gku-cart__summary .cart_totals { width: 100%; float: none; }
.gku-cart__summary .cart-collaterals,
.gku-cart__summary .cart_totals,
.gku-cart__summary .cart_totals table,
.gku-cart__summary .wc-proceed-to-checkout { width: 100% !important; max-width: none; float: none !important; clear: both; }
.gku-cart__summary .cart_totals table { margin: 0; table-layout: fixed; }
.gku-cart__summary .cart_totals th,
.gku-cart__summary .cart_totals td { width: 50%; }
.gku-cart__summary .wc-proceed-to-checkout .checkout-button { display: flex; width: 100%; }

/* Shop archive sidebar and working filters */
.thc-shop-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 32px; align-items: start; padding: 28px 0 60px; }
.thc-shop-main { min-width: 0; }
.thc-shop-sidebar { border: 1px solid var(--line); background: var(--page); }
.thc-sidebar-toggle { display: none; }
.thc-sidebar-block { padding: 18px; border-bottom: 1px solid var(--line); }
.thc-sidebar-title { margin-bottom: 13px; font-size: 13px; font-weight: 700; letter-spacing: var(--nav-ls); text-transform: uppercase; }
.thc-sidebar-cats, .thc-sidebar-subcats, .thc-sidebar-notes { list-style: none; margin: 0; padding: 0; }
.thc-sidebar-cats > li { border-top: 1px solid var(--line); }
.thc-sidebar-cats > li > a { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; font-size: 14px; }
.thc-sidebar-cats li.is-active > a { font-weight: 700; }
.thc-cat-count { color: var(--ink-faint); }
.thc-sidebar-drop summary { cursor: pointer; padding: 0 0 10px; color: var(--ink-soft); font-size: 12px; }
.thc-sidebar-subcats { padding: 0 0 10px 12px; }
.thc-sidebar-subcats a { display: block; padding: 5px 0; font-size: 13px; }
.gku-filters__chips { display: flex; flex-wrap: wrap; gap: 7px; }
.gku-filters__chip { border: 1px solid var(--line-strong); padding: 7px 9px; font-size: 12px; }
.gku-filters__chip.is-active { background: var(--ink); border-color: var(--ink); color: var(--page); }
.gku-filters__row { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 12px; }
.gku-filters__field span { display: block; margin-bottom: 4px; color: var(--ink-soft); font-size: 12px; }
.gku-filters__field input, .gku-filters__field select { min-width: 0; padding: 9px; }
.gku-filters__check { display: flex; align-items: center; gap: 8px; margin: 8px 0; font-size: 14px; }
.gku-filters__check input { width: auto; }
.gku-filters__actions { display: grid; gap: 9px; }
.gku-filters__apply { width: 100%; padding: 11px 14px; background: var(--ink); color: var(--page); border: 1px solid var(--ink); cursor: pointer; }
.gku-filters__reset { text-align: center; font-size: 13px; text-decoration: underline; }
.thc-sidebar-notes { display: grid; gap: 7px; color: var(--ink-soft); font-size: 13px; }
.thc-active-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.thc-chip { padding: 7px 10px; border: 1px solid var(--line-strong); font-size: 12px; }
.gku-cart-row__remove,
.woocommerce a.gku-cart-row__remove.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	margin-left: 10px;
	background: var(--surface);
	border: 1px solid var(--line-strong);
	border-radius: 50%;
	color: var(--ink);
	font-size: 23px;
	font-weight: 400;
	line-height: 1;
	text-decoration: none;
}
.woocommerce a.gku-cart-row__remove.remove:hover { background: var(--sale); border-color: var(--sale); color: #fff; }
.gku-cart-row__total { display: flex; align-items: center; justify-content: flex-end; white-space: nowrap; }
.gku-totals-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; font-size: 15px; }
.gku-totals-row--total { border-top: 1px solid var(--line); margin-top: 8px; padding-top: 14px; font-size: 19px; font-weight: 600; }
.gku-cart-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.gku-cart__pay { margin-top: 14px; font-size: 13px; color: var(--ink-soft); }
.gku-cart--empty, .gku-cart-empty, .gku-empty { text-align: center; padding: 60px 20px; }
.gku-coupon { display: flex; gap: 10px; margin: 18px 0; }
.gku-coupon input { max-width: 260px; }

.gku-steps {
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border: 1px solid var(--line);
	background: var(--page);
}
.gku-steps__item {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 66px;
	padding: 12px 18px;
	color: var(--ink-soft);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
}
.gku-steps__item + .gku-steps__item { border-left: 1px solid var(--line); }
.gku-steps__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border: 1px solid var(--line-strong);
	border-radius: 50%;
	background: var(--surface);
	color: var(--ink);
	font-size: 13px;
}
.gku-steps__item.is-active { color: var(--ink); }
.gku-steps__item.is-active .gku-steps__num { background: var(--ink); border-color: var(--ink); color: #fff; }
.gku-checkout__steps, .gku-thankyou__steps { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; }
.gku-checkout__steps li, .gku-thankyou__steps li { font-size: 14px; color: var(--ink-soft); }
.gku-checkout__details, .gku-checkout__details-card, .gku-thankyou__details { border: 1px solid var(--line); padding: 18px; margin-bottom: 18px; }
.gku-checkout__perks { list-style: none; margin: 14px 0 0; padding: 0; font-size: 13px; color: var(--ink-soft); display: grid; gap: 6px; }
.gku-pay-notice { border: 1px solid var(--line-strong); background: var(--surface); padding: 16px 18px; margin: 18px 0; font-size: 15px; }

.woocommerce form .form-row { padding: 0; margin: 0 0 16px; }
.woocommerce .col2-set, .woocommerce-page .col2-set { display: grid; grid-template-columns: 1fr; gap: 0; width: 100%; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: 100%; float: none; }
.woocommerce table.shop_table { width: 100%; border: 1px solid var(--line); border-collapse: collapse; border-radius: 0; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-top: 1px solid var(--line); padding: 12px; }
.woocommerce-checkout #payment { background: var(--surface); border: 1px solid var(--line); border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--line); }
.woocommerce-checkout #payment div.payment_box { background: #fff; border: 1px solid var(--line); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }

.gku-thankyou__hero { border: 1px solid var(--line); padding: 28px; margin-bottom: 24px; }
.gku-thankyou__check { color: #2e7d32; font-size: 30px; }
.gku-thankyou__lede { font-size: 17px; color: var(--ink-soft); }
.gku-thankyou__meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 18px; font-size: 14px; }
.gku-thankyou__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }

.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-top: 3px solid var(--ink);
	background: var(--surface);
	color: var(--ink);
	border-radius: 0;
}
.woocommerce-error { border-top-color: var(--sale); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--ink); }

/* =========================================================================
   Footer
   ========================================================================= */
.gku-footer {
	background: var(--footer-bg);
	color: var(--footer-text);
	padding: 54px 0 24px;
	margin-top: 60px;
}
.gku-footer a { color: var(--footer-text); }
.gku-footer a:hover { text-decoration: underline; }
.gku-footer__grid {
	display: grid;
	grid-template-columns: 1.6fr repeat(3, 1fr);
	gap: 34px;
}
.gku-footer__col p { color: rgba(255, 255, 255, .72); font-size: 14px; }
.gku-footer__col img { max-height: 56px; width: auto; margin-bottom: 14px; }
.gku-footer__toggle {
	background: none;
	border: 0;
	color: #fff;
	padding: 0 0 14px;
	font-size: 13px;
	letter-spacing: var(--nav-ls);
	text-transform: uppercase;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	cursor: default;
	font-family: var(--font);
}
.gku-footer__icon { width: 18px; height: 18px; display: none; }
.gku-footer__menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 14px; }
.gku-footer__perks { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 6px; font-size: 14px; color: rgba(255, 255, 255, .72); }
.gku-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, .18);
	margin-top: 34px;
	padding-top: 18px;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 22px;
	justify-content: space-between;
	font-size: 13px;
	color: rgba(255, 255, 255, .7);
}
.gku-footer__legal, .gku-footer__sitemap { display: flex; flex-wrap: wrap; gap: 16px; list-style: none; margin: 0; padding: 0; }
.gku-footer__sitemap-wrap { margin-top: 20px; font-size: 13px; color: rgba(255, 255, 255, .6); }

/* =========================================================================
   Misc
   ========================================================================= */
.gku-404 { text-align: center; padding: 80px 20px; }
.gku-cta-box { border: 1px solid var(--line); background: var(--surface); padding: 24px; margin: 26px 0; }
.gku-pagelinks { margin: 20px 0; font-size: 14px; }
.gku-link { color: var(--link); text-decoration: underline; }
.gku-loc-backlink { font-size: 14px; margin-bottom: 12px; display: inline-block; }
.gku-inline-products { margin: 26px 0; }
.gku-inline-products__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; }
.gku-searchform, .gku-search-inline { display: flex; gap: 8px; }
.gku-card-meta, .gku-card-thc { font-size: 13px; color: var(--ink-faint); }
.gku-seo-foot { margin-top: 30px; font-size: 14px; color: var(--ink-soft); }

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 1100px) {
	.gku-cats { grid-template-columns: repeat(3, 1fr); }
	.gku-products, .woocommerce ul.products, .gku-seo-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.gku-reviews { grid-template-columns: repeat(2, 1fr); }
	.gku-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
	h1 { font-size: 30px; line-height: 40px; }
	h2 { font-size: 25px; }
	.gku-burger { display: inline-flex; }
	.gku-utility__links { display: none; }
	.gku-header__top { flex-wrap: wrap; gap: 12px; }
	.gku-header__logo { order: 1; margin-right: auto; }
	.gku-header__actions { order: 2; }
	.gku-search { order: 3; flex: 1 0 100%; max-width: none; }

	.gku-nav {
		position: fixed;
		top: 0; left: 0; bottom: 0;
		width: min(320px, 86vw);
		background: var(--mobile-menu-bg);
		color: #fff;
		transform: translateX(-100%);
		transition: transform .25s ease;
		z-index: 950;
		padding: 0;
		overflow-y: auto;
	}
	.gku-nav.is-open { transform: none; }
	.gku-nav__head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 16px 18px;
		border-bottom: 1px solid rgba(255, 255, 255, .5);
		font-size: 13px;
		letter-spacing: var(--nav-ls);
		text-transform: uppercase;
	}
	.gku-nav__close { background: none; border: 0; color: #fff; font-size: 26px; cursor: pointer; }
	.gku-nav-overlay { display: block; position: fixed; inset: 0; background: rgba(0, 0, 0, .5); z-index: 940; }
	.gku-nav-overlay[hidden] { display: none; }
	.gku-menu, .gku-nav ul.menu { display: block; padding: 0; }
	.gku-menu > li > a, .gku-nav ul.menu > li > a,
	.gku-menu ul a {
		color: #fff;
		padding: 14px 18px;
		border-bottom: 1px solid rgba(255, 255, 255, .25);
	}
	.gku-menu .sub-menu, .gku-menu ul {
		position: static;
		display: block;
		background: transparent;
		border: 0;
		box-shadow: none;
		padding: 0 0 0 14px;
	}
	.gku-menu ul a:hover { background: rgba(255, 255, 255, .08); }

	.gku-layout { grid-template-columns: 1fr; }
	.thc-shop-layout { display: block; padding-top: 18px; }
	.thc-shop-sidebar { margin-bottom: 22px; }
	.thc-sidebar-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 15px 17px; border: 0; background: var(--ink); color: var(--page); font-weight: 600; cursor: pointer; }
	.thc-sidebar-body { display: none; }
	.thc-shop-sidebar.is-open .thc-sidebar-body { display: block; }
	.gku-cart__grid, .gku-checkout__grid, .gku-thankyou__grid { grid-template-columns: 1fr; }
	.gku-panel--sticky { position: static; }
	.gku-postgrid, .gku-post-grid { grid-template-columns: 1fr 1fr; }
	.gku-promos { grid-template-columns: 1fr 1fr; }
	.gku-usps, .gku-thankyou__meta { grid-template-columns: 1fr 1fr; }
	.gku-hero__img--desktop { display: none; }
	.gku-hero__img--mobile { display: block; }
}

@media (max-width: 640px) {
	.gku-section { padding: 36px 0; }
	.gku-products, .woocommerce ul.products, .gku-seo-cards, .gku-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.gku-reviews, .gku-footer__grid { grid-template-columns: 1fr; }
	.gku-postgrid--swipe {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		gap: 14px;
		padding-bottom: 10px;
	}
	.gku-postgrid--swipe > * { flex: 0 0 78%; scroll-snap-align: start; }
	.gku-cart-head { display: none; }
	.gku-cart-row { grid-template-columns: 64px minmax(0, 1fr); align-items: start; padding: 18px 0; }
	.gku-cart-row__media img { width: 64px; height: 64px; }
	.gku-cart-row__qty { grid-column: 2; }
	.gku-cart-row__total { grid-column: 2; display: flex; align-items: center; justify-content: space-between; text-align: left; }
	.gku-cart-actions, .gku-coupon { display: grid; grid-template-columns: 1fr; }
	.gku-coupon input { max-width: none; }
	.gku-steps { margin-bottom: 20px; }
	.gku-steps__item { min-height: 58px; padding: 10px 5px; gap: 6px; font-size: 10px; }
	.gku-steps__num { width: 25px; height: 25px; font-size: 11px; }
	.gku-footer__col--collapsible .gku-footer__panel { display: none; }
	.gku-footer__col--collapsible.is-open .gku-footer__panel { display: block; }
	.gku-footer__toggle { cursor: pointer; border-bottom: 1px solid rgba(255, 255, 255, .18); padding: 14px 0; }
	.gku-footer__icon { display: block; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 14px; }
}

/* Footer sitemap link (icon + label) */
.gku-footer__sitemap {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.gku-footer__sitemap svg { width: 16px; height: 16px; }

/* =========================================================================
   Template-specific hooks
   ========================================================================= */
.gku-card-body { padding: 0 14px; }
.gku-seo-card__body { padding: 0 12px 10px; }
.gku-cart-row__info { min-width: 0; }
.gku-cart-table { width: 100%; }
.gku-cart__items { border-top: 1px solid var(--line); }
.gku-cart__progress { margin-bottom: 18px; }
.gku-cart__continue, .gku-thankyou__continue { font-size: 14px; }
.gku-checkout__main { min-width: 0; }
.gku-checkout__form .gku-panel { margin-bottom: 18px; }
.gku-inline-products__more { font-size: 13px; letter-spacing: var(--nav-ls); text-transform: uppercase; }
.gku-shop-hero__intro { color: var(--ink-soft); max-width: none; }
.gku-thankyou__pay { border: 1px solid var(--line-strong); background: var(--surface); padding: 16px 18px; margin: 18px 0; }
