/* =========================================================================
   Lextito International, WooCommerce (catalogue mode)
   No cart, no checkout, no prices. "Request a Quote" replaces "Add to Cart".
   ========================================================================= */

/* ---------- Breadcrumbs ---------- */
.lx-crumbs {
	padding-block: 1.1rem;
	border-bottom: 1px solid var(--lx-line);
	background: var(--lx-white);
	font-size: 0.75rem;
}
.lx-crumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--lx-gray);
}
.lx-crumbs__list li { margin: 0; display: inline-flex; align-items: center; gap: 0.5rem; }
.lx-crumbs__list a { color: var(--lx-gray); text-decoration: none; }
.lx-crumbs__list a:hover { color: var(--lx-ink); }
.lx-crumbs__list svg { width: 11px; height: 11px; opacity: 0.45; }
.lx-crumbs__list [aria-current] { color: var(--lx-ink); font-weight: 500; }

/* ---------- Category hero ---------- */
.lx-cat-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(340px, 40vw, 480px);
	padding-block: clamp(2.5rem, 5vw, 4rem);
	background: var(--lx-black);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}
.lx-cat-hero__media { position: absolute; inset: 0; z-index: -2; }
.lx-cat-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.lx-cat-hero::after {
	content: "";
	position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(96deg, rgba(13,13,13,0.92) 0%, rgba(13,13,13,0.68) 46%, rgba(13,13,13,0.30) 100%),
		linear-gradient(180deg, rgba(13,13,13,0.25), rgba(13,13,13,0.72));
}
.lx-cat-hero__inner { position: relative; z-index: 1; width: 100%; }
.lx-cat-hero__count {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--lx-accent);
}
.lx-cat-hero h1 { color: #fff; max-width: 22ch; margin-bottom: 1rem; }
.lx-cat-hero p { max-width: 58ch; color: rgba(255,255,255,0.80); margin: 0; font-size: 1.0625rem; }

/* ---------- Subcategory cards ---------- */
.lx-subcats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.lx-subcat {
	display: flex;
	flex-direction: column;
	background: var(--lx-white);
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-radius);
	overflow: hidden;
	text-decoration: none;
	transition: border-color var(--lx-dur) var(--lx-ease), box-shadow var(--lx-dur) var(--lx-ease);
	height: 100%;
}
.lx-subcat:hover { border-color: var(--lx-line-strong); box-shadow: var(--lx-shadow); }
.lx-subcat__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--lx-surface-alt); }
.lx-subcat__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--lx-ease); }
.lx-subcat:hover .lx-subcat__media img { transform: scale(1.04); }
.lx-subcat__body { padding: 1.1rem 1.2rem 1.25rem; display: flex; flex-direction: column; gap: 0.4rem; flex: 1; }
.lx-subcat__body h3 { margin: 0; font-size: 1rem; }
.lx-subcat__body p { margin: 0; font-size: 0.8125rem; color: var(--lx-gray); line-height: 1.5; }
.lx-subcat__count { margin-top: auto; padding-top: 0.6rem; font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--lx-gray-light); }

/* ---------- Toolbar ---------- */
.lx-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 1.5rem;
	border-bottom: 1px solid var(--lx-line);
	margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}
