/* =============================================================================
   3DCrafted — main.css
   Design system: Industrial Precision / Digital Schematic
   ============================================================================= */

/* 1. Custom properties (design tokens)
   --------------------------------------------------------------------------- */
:root {
	/* Brand colors */
	--color-primary:           #260700;
	--color-primary-container: #481500;
	--color-on-primary:        #ffffff;
	--color-on-primary-container: #f45b00;
	--color-surface-tint:      #a63b00;

	--color-secondary:         #5f5e5e;
	--color-on-secondary:      #ffffff;

	--color-tertiary:          #000d3a;
	--color-tertiary-fixed:    #dce1ff;
	--color-on-tertiary-container: #6385ff;

	/* Surfaces */
	--color-background:              #f9f9f9;
	--color-surface:                 #f9f9f9;
	--color-surface-lowest:          #ffffff;
	--color-surface-low:             #f3f3f3;
	--color-surface-container:       #eeeeee;
	--color-surface-high:            #e8e8e8;
	--color-surface-highest:         #e2e2e2;
	--color-surface-dim:             #dadada;

	/* Text */
	--color-on-surface:         #1a1c1c;
	--color-on-surface-variant: #444748;

	/* Outline */
	--color-outline:         #747878;
	--color-outline-variant: #c4c7c7;

	/* Error */
	--color-error:           #ba1a1a;
	--color-error-container: #ffdad6;

	/* Orange accent (CTA) */
	--color-accent: #f45b00;

	/* Gradients */
	--gradient-primary: linear-gradient(135deg, var(--color-on-primary-container), var(--color-surface-tint));

	/* Typography */
	--font-headline: 'Space Grotesk', system-ui, sans-serif;
	--font-body:     'Inter', system-ui, sans-serif;
	--font-label:    'Manrope', system-ui, sans-serif;

	/* Type scale */
	--text-display-lg:  3.5rem;
	--text-display-md:  2.75rem;
	--text-display-sm:  2rem;
	--text-headline-lg: 1.75rem;
	--text-headline-md: 1.5rem;
	--text-headline-sm: 1.25rem;
	--text-body-lg:     1.125rem;
	--text-body-md:     1rem;
	--text-body-sm:     0.875rem;
	--text-label-lg:    0.875rem;
	--text-label-md:    0.75rem;
	--text-label-sm:    0.6875rem;

	/* Spacing */
	--space-1:  0.25rem;
	--space-2:  0.5rem;
	--space-3:  0.75rem;
	--space-4:  1rem;
	--space-5:  1.25rem;
	--space-6:  1.5rem;
	--space-8:  2rem;
	--space-10: 2.5rem;
	--space-12: 3rem;
	--space-16: 4rem;
	--space-20: 5rem;
	--space-24: 6rem;

	/* Layout */
	--container-max: 1280px;
	--container-pad: clamp(1rem, 5vw, 3rem);

	/* No radius — industrial precision */
	--radius: 0px;

	/* Transitions */
	--transition-fast: 150ms ease;
	--transition-base: 250ms ease;
}

/* 2. Reset & base
   --------------------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background-color: var(--color-background);
	color: var(--color-on-surface);
	font-family: var(--font-body);
	font-size: var(--text-body-md);
	line-height: 1.6;
}

img,
video,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: var(--color-on-primary-container);
	text-decoration: none;
}

a:hover,
a:focus-visible {
	text-decoration: underline;
}

:focus-visible {
	outline: 2px solid var(--color-on-primary-container);
	outline-offset: 3px;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-headline);
	font-weight: 700;
	line-height: 1.1;
	margin: 0 0 var(--space-4);
	color: var(--color-on-surface);
}

p {
	margin: 0 0 var(--space-4);
}

ul, ol {
	padding-left: var(--space-6);
}

/* 3. Accessibility utilities
   --------------------------------------------------------------------------- */
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
	word-wrap: normal;
}

.skip-link {
	position: absolute;
	top: -100%;
	left: var(--space-4);
	z-index: 9999;
	padding: var(--space-2) var(--space-4);
	background: var(--color-primary-container);
	color: var(--color-on-primary);
}

.skip-link:focus {
	top: var(--space-4);
	clip: auto;
	clip-path: none;
	height: auto;
	width: auto;
}

/* 4. Layout helpers
   --------------------------------------------------------------------------- */
.container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-pad);
}

/* 5. Technical grid background (blueprint aesthetic)
   --------------------------------------------------------------------------- */
.technical-grid {
	background-image: radial-gradient(circle, var(--color-outline-variant) 1px, transparent 1px);
	background-size: 20px 20px;
}

