/*
Theme Name: Technology Store 2006
Theme URI: https://technologystore.com.co
Author: Technology Store 2006
Author URI: https://technologystore.com.co
Description: Tema WooCommerce moderno, seguro y altamente personalizable para Technology Store 2006. Incluye sistema de Mini-Especificaciones reutilizables con iconos y filtros, y control de visibilidad para distribuidores directamente desde el editor de producto.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
WC requires at least: 7.0.4
WC tested up to: 9.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: technologystore
Tags: e-commerce, woocommerce, custom-colors, custom-logo, custom-menu, featured-images, translation-ready
*/

/* ============================================================
   TECHNOLOGY STORE 2006 — Design Tokens
   Colors are also injected/overridden by the Customizer.
   ============================================================ */
:root {
	--ts-bg:            #f6f7f8;
	--ts-surface:       #ffffff;
	--ts-surface-2:     #f7f7f5;
	--ts-chip:          #f6faf7;
	--ts-chip-border:   #eaf3ee;
	--ts-ink:           #111111;
	--ts-ink-2:         #4a4a46;
	--ts-muted:         #7a7a75;
	--ts-line:          #e7e7e4;
	--ts-primary:       #1fae4c;
	--ts-primary-2:     #3ecf6e;
	--ts-primary-ink:   #ffffff;
	--ts-dark:          #0a0a0a;
	--ts-dark-2:        #0d0d0d;
	--ts-dark-ink:      #f2f2f0;
	--ts-danger:        #d1435b;
	--ts-radius:        14px;
	--ts-radius-sm:     10px;
	--ts-shadow:        0 1px 3px rgba(0,0,0,.05);
	--ts-shadow-lg:     0 10px 30px rgba(0,0,0,.10);
	--ts-font-head:     'Space Grotesk', system-ui, sans-serif;
	--ts-font-body:     'Manrope', system-ui, sans-serif;
	--ts-wrap:          1240px;
}

*, *::before, *::after { box-sizing: border-box; }

