/* ═══════════════════════════════════════════════════════════════
   Vježbaonica Sreće — WooCommerce overrides
   Shop hero · Filter · Grid · Card · Single product · Cart · Checkout · Mini-cart
   ═══════════════════════════════════════════════════════════════ */

/* ════════ SHOP HERO ════════ */
.shop-hero,
.woocommerce-shop .page-hero {
	min-height: 44vh;
	display: flex; align-items: center; justify-content: center;
	text-align: center;
	padding: 130px 48px 60px;
	position: relative; z-index: 2; overflow: hidden;
	background: transparent;
}
.shop-hero-bg {
	position: absolute; inset: 0; z-index: 0;
	background-position: center; background-size: cover; background-repeat: no-repeat;
	opacity: 0; transition: opacity .8s;
}
[data-theme="light"] .shop-hero-bg { opacity: .07; }
[data-theme="dark"]  .shop-hero-bg { opacity: .04; }
.shop-hero-content { position: relative; z-index: 2; max-width: 720px; }

.hero-icons {
	display: flex; justify-content: center;
	gap: 14px; margin-bottom: 20px;
}
.hi-icon {
	font-size: 32px; opacity: 0;
	animation: vs-hi-entry .6s var(--spring) both,
	           vs-hi-bounce var(--hd, 1.4s) ease-in-out var(--hd2, 0s) infinite;
}
.hi-icon:nth-child(1) { --hd: 1.4s; --hd2: 0s;  animation-delay: .4s, .4s; }
.hi-icon:nth-child(2) { --hd: 1.6s; --hd2: .2s; animation-delay: .55s, .55s; }
.hi-icon:nth-child(3) { --hd: 1.3s; --hd2: .4s; animation-delay: .7s, .7s; }
.hi-icon:nth-child(4) { --hd: 1.5s; --hd2: .6s; animation-delay: .85s, .85s; }
.hi-icon:nth-child(5) { --hd: 1.7s; --hd2: .8s; animation-delay: 1s, 1s; }

/* Hero bee illustrations — replace the emoji icon row on the shop header. */
.hero-icons.hero-bees { gap: clamp(8px, 3vw, 30px); align-items: flex-end; }
.hi-bee {
	width: clamp(52px, 8vw, 92px); height: auto; display: block;
	opacity: 0;
	filter: drop-shadow(0 10px 16px rgba(30, 10, 46, .16));
	animation: vs-hi-entry .6s var(--spring) both,
	           vs-bee-float var(--hd, 4s) ease-in-out var(--hd2, 0s) infinite;
	will-change: transform;
}
.hi-bee:nth-child(1) { --hd: 4.2s; --hd2: 0s;   animation-delay: .30s, .30s; }
.hi-bee:nth-child(2) { --hd: 3.6s; --hd2: .4s;  animation-delay: .45s, .45s; }
.hi-bee:nth-child(3) { --hd: 4.6s; --hd2: .8s;  animation-delay: .60s, .60s; }
.hi-bee:nth-child(4) { --hd: 3.9s; --hd2: 1.2s; animation-delay: .75s, .75s; }
@keyframes vs-bee-float {
	0%, 100% { transform: translateY(0) rotate(-3deg); }
	50%      { transform: translateY(-12px) rotate(3deg); }
}
@keyframes vs-hi-entry {
	from { opacity: 0; transform: translateY(30px) scale(0); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes vs-hi-bounce {
	0%, 100% { transform: translateY(0) rotate(0); }
	50%      { transform: translateY(-10px) rotate(5deg); }
}

.shop-hero h1 {
	font-family: var(--vs-font-display); font-weight: 900;
	font-size: clamp(36px, 4.5vw, 60px);
	line-height: 1.1; margin-bottom: 14px;
	color: var(--text);
	animation: vs-fade-up .8s var(--ease) both 1s;
}
.shop-hero p {
	font-size: 16px; color: var(--text2);
	line-height: 1.7; margin-bottom: 28px;
	animation: vs-fade-up .8s var(--ease) both 1.15s;
}

/* ════════ FILTER BAR (normal flow — scrolls off with the page) ════════ */
.filter-wrap {
	position: relative;
	z-index: 3;
	background: var(--bg);
	border-bottom: 1.5px solid var(--border);
	padding: 14px 0;
	margin: 0;
	transition: background .4s;
}
/* Tight against the hero and the grid below — no whitespace between sections. */
.shop-hero + .filter-wrap,
.vs-breadcrumbs + .filter-wrap { margin-top: 0; }
.filter-wrap + .vs-breadcrumbs,
.filter-wrap + .shop-layout { margin-top: 0; }
.filter-inner {
	max-width: 1440px; margin: 0 auto;
	padding: 0 80px;
	display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
}
.filter-label {
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 13px; color: var(--muted);
	margin-right: 4px;
}
.filter-btn {
	background: transparent;
	border: 1.5px solid var(--border2);
	color: var(--text2);
	font-family: var(--vs-font-body); font-weight: 600;
	font-size: 13px; padding: 6px 16px;
	border-radius: 50px; cursor: pointer;
	transition: all .25s var(--ease);
}
.filter-btn:hover { border-color: var(--pink); color: var(--pink); background: var(--rose); }
.filter-btn.active {
	background: var(--grad); color: #fff;
	border-color: transparent;
	box-shadow: 0 4px 16px rgba(232, 53, 138, .3);
}
[data-theme="dark"] .filter-btn:hover { background: rgba(232, 53, 138, .12); }

.search-wrap { margin-left: auto; position: relative; }
.search-input,
.shop-search input[type="search"] {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: 50px;
	padding: 8px 18px 8px 36px;
	font-size: 14px; color: var(--text);
	font-family: var(--vs-font-body);
	outline: none; width: 220px;
	transition: border-color .25s, box-shadow .25s, width .3s;
}
.search-input:focus { border-color: var(--pink); box-shadow: 0 0 0 3px rgba(232, 53, 138, .12); width: 260px; }
.search-icon {
	position: absolute; left: 13px; top: 50%;
	transform: translateY(-50%);
	font-size: 13px; color: var(--muted);
	pointer-events: none;
}
.search-suggest {
	position: absolute; top: calc(100% + 8px); right: 0;
	width: 360px; max-width: 90vw;
	background: var(--card-bg); border: 1.5px solid var(--border);
	border-radius: var(--rad-md);
	box-shadow: var(--shadow-lg);
	padding: 8px; z-index: 110;
	display: none;
}
.search-suggest.is-open { display: block; }
.suggest-item {
	display: flex; gap: 12px; align-items: center;
	padding: 8px 10px; border-radius: 12px;
	text-decoration: none; color: var(--text);
	transition: background .15s;
}
.suggest-item:hover { background: var(--bg2); color: var(--text); }
.suggest-thumb {
	width: 44px; height: 44px; border-radius: 10px;
	overflow: hidden; flex-shrink: 0; background: var(--bg2);
}
.suggest-thumb img { width: 100%; height: 100%; object-fit: cover; }
.suggest-text { flex: 1; min-width: 0; }
.suggest-title { font-weight: 700; font-size: 14px; line-height: 1.3; }
.suggest-price { font-size: 13px; color: var(--pink); font-family: var(--vs-font-accent); font-weight: 700; }

.sort-select,
.woocommerce-ordering select {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: 50px;
	padding: 8px 16px;
	font-size: 13px; color: var(--text2);
	font-family: var(--vs-font-body);
	cursor: pointer; outline: none;
	transition: border-color .25s;
}
.sort-select:focus,
.woocommerce-ordering select:focus { border-color: var(--pink); }
.woocommerce-ordering { margin-left: auto; }

/* ════════ SHOP LAYOUT ════════ */
.woocommerce-shop .site-main,
.woocommerce.archive .site-main,
.tax-product_cat .site-main {
	position: relative; z-index: 2;
	padding: 0;
}
.shop-layout {
	max-width: 1440px; margin: 0 auto;
	padding: 24px 80px 80px;
	position: relative; z-index: 2;
}
/* Flush against filter bar — no gap between sections. */
.filter-wrap + .shop-layout { padding-top: 24px; }

.results-bar {
	display: flex; align-items: center; justify-content: space-between;
	margin-bottom: 28px; flex-wrap: wrap; gap: 12px;
}
.results-count,
.woocommerce-result-count {
	font-size: 14px; color: var(--muted); font-weight: 600;
	margin: 0;
}
.results-count strong,
.woocommerce-result-count strong { color: var(--text); }

.view-toggle { display: flex; gap: 6px; }
.view-btn {
	width: 36px; height: 36px; border-radius: 10px;
	border: 1.5px solid var(--border);
	background: transparent; cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	font-size: 16px; color: var(--muted);
	transition: all .25s;
}
.view-btn.active,
.view-btn:hover {
	background: var(--rose); border-color: var(--pink); color: var(--pink);
}
[data-theme="dark"] .view-btn.active,
[data-theme="dark"] .view-btn:hover { background: rgba(232, 53, 138, .12); }

/* ════════ PRODUCT GRID — v2 mockup ════════ */
.products.prod-grid,
.prod-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	transition: all .3s var(--ease);
	margin: 0;
	padding: 0;
	list-style: none;
}
.products.columns-1, .prod-grid.columns-1 { grid-template-columns: 1fr; }
.products.columns-2, .prod-grid.columns-2 { grid-template-columns: repeat(2, 1fr); }
.products.columns-3, .prod-grid.columns-3 { grid-template-columns: repeat(3, 1fr); }
.products.columns-4, .prod-grid.columns-4 { grid-template-columns: repeat(4, 1fr); }
.prod-grid.list-view,
.products.list-view { grid-template-columns: 1fr; }

/* ════════ SHOP CARD — v2 mockup ════════ */
.shop-card {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	overflow: hidden;
	box-shadow: var(--shadow);
	transition: transform .35s var(--ease), box-shadow .35s, border-color .25s, opacity .35s;
	position: relative;
	cursor: default;
	opacity: 0;
	animation: vs-card-in .6s var(--ease) both;
	display: flex;
	flex-direction: column;
}
@keyframes vs-card-in {
	from { transform: translateY(30px) scale(.96); opacity: 0; }
	to   { transform: translateY(0) scale(1); opacity: 1; }
}
.shop-card:nth-child(1)  { animation-delay: .05s; }
.shop-card:nth-child(2)  { animation-delay: .12s; }
.shop-card:nth-child(3)  { animation-delay: .19s; }
.shop-card:nth-child(4)  { animation-delay: .26s; }
.shop-card:nth-child(5)  { animation-delay: .33s; }
.shop-card:nth-child(6)  { animation-delay: .40s; }
.shop-card:nth-child(7)  { animation-delay: .47s; }
.shop-card:nth-child(8)  { animation-delay: .54s; }
.shop-card:nth-child(9)  { animation-delay: .61s; }
.shop-card:hover {
	transform: translateY(-10px);
	box-shadow: var(--shadow-lg);
	border-color: var(--pink);
}
.shop-card.hidden { display: none; }
.shop-card-link {
	position: absolute; inset: 0;
	z-index: 1;
	text-indent: -9999px;
	overflow: hidden;
}

/* card image — uniform 4:5 "stage": product centered on white with equal padding + soft grounding shadow */
.shop-card .card-img {
	aspect-ratio: 4 / 5;
	height: auto;
	display: flex; align-items: center; justify-content: center;
	font-size: 68px;
	position: relative; overflow: hidden;
	transition: transform .4s var(--ease);
	background-color: #fff;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	background-origin: content-box;
	padding: 9%;
	box-sizing: border-box;
}
/* soft grounding shadow so the product feels premium, not floating */
.shop-card .card-img::after {
	content: '';
	position: absolute; left: 22%; right: 22%; bottom: 6.5%;
	height: 4%;
	background: radial-gradient(ellipse at center, rgba(30, 10, 46, .16), rgba(30, 10, 46, 0) 72%);
	filter: blur(4px);
	z-index: 0;
	pointer-events: none;
}
.shop-card:hover .card-img { transform: scale(1.04); }
.shop-card .card-img::before {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.25) 50%, transparent 75%);
	transform: translateX(-100%);
	transition: transform .6s ease;
	pointer-events: none;
}
.shop-card:hover .card-img::before { transform: translateX(200%); }

.shop-card .card-emoji {
	font-size: 68px; line-height: 1;
	position: relative; z-index: 1;
	filter: drop-shadow(0 4px 12px rgba(0,0,0,.12));
}