.lx-toolbar__count { font-size: 0.8125rem; color: var(--lx-gray); }
.lx-toolbar__count strong { color: var(--lx-ink); font-weight: 600; }
.lx-toolbar__right { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.lx-sort { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.8125rem; color: var(--lx-gray); }
.lx-sort select {
	width: auto;
	min-width: 190px;
	padding: 0.6rem 2.4rem 0.6rem 0.85rem;
	font-size: 0.8125rem;
	border-radius: var(--lx-radius-sm);
	background-position: right 0.75rem center;
}
.lx-filter-tags { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.lx-filter-tags a {
	display: inline-flex;
	padding: 0.4rem 0.8rem;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--lx-gray);
	background: var(--lx-white);
	border: 1px solid var(--lx-line);
	border-radius: 999px;
	text-decoration: none;
	transition: all var(--lx-dur) var(--lx-ease);
}
.lx-filter-tags a:hover { border-color: var(--lx-ink); color: var(--lx-ink); }
.lx-filter-tags a.is-active { background: var(--lx-black); border-color: var(--lx-black); color: #fff; }

/* ---------- Product grid ---------- */
.lx-products { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: clamp(1.25rem, 2.2vw, 2rem); }
.lx-product {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--lx-white);
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-radius);
	overflow: hidden;
	transition: border-color var(--lx-dur) var(--lx-ease), box-shadow var(--lx-dur) var(--lx-ease);
}
.lx-product:hover { border-color: var(--lx-line-strong); box-shadow: var(--lx-shadow); }
.lx-product__media { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: var(--lx-surface-alt); }
.lx-product__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 650ms var(--lx-ease); }
.lx-product:hover .lx-product__media img { transform: scale(1.045); }
.lx-product__cat {
	position: absolute;
	left: 0.9rem;
	top: 0.9rem;
	padding: 0.28rem 0.55rem;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--lx-ink);
	background: rgba(255,255,255,0.94);
	border: 1px solid var(--lx-line);
	border-radius: 3px;
}
.lx-product__body { display: flex; flex-direction: column; gap: 0.5rem; padding: 1.25rem 1.25rem 1.35rem; flex: 1; }
.lx-product__title { margin: 0; font-size: 1.0625rem; line-height: 1.35; }
.lx-product__title a { color: inherit; text-decoration: none; }
.lx-product__title a::after { content: ""; position: absolute; inset: 0; }
.lx-product__excerpt { margin: 0; font-size: 0.875rem; line-height: 1.6; color: var(--lx-gray); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lx-product__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: auto;
	padding-top: 0.9rem;
	border-top: 1px solid var(--lx-line);
}
.lx-product__moq { font-size: 0.6875rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--lx-gray-light); }
.lx-product__more {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--lx-ink);
}
.lx-product__more svg { width: 13px; height: 13px; transition: transform var(--lx-dur) var(--lx-ease); }
.lx-product:hover .lx-product__more { color: var(--lx-accent-hover); }
.lx-product:hover .lx-product__more svg { transform: translateX(3px); }

.lx-empty {
	padding: clamp(2.5rem, 5vw, 4rem);
	text-align: center;
	border: 1px dashed var(--lx-line-strong);
	border-radius: var(--lx-radius);
	background: var(--lx-surface-alt);
}

/* ---------- Pagination ---------- */
.lx-pagination { display: flex; justify-content: center; margin-top: clamp(2rem, 4vw, 3rem); }
.lx-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	margin: 0 0.2rem;
	padding: 0 0.75rem;
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--lx-ink);
	background: var(--lx-white);
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-radius-sm);
	text-decoration: none;
}
.lx-pagination .page-numbers:hover { border-color: var(--lx-ink); }
.lx-pagination .page-numbers.current { background: var(--lx-black); border-color: var(--lx-black); color: #fff; }
.lx-pagination .page-numbers.dots { border-color: transparent; background: transparent; }

/* ---------- Category SEO block ---------- */
.lx-cat-seo {
	margin-top: clamp(2.5rem, 5vw, 4rem);
	padding-top: clamp(2rem, 4vw, 3rem);
	border-top: 1px solid var(--lx-line);
	display: grid;
	grid-template-columns: 0.55fr 1.45fr;
	gap: clamp(1.5rem, 4vw, 3.5rem);
}
.lx-cat-seo h2 { font-size: clamp(1.25rem, 1.8vw, 1.5rem); margin: 0; }
.lx-cat-seo__body { color: var(--lx-gray); font-size: 0.9375rem; line-height: 1.75; max-width: 74ch; }
.lx-cat-seo__body p { margin-bottom: 1rem; }
.lx-cat-seo__body p:last-child { margin-bottom: 0; }

/* ---------- Related ---------- */
.lx-related { margin-top: clamp(2.5rem, 5vw, 4rem); }
.lx-related__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.lx-related__card {
	display: flex; gap: 0.9rem; align-items: center;
	padding: 0.9rem;
	background: var(--lx-white);
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-radius);
	text-decoration: none;
	transition: border-color var(--lx-dur) var(--lx-ease), box-shadow var(--lx-dur) var(--lx-ease);
}
.lx-related__card:hover { border-color: var(--lx-line-strong); box-shadow: var(--lx-shadow); }
.lx-related__card img { width: 62px; height: 62px; object-fit: cover; border-radius: var(--lx-radius-sm); flex: none; background: var(--lx-surface-alt); }
.lx-related__card span { font-size: 0.875rem; font-weight: 600; line-height: 1.35; color: var(--lx-ink); }