/* 6. Site header
   --------------------------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background-color: var(--color-surface-lowest);
	border-bottom: 1px solid rgba(116, 120, 120, 0.15);
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: var(--space-6);
	height: 64px;
}

.site-header__brand {
	flex-shrink: 0;
}

.site-header__site-name {
	font-family: var(--font-headline);
	font-size: var(--text-headline-sm);
	font-weight: 700;
	color: var(--color-on-surface);
	text-decoration: none;
	letter-spacing: -0.02em;
}

.site-header__site-name:hover {
	text-decoration: none;
	color: var(--color-on-primary-container);
}

/* Navigation */
.site-nav {
	flex: 1;
}

.site-nav__list {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: var(--space-6);
}

.site-nav__list a {
	font-family: var(--font-label);
	font-size: var(--text-label-lg);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--color-on-surface-variant);
	text-decoration: none;
	transition: color var(--transition-fast);
}

.site-nav__list a:hover,
.site-nav__list .current-menu-item > a,
.site-nav__list .current-menu-parent > a {
	color: var(--color-on-primary-container);
	text-decoration: none;
}

/* Header actions */
.site-header__actions {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	margin-left: auto;
}

.site-header__cart-link,
.site-header__account-link {
	display: flex;
	align-items: center;
	gap: var(--space-1);
	color: var(--color-on-surface);
	text-decoration: none;
	transition: color var(--transition-fast);
}

.site-header__cart-link:hover,
.site-header__account-link:hover {
	color: var(--color-on-primary-container);
	text-decoration: none;
}

.cart-count {
	font-family: var(--font-label);
	font-size: var(--text-label-md);
	font-weight: 700;
	background: var(--color-on-primary-container);
	color: var(--color-on-primary);
	min-width: 20px;
	height: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 var(--space-1);
}

/* Mobile toggle */
.site-header__menu-toggle {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: var(--space-2);
	color: var(--color-on-surface);
}

/* 7. Buttons
   --------------------------------------------------------------------------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	padding: var(--space-3) var(--space-6);
	font-family: var(--font-label);
	font-size: var(--text-label-lg);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	cursor: pointer;
	transition: opacity var(--transition-fast), background var(--transition-fast);
	border: none;
	border-radius: var(--radius);
	text-decoration: none;
}

.btn--primary {
	background: var(--gradient-primary);
	color: var(--color-on-primary);
}

.btn--primary:hover,
.btn--primary:focus-visible {
	opacity: 0.9;
	text-decoration: none;
	color: var(--color-on-primary);
}

.btn--secondary {
	background: var(--color-surface-highest);
	color: var(--color-on-surface);
}

.btn--secondary:hover,
.btn--secondary:focus-visible {
	background: var(--color-surface-high);
	text-decoration: none;
	color: var(--color-on-surface);
}

.btn--tertiary {
	background: none;
	color: var(--color-on-tertiary-container);
	padding-left: 0;
	padding-right: 0;
	position: relative;
}

.btn--tertiary::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 100%;
	height: 2px;
	background: var(--color-on-tertiary-container);
	transition: right var(--transition-fast);
}

.btn--tertiary:hover::after,
.btn--tertiary:focus-visible::after {
	right: 0;
}

/* 8. Content areas
   --------------------------------------------------------------------------- */
.site-main {
	padding-block: var(--space-16);
}

.entry-content {
	max-width: 72ch;
}

.entry-content > * + * {
	margin-top: var(--space-4);
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
	margin-top: var(--space-8);
}

/* 9. Post grid
   --------------------------------------------------------------------------- */
.post-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: var(--space-8);
}

/* 10. Post card
   --------------------------------------------------------------------------- */
.post-card {
	background: var(--color-surface-lowest);
	display: flex;
	flex-direction: column;
}

.post-card .post-thumbnail,
.post-card__thumbnail-link img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.post-card__body {
	padding: var(--space-6);
	display: flex;
	flex-direction: column;
	flex: 1;
}

.post-card__title {
	font-size: var(--text-headline-sm);
	margin-bottom: var(--space-3);
}

.post-card__title a {
	color: var(--color-on-surface);
	text-decoration: none;
}

.post-card__title a:hover {
	color: var(--color-on-primary-container);
}

.post-card__excerpt {
	flex: 1;
	font-size: var(--text-body-sm);
	color: var(--color-on-surface-variant);
	margin-bottom: var(--space-4);
}

/* 11. Archive header
   --------------------------------------------------------------------------- */
.archive-header,
.search-header {
	margin-bottom: var(--space-12);
}

.archive-header__title,
.search-header__title {
	font-size: var(--text-display-sm);
}

.search-header__query {
	color: var(--color-on-primary-container);
}

.archive-header__description {
	color: var(--color-on-surface-variant);
	margin-top: var(--space-3);
}

