/* Veloshop — Storefront child. Replicates the target shop visual system. */

/* ---------- Fonts ---------- */
@font-face {
	font-family: 'Montserrat';
	src: url('../fonts/montserrat-latin.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Montserrat';
	src: url('../fonts/montserrat-latin-ext.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Figtree';
	src: url('../fonts/figtree-latin.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Figtree';
	src: url('../fonts/figtree-latin-ext.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- Tokens ---------- */
:root {
	--vs-green: #c5d200;
	--vs-lime: #deff12;
	--vs-orange: #ff811d;
	--vs-sale: #ec4564;
	--vs-text: #1d1d1d;
	--vs-gray: #5c5b5b;
	--vs-gray-light: #b3b3b3;
	--vs-footer-bg: #1b1b1b;
	--vs-surface: #f5f5f5;
	--vs-border: #e1e1e1;
	--vs-font-head: 'Montserrat', sans-serif;
	--vs-font-body: 'Figtree', sans-serif;
	--vs-container: 1312px;
	--vs-header-h: 72px;
	--vs-announce-h: 30px;
}

/* ---------- Reset / base ---------- */
.vs-site { overflow-x: clip; }
body {
	font-family: var(--vs-font-body);
	font-size: 15px;
	line-height: 1.55;
	color: var(--vs-text);
	background: #fff;
	margin: 0;
	-webkit-font-smoothing: antialiased;
}
body.vs-lock { overflow: hidden; }
h1, h2, h3, h4, h5, h6, .vs-section__title, .vs-page-title {
	font-family: var(--vs-font-head);
	color: var(--vs-text);
	line-height: 1.2;
	margin: 0;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button { font-family: inherit; cursor: pointer; }
.vs-container {
	max-width: var(--vs-container);
	margin: 0 auto;
	padding-left: 24px;
	padding-right: 24px;
}
.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px;
	width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important;
	word-wrap: normal !important;
}
.vs-main { min-height: 40vh; }

/* Storefront base overrides (keep its header/footer from showing) */
#page .site-header, #masthead, .site-footer, #colophon { display: none !important; }
.storefront-full-width-content .site-content .content-area { width: 100%; }

/* ---------- Announcement ---------- */
.vs-header-wrapper { position: sticky; top: 0; z-index: 90; background: #fff; }
.vs-announce {
	background: #000;
	color: #fff;
}
.vs-announce__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	height: var(--vs-announce-h);
	padding: 0 58px;
}
.vs-announce__text {
	font-family: var(--vs-font-body);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.3px;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.vs-announce__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	color: #fff;
	display: inline-flex;
}
.vs-announce__arrow:first-of-type { left: 0; }
.vs-announce__arrow:last-of-type { right: 0; }

/* ---------- Header ---------- */
.vs-header { background: #fff; }
.vs-header__inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 32px;
	height: var(--vs-header-h);
	max-width: 1296px;
}
.vs-header__logo img { width: auto; height: 44px; }
.vs-nav { display: flex; justify-content: center; }
.vs-nav__list {
	display: flex;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.vs-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--vs-font-body);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--vs-text);
	padding: 10px 14px;
	position: relative;
}
.vs-nav__link svg { transition: transform .2s; }
.vs-nav__item:hover > .vs-nav__link svg { transform: rotate(180deg); }
.vs-header__icons {
	display: flex;
	align-items: center;
	gap: 10px;
}
.vs-icon-btn {
	background: none;
	border: 0;
	padding: 8px;
	color: var(--vs-text);
	display: inline-flex;
	position: relative;
}
.vs-cart-count {
	position: absolute;
	top: 2px;
	right: 0;
	min-width: 15px;
	height: 15px;
	padding: 0 3px;
	border-radius: 8px;
	background: var(--vs-orange);
	color: #fff;
	font-size: 9.5px;
	font-weight: 700;
	line-height: 15px;
	text-align: center;
}

/* Mega menu */
.vs-nav__item { position: static; }
.vs-nav { position: static; }
.vs-header__inner { position: static; }
.vs-header { position: relative; }
.vs-mega {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: #fff;
	box-shadow: 0 22px 30px rgba(0,0,0,.12);
	border-top: 1px solid var(--vs-border);
	padding: 30px 0 36px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
	z-index: 80;
}
.vs-nav__item:hover > .vs-mega,
.vs-nav__item:focus-within > .vs-mega {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.vs-mega__cols { display: grid; gap: 24px; }
.vs-mega__cols--3 { grid-template-columns: repeat(3, 1fr); }
.vs-mega__cols--4 { grid-template-columns: repeat(4, 1fr); }
.vs-mega__cols--6 { grid-template-columns: repeat(6, 1fr); }
.vs-mega__heading a {
	font-family: var(--vs-font-body);
	font-weight: 700;
	font-size: 13px;
	color: var(--vs-text);
	display: inline-block;
	margin-bottom: 12px;
}
.vs-mega__links { list-style: none; margin: 0; padding: 0; }
.vs-mega__links a {
	display: block;
	font-size: 12.5px;
	color: var(--vs-gray);
	padding: 4.5px 0;
}
.vs-mega__links a:hover { color: var(--vs-text); text-decoration: underline; }

/* Burger */
.vs-burger {
	display: none;
	background: none;
	border: 0;
	width: 40px;
	height: 40px;
	padding: 8px;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
}
.vs-burger__bar { display: block; width: 22px; height: 1.8px; background: var(--vs-text); }

/* Search layer */
.vs-search-layer { position: fixed; inset: 0; z-index: 120; }
.vs-search-layer[hidden] { display: none; }
.vs-search-layer__bg { position: absolute; inset: 0; background: rgba(0,0,0,.55); border: 0; width: 100%; }
.vs-search-layer__box {
	position: relative;
	background: #fff;
	padding: 28px 24px;
	box-shadow: 0 18px 40px rgba(0,0,0,.25);
}
.vs-search-layer__box form {
	display: flex;
	gap: 12px;
	max-width: 720px;
	margin: 0 auto;
}
.vs-search-layer__box input[type="search"] {
	flex: 1;
	font-size: 16px;
	padding: 12px 16px;
	border: 1px solid var(--vs-border);
	border-radius: 0;
	font-family: var(--vs-font-body);
}
.vs-search-layer__box button[type="submit"] {
	background: #000;
	color: #fff;
	border: 0;
	padding: 0 20px;
	display: inline-flex;
	align-items: center;
}
.vs-search-layer__close {
	position: absolute;
	right: 18px;
	top: 18px;
	background: none;
	border: 0;
	color: var(--vs-text);
}

/* ---------- Drawers ---------- */
.vs-drawer { position: fixed; inset: 0; z-index: 140; }
.vs-drawer[hidden] { display: none; }
.vs-drawer__bg { position: absolute; inset: 0; background: rgba(0,0,0,.5); border: 0; width: 100%; }
.vs-drawer__panel {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: min(400px, 88vw);
	background: #fff;
	display: flex;
	flex-direction: column;
	transform: translateX(-100%);
	transition: transform .28s ease;
	box-shadow: 12px 0 30px rgba(0,0,0,.15);
}
.vs-drawer.is-open .vs-drawer__panel { transform: translateX(0); }
.vs-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--vs-border);
}
.vs-drawer__head h6 { font-size: 15px; font-weight: 700; }
.vs-drawer__close { background: none; border: 0; color: var(--vs-text); padding: 4px; }
.vs-drawer__body { overflow-y: auto; padding: 20px; flex: 1; }
.vs-drawer__foot { border-top: 1px solid var(--vs-border); padding: 16px 20px; display: flex; gap: 10px; align-items: center; }
.vs-drawer--cart .vs-drawer__panel, .vs-drawer--filter .vs-drawer__panel { left: auto; right: 0; transform: translateX(100%); }
.vs-drawer--cart.is-open .vs-drawer__panel, .vs-drawer--filter.is-open .vs-drawer__panel { transform: translateX(0); }

/* Mobile nav inside drawer */
.vs-mnav__list { list-style: none; margin: 0; padding: 0 20px 20px; overflow-y: auto; }
.vs-mnav__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--vs-border);
}
.vs-mnav__link { padding: 14px 0; font-weight: 600; font-size: 14.5px; flex: 1; }
.vs-mnav__toggle { background: none; border: 0; padding: 12px; color: var(--vs-text); }
.vs-mnav__toggle svg { transition: transform .2s; }
.vs-mnav__item.is-open > .vs-mnav__row .vs-mnav__toggle svg { transform: rotate(180deg); }
.vs-mnav__sub { padding: 4px 0 14px; }
.vs-mnav__sub ul { list-style: none; margin: 0; padding: 0; }
.vs-mnav__sub ul a { display: block; padding: 7px 0 7px 14px; font-size: 13.5px; color: var(--vs-gray); }
.vs-mnav__group { padding: 8px 0 2px; }
.vs-mnav__group-title { font-weight: 700; font-size: 13px; display: inline-block; padding: 4px 0; }

