/**
 * Themesri — main stylesheet.
 * Design tokens (CSS variables) are overridden by the Customizer via
 * wp_add_inline_style. Dark/light modes via [data-theme].
 *
 * Sections:
 *  1. Tokens
 *  2. Base (themes-aware text, headings, links)
 *  3. Buttons, icon-buttons, glass card
 *  4. Header (sticky, glass when scrolled)
 *  5. Hamburger + 3D drawer
 *  6. Mobile bottom nav
 *  7. Search overlay (focus, close, voice button)
 *  8. Hero (3D floating cards)
 *  9. Sticky category bar (separate from product slider)
 * 10. Slider (premium 3D cards, arrows, swipe, load-more)
 * 11. Footer (premium grid, theme-aware text)
 * 12. Single product, shop archive, filters, WooCommerce restyling
 * 13. Reduced motion, low-power, Elementor compat
 */

/* ============ 1. TOKENS ============ */
:root {
	--tsri-primary: #7c3aed;
	--tsri-secondary: #2563eb;
	--tsri-accent: #22d3ee;

	--tsri-radius: 18px;
	--tsri-radius-lg: 26px;
	--tsri-font-heading: "Sora", "Inter", system-ui, sans-serif;
	--tsri-font-body: "Inter", system-ui, sans-serif;
	--tsri-grad: linear-gradient(135deg, var(--tsri-primary) 0%, var(--tsri-secondary) 55%, var(--tsri-accent) 100%);
	--tsri-grad-soft: linear-gradient(135deg, rgba(124,58,237,.15), rgba(34,211,238,.12));
	--tsri-ease: cubic-bezier(.22, .8, .3, 1);
	--tsri-shadow: 0 18px 45px -18px rgba(0,0,0,.55);
	--tsri-container: 1280px;
}

/* Mode overlays — every theme-aware variable lives here, used everywhere.
   Text contrast is enforced below with a min 7:1 for body and 12:1 for headings. */
[data-theme="dark"] {
	--tsri-bg: #07070f;
	--tsri-bg-soft: #0b0b1a;
	--tsri-surface: rgba(255,255,255,.06);
	--tsri-surface-solid: #11111e;
	--tsri-surface-strong: rgba(255,255,255,.10);
	--tsri-border: rgba(255,255,255,.12);
	--tsri-text: #f3f4ff;            /* near-white, max contrast on dark bg */
	--tsri-text-strong: #ffffff;
	--tsri-text-dim: #b8bcdc;        /* valid 7:1+ on #07070f */
	--tsri-muted: #8a90b3;
	--tsri-card: #101020;
	--tsri-placeholder: rgba(255,255,255,.45);
	--tsri-glass-blur: blur(16px);
	--tsri-header-bg: rgba(8,8,20,.72);
	--tsri-drawer-bg: #0a0a17;
	--tsri-card-glow: rgba(124,58,237,.35);
	--tsri-overlay: rgba(4,4,12,.72);
	--tsri-footer-bg: #08081a;
	--tsri-input-bg: rgba(255,255,255,.06);
	--tsri-hamburger-shadow: 0 12px 30px -10px rgba(124,58,237,.55), 0 0 0 1px rgba(255,255,255,.06);
	--tsri-btn-grad-text: #ffffff;
	--tsri-shadow-card: 0 10px 30px -18px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.04);
	--tsri-shadow-card-hover: 0 28px 60px -22px rgba(0,0,0,.7), 0 0 50px -12px var(--tsri-card-glow);
	--tsri-placeholder-token: "Search products…";
	--tsri-placeholder-color: rgba(184,188,220,.55);
	--tsri-selection-bg: rgba(124,58,237,.4);
}

[data-theme="light"] {
	--tsri-bg: #f5f6fb;
	--tsri-bg-soft: #ffffff;
	--tsri-surface: rgba(255,255,255,.85);
	--tsri-surface-solid: #ffffff;
	--tsri-surface-strong: rgba(255,255,255,1);
	--tsri-border: rgba(20,28,70,.12);
	--tsri-text: #15172a;            /* deep navy, max contrast on light bg */
	--tsri-text-strong: #0b0d1a;
	--tsri-text-dim: #4d5273;        /* valid 7:1+ on #f5f6fb */
	--tsri-muted: #6a6f8d;
	--tsri-card: #ffffff;
	--tsri-placeholder: rgba(21,23,42,.5);
	--tsri-glass-blur: blur(14px);
	--tsri-header-bg: rgba(255,255,255,.78);
	--tsri-drawer-bg: #ffffff;
	--tsri-card-glow: rgba(124,58,237,.18);
	--tsri-overlay: rgba(11,13,26,.45);
	--tsri-footer-bg: #ffffff;
	--tsri-input-bg: #ffffff;
	--tsri-hamburger-shadow: 0 12px 30px -10px rgba(124,58,237,.25), 0 0 0 1px rgba(20,28,70,.10);
	--tsri-btn-grad-text: #ffffff;
	--tsri-shadow-card: 0 10px 30px -18px rgba(20,28,70,.18), 0 0 0 1px rgba(20,28,70,.06);
	--tsri-shadow-card-hover: 0 28px 60px -22px rgba(20,28,70,.28), 0 0 50px -12px var(--tsri-card-glow);
	--tsri-placeholder-color: rgba(77,82,115,.6);
	--tsri-selection-bg: rgba(124,58,237,.22);
}

/* ============ 2. BASE ============ */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body.tsri {
	margin: 0;
	background: var(--tsri-bg);
	color: var(--tsri-text);
	font-family: var(--tsri-font-body);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	transition: background .35s var(--tsri-ease), color .35s var(--tsri-ease);
	overflow-x: hidden;
}
::selection { background: var(--tsri-selection-bg); color: var(--tsri-text-strong); }

body.tsri h1, body.tsri h2, body.tsri h3, body.tsri h4, body.tsri h5, body.tsri h6 {
	font-family: var(--tsri-font-heading);
	line-height: 1.18;
	color: var(--tsri-text-strong);
	margin: 0 0 .5em;
	letter-spacing: -.01em;
}
body.tsri p, body.tsri li, body.tsri label, body.tsri dd { color: var(--tsri-text); }
body.tsri small, body.tsri .tsri-text-dim { color: var(--tsri-text-dim); }

body.tsri a {
	color: var(--tsri-accent);
	text-decoration: none;
	transition: color .2s var(--tsri-ease);
}
body.tsri a:hover { color: var(--tsri-primary); }

img, svg { max-width: 100%; height: auto; display: block; }
button { font: inherit; }

input, select, textarea {
	color: var(--tsri-text);
	background: var(--tsri-input-bg);
	caret-color: var(--tsri-accent);
}
input::placeholder, textarea::placeholder { color: var(--tsri-placeholder-color); opacity: 1; }

.tsri-container { max-width: var(--tsri-container); margin: 0 auto; padding: 0 20px; }

.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:focus {
	left: 8px; top: 8px; z-index: 99999; width: auto; height: auto;
	clip: auto; clip-path: none; padding: 10px 16px;
	background: var(--tsri-primary); color: #fff; border-radius: 8px;
}

.tsri-prose p { color: var(--tsri-text-dim); }
.tsri-prose h1, .tsri-prose h2, .tsri-prose h3, .tsri-prose h4 { color: var(--tsri-text-strong); }

/* Glassmorphism */
.tsri-glass {
	background: var(--tsri-surface);
	-webkit-backdrop-filter: var(--tsri-glass-blur);
	backdrop-filter: var(--tsri-glass-blur);
	border: 1px solid var(--tsri-border);
	border-radius: var(--tsri-radius);
}

/* Gradient text */
.tsri-grad {
	background: var(--tsri-grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* ============ 3. BUTTONS ============ */
.tsri-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 12px 24px; border-radius: calc(var(--tsri-radius) - 4px);
	font-weight: 600; font-size: .95rem; font-family: var(--tsri-font-body);
	border: 1px solid transparent; cursor: pointer; text-decoration: none;
	transition: transform .25s var(--tsri-ease), box-shadow .25s var(--tsri-ease), background .25s var(--tsri-ease), border-color .25s var(--tsri-ease);
	color: var(--tsri-text);
}
.tsri-btn:active { transform: scale(.97); }
.tsri-btn:focus-visible { outline: 2px solid var(--tsri-accent); outline-offset: 2px; }

.tsri-btn--grad {
	background: var(--tsri-grad); color: var(--tsri-btn-grad-text) !important;
	box-shadow: 0 10px 30px -10px var(--tsri-card-glow);
}
.tsri-btn--grad:hover { transform: translateY(-2px); box-shadow: 0 18px 38px -10px var(--tsri-card-glow); color: var(--tsri-btn-grad-text); }

.tsri-btn--ghost {
	background: var(--tsri-surface); color: var(--tsri-text) !important;
	border-color: var(--tsri-border);
}
.tsri-btn--ghost:hover { border-color: var(--tsri-accent); color: var(--tsri-text-strong) !important; transform: translateY(-2px); }

.tsri-btn--primary {
	background: var(--tsri-grad); color: var(--tsri-btn-grad-text) !important; width: 100%;
	box-shadow: 0 10px 24px -10px var(--tsri-card-glow);
}
.tsri-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -14px var(--tsri-card-glow); }

/* Chunky 3D icon buttons (used in header actions, modal close, drawer close) */
.tsri-icon-btn {
	position: relative;
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border-radius: 13px;
	background: var(--tsri-surface); border: 1px solid var(--tsri-border);
	color: var(--tsri-text); cursor: pointer;
	transition: border-color .25s var(--tsri-ease), transform .25s var(--tsri-ease), background .25s var(--tsri-ease), color .2s var(--tsri-ease);
}
.tsri-icon-btn:hover { border-color: var(--tsri-accent); transform: translateY(-1px); color: var(--tsri-text-strong); }
.tsri-icon-btn svg { width: 20px; height: 20px; }
.tsri-icon-btn--3d {
	background: var(--tsri-grad);
	color: #fff;
	border: none;
	box-shadow: var(--tsri-hamburger-shadow);
}
.tsri-icon-btn--3d:hover { transform: translateY(-2px) rotateX(8deg); color: #fff; }

/* ============ 4. HEADER ============ */
.tsri-header {
	position: sticky; top: 0; z-index: 1000;
	background: transparent;
	transition: background .3s var(--tsri-ease), box-shadow .3s var(--tsri-ease);
}
.tsri-header.is-scrolled {
	background: var(--tsri-header-bg);
	-webkit-backdrop-filter: blur(20px) saturate(1.6);
	backdrop-filter: blur(20px) saturate(1.6);
	box-shadow: 0 10px 30px -20px rgba(0,0,0,.55);
	border-bottom: 1px solid var(--tsri-border);
}
.tsri-header__inner {
	max-width: var(--tsri-container); margin: 0 auto; padding: 14px 20px;
	display: flex; align-items: center; gap: 22px;
}
.tsri-brand { flex: 0 0 auto; }
.tsri-brand .custom-logo, .tsri-brand img.custom-logo { max-height: 48px; width: auto; }

.tsri-logo-text {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--tsri-font-heading); font-weight: 800; font-size: 1.4rem;
	color: var(--tsri-text-strong);
}
.tsri-logo-mark {
	display: inline-grid; place-items: center; width: 36px; height: 36px;
	border-radius: 11px; background: var(--tsri-grad); color: #fff; font-size: .9rem;
	box-shadow: 0 6px 18px -6px var(--tsri-card-glow);
}

