/* ==========================================================================
   Preterna — front-end stylesheet
   Only the bits theme.json can't express live here. Everything else is
   resolved by global styles. Keep this file lean.
   ========================================================================== */

/* ---------- Tokens (mirrored from theme.json for use in custom selectors) -- */
:root {
	--pt-ease: cubic-bezier(0.4, 0, 0.2, 1);
	--pt-dur-fast: 200ms;
	--pt-dur: 300ms;
	--pt-dur-slow: 500ms;
	--pt-blur: 30px;
	--pt-rail-w: 56px;
	--pt-machined-border: 1px solid rgba(142, 145, 146, 0.18);
	--pt-machined-border-strong: 1px solid rgba(142, 145, 146, 0.32);
	--pt-accent-glow: 0 0 0 1px rgba(140, 28, 42, 0.4), 0 0 40px rgba(140, 28, 42, 0.15);
}

/* ---------- Base reset extensions ---------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

html, body { min-height: 100%; }

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: "ss01" on, "ss02" on, "kern" on, "liga" on;
	background-color: var(--wp--preset--color--background);
	color: var(--wp--preset--color--foreground);
}

::selection {
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}

/* Focus ring — keyboard only, matches accent palette */
:where(a, button, input, select, textarea, [role="button"]):focus-visible {
	outline: 1px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

/* Image fallback / WP overrides */
img { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }

/* Smooth transitions for interactive elements */
a, button, .wp-block-button__link, input, select, textarea {
	transition:
		color var(--pt-dur) var(--pt-ease),
		background-color var(--pt-dur) var(--pt-ease),
		border-color var(--pt-dur) var(--pt-ease),
		box-shadow var(--pt-dur) var(--pt-ease),
		transform var(--pt-dur) var(--pt-ease),
		opacity var(--pt-dur) var(--pt-ease);
}

/* Reduced motion respect */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- Layout shell ------------------------------------------------- */
/* Do NOT isolate .wp-site-blocks — it would create a stacking context that
 * traps fixed children (like the sidebar drawer) below body-level overlays. */
.wp-site-blocks { position: relative; }

/* ---------- Sidebar drawer ---------------------------------------------- */
/* Hidden by default; slides in over content (overlay model). */
.preterna-rail {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	width: 320px;
	max-width: 88vw;
	height: 100vh;
	height: 100dvh; /* better on mobile chrome where 100vh includes URL bar */
	z-index: 50;
	padding: 0;
	display: flex;
	flex-direction: column;
	overflow: hidden; /* keep scroll inside the dedicated child */
	transform: translateX(-100%);
	visibility: hidden;
	transition:
		transform var(--pt-dur) var(--pt-ease),
		visibility 0s linear var(--pt-dur);
	will-change: transform;
	background-color: var(--wp--preset--color--base);
	border-right: 1px solid var(--wp--preset--color--outline-soft);
	box-shadow: 24px 0 60px rgba(0, 0, 0, 0.45);
}
.preterna-rail[hidden] { display: flex !important; }
body.rail-open .preterna-rail {
	transform: translateX(0);
	visibility: visible;
	transition:
		transform var(--pt-dur) var(--pt-ease),
		visibility 0s linear 0s;
}

/* Backdrop is a JS-injected sibling of the rail at body root so it doesn't
 * conflict with .wp-site-blocks' isolation stacking context. The rail's own
 * z-index always wins because the backdrop's z-index is lower and they live
 * in the same body-level stacking context. */
.preterna-rail-backdrop {
	position: fixed;
	inset: 0;
	z-index: 45;
	background-color: rgba(0, 0, 0, 0.32);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity var(--pt-dur) var(--pt-ease),
		visibility 0s linear var(--pt-dur);
}
body.rail-open .preterna-rail-backdrop {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition:
		opacity var(--pt-dur) var(--pt-ease),
		visibility 0s linear 0s;
}

/* ---------- Mini-cart drawer (slides in from the right) ----------------- */
.preterna-cart-toggle { position: relative; }
.preterna-cart-count {
	position: absolute;
	top: -5px;
	right: -6px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	border: 2px solid var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
	pointer-events: none;
}
.preterna-cart-count.is-empty { display: none; }
.preterna-cart-toggle.is-bumping { animation: pt-cart-bump 0.55s var(--pt-ease); }
@keyframes pt-cart-bump {
	0%, 100% { transform: scale(1); }
	28% { transform: scale(1.28); }
	52% { transform: scale(0.9); }
	74% { transform: scale(1.1); }
}

.preterna-cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: 408px;
	max-width: 92vw;
	height: 100vh;
	height: 100dvh;
	z-index: 55;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transform: translateX(100%);
	visibility: hidden;
	transition:
		transform var(--pt-dur) var(--pt-ease),
		visibility 0s linear var(--pt-dur);
	will-change: transform;
	background-color: var(--wp--preset--color--base);
	border-left: 1px solid var(--wp--preset--color--outline-soft);
	box-shadow: -24px 0 60px rgba(0, 0, 0, 0.45);
}
.preterna-cart-drawer[hidden] { display: flex !important; }
body.cart-open .preterna-cart-drawer {
	transform: translateX(0);
	visibility: visible;
	transition:
		transform var(--pt-dur) var(--pt-ease),
		visibility 0s linear 0s;
}
body.cart-open { overflow: hidden; }
.preterna-cart-backdrop {
	position: fixed;
	inset: 0;
	z-index: 52;
	background-color: rgba(0, 0, 0, 0.4);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity var(--pt-dur) var(--pt-ease),
		visibility 0s linear var(--pt-dur);
}
body.cart-open .preterna-cart-backdrop {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition:
		opacity var(--pt-dur) var(--pt-ease),
		visibility 0s linear 0s;
}

.preterna-cart-drawer__head {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 22px;
	border-bottom: 1px solid var(--wp--preset--color--outline-soft);
}
.preterna-cart-drawer__title {
	font-family: var(--wp--preset--font-family--mono);
	text-transform: uppercase;
	letter-spacing: 0.18em;
	font-size: 12px;
	color: var(--wp--preset--color--foreground);
}
.preterna-cart-drawer__close {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 8px;
	background: transparent;
	color: var(--wp--preset--color--foreground-muted);
	cursor: pointer;
	transition: color var(--pt-dur) var(--pt-ease), border-color var(--pt-dur) var(--pt-ease);
}
.preterna-cart-drawer__close:hover {
	color: var(--wp--preset--color--foreground);
	border-color: var(--wp--preset--color--accent);
}

.preterna-mini-cart__content {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
}
.preterna-mini-cart__items {
	flex: 1 1 auto;
	list-style: none;
	margin: 0;
	padding: 8px 14px;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.preterna-mini-cart__item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 8px;
	border-bottom: 1px solid var(--wp--preset--color--outline-soft);
	animation: pt-cart-item-in 0.4s var(--pt-ease) both;
}
.preterna-mini-cart__item.is-removing { opacity: 0.4; pointer-events: none; }
@keyframes pt-cart-item-in {
	from { opacity: 0; transform: translateX(14px); }
	to { opacity: 1; transform: none; }
}
.preterna-mini-cart__thumb {
	flex: 0 0 auto;
	width: 64px;
	height: 64px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--outline-soft);
}
.preterna-mini-cart__thumb img,
.preterna-mini-cart__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.preterna-mini-cart__info {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.preterna-mini-cart__name {
	color: var(--wp--preset--color--foreground);
	font-size: 13.5px;
	line-height: 1.3;
	text-decoration: none;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
a.preterna-mini-cart__name:hover { color: var(--wp--preset--color--accent); }
.preterna-mini-cart__meta {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	color: var(--wp--preset--color--foreground-muted);
}
.preterna-mini-cart__qty { color: var(--wp--preset--color--accent); }
.preterna-mini-cart__remove {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: var(--wp--preset--color--outline);
	cursor: pointer;
	transition: color var(--pt-dur) var(--pt-ease), background var(--pt-dur) var(--pt-ease);
}
.preterna-mini-cart__remove:hover {
	color: var(--wp--preset--color--on-accent);
	background: var(--wp--preset--color--accent);
}

.preterna-mini-cart__footer {
	flex: 0 0 auto;
	padding: 18px 22px 22px;
	border-top: 1px solid var(--wp--preset--color--outline-soft);
}
.preterna-mini-cart__subtotal {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 16px;
}
.preterna-mini-cart__subtotal > span:first-child {
	font-family: var(--wp--preset--font-family--mono);
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 11px;
	color: var(--wp--preset--color--foreground-muted);
}
.preterna-mini-cart__subtotal-val {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 17px;
	color: var(--wp--preset--color--foreground);
}
.preterna-mini-cart__actions { display: flex; gap: 10px; }
.preterna-mini-cart__btn {
	flex: 1 1 0;
	text-align: center;
	padding: 13px 14px;
	border-radius: 9px;
	font-family: var(--wp--preset--font-family--mono);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 11px;
	text-decoration: none;
	transition: background var(--pt-dur) var(--pt-ease), color var(--pt-dur) var(--pt-ease), border-color var(--pt-dur) var(--pt-ease);
}
.preterna-mini-cart__btn--ghost {
	border: 1px solid var(--wp--preset--color--outline);
	color: var(--wp--preset--color--foreground);
}
.preterna-mini-cart__btn--ghost:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}
.preterna-mini-cart__btn--solid {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	border: 1px solid var(--wp--preset--color--accent);
}
.preterna-mini-cart__btn--solid:hover {
	background: var(--wp--preset--color--foreground);
	border-color: var(--wp--preset--color--foreground);
}

.preterna-mini-cart__empty {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	text-align: center;
	padding: 60px 30px;
	color: var(--wp--preset--color--foreground-muted);
}
.preterna-mini-cart__empty svg { color: var(--wp--preset--color--outline); margin-bottom: 6px; }
.preterna-mini-cart__empty-title { color: var(--wp--preset--color--foreground); font-size: 16px; margin: 0; }
.preterna-mini-cart__empty-text { font-size: 13px; margin: 0; }
.preterna-mini-cart__shop {
	margin-top: 12px;
	padding: 11px 20px;
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 9px;
	color: var(--wp--preset--color--foreground);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--mono);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 11px;
	transition: background var(--pt-dur) var(--pt-ease), color var(--pt-dur) var(--pt-ease);
}
.preterna-mini-cart__shop:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}

/* Fly-to-cart ghost image */
.preterna-fly-ghost {
	position: fixed;
	z-index: 70;
	border-radius: 10px;
	object-fit: cover;
	pointer-events: none;
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.4);
	opacity: 0.95;
	transition:
		transform 0.65s cubic-bezier(0.5, -0.2, 0.3, 1),
		opacity 0.65s ease-in;
}

/* Add-to-cart button feedback (single product) */
.single-product form.cart .single_add_to_cart_button.is-loading {
	position: relative;
	color: transparent !important;
	pointer-events: none;
}
.single-product form.cart .single_add_to_cart_button.is-loading::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 16px;
	height: 16px;
	margin: -8px 0 0 -8px;
	border: 2px solid var(--wp--preset--color--on-accent);
	border-top-color: transparent;
	border-radius: 50%;
	animation: pt-spin 0.6s linear infinite;
}
@keyframes pt-spin { to { transform: rotate(360deg); } }
.single-product form.cart .single_add_to_cart_button.is-added {
	background-color: #1f7a4d !important;
	border-color: #1f7a4d !important;
	color: #fff !important;
}

.preterna-rail__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 22px 24px;
	border-bottom: 1px solid var(--wp--preset--color--outline-soft);
	flex: 0 0 auto;
}
.preterna-rail__title {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	font-weight: 500;
}
.preterna-rail__close {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--foreground-muted);
	cursor: pointer;
	width: 32px;
	height: 32px;
	display: grid;
	place-items: center;
	padding: 0;
}
.preterna-rail__close:hover { color: var(--wp--preset--color--accent); }

.preterna-rail__scroll {
	flex: 1 1 0;
	min-height: 0; /* critical for flex children with overflow */
	overflow-y: scroll; /* always reserve scrollbar gutter so layout doesn't jump */
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-y;
	padding: 20px 0;
	scrollbar-gutter: stable;
	scrollbar-width: thin;
	scrollbar-color: rgba(140, 28, 42, 0.6) rgba(20, 19, 19, 0.4);
}
.preterna-rail__scroll::-webkit-scrollbar { width: 10px; }
.preterna-rail__scroll::-webkit-scrollbar-track {
	background: rgba(20, 19, 19, 0.4);
}
.preterna-rail__scroll::-webkit-scrollbar-thumb {
	background: rgba(140, 28, 42, 0.6);
	border-radius: 6px;
	border: 2px solid var(--wp--preset--color--base);
}
.preterna-rail__scroll::-webkit-scrollbar-thumb:hover {
	background: var(--wp--preset--color--accent);
}