/* Minicart */
.vs-minicart { list-style: none; margin: 0 0 16px; padding: 0; }
.vs-minicart__item { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--vs-border); }
.vs-minicart__item img { width: 70px; height: 70px; object-fit: cover; background: var(--vs-surface); }
.vs-minicart__meta { font-size: 13px; color: var(--vs-gray); margin-top: 4px; }
.vs-minicart__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	font-size: 14px;
	font-weight: 700;
	margin: 4px 0 6px;
	padding-top: 14px;
	border-top: 1px solid var(--vs-border);
}
.vs-minicart__total strong { font-size: 17px; }
.vs-minicart__note { font-size: 12px; color: var(--vs-gray); margin: 0 0 16px; }
.vs-minicart__actions { display: grid; gap: 8px; }
.vs-minicart__actions .vs-btn-outline { padding: 11px 20px; font-size: 13px; letter-spacing: .3px; }
.vs-minicart__empty { font-family: var(--vs-font-head); font-size: 17px; margin: 8px 0 18px; }

/* Filter drawer */
.vs-filter-group { margin-bottom: 24px; }
.vs-filter-group__title { font-weight: 700; margin-bottom: 10px; }
.vs-filter-group ul { list-style: none; margin: 0; padding: 0; }
.vs-filter-group a { display: block; padding: 6px 0; color: var(--vs-gray); font-size: 14px; }
.vs-filter-group a.is-active { color: var(--vs-text); font-weight: 600; }