body {
	margin: 0;
	background: var(--ts-bg);
	color: var(--ts-ink);
	font-family: var(--ts-font-body);
	font-size: 15px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 { font-family: var(--ts-font-head); color: var(--ts-ink); line-height: 1.15; }
a { color: var(--ts-primary); text-decoration: none; }
a:hover { color: var(--ts-primary-2); }
img { max-width: 100%; height: auto; }

.wrap { width: 100%; max-width: var(--ts-wrap); margin-inline: auto; padding-inline: 24px; }

/* Guard against stray right-side horizontal overflow. `clip` (not hidden)
   avoids turning the wrapper into a scroll container, so the sticky header
   and dropdowns keep working. */
html, body { overflow-x: clip; max-width: 100%; }
.site-wrapper { overflow-x: clip; }
.ts-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 13px 22px; border-radius: 8px; border: none;
	font-family: var(--ts-font-body); font-weight: 700; font-size: 14px;
	cursor: pointer; transition: transform .12s ease, box-shadow .12s ease, background .15s ease;
	line-height: 1;
}
.btn-primary { background: var(--ts-primary); color: var(--ts-primary-ink); }
.btn-primary:hover { background: var(--ts-primary-2); color: #06210f; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(31,174,76,.28); }
.btn-outline { background: transparent; color: var(--ts-ink); border: 1px solid var(--ts-line); }
.btn-outline:hover { border-color: var(--ts-primary); color: var(--ts-primary); }
.btn-dark { background: var(--ts-dark); color: #fff; }

/* ============================================================
   HEADER
   ============================================================ */
.ts-topbar { background: #111; color: #a3a39e; font-size: 12.5px; }
.ts-topbar .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 8px; }
.ts-topbar-left { display: flex; align-items: center; gap: 22px; overflow-x: auto; white-space: nowrap; }
.ts-topbar-right { flex-shrink: 0; white-space: nowrap; }
.ts-topbar a { color: #cfcfca; }
.hide-mobile { }
.head-wa, .head-account { display: flex; align-items: center; gap: 9px; color: var(--ts-ink); }
.head-wa span, .head-account span { display: flex; flex-direction: column; line-height: 1.15; }
.head-wa small, .head-account small { font-size: 11.5px; color: var(--ts-muted); }
.head-wa b { font-size: 13.5px; color: var(--ts-primary); }
.head-account b { font-size: 13.5px; color: var(--ts-ink); font-weight: 600; }

.site-head { position: sticky; top: 0; z-index: 60; background: var(--ts-surface); border-bottom: 1px solid var(--ts-line); }
.head-inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; height: 84px; }
.brand-link { display: flex; align-items: center; gap: 12px; }
.brand-logo, .custom-logo { height: 50px; width: auto; max-width: 260px; object-fit: contain; display: block; }
.brand-wm b { font-family: var(--ts-font-head); font-weight: 700; font-size: 19px; color: var(--ts-ink); display: block; line-height: 1; }
.brand-wm span { font-size: 11px; color: var(--ts-muted); letter-spacing: .5px; }

.ts-search { display: flex; max-width: 620px; width: 100%; position: relative; }
.ts-search input { flex: 1; background: var(--ts-surface-2); border: 1px solid var(--ts-line); border-right: none; color: var(--ts-ink); padding: 12px 16px; font-size: 14px; font-family: inherit; border-radius: 8px 0 0 8px; outline: none; }
.ts-search input:focus { border-color: var(--ts-primary); }
.ts-search button { background: var(--ts-primary); border: none; padding: 0 20px; border-radius: 0 8px 8px 0; cursor: pointer; font-weight: 700; color: #fff; }

/* Live search dropdown */
.ts-live-results { position: absolute; top: calc(100% + 8px); left: 0; right: 0; background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); box-shadow: var(--ts-shadow-lg); z-index: 80; max-height: 72vh; overflow-y: auto; display: none; }
.ts-live-results.open { display: block; }
.ts-ls-loading, .ts-ls-empty { padding: 22px; text-align: center; color: var(--ts-muted); font-size: 14px; }
.ts-ls-list { padding: 8px; display: flex; flex-direction: column; gap: 4px; }
.ts-ls-item { display: grid; grid-template-columns: 92px 1fr; gap: 14px; padding: 10px; border-radius: var(--ts-radius-sm); align-items: center; }
.ts-ls-item:hover { background: var(--ts-surface-2); }
.ts-ls-img { position: relative; background: var(--ts-surface-2); border-radius: 8px; }
.ts-ls-img img { width: 100%; height: 78px; object-fit: contain; display: block; }
.ts-ls-img .badge { position: absolute; top: 4px; left: 4px; font-size: 10px; font-weight: 800; padding: 2px 7px; }
.ts-ls-info { min-width: 0; }
.ts-ls-brand { font-size: 11.5px; color: var(--ts-primary); font-weight: 700; display: block; }
.ts-ls-name { font-weight: 700; font-size: 14.5px; color: var(--ts-ink); display: block; margin-bottom: 6px; line-height: 1.25; }
.ts-ls-info .ts-mini-specs { margin-bottom: 6px; padding: 7px 4px; }
.ts-ls-info .ts-mini-specs .ms svg { width: 16px; height: 16px; }
.ts-ls-info .ts-mini-specs .ms span { font-size: 9px; }
.ts-ls-price { font-weight: 800; font-size: 15px; color: var(--ts-ink); }
.ts-ls-price del { color: #9a9a95; font-weight: 500; font-size: 12px; margin-right: 6px; }
.ts-ls-price ins { text-decoration: none; }
.ts-ls-all { display: block; text-align: center; padding: 14px; font-weight: 700; font-size: 14px; color: var(--ts-primary); border-top: 1px solid var(--ts-line); background: var(--ts-chip); position: sticky; bottom: 0; }
.ts-ls-all:hover { background: #eaf6ee; }

.head-actions { display: flex; align-items: center; gap: 18px; }
.icon-btn { position: relative; background: none; border: none; cursor: pointer; color: var(--ts-ink); display: inline-flex; align-items: center; gap: 8px; padding: 6px; }
.icon-btn .cart-count { position: absolute; top: -4px; right: -6px; background: var(--ts-primary); color: #fff; font-size: 10px; font-weight: 700; min-width: 17px; height: 17px; border-radius: 100px; display: flex; align-items: center; justify-content: center; padding: 0 4px; }
.menu-toggle { display: none; }
/* Search toggle (mobile only): swaps to a close icon and reveals the bar below */
.search-toggle { display: none; }
.search-close-ico { display: none; }
.site-head.search-open .search-open-ico { display: none; }
.site-head.search-open .search-close-ico { display: block; }

/* ============================================================
   Category nav + Apple-style mega menu
   ============================================================ */
.ts-nav { background: var(--ts-dark-2); border-bottom: 1px solid #1e1e1e; position: relative; }
.ts-nav-wrap { position: relative; }
.ts-nav-arrow { position: absolute; top: 0; bottom: 0; z-index: 6; width: 52px; border: none; cursor: pointer; color: #fff; display: flex; align-items: center; padding: 0; }
.ts-nav-arrow[hidden] { display: none; }
.ts-nav-prev { left: 0; justify-content: flex-start; padding-left: 24px; background: linear-gradient(to right, var(--ts-dark-2) 60%, transparent); }
.ts-nav-next { right: 0; justify-content: flex-end; padding-right: 24px; background: linear-gradient(to left, var(--ts-dark-2) 60%, transparent); }
.ts-nav-arrow:hover { color: var(--ts-primary-2); }
.ts-catnav { display: flex; align-items: center; flex-wrap: nowrap; gap: 16px; list-style: none; margin: 0; padding: 0; overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none; }
.ts-catnav::-webkit-scrollbar { display: none; }
.ts-catnav-item { position: static; display: flex; align-items: center; flex-shrink: 0; }
.ts-catnav-item > a { display: inline-block; color: #d4d4d0; font-weight: 600; font-size: 11.5px; letter-spacing: .2px; white-space: nowrap; padding: 13px 0; transition: color .15s ease; }
.ts-catnav-item > a:hover { color: var(--ts-primary-2); }
.ts-catnav-item.has-mega > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin: -2px 0 0 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); opacity: .55; transition: transform .2s ease; vertical-align: middle; }
.ts-catnav-item.has-mega.is-open > a::after,
.ts-catnav-item.has-mega:hover > a::after { transform: rotate(225deg); opacity: 1; }

/* Panel — translucent, blurred, subtle */
.ts-mega {
	position: absolute; left: 0; right: 0; top: 100%;
	background: rgba(255,255,255,.82);
	-webkit-backdrop-filter: saturate(180%) blur(20px);
	backdrop-filter: saturate(180%) blur(20px);
	border-top: 1px solid rgba(0,0,0,.05);
	box-shadow: 0 24px 44px rgba(0,0,0,.12);
	opacity: 0; visibility: hidden; transform: translateY(-8px);
	transition: opacity .22s ease, transform .22s ease, visibility .22s;
	transition-delay: .12s; /* grace period on close */
	z-index: 55;
}
:root[data-theme] .ts-mega, body.ts-dark .ts-mega { background: rgba(20,20,20,.8); }
.ts-catnav-item.has-mega.is-open .ts-mega,
.ts-catnav-item.has-mega:hover .ts-mega { opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s; }

.ts-mega-inner { display: grid; justify-content: start; gap: 4px 56px; padding-block: 32px 36px; }
.ts-mega-inner.cols-1 { grid-template-columns: minmax(220px, 300px); }
.ts-mega-inner.cols-2 { grid-template-columns: repeat(2, minmax(190px, 260px)); }
.ts-mega-inner.cols-3 { grid-template-columns: repeat(3, minmax(180px, 240px)); }
.ts-mega-inner.cols-4 { grid-template-columns: repeat(4, minmax(170px, 220px)); }

.ts-mega-group { break-inside: avoid; }
.ts-mega-h { display: block; font-size: 12px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--ts-muted) !important; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--ts-line); }
.ts-mega-h:hover { color: var(--ts-primary) !important; }
.ts-mega-group ul, .ts-mega-list { list-style: none; margin: 0 0 20px; padding: 0; }
.ts-mega-group li, .ts-mega-list li { margin: 0; }
.ts-mega-group a, .ts-mega-list a { display: block; color: var(--ts-ink) !important; font-size: 15px; font-weight: 500; padding: 7px 0; transition: color .12s ease, transform .12s ease; }
.ts-mega-group a:hover, .ts-mega-list a:hover { color: var(--ts-primary) !important; transform: translateX(3px); }

/* Mobile accordion toggle (desktop: hidden) */
.ts-mega-toggle { display: none; background: none; border: none; cursor: pointer; color: inherit; padding: 6px; }
.ts-mega-toggle svg { transition: transform .2s ease; }
.ts-catnav-item.is-open > .ts-mega-toggle svg { transform: rotate(180deg); }

/* Mobile drawer — clean accordion */
.mobile-nav-wrap .ts-catnav { flex-direction: column; align-items: stretch; gap: 0; overflow: visible; }
.mobile-nav-wrap .ts-catnav-item { flex-wrap: wrap; border-bottom: 1px solid var(--ts-line); }
.mobile-nav-wrap .ts-catnav-item > a { flex: 1; color: var(--ts-ink); padding: 15px 4px; font-size: 15px; }
.mobile-nav-wrap .ts-catnav-item.has-mega > a::after { display: none; }
.mobile-nav-wrap .ts-mega-toggle { display: inline-flex; align-items: center; color: var(--ts-ink); }
.mobile-nav-wrap .ts-mega { position: static; opacity: 1; visibility: visible; transform: none; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; border: none; max-height: 0; overflow: hidden; transition: max-height .3s ease; flex-basis: 100%; transition-delay: 0s; }
.mobile-nav-wrap .ts-catnav-item.is-open .ts-mega { max-height: 1400px; }
.mobile-nav-wrap .ts-mega-inner { display: block; padding: 0 0 12px 14px; }
.mobile-nav-wrap .ts-mega-h { border: none; margin-bottom: 2px; padding: 10px 0 2px; }
.mobile-nav-wrap .ts-mega-group ul, .mobile-nav-wrap .ts-mega-list { margin-bottom: 8px; }
.mobile-nav-wrap .ts-mega-group a, .mobile-nav-wrap .ts-mega-list a { font-size: 14px; padding: 6px 0; }
.mobile-nav-wrap .ts-mega-group a:hover, .mobile-nav-wrap .ts-mega-list a:hover { transform: none; }

/* ============================================================
   PRODUCT CARD (loop) — mirrors the front design
   ============================================================ */
.ts-shop { padding-block: 40px; }
/* Filters live in an off-canvas drawer (all viewports) so products use the full
   width — more per row on desktop. Toggled from the toolbar button. */
.ts-shop-layout { display: block; }
.ts-shop-main { min-width: 0; }
/* Only the product LIST is a grid — not every .products element (WC's related /
   up-sells wrappers are <section class="related products">, which must stay block
   so the heading sits above the carousel). */
ul.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }

.prod {
	background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius);
	overflow: hidden; box-shadow: var(--ts-shadow); display: flex; flex-direction: column;
	transition: transform .15s ease, box-shadow .15s ease; position: relative; min-width: 0;
}
.prod:hover { transform: translateY(-3px); box-shadow: var(--ts-shadow-lg); }
.prod .pimg { position: relative; background: var(--ts-surface); }
.prod .pimg a { display: block; }
.prod .pimg img { width: 100%; height: 220px; object-fit: contain; display: block; padding: 16px; }
.prod .badge { position: absolute; top: 12px; left: 12px; background: var(--ts-primary); color: #fff; font-size: 11.5px; font-weight: 800; padding: 3px 10px; border-radius: 100px; letter-spacing: .3px; z-index: 2; }
.prod .badge.badge-dist { background: #7a4bd1; }
.prod .pbody { padding: 18px; display: flex; flex-direction: column; flex: 1; min-width: 0; }
.prod .cat-label { font-size: 12px; color: var(--ts-primary); font-weight: 700; letter-spacing: .3px; margin-bottom: 5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.prod h3 { font-family: var(--ts-font-body); font-weight: 700; font-size: 15.5px; color: var(--ts-ink); margin: 0 0 14px; line-height: 1.3; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(1.3em * 2); }
.prod h3 a { color: inherit; }

/* Mini-specs strip on the card */
.ts-mini-specs { display: flex; justify-content: space-around; gap: 4px; background: var(--ts-chip); border: 1px solid var(--ts-chip-border); border-radius: var(--ts-radius-sm); padding: 11px 4px; margin-bottom: 16px; }
.ts-mini-specs .ms { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 5px; }
.ts-mini-specs .ms svg { width: 18px; height: 18px; color: var(--ts-primary); flex-shrink: 0; }
.ts-mini-specs .ms span { font-size: 10px; font-weight: 600; color: var(--ts-ink-2); line-height: 1.15; }

.prod .prow { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: auto; min-width: 0; }
.prod .price { display: block; min-width: 0; overflow-wrap: anywhere; }
.prod .price del { font-size: 13.5px; color: #b6b6b0; text-decoration-line: line-through; text-decoration-color: #c9c9c3; text-decoration-thickness: 1.5px; }
.prod .price ins { text-decoration: none; }
.prod .price .amount, .prod .price ins .amount { font-weight: 800; font-size: 19px; color: var(--ts-ink); }
/* Match the struck price's .amount size to its <del> so the line-through sits
   through the middle of the glyphs (not high), and keep it light + subtle. */
.prod .price del .amount { font-weight: 500; font-size: 13.5px; color: inherit; }
.prod .add_to_cart_button, .prod .ts-add {
	width: 40px; height: 40px; background: var(--ts-primary); border-radius: var(--ts-radius-sm);
	display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 700;
	box-shadow: 0 4px 10px rgba(31,174,76,.28); flex-shrink: 0; border: none; cursor: pointer;
}
.prod .add_to_cart_button:hover { background: var(--ts-primary-2); }
.prod .add_to_cart_button.loading { opacity: .6; }

/* ============================================================
   ARCHIVE — Toolbar, results bar & faceted filters
   ============================================================ */
.ts-shop-toolbar { margin-bottom: 22px; }
.ts-shop-heading h1 { font-size: 28px; margin: 0; }
.ts-shop-desc { color: var(--ts-muted); font-size: 14px; margin-top: 6px; max-width: 720px; }
.ts-shop-desc p { margin: 0; }

/* Results bar (count + ordering + mobile toggle) */
.ts-shop-bar { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; flex-wrap: wrap; }
.ts-result-count { font-size: 13.5px; color: var(--ts-muted); margin: 0; }
.woocommerce-result-count { margin: 0 !important; }
.ts-shop-tools { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.ts-orderby { display: flex; align-items: center; gap: 8px; margin: 0; }
.ts-orderby-label { font-size: 13px; color: var(--ts-muted); font-weight: 600; }
.ts-select { position: relative; }
.ts-select::after { content: ""; position: absolute; right: 12px; top: 50%; width: 8px; height: 8px; border-right: 2px solid var(--ts-muted); border-bottom: 2px solid var(--ts-muted); transform: translateY(-65%) rotate(45deg); pointer-events: none; }
.ts-select select { appearance: none; -webkit-appearance: none; background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); padding: 10px 34px 10px 14px; font-family: var(--ts-font-body); font-size: 13.5px; font-weight: 600; color: var(--ts-ink); cursor: pointer; outline: none; }
.ts-select select:focus { border-color: var(--ts-primary); }

/* Filters — off-canvas drawer on every viewport */
.ts-shop-aside { position: fixed; top: 0; left: 0; z-index: 200; width: min(360px, 90vw); height: 100%; transform: translateX(-100%); transition: transform .25s ease; }
.ts-shop-aside.open { transform: translateX(0); }
.ts-filters { background: var(--ts-surface); border-right: 1px solid var(--ts-line); height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.ts-filters-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid var(--ts-line); }
.ts-filters-head h3 { font-size: 16px; margin: 0; display: flex; align-items: center; gap: 8px; }
.ts-filters-count { background: var(--ts-primary); color: #fff; font-size: 11px; font-weight: 800; min-width: 18px; height: 18px; border-radius: 100px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.ts-filters-close { display: block; background: none; border: none; font-size: 26px; line-height: 1; color: var(--ts-ink); cursor: pointer; }
.ts-filters-body { padding: 4px 18px; flex: 1; overflow-y: auto; }

/* Collapsible facet section */
.ts-facet { border-bottom: 1px solid var(--ts-line); }
.ts-facet:last-child { border-bottom: none; }
.ts-facet-head { display: flex; align-items: center; justify-content: space-between; width: 100%; background: none; border: none; padding: 15px 0; cursor: pointer; color: var(--ts-ink); }
.ts-facet-title { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 13.5px; }
.ts-facet-title svg { width: 16px; height: 16px; color: var(--ts-primary); }
.ts-facet-chevron { width: 8px; height: 8px; border-right: 2px solid var(--ts-muted); border-bottom: 2px solid var(--ts-muted); transform: rotate(-45deg); transition: transform .18s ease; }
.ts-facet.is-open .ts-facet-chevron { transform: rotate(45deg); }
.ts-facet-body { display: none; padding-bottom: 16px; }
.ts-facet.is-open .ts-facet-body { display: block; }
.ts-facet-scroll { max-height: 220px; overflow-y: auto; padding-right: 4px; }
.ts-filters label { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ts-ink-2); padding: 5px 0; cursor: pointer; }
.ts-filters label small { color: var(--ts-muted); }
.ts-filters input[type=checkbox] { accent-color: var(--ts-primary); width: 15px; height: 15px; flex-shrink: 0; }

/* Category list */
.ts-cat-list { list-style: none; margin: 0; padding: 0; }
.ts-cat-list li a { display: flex; justify-content: space-between; gap: 8px; padding: 7px 0; font-size: 13.5px; color: var(--ts-ink-2); }
.ts-cat-list li a:hover, .ts-cat-list li a.is-current { color: var(--ts-primary); font-weight: 700; }
.ts-cat-list li small { color: var(--ts-muted); font-weight: 500; }
.ts-cat-current a { font-weight: 800; color: var(--ts-ink); border-bottom: 1px solid var(--ts-line); margin-bottom: 4px; padding-bottom: 9px; }
.ts-cat-current a::before { content: "‹ "; color: var(--ts-primary); }

/* Price range */
.ts-price { padding-top: 4px; }
.ts-price-slider { position: relative; height: 30px; margin: 4px 4px 6px; }
.ts-price-track { position: absolute; top: 13px; left: 0; right: 0; height: 4px; background: var(--ts-line); border-radius: 4px; }
.ts-price-range { position: absolute; top: 13px; height: 4px; background: var(--ts-primary); border-radius: 4px; }
.ts-price-r { position: absolute; top: 0; left: 0; width: 100%; height: 30px; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.ts-price-r::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: var(--ts-surface); border: 2px solid var(--ts-primary); box-shadow: var(--ts-shadow); cursor: pointer; margin-top: -7px; }
.ts-price-r::-moz-range-thumb { pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: var(--ts-surface); border: 2px solid var(--ts-primary); box-shadow: var(--ts-shadow); cursor: pointer; }
.ts-price-r::-webkit-slider-runnable-track { background: none; }
.ts-price-r::-moz-range-track { background: none; }
.ts-price-inputs { display: flex; align-items: center; gap: 10px; }
.ts-price-inputs label { flex: 1; display: flex; flex-direction: column; gap: 3px; padding: 0; }
.ts-price-inputs span { font-size: 11px; color: var(--ts-muted); font-weight: 700; text-transform: uppercase; letter-spacing: .3px; }
.ts-price-inputs input { width: 100%; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); padding: 8px 10px; font-size: 13px; font-weight: 700; color: var(--ts-ink); background: var(--ts-surface); outline: none; }
.ts-price-inputs input:focus { border-color: var(--ts-primary); }

/* Filter actions */
.ts-filter-actions { display: flex; gap: 8px; padding: 16px 18px; border-top: 1px solid var(--ts-line); }

/* Filter toggle button (visible on every viewport) */
.ts-filter-toggle { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.ts-toggle-count { background: var(--ts-primary); color: #fff; font-size: 11px; font-weight: 800; min-width: 18px; height: 18px; border-radius: 100px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.ts-filter-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 190; opacity: 0; transition: opacity .25s ease; }
.ts-filter-overlay.open { opacity: 1; }

/* Infinite scroll — hide numbered pagination, show a loader */
.ts-shop-pagination.ts-infinite .woocommerce-pagination { display: none; }
.ts-infinite-status { text-align: center; padding: 26px 0; min-height: 12px; color: var(--ts-muted); font-size: 13.5px; }
.ts-infinite-spinner { display: inline-block; width: 26px; height: 26px; border: 3px solid var(--ts-line); border-top-color: var(--ts-primary); border-radius: 50%; animation: ts-spin .7s linear infinite; }
@keyframes ts-spin { to { transform: rotate(360deg); } }

/* Empty state */
.ts-shop-empty { text-align: center; padding: 60px 20px; color: var(--ts-muted); }
.ts-shop-empty svg { color: var(--ts-line); }
.ts-shop-empty h2 { font-size: 20px; color: var(--ts-ink); margin: 12px 0 6px; }
.ts-shop-empty p { margin: 0 0 18px; }
.ts-shop-pagination { margin-top: 30px; }

/* ============================================================
   SINGLE PRODUCT
   ============================================================ */
.ts-single { padding-block: 40px; }
.ts-single .ts-crumbs { font-size: 13px; color: var(--ts-muted); margin-bottom: 22px; }

/* The theme ships its own badges (.ts-gallery-badges / .badge); neutralise the
   default WooCommerce flash so a stray in-flow span never breaks the grid. */
.woocommerce span.onsale, .ts-single span.onsale { display: none !important; }

/* Two-column top: gallery + summary. Wrapped in .ts-product-top so the sticky
   gallery is bounded to this row and never overlaps the tabs/related below. */
.ts-single div.product { display: block; }
.ts-single .ts-product-top { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 44px; align-items: start; margin-bottom: 8px; }
.ts-single .ts-product-top > .woocommerce-product-gallery { position: sticky; top: 100px; margin: 0; align-self: start; }
.ts-single .ts-product-top > .summary { margin: 0; }

/* --- Gallery: main image on top, horizontal thumbnails below, arrows --- */
.ts-single .woocommerce-product-gallery { position: relative; display: flex; flex-direction: column; gap: 14px; }
.ts-single .woocommerce-product-gallery__wrapper { margin: 0; }
.ts-single .woocommerce-product-gallery .flex-viewport { position: relative; width: 100%; background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); overflow: hidden; }
.ts-single .woocommerce-product-gallery .woocommerce-product-gallery__image { background: var(--ts-surface); border-radius: var(--ts-radius); overflow: hidden; }
.ts-single .woocommerce-product-gallery .woocommerce-product-gallery__image img { border-radius: var(--ts-radius); width: 100%; height: auto; object-fit: contain; }
.ts-single .woocommerce-product-gallery img { display: block; }
.ts-single .woocommerce-product-gallery__trigger { position: absolute; top: 12px; right: 12px; z-index: 4; width: 40px; height: 40px; border-radius: 50%; background: var(--ts-surface); border: 1px solid var(--ts-line); box-shadow: var(--ts-shadow); display: flex; align-items: center; justify-content: center; color: var(--ts-ink); }
.ts-single .woocommerce-product-gallery__trigger:hover { border-color: var(--ts-primary); color: var(--ts-primary); }
.ts-single .woocommerce-product-gallery__trigger svg { width: 19px; height: 19px; }

/* Prev/next arrows over the main image (added by JS) */
.ts-gal-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 42px; height: 42px; border-radius: 50%; background: var(--ts-surface); border: 1px solid var(--ts-line); box-shadow: var(--ts-shadow-lg); display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 5; color: var(--ts-ink); transition: border-color .15s, color .15s; }
.ts-gal-nav:hover { border-color: var(--ts-primary); color: var(--ts-primary); }
.ts-gal-prev { left: 12px; }
.ts-gal-next { right: 12px; }

/* Horizontal thumbnail row (works with WC flex-control-thumbs) */
.ts-single .woocommerce-product-gallery ol.flex-control-thumbs { display: flex !important; flex-direction: row; flex-wrap: wrap; gap: 10px; width: 100%; margin: 0; padding: 0; list-style: none; }
.ts-single .woocommerce-product-gallery ol.flex-control-thumbs li { width: 84px !important; margin: 0; float: none; }
.ts-single .woocommerce-product-gallery ol.flex-control-thumbs img { border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); background: var(--ts-surface); padding: 4px; cursor: pointer; opacity: .6; transition: opacity .15s, border-color .15s; }
.ts-single .woocommerce-product-gallery ol.flex-control-thumbs img:hover,
.ts-single .woocommerce-product-gallery ol.flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--ts-primary); }

/* Gallery badges overlay */
.ts-gallery-badges { position: absolute; top: 12px; left: 12px; z-index: 4; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.ts-gallery-badges .badge { background: var(--ts-primary); color: #fff; font-size: 12.5px; font-weight: 800; padding: 4px 11px; border-radius: 100px; letter-spacing: .3px; display: inline-flex; align-items: center; gap: 5px; box-shadow: var(--ts-shadow); }
.ts-gallery-badges .badge-feat { background: var(--ts-dark); }
.ts-gallery-badges .badge svg { width: 14px; height: 14px; }

/* --- Summary: title, price --- */
.ts-single .summary .product_title { font-size: 27px; line-height: 1.2; margin: 0 0 12px; }
.ts-single .summary .price { color: var(--ts-ink); display: block; margin: 0 0 6px; }
.ts-single .summary .price .amount, .ts-single .summary .price ins .amount { font-weight: 800; font-size: 30px; color: var(--ts-ink); }
.ts-single .summary .price ins { text-decoration: none; }
.ts-single .summary .price del { opacity: .55; margin-left: 8px; }
.ts-single .summary .price del .amount { font-weight: 500; font-size: 18px; }
.ts-single .summary .woocommerce-product-rating { margin-bottom: 10px; }
.ts-single .summary > .woocommerce-product-details__short-description { color: var(--ts-ink-2); font-size: 14.5px; line-height: 1.6; margin: 14px 0; }

/* --- Key specs: compact grid --- */
.ts-key-specs { border: 1px solid var(--ts-line); background: var(--ts-surface); border-radius: var(--ts-radius); padding: 16px 18px; margin: 20px 0; }
.ts-key-specs .kt { font-weight: 700; font-size: 12px; color: var(--ts-muted); letter-spacing: 1px; margin-bottom: 12px; text-transform: uppercase; }
.ts-key-specs ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; }
.ts-key-specs li { display: flex; align-items: flex-start; gap: 9px; font-size: 13.5px; color: var(--ts-ink-2); line-height: 1.35; }
.ts-key-specs li svg { width: 18px; height: 18px; color: var(--ts-primary); flex-shrink: 0; margin-top: 1px; }
.ts-key-specs li b { color: var(--ts-ink); font-weight: 700; display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .3px; }

/* --- Availability + trust badges --- */
.ts-avail { margin: 18px 0; }
.ts-stock { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 700; padding: 6px 12px; border-radius: 100px; }
.ts-stock svg { width: 16px; height: 16px; }
.ts-stock.is-in { color: #17743a; background: #e8fbee; }
.ts-stock.is-low { color: #96591a; background: #fdf3e3; }
.ts-stock.is-oos { color: var(--ts-danger); background: #fdeaee; }
.ts-trust { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ts-trust-badge { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 600; color: var(--ts-ink-2); background: var(--ts-surface-2); border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); padding: 7px 12px; }
.ts-trust-badge svg { width: 16px; height: 16px; color: var(--ts-primary); flex-shrink: 0; }

/* --- Buy actions: add-to-cart + WhatsApp side by side --- */
.ts-buy-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin: 20px 0 4px; }
.ts-buy-actions .cart { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; flex: 1 1 240px; }
.ts-buy-actions .cart .quantity { display: inline-flex; }
.ts-buy-actions .cart .quantity input.qty { width: 68px; height: 50px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); background: var(--ts-surface); text-align: center; font-weight: 700; font-size: 15px; color: var(--ts-ink); }
.ts-buy-actions .cart button.single_add_to_cart_button { flex: 1; min-width: 160px; min-height: 50px; background: var(--ts-primary); color: var(--ts-primary-ink); border: none; border-radius: var(--ts-radius-sm); font-family: var(--ts-font-body); font-weight: 800; font-size: 15px; letter-spacing: .3px; cursor: pointer; transition: background .15s, transform .15s, box-shadow .15s; }
.ts-buy-actions .cart button.single_add_to_cart_button:hover { background: var(--ts-primary-2); color: #06210f; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(31,174,76,.28); }
.ts-buy-actions .ts-wa-quote { flex: 1 1 240px; min-height: 50px; justify-content: center; gap: 8px; }
.ts-wa-quote .ts-wa-ico { color: #25d366; flex-shrink: 0; }
.ts-buy-actions .ts-wa-quote:hover .ts-wa-ico { color: inherit; }

/* Distributor notice on single */
.ts-dist-note { background: #f3eefc; border: 1px solid #e0d3f7; color: #4a2d78; border-radius: var(--ts-radius-sm); padding: 14px 16px; font-size: 13.5px; margin: 16px 0; display: flex; gap: 10px; align-items: flex-start; }

/* --- Product tabs (pestañas) --- */
.ts-single .woocommerce-tabs { margin-top: 52px; }
.ts-single .woocommerce-tabs ul.tabs { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--ts-line); }
.ts-single .woocommerce-tabs ul.tabs li { margin: 0; }
.ts-single .woocommerce-tabs ul.tabs li a { display: block; padding: 13px 20px; font-family: var(--ts-font-head); font-weight: 600; font-size: 14.5px; color: var(--ts-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color .15s, border-color .15s; }
.ts-single .woocommerce-tabs ul.tabs li a:hover { color: var(--ts-ink); }
.ts-single .woocommerce-tabs ul.tabs li.active a { color: var(--ts-primary); border-bottom-color: var(--ts-primary); }
.ts-single .woocommerce-tabs .panel { margin: 0; padding: 0; color: var(--ts-ink-2); font-size: 14.5px; line-height: 1.7; }
.ts-single .woocommerce-tabs .panel h2 { font-size: 20px; margin: 0 0 14px; }
.ts-single .woocommerce-tabs .panel table.shop_attributes { width: 100%; border-collapse: collapse; }
.ts-single .woocommerce-tabs .panel table.shop_attributes th,
.ts-single .woocommerce-tabs .panel table.shop_attributes td { text-align: left; padding: 11px 14px; border-bottom: 1px solid var(--ts-line); font-size: 14px; }
.ts-single .woocommerce-tabs .panel table.shop_attributes th { width: 34%; color: var(--ts-ink); font-weight: 700; background: var(--ts-surface-2); }
.ts-single .woocommerce-tabs .panel table.shop_attributes td { color: var(--ts-ink-2); font-style: normal; }
.ts-warranty-tab h3 { display: flex; align-items: center; gap: 10px; font-size: 18px; margin: 0 0 14px; }
.ts-warranty-tab h3 svg { color: var(--ts-primary); }

/* Accordion mode (mobile) — tab titles become collapsible headers */
.ts-single .woocommerce-tabs .ts-acc-head { display: none; }
.ts-single .woocommerce-tabs.ts-acc ul.tabs { display: none; }
.ts-single .woocommerce-tabs.ts-acc .panel { display: none; margin-bottom: 10px; padding: 16px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); }
.ts-single .woocommerce-tabs.ts-acc .ts-acc-head { display: flex; align-items: center; justify-content: space-between; width: 100%; text-align: left; padding: 15px 16px; margin-bottom: 10px; background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); font-family: var(--ts-font-head); font-weight: 600; font-size: 15px; color: var(--ts-ink); cursor: pointer; }
.ts-single .woocommerce-tabs.ts-acc .ts-acc-head.is-open { border-color: var(--ts-primary); color: var(--ts-primary); }
.ts-single .woocommerce-tabs.ts-acc .ts-acc-head::after { content: "+"; font-size: 20px; line-height: 1; color: var(--ts-muted); }
.ts-single .woocommerce-tabs.ts-acc .ts-acc-head.is-open::after { content: "\2212"; color: var(--ts-primary); }

/* --- Related products heading --- */
.ts-single .related > h2, .ts-single .upsells > h2 { font-size: 20px; text-transform: uppercase; letter-spacing: .5px; margin: 52px 0 22px; }

/* ============================================================
   MINICART DRAWER
   ============================================================ */
.minicart-drawer, .mobile-drawer { position: fixed; inset: 0; z-index: 200; visibility: hidden; }
.minicart-drawer.open, .mobile-drawer.open { visibility: visible; }
.minicart-drawer::before, .mobile-drawer::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.45); opacity: 0; transition: opacity .25s ease; }
.minicart-drawer.open::before, .mobile-drawer.open::before { opacity: 1; }
.minicart-panel { position: absolute; top: 0; right: 0; width: min(400px, 92vw); height: 100%; background: var(--ts-surface); box-shadow: -8px 0 30px rgba(0,0,0,.15); transform: translateX(100%); transition: transform .25s ease; display: flex; flex-direction: column; }
.minicart-drawer.open .minicart-panel { transform: translateX(0); }
.minicart-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid var(--ts-line); }
.minicart-head h3 { display: flex; align-items: center; gap: 8px; font-size: 17px; margin: 0; }
.minicart-close, .drawer-close { background: none; border: none; font-size: 26px; line-height: 1; cursor: pointer; color: var(--ts-ink); }
.minicart-body { flex: 1; overflow-y: auto; padding: 16px 20px; }
.minicart-item { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--ts-line); }
.minicart-item img { border-radius: 8px; }
.minicart-title { font-weight: 700; font-size: 13.5px; color: var(--ts-ink); }
.minicart-qty-price { font-size: 13px; color: var(--ts-muted); }
.minicart-remove { color: var(--ts-danger); font-size: 20px; text-decoration: none; }
.minicart-footer { border-top: 1px solid var(--ts-line); padding: 16px 20px; }
.minicart-subtotal { display: flex; justify-content: space-between; font-size: 16px; margin-bottom: 14px; }
.minicart-actions { display: flex; flex-direction: column; gap: 10px; }
.minicart-empty { text-align: center; color: var(--ts-muted); padding: 40px 0; }

.mobile-drawer .drawer-panel { position: absolute; top: 0; left: 0; width: min(380px, 90vw); height: 100%; background: var(--ts-surface); transform: translateX(-100%); transition: transform .25s ease; display: flex; flex-direction: column; }
.mobile-drawer.open .drawer-panel { transform: translateX(0); }
.drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--ts-line); flex-shrink: 0; }
.drawer-title { font-family: var(--ts-font-head); font-weight: 700; font-size: 17px; color: var(--ts-ink); }
.mobile-drawer .drawer-close { width: 34px; height: 34px; border-radius: 50%; background: var(--ts-surface-2); display: flex; align-items: center; justify-content: center; font-size: 24px; }
.mobile-nav-wrap { flex: 1; overflow-y: auto; padding: 6px 20px; -webkit-overflow-scrolling: touch; }
.drawer-foot { flex-shrink: 0; border-top: 1px solid var(--ts-line); padding: 14px 20px; display: flex; flex-direction: column; gap: 8px; background: var(--ts-surface-2); }
.drawer-foot-link { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--ts-radius-sm); background: var(--ts-surface); border: 1px solid var(--ts-line); color: var(--ts-ink); font-weight: 700; font-size: 14px; }
.drawer-foot-link svg { color: var(--ts-primary); flex-shrink: 0; }
.drawer-foot-link:hover { border-color: var(--ts-primary); color: var(--ts-primary); }
.drawer-foot-wa svg { color: #25d366; }
.mobile-nav { list-style: none; margin: 20px 0 0; padding: 0; }
.mobile-nav li a { display: block; padding: 14px 4px; border-bottom: 1px solid var(--ts-line); color: var(--ts-ink); font-weight: 600; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-foot { background: var(--ts-dark); color: #b8b8b3; margin-top: 60px; }
.site-foot .wrap { padding-block: 48px 28px; }
/* Brand (wider) + slim link columns; the "wide" column spans the last 2. */
.foot-grid { display: grid; grid-template-columns: 1.3fr 0.85fr 0.85fr 1fr 1fr; gap: 32px 40px; align-items: start; }
.foot-brand-col { min-width: 0; }
.foot-grid > .foot-col { min-width: 0; }
.foot-grid > .foot-col--wide { grid-column: span 2; }
@media (max-width: 1024px) { .foot-grid { grid-template-columns: 1fr 1fr 1fr; } .foot-grid > .foot-col--wide { grid-column: span 3; } }
@media (max-width: 680px)  { .foot-grid { grid-template-columns: 1fr 1fr; } .foot-grid > .foot-col--wide { grid-column: span 2; } }
@media (max-width: 460px)  { .foot-grid { grid-template-columns: 1fr; } .foot-grid > .foot-col--wide { grid-column: span 1; } }
.foot-grid h4 { color: #fff; font-size: 14px; margin: 0 0 14px; }
.foot-links { display: flex; flex-direction: column; gap: 2px; }
.foot-col--wide .foot-links { display: block; column-count: 2; column-gap: 40px; }
.foot-sede { break-inside: avoid; margin-bottom: 16px; }
.foot-subhead { display: block; color: var(--ts-primary-2); font-weight: 700; font-size: 14px; margin: 0 0 4px; }
.foot-text { display: block; padding: 2px 0; font-size: 13.5px; line-height: 1.5; }
.foot-grid a { color: #b8b8b3; display: block; padding: 4px 0; font-size: 13.5px; }
.foot-grid a:hover { color: var(--ts-primary-2); }
.foot-logo { max-height: 48px; width: auto; max-width: 220px; object-fit: contain; margin-bottom: 14px; display: block; }
.foot-about { font-size: 13.5px; line-height: 1.6; margin: 0 0 10px; }
.foot-payments { margin-top: 28px; padding-top: 22px; border-top: 1px solid #1e1e1e; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.foot-payments-label { font-size: 12px; color: #8a8a85; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }
.foot-payments img { max-height: 34px; width: auto; }
.foot-bottom { border-top: 1px solid #1e1e1e; margin-top: 32px; padding-top: 20px; font-size: 12.5px; color: #8a8a85; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* WhatsApp FAB (single number) — full-colour logo, no coloured backdrop */
.ts-wa-fab { position: fixed; right: 20px; bottom: 20px; z-index: 90; width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; filter: drop-shadow(0 8px 20px rgba(0,0,0,.25)); transition: transform .15s; }
.ts-wa-fab:hover { transform: scale(1.05); }
.ts-wa-fab svg { width: 100%; height: 100%; }

/* WhatsApp widget (multi-branch) */
.ts-wa-widget { position: fixed; right: 20px; bottom: 20px; z-index: 95; }
.ts-wa-launch { display: flex; align-items: center; gap: 10px; background: none; border: none; padding: 0; cursor: pointer; margin-left: auto; }
.ts-wa-hint { background: #e8fbee; color: #1fae4c; font-weight: 700; font-size: 12.5px; line-height: 1.3; text-align: left; padding: 10px 14px; border-radius: 100px; box-shadow: var(--ts-shadow-lg); max-width: 180px; }
.ts-wa-launch-ico { width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform .15s; background-color: #1fae4c; padding: 10px; }
/* Open state = full-colour logo (no backdrop). Close state = green × pill. */
.ts-wa-launch-ico.ts-wa-launch-open { filter: drop-shadow(0 8px 20px rgba(0,0,0,.25)); }
.ts-wa-launch-ico.ts-wa-launch-open svg { width: 100%; height: 100%; }
.ts-wa-launch-ico.ts-wa-launch-close { width: 56px; height: 56px; background: #25d366; color: #fff; box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.ts-wa-launch:hover .ts-wa-launch-ico { transform: scale(1.05); }
.ts-wa-launch-close { display: none; font-size: 30px; line-height: 1; }
.ts-wa-widget.is-open .ts-wa-launch-open { display: none; }
.ts-wa-widget.is-open .ts-wa-launch-close { display: flex; }
.ts-wa-widget.is-open .ts-wa-hint { display: none; }

.ts-wa-menu { position: absolute; bottom: 72px; right: 0; width: min(340px, 92vw); background: var(--ts-surface); border-radius: 16px; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,.30); }
.ts-wa-menu-head { background: linear-gradient(135deg, #25d366, #1fae4c); color: #fff; padding: 18px 20px; }
.ts-wa-menu-title { display: flex; align-items: center; gap: 10px; font-family: var(--ts-font-head); font-weight: 700; font-size: 16px; }
.ts-wa-menu-title svg { width: 24px; height: 24px; }
.ts-wa-menu-head p { margin: 8px 0 0; font-size: 12.5px; opacity: .92; line-height: 1.45; }
.ts-wa-menu-body { padding: 14px; max-height: 56vh; overflow-y: auto; }
.ts-wa-note { font-size: 11.5px; color: var(--ts-muted); text-align: center; margin-bottom: 12px; }
.ts-wa-contact { display: flex; align-items: center; gap: 12px; background: var(--ts-surface-2); border: 1px solid var(--ts-line); border-left: 3px solid #25d366; border-radius: 10px; padding: 11px 14px; margin-bottom: 10px; }
.ts-wa-contact:last-child { margin-bottom: 0; }
.ts-wa-contact:hover { background: #e8fbee; border-color: #bfe9cc; }
.ts-wa-contact-ico { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ts-wa-contact-ico svg { width: 38px; height: 38px; }
.ts-wa-contact-label { flex: 1; font-weight: 600; font-size: 13.5px; color: var(--ts-ink); line-height: 1.3; }
.ts-wa-contact-go { color: #25d366; flex-shrink: 0; display: flex; }
.ts-wa-contact-go svg { width: 20px; height: 20px; }
@media (max-width: 560px) { .ts-wa-hint { display: none; } }

/* ============================================================
   HOME — Hero
   ============================================================ */
.ts-hero { position: relative; min-height: 560px; overflow: hidden; background: var(--ts-dark); }
.ts-hero-slide { position: relative; min-height: 560px; display: none; }
.ts-hero-slide.is-active { display: block; }
/* Slider mode: all slides stacked + cross-fade between them. */
.ts-hero-slider .ts-hero-slide { position: absolute; inset: 0; display: block; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s ease; }
.ts-hero-slider .ts-hero-slide.is-active { opacity: 1; visibility: visible; }
.ts-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ts-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,10,10,.95) 0%, rgba(10,10,10,.7) 42%, rgba(10,10,10,.2) 75%, rgba(10,10,10,.05) 100%); }
/* .wrap keeps the 1240 centered container; .ts-hero-inner is the LEFT-aligned
   text column inside it (not centered). */
.ts-hero-wrap { position: relative; z-index: 2; min-height: 560px; display: flex; align-items: center; }
.ts-hero-inner { display: flex; flex-direction: column; justify-content: center; max-width: 560px; color: #fff; }
.ts-hero-badge { display: inline-block; width: fit-content; background: #132015; border: 1px solid #24402a; color: var(--ts-primary-2); font-size: 12px; font-weight: 700; letter-spacing: 1.5px; padding: 5px 12px; border-radius: 100px; margin-bottom: 18px; text-transform: uppercase; }
.ts-hero-title { font-size: 46px; line-height: 1.06; margin: 0 0 16px; color: #fff; }
.ts-hero-sub { font-size: 16px; color: #d6d6d2; max-width: 440px; line-height: 1.6; margin: 0 0 26px; }
.ts-hero-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.ts-hero-dots { position: absolute; left: 0; right: 0; bottom: 20px; display: flex; justify-content: center; gap: 8px; z-index: 3; }
.ts-hero-dot { width: 9px; height: 9px; border-radius: 100px; border: none; background: rgba(255,255,255,.5); cursor: pointer; transition: width .2s; }
.ts-hero-dot.is-active { width: 26px; background: var(--ts-primary); }

/* HOME — Category grid */
.ts-home-cats { background: var(--ts-surface); padding-block: 48px; }
.ts-cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ts-cat-card { display: flex; gap: 14px; align-items: center; background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: 12px; padding: 16px; transition: box-shadow .15s, transform .15s; }
.ts-cat-card:hover { box-shadow: var(--ts-shadow-lg); transform: translateY(-2px); }
.ts-cat-media { position: relative; width: 64px; height: 64px; flex-shrink: 0; }
.ts-cat-media img { width: 100%; height: 64px; object-fit: contain; border-radius: 8px; }
.ts-cat-ico { position: absolute; right: -6px; bottom: -6px; width: 30px; height: 30px; border-radius: 8px; background: #e8fbee; display: flex; align-items: center; justify-content: center; color: var(--ts-primary); }
.ts-cat-media:only-child, .ts-cat-media:not(:has(img)) .ts-cat-ico { position: static; }
.ts-cat-body h3 { font-family: var(--ts-font-body); font-weight: 700; font-size: 14px; color: var(--ts-ink); margin: 0 0 2px; }
.ts-cat-body p { font-size: 12px; color: var(--ts-muted); margin: 0 0 6px; }
.ts-cat-more { font-size: 12px; color: var(--ts-primary); font-weight: 700; }

/* HOME — Brands */
.ts-home-brands { background: #000000; border-block: 1px solid #1e1e1e; }
.ts-home-brands .wrap { display: flex; align-items: center; gap: 24px; padding-block: 24px; }
.ts-brands-title { font-size: 12.5px; font-weight: 700; color: var(--ts-primary-2); letter-spacing: 1.5px; flex-shrink: 0; }
.ts-brands-track { display: flex; align-items: center; gap: 16px; overflow-x: auto; flex: 1; }
/* Just the logo images, side by side — no card background or border. */
.ts-home-brands .ts-brand-logo { flex-shrink: 0; display: inline-flex; align-items: center; color: #d4d4d0; font-weight: 700; }
.ts-home-brands .ts-brand-logo img { height: 56px; width: auto; max-width: 150px; object-fit: contain; display: block; }

/* HOME — Benefits */
.ts-home-benefits { background: var(--ts-surface); padding-block: 40px; }
.ts-benefit-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.ts-benefit { display: flex; gap: 14px; align-items: flex-start; }
.ts-benefit-ico { width: 40px; height: 40px; border-radius: 50%; background: #e8fbee; color: var(--ts-primary); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ts-benefit h4 { font-family: var(--ts-font-body); font-size: 14.5px; margin: 0 0 4px; color: var(--ts-ink); }
.ts-benefit p { font-size: 13px; color: var(--ts-muted); margin: 0; line-height: 1.5; }

/* HOME — Product sections (carousel) */
.ts-home-section { background: var(--ts-surface); padding-block: 20px 48px; }
.ts-sec-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 22px; }
.ts-sec-head h2 { font-size: 20px; letter-spacing: .5px; text-transform: uppercase; margin: 0; }
.ts-sec-all { font-weight: 700; font-size: 14px; }
.ts-carousel-wrap { position: relative; }
ul.products.ts-carousel { display: flex; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; gap: 22px; padding-bottom: 6px; }
ul.products.ts-carousel > li { flex: 0 0 258px; scroll-snap-align: start; }
.ts-car-btn { position: absolute; top: 130px; transform: translateY(-50%); width: 38px; height: 38px; border-radius: 50%; background: var(--ts-surface); border: 1px solid var(--ts-line); box-shadow: var(--ts-shadow-lg); cursor: pointer; z-index: 3; font-size: 18px; color: var(--ts-ink); display: flex; align-items: center; justify-content: center; transition: border-color .15s, color .15s; }
.ts-car-btn:hover { border-color: var(--ts-primary); color: var(--ts-primary); }
.ts-car-prev { left: -18px; }
.ts-car-next { right: -18px; }

/* HOME — CTA */
.ts-home-cta { background: var(--ts-surface); padding-block: 20px 56px; }
.ts-cta-box { background: #e8fbee; border: 1px solid #c3ecd0; border-radius: 16px; padding: 36px 44px; display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
.ts-cta-box h2 { font-size: 22px; margin: 0 0 6px; }
.ts-cta-box p { color: #3a6b45; font-size: 14.5px; margin: 0; }

[data-hide-scroll]::-webkit-scrollbar { display: none; }
[data-hide-scroll] { scrollbar-width: none; -ms-overflow-style: none; }

/* ============================================================
   QUANTITY STEPPER (cart + single product)
   ============================================================ */
.quantity.ts-qty { display: inline-flex; align-items: stretch; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); overflow: hidden; background: var(--ts-surface); height: 44px; }
.ts-qty .ts-qty-btn { width: 38px; border: none; background: var(--ts-surface-2); color: var(--ts-ink); font-size: 18px; font-weight: 700; cursor: pointer; display: flex; align-items: center; justify-content: center; line-height: 1; }
.ts-qty .ts-qty-btn:hover { background: var(--ts-chip); color: var(--ts-primary); }
.ts-qty input.qty { width: 46px; border: none; border-left: 1px solid var(--ts-line); border-right: 1px solid var(--ts-line); text-align: center; font-weight: 700; font-size: 14px; color: var(--ts-ink); background: var(--ts-surface); -moz-appearance: textfield; padding: 0; }
.ts-qty input.qty::-webkit-outer-spin-button, .ts-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ts-single .ts-buy-actions .quantity.ts-qty { height: 50px; }
.ts-single .ts-buy-actions .quantity.ts-qty input.qty { width: 48px; height: auto; border-top: none; border-bottom: none; border-radius: 0; }

/* ============================================================
   CART
   ============================================================ */
.ts-page { padding-block: 40px; }
.ts-page-title { font-size: 28px; margin: 0 0 22px; }
.ts-cart { padding-block: 40px; }
.ts-cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 32px; align-items: start; }

/* Item list as clean rows */
.ts-cart-main .woocommerce-cart-form { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); overflow: hidden; }
.ts-cart-main table.cart { width: 100%; border-collapse: collapse; margin: 0; }
.ts-cart-main table.cart thead { background: var(--ts-surface-2); border-bottom: 1px solid var(--ts-line); }
.ts-cart-main table.cart thead th { text-align: left; padding: 13px 16px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: var(--ts-muted); }
.ts-cart-main table.cart thead th.product-remove, .ts-cart-main table.cart thead th.product-thumbnail { width: 0; }
.ts-cart-main table.cart td { padding: 16px; border-bottom: 1px solid var(--ts-line); vertical-align: middle; }
.ts-cart-main .cart_item:last-child td { border-bottom: 1px solid var(--ts-line); }
.ts-cart-main td.product-thumbnail img { width: 64px; height: 64px; object-fit: contain; background: var(--ts-surface-2); border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); }
.ts-cart-main td.product-name { font-weight: 700; font-size: 14.5px; }
.ts-cart-main td.product-name a { color: var(--ts-ink); }
.ts-cart-main td.product-name a:hover { color: var(--ts-primary); }
.ts-cart-main td.product-price, .ts-cart-main td.product-subtotal { font-weight: 700; color: var(--ts-ink); white-space: nowrap; }
.ts-cart-main td.product-subtotal { font-size: 15px; }
.ts-cart-main td.product-remove { text-align: center; }
.ts-cart-main a.remove { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ts-surface-2); color: var(--ts-danger) !important; font-size: 18px; line-height: 1; text-decoration: none; }
.ts-cart-main a.remove:hover { background: var(--ts-danger); color: #fff !important; }

/* Actions row: coupon + update */
.ts-cart-main td.actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 14px; justify-content: space-between; background: var(--ts-surface-2); }
.ts-cart-main td.actions .coupon { flex: 1 1 auto; }
.ts-coupon-toggle { background: none; border: none; padding: 0; color: var(--ts-primary); font-weight: 700; font-size: 13.5px; cursor: pointer; font-family: inherit; }
.ts-coupon-field { display: none; gap: 8px; margin-top: 10px; max-width: 380px; }
.ts-coupon-field.open { display: flex; }
.ts-coupon-field input.input-text { flex: 1; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); padding: 10px 12px; font-size: 13.5px; background: var(--ts-surface); outline: none; }
.ts-coupon-field input.input-text:focus { border-color: var(--ts-primary); }
.ts-coupon-field .button, .ts-update-cart { background: var(--ts-dark); color: #fff; border: none; border-radius: var(--ts-radius-sm); padding: 10px 18px; font-weight: 700; font-size: 13.5px; cursor: pointer; font-family: inherit; }
.ts-coupon-field .button:hover, .ts-update-cart:hover { background: #000; }
.ts-update-cart[disabled] { opacity: .45; cursor: not-allowed; }

/* Order summary (totals) */
.ts-cart-side { position: sticky; top: 100px; }
.ts-cart-side .cart_totals { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); padding: 22px; }
.ts-cart-side .cart_totals > h2 { font-size: 17px; margin: 0 0 16px; }
.ts-cart-side table { width: 100%; border-collapse: collapse; }
.ts-cart-side table th, .ts-cart-side table td { padding: 12px 0; border-bottom: 1px solid var(--ts-line); font-size: 14px; text-align: left; vertical-align: top; }
.ts-cart-side table th { font-weight: 600; color: var(--ts-ink-2); }
.ts-cart-side table td { text-align: right; font-weight: 700; color: var(--ts-ink); }
.ts-cart-side .order-total th, .ts-cart-side .order-total td { border-bottom: none; font-size: 18px; padding-top: 16px; }
.ts-cart-side .order-total td { color: var(--ts-primary); font-weight: 800; }
.ts-cart-side .wc-proceed-to-checkout { margin-top: 18px; padding: 0; }
.ts-cart-side .wc-proceed-to-checkout .checkout-button { display: flex; align-items: center; justify-content: center; width: 100%; background: var(--ts-primary); color: var(--ts-primary-ink); border: none; border-radius: var(--ts-radius-sm); padding: 15px; font-family: var(--ts-font-body); font-weight: 800; font-size: 15px; letter-spacing: .3px; transition: background .15s, transform .15s; }
.ts-cart-side .wc-proceed-to-checkout .checkout-button:hover { background: var(--ts-primary-2); color: #06210f; transform: translateY(-1px); }
.ts-cart-side .shipping-calculator-button { color: var(--ts-primary); font-weight: 600; }

/* Cross-sells */
.ts-cross-sells { margin-top: 48px; }
.ts-cross-sells > h2 { font-size: 20px; text-transform: uppercase; letter-spacing: .5px; margin: 0 0 22px; }

/* ============================================================
   CHECKOUT
   ============================================================ */
.ts-checkout { padding-block: 40px; }
.ts-checkout-grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 40px; align-items: start; }
.ts-checkout-main .col2-set { display: block; }
.ts-checkout-main .col2-set .col-1, .ts-checkout-main .col2-set .col-2 { width: auto; float: none; margin-bottom: 8px; }
.ts-checkout-main h3 { font-size: 18px; margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--ts-line); }
.ts-checkout-main .woocommerce-billing-fields, .ts-checkout-main .woocommerce-shipping-fields, .ts-checkout-main .woocommerce-additional-fields { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); padding: 24px; margin-bottom: 20px; }

/* Modern form fields */
.woocommerce-checkout .form-row, .ts-cart .form-row { margin: 0 0 16px; padding: 0; }
.woocommerce-checkout .form-row label, .ts-checkout-main label { display: block; font-size: 13px; font-weight: 600; color: var(--ts-ink-2); margin-bottom: 6px; }
.woocommerce-checkout .form-row .required { color: var(--ts-danger); border: none; }
.woocommerce-checkout .input-text, .woocommerce-checkout select, .woocommerce-checkout textarea, .ts-checkout-main .input-text {
	width: 100%; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); padding: 12px 14px; font-family: var(--ts-font-body); font-size: 14px; color: var(--ts-ink); background: var(--ts-surface); outline: none; transition: border-color .15s, box-shadow .15s;
}
.woocommerce-checkout .input-text:focus, .woocommerce-checkout select:focus, .woocommerce-checkout textarea:focus { border-color: var(--ts-primary); box-shadow: 0 0 0 3px rgba(31,174,76,.12); }
.woocommerce-checkout .select2-container--default .select2-selection--single,
.woocommerce-account .select2-container--default .select2-selection--single { border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); height: 46px; background: var(--ts-surface); }
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered,
.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 44px; padding-left: 14px; color: var(--ts-ink); }
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow,
.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px; }
.select2-dropdown { border-color: var(--ts-line); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--ts-primary); }
.select2-container--default .select2-search--dropdown .select2-search__field { border-color: var(--ts-line); border-radius: var(--ts-radius-sm); }

/* Colombia checkout: document rows + persisted doc table */
.ts-doc-table { width: 100%; border-collapse: collapse; margin-top: 14px; }
.ts-doc-table th, .ts-doc-table td { text-align: left; padding: 10px 12px; border: 1px solid var(--ts-line); font-size: 13.5px; }
.ts-doc-table th { background: var(--ts-surface-2); color: var(--ts-ink); width: 42%; }
body.woocommerce-checkout #billing_country_field .woocommerce-input-wrapper { color: var(--ts-ink-2); font-weight: 600; }

/* Sticky order summary */
.ts-checkout-aside { position: sticky; top: 100px; }
.ts-checkout-summary { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); padding: 24px; }
.ts-checkout-summary #order_review_heading { font-size: 18px; margin: 0 0 18px; }
.ts-checkout-summary table.shop_table { width: 100%; border-collapse: collapse; }
.ts-checkout-summary table.shop_table th, .ts-checkout-summary table.shop_table td { padding: 11px 0; border-bottom: 1px solid var(--ts-line); font-size: 13.5px; text-align: left; }
.ts-checkout-summary table.shop_table td { text-align: right; font-weight: 700; color: var(--ts-ink); }
.ts-checkout-summary .cart_item .product-name { font-weight: 600; color: var(--ts-ink-2); }
.ts-checkout-summary .product-name .product-quantity { color: var(--ts-muted); font-weight: 400; }
.ts-checkout-summary tfoot .order-total th, .ts-checkout-summary tfoot .order-total td { font-size: 18px; padding-top: 15px; border-bottom: none; }
.ts-checkout-summary tfoot .order-total td { color: var(--ts-primary); font-weight: 800; }

/* Payment box */
.ts-checkout-summary #payment { background: none; border-radius: 0; margin-top: 6px; }
.ts-checkout-summary #payment ul.payment_methods { border: none; padding: 12px 0 0; margin: 0; list-style: none; }
.ts-checkout-summary #payment ul.payment_methods li { border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); padding: 12px 14px; margin-bottom: 8px; }
.ts-checkout-summary #payment ul.payment_methods li input { accent-color: var(--ts-primary); }
.ts-checkout-summary #payment ul.payment_methods label { display: inline; font-weight: 700; color: var(--ts-ink); }
.ts-checkout-summary #payment .payment_box { background: var(--ts-surface-2); border-radius: var(--ts-radius-sm); font-size: 13px; color: var(--ts-ink-2); margin-top: 10px; }
.ts-checkout-summary #payment .payment_box::before { display: none; }
.ts-checkout-summary #place_order { display: block; width: 100%; background: var(--ts-primary); color: var(--ts-primary-ink); border: none; border-radius: var(--ts-radius-sm); padding: 16px; font-family: var(--ts-font-body); font-weight: 800; font-size: 16px; letter-spacing: .3px; cursor: pointer; margin-top: 8px; transition: background .15s, transform .15s; }
.ts-checkout-summary #place_order:hover { background: var(--ts-primary-2); color: #06210f; transform: translateY(-1px); }
.ts-checkout-summary .woocommerce-terms-and-conditions-wrapper { font-size: 12.5px; color: var(--ts-muted); margin-bottom: 8px; }

/* Trust badges under place order */
.ts-checkout-trust { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--ts-line); }
.ts-ct-badge { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; font-size: 11px; font-weight: 600; color: var(--ts-ink-2); }
.ts-ct-badge svg { color: var(--ts-primary); }

/* Distraction-free checkout */
body.ts-lean-checkout .ts-topbar, body.ts-lean-checkout .ts-nav, body.ts-lean-checkout .head-wa, body.ts-lean-checkout .head-account, body.ts-lean-checkout .ts-search, body.ts-lean-checkout .minicart-toggle, body.ts-lean-checkout .menu-toggle, body.ts-lean-checkout .ts-wa-fab { display: none !important; }
body.ts-lean-checkout .site-head { position: static; }
body.ts-lean-checkout .head-inner { justify-content: center; }
body.ts-lean-checkout .site-foot .foot-grid, body.ts-lean-checkout .site-foot .foot-bottom > *:not(:first-child) { display: none; }
body.ts-lean-checkout .site-foot .wrap { padding-block: 24px; }
body.ts-lean-checkout .site-foot { margin-top: 40px; }

/* ============================================================
   THANK YOU / ORDER RECEIVED
   ============================================================ */
.ts-thankyou { max-width: 720px; margin-inline: auto; padding-block: 50px; }
.ts-ty-hero { text-align: center; margin-bottom: 30px; }
.ts-ty-icon { width: 76px; height: 76px; border-radius: 50%; background: #e8fbee; color: var(--ts-primary); display: flex; align-items: center; justify-content: center; margin: 0 auto 18px; }
.ts-ty-hero--failed .ts-ty-icon { background: #fdeaee; color: var(--ts-danger); }
.ts-ty-hero h1 { font-size: 28px; margin: 0 0 10px; }
.ts-ty-lead, .ts-ty-lead p { color: var(--ts-ink-2); font-size: 15px; margin: 0; }
.ts-ty-overview { list-style: none; margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--ts-line); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); overflow: hidden; }
.ts-ty-overview li { background: var(--ts-surface); padding: 16px 18px; font-size: 12.5px; color: var(--ts-muted); text-transform: uppercase; letter-spacing: .3px; font-weight: 700; }
.ts-ty-overview li strong { display: block; margin-top: 5px; font-size: 15px; color: var(--ts-ink); text-transform: none; letter-spacing: 0; }
.ts-ty-wa { text-align: center; margin: 8px 0 30px; }
.ts-ty-wa .btn { display: inline-flex; gap: 9px; }
.ts-ty-wa .btn svg { color: #25d366; }
.ts-thankyou .woocommerce-order-details, .ts-thankyou .woocommerce-customer-details { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); padding: 24px; margin-bottom: 20px; }
.ts-thankyou .woocommerce-order-details h2, .ts-thankyou .woocommerce-customer-details h2 { font-size: 17px; margin: 0 0 14px; }
.ts-thankyou table.shop_table { width: 100%; border-collapse: collapse; }
.ts-thankyou table.shop_table th, .ts-thankyou table.shop_table td { padding: 11px 0; border-bottom: 1px solid var(--ts-line); text-align: left; font-size: 14px; }
.ts-thankyou table.shop_table td { text-align: right; }

/* ============================================================
   MY ACCOUNT — Login / Register
   ============================================================ */
.ts-auth { display: grid; gap: 24px; }
.ts-auth--split { grid-template-columns: 1fr 1fr; }
.ts-auth--single { max-width: 460px; margin-inline: auto; grid-template-columns: 1fr; }
.ts-auth-col { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); padding: 30px; }
.ts-auth-col--register { background: var(--ts-surface-2); }
.ts-auth-col h2 { font-size: 21px; margin: 0 0 6px; }
.ts-auth-sub { color: var(--ts-muted); font-size: 13.5px; margin: 0 0 22px; }
.ts-auth .form-row { margin: 0 0 16px; display: block; }
.ts-auth label { display: block; font-size: 13px; font-weight: 600; color: var(--ts-ink-2); margin-bottom: 6px; }
.ts-auth .required { color: var(--ts-danger); border: none; }
.ts-auth-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }
.ts-auth-actions .woocommerce-form-login__rememberme { margin: 0; display: flex; align-items: center; gap: 7px; font-weight: 500; color: var(--ts-ink-2); }
.ts-auth-actions .woocommerce-form-login__rememberme input { accent-color: var(--ts-primary); width: 15px; height: 15px; }
.ts-auth-lost { font-size: 13px; font-weight: 600; color: var(--ts-primary); }
.ts-auth .button { width: 100%; justify-content: center; }

/* Shared modern inputs for account + auth */
.ts-auth .input-text,
.woocommerce-account .woocommerce form .input-text,
.woocommerce-account .woocommerce form select,
.woocommerce-account .woocommerce form textarea {
	width: 100%; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); padding: 12px 14px; font-family: var(--ts-font-body); font-size: 14px; color: var(--ts-ink); background: var(--ts-surface); outline: none; transition: border-color .15s, box-shadow .15s;
}
.ts-auth .input-text:focus,
.woocommerce-account .woocommerce form .input-text:focus,
.woocommerce-account .woocommerce form select:focus,
.woocommerce-account .woocommerce form textarea:focus { border-color: var(--ts-primary); box-shadow: 0 0 0 3px rgba(31,174,76,.12); }

/* ============================================================
   MY ACCOUNT — Dashboard (sidebar + content)
   ============================================================ */
.ts-account { display: grid; grid-template-columns: 250px 1fr; gap: 28px; align-items: start; }
.woocommerce-MyAccount-navigation { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); padding: 10px; position: sticky; top: 100px; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-MyAccount-navigation li a { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border-radius: var(--ts-radius-sm); font-weight: 600; font-size: 14px; color: var(--ts-ink-2); }
.woocommerce-MyAccount-navigation li a svg { width: 18px; height: 18px; color: var(--ts-muted); flex-shrink: 0; }
.woocommerce-MyAccount-navigation li a:hover { background: var(--ts-surface-2); color: var(--ts-ink); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--ts-primary); color: #fff; }
.woocommerce-MyAccount-navigation li.is-active a svg { color: #fff; }

.woocommerce-MyAccount-content { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); padding: 28px; min-width: 0; }
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3 { margin-top: 0; }
.woocommerce-MyAccount-content p { color: var(--ts-ink-2); }
.woocommerce-MyAccount-content a:not(.button) { color: var(--ts-primary); font-weight: 600; }

/* Account tables (orders, downloads) */
.woocommerce-account .woocommerce-orders-table, .woocommerce-account table.shop_table { width: 100%; border-collapse: collapse; margin: 0; }
.woocommerce-account table.shop_table thead th { text-align: left; padding: 12px 14px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--ts-muted); border-bottom: 1px solid var(--ts-line); }
.woocommerce-account table.shop_table td { padding: 14px; border-bottom: 1px solid var(--ts-line); font-size: 14px; color: var(--ts-ink-2); }
.woocommerce-account table.shop_table td.woocommerce-orders-table__cell-order-number a { font-weight: 700; }

/* Account buttons + address cards */
.woocommerce-account .button, .ts-account .button {
	display: inline-flex; align-items: center; justify-content: center; background: var(--ts-primary); color: var(--ts-primary-ink);
	border: none; border-radius: var(--ts-radius-sm); padding: 10px 16px; font-family: var(--ts-font-body); font-weight: 700; font-size: 13.5px; cursor: pointer; transition: background .15s;
}
.woocommerce-account .button:hover, .ts-account .button:hover { background: var(--ts-primary-2); color: #06210f; }
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 8px; }
.woocommerce-account .woocommerce-Address { border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); padding: 20px; background: var(--ts-surface-2); }
.woocommerce-account .woocommerce-Address address { font-style: normal; line-height: 1.7; color: var(--ts-ink-2); font-size: 14px; }
.woocommerce-account .woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.woocommerce-account .woocommerce-Address-title h3 { margin: 0; font-size: 16px; }

/* ============================================================
   BRAND ARCHIVE
   ============================================================ */
.ts-brand-archive { padding-block: 40px; }
.ts-brand-hero { display: flex; align-items: center; gap: 26px; background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); padding: 28px 30px; margin-bottom: 26px; }
.ts-brand-hero .ts-brand-logo { flex-shrink: 0; width: 130px; height: 90px; display: flex; align-items: center; justify-content: center; background: var(--ts-surface-2); border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); padding: 12px; }
.ts-brand-hero .ts-brand-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ts-brand-eyebrow { font-size: 12px; font-weight: 700; color: var(--ts-primary); letter-spacing: 1px; text-transform: uppercase; margin-bottom: 4px; }
.ts-brand-info h1 { font-size: 30px; margin: 0 0 8px; }
.ts-brand-desc { color: var(--ts-ink-2); font-size: 14px; line-height: 1.6; max-width: 720px; }
.ts-brand-desc p { margin: 0 0 6px; }
.ts-brand-count { margin-top: 10px; font-size: 13.5px; color: var(--ts-muted); }
.ts-brand-count strong { color: var(--ts-ink); }