/* Category section */
.preterna-rail__cat {
	padding: 0 24px;
	margin-bottom: 6px;
	border-bottom: 1px dashed rgba(142, 145, 146, 0.18);
}
.preterna-rail__cat:last-of-type { border-bottom: 0; }

/* Category header — icon + name, also clickable to category page */
.preterna-rail__cat-head {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 0 10px;
	color: var(--wp--preset--color--foreground);
	font-family: var(--wp--preset--font-family--hanken);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	line-height: 1;
	transition: color var(--pt-dur) var(--pt-ease);
}
.preterna-rail__cat-head svg {
	flex: 0 0 20px;
	color: var(--wp--preset--color--accent);
	transition: transform var(--pt-dur) var(--pt-ease);
}
.preterna-rail__cat-head:hover { color: var(--wp--preset--color--accent); }
.preterna-rail__cat-head:hover svg { transform: scale(1.08); }
.preterna-rail__cat-head span { flex: 1 1 auto; }
.preterna-rail__cat-count {
	flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--outline);
	font-style: normal;
}

/* Subcategory list */
.preterna-rail__subs {
	list-style: none;
	margin: 0 0 14px;
	padding: 0 0 0 34px; /* indent to align under icon */
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.preterna-rail__subs li { margin: 0; }
.preterna-rail__subs a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	padding: 6px 0 6px 12px;
	color: var(--wp--preset--color--foreground-muted);
	font-family: var(--wp--preset--font-family--hanken);
	font-size: 13px;
	letter-spacing: 0.01em;
	line-height: 1.3;
	border-left: 1px solid var(--wp--preset--color--outline-soft);
	transition:
		color var(--pt-dur) var(--pt-ease),
		border-color var(--pt-dur) var(--pt-ease),
		padding-left var(--pt-dur) var(--pt-ease);
}
.preterna-rail__subs a em {
	flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	font-style: normal;
	color: var(--wp--preset--color--outline);
}
.preterna-rail__subs a:hover,
.preterna-rail__subs a:focus {
	color: var(--wp--preset--color--foreground);
	border-left-color: var(--wp--preset--color--accent);
	padding-left: 16px;
}

.preterna-rail__footer {
	flex: 0 0 auto;
	padding: 20px 24px;
	border-top: 1px solid var(--wp--preset--color--outline-soft);
}
.preterna-rail__cta {
	display: block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground);
	text-align: center;
	padding: 14px;
	background-color: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--outline-soft);
	transition: border-color var(--pt-dur) var(--pt-ease), color var(--pt-dur) var(--pt-ease);
}
.preterna-rail__cta:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

@media (max-width: 600px) {
	.preterna-rail { width: 280px; }
}

/* ---------- Rail toggle (hamburger) in header — borderless ------------- */
.preterna-rail-toggle {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--foreground);
	cursor: pointer;
	padding: 0;
	border-radius: 0;
	transition: color var(--pt-dur) var(--pt-ease), transform var(--pt-dur) var(--pt-ease);
}
.preterna-rail-toggle:hover,
.preterna-rail-toggle[aria-expanded="true"] {
	color: var(--wp--preset--color--accent);
}
.preterna-rail-toggle:focus { outline: none; }
.preterna-rail-toggle:focus-visible { outline: 1px solid var(--wp--preset--color--accent); outline-offset: 2px; }
.preterna-rail-toggle[aria-expanded="true"] { transform: rotate(90deg); }

/* ---------- HOME text link (in header, after logo) --------------------- */
.preterna-home-link {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.22em;
	font-weight: 600;
	color: var(--wp--preset--color--foreground);
	line-height: 1;
	padding: 6px 4px;
	border-bottom: 1px solid var(--wp--preset--color--accent);
	margin-left: 4px;
}
.preterna-home-link:hover,
.preterna-home-link:focus {
	color: var(--wp--preset--color--accent);
}

/* ---------- Search overlay --------------------------------------------- */
.preterna-search-overlay {
	position: fixed;
	inset: 0;
	z-index: 60;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	overflow-y: auto;
	background-color: rgba(14, 14, 14, 0.65);
	-webkit-backdrop-filter: blur(18px) saturate(140%);
	backdrop-filter: blur(18px) saturate(140%);
	opacity: 0;
	visibility: hidden;
	transition:
		opacity var(--pt-dur) var(--pt-ease),
		visibility 0s linear var(--pt-dur);
}
.preterna-search-overlay[hidden] { display: none !important; }
body.searching .preterna-search-overlay {
	opacity: 1;
	visibility: visible;
	transition:
		opacity var(--pt-dur) var(--pt-ease),
		visibility 0s linear 0s;
}
/* Lock background scroll while overlay is open. */
body.searching {
	overflow: hidden;
}

.preterna-search-overlay__inner {
	width: 100%;
	max-width: 880px;
	margin: 0 auto;
	padding: 80px 24px 80px;
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.preterna-search-overlay__head {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.preterna-search-overlay__form {
	display: flex;
	align-items: center;
	gap: 14px;
	background-color: var(--wp--preset--color--surface-low);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 12px;
	padding: 14px 18px;
	transition: border-color var(--pt-dur) var(--pt-ease), box-shadow var(--pt-dur) var(--pt-ease);
}
.preterna-search-overlay__form:focus-within {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 1px rgba(140, 28, 42, 0.5), 0 0 30px rgba(140, 28, 42, 0.18);
}
.preterna-search-overlay__form svg { color: var(--wp--preset--color--foreground-muted); flex: 0 0 auto; }
.preterna-search-overlay__form:focus-within svg { color: var(--wp--preset--color--accent); }

.preterna-search-overlay__form input[type="search"] {
	-webkit-appearance: none;
	appearance: none;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0;
	outline: none !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--foreground);
	font-family: var(--wp--preset--font-family--hanken);
	font-size: 22px;
	letter-spacing: 0.02em;
	padding: 4px 0;
	flex: 1;
	min-width: 0;
	line-height: 1.2;
}
.preterna-search-overlay__form input[type="search"]::placeholder {
	color: var(--wp--preset--color--foreground-muted);
	opacity: 0.7;
}
.preterna-search-overlay__form input[type="search"]::-webkit-search-decoration,
.preterna-search-overlay__form input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
	display: none;
}

.preterna-search-overlay__clear,
.preterna-search-overlay__close {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--foreground-muted);
	cursor: pointer;
	padding: 4px;
	display: grid;
	place-items: center;
}
.preterna-search-overlay__clear:hover,
.preterna-search-overlay__close:hover { color: var(--wp--preset--color--accent); }
.preterna-search-overlay__close kbd {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 4px;
	padding: 4px 8px;
	color: var(--wp--preset--color--foreground-muted);
}

.preterna-search-overlay__meta {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground-muted);
	margin: 0;
	min-height: 14px;
	line-height: 1.2;
}

/* Results grid */
.preterna-search-overlay__results {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1px;
	background-color: var(--wp--preset--color--outline-soft);
	border: 1px solid var(--wp--preset--color--outline-soft);
}
.preterna-search-overlay__results:empty { display: none; }
.preterna-result {
	display: grid;
	grid-template-columns: 84px 1fr auto;
	gap: 18px;
	align-items: center;
	padding: 14px 18px;
	background-color: var(--wp--preset--color--surface-low);
	color: var(--wp--preset--color--foreground);
	text-decoration: none;
	transition: background-color var(--pt-dur) var(--pt-ease);
}
.preterna-result:hover,
.preterna-result:focus,
.preterna-result.is-active {
	background-color: var(--wp--preset--color--surface-high);
	color: var(--wp--preset--color--foreground);
}
.preterna-result__thumb {
	width: 84px;
	height: 84px;
	background-color: var(--wp--preset--color--base);
	background-size: cover;
	background-position: center;
	box-shadow: inset 0 0 0 1px rgba(142, 145, 146, 0.18);
}
.preterna-result__body { min-width: 0; }
.preterna-result__cat {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin: 0 0 4px;
	line-height: 1;
}
.preterna-result__title {
	font-family: var(--wp--preset--font-family--hanken);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.02em;
	margin: 0 0 6px;
	line-height: 1.25;
	color: var(--wp--preset--color--foreground);
}
.preterna-result__title mark {
	background-color: rgba(140, 28, 42, 0.25);
	color: var(--wp--preset--color--foreground);
	padding: 0 2px;
	border-radius: 2px;
}
.preterna-result__excerpt {
	font-size: 13px;
	line-height: 1.4;
	color: var(--wp--preset--color--foreground-muted);
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.preterna-result__excerpt mark {
	background-color: rgba(140, 28, 42, 0.2);
	color: var(--wp--preset--color--foreground);
	padding: 0 2px;
	border-radius: 2px;
}
.preterna-result__tag-row {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 8px;
}
.preterna-result__tag {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground-muted);
	border: 1px solid var(--wp--preset--color--outline-soft);
	padding: 3px 7px;
	line-height: 1;
}
.preterna-result__tag.is-matched {
	color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
}
.preterna-result__price {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--foreground);
	letter-spacing: 0.04em;
	white-space: nowrap;
	padding-left: 16px;
	text-align: right;
}
.preterna-result__price del { color: var(--wp--preset--color--foreground-muted); margin-right: 4px; opacity: 0.6; }
.preterna-result__price ins { text-decoration: none; color: var(--wp--preset--color--accent); }

/* ======================================================================
 * Faceted search results — full filter rail + grid + infinite scroll
 * rendered inside the search overlay.
 * ==================================================================== */
/* Guarantee hidden helpers stay hidden even when they carry display:flex. */
#preterna-search-overlay [hidden] { display: none !important; }
/* Options with no matches in the current search/filter context drop out. */
#preterna-search-overlay .preterna-facet__item.is-zero { display: none; }

/* Full-screen overlay so the results grid can breathe across the viewport. */
.preterna-search-overlay__inner {
	max-width: none;
	padding: 52px clamp(20px, 4vw, 64px) 80px;
}

.preterna-search-results-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}

/* Five products per row on wide screens, stepping down gracefully.
 * The ID prefix outranks the shared `.preterna-shop__grid` auto-fill rule. */
#preterna-search-overlay .preterna-search__grid {
	margin-top: 2px;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
}
@media (max-width: 1280px) { #preterna-search-overlay .preterna-search__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 980px)  { #preterna-search-overlay .preterna-search__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 620px)  { #preterna-search-overlay .preterna-search__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.preterna-search-overlay__rail {
	position: sticky;
	top: 8px;
	align-self: start;
	max-height: calc(100vh - 130px);
	overflow-y: auto;
	background: var(--wp--preset--color--surface-low);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 12px;
	padding: 16px 16px 8px;
}
.preterna-search-overlay__rail::-webkit-scrollbar { width: 8px; }
.preterna-search-overlay__rail::-webkit-scrollbar-thumb { background: var(--wp--preset--color--surface-high); border-radius: 8px; }
.preterna-search-overlay__rail-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}
.preterna-search-overlay__rail-close {
	display: none;
	background: none;
	border: 0;
	color: var(--wp--preset--color--foreground);
	cursor: pointer;
	padding: 4px;
}

.preterna-search-overlay__main { min-width: 0; }
.preterna-search__active { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.preterna-search__noresults { padding: 40px 4px; }
.preterna-search__noresults p { margin: 0 0 8px; }
.preterna-search__filter-toggle { display: none; }

@media (max-width: 900px) {
	.preterna-search-results-layout { grid-template-columns: 1fr; }
	.preterna-search__filter-toggle {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		background: var(--wp--preset--color--surface-low);
		border: 1px solid var(--wp--preset--color--outline-soft);
		color: var(--wp--preset--color--foreground);
		font-family: var(--wp--preset--font-family--mono);
		font-size: 11px;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		padding: 10px 14px;
		border-radius: 8px;
		cursor: pointer;
		margin-bottom: 14px;
	}
	.preterna-search-overlay__rail {
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		width: min(86vw, 340px);
		max-height: none;
		border-radius: 0;
		z-index: 5;
		transform: translateX(-105%);
		transition: transform var(--pt-dur) var(--pt-ease);
	}
	body.search-filtering .preterna-search-overlay__rail { transform: none; }
	.preterna-search-overlay__rail-close { display: inline-flex; }
}

@media (max-width: 600px) {
	.preterna-result { grid-template-columns: 64px 1fr; padding: 12px; gap: 12px; }
	.preterna-result__thumb { width: 64px; height: 64px; }
	.preterna-result__price { grid-column: 1 / -1; padding-left: 0; text-align: left; }
	.preterna-search-overlay__inner { padding-top: 40px; padding-bottom: 40px; }
}

/* Empty and hint states */
.preterna-search-overlay__empty,
.preterna-search-overlay__hint {
	padding: 28px;
	background-color: var(--wp--preset--color--surface-low);
	border: 1px solid var(--wp--preset--color--outline-soft);
}
.preterna-search-overlay__empty p,
.preterna-search-overlay__hint p { margin: 0 0 12px; color: var(--wp--preset--color--foreground-muted); }
.preterna-search-overlay__empty p:last-child,
.preterna-search-overlay__hint p:last-child { margin-bottom: 0; }
.preterna-search-overlay__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px;
}
.preterna-search-overlay__chips button {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	background-color: transparent;
	color: var(--wp--preset--color--foreground);
	border: 1px solid var(--wp--preset--color--outline-soft);
	padding: 8px 14px;
	cursor: pointer;
	transition: border-color var(--pt-dur) var(--pt-ease), color var(--pt-dur) var(--pt-ease);
}
.preterna-search-overlay__chips button:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

