/* =============================================================
   HEATSHABU — court brutalism design system
   Sharp corners · 2px ink borders · hard shadows · volt-lime
   ============================================================= */

/* ---------- shared utilities ---------- */

/* Safety net: no single element (a wide table, a long word, etc.) may ever widen the
   document past the viewport — that would shift `position: fixed` elements (back-to-top,
   drawers) off to the side on narrow/responsive screens. Wide tables get their own
   horizontal scroller instead (see the table rules further down). */
html, body { overflow-x: hidden; max-width: 100%; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute; word-wrap: normal !important;
}
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 999; background: var(--hs-volt); padding: 10px 16px; font-weight: 700; }
.skip-link:focus { left: 8px; top: 8px; }

.hs-icon { width: 20px; height: 20px; fill: currentColor; vertical-align: -4px; flex: none; }
.hs-icon--sm { width: 16px; height: 16px; vertical-align: -3px; }
.hs-icon--lg { width: 34px; height: 34px; }

h1, h2, h3, h4 { font-family: var(--hs-font-display); line-height: 1.08; margin: 0 0 .5em; }

.hs-main { min-height: 55vh; }

/* ---------- buttons ---------- */

.hs-btn,
.hs-prose .hs-btn {
	display: inline-flex; align-items: center; gap: 9px;
	font-family: var(--hs-font-display); font-weight: 800; font-size: .95rem;
	text-transform: uppercase; letter-spacing: .04em; text-decoration: none;
	padding: 13px 22px; border: 2px solid var(--hs-ink); cursor: pointer;
	background: var(--hs-card); color: var(--hs-ink);
	box-shadow: var(--hs-shadow);
	transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.hs-btn:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--hs-ink); }
.hs-btn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--hs-ink); }
.hs-btn--primary { background: var(--hs-volt); }
.hs-btn--primary:hover { background: var(--hs-volt-deep); }
.hs-btn--ghost { background: transparent; box-shadow: none; }
.hs-btn--ghost:hover { background: var(--hs-card); box-shadow: 4px 4px 0 var(--hs-ink); }
.hs-btn--sm { padding: 9px 14px; font-size: .8rem; }

/* WooCommerce buttons inherit the same look */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce-page a.button, .woocommerce-page button.button,
.wc-block-components-button,
button[name="update_cart"], .checkout-button {
	display: inline-flex !important; align-items: center; justify-content: center; gap: 8px;
	font-family: var(--hs-font-display) !important; font-weight: 800 !important; font-size: .92rem !important;
	text-transform: uppercase; letter-spacing: .04em; text-decoration: none !important;
	padding: 13px 22px !important; border: 2px solid var(--hs-ink) !important; border-radius: 0 !important;
	background: var(--hs-volt) !important; color: var(--hs-ink) !important; cursor: pointer;
	box-shadow: var(--hs-shadow);
	transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
	line-height: 1.2 !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
	background: var(--hs-volt-deep) !important; transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--hs-ink);
}
.woocommerce a.button.disabled, .woocommerce button.button.disabled, .woocommerce button.button:disabled {
	opacity: .55; transform: none; box-shadow: var(--hs-shadow);
}

/* ---------- ticker ---------- */

.hs-ticker { background: var(--hs-ink); color: var(--hs-volt); overflow: hidden; border-bottom: 2px solid var(--hs-ink); }
.hs-ticker__track {
	display: inline-flex; gap: 28px; white-space: nowrap; padding: 8px 0;
	font-family: var(--hs-font-display); font-weight: 700; font-size: .78rem;
	text-transform: uppercase; letter-spacing: .14em;
	animation: hs-ticker 36s linear infinite;
	will-change: transform;
}
.hs-ticker__track span { display: inline-block; }
@keyframes hs-ticker { from { transform: translateX(0); } to { transform: translateX(-33.333%); } }
@media (prefers-reduced-motion: reduce) { .hs-ticker__track { animation: none; } }

/* ---------- header ---------- */

.hs-header { position: sticky; top: 0; z-index: 60; background: var(--hs-bg); border-bottom: 2px solid var(--hs-ink); }
.hs-header__inner {
	max-width: var(--hs-max); margin: 0 auto; padding: 14px 20px;
	display: flex; align-items: center; gap: 22px;
}
.hs-header__brand { margin-right: auto; display: flex; align-items: center; }
.hs-header__brand .custom-logo { max-height: 48px; width: auto; }

.hs-wordmark {
	font-family: var(--hs-font-display); font-weight: 900; font-size: 1.7rem;
	text-decoration: none; letter-spacing: -0.02em; display: inline-flex; align-items: baseline; line-height: 1;
}
.hs-wordmark__heat { background: var(--hs-volt); border: 2px solid var(--hs-ink); padding: 2px 7px 3px; box-shadow: 3px 3px 0 var(--hs-ink); }
.hs-wordmark__shabu { padding-left: 7px; -webkit-text-stroke: 0; }

.hs-header__nav { display: none; }
.hs-nav { list-style: none; display: flex; gap: 4px; margin: 0; padding: 0; }
.hs-nav li { position: relative; }
.hs-nav a {
	display: block; padding: 9px 13px; text-decoration: none;
	font-family: var(--hs-font-display); font-weight: 700; font-size: .92rem;
	text-transform: uppercase; letter-spacing: .05em;
	border: 2px solid transparent;
}
.hs-nav a:hover, .hs-nav .current-menu-item > a {
	background: var(--hs-volt); border-color: var(--hs-ink); box-shadow: 3px 3px 0 var(--hs-ink);
}
.hs-nav .sub-menu {
	display: none; position: absolute; left: 0; top: 100%; z-index: 70; min-width: 220px;
	list-style: none; margin: 6px 0 0; padding: 6px;
	background: var(--hs-card); border: 2px solid var(--hs-ink); box-shadow: var(--hs-shadow);
}
.hs-nav li:hover > .sub-menu, .hs-nav li:focus-within > .sub-menu { display: block; }
.hs-nav .sub-menu a { border: none; box-shadow: none; }
.hs-nav .sub-menu a:hover { background: var(--hs-volt); border: none; box-shadow: none; }