/* ---------- Single product ---------- */
.lx-product-single { padding-block: clamp(2rem, 4vw, 3.5rem) clamp(2.5rem, 5vw, 4rem); }
.lx-product-single__grid {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: clamp(1.75rem, 4vw, 4rem);
	align-items: start;
}
.lx-gallery { position: sticky; top: calc(var(--lx-header-h) + 24px); }
.lx-gallery__main {
	position: relative;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-radius);
	overflow: hidden;
	background: var(--lx-surface-alt);
	aspect-ratio: 1 / 1;
}
.lx-gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.lx-gallery__thumbs { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0.6rem; margin-top: 0.75rem; }
.lx-gallery__thumb {
	position: relative;
	padding: 0;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--lx-surface-alt);
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-radius-sm);
	cursor: pointer;
	transition: border-color var(--lx-dur) var(--lx-ease);
}
.lx-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.lx-gallery__thumb:hover,
.lx-gallery__thumb[aria-current="true"] { border-color: var(--lx-ink); }

.lx-summary__cat {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.85rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--lx-accent-hover);
	text-decoration: none;
}
.lx-summary h1 { font-size: clamp(1.75rem, 3vw, 2.5rem); margin-bottom: 0.75rem; }
.lx-summary__tagline {
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--lx-gray);
	margin-bottom: 1.5rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--lx-line);
}
.lx-summary__desc { font-size: 0.9375rem; line-height: 1.75; color: var(--lx-gray); }
.lx-summary__desc p { margin-bottom: 1rem; }

.lx-specs { margin: 1.75rem 0 0; border-top: 1px solid var(--lx-line); }
.lx-specs h2 { font-size: 0.6875rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--lx-gray); margin: 1.5rem 0 0.85rem; font-family: var(--lx-font-body); font-weight: 600; }
.lx-specs table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.lx-specs th,
.lx-specs td { padding: 0.7rem 0; border-bottom: 1px solid var(--lx-line); vertical-align: top; text-align: left; }
.lx-specs th {
	width: 38%;
	font-weight: 600;
	color: var(--lx-ink);
	letter-spacing: 0.01em;
}
.lx-specs td { color: var(--lx-gray); }

.lx-quote-panel {
	margin-top: 1.75rem;
	padding: clamp(1.15rem, 2vw, 1.5rem);
	background: var(--lx-surface-alt);
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-radius);
	display: grid;
	gap: 0.85rem;
}
.lx-quote-panel__actions { display: grid; gap: 0.6rem; }
.lx-quote-panel__note {
	display: flex; align-items: flex-start; gap: 0.5rem;
	font-size: 0.75rem; color: var(--lx-gray); margin: 0; line-height: 1.5;
}
.lx-quote-panel__note svg { width: 14px; height: 14px; flex: none; margin-top: 2px; color: var(--lx-accent-hover); }

/* Why choose cards under the fold */
.lx-why-cards { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; }
.lx-why-card {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	padding: 1.15rem;
	background: var(--lx-white);
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-radius);
}
.lx-why-card svg { width: 20px; height: 20px; flex: none; color: var(--lx-accent); margin-top: 2px; }
.lx-why-card strong { display: block; font-family: var(--lx-font-heading); font-size: 0.875rem; font-weight: 600; margin-bottom: 0.2rem; }
.lx-why-card span { font-size: 0.8125rem; color: var(--lx-gray); line-height: 1.5; }

/* Product description tabs */
.lx-pdp-section { margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--lx-line); }
.lx-pdp-section > h2 { font-size: clamp(1.25rem, 1.8vw, 1.5rem); margin-bottom: 1.25rem; }

/* Hide native WC cruft in catalogue mode */
.lx-catalogue .woocommerce-result-count,
.lx-catalogue .woocommerce-ordering,
.lx-catalogue .price,
.lx-catalogue .add_to_cart_button,
.lx-catalogue .button.product_type_simple,
.lx-catalogue .onsale,
.lx-catalogue .woocommerce-message,
.lx-catalogue .woocommerce-info { display: none !important; }
.lx-catalogue .star-rating { display: none !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.lx-products { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.lx-subcats { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.lx-product-single__grid { grid-template-columns: 1fr; }
	.lx-gallery { position: static; }
	.lx-cat-seo { grid-template-columns: 1fr; }
	.lx-related__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.lx-why-cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 640px) {
	.lx-products { grid-template-columns: 1fr; }
	.lx-related__grid { grid-template-columns: 1fr; }
	.lx-why-cards { grid-template-columns: 1fr; }
	.lx-toolbar { flex-direction: column; align-items: flex-start; }
	.lx-cat-hero { min-height: 300px; }
	body.single-product { padding-bottom: 76px; }
}

@media (max-width: 480px) {
	.lx-subcats { grid-template-columns: 1fr; }
	.lx-gallery__thumbs { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