/* Loading spinner */
.preterna-search-overlay.is-loading .preterna-search-overlay__meta::before {
	content: "Searching… ";
	color: var(--wp--preset--color--accent);
}

/* Header row: nav links + flags stay fixed; the search pill is the only
   element that flexes/shrinks, so nothing wraps or gets clipped on one line. */
.preterna-nav-left { flex: 0 0 auto; min-width: 0; }
.preterna-nav-right {
	flex: 1 1 auto;
	min-width: 0;
	justify-content: flex-end;
}

/* ---------- Top navigation (custom HTML in header) ---------------------- */
.preterna-top-nav {
	display: flex;
	flex-wrap: nowrap;
	gap: 28px;
	align-items: center;
	margin-left: 12px;
}
.preterna-top-nav a {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	font-weight: 500;
	color: var(--wp--preset--color--foreground-muted);
	line-height: 1;
	padding-block: 6px;
	border-bottom: 1px solid transparent;
	white-space: nowrap;
	flex: 0 0 auto;
}
.preterna-top-nav a:hover,
.preterna-top-nav a:focus {
	color: var(--wp--preset--color--foreground);
	border-bottom-color: var(--wp--preset--color--accent);
}
/* Temporary: Blog is unpublished — hide from every menu surface. */
.preterna-top-nav__link[data-nav="blog"],
.preterna-footer__meta a[href*="/blog"] {
	display: none !important;
}

.preterna-top-nav a.is-current {
	color: var(--wp--preset--color--foreground);
	border-bottom-color: var(--wp--preset--color--accent);
}
@media (max-width: 1240px) {
	.preterna-top-nav { gap: 18px; }
	.preterna-top-nav a { letter-spacing: 0.1em; font-size: 11px; }
}
@media (max-width: 900px) {
	.preterna-top-nav { display: none; }
}

/* ---------- Header search trigger (pill-shaped button) ------------------ */
.preterna-header-search {
	display: flex;
	align-items: center;
	gap: 12px;
	background-color: rgba(20, 19, 19, 0.55);
	-webkit-backdrop-filter: blur(20px);
	backdrop-filter: blur(20px);
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 999px;
	padding: 9px 14px 9px 18px;
	min-width: 0;
	max-width: 640px;
	flex: 1 1 auto;
	cursor: text;
	color: var(--wp--preset--color--foreground-muted);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1;
	text-align: left;
	transition:
		border-color var(--pt-dur) var(--pt-ease),
		box-shadow var(--pt-dur) var(--pt-ease),
		color var(--pt-dur) var(--pt-ease);
}
.preterna-header-search svg { color: var(--wp--preset--color--accent); flex: 0 0 auto; }
.preterna-header-search__hint {
	flex: 1;
	min-width: 0;
	opacity: 0.75;
	letter-spacing: 0.08em;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Only show the ⌘K hint on very wide screens; on everything else the freed
   space is used to keep the full placeholder label visible. */
@media (max-width: 1500px) {
	.preterna-header-search__kbd { display: none; }
}
.preterna-header-search__kbd {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--foreground-muted);
	background: var(--wp--preset--color--surface-low);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 4px;
	padding: 3px 7px;
	line-height: 1;
}
.preterna-header-search:hover,
.preterna-header-search:focus-visible {
	box-shadow: 0 0 0 1px rgba(140, 28, 42, 0.45), 0 0 24px rgba(140, 28, 42, 0.18);
	color: var(--wp--preset--color--foreground);
}
.preterna-header-search:focus { outline: none; }
@media (max-width: 980px) {
	.preterna-header-search { min-width: 0; max-width: 240px; padding-right: 8px; }
	.preterna-header-search__hint { display: none; }
}
@media (max-width: 640px) {
	.preterna-header-search { min-width: 36px; padding: 9px; }
	.preterna-header-search__kbd { display: none; }
}

/* Header action group (cart + account) */
.preterna-header-actions {
	display: flex;
	gap: 6px;
	align-items: center;
	flex: 0 0 auto;
}
.preterna-icon-link {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	color: var(--wp--preset--color--foreground);
	border-radius: 4px;
}
.preterna-icon-link:hover,
.preterna-icon-link:focus { color: var(--wp--preset--color--accent); }

/* Guest checkout only — no customer accounts. */
.preterna-header-actions a[href="/account"],
.preterna-header-actions a[aria-label="Account"] {
	display: none !important;
}

/* Language switcher (EN / LT flags) */
.preterna-lang {
	display: flex;
	align-items: center;
	gap: 4px;
	padding-left: 10px;
	margin-left: 4px;
	border-left: 1px solid var(--wp--preset--color--outline-soft);
	flex: 0 0 auto;
}
.preterna-lang__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 8px;
	background: transparent;
	border: 1px solid transparent;
	border-radius: 6px;
	cursor: pointer;
	color: var(--wp--preset--color--foreground-muted);
	font-family: var(--wp--preset--font-family--mono, monospace);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1;
	opacity: 0.55;
	transition: opacity 0.18s ease, color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}
.preterna-lang__btn:hover,
.preterna-lang__btn:focus-visible {
	opacity: 1;
	color: var(--wp--preset--color--foreground);
	outline: none;
}
.preterna-lang__btn.is-active {
	opacity: 1;
	color: var(--wp--preset--color--foreground);
	border-color: var(--wp--preset--color--outline-soft);
	background: color-mix(in srgb, var(--wp--preset--color--accent) 10%, transparent);
}
.preterna-lang__flag {
	width: 22px;
	height: 14px;
	border-radius: 2px;
	display: block;
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.18) inset;
	flex: none;
}
.preterna-lang__code { display: inline-block; }

@media (max-width: 600px) {
	.preterna-lang { padding-left: 6px; }
	.preterna-lang__code { display: none; }
	.preterna-lang__btn { padding: 5px 6px; }
}

/* ---------- Header / Glass nav ------------------------------------------ */
.preterna-glass-nav {
	background-color: rgba(14, 14, 14, 0.55);
	-webkit-backdrop-filter: blur(var(--pt-blur)) saturate(140%);
	backdrop-filter: blur(var(--pt-blur)) saturate(140%);
	border-bottom: var(--pt-machined-border);
}

.preterna-logo {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	line-height: 0;
}
.preterna-logo img {
	display: block;
	height: 42px;
	width: auto;
}
@media (max-width: 780px) {
	.preterna-logo img { height: 32px; }
}

/* ---------- Hero ------------------------------------------------------- */
.preterna-hero {
	min-height: clamp(640px, 92vh, 980px) !important;
	display: flex !important;
	align-items: center;
}
.preterna-hero .wp-block-cover__inner-container {
	width: 100%;
	margin-block: 0;
	position: relative;
	z-index: 2;
}
.preterna-hero__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	width: 100%;
}
.preterna-hero__title {
	font-size: clamp(40px, 8vw, 96px) !important;
	margin: 0 !important;
	color: var(--wp--preset--color--foreground) !important;
	text-shadow:
		0 2px 12px rgba(0, 0, 0, 0.6),
		0 8px 60px rgba(0, 0, 0, 0.45);
}
.preterna-hero__sub {
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
}

.preterna-hero-banner {
	width: 100%;
	max-width: none;
	padding: 12px 16px 0;
	box-sizing: border-box;
}
.preterna-hero-banner__frame {
	position: relative;
	overflow: hidden;
	height: calc(100svh - 88px);
	min-height: 560px;
	max-height: 820px;
	background: var(--wp--preset--color--surface-low);
	box-shadow: inset 0 0 0 1px rgba(142, 145, 146, 0.16);
}
.preterna-hero-banner__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 42%;
	display: block;
}
.preterna-hero-banner__veil {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		linear-gradient(90deg, rgba(14, 14, 14, 0.55) 0%, rgba(14, 14, 14, 0.18) 42%, rgba(14, 14, 14, 0.08) 100%),
		linear-gradient(180deg, rgba(14, 14, 14, 0.12) 0%, rgba(14, 14, 14, 0) 40%, rgba(14, 14, 14, 0.55) 100%);
}
.preterna-hero-banner__copy {
	position: absolute;
	left: clamp(20px, 4vw, 56px);
	bottom: clamp(28px, 5vw, 56px);
	z-index: 3;
	max-width: 720px;
}
.preterna-hero-banner__kicker {
	margin: 0 0 14px;
	color: var(--wp--preset--color--accent);
}
.preterna-hero-banner__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--hanken);
	font-size: clamp(40px, 6.4vw, 88px);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 0.92;
	max-width: 9.2ch;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground);
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45), 0 10px 48px rgba(0, 0, 0, 0.35);
}
.preterna-hero-banner__sub {
	margin: 16px 0 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground-muted);
}
.preterna-hero-banner__cta {
	display: inline-flex !important;
	margin-top: 28px;
	min-width: 0 !important;
	padding: 12px 22px !important;
	border: 1px solid rgba(255, 255, 255, 0.28) !important;
	background: transparent !important;
	color: var(--wp--preset--color--foreground) !important;
	font-family: var(--wp--preset--font-family--mono) !important;
	font-size: 11px !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
}
.preterna-hero-banner__cta:hover {
	border-color: var(--wp--preset--color--foreground) !important;
	background: rgba(255, 255, 255, 0.06) !important;
}

@media (max-width: 900px) {
	.preterna-hero-banner { padding: 8px 8px 0; }
	.preterna-hero-banner__frame {
		height: clamp(480px, 68vh, 680px);
		max-height: none;
	}
	.preterna-hero-banner__title {
		font-size: clamp(36px, 11vw, 64px);
	}
}

/* ---------- Navigation refinements -------------------------------------- */
.wp-block-navigation .wp-block-navigation-item__content {
	padding-block: 6px;
	border-bottom: 1px solid transparent;
}
.wp-block-navigation .wp-block-navigation-item:hover .wp-block-navigation-item__content,
.wp-block-navigation .current-menu-item .wp-block-navigation-item__content {
	color: var(--wp--preset--color--foreground);
	border-bottom-color: var(--wp--preset--color--accent);
}

/* ---------- Buttons / variants ------------------------------------------ */
.wp-block-button__link {
	border-radius: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 1;
	padding: 14px 28px;
	border: 1px solid transparent;
	cursor: pointer;
}

.wp-block-button.is-style-preterna-technical .wp-block-button__link {
	background-color: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground);
	border-color: var(--wp--preset--color--outline);
}
.wp-block-button.is-style-preterna-technical .wp-block-button__link:hover {
	color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	background-color: var(--wp--preset--color--surface);
}

.wp-block-button.is-style-preterna-ghost .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--foreground);
	border-color: rgba(229, 226, 225, 0.15);
	-webkit-backdrop-filter: blur(20px);
	backdrop-filter: blur(20px);
}
.wp-block-button.is-style-preterna-ghost .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--foreground);
}

.wp-block-button.is-style-preterna-accent .wp-block-button__link {
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	border-color: transparent;
	box-shadow: var(--pt-accent-glow);
}
.wp-block-button.is-style-preterna-accent .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--accent-glow);
	box-shadow: 0 0 0 1px rgba(140, 28, 42, 0.6), 0 0 60px rgba(140, 28, 42, 0.3);
}