.hs-header__actions { display: flex; align-items: center; gap: 6px; }
.hs-action {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; background: var(--hs-card); border: 2px solid var(--hs-ink);
	color: var(--hs-ink); cursor: pointer; text-decoration: none;
	transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.hs-action:hover { background: var(--hs-volt); transform: translate(-1px, -1px); box-shadow: 3px 3px 0 var(--hs-ink); }
.hs-cart-count {
	position: absolute; top: -9px; right: -9px; min-width: 20px; height: 20px; padding: 0 4px;
	display: none; align-items: center; justify-content: center;
	background: var(--hs-ember); color: #fff; border: 2px solid var(--hs-ink);
	font-family: var(--hs-font-display); font-weight: 800; font-size: .68rem; line-height: 1;
}
.hs-cart-count.is-active { display: inline-flex; }

.hs-header__burger {
	display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; background: var(--hs-card); border: 2px solid var(--hs-ink); cursor: pointer;
}

.hs-search-bar { border-top: 2px solid var(--hs-ink); background: var(--hs-volt); }
.hs-search-bar__inner { max-width: 760px; margin: 0 auto; padding: 16px 20px; }

.hs-search-form { display: flex; }
.hs-search-form__field {
	flex: 1; padding: 12px 14px; border: 2px solid var(--hs-ink); border-right: none;
	background: var(--hs-card); font-size: 1rem;
}
.hs-search-form__field:focus { outline: none; background: #fffef2; }
.hs-search-form__submit {
	padding: 0 18px; border: 2px solid var(--hs-ink); background: var(--hs-ink); color: var(--hs-volt); cursor: pointer;
}

@media (min-width: 960px) {
	.hs-header__nav { display: block; }
	.hs-header__burger { display: none; }
}

/* ---------- drawers + overlay ---------- */

.hs-overlay {
	position: fixed; inset: 0; z-index: 80; background: rgba(16, 18, 16, .55);
	opacity: 0; transition: opacity .2s ease;
}
.hs-overlay.is-open { opacity: 1; }

.hs-drawer {
	position: fixed; top: 0; right: 0; bottom: 0; z-index: 90; width: min(420px, 92vw);
	background: var(--hs-bg); border-left: 2px solid var(--hs-ink);
	transform: translateX(102%); transition: transform .22s ease;
	display: flex; flex-direction: column;
}
.hs-drawer--left { right: auto; left: 0; border-left: none; border-right: 2px solid var(--hs-ink); transform: translateX(-102%); }
.hs-drawer.is-open { transform: translateX(0); }
.hs-drawer__head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 16px 20px; border-bottom: 2px solid var(--hs-ink); background: var(--hs-volt);
}
.hs-drawer__title { font-family: var(--hs-font-display); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.hs-drawer__close { background: none; border: 2px solid var(--hs-ink); width: 34px; height: 34px; font-size: 1.2rem; line-height: 1; cursor: pointer; }
.hs-drawer__close:hover { background: var(--hs-ink); color: var(--hs-volt); }
.hs-drawer__body { padding: 18px 20px; overflow-y: auto; flex: 1; }

.hs-mobile-nav { list-style: none; margin: 0; padding: 0; }
.hs-mobile-nav > li { border-bottom: 2px solid var(--hs-ink); }
.hs-mobile-nav a {
	display: block; padding: 14px 4px; text-decoration: none;
	font-family: var(--hs-font-display); font-weight: 800; font-size: 1.05rem; text-transform: uppercase;
}
.hs-mobile-nav a:hover { color: var(--hs-ink); background: var(--hs-volt); padding-left: 10px; }
.hs-mobile-nav .sub-menu { list-style: none; margin: 0 0 10px; padding: 0 0 0 14px; }
.hs-mobile-nav .sub-menu a { font-size: .9rem; font-weight: 600; text-transform: none; padding: 8px 4px; }

/* mini cart inside drawer.
   Real WC markup per <li>: a.remove, then a (wraps BOTH the thumbnail image AND the
   product name as one link), then span.quantity — three flow siblings, not a clean
   [image][info] pair. Lay it out as a flex row so the name gets its own width instead
   of being squeezed into the image's column. */
.hs-drawer .woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.hs-drawer .woocommerce-mini-cart-item {
	display: flex; align-items: center; gap: 12px;
	padding: 14px 32px 14px 0; border-bottom: 2px solid var(--hs-ink); position: relative;
}
/* This <li> also matches WooCommerce core's `ul.cart_list li::before/::after` clearfix
   (content:" "; display:table) — same phantom-grid-item bug as .col2-set below: a generated
   pseudo-element becomes a REAL flex item once the <li> is display:flex, landing before the
   real content. Kill it here too. */
.hs-drawer .woocommerce-mini-cart-item::before,
.hs-drawer .woocommerce-mini-cart-item::after {
	content: none !important; display: none !important;
}
.hs-drawer .woocommerce-mini-cart-item > a:not(.remove) {
	display: flex; align-items: center; gap: 12px; flex: 1 1 auto; min-width: 0;
	text-decoration: none; font-weight: 600; color: var(--hs-ink); line-height: 1.3;
}
.hs-drawer .woocommerce-mini-cart-item > a:not(.remove):hover { text-decoration: underline; }
.hs-drawer .woocommerce-mini-cart-item img {
	width: 64px; height: 64px; object-fit: cover; border: 2px solid var(--hs-ink); float: none; margin: 0; flex: none;
}
.hs-drawer .woocommerce-mini-cart-item .quantity {
	flex: none; font-size: .86rem; font-weight: 600; color: var(--hs-muted); white-space: nowrap;
}
.hs-drawer .woocommerce-mini-cart-item .quantity .amount { color: var(--hs-ink); font-weight: 700; }
.hs-drawer .woocommerce-mini-cart-item a.remove {
	position: absolute; right: 0; top: 50%; transform: translateY(-50%);
	width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center;
	border: 2px solid var(--hs-ink); background: var(--hs-card); color: var(--hs-ink) !important;
	font-size: 1rem; line-height: 1; text-align: center; text-decoration: none !important;
}
.hs-drawer .woocommerce-mini-cart-item a.remove:hover { background: var(--hs-ember); color: #fff !important; }
.hs-drawer .woocommerce-mini-cart__total { padding: 14px 0; font-size: 1.05rem; border-bottom: 2px solid var(--hs-ink); }
.hs-drawer .woocommerce-mini-cart__buttons { display: flex; flex-direction: column; gap: 10px; margin: 16px 0 0; }
.hs-drawer .woocommerce-mini-cart__empty-message { font-weight: 600; padding: 20px 0; text-align: center; }

/* "View cart" / "Checkout" links here sit outside any `.woocommerce` wrapper, so the
   global `.woocommerce a.button` rule never reaches them — style them explicitly. */
.hs-drawer .woocommerce-mini-cart__buttons a.button {
	display: flex !important; align-items: center; justify-content: center; gap: 8px;
	font-family: var(--hs-font-display) !important; font-weight: 800 !important; font-size: .88rem !important;
	text-transform: uppercase; letter-spacing: .04em; text-decoration: none !important;
	padding: 13px 18px !important; border: 2px solid var(--hs-ink) !important; border-radius: 0 !important;
	background: var(--hs-card) !important; color: var(--hs-ink) !important; cursor: pointer;
	box-shadow: var(--hs-shadow); transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.hs-drawer .woocommerce-mini-cart__buttons a.button:hover { transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--hs-ink); }
.hs-drawer .woocommerce-mini-cart__buttons a.button.checkout { background: var(--hs-volt) !important; }
.hs-drawer .woocommerce-mini-cart__buttons a.button.checkout:hover { background: var(--hs-volt-deep) !important; }

/* ---------- hero ---------- */

.hs-hero { border-bottom: 2px solid var(--hs-ink); background:
	repeating-linear-gradient(-45deg, transparent 0 34px, rgba(16,18,16,.035) 34px 36px), var(--hs-bg); overflow: hidden; }
.hs-hero__inner {
	max-width: var(--hs-max); margin: 0 auto; padding: 56px 20px 64px;
	display: grid; grid-template-columns: 1fr; gap: 48px; align-items: center;
}
.hs-hero__kicker {
	display: inline-block; margin: 0 0 18px; padding: 6px 12px;
	background: var(--hs-ink); color: var(--hs-volt);
	font-family: var(--hs-font-display); font-weight: 700; font-size: .78rem;
	text-transform: uppercase; letter-spacing: .16em;
}
.hs-hero__title {
	font-size: clamp(2.6rem, 6.4vw, 4.6rem); font-weight: 900; text-transform: uppercase;
	letter-spacing: -0.025em; margin: 0 0 20px;
}
.hs-hero__line { display: block; }
.hs-hero__title em {
	font-style: normal; background: var(--hs-volt); border: 2px solid var(--hs-ink);
	box-shadow: 5px 5px 0 var(--hs-ink); padding: 0 10px; display: inline-block; line-height: 1.15;
}
.hs-hero__line--flip em { background: var(--hs-card); }
.hs-hero__sub { max-width: 46ch; font-size: 1.08rem; color: var(--hs-muted); margin: 0 0 26px; }
.hs-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 26px; }
.hs-hero__facts { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 0; padding: 0; font-weight: 600; font-size: .92rem; }
.hs-hero__facts li { display: inline-flex; align-items: center; gap: 7px; }

.hs-hero__stage { position: relative; min-height: 380px; display: none; }
.hs-hero__card {
	position: absolute; width: 62%; aspect-ratio: 1; background: var(--hs-card);
	border: 2px solid var(--hs-ink); box-shadow: var(--hs-shadow-lg); overflow: hidden; display: block;
	transition: transform .18s ease;
}
.hs-hero__card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hs-hero__card--1 { top: 4%; left: 0; transform: rotate(-4deg); z-index: 3; }
.hs-hero__card--2 { top: 14%; right: 2%; transform: rotate(3deg); width: 52%; z-index: 2; }
.hs-hero__card--3 { bottom: 0; left: 22%; transform: rotate(-1deg); width: 46%; z-index: 1; }
.hs-hero__card:hover { transform: rotate(0) scale(1.02); z-index: 5; }
.hs-hero__sticker {
	position: absolute; top: -6px; right: 6%; z-index: 6; transform: rotate(7deg);
	background: var(--hs-ember); color: #fff; border: 2px solid var(--hs-ink); box-shadow: var(--hs-shadow);
	padding: 9px 14px; font-family: var(--hs-font-display); font-weight: 800; font-size: .8rem; letter-spacing: .1em;
}
@media (min-width: 880px) {
	.hs-hero__inner { grid-template-columns: 1.1fr .9fr; }
	.hs-hero__stage { display: block; }
}

/* ---------- sections ---------- */

.hs-section { max-width: var(--hs-max); margin: 0 auto; padding: 58px 20px 26px; }
.hs-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 26px; flex-wrap: wrap; }
.hs-section__title {
	font-size: clamp(1.6rem, 3.4vw, 2.3rem); font-weight: 900; text-transform: uppercase; letter-spacing: -0.02em; margin: 0;
	padding-left: 16px; border-left: 10px solid var(--hs-volt);
}
.hs-section__more {
	display: inline-flex; align-items: center; gap: 7px; text-decoration: none;
	font-family: var(--hs-font-display); font-weight: 700; font-size: .9rem; text-transform: uppercase; letter-spacing: .05em;
	border-bottom: 3px solid var(--hs-volt);
}
.hs-section__more:hover { background: var(--hs-volt); }

/* ---------- category tiles ---------- */

.hs-cats__grid { display: grid; gap: 18px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 720px) { .hs-cats__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1060px) { .hs-cats__grid--n4 { grid-template-columns: repeat(4, 1fr); } .hs-cats__grid--n5 { grid-template-columns: repeat(5, 1fr); } .hs-cats__grid--n6 { grid-template-columns: repeat(6, 1fr); } }

.hs-cat-tile { display: block; text-decoration: none; border: 2px solid var(--hs-ink); background: var(--hs-card); transition: transform .14s ease, box-shadow .14s ease; }
.hs-cat-tile:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--hs-ink); }
.hs-cat-tile__img { display: block; aspect-ratio: 8 / 9; overflow: hidden; border-bottom: 2px solid var(--hs-ink); background: #e7eae2; }
.hs-cat-tile__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.hs-cat-tile:hover .hs-cat-tile__img img { transform: scale(1.05); }
.hs-cat-tile__label {
	display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px;
	font-family: var(--hs-font-display); font-weight: 800; text-transform: uppercase; font-size: .95rem; letter-spacing: .03em;
}
.hs-cat-tile__count {
	background: var(--hs-volt); border: 2px solid var(--hs-ink); min-width: 26px; height: 26px; padding: 0 6px;
	display: inline-flex; align-items: center; justify-content: center; font-size: .75rem;
}

/* ---------- product grid (kills phantom ::before/::after grid cells) ---------- */

.woocommerce ul.products, ul.products {
	list-style: none; margin: 0 0 30px; padding: 0;
	display: grid; gap: 20px; grid-template-columns: repeat(2, 1fr);
}
.woocommerce ul.products::before, .woocommerce ul.products::after,
ul.products::before, ul.products::after { display: none !important; content: none !important; }
@media (min-width: 720px) { .woocommerce ul.products, ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1060px) {
	.woocommerce ul.products.columns-4, ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
	.woocommerce ul.products.columns-3, ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
	.woocommerce ul.products.columns-2, ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
}
.woocommerce ul.products li.product, ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; }

