/* ==========================================================================
   Glowshop — Storefront child theme
   ========================================================================== */

/* Fonts */
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/inter-regular.woff2') format('woff2');
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/inter-medium.woff2') format('woff2');
}
@font-face {
	font-family: 'Oswald';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/oswald-regular.woff2') format('woff2');
}
@font-face {
	font-family: 'Oswald';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/oswald-bold.woff2') format('woff2');
}

/* Tokens */
:root {
	--gs-text: #341f09;
	--gs-text-rgb: 52 31 9;
	--gs-accent-hover: #754614;
	--gs-bg: #ffffff;
	--gs-surface: #f7f3ed;
	--gs-cream: #f5e9dd;
	--gs-utilities: #121212;
	--gs-border: rgb(var(--gs-text-rgb) / 0.07);
	--gs-font-body: 'Inter', sans-serif;
	--gs-font-heading: 'Oswald', sans-serif;

	--gs-page-max: 1500px;
	--gs-margin: max(40px, calc((100vw - var(--gs-page-max)) / 2));
	--gs-header-h: 92px;
	--gs-header-h-mobile: 56px;

	--gs-fs-paragraph: 0.875rem;
	--gs-fs-h1: clamp(2.75rem, 4.8vw, 3rem);
	--gs-fs-h2: 2.5rem;
	--gs-fs-h3: 2rem;
	--gs-fs-h4: 1.5rem;
	--gs-fs-h5: 1.125rem;
	--gs-fs-h6: 1rem;
	--gs-fs-xs: 0.8125rem;

	--gs-lh-heading: 1.25;
	--gs-lh-body: 1.4;

	--gs-icon-stroke: 1.4;
	--gs-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--gs-font-body);
	font-size: var(--gs-fs-paragraph);
	line-height: var(--gs-lh-body);
	color: var(--gs-text);
	background: var(--gs-bg);
	overflow-x: hidden;
}
body.gs-no-scroll { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, h5, h6 {
	font-family: var(--gs-font-heading);
	font-weight: 700;
	line-height: var(--gs-lh-heading);
	letter-spacing: 0;
	color: var(--gs-text);
	margin: 0 0 0.6em;
}
h1, .gs-h1 { font-size: var(--gs-fs-h1); }
h2, .gs-h2 { font-size: var(--gs-fs-h2); }
h3, .gs-h3 { font-size: var(--gs-fs-h3); }
h4, .gs-h4 { font-size: var(--gs-fs-h4); }
h5, .gs-h5 { font-size: var(--gs-fs-h5); }
h6, .gs-h6 { font-size: var(--gs-fs-h6); }
p { margin: 0 0 1em; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; }
table { border-collapse: collapse; }

.screen-reader-text,
.visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 8px; top: 8px; background: #fff; padding: 8px 12px; z-index: 999; }

.gs-icon { width: 20px; height: 20px; display: block; fill: none; }
.gs-icon--sm { width: 16px; height: 16px; }

/* Page padding rail */
.gs-page-pad {
	padding-inline: var(--gs-margin);
	max-width: calc(var(--gs-page-max) + 2 * var(--gs-margin));
	margin-inline: auto;
	width: 100%;
}

/* Buttons — square corners, brown palette */
.gs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-radius: 0;
	border: 1px solid transparent;
	font-size: var(--gs-fs-paragraph);
	font-weight: 400;
	line-height: 1;
	padding: 17px 26px;
	text-align: center;
	transition: background-color 0.2s var(--gs-ease), border-color 0.2s var(--gs-ease), color 0.2s var(--gs-ease);
	cursor: pointer;
}
.gs-btn--primary {
	background: var(--gs-text);
	color: #fff;
	border-color: var(--gs-text);
}
.gs-btn--primary:hover {
	background: var(--gs-accent-hover);
	border-color: var(--gs-accent-hover);
	color: #fff;
}
.gs-btn--secondary {
	background: var(--gs-bg);
	color: var(--gs-text);
	border-color: var(--gs-text);
}
.gs-btn--secondary:hover {
	background: #f2f2f2;
	border-color: var(--gs-accent-hover);
	color: var(--gs-text);
}

/* ==========================================================================
   Header
   ========================================================================== */
.gs-header-wrap {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--gs-bg);
}
.gs-announce {
	background: var(--gs-text);
	color: #fff;
	text-align: center;
	padding: 9px 16px;
}
.gs-announce-text { font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.02em; }

.gs-header { background: var(--gs-bg); position: relative; }
.gs-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	height: var(--gs-header-h);
}
.gs-header__left { display: flex; align-items: center; gap: 18px; }
.gs-header__nav { display: flex; justify-content: center; }
.gs-header__menu { display: flex; align-items: center; gap: 20px; }
.gs-header__menu-item a {
	font-size: var(--gs-fs-paragraph);
	line-height: 1;
	padding: 6px 0;
	border-bottom: 1px solid transparent;
	transition: border-color 0.15s var(--gs-ease);
}
.gs-header__menu-item a:hover { border-color: rgb(var(--gs-text-rgb) / 0.4); }
.gs-header__menu-item.is-active a { border-color: currentColor; }

