/*
 * Glowshop theme stylesheet.
 * Reference metrics: 1170px content width, black chrome, Inter body,
 * Helvetica display headings, 768px mobile breakpoint.
 */

/* ------------------------------------------------------------------
   Fonts
------------------------------------------------------------------ */
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/inter-400.woff2') format('woff2');
}

/* ------------------------------------------------------------------
   Root / reset
------------------------------------------------------------------ */
:root {
	--gs-black: #000;
	--gs-text: #444;
	--gs-dark: #111;
	--gs-muted: #666;
	--gs-light: #f8f8f8;
	--gs-border: #e2e2e2;
	--gs-width: 1170px;
	--gs-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
	--gs-heading: 'Helvetica', 'Helvetica Neue', Arial, sans-serif;
	--gs-nav-h: 60px;
	--gs-header-h: 70px;
	--gs-topbar-h: 40px;
}

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

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

body {
	margin: 0;
	font-family: var(--gs-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--gs-text);
	background: #fff;
}

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

a { color: inherit; text-decoration: none; }
a:hover { color: inherit; }

button { font-family: inherit; cursor: pointer; }

input, select, textarea { font-family: inherit; font-size: 15px; color: var(--gs-dark); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--gs-heading);
	color: var(--gs-black);
	margin: 0 0 .6em;
	line-height: 1.2;
}

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

.clear { clear: both; }

/* ------------------------------------------------------------------
   Layout containers
------------------------------------------------------------------ */
.col-full {
	max-width: calc(var(--gs-width) + 40px);
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
}

.gs-container { margin-left: auto; margin-right: auto; padding-left: 20px; padding-right: 20px; }
.gs-container--narrow { max-width: calc(var(--gs-width) + 40px); }
.gs-container--wide { max-width: 1400px; }

.gs-desktop-only { display: block; }
.gs-mobile-only { display: none !important; }

/* ------------------------------------------------------------------
   Announcement top bar
------------------------------------------------------------------ */
.topbar-wrapper { background: var(--gs-black); border-bottom: 1px solid #fff; }

.top-bar { font-size: 12px; color: #fff; }

.top-bar-center {
	text-align: center;
	padding: 11px 0;
	letter-spacing: .3px;
}

/* ------------------------------------------------------------------
   Header: logo row
------------------------------------------------------------------ */
.site-header { background: var(--gs-black); position: relative; z-index: 40; }

.main-header {
	display: flex;
	align-items: center;
	padding-top: 5px;
	padding-bottom: 5px;
	min-height: var(--gs-header-h);
	gap: 24px;
}

.site-branding { display: flex; align-items: center; }

.site-branding .custom-logo-link { display: inline-flex; align-items: center; }

.site-branding .custom-logo-link img { height: 27px; width: auto; }

.site-search { flex: 1; }

.woocommerce-product-search { position: relative; }

.woocommerce-product-search .search-field {
	width: 100%;
	height: 42px;
	padding: 0 16px 0 42px;
	background: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	font-size: 15px;
	color: var(--gs-dark);
	outline: none;
}

.woocommerce-product-search::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 14px;
	width: 16px;
	height: 16px;
	transform: translateY(-50%);
	background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23777' stroke-width='1.8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3E%3C/svg%3E") no-repeat center / contain;
	pointer-events: none;
}

.woocommerce-product-search button[type="submit"] {
	display: none;
}

.mobile-search-toggle {
	display: none;
	background: transparent;
	border: 0;
	color: #fff;
	padding: 6px;
}

.mobile-search-toggle svg { width: 22px; height: 22px; }

/* Hamburger (mobile) */
.menu-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	background: var(--gs-black);
	border: 0;
	padding: 8px;
	margin-right: 10px;
}