/* ---------- product card ---------- */

.hs-card { background: var(--hs-card); border: 2px solid var(--hs-ink); display: flex; flex-direction: column; position: relative; transition: transform .14s ease, box-shadow .14s ease; }
.hs-card:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--hs-ink); }
.hs-card__media { position: relative; border-bottom: 2px solid var(--hs-ink); background: #e7eae2; overflow: hidden; }
.hs-card__media a { display: block; }
.hs-card__media img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; display: block; transition: transform .25s ease; }
.hs-card:hover .hs-card__media img { transform: scale(1.045); }
.hs-card__body { display: flex; flex-direction: column; gap: 6px; padding: 13px 14px 15px; flex: 1; }
.hs-card__cat { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--hs-muted); }
.hs-card__title { font-size: 1.02rem; font-weight: 800; margin: 0; }
.hs-card__title a { text-decoration: none; }
.hs-card__title a:hover { background: var(--hs-volt); }
.hs-card__meta { margin-top: auto; }
.hs-card__price, .hs-card__price .amount { font-family: var(--hs-font-display); font-weight: 800; font-size: 1.05rem; }
.hs-card__price del, .hs-card__price del .amount { color: var(--hs-muted); font-weight: 600; font-size: .9rem; margin-right: 7px; }
.hs-card__price ins { text-decoration: none; }
.hs-card__cta { margin-top: 10px; }
.hs-card__cta .button { width: 100%; padding: 11px 14px !important; font-size: .82rem !important; box-shadow: none; }
.hs-card__cta .button:hover { transform: none; box-shadow: 3px 3px 0 var(--hs-ink); }
.hs-card__cta .added_to_cart { display: block; margin-top: 8px; font-weight: 700; font-size: .85rem; text-align: center; }