.gs-header__logo img { width: 93px; height: 70px; object-fit: contain; }
.gs-header__logo--mobile { display: none; }
.gs-header__logo--desk { display: block; }

.gs-header__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 20px;
}
.gs-header__icon {
	background: none;
	border: 0;
	padding: 0;
	color: var(--gs-text);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	line-height: 0;
	transition: opacity 0.15s var(--gs-ease);
}
.gs-header__icon:hover { opacity: 0.7; }
.gs-header__icon--menu,
.gs-header__icon--search-mobile { display: none; }

.gs-header__icon--cart .gs-cart-count {
	position: absolute;
	right: -7px;
	bottom: -5px;
	min-width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--gs-text);
	color: #fff;
	font-size: 0.625rem;
	font-weight: 500;
	line-height: 16px;
	text-align: center;
	padding: 0 4px;
}

/* Search panel */
.gs-search-panel {
	position: absolute;
	inset-inline: 0;
	top: 100%;
	background: var(--gs-bg);
	border-top: 1px solid var(--gs-border);
	box-shadow: 0 18px 30px rgb(0 0 0 / 0.08);
}
.gs-search-panel__inner {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-block: 22px;
}
.gs-search-form {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1;
	border-bottom: 1px solid var(--gs-text);
	padding-bottom: 8px;
}
.gs-search-form .gs-icon { flex-shrink: 0; }
.gs-search-input {
	flex: 1;
	border: 0;
	outline: none;
	background: transparent;
	font-size: 1rem;
	color: var(--gs-text);
}
.gs-search-submit {
	border: 0;
	background: none;
	color: var(--gs-text);
	font-size: var(--gs-fs-paragraph);
	padding: 0;
}
.gs-search-close { background: none; border: 0; color: var(--gs-text); padding: 4px; }

/* Drawers */
.gs-drawer { position: fixed; inset: 0; z-index: 200; }
.gs-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgb(0 0 0 / 0.45);
	opacity: 0;
	transition: opacity 0.3s var(--gs-ease);
}
.gs-drawer__panel {
	position: absolute;
	top: 0;
	bottom: 0;
	background: var(--gs-bg);
	display: flex;
	flex-direction: column;
	transition: transform 0.35s var(--gs-ease);
	box-shadow: 0 0 30px rgb(0 0 0 / 0.18);
}
.gs-drawer--cart .gs-drawer__panel,
.gs-drawer--filters .gs-drawer__panel { right: 0; width: min(420px, 92vw); transform: translateX(100%); }
.gs-drawer--mobile .gs-drawer__panel { left: 0; width: min(360px, 88vw); transform: translateX(-100%); }
.gs-drawer.is-open .gs-drawer__backdrop { opacity: 1; }
.gs-drawer.is-open .gs-drawer__panel { transform: translateX(0); }
.gs-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid var(--gs-border);
}
.gs-drawer__title { font-family: var(--gs-font-heading); font-weight: 700; font-size: 1.25rem; }
.gs-drawer__close { background: none; border: 0; color: var(--gs-text); padding: 4px; }
.gs-drawer__body { flex: 1; overflow-y: auto; padding: 20px 24px; }
.gs-drawer__foot { padding: 16px 24px; border-top: 1px solid var(--gs-border); }