/* ---------- Group variants ---------------------------------------------- */
.wp-block-group.is-style-preterna-card {
	background-color: var(--wp--preset--color--surface-low);
	box-shadow: inset 0 0 0 1px rgba(142, 145, 146, 0.18);
}
.wp-block-group.is-style-preterna-card-bordered {
	background-color: transparent;
	box-shadow: inset 0 0 0 1px rgba(142, 145, 146, 0.32);
}
.wp-block-group.is-style-preterna-glass {
	background-color: rgba(20, 19, 19, 0.45);
	-webkit-backdrop-filter: blur(var(--pt-blur)) saturate(140%);
	backdrop-filter: blur(var(--pt-blur)) saturate(140%);
	box-shadow: inset 0 0 0 1px rgba(229, 226, 225, 0.08);
}
.wp-block-group.is-style-preterna-rail {
	background-color: var(--wp--preset--color--base);
	border-right: var(--pt-machined-border);
}

/* ---------- Cover positioning fixes ------------------------------------- */
.wp-block-cover.is-style-preterna-bottom-fade {
	align-items: flex-end;
}
.wp-block-cover.is-style-preterna-bottom-fade .wp-block-cover__inner-container {
	width: 100%;
	margin-block: 0;
	position: relative;
	z-index: 2;
}
.wp-block-cover.is-style-preterna-bottom-fade::after { z-index: 1; }

/* ---------- Cover variants ---------------------------------------------- */
.wp-block-cover.is-style-preterna-vignette::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(ellipse at center, rgba(20, 19, 19, 0) 0%, rgba(14, 14, 14, 0.7) 100%);
	z-index: 1;
}
.wp-block-cover.is-style-preterna-bottom-fade::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(14, 14, 14, 0) 30%, rgba(14, 14, 14, 0.95) 100%);
	z-index: 1;
}

/* ---------- Image variants ---------------------------------------------- */
.wp-block-image.is-style-preterna-hover-zoom {
	overflow: hidden;
}
.wp-block-image.is-style-preterna-hover-zoom img {
	transition: transform var(--pt-dur-slow) var(--pt-ease);
}
.wp-block-image.is-style-preterna-hover-zoom:hover img,
.wp-block-image.is-style-preterna-hover-zoom:focus-within img {
	transform: scale(1.05);
}
.wp-block-image.is-style-preterna-bordered img {
	box-shadow: inset 0 0 0 1px rgba(142, 145, 146, 0.32);
}

/* ---------- Section labels ---------------------------------------------- */
.wp-block-heading.is-style-preterna-section-label,
.wp-block-paragraph.is-style-preterna-mono-label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin: 0 0 8px;
	line-height: 1;
}
.wp-block-paragraph.is-style-preterna-mono-spec {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--foreground-muted);
	margin: 0;
	line-height: 1.2;
}

/* ---------- Separators -------------------------------------------------- */
.wp-block-separator.is-style-preterna-dotted {
	border: none;
	height: 1px;
	background-image: linear-gradient(90deg, var(--wp--preset--color--outline) 50%, transparent 50%);
	background-size: 8px 1px;
	opacity: 1;
	max-width: none;
}

/* ---------- Product / collection cards ---------------------------------- */
.preterna-collection-card {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 5;
}
.preterna-collection-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--pt-dur-slow) var(--pt-ease), opacity var(--pt-dur) var(--pt-ease);
}
.preterna-collection-card:hover img { transform: scale(1.05); }
.preterna-collection-card::after {
	content: "";
	position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(14,14,14,0) 40%, rgba(14,14,14,0.92) 100%);
}
.preterna-collection-card__body {
	position: absolute; left: 24px; right: 24px; bottom: 20px;
	z-index: 2;
}

.preterna-brand-slider {
	display: flex;
	flex-direction: column;
	gap: 28px;
}
.preterna-brand-slider__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
}
.preterna-brand-slider__nav {
	display: flex;
	gap: 8px;
	flex-shrink: 0;
}
.preterna-brand-slider__btn {
	border: 1px solid var(--wp--preset--color--outline-soft);
	background: transparent;
	color: var(--wp--preset--color--foreground);
	width: 40px;
	height: 40px;
	cursor: pointer;
	font-size: 22px;
	line-height: 1;
	padding: 0;
}
.preterna-brand-slider__btn:hover,
.preterna-brand-slider__btn:focus-visible {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}
.preterna-brand-slider__btn:disabled {
	opacity: 0.35;
	cursor: default;
}
.preterna-brand-slider__viewport {
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
	overscroll-behavior-x: contain;
}
.preterna-brand-slider__viewport::-webkit-scrollbar { display: none; }
a.preterna-brand-card {
	display: block;
	flex: 0 0 calc((100% - 72px) / 4);
	aspect-ratio: 3 / 4;
	color: inherit;
	text-decoration: none;
	scroll-snap-align: start;
}
a.preterna-brand-card::after {
	background: rgba(4, 4, 4, 0.52);
	transition: opacity var(--pt-dur-slow) var(--pt-ease);
}
a.preterna-brand-card:hover::after,
a.preterna-brand-card:focus-visible::after {
	opacity: 0;
}
a.preterna-brand-card > .preterna-brand-card__photo {
	filter: brightness(0.38) saturate(0.7);
	transition:
		transform var(--pt-dur-slow) var(--pt-ease),
		filter var(--pt-dur-slow) var(--pt-ease);
}
a.preterna-brand-card:hover > .preterna-brand-card__photo,
a.preterna-brand-card:focus-visible > .preterna-brand-card__photo {
	filter: brightness(1.08) saturate(1.08);
	transform: scale(1.06);
}
.preterna-brand-card__logo {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: grid;
	place-items: center;
	padding: 10%;
	pointer-events: none;
	transition: opacity var(--pt-dur) var(--pt-ease);
}
.preterna-brand-card__logo img {
	width: min(78%, 280px);
	height: auto;
	max-height: 48%;
	object-fit: contain;
	filter: drop-shadow(0 12px 32px rgba(0, 0, 0, 0.7));
	transform: none;
}
.preterna-brand-card__logo.is-light img {
	filter: brightness(0) invert(1) drop-shadow(0 12px 32px rgba(0, 0, 0, 0.7));
}
a.preterna-brand-card:hover .preterna-brand-card__logo img,
a.preterna-brand-card:focus-visible .preterna-brand-card__logo img {
	transform: none;
}
a.preterna-brand-card:hover .preterna-brand-card__logo,
a.preterna-brand-card:focus-visible .preterna-brand-card__logo {
	opacity: 0.55;
}
.preterna-brand-card__index {
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin: 0 0 6px;
}
.preterna-brand-card__name {
	display: block;
	font-family: var(--wp--preset--font-family--hanken);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.3;
	margin: 0 0 4px;
	color: var(--wp--preset--color--foreground);
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.preterna-brand-card__cta {
	font-family: var(--wp--preset--font-family--mono);
	color: var(--wp--preset--color--foreground-muted);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin: 0;
}
.preterna-brand-slider__status { margin: 0; }
@media (max-width: 900px) {
	.preterna-brand-slider__viewport { gap: 14px; }
	a.preterna-brand-card { flex-basis: calc((100% - 14px) / 2); }
	.preterna-collection-card__body { left: 16px; right: 16px; bottom: 14px; }
}
@media (max-width: 520px) {
	.preterna-brand-slider__viewport { gap: 10px; }
	a.preterna-brand-card { flex-basis: 78%; }
}

a.preterna-cat-card {
	display: block;
	flex: 0 0 calc((100% - 72px) / 4);
	aspect-ratio: 3 / 4;
	color: inherit;
	text-decoration: none;
	scroll-snap-align: start;
}
a.preterna-cat-card .preterna-cat-card__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--pt-dur-slow) var(--pt-ease);
}
a.preterna-cat-card:hover .preterna-cat-card__photo,
a.preterna-cat-card:focus-visible .preterna-cat-card__photo {
	transform: scale(1.05);
}
@media (max-width: 900px) {
	a.preterna-cat-card { flex-basis: calc((100% - 14px) / 2); }
}
@media (max-width: 520px) {
	a.preterna-cat-card { flex-basis: 78%; }
}

/* ---------- Data telemetry table --------------------------------------- */
.preterna-telemetry {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px 48px;
	padding: 24px 0;
	border-top: var(--pt-machined-border);
	border-bottom: var(--pt-machined-border);
}
.preterna-telemetry .label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground-muted);
	margin: 0 0 4px;
}
.preterna-telemetry .value {
	font-family: var(--wp--preset--font-family--hanken);
	font-size: 2rem;
	font-weight: 500;
	line-height: 1;
	color: var(--wp--preset--color--foreground);
	margin: 0;
}
.preterna-telemetry .value--accent { color: var(--wp--preset--color--accent); }

/* ---------- Build of the month carousel -------------------------------- */
.preterna-build-carousel { width: 100%; }
.preterna-build-carousel__stage {
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
}
.preterna-build-carousel__slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	transition: opacity 700ms var(--pt-ease);
	pointer-events: none;
}
.preterna-build-carousel__slide.is-active {
	opacity: 1;
	pointer-events: auto;
	z-index: 1;
}
.preterna-build-carousel__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.preterna-build-carousel__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 14px;
}
.preterna-build-carousel__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex: 1;
}
.preterna-build-carousel__dots button {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: var(--wp--preset--color--outline-soft);
	cursor: pointer;
}
.preterna-build-carousel__dots button.is-active {
	background: var(--wp--preset--color--accent);
}

.wp-block-group:has(> .preterna-build-invite-stack) {
	padding-bottom: 0 !important;
}
.preterna-build-invite-stack {
	position: relative;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	margin: 40px 0 0;
	transform: translateX(-50%);
}
.preterna-build-invite,
.preterna-build-invite-mail {
	box-sizing: border-box;
	display: block;
	margin: 0;
	padding: 8px 24px;
	max-width: none;
	width: 100%;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	line-height: 1.35;
	letter-spacing: 0.04em;
	text-align: center;
}
.preterna-build-invite {
	border: 0;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}
.preterna-build-invite-mail {
	border: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--foreground);
}
.preterna-build-invite-mail a {
	color: inherit;
	text-decoration: underline;
}
@media (max-width: 720px) {
	.preterna-build-invite,
	.preterna-build-invite-mail {
		padding: 8px 16px;
		font-size: 11px;
	}
}

/* ---------- Forms ------------------------------------------------------- */
input[type="search"],
input[type="text"],
input[type="email"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="password"],
select,
textarea {
	background-color: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 0;
	padding: 12px 16px;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
}
input:focus, select:focus, textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent);
}
::placeholder {
	color: var(--wp--preset--color--foreground-muted);
	opacity: 0.7;
}

.wp-block-search__inside-wrapper {
	background-color: rgba(20, 19, 19, 0.5);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 0;
	overflow: hidden;
}
.wp-block-search .wp-block-search__input {
	border: none;
	background: transparent;
	color: var(--wp--preset--color--foreground);
}
.wp-block-search .wp-block-search__button {
	background-color: transparent;
	color: var(--wp--preset--color--foreground-muted);
	border: none;
	margin: 0;
	padding: 0 14px;
}
.wp-block-search .wp-block-search__button:hover {
	color: var(--wp--preset--color--accent);
}

/* ============ WooCommerce Cart & Checkout — dark theme fields ===========
 * The checkout/cart blocks ship light-on-white field styling that clashes
 * with the dark palette. Re-skin every control: dark fill, accent (red)
 * outline, light text — and keep focus/hover states tasteful. */

/* Text inputs, textareas & native selects */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-cart .wc-block-components-text-input input,
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-address-form input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-quantity-selector__input {
	background-color: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--foreground) !important;
	border: 1px solid var(--wp--preset--color--accent) !important;
	border-radius: 8px !important;
	box-shadow: none !important;
}

/* Floating labels & step copy */
.wc-block-components-text-input label,
.wc-block-components-address-form label,
.wc-block-components-combobox label,
.wc-blocks-components-select .wc-blocks-components-select__label,
.wc-block-components-checkout-step__description,
.wc-block-components-checkbox__label,
.wc-block-components-text-input + .wc-block-components-address-form__address-2-toggle,
.wc-block-components-address-form__address-2-toggle {
	color: var(--wp--preset--color--foreground-muted) !important;
}

/* Country / State combobox (built on @wordpress/components) */
.wc-block-components-combobox .components-form-token-field,
.wc-block-components-combobox .components-input-control__container,
.wc-block-components-combobox-control .components-input-control__container {
	background-color: var(--wp--preset--color--surface) !important;
	border-radius: 8px !important;
}
.wc-block-components-combobox input,
.components-combobox-control__input {
	background-color: transparent !important;
	color: var(--wp--preset--color--foreground) !important;
}
.wc-block-components-combobox .components-input-control__backdrop,
.components-input-control__backdrop {
	border: 1px solid var(--wp--preset--color--accent) !important;
	border-radius: 8px !important;
	box-shadow: none !important;
	background: transparent !important;
}

