/* ==========================================================================
   INDUVRA — SHOP / CATEGORY / SEARCH CATALOG
   ========================================================================== */

.induvra-catalog {
	padding-block: var(--space-lg) var(--space-2xl);
}

.induvra-catalog__header {
	margin-bottom: var(--space-lg);
}

.induvra-catalog__title {
	margin: 0 0 var(--space-xs);
	font-size: var(--font-size-h1);
	line-height: var(--line-tight);
}

.induvra-catalog__header .term-description,
.induvra-catalog__header .woocommerce-product-details__short-description,
.induvra-catalog__header p {
	max-width: 64ch;
	margin: 0;
	color: var(--color-text-secondary);
}

/* ---- Layout -------------------------------------------------------- */
.induvra-catalog__layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: var(--space-xl);
	align-items: start;
}

.induvra-filters {
	position: sticky;
	top: 96px;
}

/* ---- Toolbar ------------------------------------------------------- */
.induvra-catalog__toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-md);
	margin-bottom: var(--space-lg);
}

.induvra-catalog__filter-toggle {
	display: none;
	align-items: center;
	gap: var(--space-xs);
	padding: 10px var(--space-sm);
	background: none;
	border: var(--border-light);
	border-radius: var(--radius-small);
	color: var(--color-text);
	font-size: var(--font-size-small);
	font-weight: var(--weight-medium);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	cursor: pointer;
}

.induvra-catalog__filter-toggle .induvra-icon {
	width: 16px;
	height: 16px;
}

.induvra-catalog__count {
	flex: 1 1 auto;
}

.induvra-catalog__count .woocommerce-result-count {
	margin: 0;
	color: var(--color-text-secondary);
	font-size: var(--font-size-small);
}

.induvra-catalog__sort .woocommerce-ordering {
	margin: 0;
}

.induvra-catalog__sort select {
	min-width: 210px;
	padding: 12px var(--space-sm);
	border: var(--border-light);
	border-radius: var(--radius-small);
	background-color: var(--color-white);
	color: var(--color-text);
	font-size: var(--font-size-small);
}

/* ---- Filter panel -------------------------------------------------- */
.induvra-filter__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--space-sm);
}

.induvra-filter__head-title {
	font-size: var(--font-size-small);
	font-weight: var(--weight-semi);
	letter-spacing: var(--tracking-wider);
	text-transform: uppercase;
}

.induvra-filter__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	background: none;
	border: 0;
	color: var(--color-text);
	cursor: pointer;
}

.induvra-filter__group {
	border-top: var(--border-light);
	padding: var(--space-md) 0;
}

.induvra-filter__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: var(--font-size-small);
	font-weight: var(--weight-semi);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	cursor: pointer;
	list-style: none;
}

.induvra-filter__summary::-webkit-details-marker {
	display: none;
}

.induvra-filter__summary::after {
	content: "+";
	color: var(--color-text-secondary);
	font-weight: var(--weight-normal);
}

.induvra-filter__group[open] .induvra-filter__summary::after {
	content: "\2013";
}

.induvra-filter__options {
	list-style: none;
	margin: var(--space-sm) 0 0;
	padding: 0;
}

.induvra-filter__option {
	display: flex;
	align-items: center;
	gap: var(--space-xs);
	padding: 5px 0;
	color: var(--color-text-secondary);
	font-size: var(--font-size-small);
	cursor: pointer;
}

.induvra-filter__option:hover {
	color: var(--color-primary);
}

.induvra-filter__price {
	display: flex;
	align-items: center;
	gap: var(--space-xs);
	margin-top: var(--space-sm);
}

.induvra-filter__price input {
	width: 100%;
	min-width: 0;
}

.induvra-filter__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin-top: var(--space-md);
	padding-top: var(--space-md);
	border-top: var(--border-light);
}

.induvra-filter__actions .induvra-btn {
	flex: 1 1 auto;
}

/* ---- Empty state --------------------------------------------------- */
.induvra-catalog__empty {
	padding: var(--space-2xl) 0;
	text-align: center;
}

.induvra-catalog__empty-title {
	margin: 0 0 var(--space-xs);
	font-size: var(--font-size-h3);
}

.induvra-catalog__empty-text {
	margin: 0 auto var(--space-md);
	max-width: 44ch;
	color: var(--color-text-secondary);
}

/* ---- Category intro (banner + child categories) -------------------- */
.induvra-catalog__banner {
	margin: 0 0 var(--space-xl);
	aspect-ratio: 21 / 9;
	overflow: hidden;
	background-color: var(--color-surface);
}

.induvra-catalog__banner img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.induvra-subcategories {
	margin: 0 0 var(--space-2xl);
}

.induvra-subcategories__title {
	margin: 0 0 var(--space-lg);
	font-size: var(--font-size-h3);
}

/* ---- Drawer backdrop (mobile) -------------------------------------- */
.induvra-filters__backdrop {
	display: none;
}

/* ---- Filter drawer (mobile / tablet) ------------------------------- */
@media (max-width: 1023px) {
	.induvra-catalog__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.induvra-catalog__toolbar {
		flex-wrap: nowrap;
	}

	.induvra-catalog__filter-toggle {
		display: inline-flex;
	}

	.induvra-catalog__count {
		display: none;
	}

	.induvra-filters {
		position: fixed;
		top: 0;
		right: 0;
		z-index: var(--z-drawer);
		width: min(360px, 90vw);
		height: 100%;
		padding: var(--space-md);
		background-color: var(--color-white);
		box-shadow: -12px 0 40px rgba(23, 33, 43, 0.14);
		overflow-y: auto;
		transform: translateX(100%);
		visibility: hidden;
		transition: transform var(--transition-normal), visibility 0s linear var(--transition-normal);
	}

	.induvra-filters.is-open {
		transform: translateX(0);
		visibility: visible;
		transition-delay: 0s;
	}

	.induvra-filters__backdrop {
		display: block;
		position: fixed;
		inset: 0;
		z-index: calc(var(--z-drawer) - 1);
		border: 0;
		background-color: rgba(23, 33, 43, 0.4);
		opacity: 0;
		visibility: hidden;
		transition: opacity var(--transition-normal), visibility 0s linear var(--transition-normal);
	}

	body.induvra-filters-open .induvra-filters__backdrop {
		opacity: 1;
		visibility: visible;
		transition-delay: 0s;
	}

	body.induvra-filters-open {
		overflow: hidden;
	}
}

@media (max-width: 767px) {
	.induvra-catalog__sort select {
		min-width: 0;
	}

	.induvra-catalog__banner {
		aspect-ratio: 16 / 9;
	}
}