/* 12. 404 page
   --------------------------------------------------------------------------- */
.error-404 {
	max-width: 640px;
	padding-block: var(--space-24);
}

.error-404__code {
	font-family: var(--font-label);
	font-size: var(--text-label-md);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-on-primary-container);
	margin-bottom: var(--space-2);
}

.error-404__title {
	font-size: var(--text-display-md);
	margin-bottom: var(--space-4);
}

.error-404__description {
	color: var(--color-on-surface-variant);
	margin-bottom: var(--space-8);
}

.error-404__search {
	margin-bottom: var(--space-6);
}

/* 13. Pagination
   --------------------------------------------------------------------------- */
.navigation.pagination {
	margin-top: var(--space-16);
}

.nav-links {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	flex-wrap: wrap;
}

.nav-links a,
.nav-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding-inline: var(--space-3);
	font-family: var(--font-label);
	font-size: var(--text-label-lg);
	font-weight: 600;
	background: var(--color-surface-container);
	color: var(--color-on-surface);
	text-decoration: none;
	transition: background var(--transition-fast), color var(--transition-fast);
}

.nav-links .current {
	background: var(--color-primary-container);
	color: var(--color-on-primary);
}

.nav-links a:hover {
	background: var(--color-surface-high);
	color: var(--color-on-surface);
	text-decoration: none;
}

/* 14. Breadcrumb
   --------------------------------------------------------------------------- */
.breadcrumb {
	margin-bottom: var(--space-8);
}

.breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: var(--space-2);
	font-family: var(--font-label);
	font-size: var(--text-label-md);
	color: var(--color-on-surface-variant);
}

.breadcrumb a {
	color: var(--color-on-surface-variant);
}

.breadcrumb a:hover {
	color: var(--color-on-primary-container);
}

.breadcrumb__sep {
	color: var(--color-outline-variant);
}

/* 15. Search form
   --------------------------------------------------------------------------- */
.search-form {
	display: flex;
}

.search-field {
	flex: 1;
	padding: var(--space-3) var(--space-4);
	background: transparent;
	border: none;
	border-bottom: 2px solid var(--color-outline);
	font-family: var(--font-body);
	font-size: var(--text-body-md);
	color: var(--color-on-surface);
	outline: none;
	transition: border-color var(--transition-fast);
}

.search-field:focus {
	border-bottom-color: var(--color-on-primary-container);
	border-bottom-width: 2px;
}

.search-submit {
	background: var(--color-primary-container);
	color: var(--color-on-primary);
	border: none;
	padding: var(--space-3) var(--space-6);
	font-family: var(--font-label);
	font-size: var(--text-label-lg);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	cursor: pointer;
	transition: opacity var(--transition-fast);
}

.search-submit:hover {
	opacity: 0.9;
}

/* 16. Footer
   --------------------------------------------------------------------------- */
.site-footer {
	background: var(--color-surface-container);
	margin-top: auto;
}

.site-footer__widgets {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--space-12);
	padding-block: var(--space-16);
}

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding-block: var(--space-6);
	border-top: 1px solid rgba(116, 120, 120, 0.15);
}

.site-footer__credit {
	font-family: var(--font-label);
	font-size: var(--text-label-md);
	color: var(--color-on-surface-variant);
	margin: 0;
}

.footer-nav__list {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: var(--space-4) var(--space-6);
}

.footer-nav__list a {
	font-family: var(--font-label);
	font-size: var(--text-label-md);
	color: var(--color-on-surface-variant);
	text-decoration: none;
}

.footer-nav__list a:hover {
	color: var(--color-on-primary-container);
}

/* 17. Widgets
   --------------------------------------------------------------------------- */
.widget {
	font-size: var(--text-body-sm);
}

.widget__title {
	font-family: var(--font-label);
	font-size: var(--text-label-md);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--color-on-surface-variant);
	margin-bottom: var(--space-4);
}

.widget ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.widget ul li {
	padding-block: var(--space-2);
}

.widget ul li a {
	color: var(--color-on-surface);
}

.widget ul li a:hover {
	color: var(--color-on-primary-container);
	text-decoration: none;
}

/* 18. No results
   --------------------------------------------------------------------------- */
.no-results {
	padding-block: var(--space-20);
	max-width: 560px;
}

.no-results__title {
	font-size: var(--text-display-sm);
	margin-bottom: var(--space-4);
}

/* 19. Responsive
   --------------------------------------------------------------------------- */