/* badges */
.card-badges {
	position: absolute; top: 12px; left: 12px;
	z-index: 3;
	display: flex; flex-direction: column; gap: 6px;
	pointer-events: none;
}
.card-badges .badge {
	font-family: var(--vs-font-accent);
	font-weight: 800; font-size: 11px;
	padding: 3px 10px; border-radius: 50px;
	white-space: nowrap; display: inline-block;
	letter-spacing: .02em;
}
.card-badges .badge.sale   { background: var(--grad); color: #fff; }
.card-badges .badge.best   { background: var(--yellow); color: var(--text); }
.card-badges .badge.new    { background: linear-gradient(135deg, var(--mint), #5CE0D5); color: #0D4A40; }
.card-badges .badge.bundle { background: linear-gradient(135deg, var(--purple), var(--lilac)); color: #fff; }

/* wishlist heart */
.shop-card .wishlist-btn {
	position: absolute; top: 12px; right: 12px;
	z-index: 3;
	width: 34px; height: 34px; border-radius: 50%;
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	display: flex; align-items: center; justify-content: center;
	cursor: pointer; font-size: 15px;
	transition: all .25s var(--ease);
	box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.shop-card .wishlist-btn:hover {
	transform: scale(1.2);
	border-color: var(--pink);
	background: var(--rose);
}
.shop-card .wishlist-btn.liked {
	background: var(--rose); border-color: var(--pink);
}

/* card body */
.shop-card .card-body {
	padding: 12px 16px 14px;
	flex: 1;
	display: flex; flex-direction: column;
	position: relative; z-index: 2;
}
/* category + age chips share one row at the top of the body */
.shop-card .card-chips {
	display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
	margin-bottom: 8px;
}
.shop-card .card-category {
	display: inline-flex; align-items: center;
	font-family: var(--vs-font-accent);
	font-weight: 800; font-size: 10.5px;
	letter-spacing: .04em; text-transform: uppercase;
	padding: 3px 11px; border-radius: 50px;
	background: rgba(139, 53, 214, .10);
	color: var(--purple);
	border: 1px solid rgba(139, 53, 214, .2);
}
[data-theme="dark"] .shop-card .card-category { background: rgba(139, 53, 214, .18); color: var(--lilac); }
.shop-card .card-body h3,
.shop-card .woocommerce-loop-product__title {
	font-family: var(--vs-font-display);
	font-weight: 700; font-size: 17px;
	line-height: 1.25;
	margin-bottom: 5px;
	color: var(--text);
}
.shop-card .card-body h3 a,
.shop-card .woocommerce-loop-product__title a {
	color: inherit; text-decoration: none;
	position: relative; z-index: 2;
}
.shop-card .card-body p {
	font-size: 13px;
	color: var(--text2);
	line-height: 1.6;
	margin-bottom: 12px;
}
.shop-card .card-meta {
	display: flex; align-items: center;
	gap: 8px; flex-wrap: wrap;
	margin-bottom: 4px;
}
.shop-card .card-age {
	display: inline-flex; align-items: center; gap: 5px;
	font-weight: 700; font-size: 11px;
	padding: 3px 10px; border-radius: 50px;
	background: var(--rose); color: var(--pink);
	border: 1px solid rgba(232, 53, 138, .2);
}
[data-theme="dark"] .shop-card .card-age { background: rgba(232, 53, 138, .1); }
.shop-card .card-rating {
	display: flex; align-items: center; gap: 4px;
	font-size: 12px; font-weight: 700;
	color: var(--muted);
}
.shop-card .stars { color: var(--yellow); }

.shop-card .card-footer {
	display: flex; align-items: stretch;
	flex-direction: column;
	gap: 8px;
	margin-top: auto; padding-top: 12px;
	border-top: 1px solid var(--border);
}
.shop-card .price-block { line-height: 1; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.shop-card .price-block .price-now,
.shop-card .price-block .price-now bdi,
.shop-card .price-block .woocommerce-Price-amount {
	font-family: var(--vs-font-display);
	font-weight: 700; font-size: 21px;
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	line-height: 1;
}
.shop-card .price-block .price-old,
.shop-card .price-block .price-old bdi {
	font-size: 12px; color: var(--muted);
	text-decoration: line-through;
	margin-top: 0; display: inline-flex; align-items: center;
	background: none;
	-webkit-text-fill-color: var(--muted);
	font-weight: 600;
	font-family: var(--vs-font-body);
}

.shop-card .cart-add-btn {
	background: var(--grad); color: #fff;
	border: none; cursor: pointer;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 13px;
	padding: 9px 16px; border-radius: 12px;
	white-space: nowrap;
	box-shadow: 0 4px 16px rgba(232, 53, 138, .3);
	transition: transform .2s, box-shadow .2s;
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	text-decoration: none; text-align: center;
	width: 100%;
	position: relative; z-index: 2;
}
.shop-card .cart-add-btn:hover {
	transform: translateY(-2px) scale(1.04);
	box-shadow: 0 8px 24px rgba(232, 53, 138, .5);
	color: #fff;
}
.shop-card .cart-add-btn.added,
.shop-card .cart-add-btn.loading {
	background: var(--grad3);
	box-shadow: 0 4px 16px rgba(52, 217, 181, .3);
	color: #0D4A40;
}

/* List view */
.list-view .shop-card {
	display: grid;
	grid-template-columns: 240px 1fr;
}
.list-view .shop-card .card-img {
	aspect-ratio: 4 / 5; height: auto; min-height: 0;
}
.list-view .shop-card .card-body {
	padding: 22px 26px;
	display: flex; flex-direction: column;
	justify-content: space-between;
}
.list-view .shop-card .card-body h3 { font-size: 22px; }

/* ════════ COLOR GRADIENTS for cards ════════ */
.ci1, .pi1 { background: linear-gradient(145deg, #FFF3E0, #FFD09A); }
.ci2, .pi2 { background: linear-gradient(145deg, #F5EEFF, #DDBEFF); }
.ci3, .pi3 { background: linear-gradient(145deg, #E8FFF5, #AAFADE); }
.ci4, .pi4 { background: linear-gradient(145deg, #E8F4FF, #B8DAFF); }
.ci5, .pi5 { background: linear-gradient(145deg, #FFF0F5, #FFB8D4); }
.ci6, .pi6 { background: linear-gradient(145deg, #F0FFF8, #B8FFE2); }
.ci7, .pi7 { background: linear-gradient(145deg, #FFFBE8, #FFE9A0); }
.ci8, .pi8 { background: linear-gradient(145deg, #F8F0FF, #E0C4FF); }
.ci9, .pi9 { background: linear-gradient(145deg, #E8FCFF, #A8EEFF); }

[data-theme="dark"] .ci1, [data-theme="dark"] .pi1 { background: linear-gradient(145deg, rgba(255,107,26,.2), rgba(255,45,138,.18)); }
[data-theme="dark"] .ci2, [data-theme="dark"] .pi2 { background: linear-gradient(145deg, rgba(139,53,214,.2), rgba(195,132,252,.15)); }
[data-theme="dark"] .ci3, [data-theme="dark"] .pi3 { background: linear-gradient(145deg, rgba(52,217,181,.18), rgba(0,245,255,.12)); }
[data-theme="dark"] .ci4, [data-theme="dark"] .pi4 { background: linear-gradient(145deg, rgba(0,183,255,.15), rgba(139,53,214,.15)); }
[data-theme="dark"] .ci5, [data-theme="dark"] .pi5 { background: linear-gradient(145deg, rgba(255,45,138,.2), rgba(255,107,26,.15)); }
[data-theme="dark"] .ci6, [data-theme="dark"] .pi6 { background: linear-gradient(145deg, rgba(52,217,181,.18), rgba(100,255,200,.12)); }
[data-theme="dark"] .ci7, [data-theme="dark"] .pi7 { background: linear-gradient(145deg, rgba(255,217,61,.18), rgba(255,160,26,.15)); }
[data-theme="dark"] .ci8, [data-theme="dark"] .pi8 { background: linear-gradient(145deg, rgba(139,53,214,.22), rgba(195,132,252,.18)); }
[data-theme="dark"] .ci9, [data-theme="dark"] .pi9 { background: linear-gradient(145deg, rgba(0,200,255,.2), rgba(0,245,255,.15)); }

/* generic star-rating utility (reviews) */
.star-rating {
	color: var(--yellow);
	font-size: 14px; letter-spacing: 1px;
	display: inline-block;
	font-family: var(--vs-font-body);
}
@keyframes vs-spin { to { transform: rotate(360deg); } }

/* shop empty state */
.shop-empty {
	max-width: 520px; margin: 64px auto;
	text-align: center;
}
.shop-empty .empty-icon {
	font-size: 80px; margin-bottom: 16px;
	display: inline-block;
	animation: vs-icon-dance 3s ease-in-out infinite;
}
.shop-empty h3 {
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 26px; margin-bottom: 8px;
}
.shop-empty p { color: var(--text2); margin-bottom: 20px; }

/* ════════ BUNDLE SECTION (shop archive) ════════ */
.bundle-section {
	background: var(--bg2);
	position: relative; z-index: 2;
	padding: 72px 0;
}
.bundle-inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 80px;
}
.bundle-header {
	text-align: center;
	margin-bottom: 48px;
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}
.bundle-header .section-tag { display: inline-flex; margin: 0 0 14px; }
.bundle-header .section-title {
	font-family: var(--vs-font-display);
	font-weight: 900;
	font-size: clamp(28px, 3.5vw, 44px);
	line-height: 1.14;
	margin-bottom: 14px;
	letter-spacing: -0.015em;
}
.bundle-italic {
	font-style: italic;
	color: var(--pink);
}
.bundle-header .section-sub {
	font-size: 16px; color: var(--text2);
	line-height: 1.7; max-width: 540px;
	margin: 0 auto;
}
.bundle-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.bundle-card {
	border-radius: var(--rad-lg);
	padding: 28px;
	position: relative;
	overflow: hidden;
	box-shadow: var(--shadow);
	transition: transform .35s var(--ease), box-shadow .35s;
	cursor: default;
	opacity: 0;
	animation: vs-card-in .7s var(--ease) both;
	display: flex; flex-direction: column;
}
.bundle-card:hover { transform: translateY(-10px); box-shadow: var(--shadow-lg); }

.bundle-card.bc1 { background: var(--grad); color: #fff; }
.bundle-card.bc2 {
	background: linear-gradient(135deg, #FFF3E0, #FFE0C0);
	border: 1.5px solid rgba(244, 104, 26, .2);
}
.bundle-card.bc3 {
	background: linear-gradient(135deg, #F5EEFF, #EAD0FF);
	border: 1.5px solid rgba(139, 53, 214, .2);
}
[data-theme="dark"] .bundle-card.bc2 {
	background: linear-gradient(135deg, rgba(255,107,26,.18), rgba(255,160,100,.12));
	border-color: rgba(255,107,26,.25);
}
[data-theme="dark"] .bundle-card.bc3 {
	background: linear-gradient(135deg, rgba(139,53,214,.2), rgba(195,132,252,.12));
	border-color: rgba(139,53,214,.25);
}

.bundle-tag {
	display: inline-block;
	font-family: var(--vs-font-accent);
	font-weight: 800;
	font-size: 11px;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: 50px;
	margin-bottom: 14px;
}
.bc1 .bundle-tag { background: rgba(255,255,255,.25); color: #fff; }
.bc2 .bundle-tag { background: rgba(244,104,26,.15);  color: var(--orange); }
.bc3 .bundle-tag { background: rgba(139,53,214,.15);  color: var(--purple); }
[data-theme="dark"] .bc2 .bundle-tag { background: rgba(244,104,26,.25); color: #ffb38a; }
[data-theme="dark"] .bc3 .bundle-tag { background: rgba(195,132,252,.18); color: var(--lilac); }

.bundle-icon {
	font-size: 52px;
	margin-bottom: 14px;
	display: block;
	line-height: 1;
	transition: transform .3s var(--spring);
}
.bundle-card:hover .bundle-icon { transform: scale(1.15) rotate(-5deg); }

.bundle-card h3 {
	font-family: var(--vs-font-display);
	font-weight: 800;
	font-size: 22px;
	line-height: 1.2;
	margin-bottom: 14px;
	letter-spacing: -0.005em;
}
.bc1 h3 { color: #fff; }
.bc2 h3, .bc3 h3 { color: var(--text); }
[data-theme="dark"] .bc2 h3, [data-theme="dark"] .bc3 h3 { color: var(--text); }

.bundle-items {
	margin-bottom: 18px;
	flex: 1;
	display: flex; flex-direction: column;
	gap: 6px;
}
.bundle-item {
	display: flex; align-items: center; gap: 10px;
	font-size: 13.5px; line-height: 1.4;
}
.bc1 .bundle-item { color: rgba(255,255,255,.92); }
.bc2 .bundle-item, .bc3 .bundle-item { color: var(--text2); }
.b-check {
	width: 20px; height: 20px;
	border-radius: 6px;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 11px; font-weight: 800;
	flex-shrink: 0;
}
.bc1 .b-check { background: rgba(255,255,255,.25); color: #fff; }
.bc2 .b-check { background: rgba(244,104,26,.15);  color: var(--orange); }
.bc3 .b-check { background: rgba(139,53,214,.15);  color: var(--purple); }

.bundle-price-row {
	display: flex; align-items: flex-end;
	gap: 10px; margin-bottom: 18px;
}
.bundle-price {
	font-family: var(--vs-font-display);
	font-weight: 900;
	font-size: 34px; line-height: 1;
	letter-spacing: -0.015em;
}
.bc1 .bundle-price { color: #fff; }
.bc2 .bundle-price { color: var(--orange); }
.bc3 .bundle-price { color: var(--purple); }
.bundle-save {
	font-family: var(--vs-font-accent);
	font-weight: 800;
	font-size: 11px;
	padding: 4px 12px;
	border-radius: 50px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.bc1 .bundle-save { background: rgba(255,255,255,.22); color: #fff; }
.bc2 .bundle-save { background: rgba(244,104,26,.18); color: var(--orange); }
.bc3 .bundle-save { background: rgba(139,53,214,.18); color: var(--purple); }

.bundle-btn {
	width: 100%;
	padding: 13px 18px;
	border: none;
	border-radius: 14px;
	font-family: var(--vs-font-accent);
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	text-decoration: none;
	text-align: center;
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	transition: transform .2s, box-shadow .2s, background .2s;
}
.bc1 .bundle-btn {
	background: rgba(255,255,255,.22);
	color: #fff;
	border: 1.5px solid rgba(255,255,255,.4);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.bc1 .bundle-btn:hover { background: rgba(255,255,255,.36); color: #fff; transform: translateY(-2px); }
.bc2 .bundle-btn, .bc3 .bundle-btn {
	background: var(--grad);
	color: #fff;
	box-shadow: 0 4px 16px rgba(232,53,138,.3);
}
.bc2 .bundle-btn:hover, .bc3 .bundle-btn:hover {
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(232,53,138,.5);
}

@media (max-width: 1100px) {
	.bundle-inner { padding: 0 48px; }
}
@media (max-width: 960px) {
	.bundle-inner { padding: 0 24px; }
	.bundle-cards { grid-template-columns: 1fr; gap: 18px; }
}

/* ════════ NEWSLETTER ════════ */
.newsletter {
	position: relative; z-index: 2;
	padding: 80px 48px;
	background:
		linear-gradient(135deg, rgba(244,104,26,.92), rgba(232,53,138,.92) 55%, rgba(139,53,214,.92)),
		var(--nl-bg, url('https://images.unsplash.com/photo-1513475382585-d06e58bcb0e0?w=1400&q=80&auto=format&fit=crop')) center/cover no-repeat;
	background-blend-mode: multiply;
	overflow: hidden;
}
.newsletter::before {
	content: '';
	position: absolute; inset: 0;
	background:
		radial-gradient(ellipse 60% 60% at 20% 20%, rgba(255,217,61,.18), transparent 60%),
		radial-gradient(ellipse 50% 50% at 80% 80%, rgba(52,217,181,.15), transparent 60%);
	pointer-events: none;
}
.newsletter-inner {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
	position: relative;
	z-index: 2;
	color: #fff;
}
.nl-badge {
	display: inline-flex; align-items: center; gap: 8px;
	background: rgba(255,255,255,.22);
	color: #fff;
	font-family: var(--vs-font-accent);
	font-weight: 700;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 7px 16px;
	border-radius: 50px;
	margin-bottom: 18px;
	border: 1.5px solid rgba(255,255,255,.32);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.newsletter h2 {
	font-family: var(--vs-font-display);
	font-weight: 900;
	font-size: clamp(28px, 3.2vw, 42px);
	color: #fff;
	margin-bottom: 14px;
	letter-spacing: -0.015em;
}
.newsletter p {
	font-size: 16px;
	color: rgba(255,255,255,.9);
	line-height: 1.7;
	margin-bottom: 28px;
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
}
.nl-form {
	display: flex;
	gap: 10px;
	max-width: 480px;
	margin: 0 auto;
	flex-wrap: wrap;
}
.nl-input {
	flex: 1;
	background: rgba(255,255,255,.18);
	border: 1.5px solid rgba(255,255,255,.4);
	border-radius: 50px;
	padding: 14px 22px;
	font-size: 15px;
	color: #fff;
	outline: none;
	font-family: var(--vs-font-body);
	min-width: 220px;
	transition: border-color .25s, background .25s;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.nl-input::placeholder { color: rgba(255,255,255,.65); }
.nl-input:focus {
	background: rgba(255,255,255,.28);
	border-color: rgba(255,255,255,.85);
	box-shadow: 0 0 0 4px rgba(255,255,255,.16);
}
.nl-btn {
	background: #fff;
	color: var(--pink);
	font-family: var(--vs-font-accent);
	font-weight: 800;
	font-size: 14px;
	padding: 14px 28px;
	border-radius: 50px;
	border: none;
	cursor: pointer;
	white-space: nowrap;
	box-shadow: 0 8px 24px rgba(0,0,0,.18);
	transition: transform .2s, box-shadow .2s;
	display: inline-flex; align-items: center; gap: 6px;
}
.nl-btn:hover {
	transform: translateY(-2px) scale(1.04);
	box-shadow: 0 14px 32px rgba(0,0,0,.28);
}

@media (max-width: 720px) {
	.newsletter { padding: 56px 24px; }
	.nl-form { flex-direction: column; }
	.nl-btn { width: 100%; justify-content: center; }
}

/* ════════ UNIFIED SHOP BREADCRUMB — centered, minimal, identical on every shop page ════════ */
.vs-breadcrumbs {
	position: relative; z-index: 3;
	width: 100%;
	padding: 18px 24px;
	background: transparent;
	border: 0;
}
/* When breadcrumb sits at the very top of the page (no hero above),
   add space so it clears the sticky nav. */
.single-product .vs-breadcrumbs { padding-top: var(--vs-nav-clear); padding-bottom: 6px; }

.vs-breadcrumbs-inner {
	max-width: 900px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

/* The actual nav element (rendered by woocommerce_breadcrumb()). */
.vs-breadcrumbs .woocommerce-breadcrumb,
.vs-breadcrumbs .breadcrumb {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px 8px;
	margin: 0 auto;
	padding: 8px 18px;
	font-family: var(--vs-font-body);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .01em;
	color: var(--muted);
	background: transparent;
	border: 0;
	border-radius: 999px;
	max-width: 100%;
	text-align: center;
}
.vs-breadcrumbs a {
	color: var(--text2);
	text-decoration: none;
	transition: color .2s;
}
.vs-breadcrumbs a:hover { color: var(--pink); }
.vs-breadcrumbs .bc-sep,
.vs-breadcrumbs .breadcrumb-separator {
	color: var(--border2);
	font-weight: 600;
	opacity: .7;
}
.vs-breadcrumbs .bc-current,
.vs-breadcrumbs strong {
	color: var(--text);
	font-weight: 600;
}

/* Legacy raw-breadcrumb fallback (in case some page bypasses the wrapper). */
.woocommerce-breadcrumb:not(.vs-breadcrumbs .woocommerce-breadcrumb),
.breadcrumb:not(.vs-breadcrumbs .breadcrumb) {
	max-width: 900px;
	margin: 18px auto;
	padding: 8px 18px;
	font-size: 13px;
	color: var(--muted);
	font-weight: 500;
	display: flex; flex-wrap: wrap;
	align-items: center; justify-content: center;
	gap: 6px 8px;
	background: transparent; border: 0;
	text-align: center;
}

/* ════════ SINGLE PRODUCT LAYOUT ════════ */
.single-product div.product {
	max-width: 1440px; margin: 0 auto;
	padding: 24px 28px 80px;   /* 28px gutter aligns content edges with the header nav pill */
	position: relative; z-index: 2;
}
/* Single-product wrapper clears the fixed pill nav. Breadcrumb is hidden on
   product pages and the gallery bleeds to the top edge, so without this the
   gallery tucks under the nav on load (desktop + mobile). Verified via headless. */
.vs-single-product { padding-top: var(--vs-nav-clear); }
.product-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px; align-items: start;
	margin-bottom: 64px;
}
/* Tabs/related are nested inside .product so reset side padding to avoid double-gutter. */
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .related.products,
.single-product div.product > .upsells.products {
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
	margin-top: 24px;
}

.vs-gallery-wrap {
	position: relative;
	width: 100%;
}
.woocommerce-product-gallery {
	position: relative;
	width: 100% !important;
	float: none !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	border-radius: 0 !important;
	opacity: 1 !important;
}

/* Square main image frame — full-bleed, no inner padding. */
.gallery-main {
	position: relative;
	border-radius: var(--rad-lg);
	overflow: hidden;
	box-shadow: var(--shadow-lg);
	border: 1.5px solid var(--border);
	cursor: zoom-in;
	aspect-ratio: 1;
	width: 100%;
	background: var(--bg2);
}
.gallery-main > a.gallery-zoom,
.gallery-main > a.gallery-zoom:focus {
	display: block;
	width: 100%;
	height: 100%;
	outline: none;
}
.gallery-main img,
.gallery-main #vsMainImg {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	background: transparent;
	transition: opacity .25s var(--ease), transform .5s var(--ease);
}
.gallery-main:hover img { transform: scale(1.04); }
.woocommerce-product-gallery__trigger {
	position: absolute; top: 28px; right: 28px;
	z-index: 5;
	width: 40px; height: 40px; border-radius: 50%;
	background: var(--card-bg); border: 1.5px solid var(--border);
	box-shadow: var(--shadow);
	color: var(--text2);
	display: flex; align-items: center; justify-content: center;
	font-size: 16px; text-decoration: none;
	transition: all .25s;
}
.woocommerce-product-gallery__trigger:hover {
	background: var(--rose); border-color: var(--pink); color: var(--pink);
	transform: scale(1.1);
}
.gallery-badge {
	position: absolute; top: 16px; left: 16px;
	background: linear-gradient(135deg, var(--mint), #5CE0D5);
	color: #0D4A40;
	font-family: var(--vs-font-accent); font-weight: 800;
	font-size: 12px; padding: 5px 14px;
	border-radius: 50px; z-index: 2;
}
.gallery-badge.sale { background: var(--grad); color: #fff; }

/* ════════ FALLBACKS — no-image placeholders ════════ */
.vs-product-fallback {
	width: 100% !important; height: 100% !important;
	display: flex !important;
	flex-direction: column;
	align-items: center; justify-content: center;
	gap: 12px;
	background: linear-gradient(145deg, #FFF3E0, #FFD09A);
	aspect-ratio: 1;
	margin: 0 !important;
}
.vs-product-fallback.pi1 { background: linear-gradient(145deg, #FFF3E0, #FFD09A); }
.vs-product-fallback.pi2 { background: linear-gradient(145deg, #F5EEFF, #DDBEFF); }
.vs-product-fallback.pi3 { background: linear-gradient(145deg, #E8FFF5, #AAFADE); }
.vs-product-fallback.pi4 { background: linear-gradient(145deg, #E8F4FF, #B8DAFF); }
.vs-product-fallback.pi5 { background: linear-gradient(145deg, #FFF0F5, #FFB8D4); }
.vs-product-fallback.pi6 { background: linear-gradient(145deg, #F0FFF8, #B8FFE2); }
.vs-product-fallback.pi7 { background: linear-gradient(145deg, #FFFBE8, #FFE9A0); }
.vs-product-fallback.pi8 { background: linear-gradient(145deg, #F8F0FF, #E0C4FF); }
.vs-product-fallback-emoji {
	font-size: clamp(80px, 14vw, 160px);
	line-height: 1;
	filter: drop-shadow(0 8px 24px rgba(0,0,0,.15));
	animation: vs-icon-dance 4s ease-in-out infinite;
}
.vs-product-fallback-label {
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 13px; color: var(--text2);
	letter-spacing: .04em; text-transform: uppercase;
	background: rgba(255,255,255,.6);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	padding: 6px 14px; border-radius: 50px;
}

.vs-loop-fallback-emoji {
	position: absolute; top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	font-size: clamp(48px, 8vw, 80px);
	line-height: 1;
	z-index: 1;
	pointer-events: none;
	filter: drop-shadow(0 4px 12px rgba(0,0,0,.12));
}

/* One row of thumbs. Up to 5 fill the row; more than that scrolls horizontally. */
.gallery-thumbs {
	display: flex;
	flex-wrap: nowrap;
	gap: 10px;
	margin: 12px 0 0 !important;
	padding: 2px 0 8px !important;
	list-style: none;
	width: 100% !important;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: var(--border) transparent;
}
.gallery-thumbs::-webkit-scrollbar { height: 6px; }
.gallery-thumbs::-webkit-scrollbar-thumb { background: var(--border); border-radius: 50px; }
button.gallery-thumb,
.gallery-thumb {
	all: unset;
	display: block;
	border-radius: var(--rad-sm);
	overflow: hidden;
	cursor: pointer;
	border: 2.5px solid transparent;
	box-sizing: border-box;
	transition: border-color .2s, transform .2s, box-shadow .2s;
	aspect-ratio: 1;
	flex: 1 0 calc((100% - 40px) / 5);   /* 5 across; grows to fill when fewer */
	min-width: 74px;                     /* keeps them tappable; forces scroll past ~5 */
	scroll-snap-align: start;
	background: var(--bg2);
	outline: none;
}
button.gallery-thumb:hover,
button.gallery-thumb:focus-visible,
button.gallery-thumb.active,
.gallery-thumb:hover,
.gallery-thumb.active {
	border-color: var(--pink);
	transform: translateY(-3px);
	box-shadow: 0 6px 18px rgba(232, 53, 138, .25);
}
.gallery-thumb img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 0 !important;
	opacity: .82;
	transition: opacity .2s;
}
.gallery-thumb:hover img,
.gallery-thumb.active img { opacity: 1; }

/* summary */
.summary.entry-summary {
	display: flex; flex-direction: column;
	gap: 0; padding-top: 8px;
	width: 100% !important;
	float: none !important;
}
.product_title,
.product_title.entry-title {
	font-family: var(--vs-font-display); font-weight: 900;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.15; margin-bottom: 12px;
	color: var(--text);
}

.woocommerce-product-rating {
	display: flex; align-items: center; gap: 10px;
	margin-bottom: 16px;
}
.rating-count,
.woocommerce-review-link {
	font-size: 13px; color: var(--muted); font-weight: 600;
}
.rating-count a,
.woocommerce-review-link { color: var(--pink); text-decoration: none; }

.summary .price,
.single-product .price {
	display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px 14px;
	margin: 4px 0 14px;
}
.summary .price .woocommerce-Price-amount,
.single-product .price .woocommerce-Price-amount {
	font-family: var(--vs-font-display);
	font-weight: 900; font-size: 42px;
	background: var(--grad);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
}
.summary .price del .woocommerce-Price-amount,
.single-product .price del .woocommerce-Price-amount {
	font-size: 18px; opacity: .6;
	background: none;
	-webkit-text-fill-color: var(--muted);
	text-decoration: line-through;
}
.summary .price ins,
.single-product .price ins { text-decoration: none; background: transparent; }

.price-save {
	display: inline-flex; align-items: center; gap: 6px;
	background: rgba(52, 217, 181, .12);
	color: var(--mint);
	border: 1px solid rgba(52, 217, 181, .25);
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 12px; padding: 4px 12px;
	border-radius: 50px;
	margin-left: 10px; vertical-align: middle;
}

/* short description — clean white panel with a leading icon (no pink tint) */
.woocommerce-product-details__short-description {
	font-size: 15px; color: var(--text2);
	line-height: 1.75; margin-bottom: 24px;
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-md);
	padding: 16px 20px 16px 52px;
	position: relative;
}
.woocommerce-product-details__short-description::before {
	content: '💜';
	position: absolute; top: 16px; left: 20px;
	font-size: 18px;
}
[data-theme="dark"] .woocommerce-product-details__short-description {
	background: var(--card-bg);
}

/* Product description ("Opis") body: white panel, not the pink blockquote tint. */
.single-product .woocommerce-Tabs-panel blockquote,
.single-product .entry-content blockquote {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	color: var(--text2);
}

.product-meta-chips {
	display: flex; gap: 8px; flex-wrap: wrap;
	margin-bottom: 24px;
}
.meta-chip {
	display: inline-flex; align-items: center; gap: 6px;
	background: var(--bg2); border: 1.5px solid var(--border);
	border-radius: 50px; padding: 6px 14px;
	font-size: 12px; font-weight: 600; color: var(--text2);
}

/* ── Order block: stock line, then quantity + add-to-cart on one clean row ── */
.single-product .summary .stock {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--vs-font-body); font-weight: 600;
	font-size: 13px; color: var(--text2);
	margin: 0 0 14px;
}
.single-product .summary .stock.in-stock::before {
	content: ''; width: 9px; height: 9px; border-radius: 50%;
	background: var(--mint); box-shadow: 0 0 0 4px rgba(52, 217, 181, .18);
}
.single-product .summary .stock.out-of-stock::before {
	content: ''; width: 9px; height: 9px; border-radius: 50%;
	background: var(--muted);
}

.cart,
.single-product form.cart {
	display: flex; gap: 12px; align-items: stretch;
	margin-bottom: 22px; flex-wrap: nowrap;
}
.quantity {
	display: flex; align-items: center;
	background: var(--bg2);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-sm); overflow: hidden;
	flex: 0 0 auto;
}
.qty-dec, .qty-inc {
	background: transparent; border: none;
	width: 46px; height: 56px; font-size: 20px;
	cursor: pointer; color: var(--text2);
	display: flex; align-items: center; justify-content: center;
	transition: background .2s, color .2s;
}
.qty-dec:hover, .qty-inc:hover { background: var(--rose); color: var(--pink); }
[data-theme="dark"] .qty-dec:hover, [data-theme="dark"] .qty-inc:hover { background: rgba(232,53,138,.12); }
.quantity .qty,
.qty-input {
	width: 56px; height: 56px; border: none;
	background: transparent; text-align: center;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 16px; color: var(--text); outline: none;
	-moz-appearance: textfield;
}
.quantity .qty::-webkit-outer-spin-button,
.quantity .qty::-webkit-inner-spin-button { display: none; }

.woocommerce form.cart .single_add_to_cart_button,
.single_add_to_cart_button.button,
.single_add_to_cart_button.button.alt,
.single_add_to_cart_button {
	background: var(--grad) !important;
	color: #fff !important;
	font-family: var(--vs-font-accent) !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	flex: 1 1 auto;
	min-height: 56px;
	padding: 14px 32px !important;
	border-radius: var(--rad-sm) !important;
	border: none !important;
	cursor: pointer;
	box-shadow: 0 6px 24px rgba(232, 53, 138, .38) !important;
	transition: transform .2s, box-shadow .2s;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	white-space: nowrap;
	text-decoration: none;
	line-height: 1;
	text-shadow: none;
}
.single_add_to_cart_button:hover,
.single_add_to_cart_button.button.alt:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 32px rgba(232, 53, 138, .55) !important;
	color: #fff !important;
	background: var(--grad) !important;
}
.single_add_to_cart_button.loading { opacity: .7; cursor: wait; }
.single_add_to_cart_button.added,
.single_add_to_cart_button.button.alt.added {
	background: var(--grad3) !important;
	color: #0D4A40 !important;
	box-shadow: 0 6px 24px rgba(52, 217, 181, .35) !important;
}

.product-actions {
	display: flex; gap: 10px; margin-bottom: 24px;
	flex-wrap: wrap;
}
.action-btn {
	display: inline-flex; align-items: center; gap: 6px;
	background: transparent;
	border: 1.5px solid var(--border);
	color: var(--text2);
	font-family: var(--vs-font-body); font-weight: 600;
	font-size: 13px; padding: 8px 16px;
	border-radius: 50px; cursor: pointer;
	transition: all .25s;
}
.action-btn:hover { border-color: var(--pink); color: var(--pink); background: var(--rose); }
[data-theme="dark"] .action-btn:hover { background: rgba(232, 53, 138, .12); }

/* trust badges */
.trust-badges {
	display: grid; grid-template-columns: 1fr 1fr;
	gap: 10px; margin-bottom: 24px;
}
.trust-badge {
	display: flex; align-items: center; gap: 10px;
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: 14px; padding: 12px 14px;
	box-shadow: var(--shadow);
}
.trust-badge .tb-icon { font-size: 22px; flex-shrink: 0; }
.trust-badge .tb-text {
	font-size: 12px; font-weight: 600;
	color: var(--text2); line-height: 1.4;
}
.trust-badge .tb-text strong {
	display: block; font-size: 13px;
	color: var(--text); font-weight: 700;
}

.product_meta {
	border-top: 1.5px solid var(--border);
	padding-top: 16px; margin-top: 8px;
	font-size: 13px; color: var(--muted);
	display: flex; flex-direction: column; gap: 6px;
}
.product_meta > span { display: flex; gap: 8px; }
.product_meta .label,
.product_meta .sku_wrapper,
.product_meta .posted_in,
.product_meta .tagged_as { font-weight: 700; color: var(--text2); }
.product_meta a { color: var(--pink); text-decoration: none; }

/* sticky add-to-cart on mobile */
.sticky-atc {
	position: fixed; left: 0; right: 0; bottom: -100px;
	z-index: 150;
	background: var(--card-bg);
	border-top: 1.5px solid var(--border);
	padding: 12px 18px 14px;
	display: flex; align-items: center; gap: 12px;
	box-shadow: 0 -4px 24px rgba(0, 0, 0, .08);
	transition: bottom .35s var(--ease);
}
.sticky-atc.is-visible { bottom: 0; }
.sticky-atc-thumb {
	width: 44px; height: 44px; border-radius: 10px;
	overflow: hidden; flex-shrink: 0;
	background: var(--bg2);
}
.sticky-atc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sticky-atc-info { flex: 1; min-width: 0; }
.sticky-atc-title {
	font-family: var(--vs-font-display); font-weight: 700;
	font-size: 14px; color: var(--text);
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sticky-atc-price {
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 13px;
	background: var(--grad);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
}
.sticky-atc .btn-primary { padding: 10px 18px; font-size: 14px; }

/* ════════ TABS ════════ */
.woocommerce-tabs,
.tabs-wrap {
	position: relative; z-index: 2;
	max-width: 1440px; margin: 0 auto;
	padding: 0 80px 64px;
}
.woocommerce-tabs ul.tabs,
.tabs-nav {
	display: flex; gap: 4px;
	border-bottom: 1.5px solid var(--border);
	margin: 0 0 32px; padding: 0;
	list-style: none;
}
.woocommerce-tabs ul.tabs li,
.tabs-nav li {
	background: transparent; border: none;
	margin: 0; padding: 0;
}
.woocommerce-tabs ul.tabs li a,
.tab-btn,
.tabs-nav li a {
	background: transparent; border: none;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 14px; color: var(--muted);
	padding: 12px 20px; cursor: pointer;
	border-bottom: 2.5px solid transparent;
	margin-bottom: -1.5px;
	transition: color .2s, border-color .2s;
	text-decoration: none;
	display: inline-block;
}
.woocommerce-tabs ul.tabs li a:hover,
.tab-btn:hover { color: var(--pink); }
.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li.is-active a,
.tab-btn.active {
	color: var(--pink);
	border-bottom-color: var(--pink);
}

.woocommerce-Tabs-panel,
.tab-panel {
	font-size: 15px; color: var(--text2);
	line-height: 1.8;
}
.tab-panel { display: none; }
.tab-panel.active { display: block; }
.woocommerce-Tabs-panel h3,
.tab-panel h3 {
	font-family: var(--vs-font-display); font-weight: 700;
	font-size: 20px; margin: 24px 0 12px;
	color: var(--text);
}

/* reviews */
.review-list,
.commentlist {
	display: flex; flex-direction: column; gap: 20px;
	margin-bottom: 32px;
	padding: 0; list-style: none;
}
.review-card,
.commentlist .comment_container {
	background: var(--card-bg); border: 1.5px solid var(--border);
	border-radius: var(--rad-md);
	padding: 20px 24px; box-shadow: var(--shadow);
	display: block;
}
.review-header {
	display: flex; align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 10px; gap: 12px;
}
.reviewer-info { display: flex; align-items: center; gap: 10px; }
.reviewer-av {
	width: 38px; height: 38px; border-radius: 50%;
	background: var(--grad);
	display: flex; align-items: center; justify-content: center;
	font-size: 18px; flex-shrink: 0; color: #fff;
}
.reviewer-name { font-weight: 700; font-size: 14px; color: var(--text); }
.reviewer-date { font-size: 11px; color: var(--muted); }
.review-stars { color: var(--yellow); font-size: 13px; }
.review-text { font-size: 14px; color: var(--text2); line-height: 1.7; }

.shop_attributes,
.woocommerce-product-attributes { width: 100%; border-collapse: collapse; }
.shop_attributes tr,
.woocommerce-product-attributes-item { border-bottom: 1px solid var(--border); }
.shop_attributes th,
.woocommerce-product-attributes-item__label {
	padding: 12px 16px 12px 0;
	font-weight: 700; font-size: 13px;
	color: var(--text2); text-align: left;
	width: 180px;
}
.shop_attributes td,
.woocommerce-product-attributes-item__value {
	padding: 12px 0; font-size: 14px;
	color: var(--text2);
}

/* ════════ ADD-TO-CART TOAST notification ════════ */
.vs-toast {
	position: fixed;
	top: 100px; right: 24px;
	width: min(380px, calc(100vw - 32px));
	z-index: 700;
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	box-shadow: 0 24px 48px rgba(139,53,214,.25), 0 8px 16px rgba(0,0,0,.08);
	padding: 18px 20px 18px 18px;
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 14px;
	align-items: center;
	transform: translateX(calc(100% + 32px));
	opacity: 0;
	transition: transform .45s var(--spring), opacity .35s var(--ease);
	pointer-events: none;
}
.vs-toast.is-open {
	transform: translateX(0);
	opacity: 1;
	pointer-events: auto;
}
.vs-toast-thumb {
	width: 64px; height: 64px;
	border-radius: 14px; overflow: hidden;
	background: var(--bg2);
	display: flex; align-items: center; justify-content: center;
	font-size: 32px;
	flex-shrink: 0;
}
.vs-toast-thumb img { width: 100%; height: 100%; object-fit: cover; }
.vs-toast-info { min-width: 0; }
.vs-toast-status {
	display: flex; align-items: center; gap: 6px;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 12px;
	color: var(--mint);
	letter-spacing: .04em;
	text-transform: uppercase;
	margin-bottom: 4px;
}
.vs-toast-name {
	font-family: var(--vs-font-display); font-weight: 700;
	font-size: 15px; line-height: 1.3;
	color: var(--text);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	margin-bottom: 8px;
}
.vs-toast-actions {
	display: flex; gap: 8px;
	flex-wrap: wrap;
}
.vs-toast-btn {
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 12px;
	padding: 7px 14px; border-radius: 50px;
	text-decoration: none;
	transition: all .2s;
	border: none; cursor: pointer;
}
.vs-toast-btn.primary {
	background: var(--grad); color: #fff;
	box-shadow: 0 4px 14px rgba(232,53,138,.3);
}
.vs-toast-btn.primary:hover { transform: translateY(-1px); color: #fff; }
.vs-toast-btn.ghost {
	background: var(--bg2); color: var(--text2);
	border: 1px solid var(--border);
}
.vs-toast-btn.ghost:hover { background: var(--rose); color: var(--pink); border-color: var(--pink); }
.vs-toast-close {
	width: 28px; height: 28px; border-radius: 50%;
	background: var(--bg2); border: 1px solid var(--border);
	color: var(--muted); cursor: pointer;
	font-size: 13px;
	display: inline-flex; align-items: center; justify-content: center;
	flex-shrink: 0;
}
.vs-toast-close:hover { background: var(--rose); color: var(--pink); }
.vs-toast-progress {
	position: absolute; bottom: 0; left: 0;
	height: 3px; width: 100%;
	background: var(--grad);
	border-radius: 0 0 var(--rad-lg) var(--rad-lg);
	transform-origin: left center;
	transform: scaleX(0);
}
.vs-toast.is-open .vs-toast-progress {
	animation: vs-toast-progress 5s linear forwards;
}
@keyframes vs-toast-progress {
	from { transform: scaleX(1); }
	to   { transform: scaleX(0); }
}

@media (max-width: 560px) {
	.vs-toast { top: auto; bottom: 16px; right: 8px; left: 8px; width: auto; }
}

/* ════════ FULL-WIDTH PRODUCT REVIEWS SECTION ════════ */
.vs-product-reviews {
	position: relative; z-index: 2;
	background: var(--bg2);
	border-top: 1.5px solid var(--border);
	border-bottom: 1.5px solid var(--border);
	padding: 64px 0;
	margin: 48px 0 0;
}
.vs-product-reviews-inner {
	max-width: 1440px; margin: 0 auto;
	padding: 0 80px;
}
.vs-reviews-head {
	display: flex; align-items: center;
	justify-content: space-between;
	gap: 24px; flex-wrap: wrap;
	margin-bottom: 32px;
}
.vs-reviews-head h2 {
	font-family: var(--vs-font-display);
	font-weight: 900;
	font-size: clamp(28px, 3vw, 40px);
	margin-top: 8px;
	color: var(--text);
}
.vs-reviews-summary {
	display: flex; align-items: center;
	gap: 12px;
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: 50px;
	padding: 10px 22px;
	box-shadow: var(--shadow);
}
.vs-reviews-stars { color: var(--yellow); font-size: 18px; letter-spacing: 2px; }
.vs-reviews-summary strong {
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 22px; color: var(--text);
}
.vs-reviews-count { font-size: 13px; color: var(--muted); font-weight: 600; }

/* Testimonial cards (review grid) */
.vs-testimonial-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 32px;
}
.vs-testimonial {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	padding: 28px 28px 22px;
	box-shadow: var(--shadow);
	position: relative;
	transition: transform .35s var(--ease), box-shadow .35s, border-color .25s;
	display: flex; flex-direction: column;
	gap: 18px;
	min-height: 220px;
}
.vs-testimonial:hover {
	transform: translateY(-6px);
	border-color: var(--pink);
	box-shadow: var(--shadow-lg);
}
.vs-testimonial::before {
	content: ''; position: absolute;
	inset: 0; pointer-events: none;
	border-radius: var(--rad-lg);
	background: var(--accent-grad, linear-gradient(135deg, transparent, transparent));
	opacity: .08;
	mask: linear-gradient(180deg, #000 0%, transparent 60%);
	-webkit-mask: linear-gradient(180deg, #000 0%, transparent 60%);
}
.vs-testimonial.tg1 { --accent-grad: linear-gradient(135deg, var(--pink), var(--orange)); }
.vs-testimonial.tg2 { --accent-grad: linear-gradient(135deg, var(--purple), var(--lilac)); }
.vs-testimonial.tg3 { --accent-grad: linear-gradient(135deg, var(--mint), #5CE0D5); }
.vs-testimonial.tg4 { --accent-grad: linear-gradient(135deg, var(--yellow), var(--peach)); }
.vs-testimonial.tg5 { --accent-grad: linear-gradient(135deg, var(--lilac), var(--pink)); }
.vs-testimonial.tg6 { --accent-grad: linear-gradient(135deg, var(--mint), var(--purple)); }
.vs-testimonial-quote {
	position: absolute;
	top: 12px; right: 22px;
	font-family: var(--vs-font-display);
	font-size: 96px; font-weight: 900;
	line-height: 1; color: var(--pink);
	opacity: .14;
	pointer-events: none;
}
.vs-testimonial-text {
	font-size: 15px; line-height: 1.7;
	color: var(--text); flex: 1;
	font-style: italic;
	font-family: var(--vs-font-display);
	font-weight: 500;
	margin: 0;
}
.vs-testimonial-foot {
	display: grid;
	grid-template-columns: 44px 1fr auto;
	gap: 12px; align-items: center;
	padding-top: 16px;
	border-top: 1px solid var(--border);
}
.vs-testimonial-avatar {
	width: 44px; height: 44px;
	border-radius: 50%;
	background: var(--accent-grad, var(--grad));
	color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 18px;
}
.vs-testimonial-name {
	font-family: var(--vs-font-display); font-weight: 700;
	font-size: 15px; color: var(--text);
}
.vs-testimonial-stars {
	color: var(--yellow); font-size: 13px; letter-spacing: 1px;
	margin-top: 2px;
}
.vs-testimonial-date {
	font-size: 12px; color: var(--muted);
	font-family: var(--vs-font-accent); font-weight: 700;
	letter-spacing: .03em;
}

.vs-testimonial-empty {
	background: var(--card-bg);
	border: 1.5px dashed var(--border);
	border-radius: var(--rad-lg);
	padding: 48px 32px;
	text-align: center;
	margin-bottom: 32px;
}
.vs-testimonial-empty-icon {
	font-size: 56px; line-height: 1;
	display: block; margin-bottom: 14px;
	animation: vs-icon-dance 3s ease-in-out infinite;
}
.vs-testimonial-empty h3 {
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 22px; margin-bottom: 6px;
}
.vs-testimonial-empty p { color: var(--text2); font-size: 14px; }

.vs-reviews-form-wrap {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	padding: 8px 0;
	box-shadow: var(--shadow);
}
.vs-reviews-form-toggle {
	cursor: pointer;
}
.vs-reviews-form-toggle > summary {
	list-style: none;
	padding: 16px 28px;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 14px; color: var(--text2);
	cursor: pointer;
	display: flex; align-items: center; justify-content: space-between;
}
.vs-reviews-form-toggle > summary::-webkit-details-marker { display: none; }
.vs-reviews-form-toggle > summary::after {
	content: '▾'; font-size: 16px; color: var(--muted);
	transition: transform .25s;
}
.vs-reviews-form-toggle[open] > summary::after { transform: rotate(180deg); }
.vs-reviews-form-toggle > summary:hover { color: var(--pink); }
.vs-reviews-body { max-width: 920px; padding: 8px 28px 28px; }

@media (max-width: 1100px) {
	.vs-testimonial-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.vs-testimonial-grid { grid-template-columns: 1fr; }
}
.vs-reviews-body #comments,
.vs-reviews-body #reviews {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	padding: 32px 36px;
	box-shadow: var(--shadow);
	margin-bottom: 24px;
}
.vs-reviews-body .commentlist {
	list-style: none; padding: 0; margin: 0 0 24px;
	display: flex; flex-direction: column; gap: 18px;
}
.vs-reviews-body .commentlist li {
	background: var(--bg2);
	border: 1px solid var(--border);
	border-radius: var(--rad-md);
	padding: 18px 22px;
}
.vs-reviews-body .commentlist .meta {
	display: flex; align-items: center; gap: 10px;
	margin-bottom: 8px;
	font-size: 13px;
}
.vs-reviews-body .commentlist .meta strong { color: var(--text); }
.vs-reviews-body .commentlist .description p {
	font-size: 14px; color: var(--text2); line-height: 1.7;
}
.vs-reviews-body #review_form_wrapper {
	margin-top: 20px;
}
.vs-reviews-body #review_form input[type="text"],
.vs-reviews-body #review_form input[type="email"],
.vs-reviews-body #review_form textarea {
	width: 100%;
	background: var(--bg2);
	border: 1.5px solid var(--border);
	border-radius: 12px;
	padding: 12px 14px;
	font-size: 15px; color: var(--text);
	font-family: var(--vs-font-body);
	outline: none;
	margin-bottom: 12px;
}
.vs-reviews-body #review_form .submit,
.vs-reviews-body #review_form #submit {
	background: var(--grad); color: #fff;
	border: none; cursor: pointer;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 14px; padding: 12px 28px;
	border-radius: 14px;
	box-shadow: 0 6px 24px rgba(232,53,138,.38);
}

/* ════════ RELATED PRODUCTS ════════ */
.related.products,
.upsells.products {
	position: relative; z-index: 2;
	max-width: 1200px; margin: 0 auto;
	padding: 48px 80px 80px;
	clear: both;
}
.related.products > h2,
.upsells.products > h2 {
	font-family: var(--vs-font-display); font-weight: 900;
	font-size: clamp(24px, 2.5vw, 36px);
	margin-bottom: 28px;
	color: var(--text);
}
.related.products ul.products,
.upsells.products ul.products,
.related.products .products,
.upsells.products .products,
.related.products .products.prod-grid,
.upsells.products .products.prod-grid {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 16px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	width: 100%;
	float: none !important;
}
.related.products ul.products li,
.upsells.products ul.products li,
.related.products .products > .product,
.upsells.products .products > .product,
.related.products .shop-card,
.upsells.products .shop-card {
	min-width: 0;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
	clear: none !important;
}
/* Bigger square image fills the full card width; body content stretches edge-to-edge of the box. */
.related.products .shop-card .card-img,
.upsells.products .shop-card .card-img {
	height: auto !important;
	aspect-ratio: 4 / 5;
	width: 100%;
	font-size: clamp(56px, 7vw, 96px);
}
.related.products .shop-card .card-emoji,
.upsells.products .shop-card .card-emoji {
	font-size: clamp(56px, 7vw, 96px);
}
.related.products .shop-card .card-body,
.upsells.products .shop-card .card-body {
	padding: 12px 14px 14px;
	gap: 5px;
}
.related.products .shop-card .card-body h3,
.upsells.products .shop-card .card-body h3,
.related.products .shop-card .woocommerce-loop-product__title,
.upsells.products .shop-card .woocommerce-loop-product__title {
	font-size: 18px;
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
}
.related.products .shop-card .card-body p,
.upsells.products .shop-card .card-body p {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 4px 0 8px;
}
.related.products .shop-card .card-footer,
.upsells.products .shop-card .card-footer {
	margin-top: auto;
	gap: 12px;
}
.related.products .shop-card .cart-add-btn,
.upsells.products .shop-card .cart-add-btn {
	flex: 1;
	text-align: center;
	justify-content: center;
}

@media (max-width: 1100px) {
	.related.products ul.products,
	.upsells.products ul.products,
	.related.products .products,
	.upsells.products .products { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 760px) {
	.related.products ul.products,
	.upsells.products ul.products,
	.related.products .products,
	.upsells.products .products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
	.related.products ul.products,
	.upsells.products ul.products,
	.related.products .products,
	.upsells.products .products { grid-template-columns: 1fr !important; }
	.related.products .shop-card .card-img,
	.upsells.products .shop-card .card-img { aspect-ratio: 4 / 5; }
}

/* ════════ FREE SHIPPING BAR ════════ */
.free-ship-bar {
	background: linear-gradient(135deg, var(--mint), #5CE0D5);
	color: #0D4A40;
	padding: 10px 16px; border-radius: 14px;
	margin-bottom: 18px;
	display: flex; align-items: center; gap: 10px;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 13px;
	overflow: hidden; position: relative;
}
.free-ship-bar.is-complete {
	background: linear-gradient(135deg, #FFD93D, #FFB38A);
	color: #151519;
}
.free-ship-bar-icon { font-size: 18px; }
.free-ship-bar-track {
	flex: 1; height: 6px;
	background: rgba(255, 255, 255, .55);
	border-radius: 99px; overflow: hidden;
}
.free-ship-bar-fill {
	height: 100%; background: var(--grad);
	border-radius: 99px;
	transition: width .5s var(--ease);
	width: 0%;
}
.free-ship-bar-text { font-size: 12px; opacity: .85; min-width: 60px; text-align: right; }

/* ════════ CART PAGE — branded cards layout ════════ */
.woocommerce-cart-form { padding-top: 12px; }

.cart-items-list {
	display: flex; flex-direction: column;
	gap: 14px;
}
.cart-item-card {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-md);
	padding: 18px;
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 18px;
	box-shadow: var(--shadow);
	transition: transform .25s var(--ease), border-color .2s, box-shadow .25s;
}
.cart-item-card:hover {
	transform: translateY(-2px);
	border-color: rgba(232,53,138,.25);
	box-shadow: var(--shadow-lg);
}
.cart-item-thumb a { display: block; }
.cart-item-thumb img,
.cart-item-thumb-img {
	width: 96px !important; height: 96px;
	object-fit: cover; border-radius: 14px;
	display: block;
}
.cart-item-info { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.cart-item-head {
	display: flex; align-items: flex-start; justify-content: space-between;
	gap: 12px;
}
.cart-item-title {
	font-family: var(--vs-font-display); font-weight: 700;
	font-size: 17px; line-height: 1.3;
	color: var(--text); text-decoration: none;
}
.cart-item-title:hover { color: var(--pink); }
.cart-item-remove {
	width: 32px; height: 32px; border-radius: 50%;
	background: var(--bg2);
	color: var(--muted);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 14px;
	text-decoration: none;
	transition: all .2s;
	flex-shrink: 0;
}
.cart-item-remove:hover { background: var(--rose); color: var(--pink); }
[data-theme="dark"] .cart-item-remove:hover { background: rgba(232,53,138,.15); }

.cart-item-foot {
	display: flex; align-items: center;
	gap: 16px; flex-wrap: wrap;
}
.cart-item-price {
	font-size: 14px; color: var(--text2); font-weight: 600;
	font-family: var(--vs-font-body);
}
.cart-item-subtotal {
	margin-left: auto;
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 18px;
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* Uniform quantity pill on every cart row — same width so − [n] + line up. */
.cart-item-foot .cart-item-qty {
	flex: 0 0 auto;
	width: 200px; max-width: 100%;
}
.cart-item-foot .cart-item-qty .quantity.vs-qty {
	display: flex; width: 100%;
}
.cart-item-foot .cart-item-qty .quantity.vs-qty .qty-input {
	flex: 1 1 auto; width: auto; min-width: 0;
}

.cart-actions {
	margin-top: 24px;
	display: flex; gap: 12px; align-items: center;
	flex-wrap: wrap;
}
.cart-actions .coupon {
	display: flex; align-items: center; gap: 4px;
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: 50px;
	padding: 5px 5px 5px 4px;
	flex: 1 1 360px;
	max-width: 400px;
	transition: border-color .2s, box-shadow .2s;
}
.cart-actions .coupon:focus-within {
	border-color: var(--pink);
	box-shadow: 0 0 0 4px rgba(232, 53, 138, .12);
}
.cart-actions .coupon .coupon-icon {
	font-size: 18px; line-height: 1;
	padding: 0 4px 0 12px; flex: 0 0 auto;
}
.cart-actions .coupon input[type="text"] {
	flex: 1 1 auto; min-width: 0;
	border: none; background: transparent;
	padding: 11px 10px; outline: none;
	font-size: 14px; color: var(--text);
	font-family: var(--vs-font-body);
}
.cart-actions .coupon input[type="text"]::placeholder {
	color: var(--muted); opacity: 1;
}
.cart-actions .coupon .button {
	flex: 0 0 auto;
	padding: 11px 24px !important;
	border-radius: 50px !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	font-family: var(--vs-font-accent) !important;
	background: var(--grad) !important;
	color: #fff !important;
	border: none !important;
	box-shadow: 0 6px 16px rgba(232, 53, 138, .30) !important;
	transition: transform .2s, box-shadow .2s !important;
	white-space: nowrap;
}
.cart-actions .coupon .button:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(232, 53, 138, .42) !important;
}
.cart-actions .vs-update-cart {
	background: var(--bg2) !important;
	color: var(--text2) !important;
	border: 1.5px solid var(--border) !important;
	box-shadow: none !important;
}
.cart-actions .vs-update-cart:hover {
	background: var(--rose) !important;
	color: var(--pink) !important;
	border-color: var(--pink) !important;
	transform: translateY(-1px);
}
.cart-continue {
	margin-left: auto;
	font-size: 14px; color: var(--muted);
	font-weight: 600; text-decoration: none;
}
.cart-continue:hover { color: var(--pink); }

/* totals card */
.cart-totals-head {
	display: flex; align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
}
.cart-totals-icon {
	font-size: 26px;
	animation: vs-icon-dance 3s ease-in-out infinite;
}
.cart-trust-row {
	display: flex; gap: 6px; flex-wrap: wrap;
	margin: 14px 0 4px;
}
.cart-trust-chip {
	display: inline-flex; align-items: center; gap: 4px;
	font-size: 11px; font-weight: 700;
	padding: 5px 10px;
	border-radius: 50px;
	background: var(--bg2);
	color: var(--text2);
	border: 1px solid var(--border);
}

/* ════════ CART PAGE LEGACY (non-card form) ════════ */
.woocommerce-cart .site-main {
	max-width: 1440px; margin: 0 auto;
	padding: var(--vs-nav-clear) 80px 80px;
	position: relative; z-index: 2;
}
.cart-layout {
	display: grid; grid-template-columns: 1fr 360px;
	gap: 40px; align-items: start;
}
.cart-main { min-width: 0; }

table.shop_table.cart {
	width: 100%; border-collapse: collapse;
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-md);
	overflow: hidden;
	box-shadow: var(--shadow);
}
.shop_table.cart thead { background: var(--bg2); }
.shop_table.cart th,
.shop_table.cart td {
	padding: 16px 18px;
	text-align: left;
	border-bottom: 1.5px solid var(--border);
	font-size: 14px;
	vertical-align: middle;
}
.shop_table.cart tbody tr:last-child td { border-bottom: none; }
.shop_table.cart th {
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 12px; letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--text2);
}
.shop_table.cart .product-thumbnail img {
	width: 64px; height: 64px; border-radius: 12px;
	object-fit: cover;
}
.shop_table.cart .product-name a {
	font-family: var(--vs-font-display); font-weight: 700;
	color: var(--text); text-decoration: none;
	font-size: 15px;
}
.shop_table.cart .product-name a:hover { color: var(--pink); }
.shop_table.cart .product-remove a.remove,
a.remove {
	width: 28px; height: 28px; border-radius: 50%;
	background: var(--rose);
	color: var(--pink) !important;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 16px; line-height: 1;
	text-decoration: none; font-weight: 700;
	transition: all .2s;
}
a.remove:hover { background: var(--pink); color: #fff !important; }
[data-theme="dark"] a.remove { background: rgba(232, 53, 138, .15); }

.actions .button,
.coupon .button,
.actions input[type="submit"] {
	background: var(--grad) !important; color: #fff !important;
	border: none !important; cursor: pointer;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 14px; padding: 11px 22px;
	border-radius: 14px;
	box-shadow: 0 4px 16px rgba(232, 53, 138, .3);
	transition: transform .2s;
}
.actions .button:hover { transform: translateY(-2px); }
.coupon { display: flex; gap: 10px; align-items: center; margin-top: 18px; }
.coupon input[type="text"] {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: 12px; padding: 10px 14px;
	font-size: 14px; color: var(--text); outline: none;
	font-family: var(--vs-font-body);
}
.coupon input[type="text"]:focus { border-color: var(--pink); }

.cart_totals,
.cart-summary {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	padding: 24px 26px;
	box-shadow: var(--shadow-lg);
	position: sticky; top: 100px;
}
.cart_totals h2 {
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 22px; margin-bottom: 16px; color: var(--text);
}
.cart_totals .shop_table { width: 100%; border-collapse: collapse; }
.cart_totals .shop_table th,
.cart_totals .shop_table td {
	padding: 10px 0;
	border-bottom: 1px solid var(--border);
	font-size: 14px; color: var(--text2);
}
.cart_totals .order-total td .woocommerce-Price-amount {
	font-family: var(--vs-font-display); font-weight: 900;
	font-size: 22px;
	background: var(--grad);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
}
.wc-proceed-to-checkout { margin-top: 18px; padding: 0; }
.wc-proceed-to-checkout .checkout-button.button,
.wc-proceed-to-checkout a {
	display: flex; align-items: center; justify-content: center; gap: 8px;
	width: 100%;
	background: var(--grad); color: #fff;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 15px; padding: 14px;
	border-radius: 14px; text-decoration: none;
	box-shadow: 0 6px 24px rgba(232, 53, 138, .38);
	transition: transform .2s, box-shadow .2s;
}
.wc-proceed-to-checkout a:hover { transform: translateY(-2px); box-shadow: 0 14px 36px rgba(232, 53, 138, .55); }

/* cart empty */
.cart-empty,
.woocommerce-cart .cart-empty {
	max-width: 540px; margin: 0 auto;
	text-align: center; padding: 130px 24px 80px;
	position: relative; z-index: 2;
}
.cart-empty .empty-icon {
	font-size: 96px; display: inline-block;
	margin-bottom: 20px;
	animation: vs-icon-dance 3s ease-in-out infinite;
}
.cart-empty h2 {
	font-family: var(--vs-font-display); font-weight: 900;
	font-size: 36px; margin-bottom: 10px; color: var(--text);
}
.cart-empty p {
	color: var(--text2); margin-bottom: 24px;
	font-size: 16px; line-height: 1.7;
}

/* ════════ MINI-CART DRAWER ════════ */
.cart-overlay {
	position: fixed; inset: 0; z-index: 250;
	background: rgba(13, 8, 22, .55);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	opacity: 0; pointer-events: none;
	transition: opacity .3s ease;
}
.cart-overlay.is-open { opacity: 1; pointer-events: all; }

.mini-cart-drawer {
	position: fixed; top: 0; right: 0; bottom: 0;
	width: min(96vw, 420px);
	background: var(--bg);
	z-index: 260;
	display: flex; flex-direction: column;
	transform: translateX(105%);
	transition: transform .4s var(--ease);
	box-shadow: -16px 0 48px rgba(0, 0, 0, .15);
}
.mini-cart-drawer.is-open { transform: translateX(0); }
.mini-cart-head {
	padding: 22px 24px 16px;
	display: flex; align-items: center; justify-content: space-between;
	border-bottom: 1.5px solid var(--border);
}
.mini-cart-head h3 {
	font-family: var(--vs-font-display);
	font-weight: 800; font-size: 22px;
	color: var(--text);
}
.mini-cart-close {
	width: 36px; height: 36px; border-radius: 50%;
	background: var(--bg2); border: 1.5px solid var(--border);
	color: var(--text2); cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	font-size: 16px;
	transition: all .2s;
}
.mini-cart-close:hover { background: var(--rose); color: var(--pink); border-color: var(--pink); }
.mini-cart-body { flex: 1; overflow-y: auto; padding: 18px 22px; }
.mini-cart-body .free-ship-bar { margin-bottom: 18px; }

ul.cart_list,
.mini-cart-list {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 14px;
}
ul.cart_list li,
.mini-cart-list li {
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 14px; align-items: center;
	padding: 14px;
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-md);
	position: relative;
}
ul.cart_list li img,
.mini-cart-thumb img {
	width: 64px !important; height: 64px;
	object-fit: cover; border-radius: 12px;
	float: none !important; margin: 0 !important;
}
ul.cart_list li a:not(.remove),
.mini-cart-title {
	font-family: var(--vs-font-display); font-weight: 700;
	font-size: 15px; color: var(--text);
	text-decoration: none; line-height: 1.3;
	display: block;
}
ul.cart_list li a:not(.remove):hover { color: var(--pink); }
.mini-cart-meta,
ul.cart_list li .quantity {
	font-size: 12px; color: var(--muted);
	margin-top: 4px;
}
.mini-cart-price {
	font-family: var(--vs-font-accent); font-weight: 700;
	color: var(--pink); font-size: 14px;
}
ul.cart_list li a.remove {
	position: absolute; top: 6px; right: 6px;
	width: 24px; height: 24px;
	font-size: 13px;
}

.mini-cart-foot {
	padding: 18px 24px 24px;
	border-top: 1.5px solid var(--border);
	background: var(--bg);
	display: flex; flex-direction: column; gap: 12px;
}
.mini-cart-subtotal,
.woocommerce-mini-cart__total {
	display: flex; justify-content: space-between; align-items: baseline;
	font-family: var(--vs-font-accent);
	font-weight: 700; font-size: 14px;
	color: var(--text2);
	margin: 0;
	padding: 0; border: none;
}
.mini-cart-subtotal strong,
.woocommerce-mini-cart__total strong {
	font-family: var(--vs-font-display); font-weight: 900;
	font-size: 20px;
	background: var(--grad);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
}
.mini-cart-actions,
.woocommerce-mini-cart__buttons {
	display: flex; flex-direction: column; gap: 10px;
}
.mini-cart-actions .btn-primary,
.mini-cart-actions .btn-outline,
.woocommerce-mini-cart__buttons .button {
	width: 100%; justify-content: center;
}

/* ════════ CHECKOUT ════════ */
.woocommerce-checkout .site-main {
	max-width: 1440px; margin: 0 auto;
	padding: var(--vs-nav-clear) 80px 80px;
	position: relative; z-index: 2;
}
form.checkout {
	display: grid; grid-template-columns: 1.4fr 1fr;
	gap: 40px; align-items: start;
}
form.checkout #customer_details {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	padding: 28px 30px;
	box-shadow: var(--shadow);
}
form.checkout h3 {
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 22px; margin: 0 0 16px;
	color: var(--text);
}
form.checkout .form-row { margin-bottom: 14px; }
form.checkout label {
	display: block;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 12px; letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--text2); margin-bottom: 6px;
}
form.checkout input[type="text"],
form.checkout input[type="email"],
form.checkout input[type="tel"],
form.checkout input[type="password"],
form.checkout textarea,
form.checkout select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.select2-container--default .select2-selection--single {
	width: 100%;
	background: var(--bg2);
	border: 1.5px solid var(--border);
	border-radius: 12px;
	padding: 12px 14px;
	font-size: 15px; color: var(--text);
	font-family: var(--vs-font-body);
	outline: none;
	transition: border-color .2s, box-shadow .2s;
	height: auto;
}
form.checkout input:focus,
form.checkout textarea:focus,
form.checkout select:focus {
	border-color: var(--pink);
	box-shadow: 0 0 0 3px rgba(232, 53, 138, .12);
}
.select2-container--default .select2-selection--single { padding: 6px 10px; }
.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--text); line-height: 32px;
}

form.checkout .woocommerce-checkout-review-order {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	padding: 28px 30px;
	box-shadow: var(--shadow-lg);
	position: sticky; top: 100px;
}
form.checkout .woocommerce-checkout-review-order h3 {
	font-size: 18px; margin-bottom: 14px;
}
form.checkout .woocommerce-checkout-review-order table {
	width: 100%; border-collapse: collapse;
	border: none !important;              /* no outer box border */
}
form.checkout .woocommerce-checkout-review-order th,
form.checkout .woocommerce-checkout-review-order td {
	padding: 10px 0;
	border: none;                          /* clear WooCommerce default side/top borders */
	border-bottom: 1px solid var(--border);/* keep only the divider between rows */
	font-size: 14px;
}
form.checkout .woocommerce-checkout-review-order tr:last-child th,
form.checkout .woocommerce-checkout-review-order tr:last-child td {
	border-bottom: none;                   /* no line under the final (Ukupno) row */
}
form.checkout .order-total .woocommerce-Price-amount {
	font-family: var(--vs-font-display); font-weight: 900;
	font-size: 22px;
	background: var(--grad);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
}
form.checkout #place_order,
form.checkout .place-order .button {
	width: 100%;
	background: var(--grad); color: #fff;
	border: none; cursor: pointer;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 16px; padding: 14px;
	border-radius: 14px;
	box-shadow: 0 8px 28px rgba(232, 53, 138, .4);
	margin-top: 16px;
	transition: transform .2s, box-shadow .2s;
}
form.checkout #place_order:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 36px rgba(232, 53, 138, .55);
}

#payment ul.payment_methods {
	list-style: none; padding: 0; margin: 0 0 16px;
	display: flex; flex-direction: column; gap: 8px;
}
#payment ul.payment_methods li {
	background: var(--bg2);
	border: 1.5px solid var(--border);
	border-radius: 12px;
	padding: 12px 14px;
	cursor: pointer;
	transition: border-color .2s, background .2s;
}
#payment ul.payment_methods li:hover { border-color: var(--pink); }
#payment ul.payment_methods li.selected {
	border-color: var(--pink);
	background: var(--rose);
}
[data-theme="dark"] #payment ul.payment_methods li.selected { background: rgba(232,53,138,.12); }
.woocommerce-terms-and-conditions-wrapper { margin: 14px 0; font-size: 13px; }

/* ════════ NOTICES ════════ */
.woocommerce-notices-wrapper { margin: 12px 0; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-md);
	padding: 14px 18px 14px 50px;
	margin: 0 0 14px;
	position: relative;
	font-size: 14px; line-height: 1.55; color: var(--text);
	list-style: none;
}
.woocommerce-message { border-color: var(--mint); }
.woocommerce-message::before { content: '✅'; position: absolute; top: 12px; left: 18px; font-size: 18px; }
.woocommerce-info { border-color: var(--purple); }
.woocommerce-info::before { content: 'ℹ️'; position: absolute; top: 12px; left: 18px; font-size: 18px; }
.woocommerce-error { border-color: var(--pink); background: var(--rose); }
[data-theme="dark"] .woocommerce-error { background: rgba(232,53,138,.12); }
.woocommerce-error::before { content: '⚠️'; position: absolute; top: 12px; left: 18px; font-size: 18px; }
.woocommerce-error li { margin: 0; padding: 0; }
.woocommerce-message a.button,
.woocommerce-info a.button {
	background: transparent !important; color: var(--pink) !important;
	border: none !important; padding: 0 8px !important;
	font-weight: 700; box-shadow: none !important;
}

/* ════════ THANK YOU / ORDER RECEIVED ════════ */
.thankyou-section {
	max-width: 1100px; margin: 0 auto;
	padding: 32px 80px 80px;
	position: relative; z-index: 2;
}
.thankyou-inner { display: flex; flex-direction: column; gap: 32px; }
.thankyou-state {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	padding: 56px 48px;
	box-shadow: var(--shadow-lg);
	text-align: center;
}
.thankyou-state.thankyou-success {
	background:
		radial-gradient(circle at 20% 20%, rgba(255,217,61,.18), transparent 50%),
		radial-gradient(circle at 80% 80%, rgba(52,217,181,.16), transparent 50%),
		var(--card-bg);
}
.thankyou-icon {
	font-size: 88px; line-height: 1;
	display: inline-block; margin-bottom: 16px;
	animation: vs-icon-dance 3s ease-in-out infinite;
}
.thankyou-state h2 {
	font-family: var(--vs-font-display);
	font-weight: 900; font-size: clamp(28px, 3.5vw, 44px);
	margin-bottom: 10px;
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.thankyou-state p {
	color: var(--text2); font-size: 17px;
	line-height: 1.7;
	max-width: 540px; margin: 0 auto;
}

.order-summary-grid {
	display: grid; grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.order-summary-card {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	padding: 28px 30px;
	box-shadow: var(--shadow);
}
.order-summary-card h3 {
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 20px; margin-bottom: 16px;
}
.order-meta-list {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 10px;
}
.order-meta-list li {
	display: flex; justify-content: space-between;
	align-items: baseline;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--border);
	font-size: 14px;
}
.order-meta-list li:last-child { border-bottom: none; padding-bottom: 0; }
.order-meta-list .meta-label { color: var(--muted); font-weight: 600; }
.order-meta-list strong { color: var(--text); font-weight: 700; }
.order-total-amount {
	font-family: var(--vs-font-display); font-weight: 900 !important;
	font-size: 20px;
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.next-steps {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 14px;
	counter-reset: vs-step;
}
.next-steps li {
	display: flex; align-items: flex-start; gap: 14px;
	font-size: 14px; color: var(--text2); line-height: 1.6;
}
.next-steps .step-num {
	width: 32px; height: 32px; border-radius: 50%;
	background: var(--grad); color: #fff;
	font-family: var(--vs-font-accent); font-weight: 800;
	font-size: 14px;
	display: inline-flex; align-items: center; justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 4px 14px rgba(232,53,138,.3);
}

.thankyou-actions {
	display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
	margin-top: 24px;
}

.thankyou-details-wrap {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	padding: 28px 32px;
	box-shadow: var(--shadow);
}
.thankyou-details-title {
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 20px; margin: 0 0 18px; color: var(--heading);
}
.thankyou-details-wrap .woocommerce-order-details__title,
.thankyou-details-wrap .woocommerce-column__title {
	font-family: var(--vs-font-display); font-weight: 700;
	font-size: 17px; margin: 22px 0 10px; color: var(--heading);
}
.thankyou-details-wrap table.shop_table {
	width: 100%; border-collapse: collapse; margin: 0 0 10px;
}
.thankyou-details-wrap table.shop_table th,
.thankyou-details-wrap table.shop_table td {
	padding: 10px 6px; text-align: left;
	border-bottom: 1px solid var(--border);
	font-size: 14px;
}
.thankyou-details-wrap .woocommerce-customer-details address {
	font-style: normal; line-height: 1.7; font-size: 14px;
	padding: 14px 16px; background: var(--bg2);
	border-radius: var(--rad-sm); border: 1px solid var(--border);
}

@media (max-width: 760px) {
	.thankyou-section { padding: 24px 24px 64px; }
	.thankyou-state { padding: 40px 24px; }
	.order-summary-grid { grid-template-columns: 1fr; }
}

/* ════════ CART + CHECKOUT BLOCKS (WC 8+) — branded styling ════════ */

/* ── Slim flow bar (replaces big hero on cart/checkout/account) ── */
.vs-flow-bar {
	position: relative; z-index: 2;
	background: var(--card-bg);
	border-bottom: 1.5px solid var(--border);
	box-shadow: 0 4px 20px rgba(139, 53, 214, .06);
	margin-top: 46px; /* tight against fixed nav */
}
.vs-flow-bar-inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 32px;
	height: 50px;
	display: flex; align-items: center;
	gap: 16px;
}
.vs-flow-back {
	width: 32px; height: 32px;
	border-radius: 50%;
	background: var(--bg2);
	border: 1.5px solid var(--border);
	color: var(--text2);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 16px; text-decoration: none;
	transition: all .2s;
	flex-shrink: 0;
}
.vs-flow-back:hover { background: var(--rose); border-color: var(--pink); color: var(--pink); }
.vs-flow-icon { font-size: 22px; line-height: 1; flex-shrink: 0; }
.vs-flow-label {
	font-family: var(--vs-font-display);
	font-weight: 800;
	font-size: 18px;
	color: var(--text);
	letter-spacing: -0.005em;
	flex-shrink: 0;
}
.vs-flow-meta {
	color: var(--muted);
	font-size: 13px; font-weight: 600;
	font-family: var(--vs-font-accent);
	letter-spacing: .02em;
	margin-left: 4px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.vs-flow-meta .woocommerce-Price-amount {
	color: var(--pink);
	font-weight: 700;
}
.vs-flow-help {
	margin-left: auto;
	font-size: 13px;
	font-family: var(--vs-font-accent); font-weight: 700;
	color: var(--text2);
	text-decoration: none;
	padding: 6px 14px;
	border-radius: 50px;
	background: var(--bg2);
	border: 1.5px solid var(--border);
	transition: all .2s;
	white-space: nowrap;
}
.vs-flow-help:hover { background: var(--rose); color: var(--pink); border-color: var(--pink); }

@media (max-width: 640px) {
	.vs-flow-bar-inner { padding: 0 16px; gap: 10px; }
	.vs-flow-meta { display: none; }
	.vs-flow-label { font-size: 15px; }
}

/* ── Wide content area for cart/checkout (no double padding) ── */
.vs-flow-content {
	max-width: 1440px;
	margin: 0 auto;
	padding: 28px 32px 80px;
	position: relative; z-index: 2;
}
.vs-flow-content > .entry-content {
	max-width: none;
	padding: 0;
	margin: 0;
}
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	max-width: none;
	margin: 0;
	padding: 0;
	position: relative; z-index: 2;
	width: 100%;
}
.wp-block-woocommerce-cart.alignwide,
.wp-block-woocommerce-checkout.alignwide,
.wp-block-woocommerce-cart.alignfull,
.wp-block-woocommerce-checkout.alignfull { max-width: none; margin-left: 0; margin-right: 0; }

/* Cart items list */
.wc-block-cart-items {
	background: transparent !important;
	border: none !important;
}
.wc-block-cart-items thead { display: none; }
.wc-block-cart-items .wc-block-cart-items__row,
.wc-block-cart-item {
	background: var(--card-bg) !important;
	border: 1.5px solid var(--border) !important;
	border-radius: var(--rad-md) !important;
	padding: 18px !important;
	margin-bottom: 14px !important;
	box-shadow: var(--shadow);
	transition: transform .25s var(--ease), border-color .2s, box-shadow .25s;
}
.wc-block-cart-items .wc-block-cart-items__row:hover,
.wc-block-cart-item:hover {
	transform: translateY(-2px);
	border-color: rgba(232,53,138,.25);
	box-shadow: var(--shadow-lg);
}
.wc-block-cart-item__image img,
.wc-block-cart-items td.wc-block-cart-item__image img {
	width: 96px !important; height: 96px !important;
	object-fit: cover !important;
	border-radius: 14px !important;
}
.wc-block-cart-item__product .wc-block-components-product-name,
.wc-block-cart-item__product-name a {
	font-family: var(--vs-font-display) !important;
	font-weight: 700 !important;
	font-size: 17px !important;
	color: var(--text) !important;
	text-decoration: none !important;
	line-height: 1.3 !important;
}
.wc-block-cart-item__product-name a:hover { color: var(--pink) !important; }

.wc-block-components-product-price {
	font-family: var(--vs-font-display) !important;
	font-weight: 700 !important;
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* Quantity selector */
.wc-block-components-quantity-selector {
	background: var(--bg2) !important;
	border: 1.5px solid var(--border) !important;
	border-radius: 14px !important;
	overflow: hidden;
}
.wc-block-components-quantity-selector__button {
	background: transparent !important;
	color: var(--text2) !important;
	border: none !important;
	width: 40px !important; height: 44px !important;
	font-size: 18px !important;
	cursor: pointer;
}
.wc-block-components-quantity-selector__button:hover {
	background: var(--rose) !important;
	color: var(--pink) !important;
}
[data-theme="dark"] .wc-block-components-quantity-selector__button:hover {
	background: rgba(232,53,138,.12) !important;
}
.wc-block-components-quantity-selector__input {
	background: transparent !important;
	border: none !important;
	color: var(--text) !important;
	font-family: var(--vs-font-accent) !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	text-align: center !important;
}

/* Remove link */
.wc-block-cart-item__remove-link {
	color: var(--muted) !important;
	font-size: 13px !important;
	text-decoration: none !important;
	background: var(--bg2) !important;
	padding: 4px 10px !important;
	border-radius: 50px !important;
	transition: all .2s;
}
.wc-block-cart-item__remove-link:hover {
	background: var(--rose) !important;
	color: var(--pink) !important;
}

/* Totals sidebar */
.wc-block-components-totals-wrapper,
.wc-block-cart__totals-title,
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper,
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block {
	background: var(--card-bg) !important;
	border: 1.5px solid var(--border) !important;
	border-radius: var(--rad-lg) !important;
	padding: 24px 28px !important;
	box-shadow: var(--shadow-lg);
}
.wc-block-components-totals-item {
	font-size: 14px !important;
	color: var(--text2) !important;
	padding: 8px 0 !important;
	border-bottom: 1px solid var(--border) !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item__price {
	font-family: var(--vs-font-display) !important;
	font-weight: 900 !important;
	font-size: 22px !important;
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* ── EMPTY CART (block) — branded centered card ── */
.wp-block-woocommerce-empty-cart-block {
	text-align: center;
	padding: 72px 32px 64px;
	background:
		radial-gradient(circle at 30% 20%, rgba(255,217,61,.18), transparent 45%),
		radial-gradient(circle at 75% 78%, rgba(232,53,138,.14), transparent 50%),
		var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	box-shadow: var(--shadow-lg);
	max-width: 720px;
	margin: 0 auto;
	position: relative;
	overflow: hidden;
}
.wp-block-woocommerce-empty-cart-block::before {
	content: '🛒';
	display: block;
	font-size: 96px; line-height: 1;
	margin-bottom: 18px;
	animation: vs-icon-dance 3s ease-in-out infinite;
}
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block .wp-block-heading.with-empty-cart-icon,
.wp-block-woocommerce-empty-cart-block .wp-block-heading {
	font-family: var(--vs-font-display) !important;
	font-weight: 900 !important;
	font-size: clamp(28px, 3vw, 40px) !important;
	color: var(--text) !important;
	text-align: center !important;
	margin: 0 auto 14px !important;
	max-width: 540px;
	-webkit-text-fill-color: var(--text);
	background: none;
}
.wp-block-woocommerce-empty-cart-block .wp-block-heading.with-empty-cart-icon::before {
	content: ''; /* hide WC's default icon, our ::before handles it */
}
.wp-block-woocommerce-empty-cart-block p {
	color: var(--text2) !important;
	font-size: 17px !important;
	line-height: 1.7;
	max-width: 420px;
	margin: 0 auto 28px !important;
	text-align: center;
}
.wp-block-woocommerce-empty-cart-block .wp-block-separator {
	display: none !important;
}
.wp-block-woocommerce-empty-cart-block .wp-block-button .wp-block-button__link {
	background: var(--grad) !important;
	color: #fff !important;
	border-radius: 14px !important;
	font-family: var(--vs-font-accent) !important;
	font-weight: 700 !important;
	padding: 14px 32px !important;
	box-shadow: 0 8px 24px rgba(232,53,138,.4) !important;
}
.wp-block-woocommerce-empty-cart-block .wp-block-product-new,
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new,
.wp-block-woocommerce-empty-cart-block .wc-block-grid {
	margin-top: 48px;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	list-style: none;
	padding: 0;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
	background: var(--bg2);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-md);
	padding: 14px;
	text-align: center;
	transition: transform .25s var(--ease), border-color .2s, box-shadow .25s;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product:hover {
	transform: translateY(-3px);
	border-color: var(--pink);
	box-shadow: var(--shadow);
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image {
	border-radius: 12px; overflow: hidden;
	margin-bottom: 10px;
	aspect-ratio: 1;
	background: var(--bg);
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img {
	width: 100%; height: 100%; object-fit: cover;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
	font-family: var(--vs-font-display) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	color: var(--text) !important;
	margin-bottom: 6px;
	min-height: 0 !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price {
	font-family: var(--vs-font-display) !important;
	font-weight: 800 !important;
	font-size: 16px !important;
	color: var(--pink) !important;
	background: none;
	-webkit-text-fill-color: var(--pink);
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link {
	background: var(--grad) !important;
	color: #fff !important;
	font-family: var(--vs-font-accent) !important;
	font-size: 12px !important;
	padding: 8px 14px !important;
	border-radius: 10px !important;
	width: 100%;
}

@media (max-width: 960px) {
	.wp-block-woocommerce-empty-cart-block .wc-block-grid__products { grid-template-columns: repeat(2, 1fr); }
}

/* ════════════════════════════════════════════════════════════════════
   PREMIUM CHECKOUT FINISH — typography, spacing, controls, dropdowns
   ════════════════════════════════════════════════════════════════════ */

/* Section cards — every block wrapper gets the same treatment */
.vs-flow-content .wp-block-woocommerce-checkout-contact-information-block,
.vs-flow-content .wp-block-woocommerce-checkout-shipping-address-block,
.vs-flow-content .wp-block-woocommerce-checkout-billing-address-block,
.vs-flow-content .wp-block-woocommerce-checkout-shipping-method-block,
.vs-flow-content .wp-block-woocommerce-checkout-pickup-options-block,
.vs-flow-content .wp-block-woocommerce-checkout-payment-block,
.vs-flow-content .wp-block-woocommerce-checkout-order-note-block,
.vs-flow-content .wp-block-woocommerce-checkout-totals-block,
.vs-flow-content .wp-block-woocommerce-checkout-order-summary-block,
.vs-flow-content .wp-block-woocommerce-cart-order-summary-block {
	background: var(--card-bg) !important;
	border: 1.5px solid var(--border) !important;
	border-radius: 18px !important;
	padding: 28px 32px !important;
	margin: 0 0 16px !important;
	box-shadow: 0 1px 0 rgba(139,53,214,.04), 0 8px 24px rgba(139,53,214,.06) !important;
	transition: border-color .2s ease;
}
.vs-flow-content .wc-block-components-checkout-step:hover,
.vs-flow-content .wp-block-woocommerce-checkout-shipping-address-block:hover {
	border-color: rgba(232,53,138,.18) !important;
}

/* Step heading — consistent display type */
.vs-flow-content .wc-block-components-checkout-step__heading,
.vs-flow-content .wc-block-components-title,
.vs-flow-content .wp-block-woocommerce-cart-order-summary-heading-block,
.vs-flow-content .wc-block-components-checkout-step__title {
	font-family: var(--vs-font-display) !important;
	font-weight: 800 !important;
	font-size: 20px !important;
	color: var(--text) !important;
	letter-spacing: -0.005em !important;
	margin: 0 0 6px !important;
	padding: 0 !important;
}
.vs-flow-content .wc-block-components-checkout-step__description {
	color: var(--muted) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.55 !important;
	margin: 0 0 22px !important;
	font-family: var(--vs-font-body) !important;
}
.vs-flow-content .wc-block-components-checkout-step__title-content {
	color: var(--text2) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	font-family: var(--vs-font-accent) !important;
	letter-spacing: .04em !important;
}

/* Step heading numeric badge */
.vs-flow-content .wc-block-components-checkout-step__container::before {
	display: none;
}

/* Field labels (small caps, accent) */
.vs-flow-content .wc-block-components-text-input label,
.vs-flow-content .wc-block-components-textarea label,
.vs-flow-content .wc-block-components-checkbox__label,
.vs-flow-content .wc-block-components-radio-control__option-label,
.vs-flow-content label {
	font-family: var(--vs-font-accent) !important;
	font-weight: 700 !important;
	font-size: 11.5px !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
	color: var(--muted) !important;
}

/* Inputs — unified premium style */
.vs-flow-content .wc-block-components-text-input,
.vs-flow-content .wc-block-components-textarea {
	margin-bottom: 14px !important;
}
.vs-flow-content .wc-block-components-text-input input,
.vs-flow-content .wc-block-components-textarea textarea,
.vs-flow-content input[type="text"],
.vs-flow-content input[type="email"],
.vs-flow-content input[type="tel"],
.vs-flow-content input[type="password"],
.vs-flow-content input[type="number"],
.vs-flow-content input.wc-block-components-text-input__input {
	background: var(--bg2) !important;
	border: 1.5px solid var(--border) !important;
	border-radius: 12px !important;
	padding: 16px 16px !important;
	font-size: 15px !important;
	font-family: var(--vs-font-body) !important;
	color: var(--text) !important;
	width: 100% !important;
	height: auto !important;
	transition: border-color .2s, box-shadow .2s, background .2s !important;
	box-shadow: none !important;
}
.vs-flow-content .wc-block-components-text-input input:hover,
.vs-flow-content .wc-block-components-textarea textarea:hover {
	border-color: var(--border2) !important;
	background: var(--card-bg) !important;
}
.vs-flow-content .wc-block-components-text-input input:focus,
.vs-flow-content .wc-block-components-textarea textarea:focus,
.vs-flow-content input:focus {
	border-color: var(--pink) !important;
	background: var(--card-bg) !important;
	box-shadow: 0 0 0 4px rgba(232,53,138,.12) !important;
	outline: none !important;
}

/* Floating-label position fix (WC pads input top to fit floated label) */
.vs-flow-content .wc-block-components-text-input.is-active input,
.vs-flow-content .wc-block-components-text-input input:focus,
.vs-flow-content .wc-block-components-text-input input:not(:placeholder-shown) {
	padding-top: 22px !important;
	padding-bottom: 10px !important;
}
.vs-flow-content .wc-block-components-text-input label,
.vs-flow-content .wc-block-components-text-input.is-active label,
.vs-flow-content .wc-block-components-text-input input:not(:placeholder-shown) ~ label {
	font-size: 10px !important;
	top: 8px !important;
	left: 16px !important;
	color: var(--muted) !important;
	transform: none !important;
}

/* Validation state */
.vs-flow-content .has-error .wc-block-components-text-input input,
.vs-flow-content .has-error input {
	border-color: var(--pink) !important;
	background: var(--rose) !important;
}
[data-theme="dark"] .vs-flow-content .has-error input { background: rgba(232,53,138,.12) !important; }
.vs-flow-content .wc-block-components-validation-error {
	color: var(--pink) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	margin-top: 6px !important;
}

/* DROPDOWNS / SELECTS / COMBOBOX — premium styling */
.vs-flow-content select,
.vs-flow-content .wc-block-components-combobox,
.vs-flow-content .wc-block-components-state-input,
.vs-flow-content .wc-block-components-country-input {
	margin-bottom: 14px !important;
}
.vs-flow-content select,
.vs-flow-content .wc-block-components-combobox-control,
.vs-flow-content .components-combobox-control__suggestions-container,
.vs-flow-content .wc-block-components-form select {
	background: var(--bg2) !important;
	border: 1.5px solid var(--border) !important;
	border-radius: 12px !important;
	padding: 0 !important;
	transition: border-color .2s, box-shadow .2s, background .2s !important;
	min-height: 56px !important;
	display: flex !important;
	align-items: stretch !important;
	position: relative;
	box-shadow: none !important;
}
.vs-flow-content select {
	appearance: none !important;
	-webkit-appearance: none !important;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--text2) 50%),
		linear-gradient(135deg, var(--text2) 50%, transparent 50%) !important;
	background-position:
		calc(100% - 22px) calc(50% + 2px),
		calc(100% - 17px) calc(50% + 2px) !important;
	background-size: 5px 5px, 5px 5px !important;
	background-repeat: no-repeat !important;
	padding: 16px 44px 16px 16px !important;
	font-size: 15px !important;
	font-family: var(--vs-font-body) !important;
	color: var(--text) !important;
	cursor: pointer !important;
}
.vs-flow-content select:hover,
.vs-flow-content .wc-block-components-combobox-control:hover {
	border-color: var(--border2) !important;
	background-color: var(--card-bg) !important;
}
.vs-flow-content select:focus,
.vs-flow-content .wc-block-components-combobox-control:focus-within {
	border-color: var(--pink) !important;
	background-color: var(--card-bg) !important;
	box-shadow: 0 0 0 4px rgba(232,53,138,.12) !important;
	outline: none !important;
}
.vs-flow-content .components-combobox-control__suggestions-container {
	min-height: auto !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}
.vs-flow-content .components-form-token-field__input-container,
.vs-flow-content .components-combobox-control__suggestions-container .components-form-token-field__input-container {
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
	min-height: auto !important;
}
.vs-flow-content .components-combobox-control__suggestions-container input {
	background: transparent !important;
	border: none !important;
	padding: 16px 44px 16px 16px !important;
	font-size: 15px !important;
	color: var(--text) !important;
	box-shadow: none !important;
	min-height: 54px !important;
	width: 100% !important;
}
.vs-flow-content .components-combobox-control__suggestions-container input:focus { box-shadow: none !important; }
.vs-flow-content .wc-block-components-combobox::after {
	content: '';
	position: absolute;
	right: 18px; top: 50%;
	width: 8px; height: 8px;
	border: 1.5px solid var(--text2);
	border-top: 0; border-left: 0;
	transform: translateY(-70%) rotate(45deg);
	pointer-events: none;
}
.vs-flow-content .components-form-token-field__suggestions-list {
	background: var(--card-bg) !important;
	border: 1.5px solid var(--border) !important;
	border-radius: 12px !important;
	box-shadow: 0 12px 36px rgba(139,53,214,.18) !important;
	max-height: 280px !important;
	margin-top: 6px !important;
	padding: 6px !important;
}
.vs-flow-content .components-form-token-field__suggestion {
	padding: 10px 14px !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	color: var(--text) !important;
	font-family: var(--vs-font-body) !important;
}
.vs-flow-content .components-form-token-field__suggestion.is-selected,
.vs-flow-content .components-form-token-field__suggestion:hover {
	background: var(--rose) !important;
	color: var(--pink) !important;
}
[data-theme="dark"] .vs-flow-content .components-form-token-field__suggestion.is-selected,
[data-theme="dark"] .vs-flow-content .components-form-token-field__suggestion:hover {
	background: rgba(232,53,138,.15) !important;
}

/* Checkbox + radio — premium */
.vs-flow-content .wc-block-components-checkbox input[type="checkbox"],
.vs-flow-content input[type="checkbox"],
.vs-flow-content input[type="radio"] {
	width: 20px !important; height: 20px !important;
	border-radius: 6px !important;
	border: 1.5px solid var(--border2) !important;
	background: var(--bg2) !important;
	cursor: pointer !important;
	accent-color: var(--pink) !important;
}
.vs-flow-content input[type="radio"] { border-radius: 50% !important; }
.vs-flow-content .wc-block-components-checkbox__label,
.vs-flow-content .wc-block-components-radio-control__option-label {
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-family: var(--vs-font-body) !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	color: var(--text2) !important;
}

/* Checkout optional checkboxes (Otvoriti račun? / Dostaviti na različitu adresu?)
   — flush-left, clean [checkbox] [label] row (no indent). */
.vs-flow-content .wc-block-components-checkbox {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 0 !important;
	position: relative !important;
}
.vs-flow-content .wc-block-components-checkbox__input[type="checkbox"] {
	position: static !important;
	margin: 0 !important;
	float: none !important;
	flex: 0 0 20px !important;
}
.vs-flow-content .wc-block-components-checkbox__mark { display: none !important; }
.vs-flow-content .wc-block-components-checkbox__label {
	margin: 0 !important;
	padding: 0 !important;
}

/* Radio/shipping/payment option cards */
.vs-flow-content .wc-block-components-radio-control__option {
	background: var(--bg2) !important;
	border: 1.5px solid var(--border) !important;
	border-radius: 12px !important;
	padding: 16px 18px !important;
	margin: 0 0 10px !important;
	cursor: pointer !important;
	transition: border-color .2s, background .2s !important;
	display: grid !important;
	grid-template-columns: 24px 1fr auto !important;
	gap: 12px !important;
	align-items: center !important;
}
.vs-flow-content .wc-block-components-radio-control__option:hover {
	border-color: var(--border2) !important;
	background: var(--card-bg) !important;
}
.vs-flow-content .wc-block-components-radio-control__option--checked,
.vs-flow-content .wc-block-components-radio-control__option:has(input:checked) {
	border-color: var(--pink) !important;
	background: var(--rose) !important;
}
[data-theme="dark"] .vs-flow-content .wc-block-components-radio-control__option--checked,
[data-theme="dark"] .vs-flow-content .wc-block-components-radio-control__option:has(input:checked) {
	background: rgba(232,53,138,.10) !important;
}

/* Order summary card (sidebar) */
.vs-flow-content .wp-block-woocommerce-checkout-totals-block,
.vs-flow-content .wp-block-woocommerce-checkout-order-summary-block,
.vs-flow-content .wp-block-woocommerce-cart-order-summary-block {
	padding: 26px 28px !important;
	box-shadow: 0 12px 36px rgba(139,53,214,.10) !important;
}
.vs-flow-content .wc-block-components-totals-item {
	font-size: 14px !important;
	color: var(--text2) !important;
	padding: 10px 0 !important;
	border-bottom: 1px solid var(--border) !important;
	font-family: var(--vs-font-body) !important;
}
.vs-flow-content .wc-block-components-totals-item:last-child { border-bottom: none !important; }
.vs-flow-content .wc-block-components-totals-item__label {
	color: var(--text2) !important;
	font-weight: 600 !important;
}
.vs-flow-content .wc-block-components-totals-item__value {
	color: var(--text) !important;
	font-weight: 700 !important;
	font-family: var(--vs-font-display) !important;
}
.vs-flow-content .wc-block-components-totals-footer-item {
	margin-top: 14px !important;
	padding-top: 18px !important;
	border-top: 1.5px solid var(--border) !important;
	border-bottom: none !important;
}
.vs-flow-content .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: var(--vs-font-display) !important;
	font-weight: 800 !important;
	font-size: 16px !important;
	color: var(--text) !important;
}
.vs-flow-content .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.vs-flow-content .wc-block-components-totals-footer-item__price {
	font-family: var(--vs-font-display) !important;
	font-weight: 900 !important;
	font-size: 22px !important;
	color: var(--pink) !important;
	background: none !important;
	-webkit-text-fill-color: var(--pink) !important;
	letter-spacing: -0.01em !important;
}

/* Order summary product items list */
.vs-flow-content .wc-block-components-order-summary-item {
	display: grid !important;
	grid-template-columns: 56px 1fr auto !important;
	gap: 14px !important;
	padding: 14px 0 !important;
	border-bottom: 1px solid var(--border) !important;
	align-items: center !important;
}
.vs-flow-content .wc-block-components-order-summary-item:last-child { border-bottom: none !important; }
.vs-flow-content .wc-block-components-order-summary-item__image img,
.vs-flow-content .wc-block-components-order-summary-item__image {
	width: 56px !important; height: 56px !important;
	border-radius: 10px !important;
	object-fit: cover !important;
}
.vs-flow-content .wc-block-components-order-summary-item__quantity {
	background: var(--grad) !important;
	color: #fff !important;
	font-family: var(--vs-font-accent) !important;
	font-weight: 700 !important;
	font-size: 11px !important;
	border-radius: 50px !important;
	padding: 2px 8px !important;
}
.vs-flow-content .wc-block-components-product-name {
	font-family: var(--vs-font-display) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	line-height: 1.3 !important;
	color: var(--text) !important;
}
.vs-flow-content .wc-block-components-product-metadata {
	font-size: 12px !important;
	color: var(--muted) !important;
	margin-top: 2px !important;
}

/* Coupon form */
.vs-flow-content .wc-block-components-totals-coupon {
	padding: 12px 0 !important;
}
.vs-flow-content .wc-block-components-totals-coupon__button.wc-block-components-button {
	background: transparent !important;
	color: var(--pink) !important;
	font-family: var(--vs-font-accent) !important;
	font-weight: 700 !important;
	box-shadow: none !important;
	padding: 6px 0 !important;
	font-size: 13px !important;
	width: auto !important;
}
.vs-flow-content .wc-block-components-totals-coupon__form {
	display: flex !important;
	gap: 8px !important;
	margin-top: 10px !important;
}
.vs-flow-content .wc-block-components-totals-coupon__form input {
	flex: 1 !important;
	min-height: 48px !important;
	padding: 12px 14px !important;
}
.vs-flow-content .wc-block-components-totals-coupon__form button {
	background: var(--grad) !important;
	color: #fff !important;
	border-radius: 12px !important;
	padding: 0 22px !important;
	font-family: var(--vs-font-accent) !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	min-height: 48px !important;
	width: auto !important;
	box-shadow: none !important;
}

/* Place-order button — flagship CTA */
.vs-flow-content .wp-block-woocommerce-checkout-actions-block,
.vs-flow-content .wc-block-checkout__actions {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 18px 0 0 !important;
	margin: 0 !important;
}
.vs-flow-content .wc-block-components-checkout-place-order-button,
.vs-flow-content .wc-block-checkout__actions_row .wc-block-components-button {
	width: 100% !important;
	min-height: 60px !important;
	font-size: 16px !important;
	border-radius: 16px !important;
	box-shadow: 0 12px 32px rgba(232,53,138,.4) !important;
	padding: 18px 32px !important;
	letter-spacing: -0.005em !important;
}

/* Express payment block (Apple/Google Pay) */
.vs-flow-content .wp-block-woocommerce-cart-express-payment-block,
.vs-flow-content .wp-block-woocommerce-checkout-express-payment-block {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 0 16px !important;
}
.vs-flow-content .wc-block-components-express-payment {
	background: var(--bg2) !important;
	border: 1.5px dashed var(--border2) !important;
	border-radius: 14px !important;
	padding: 18px !important;
}
.vs-flow-content .wc-block-components-express-payment__title-container {
	color: var(--muted) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
}

/* Payment methods icons */
.vs-flow-content .wp-block-woocommerce-cart-accepted-payment-methods-block,
.vs-flow-content .wp-block-woocommerce-checkout-accepted-payment-methods-block {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 14px 0 0 !important;
	text-align: center !important;
	margin: 0 !important;
}
.vs-flow-content .wc-block-components-payment-method-icons {
	display: flex !important;
	gap: 6px !important;
	justify-content: center !important;
	flex-wrap: wrap !important;
}
.vs-flow-content .wc-block-components-payment-method-icons img {
	height: 24px !important;
	border-radius: 4px !important;
	background: #fff !important;
	padding: 2px 4px !important;
	border: 1px solid var(--border) !important;
}

/* Notice / error banners */
.vs-flow-content .wc-block-components-notice-banner {
	background: var(--card-bg) !important;
	border: 1.5px solid var(--mint) !important;
	border-radius: 14px !important;
	padding: 14px 18px !important;
	margin: 0 0 16px !important;
	font-size: 14px !important;
	color: var(--text) !important;
}
.vs-flow-content .wc-block-components-notice-banner.is-error {
	border-color: var(--pink) !important;
	background: var(--rose) !important;
}
[data-theme="dark"] .vs-flow-content .wc-block-components-notice-banner.is-error {
	background: rgba(232,53,138,.10) !important;
}

/* Saved address row */
.vs-flow-content .wc-block-components-address-card {
	background: var(--bg2) !important;
	border: 1.5px solid var(--border) !important;
	border-radius: 12px !important;
	padding: 16px 18px !important;
	font-size: 14px !important;
}
.vs-flow-content .wc-block-components-address-card__edit {
	color: var(--pink) !important;
	font-family: var(--vs-font-accent) !important;
	font-weight: 700 !important;
	font-size: 12px !important;
}

/* Shipping option row inner alignment */
.vs-flow-content .wc-block-components-radio-control__option-content {
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
}
.vs-flow-content .wc-block-components-radio-control-secondary-label {
	font-family: var(--vs-font-display) !important;
	font-weight: 800 !important;
	color: var(--pink) !important;
	font-size: 14px !important;
}

@media (max-width: 720px) {
	.vs-flow-content .wp-block-woocommerce-checkout-contact-information-block,
	.vs-flow-content .wp-block-woocommerce-checkout-shipping-address-block,
	.vs-flow-content .wp-block-woocommerce-checkout-billing-address-block,
	.vs-flow-content .wp-block-woocommerce-checkout-shipping-method-block,
	.vs-flow-content .wp-block-woocommerce-checkout-payment-block,
	.vs-flow-content .wp-block-woocommerce-checkout-order-note-block,
	.vs-flow-content .wp-block-woocommerce-checkout-totals-block,
	.vs-flow-content .wp-block-woocommerce-checkout-order-summary-block,
	.vs-flow-content .wp-block-woocommerce-cart-order-summary-block {
		padding: 22px 20px !important;
	}
}

/* Buttons */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button.wc-block-cart__submit-button,
.wc-block-cart__submit-container .wc-block-components-button,
.wc-block-checkout__actions_row .wc-block-components-button.contained {
	background: var(--grad) !important;
	color: #fff !important;
	font-family: var(--vs-font-accent) !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	padding: 14px 28px !important;
	border-radius: 14px !important;
	border: none !important;
	box-shadow: 0 6px 24px rgba(232, 53, 138, .38) !important;
	transition: transform .2s, box-shadow .2s !important;
	width: 100% !important;
	justify-content: center !important;
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 36px rgba(232, 53, 138, .55) !important;
}

.wc-block-components-button.outlined {
	background: transparent !important;
	color: var(--purple) !important;
	border: 2px solid var(--purple) !important;
}

/* (Older checkout rules removed in 2.9.4 — superseded by premium .vs-flow-content cascade above.) */

/* Notices in blocks */
.wc-block-components-notice-banner {
	background: var(--card-bg) !important;
	border: 1.5px solid var(--mint) !important;
	border-radius: var(--rad-md) !important;
	padding: 14px 18px !important;
	margin-bottom: 14px !important;
}
.wc-block-components-notice-banner.is-error {
	border-color: var(--pink) !important;
	background: var(--rose) !important;
}

/* Sidebar layout: left form (wide) + right summary (compact, sticky).
   Uses high-specificity `.vs-flow-content` ancestor + double-class on main +
   bare class fallback to outrank WC block container queries after hydration. */
.vs-flow-content .wc-block-components-sidebar-layout,
.vs-flow-content .wc-block-cart.wc-block-components-sidebar-layout,
.vs-flow-content .wc-block-checkout.wc-block-components-sidebar-layout,
.wc-block-components-sidebar-layout.wc-block-cart,
.wc-block-components-sidebar-layout.wc-block-checkout,
.wp-block-woocommerce-cart .wc-block-components-sidebar-layout,
.wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 380px !important;
	grid-template-areas: 'main sidebar' !important;
	column-gap: 40px !important;
	row-gap: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
	margin: 0 !important;
}
.vs-flow-content .wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar-layout > .wc-block-components-main {
	grid-area: main !important;
	padding: 0 !important;
	max-width: none !important;
	min-width: 0 !important;
	width: 100% !important;
	float: none !important;
}
.vs-flow-content .wc-block-components-sidebar-layout .wc-block-components-sidebar,
.wc-block-components-sidebar-layout > .wc-block-components-sidebar {
	grid-area: sidebar !important;
	position: sticky !important;
	top: 90px !important;
	align-self: start !important;
	min-width: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
	float: none !important;
}

/* WC container-query mode (post-hydration) — kill the data-attribute overrides */
.wc-block-components-sidebar-layout[data-large],
.wc-block-components-sidebar-layout[data-medium],
.wc-block-components-sidebar-layout[data-small] {
	grid-template-columns: minmax(0, 1fr) 380px !important;
}
/* Disable WC's container queries so they don't reshape the grid mid-flight. */
.wc-block-components-sidebar-layout {
	container-type: normal !important;
	container-name: none !important;
}
/* Inner blocks must allow shrink. */
.wc-block-components-main > *,
.wc-block-components-sidebar > * {
	min-width: 0 !important;
	max-width: 100% !important;
}

@media (max-width: 1100px) {
	.vs-flow-content .wc-block-components-sidebar-layout,
	.wc-block-components-sidebar-layout.wc-block-cart,
	.wc-block-components-sidebar-layout.wc-block-checkout,
	.wp-block-woocommerce-cart .wc-block-components-sidebar-layout,
	.wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
		grid-template-columns: minmax(0, 1fr) 340px !important;
		column-gap: 28px !important;
	}
}
@media (max-width: 960px) {
	.vs-flow-content { padding: 18px 20px 56px; }
	.vs-flow-content .wc-block-components-sidebar-layout,
	.wc-block-components-sidebar-layout.wc-block-cart,
	.wc-block-components-sidebar-layout.wc-block-checkout,
	.wp-block-woocommerce-cart .wc-block-components-sidebar-layout,
	.wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
		grid-template-columns: 1fr !important;
		grid-template-areas: 'main' 'sidebar' !important;
		row-gap: 20px !important;
	}
	.vs-flow-content .wc-block-components-sidebar-layout .wc-block-components-sidebar { position: static !important; }
	.vs-flow-bar { margin-top: 42px; }
}

/* Hide block sidebar layout default styles that we don't want */
.wc-block-components-totals-coupon,
.wc-block-components-totals-shipping {
	background: transparent !important;
	padding: 8px 0 !important;
}

/* ════════ MY ACCOUNT ════════ */
/* The account .woocommerce wrapper is full-width and centred. The 2-column
   dashboard grid ONLY applies when the account navigation is present — so the
   login/register page (which holds .auth-layout instead) stays full-width. */
.woocommerce-account .woocommerce {
	max-width: 1100px; margin: 0 auto; width: 100%;
	position: relative; z-index: 2;
}
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	padding: var(--vs-nav-clear) 32px 80px;
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	align-items: start; gap: 36px;
}
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}
.woocommerce-account .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-MyAccount-content { min-width: 0; }
/* The generic .entry-content clamps to 720px — the account needs full width. */
.woocommerce-account .entry-content,
.woocommerce-account article.entry-content {
	max-width: none !important; width: 100% !important;
	margin: 0 !important; padding: 0 !important; display: block !important;
}
/* WooCommerce's default float layout must not fight the grid. */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	float: none !important; width: auto !important;
}
.woocommerce-MyAccount-navigation ul {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 6px;
}
.woocommerce-MyAccount-navigation a {
	display: block;
	background: var(--card-bg); border: 1.5px solid var(--border);
	border-radius: 14px; padding: 11px 16px;
	color: var(--text2); text-decoration: none;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 14px;
	transition: all .2s;
}
.woocommerce-MyAccount-navigation a:hover,
.woocommerce-MyAccount-navigation .is-active a {
	background: var(--rose); color: var(--pink); border-color: var(--pink);
}
[data-theme="dark"] .woocommerce-MyAccount-navigation a:hover,
[data-theme="dark"] .woocommerce-MyAccount-navigation .is-active a { background: rgba(232,53,138,.12); }
.woocommerce-MyAccount-content {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	padding: 32px 36px;
	box-shadow: var(--shadow);
}

.account-welcome {
	display: flex; align-items: center; gap: 20px;
	margin-bottom: 20px;
}
.account-avatar {
	width: 64px; height: 64px; border-radius: 50%;
	background: var(--grad); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 28px;
	box-shadow: 0 8px 24px rgba(232,53,138,.35);
	flex-shrink: 0;
}
.account-welcome h2 {
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 26px; margin: 0; line-height: 1.1;
}
.account-welcome h2 span {
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.account-welcome-sub { color: var(--muted); font-size: 14px; margin-top: 4px; }

.account-intro {
	color: var(--text2); line-height: 1.75;
	font-size: 15px;
	margin-bottom: 28px;
	padding-bottom: 24px;
	border-bottom: 1.5px solid var(--border);
}
.account-intro a { color: var(--pink); font-weight: 700; text-decoration: none; }
.account-intro a:hover { text-decoration: underline; }

.account-tiles {
	display: grid; grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}
.account-tile {
	background: var(--bg2);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-md);
	padding: 22px 24px;
	text-decoration: none;
	color: var(--text);
	display: flex; flex-direction: column; gap: 6px;
	transition: transform .25s var(--ease), border-color .2s, box-shadow .25s;
}
.account-tile:hover {
	transform: translateY(-3px);
	border-color: var(--pink);
	box-shadow: var(--shadow);
	color: var(--text);
}
.account-tile-icon { font-size: 28px; line-height: 1; }
.account-tile-title {
	font-family: var(--vs-font-display); font-weight: 700;
	font-size: 16px;
}
.account-tile-sub { font-size: 13px; color: var(--muted); }

.account-nav-icon {
	display: inline-block; margin-right: 8px;
	font-size: 14px;
}

/* login + register grid */
/* Login / register — left banner + the two cards stacked in the right column. */
.auth-layout {
	max-width: 1100px; margin: 0 auto; width: 100%;
	padding: var(--vs-nav-clear) 32px 80px;
	display: grid; grid-template-columns: minmax(300px, 380px) 1fr;
	gap: 28px; align-items: stretch;
	position: relative; z-index: 2;
}
.auth-side {
	background: linear-gradient(160deg, var(--orange) 0%, var(--pink) 52%, var(--purple) 100%);
	border-radius: var(--rad-lg);
	padding: 48px 40px;
	color: #fff;
	display: flex; flex-direction: column; justify-content: center;
	box-shadow: var(--shadow-lg);
	overflow: hidden;
}
.auth-side-eyebrow {
	display: inline-flex; align-self: flex-start; align-items: center; gap: 8px;
	background: rgba(255, 255, 255, .20);
	border: 1.5px solid rgba(255, 255, 255, .34);
	border-radius: 50px; padding: 7px 16px;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 12px; letter-spacing: .08em; text-transform: uppercase;
	margin-bottom: 22px;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.auth-side-title {
	font-family: var(--vs-font-display); font-weight: 900;
	font-size: clamp(26px, 2.2vw, 36px); line-height: 1.14;
	letter-spacing: -.01em; margin: 0 0 14px; color: #fff;
	overflow-wrap: break-word; hyphens: auto;
}
.auth-side-sub {
	font-size: 15px; line-height: 1.65;
	color: rgba(255, 255, 255, .92); margin: 0; max-width: 32ch;
}
.login-grid {
	display: flex; flex-direction: column; gap: 20px;
	min-width: 0;
}
.auth-card {
	background: var(--card-bg);
	border: 1.5px solid var(--border);
	border-radius: var(--rad-lg);
	padding: 32px 36px;
	box-shadow: var(--shadow-lg);
}
.auth-card h2 {
	font-family: var(--vs-font-display); font-weight: 800;
	font-size: 24px; margin-bottom: 18px;
}
.auth-card .form-row { margin-bottom: 14px; }
.auth-card label {
	display: block;
	font-family: var(--vs-font-accent); font-weight: 700;
	font-size: 12px; letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--text2); margin-bottom: 6px;
}
.auth-card input[type="text"],
.auth-card input[type="email"],
.auth-card input[type="password"] {
	width: 100%;
	background: var(--bg2);
	border: 1.5px solid var(--border);
	border-radius: 12px;
	padding: 12px 14px;
	font-size: 15px; color: var(--text);
	font-family: var(--vs-font-body);
	outline: none;
	transition: border-color .2s, box-shadow .2s;
}
.auth-card input:focus {
	border-color: var(--pink);
	box-shadow: 0 0 0 3px rgba(232,53,138,.12);
}
.auth-card .woocommerce-form-login__rememberme {
	display: flex; align-items: center; gap: 8px;
	font-size: 13px; color: var(--text2);
	font-family: var(--vs-font-body);
	font-weight: 600;
	letter-spacing: 0; text-transform: none;
}
.auth-card .button {
	width: 100% !important;
	margin-top: 12px;
	justify-content: center;
}
.auth-forgot {
	margin-top: 14px;
	font-size: 13px;
	text-align: center;
}
.auth-forgot a { color: var(--pink); font-weight: 700; }

@media (max-width: 760px) {
	.account-tiles { grid-template-columns: 1fr; }
	.auth-layout { grid-template-columns: 1fr; padding: var(--vs-nav-clear) 20px 64px; gap: 18px; }
}

/* ════════ RESPONSIVE ════════ */
@media (max-width: 1100px) {
	.shop-layout { padding: 24px 48px 80px; }
	.product-layout, .single-product div.product { padding: 32px 48px 80px; gap: 40px; }
	.woocommerce-tabs, .related.products, .upsells.products { padding-left: 48px; padding-right: 48px; }
	.woocommerce-cart .site-main { padding: var(--vs-nav-clear) 48px 80px; }
	.woocommerce-checkout .site-main { padding: var(--vs-nav-clear) 48px 80px; }
	.filter-inner { padding: 0 48px; }
	.vs-breadcrumbs { padding-left: 24px; padding-right: 24px; }
}

@media (max-width: 960px) {
	.prod-grid, .products,
	.products.columns-3, .products.columns-4 { grid-template-columns: repeat(2, 1fr); }
	.related.products .products,
	.upsells.products .products { grid-template-columns: repeat(2, 1fr); }

	.product-layout, .single-product div.product { grid-template-columns: 1fr; padding: 24px 28px 64px; gap: 32px; }
	.gallery-thumbs, .flex-control-thumbs { grid-template-columns: repeat(5, 1fr); }

	.woocommerce-cart .site-main { padding: var(--vs-nav-clear) 28px 64px; }
	.cart-layout { grid-template-columns: 1fr; }
	.cart_totals, .cart-summary { position: static; }

	form.checkout { grid-template-columns: 1fr; }
	form.checkout .woocommerce-checkout-review-order { position: static; }
	.woocommerce-checkout .site-main { padding: var(--vs-nav-clear) 28px 64px; }

	.woocommerce-account .woocommerce { grid-template-columns: 1fr; padding: var(--vs-nav-clear) 28px 64px; }

	.shop-layout { padding: 18px 28px 64px; }
	.filter-inner { padding: 0 28px; }
	.vs-breadcrumbs { padding: 14px 18px; }
	.vs-breadcrumbs .woocommerce-breadcrumb,
	.vs-breadcrumbs .breadcrumb { font-size: 12.5px; padding: 6px 14px; }
	/* breadcrumb top padding now inherits --vs-nav-clear from base rule */
	.woocommerce-tabs, .related.products, .upsells.products { padding-left: 28px; padding-right: 28px; }

	.shop_table.cart thead { display: none; }
	.shop_table.cart tr {
		display: grid; grid-template-columns: 80px 1fr;
		gap: 6px 14px;
		padding: 14px;
		border-bottom: 1.5px solid var(--border);
	}
	.shop_table.cart td { padding: 0 !important; border: none !important; }
	.shop_table.cart .product-thumbnail { grid-row: span 4; }
	.shop_table.cart .product-thumbnail img { width: 80px; height: 80px; }

	.trust-badges { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
	.prod-grid, .products,
	.products.columns-3, .products.columns-4 { grid-template-columns: 1fr; }
	.related.products .products,
	.upsells.products .products { grid-template-columns: 1fr 1fr; }
	.gallery-thumbs, .flex-control-thumbs { grid-template-columns: repeat(4, 1fr); }
	.product_title { font-size: 26px; }
	.summary .price .woocommerce-Price-amount { font-size: 28px; }
	.woocommerce-tabs ul.tabs, .tabs-nav { overflow-x: auto; flex-wrap: nowrap; }
	.search-input, .shop-search input[type="search"] { width: 100%; }
}

@media (max-width: 720px) {
	.sticky-atc.is-active { display: flex; }
}
@media (min-width: 721px) {
	.sticky-atc { display: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
 * MOBILE PRODUCTION PASS — WooCommerce (2026 best practices)
 * ≤768 px viewport. Shop grid, single product, cart, checkout, account,
 * mini-cart drawer. Touch-first, safe-area aware, 16 px inputs.
 * ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {

	/* Shop hero — smaller padding + readable type. */
	.shop-hero,
	.woocommerce-shop .page-hero {
		padding: 100px 22px 48px;
		min-height: 38svh;
		min-height: 38dvh;
	}
	.shop-hero h1 { font-size: clamp(30px, 8vw, 44px); }
	.shop-hero p  { font-size: 15px; line-height: 1.65; }
	.hi-icon { font-size: 26px; }
	.trust-row { gap: 8px; }
	.trust-chip { font-size: 12px; padding: 6px 12px; }

	/* Filter bar — horizontal scroll for chips, no wrap (touch-friendly). */
	.filter-wrap { padding: 10px 0; }
	.filter-inner {
		padding: 0 18px;
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-width: none;
		gap: 8px;
		scroll-snap-type: x proximity;
		-webkit-overflow-scrolling: touch;
	}
	.filter-inner::-webkit-scrollbar { display: none; }
	.filter-inner > * { flex-shrink: 0; scroll-snap-align: start; }
	.filter-label { font-size: 12px; }
	.filter-btn { min-height: 40px; padding: 8px 16px; font-size: 13px; }
	.search-wrap { width: 100%; min-width: 240px; }
	.search-input { width: 100%; }
	.vs-shop-sort { width: 100%; }
	.sort-select { width: 100%; min-height: 44px; padding: 10px 14px; }

	/* Breadcrumb — tighter on mobile. */
	.vs-breadcrumbs { padding: 12px 16px; }
	.vs-breadcrumbs .woocommerce-breadcrumb,
	.vs-breadcrumbs .breadcrumb { font-size: 12px; padding: 6px 12px; gap: 4px 6px; }
	/* breadcrumb top padding now inherits --vs-nav-clear from base rule */

	/* Shop layout — single column, comfortable padding. */
	.shop-layout { padding: 16px 16px 56px; }
	.prod-grid, .products,
	.products.columns-3, .products.columns-4 {
		grid-template-columns: 1fr !important;
		gap: 16px !important;
	}
	.results-bar {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
		margin-bottom: 18px;
	}

	/* Shop card — taller image to feel premium on phones. */
	.shop-card { border-radius: 18px; }
	.shop-card .card-img { aspect-ratio: 4 / 5; height: auto; }
	.shop-card .card-body { padding: 16px 18px 20px; }
	.shop-card .card-body h3,
	.shop-card .woocommerce-loop-product__title { font-size: 18px; line-height: 1.3; }
	.shop-card .card-footer { gap: 12px; }
	.shop-card .cart-add-btn {
		min-height: 44px;
		padding: 10px 16px;
		font-size: 13px;
		flex: 1;
		justify-content: center;
	}

	/* Single product — stacked, hero gallery first, sticky-cta. */
	.single-product div.product {
		padding: 16px 18px 96px;
		gap: 24px;
	}
	.product-layout {
		grid-template-columns: 1fr;
		gap: 24px;
		margin-bottom: 32px;
	}
	.gallery-thumbs { grid-template-columns: repeat(5, 1fr); gap: 8px; }
	.gallery-main { border-radius: 20px; }
	.product_title,
	.product_title.entry-title { font-size: clamp(26px, 7vw, 36px); }
	.summary .price .woocommerce-Price-amount,
	.single-product .price .woocommerce-Price-amount { font-size: 30px; }
	.summary .price del .woocommerce-Price-amount,
	.single-product .price del .woocommerce-Price-amount { font-size: 16px; }
	.woocommerce-product-details__short-description {
		font-size: 14.5px;
		padding: 12px 14px 12px 44px;
	}
	.product-meta-chips { gap: 6px; }
	.meta-chip { font-size: 11.5px; padding: 5px 12px; }

	/* Add-to-cart row — quantity + button side by side, both ≥48 px tall. */
	.cart {
		gap: 10px;
		flex-wrap: nowrap;
	}
	.quantity {
		flex-shrink: 0;
		border-radius: 12px;
	}
	.qty-dec, .qty-inc {
		width: 44px; height: 48px;
	}
	.quantity .qty,
	.qty-input {
		width: 48px; height: 48px;
		font-size: 16px;
	}
	.woocommerce form.cart .single_add_to_cart_button,
	.single_add_to_cart_button.button,
	.single_add_to_cart_button.button.alt,
	.single_add_to_cart_button {
		flex: 1;
		min-height: 48px;
		padding: 14px 18px !important;
		font-size: 15px !important;
		justify-content: center;
	}

	/* Trust badges — single column on phones. */
	.trust-badges { grid-template-columns: 1fr; gap: 8px; margin-bottom: 20px; }
	.trust-badge { padding: 10px 12px; }
	.trust-badge .tb-icon { font-size: 20px; }

	/* Tabs — scrollable horizontal nav, larger tap area. */
	.woocommerce-tabs ul.tabs,
	.tabs-nav {
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		gap: 0;
	}
	.woocommerce-tabs ul.tabs::-webkit-scrollbar,
	.tabs-nav::-webkit-scrollbar { display: none; }
	.woocommerce-tabs ul.tabs li a,
	.tab-btn,
	.tabs-nav li a {
		padding: 12px 16px;
		font-size: 13.5px;
		white-space: nowrap;
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}

	/* Sticky add-to-cart bar — visible from anywhere, safe-area bottom. */
	.sticky-atc {
		padding: 10px 14px calc(12px + var(--vs-sa-bottom, 0px));
		gap: 10px;
	}
	.sticky-atc-thumb { width: 40px; height: 40px; }
	.sticky-atc-title { font-size: 13px; }
	.sticky-atc-price { font-size: 12px; }
	.sticky-atc .btn-primary {
		min-height: 44px;
		padding: 8px 14px;
		font-size: 13px;
	}

	/* Cart page — stacked layout, full-width cards. */
	.woocommerce-cart .site-main { padding: var(--vs-nav-clear) 16px 48px; }
	.cart-layout { grid-template-columns: 1fr; gap: 20px; }
	.cart-item-card {
		flex-direction: row;
		gap: 12px;
		padding: 12px;
	}
	.cart-item-thumb { width: 80px; height: 80px; flex-shrink: 0; }
	.cart-item-info { gap: 8px; }
	.cart-item-foot {
		flex-wrap: wrap;
		gap: 10px;
	}
	.cart-item-qty .quantity { width: 100%; max-width: 130px; }
	.cart-actions {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}
	.coupon { display: flex; gap: 8px; }
	.coupon input { flex: 1; min-height: 48px; }
	.coupon button { min-height: 48px; padding: 0 16px; }
	.cart_totals { padding: 18px; }

	/* Checkout — single column, sticky review at bottom (collapsible visually). */
	.woocommerce-checkout .site-main { padding: var(--vs-nav-clear) 16px 48px; }
	form.checkout {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	form.checkout .woocommerce-checkout-review-order {
		position: static;
		max-height: none;
		padding: 18px;
	}
	.woocommerce-billing-fields, .woocommerce-shipping-fields {
		padding: 18px;
	}
	form.checkout .form-row {
		grid-column: 1 / -1 !important;
	}
	form.checkout input.input-text,
	form.checkout textarea,
	form.checkout select {
		min-height: 48px;
		padding: 12px 14px;
		font-size: 16px;
	}
	#place_order, .woocommerce-checkout #place_order {
		width: 100%;
		min-height: 52px;
		font-size: 16px;
	}

	/* Thank-you / order received — friendlier on phones. */
	.thankyou-section { padding: 48px 16px; }
	.thankyou-inner { padding: 0; }
	.order-summary-grid { grid-template-columns: 1fr; gap: 16px; }
	.thankyou-actions { flex-direction: column; gap: 10px; }
	.thankyou-actions .btn-primary,
	.thankyou-actions .btn-outline { width: 100%; justify-content: center; }

	/* My account — single column, stack tiles. */
	.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
		grid-template-columns: 1fr !important;
		padding: var(--vs-nav-clear) 16px 56px;
		gap: 18px;
	}
	.woocommerce-MyAccount-navigation ul {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		gap: 8px;
		scrollbar-width: none;
	}
	.woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
	.woocommerce-MyAccount-navigation li {
		flex-shrink: 0;
	}
	.woocommerce-MyAccount-navigation li a {
		min-height: 44px;
		padding: 10px 16px;
		font-size: 14px;
		white-space: nowrap;
	}

	/* Login / register — single column, full-width buttons. */
	.auth-layout {
		grid-template-columns: 1fr !important;
		padding: var(--vs-nav-clear) 16px 48px;
		gap: 16px;
	}
	.auth-side { padding: 32px 26px; }
	.auth-side-title { font-size: clamp(24px, 7vw, 30px); }
	.auth-card { padding: 22px; }
	.woocommerce-form button[type="submit"],
	.woocommerce-form-login__submit,
	.woocommerce-form-register__submit {
		width: 100%;
		min-height: 48px;
	}

	/* Mini-cart drawer — full-screen on phones, safe-area padding.
	   Keep right: 0 so transform-based slide-in from base CSS still works. */
	.mini-cart-drawer {
		width: 100vw !important;
		max-width: 100vw !important;
		right: 0 !important;
		padding-bottom: var(--vs-sa-bottom, 0px);
	}
	.mini-cart-head {
		padding: calc(16px + var(--vs-sa-top, 0px)) 18px 12px;
	}
	.mini-cart-body { padding: 12px 18px; }
	.mini-cart-foot {
		padding: 14px 18px calc(18px + var(--vs-sa-bottom, 0px));
	}
	.mini-cart-foot .btn-primary {
		min-height: 52px;
		font-size: 16px;
	}
	.mini-cart-close {
		width: 44px; height: 44px;
		min-width: 44px; min-height: 44px;
	}

	/* Cart-empty state — comfortable spacing. */
	.cart-empty { padding: 48px 18px; }
	.cart-empty .empty-icon { font-size: 56px; }
	.cart-empty h2 { font-size: 22px; }
	.cart-empty .btn-primary { width: 100%; max-width: 320px; }

	/* Bundle / newsletter — calmer cards on phones. */
	.bundle-cards { grid-template-columns: 1fr !important; gap: 16px !important; }
	.bundle-card { padding: 22px; }
	.newsletter { padding: 48px 18px !important; }
	.newsletter h2 { font-size: clamp(24px, 7vw, 32px); }
	.nl-form { flex-direction: column; gap: 10px; }
	.nl-input, .nl-btn { width: 100%; min-height: 48px; }
}

/* iOS-only — add bottom safe-area to elements that pin to viewport bottom. */
@supports (padding: max(0px)) {
	.mini-cart-drawer { padding-bottom: max(0px, env(safe-area-inset-bottom)); }
	.sticky-atc { padding-bottom: max(12px, calc(12px + env(safe-area-inset-bottom))); }
}