/* Focus — brighter red border + subtle glow */
.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus,
.wc-block-components-combobox input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wc-block-components-address-form input:focus {
	border-color: var(--wp--preset--color--accent) !important;
	box-shadow: 0 0 0 3px rgba(140, 28, 42, 0.28) !important;
	outline: none !important;
}
.wc-block-components-combobox.is-active .components-input-control__backdrop,
.wc-block-components-combobox input:focus ~ .components-input-control__backdrop {
	border-color: var(--wp--preset--color--accent) !important;
	box-shadow: 0 0 0 3px rgba(140, 28, 42, 0.28) !important;
}

/* Placeholders */
.wc-block-checkout ::placeholder,
.wc-block-cart ::placeholder {
	color: var(--wp--preset--color--foreground-muted) !important;
	opacity: 0.65;
}

/* Combobox dropdown list */
.wc-block-components-combobox-control .components-form-token-field__suggestions-list,
.components-combobox-control__suggestions-container ul {
	background-color: var(--wp--preset--color--surface-high) !important;
	color: var(--wp--preset--color--foreground) !important;
	border: 1px solid var(--wp--preset--color--accent) !important;
}
.components-form-token-field__suggestion { color: var(--wp--preset--color--foreground) !important; }
.components-form-token-field__suggestion.is-selected,
.components-form-token-field__suggestion:hover {
	background-color: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--on-accent) !important;
}

/* Chevron / control icons */
.wc-block-components-combobox svg,
.wc-blocks-components-select .wc-blocks-components-select__expand {
	color: var(--wp--preset--color--foreground-muted) !important;
	fill: currentColor !important;
}

/* Checkboxes (add a note, ship elsewhere, terms) */
.wc-block-components-checkbox__input {
	background-color: var(--wp--preset--color--surface) !important;
	border: 1px solid var(--wp--preset--color--accent) !important;
}
.wc-block-components-checkbox__input:checked {
	background-color: var(--wp--preset--color--accent) !important;
	border-color: var(--wp--preset--color--accent) !important;
}

/* Defeat browser autofill forcing a white field */
.wc-block-checkout input:-webkit-autofill,
.wc-block-checkout input:-webkit-autofill:focus,
.wc-block-cart input:-webkit-autofill,
.wc-block-components-text-input input:-webkit-autofill {
	-webkit-text-fill-color: var(--wp--preset--color--foreground) !important;
	-webkit-box-shadow: 0 0 0 1000px var(--wp--preset--color--surface) inset !important;
	caret-color: var(--wp--preset--color--foreground) !important;
}

/* ---------- Search-spec bar (hero composer) ----------------------------- */
.preterna-search-bar {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	gap: 0;
	background-color: rgba(14, 14, 14, 0.7);
	-webkit-backdrop-filter: blur(20px) saturate(140%);
	backdrop-filter: blur(20px) saturate(140%);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 12px;
	overflow: hidden;
	max-width: 880px;
	margin-inline: auto;
	padding: 10px;
	gap: 10px;
}
.preterna-search-bar > label {
	background-color: transparent;
	padding: 6px 18px;
	display: flex; flex-direction: column; gap: 4px;
	border-right: 1px solid var(--wp--preset--color--outline-soft);
}
.preterna-search-bar > label:nth-of-type(3) { border-right: 0; }
.preterna-search-bar .label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground-muted);
	font-weight: 500;
}
.preterna-search-bar .value,
.preterna-search-bar select.value {
	font-family: var(--wp--preset--font-family--hanken);
	font-size: 15px;
	color: var(--wp--preset--color--foreground);
	background: transparent;
	border: 0;
	padding: 0;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none'><path d='M6 9l6 6 6-6' stroke='%23c4c7c7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right center;
	background-size: 12px;
	padding-right: 18px;
	cursor: pointer;
	width: 100%;
	min-width: 0;
}
.preterna-search-bar select.value option { color: #111; }
.preterna-search-bar .preterna-cta {
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	padding: 0 32px;
	white-space: nowrap;
	border: 0;
	border-radius: 6px;
	cursor: pointer;
	transition: background-color var(--pt-dur) var(--pt-ease), box-shadow var(--pt-dur) var(--pt-ease);
}
.preterna-search-bar .preterna-cta:hover {
	box-shadow: 0 0 0 1px rgba(140, 28, 42, 0.5), 0 0 30px rgba(140, 28, 42, 0.3);
}
@media (max-width: 760px) {
	.preterna-search-bar {
		grid-template-columns: 1fr 1fr;
		padding: 8px;
	}
	.preterna-search-bar > label { border-right: 0; padding: 8px 12px; }
	.preterna-search-bar .preterna-cta { grid-column: 1 / -1; padding: 14px; }
}

/* ---------- WooCommerce hooks ------------------------------------------ */
.preterna-product-card {
	position: relative;
	overflow: hidden;
	background-color: var(--wp--preset--color--surface-low);
	box-shadow: inset 0 0 0 1px rgba(142, 145, 146, 0.18);
	padding: 0;
	transition: box-shadow var(--pt-dur) var(--pt-ease);
}
.preterna-product-card:hover {
	box-shadow: inset 0 0 0 1px rgba(140, 28, 42, 0.4);
}
.preterna-product-card .wp-block-post-featured-image {
	overflow: hidden;
}
.preterna-product-card .wp-block-post-featured-image img {
	transition: transform var(--pt-dur-slow) var(--pt-ease);
	width: 100%; height: 100%; object-fit: cover;
}
.preterna-product-card:hover .wp-block-post-featured-image img {
	transform: scale(1.05);
}
.preterna-product-card .wp-block-post-title,
.preterna-product-card .wp-block-post-terms,
.preterna-product-card .preterna-price,
.preterna-product-card .wp-block-woocommerce-product-price { padding-inline: 18px; }
.preterna-product-card .wp-block-post-terms { padding-top: 14px; }
.preterna-product-card > *:last-child { padding-bottom: 18px; }

.preterna-price del { color: var(--wp--preset--color--foreground-muted); opacity: 0.5; margin-right: 6px; }
.preterna-price ins { text-decoration: none; color: var(--wp--preset--color--accent); }

.woocommerce-breadcrumb { color: var(--wp--preset--color--foreground-muted); font-family: var(--wp--preset--font-family--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; }
.woocommerce-breadcrumb a { color: var(--wp--preset--color--foreground-muted); }
.woocommerce-breadcrumb a:hover { color: var(--wp--preset--color--accent); }

button.button, a.button, .woocommerce a.button, .woocommerce button.button,
.wc-block-components-button:not(.is-link) {
	background-color: var(--wp--preset--color--foreground) !important;
	color: var(--wp--preset--color--background) !important;
	border-radius: 0 !important;
	font-family: var(--wp--preset--font-family--mono);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-size: 12px;
	font-weight: 500;
	padding: 14px 28px !important;
	border: 0 !important;
}
button.button:hover, .woocommerce a.button:hover, .wc-block-components-button:not(.is-link):hover {
	background-color: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--on-accent) !important;
}

.quantity .qty {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 0;
	padding: 12px 14px;
	width: 92px;
}

.woocommerce-Tabs-panel h2 { font-size: var(--wp--preset--font-size--x-large); }
.woocommerce-tabs ul.tabs { border-bottom: var(--pt-machined-border); padding: 0; margin: 0 0 32px; list-style: none; display: flex; gap: 24px; }
.woocommerce-tabs ul.tabs li a {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground-muted);
	padding: 14px 2px;
	display: inline-block;
	border-bottom: 1px solid transparent;
}
.woocommerce-tabs ul.tabs li.active a {
	color: var(--wp--preset--color--foreground);
	border-bottom-color: var(--wp--preset--color--accent);
}

/* ======================================================================
 * Single product — two-column layout, framed gallery, clean description
 * ==================================================================== */
.single-product .wp-block-columns { gap: 36px; align-items: flex-start; }

/* Left: gallery (sticks while the info/description scrolls on desktop). */
.single-product .wp-block-column:first-child { position: sticky; top: 96px; }

/* WooCommerce caps the gallery block at 512px — let it fill the column. */
.single-product .wp-block-woocommerce-product-image-gallery {
	max-width: none !important;
	width: 100% !important;
}

.single-product .woocommerce-product-gallery {
	position: relative;
	background: var(--wp--preset--color--surface-low);
	box-shadow: inset 0 0 0 1px rgba(142, 145, 146, 0.16);
	padding: 18px;
	margin: 0;
	width: 100% !important;
}
.single-product .woocommerce-product-gallery__wrapper { margin: 0; }
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image img,
.single-product .wp-block-woocommerce-product-image-gallery img {
	display: block;
	width: 100%;
	height: auto;
}
/* Zoom trigger — refined glass pill that blends with the dark surface */
.single-product .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 28px; right: 28px;
	width: 38px; height: 38px;
	margin: 0; padding: 0;
	font-size: 0; line-height: 0; text-indent: -9999px;
	background: rgba(20, 22, 23, 0.62);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	border-radius: 999px;
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--outline-soft);
	opacity: 0.9;
	z-index: 99;
	transition: opacity var(--pt-dur) var(--pt-ease), box-shadow var(--pt-dur) var(--pt-ease), background var(--pt-dur) var(--pt-ease);
}
.single-product .woocommerce-product-gallery__trigger::before {
	content: "";
	position: absolute;
	inset: 0;
	background: center / 17px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23e8eaea' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
}
.single-product .woocommerce-product-gallery__trigger:hover {
	opacity: 1;
	background: rgba(20, 22, 23, 0.8);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--accent);
}

/* Gallery thumbnails (shown when a product has multiple images) */
.single-product .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 14px 0 0;
	padding: 0;
}
.single-product .flex-control-thumbs li { width: 84px; margin: 0; }
.single-product .flex-control-thumbs img {
	cursor: pointer;
	opacity: 0.5;
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--outline-soft);
	transition: opacity var(--pt-dur) var(--pt-ease), box-shadow var(--pt-dur) var(--pt-ease);
}
.single-product .flex-control-thumbs img:hover { opacity: 0.85; }
.single-product .flex-control-thumbs img.flex-active {
	opacity: 1;
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--accent);
}

/* Right: product summary column */
.single-product .wp-block-woocommerce-product-price,
.single-product .price {
	color: var(--wp--preset--color--foreground);
	font-weight: 600;
}
.single-product .wp-block-woocommerce-product-summary {
	line-height: 1.7;
}
.single-product form.cart { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 8px 0 0; }
.single-product form.cart .quantity { margin: 0; }

/* Description / tabs — full-width, centred readout below the product */
.single-product .woocommerce-tabs,
.single-product .wp-block-woocommerce-product-details { margin-top: var(--wp--preset--spacing--60, 48px); }
.single-product .preterna-product-desc {
	padding-left: var(--wp--preset--spacing--40, 32px);
	padding-right: var(--wp--preset--spacing--40, 32px);
}
.single-product .woocommerce-tabs ul.tabs { justify-content: center; }
.single-product .woocommerce-Tabs-panel {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	color: var(--wp--preset--color--foreground-muted);
	font-size: 1.0625rem;
	line-height: 1.9;
}
.single-product .woocommerce-Tabs-panel h2 {
	color: var(--wp--preset--color--foreground);
	letter-spacing: 0.02em;
	margin-bottom: 0.6em;
	text-align: center;
}
.single-product .woocommerce-Tabs-panel p { margin: 0 auto 1.1em; }
.single-product .woocommerce-product-attributes {
	width: 100%;
	max-width: 720px;
	margin: 0 auto;
	text-align: left;
	border-collapse: collapse;
}
.single-product .woocommerce-product-attributes th,
.single-product .woocommerce-product-attributes td {
	text-align: left;
	padding: 12px 16px;
	border: 1px solid var(--wp--preset--color--outline-soft);
	font-size: 14px;
}
.single-product .woocommerce-product-attributes th { color: var(--wp--preset--color--foreground); width: 30%; }
.single-product .woocommerce-product-attributes td { color: var(--wp--preset--color--foreground-muted); }

/* Related products */
.preterna-related h2 {
	font-size: var(--wp--preset--font-size--x-large);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 28px;
}

@media (max-width: 900px) {
	.single-product .wp-block-columns { flex-wrap: wrap !important; }
	.single-product .wp-block-column { flex-basis: 100% !important; }
	.single-product .wp-block-column:first-child { position: static; }
}