@media (max-width: 768px) {
	.site-header__menu-toggle {
		display: flex;
	}

	.site-nav {
		display: none;
		position: absolute;
		top: 64px;
		left: 0;
		right: 0;
		background: var(--color-surface-lowest);
		padding: var(--space-4) var(--container-pad);
		border-bottom: 1px solid rgba(116, 120, 120, 0.15);
		z-index: 99;
	}

	.site-nav.is-open {
		display: block;
	}

	.site-nav__list {
		flex-direction: column;
		gap: var(--space-2);
	}

	.site-nav__list a {
		display: block;
		padding-block: var(--space-3);
	}

	.site-header {
		position: relative;
	}

	:root {
		--text-display-lg: 2.5rem;
		--text-display-md: 2rem;
		--text-display-sm: 1.75rem;
	}
}

@media (max-width: 480px) {
	.post-grid {
		grid-template-columns: 1fr;
	}
}

/* =============================================================================
   20. Site header — updated design
   ============================================================================= */

.site-header__inner {
	padding-inline: var(--space-8);
}

.site-header__rule {
	height: 1px;
	background: var(--color-surface-low);
}

.site-header__brand .custom-logo-link,
.site-header__brand .custom-logo-link:hover {
	text-decoration: none;
}

.site-header__brand .custom-logo {
	height: 32px;
	width: auto;
}

/* Nav active state underline */
.site-nav__list a {
	padding-bottom: 2px;
	border-bottom: 2px solid transparent;
}

.site-nav__list a:hover,
.site-nav__list .current-menu-item > a,
.site-nav__list .current-menu-ancestor > a {
	color: var(--color-on-primary-container);
	border-bottom-color: var(--color-on-primary-container);
	text-decoration: none;
}

/* Action icon buttons */
.site-header__account-link,
.site-header__cart-link {
	position: relative;
	padding: var(--space-2);
}

.site-header__cart-link .cart-count {
	position: absolute;
	top: 0;
	right: 0;
	min-width: 16px;
	height: 16px;
	font-size: 10px;
	padding: 0 2px;
	line-height: 16px;
}

/* Material Symbols sizing */
.material-symbols-outlined {
	font-size: 20px;
	vertical-align: middle;
	line-height: 1;
}

/* =============================================================================
   21. Site footer — 4-column industrial design
   ============================================================================= */

.site-footer {
	background: var(--color-surface-low);
}

.site-footer__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: var(--space-12);
	padding: var(--space-16) var(--space-8);
	max-width: var(--container-max);
	margin-inline: auto;
}

.site-footer__logo {
	font-family: var(--font-headline);
	font-size: var(--text-headline-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: -0.02em;
	color: var(--color-on-surface);
	text-decoration: none;
	display: block;
	margin-bottom: var(--space-4);
}

.site-footer__tagline {
	font-family: var(--font-body);
	font-size: var(--text-body-sm);
	color: var(--color-on-surface-variant);
	line-height: 1.5;
	margin: 0;
}

.site-footer__col-title {
	font-family: var(--font-label);
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--color-on-surface-variant);
	margin-bottom: var(--space-5);
}

.site-footer__link-list,
.footer-nav__list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.site-footer__link-list li {
	margin-bottom: var(--space-3);
}

.site-footer__link-list a {
	font-family: var(--font-body);
	font-size: var(--text-body-sm);
	color: var(--color-on-surface-variant);
	text-decoration: none;
	transition: color var(--transition-fast);
}

.site-footer__link-list a:hover {
	color: var(--color-on-primary-container);
	text-decoration: none;
}

.site-footer__compliance-text {
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	color: var(--color-on-surface-variant);
	line-height: 1.5;
	margin-bottom: var(--space-5);
}

.site-footer__icons {
	display: flex;
	gap: var(--space-3);
	color: var(--color-on-surface-variant);
}

.site-footer__icons .material-symbols-outlined {
	font-size: 18px;
}

.site-footer__bottom {
	background: var(--color-surface-container);
	border-top: 1px solid var(--color-surface-high);
	padding: var(--space-4) var(--space-8);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	flex-wrap: wrap;
}

.site-footer__credit {
	font-family: var(--font-label);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--color-on-surface-variant);
	margin: 0;
}

.footer-nav__list {
	display: flex;
	gap: var(--space-6);
	flex-wrap: wrap;
}

.footer-nav__list a {
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	color: var(--color-on-surface-variant);
	text-decoration: none;
}

.footer-nav__list a:hover {
	color: var(--color-on-primary-container);
}

/* =============================================================================
   22. 404 — SCHEMATIC NOT FOUND
   ============================================================================= */

.error-404-page {
	min-height: calc(100vh - 64px - 1px);
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
}

.error-404-page__bg-grid {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle, var(--color-outline-variant) 1px, transparent 1px);
	background-size: 20px 20px;
	opacity: 0.15;
}

.error-404-page__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding: var(--space-16) var(--space-8);
	display: grid;
	grid-template-columns: 5fr 7fr;
	gap: var(--space-16);
	align-items: center;
}