.hs-badge {
	position: absolute; top: 10px; left: 10px; z-index: 5;
	font-family: var(--hs-font-display); font-weight: 800; font-size: .74rem; text-transform: uppercase; letter-spacing: .08em;
	padding: 5px 10px; border: 2px solid var(--hs-ink);
}
.hs-badge--sale, .woocommerce span.onsale { background: var(--hs-ember); color: #fff; min-height: 0; min-width: 0; line-height: 1.2; border-radius: 0; margin: 0; position: absolute; }

/* ---------- shop toolbar / breadcrumb / pagination ---------- */

.hs-shop { max-width: var(--hs-max); margin: 0 auto; padding: 34px 20px 70px; }
.hs-breadcrumb { font-size: .85rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--hs-muted); margin-bottom: 16px; }
.hs-breadcrumb a { color: var(--hs-ink); text-decoration: none; border-bottom: 2px solid var(--hs-volt); }
.hs-bc-sep { color: var(--hs-volt-deep); padding: 0 2px; }

.hs-shop .woocommerce-products-header { margin-bottom: 8px; }
.hs-shop .woocommerce-products-header__title {
	font-size: clamp(1.9rem, 4.5vw, 3rem); font-weight: 900; text-transform: uppercase; letter-spacing: -0.02em;
	padding-left: 16px; border-left: 12px solid var(--hs-volt);
}
.hs-shop .term-description { max-width: 68ch; color: var(--hs-muted); margin-bottom: 10px; }

.woocommerce-result-count { color: var(--hs-muted); font-weight: 600; font-size: .9rem; margin: 10px 0 18px; }
.woocommerce-ordering { float: right; margin: 4px 0 18px; }
.woocommerce-ordering select, select.orderby {
	padding: 9px 12px; border: 2px solid var(--hs-ink); background: var(--hs-card); font-weight: 600; border-radius: 0;
}