.menu-toggle .bar { display: block; width: 20px; height: 2px; background: #fff; transition: transform .2s ease, opacity .2s ease; }

/* ------------------------------------------------------------------
   Header: navigation row (sticky)
------------------------------------------------------------------ */
.col-full-nav { background: var(--gs-black); position: sticky; top: 0; z-index: 50; }

.shoptimizer-primary-navigation {
	display: flex;
	align-items: center;
	max-width: calc(var(--gs-width) + 40px);
	margin: 0 auto;
	padding: 0 20px;
}

.primary-navigation { flex: 1; }

.menu-primary-menu-container > ul.menu {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}

.menu-primary-menu-container > ul.menu > li {
	position: relative;
	display: flex;
	align-items: center;
	margin-right: 6px;
}

.menu-primary-menu-container > ul.menu > li > a.cg-menu-link {
	display: inline-flex;
	align-items: center;
	height: var(--gs-nav-h);
	padding: 0 2px 0 10px;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .2px;
	text-transform: uppercase;
	line-height: var(--gs-nav-h);
}

.menu-primary-menu-container > ul.menu > li > a.cg-menu-link:hover { opacity: .85; }

span.caret {
	display: inline-block;
	position: relative;
	align-self: center;
	width: 10px;
	height: 10px;
	margin: 2px 0 0 -2px;
	background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ffffff' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E") no-repeat center / 10px;
}

/* Dropdown panels */
.main-navigation .sub-menu-wrapper {
	visibility: hidden;
	opacity: 0;
	transform: scale(.98);
	transition: all .15s ease-in-out;
	z-index: 60;
}

.main-navigation ul.menu > li.menu-item-has-children:hover > .sub-menu-wrapper,
.main-navigation ul.menu > li.menu-item-has-children:focus-within > .sub-menu-wrapper {
	visibility: visible;
	opacity: 1;
	transform: scale(1);
}

.main-navigation ul.menu > li:not(.full-width) > .sub-menu-wrapper {
	position: absolute;
	left: 0;
	top: 100%;
}

.main-navigation ul.menu ul.sub-menu {
	background: #161616;
	margin: 0;
	padding: 18px 12px;
	list-style: none;
	min-width: 200px;
	box-shadow: 0 1px 15px rgba(0, 0, 0, .18);
}

.main-navigation ul.menu ul li a.cg-menu-link {
	display: block;
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.5;
	padding: .3em .8em;
	text-transform: none;
	white-space: nowrap;
}

.main-navigation ul.menu ul li a.cg-menu-link:hover { text-decoration: underline; }

/* Third level flyout */
.main-navigation ul.menu ul li.menu-item-has-children { position: relative; }

.main-navigation ul.menu ul li.menu-item-has-children > .sub-menu-wrapper {
	position: absolute;
	top: -18px;
	left: 100%;
	margin: 0;
}

.main-navigation ul.menu ul li.menu-item-has-children:hover > .sub-menu-wrapper,
.main-navigation ul.menu ul li.menu-item-has-children:focus-within > .sub-menu-wrapper {
	visibility: visible;
	opacity: 1;
	transform: scale(1);
}

/* Cart in nav row */
.site-header-cart.menu { margin-left: auto; }

.shoptimizer-cart a.cart-contents {
	display: inline-flex;
	align-items: center;
	height: var(--gs-nav-h);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
}

.shoptimizer-cart a.cart-contents .amount { margin-right: 10px; }

.shoptimizer-cart a.cart-contents .amount .woocommerce-Price-amount { color: #fff; }

.shoptimizer-cart a.cart-contents .count {
	display: inline-block;
	min-width: 22px;
	height: 22px;
	margin-left: 8px;
	padding: 0 4px;
	background: #fff;
	color: var(--gs-black);
	border-radius: 3px;
	font-size: 12px;
	font-weight: 600;
	line-height: 22px;
	text-align: center;
}

.menu-overlay { display: none; }

.s-observer { display: none; }

/* ------------------------------------------------------------------
   Buttons
------------------------------------------------------------------ */
.gs-btn {
	display: inline-block;
	border-radius: 1px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .4px;
	text-align: center;
	transition: all .15s ease;
}

.gs-btn--outline {
	background: #fff;
	color: var(--gs-black);
	border: 1px solid var(--gs-black);
	padding: 12px 25px;
}

.gs-btn--outline:hover { background: #f2f2f2; border-color: var(--gs-black); color: var(--gs-black); }

.gs-btn--solid {
	background: var(--gs-black);
	color: #fff;
	border: 1px solid var(--gs-black);
	padding: 18px 40px;
}

.gs-btn--solid:hover { background: #262626; color: #fff; }

/* ------------------------------------------------------------------
   Front page
------------------------------------------------------------------ */
.site-content { min-height: 40vh; }

.gs-hero { background: #fff; }

.gs-hero--mobile { display: none; }

.gs-hero .gs-carousel__item { display: block; }

.gs-hero .gs-carousel__item img { width: 100%; height: auto; display: block; }

.gs-section { padding: 0; }

.gs-section-title {
	font-family: var(--gs-heading);
	font-size: 35px;
	font-weight: 800;
	letter-spacing: .5px;
	color: var(--gs-black);
	margin: 0;
	padding: 30px 0 18px;
}

.gs-section-cta { text-align: center; padding: 34px 0 60px; }

/* Front page product rows */
.gs-section .products { margin: 0; }

.gs-tiles { padding: 0 0 0; }

.gs-tiles__grid { display: grid; gap: 4px; }

.gs-tiles__grid--three { grid-template-columns: repeat(3, 1fr); }

.gs-tiles__grid a { display: block; }

.gs-tiles__grid img { width: 100%; height: auto; display: block; }

.gs-banner { padding: 30px 0; }

.gs-banner__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 40px;
}

.gs-banner__media img { width: 100%; height: auto; display: block; }

.gs-banner__panel { text-align: left; padding: 0 20px; }

.gs-banner__eyebrow {
	font-size: 16px;
	font-weight: 500;
	color: var(--gs-black);
	margin: 0 0 6px;
}

.gs-banner__title {
	font-family: var(--gs-heading);
	font-size: 30px;
	font-weight: 600;
	color: var(--gs-black);
	margin: 0 0 8px;
}

.gs-banner__text {
	font-size: 16px;
	font-weight: 500;
	color: var(--gs-black);
	margin: 0 0 24px;
}

/* Simple slider shell (custom JS) */
.gs-carousel { position: relative; }

.gs-carousel__track {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow: hidden;
}

.gs-carousel__slide { flex: 0 0 100%; min-width: 0; }

.gs-carousel__item { display: block; }

.gs-carousel__item img { width: 100%; height: auto; display: block; }

.gs-slider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, .92);
	border: 1px solid var(--gs-border);
	border-radius: 50%;
	color: var(--gs-dark);
	transition: background .15s ease;
}

.gs-slider-arrow:hover { background: #fff; }

.gs-slider-arrow svg { width: 18px; height: 18px; }

.gs-slider-prev { left: 10px; }

.gs-slider-next { right: 10px; }

.gs-mcarousel { padding: 0 0 30px; }

.gs-carousel__viewport { overflow: hidden; width: 100%; }

/* Lightbox */
.gs-lightbox {
	position: fixed;
	inset: 0;
	z-index: 300;
	background: rgba(0, 0, 0, .82);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 30px;
}

.gs-lightbox img { max-width: 100%; max-height: 100%; width: auto; height: auto; background: #fff; }

.gs-lightbox__close {
	position: absolute;
	top: 14px;
	right: 18px;
	background: transparent;
	border: 0;
	color: #fff;
	font-size: 34px;
	line-height: 1;
}

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

/* ------------------------------------------------------------------
   Product cards & grids
------------------------------------------------------------------ */
ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	column-gap: 20px;
	row-gap: 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}

ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }

ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }

ul.products::before, ul.products::after { display: none; }

li.gs-product-card {
	position: relative;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	float: none !important;
	list-style: none;
}

.woocommerce-image__wrapper { position: relative; }

.woocommerce-image__wrapper > a { display: block; }

.shoptimizer-plp-image-wrapper {
	overflow: hidden;
	background: var(--gs-light);
}

.shoptimizer-plp-image-wrapper img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 800 / 840;
	object-fit: cover;
	transition: transform .35s ease;
}

.gs-product-card:hover .shoptimizer-plp-image-wrapper img { transform: scale(1.04); }

span.onsale {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 3;
	background: var(--gs-black);
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	line-height: 18px;
	padding: 2px 9px;
	margin: 0;
	border-radius: 1px;
}

.woocommerce-card__header { padding-top: 12px; }

.woocommerce-loop-product__title {
	font-size: 14px;
	font-weight: 600;
	color: var(--gs-black);
	line-height: 1.35;
	margin: 0 0 4px;
	text-transform: uppercase;
}

.woocommerce-loop-product__title a { color: var(--gs-black); }

.gs-product-card .price {
	display: block;
	margin: 0 0 10px;
	color: var(--gs-dark);
	font-size: 15px;
}

.gs-product-card .price del {
	color: #9b9b9b;
	font-weight: 400;
	opacity: 1;
	font-size: 14px;
	margin-right: 5px;
}

.gs-product-card .price ins {
	color: var(--gs-black);
	font-weight: 700;
	text-decoration: none;
}

.gs-product-card .button.product_type_variable,
.gs-product-card .button.product_type_simple {
	display: none;
	background: var(--gs-black);
	color: #fff;
	border: 0;
	border-radius: 2px;
	font-size: 14px;
	font-weight: 600;
	text-align: center;
	padding: 12px 18px;
	width: 100%;
	margin: 0 0 10px;
}