.error-404-page__label {
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.3em;
	color: var(--color-on-primary-container);
	margin-bottom: var(--space-4);
}

.error-404-page__title {
	font-family: var(--font-headline);
	font-size: clamp(2.5rem, 6vw, 5rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.04em;
	text-transform: uppercase;
	color: var(--color-on-surface);
	margin-bottom: var(--space-8);
}

.error-404-page__info-box {
	background: var(--color-surface-low);
	border-left: 4px solid var(--color-on-primary-container);
	padding: var(--space-5) var(--space-6);
	margin-bottom: var(--space-8);
}

.error-404-page__spec-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-4);
}

.error-404-page__spec-label {
	font-family: var(--font-label);
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--color-on-surface-variant);
	margin-bottom: 2px;
}

.error-404-page__spec-value {
	font-family: var(--font-headline);
	font-size: var(--text-headline-sm);
	font-weight: 700;
	color: var(--color-on-surface);
}

.error-404-page__actions {
	display: flex;
	gap: var(--space-4);
}

/* Right side visual */
.error-404-page__visual {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.error-404-page__blueprint-card {
	width: 100%;
	max-width: 480px;
	aspect-ratio: 1;
	background: var(--color-surface-lowest);
	border: 1px solid var(--color-surface-high);
	box-shadow: 0 8px 40px rgba(0,0,0,0.08);
	position: relative;
	overflow: hidden;
	background-image: radial-gradient(circle, var(--color-outline-variant) 1px, transparent 1px);
	background-size: 10px 10px;
}

.error-404-page__blueprint-label {
	position: absolute;
	top: var(--space-4);
	left: var(--space-4);
	font-family: var(--font-label);
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--color-on-surface-variant);
}

.error-404-page__gcode {
	position: absolute;
	top: var(--space-8);
	right: var(--space-5);
	font-family: 'Courier New', monospace;
	font-size: 10px;
	line-height: 1.8;
	color: var(--color-on-surface-variant);
	opacity: 0.3;
	text-align: right;
}

.error-404-page__blueprint-body {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.error-404-page__diamond {
	width: 200px;
	height: 200px;
	border: 2px solid var(--color-on-surface);
	opacity: 0.12;
	transform: rotate(45deg);
}

.error-404-page__null-badge {
	position: absolute;
	background: var(--color-on-primary-container);
	color: var(--color-on-primary);
	font-family: var(--font-label);
	font-size: var(--text-label-md);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: var(--space-2) var(--space-4);
	transform: rotate(-15deg);
}

.error-404-page__tick-marks {
	position: absolute;
	bottom: var(--space-5);
	left: var(--space-5);
	right: var(--space-5);
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}

.error-404-page__tick-marks::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: var(--color-surface-high);
}

.error-404-page__tick-marks span {
	font-family: var(--font-label);
	font-size: 8px;
	color: var(--color-on-surface-variant);
	opacity: 0.5;
}

.error-404-page__missing-badge {
	position: absolute;
	bottom: var(--space-4);
	right: var(--space-4);
	background: var(--color-tertiary);
	color: var(--color-on-primary);
	font-family: var(--font-label);
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	padding: 3px var(--space-3);
}

/* =============================================================================
   23. Homepage — Hero section
   ============================================================================= */

.hero {
	position: relative;
	overflow: hidden;
	background-color: var(--color-surface-lowest);
}

.hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding: var(--space-16) var(--space-8);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-12);
	align-items: center;
	min-height: 600px;
}

.hero__lines {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.hero__line-h {
	position: absolute;
	left: 0;
	right: 0;
	height: 1px;
	background: var(--color-surface-high);
}

.hero__line-h:nth-child(1) { top: 25%; }
.hero__line-h:nth-child(2) { top: 50%; }
.hero__line-h:nth-child(3) { top: 75%; }

.hero__line-v {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 1px;
	background: var(--color-surface-high);
}

.hero__line-v:nth-child(4) { left: 50%; }

.hero__copy {
	position: relative;
}

.hero__eyebrow {
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.3em;
	color: var(--color-on-primary-container);
	margin-bottom: var(--space-5);
}

.hero__title {
	font-family: var(--font-headline);
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.04em;
	text-transform: uppercase;
	color: var(--color-on-surface);
	margin-bottom: var(--space-6);
}

.hero__title-accent {
	color: var(--color-on-primary-container);
	display: block;
}

.hero__description {
	font-size: var(--text-body-md);
	color: var(--color-on-surface-variant);
	line-height: 1.7;
	max-width: 45ch;
	margin-bottom: var(--space-8);
}

.hero__actions {
	display: flex;
	gap: var(--space-4);
	flex-wrap: wrap;
}

.hero__image-wrap {
	position: relative;
}

.hero__image-frame {
	position: relative;
	background: var(--color-surface-low);
	border: 1px solid var(--color-surface-high);
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.hero__image-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero__image-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background-image: radial-gradient(circle, var(--color-outline-variant) 1px, transparent 1px);
	background-size: 10px 10px;
	color: var(--color-on-surface-variant);
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	text-transform: uppercase;
	letter-spacing: 0.2em;
}

.hero__badge-id {
	position: absolute;
	top: var(--space-4);
	right: var(--space-4);
	background: var(--color-tertiary);
	color: #fff;
	font-family: var(--font-label);
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	padding: 4px var(--space-3);
}

.hero__badge-tolerance {
	position: absolute;
	bottom: var(--space-4);
	left: var(--space-4);
	background: var(--color-surface-lowest);
	border: 1px solid var(--color-surface-high);
	display: flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-3);
}