.woocommerce nav.woocommerce-pagination, .hs-pagination { text-align: center; margin: 10px 0 30px; }
.woocommerce nav.woocommerce-pagination ul { border: none; display: inline-flex; gap: 8px; }
.woocommerce nav.woocommerce-pagination ul li { border: none; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.hs-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 10px;
	border: 2px solid var(--hs-ink); background: var(--hs-card); color: var(--hs-ink);
	font-family: var(--hs-font-display); font-weight: 700; text-decoration: none;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.hs-pagination .page-numbers.current, .hs-pagination .page-numbers:hover { background: var(--hs-volt); }

/* ---------- single product ---------- */

.woocommerce div.product { display: block; }
.woocommerce div.product div.images { margin-bottom: 2em; }
.woocommerce div.product div.images img { border: 2px solid var(--hs-ink); }
.woocommerce div.product div.images .flex-control-thumbs { margin-top: 12px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.woocommerce div.product div.images .flex-control-thumbs li { float: none; width: auto; }
.woocommerce div.product div.images .flex-control-thumbs img { opacity: .6; cursor: pointer; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active, .woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; border-color: var(--hs-volt-deep); }

.woocommerce div.product .product_title { font-size: clamp(1.7rem, 3.6vw, 2.5rem); font-weight: 900; text-transform: uppercase; letter-spacing: -0.02em; }
.woocommerce div.product p.price { font-family: var(--hs-font-display); font-weight: 800; font-size: 1.7rem; color: var(--hs-ink); margin: 6px 0 10px; }
.woocommerce div.product p.price del { color: var(--hs-muted); font-weight: 600; font-size: 1.15rem; }
.woocommerce div.product p.price ins { text-decoration: none; background: var(--hs-volt); padding: 0 6px; border: 2px solid var(--hs-ink); }

.hs-pdp-note { color: var(--hs-muted); font-size: .95rem; margin: -2px 0 14px; max-width: 52ch; }

.hs-pdp-trust {
	display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 18px;
	margin: 20px 0; padding: 16px 18px; border: 2px solid var(--hs-ink); background: var(--hs-card); box-shadow: var(--hs-shadow);
	font-weight: 600; font-size: .92rem;
}
.hs-pdp-trust span { display: inline-flex; align-items: center; gap: 8px; }
.hs-pdp-trust .hs-icon { color: var(--hs-volt-deep); }

.woocommerce div.product form.cart { margin: 18px 0 22px; }
.woocommerce div.product form.cart .variations { margin-bottom: 14px; }
.woocommerce div.product form.cart .variations td, .woocommerce div.product form.cart .variations th { padding: 6px 0; vertical-align: middle; }
.woocommerce div.product form.cart .variations label { font-weight: 700; text-transform: uppercase; font-size: .85rem; letter-spacing: .06em; }
.woocommerce div.product form.cart .variations select {
	padding: 11px 14px; border: 2px solid var(--hs-ink); background: var(--hs-card); font-weight: 600; min-width: 220px; border-radius: 0; margin-right: 10px;
}
.woocommerce div.product form.cart .reset_variations { font-size: .82rem; color: var(--hs-muted); }
.woocommerce div.product form.cart div.quantity { margin-right: 12px; }
.woocommerce .quantity .qty {
	width: 74px; padding: 11px 8px; border: 2px solid var(--hs-ink); background: var(--hs-card); font-weight: 700; text-align: center; border-radius: 0;
}
.woocommerce div.product form.cart .button.single_add_to_cart_button { font-size: 1rem !important; padding: 14px 30px !important; }
.woocommerce-variation-price .price { font-size: 1.4rem !important; }
.woocommerce-variation-availability p.stock.in-stock { color: var(--hs-volt-deep); font-weight: 700; }

.woocommerce div.product .product_meta { border-top: 2px solid var(--hs-ink); padding-top: 14px; font-size: .88rem; color: var(--hs-muted); }
.woocommerce div.product .product_meta > span { display: block; margin-bottom: 4px; }
.woocommerce div.product .product_meta a { color: var(--hs-ink); }

.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 -2px; border: none; display: flex; flex-wrap: wrap; gap: 8px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border: 2px solid var(--hs-ink); background: var(--hs-bg); border-radius: 0; margin: 0; padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 11px 18px; font-family: var(--hs-font-display); font-weight: 700; text-transform: uppercase; font-size: .85rem; color: var(--hs-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--hs-volt); box-shadow: 3px 3px 0 var(--hs-ink); }
.woocommerce div.product .woocommerce-tabs .panel {
	border: 2px solid var(--hs-ink); background: var(--hs-card); padding: 26px 28px; margin: 10px 0 0; box-shadow: var(--hs-shadow);
}
.woocommerce div.product .woocommerce-tabs .panel h2:first-of-type { font-size: 1.3rem; text-transform: uppercase; }

.woocommerce .products.related > h2, .related.products > h2, section.related > h2,
.woocommerce .up-sells > h2 {
	font-size: 1.7rem; font-weight: 900; text-transform: uppercase; padding-left: 14px; border-left: 10px solid var(--hs-volt); margin: 40px 0 22px;
}

/* attributes table */
.woocommerce table.woocommerce-product-attributes { border: 2px solid var(--hs-ink); border-collapse: collapse; }
.woocommerce table.woocommerce-product-attributes th, .woocommerce table.woocommerce-product-attributes td { border: 1px solid var(--hs-ink); padding: 9px 14px; background: var(--hs-card); font-style: normal; }
.woocommerce table.woocommerce-product-attributes th { background: var(--hs-bg); text-transform: uppercase; font-size: .82rem; letter-spacing: .05em; }
@media (max-width: 719px) {
	.woocommerce table.woocommerce-product-attributes { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* reviews */
.woocommerce #reviews #comments ol.commentlist li { border: 2px solid var(--hs-ink); background: var(--hs-card); padding: 16px; margin-bottom: 14px; }
.woocommerce #reviews #comments ol.commentlist li img.avatar { border: 2px solid var(--hs-ink); width: 44px; position: static; float: left; margin-right: 12px; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { border: none; margin: 0; padding: 0 0 0 60px; }
.woocommerce p.stars a { color: var(--hs-volt-deep); }
.woocommerce #review_form #respond textarea, .woocommerce #review_form #respond input[type="text"], .woocommerce #review_form #respond input[type="email"] {
	border: 2px solid var(--hs-ink); background: var(--hs-card); padding: 10px 12px; border-radius: 0;
}

/* ---------- notices ---------- */

.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
	border: 2px solid var(--hs-ink) !important; border-top-width: 2px !important; background: var(--hs-card) !important; color: var(--hs-ink) !important;
	box-shadow: var(--hs-shadow); padding: 14px 18px 14px 44px !important; margin-bottom: 22px !important; border-radius: 0;
	font-weight: 600;
}
.woocommerce-message::before { color: var(--hs-volt-deep); }
.woocommerce-info::before { color: var(--hs-ink); }
.woocommerce-error::before { color: var(--hs-ember); }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button { padding: 8px 14px !important; font-size: .8rem !important; box-shadow: none; }

/* ---------- cart / checkout / account ---------- */

.hs-woo .hs-shop > .woocommerce > h1, .hs-woo .entry-title, .hs-shop .page-title {
	font-size: clamp(1.9rem, 4.5vw, 2.8rem); font-weight: 900; text-transform: uppercase; letter-spacing: -0.02em;
	padding-left: 16px; border-left: 12px solid var(--hs-volt); margin-bottom: 26px; font-family: var(--hs-font-display);
}

/* The plain wrapper page.php uses for cart/checkout/my-account (instead of the
   narrow, typographic .hs-prose card) — full page width, no extra styling of its own. */
.hs-page__wc { width: 100%; }

/* Checkout layout: two independent-height columns. CSS Grid syncs row height ACROSS
   columns, so placing the tall billing form and the short "Your order" heading in the
   same grid row (two separate grid items) stranded the heading atop a huge gap before the
   table, which was pushed down into the next shared row. Fix: each side is now ONE grid
   item (a wrapper div added via a form-checkout.php template override — see
   woocommerce/checkout/form-checkout.php), so each column stacks its own content and sizes
   independently, with no row to keep in sync with the other column. */
@media (min-width: 860px) {
	form.woocommerce-checkout.hs-checkout-grid {
		display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start;
	}
	.hs-checkout-col--details { grid-column: 1; }
	.hs-checkout-col--review { grid-column: 2; }
}
/* WooCommerce core's float-layout clearfix on .col2-set — `::before/::after { content:" "; }`
   — turns into REAL (if invisible) GRID ITEMS the instant its container becomes
   `display:grid` (generated content always participates in grid/flex layout unless
   explicitly killed), landing in the first cell and shoving real content into the next one. */
#customer_details.col2-set::before, #customer_details.col2-set::after {
	content: none !important; display: none !important;
}

