/**
 * AF Commerce — shop archives.
 *
 * The archive is a two-column grid whose first column is the filter sidebar.
 * Below the tablet breakpoint the sidebar becomes an off-canvas panel without
 * moving in the DOM, so source order stays sensible for screen readers and the
 * markup is identical between the two presentations.
 */

/* -------------------------------------------------------------------------
 * 1. Archive header
 * ---------------------------------------------------------------------- */

.af-archive-header {
	margin-bottom: var(--af-space-lg);
}

.af-archive-header__media {
	margin-bottom: var(--af-space-lg);
	overflow: hidden;
	border-radius: var(--af-radius-lg);
}

.af-archive-header__media img {
	width: 100%;
	max-height: 320px;
	object-fit: cover;
}

.af-archive-header__title {
	margin: 0 0 var(--af-space-xs);
	font-size: var(--af-fs-h2);
}

.af-archive-header__meta,
.af-archive-header__description {
	margin: 0;
	color: var(--af-muted);
	font-size: var(--af-fs-small);
}

.af-archive-header--banner .af-archive-header__text {
	max-width: 68ch;
}

/* Term intro copy with a read-more toggle. Collapsed text is clipped, never
   removed, so it is present for crawlers and assistive technology alike. */
.af-term-content {
	max-width: 78ch;
	margin-block: var(--af-space-lg);
	color: var(--af-secondary);
	font-size: var(--af-fs-small);
}

.af-term-content__body {
	position: relative;
	overflow: hidden;
}

.af-term-content__body.is-clamped {
	max-height: 5.4em;
	-webkit-mask-image: linear-gradient(to bottom, #000 60%, transparent);
	mask-image: linear-gradient(to bottom, #000 60%, transparent);
}

.af-term-content__toggle {
	margin-top: var(--af-space-xs);
	padding: 0;
	border: 0;
	background: none;
	color: var(--af-accent);
	font-size: var(--af-fs-small);
	font-weight: 600;
	text-decoration: underline;
}

.af-term-content--intro {
	margin-block-start: 0;
}

.af-term-content--bottom {
	margin-block-start: var(--af-space-xxl);
	padding-block-start: var(--af-space-lg);
	border-top: 1px solid var(--af-border);
}

.af-links--subcategories {
	display: flex;
	flex-wrap: wrap;
	gap: var(--af-space-xs);
	margin-block: var(--af-space-md);
}

/* -------------------------------------------------------------------------
 * 2. Layout
 * ---------------------------------------------------------------------- */

.af-shop {
	display: grid;
	gap: var(--af-space-xl);
	align-items: start;
	padding-block-end: var(--af-space-xxl);
}

.af-shop__results {
	min-width: 0;
}

@media (min-width: 1100px) {
	.af-shop--sidebar-left {
		grid-template-columns: var(--af-sidebar-width) minmax(0, 1fr);
	}

	.af-shop--sidebar-right {
		grid-template-columns: minmax(0, 1fr) var(--af-sidebar-width);
	}

	.af-shop--sidebar-right .af-filters-wrap {
		order: 2;
	}
}

/* -------------------------------------------------------------------------
 * 3. Toolbar
 * ---------------------------------------------------------------------- */

.af-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--af-space-md);
	padding-block: var(--af-space-md);
	border-block: 1px solid var(--af-border);
	margin-bottom: var(--af-space-lg);
}

.af-toolbar__count {
	color: var(--af-muted);
	font-size: var(--af-fs-small);
}

.af-toolbar__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--af-space-xs);
	margin: 0;
	padding: 0;
	list-style: none;
}

.af-toolbar__clear {
	color: var(--af-accent);
	font-size: var(--af-fs-caption);
}

.af-toolbar__controls {
	display: flex;
	align-items: center;
	gap: var(--af-space-sm);
	margin-inline-start: auto;
}

.af-toolbar .woocommerce-ordering select {
	min-height: 40px;
	padding-block: 6px;
}

.af-view-switch {
	display: inline-flex;
	border: 1px solid var(--af-border);
	border-radius: var(--af-radius-sm);
	overflow: hidden;
}

.af-view-switch__btn {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 0;
	background: transparent;
	color: var(--af-muted);
}

.af-view-switch__btn[aria-pressed="true"] {
	background: var(--af-primary);
	color: #fff;
}

/* -------------------------------------------------------------------------
 * 4. Results
 * ---------------------------------------------------------------------- */

.af-shop__results.is-loading {
	opacity: 0.5;
	pointer-events: none;
	transition: opacity 0.2s ease;
}

.woocommerce-notices-wrapper:empty {
	display: none;
}

.woocommerce-result-count,
.woocommerce-ordering {
	margin: 0;
}

/* -------------------------------------------------------------------------
 * 5. Brand and category link clusters below results
 * ---------------------------------------------------------------------- */

.af-links {
	margin-block: var(--af-space-xl);
}

.af-links__title {
	margin: 0 0 var(--af-space-sm);
	font-size: var(--af-fs-small);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.af-links__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--af-space-xs);
}

.af-link-clusters {
	display: grid;
	gap: var(--af-space-lg);
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	margin-block: var(--af-space-xl);
	padding-block-start: var(--af-space-lg);
	border-top: 1px solid var(--af-border);
}

/* -------------------------------------------------------------------------
 * 6. FAQ blocks on archives
 * ---------------------------------------------------------------------- */

.af-faq {
	margin-block: var(--af-space-xl);
}

.af-faq__title {
	margin-bottom: var(--af-space-md);
	font-size: var(--af-fs-h3);
}

.af-faq__list {
	display: grid;
	gap: var(--af-space-sm);
	max-width: 78ch;
}

.af-faq__item {
	border: 1px solid var(--af-border);
	border-radius: var(--af-radius-md);
	background: var(--af-card);
}

.af-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--af-space-md);
	padding: var(--af-space-md);
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.af-faq__question::-webkit-details-marker {
	display: none;
}

.af-faq__question::after {
	content: "";
	flex: none;
	width: 9px;
	height: 9px;
	border: 1px solid currentColor;
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg) translateY(-2px);
	transition: transform 0.2s ease;
}

.af-faq__item[open] .af-faq__question::after {
	transform: rotate(-135deg) translateY(-2px);
}

.af-faq__answer {
	padding: 0 var(--af-space-md) var(--af-space-md);
	color: var(--af-secondary);
	font-size: var(--af-fs-small);
}

/* -------------------------------------------------------------------------
 * 7. Mobile
 * ---------------------------------------------------------------------- */

@media (max-width: 781px) {
	.af-toolbar {
		gap: var(--af-space-sm);
	}

	.af-toolbar__controls {
		width: 100%;
	}

	.af-toolbar .woocommerce-ordering,
	.af-toolbar .woocommerce-ordering select {
		width: 100%;
	}
}