.hero__badge-tolerance-dot {
	width: 6px;
	height: 6px;
	background: var(--color-on-primary-container);
}

.hero__badge-tolerance-label {
	font-family: var(--font-label);
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-on-surface);
}

/* =============================================================================
   24. Homepage — Value props
   ============================================================================= */

.value-props {
	background: var(--color-primary);
	padding: var(--space-16) 0;
}

.value-props__inner {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--space-8);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-1);
}

.value-prop {
	background: var(--color-primary-container);
	padding: var(--space-8);
}

.value-prop__icon {
	color: var(--color-on-primary-container);
	margin-bottom: var(--space-4);
}

.value-prop__icon .material-symbols-outlined {
	font-size: 32px;
}

.value-prop__number {
	font-family: var(--font-label);
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--color-on-primary-container);
	opacity: 0.6;
	margin-bottom: var(--space-3);
}

.value-prop__title {
	font-family: var(--font-headline);
	font-size: var(--text-headline-sm);
	font-weight: 700;
	color: #fff;
	margin-bottom: var(--space-3);
}

.value-prop__text {
	font-size: var(--text-body-sm);
	color: rgba(255,255,255,0.6);
	line-height: 1.6;
	margin: 0;
}

/* =============================================================================
   25. Homepage — Factory Fresh bento grid
   ============================================================================= */

.factory-fresh {
	background: var(--color-surface-lowest);
	padding: var(--space-16) 0;
}

.factory-fresh__inner {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--space-8);
}

.factory-fresh__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: var(--space-8);
}

.factory-fresh__eyebrow {
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.3em;
	color: var(--color-on-primary-container);
	margin-bottom: var(--space-3);
}

.factory-fresh__title {
	font-family: var(--font-headline);
	font-size: var(--text-display-sm);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: -0.03em;
	color: var(--color-on-surface);
	margin: 0;
}

.factory-fresh__view-all {
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-on-surface-variant);
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: var(--space-2);
	flex-shrink: 0;
	transition: color var(--transition-fast);
}

.factory-fresh__view-all:hover {
	color: var(--color-on-primary-container);
	text-decoration: none;
}

.factory-fresh__bento {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: var(--space-1);
	min-height: 520px;
}

/* Featured product — spans both rows */
.ff-featured {
	grid-row: span 2;
	position: relative;
	overflow: hidden;
	background: var(--color-surface-container);
	display: flex;
	flex-direction: column;
}

.ff-featured__badge {
	position: absolute;
	top: var(--space-4);
	left: var(--space-4);
	z-index: 2;
	background: var(--color-on-primary-container);
	color: #fff;
	font-family: var(--font-label);
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	padding: 3px var(--space-3);
}

.ff-featured__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	inset: 0;
}

.ff-featured__placeholder {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle, var(--color-outline-variant) 1px, transparent 1px);
	background-size: 10px 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-on-surface-variant);
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	text-transform: uppercase;
	letter-spacing: 0.2em;
}

.ff-featured__overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 60%;
	background: linear-gradient(to top, rgba(0,0,0,0.85), transparent);
}

.ff-featured__content {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: var(--space-6);
	z-index: 2;
}

.ff-featured__cat {
	font-family: var(--font-label);
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: rgba(255,255,255,0.6);
	margin-bottom: var(--space-2);
}

.ff-featured__name {
	font-family: var(--font-headline);
	font-size: var(--text-headline-md);
	font-weight: 700;
	color: #fff;
	text-decoration: none;
	line-height: 1.2;
	display: block;
	margin-bottom: var(--space-4);
}

.ff-featured__name:hover {
	text-decoration: none;
	color: var(--color-on-primary-container);
}

.ff-featured__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.ff-featured__price {
	font-family: var(--font-headline);
	font-size: var(--text-headline-sm);
	color: #fff;
}