/* Billing + shipping now render as ONE card (not two side-by-side halves): billing on
   top, and — only when the customer checks "Ship to a different address?" — the shipping
   fields unfold directly beneath it, separated by a rule, inside the same box. */
#customer_details.col2-set {
	display: block; margin-bottom: 30px;
	background: var(--hs-card); border: 2px solid var(--hs-ink); box-shadow: var(--hs-shadow);
	padding: 22px 24px;
}
/* !important because WooCommerce core ships `.col2-set .col-1/.col-2 { float; width:48% }`. */
#customer_details.col2-set .col-1,
#customer_details.col2-set .col-2 {
	float: none !important; width: 100% !important; margin: 0 !important; box-sizing: border-box;
}
#customer_details.col2-set .col-2 {
	margin-top: 24px !important; padding-top: 24px !important; border-top: 2px solid var(--hs-ink) !important;
}
#customer_details .woocommerce-billing-fields > h3:first-child,
#customer_details .woocommerce-shipping-fields > h3:first-child { margin-top: 0; }
.woocommerce-additional-fields {
	margin-bottom: 30px;
	background: var(--hs-card); border: 2px solid var(--hs-ink); box-shadow: var(--hs-shadow);
	padding: 22px 24px;
}
.woocommerce-additional-fields__field-wrapper { margin-top: 14px; }
.woocommerce-additional-fields h3:first-child { margin-top: 0; }

.woocommerce table.shop_table {
	border: 2px solid var(--hs-ink); border-collapse: collapse; border-radius: 0; background: var(--hs-card);
}
/* Cart/checkout tables have several columns (remove/thumb/name/price/qty/subtotal) that
   don't fit a phone screen — scroll the table itself instead of overflowing the page. */
@media (max-width: 719px) {
	.woocommerce table.shop_table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border: 1px solid var(--hs-ink); padding: 12px 14px; }
.woocommerce table.shop_table thead th { background: var(--hs-ink); color: var(--hs-bg); text-transform: uppercase; font-size: .8rem; letter-spacing: .08em; }
.woocommerce table.shop_table img { border: 2px solid var(--hs-ink); width: 60px; }
.woocommerce table.shop_table td.product-name a { font-weight: 700; text-decoration: none; }
.woocommerce table.shop_table .product-remove a.remove { border: 2px solid var(--hs-ink); border-radius: 0; color: var(--hs-ink) !important; font-weight: 700; }
.woocommerce table.shop_table .product-remove a.remove:hover { background: var(--hs-ember); color: #fff !important; }

.woocommerce .coupon .input-text {
	border: 2px solid var(--hs-ink); padding: 11px 12px !important; width: 140px; border-radius: 0; background: var(--hs-card);
}

.woocommerce .cart-collaterals .cart_totals { border: 2px solid var(--hs-ink); background: var(--hs-card); box-shadow: var(--hs-shadow); padding: 22px; width: 100%; }
.woocommerce .cart-collaterals .cart_totals h2 { text-transform: uppercase; font-size: 1.25rem; }
.woocommerce .cart-collaterals .cart_totals table { border: none; }
.woocommerce .cart-collaterals .cart_totals table th, .woocommerce .cart-collaterals .cart_totals table td { border: none; border-bottom: 1px solid var(--hs-ink); }
.woocommerce .wc-proceed-to-checkout a.checkout-button { width: 100%; }

.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text, .select2-container--default .select2-selection--single {
	border: 2px solid var(--hs-ink) !important; background: var(--hs-card); padding: 11px 12px; border-radius: 0 !important; height: auto; font-size: .96rem;
}
.select2-container--default .select2-selection--single { padding: 7px 8px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; }
.select2-dropdown { border: 2px solid var(--hs-ink); border-radius: 0; }
.woocommerce form .form-row label { font-weight: 700; font-size: .86rem; text-transform: uppercase; letter-spacing: .04em; }

#customer_details .woocommerce-billing-fields h3, #order_review_heading, .woocommerce-additional-fields h3 {
	text-transform: uppercase; font-size: 1.2rem; font-weight: 900; padding-left: 12px; border-left: 8px solid var(--hs-volt);
}
.woocommerce-checkout #payment { background: var(--hs-card); border: 2px solid var(--hs-ink); border-radius: 0; box-shadow: var(--hs-shadow); }
.woocommerce-checkout #payment div.payment_box { background: var(--hs-bg); border: 1px solid var(--hs-ink); border-radius: 0; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--hs-ink); }