/* Cart drawer content (WooCommerce mini-cart overrides) */
.gs-drawer--cart .woocommerce-mini-cart { position: static; }
.gs-drawer--cart .widget_shopping_cart_content { display: flex; flex-direction: column; height: 100%; }
.gs-drawer--cart .woocommerce-mini-cart {
	flex: 1;
	overflow-y: auto;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gs-drawer--cart .woocommerce-mini-cart-item {
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 12px;
	align-items: center;
	padding: 14px 0;
	border-bottom: 1px solid var(--gs-border);
	margin: 0;
}
.gs-drawer--cart .woocommerce-mini-cart-item img { width: 64px; height: 64px; object-fit: contain; background: #fff; border-radius: 0; }
.gs-drawer--cart .woocommerce-mini-cart-item a { font-size: 0.8125rem; color: var(--gs-text); }
.gs-drawer--cart .woocommerce-mini-cart-item .remove_from_cart_button { font-size: 0; width: 20px; text-align: center; color: var(--gs-text); opacity: 0.6; }
.gs-drawer--cart .woocommerce-mini-cart-item .remove_from_cart_button::before { content: '×'; font-size: 1.125rem; }
.gs-drawer--cart .woocommerce-mini-cart-item .quantity { font-size: 0.8125rem; color: rgb(var(--gs-text-rgb) / 0.7); }
.gs-drawer--cart .woocommerce-mini-cart__total {
	padding: 16px 0;
	border-top: 1px solid var(--gs-border);
	margin: 0;
	font-size: 1rem;
	display: flex;
	justify-content: space-between;
}
.gs-drawer--cart .woocommerce-mini-cart__buttons { display: grid; gap: 10px; margin: 0; padding-bottom: 8px; }
.gs-drawer--cart .woocommerce-mini-cart__buttons .button,
.gs-drawer--cart .woocommerce-mini-cart__buttons .button.checkout {
	display: flex; align-items: center; justify-content: center;
	background: var(--gs-text); color: #fff; border-radius: 0; font-size: var(--gs-fs-paragraph); padding: 15px 20px; border: 1px solid var(--gs-text);
}
.gs-drawer--cart .woocommerce-mini-cart__buttons .button:hover { background: var(--gs-accent-hover); border-color: var(--gs-accent-hover); }
.gs-drawer--cart .woocommerce-mini-cart__buttons .checkout { background: var(--gs-bg); color: var(--gs-text); border-color: var(--gs-text); }
.gs-drawer--cart .woocommerce-mini-cart__empty-message { padding: 40px 0; text-align: center; color: rgb(var(--gs-text-rgb) / 0.7); }

/* Mobile drawer nav */
.gs-drawer--mobile .gs-drawer__head { justify-content: flex-end; }
.gs-drawer--mobile .gs-drawer__nav ul { display: grid; gap: 4px; }
.gs-drawer--mobile .gs-drawer__nav a {
	display: block;
	padding: 12px 0;
	font-size: 1rem;
	border-bottom: 1px solid var(--gs-border);
}

/* ==========================================================================
   Hero
   ========================================================================== */
.gs-hero { position: relative; overflow: hidden; }
.gs-hero__media { position: relative; height: clamp(320px, 70svh, 900px); }
.gs-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.gs-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgb(3 3 3 / 0.15), rgb(3 3 3 / 0));
}
.gs-hero__content {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	display: flex;
	align-items: flex-end;
}
.gs-hero__text {
	display: grid;
	gap: 14px;
	justify-items: start;
	max-width: 640px;
	padding-bottom: 64px;
	color: #fff;
}
.gs-hero__title {
	color: #fff;
	font-size: var(--gs-fs-h1);
	margin: 0;
}
.gs-hero__lead {
	color: #fff;
	font-size: 1.25rem;
	line-height: var(--gs-lh-body);
	margin: 0 0 10px;
}

/* ==========================================================================
   Product carousels
   ========================================================================== */
.gs-carousel-section { padding-block: 44px 56px; }
.gs-carousel-head {
	display: flex;
	align-items: last baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 26px;
}
.gs-carousel-title { font-size: 1.75rem; margin: 0; }
.gs-carousel { position: relative; }
.gs-carousel__track {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.gs-carousel__track::-webkit-scrollbar { display: none; }
.gs-carousel__track > li {
	flex: 0 0 calc((100% - 40px) / 3);
	scroll-snap-align: start;
	min-width: 0;
}
.gs-carousel__arrow {
	position: absolute;
	top: 42%;
	transform: translateY(-50%);
	background: none;
	border: 0;
	color: var(--gs-text);
	padding: 8px;
	opacity: 0;
	transition: opacity 0.2s var(--gs-ease);
	z-index: 2;
}
.gs-carousel__arrow--prev { left: -34px; }
.gs-carousel__arrow--next { right: -34px; }
.gs-carousel:hover .gs-carousel__arrow { opacity: 1; }

/* ==========================================================================
   Product cards
   ========================================================================== */
.gs-card { position: relative; }
.gs-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	background: #fff;
	overflow: hidden;
}
.gs-card__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: transform 0.4s var(--gs-ease);
}
.gs-card:hover .gs-card__media img { transform: scale(1.02); }
.gs-card__badge {
	position: absolute;
	top: 10px;
	left: 10px;
	background: var(--gs-text);
	color: #fff;
	font-size: 0.6875rem;
	padding: 4px 10px;
	letter-spacing: 0.04em;
}
.gs-card__badge--oos { background: #767676; }
.gs-quick-add {
	position: absolute;
	right: 14px;
	bottom: 14px;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #fff;
	color: var(--gs-text);
	border: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 10px rgb(0 0 0 / 0.12);
	opacity: 0;
	transform: translateY(4px);
	transition: opacity 0.2s var(--gs-ease), transform 0.2s var(--gs-ease), background-color 0.2s var(--gs-ease);
	z-index: 2;
}
.gs-quick-add .gs-icon { width: 17px; height: 17px; }
.gs-card:hover .gs-quick-add { opacity: 1; transform: translateY(0); }
.gs-quick-add:hover { background: var(--gs-cream); }
.gs-quick-add.is-loading { opacity: 1; pointer-events: none; }
.gs-card__details { display: grid; gap: 6px; padding-top: 14px; text-align: left; }
.gs-card__title {
	font-family: var(--gs-font-body);
	font-weight: 500;
	font-size: var(--gs-fs-h5);
	line-height: 1.2;
	margin: 0;
	text-align: left;
}
.gs-card__title a { display: block; text-align: left; }
.gs-card__price { font-size: var(--gs-fs-xs); text-align: left; }
.gs-card__price .price, .gs-card__price.price { font-size: var(--gs-fs-xs); text-align: left; }
.gs-card__price del { opacity: 0.55; margin-right: 6px; }
.gs-card__price ins { text-decoration: none; }

/* ==========================================================================
   Split feature section
   ========================================================================== */
.gs-split { display: grid; grid-template-columns: 3fr 2fr; background: var(--gs-cream); }
.gs-split__media { position: relative; min-height: 420px; }
.gs-split__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gs-split__panel { background: var(--gs-surface); display: flex; align-items: center; }
.gs-split__panel-inner {
	padding: 60px;
	display: grid;
	gap: 14px;
	justify-items: start;
	max-width: 560px;
}
.gs-split__title { font-size: var(--gs-fs-h3); margin: 0; }
.gs-split__text { margin: 0 0 12px; }

/* ==========================================================================
   Shop / archive
   ========================================================================== */
.gs-shop { padding-block: 34px 60px; }
.gs-shop__title { font-size: var(--gs-fs-h1); margin: 0 0 30px; }

.gs-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-block: 14px;
	border-top: 1px solid var(--gs-border);
	border-bottom: 1px solid var(--gs-border);
	margin-bottom: 26px;
	position: relative;
}
.gs-toolbar__filters { display: flex; align-items: center; gap: 26px; position: relative; }
.gs-toolbar__right { display: flex; align-items: center; gap: 22px; }
.gs-toolbar__count { font-size: var(--gs-fs-paragraph); color: rgb(var(--gs-text-rgb) / 0.85); }
.gs-toolbar__clear-all { text-decoration: underline; font-size: var(--gs-fs-paragraph); }
.gs-toolbar__filter-btn {
	display: none;
	align-items: center;
	gap: 6px;
	background: none;
	border: 0;
	color: var(--gs-text);
	font-size: var(--gs-fs-paragraph);
	padding: 4px;
}