.tsri-nav { flex: 1 1 auto; display: flex; justify-content: center; }
.tsri-menu, .tsri-drawer__menu {
	display: flex; gap: 4px; list-style: none; margin: 0; padding: 0;
}
.tsri-menu > li, .tsri-drawer__menu > li { position: relative; }
.tsri-menu > li > a, .tsri-drawer__menu > li > a {
	display: block; padding: 9px 14px; border-radius: 10px;
	color: var(--tsri-text); font-weight: 500; font-size: .95rem;
	transition: color .2s var(--tsri-ease), background .2s var(--tsri-ease);
}
.tsri-menu > li > a:hover, .tsri-menu > li.current-menu-item > a,
.tsri-drawer__menu > li > a:hover, .tsri-drawer__menu > li.current-menu-item > a {
	color: var(--tsri-text-strong); background: var(--tsri-surface);
}
.tsri-menu > li > a::after {
	content: ""; display: block; height: 2px; margin-top: 3px; border-radius: 2px;
	background: var(--tsri-grad); transform: scaleX(0); transition: transform .25s var(--tsri-ease);
	transform-origin: left;
}
.tsri-menu > li > a:hover::after, .tsri-menu > li.current-menu-item > a::after { transform: scaleX(1); }

/* Submenus */
.tsri-menu ul.sub-menu, .tsri-drawer__menu ul.sub-menu {
	position: absolute; top: calc(100% + 8px); left: 0; min-width: 220px;
	background: var(--tsri-surface-solid); border: 1px solid var(--tsri-border);
	border-radius: 14px; padding: 8px; margin: 0; list-style: none;
	box-shadow: var(--tsri-shadow); opacity: 0; visibility: hidden;
	transform: translateY(8px); transition: all .25s var(--tsri-ease);
}
.tsri-menu > li:hover > ul.sub-menu, .tsri-menu > li:focus-within > ul.sub-menu {
	opacity: 1; visibility: visible; transform: translateY(0);
}
.tsri-menu ul.sub-menu a {
	display: block; padding: 9px 12px; border-radius: 9px;
	color: var(--tsri-text); font-size: .9rem;
}
.tsri-menu ul.sub-menu a:hover { background: var(--tsri-surface); color: var(--tsri-text-strong); }

.tsri-header__actions { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
/* Dedicated premium header search trigger. It opens the separate search panel and never relies on a third-party API. */
.tsri-search-trigger {
	position: relative; display: inline-flex; align-items: center; gap: 10px;
	width: min(330px, 28vw); min-width: 220px; height: 44px; padding: 0 10px 0 14px;
	border: 1px solid var(--tsri-border); border-radius: 14px;
	background: var(--tsri-surface); color: var(--tsri-text);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 8px 24px -18px var(--tsri-card-glow);
	cursor: pointer; text-align: left; transition: border-color .25s var(--tsri-ease), background .25s var(--tsri-ease), transform .25s var(--tsri-ease), box-shadow .25s var(--tsri-ease);
}
.tsri-search-trigger:hover, .tsri-search-trigger:focus-visible {
	border-color: var(--tsri-accent); background: var(--tsri-surface-strong); color: var(--tsri-text-strong);
	transform: translateY(-1px); box-shadow: 0 12px 30px -18px var(--tsri-card-glow);
	outline: none;
}
.tsri-search-trigger__icon { width: 19px; height: 19px; flex: 0 0 19px; color: var(--tsri-accent); }
.tsri-search-trigger__text { min-width: 0; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .86rem; font-weight: 600; color: var(--tsri-text-dim); }
.tsri-search-trigger:hover .tsri-search-trigger__text { color: var(--tsri-text-strong); }
.tsri-search-trigger__mic { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; background: var(--tsri-grad-soft); color: var(--tsri-accent); border: 1px solid var(--tsri-border); flex: 0 0 28px; }
.tsri-search-trigger__mic svg { width: 15px; height: 15px; }

.tsri-cart-count {
	position: absolute; top: -6px; right: -6px; min-width: 19px; height: 19px;
	padding: 0 5px; border-radius: 999px;
	background: var(--tsri-accent); color: #04121a;
	font-size: .68rem; font-weight: 700; line-height: 19px; text-align: center;
	box-shadow: 0 3px 10px -2px var(--tsri-accent);
}
.tsri-cart-count:empty { display: none; }

/* Mode toggle icons */
.tsri-mode-toggle .tsri-icon-sun { display: none; }
[data-theme="light"] .tsri-mode-toggle .tsri-icon-sun { display: block; }
[data-theme="light"] .tsri-mode-toggle .tsri-icon-moon { display: none; }

/* ============ 5. HAMBURGER + 3D DRAWER ============ */
.tsri-hamburger {
	display: none;
	position: relative;
	width: 46px; height: 46px; border-radius: 14px;
	background: var(--tsri-grad);
	color: #fff; border: none; cursor: pointer;
	box-shadow: 0 14px 30px -10px var(--tsri-card-glow), 0 0 0 1px rgba(255,255,255,.06);
	transition: transform .3s var(--tsri-ease), box-shadow .3s var(--tsri-ease);
}
.tsri-hamburger::after {
	content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.35);
}
.tsri-hamburger:hover { transform: translateY(-2px); box-shadow: 0 20px 36px -10px var(--tsri-card-glow), 0 0 0 1px rgba(255,255,255,.12); }
.tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(2) { opacity: 0; }
.tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.tsri-hamburger__box { display: flex; flex-direction: column; gap: 4.5px; width: 20px; }
.tsri-hamburger__box span {
	height: 2px; border-radius: 2px; background: currentColor;
	transition: transform .3s var(--tsri-ease), opacity .3s var(--tsri-ease);
}

/* The drawer itself — glass panel with glowing active indicator */
.tsri-drawer {
	position: fixed; top: 0; right: 0; z-index: 2100;
	width: min(360px, 92vw); height: 100dvh; padding: 18px;
	background: var(--tsri-drawer-bg); border-left: 1px solid var(--tsri-border);
	transform: translateX(100%); transition: transform .38s var(--tsri-ease);
	overflow-y: auto; display: flex; flex-direction: column; gap: 16px;
	-webkit-backdrop-filter: blur(22px) saturate(1.6);
	backdrop-filter: blur(22px) saturate(1.6);
}
.tsri-drawer.is-open {
	transform: translateX(0);
	box-shadow: -40px 0 80px -20px rgba(0,0,0,.6), 0 0 0 1px var(--tsri-border);
}
.tsri-drawer__head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 4px 6px 14px; border-bottom: 1px solid var(--tsri-border);
}
.tsri-drawer__title {
	font-family: var(--tsri-font-heading); font-weight: 800; font-size: 1.2rem;
	color: var(--tsri-text-strong);
}
.tsri-drawer__nav { flex: 1; padding-top: 8px; }
.tsri-drawer__menu { flex-direction: column; gap: 6px; }
.tsri-drawer__menu > li > a {
	display: flex; align-items: center; gap: 14px;
	padding: 14px 14px; font-size: 1rem;
	background: var(--tsri-surface);
	border: 1px solid var(--tsri-border);
	border-radius: 14px;
	color: var(--tsri-text);
	font-weight: 600;
	transition: transform .25s var(--tsri-ease), background .25s var(--tsri-ease), border-color .25s var(--tsri-ease);
}
.tsri-drawer__menu > li > a::before {
	content: ""; width: 8px; height: 8px; border-radius: 50%;
	background: var(--tsri-grad);
	box-shadow: 0 0 12px var(--tsri-card-glow);
	flex: 0 0 auto; opacity: .35;
	transition: opacity .2s var(--tsri-ease), transform .25s var(--tsri-ease);
}
.tsri-drawer__menu > li > a:hover {
	color: var(--tsri-text-strong);
	border-color: var(--tsri-accent);
	transform: translateX(4px);
}
.tsri-drawer__menu > li > a:hover::before { opacity: 1; transform: scale(1.4); }
.tsri-drawer__menu > li.current-menu-item > a {
	background: var(--tsri-grad-soft);
	border-color: var(--tsri-accent);
	color: var(--tsri-text-strong);
}
.tsri-drawer__menu > li.current-menu-item > a::before { opacity: 1; }

.tsri-drawer__icon {
	display: inline-grid; place-items: center; width: 30px; height: 30px;
	border-radius: 9px;
	background: var(--tsri-grad-soft);
	color: var(--tsri-accent);
	font-size: .95rem;
	flex: 0 0 auto;
	border: 1px solid var(--tsri-border);
}
.tsri-drawer__close {
	display: inline-grid; place-items: center;
	width: 38px; height: 38px; border-radius: 12px;
	background: var(--tsri-surface); color: var(--tsri-text);
	border: 1px solid var(--tsri-border); cursor: pointer;
	font-size: 1.1rem;
	transition: transform .2s var(--tsri-ease), border-color .2s var(--tsri-ease);
}
.tsri-drawer__close:hover { border-color: var(--tsri-accent); transform: rotate(90deg); color: var(--tsri-text-strong); }

.tsri-drawer__foot {
	display: flex; gap: 8px; flex-wrap: wrap;
	margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--tsri-border);
}
.tsri-drawer__foot .tsri-btn { flex: 1; min-width: 120px; }

.tsri-drawer-backdrop, .tsri-search-backdrop, .tsri-filters__backdrop {
	position: fixed; inset: 0; z-index: 2000;
	background: var(--tsri-overlay);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	opacity: 0; transition: opacity .3s var(--tsri-ease);
	pointer-events: none;
}
.tsri-drawer-backdrop.is-open, .tsri-search-backdrop.is-open, .tsri-filters__backdrop.is-open {
	opacity: 1; pointer-events: auto;
}

body.tsri-menu-open, body.tsri-search-open, body.tsri-filters-open { overflow: hidden; }

/* ============ 6. MOBILE BOTTOM NAV ============ */
.tsri-bottomnav {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 4000;
	display: none;
	grid-template-columns: repeat(5, 1fr);
	background: var(--tsri-header-bg);
	-webkit-backdrop-filter: blur(20px) saturate(1.6); backdrop-filter: blur(20px) saturate(1.6);
	border-top: 1px solid var(--tsri-border);
	padding: 3px 4px calc(3px + env(safe-area-inset-bottom));
}
body.tsri .site-content { padding-bottom: 76px; }
@media (max-width: 768px) {
	.tsri-bottomnav { display: grid; }
	body.tsri-menu-open { padding-bottom: 0; }
}
.tsri-bottomnav__item {
	display: flex; flex-direction: column; align-items: center; gap: 3px;
	padding: 4px 2px; border-radius: 10px; border: none; background: transparent;
	color: var(--tsri-text); font-size: .62rem; line-height: 1.1; font-weight: 600;
	cursor: pointer; position: relative; min-height: 42px; justify-content: center;
	transition: color .2s var(--tsri-ease), background .2s var(--tsri-ease);
	-webkit-tap-highlight-color: transparent;
}
.tsri-bottomnav__item.is-active, .tsri-bottomnav__item:active {
	color: var(--tsri-accent);
}
.tsri-bottomnav__item:hover { background: var(--tsri-surface); }
.tsri-bottomnav__item--btn { font-family: var(--tsri-font-body); }
.tsri-bottomnav__item > svg { width: 19px; height: 19px; flex: 0 0 19px; }
.tsri-cart-count--bottom { position: absolute; top: 2px; right: 14%; }

/* ============ 7. SEARCH OVERLAY ============ */
.tsri-search-overlay {
	position: fixed; inset: 0; z-index: 2050;
	display: flex; align-items: flex-start; justify-content: center; padding: clamp(78px, 13vh, 140px) 16px 24px;
}
.tsri-search-overlay[hidden] { display: none; }
.tsri-search-panel {
	position: relative; z-index: 2; width: min(680px, 100%);
	padding: 26px 24px;
	background: var(--tsri-surface-solid);
	color: var(--tsri-text);
	border: 1px solid var(--tsri-border);
	border-radius: var(--tsri-radius-lg);
	box-shadow: 0 30px 80px -20px rgba(0,0,0,.55), 0 0 60px -20px var(--tsri-card-glow);
	animation: tsriPop .34s var(--tsri-ease);
}
[data-theme="light"] .tsri-search-panel { background: var(--tsri-surface-solid); box-shadow: 0 30px 80px -20px rgba(20,28,70,.25), 0 0 60px -20px var(--tsri-card-glow); }