.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 2px solid var(--hs-ink); background: var(--hs-card); }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--hs-ink); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: none; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 12px 16px; text-decoration: none; font-weight: 700; text-transform: uppercase; font-size: .85rem; letter-spacing: .05em; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, .woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: var(--hs-volt); }
.woocommerce-account .woocommerce-MyAccount-content { border: 2px solid var(--hs-ink); background: var(--hs-card); padding: 26px; box-shadow: var(--hs-shadow); }

/* login/register card */
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password {
	border: 2px solid var(--hs-ink) !important; border-radius: 0 !important; background: var(--hs-card); box-shadow: var(--hs-shadow); max-width: 480px;
}

/* ---------- how-it-works ---------- */

.hs-how { background: var(--hs-ink); color: var(--hs-bg); border-top: 2px solid var(--hs-ink); border-bottom: 2px solid var(--hs-ink); margin-top: 40px; }
.hs-how__inner { max-width: var(--hs-max); margin: 0 auto; padding: 64px 20px; }
.hs-how__title { color: var(--hs-volt); font-size: clamp(1.7rem, 3.6vw, 2.4rem); text-transform: uppercase; margin-bottom: 6px; }
.hs-how__sub { color: #b9beb4; margin: 0 0 34px; max-width: 60ch; }
.hs-how__steps { list-style: none; display: grid; gap: 18px; grid-template-columns: 1fr; margin: 0; padding: 0; counter-reset: step; }
@media (min-width: 820px) { .hs-how__steps { grid-template-columns: repeat(3, 1fr); } }
.hs-how__step { position: relative; border: 2px solid var(--hs-volt); padding: 26px 22px 22px; background: rgba(204, 243, 46, .04); }
.hs-how__step .hs-icon--lg { color: var(--hs-volt); margin-bottom: 12px; }
.hs-how__num {
	position: absolute; top: -16px; right: 14px; background: var(--hs-volt); color: var(--hs-ink);
	border: 2px solid var(--hs-ink); padding: 3px 10px; font-family: var(--hs-font-display); font-weight: 900; font-size: .95rem;
}
.hs-how__step h3 { color: var(--hs-bg); text-transform: uppercase; font-size: 1.15rem; margin-bottom: 6px; }
.hs-how__step p { color: #b9beb4; margin: 0; font-size: .95rem; }

/* ---------- transparency band ---------- */

.hs-band { background: var(--hs-volt); border-bottom: 2px solid var(--hs-ink); }
.hs-band__inner { max-width: var(--hs-max); margin: 0 auto; padding: 34px 20px; display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 820px) { .hs-band__inner { grid-template-columns: repeat(3, 1fr); } }
.hs-band__item { display: flex; gap: 14px; align-items: flex-start; }
.hs-band__item .hs-icon { margin-top: 3px; }
.hs-band__item strong { font-family: var(--hs-font-display); text-transform: uppercase; font-size: .95rem; letter-spacing: .03em; display: block; margin-bottom: 3px; }
.hs-band__item p { margin: 0; font-size: .92rem; font-weight: 500; }
.hs-band__item a { font-weight: 700; }

/* ---------- pages / prose ---------- */

.hs-page { max-width: var(--hs-max); margin: 0 auto; padding: 48px 20px 80px; }
.hs-page--narrow { max-width: 860px; }
.hs-page__head { margin-bottom: 30px; }
.hs-page__title {
	font-size: clamp(2rem, 5vw, 3.1rem); font-weight: 900; text-transform: uppercase; letter-spacing: -0.02em;
	padding-left: 16px; border-left: 12px solid var(--hs-volt); margin: 0;
}

.hs-prose { background: var(--hs-card); border: 2px solid var(--hs-ink); box-shadow: var(--hs-shadow-lg); padding: clamp(24px, 5vw, 48px); }
.hs-prose h2 { font-size: 1.45rem; text-transform: uppercase; letter-spacing: -0.01em; margin: 1.6em 0 .6em; padding-left: 12px; border-left: 8px solid var(--hs-volt); }
.hs-prose h2:first-child { margin-top: 0; }
.hs-prose h3 { font-size: 1.12rem; margin: 1.4em 0 .4em; }
.hs-prose p, .hs-prose li { color: #2c302b; }
.hs-prose ul, .hs-prose ol { padding-left: 22px; }
.hs-prose li { margin-bottom: .4em; }
.hs-prose a { text-decoration-thickness: 2px; text-decoration-color: var(--hs-volt-deep); font-weight: 600; }
.hs-prose a:hover { background: var(--hs-volt); }
.hs-prose table { width: 100%; border-collapse: collapse; border: 2px solid var(--hs-ink); margin: 1.2em 0; }
.hs-prose th, .hs-prose td { border: 1px solid var(--hs-ink); padding: 10px 14px; text-align: left; }
.hs-prose thead th { background: var(--hs-ink); color: var(--hs-bg); text-transform: uppercase; font-size: .8rem; letter-spacing: .07em; }
/* Multi-column policy tables (e.g. the 5-column shipping table) don't fit a phone screen —
   scroll the table itself instead of overflowing the page and shifting fixed elements. */
@media (max-width: 719px) {
	.hs-prose table { display: block; width: auto; min-width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }
}
.hs-prose address {
	font-style: normal; border: 2px solid var(--hs-ink); background: var(--hs-bg); box-shadow: var(--hs-shadow);
	padding: 16px 20px; margin: 1.2em 0; font-weight: 600; line-height: 1.7;
}
.hs-prose blockquote { border-left: 8px solid var(--hs-volt); margin: 1.2em 0; padding: 6px 0 6px 18px; color: var(--hs-muted); }

/* blog cards */
.hs-post-list { display: grid; gap: 20px; }
.hs-post-card { border: 2px solid var(--hs-ink); background: var(--hs-card); padding: 24px; box-shadow: var(--hs-shadow); }
.hs-post-card__title { margin: 0 0 8px; font-size: 1.3rem; }
.hs-post-card__title a { text-decoration: none; }
.hs-post-card__title a:hover { background: var(--hs-volt); }

/* 404 */
.hs-404 { text-align: center; }
.hs-404__code { font-family: var(--hs-font-display); font-weight: 900; font-size: clamp(5rem, 18vw, 10rem); line-height: 1; margin: 0;
	color: transparent; -webkit-text-stroke: 3px var(--hs-ink); }
.hs-404 .hs-search-form { max-width: 420px; margin: 22px auto; }

/* ---------- footer ---------- */

.hs-footer { background: var(--hs-ink); color: #cfd4c9; }
.hs-footer__cta {
	display: flex; gap: 26px; justify-content: center; align-items: center; flex-wrap: wrap; overflow: hidden;
	padding: 26px 10px; border-bottom: 2px solid rgba(204, 243, 46, .35);
	font-family: var(--hs-font-display); font-weight: 900; font-size: clamp(1.8rem, 5vw, 3.2rem); line-height: 1;
	color: transparent; -webkit-text-stroke: 2px var(--hs-volt); text-transform: uppercase; letter-spacing: .02em;
}
.hs-footer__cta-dot { -webkit-text-stroke: 0; color: var(--hs-volt); font-size: .5em; }

.hs-footer__grid {
	max-width: var(--hs-max); margin: 0 auto; padding: 52px 20px 38px;
	display: grid; gap: 38px 28px; grid-template-columns: 1fr;
}
@media (min-width: 720px) { .hs-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1020px) { .hs-footer__grid { grid-template-columns: 2fr 1fr 1fr 1fr; } }

.hs-wordmark--footer { font-size: 1.5rem; color: var(--hs-bg); }
.hs-wordmark--footer .hs-wordmark__heat { box-shadow: 3px 3px 0 var(--hs-volt); color: var(--hs-ink); }
.hs-footer__blurb { margin: 16px 0 20px; max-width: 40ch; font-size: .95rem; }
.hs-footer__address { font-style: normal; display: grid; gap: 9px; font-size: .9rem; }
.hs-footer__address span { display: flex; gap: 9px; align-items: flex-start; }
.hs-footer__address .hs-icon { color: var(--hs-volt); margin-top: 2px; }
.hs-footer__address a { color: var(--hs-volt); text-decoration: none; border-bottom: 1px solid rgba(204,243,46,.5); }
.hs-footer__address a:hover { border-bottom-color: var(--hs-volt); }

.hs-footer__title { color: var(--hs-volt); font-size: .92rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; margin: 4px 0 16px; }
.hs-footer-nav { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.hs-footer-nav a { color: #cfd4c9; text-decoration: none; font-size: .93rem; }
.hs-footer-nav a:hover { color: var(--hs-ink); background: var(--hs-volt); }

.hs-footer__bar { border-top: 2px solid rgba(204, 243, 46, .35); }
.hs-footer__bar-inner {
	max-width: var(--hs-max); margin: 0 auto; padding: 18px 20px;
	display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; justify-content: space-between;
}
.hs-footer__copy { margin: 0; font-size: .82rem; color: #9aa093; }
.hs-pay { display: inline-flex; gap: 8px; align-items: center; }
.hs-pay__icon svg { width: 44px; height: 28px; display: block; }

/* ---------- misc ---------- */

/* Guard: never force-show a gateway's inline-hidden pay button (duplicate "Pay now" gotcha).
   The .button display overrides above must not resurrect elements a gateway hides inline. */
#vgc-stripe-pay[style*="display:none"], #vgc-stripe-pay[style*="display: none"] { display: none !important; }

/* vgcpayment-connect renders its own Pay Now / PayPal buttons and drives checkout through
   its own JS (Stripe Elements / PayPal Buttons), not the native WooCommerce submit flow. It
   tries to hide the native #place_order button itself via JS, but that depends on a
   `payment_method_selected`/`updated_checkout` event firing at the right time, and can leave
   a confusing second "Place order" button on screen. Hide it with plain CSS instead — this
   fires the instant the vgcpayment radio is checked (including on first paint, since it's
   already `checked` in the server-rendered HTML), independent of any JS timing.
   The terms-and-conditions checkbox lives in the same .form-row.place-order wrapper as the
   button, so only the button itself is targeted — never the wrapper. */
#payment:has(#payment_method_vgcpayment:checked) #place_order { display: none !important; }

/* ---------- back to top ---------- */

.hs-back-to-top {
	position: fixed; right: 20px; bottom: 20px; z-index: 55;
	width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center;
	background: var(--hs-volt); border: 2px solid var(--hs-ink); color: var(--hs-ink); cursor: pointer;
	box-shadow: var(--hs-shadow);
	opacity: 0; visibility: hidden; transform: translateY(12px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s, background .12s ease;
}
.hs-back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.hs-back-to-top:hover { background: var(--hs-volt-deep); transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--hs-ink); }
.hs-back-to-top:active { transform: translate(1px, 1px); box-shadow: 2px 2px 0 var(--hs-ink); }
.hs-back-to-top .hs-icon { width: 22px; height: 22px; }
@media (min-width: 720px) { .hs-back-to-top { right: 28px; bottom: 28px; } }


.woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme { margin-bottom: 12px; }
.woocommerce-privacy-policy-text { font-size: .85rem; color: var(--hs-muted); }
.woocommerce a.remove { border-radius: 0 !important; }
.clear { clear: both; }

/* keep long content responsive */
.hs-prose img, .woocommerce img { max-width: 100%; height: auto; }
@media (max-width: 719px) {
	.hs-pdp-trust { grid-template-columns: 1fr; }
	.woocommerce-ordering { float: none; }
}