.gs-facet { position: relative; }
.gs-facet__toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: 0;
	color: var(--gs-text);
	font-size: var(--gs-fs-paragraph);
	padding: 4px 0;
}
.gs-facet__toggle .gs-icon { transition: transform 0.2s var(--gs-ease); }
.gs-facet.is-open .gs-facet__toggle .gs-icon { transform: rotate(180deg); }
.gs-facet__panel {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	z-index: 30;
	background: var(--gs-bg);
	border: 1px solid var(--gs-border);
	box-shadow: 0 4px 20px rgb(var(--gs-text-rgb) / 0.15);
	padding: 18px;
	min-width: 220px;
	display: grid;
	gap: 10px;
}
.gs-facet__panel[hidden],
.gs-sort__panel[hidden] { display: none !important; }
.gs-facet__option { display: flex; align-items: center; gap: 10px; font-size: var(--gs-fs-paragraph); cursor: pointer; }
.gs-facet__option input[type='checkbox'] { width: 16px; height: 16px; accent-color: var(--gs-text); }
.gs-facet__clear { background: none; border: 0; text-decoration: underline; color: rgb(var(--gs-text-rgb) / 0.8); font-size: 0.8125rem; padding: 0; justify-self: start; }
.gs-facet__price-row { display: flex; align-items: center; gap: 8px; }
.gs-facet__currency { color: rgb(var(--gs-text-rgb) / 0.7); }
.gs-facet__price-row input {
	width: 90px;
	border: 1px solid rgb(var(--gs-text-rgb) / 0.25);
	border-radius: 8px;
	padding: 9px 10px;
	font-size: var(--gs-fs-paragraph);
	color: var(--gs-text);
	background: var(--gs-bg);
}
.gs-facet__hint { font-size: 0.8125rem; color: rgb(var(--gs-text-rgb) / 0.7); margin: 0; }
.gs-facet__actions { display: flex; align-items: center; gap: 16px; }
.gs-facet__apply {
	background: var(--gs-text);
	color: #fff;
	border: 0;
	padding: 9px 18px;
	font-size: 0.8125rem;
}
.gs-facet__apply:hover { background: var(--gs-accent-hover); }

.gs-sort { position: relative; }
.gs-sort__toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: 0;
	color: var(--gs-text);
	font-size: var(--gs-fs-paragraph);
	padding: 4px 0;
}
.gs-sort__label--long { display: none; }
.gs-sort__label--short { display: inline; }
.gs-sort__panel {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	z-index: 30;
	background: var(--gs-bg);
	border: 1px solid var(--gs-border);
	box-shadow: 0 4px 20px rgb(var(--gs-text-rgb) / 0.15);
	min-width: 230px;
	padding: 8px 0;
}
.gs-sort__panel button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: none;
	border: 0;
	text-align: left;
	font-size: var(--gs-fs-paragraph);
	color: var(--gs-text);
	padding: 10px 18px;
}
.gs-sort__panel button:hover { background: var(--gs-surface); }
.gs-sort__panel button.is-active { font-weight: 500; }

.gs-grid-toggle { display: inline-flex; align-items: center; gap: 10px; }
.gs-grid-toggle__btn { background: none; border: 0; color: rgb(var(--gs-text-rgb) / 0.55); padding: 2px; }
.gs-grid-toggle__btn.is-active { color: var(--gs-text); }
.gs-grid-toggle__btn .gs-icon { width: 17px; height: 17px; }