.ff-featured__btn {
	background: rgba(255,255,255,0.15);
	border: 1px solid rgba(255,255,255,0.3);
	color: #fff;
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	padding: var(--space-2) var(--space-4);
	text-decoration: none;
	transition: background var(--transition-fast);
}

.ff-featured__btn:hover {
	background: rgba(255,255,255,0.25);
	text-decoration: none;
	color: #fff;
}

/* Small product cards */
.ff-card {
	background: var(--color-surface-low);
	border: 1px solid var(--color-surface-high);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.ff-card__image-wrap {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--color-surface-container);
	position: relative;
}

.ff-card__image,
.ff-card__image-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition-base);
}

.ff-card:hover .ff-card__image,
.ff-card:hover .ff-card__image-wrap img {
	transform: scale(1.03);
}

.ff-card__image-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background-image: radial-gradient(circle, var(--color-outline-variant) 1px, transparent 1px);
	background-size: 8px 8px;
	font-family: var(--font-label);
	font-size: 9px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-on-surface-variant);
}

.ff-card__body {
	padding: var(--space-4) var(--space-5);
	flex: 1;
	display: flex;
	flex-direction: column;
}

.ff-card__cat {
	font-family: var(--font-label);
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--color-on-surface-variant);
	margin-bottom: var(--space-1);
}

.ff-card__name {
	font-family: var(--font-headline);
	font-size: var(--text-label-lg);
	font-weight: 700;
	color: var(--color-on-surface);
	text-decoration: none;
	flex: 1;
	line-height: 1.3;
}

.ff-card__name:hover {
	color: var(--color-on-primary-container);
	text-decoration: none;
}

.ff-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: var(--space-3);
}

.ff-card__price {
	font-family: var(--font-headline);
	font-size: var(--text-label-lg);
	font-weight: 700;
	color: var(--color-on-primary-container);
}

.ff-card__quick-buy {
	display: flex;
	align-items: center;
	gap: var(--space-1);
	font-family: var(--font-label);
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-on-tertiary-container);
	text-decoration: none;
}

.ff-card__quick-buy:hover {
	text-decoration: none;
	color: var(--color-on-tertiary-container);
	opacity: 0.8;
}

/* Promo tile */
.ff-promo {
	background: var(--color-tertiary);
	padding: var(--space-6);
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.ff-promo__top {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3);
}

.ff-promo__icon {
	color: var(--color-on-tertiary-container);
	flex-shrink: 0;
}

.ff-promo__icon .material-symbols-outlined {
	font-size: 28px;
}

.ff-promo__label {
	font-family: var(--font-label);
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: rgba(255,255,255,0.5);
	margin-bottom: var(--space-2);
}

.ff-promo__title {
	font-family: var(--font-headline);
	font-size: var(--text-headline-sm);
	font-weight: 700;
	color: #fff;
	line-height: 1.2;
}

.ff-promo__text {
	font-size: var(--text-body-sm);
	color: rgba(255,255,255,0.6);
	line-height: 1.5;
	margin: 0;
}

.ff-promo__btn {
	background: var(--color-on-tertiary-container);
	color: #fff;
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	padding: var(--space-3) var(--space-4);
	text-decoration: none;
	text-align: center;
	display: block;
	transition: opacity var(--transition-fast);
}

.ff-promo__btn:hover {
	text-decoration: none;
	color: #fff;
	opacity: 0.85;
}

/* =============================================================================
   26. Homepage — Material science section
   ============================================================================= */

.materials {
	background: var(--color-surface-low);
	padding: var(--space-16) 0;
	position: relative;
	overflow: hidden;
}

.materials__bg-text {
	position: absolute;
	bottom: -0.2em;
	right: -0.05em;
	font-family: var(--font-headline);
	font-size: 18vw;
	font-weight: 800;
	text-transform: uppercase;
	color: var(--color-on-surface);
	opacity: 0.03;
	line-height: 1;
	pointer-events: none;
	user-select: none;
}

.materials__inner {
	position: relative;
	z-index: 1;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--space-8);
}

.materials__header {
	margin-bottom: var(--space-10);
}

.materials__eyebrow {
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.3em;
	color: var(--color-on-primary-container);
	margin-bottom: var(--space-3);
}

.materials__title {
	font-family: var(--font-headline);
	font-size: var(--text-display-sm);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: -0.03em;
	color: var(--color-on-surface);
	margin-bottom: var(--space-3);
}

.materials__subtitle {
	font-size: var(--text-body-md);
	color: var(--color-on-surface-variant);
	max-width: 60ch;
}

.materials__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-1);
}