/* ---------- Location map (Contact page) -------------------------------- */
.preterna-map {
	margin-top: 36px;
}
.preterna-map__label {
	margin: 0 0 12px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #b22c3e;
}
.preterna-map__frame {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--outline-soft);
	background: var(--wp--preset--color--surface);
}
.preterna-map__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	/* Blend the bright Google tiles into the dark theme. */
	filter: invert(0.92) hue-rotate(180deg) brightness(0.95) contrast(0.9);
}

/* ---------- Contact form (lives on the Contact page) -------------------- */
.preterna-contact-form {
	display: grid;
	gap: 18px;
}
.preterna-contact-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}
@media (max-width: 720px) {
	.preterna-contact-form__row { grid-template-columns: 1fr; }
}
.preterna-contact-form label {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.preterna-contact-form label > span {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground-muted);
}
.preterna-contact-form input[type="text"],
.preterna-contact-form input[type="email"],
.preterna-contact-form select,
.preterna-contact-form textarea {
	-webkit-appearance: none;
	appearance: none;
	background-color: var(--wp--preset--color--surface-low);
	color: var(--wp--preset--color--foreground);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 4px;
	padding: 14px 16px;
	font-family: var(--wp--preset--font-family--hanken);
	font-size: 15px;
	line-height: 1.4;
	transition:
		border-color var(--pt-dur) var(--pt-ease),
		box-shadow var(--pt-dur) var(--pt-ease),
		background-color var(--pt-dur) var(--pt-ease);
}
.preterna-contact-form textarea { resize: vertical; min-height: 140px; }
.preterna-contact-form input::placeholder,
.preterna-contact-form textarea::placeholder {
	color: var(--wp--preset--color--foreground-muted);
	opacity: 0.55;
}
.preterna-contact-form input:focus,
.preterna-contact-form select:focus,
.preterna-contact-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 1px rgba(140, 28, 42, 0.45), 0 0 24px rgba(140, 28, 42, 0.12);
	background-color: var(--wp--preset--color--surface);
}
.preterna-contact-form__submit {
	margin-top: 8px;
	justify-self: start;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	padding: 16px 28px;
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--foreground);
	border: 0;
	border-radius: 4px;
	cursor: pointer;
	transition: background-color var(--pt-dur) var(--pt-ease), transform var(--pt-dur) var(--pt-ease);
}
.preterna-contact-form__submit:hover { background-color: var(--wp--preset--color--accent-glow); transform: translateY(-1px); }
.preterna-contact-form__note {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--foreground-muted);
	margin: 4px 0 0;
}

/* ---------- Gallery refinements ---------------------------------------- */
.wp-block-gallery.preterna-gallery {
	gap: 12px;
}
.wp-block-gallery.preterna-gallery figure.wp-block-image {
	overflow: hidden;
	background-color: var(--wp--preset--color--surface);
	box-shadow: inset 0 0 0 1px rgba(142, 145, 146, 0.18);
}
.wp-block-gallery.preterna-gallery figure.wp-block-image img {
	transition: transform 600ms var(--pt-ease);
}
.wp-block-gallery.preterna-gallery figure.wp-block-image:hover img {
	transform: scale(1.04);
}
.wp-block-gallery.preterna-gallery figcaption {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground-muted);
}

/* ---------- Footer ------------------------------------------------------ */
.preterna-footer { border-top: var(--pt-machined-border); }
.wp-block-template-part:has(.preterna-footer) {
	display: block;
	width: 100%;
}
.preterna-footer__grid {
	display: grid;
	grid-template-columns: minmax(200px, 1.15fr) repeat(3, minmax(150px, 1fr));
	gap: 48px 56px;
	align-items: start;
}
.preterna-footer__logo {
	margin: 0;
	font-family: var(--wp--preset--font-family--hanken);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--wp--preset--color--foreground);
}
a.preterna-footer__logo {
	font-size: 0;
	letter-spacing: 0;
	text-transform: none;
	white-space: normal;
}
a.preterna-footer__logo img {
	height: 52px;
}
.preterna-footer__bar {
	width: 100%;
	padding-top: 4px;
}
.preterna-footer__legal {
	margin: 18px 0 0;
	line-height: 1.85;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground-muted);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
}
.preterna-footer__heading {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground-muted);
	font-weight: 500;
}
.preterna-footer__nav {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.preterna-footer__nav a {
	color: var(--wp--preset--color--foreground-muted);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.06em;
	line-height: 1.4;
}
.preterna-footer__nav a:hover {
	color: var(--wp--preset--color--foreground);
}
.preterna-footer__bar a {
	color: inherit;
	text-decoration: none;
}
.preterna-footer__bar a:hover {
	color: var(--wp--preset--color--foreground);
}
@media (max-width: 900px) {
	.preterna-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 36px 28px;
	}
}
@media (max-width: 560px) {
	.preterna-footer__grid { grid-template-columns: 1fr; }
}
.preterna-footer__contact {
	list-style: none;
	margin: 18px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	line-height: 1.65;
	color: var(--wp--preset--color--foreground-muted);
}
.preterna-footer__contact span {
	display: block;
	margin-bottom: 2px;
	color: var(--wp--preset--color--foreground);
	text-transform: uppercase;
	letter-spacing: 0.16em;
	font-size: 11px;
}
.preterna-footer__contact a {
	color: inherit;
	text-decoration: none;
}
.preterna-footer__contact a:hover {
	color: var(--wp--preset--color--foreground);
}
.preterna-footer__social {
	display: flex;
	gap: 10px;
	margin-top: 18px;
}
.preterna-footer__social a {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	color: var(--wp--preset--color--foreground-muted);
	border: 1px solid var(--wp--preset--color--outline-soft);
	text-decoration: none;
	transition: color var(--pt-dur) var(--pt-ease), border-color var(--pt-dur) var(--pt-ease);
}
.preterna-footer__social a:hover {
	color: var(--wp--preset--color--foreground);
	border-color: var(--wp--preset--color--outline);
}

/* ---------- Instagram (Smash Balloon) ---------------------------------- */
.preterna-instagram {
	border-top: var(--pt-machined-border);
}
.preterna-instagram__header { text-align: center; }
.preterna-instagram__subtitle {
	margin: 0;
	color: var(--wp--preset--color--foreground-muted);
}
.preterna-instagram__subtitle strong {
	color: var(--wp--preset--color--accent);
	font-weight: 500;
}
.preterna-instagram__title {
	text-transform: none;
}
.preterna-instagram__title em {
	font-style: normal;
	color: var(--wp--preset--color--accent);
}
.preterna-instagram__feed { margin-top: 8px; }
.preterna-instagram__placeholder {
	margin: 48px auto 0;
	max-width: 420px;
	text-align: center;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	line-height: 1.6;
	color: var(--wp--preset--color--foreground-muted);
}
.preterna-instagram #sb_instagram {
	width: 100% !important;
	padding: 0 !important;
	background: transparent !important;
}
.preterna-instagram .sb_instagram_header,
.preterna-instagram .sbi_header_text,
.preterna-instagram .sbi_bio,
.preterna-instagram .sbi_feed_type_user h3,
.preterna-instagram .sbi_info,
.preterna-instagram [class*="sbi_followers"],
.preterna-instagram [class*="sbi_posts_count"] {
	color: var(--wp--preset--color--foreground) !important;
}
.preterna-instagram .sbi_header_text h3,
.preterna-instagram .sbi_header_text a {
	color: var(--wp--preset--color--foreground) !important;
}
.preterna-instagram .sbi_follow_btn a {
	background: transparent !important;
	color: var(--wp--preset--color--foreground) !important;
	border: 1px solid var(--wp--preset--color--outline-soft) !important;
	border-radius: 999px !important;
	box-shadow: none !important;
}
.preterna-instagram .sbi_follow_btn a:hover {
	border-color: var(--wp--preset--color--outline) !important;
	color: var(--wp--preset--color--foreground) !important;
}
.preterna-instagram #sbi_mod_error {
	margin: 40px auto 0;
	max-width: 520px;
	padding: 28px 24px;
	border: 1px solid var(--wp--preset--color--outline-soft);
	text-align: center;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.06em;
	line-height: 1.7;
	color: var(--wp--preset--color--foreground-muted);
	background: transparent;
}

/* ---------- Utility helpers used in patterns --------------------------- */
.has-machined-border    { box-shadow: inset 0 0 0 1px rgba(142, 145, 146, 0.18); }
.has-machined-border--strong { box-shadow: inset 0 0 0 1px rgba(142, 145, 146, 0.32); }
.has-bottom-fade { position: relative; }
.has-bottom-fade::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(14,14,14,0) 35%, rgba(14,14,14,0.92) 100%);
}
.has-edge-vignette::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(ellipse at center, rgba(20,19,19,0) 0%, rgba(14,14,14,0.7) 100%);
}

/* Aspect ratio helpers */
.is-ratio-1     { aspect-ratio: 1; }
.is-ratio-3-4   { aspect-ratio: 3 / 4; }
.is-ratio-4-5   { aspect-ratio: 4 / 5; }
.is-ratio-16-9  { aspect-ratio: 16 / 9; }
.is-ratio-21-9  { aspect-ratio: 21 / 9; }

/* ---------- Typography refinements -------------------------------------- */
h1, h2, h3, h4, h5, h6 { text-wrap: balance; }
p, li { text-wrap: pretty; }

/* Tracking utility classes — also matches blocks' className field */
.is-tracking-wide   { letter-spacing: 0.05em; }
.is-tracking-wider  { letter-spacing: 0.1em; }
.is-tracking-widest { letter-spacing: 0.18em; }
.is-uppercase       { text-transform: uppercase; }

/* ---------- Mobile spacing tuning -------------------------------------- */
@media (max-width: 600px) {
	:where(.wp-site-blocks) > * + * { margin-block-start: clamp(64px, 14vw, 96px); }
}

/* ==========================================================================
   Generic reveal-on-scroll animation
   ========================================================================== */

[data-reveal] {
	opacity: 0;
	transform: translate3d(0, 24px, 0);
	transition: opacity 750ms var(--pt-ease),
	            transform 850ms var(--pt-ease);
	will-change: opacity, transform;
}
[data-reveal].is-revealed {
	opacity: 1;
	transform: none;
}

/* Specifically: the mosaic container itself slides in,
 * AND each tile cascades thanks to --tile-index assigned by JS. */
[data-reveal="mosaic"] {
	transform: translate3d(0, 20px, 0) scale(0.985);
}
[data-reveal="mosaic"].is-revealed {
	transform: none;
}
[data-reveal="mosaic"] > .preterna-collection-tile {
	opacity: 0;
	transform: translate3d(0, 28px, 0) scale(0.92);
	transition: opacity 620ms var(--pt-ease),
	            transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc(120ms + var(--tile-index, 0) * 70ms);
	will-change: opacity, transform;
}
[data-reveal="mosaic"].is-revealed > .preterna-collection-tile {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	[data-reveal],
	[data-reveal] > * {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* ==========================================================================
   Performance Collections — 10-tile asymmetric mosaic that forms a perfect
   square overall. Individual tiles span different cell counts.
   ========================================================================== */

.preterna-mosaic {
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	grid-template-rows:    repeat(2, 1fr);
	aspect-ratio: 7 / 2;          /* wide banner, short composition */
	gap: clamp(6px, 0.7vw, 10px);
	width: 100%;
	max-width: min(94vw, 1320px); /* spreads to the sides on big screens */
	margin-inline: auto;
}

/* Mosaic placement — 8×2 grid, 8 tiles tessellated across 16 cells in a
 * mirrored layout (wide-left in row 1, wide-right in row 2).
 *
 *   1 1 1 2 2 3 3 4       Engine 3, Suspension 2, Aero 2, Transmission 1
 *   5 6 6 7 7 8 8 8       Wheels 1, Exhaust 2, Brakes 2, Body 3
 */
.preterna-mosaic__cell--engine       { grid-area: 1 / 1 / span 1 / span 3; }
.preterna-mosaic__cell--suspension   { grid-area: 1 / 4 / span 1 / span 2; }
.preterna-mosaic__cell--aero         { grid-area: 1 / 6 / span 1 / span 2; }
.preterna-mosaic__cell--transmission { grid-area: 1 / 8 / span 1 / span 1; }
.preterna-mosaic__cell--wheels       { grid-area: 2 / 1 / span 1 / span 1; }
.preterna-mosaic__cell--exhaust      { grid-area: 2 / 2 / span 1 / span 2; }
.preterna-mosaic__cell--brakes       { grid-area: 2 / 4 / span 1 / span 2; }
.preterna-mosaic__cell--body         { grid-area: 2 / 6 / span 1 / span 3; }

.preterna-collection-tile {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--outline-soft);
	text-decoration: none;
	color: inherit;
	isolation: isolate;
	container-type: size;       /* enable size-based @container queries */
	transition: border-color var(--pt-dur) var(--pt-ease),
	            transform     var(--pt-dur) var(--pt-ease),
	            box-shadow    var(--pt-dur) var(--pt-ease);
}
.preterna-collection-tile:hover,
.preterna-collection-tile:focus-visible {
	border-color: var(--wp--preset--color--accent);
	transform: translateY(-2px);
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.55), 0 0 0 1px var(--wp--preset--color--accent);
}