.gs-product-card .button.product_type_variable:hover,
.gs-product-card .button.product_type_simple:hover { background: #262626; color: #fff; }

/* Archive swatches */
.gs-archive-variations-wrapper ul.variations {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}

.gs-archive-variations-wrapper .variable-items-wrapper {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.variable-item.image-variable-item {
	width: 34px;
	height: 34px;
	overflow: hidden;
	border: 1px solid #d5d5d5;
	border-radius: 2px;
	background: #fff;
	cursor: pointer;
}

.variable-item.image-variable-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gs-swatch-more a { font-size: 13px; color: var(--gs-dark); }

.gs-swatch-more a:hover { text-decoration: underline; }

/* ------------------------------------------------------------------
   Archive (shop / category) page
------------------------------------------------------------------ */
.archive-header .col-full { max-width: calc(var(--gs-width) + 40px); }

.woocommerce-breadcrumb {
	color: var(--gs-muted);
	font-size: 13.5px;
	padding: 1rem 0;
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.woocommerce-breadcrumb a { color: var(--gs-dark); }

.woocommerce-breadcrumb a:hover { text-decoration: underline; }

.woocommerce-breadcrumb .breadcrumb-separator { padding: 0 .8em; opacity: .4; font-size: .8em; }

.shoptimizer-archive .col-full { display: block; }

.gs-shop-sidebar {
	float: left;
	width: 22%;
	padding: 12px 30px 40px 0;
}

#primary.content-area { float: right; width: 78%; }

.shoptimizer-archive .col-full::after {
	content: "";
	display: table;
	clear: both;
}

.archive-header { border-bottom: 0; }

/* Toolbar */
.shoptimizer-sorting {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	padding: 6px 0 18px;
}

.shoptimizer-sorting .woocommerce-notices-wrapper { flex-basis: 100%; }

.woocommerce-ordering { margin: 0; }

.woocommerce-ordering .orderby {
	appearance: none;
	-webkit-appearance: none;
	border: 1px solid var(--gs-border);
	border-radius: 3px;
	background: #fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23444' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E") no-repeat right 10px center / 12px;
	padding: 9px 34px 9px 12px;
	font-size: 14px;
	color: var(--gs-dark);
	cursor: pointer;
}

.woocommerce-result-count {
	margin: 0;
	color: var(--gs-dark);
	font-size: 14px;
}

.woocommerce-pagination { margin-left: auto; }

.woocommerce-pagination ul.page-numbers {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-pagination .page-numbers li { margin: 0; }

.woocommerce-pagination a.page-numbers,
.woocommerce-pagination span.page-numbers {
	display: inline-block;
	padding: 4px 9px;
	color: var(--gs-dark);
	font-size: 14px;
	border: 1px solid transparent;
	border-radius: 2px;
}

.woocommerce-pagination span.page-numbers.current { font-weight: 700; border-color: var(--gs-border); }

.woocommerce-pagination a.page-numbers:hover { border-color: var(--gs-border); }

.woocommerce-pagination a.next.page-numbers,
.woocommerce-pagination a.prev.page-numbers { font-size: 16px; }

/* Sidebar widgets */
.gs-filter-widget { margin-bottom: 30px; }

.gs-filter-title {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .3px;
	color: var(--gs-black);
	margin-bottom: 12px;
}

.gs-price-fields { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.gs-filter-button {
	background: var(--gs-black);
	color: #fff;
	border: 0;
	border-radius: 3px;
	padding: 8px 16px;
	font-size: 13px;
	font-weight: 600;
}

.gs-price-range { font-size: 13px; color: var(--gs-muted); }

.gs-price-range input {
	width: 62px;
	border: 1px solid var(--gs-border);
	border-radius: 3px;
	padding: 5px 6px;
	font-size: 13px;
}

.gs-top-rated-list { margin: 0; padding: 0; list-style: none; }

.gs-top-rated-list li { padding: 10px 0; border-bottom: 1px solid #f0f0f0; }

.gs-top-rated-list li a { display: flex; justify-content: space-between; gap: 10px; }

.gs-tr-title { font-size: 13px; color: var(--gs-dark); line-height: 1.4; }

.gs-top-rated-list img { width: 44px; height: 46px; object-fit: cover; border-radius: 2px; }

.gs-top-rated-list .price { display: block; margin-top: 3px; font-size: 13px; }

.gs-top-rated-list .price del { color: #9b9b9b; margin-right: 4px; }

.gs-top-rated-list .price ins { color: var(--gs-black); font-weight: 700; text-decoration: none; }

.mobile-filter {
	display: none;
	align-items: center;
	gap: 8px;
	background: #fff;
	border: 1px solid var(--gs-border);
	border-radius: 3px;
	padding: 10px 14px;
	font-size: 13px;
	font-weight: 600;
	color: var(--gs-dark);
	margin: 0 0 14px;
}

.mobile-filter svg { width: 16px; height: 16px; }

.gs-no-products { padding: 30px 0 60px; }

/* ------------------------------------------------------------------
   Single product
------------------------------------------------------------------ */
.single-product .site-content .col-full { background: var(--gs-light); }

.product-details-wrapper {
	display: flex;
	gap: 40px;
	padding: 20px 0 40px;
}

.gs-single-product .gs-gallery { width: 55%; flex-shrink: 0; }

.gs-gallery__main {
	position: relative;
	background: var(--gs-light);
}

.gs-gallery__slides { overflow: hidden; }

.gs-gallery__slide { display: none; margin: 0; }

.gs-gallery__slide.is-active { display: block; }

.gs-gallery__image { width: 100%; height: auto; display: block; }

.gs-gallery__zoom {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	color: var(--gs-dark);
}

.gs-gallery__zoom svg { width: 20px; height: 20px; }

.gs-gallery__thumbs {
	display: flex;
	gap: 8px;
	margin-top: 10px;
	overflow-x: auto;
}

.gs-gallery__thumb {
	flex: 0 0 auto;
	width: 86px;
	padding: 0;
	background: var(--gs-light);
	border: 1px solid transparent;
	border-radius: 2px;
	overflow: hidden;
}

.gs-gallery__thumb.is-active { border-color: var(--gs-black); }

.gs-gallery__thumb img { width: 100%; height: auto; display: block; }

.gs-single-product .summary { flex: 1; min-width: 0; }

/* Prev / next tooltips */
.gs-prevnext { display: flex; gap: 10px; justify-content: flex-end; margin-bottom: 8px; }

.gs-prevnext__link {
	position: relative;
	width: 30px;
	height: 30px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #cfcfcf;
	border-radius: 50%;
	color: var(--gs-dark);
	background: #fff;
}

.gs-prevnext__link svg { width: 15px; height: 15px; }

.gs-prevnext__link .tooltip {
	display: none;
	position: absolute;
	top: 34px;
	right: 0;
	z-index: 20;
	width: 200px;
	padding: 10px;
	background: #fff;
	border: 1px solid var(--gs-border);
	border-radius: 3px;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
	text-align: left;
}

.gs-prevnext__link:hover .tooltip { display: block; }

.gs-prevnext__link .tooltip img { width: 100%; height: auto; display: block; margin-bottom: 6px; }

.gs-prevnext__link .tooltip .title {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--gs-black);
	text-transform: uppercase;
	margin-bottom: 2px;
}

.gs-prevnext__link .prevnext_price { font-size: 13px; color: var(--gs-dark); }

.gs-prevnext__link .prevnext_price del { color: #9b9b9b; margin-right: 4px; }

.gs-prevnext__link .prevnext_price ins { font-weight: 700; text-decoration: none; }

/* Summary content */
.single-product .summary .onsale {
	position: static;
	display: inline-block;
	background: transparent;
	color: var(--gs-dark);
	font-size: 14px;
	line-height: 1.4;
	padding: 0;
	margin: 0 0 2px;
}

.single-product .product_title {
	font-family: var(--gs-heading);
	font-size: 31px;
	font-weight: 700;
	line-height: 1.15;
	color: var(--gs-black);
	margin: 0 0 10px;
}

.single-product .summary .price {
	font-size: 19px;
	color: var(--gs-black);
	margin: 0 0 14px;
}

.single-product .summary .price del { color: #9b9b9b; font-size: 17px; margin-right: 6px; }

.single-product .summary .price ins { color: var(--gs-black); font-weight: 500; text-decoration: none; }

/* Variation form */
.product form.variations_form { margin: 0; }

.product form.variations_form table.variations { width: 100%; border: 0; margin: 0 0 4px; }

.product form.variations_form table.variations tr { display: block; margin-bottom: 12px; }

.product form.variations_form table.variations th.label {
	display: block;
	padding: 0 0 8px;
	text-align: left;
	font-size: 14px;
	font-weight: 600;
	color: var(--gs-black);
	background: none;
}

.product form.variations_form table.variations td.value { padding: 0; }

.product form.variations_form table.variations select { display: block; }

/* Native selects hidden when JS renders swatches */
.gs-swatches-on table.variations select { display: none !important; }

.gs-swatch-row {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gs-swatch-row li.gs-swatch {
	margin: 0;
	padding: 0;
	list-style: none;
	cursor: pointer;
}

.gs-swatch--image {
	width: 40px;
	height: 40px;
	overflow: hidden;
	border: 1px solid #d5d5d5;
	border-radius: 2px;
	background: #fff;
}

.gs-swatch--image img { width: 100%; height: 100%; object-fit: cover; display: block; }

.gs-swatch--button {
	min-width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 10px;
	border: 1px solid #d5d5d5;
	border-radius: 2px;
	background: #fff;
	font-size: 14px;
	color: var(--gs-dark);
}

.gs-swatch.is-selected { border-color: var(--gs-black) !important; box-shadow: inset 0 0 0 1px var(--gs-black); }

.gs-swatch.is-disabled { opacity: .35; cursor: not-allowed; }

a.reset_variations {
	display: inline-block;
	margin: 0 0 4px;
	font-size: 13px;
	color: var(--gs-muted);
	text-decoration: underline;
}

.single_variation_wrap .woocommerce-variation { margin-bottom: 10px; }

.single_variation_wrap .woocommerce-variation-price { font-size: 18px; color: var(--gs-black); }

.single_variation_wrap .woocommerce-variation-price del { color: #9b9b9b; margin-right: 6px; }

.single_variation_wrap .woocommerce-variation-availability { color: #2f7d32; font-size: 14px; }

/* Quantity + add to cart */
.product form.cart { display: flex; align-items: stretch; gap: 12px; margin: 10px 0 0; }

.product form.variations_form.cart { display: block; }

.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: stretch;
	gap: 12px;
	margin: 10px 0 0;
}

.product form.cart .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid #d5d5d5;
	border-radius: 2px;
	background: #fff;
}

.product form.cart .quantity .qty {
	width: 56px;
	height: 48px;
	border: 0;
	background: transparent;
	text-align: center;
	font-size: 15px;
	-moz-appearance: textfield;
	appearance: textfield;
}

.product form.cart .quantity .qty::-webkit-outer-spin-button,
.product form.cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.single_add_to_cart_button {
	flex: 1;
	height: 48px;
	background: var(--gs-black);
	color: #fff;
	border: 0;
	border-radius: 2px;
	font-size: 15px;
	font-weight: 600;
	transition: background .15s ease;
}

.single_add_to_cart_button:hover { background: #262626; }

.single_add_to_cart_button:disabled,
.single_add_to_cart_button.disabled {
	background: #9e9e9e;
	color: #fff;
	cursor: not-allowed;
	opacity: 1;
}

/* Trust widget */
.product-widget { margin-top: 26px; }

.gs-trust { font-size: 14px; color: var(--gs-dark); }

.gs-trust p { margin: 0 0 8px; }

.gs-trust ul { margin: 0 0 14px; padding: 0; list-style: none; }

.gs-trust__item { position: relative; padding-left: 24px; margin-bottom: 6px; }

.gs-trust__item::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 3px;
	width: 13px;
	height: 13px;
	background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23444' stroke-width='1.6'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath stroke-linecap='round' d='M8.5 12.2l2.4 2.4 4.6-4.9'/%3E%3C/svg%3E") no-repeat center / contain;
}

.gs-trust fieldset {
	border: 1px solid var(--gs-border);
	border-radius: 3px;
	padding: 6px 14px 14px;
	margin: 0;
}

.gs-trust legend {
	padding: 0 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--gs-black);
	text-align: center;
}

.gs-trust fieldset img { display: block; width: 100%; max-width: 400px; height: auto; }

/* Tabs */
.woocommerce-tabs.wc-tabs-wrapper { background: #fff; padding: 30px 0 10px; }

.woocommerce-tabs ul.tabs {
	display: flex;
	justify-content: center;
	gap: 34px;
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
	border-bottom: 0;
}

.woocommerce-tabs ul.tabs li { margin: 0; padding: 0; background: none; border: 0; }

.woocommerce-tabs ul.tabs li a {
	font-size: 15px;
	color: var(--gs-muted);
	padding: 0 0 8px;
	border-bottom: 2px solid transparent;
}

.woocommerce-tabs ul.tabs li.active a {
	color: var(--gs-black);
	border-bottom-color: var(--gs-black);
	font-weight: 500;
}

.woocommerce-tabs .woocommerce-Tabs-panel {
	max-width: calc(var(--gs-width) + 40px);
	margin: 0 auto;
	padding: 0 20px;
	font-size: 15px;
	color: var(--gs-text);
}

.woocommerce-tabs .woocommerce-Tabs-panel h2 { font-size: 20px; }

.woocommerce-tabs .woocommerce-Tabs-panel--additional_information { display: none; }

.woocommerce-tabs .woocommerce-Tabs-panel--additional_information.activated,
.woocommerce-tabs .woocommerce-Tabs-panel--description { display: block; }

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

table.shop_attributes th,
table.shop_attributes td { text-align: left; padding: 10px 14px; border-bottom: 1px solid #f0f0f0; font-weight: 400; font-size: 14px; }

table.shop_attributes th { color: var(--gs-black); font-weight: 600; width: 160px; }

/* Related products */
.related-wrapper,
.section.related.products { background: #fff; }

.related.products,
section.related.products {
	max-width: calc(var(--gs-width) + 40px);
	margin: 0 auto;
	padding: 30px 20px 60px;
}

.related.products > h2 {
	font-family: var(--gs-heading);
	font-size: 27px;
	font-weight: 700;
	color: var(--gs-black);
	margin: 0 0 22px;
}

/* Generic Woo pages (cart / checkout / account) */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: #f6f6f6;
	border-top: 2px solid var(--gs-black);
	padding: 12px 18px;
	font-size: 14px;
	color: var(--gs-dark);
	list-style: none;
}

.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }

.woocommerce-cart-form .shop_table,
.woocommerce-checkout-review-order-table { width: 100%; border-collapse: collapse; }

.woocommerce-cart-form .shop_table th,
.woocommerce-cart-form .shop_table td,
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td { padding: 12px 10px; border-bottom: 1px solid #eee; font-size: 14px; text-align: left; }

.checkout-button { background: var(--gs-black); color: #fff; padding: 14px 22px; border-radius: 2px; font-weight: 600; }

.checkout-button:hover { background: #262626; color: #fff; }

/* ------------------------------------------------------------------
   Cart drawer
------------------------------------------------------------------ */
.gs-cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 200;
	width: 380px;
	max-width: 92vw;
	height: 100%;
	background: #fff;
	box-shadow: -6px 0 30px rgba(0, 0, 0, .14);
	transform: translateX(100%);
	transition: transform .3s ease;
	display: flex;
	flex-direction: column;
}

.gs-cart-drawer.is-open { transform: translateX(0); }

.gs-cart-drawer[hidden] { display: none; }

.gs-cart-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid #eee;
}

.gs-cart-drawer__title { font-size: 15px; font-weight: 700; color: var(--gs-black); }

.gs-cart-drawer__close { background: transparent; border: 0; color: var(--gs-dark); padding: 4px; }

.gs-cart-drawer__close svg { width: 20px; height: 20px; }

.gs-cart-drawer .widget_shopping_cart_content { padding: 10px 20px 20px; overflow-y: auto; }

.woocommerce-mini-cart__empty-message { font-size: 14px; color: var(--gs-muted); padding: 12px 0; }

/* ------------------------------------------------------------------
   Footer
------------------------------------------------------------------ */
footer.site-footer { background: var(--gs-black); color: #fff; }

footer.site-footer .col-full {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 30px;
	max-width: calc(var(--gs-width) + 40px);
	padding-top: 60px;
	padding-bottom: 50px;
}

footer.site-footer .widget { margin: 0; }

footer.site-footer .widget-title {
	display: block;
	color: #fff;
	font-family: var(--gs-font);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .4px;
	margin: 0 0 20px;
}

footer.site-footer .textwidget p { margin: 0 0 14px; font-size: 15px; line-height: 1.7; }

footer.site-footer a { color: #fff; }

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

footer.site-footer .gs-payments { width: 300px; height: auto; }

/* ------------------------------------------------------------------
   Mobile drawer menu
------------------------------------------------------------------ */
.gs-mobile-drawer {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 210;
	width: 330px;
	max-width: 88vw;
	height: 100%;
	background: #000;
	color: #fff;
	transform: translateX(-100%);
	transition: transform .3s ease;
	overflow-y: auto;
}

.gs-mobile-drawer.is-open { transform: translateX(0); }

.gs-mobile-drawer[hidden] { display: none; }

.gs-mobile-drawer ul { margin: 0; padding: 0; list-style: none; }

.gs-mobile-drawer li { border-bottom: 1px solid #1d1d1d; }

.gs-mobile-drawer a.gs-drawer-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 20px;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .3px;
	text-transform: uppercase;
}

.gs-mobile-drawer a.gs-drawer-link:not(.gs-drawer-toggle) { text-transform: none; font-weight: 500; }

.gs-mobile-drawer .gs-drawer-toggle svg { width: 12px; height: 12px; transition: transform .2s ease; }

.gs-mobile-drawer .gs-drawer-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

.gs-mobile-drawer ul.gs-submenu { display: none; padding-left: 16px; }

.gs-mobile-drawer ul.gs-submenu.is-open { display: block; }

.gs-drawer-overlay {
	position: fixed;
	inset: 0;
	z-index: 205;
	background: rgba(0, 0, 0, .45);
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s ease;
}

.gs-drawer-overlay.is-visible { opacity: 1; pointer-events: auto; }

/* Mobile filter drawer */
.gs-filter-drawer {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 210;
	background: #fff;
	padding: 20px;
	transform: translateY(100%);
	transition: transform .3s ease;
	max-height: 70vh;
	overflow-y: auto;
}

.gs-filter-drawer.is-open { transform: translateY(0); }

.gs-filter-drawer[hidden] { display: none; }

/* ------------------------------------------------------------------
   Responsive
------------------------------------------------------------------ */
@media (max-width: 989px) {
	.gs-hero--desktop { display: none; }
	.gs-hero--mobile { display: block; }
	.gs-desktop-only { display: none !important; }
	.gs-mobile-only { display: block !important; }
}

@media (max-width: 768px) {
	/* Header */
	.menu-toggle { display: flex; }

	.mobile-search-toggle { display: inline-flex; }

	.site-search {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 45;
		background: #000;
		padding: 12px 16px;
	}

	.m-search-toggled .site-search { display: block; }

	.main-header { min-height: 58px; padding-top: 4px; padding-bottom: 4px; gap: 12px; }

	.site-branding { flex: 1; justify-content: center; }

	.site-branding .custom-logo-link img { height: 30px; }

	/* Nav row hidden; cart moves into logo row via flex order */
	.col-full-nav { display: none; }

	.site-header { position: sticky; top: 0; }

	.mobile-cart-toggle {
		display: inline-flex;
		align-items: center;
		color: #fff;
		padding: 6px;
		position: relative;
	}

	.mobile-cart-toggle .count {
		position: absolute;
		top: -2px;
		right: -6px;
		min-width: 16px;
		height: 16px;
		background: #fff;
		color: #000;
		border-radius: 50%;
		font-size: 10px;
		font-weight: 700;
		line-height: 16px;
		text-align: center;
	}

	/* Cards */
	ul.products,
	ul.products.columns-3 { grid-template-columns: repeat(2, 1fr); column-gap: 14px; row-gap: 30px; }

	.woocommerce-card__header .button.product_type_variable,
	.woocommerce-card__header .button.product_type_simple { display: block; }

	/* Shop layout: single column, sidebar into drawer */
	#primary.content-area { float: none; width: 100%; }

	.gs-shop-sidebar {
		display: none;
		float: none;
		width: 100%;
		padding: 0;
	}

	.gs-shop-sidebar.is-open { display: block; }

	.mobile-filter { display: inline-flex; }

	.shoptimizer-sorting { justify-content: space-between; }

	.shoptimizer-sorting .woocommerce-result-count { order: 0; }

	.woocommerce-pagination { order: 2; }

	.woocommerce-pagination a.page-numbers,
	.woocommerce-pagination span.page-numbers {
		width: 44px;
		height: 44px;
		line-height: 42px;
		padding: 0;
		text-align: center;
		border: 1px solid var(--gs-border);
	}

	/* Single product */
	.product-details-wrapper { flex-direction: column; gap: 24px; padding: 10px 0 30px; }

	.gs-single-product .gs-gallery { width: 100%; }

	.single-product .product_title { font-size: 26px; }

	.related.products ul.products { grid-template-columns: 1fr; }

	/* Front page */
	.gs-section-title { font-size: 28px; }

	.gs-banner { padding: 22px 0; }

	.gs-banner__grid { grid-template-columns: 1fr; gap: 18px; }

	.gs-banner__panel { text-align: center; padding: 10px 6px; }

	.gs-btn--solid { padding: 14px 30px; }

	/* Footer */
	footer.site-footer .col-full { grid-template-columns: 1fr; gap: 8px; padding-top: 40px; padding-bottom: 36px; }

	footer.site-footer .widget { margin-bottom: 18px; }
}

/* Layout safety on mid screens */
@media (max-width: 1024px) and (min-width: 769px) {
	ul.products { grid-template-columns: repeat(4, 1fr); }
}

@media (min-width: 989px) {
	.gs-mcarousel { display: none; }
}
/* dcshoez: cart icon visible in desktop nav */
.shoptimizer-cart a.cart-contents .gs-cart-icon {
	width: 18px;
	height: 18px;
	margin-right: 8px;
	color: #fff;
	flex-shrink: 0;
}
.shoptimizer-cart a.cart-contents .count {
	margin-left: 8px;
}

/* dcshoez: hero carousel slides never appear blank while images load.
   We also keep autoplay OFF so the carousel cannot land on an unloaded slide. */
.gs-carousel__slide { background: #f6f6f6; }/* dcshoez: cart icon visible in desktop nav */
.shoptimizer-cart a.cart-contents .gs-cart-icon {
	width: 18px;
	height: 18px;
	margin-right: 8px;
	color: #fff;
	flex-shrink: 0;
}
.shoptimizer-cart a.cart-contents .count {
	margin-left: 8px;
}

/* dcshoez: hero carousel slides never appear blank while images load.
   We also keep autoplay OFF so the carousel cannot land on an unloaded slide. */
.gs-carousel__slide { background: #f6f6f6; }

/* dcshoez: attribute-name selected-value after picking a swatch */
.woocommerce-product-attributes-item__label .gs-selected,
.product form.variations_form table.variations th.label .gs-selected {
	color: var(--gs-dark, #131315);
	font-weight: 500;
	margin-left: 2px;
}
.product form.variations_form table.variations th.label {
	vertical-align: middle;
	width: 80px;
	padding: 10px 8px 10px 0;
	text-align: left;
}

/* dcshoez: mini-cart buttons (View cart / Checkout) styled as buttons */
.woocommerce-mini-cart__buttons {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 12px;
}
.woocommerce-mini-cart__buttons a.button,
.woocommerce-mini-cart__buttons a.wc-forward,
.woocommerce-mini-cart .widget_shopping_cart_content .buttons a {
	display: block;
	width: 100%;
	padding: 12px 16px;
	background: #131315;
	color: #fff;
	text-align: center;
	font-weight: 600;
	border-radius: 3px;
	text-decoration: none;
	transition: opacity .2s ease;
}
.woocommerce-mini-cart__buttons a.button:hover,
.woocommerce-mini-cart__buttons a.wc-forward:hover {
	opacity: .85;
	color: #fff;
}
.woocommerce-mini-cart__buttons a.checkout,
.woocommerce-mini-cart .widget_shopping_cart_content .buttons a.checkout {
	background: #fff;
	color: #131315;
	border: 1px solid #131315;
}
.woocommerce-mini-cart__buttons a.checkout:hover {
	background: #131315;
	color: #fff;
}
.woocommerce-mini-cart__buttons a::before { content: ""; }/* dcshoez: scope the shop-only sidebar/primary split to the shop page.
   The original CSS applied #primary=78% / .gs-shop-sidebar=22% globally, which
   pushed the product detail page's content into the right 78% and left an
   empty 22% strip on the left. */
#primary.content-area { float: none; width: 100%; }
.gs-shop-sidebar { display: none; }

/* On the actual shop page we still want the 78/22 split. */
@media (min-width: 990px) {
	.post-type-archive-product #primary.content-area,
	.tax-product_cat #primary.content-area {
		float: right;
		width: 78%;
	}
	.post-type-archive-product .gs-shop-sidebar,
	.tax-product_cat .gs-shop-sidebar {
		display: block;
		float: left;
		width: 22%;
		padding: 12px 30px 40px 0;
	}
}
}/* dcshoez: mobile filter sidebar as a fixed drawer (left slide-in).
   Desktop keeps the 22% column layout (overridden below by .post-type-archive-product rule).
   Below 989px, sidebar becomes off-screen by default and slides in when .is-open. */
.gs-shop-sidebar {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	width: 88%;
	max-width: 360px;
	z-index: 215;
	background: #fff;
	padding: 56px 24px 24px;
	overflow-y: auto;
	transform: translateX(-100%);
	transition: transform .3s ease;
	box-shadow: 0 0 24px rgba(0, 0, 0, .12);
}
.gs-shop-sidebar.is-open {
	transform: translateX(0);
}
.gs-sidebar-close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	cursor: pointer;
	color: var(--gs-dark, #131);
}
.gs-sidebar-close:hover { opacity: .7; }

/* full-screen overlay behind the drawer */
.gs-filter-overlay {
	position: fixed;
	inset: 0;
	z-index: 214;
	background: rgba(0, 0, 0, .45);
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s ease;
	border: 0;
	padding: 0;
}
.gs-filter-overlay.is-visible {
	opacity: 1;
	pointer-events: auto;
}
.gs-filter-overlay[hidden] { display: none; }

body.gs-filters-open { overflow: hidden; }

/* Restore desktop layout (sidebar as a normal column, no drawer) */
@media (min-width: 990px) {
	.gs-shop-sidebar {
		position: static;
		width: 22%;
		max-width: none;
		transform: none;
		padding: 12px 30px 40px 0;
		float: left;
		box-shadow: none;
		overflow: visible;
	}
	.gs-shop-sidebar.is-open { transform: none; }
	.gs-sidebar-close { display: none; }
	.gs-filter-overlay { display: none !important; }
	body.gs-filters-open { overflow: visible; }
}
.product form.cart .quantity.dcshoez-qty input.qty {
	border: 0;
	padding: 0 8px;
	width: 56px;
	min-width: 56px;
	height: 46px;
	text-align: center;
	font-weight: 700;
	font-size: 15px;
	color: var(--gs-dark, #131);
	appearance: textfield;
	-moz-appearance: textfield;
}
.product form.cart .quantity.dcshoez-qty input.qty::-webkit-outer-spin-button,
.product form.cart .quantity.dcshoez-qty input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.dcshoez-qty__btn {
	width: 38px;
	height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	color: var(--gs-dark, #131);
	cursor: pointer;
	padding: 0;
}
.dcshoez-qty__btn:hover { background: #f3f3f3; }
.dcshoez-qty__btn:disabled { opacity: .35; cursor: not-allowed; }
.dcshoez-qty__btn svg { width: 14px; height: 14px; }

/* dcshoez: mobile related products as a single-row horizontal scroller */
@media (max-width: 768px) {
	.single-product .related.products > ul.products {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: 12px;
		padding: 4px 20px 18px;
		margin: 0 -20px;
	}
	.single-product .related.products > ul.products > li.product {
		flex: 0 0 70%;
		max-width: 70%;
		scroll-snap-align: start;
		width: auto;
		margin: 0;
		float: none;
	}
	.single-product .related.products > ul.products::before,
	.single-product .related.products > ul.products::after {
		content: none;
	}
	/* the column-float Storefront reset for the horizontal scroller */
	.single-product .related.products > ul.products > li.product.first,
	.single-product .related.products > ul.products > li.product.last {
		clear: none;
	}
}/* dcshoez: quantity +/- buttons */
.product form.cart .quantity.dcshoez-qty {
	display: inline-flex !important;
	align-items: stretch;
	border: 1px solid var(--gs-border, #d9d9d9);
	border-radius: 3px;
	overflow: hidden;
	background: #fff;
}
.product form.cart .quantity.dcshoez-qty input.qty {
	border: 0 !important;
	padding: 0 8px;
	width: 56px;
	min-width: 56px;
	height: 46px;
	text-align: center;
	font-weight: 700;
	font-size: 15px;
	color: var(--gs-dark, #131);
	appearance: textfield;
	-moz-appearance: textfield;
}
.product form.cart .quantity.dcshoez-qty input.qty::-webkit-outer-spin-button,
.product form.cart .quantity.dcshoez-qty input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.dcshoez-qty__btn {
	width: 38px;
	height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	color: var(--gs-dark, #131);
	cursor: pointer;
	padding: 0;
}
.dcshoez-qty__btn:hover { background: #f3f3f3; }
.dcshoez-qty__btn:disabled { opacity: .35; cursor: not-allowed; }
.dcshoez-qty__btn svg { width: 14px; height: 14; }

/* dcshoez: mobile related products as a single-row horizontal scroller */
@media (max-width: 768px) {
	.single-product .related.products > ul.products,
	.single-product .related.products > ul.products.columns-1,
	.single-product .related.products > ul.products.columns-2,
	.single-product .related.products > ul.products.columns-3,
	.single-product .related.products > ul.products.columns-4 {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: 12px;
		padding: 4px 20px 18px;
		margin: 0 -20px;
		grid-template-columns: none !important;
	}
	.single-product .related.products > ul.products > li.product {
		flex: 0 0 70% !important;
		max-width: 70% !important;
		width: 70% !important;
		scroll-snap-align: start;
		margin: 0 !important;
		float: none !important;
	}
	.single-product .related.products > ul.products::before,
	.single-product .related.products > ul.products::after {
		content: none !important;
	}
	.single-product .related.products > ul.products > li.product.first,
	.single-product .related.products > ul.products > li.product.last {
		clear: none !important;
	}
}/* dcshoez: quantity +/- buttons */
.product form.cart .quantity.dcshoez-qty {
	display: inline-flex !important;
	align-items: stretch;
	border: 1px solid var(--gs-border, #d9d9d9);
	border-radius: 3px;
	overflow: hidden;
	background: #fff;
}
.product form.cart .quantity.dcshoez-qty input.qty {
	border: 0 !important;
	padding: 0 8px;
	width: 56px;
	min-width: 56px;
	height: 46px;
	text-align: center;
	font-weight: 700;
	font-size: 15px;
	color: var(--gs-dark, #131);
	appearance: textfield;
	-moz-appearance: textfield;
}
.product form.cart .quantity.dcshoez-qty input.qty::-webkit-outer-spin-button,
.product form.cart .quantity.dcshoez-qty input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.dcshoez-qty__btn {
	width: 38px;
	height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	color: var(--gs-dark, #131);
	cursor: pointer;
	padding: 0;
}
.dcshoez-qty__btn:hover { background: #f3f3f3; }
.dcshoez-qty__btn:disabled { opacity: .35; cursor: not-allowed; }
.dcshoez-qty__btn svg { width: 14px; height: 14; }

/* dcshoez: mobile related products as a single-row horizontal scroller */
@media (max-width: 768px) {
	.single-product .related.products > ul.products,
	.single-product .related.products > ul.products.columns-1,
	.single-product .related.products > ul.products.columns-2,
	.single-product .related.products > ul.products.columns-3,
	.single-product .related.products > ul.products.columns-4 {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: 12px;
		padding: 4px 20px 18px;
		margin: 0 -20px;
		grid-template-columns: none !important;
	}
	.single-product .related.products > ul.products > li.product {
		flex: 0 0 70% !important;
		max-width: 70% !important;
		width: 70% !important;
		scroll-snap-align: start;
		margin: 0 !important;
		float: none !important;
	}
	.single-product .related.products > ul.products::before,
	.single-product .related.products > ul.products::after {
		content: none !important;
	}
	.single-product .related.products > ul.products > li.product.first,
	.single-product .related.products > ul.products > li.product.last {
		clear: none !important;
	}
}/* dcshoez: shop page should be full-width on mobile (was 78%/22% globally) */
@media (min-width: 990px) {
	.post-type-archive-product #primary.content-area,
	.tax-product_cat #primary.content-area {
		float: right;
		width: 78%;
	}
	.post-type-archive-product .gs-shop-sidebar,
	.tax-product_cat .gs-shop-sidebar {
		display: block;
		float: left;
		width: 22%;
		padding: 12px 30px 40px 0;
	}
}

/* dcshoez: mobile filter drawer — give the close button space + breathing room */
@media (max-width: 989px) {
	.gs-shop-sidebar {
		padding: 72px 22px 28px;
	}
	.gs-sidebar-close {
		top: 18px;
		right: 16px;
		width: 36px;
		height: 36px;
	}
	/* Make the price filter stack so the Filter button is its own row */
	.gs-filter-widget .gs-price-fields {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}
	.gs-filter-widget .gs-filter-button {
		width: 100%;
		padding: 12px 14px;
		font-size: 14px;
	}
	.gs-filter-widget .gs-price-range {
		display: flex;
		align-items: center;
		gap: 6px;
		font-size: 14px;
		color: var(--gs-dark, #131);
	}
	.gs-filter-widget .gs-price-range input {
		flex: 1;
		width: auto;
		padding: 10px 10px;
		font-size: 14px;
	}
	.gs-filter-widget {
		margin-bottom: 26px;
	}
	.gs-filter-title {
		font-size: 14px;
		margin-bottom: 14px;
		letter-spacing: .5px;
	}
	.gs-top-rated-list li {
		padding: 12px 0;
	}
	.gs-top-rated-list li a {
		gap: 12px;
	}
	.gs-top-rated-list img {
		width: 50px;
		height: 50px;
	}
	.gs-tr-title {
		font-size: 14px;
	}
	.gs-top-rated-list .price {
		font-size: 13px;
		margin-top: 4px;
	}
}/* dcshoez: mobile sticky fix — disable site-header sticky on small screens so
   it doesn't overlap the announcement bar / nav row. */
@media (max-width: 768px) {
	header.site-header {
		position: -webkit-sticky;
		position: sticky;
		top: var(--gs-topbar-h, 40px);
		z-index: 55;
		-webkit-transform: translateZ(0);
		transform: translateZ(0);
		background: var(--gs-black, #131315);
	}
	.col-full-nav {
		position: static !important;
		top: auto !important;
	}
}

/* dcshoez: breathing room between page content and the black footer. */
.site-content {
	padding-bottom: 60px;
}
footer.site-footer {
	margin-top: 40px;
}

/* dcshoez: third-level category caret — put the arrow on the right of the
   item text instead of below it. The sub-menu link is display:block, which
   was pushing the inline-block caret to the next line. Anchor it instead. */
.main-navigation ul.menu ul li.menu-item-has-children {
	position: relative;
	padding-right: 18px;
}
.main-navigation ul.menu ul li.menu-item-has-children > .caret {
	position: absolute;
	right: 4px;
	top: 50%;
	margin: 0;
	transform: translateY(-50%);
}

/* dcshoez: bullet-proof sticky header — vendor prefix + stacking context to
   survive iOS Safari quirks (overflow ancestors, transforms, etc.). */
.topbar-wrapper,
.col-full-nav {
	position: -webkit-sticky;
}
.topbar-wrapper {
	position: sticky;
	top: 0;
	z-index: 60;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
}
.col-full-nav {
	top: var(--gs-topbar-h);
	z-index: 50;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
}

/* JS-fallback: when sticky fails, JS adds this class to switch to fixed. */
.topbar-wrapper.gs-stuck,
.col-full-nav.gs-stuck {
	position: fixed;
	left: 0;
	right: 0;
}
.topbar-wrapper.gs-stuck {
	top: 0;
	z-index: 60;
}
.col-full-nav.gs-stuck {
	top: var(--gs-topbar-h, 40px);
	z-index: 50;
}

/* When JS-fixed header is active, push content down to avoid overlap. */
body.gs-header-stuck {
	padding-top: calc(var(--gs-topbar-h, 40px));
}
body.gs-header-stuck.nav-on {
	padding-top: calc(var(--gs-topbar-h, 40px) + var(--gs-nav-h, 58px));
}
/* dcshoez: caret — replace the SVG-stroke chevron with a clean filled CSS triangle */
span.caret {
	display: inline-block;
	position: static !important;
	width: 0 !important;
	height: 0 !important;
	margin: 0 0 0 6px !important;
	background: none !important;
	vertical-align: middle;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
	color: #fff;
	align-self: center;
	transform: none;
}

/* dcshoez: keep the category nav bar visible on mobile as a horizontally
   scrollable strip pinned under the announcement bar (was display:none). */
@media (max-width: 768px) {
	.col-full-nav {
		display: block !important;
		position: -webkit-sticky;
		position: sticky;
		top: var(--gs-topbar-h, 40px);
		z-index: 50;
	}
	.col-full-nav .shoptimizer-primary-navigation {
		padding: 0 12px;
	}
	.col-full-nav ul#menu-menu {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		gap: 0;
		padding: 0;
		margin: 0;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.col-full-nav ul#menu-menu::-webkit-scrollbar { display: none; }
	.col-full-nav ul#menu-menu > li {
		flex: 0 0 auto;
		position: relative;
	}
	.col-full-nav ul#menu-menu > li > a.cg-menu-link {
		padding: 0 12px;
		font-size: 12px;
		line-height: 1;
		white-space: nowrap;
	}
	/* Dropdown: tap-to-expand panel (positioned beneath the nav bar). */
	.col-full-nav ul#menu-menu > li.menu-item-has-children > .sub-menu-wrapper {
		position: absolute;
		top: 100%;
		left: 0;
		right: auto;
		min-width: 200px;
		max-height: 70vh;
		overflow-y: auto;
		visibility: hidden;
		opacity: 0;
		transform: scale(.98);
		transition: all .15s ease-in-out;
	}
	.col-full-nav ul#menu-menu > li.menu-item-has-children.is-open > .sub-menu-wrapper {
		visibility: visible;
		opacity: 1;
		transform: scale(1);
	}
	/* On mobile, the third-level panel is pushed below the second-level row. */
	.col-full-nav ul.sub-menu li.menu-item-has-children > .sub-menu-wrapper {
		position: static !important;
		min-width: 0;
		max-height: none;
		padding-left: 16px;
	}
	/* Push content down to make room for the now-visible nav row. */
	body.gs-header-stuck.nav-on {
		padding-top: calc(var(--gs-topbar-h, 40px) + var(--gs-nav-h, 44px));
	}
}/* dcshoez: hamburger button — make it visually prominent and pin to the
   leftmost position with clear padding. Logo sits in the middle. */
@media (max-width: 768px) {
	.menu-toggle.gs-hamburger {
		order: -1;
		flex: 0 0 auto;
		width: 36px;
		height: 36px;
		margin: 0 8px 0 4px;
		padding: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		color: #fff;
		background: rgba(255, 255, 255, .08);
		border: 1px solid rgba(255, 255, 255, .15);
		border-radius: 6px;
	}
	.menu-toggle.gs-hamburger svg {
		width: 20px;
		height: 20px;
	}
	.site-branding {
		flex: 1;
		justify-content: center;
	}
	.site-branding .custom-logo-link img {
		max-height: 30px;
		width: auto;
	}
}/* dcshoez: contact-us form beautification — Elementor Pro form widget in the
   source page does not wrap its inputs in <form class=elementor-form>, so we
   target the elements directly without requiring the wrapper. */
.elementor-field-label,
form .elementor-field-label,
.elementor-field-label {
	display: block;
	font-weight: 600;
	color: var(--gs-dark, #131315);
	margin: 0 0 6px;
	font-size: 14px;
}
input.elementor-field,
textarea.elementor-field,
select.elementor-field,
.elementor-field,
.elementor-field-group input,
.elementor-field-group textarea,
input[name="form_fields[name]"],
input[name="form_fields[email]"],
input[name="form_fields[subject]"],
textarea[name="form_fields[message]"] {
	width: 100%;
	max-width: 600px;
	padding: 12px 14px;
	border: 1px solid #d9d9d9;
	border-radius: 4px;
	background: #fff;
	color: var(--gs-dark, #131315);
	font-size: 15px;
	line-height: 1.5;
	box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease;
}
input.elementor-field:focus,
textarea.elementor-field:focus,
input[name="form_fields[name]"]:focus,
input[name="form_fields[email]"]:focus,
textarea[name="form_fields[message]"]:focus {
	border-color: var(--gs-black, #131315);
	outline: none;
	box-shadow: 0 0 0 3px rgba(19, 19, 21, .1);
}
.elementor-field-group, .elementor-form-row,
.elementor-field-type-text,
.elementor-field-type-email,
.elementor-field-type-textarea,
.elementor-form .elementor-column {
	margin-bottom: 18px;
}
.elementor-button, button.elementor-button,
button[type="submit"],
input[type="submit"] {
	background: var(--gs-black, #131315);
	color: #fff;
	padding: 14px 32px;
	border: 0;
	border-radius: 4px;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	transition: opacity .2s ease;
}
.elementor-button:hover,
button[type="submit"]:hover {
	opacity: .85;
}
.elementor-message {
	margin-top: 8px;
	font-weight: 600;
}/* dcshoez: hide the default WordPress Meta widget everywhere it appears
   alongside content (Log in / Entries feed / Comments feed / WordPress.org). */
.widget_meta {
	display: none !important;
}
/* dcshoez: JS-fallback for the mobile sticky header — when position:sticky
   fails on iOS, JS adds .gs-stuck and switches to fixed under the topbar. */
@media (max-width: 768px) {
	header.site-header.gs-stuck {
		position: fixed;
		left: 0;
		right: 0;
		top: var(--gs-topbar-h, 40px);
		z-index: 55;
	}
}
/* When the JS-fixed header is active on mobile, offset for topbar + header. */
body.gs-header-stuck.hd-on {
	padding-top: calc(var(--gs-topbar-h, 40px) + var(--gs-header-h, 58px));
}

/* dcshoez: contact form — feedback line under the Send button, and keep the
   button compact regardless of the widget's stretch setting. */
.gs-form-msg {
	margin-top: 10px;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.5;
}
.elementor-field-type-submit .elementor-button {
	width: auto;
	min-width: 0;
	min-height: 0;
	line-height: 1.4;
}

/* dcshoez: mobile drawer submenu toggles — the <button> was inheriting UA
   chrome (light gray box + outset border). Reset it: transparent button,
   white chevron (the svg strokes currentColor). */
.gs-mobile-drawer .gs-drawer-toggle {
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	border: 0;
	color: #fff;
	padding: 4px 6px;
	line-height: 1;
	border-radius: 4px;
	flex: 0 0 auto;
	cursor: pointer;
}
.gs-mobile-drawer .gs-drawer-toggle:hover,
.gs-mobile-drawer .gs-drawer-toggle[aria-expanded="true"] {
	background: rgba(255, 255, 255, .14);
}
.gs-mobile-drawer .gs-drawer-toggle svg {
	display: block;
}

/* dcshoez: mobile nav strip — the desktop cart nav (icon + $0.00 price)
   sits after the ~800px menu row and expands the page to ~950px wide,
   forcing mobile browsers to zoom out. The header bar already has its own
   cart icon on small screens, so drop it from the strip and clip overflow. */
@media (max-width: 768px) {
	.col-full-nav .site-header-cart,
	.col-full-nav .s-observer {
		display: none !important;
	}
	.shoptimizer-primary-navigation {
		overflow: hidden;
	}
}

/* dcshoez R14: mobile cart icon — the svg had no intrinsic dimensions and
   collapsed to 0px inside the flex header row, so only the count badge was
   visible. Give it the same size as the search icon. */
.mobile-cart-toggle svg {
	width: 22px;
	height: 22px;
	display: block;
}

/* dcshoez R14: drop the horizontal category strip on small screens entirely
   (the hamburger drawer is the navigation on mobile). This overrides the
   earlier "scrollable strip" block for .col-full-nav. */
@media (max-width: 768px) {
	.col-full-nav {
		display: none !important;
	}
}

/* dcshoez R15: desktop dropdown carets belong at the RIGHT of the item text.
   The global span.caret rule (clean triangle) sets position:static !important,
   which outranked the earlier absolute-position rule and dropped the carets
   below the (display:block) link text. Re-assert absolute with !important,
   desktop only — on mobile the nav is hidden and the drawer uses its own
   toggle buttons, so nothing changes there. */
@media (min-width: 769px) {
	.main-navigation ul.menu ul li.menu-item-has-children {
		position: relative;
		padding-right: 20px;
	}
	.main-navigation ul.menu ul li.menu-item-has-children > .caret {
		position: absolute !important;
		top: 50%;
		right: 6px;
		margin: 0 !important;
		transform: translateY(-50%) !important;
	}
}

/* dcshoez R15: variation attribute label on ONE line ("Color : Black-Pink
   (Bbp)" used to wrap into three lines). Flex row: label line nowrap, then
   the swatch row below. */
.product form.variations_form table.variations tr {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: 12px;
}
.product form.variations_form table.variations th.label {
	flex: 0 0 auto;
	white-space: nowrap;
	padding: 0;
	margin-bottom: 10px;
}
.product form.variations_form table.variations td.value {
	flex: 1 1 100%;
	min-width: 0;
}

/* dcshoez R16: kill horizontal page pan on small screens.
   Three offenders + one safety net:
   1) .screen-reader-text spans (1x1, position:absolute) were landing at their
      in-flow spot past the viewport edge (e.g. x=585 inside the related
      products carousel) and widening <html> to ~590px. Park them properly
      off-screen (same as WP core does).
   2) product grid columns: 1fr = minmax(auto,1fr) let the swatch-row
      min-content (~192px) force oversized columns on 375px screens.
   3) pagination row did not wrap (428px wide on shop page). */
.screen-reader-text {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	overflow: hidden;
}
@media (max-width: 768px) {
	ul.products,
	ul.products.columns-2,
	ul.products.columns-3,
	ul.products.columns-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	ul.products li.product {
		min-width: 0;
		max-width: 100%;
	}
	.gs-archive-variations-wrapper {
		overflow: hidden;
	}
	.woocommerce-pagination ul.page-numbers {
		flex-wrap: wrap;
		justify-content: center;
	}
	.woocommerce-pagination .page-numbers li {
		margin-bottom: 6px;
	}
}
/* Safety net: clip document-level horizontal overflow WITHOUT creating a
   scroll container (keeps position:sticky working; older Safari just
   ignores the unknown value and falls back to the surgical fixes above). */
body {
	overflow-x: clip;
}

/* dcshoez R16b: the clipped "+N More" badge looks broken next to the
   card-edge swatch clip on small screens — drop it there (the card links
   to the product where every option is available). */
@media (max-width: 768px) {
	.gs-archive-variations-wrapper .gs-swatch-more {
		display: none;
	}
}