/* ---------- Buttons ---------- */
.vs-btn-pill {
	display: inline-block;
	background: var(--vs-lime);
	color: #111;
	font-weight: 600;
	font-size: 13.5px;
	padding: 9px 22px;
	border-radius: 999px;
	border: 0;
	transition: filter .15s;
}
.vs-btn-pill:hover { filter: brightness(.94); }
.vs-btn-outline {
	display: inline-block;
	background: #fff;
	border: 1px solid #000;
	color: #000;
	font-weight: 600;
	font-size: 13px;
	letter-spacing: .4px;
	padding: 12px 30px;
	transition: background .2s, color .2s;
}
.vs-btn-outline:hover { background: #000; color: #fff; }
.vs-btn-outline--full { width: 100%; text-align: center; }
.vs-btn-dark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	background: #000;
	color: #fff;
	border: 0;
	font-weight: 600;
	font-size: 14.5px;
	padding: 13px 26px;
	border-radius: 999px;
	flex: 1;
	transition: opacity .15s;
}
.vs-btn-dark:hover { opacity: .85; color: #fff; }
.vs-btn-dark__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	background: #fff;
	color: #000;
	border-radius: 50%;
	flex: none;
}
.vs-btn-dark__icon svg { width: 13px; height: 13px; flex: none; }
.vs-btn-buynow {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	color: #000;
	border: 1.5px solid #000;
	font-weight: 600;
	font-size: 14.5px;
	padding: 12px 26px;
	border-radius: 999px;
	margin-top: 12px;
	transition: background .2s, color .2s;
}
.vs-btn-buynow:hover { background: #000; color: #fff; }
.vs-btn-dark.vs-btn--full { width: 100%; }

/* Storefront paints every <button> grey on hover; keep our ghost buttons flat. */
.vs-accordion__head,
.vs-arrow-btn,
.vs-burger,
.vs-colorswatch,
.vs-dock__item,
.vs-drawer__close,
.vs-icon-btn,
.vs-mnav__toggle,
.vs-pill,
.vs-qty__btn,
.vs-scrolltop,
.vs-search-layer__bg,
.vs-search-layer__close,
.vs-stickyatc__btn,
.vs-toolbar__btn { background-color: transparent; }
.vs-accordion__head:hover, .vs-accordion__head:focus, .vs-accordion__head:active,
.vs-arrow-btn:hover, .vs-burger:hover, .vs-colorswatch:hover, .vs-dock__item:hover,
.vs-drawer__close:hover, .vs-icon-btn:hover, .vs-mnav__toggle:hover, .vs-pill:hover,
.vs-qty__btn:hover, .vs-scrolltop:hover, .vs-search-layer__close:hover,
.vs-stickyatc__btn:hover, .vs-toolbar__btn:hover { background-color: transparent; }

/* ---------- Hero (horizontal slide, 750px, 18px radius — matches source) ---------- */
.vs-hero {
	position: relative;
	padding: 0 32px 26px;
	background: #fff;
	overflow: hidden;
}
.vs-hero .vs-slider__track {
	position: relative;
	height: 750px;
	border-radius: 18px;
	overflow: hidden;
}
.vs-hero .vs-slider__strip {
	display: flex;
	height: 100%;
	transition: transform .65s cubic-bezier(.33, 0, .2, 1);
	will-change: transform;
}
.vs-hero__slide {
	position: relative;
	flex: 0 0 100%;
	min-width: 100%;
	height: 100%;
}
.vs-hero__media { width: 100%; height: 100%; object-fit: cover; }
.vs-hero__cta {
	position: absolute;
	left: 60px;
	bottom: 76px;
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	padding: 12px 20px;
	border-radius: 999px;
}
.vs-hero__cta--orange { background: var(--vs-orange); color: #fff; }
.vs-hero__cta--black { background: #000; color: #fff; }
.vs-hero__cta-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	background: #fff;
	color: #000;
	border-radius: 50%;
}
.vs-hero__cta-icon svg { width: 14px; height: 14px; flex: none; }
.vs-hero__dots {
	position: absolute;
	right: 68px;
	bottom: 64px;
	display: flex;
	gap: 8px;
	z-index: 3;
}
.vs-hero__dot {
	width: 28px;
	height: 28px;
	padding: 0;
	box-sizing: border-box;
	border-radius: 50%;
	border: 1px solid var(--vs-lime);
	background: transparent;
	color: var(--vs-lime);
	font-size: 12px;
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background .25s, color .25s;
}
.vs-hero__dot.is-active { background: var(--vs-lime); border-color: var(--vs-lime); color: #111; }

/* ---------- Generic slider (banners: centered, 68vw, 18px radius, no dots) ---------- */
.vs-banners {
	position: relative;
	background: #000;
	padding: 0;
	overflow: hidden;
}
.vs-banners .vs-slider__track { position: relative; }
.vs-banners .vs-slider__strip {
	display: flex;
	align-items: stretch;
	gap: 20px;
	padding: 50px 0;
	transition: transform .55s cubic-bezier(.33, 0, .2, 1);
	will-change: transform;
}
.vs-banners__slide {
	flex: 0 0 min(980px, 68vw);
	position: relative;
	border-radius: 18px;
	overflow: hidden;
}
.vs-banners__slide img { width: 100%; height: 100%; max-height: 660px; object-fit: cover; border-radius: 18px; }
.vs-banners__cta {
	position: absolute;
	left: 40px;
	bottom: 40px;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: #fff;
	color: #000;
	font-weight: 600;
	font-size: 13.5px;
	padding: 11px 18px;
	border-radius: 999px;
}
.vs-banners__cta-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	background: #000;
	color: #fff;
	border-radius: 50%;
}
.vs-banners__dots {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 12px;
	display: flex;
	gap: 6px;
	z-index: 3;
}
.vs-banners__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #6d6d6d;
	border: 0;
	padding: 0;
}
.vs-banners__dot.is-active { background: var(--vs-lime); }
.vs-banners__arrows {
	position: absolute;
	right: 28px;
	bottom: 28px;
	display: flex;
	gap: 10px;
	z-index: 3;
}
.vs-arrow-btn {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--vs-lime);
	border: 0;
	color: #111;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.vs-arrow-btn svg { width: 15px; height: 15px; flex: none; }

/* ---------- Sections ---------- */
.vs-section { padding: 44px 0 56px; background: #fff; }
.vs-section--gray { background: var(--vs-surface); }
.vs-section__title {
	font-size: 25px;
	font-weight: 700;
	margin-bottom: 26px;
}
.vs-section__title--h1 {
	font-size: 44px;
	font-weight: 800;
	margin: 6px 0 30px;
}

/* Section header with a trailing "see all" link */
.vs-section__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.vs-section__head .vs-section__title,
.vs-section__head .vs-section__title--h1 { margin-bottom: 26px; }
.vs-section__more {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #111;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
	white-space: nowrap;
	transition: opacity .18s ease;
}
.vs-section__more:hover { opacity: .55; }
.vs-section__more svg { flex: none; }
.vs-overlap__btn { margin-top: 22px; }

/* ---------- Product grid + cards ---------- */
.vs-grid { display: grid; gap: 22px; }
.vs-grid--3 { grid-template-columns: repeat(3, 1fr); }
.vs-grid--4 { grid-template-columns: repeat(4, 1fr); }
.vs-grid--5 { grid-template-columns: repeat(5, 1fr); }
.vs-card { background: transparent; }
.vs-card__img {
	background: var(--vs-surface);
	border-radius: 4px;
	overflow: hidden;
}
.vs-card__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.vs-card__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: #fff;
	transition: transform .5s ease, opacity .3s ease;
	padding: 10px;
}
.vs-card__hover { opacity: 0; }
.vs-card:hover .vs-card__hover { opacity: 1; }
.vs-card:hover .vs-card__primary { transform: scale(1.04); }
.vs-card__info { padding: 12px 2px 0; }
.vs-card__name {
	display: block;
	font-family: var(--vs-font-body);
	font-size: 12px;
	letter-spacing: .2px;
	color: var(--vs-text);
	margin-bottom: 5px;
}
.vs-card__price { font-size: 13.5px; font-weight: 700; }
.vs-card__price del { color: var(--vs-gray-light); font-weight: 400; margin-right: 6px; }
.vs-card__price ins { text-decoration: none; }
.vs-badge {
	display: inline-block;
	font-size: 10.5px;
	font-weight: 600;
	color: #fff;
	padding: 3px 10px;
	border-radius: 999px;
	margin-top: 8px;
}
.vs-badge--oos { background: var(--vs-orange); }
body.home .vs-badge { display: none !important; }
.vs-cart-count.is-empty { display: none !important; }
.vs-badge--sale { background: var(--vs-sale); }

/* Home featured cards: no surface behind, name above price bigger */
.vs-featured .vs-card__img { background: transparent; }
.vs-featured .vs-card__media { background: #fff; }
.vs-featured .vs-card__name { font-size: 13.5px; font-weight: 600; }

/* ---------- Overlap section ---------- */
.vs-overlap {
	background-size: cover;
	background-position: center;
	background-attachment: local;
	padding: 90px 0;
}
.vs-overlap__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(320px, 1fr);
	gap: 60px;
	max-width: 1376px;
	margin: 0 auto;
	padding: 0 32px;
}
.vs-overlap__sticky { max-width: 560px; color: #fff; }
.vs-overlap__title {
	color: #fff;
	font-size: 40px;
	font-weight: 800;
	margin-bottom: 20px;
	text-shadow: 0 1px 8px rgba(0,0,0,.35);
}
.vs-overlap__text {
	color: #fff;
	font-size: 15px;
	max-width: 480px;
	text-shadow: 0 1px 6px rgba(0,0,0,.4);
}
.vs-overlap__products { display: flex; flex-direction: column; gap: 18px; }
.vs-overlap__card {
	background: #fff;
	display: block;
	box-shadow: 0 6px 22px rgba(0,0,0,.16);
}
.vs-overlap__img {
	display: block;
	aspect-ratio: 1 / 1;
	background: #fff;
	padding: 16px;
}
.vs-overlap__img img { width: 100%; height: 100%; object-fit: contain; }
.vs-overlap__name {
	display: block;
	padding: 10px 16px 4px;
	font-size: 13.5px;
	color: var(--vs-text);
	background: var(--vs-surface);
}
.vs-overlap__price {
	display: block;
	padding: 2px 16px 14px;
	font-weight: 700;
	font-size: 14px;
	background: var(--vs-surface);
}

/* ---------- Where to buy ---------- */
.vs-wtb { padding: 70px 0; }
.vs-wtb__row {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	gap: 110px;
	flex-wrap: wrap;
	text-align: center;
}
.vs-wtb__box { max-width: 420px; }
.vs-wtb__icon { width: 110px; margin: 0 auto 18px; }
.vs-wtb__title {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: .6px;
	margin-bottom: 10px;
}
.vs-wtb__text { font-size: 12.5px; color: #555; margin: 0 0 24px; }

/* ---------- Blog ---------- */
.vs-blog { padding-bottom: 70px; }
.vs-post { display: block; }
.vs-post__img {
	display: block;
	aspect-ratio: 16 / 10.5;
	overflow: hidden;
	background: var(--vs-surface);
	margin-bottom: 12px;
}
.vs-post__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.vs-post:hover .vs-post__img img { transform: scale(1.03); }
.vs-post__date { display: block; font-size: 12px; color: var(--vs-gray); margin-bottom: 6px; }
.vs-post__title {
	display: block;
	font-family: var(--vs-font-head);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.3;
}

/* ---------- Footer ---------- */
.vs-footer { background: var(--vs-footer-bg); color: #fff; margin-top: 0; }
.vs-footer__top {
	display: flex;
	justify-content: space-between;
	gap: 40px;
	padding: 54px 0 30px;
	flex-wrap: wrap;
}
.vs-footer__brand img { height: 44px; width: auto; margin-bottom: 18px; }
.vs-footer__contact { list-style: none; margin: 0; padding: 0; font-size: 14px; color: #dcdcdc; }
.vs-footer__contact li { margin-bottom: 5px; line-height: 1.55; }
.vs-footer__contact-address { max-width: 330px; }
.vs-footer__contact a {
	color: #dcdcdc;
	text-decoration: underline;
	text-decoration-color: rgba(255, 255, 255, .35);
	text-underline-offset: 3px;
	transition: color .15s, text-decoration-color .15s;
}
.vs-footer__contact a:hover { color: #fff; text-decoration-color: #fff; }
.vs-footer__cols { display: flex; gap: 70px; flex-wrap: wrap; }
.vs-footer__title { color: #fff; font-size: 16px; font-weight: 700; margin-bottom: 16px; }
.vs-footer__links { list-style: none; margin: 0; padding: 0; }
.vs-footer__links a {
	display: block;
	color: #cfcfcf;
	font-size: 13.5px;
	padding: 4px 0;
}
.vs-footer__links a:hover { color: #fff; }
.vs-footer__social { list-style: none; display: flex; gap: 10px; margin: 0; padding: 0; }
.vs-social {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #3a3a3a;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.vs-social:hover { background: #555; }
.vs-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	border-top: 1px solid #2e2e2e;
	padding: 18px 0 26px;
	flex-wrap: wrap;
}
.vs-footer__copy { margin: 0; font-size: 12.5px; color: #bdbdbd; }
.vs-footer__meta { display: flex; align-items: center; gap: 12px; }
.vs-footer__selector {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
	color: #eee;
	padding: 7px 12px;
	border: 1px solid #3a3a3a;
	border-radius: 999px;
}
.vs-pay-icons { display: inline-flex; gap: 6px; margin-left: 6px; }
.vs-pay { display: block; border-radius: 3px; }

/* ---------- Scroll top + dock ---------- */
.vs-scrolltop {
	position: fixed;
	right: 26px;
	bottom: 150px;
	z-index: 70;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 0;
	background: #fff;
	color: #111;
	box-shadow: 0 4px 16px rgba(0,0,0,.2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s;
}
.vs-scrolltop.is-visible { opacity: 1; pointer-events: auto; }
.vs-scrolltop svg { width: 18px; height: 18px; flex: none; }
.vs-dock { display: none; }

/* ---------- Shop page ---------- */
.vs-page-title {
	font-size: 40px;
	font-weight: 800;
	letter-spacing: .5px;
	text-transform: uppercase;
	margin: 26px 0 12px;
}
.vs-shop__desc { max-width: 980px; color: var(--vs-text); font-size: 14px; margin: 0 0 6px; }
.vs-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 0 26px;
}
.vs-toolbar__count { font-size: 13px; color: var(--vs-gray); }
.vs-toolbar__actions { display: flex; align-items: center; gap: 18px; }
.vs-toolbar__btn {
	background: none;
	border: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 500;
	color: var(--vs-text);
	padding: 6px 2px;
}
.vs-toolbar__sep { width: 1px; height: 20px; background: var(--vs-border); }
.vs-toolbar__sort { position: relative; }
.vs-toolbar__sortlist {
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	background: #fff;
	border: 1px solid var(--vs-border);
	box-shadow: 0 10px 26px rgba(0,0,0,.14);
	list-style: none;
	margin: 0;
	padding: 8px 0;
	min-width: 210px;
	z-index: 60;
}
.vs-toolbar__sortlist a { display: block; padding: 8px 16px; font-size: 13px; color: var(--vs-text); }
.vs-toolbar__sortlist a:hover, .vs-toolbar__sortlist a.is-active { background: var(--vs-surface); font-weight: 600; }
.vs-shop__grid { margin-bottom: 40px; }
.vs-loadmore { text-align: center; padding: 10px 0 60px; }

/* ---------- Product page ---------- */
.vs-product__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.32fr) minmax(430px, 1fr);
	gap: 56px;
	padding-top: 10px;
	padding-bottom: 60px;
	align-items: start;
}
.vs-product__main-img img { width: 100%; object-fit: contain; background: #fff; }
.vs-product__thumbs-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	margin-top: 0;
}
.vs-product__thumb img { width: 100%; aspect-ratio: 1.02; object-fit: cover; background: var(--vs-surface); }
.vs-product__summary { position: sticky; top: calc(var(--vs-header-h) + var(--vs-announce-h) + 20px); }
.vs-product__sku { font-size: 12.5px; color: var(--vs-gray); margin-bottom: 10px; }
.vs-product__title { font-size: 30px; font-weight: 800; margin-bottom: 10px; }
.vs-product__price { font-size: 22px; font-weight: 700; margin-bottom: 8px; }
.vs-product__price del { color: var(--vs-gray-light); font-size: 16px; font-weight: 400; margin-right: 8px; }
.vs-product__price ins { text-decoration: none; }
.vs-product__price-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.vs-product__price-row .vs-product__price { margin-bottom: 0; }
.vs-price-off {
	display: inline-flex;
	align-items: center;
	height: 24px;
	padding: 0 9px;
	border-radius: 5px;
	background: var(--vs-sale);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .2px;
	line-height: 1;
}
.vs-price-off[hidden] { display: none; }

/* native variation selects stay in the DOM for WooCommerce, visually hidden */
.vs-variations {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}
/* the summary owns the price + availability, so drop WooCommerce's duplicate */
.single_variation .woocommerce-variation-price,
.single_variation .woocommerce-variation-availability { display: none; }
.single_variation { margin: 0; }
.reset_variations[hidden],
.reset_variations[style*="display: none"] { display: none !important; }
.reset_variations { font-size: 12.5px; color: var(--vs-gray); margin-top: 10px; display: none; }
.wc-variation-selection-needed .reset_variations { display: none; }
/* gate the button until a valid combination is chosen */
.vs-cart-form .single_add_to_cart_button[disabled],
.vs-cart-form .single_add_to_cart_button.disabled,
.wc-variation-selection-needed .single_add_to_cart_button {
	opacity: .45;
	cursor: not-allowed;
	pointer-events: none;
}
.vs-product__intro { font-size: 13.5px; color: var(--vs-gray); margin: 16px 0 0; }

/* options */
.vs-cart-form { margin-top: 16px; }
.vs-cart-form table.variations { display: none; }
.vs-cart-form .reset { display: none; }
.vs-cart-form .woocommerce-variation-price { display: none; }
.vs-cart-form .single_variation_wrap { display: none; }
.vs-opt { margin: 16px 0 6px; }
.vs-opt__label { font-weight: 700; font-size: 13.5px; margin-bottom: 9px; }
.vs-opt__pills { display: flex; gap: 10px; flex-wrap: wrap; }
.vs-pill {
	min-width: 52px;
	padding: 10px 16px;
	background: #fff;
	border: 1px solid var(--vs-border);
	font-size: 13px;
	font-weight: 500;
	color: var(--vs-text);
	transition: border-color .15s, background .15s;
}
.vs-pill.is-selected { border-color: #000; background: #fff; box-shadow: 0 0 0 1px #000 inset; }
.vs-pill.is-disabled { color: #b9b9b9; position: relative; overflow: hidden; }
.vs-pill.is-disabled::after {
	content: '';
	position: absolute;
	left: -6px;
	top: 50%;
	width: 120%;
	height: 1px;
	background: #c4c4c4;
	transform: rotate(-14deg);
}
.vs-colorswatches { display: flex; gap: 12px; margin: 8px 0 4px; }
.vs-colorswatch {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--vs-border);
	padding: 3px;
	background: #fff;
}
.vs-colorswatch i {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: var(--swatch, #000);
}
.vs-colorswatch.is-selected { border-color: #000; box-shadow: 0 0 0 1.4px #000 inset; }
.vs-sizeguide {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .4px;
	color: var(--vs-text);
	border-bottom: 1px dashed var(--vs-gray-light);
	padding: 12px 0 4px;
}
.vs-sizeguide svg { transform: rotate(-90deg); }

/* buy row */
.vs-buyrow {
	display: flex;
	gap: 16px;
	align-items: stretch;
	margin-top: 18px;
}
.vs-qty {
	display: flex;
	align-items: center;
	border: 1px solid var(--vs-border);
	background: #fff;
}
.vs-qty__btn {
	background: none;
	border: 0;
	padding: 12px 13px;
	color: var(--vs-text);
	display: inline-flex;
}
.vs-qty input[type="number"] {
	width: 44px;
	border: 0;
	background: #fff;
	box-shadow: none;
	text-align: center;
	font-size: 14.5px;
	font-weight: 600;
	-moz-appearance: textfield;
}
.vs-qty input::-webkit-outer-spin-button, .vs-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vs-share { display: flex; align-items: center; gap: 10px; margin-top: 22px; font-size: 13.5px; }

/* accordion */
.vs-accordion { border-bottom: 1px solid var(--vs-border); margin-top: 14px; }
.vs-accordion__head {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: none;
	border: 0;
	padding: 16px 0;
	font-family: var(--vs-font-head);
	font-size: 16.5px;
	font-weight: 700;
	color: var(--vs-text);
}
.vs-accordion__body { display: none; padding: 0 0 16px; font-size: 13.5px; color: var(--vs-gray); }
.vs-accordion.is-open .vs-accordion__body { display: block; }
.vs-accordion__icon { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; flex: none; }
.vs-accordion__icon svg { display: none; width: 15px; height: 15px; }
.vs-accordion__icon svg:first-child { display: block; }
.vs-accordion.is-open .vs-accordion__icon svg:first-child { display: none; }
.vs-accordion.is-open .vs-accordion__icon svg:last-child { display: block; }
.vs-accordion__head:hover .vs-accordion__icon { opacity: .6; }

/* specs + geometry */
.vs-specs { padding-bottom: 30px; }
.vs-specs__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13.5px;
	max-width: 100%;
	overflow-x: auto;
	display: block;
	white-space: nowrap;
}
.vs-specs__table thead { background: #9d9d9d; color: #fff; }
.vs-specs__table th { font-weight: 700; text-align: left; padding: 10px 18px; }
.vs-specs__table td { padding: 9px 18px; border-bottom: 1px solid var(--vs-border); }
.vs-specs__table td:first-child { font-weight: 700; width: 150px; vertical-align: top; }
.vs-specs__table td:nth-child(2) { width: 200px; }
.vs-geometry { padding-bottom: 50px; }
.vs-geometry__heading { font-size: 17px; font-weight: 700; margin-bottom: 16px; }
.vs-geometry img { max-width: 470px; background: #fff; }

/* media grid */
.vs-mediagrid { background: #000; padding: 50px 0 56px; }
.vs-mediagrid__title {
	color: #fff;
	font-size: 36px;
	font-weight: 800;
	max-width: var(--vs-container);
	margin: 0 auto 30px;
	padding: 0 24px;
}
.vs-mediagrid__row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 4px;
	padding: 0 4px;
}
.vs-mediagrid__card { position: relative; display: block; overflow: hidden; }
.vs-mediagrid__card img { width: 100%; aspect-ratio: 0.98; object-fit: cover; transition: transform .5s; }
.vs-mediagrid__card:hover img { transform: scale(1.04); }
.vs-mediagrid__label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 26px;
	text-align: center;
	color: #fff;
	font-family: var(--vs-font-head);
	font-size: 27px;
	font-weight: 700;
	text-shadow: 0 2px 10px rgba(0,0,0,.45);
}

/* related */
.vs-related { padding: 40px 0 60px; }
.vs-related .vs-section__title { font-size: 24px; }

/* sticky atc */
.vs-stickyatc {
	position: fixed;
	left: 26px;
	bottom: 26px;
	z-index: 75;
	display: flex;
	align-items: center;
	gap: 14px;
	background: #000;
	color: #fff;
	border-radius: 16px;
	padding: 12px 16px 12px 12px;
	box-shadow: 0 10px 26px rgba(0,0,0,.3);
	transition: transform .3s ease, opacity .3s;
}
.vs-stickyatc[hidden] { display: none; }
.vs-stickyatc__thumb img { width: 58px; height: 58px; object-fit: contain; background: #fff; border-radius: 10px; padding: 4px; }
.vs-stickyatc__meta a { display: block; font-size: 12.5px; }
.vs-stickyatc__price { font-size: 14.5px; }
.vs-stickyatc__btn {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: 1px solid #fff;
	background: transparent;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* generic page + prose */
.vs-page-wrap { padding-bottom: 60px; }
.vs-page-wrap .vs-page-title { margin: 6px 0 30px; }
.vs-prose { max-width: 860px; font-size: 15px; line-height: 1.75; color: #333; }
.vs-prose img { margin: 12px 0; max-width: 100%; height: auto; }
.vs-prose > *:first-child { margin-top: 0; }
.vs-prose h2 {
	font-size: 22px;
	font-weight: 700;
	color: #111;
	margin: 34px 0 12px;
	padding-top: 4px;
}
.vs-prose h3 {
	font-size: 17px;
	font-weight: 700;
	color: #111;
	margin: 26px 0 10px;
}
.vs-prose p { margin: 0 0 14px; }
.vs-prose ul, .vs-prose ol { margin: 0 0 16px; padding-left: 20px; }
.vs-prose li { margin-bottom: 7px; }
.vs-prose a { color: #111; text-decoration: underline; text-underline-offset: 2px; }
.vs-prose a:hover { opacity: .6; }
.vs-prose strong { color: #111; font-weight: 700; }
.vs-prose hr { border: 0; border-top: 1px solid #e6e6e6; margin: 28px 0; }
.vs-prose table {
	width: 100%;
	border-collapse: collapse;
	margin: 8px 0 22px;
	font-size: 14px;
}
.vs-prose th, .vs-prose td {
	border: 1px solid #e6e6e6;
	padding: 10px 12px;
	text-align: left;
	vertical-align: top;
}
.vs-prose th { background: var(--vs-surface); font-weight: 700; color: #111; }
.vs-prose details {
	border: 1px solid #e6e6e6;
	border-radius: 6px;
	padding: 0 16px;
	margin-bottom: 10px;
	background: #fff;
}
.vs-prose details[open] { padding-bottom: 14px; }
.vs-prose summary {
	cursor: pointer;
	font-weight: 700;
	color: #111;
	padding: 14px 0;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}
.vs-prose summary::-webkit-details-marker { display: none; }
.vs-prose summary::after { content: "+"; font-size: 18px; line-height: 1; color: #888; }
.vs-prose details[open] summary::after { content: "–"; }
.vs-prose summary + p { margin-top: 4px; }

/* brand index page */
.vs-brand-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin: 8px 0 26px;
}
.vs-brand-grid a {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 16px 14px;
	border: 1px solid #e6e6e6;
	border-radius: 6px;
	text-decoration: none;
	color: #111;
	transition: border-color .18s ease, transform .18s ease;
}
.vs-brand-grid a:hover { border-color: #111; transform: translateY(-2px); opacity: 1; }
.vs-brand-grid span:first-child { font-weight: 700; font-size: 14px; letter-spacing: .03em; }
.vs-brand-grid span:last-child { font-size: 12px; color: #888; }

/* outlet / category product grid inside a page */
.vs-page-products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
	margin: 10px 0 24px;
}
.vs-page-products a {
	display: block;
	text-decoration: none;
	color: #111;
}
.vs-page-products img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: var(--vs-surface);
	border-radius: 4px;
	margin: 0 0 10px;
}
.vs-page-products .vs-pp-name { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 4px; }
.vs-page-products .vs-pp-price { display: block; font-size: 13px; font-weight: 700; }
.vs-page-products .vs-pp-price del { font-weight: 400; color: #999; margin-right: 6px; }
.vs-page-products .vs-pp-price ins { text-decoration: none; }

@media (max-width: 989px) {
	.vs-brand-grid { grid-template-columns: repeat(2, 1fr); }
	.vs-page-products { grid-template-columns: repeat(3, 1fr); gap: 16px; }
}
@media (max-width: 640px) {
	.vs-brand-grid { grid-template-columns: repeat(2, 1fr); }
	.vs-page-products { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.vs-prose { font-size: 14px; }
	.vs-prose h2 { font-size: 19px; }
}
.vs-pagination { padding: 30px 0; }

/* Storefront/Woo leftovers we don't render */
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; }
.woocommerce-notices-wrapper .woocommerce-message, .woocommerce-notices-wrapper .woocommerce-info, .woocommerce-notices-wrapper .woocommerce-error {
	background: var(--vs-surface);
	padding: 12px 18px;
	margin: 16px 0;
	border-top: none;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1090px) {
	.vs-mega__cols--6 { grid-template-columns: repeat(3, 1fr); row-gap: 30px; }
	.vs-product__grid { grid-template-columns: 1fr 1fr; gap: 30px; }
	.vs-product__summary { position: static; }
}

@media (max-width: 989px) {
	:root { --vs-header-h: 60px; }
	.vs-container { padding-left: 20px; padding-right: 20px; }
	.vs-announce__inner { gap: 14px; padding: 0 14px; height: auto; min-height: var(--vs-announce-h); }
	.vs-announce__text { white-space: normal; overflow: visible; font-size: 12px; line-height: 1.35; padding: 6px 0; }
	.vs-announce__arrow:first-of-type { left: 18px; position: static; transform: none; }
	.vs-announce__arrow:last-of-type { right: auto; position: static; transform: none; }
	.vs-announce__arrow { display: inline-flex; }
	.vs-announce__inner { justify-content: center; }
	.vs-header__inner {
		display: grid;
		grid-template-columns: 44px 1fr auto;
		gap: 8px;
	}
	.vs-burger { display: flex; }
	.vs-nav { display: none; }
	.vs-header__logo { justify-self: center; }
	.vs-header__logo img { height: 32px; }
	.vs-header__icons { gap: 2px; justify-self: end; }
	.vs-icon-btn { padding: 7px; }
	.vs-icon-btn--account { display: inline-flex; }
	.vs-hero { padding: 0 20px 18px; }
	.vs-hero .vs-slider__track { height: 550px; border-radius: 12px; }
	.vs-hero__cta {
		left: 50%;
		right: auto;
		bottom: 98px;
		transform: translateX(-50%);
		font-size: 13px;
		padding: 11px 18px;
		gap: 10px;
	}
	.vs-hero__dots {
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		bottom: 44px;
		gap: 6px;
	}
	.vs-banners__slide { flex-basis: 90vw; }
	.vs-banners .vs-slider__strip { gap: 14px; padding: 28px 0; }
	.vs-banners__arrows { right: 18px; bottom: 13px; }
	.vs-section { padding: 30px 0 40px; }
	.vs-section__title { font-size: 20px; margin-bottom: 18px; }
	.vs-section__title--h1 { font-size: 26px; }
	.vs-grid--4 { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.vs-grid--3 { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.vs-grid--5 { grid-template-columns: repeat(2, 1fr); }
	.vs-overlap { padding: 46px 0; }
	.vs-overlap__grid {
		grid-template-columns: 1fr;
		gap: 28px;
		padding: 0 20px;
	}
	.vs-overlap__title { font-size: 26px; }
	.vs-overlap__products { max-width: 480px; }
	.vs-wtb { padding: 46px 0; }
	.vs-wtb__row { gap: 46px; }
	.vs-wtb__icon { width: 86px; }
	.vs-footer__top { flex-direction: column; padding: 36px 0 20px; }
	.vs-footer__cols { gap: 30px; }
	.vs-footer__bottom { flex-direction: column; align-items: flex-start; padding-bottom: 80px; }
	.vs-dock {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 85;
		background: #fff;
		border-top: 1px solid var(--vs-border);
		box-shadow: 0 -6px 18px rgba(0,0,0,.08);
	}
	.vs-dock__item {
		flex: 1;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 3px;
		background: none;
		border: 0;
		font-size: 10px;
		color: var(--vs-text);
		padding: 8px 0 9px;
	}
	.vs-dock__burger { display: inline-flex; flex-direction: column; gap: 4px; }
	.vs-dock__burger i { width: 16px; height: 1.6px; background: var(--vs-text); display: block; }
	.vs-scrolltop { bottom: 76px; right: 18px; }
	.vs-page-title { font-size: 26px; margin-top: 18px; }
	.vs-toolbar { padding: 12px 0 18px; flex-wrap: wrap; }
	/* product page */
	.vs-product__grid { grid-template-columns: 1fr; gap: 22px; }
	.vs-product__title { font-size: 23px; }
	.vs-product__price { font-size: 18px; }
	.vs-buyrow { flex-wrap: wrap; }
	.vs-btn-dark { min-width: 62%; }
	.vs-mediagrid__title { font-size: 24px; }
	.vs-mediagrid__row { grid-template-columns: 1fr; }
	.vs-mediagrid__row .vs-mediagrid__card:not(:first-child) { display: none; }
	.vs-stickyatc { left: 16px; right: auto; bottom: 66px; padding: 8px 12px 8px 8px; }
	.vs-stickyatc__thumb img { width: 46px; height: 46px; }
	.vs-banners__slide { flex-basis: 88vw; }
	.vs-banners__arrows { right: 16px; bottom: 20px; }
	.vs-banners .vs-slider__track { padding: 22px 0; }
	.vs-specs__table { white-space: normal; display: table; }
	.vs-specs__table td:first-child, .vs-specs__table td:nth-child(2) { width: auto; }
}

@media (max-width: 640px) {
	.vs-grid--3, .vs-grid--4, .vs-grid--5 { grid-template-columns: repeat(2, 1fr); }
	.vs-section__title--h1 { font-size: 22px; }
	.vs-hero .vs-slider__track { height: 480px; }
	.vs-hero__cta { font-size: 12.5px; padding: 9px 14px; gap: 8px; }
	.vs-toolbar__actions { gap: 10px; }
	.vs-buyrow .vs-btn-dark { min-width: 100%; }
	.vs-wtb__row { gap: 40px; }
	.vs-footer__cols { gap: 24px 40px; }
}

/* Related cards follow the source: name + price only, no stock badges */
.vs-related .vs-badge { display: none; }

/* Icon sizing guards for fixed-size icon buttons (flex intrinsic-size quirk) */
.vs-stickyatc__btn svg { width: 14px; height: 14px; flex: none; }
.vs-social svg { flex: none; }
.vs-dock__item svg { flex: none; }

/* ---------- 404 ---------- */
.vs-404 { padding: 70px 0 90px; text-align: center; }
.vs-404__inner { max-width: 720px; margin: 0 auto; }
.vs-404__code {
	font-size: 92px;
	line-height: 1;
	font-weight: 800;
	letter-spacing: -.03em;
	margin: 0 0 10px;
	color: #111;
}
.vs-404__title { margin: 0 0 14px; }
.vs-404__text { font-size: 15px; color: #666; margin: 0 auto 26px; max-width: 520px; }
.vs-404__actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 34px;
}
.vs-404__actions .vs-btn-dark,
.vs-404__actions .vs-btn-outline { min-width: 170px; }
.vs-404__cats-title { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #999; margin-bottom: 12px; }
.vs-404__cats ul { list-style: none; margin: 0 0 34px; padding: 0; display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.vs-404__cats a {
	display: inline-block;
	border: 1px solid #e2e2e2;
	border-radius: 999px;
	padding: 8px 16px;
	font-size: 13px;
	color: #111;
	text-decoration: none;
	transition: border-color .18s ease, background .18s ease;
}
.vs-404__cats a:hover { border-color: #111; background: #f6f6f6; }
.vs-404__search form { display: flex; gap: 8px; max-width: 440px; margin: 0 auto; }
.vs-404__search input[type="search"] {
	flex: 1;
	border: 1px solid #ddd;
	border-radius: 999px;
	padding: 11px 18px;
	font-size: 14px;
	outline: none;
}
.vs-404__search input[type="search"]:focus { border-color: #111; }
.vs-404__search button {
	border: 0;
	border-radius: 999px;
	background: #111;
	color: #fff;
	padding: 0 24px;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}
.vs-404__search button:hover { opacity: .85; }
@media (max-width: 640px) {
	.vs-404 { padding: 44px 0 60px; }
	.vs-404__code { font-size: 64px; }
}

/* very small phones: keep the lockup clear of the header icons */
@media (max-width: 400px) {
	.vs-header__logo img { height: 29px; }
	.vs-header__icons { gap: 0; }
	.vs-icon-btn { padding: 6px; }
}

/* =========================================================================
   WooCommerce block cart / checkout (Renmin Fresh)
   The blocks are React-rendered: keep layout width above 920px so WooCommerce
   switches to its two-column checkout (is-large) instead of the mobile stack.
   ========================================================================= */
.vs-prose:has(.wp-block-woocommerce-checkout),
.vs-prose:has(.wp-block-woocommerce-cart),
body.woocommerce-checkout .vs-prose,
body.woocommerce-cart .vs-prose { max-width: none; }
body.woocommerce-checkout .vs-page-title,
body.woocommerce-cart .vs-page-title { margin-bottom: 26px; }

/* --- shared typography --- */
.wc-block-checkout,
.wp-block-woocommerce-cart { font-family: var(--vs-font-body); color: var(--vs-text); }
.wc-block-checkout .wc-block-components-checkout-step__title,
.wc-block-checkout .wc-block-components-title,
.wp-block-woocommerce-cart .wc-block-components-title,
.wc-block-checkout h2 {
	font-family: var(--vs-font-head);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .2px;
	color: var(--vs-text);
}
.wc-block-checkout .wc-block-components-checkout-step {
	padding-bottom: 18px;
}
.wc-block-checkout .wc-block-components-checkout-step__container { gap: 10px; }

/* --- fields --- */
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-select__container,
.wc-block-components-address-form .wc-block-components-text-input input {
	border-radius: 0;
	border: 1px solid #d5d5d5;
	background: #fff;
	font-size: 14px;
	color: var(--vs-text);
	transition: border-color .15s;
}
.wc-block-components-text-input input { height: 48px; }
.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus { border-color: #111; box-shadow: none; outline: 0; }
.wc-block-components-text-input label,
.wc-block-components-select__label { font-size: 12px; color: #8a8f94; }
.wc-block-components-text-input.has-error input { border-color: #c0392b; }

/* --- order summary card in the right rail --- */
.wp-block-woocommerce-checkout-totals-block { background: transparent; padding: 0; }
.wp-block-woocommerce-checkout-order-summary-block {
	background: #fff;
	border: 1px solid #e4e4e4;
	border-radius: 2px;
	padding: 0;
}
.wc-block-checkout__sidebar.is-sticky { position: sticky; top: calc(var(--vs-header-h) + var(--vs-announce-h) + 20px); align-self: flex-start; }
.wc-block-checkout .wc-block-components-order-summary-item { padding: 14px 0; border-color: #e4e4e4; }
.wc-block-checkout .wc-block-components-order-summary-item__image img { width: 64px; height: 64px; object-fit: cover; background: #fff; }
.wc-block-checkout .wc-block-components-product-name { font-family: var(--vs-font-body); font-size: 14px; font-weight: 600; }
.wc-block-checkout .wc-block-components-order-summary-item__description { font-size: 13px; }
.wc-block-checkout .wc-block-components-order-summary-item__total-price { font-weight: 700; font-size: 13.5px; }
/* one price per row is enough: the rail already shows the line total */
.wc-block-checkout .wc-block-cart-item__prices,
.wc-block-checkout .wc-block-components-sale-badge { display: none; }
.wc-block-checkout .wc-block-components-totals-item {
	padding: 10px 0;
	font-size: 13.5px;
	border-color: #e4e4e4;
}
.wc-block-checkout .wc-block-components-totals-item__label { color: #4a4f54; }
.wc-block-checkout .wc-block-components-totals-footer-item {
	padding-top: 14px;
	margin-top: 4px;
	border-top: 1px solid #ddd;
}
.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 17px; font-weight: 800; }
.wc-block-checkout .wc-block-components-totals-coupon-link { font-size: 13px; text-decoration: underline; }

/* --- shipping option rows --- */
.wc-block-checkout .wc-block-components-shipping-rates-control__package {
	border: 1px solid #e1e1e1;
	border-radius: 0;
	padding: 14px 16px;
}
.wc-block-checkout .wc-block-components-radio-control__option { font-size: 13.5px; }

/* --- place order --- */
.wc-block-checkout .wc-block-components-checkout-place-order-button,
.wc-block-checkout .wc-block-components-button.wc-block-components-checkout-place-order-button {
	background: #000;
	color: #fff;
	border: 0;
	border-radius: 999px;
	height: 50px;
	font-family: var(--vs-font-body);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .3px;
}
.wc-block-checkout .wc-block-components-checkout-place-order-button:hover { opacity: .86; background: #000; color: #fff; }

/* --- express payment: keep it compact & on-brand --- */
.wc-block-checkout .wc-block-components-express-payment { margin-bottom: 22px; }

/* --- cart page --- */
.wp-block-woocommerce-cart .wc-block-cart-items__header { font-size: 12px; letter-spacing: .4px; text-transform: uppercase; color: #8a8f94; }
.wp-block-woocommerce-cart .wc-block-cart-item__image img { width: 84px; height: 84px; object-fit: cover; }
.wp-block-woocommerce-cart .wc-block-cart__submit-button {
	background: #000;
	color: #fff;
	border: 0;
	border-radius: 999px;
	font-weight: 700;
	height: 50px;
}
.wp-block-woocommerce-cart .wc-block-cart__submit-button:hover { background: #000; opacity: .86; }

@media (max-width: 1000px) {
	.wp-block-woocommerce-checkout-totals-block { background: transparent; padding: 0; }
	.wc-block-checkout__sidebar.is-sticky { position: static; }
}

/* -------------------------------------------------------------------------
   Focus ring
   Storefront ships `a:focus,input:focus,textarea:focus,button:focus
   { outline: 2px solid #7f54b3 }`, which paints a purple box on every click.
   Replace it with a neutral ring that only shows up for keyboard navigation.
   ------------------------------------------------------------------------- */
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus,
summary:focus,
[tabindex]:focus { outline: 0; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible { outline: 2px solid #111; outline-offset: 2px; }

/* the block cart/checkout already signals focus with its own border colour */
.wc-block-checkout :focus-visible,
.wp-block-woocommerce-cart :focus-visible,
.wc-block-components-text-input input:focus-visible,
.wc-block-components-textarea:focus-visible,
.wc-block-components-select__container:focus-visible { outline: 0; }

/* on dark surfaces the black ring is invisible — flip it to white */
.vs-footer a:focus-visible,
.vs-footer button:focus-visible,
.vs-announce a:focus-visible,
.vs-announce button:focus-visible { outline-color: #fff; }

/* the quantity stepper should not draw a ring around the inner input */
.vs-qty input.qty:focus-visible { outline: 0; }

/* Buy now mirrors WooCommerce's add-to-cart gate: locked until a variation
   combination is chosen (the class is toggled from veloshop.js). It stays
   clickable on purpose so a click can point the shopper at the size picker. */
.vs-btn-buynow.is-disabled,
.vs-btn-buynow[aria-disabled="true"] {
	opacity: .42;
	border-color: #c9c9c9;
	color: #8c8c8c;
	cursor: not-allowed;
}
.vs-btn-buynow.is-disabled:hover,
.vs-btn-buynow[aria-disabled="true"]:hover { background: #fff; color: #8c8c8c; }

/* short pulse on the option group when Buy now is clicked too early */
@keyframes vs-hint-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); }
	40% { box-shadow: 0 0 0 3px rgba(0, 0, 0, .16); }
}
.vs-opt.is-hint .vs-opt__pills,
.vs-opt.is-hint .vs-colorswatches { animation: vs-hint-pulse .55s ease-in-out 2; border-radius: 4px; }

/* coupon row: same flat surface + padding as the totals rows */
.wc-block-checkout .wc-block-components-panel__button { background: transparent; }
.wc-block-checkout .wc-block-components-totals-wrapper,
.wc-block-checkout .wc-block-components-panel__button,
.wc-block-checkout .wc-block-components-order-summary-item { padding-left: 20px; padding-right: 20px; }

/* cart: sale badge is redundant next to the struck-through price */
.wp-block-woocommerce-cart .wc-block-components-sale-badge { display: none; }
/* cart: one clean control for the quantity stepper */
.wp-block-woocommerce-cart .wc-block-components-quantity-selector {
	border: 1px solid #e1e1e1;
	background: #fff;
	border-radius: 2px;
	overflow: hidden;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__input { border: 0; }

/* mobile: WooCommerce renders its own collapsible summary — drop our card frame */
@media (max-width: 1000px) {
	.wp-block-woocommerce-checkout-order-summary-block { border: 0; background: transparent; }
}

/* long spec tables coming from imported product content: scroll instead of squash */
.vs-accordion__body table {
	display: block;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	white-space: normal;
	border-collapse: collapse;
	font-size: 12.5px;
}
.vs-accordion__body table td,
.vs-accordion__body table th { white-space: normal; overflow-wrap: break-word; }
/* keep the label column on one line so words are not chopped mid-syllable */
.vs-accordion__body table td:first-child,
.vs-accordion__body table th:first-child { white-space: nowrap; }
.vs-accordion__body table td,
.vs-accordion__body table th { padding: 6px 8px; border: 1px solid #e1e1e1; }
.vs-accordion__body img { max-width: 100%; height: auto; margin: 10px 0; }