/* ============================================================
   SINGLE POST + STANDARD PAGES
   ============================================================ */
.ts-single-post { max-width: 760px; padding-block: 44px; }
.ts-article-head { margin-bottom: 26px; }
.ts-article-cats { margin-bottom: 12px; }
.ts-article-cats a { font-size: 12px; font-weight: 700; color: var(--ts-primary); text-transform: uppercase; letter-spacing: .3px; }
.ts-article-title { font-size: 34px; line-height: 1.15; margin: 0 0 14px; }
.ts-article-meta { color: var(--ts-muted); font-size: 13.5px; display: flex; gap: 8px; align-items: center; }
.ts-article-thumb { margin: 0 0 28px; }
.ts-article-thumb img { width: 100%; height: auto; border-radius: var(--ts-radius); }
.ts-article-body { font-size: 16px; line-height: 1.75; color: var(--ts-ink-2); }
.ts-article-body h2 { font-size: 24px; margin: 32px 0 12px; color: var(--ts-ink); }
.ts-article-body h3 { font-size: 20px; margin: 26px 0 10px; color: var(--ts-ink); }
.ts-article-body p { margin: 0 0 18px; }
.ts-article-body img { max-width: 100%; height: auto; border-radius: var(--ts-radius-sm); }
.ts-article-body a { color: var(--ts-primary); font-weight: 600; }
.ts-article-body blockquote { border-left: 3px solid var(--ts-primary); margin: 22px 0; padding: 4px 0 4px 20px; color: var(--ts-ink); font-style: italic; }
.ts-article-tags { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 8px; }
.ts-article-tags a { background: var(--ts-surface-2); border: 1px solid var(--ts-line); border-radius: 100px; padding: 5px 13px; font-size: 12.5px; color: var(--ts-ink-2); }
.ts-article-nav { display: flex; justify-content: space-between; gap: 16px; margin: 40px 0; padding-top: 24px; border-top: 1px solid var(--ts-line); font-weight: 600; font-size: 14px; }
.ts-article-nav .ts-article-next { text-align: right; margin-left: auto; }