@keyframes tsriPop {
	from { opacity: 0; transform: translateY(14px) scale(.98); }
	to { opacity: 1; transform: none; }
}
.tsri-search-form {
	display: flex; align-items: center; gap: 10px; position: relative;
	padding: 7px 8px;
	border: 1px solid var(--tsri-border);
	border-radius: 18px;
	background: var(--tsri-input-bg);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 12px 35px -24px var(--tsri-card-glow);
}
.tsri-search-glyph { width: 20px; height: 20px; color: var(--tsri-accent); flex: 0 0 auto; }
.tsri-search-input {
	flex: 1; min-width: 0; padding: 14px 60px 14px 6px;
	background: transparent; border: none; outline: none;
	color: var(--tsri-text-strong); font-size: 1.1rem; font-family: var(--tsri-font-body);
}
.tsri-search-input::placeholder { color: var(--tsri-placeholder-color); }
.tsri-search-input:focus::placeholder { color: var(--tsri-text-dim); }
.tsri-search-clear,
.tsri-search-close {
	position: absolute; top: 50%; transform: translateY(-50%);
	border: none;
	background: var(--tsri-surface);
	color: var(--tsri-text);
	width: 32px; height: 32px; border-radius: 50%;
	cursor: pointer;
	font-size: 1.05rem; line-height: 1;
	display: inline-grid; place-items: center;
	transition: background .2s var(--tsri-ease), color .2s var(--tsri-ease);
}
.tsri-search-clear { right: 96px; }
.tsri-search-clear:hover { background: var(--tsri-surface-strong); color: var(--tsri-text-strong); }
.tsri-voice-btn {
	position: absolute; right: 0; top: 50%; transform: translateY(-50%);
	flex: 0 0 auto;
	width: 44px; height: 44px; border-radius: 12px;
	background: var(--tsri-grad-soft);
	border: 1px solid var(--tsri-border);
	color: var(--tsri-text); cursor: pointer;
	transition: transform .25s var(--tsri-ease), background .25s var(--tsri-ease), border-color .25s var(--tsri-ease);
	display: inline-grid; place-items: center;
}
.tsri-voice-btn svg { width: 20px; height: 20px; }
.tsri-voice-btn:hover { border-color: var(--tsri-accent); transform: translateY(-50%) scale(1.05); }
.tsri-voice-btn.is-listening {
	background: var(--tsri-grad); color: #fff; border-color: transparent;
	animation: tsriPulse 1.1s ease-in-out infinite;
}
@keyframes tsriPulse {
	0%, 100% { box-shadow: 0 0 0 0 var(--tsri-card-glow); }
	50% { box-shadow: 0 0 0 12px transparent; }
}
.tsri-voice-status { min-height: 22px; margin: 12px 0 0; font-size: .85rem; color: var(--tsri-text-dim); }
.tsri-voice-status.is-error { color: #ef4444; }

.tsri-search-results { max-height: 56vh; overflow-y: auto; margin-top: 14px; padding-right: 4px; }
.tsri-search-results-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.tsri-search-item {
	display: flex; align-items: center; gap: 14px; padding: 10px 12px;
	border-radius: 14px;
	color: var(--tsri-text);
	borders: 1px solid transparent;
	transition: background .2s var(--tsri-ease), border-color .2s var(--tsri-ease);
}
.tsri-search-item:hover {
	background: var(--tsri-surface);
	border-color: var(--tsri-border);
	color: var(--tsri-text-strong);
}
.tsri-search-thumb img { width: 48px; height: 48px; object-fit: cover; border-radius: 10px; display: block; }
.tsri-search-thumb .tsri-card-img--ph { display: grid; place-items: center; width: 48px; height: 48px; background: var(--tsri-surface); border-radius: 10px; color: var(--tsri-text-dim); }
.tsri-search-meta { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.tsri-search-name { font-weight: 600; font-size: .95rem; color: var(--tsri-text-strong); }
.tsri-search-price { font-size: .82rem; color: var(--tsri-accent); margin-top: 2px; }
.tsri-search-empty, .tsri-no-results { color: var(--tsri-text-dim); padding: 16px 4px; }
.tsri-search-more { font-size: .82rem; color: var(--tsri-text-dim); padding: 10px 4px; margin: 0; }
.tsri-search-close {
	position: absolute; top: 14px; right: 14px;
	font-size: 1.15rem;
	z-index: 3;
}

/* ============ 8. HERO ============ */
.tsri-hero { position: relative; overflow: hidden; padding: 88px 20px 80px; isolation: isolate; }
.tsri-hero::before {
	content: ""; position: absolute; inset: -40% -20% auto; height: 130%; z-index: -1;
	background:
		radial-gradient(45% 45% at 22% 30%, rgba(124,58,237,.32), transparent 70%),
		radial-gradient(40% 40% at 78% 25%, rgba(34,211,238,.24), transparent 70%),
		radial-gradient(35% 35% at 55% 80%, rgba(37,99,235,.26), transparent 70%);
}
.tsri-hero::after {
	content: "";
	position: absolute; left: 0; right: 0; bottom: -1px; height: 60px; z-index: -1;
	background: linear-gradient(to bottom, transparent, var(--tsri-bg));
	pointer-events: none;
}
.tsri-hero__inner {
	position: relative; z-index: 1; max-width: var(--tsri-container); margin: 0 auto;
	display: grid; grid-template-columns: 1.05fr .95fr; gap: 50px; align-items: center;
}
.tsri-hero__eyebrow {
	display: inline-block; padding: 7px 18px; border-radius: 999px;
	background: var(--tsri-surface);
	border: 1px solid var(--tsri-border);
	-webkit-backdrop-filter: var(--tsri-glass-blur); backdrop-filter: var(--tsri-glass-blur);
	font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
	color: var(--tsri-accent); margin-bottom: 22px;
}
.tsri-hero__title {
	font-size: clamp(2.2rem, 5vw, 3.8rem);
	font-weight: 800;
	margin: 0 0 20px;
	color: var(--tsri-text-strong);
	letter-spacing: -.02em;
}
.tsri-hero__desc {
	font-size: 1.1rem;
	color: var(--tsri-text);
	max-width: 54ch;
	margin: 0 0 32px;
	opacity: .85;
}
.tsri-hero__buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.tsri-hero__stats {
	margin-top: 36px;
	display: flex; gap: 28px; flex-wrap: wrap;
}
.tsri-hero__stat { display: flex; flex-direction: column; gap: 4px; }
.tsri-hero__stat strong {
	font-family: var(--tsri-font-heading);
	font-size: 1.6rem; color: var(--tsri-text-strong); font-weight: 800;
}
.tsri-hero__stat span { font-size: .82rem; color: var(--tsri-text-dim); letter-spacing: .04em; }

.tsri-hero__visual { position: relative; min-height: 360px; perspective: 1200px; }
.tsri-hero__orb { position: absolute; border-radius: 50%; filter: blur(64px); opacity: .8; }
.tsri-hero__orb--1 { width: 260px; height: 260px; background: var(--tsri-primary); top: 8%; left: 6%; animation: tsriFloat 7s ease-in-out infinite; }
.tsri-hero__orb--2 { width: 220px; height: 220px; background: var(--tsri-accent); bottom: 6%; right: 4%; animation: tsriFloat 9s ease-in-out infinite reverse; }
@keyframes tsriFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-22px); } }

.tsri-hero__cards {
	position: relative; display: grid; grid-template-columns: repeat(2, 1fr);
	gap: 20px; padding: 4%;
	transform-style: preserve-3d;
}
.tsri-hero__card {
	position: relative;
	display: grid; place-items: center;
	background: var(--tsri-surface);
	border: 1px solid var(--tsri-border);
	border-radius: 22px; aspect-ratio: 1.15;
	-webkit-backdrop-filter: var(--tsri-glass-blur); backdrop-filter: var(--tsri-glass-blur);
	box-shadow: 0 0 0 1px var(--tsri-border), 0 0 50px -10px var(--tsri-card-glow);
	transform: perspective(800px) rotateX(7deg) rotateY(-7deg);
	transition: transform .4s var(--tsri-ease);
	animation: tsriFloat 6.5s ease-in-out infinite;
	overflow: hidden;
}
.tsri-hero__card svg { width: 70%; height: 70%; }
.tsri-hero__card::after {
	content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
	background: linear-gradient(135deg, rgba(255,255,255,.18), transparent 50%);
	mix-blend-mode: overlay;
}
.tsri-hero__card:nth-child(2) { animation-delay: .8s; }
.tsri-hero__card:nth-child(3) { animation-delay: 1.6s; }
.tsri-hero__card:nth-child(4) { animation-delay: 2.4s; }
.tsri-hero__card:hover { transform: perspective(800px) rotateX(0deg) rotateY(0deg) translateY(-6px); }

