/**
 * Zenova catalog design tokens and base layout.
 *
 * @package Zenova_Child
 */

:root {
	--zenova-color-text: #1a1a1a;
	--zenova-color-muted: #666666;
	--zenova-color-border: #e5e5e5;
	--zenova-color-surface: #ffffff;
	--zenova-color-accent: #1f4e79;
	/*
	 * Primary-button fill. Deliberately NOT the accent: the header quote
	 * button and every in-page "Request a Quote" must read as the same
	 * control, so both sides consume these two tokens. Change here, not in
	 * components.css / site-header.css, or the two will drift apart again.
	 */
	--zenova-color-button: #111111;
	--zenova-color-button-hover: #333333;
	--zenova-space-xs: 0.5rem;
	--zenova-space-sm: 1rem;
	--zenova-space-md: 1.5rem;
	--zenova-space-lg: 2.5rem;
	--zenova-space-xl: 4rem;
	--zenova-breadcrumb-header-gap: 2rem;
	--zenova-radius: 8px;
	--zenova-container-width: 1200px;
}

.zenova-container {
	width: min(100% - 2rem, var(--zenova-container-width));
	margin-inline: auto;
}

.zenova-catalog .site-main {
	padding-block-start: 0;
	padding-block-end: var(--zenova-space-lg);
}

.zenova-section + .zenova-section {
	margin-top: var(--zenova-space-xl);
}

.zenova-section__title {
	margin: 0 0 var(--zenova-space-md);
	font-size: clamp(1.5rem, 2vw, 2rem);
	line-height: 1.2;
	color: var(--zenova-color-text);
}

.zenova-section__intro {
	margin: 0 0 var(--zenova-space-md);
	color: var(--zenova-color-muted);
	max-width: 70ch;
}

.zenova-empty-state {
	margin: 0;
	padding: var(--zenova-space-md);
	border: 1px dashed var(--zenova-color-border);
	border-radius: var(--zenova-radius);
	color: var(--zenova-color-muted);
	background: #fafafa;
}

.zenova-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Shared catalog breadcrumb (landing + archive) */
.zenova-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.8125rem;
	line-height: 1.4;
	letter-spacing: 0.02em;
}

.zenova-breadcrumb__item {
	display: inline-flex;
	align-items: center;
	color: var(--zenova-color-muted);
}

.zenova-breadcrumb__item + .zenova-breadcrumb__item::before {
	content: "/";
	margin-inline: 0.625rem;
	color: var(--zenova-color-muted);
}

.zenova-breadcrumb__link {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.zenova-breadcrumb__link:hover,
.zenova-breadcrumb__link:focus-visible {
	color: var(--zenova-color-text);
	text-decoration: underline;
}

.zenova-breadcrumb__current {
	color: var(--zenova-color-text);
	font-weight: 500;
}

/* Astra sets #primary { padding-top: 0 } — use breadcrumb margin instead. */
body.zenova-catalog-page--archive .zenova-breadcrumb,
body.zenova-single-product-page .zenova-breadcrumb--product,
body.zenova-my-list-page .zenova-breadcrumb--my-list {
	margin-top: var(--zenova-breadcrumb-header-gap);
}

body.zenova-my-list-page .zenova-breadcrumb--my-list {
	margin-bottom: var(--zenova-breadcrumb-header-gap);
}

/* RAQ breadcrumb sits inside the grey hero-section whose top padding already
   provides the header gap — only add spacing below it, matching single product. */
body.zenova-request-a-quote-page .zenova-breadcrumb--request-a-quote {
	margin-bottom: var(--zenova-breadcrumb-header-gap);
}

body.zenova-contact-us-page .zenova-breadcrumb--contact-us {
	margin-bottom: var(--zenova-breadcrumb-header-gap);
}