.ts-page-title { font-size: 30px; }
.ts-page .ts-page, .ts-page > *:first-child { margin-top: 0; }

/* ============================================================
   404
   ============================================================ */
.ts-404 { text-align: center; max-width: 560px; padding-block: 70px; margin-inline: auto; }
.ts-404-code { font-family: var(--ts-font-head); font-size: 96px; font-weight: 700; line-height: 1; color: var(--ts-primary); }
.ts-404 h1 { font-size: 26px; margin: 8px 0 12px; }
.ts-404 p { color: var(--ts-muted); font-size: 15px; margin: 0 0 26px; line-height: 1.6; }
.ts-404-search { display: flex; max-width: 440px; margin: 0 auto 22px; }
.ts-404-search input[type=search] { flex: 1; border: 1px solid var(--ts-line); border-right: none; border-radius: 8px 0 0 8px; padding: 12px 16px; font-size: 14px; outline: none; background: var(--ts-surface); }
.ts-404-search input[type=search]:focus { border-color: var(--ts-primary); }
.ts-404-search button { background: var(--ts-primary); color: #fff; border: none; border-radius: 0 8px 8px 0; padding: 0 22px; font-weight: 700; cursor: pointer; }
.ts-404-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ============================================================
   ABOUT PAGE (dark)
   ============================================================ */
.ts-about { background: #0a0a0a; color: #f2f2f0; }
.ts-about .wrap { max-width: 1140px; }
.ts-about h1, .ts-about h2 { font-family: var(--ts-font-head); color: #ffffff; }
.ts-ab-h2 { font-size: 26px; margin: 0 0 28px; text-align: center; }

/* Hero */
.ts-about-hero { text-align: center; padding: 70px 0 58px; background: radial-gradient(circle at 20% 30%, rgba(62,207,110,0.10), transparent 60%); }
.ts-ab-badge { display: inline-block; background: #132015; border: 1px solid #24402a; color: #3ecf6e; font-size: 12.5px; font-weight: 700; letter-spacing: 1.5px; padding: 6px 14px; border-radius: 100px; margin-bottom: 20px; }
.ts-about-hero h1 { font-size: 44px; margin: 0 auto 18px; max-width: 760px; line-height: 1.15; }
.ts-about-hero p { color: #b5b5b0; font-size: 16px; max-width: 600px; margin: 0 auto; line-height: 1.6; }

/* Story: sedes carousel + text */
.ts-about-story { padding: 0 0 64px; }
.ts-story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.ts-sedes { position: relative; height: 452px; border-radius: 16px; overflow: hidden; border: 1px solid #232323; box-shadow: 0 20px 50px rgba(0,0,0,0.45); background: #101410; }
.ts-sede-slide { position: absolute; inset: 0; opacity: 0; z-index: 1; transition: opacity .7s ease; }
.ts-sede-slide.is-active { opacity: 1; z-index: 2; }
.ts-sede-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ts-sede-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(7,9,7,0.97) 0%, rgba(7,9,7,0.82) 30%, rgba(7,9,7,0.25) 62%, rgba(7,9,7,0.05) 100%); }
.ts-sede-body { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px 28px 26px; }
.ts-sede-chip { display: inline-flex; align-items: center; gap: 6px; background: rgba(62,207,110,0.16); border: 1px solid rgba(62,207,110,0.42); color: #3ecf6e; font-size: 11px; font-weight: 700; letter-spacing: 1.3px; padding: 5px 12px; border-radius: 100px; margin-bottom: 14px; }
.ts-sede-chip svg { color: #3ecf6e; }
.ts-sede-name { font-family: var(--ts-font-head); font-weight: 700; font-size: 23px; color: #fff; margin-bottom: 12px; line-height: 1.18; }
.ts-sede-line { display: flex; align-items: flex-start; gap: 9px; color: #dcdcd8; font-size: 14px; line-height: 1.5; margin-bottom: 8px; }
.ts-sede-line svg { color: #3ecf6e; flex-shrink: 0; margin-top: 1px; }
.ts-sede-wa { display: inline-flex; align-items: center; gap: 8px; background: #3ecf6e; color: #0a0a0a; padding: 11px 20px; border-radius: 8px; font-weight: 700; font-size: 13.5px; margin-top: 10px; }
.ts-sede-wa:hover { background: #35bb61; color: #0a0a0a; }
.ts-sede-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 38px; height: 38px; border-radius: 50%; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.28); color: #fff; cursor: pointer; z-index: 5; font-size: 18px; line-height: 1; display: flex; align-items: center; justify-content: center; }
.ts-sede-nav:hover { background: rgba(0,0,0,0.75); }
.ts-sede-prev { left: 14px; }
.ts-sede-next { right: 14px; }
.ts-sede-dots { position: absolute; top: 16px; right: 16px; display: flex; gap: 6px; z-index: 5; }
.ts-sede-dot { height: 7px; width: 7px; border-radius: 100px; background: rgba(255,255,255,0.5); border: none; cursor: pointer; transition: all .3s; padding: 0; }
.ts-sede-dot.is-active { width: 26px; background: #3ecf6e; }
.ts-story-text h2 { font-size: 26px; margin: 0 0 16px; }
.ts-story-text p { color: #b5b5b0; font-size: 15px; line-height: 1.75; margin: 0 0 16px; }
.ts-story-text p:last-child { margin-bottom: 0; }
.ts-story-text strong { color: #f2f2f0; }

/* Steps */
.ts-about-steps { padding: 0 0 64px; }
.ts-steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ts-step-card { background: #131313; border: 1px solid #232323; border-radius: 12px; padding: 26px; position: relative; }
.ts-step-num { position: absolute; top: 14px; right: 20px; font-family: var(--ts-font-head); color: #24402a; font-size: 44px; font-weight: 700; line-height: 1; }
.ts-step-ico { width: 38px; height: 38px; border-radius: 8px; background: #132015; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.ts-step-ico svg { color: #3ecf6e; }
.ts-step-title { font-weight: 700; font-size: 15.5px; margin-bottom: 6px; color: #f2f2f0; }
.ts-step-desc { color: #8a8a85; font-size: 13.5px; line-height: 1.5; }

/* Stats */
.ts-about-stats { background: #111111; border-top: 1px solid #1e1e1e; border-bottom: 1px solid #1e1e1e; padding: 44px 0; }
.ts-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; text-align: center; }
.ts-stat-num { font-family: var(--ts-font-head); font-size: 38px; font-weight: 700; color: #3ecf6e; line-height: 1; }
.ts-stat-label { color: #8a8a85; font-size: 14px; margin-top: 8px; }

/* Define / trust */
.ts-about-define { padding: 56px 0; }
.ts-define-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.ts-define-card { background: #131313; border: 1px solid #232323; border-radius: 12px; padding: 24px; }
.ts-define-ico { width: 36px; height: 36px; border-radius: 8px; background: #132015; display: flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.ts-define-ico svg { color: #3ecf6e; }
.ts-define-title { font-weight: 700; font-size: 15px; margin-bottom: 6px; color: #f2f2f0; }
.ts-define-desc { font-size: 13px; color: #8a8a85; line-height: 1.5; }

/* Wholesale banner */
.ts-about-wholesale { padding: 0 0 56px; }
.ts-wholesale-banner { background: #132015; border: 1px solid #24402a; border-radius: 16px; padding: 40px 44px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.ts-wh-title { font-family: var(--ts-font-head); font-weight: 700; font-size: 22px; margin-bottom: 6px; color: #fff; }
.ts-wh-text { color: #a8c9ae; font-size: 14.5px; }
.ts-wh-btn { background: #3ecf6e; color: #0a0a0a; padding: 14px 24px; border-radius: 8px; font-weight: 700; flex-shrink: 0; }
.ts-wh-btn:hover { background: #35bb61; color: #0a0a0a; }

/* Testimonials */
.ts-about-testi { padding: 0 0 64px; }
.ts-testi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ts-testi-card { background: #131313; border: 1px solid #232323; border-radius: 12px; padding: 24px; }
.ts-testi-quote { color: #d4d4d0; font-size: 14.5px; line-height: 1.6; margin: 0 0 16px; }
.ts-testi-name { font-weight: 700; font-size: 13.5px; color: #3ecf6e; }

/* ============================================================
   WOOCOMMERCE NOTICES (message / error / info)
   Theme ships its own — default WC styles are dequeued.
   ============================================================ */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-error, .woocommerce-info {
	list-style: none; margin: 0 0 20px; padding: 14px 18px; border-radius: var(--ts-radius-sm);
	font-size: 14px; line-height: 1.5; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px;
	border: 1px solid var(--ts-line); background: var(--ts-surface);
}
.woocommerce-message { background: #e8fbee; border-color: #bfe9cc; color: #17743a; }
.woocommerce-info { background: var(--ts-chip); border-color: var(--ts-chip-border); color: var(--ts-ink-2); }
.woocommerce-error { background: #fdeaee; border-color: #f5c6d0; color: var(--ts-danger); flex-direction: column; align-items: flex-start; }
.woocommerce-error li { margin: 0; }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button, .woocommerce a.button.wc-forward {
	display: inline-flex; align-items: center; margin-left: auto; background: var(--ts-primary); color: var(--ts-primary-ink);
	border: none; border-radius: var(--ts-radius-sm); padding: 9px 16px; font-family: var(--ts-font-body);
	font-weight: 700; font-size: 13px; cursor: pointer; text-decoration: none;
}
.woocommerce-message .button:hover, .woocommerce-info .button:hover, .woocommerce a.button.wc-forward:hover { background: var(--ts-primary-2); color: #06210f; }
.demo_store, .woocommerce-store-notice { display: none !important; }

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.ts-contact { padding-block: 48px; }
.ts-contact-head { max-width: 660px; margin: 0 0 36px; }
.ts-contact-badge { position: static; background: var(--ts-chip); border-color: var(--ts-chip-border); color: var(--ts-primary); }
.ts-contact-head h1 { font-size: 34px; margin: 12px 0 12px; }
.ts-contact-head p { color: var(--ts-ink-2); font-size: 15px; line-height: 1.6; margin: 0; }
.ts-contact-grid { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 40px; align-items: start; }
.ts-contact-intro { color: var(--ts-ink-2); font-size: 14.5px; line-height: 1.6; margin-bottom: 18px; }
.ts-contact-channel { display: flex; align-items: center; gap: 12px; background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); padding: 13px 16px; margin-bottom: 12px; color: var(--ts-ink); transition: border-color .15s; }
.ts-contact-channel:hover { border-color: var(--ts-primary); }
.ts-contact-channel span small { display: block; font-size: 11.5px; color: var(--ts-muted); }
.ts-contact-channel span b { font-size: 14.5px; word-break: break-word; }
.ts-contact-ic { width: 42px; height: 42px; border-radius: 50%; background: var(--ts-chip); color: var(--ts-primary); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ts-contact-wa .ts-contact-ic { color: #25d366; }
.ts-contact-sedes-title { font-size: 18px; margin: 24px 0 10px; }
.ts-contact-sedes { list-style: none; margin: 0; padding: 0; }
.ts-contact-sedes li { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--ts-line); }
.ts-contact-sedes li:last-child { border-bottom: none; }
.ts-contact-sedes li .ts-contact-ic { width: 34px; height: 34px; }
.ts-contact-sedes b { display: block; font-size: 14px; color: var(--ts-ink); margin-bottom: 2px; }
.ts-contact-sedes span { display: block; font-size: 13px; color: var(--ts-muted); line-height: 1.5; }
.ts-contact-form-wrap { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); padding: 28px; }
.ts-contact-form label { display: block; margin-bottom: 16px; }
.ts-contact-form label > span { display: block; font-size: 13px; font-weight: 600; color: var(--ts-ink-2); margin-bottom: 6px; }
.ts-contact-form input, .ts-contact-form textarea { width: 100%; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-sm); padding: 12px 14px; font-family: var(--ts-font-body); font-size: 14px; color: var(--ts-ink); background: var(--ts-surface); outline: none; transition: border-color .15s, box-shadow .15s; }
.ts-contact-form input:focus, .ts-contact-form textarea:focus { border-color: var(--ts-primary); box-shadow: 0 0 0 3px rgba(31,174,76,.12); }
.ts-contact-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ts-contact-form .btn { width: 100%; justify-content: center; margin-top: 4px; }
.ts-contact-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 920px) {
	.ts-contact-grid { grid-template-columns: 1fr; gap: 28px; }
	.ts-contact-row { grid-template-columns: 1fr; }
	.ts-contact-head h1 { font-size: 28px; }
}

/* ============================================================
   SCROLL REVEAL ANIMATIONS (IntersectionObserver-driven)
   Elements fade/slide in when visible and reset when off-screen.
   Only active when the user hasn't asked for reduced motion.
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
	.ts-reveal { opacity: 0; transform: translateY(26px); transition: opacity .55s cubic-bezier(.22,.61,.36,1), transform .55s cubic-bezier(.22,.61,.36,1); }
	.ts-reveal.ts-in { opacity: 1; transform: none; }
	.ts-reveal-zoom { opacity: 0; transform: scale(.94); transition: opacity .5s ease, transform .5s ease; }
	.ts-reveal-zoom.ts-in { opacity: 1; transform: none; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (min-width: 1100px) {
	.ts-shop-main ul.products { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 1024px) {
	ul.products { grid-template-columns: repeat(2, 1fr); }
	.ts-cat-grid { grid-template-columns: repeat(2, 1fr); }
	.ts-mega-inner { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 920px) {
	.head-inner { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; height: auto; padding-block: 14px; }
	.brand { margin-right: auto; }
	.head-actions { gap: 6px; }
	.ts-search { display: none; order: 5; }
	.site-head.search-open .ts-search { display: flex; flex-basis: 100%; max-width: 100%; margin-top: 2px; }
	.search-toggle { display: inline-flex; }
	.menu-toggle { display: inline-flex; }
	.hide-mobile { display: none !important; }
	.ts-nav { display: none; }
	.ts-shop-bar { gap: 10px; }
	.ts-result-count { order: 3; flex-basis: 100%; }
	.ts-hero, .ts-hero-slide { min-height: 620px; }
	/* Text drops to the bottom so the product image up top stays visible. */
	.ts-hero-wrap { min-height: 620px; align-items: flex-end; padding-bottom: 44px; }
	.ts-hero-inner { max-width: 100%; }
	.ts-hero-overlay { background: linear-gradient(to top, rgba(10,10,10,.97) 0%, rgba(10,10,10,.8) 30%, rgba(10,10,10,.28) 62%, rgba(10,10,10,0) 100%); }
	.ts-hero-title { font-size: 34px; }
	.ts-benefit-grid { grid-template-columns: repeat(2, 1fr); }
	.ts-single .ts-product-top { grid-template-columns: 1fr; gap: 28px; }
	.ts-single .ts-product-top > .woocommerce-product-gallery { position: static; }
	.ts-cart-layout { grid-template-columns: 1fr; }
	.ts-cart-side { position: static; }
	.ts-checkout-grid { grid-template-columns: 1fr; gap: 24px; }
	.ts-checkout-aside { position: static; }
	.ts-auth--split { grid-template-columns: 1fr; }
	.ts-account { grid-template-columns: 1fr; }
	.woocommerce-MyAccount-navigation { position: static; }
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 4px; }
	.woocommerce-account .woocommerce-Addresses { grid-template-columns: 1fr; }
	.ts-brand-hero { flex-direction: column; text-align: center; align-items: center; }
	.ts-article-title { font-size: 27px; }
	.ts-story-grid { grid-template-columns: 1fr; gap: 28px; }
	.ts-define-grid { grid-template-columns: repeat(2, 1fr); }
	.ts-about-hero h1 { font-size: 34px; }
	.ts-wholesale-banner { flex-direction: column; text-align: center; align-items: stretch; }
	.ts-wh-btn { text-align: center; }
}
@media (max-width: 560px) {
	ul.products { grid-template-columns: 1fr; }
	ul.products.ts-carousel { display: flex; }
	.foot-col--wide .foot-links { column-count: 1; }
	.ts-cat-grid { grid-template-columns: 1fr; }
	.ts-benefit-grid { grid-template-columns: 1fr; }
	.ts-hero-title { font-size: 27px; }
	.ts-car-btn { display: none; }
	.ts-key-specs ul { grid-template-columns: 1fr; }
	.ts-single .woocommerce-product-gallery ol.flex-control-thumbs li { width: 64px !important; }
	.ts-buy-actions .cart, .ts-buy-actions .ts-wa-quote { flex-basis: 100%; }
	/* Cart table → stacked cards on phones */
	.ts-cart-main table.cart thead { display: none; }
	.ts-cart-main table.cart tr.cart_item { display: grid; grid-template-columns: 64px 1fr auto; grid-template-areas: "thumb name remove" "thumb price qty" "thumb sub sub"; gap: 6px 12px; padding: 14px 16px; border-bottom: 1px solid var(--ts-line); align-items: center; }
	.ts-cart-main table.cart tr.cart_item td { border: none; padding: 0; }
	.ts-cart-main td.product-thumbnail { grid-area: thumb; }
	.ts-cart-main td.product-name { grid-area: name; }
	.ts-cart-main td.product-remove { grid-area: remove; }
	.ts-cart-main td.product-price { grid-area: price; font-weight: 600; color: var(--ts-muted); }
	.ts-cart-main td.product-price::before { content: attr(data-title) ": "; }
	.ts-cart-main td.product-quantity { grid-area: qty; justify-self: end; }
	.ts-cart-main td.product-subtotal { grid-area: sub; }
	.ts-cart-main td.actions { grid-template-columns: 1fr; }
	.ts-checkout-trust { grid-template-columns: 1fr; gap: 12px; }
	.ts-ct-badge { flex-direction: row; justify-content: center; font-size: 13px; }
	.ts-ty-overview { grid-template-columns: 1fr; }
	.ts-steps-grid, .ts-stats-grid, .ts-define-grid, .ts-testi-grid { grid-template-columns: 1fr; }
	.ts-about-hero h1 { font-size: 28px; }
	.ts-sedes { height: 420px; }
}