.preterna-collection-tile__image {
	position: absolute;
	/* Slightly larger than the tile so a subtle parallax shift never reveals
	 * the surface underneath. */
	inset: -8% -3% -8% -3%;
	background-size: cover;
	background-position: center;
	transform: translate3d(0, calc(var(--mosaic-parallax, 0) * -10px), 0);
	transition: transform var(--pt-dur-slow) var(--pt-ease),
	            filter var(--pt-dur) var(--pt-ease);
	z-index: 1;
	will-change: transform;
}
.preterna-collection-tile::before {
	/* Permanent vignette so the bottom label stays legible. */
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,0.72) 100%);
	z-index: 2;
	transition: opacity var(--pt-dur) var(--pt-ease);
	pointer-events: none;
}
.preterna-collection-tile:hover .preterna-collection-tile__image {
	transform: translate3d(0, calc(var(--mosaic-parallax, 0) * -10px), 0) scale(1.06);
	filter: brightness(0.7);
}
.preterna-collection-tile:hover::before { opacity: 0; }

.preterna-collection-tile__base {
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: 20px;
	z-index: 3;
	display: flex;
	flex-direction: column;
	gap: 4px;
	color: var(--wp--preset--color--foreground);
	transition: opacity var(--pt-dur) var(--pt-ease),
	            transform var(--pt-dur) var(--pt-ease);
}
.preterna-collection-tile__index {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.72rem;
	letter-spacing: 0.18em;
	color: var(--wp--preset--color--accent);
	text-transform: uppercase;
}
.preterna-collection-tile__name {
	font-size: clamp(1.05rem, 1.4vw, 1.35rem);
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1.15;
	text-shadow: 0 2px 10px rgba(0,0,0,0.55);
	overflow-wrap: anywhere;
	word-break: break-word;
	hyphens: auto;
}
.preterna-collection-tile:hover .preterna-collection-tile__base {
	opacity: 0;
	transform: translateY(6px);
}

.preterna-collection-tile__overlay {
	position: absolute;
	inset: 0;
	z-index: 4;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 18px;
	text-align: center;
	color: #fff;
	background: linear-gradient(180deg, rgba(140, 28, 42, 0.62) 0%, rgba(108, 18, 30, 0.72) 100%);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	opacity: 0;
	visibility: hidden;
	transform: scale(0.985);
	transition: opacity var(--pt-dur) var(--pt-ease),
	            transform var(--pt-dur) var(--pt-ease),
	            visibility 0s linear var(--pt-dur);
}
.preterna-collection-tile:hover .preterna-collection-tile__overlay,
.preterna-collection-tile:focus-visible .preterna-collection-tile__overlay {
	opacity: 1;
	visibility: visible;
	transform: scale(1);
	transition: opacity var(--pt-dur) var(--pt-ease),
	            transform var(--pt-dur) var(--pt-ease),
	            visibility 0s linear 0s;
}

.preterna-collection-tile__icon {
	width: clamp(38px, 4.5vw, 56px);
	height: clamp(38px, 4.5vw, 56px);
	color: #fff;
	margin-bottom: 4px;
	filter: drop-shadow(0 2px 6px rgba(0,0,0,0.35));
}

.preterna-collection-tile__title {
	font-size: clamp(1.1rem, 1.6vw, 1.5rem);
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1.1;
}
.preterna-collection-tile__sub {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.85;
}
.preterna-collection-tile__cta {
	margin-top: 6px;
	padding: 8px 18px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.74rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #fff;
	border: 1px solid rgba(255,255,255,0.7);
	background: rgba(255,255,255,0.06);
	transition: background var(--pt-dur-fast) var(--pt-ease),
	            border-color var(--pt-dur-fast) var(--pt-ease);
}
.preterna-collection-tile:hover .preterna-collection-tile__cta {
	background: rgba(255,255,255,0.16);
	border-color: #fff;
}

/* ---- Adaptive overlay per tile size (container queries) ---------------- */

/* Very narrow tiles (1-column strips like Transmission / Wheels) — */
/* icon + name only, shrunk font in both base and overlay */
@container (max-width: 200px) {
	.preterna-collection-tile__sub,
	.preterna-collection-tile__cta { display: none; }
	.preterna-collection-tile__icon { width: 32px; height: 32px; margin-bottom: 0; }
	.preterna-collection-tile__title { font-size: 0.9rem; }
	.preterna-collection-tile__overlay { gap: 6px; padding: 10px; }
	.preterna-collection-tile__base { left: 12px; right: 12px; bottom: 12px; }
	.preterna-collection-tile__name { font-size: 0.82rem; letter-spacing: 0.02em; }
	.preterna-collection-tile__index { font-size: 0.62rem; }
}

/* Short and wide tiles (2:1 banner — Body / Chassis / Interior rows) — */
/* lay icon and content side-by-side */
@container (min-aspect-ratio: 1.6) {
	.preterna-collection-tile__overlay {
		flex-direction: row;
		justify-content: flex-start;
		text-align: left;
		gap: 16px;
		padding: 16px 22px;
	}
	.preterna-collection-tile__icon {
		width: 42px; height: 42px;
		margin: 0;
		flex-shrink: 0;
	}
	.preterna-collection-tile__overlay > :not(.preterna-collection-tile__icon) {
		max-width: none;
	}
	.preterna-collection-tile__sub { display: none; }
	.preterna-collection-tile__cta { margin-left: auto; margin-top: 0; }
}

/* ---- Touch / no-hover devices: show the overlay collapsed at bottom ---- */
@media (hover: none) {
	.preterna-collection-tile__overlay {
		opacity: 1;
		visibility: visible;
		transform: none;
		background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(140, 28, 42, 0.72) 100%);
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		justify-content: flex-end;
		padding-bottom: 16px;
	}
	.preterna-collection-tile__icon { display: none; }
	.preterna-collection-tile__sub { display: none; }
	.preterna-collection-tile__base { display: none; }
}

/* ---- Tablet / mobile: collapse the mosaic to a simple 2-col stack ------ */
@media (max-width: 900px) {
	.preterna-mosaic {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: none;
		aspect-ratio: auto;
		gap: 10px;
	}
	/* Reset all grid positions */
	.preterna-mosaic > .preterna-collection-tile {
		grid-area: auto !important;
		aspect-ratio: 1 / 1;
	}
	/* The hero tile (Engine) keeps a full-width emphasis */
	.preterna-mosaic__cell--engine {
		grid-column: 1 / -1 !important;
		aspect-ratio: 16 / 10 !important;
	}
}
@media (max-width: 520px) {
	.preterna-mosaic { grid-template-columns: 1fr; }
	.preterna-mosaic > .preterna-collection-tile { aspect-ratio: 4 / 3; }
}

/* ==========================================================================
   Blog & long-form reading
   ========================================================================== */

/* ---- Blog index grid ---- */
.preterna-post-grid {
	gap: clamp(32px, 4vw, 56px) clamp(24px, 3vw, 40px) !important;
}
.preterna-post-card {
	padding-top: 24px;
	transition: transform var(--pt-dur) var(--pt-ease);
}
.preterna-post-card:hover {
	transform: translateY(-3px);
}
.preterna-post-card .wp-block-post-featured-image img {
	width: 100%;
	object-fit: cover;
	transition: opacity var(--pt-dur) var(--pt-ease), filter var(--pt-dur) var(--pt-ease);
}
.preterna-post-card:hover .wp-block-post-featured-image img {
	filter: brightness(1.08) contrast(1.02);
}
.preterna-post-card .wp-block-post-title a {
	color: var(--wp--preset--color--foreground);
	text-decoration: none;
	transition: color var(--pt-dur-fast) var(--pt-ease);
}
.preterna-post-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--accent);
}

/* ---- Single-post hero ---- */
.preterna-post-hero {
	margin-block: 0 !important;
}
.preterna-post-hero .wp-block-cover__inner-container {
	width: 100%;
	max-width: 1080px;
	margin-inline: auto;
	display: flex;
	align-items: flex-end;
	min-height: inherit;
}
.preterna-post-hero .wp-block-post-title {
	max-width: 18ch;
	margin: 0;
	font-size: clamp(2.2rem, 5.5vw, 4.4rem) !important;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.55);
}
.preterna-post-hero .wp-block-post-excerpt {
	max-width: 60ch;
	font-style: italic;
	opacity: 0.92;
}
.preterna-post-hero .wp-block-post-excerpt__more-link { display: none; }

/* ---- Long-form body typography ---- */
.preterna-post-body {
	font-size: clamp(1.0625rem, 1.05vw, 1.18rem);
	line-height: 1.78;
}
.preterna-post-body .wp-block-post-content {
	color: var(--wp--preset--color--foreground);
}
.preterna-post-body .wp-block-post-content > * + * {
	margin-block-start: 1.4em;
}
.preterna-post-body h2.wp-block-heading {
	margin-block: 1.8em 0.4em;
	font-size: clamp(1.6rem, 2.6vw, 2.2rem);
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1.18;
	border-top: 1px solid var(--wp--preset--color--outline-soft);
	padding-top: 1.2em;
}
.preterna-post-body h3.wp-block-heading {
	margin-block: 1.4em 0.3em;
	font-size: clamp(1.2rem, 1.7vw, 1.45rem);
	font-weight: 500;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--foreground);
}
.preterna-post-body p {
	color: var(--wp--preset--color--foreground);
}
.preterna-post-body ul,
.preterna-post-body ol {
	padding-inline-start: 1.2em;
}
.preterna-post-body li + li {
	margin-top: 0.5em;
}
.preterna-post-body li::marker {
	color: var(--wp--preset--color--accent);
	font-weight: 600;
}
.preterna-post-body a:not(.wp-element-button) {
	color: var(--wp--preset--color--accent);
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	transition: color var(--pt-dur-fast) var(--pt-ease);
}
.preterna-post-body a:not(.wp-element-button):hover {
	color: var(--wp--preset--color--foreground);
}

/* Drop cap */
.preterna-post-body .has-drop-cap::first-letter {
	font-size: 4.2em;
	float: left;
	line-height: 0.9;
	margin: 0.1em 0.14em 0 0;
	color: var(--wp--preset--color--accent);
	font-weight: 500;
}

/* Pull-quote */
.is-style-preterna-pull-quote {
	border-left: 2px solid var(--wp--preset--color--accent);
	padding: 0.4em 0 0.4em 1.4em;
	margin-block: 2em !important;
	font-size: 1.18em;
	font-style: italic;
	color: var(--wp--preset--color--foreground);
	line-height: 1.5;
}
.is-style-preterna-pull-quote p {
	margin: 0;
}

/* Data tables (spec-sheet feel) */
.is-style-preterna-data-table {
	margin-block: 2em !important;
}
.is-style-preterna-data-table table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.92em;
	letter-spacing: 0.01em;
}
.is-style-preterna-data-table th,
.is-style-preterna-data-table td {
	border-top: 1px solid var(--wp--preset--color--outline-soft);
	padding: 14px 18px;
	text-align: left;
	vertical-align: top;
}
.is-style-preterna-data-table thead th {
	color: var(--wp--preset--color--accent);
	text-transform: uppercase;
	font-size: 0.78em;
	letter-spacing: 0.08em;
	border-top: none;
	border-bottom: 1px solid var(--wp--preset--color--outline-soft);
	padding-bottom: 12px;
}
.is-style-preterna-data-table tbody tr:hover {
	background: rgba(140, 28, 42, 0.04);
}

/* Spec-list */
.is-style-preterna-spec-list {
	list-style: none;
	padding-inline-start: 0 !important;
}
.is-style-preterna-spec-list li {
	position: relative;
	padding: 14px 0 14px 28px;
	border-top: 1px solid var(--wp--preset--color--outline-soft);
}
.is-style-preterna-spec-list li:last-child {
	border-bottom: 1px solid var(--wp--preset--color--outline-soft);
}
.is-style-preterna-spec-list li::before {
	content: "/";
	position: absolute;
	left: 0;
	top: 14px;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 600;
}