.material-card {
	background: var(--color-surface-lowest);
	padding: var(--space-8);
	position: relative;
	overflow: hidden;
	border-bottom: 3px solid transparent;
	transition: border-color var(--transition-fast);
}

.material-card:hover {
	border-bottom-color: var(--color-on-primary-container);
}

.material-card__number {
	font-family: var(--font-headline);
	font-size: 4rem;
	font-weight: 800;
	color: var(--color-on-primary-container);
	opacity: 0.12;
	line-height: 1;
	margin-bottom: var(--space-4);
	transition: opacity var(--transition-fast);
}

.material-card:hover .material-card__number {
	opacity: 0.25;
}

.material-card__title {
	font-family: var(--font-headline);
	font-size: var(--text-headline-md);
	font-weight: 700;
	color: var(--color-on-surface);
	margin-bottom: var(--space-3);
}

.material-card__text {
	font-size: var(--text-body-sm);
	color: var(--color-on-surface-variant);
	line-height: 1.6;
	margin-bottom: var(--space-6);
}

.material-card__bar {
	height: 3px;
	background: var(--color-surface-high);
	position: relative;
	overflow: hidden;
}

.material-card__bar::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 0;
	background: var(--color-on-primary-container);
	transition: width 0.5s ease;
}

.material-card:hover .material-card__bar::after {
	width: 100%;
}

/* =============================================================================
   27. Homepage — CTA section
   ============================================================================= */

.homepage-cta {
	background: var(--color-surface-highest);
	padding: var(--space-20) 0;
}

.homepage-cta__inner {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--space-8);
	text-align: center;
}

.homepage-cta__eyebrow {
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.3em;
	color: var(--color-on-primary-container);
	margin-bottom: var(--space-4);
}

.homepage-cta__title {
	font-family: var(--font-headline);
	font-size: var(--text-display-md);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: -0.03em;
	color: var(--color-on-surface);
	margin-bottom: var(--space-6);
}

.homepage-cta__subtitle {
	font-size: var(--text-body-md);
	color: var(--color-on-surface-variant);
	max-width: 50ch;
	margin-inline: auto;
	margin-bottom: var(--space-8);
}

.homepage-cta__form {
	display: flex;
	max-width: 480px;
	margin-inline: auto;
}

.homepage-cta__input {
	flex: 1;
	background: none;
	border: none;
	border-bottom: 2px solid var(--color-outline);
	padding: var(--space-3) var(--space-4) var(--space-3) 0;
	font-family: var(--font-body);
	font-size: var(--text-body-md);
	color: var(--color-on-surface);
	outline: none;
	transition: border-color var(--transition-fast);
}

.homepage-cta__input:focus {
	border-bottom-color: var(--color-on-primary-container);
}

.homepage-cta__input::placeholder {
	color: var(--color-on-surface-variant);
	opacity: 0.6;
}

.homepage-cta__submit {
	background: var(--gradient-primary);
	color: #fff;
	border: none;
	padding: var(--space-3) var(--space-6);
	font-family: var(--font-label);
	font-size: var(--text-label-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	cursor: pointer;
	transition: opacity var(--transition-fast);
}

.homepage-cta__submit:hover {
	opacity: 0.9;
}

/* =============================================================================
   28. Blueprint grid (for WC pages)
   ============================================================================= */

.blueprint-grid {
	background-image: radial-gradient(circle, var(--color-outline-variant) 1px, transparent 1px);
	background-size: 10px 10px;
}

/* =============================================================================
   29. Responsive — new sections
   ============================================================================= */

@media (max-width: 1024px) {
	.site-footer__grid {
		grid-template-columns: 1fr 1fr;
	}

	.factory-fresh__bento {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto;
	}

	.ff-featured {
		grid-row: span 1;
		grid-column: span 2;
		min-height: 280px;
	}
}

@media (max-width: 768px) {
	.error-404-page__inner {
		grid-template-columns: 1fr;
	}

	.error-404-page__visual {
		display: none;
	}

	.hero__inner {
		grid-template-columns: 1fr;
		min-height: auto;
		padding-block: var(--space-10);
	}

	.hero__image-wrap {
		display: none;
	}

	.value-props__inner {
		grid-template-columns: 1fr;
		gap: var(--space-1);
	}

	.materials__grid {
		grid-template-columns: 1fr;
	}

	.factory-fresh__bento {
		grid-template-columns: 1fr;
	}

	.ff-featured {
		grid-column: span 1;
		min-height: 240px;
	}

	.site-footer__grid {
		grid-template-columns: 1fr;
		gap: var(--space-8);
		padding: var(--space-10) var(--space-6);
	}

	.factory-fresh__header {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--space-4);
	}

	.homepage-cta__form {
		flex-direction: column;
	}
}