/* ============ 9. STICKY CATEGORY BAR ============ */
.tsri-cats {
	isolation: isolate;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	overflow: visible;
	position: sticky; top: 74px; z-index: 50;
	padding: 14px 0 16px;
	margin-top: -10px;
}
.tsri-cats__inner {
	max-width: var(--tsri-container); margin: 0 auto; padding: 12px 16px;
	display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
	background: var(--tsri-surface);
	border: 1px solid var(--tsri-border);
	border-radius: 999px;
	-webkit-backdrop-filter: var(--tsri-glass-blur); backdrop-filter: var(--tsri-glass-blur);
	box-shadow: var(--tsri-shadow);
}
.tsri-cats__label {
	font-family: var(--tsri-font-heading);
	font-size: .78rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: .12em;
	color: var(--tsri-text-dim);
	padding: 0 10px;
	white-space: nowrap;
}
.tsri-cats__list {
	display: flex; gap: 6px; flex-wrap: wrap; flex: 1;
	min-width: 0;
}
@media (max-width: 640px) {
	.tsri-cats__inner { flex-wrap: nowrap; overflow: hidden; }
	.tsri-cats__list { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; padding-bottom: 2px; }
	.tsri-cats__list::-webkit-scrollbar { display: none; }
	.tsri-cats__chip { flex: 0 0 auto; }
}
.tsri-cats__chip {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--tsri-surface-solid);
	border: 1px solid var(--tsri-border);
	color: var(--tsri-text);
	font-size: .88rem; font-weight: 600;
	cursor: pointer;
	transition: transform .25s var(--tsri-ease), background .25s var(--tsri-ease), border-color .25s var(--tsri-ease), color .2s var(--tsri-ease);
}
.tsri-cats__chip:hover {
	transform: translateY(-2px);
	border-color: var(--tsri-accent);
	color: var(--tsri-text-strong);
}
.tsri-cats__chip.is-active {
	background: var(--tsri-grad);
	color: #fff;
	border-color: transparent;
	box-shadow: 0 8px 22px -10px var(--tsri-card-glow);
}
.tsri-cats__chip-dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--tsri-grad);
	box-shadow: 0 0 8px var(--tsri-card-glow);
}
.tsri-cats__chip.is-active .tsri-cats__chip-dot { background: #fff; box-shadow: 0 0 8px #fff; }

/* ============ 10. SLIDER + PREMIUM 3D CARDS ============ */
.tsri-section { max-width: var(--tsri-container); margin: 0 auto; padding: 42px 20px 18px; }
.tsri-section-head {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 18px; margin-bottom: 24px;
}
.tsri-section-title {
	font-size: clamp(1.5rem, 3vw, 2.05rem);
	margin: 0; font-weight: 800;
	color: var(--tsri-text-strong);
}
.tsri-section-eyebrow {
	display: block; font-size: .78rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: .12em;
	color: var(--tsri-accent);
	margin-bottom: 6px;
}

.tsri-slider {
	position: relative;
}
.tsri-slider__viewport {
	overflow: hidden;
	width: 100%;
	max-width: 100%;
	position: relative;
	touch-action: pan-y;
	contain: layout paint;
}
.tsri-slider__track {
	display: flex !important;
	grid-template-columns: none !important;
	flex-wrap: nowrap !important;
	gap: 22px;
	width: max-content;
	max-width: none;
	transition: transform .55s var(--tsri-ease);
	will-change: transform;
	padding: 6px 4px 22px;
	margin: 0 !important;
	list-style: none !important;
}
.tsri-slider__track > .tsri-slider__slide {
	flex: 0 0 calc((var(--tsri-slider-width, 100vw) - 22px * 3) / 4);
	width: calc((var(--tsri-slider-width, 100vw) - 22px * 3) / 4);
	min-width: 0;
	max-width: calc((var(--tsri-slider-width, 100vw) - 22px * 3) / 4);
	box-sizing: border-box;
}
@media (max-width: 1024px) {
	.tsri-slider__track > .tsri-slider__slide {
		flex-basis: calc((var(--tsri-slider-width, 100vw) - 22px * 2) / 3);
		width: calc((var(--tsri-slider-width, 100vw) - 22px * 2) / 3);
		max-width: calc((var(--tsri-slider-width, 100vw) - 22px * 2) / 3);
	}
}
@media (max-width: 640px) {
	.tsri-slider__track { gap: 14px; }
	.tsri-slider__track > .tsri-slider__slide {
		flex-basis: calc((var(--tsri-slider-width, 100vw) - 14px) / 2);
		width: calc((var(--tsri-slider-width, 100vw) - 14px) / 2);
		max-width: calc((var(--tsri-slider-width, 100vw) - 14px) / 2);
	}
}
/* The slider owns horizontal movement; no ancestor is allowed to scroll sideways. */
.tsri-slider { width: 100%; max-width: 100%; overflow: hidden; }
.tsri-slider__track > .tsri-card-wrap { list-style: none !important; margin: 0 !important; }

.tsri-slider__nav {
	display: flex; gap: 10px; align-items: center;
}
.tsri-slider__btn {
	width: 44px; height: 44px; border-radius: 13px;
	background: var(--tsri-surface-solid);
	border: 1px solid var(--tsri-border);
	color: var(--tsri-text);
	cursor: pointer;
	display: inline-grid; place-items: center;
	transition: transform .25s var(--tsri-ease), border-color .25s var(--tsri-ease), color .2s var(--tsri-ease), background .25s var(--tsri-ease);
}
.tsri-slider__btn:hover { transform: translateY(-2px); border-color: var(--tsri-accent); color: var(--tsri-text-strong); }
.tsri-slider__btn:disabled { opacity: .4; cursor: default; transform: none; }
.tsri-slider__btn svg { width: 18px; height: 18px; }

/* The product grid (used inside archive and other loops) */
.tsri-grid, ul.products.tsri-grid {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 22px !important; margin: 0 !important; padding: 0 !important;
	list-style: none !important;
}
@media (max-width: 1024px) { .tsri-grid { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 640px)  { .tsri-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 14px !important; } }

.tsri-card-wrap { list-style: none !important; margin: 0 !important; }

.tsri-card {
	position: relative;
	display: flex; flex-direction: column; height: 100%;
	background: var(--tsri-card);
	border: 1px solid var(--tsri-border);
	border-radius: var(--tsri-radius);
	overflow: hidden;
	box-shadow: var(--tsri-shadow-card);
	transition:
		transform .4s var(--tsri-ease),
		box-shadow .4s var(--tsri-ease),
		border-color .4s var(--tsri-ease);
	transform-style: preserve-3d;
	will-change: transform;
}
.tsri-card::before {
	content: ""; position: absolute; inset: 0;
	border-radius: inherit; padding: 1px;
	background: var(--tsri-grad);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude;
	opacity: 0; transition: opacity .4s var(--tsri-ease); pointer-events: none; z-index: 4;
}
.tsri-card:hover {
	transform: translateY(-10px) rotateX(2deg) rotateY(-2deg);
	box-shadow: var(--tsri-shadow-card-hover);
	border-color: transparent;
}
.tsri-card:hover::before { opacity: 1; }

.tsri-card-media {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--tsri-surface-solid);
	position: relative;
}
.tsri-card-img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .6s var(--tsri-ease);
}
.tsri-card:hover .tsri-card-img { transform: scale(1.08); }
.tsri-card-img--ph {
	display: grid; place-items: center; font-size: 2.6rem;
	color: var(--tsri-text-dim);
	width: 100%; height: 100%;
}