/* Product grid */
ul.products.gs-grid,
.gs-shop ul.products {
	display: grid !important;
	grid-template-columns: repeat(5, 1fr);
	gap: 28px 16px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	position: static;
	float: none;
	width: 100%;
}
.gs-shop ul.products::before,
.gs-shop ul.products::after { content: none !important; display: none !important; }
.gs-shop ul.products li.product {
	float: none;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}
/* Grid cards keep natural image ratio (no 4:5 crop) */
.gs-shop .gs-card__media { aspect-ratio: auto; min-height: 0; }
.gs-shop .gs-card__media img { height: auto; }
.gs-shop .gs-card__details { gap: 4px; padding-top: 12px; }
.gs-shop .gs-card__title { font-size: var(--gs-fs-paragraph); font-weight: 400; }
.gs-shop .gs-card__price { font-size: var(--gs-fs-h6); }
.gs-shop .gs-card__price.price, .gs-shop .gs-card__price .price { font-size: var(--gs-fs-h6); }
.gs-shop .gs-quick-add { display: none; }

.gs-shop__pagination { margin-top: 40px; }
.gs-shop__pagination .nav-links { display: flex; justify-content: center; gap: 8px; }
.gs-shop__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid rgb(var(--gs-text-rgb) / 0.2);
	font-size: var(--gs-fs-paragraph);
}
.gs-shop__pagination .page-numbers.current { background: var(--gs-text); color: #fff; border-color: var(--gs-text); }
.gs-shop__empty { padding-block: 60px; text-align: center; color: rgb(var(--gs-text-rgb) / 0.7); }

/* Filters drawer */
.gs-filters-drawer { display: grid; gap: 14px; align-content: start; }
.gs-filters-drawer__heading { font-size: var(--gs-fs-h6); margin: 8px 0 0; }

/* ==========================================================================
   Single product
   ========================================================================== */
.gs-pdp { padding-block: 8px 60px; }
.gs-pdp__grid {
	display: grid;
	grid-template-columns: minmax(0, 2.05fr) minmax(320px, 1fr);
	gap: 46px;
	align-items: start;
}
.gs-pdp__track {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4px;
}
.gs-pdp__media { position: relative; margin: 0; }
.gs-pdp__img { width: 100%; height: auto; }
.gs-pdp__zoom {
	position: absolute;
	right: 10px;
	bottom: 10px;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgb(255 255 255 / 0.92);
	color: var(--gs-text);
	border: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 1px 8px rgb(0 0 0 / 0.12);
	opacity: 0;
	transition: opacity 0.2s var(--gs-ease);
}
.gs-pdp__media:hover .gs-pdp__zoom { opacity: 1; }
.gs-pdp__zoom .gs-icon { width: 16px; height: 16px; }
.gs-pdp__dots { display: none; }

.gs-pdp__panel { position: sticky; top: calc(var(--gs-header-h) + 20px); }
.gs-pdp__title {
	font-size: var(--gs-fs-h3);
	line-height: 1.15;
	margin: 0 0 14px;
}
.gs-pdp__price { font-size: var(--gs-fs-h6); margin-bottom: 16px; }
.gs-pdp__price del { opacity: 0.55; margin-right: 8px; }
.gs-pdp__price ins { text-decoration: none; }
.gs-pdp__divider { border: 0; border-top: 1px solid var(--gs-border); margin: 0 0 22px; }

/* Buy box (Woo form restyled) */
.gs-pdp__buy form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
	margin: 0 0 12px;
}
.gs-pdp__buy form.cart .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid rgb(var(--gs-text-rgb) / 0.35);
	min-width: 118px;
	height: 52px;
}
.gs-pdp__buy .quantity .qty {
	width: 44px;
	border: 0;
	text-align: center;
	font-size: 1rem;
	color: var(--gs-text);
	background: transparent;
	-moz-appearance: textfield;
	padding: 0;
}
.gs-qty-btn {
	background: none;
	border: 0;
	color: var(--gs-text);
	width: 36px;
	height: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.05rem;
	line-height: 1;
	padding: 0;
}
.gs-qty-btn:hover { opacity: 0.65; }
.gs-pdp__buy .quantity .qty::-webkit-outer-spin-button,
.gs-pdp__buy .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.gs-pdp__buy form.cart .single_add_to_cart_button {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: var(--gs-text);
	color: #fff;
	border: 1px solid var(--gs-text);
	border-radius: 0;
	font-size: var(--gs-fs-paragraph);
	height: 52px;
	padding: 0 24px;
	transition: background-color 0.2s var(--gs-ease);
}
.gs-pdp__buy form.cart .single_add_to_cart_button:hover { background: var(--gs-accent-hover); border-color: var(--gs-accent-hover); }
.gs-buy-now { width: 100%; height: 52px; padding-block: 0; margin-bottom: 6px; }
.gs-paypal-btn {
	display: none;
	width: 100%;
	height: 52px;
	align-items: center;
	justify-content: center;
	gap: 6px;
	background: #ffc439;
	border: 1px solid #f3b900;
	border-radius: 999px;
	color: #003087;
	font-size: 1rem;
	margin-bottom: 10px;
	transition: background-color 0.2s var(--gs-ease);
}
.gs-paypal-btn:hover { background: #f2ba36; }
.gs-paypal-btn__text { color: #003087; font-style: normal; }
.gs-paypal-btn__logo { font-weight: 700; font-style: italic; letter-spacing: -0.02em; }
.gs-paypal-btn__logo i { font-style: italic; color: #003087; }
.gs-paypal-btn__logo em { font-style: italic; color: #0070ba; }
.gs-more-payments {
	display: none;
	width: 100%;
	background: none;
	border: 0;
	color: var(--gs-text);
	font-size: var(--gs-fs-paragraph);
	text-decoration: underline;
	text-align: center;
	padding: 2px 0 6px;
}

/* Variable selects */
.gs-pdp__buy form.variations_form { margin: 0 0 12px; }
.gs-pdp__buy form.variations_form table.variations { margin-bottom: 14px; }
.gs-pdp__buy form.variations_form table.variations th { font-weight: 500; text-align: left; padding: 0 0 6px; }
.gs-pdp__buy form.variations_form table.variations td { padding: 0 0 12px; }
.gs-pdp__buy form.variations_form select {
	width: 100%;
	max-width: 320px;
	border: 1px solid rgb(var(--gs-text-rgb) / 0.35);
	border-radius: 0;
	background: var(--gs-bg);
	padding: 12px 36px 12px 14px;
	font-size: var(--gs-fs-paragraph);
	color: var(--gs-text);
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath stroke='%23341f09' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 16px;
}
.gs-pdp__buy .woocommerce-variation-price { margin-bottom: 12px; }
.gs-pdp__buy .reset_variations { font-size: 0.8125rem; text-decoration: underline; }
.gs-pdp__buy form.variations_form .single_add_to_cart_button { width: 100%; }
.gs-pdp__buy form.variations_form .quantity { margin-bottom: 12px; }
.gs-pdp__buy .stock.in-stock { color: #2e7d32; font-size: 0.8125rem; margin-bottom: 10px; }

.gs-pdp__desc { margin-top: 26px; }
.gs-pdp__desc-title { font-size: var(--gs-fs-paragraph); font-family: var(--gs-font-body); font-weight: 700; margin-bottom: 8px; }
.gs-pdp__desc p { margin-bottom: 0.9em; }
.gs-pdp__desc ul { list-style: none; margin: 0 0 0.9em; padding: 0; }
.gs-pdp__desc ul li { position: relative; padding-left: 16px; }
.gs-pdp__desc ul li::before { content: '•'; position: absolute; left: 2px; }

/* Sticky add-to-cart bar */
.gs-sticky-atc {
	position: fixed;
	left: 50%;
	bottom: 20px;
	transform: translateX(-50%) translateY(calc(100% + 60px));
	width: min(600px, calc(100vw - 32px));
	z-index: 90;
	opacity: 0;
	transition: transform 0.3s var(--gs-ease), opacity 0.3s var(--gs-ease);
	pointer-events: none;
}
.gs-sticky-atc.is-visible { transform: translateX(-50%) translateY(0); opacity: 1; pointer-events: auto; }
.gs-sticky-atc__bar {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px;
	background: rgb(255 255 255 / 0.88);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	backdrop-filter: blur(20px) saturate(180%);
	box-shadow: 0 4px 20px rgb(0 0 0 / 0.15);
	border: 1px solid var(--gs-border);
}
.gs-sticky-atc__img { width: 52px; height: 52px; object-fit: contain; background: #fff; }
.gs-sticky-atc__info { display: grid; gap: 2px; flex: 1; min-width: 0; }
.gs-sticky-atc__title { font-size: 0.8125rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-sticky-atc__price { font-size: 0.8125rem; }
.gs-sticky-atc__btn { padding: 14px 20px; flex-shrink: 0; }

/* ==========================================================================
   Lightbox
   ========================================================================== */
.gs-lightbox { position: fixed; inset: 0; z-index: 300; }
.gs-lightbox__backdrop { position: absolute; inset: 0; background: rgb(0 0 0 / 0.75); }
.gs-lightbox__dialog {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	padding: 18px 24px;
}
.gs-lightbox__head { display: flex; align-items: center; justify-content: space-between; color: #fff; }
.gs-lightbox__count { font-size: var(--gs-fs-paragraph); }
.gs-lightbox__close { background: none; border: 0; color: #fff; padding: 6px; }
.gs-lightbox__close .gs-icon { width: 26px; height: 26px; }
.gs-lightbox__stage {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
}
.gs-lightbox__img { max-width: 100%; max-height: 100%; object-fit: contain; }
.gs-lightbox__thumbs { display: flex; justify-content: center; gap: 10px; padding-top: 16px; flex-wrap: wrap; }
.gs-lightbox__thumb { background: none; border: 1px solid rgb(255 255 255 / 0.35); padding: 2px; }
.gs-lightbox__thumb img { width: 52px; height: 52px; object-fit: contain; background: #fff; }
.gs-lightbox__thumb.is-active { border-color: #fff; }

/* ==========================================================================
   Footer
   ========================================================================== */
.gs-footer { margin-top: 0; }
.gs-footer__main { background: var(--gs-text); color: #fff; }
.gs-footer__main .gs-page-pad { padding-block: 56px 48px; }
.gs-footer__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 40px;
	color: #fff;
}
.gs-footer__heading {
	color: #fff;
	font-size: 1.375rem;
	margin: 0 0 22px;
}
.gs-footer__links { display: grid; gap: 13px; }
.gs-footer__links a { color: rgb(255 255 255 / 0.92); font-size: var(--gs-fs-paragraph); }
.gs-footer__links a:hover { color: #fff; text-decoration: underline; }
.gs-footer__company { display: grid; gap: 12px; font-size: var(--gs-fs-paragraph); }
.gs-footer__company p { margin: 0; font-weight: 700; }
.gs-footer__company-address { display: grid; gap: 2px; }
.gs-footer__company-contact { display: grid; gap: 2px; }
.gs-footer__company-contact a { color: #fff; text-decoration: underline; }
.gs-footer__payments { margin-top: 40px; }
.gs-footer__payment-list { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.gs-footer__payment-list img { width: 38px; height: 24px; }

.gs-footer__utilities { background: var(--gs-utilities); color: var(--gs-cream); }
.gs-footer__utilities-inner { padding-block: 20px; }
.gs-footer__copyright { font-size: 0.75rem; }
.gs-footer__copyright a { color: var(--gs-cream); text-decoration: underline; }

/* ==========================================================================
   Content pages / prose
   ========================================================================== */
.gs-content-page { padding-block: 34px 70px; max-width: calc(var(--gs-page-max) + 2 * var(--gs-margin)); }
.gs-content-page__title { font-size: var(--gs-fs-h1); margin-bottom: 26px; }
.gs-prose { max-width: 760px; }
.gs-prose h1, .gs-prose h2, .gs-prose h3, .gs-prose h4 { margin-top: 1.4em; }
.gs-prose ul, .gs-prose ol { margin: 0 0 1em; padding-left: 22px; list-style: disc; }
.gs-prose ol { list-style: decimal; }
.gs-prose a { text-decoration: underline; }
.gs-prose form p label { display: block; margin-bottom: 4px; }
.gs-prose input[type='text'], .gs-prose input[type='email'], .gs-prose input[type='tel'], .gs-prose textarea {
	border: 1px solid rgb(var(--gs-text-rgb) / 0.3);
	padding: 10px 12px;
	font-size: var(--gs-fs-paragraph);
	width: 100%;
	max-width: 420px;
}

/* ==========================================================================
   WooCommerce misc (notices, pagination)
   ========================================================================== */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	background: var(--gs-surface);
	border-top-color: var(--gs-text);
	color: var(--gs-text);
	padding: 12px 16px;
	list-style: none;
	margin: 0 0 20px;
}
.woocommerce-notices-wrapper:empty { display: none; }
.select2-container .select2-selection--single {
	border: 1px solid rgb(var(--gs-text-rgb) / 0.3);
	border-radius: 0;
	height: 44px;
	padding-top: 8px;
}

/* ==========================================================================
   Responsive — ≤989px
   ========================================================================== */
@media (max-width: 989px) {
	:root {
		--gs-margin: 16px;
		--gs-header-h-mobile: 56px;
	}

	.gs-header__inner { height: var(--gs-header-h-mobile); grid-template-columns: 1fr auto 1fr; }
	.gs-header__logo--desk { display: none; }
	.gs-header__logo--mobile { display: block; justify-self: center; }
	.gs-header__logo--mobile img { width: 68px; height: 51px; object-fit: contain; }
	.gs-header__nav { display: none; }
	.gs-header__icon--menu,
	.gs-header__icon--search-mobile { display: inline-flex; }
	.gs-header__left { gap: 16px; }
	.gs-header__actions { gap: 16px; }

	/* Hero stacks text lower with side padding */
	.gs-hero__media { height: clamp(360px, 58svh, 720px); }
	.gs-hero__text { padding-bottom: 40px; }
	.gs-hero__title { font-size: clamp(2rem, 8.6vw, 2.5rem); }
	.gs-hero__lead { font-size: 1rem; }

	/* Carousel: 60cqw cards, arrows hidden */
	.gs-carousel-section { padding-block: 30px 40px; }
	.gs-carousel__track { gap: 12px; }
	.gs-carousel__track > li { flex: 0 0 60cqw; }
	.gs-carousel__arrow { display: none; }
	.gs-carousel-head { margin-bottom: 18px; }
	.gs-carousel-title { font-size: clamp(1.5rem, 6.5vw, 1.75rem); }

	/* Split section stacks */
	.gs-split { grid-template-columns: 1fr; }
	.gs-split__media { min-height: 0; position: relative; }
	.gs-split__media img { position: static; height: auto; }
	.gs-split__panel-inner { padding: 32px var(--gs-margin) 40px; }

	/* Shop */
	.gs-shop { padding-block: 22px 40px; }
	.gs-shop__title { font-size: clamp(2rem, 8vw, 2.5rem); margin-bottom: 20px; }
	.gs-toolbar__filters { display: none; }
	.gs-toolbar__filter-btn { display: inline-flex; }
	.gs-toolbar__count { font-size: 0.8125rem; }
	.gs-sort__label--long { display: none; }
	.gs-sort__label--short { display: inline; }
	.gs-grid-toggle { display: none; }
	.gs-shop ul.products,
	ul.products.gs-grid { grid-template-columns: 1fr 1fr !important; gap: 22px 12px !important; }

	/* PDP: stacked */
	.gs-pdp { padding-block: 0 40px; }
	.gs-pdp__grid { grid-template-columns: 1fr; gap: 22px; }
	.gs-pdp__track {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}
	.gs-pdp__track::-webkit-scrollbar { display: none; }
	.gs-pdp__media { flex: 0 0 100%; scroll-snap-align: center; }
	.gs-pdp__media img { aspect-ratio: 1 / 1; object-fit: contain; background: #fff; }
	.gs-pdp__zoom { display: none; }
	.gs-pdp__dots {
		display: flex;
		justify-content: center;
		gap: 8px;
		padding-top: 14px;
	}
	.gs-pdp__dot {
		width: 8px; height: 8px;
		border-radius: 50%;
		background: rgb(var(--gs-text-rgb) / 0.25);
		border: 0;
		padding: 0;
	}
	.gs-pdp__dot.is-active { background: var(--gs-text); }
	.gs-pdp__details { position: static; }
	.gs-pdp__panel { position: static; }
	.gs-pdp__title { font-size: clamp(1.75rem, 7.5vw, 2rem); }
	.gs-pdp__desc { margin-top: 22px; }
	.gs-pdp__desc-title { font-size: 1rem; }

	/* Footer stacks with side padding */
	.gs-footer__main .gs-page-pad { padding-block: 40px 34px; }
	.gs-footer__grid { grid-template-columns: 1fr; gap: 30px; }
	.gs-footer__heading { font-size: 1.25rem; margin-bottom: 16px; }
	.gs-footer__payments { margin-top: 26px; }
	.gs-footer__payment-list { justify-content: flex-start; }

	/* Buy box: reference shows the branded dynamic-checkout button on mobile */
	.gs-buy-now { display: none; }
	.gs-paypal-btn { display: inline-flex; }
	.gs-more-payments { display: block; }

	/* Header: search lives only on the left group on mobile */
	.gs-header__icon--search-desk { display: none; }

	/* Shop grid keeps the source images' natural aspect ratio */
	.gs-shop .gs-card__media img { width: auto; max-width: 100%; height: auto; margin-inline: auto; }
	.gs-shop .gs-card__price,
	.gs-shop .gs-card__price.price,
	.gs-shop .gs-card__price .price { font-weight: 500; }
	.gs-sticky-atc { bottom: 0; width: 100%; transform: translateX(-50%) translateY(120%); }
	.gs-sticky-atc.is-visible { transform: translateX(-50%) translateY(0); }
	.gs-sticky-atc__bar { border-radius: 0; }
}

@media (max-width: 749px) {
	.gs-btn { padding: 15px 22px; }
	.gs-search-submit { display: none; }
}
/* Carousel: track bleeds into the right page margin; card width stays based
   on the padded container so a 4th card peeks in, like the reference. */
.gs-carousel-section { overflow: hidden; }
.gs-carousel-section .gs-page-pad { max-width: none; }
@media (min-width: 990px) {
	.gs-carousel { margin-right: calc(-1 * var(--gs-margin)); }
	.gs-carousel__track > li { flex: 0 0 calc((100% - 40px - var(--gs-margin)) / 3); }
}
.gs-card__details { padding-top: 10px; }

/* Cart glyph inside add-to-cart buttons */
.gs-btn-cart-icon { display: inline-flex; align-items: center; margin-right: 2px; }
.gs-btn-cart-icon .gs-icon { width: 18px; height: 18px; }

/* Card price: keep the theme's dark brown (parent theme grays it out) */
.gs-card__price.price,
.gs-card__price .price,
.gs-card__price { color: var(--gs-text); }

/* Card price: explicit dark brown — Storefront's
   .woocommerce ul.products li.product .price rule out-specifies plain classes */
.woocommerce ul.products li.product .gs-card__price,
.woocommerce ul.products li.product .gs-card__price.price,
.woocommerce ul.products li.product .gs-card__price .price,
.gs-card__price.price,
.gs-card__price .price {
	color: var(--gs-text) !important;
}

/* Filled (dot-grid) icons: .gs-icon defaults to fill:none, re-enable */
.gs-icon--fill { fill: currentColor; }
.gs-icon--fill circle { fill: currentColor; }