/* Tag chips */
.preterna-post-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
}
.preterna-post-tags a {
	display: inline-block;
	padding: 6px 12px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground-muted);
	border: 1px solid var(--wp--preset--color--outline-soft);
	text-decoration: none;
	transition: all var(--pt-dur-fast) var(--pt-ease);
}
.preterna-post-tags a:hover {
	color: var(--wp--preset--color--foreground);
	border-color: var(--wp--preset--color--accent);
	background: rgba(140, 28, 42, 0.08);
}

/* Reading time chip */
.preterna-reading-time { margin: 0; }

/* Related-articles grid */
.preterna-post-body + section .wp-block-post-template,
section .preterna-post-grid {
	gap: 24px !important;
}

/* Smaller screens */
@media (max-width: 720px) {
	.preterna-post-hero { min-height: 56vh !important; }
	.preterna-post-hero .wp-block-post-title {
		font-size: clamp(2rem, 8vw, 3rem) !important;
	}
	.preterna-post-body h2.wp-block-heading {
		font-size: 1.5rem;
		padding-top: 0.9em;
	}
}

/* ======================================================================
 * Faceted shop — filter rail + uniform cards + infinite scroll
 * ==================================================================== */
.preterna-shop {
	display: grid;
	grid-template-columns: 264px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
	margin-top: 18px;
}

/* ---- Filter rail ---------------------------------------------------- */
.preterna-shop__rail {
	position: sticky;
	top: 96px;
	max-height: calc(100vh - 120px);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding-right: 6px;
	border-right: 1px solid var(--wp--preset--color--outline-soft);
	padding-bottom: 24px;
}
.preterna-shop__rail-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}
.preterna-shop__rail-head .is-style-preterna-mono-label { margin: 0; flex: 1 1 auto; }
.preterna-shop__clear {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	margin-bottom: 14px;
	background: rgba(140, 28, 42, 0.12);
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 7px;
	color: var(--wp--preset--color--foreground);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	padding: 11px 14px;
	transition: background var(--pt-dur) var(--pt-ease), color var(--pt-dur) var(--pt-ease), border-color var(--pt-dur) var(--pt-ease), opacity var(--pt-dur) var(--pt-ease);
}
.preterna-shop__clear svg { flex: 0 0 auto; }
.preterna-shop__clear:hover {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}
.preterna-shop__clear.is-empty {
	opacity: 0.9;
	background: rgba(140, 28, 42, 0.12);
	color: var(--wp--preset--color--foreground);
}
.preterna-shop__clear.is-empty:hover {
	opacity: 1;
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}
.preterna-shop__rail-close { display: none; }

/* Prominent Category facet — open, emphasised, full list visible. */
.preterna-facet--prominent {
	border-top: 0;
	background: var(--wp--preset--color--surface-low);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 8px;
	padding: 4px 12px;
	margin-bottom: 14px;
}
.preterna-facet--prominent .preterna-facet__summary { color: var(--wp--preset--color--foreground); font-size: 12.5px; }
.preterna-facet--prominent .preterna-facet__list { max-height: none; }
.preterna-facet--prominent .preterna-facet__name { font-size: 14px; }

.preterna-facet {
	border-top: 1px solid var(--wp--preset--color--outline-soft);
	padding: 4px 0;
}
.preterna-facet__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	list-style: none;
	padding: 12px 2px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground);
	user-select: none;
}
.preterna-facet__summary::-webkit-details-marker { display: none; }
.preterna-facet__chevron { transition: transform var(--pt-dur) var(--pt-ease); color: var(--wp--preset--color--outline); }
.preterna-facet[open] .preterna-facet__chevron { transform: rotate(180deg); }
.preterna-facet__body { padding: 2px 2px 14px; }
.preterna-facet__search {
	width: 100%;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 6px;
	color: var(--wp--preset--color--foreground);
	font-size: 13px;
	padding: 8px 10px;
	margin-bottom: 10px;
}
.preterna-facet__search:focus { outline: none; border-color: var(--wp--preset--color--accent); }
.preterna-facet__list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 232px;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.preterna-facet__list::-webkit-scrollbar { width: 8px; }
.preterna-facet__list::-webkit-scrollbar-thumb { background: var(--wp--preset--color--surface-high); border-radius: 8px; }
.preterna-facet__item { margin: 0; }
.preterna-facet__item.is-hidden { display: none; }
.preterna-facet__item label {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 6px 4px;
	cursor: pointer;
	border-radius: 5px;
	transition: background var(--pt-dur) var(--pt-ease);
}
.preterna-facet__item label:hover { background: var(--wp--preset--color--surface); }
.preterna-facet__item input {
	appearance: none;
	-webkit-appearance: none;
	width: 15px; height: 15px;
	flex: 0 0 auto;
	border: 1px solid var(--wp--preset--color--outline);
	border-radius: 3px;
	background: transparent;
	cursor: pointer;
	position: relative;
	transition: background var(--pt-dur) var(--pt-ease), border-color var(--pt-dur) var(--pt-ease);
}
.preterna-facet__item input:checked {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
}
.preterna-facet__item input:checked::after {
	content: "";
	position: absolute;
	left: 4px; top: 1px;
	width: 4px; height: 8px;
	border: solid var(--wp--preset--color--on-accent);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.preterna-facet__name {
	flex: 1 1 auto;
	font-size: 13.5px;
	color: var(--wp--preset--color--foreground-muted);
	line-height: 1.3;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.preterna-facet__item input:checked + .preterna-facet__name { color: var(--wp--preset--color--foreground); }
.preterna-facet__count {
	flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10.5px;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--outline);
}

/* ---- Hierarchical vehicle facet (make → model) ---------------------- */
.preterna-facet__item--parent {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
.preterna-facet__item--parent > label { flex: 1 1 auto; min-width: 0; }
.preterna-facet__expand {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	margin-left: 2px;
	padding: 0;
	background: none;
	border: 0;
	color: var(--wp--preset--color--outline);
	cursor: pointer;
	border-radius: 5px;
	transition: background var(--pt-dur) var(--pt-ease), color var(--pt-dur) var(--pt-ease);
}
.preterna-facet__expand:hover {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground);
}
.preterna-facet__expand svg { transition: transform var(--pt-dur) var(--pt-ease); }
.preterna-facet__item--parent.is-open > .preterna-facet__expand svg { transform: rotate(180deg); }
.preterna-facet__subs {
	list-style: none;
	flex-basis: 100%;
	margin: 0 0 2px 13px;
	padding: 2px 0 4px 7px;
	border-left: 1px solid var(--wp--preset--color--outline-soft);
}
.preterna-facet__subs[hidden] { display: none; }
.preterna-facet__subitem label { padding: 4px 4px; }
.preterna-facet__subitem .preterna-facet__name { font-size: 12.5px; }

/* ---- Toolbar -------------------------------------------------------- */
.preterna-shop__main { min-width: 0; }
.preterna-shop__toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 0 0 16px;
	border-bottom: 1px solid var(--wp--preset--color--outline-soft);
	margin-bottom: 22px;
}
.preterna-shop__count { margin: 0; color: var(--wp--preset--color--foreground-muted); font-size: 12px; }
.preterna-shop__count strong { color: var(--wp--preset--color--foreground); font-weight: 600; }
.preterna-shop__sort-select {
	appearance: none;
	-webkit-appearance: none;
	background: var(--wp--preset--color--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='m6 9 6 6 6-6' stroke='%238e9192' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center;
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 6px;
	color: var(--wp--preset--color--foreground);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 9px 34px 9px 14px;
	cursor: pointer;
}
.preterna-shop__sort-select:focus { outline: none; border-color: var(--wp--preset--color--accent); }

/* ---- Active filter chips ------------------------------------------- */
.preterna-shop__active {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}
.preterna-chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: var(--wp--preset--color--surface-high);
	color: var(--wp--preset--color--foreground);
	border: 0;
	border-radius: 20px;
	padding: 6px 10px 6px 13px;
	font-size: 12.5px;
	cursor: pointer;
	transition: background var(--pt-dur) var(--pt-ease);
}
.preterna-chip:hover { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--on-accent); }
.preterna-chip svg { width: 12px; height: 12px; }

/* ---- Product grid (uniform cards) ---------------------------------- */
.preterna-shop__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(212px, 1fr));
	gap: 14px;
}
.pt-card {
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--surface-low);
	box-shadow: inset 0 0 0 1px rgba(142, 145, 146, 0.16);
	text-decoration: none;
	overflow: hidden;
	transition: box-shadow var(--pt-dur) var(--pt-ease), transform var(--pt-dur) var(--pt-ease);
}
.pt-card:hover {
	box-shadow: inset 0 0 0 1px rgba(178, 44, 62, 0.55);
	transform: translateY(-2px);
}
.pt-card__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
}
.pt-card__img,
.pt-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform var(--pt-dur-slow) var(--pt-ease);
}
.pt-card:hover .pt-card__img,
.pt-card:hover .pt-card__media img { transform: scale(1.05); }
.pt-card__noimg {
	position: absolute;
	inset: 0;
	background:
		repeating-linear-gradient(45deg, var(--wp--preset--color--surface) 0 10px, var(--wp--preset--color--surface-low) 10px 20px);
}
.pt-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 13px 14px 14px;
	gap: 7px;
}
.pt-card__brand {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-glow);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.pt-card__title {
	font-size: 13px;
	line-height: 1.32;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(1.32em * 2);
}
.pt-card__foot {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin-top: auto;
	padding-top: 6px;
}
.pt-card__price {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 13px;
	color: var(--wp--preset--color--foreground);
	font-weight: 600;
}
.pt-card__price del { color: var(--wp--preset--color--foreground-muted); opacity: 0.5; margin-right: 5px; font-weight: 400; }
.pt-card__price ins { text-decoration: none; color: var(--wp--preset--color--accent-glow); }
.pt-card__cta {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--outline);
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity var(--pt-dur) var(--pt-ease), transform var(--pt-dur) var(--pt-ease), color var(--pt-dur) var(--pt-ease);
}
.pt-card:hover .pt-card__cta { opacity: 1; transform: none; color: var(--wp--preset--color--accent-glow); }

/* appended-card fade-in */
.pt-card.is-new { animation: pt-card-in 0.45s var(--pt-ease) both; }
@keyframes pt-card-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ---- Empty / loader / end ------------------------------------------ */
.preterna-shop__empty {
	padding: 60px 0;
	text-align: center;
	color: var(--wp--preset--color--foreground-muted);
}
.preterna-shop__sentinel { height: 1px; }
.preterna-shop__loader {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 34px 0;
	color: var(--wp--preset--color--foreground-muted);
	font-size: 12px;
}
.preterna-shop__spinner {
	width: 18px; height: 18px;
	border: 2px solid var(--wp--preset--color--surface-highest);
	border-top-color: var(--wp--preset--color--accent-glow);
	border-radius: 50%;
	animation: pt-spin 0.7s linear infinite;
}
@keyframes pt-spin { to { transform: rotate(360deg); } }
.preterna-shop__end { text-align: center; padding: 30px 0; color: var(--wp--preset--color--outline); font-size: 11px; }

/* ---- Mobile filter toggle / drawer --------------------------------- */
.preterna-shop__filter-toggle {
	display: none;
	align-items: center;
	gap: 8px;
	background: var(--wp--preset--color--surface-high);
	color: var(--wp--preset--color--foreground);
	border: 1px solid var(--wp--preset--color--outline-soft);
	border-radius: 6px;
	padding: 11px 16px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}

@media (max-width: 980px) {
	.preterna-shop { grid-template-columns: 1fr; gap: 0; }
	.preterna-shop__filter-toggle { display: inline-flex; margin-bottom: 18px; }
	.preterna-shop__rail {
		position: fixed;
		top: 0; left: 0; bottom: 0;
		width: min(86vw, 340px);
		max-height: none;
		background: var(--wp--preset--color--background);
		border-right: 1px solid var(--wp--preset--color--outline-soft);
		padding: 22px 18px;
		z-index: 1200;
		transform: translateX(-102%);
		transition: transform var(--pt-dur) var(--pt-ease);
		box-shadow: 24px 0 60px rgba(0,0,0,0.5);
	}
	body.shop-filtering .preterna-shop__rail { transform: none; }
	body.shop-filtering::after {
		content: "";
		position: fixed;
		inset: 0;
		background: rgba(0,0,0,0.5);
		z-index: 1199;
	}
	.preterna-shop__rail-close { display: inline-flex; background: none; border: 0; color: var(--wp--preset--color--foreground); cursor: pointer; padding: 4px; }
}

@media (max-width: 560px) {
	.preterna-shop__grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
	.pt-card__title { font-size: 12px; }
	.preterna-shop__toolbar { flex-wrap: wrap; }
}