.tsri-card-badges { position: absolute; top: 12px; left: 12px; display: flex; gap: 6px; z-index: 2; }
.tsri-badge {
	padding: 5px 11px; border-radius: 999px;
	font-size: .7rem; font-weight: 700; letter-spacing: .04em;
	color: #fff; background: var(--tsri-primary);
	box-shadow: 0 6px 16px -6px var(--tsri-card-glow);
}
.tsri-badge--sale { background: linear-gradient(135deg, #ef4444, var(--tsri-primary)); }
.tsri-badge--feat { background: linear-gradient(135deg, var(--tsri-secondary), var(--tsri-accent)); color: #04121a; }
.tsri-badge--new  { background: linear-gradient(135deg, var(--tsri-accent), #10b981); color: #04121a; }
.tsri-badge--dl {
	position: static;
	background: var(--tsri-surface);
	border: 1px solid var(--tsri-border);
	color: var(--tsri-accent);
	display: inline-flex; align-items: center; gap: 6px;
	margin-top: 12px;
}

.tsri-card-body {
	display: flex; flex-direction: column; gap: 9px;
	padding: 16px; flex: 1;
	background: var(--tsri-card);
}
.tsri-card-cat {
	align-self: flex-start;
	font-size: .72rem; font-weight: 700; text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--tsri-accent);
	background: var(--tsri-grad-soft);
	padding: 4px 10px; border-radius: 999px;
	border: 1px solid var(--tsri-border);
}
.tsri-card-cat:hover { color: var(--tsri-primary); }
.tsri-card-title {
	font-size: 1.02rem; margin: 0; line-height: 1.35;
	color: var(--tsri-text-strong);
	font-weight: 700;
}
.tsri-card-title a { color: inherit; }
.tsri-card-title a:hover { color: var(--tsri-accent); }
.tsri-card-desc {
	margin: 0; font-size: .85rem;
	color: var(--tsri-text-dim);
	display: -webkit-box;
	-webkit-line-clamp: 2; -webkit-box-orient: vertical;
	overflow: hidden;
}

.tsri-card-rating {
	display: flex; align-items: center; gap: 7px;
	font-size: .8rem;
	color: var(--tsri-text);
}
.tsri-stars {
	--rating: 0;
	position: relative; display: inline-block;
	width: 84px; height: 15px;
	font-size: 14px; line-height: 15px;
	color: var(--tsri-border);
	letter-spacing: 2px;
}
.tsri-stars::before { content: "★★★★★"; }
.tsri-stars::after {
	content: "★★★★★"; position: absolute; top: 0; left: 0;
	letter-spacing: 2px;
	width: calc(var(--rating, 0) / 5 * 100%); overflow: hidden;
	background: linear-gradient(90deg, #fbbf24, #f59e0b);
	-webkit-background-clip: text; background-clip: text;
	color: transparent; white-space: nowrap;
}
.tsri-rating-num { font-weight: 700; color: var(--tsri-text-strong); }
.tsri-rating-count { color: var(--tsri-text-dim); }

.tsri-card-price { display: flex; align-items: baseline; gap: 9px; margin-top: auto; }
.tsri-card-price del { color: var(--tsri-text-dim); font-size: .85rem; opacity: .7; }
.tsri-price-sale,
.tsri-card-price .amount {
	font-family: var(--tsri-font-heading); font-weight: 800; font-size: 1.15rem;
	color: var(--tsri-text-strong);
}
.tsri-price-sale ins { text-decoration: none; }

.tsri-card-actions {
	display: flex; gap: 8px; margin-top: 4px;
}
.tsri-card-actions .tsri-btn--ghost { padding: 12px 16px; flex: 0 0 auto; }
.tsri-card-actions .tsri-btn--primary { flex: 1; }

/* ============ LOAD MORE / PAGINATION ============ */
.tsri-load-wrap { display: flex; justify-content: center; padding: 28px 0 8px; }
.tsri-load-more[disabled] { opacity: .55; cursor: default; transform: none; }
.tsri-pagination { padding: 30px 0 10px; display: flex; justify-content: center; }
.tsri-pagination .nav-links { display: flex; gap: 6px; flex-wrap: wrap; }
.tsri-pagination .page-numbers {
	display: inline-grid; place-items: center;
	min-width: 40px; height: 40px; padding: 0 12px;
	border-radius: 11px;
	background: var(--tsri-surface-solid);
	border: 1px solid var(--tsri-border);
	color: var(--tsri-text);
	font-weight: 600;
}
.tsri-pagination .page-numbers.current, .tsri-pagination .page-numbers:hover {
	background: var(--tsri-grad); color: #fff; border-color: transparent;
}

/* ============ CATEGORY GRID ============ */
.tsri-cat-grid {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;
	margin: 0; padding: 0; list-style: none;
}
@media (max-width: 1024px) { .tsri-cat-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .tsri-cat-grid { grid-template-columns: repeat(2, 1fr); } }
.tsri-cat-card {
	padding: 12px;
	background: var(--tsri-card);
	border: 1px solid var(--tsri-border);
	border-radius: var(--tsri-radius);
	transition: transform .3s var(--tsri-ease), box-shadow .3s var(--tsri-ease), border-color .3s var(--tsri-ease);
}
.tsri-cat-card:hover {
	transform: translateY(-6px);
	border-color: var(--tsri-accent);
	box-shadow: 0 22px 45px -20px var(--tsri-card-glow);
}
.tsri-cat-card a {
	display: flex; flex-direction: column; align-items: center; gap: 10px;
	padding: 12px 8px; color: var(--tsri-text-strong);
	text-align: center;
}
.tsri-cat-thumb img,
.tsri-cat-thumb svg {
	width: 100%; height: 110px; object-fit: cover;
	border-radius: calc(var(--tsri-radius) - 6px);
}
.tsri-cat-ph {
	display: grid; place-items: center; width: 100%; height: 110px;
	font-size: 2rem; background: var(--tsri-surface);
	border-radius: calc(var(--tsri-radius) - 6px);
	color: var(--tsri-text-dim);
	border: 1px dashed var(--tsri-border);
}
.tsri-cat-name {
	font-family: var(--tsri-font-heading); font-weight: 700; font-size: 1rem;
	color: var(--tsri-text-strong);
}
.tsri-cat-count { font-size: .78rem; color: var(--tsri-text-dim); }

/* ============ 11. FOOTER ============ */
.tsri-footer {
	position: relative; margin-top: 80px;
	border-top: 1px solid var(--tsri-border);
	background: var(--tsri-footer-bg);
	overflow: hidden;
	color: var(--tsri-text);
}
.tsri-footer__glow {
	position: absolute; top: -160px; left: 50%; transform: translateX(-50%);
	width: 70%; height: 260px; pointer-events: none;
	background: radial-gradient(50% 100% at 50% 100%, var(--tsri-card-glow), transparent 70%);
}
.tsri-footer__inner { position: relative; max-width: var(--tsri-container); margin: 0 auto; padding: 60px 20px 28px; }
.tsri-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
	gap: 34px;
}
@media (max-width: 1024px) { .tsri-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .tsri-footer__grid { grid-template-columns: 1fr; } }
.tsri-footer__about {
	color: var(--tsri-text-dim);
	font-size: .94rem; line-height: 1.65;
	margin: 14px 0 0;
}
.tsri-footer__logo { color: var(--tsri-text-strong); }
.tsri-footer__heading {
	font-family: var(--tsri-font-heading);
	font-size: 1rem; font-weight: 700;
	margin: 4px 0 16px;
	color: var(--tsri-text-strong);
	text-transform: uppercase; letter-spacing: .08em;
}
.tsri-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.tsri-footer__links a {
	color: var(--tsri-text);
	font-size: .92rem;
	font-weight: 500;
	transition: color .2s var(--tsri-ease), padding .2s var(--tsri-ease);
}
.tsri-footer__links a:hover {
	color: var(--tsri-accent);
	padding-left: 4px;
}
.tsri-footer__contact {
	display: flex; gap: 8px; align-items: center;
	color: var(--tsri-text);
	font-size: .92rem;
	margin: 0 0 10px;
}
.tsri-footer__contact span:first-child {
	display: inline-grid; place-items: center;
	width: 28px; height: 28px; border-radius: 8px;
	background: var(--tsri-grad-soft);
	color: var(--tsri-accent);
	font-size: .85rem;
	border: 1px solid var(--tsri-border);
}
.tsri-footer__contact a { color: inherit; }
.tsri-footer__contact a:hover { color: var(--tsri-accent); }
.tsri-footer__nl-title {
	font-size: .92rem; margin: 20px 0 10px;
	color: var(--tsri-text-strong); font-weight: 700;
}
.tsri-newsletter {
	display: flex; gap: 8px; flex-wrap: wrap;
}
.tsri-newsletter__input {
	flex: 1; min-width: 160px;
	padding: 12px 14px;
	border-radius: 11px;
	border: 1px solid var(--tsri-border);
	background: var(--tsri-input-bg);
	color: var(--tsri-text);
}
.tsri-newsletter__hint {
	font-size: .78rem;
	color: var(--tsri-text-dim);
	margin-top: 10px;
}
.tsri-footer__bottom {
	border-top: 1px solid var(--tsri-border);
	margin-top: 44px;
	padding-top: 22px;
	display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap;
}
.tsri-footer__copy { margin: 0; color: var(--tsri-text-dim); font-size: .86rem; }
.tsri-footer__bottom-links { display: flex; gap: 14px; list-style: none; margin: 0; padding: 0; }
.tsri-footer__bottom-links a { color: var(--tsri-text-dim); font-size: .84rem; }
.tsri-footer__bottom-links a:hover { color: var(--tsri-accent); }

.tsri-social { display: flex; gap: 10px; list-style: none; margin: 18px 0 0; padding: 0; }
.tsri-social a {
	display: grid; place-items: center;
	width: 40px; height: 40px;
	border-radius: 12px;
	background: var(--tsri-surface);
	border: 1px solid var(--tsri-border);
	color: var(--tsri-text);
	transition: border-color .25s var(--tsri-ease), transform .25s var(--tsri-ease), color .2s var(--tsri-ease);
}
.tsri-social a:hover {
	border-color: var(--tsri-accent);
	color: var(--tsri-accent);
	transform: translateY(-3px);
}
.tsri-social-icon { display: block; width: 18px; height: 18px;
	-webkit-mask: center/contain no-repeat; mask: center/contain no-repeat;
	background: currentColor;
}
.tsri-social-icon--facebook { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M13.5 21v-7h2.6l.4-3h-3V9.1c0-.9.3-1.6 1.7-1.6H17V4.8c-.3 0-1.3-.1-2.4-.1-2.4 0-4 1.4-4 4V11H8v3h2.6v7z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M13.5 21v-7h2.6l.4-3h-3V9.1c0-.9.3-1.6 1.7-1.6H17V4.8c-.3 0-1.3-.1-2.4-.1-2.4 0-4 1.4-4 4V11H8v3h2.6v7z'/%3E%3C/svg%3E"); }
.tsri-social-icon--twitter { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M17.8 3h3l-6.6 7.6L22 21h-6.1l-4.8-6.3L5.6 21h-3l7-8.1L2 3h6.3l4.3 5.7zm-1 16h1.7L7.4 4.7H5.6z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M17.8 3h3l-6.6 7.6L22 21h-6.1l-4.8-6.3L5.6 21h-3l7-8.1L2 3h6.3l4.3 5.7zm-1 16h1.7L7.4 4.7H5.6z'/%3E%3C/svg%3E"); }
.tsri-social-icon--instagram { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4.2'/%3E%3Ccircle cx='17.4' cy='6.6' r='1.1' fill='currentColor' stroke='none'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4.2'/%3E%3Ccircle cx='17.4' cy='6.6' r='1.1' fill='currentColor' stroke='none'/%3E%3C/svg%3E"); }
.tsri-social-icon--youtube { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M21.6 7.2a2.5 2.5 0 0 0-1.8-1.8C18.2 5 12 5 12 5s-6.2 0-7.8.4A2.5 2.5 0 0 0 2.4 7.2 26 26 0 0 0 2 12a26 26 0 0 0 .4 4.8 2.5 2.5 0 0 0 1.8 1.8c1.6.4 7.8.4 7.8.4s6.2 0 7.8-.4a2.5 2.5 0 0 0 1.8-1.8A26 26 0 0 0 22 12a26 26 0 0 0-.4-4.8zM10 15.2V8.8L15.5 12z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M21.6 7.2a2.5 2.5 0 0 0-1.8-1.8C18.2 5 12 5 12 5s-6.2 0-7.8.4A2.5 2.5 0 0 0 2.4 7.2 26 26 0 0 0 2 12a26 26 0 0 0 .4 4.8 2.5 2.5 0 0 0 1.8 1.8c1.6.4 7.8.4 7.8.4s6.2 0 7.8-.4a2.5 2.5 0 0 0 1.8-1.8A26 26 0 0 0 22 12a26 26 0 0 0-.4-4.8zM10 15.2V8.8L15.5 12z'/%3E%3C/svg%3E"); }
.tsri-social-icon--linkedin { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M6.9 8.6H3.5V21h3.4zM5.2 3a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM21 13.6c0-3.3-1.8-4.9-4.1-4.9-1.9 0-2.8 1-3.2 1.8V8.6H10V21h3.7v-6.5c0-1.7.9-2.6 2.1-2.6s1.6.9 1.6 2.6V21H21z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M6.9 8.6H3.5V21h3.4zM5.2 3a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM21 13.6c0-3.3-1.8-4.9-4.1-4.9-1.9 0-2.8 1-3.2 1.8V8.6H10V21h3.7v-6.5c0-1.7.9-2.6 2.1-2.6s1.6.9 1.6 2.6V21H21z'/%3E%3C/svg%3E"); }

/* ============ 12. SINGLE PRODUCT + ARCHIVE + WOOCOMMERCE ============ */
.tsri-page { padding: 30px 0 20px; }
.tsri-page-title {
	font-family: var(--tsri-font-heading);
	color: var(--tsri-text-strong);
	font-size: clamp(1.8rem, 3.4vw, 2.6rem);
	margin: 0 0 18px;
}
.tsri-page-content { color: var(--tsri-text); }
.tsri-page-content a { color: var(--tsri-accent); }
.tsri-page-content a:hover { color: var(--tsri-primary); }

.tsri-shop__head { padding: 44px 0 20px; }
.tsri-shop__head .tsri-section-title { margin: 0 0 6px; }
.tsri-shop__head .woocommerce-result-count { color: var(--tsri-text-dim); }
.tsri-shop__toolbar {
	display: flex; align-items: center; justify-content: space-between;
	gap: 14px;
	padding: 12px 16px;
	margin-bottom: 24px;
	background: var(--tsri-surface);
	border: 1px solid var(--tsri-border);
	border-radius: 14px;
}
.tsri-sort-form { display: flex; }
.tsri-sort-select {
	padding: 10px 14px;
	border-radius: 11px;
	border: 1px solid var(--tsri-border);
	background: var(--tsri-surface-solid);
	color: var(--tsri-text);
	font-family: var(--tsri-font-body); font-size: .9rem;
	cursor: pointer;
}
.tsri-shop__layout { display: grid; grid-template-columns: 270px 1fr; gap: 26px; align-items: start; }
.tsri-filters {
	padding: 18px;
	position: sticky; top: 84px;
	background: var(--tsri-surface-solid);
	border: 1px solid var(--tsri-border);
}
.tsri-filters__head {
	display: flex; justify-content: space-between; align-items: center;
	margin-bottom: 8px; font-weight: 700;
	color: var(--tsri-text-strong);
}
.tsri-filters__form fieldset {
	border: none; padding: 12px 0; margin: 0;
	border-bottom: 1px solid var(--tsri-border);
	color: var(--tsri-text);
}
.tsri-filters__form legend {
	font-weight: 700; font-size: .9rem;
	padding-bottom: 6px; color: var(--tsri-text-strong);
}
.tsri-filter-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; font-size: .9rem; }
.tsri-filter-list label { display: flex; align-items: center; gap: 8px; cursor: pointer; color: var(--tsri-text); }
.tsri-filter-list input { accent-color: var(--tsri-primary); }
.tsri-filter-count { color: var(--tsri-text-dim); font-size: .8rem; }
.tsri-filter-price { display: flex; align-items: center; gap: 8px; }
.tsri-filter-price input {
	width: 100%; padding: 9px 11px; border-radius: 10px;
	border: 1px solid var(--tsri-border);
	background: var(--tsri-surface-solid);
	color: var(--tsri-text);
}
.tsri-filter-price span { color: var(--tsri-text-dim); }
.tsri-filter-apply { width: 100%; margin-top: 14px; }
.tsri-filters .tsri-btn--ghost { width: 100%; margin-top: 8px; text-align: center; }

@media (max-width: 900px) {
	.tsri-shop__layout { grid-template-columns: 1fr; }
	.tsri-filters {
		position: fixed; inset: 0 auto 0 0; z-index: 2100;
		width: min(330px, 88vw);
		border-radius: 0;
		overflow-y: auto;
		transform: translateX(-100%);
		transition: transform .38s var(--tsri-ease); top: 0;
		background: var(--tsri-drawer-bg);
	}
	.tsri-filters.is-open { transform: translateX(0); }
}

.tsri-single__wrap {
	display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr);
	gap: 36px;
	padding: 40px 0 10px; align-items: start;
}
@media (max-width: 900px) { .tsri-single__wrap { grid-template-columns: 1fr; } }
.tsri-breadcrumbs {
	padding: 22px 20px 0; max-width: var(--tsri-container); margin: 0 auto;
	display: flex; gap: 8px; flex-wrap: wrap; font-size: .85rem;
	color: var(--tsri-text-dim);
}
.tsri-breadcrumbs a { color: var(--tsri-text-dim); }
.tsri-breadcrumbs span:last-child { color: var(--tsri-text-strong); font-weight: 600; }
.tsri-breadcrumbs a:hover { color: var(--tsri-accent); }

.tsri-single__gallery {
	padding: 18px; position: relative;
	background: var(--tsri-card);
	border: 1px solid var(--tsri-border);
	border-radius: var(--tsri-radius);
}
.tsri-single__gallery .woocommerce-product-gallery { position: relative; margin: 0; }
.tsri-single__gallery .woocommerce-product-gallery__wrapper { margin: 0; }
.tsri-single__gallery img { border-radius: calc(var(--tsri-radius) - 6px); width: 100%; height: auto; }

.tsri-single__cats {
	font-size: .78rem; font-weight: 700; text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--tsri-accent);
	margin-bottom: 10px;
}
.tsri-single__cats a { color: inherit; }
.tsri-single__title {
	font-size: clamp(1.7rem, 3.4vw, 2.4rem);
	margin: 0 0 12px; color: var(--tsri-text-strong);
}
.tsri-single__price .price {
	font-family: var(--tsri-font-heading); font-size: 1.6rem; font-weight: 800;
	color: var(--tsri-text-strong);
}
.tsri-single__price del { color: var(--tsri-text-dim); font-size: 1.05rem; }
.tsri-single__excerpt { margin: 14px 0 22px; color: var(--tsri-text); }
.tsri-single__cart form.cart { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.tsri-single__cart .quantity input {
	width: 74px; padding: 12px 10px; border-radius: 12px; text-align: center;
	border: 1px solid var(--tsri-border);
	background: var(--tsri-surface-solid); color: var(--tsri-text);
}
.tsri-single__cart .single_add_to_cart_button {
	padding: 14px 34px; border: none;
	border-radius: calc(var(--tsri-radius) - 4px);
	background: var(--tsri-grad); color: #fff;
	font-weight: 700; font-size: 1rem; cursor: pointer;
	box-shadow: 0 12px 30px -12px var(--tsri-card-glow);
	transition: transform .25s var(--tsri-ease), box-shadow .25s var(--tsri-ease);
}
.tsri-single__cart .single_add_to_cart_button:hover { transform: translateY(-2px); }
.tsri-single__download-info {
	padding: 16px 18px; margin: 22px 0 0;
	background: var(--tsri-surface);
	border: 1px solid var(--tsri-border);
	border-radius: var(--tsri-radius);
	font-size: .9rem; color: var(--tsri-text);
}
.tsri-single__download-info p { margin: 6px 0 0; color: var(--tsri-text-dim); }
.tsri-single__download-info strong { color: var(--tsri-text-strong); }
.tsri-single__tags { margin-top: 16px; font-size: .82rem; color: var(--tsri-text-dim); }
.tsri-single__tags a {
	display: inline-block; padding: 4px 10px; border-radius: 999px;
	background: var(--tsri-surface); border: 1px solid var(--tsri-border);
	color: var(--tsri-text); margin: 0 6px 6px 0;
}

.tsri-single__content {
	margin: 34px 0;
	padding: 26px 28px;
	background: var(--tsri-card);
	border: 1px solid var(--tsri-border);
	border-radius: var(--tsri-radius);
	color: var(--tsri-text);
}
.tsri-single__content h2, .tsri-single__content h3 { color: var(--tsri-text-strong); }
.tsri-single__content .woocommerce-tabs ul.tabs {
	display: flex; gap: 8px; list-style: none; margin: 0 0 20px; padding: 0; flex-wrap: wrap;
}
.tsri-single__content .woocommerce-tabs ul.tabs li { margin: 0; }
.tsri-single__content .woocommerce-tabs ul.tabs a {
	display: block; padding: 10px 18px; border-radius: 11px; font-weight: 600;
	color: var(--tsri-text);
	background: var(--tsri-surface);
	border: 1px solid var(--tsri-border);
}
.tsri-single__content .woocommerce-tabs ul.tabs li.active a,
.tsri-single__content .woocommerce-tabs ul.tabs a:hover {
	background: var(--tsri-grad); color: #fff; border-color: transparent;
}

.tsri-single .related, .tsri-single .upsells { padding: 10px 0 30px; }
.tsri-single .related > h2, .tsri-single .upsells > h2,
.tsri-single .related .products > h2, .tsri-single .upsells .products > h2 { color: var(--tsri-text-strong); }

/* WooCommerce generic restyling with theme-aware contrast. */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
	border-radius: 14px;
	border-left: 4px solid var(--tsri-accent);
	background: var(--tsri-surface);
	color: var(--tsri-text);
}
.woocommerce .woocommerce-error { border-left-color: #ef4444; color: var(--tsri-text-strong); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce .button.alt {
	border-radius: 12px;
	background: var(--tsri-grad);
	color: #fff;
	font-weight: 600;
	border: none;
	padding: 11px 22px; cursor: pointer;
	transition: transform .25s var(--tsri-ease), box-shadow .25s var(--tsri-ease);
	box-shadow: 0 10px 24px -10px var(--tsri-card-glow);
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce .button.alt:hover { transform: translateY(-1px); color: #fff; }
.woocommerce .woocommerce-billing-fields h3,
.woocommerce .woocommerce-additional-fields h3,
.woocommerce-account .woocommerce h2 { color: var(--tsri-text-strong); font-family: var(--tsri-font-heading); }
.woocommerce form .form-row label { color: var(--tsri-text); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	border-radius: 11px;
	border: 1px solid var(--tsri-border);
	background: var(--tsri-surface-solid);
	color: var(--tsri-text);
	padding: 11px 12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--tsri-text); line-height: 1.4; }
.woocommerce table.shop_table,
.woocommerce table.my_account_orders,
.woocommerce-MyAccount-content table,
.woocommerce-account .woocommerce table {
	background: var(--tsri-surface);
	border: 1px solid var(--tsri-border);
	border-radius: var(--tsri-radius);
	border-collapse: separate; border-spacing: 0;
	overflow: hidden;
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td {
	padding: 13px 16px;
	color: var(--tsri-text);
	border-bottom: 1px solid var(--tsri-border);
}
.woocommerce table.shop_table th { color: var(--tsri-text-strong); background: var(--tsri-surface-strong); }
.woocommerce-checkout #payment {
	background: var(--tsri-surface);
	border-radius: var(--tsri-radius);
	border: 1px solid var(--tsri-border);
	color: var(--tsri-text);
}
.woocommerce-checkout #payment div.payment_box {
	background: var(--tsri-surface-solid);
	color: var(--tsri-text-dim);
}
.woocommerce-MyAccount-navigation ul {
	list-style: none; margin: 0; padding: 0; display: grid; gap: 6px;
}
.woocommerce-MyAccount-navigation a {
	display: block; padding: 12px 16px; border-radius: 12px;
	background: var(--tsri-surface);
	border: 1px solid var(--tsri-border);
	color: var(--tsri-text);
	font-weight: 600;
}
.woocommerce-MyAccount-navigation a:hover { border-color: var(--tsri-accent); color: var(--tsri-text-strong); }
.woocommerce-account .woocommerce {
	display: grid; grid-template-columns: 230px 1fr; gap: 26px;
	max-width: var(--tsri-container); margin: 0 auto; padding: 40px 20px;
	color: var(--tsri-text);
}
@media (max-width: 800px) { .woocommerce-account .woocommerce { grid-template-columns: 1fr; } }
.woocommerce ul.order_details {
	display: flex; flex-wrap: wrap; gap: 14px; padding: 16px; list-style: none;
	background: var(--tsri-surface);
	border-radius: var(--tsri-radius);
	border: 1px solid var(--tsri-border);
	color: var(--tsri-text);
}
.woocommerce ul.order_details li strong { color: var(--tsri-text-strong); }
.woocommerce-account .woocommerce-MyAccount-content { padding: 6px 0; color: var(--tsri-text); }
.woocommerce-account .woocommerce-MyAccount-content a.button { display: inline-flex; margin-top: 6px; }
.woocommerce ul.products li.product .onsale, .tsri-badge.onsale {
	position: static; min-width: 0; min-height: 0; padding: 4px 10px; margin: 0;
	background: linear-gradient(135deg, #ef4444, var(--tsri-primary));
	border-radius: 999px; font-weight: 700; line-height: 1.4;
	color: #fff;
}
.woocommerce .star-rating { color: #fbbf24; }
.woocommerce .stars a { color: var(--tsri-text-dim); }
.woocommerce .stars a:hover { color: #fbbf24; }

/* Cart / Checkout / My account tables — visible in both themes */
.woocommerce-cart table.shop_table,
.woocommerce-checkout table.shop_table { color: var(--tsri-text); }
.woocommerce-cart table.shop_table .product-name a,
.woocommerce-checkout table.shop_table .product-name a { color: var(--tsri-text-strong); }
.woocommerce a.remove {
	color: var(--tsri-text-dim) !important;
	background: var(--tsri-surface) !important;
	border-radius: 8px !important;
}
.woocommerce a.remove:hover { color: #ef4444 !important; background: var(--tsri-surface-strong) !important; }

/* ============ MOBILE HEADER + HERO ============ */
@media (max-width: 900px) {
	.tsri-nav { display: none; }
	.tsri-hamburger { display: inline-flex; }
	.tsri-header__account { display: none; }
	.tsri-hero__inner { grid-template-columns: 1fr; gap: 36px; }
	.tsri-hero__visual { min-height: 300px; order: -1; }
	.tsri-cats { top: 70px; }
	.tsri-cats__inner { padding: 10px 14px; }
	.tsri-cats__label { display: none; }
	.tsri-cats__chip { padding: 7px 12px; font-size: .82rem; }
}

/* ============ MOTION / POWER ============ */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
	html { scroll-behavior: auto; }
}
html[data-motion="reduced"] *, html[data-motion="reduced"] *::before, html[data-motion="reduced"] *::after {
	animation: none !important; transition-duration: .01ms !important;
}
html[data-power="low"] .tsri-card:hover { transform: translateY(-4px); }
html[data-power="low"] .tsri-hero__orb, html[data-power="low"] .tsri-hero__card { animation: none; }

/* Elementor container compat */
.elementor-page .site-main, .elementor-page .tsri-container { max-width: 100%; padding-left: 0; padding-right: 0; }

/* Print-friendly misc */
@media print {
	.tsri-header, .tsri-bottomnav, .tsri-drawer, .tsri-search-overlay { display: none !important; }
	body.tsri { background: #fff; color: #000; }
}

/* V5 functional visibility/interaction fixes */
.tsri-search-panel { position: relative; z-index: 2205; }
.tsri-search-mic-hint { margin: 8px 0 0; font-size: .78rem; color: var(--tsri-text-dim); text-align: center; }
.tsri-voice-btn { z-index: 3; min-width: 46px; min-height: 46px; box-shadow: 0 8px 24px rgba(34,211,238,.18); }
.tsri-voice-btn svg { display: block !important; opacity: 1 !important; }
.tsri-search-input { padding-right: 150px !important; }
.tsri-bottomnav { min-height: 58px; height: auto; }
.tsri-bottomnav__item { min-height: 56px; padding: 5px 3px; }
.tsri-bottomnav__item > svg { width: 20px; height: 20px; }
@media (max-width: 767px) {
  .tsri-header { z-index: 3000; }
  .tsri-hamburger { z-index: 3010; }
  .tsri-search-overlay { z-index: 4000; }
  .tsri-search-backdrop { z-index: 4001; }
  .tsri-search-panel { z-index: 4002; }
  .tsri-drawer { z-index: 4100; }
  .tsri-drawer-backdrop { z-index: 4090; }
  .tsri-bottomnav { z-index: 3500; }
}


/* Search + dark/light contrast hardening */
.tsri-search-overlay { color: var(--tsri-text); }
.tsri-search-overlay::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(circle at 50% 8%, var(--tsri-card-glow), transparent 42%);
	opacity: .42;
}
.tsri-search-panel { color: var(--tsri-text); }
.tsri-search-close { right: 12px; top: 12px; z-index: 3; color: var(--tsri-text-strong); background: var(--tsri-surface-strong); border: 1px solid var(--tsri-border); }
.tsri-search-input { color: var(--tsri-text-strong) !important; -webkit-text-fill-color: var(--tsri-text-strong); }
.tsri-search-input:focus { box-shadow: none; }
.tsri-voice-btn { z-index: 2; color: var(--tsri-text-strong); box-shadow: 0 8px 20px -14px var(--tsri-card-glow); }
.tsri-search-mic-hint { margin: 10px 4px 0; color: var(--tsri-text-dim) !important; font-size: .78rem; }
.tsri-search-results, .tsri-search-results * { color: var(--tsri-text); }
.tsri-search-item a { color: var(--tsri-text-strong) !important; }
.tsri-search-empty { color: var(--tsri-text-dim) !important; }

@media (max-width: 1050px) {
	.tsri-search-trigger { width: 240px; min-width: 180px; }
}
@media (max-width: 768px) {
	.tsri-search-trigger { width: 44px; min-width: 44px; padding: 0; justify-content: center; border-radius: 13px; }
	.tsri-search-trigger__text, .tsri-search-trigger__mic { display: none; }
	.tsri-search-trigger__icon { width: 20px; height: 20px; }
	.tsri-header__actions { gap: 6px; }
	.tsri-search-overlay { padding: 76px 10px 20px; }
	.tsri-search-panel { width: min(680px, calc(100vw - 20px)); padding: 22px 14px; border-radius: 22px; }
	.tsri-search-form { min-height: 56px; }
	.tsri-voice-btn { width: 46px; height: 46px; border-radius: 13px; }
	.tsri-search-input { font-size: 1rem; }
	.tsri-bottomnav { z-index: 4000; }
}
@media (prefers-color-scheme: dark) {
	/* Never allow browser form styling to turn the search text invisible. */
	.tsri-search-input { color: var(--tsri-text-strong) !important; }
}

/* V6 product-card sizing + dark-mode mobile-menu visibility fixes */
.tsri-grid,
ul.products.tsri-grid {
	align-items: stretch !important;
	column-gap: 22px !important;
	row-gap: 34px !important;
}
.tsri-grid > li,
ul.products.tsri-grid > li,
.tsri-card-wrap {
	display: flex !important;
	align-items: stretch !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
}
.tsri-grid .tsri-card,
ul.products.tsri-grid .tsri-card {
	width: 100% !important;
	height: 100% !important;
	min-height: 520px;
}
.tsri-card-body {
	min-height: 300px;
}

/* Keep the next product row clearly separated on phones. */
@media (max-width: 640px) {
	.tsri-grid,
	ul.products.tsri-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		column-gap: 16px !important;
		row-gap: 34px !important;
	}
	.tsri-grid .tsri-card,
	ul.products.tsri-grid .tsri-card {
		min-height: 555px;
	}
	.tsri-card-body {
		min-height: 330px;
		padding: 14px;
	}
	.tsri-card-title {
		font-size: .98rem;
	}
}

/* Dark mode: make mobile menu/drawer controls and links unmistakable. */
[data-theme="dark"] .tsri-hamburger {
	background: linear-gradient(135deg, #7c3aed 0%, #2563eb 55%, #22d3ee 100%) !important;
	color: #ffffff !important;
	border: 1px solid rgba(255,255,255,.20) !important;
	box-shadow: 0 14px 32px -10px rgba(34,211,238,.38), 0 0 0 1px rgba(124,58,237,.25) !important;
}
[data-theme="dark"] .tsri-hamburger__box span {
	background: #ffffff !important;
}
[data-theme="dark"] .tsri-drawer {
	background: #0b0b18 !important;
	border-left-color: rgba(255,255,255,.18) !important;
	box-shadow: -18px 0 55px rgba(0,0,0,.55) !important;
}
[data-theme="dark"] .tsri-drawer__title,
[data-theme="dark"] .tsri-drawer__menu > li > a {
	color: #ffffff !important;
}
[data-theme="dark"] .tsri-drawer__menu > li > a {
	background: rgba(255,255,255,.055) !important;
	border: 1px solid rgba(255,255,255,.10);
}
[data-theme="dark"] .tsri-drawer__menu > li > a:hover,
[data-theme="dark"] .tsri-drawer__menu > li.current-menu-item > a {
	color: #ffffff !important;
	background: linear-gradient(135deg, rgba(124,58,237,.32), rgba(34,211,238,.16)) !important;
	border-color: rgba(34,211,238,.45) !important;
}
[data-theme="dark"] .tsri-drawer__menu > li > a::before {
	background: #22d3ee !important;
}
[data-theme="dark"] .tsri-drawer__close {
	color: #ffffff !important;
	background: rgba(255,255,255,.08) !important;
	border-color: rgba(255,255,255,.16) !important;
}
[data-theme="dark"] .tsri-drawer__foot {
	border-top-color: rgba(255,255,255,.14) !important;
}

/* Desktop navigation also keeps strong contrast in dark mode. */
[data-theme="dark"] .tsri-menu > li > a {
	color: #f8f9ff !important;
}
[data-theme="dark"] .tsri-menu > li > a:hover,
[data-theme="dark"] .tsri-menu > li.current-menu-item > a {
	color: #ffffff !important;
	background: rgba(255,255,255,.08) !important;
}
[data-theme="dark"] .tsri-menu ul.sub-menu {
	background: #11111e !important;
	border-color: rgba(255,255,255,.16) !important;
}
[data-theme="dark"] .tsri-menu ul.sub-menu a {
	color: #f3f4ff !important;
}
[data-theme="dark"] .tsri-menu ul.sub-menu a:hover {
	color: #ffffff !important;
	background: rgba(255,255,255,.08) !important;
}

/* V8: guaranteed visual separation between product rows on mobile/archive grids */
@media (max-width: 640px) {
	.tsri-grid:not(.tsri-slider__track),
	ul.products.tsri-grid:not(.tsri-slider__track) {
		row-gap: 52px !important;
		align-content: start !important;
	}
	.tsri-grid:not(.tsri-slider__track) > li,
	ul.products.tsri-grid:not(.tsri-slider__track) > li {
		margin: 0 !important;
		padding: 0 !important;
		align-self: start !important;
	}
	.tsri-grid:not(.tsri-slider__track) > li > .tsri-card,
	ul.products.tsri-grid:not(.tsri-slider__track) > li > .tsri-card {
		height: auto !important;
		min-height: 555px !important;
		margin: 0 !important;
	}
}

/* V9: uniform mobile product cards + compact actions + stable hamburger */
@media (max-width: 640px) {
	/* Every product card uses one fixed vertical footprint so rows never touch. */
	.tsri-grid > li,
	ul.products.tsri-grid > li,
	.tsri-slider__track > .tsri-slider__slide {
		height: 800px !important;
		min-height: 800px !important;
		align-self: stretch !important;
		box-sizing: border-box !important;
		margin-bottom: 24px !important;
	}
	.tsri-grid .tsri-card,
	ul.products.tsri-grid .tsri-card,
	.tsri-slider__track .tsri-card {
		height: 800px !important;
		min-height: 800px !important;
		max-height: 800px !important;
		box-sizing: border-box !important;
	}
	.tsri-card-media { aspect-ratio: 4 / 3; flex: 0 0 auto; }
	.tsri-card-body {
		min-height: 0 !important;
		height: auto !important;
		padding: 14px !important;
		gap: 7px !important;
		box-sizing: border-box !important;
		overflow: hidden;
	}
	.tsri-card-title { font-size: .98rem !important; line-height: 1.28 !important; }
	.tsri-card-desc { font-size: .82rem !important; line-height: 1.28 !important; }
	.tsri-card-actions {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) 92px !important;
		gap: 8px !important;
		width: 100% !important;
		margin-top: auto !important;
		box-sizing: border-box !important;
	}
	.tsri-card-actions .tsri-btn--primary,
	.tsri-card-actions .tsri-btn--ghost {
		min-width: 0 !important;
		width: 100% !important;
		box-sizing: border-box !important;
		white-space: normal !important;
		padding: 10px 8px !important;
		font-size: .9rem !important;
		line-height: 1.12 !important;
		text-align: center !important;
	}
	.tsri-card-actions .tsri-btn--ghost { flex: none !important; }

	/* Row separation applies to both normal grids and homepage slider tracks. */
	.tsri-grid:not(.tsri-slider__track),
	ul.products.tsri-grid:not(.tsri-slider__track) {
		row-gap: 48px !important;
	}

	/* Stable two-column slider width without edge clipping. */
	.tsri-slider__track { gap: 14px !important; padding-bottom: 30px !important; }
	.tsri-slider__track > .tsri-slider__slide {
		flex-basis: calc((100vw - 14px - 8px) / 2) !important;
		width: calc((100vw - 14px - 8px) / 2) !important;
		max-width: calc((100vw - 14px - 8px) / 2) !important;
	}
}

/* Hamburger: fixed premium color in both light and dark modes. */
.tsri-hamburger,
[data-theme="light"] .tsri-hamburger,
[data-theme="dark"] .tsri-hamburger {
	background: linear-gradient(135deg, #6d28d9 0%, #2563eb 55%, #06b6d4 100%) !important;
	color: #ffffff !important;
	border: 1px solid rgba(255,255,255,.28) !important;
	box-shadow: 0 12px 28px -10px rgba(37,99,235,.55), 0 0 0 1px rgba(255,255,255,.08) !important;
}
.tsri-hamburger__box span { background: #ffffff !important; }

/* V10 FINAL: force a truly uniform, compact mobile product-card footprint. */
@media (max-width: 640px) {
  .tsri-grid,
  ul.products.tsri-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 14px !important;
    row-gap: 28px !important;
    grid-auto-rows: 760px !important;
    align-items: stretch !important;
  }

  .tsri-grid > li,
  ul.products.tsri-grid > li,
  .tsri-card-wrap {
    height: 760px !important;
    min-height: 760px !important;
    max-height: 760px !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: stretch !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  .tsri-grid > li > .tsri-card,
  ul.products.tsri-grid > li > .tsri-card,
  .tsri-card-wrap > .tsri-card {
    width: 100% !important;
    height: 760px !important;
    min-height: 760px !important;
    max-height: 760px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .tsri-card-media {
    aspect-ratio: 4 / 3 !important;
    flex: 0 0 auto !important;
  }

  .tsri-card-body {
    min-height: 0 !important;
    height: auto !important;
    flex: 1 1 auto !important;
    padding: 13px !important;
    gap: 6px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .tsri-card-cat {
    font-size: .68rem !important;
    padding: 4px 9px !important;
  }

  .tsri-card-title {
    font-size: .94rem !important;
    line-height: 1.24 !important;
  }

  .tsri-card-desc {
    font-size: .79rem !important;
    line-height: 1.22 !important;
    -webkit-line-clamp: 2 !important;
  }

  .tsri-card-rating {
    gap: 5px !important;
    font-size: .75rem !important;
  }

  .tsri-stars {
    width: 72px !important;
    transform: scale(.88);
    transform-origin: left center;
  }

  .tsri-card-price {
    gap: 6px !important;
    flex-wrap: nowrap !important;
  }

  .tsri-price-sale,
  .tsri-card-price .amount {
    font-size: 1.05rem !important;
  }

  .tsri-card-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 78px !important;
    gap: 7px !important;
    width: 100% !important;
    margin-top: auto !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;
  }

  .tsri-card-actions .tsri-btn,
  .tsri-card-actions .tsri-btn--primary,
  .tsri-card-actions .tsri-btn--ghost {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 62px !important;
    padding: 8px 5px !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    font-size: .82rem !important;
    line-height: 1.08 !important;
    text-align: center !important;
  }

  .tsri-card-actions .tsri-btn--ghost {
    flex: none !important;
  }

  /* Keep the next row visually separated without adding an excessive card height. */
  .tsri-grid > li + li,
  ul.products.tsri-grid > li + li {
    margin-bottom: 0 !important;
  }
}

/* V10 hamburger: one stable high-contrast color in every theme. */
.tsri-hamburger,
[data-theme="light"] .tsri-hamburger,
[data-theme="dark"] .tsri-hamburger {
  background: linear-gradient(135deg, #6735e8 0%, #2f6df6 52%, #18bfe3 100%) !important;
  border: 1px solid rgba(255,255,255,.30) !important;
  color: #fff !important;
}
.tsri-hamburger__box,
.tsri-hamburger__box span {
  background: transparent !important;
}
.tsri-hamburger__box span {
  background: #fff !important;
}

/* V11: Mobile header + hamburger alignment/clarity fix. */
@media (max-width: 640px) {
  /* Keep the dark mobile header crisp; do not blur the search/category header. */
  [data-theme="dark"] .tsri-header,
  [data-theme="dark"] .tsri-header.is-scrolled {
    background: #171827 !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    opacity: 1 !important;
  }

  [data-theme="dark"] .tsri-header__inner {
    opacity: 1 !important;
    filter: none !important;
  }

  /* Center the hamburger button and its three lines exactly. */
  .tsri-hamburger,
  [data-theme="light"] .tsri-hamburger,
  [data-theme="dark"] .tsri-hamburger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-content: center !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    flex: 0 0 54px !important;
    background: linear-gradient(135deg, #6d28d9 0%, #2563eb 55%, #06b6d4 100%) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.28) !important;
    overflow: hidden !important;
  }

  .tsri-hamburger__box {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 25px !important;
    height: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 0 0 25px !important;
  }

  .tsri-hamburger__box span {
    display: block !important;
    width: 25px !important;
    height: 3px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 999px !important;
    background: #fff !important;
    transform-origin: center !important;
  }
}

/* V12: Hamburger lines centered INSIDE the blue gradient button only. */
@media (max-width: 640px) {
  .tsri-hamburger {
    position: relative !important;
    display: block !important;
    padding: 0 !important;
    line-height: 0 !important;
    text-align: center !important;
  }

  .tsri-hamburger__box {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 26px !important;
    height: 23px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translate(-50%, -50%) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
  }

  .tsri-hamburger__box span {
    position: static !important;
    display: block !important;
    width: 26px !important;
    height: 3px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    background: #fff !important;
    border-radius: 999px !important;
  }

  /* Preserve the X animation when the drawer is open. */
  .tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(1) {
    transform: translateY(8px) rotate(45deg) !important;
  }
  .tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(2) {
    opacity: 0 !important;
  }
  .tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg) !important;
  }
}

/* V13 — hamburger lines are centered INSIDE the blue gradient button */
@media (max-width: 900px) {
  .tsri-hamburger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
    padding: 0 !important;
    line-height: 0 !important;
    box-sizing: border-box !important;
  }
  .tsri-hamburger__box {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 24px !important;
    height: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translate(-50%, -50%) !important;
    display: flex !important;
    flex: 0 0 24px !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
  }
  .tsri-hamburger__box span {
    display: block !important;
    width: 24px !important;
    height: 3px !important;
    flex: 0 0 3px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    border-radius: 999px !important;
    opacity: 1 !important;
    transform-origin: center center !important;
  }
  .tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(1) {
    transform: translateY(8px) rotate(45deg) !important;
  }
  .tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(2) {
    opacity: 0 !important;
    transform: none !important;
  }
  .tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg) !important;
  }
}

/* V13 — hamburger lines centered INSIDE the blue gradient button */
@media (max-width: 900px) {
  .tsri-hamburger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
    padding: 0 !important;
    line-height: 0 !important;
    box-sizing: border-box !important;
  }
  .tsri-hamburger__box {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 24px !important;
    height: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translate(-50%, -50%) !important;
    display: flex !important;
    flex: 0 0 24px !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
  }
  .tsri-hamburger__box span {
    display: block !important;
    width: 24px !important;
    height: 3px !important;
    flex: 0 0 3px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    border-radius: 999px !important;
    opacity: 1 !important;
    transform-origin: center center !important;
  }
  .tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(1) { transform: translateY(8px) rotate(45deg) !important; }
  .tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(2) { opacity: 0 !important; transform: none !important; }
  .tsri-hamburger[aria-expanded="true"] .tsri-hamburger__box span:nth-child(3) { transform: translateY(-8px) rotate(-45deg) !important; }
}

/* V14 FINAL PRODUCT CARD FIX
 * One exact mobile card height, consistent media/body proportions,
 * safe action buttons, and a real gap between grid rows.
 */
@media (max-width: 640px) {
  .tsri-grid:not(.tsri-slider__track),
  ul.products.tsri-grid:not(.tsri-slider__track) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 14px !important;
    row-gap: 28px !important;
    align-items: stretch !important;
    align-content: start !important;
  }

  .tsri-grid:not(.tsri-slider__track) > li,
  ul.products.tsri-grid:not(.tsri-slider__track) > li,
  .tsri-grid:not(.tsri-slider__track) > .tsri-card-wrap {
    height: 520px !important;
    min-height: 520px !important;
    max-height: 520px !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: stretch !important;
    box-sizing: border-box !important;
  }

  .tsri-grid:not(.tsri-slider__track) > li > .tsri-card,
  ul.products.tsri-grid:not(.tsri-slider__track) > li > .tsri-card,
  .tsri-grid:not(.tsri-slider__track) .tsri-card-wrap > .tsri-card {
    height: 520px !important;
    min-height: 520px !important;
    max-height: 520px !important;
    width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  /* Same image height for every card. */
  .tsri-grid:not(.tsri-slider__track) .tsri-card-media {
    height: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
    aspect-ratio: auto !important;
    flex: 0 0 150px !important;
  }

  .tsri-grid:not(.tsri-slider__track) .tsri-card-body {
    height: 370px !important;
    min-height: 370px !important;
    max-height: 370px !important;
    flex: 0 0 370px !important;
    padding: 12px !important;
    gap: 6px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .tsri-grid:not(.tsri-slider__track) .tsri-card-cat {
    font-size: .64rem !important;
    padding: 3px 7px !important;
    line-height: 1.15 !important;
  }

  .tsri-grid:not(.tsri-slider__track) .tsri-card-title {
    font-size: .88rem !important;
    line-height: 1.22 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
  }

  .tsri-grid:not(.tsri-slider__track) .tsri-card-desc {
    font-size: .74rem !important;
    line-height: 1.2 !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
  }

  .tsri-grid:not(.tsri-slider__track) .tsri-card-rating {
    font-size: .7rem !important;
    gap: 4px !important;
    white-space: nowrap !important;
  }

  .tsri-grid:not(.tsri-slider__track) .tsri-stars {
    width: 62px !important;
    transform: scale(.8) !important;
    transform-origin: left center !important;
  }

  .tsri-grid:not(.tsri-slider__track) .tsri-card-price {
    margin-top: auto !important;
    gap: 5px !important;
    min-height: 25px !important;
    white-space: nowrap !important;
  }

  .tsri-grid:not(.tsri-slider__track) .tsri-price-sale,
  .tsri-grid:not(.tsri-slider__track) .tsri-card-price .amount {
    font-size: .95rem !important;
  }

  .tsri-grid:not(.tsri-slider__track) .tsri-card-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 64px !important;
    gap: 6px !important;
    width: 100% !important;
    margin-top: 2px !important;
    flex: 0 0 44px !important;
    min-height: 44px !important;
    height: 44px !important;
    box-sizing: border-box !important;
  }

  .tsri-grid:not(.tsri-slider__track) .tsri-card-actions .tsri-btn,
  .tsri-grid:not(.tsri-slider__track) .tsri-card-actions .tsri-btn--primary,
  .tsri-grid:not(.tsri-slider__track) .tsri-card-actions .tsri-btn--ghost {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 5px 4px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    font-size: .72rem !important;
    line-height: 1 !important;
  }

  /* Slider cards use the same exact footprint, without breaking horizontal scrolling. */
  .tsri-slider__track > .tsri-slider__slide,
  .tsri-slider__track > .tsri-card-wrap {
    height: 520px !important;
    min-height: 520px !important;
    max-height: 520px !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .tsri-slider__track .tsri-card {
    height: 520px !important;
    min-height: 520px !important;
    max-height: 520px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .tsri-slider__track .tsri-card-media {
    height: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
    aspect-ratio: auto !important;
    flex: 0 0 150px !important;
  }

  .tsri-slider__track .tsri-card-body {
    height: 370px !important;
    min-height: 370px !important;
    max-height: 370px !important;
    flex: 0 0 370px !important;
    padding: 12px !important;
    gap: 6px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .tsri-slider__track .tsri-card-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 64px !important;
    gap: 6px !important;
    margin-top: auto !important;
    width: 100% !important;
  }

  .tsri-slider__track .tsri-card-actions .tsri-btn {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 5px 4px !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    font-size: .72rem !important;
  }
}

/* V15: desktop header full-width + opaque dark header; compact mobile product cards */
@media (min-width: 769px) {
  .tsri-header {
    width: 100% !important;
    max-width: none !important;
    background: var(--tsri-header-bg) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: 0 6px 24px -18px rgba(0,0,0,.55) !important;
    border-bottom: 1px solid var(--tsri-border) !important;
  }
  .tsri-header.is-scrolled {
    background: var(--tsri-header-bg) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .tsri-header__inner {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 640px) {
  /* Compact 2-column cards: no excessive vertical whitespace. */
  .tsri-grid:not(.tsri-slider__track),
  ul.products.tsri-grid:not(.tsri-slider__track) {
    column-gap: 10px !important;
    row-gap: 14px !important;
  }
  .tsri-grid:not(.tsri-slider__track) > li,
  ul.products.tsri-grid:not(.tsri-slider__track) > li,
  .tsri-grid:not(.tsri-slider__track) > .tsri-card-wrap,
  .tsri-grid:not(.tsri-slider__track) > li > .tsri-card,
  ul.products.tsri-grid:not(.tsri-slider__track) > li > .tsri-card,
  .tsri-grid:not(.tsri-slider__track) .tsri-card-wrap > .tsri-card {
    height: 390px !important;
    min-height: 390px !important;
    max-height: 390px !important;
  }
  .tsri-grid:not(.tsri-slider__track) .tsri-card-media {
    height: 112px !important;
    min-height: 112px !important;
    max-height: 112px !important;
    flex: 0 0 112px !important;
  }
  .tsri-grid:not(.tsri-slider__track) .tsri-card-body {
    height: 278px !important;
    min-height: 278px !important;
    max-height: 278px !important;
    flex: 0 0 278px !important;
    padding: 9px !important;
    gap: 4px !important;
  }
  .tsri-grid:not(.tsri-slider__track) .tsri-card-title {
    font-size: .78rem !important;
    line-height: 1.18 !important;
  }
  .tsri-grid:not(.tsri-slider__track) .tsri-card-desc {
    font-size: .67rem !important;
    line-height: 1.16 !important;
  }
  .tsri-grid:not(.tsri-slider__track) .tsri-card-price {
    min-height: 22px !important;
    margin-top: 3px !important;
  }
  .tsri-grid:not(.tsri-slider__track) .tsri-card-actions {
    grid-template-columns: minmax(0, 1fr) 58px !important;
    gap: 5px !important;
    flex: 0 0 38px !important;
    min-height: 38px !important;
    height: 38px !important;
    margin-top: 2px !important;
  }
  .tsri-grid:not(.tsri-slider__track) .tsri-card-actions .tsri-btn,
  .tsri-grid:not(.tsri-slider__track) .tsri-card-actions .tsri-btn--primary,
  .tsri-grid:not(.tsri-slider__track) .tsri-card-actions .tsri-btn--ghost {
    height: 38px !important;
    min-height: 38px !important;
    padding: 4px 3px !important;
    font-size: .66rem !important;
  }
}
