/* ============================================================
 *  HALDEN ROYAL — Design System
 *  Tokens extracted from screenshot reference (1:1 match target).
 *  Soft, rounded, card-based DTC layout with pure black footer.
 * ============================================================ */

/* ---------- Design Tokens ---------- */
:root {
	/* Colors (matched to source) */
	--c-white:      #FFFFFF;
	--c-gray-50:    #F8F7F4;
	--c-gray-100:   #F4F2EE;
	--c-gray-200:   #F0F0F0;   /* dominant section / FAQ-card background */
	--c-gray-300:   #E8E8E8;   /* borders */
	--c-gray-400:   #D8D8D8;
	--c-gray-500:   #B0B0B0;   /* hover borders */
	--c-gray-600:   #989898;   /* muted text, eyebrows */
	--c-gray-700:   #606060;
	--c-gray-800:   #2A2A2A;
	--c-ink:        #1A1A1A;   /* body text */
	--c-black:      #000000;   /* footer & primary buttons */

	--c-stone:       #D0C0B0;  /* "Senden" form button */
	--c-stone-hover: #C0AC9C;

	--c-ochre:      #C8A82C;
	--c-ochre-dark: #B88C24;

	--c-success: #1F6B3A;
	--c-error:   #B23A3A;

	/* Type — single family, Inter at multiple weights */
	--font-sans: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
	--font-mono: 'JetBrains Mono', 'SF Mono', Menlo, monospace;

	/* Layout — narrower container than typical, matches source ~1100px */
	--container:        1100px;
	--container-wide:   1400px;
	--container-narrow: 720px;
	--gutter:           clamp(1rem, 3vw, 2rem);

	/* Spacing scale — 8px base */
	--s-1:  0.25rem;   /*  4 */
	--s-2:  0.5rem;    /*  8 */
	--s-3:  0.75rem;   /* 12 */
	--s-4:  1rem;      /* 16 */
	--s-5:  1.5rem;    /* 24 */
	--s-6:  2rem;      /* 32 */
	--s-7:  3rem;      /* 48 */
	--s-8:  4rem;      /* 64 */
	--s-9:  5rem;      /* 80 — section default */
	--s-10: 6rem;      /* 96 */

	/* Section padding */
	--section-y: clamp(3rem, 8vw, 5rem);

	/* Header */
	--header-h: 72px;
	--header-h-mobile: 64px;

	/* Radius — rounded soft */
	--r-sm: 6px;
	--r-md: 10px;
	--r-lg: 14px;
	--r-xl: 20px;
	--r-pill: 9999px;

	/* Transitions */
	--ease:     cubic-bezier(0.4, 0, 0.2, 1);
	--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--dur-fast: 150ms;
	--dur-base: 220ms;
	--dur-slow: 360ms;

	/* Shadows — very subtle */
	--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
	--shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.04);
	--shadow-md: 0 8px 24px rgba(0, 0, 0, 0.06);
	--shadow-lg: 0 20px 40px rgba(0, 0, 0, 0.08);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	scroll-behavior: smooth;
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.55;
	color: var(--c-ink);
	background: var(--c-white);
}

body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.55;
	color: var(--c-ink);
	background: var(--c-white);
	overflow-x: hidden;
}

body.no-scroll { overflow: hidden; }

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

a {
	color: inherit;
	text-decoration: none;
	transition: color var(--dur-base) var(--ease);
}
a:hover { color: var(--c-gray-700); }

button {
	font: inherit;
	color: inherit;
	background: transparent;
	border: 0;
	cursor: pointer;
	padding: 0;
}

input, textarea, select {
	font: inherit;
	color: inherit;
}

/* ---------- Typography ---------- */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-sans);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--c-ink);
	margin: 0 0 var(--s-4);
}

h1 {
	font-size: clamp(2.25rem, 4.5vw, 3rem);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.015em;
}

h2 {
	font-size: clamp(1.875rem, 3.5vw, 2.25rem);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.01em;
}

h3 {
	font-size: clamp(1.25rem, 2vw, 1.375rem);
	font-weight: 600;
}

h4 {
	font-size: 1.0625rem;
	font-weight: 600;
}

p { margin: 0 0 1em; }

.eyebrow {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-gray-600);
	margin-bottom: var(--s-4);
}

.eyebrow-pill {
	display: inline-block;
	padding: 0.5rem 1rem;
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-ink);
	background: var(--c-card-tile-hover, #F0F0F0);
	border-radius: var(--r-pill);
	margin-bottom: var(--s-5);
}

.lead {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--c-gray-700);
	max-width: 560px;
	margin-inline: auto;
}

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

.container-wide {
	width: 100%;
	max-width: var(--container-wide);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.container-narrow {
	width: 100%;
	max-width: var(--container-narrow);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.section { padding-block: var(--section-y); }
.section--tight { padding-block: var(--s-7); }

/* ---------- Home: 2-column row (FAQ + Contact) ---------- */
.home-row-2col {
	padding-block: var(--section-y);
}
.home-row-2col__inner {
	max-width: var(--home-container-w, 1100px);
	margin-inline: auto;
	padding-inline: var(--gutter);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}
@media (max-width: 860px) {
	.home-row-2col__inner {
		grid-template-columns: 1fr;
		gap: 3rem;
	}
}

/* Strip outer padding/wrappers from sections when nested in 2-col row,
 * so they sit flush within their column. */
.home-row-2col__col > .section,
.home-row-2col__col > .section--tight {
	padding-block: 0;
}
.home-row-2col__col .container {
	padding-inline: 0;
	max-width: none;
}

/* FAQ column: heading aligned left to match Contact heading below */
.home-row-2col__col--faq .faq {
	margin: 0;
	max-width: none;
}
.home-row-2col__col--faq .faq-heading {
	text-align: left;
	margin-bottom: var(--s-4);
}

/* Contact column: keep 2-column inner grid collapsing to single column
 * (since we're already inside one half) */
.home-row-2col__col--contact .contact-block {
	grid-template-columns: 1fr;
	gap: var(--s-5);
}
.section--bare { padding-block: 0; }

.section--gray-200 { background: var(--c-gray-200); }
.section--gray-100 { background: var(--c-gray-100); }

.full-bleed {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 48px;
	padding: 0.875rem 1.75rem;
	font-family: var(--font-sans);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	background: var(--c-black);
	color: var(--c-white);
	border: 1px solid var(--c-black);
	border-radius: var(--r-sm);
	transition: all var(--dur-base) var(--ease);
	-webkit-appearance: none;
	appearance: none;
	white-space: nowrap;
}

.btn:hover {
	background: var(--c-gray-800);
	border-color: var(--c-gray-800);
	color: var(--c-white);
}

.btn--outline {
	background: transparent;
	color: var(--c-ink);
	border-color: var(--c-ink);
}
.btn--outline:hover { background: var(--c-ink); color: var(--c-white); }

.btn--stone {
	background: var(--c-stone);
	color: var(--c-ink);
	border-color: var(--c-stone);
}
.btn--stone:hover {
	background: var(--c-stone-hover);
	border-color: var(--c-stone-hover);
	color: var(--c-ink);
}

.btn--block { width: 100%; }

.btn--sm {
	min-height: 40px;
	padding: 0.625rem 1.25rem;
	font-size: 0.75rem;
}

.btn--lg {
	min-height: 56px;
	padding: 1.125rem 2.25rem;
	font-size: 0.875rem;
}

/* ---------- Cards (used for editorial steps, FAQ, etc.) ---------- */
.card {
	background: var(--c-white);
	border: 1px solid var(--c-gray-300);
	border-radius: var(--r-lg);
	padding: var(--s-5);
}

.card--bare {
	background: transparent;
	border: 0;
	padding: 0;
}

/* ---------- Pills / Chips ---------- */
.chip {
	display: inline-flex;
	align-items: center;
	padding: 0.5rem 0.875rem;
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--c-ink);
	background: var(--c-card-tile-hover, #F0F0F0);
	border-radius: var(--r-pill);
	white-space: nowrap;
}

/* ---------- Header ---------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--c-white);
	border-bottom: 1px solid var(--c-gray-300);
	transition: transform var(--dur-base) var(--ease);
}

.announcement-bar {
	background: var(--c-ink);
	color: var(--c-white);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-align: center;
	padding: 0.5rem var(--gutter);
	line-height: 1.4;
}

.header-inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: var(--s-5);
	max-width: var(--container-wide);
	margin-inline: auto;
	padding: var(--s-3) var(--gutter);
	min-height: var(--header-h);
}

.header-logo {
	display: inline-flex;
	align-items: center;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 1.125rem;
	letter-spacing: -0.01em;
	color: var(--c-ink);
	flex-shrink: 0;
}

.header-logo img {
	max-height: 48px;
	width: auto;
}

.header-nav { display: flex; align-items: center; }
.header-nav ul,
.header-nav .header-menu {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: var(--s-5);
	align-items: center;
}
.header-nav a {
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--c-ink);
	position: relative;
	padding-block: 0.5rem;
	transition: color var(--dur-base) var(--ease);
	text-decoration: none;
}
.header-nav a:hover,
.header-nav .current-menu-item > a { color: var(--c-gray-700); }

/* ---------- Search overlay ---------- */
.search-overlay {
	position: fixed;
	inset: 0;
	z-index: 260;
	background: var(--c-white);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--gutter);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--dur-base) var(--ease), visibility var(--dur-base) var(--ease);
}
.search-overlay.is-open { opacity: 1; visibility: visible; }

.search-overlay-close {
	position: absolute;
	top: var(--s-3);
	right: var(--gutter);
	width: 44px;
	height: 44px;
}

.search-overlay-form {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: var(--s-3);
	width: min(680px, 100%);
}

.search-overlay-form input[type="search"] {
	font-size: 1.25rem;
	padding: 1rem 1.25rem;
}

/* Mobile menu nav targeting (matches wp_nav_menu output) */
.mobile-nav ul,
.mobile-nav .mobile-menu {
	list-style: none;
	padding: 0;
	margin: var(--s-6) 0 0;
}

.header-actions {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: var(--s-2);
}

.icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	color: var(--c-ink);
	position: relative;
	border-radius: var(--r-sm);
	transition: background var(--dur-base) var(--ease);
}
.icon-btn:hover { background: var(--c-gray-200); }
.icon-btn svg { width: 20px; height: 20px; }

.cart-count {
	position: absolute;
	top: 4px;
	right: 4px;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	background: var(--c-black);
	color: var(--c-white);
	font-size: 0.625rem;
	font-weight: 600;
	border-radius: 9px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.menu-toggle { display: none; }

@media (max-width: 960px) {
	.header-nav { display: none; }
	.menu-toggle { display: inline-flex; }
	.header-inner {
		grid-template-columns: auto 1fr auto;
		min-height: var(--header-h-mobile);
	}
}

/* ---------- Mobile drawer nav ---------- */
.mobile-nav {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: var(--c-white);
	transform: translateX(-100%);
	transition: transform var(--dur-slow) var(--ease-out);
	overflow-y: auto;
	padding: var(--s-7) var(--gutter);
}
.mobile-nav.is-open { transform: translateX(0); }

.mobile-nav-close {
	position: absolute;
	top: var(--s-3);
	right: var(--gutter);
	width: 40px;
	height: 40px;
}

.mobile-nav li { border-bottom: 1px solid var(--c-gray-300); }
.mobile-nav a {
	display: block;
	padding: 1rem 0;
	font-size: 1.25rem;
	font-weight: 500;
	color: var(--c-ink);
}

/* ---------- Cart drawer ---------- */
.cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(440px, 100vw);
	z-index: 250;
	background: var(--c-white);
	transform: translateX(100%);
	transition: transform var(--dur-slow) var(--ease-out);
	display: flex;
	flex-direction: column;
	box-shadow: var(--shadow-lg);
}
.cart-drawer.is-open { transform: translateX(0); }

.cart-drawer-overlay {
	position: fixed;
	inset: 0;
	z-index: 240;
	background: rgba(0, 0, 0, 0.4);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--dur-base) var(--ease), visibility var(--dur-base) var(--ease);
}
.cart-drawer-overlay.is-open { opacity: 1; visibility: visible; }

.cart-drawer-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--s-4) var(--s-5);
	border-bottom: 1px solid var(--c-gray-300);
}

/* Close button (X) in cart drawer header — make it clearly visible */
.cart-drawer-header [data-action="close-cart"] {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: transparent;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	color: #1A1A1A;
	padding: 0;
	transition: background .15s ease;
	flex-shrink: 0;
}
.cart-drawer-header [data-action="close-cart"]:hover {
	background: #F4F2EE;
}
.cart-drawer-header [data-action="close-cart"] svg {
	width: 22px;
	height: 22px;
	display: block;
	color: #1A1A1A;
}

.cart-drawer-title {
	font-size: 1rem;
	font-weight: 600;
	margin: 0;
}

.cart-drawer-body {
	flex: 1;
	overflow-y: auto;
	padding: var(--s-5);
}

.cart-drawer-empty {
	text-align: center;
	padding: var(--s-8) 0;
}
.cart-drawer-empty h3 {
	font-size: 1.125rem;
	margin-bottom: var(--s-3);
}

.cart-drawer-footer {
	padding: var(--s-5);
	border-top: 1px solid var(--c-gray-300);
}

/* ---------- Hero (image / video full-bleed) ---------- */
.hero {
	position: relative;
	width: 100%;
	height: clamp(280px, 36vw, 480px);
	background: var(--c-card-tile-hover, #F0F0F0);
	overflow: hidden;
	margin: 0;
}

.hero-media-image,
.hero-media-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Decorative fallback when no image/video set — only shown to dev */
.hero-media-fallback {
	width: 100%;
	height: 100%;
	background:
		radial-gradient(circle at 30% 40%, rgba(255,255,255,.08), transparent 60%),
		radial-gradient(circle at 70% 60%, rgba(200,168,44,.12), transparent 60%),
		linear-gradient(135deg, #0a0a18 0%, #1a1a3e 50%, #2a1a4e 100%);
}

/* When hero precedes a section, no top padding on next section */
.hero + .page-intro {
	padding-top: clamp(3rem, 6vw, 4.5rem);
}

/* ---------- Page intro (centered text + pill eyebrow + lead) ---------- */
.page-intro {
	text-align: center;
	padding: clamp(3rem, 6vw, 4.5rem) var(--gutter) clamp(2rem, 4vw, 3rem);
	max-width: 760px;
	margin-inline: auto;
}

.page-intro h1 {
	font-size: clamp(1.875rem, 4vw, 2.5rem);
	font-weight: 600;
	margin-bottom: var(--s-4);
}

.page-intro .lead {
	font-size: 0.9375rem;
	color: var(--c-gray-700);
	line-height: 1.6;
}

/* ============================================================
 *  PDP — Hide unwanted defaults
 *  Tabs are replaced by our editorial sections;
 *  brand taxonomy chip from WC Brands plugin / WC 9+ is removed.
 * ============================================================ */
.woocommerce-tabs,
.wc-tabs-wrapper,
.product .wc-tabs,
.product .woocommerce-Tabs-panel,
.product .product_meta,
.product .product_meta .brand,
.product .product_meta .posted_in_brand,
.product .product_meta .posted_in,
.product .product_meta .sku_wrapper,
.product .brand_wccpf,
.summary .wc-brand,
.summary .wcbrand,
.summary .brand,
.summary .product_meta,
.summary .product_brand,
.summary .posted_in,
.summary .posted_in_brand,
.summary .product-brand-list,
.summary .pwb-single-product-brands,
.summary .single-product-brand,
.pdp-summary .product_meta,
.pdp-summary .posted_in,
.pdp-summary .posted_in_brand,
.pdp-summary .brand,
.pdp-summary .product_brand,
.pdp-summary .wc-block-components-product-badge,
.pdp-summary .wp-block-woocommerce-product-brand {
	display: none !important;
}

/* Sale flash bubble (we have our own treatment) */
.product .onsale {
	display: none !important;
}

/* WC gallery zoom trigger — make it small and unobtrusive */
.woocommerce-product-gallery__trigger {
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	z-index: 5;
	width: 36px !important;
	height: 36px !important;
	background: rgba(255, 255, 255, 0.95) !important;
	border-radius: 50% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-indent: -9999px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	border: 0 !important;
}
.woocommerce-product-gallery__trigger::before {
	content: '';
	width: 18px;
	height: 18px;
	text-indent: 0;
	background: currentColor;
	color: var(--c-ink, #1A1A1A);
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.8'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3'/></svg>") center/contain no-repeat;
	        mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.8'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3'/></svg>") center/contain no-repeat;
}

/* Optional heading above homepage grid */
.product-grid-heading {
	font-size: clamp(20px, 2.2vw, 26px);
	font-weight: 600;
	letter-spacing: -0.01em;
	margin: 0 0 var(--s-5);
	color: var(--c-ink);
}

.product-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(12px, 1.5vw, 20px) clamp(12px, 1.5vw, 16px);
}

@media (min-width: 640px)  { .product-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px)  { .product-grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1100px) { .product-grid { grid-template-columns: repeat(5, 1fr); } }
@media (min-width: 1280px) { .product-grid--6 { grid-template-columns: repeat(6, 1fr); } }

/* Override variants - keep --4 capped at 4 columns */
.product-grid--4 { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 640px) { .product-grid--4 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) { .product-grid--4 { grid-template-columns: repeat(4, 1fr); } }

/* Homepage grid — column count driven by --home-grid-cols (set inline by PHP).
 * Mobile-first: cap at 1 col on tiny screens, 2 cols on small, then honor the
 * Customizer value from 720px up. */
.product-grid--home {
	grid-template-columns: 1fr;
}
@media (min-width: 480px) {
	.product-grid--home {
		grid-template-columns: repeat(min(2, var(--home-grid-cols, 2)), 1fr);
	}
}
@media (min-width: 720px) {
	.product-grid--home {
		grid-template-columns: repeat(var(--home-grid-cols, 2), 1fr);
	}
}

/* Wrapper exists so card can shadow/transform without clipping the meta below */
.product-card-wrap { display: block; }

.product-card {
	display: block;
	color: inherit;
	text-decoration: none;
}

/* ---------- Media tile (rounded warm-gray box) ---------- */
.product-card-media {
	position: relative;
	aspect-ratio: 1 / 1;
	background: var(--c-card-tile-bg, #F4F2EE);
	border-radius: var(--card-radius, 18px);
	overflow: hidden;
	transition: background var(--dur-base) var(--ease);
}

.product-card:hover .product-card-media {
	background: var(--c-card-tile-hover, #F0F0F0);
}

.product-card-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: var(--card-img-pad, 12%);                  /* generous breathing room around product */
	transition: opacity var(--dur-base) var(--ease), transform var(--dur-slow) var(--ease-out);
}

.product-card-img--secondary {
	opacity: 0;
}

/* Hover-flip: show secondary image if one exists */
.product-card:hover .product-card-img--primary {
	opacity: 0;
}
.product-card:hover .product-card-img--secondary {
	opacity: 1;
}

/* Subtle zoom on hover (only if no secondary image) */
.product-card:not(:has(.product-card-img--secondary)):hover .product-card-img--primary {
	transform: scale(1.04);
	opacity: 1;
}

/* ---------- Sale badge ---------- */
.product-card-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 3;
	background: var(--c-card-badge-bg, var(--c-black));
	color: var(--c-card-badge-text, var(--c-white));
	padding: 0.375rem 0.75rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border-radius: var(--r-pill);
}

/* ---------- Hover nav arrows (prev / next) ---------- */
.product-card-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	color: var(--c-ink);
	background: transparent;
	border: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--dur-base) var(--ease);
	z-index: 4;
}
.product-card-nav svg { width: 22px; height: 22px; }
.product-card-nav--prev { left: 4px; }
.product-card-nav--next { right: 4px; }
.product-card:hover .product-card-nav { opacity: 0.55; }

/* ---------- Quick-add pill (bottom-right on hover) ---------- */
.product-card-quickadd {
	position: absolute;
	bottom: 14px;
	right: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	background: var(--c-card-quickadd-bg, var(--c-white));
	color: var(--c-card-quickadd-tx, var(--c-ink));
	border: 1px solid var(--c-gray-300);
	border-radius: 50%;
	cursor: pointer;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity var(--dur-base) var(--ease), transform var(--dur-base) var(--ease), background var(--dur-base) var(--ease);
	z-index: 5;
}
.product-card-quickadd svg { width: 18px; height: 18px; }
.product-card-quickadd:hover {
	background: var(--c-ink);
	color: var(--c-white);
	border-color: var(--c-ink);
}
.product-card:hover .product-card-quickadd,
.product-card-wrap:hover .product-card-quickadd {
	opacity: 1;
	transform: translateY(0);
}

/* ---------- Meta (title + price) BELOW the rounded tile ---------- */
.product-card-meta {
	padding: 16px 8px 4px;
	text-align: center;
}

.product-card-title {
	font-size: var(--card-title-size, 13px);
	font-weight: 600;
	letter-spacing: var(--card-title-track, 0.08em);
	text-transform: uppercase;
	color: var(--c-card-title, var(--c-ink));
	margin: 0 0 6px;
	line-height: 1.3;
}

.product-card-price {
	font-size: 0.8125rem;
	font-weight: 400;
	color: var(--c-card-price, var(--c-gray-700));
}
.product-card-price del {
	color: var(--c-gray-600);
	margin-right: 0.4rem;
}
.product-card-price ins {
	text-decoration: none;
	color: var(--c-ink);
}

/* Touch devices — quickadd always visible (no hover) */
@media (hover: none) {
	.product-card-quickadd { opacity: 1; transform: none; }
	.product-card-nav { display: none; }
}

/* Quick-add states */
.product-card-quickadd.is-loading {
	opacity: 1;
	pointer-events: none;
}
.product-card-quickadd.is-loading svg { opacity: 0.3; }
.product-card-quickadd.is-loading::after {
	content: '';
	position: absolute;
	width: 14px;
	height: 14px;
	border: 2px solid var(--c-gray-400);
	border-top-color: var(--c-ink);
	border-radius: 50%;
	animation: halden-spin 0.6s linear infinite;
}
.product-card-quickadd.is-added {
	background: #1a7a3e;
	color: #fff;
	border-color: #1a7a3e;
}
.product-card-quickadd.is-added svg { display: none; }
.product-card-quickadd.is-added::after {
	content: '✓';
	font-size: 16px;
	font-weight: 700;
}
.product-card-quickadd.is-error {
	background: #c8252f;
	color: #fff;
	border-color: #c8252f;
}
@keyframes halden-spin {
	to { transform: rotate(360deg); }
}

/* ---------- Editorial 3-step cards (home) ---------- */
.steps-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--s-5);
}
@media (max-width: 860px) {
	.steps-grid { grid-template-columns: 1fr; }
}

.step-card {
	background: var(--c-white);
	border: 1px solid var(--c-gray-300);
	border-radius: var(--r-lg);
	padding: var(--s-6) var(--s-5);
	text-align: center;
}

.step-card-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	border-radius: 50%;
	background: var(--c-card-tile-hover, #F0F0F0);
	color: var(--c-ink);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	margin-bottom: var(--s-5);
}

.step-card h3 {
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.3;
	margin-bottom: var(--s-3);
}

.step-card p {
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--c-gray-700);
	margin: 0;
}

/* ---------- Quote / Statement block ---------- */
.quote-block {
	background: var(--c-gray-100);
	border-radius: var(--r-lg);
	padding: var(--s-7) var(--s-6);
	text-align: center;
}
.quote-block h2 {
	font-size: clamp(1.375rem, 2.5vw, 1.75rem);
	font-weight: 600;
	margin-bottom: var(--s-4);
}
.quote-block p {
	font-size: 0.9375rem;
	color: var(--c-gray-700);
	max-width: 720px;
	margin: 0 auto;
	line-height: 1.6;
}

/* ---------- Image-text split ---------- */
.split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}
@media (max-width: 860px) {
	.split { grid-template-columns: 1fr; gap: var(--s-6); }
}

.split--reverse .split-media { order: 2; }
@media (max-width: 860px) {
	.split--reverse .split-media { order: 0; }
}

.split-media {
	background: var(--c-card-tile-hover, #F0F0F0);
	border-radius: var(--r-lg);
	overflow: hidden;
	aspect-ratio: 1 / 1;
}
.split-media img { width: 100%; height: 100%; object-fit: cover; }

.split-content h2 { margin-bottom: var(--s-4); }
.split-content p {
	color: var(--c-gray-700);
	line-height: 1.65;
	margin-bottom: var(--s-3);
}
.split-content .btn { margin-top: var(--s-4); }

/* ---------- Trust bar (4 columns, no icons in source) ---------- */
.trust-bar {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--s-4);
}
@media (max-width: 860px) {
	.trust-bar { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.trust-bar { grid-template-columns: 1fr; }
}

.trust-item {
	background: var(--c-card-tile-hover, #F0F0F0);
	border-radius: var(--r-md);
	padding: var(--s-5);
	text-align: center;
}

.trust-item-title {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--c-ink);
	margin: 0 0 var(--s-2);
}

.trust-item-text {
	font-size: 0.75rem;
	color: var(--c-gray-700);
	margin: 0;
	line-height: 1.5;
}

/* ---------- FAQ accordion (each item = white card) ---------- */
.faq {
	max-width: 720px;
	margin-inline: auto;
}

.faq-heading {
	text-align: center;
	margin-bottom: var(--s-6);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-ink);
}

.faq-list {
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
}

.faq-item {
	background: var(--c-white);
	border: 1px solid var(--c-gray-300);
	border-radius: var(--r-md);
	overflow: hidden;
}

.faq-question {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-3);
	padding: var(--s-4) var(--s-5);
	text-align: left;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--c-ink);
	cursor: pointer;
	transition: background var(--dur-base) var(--ease);
}
.faq-question:hover { background: var(--c-gray-50); }

.faq-toggle {
	font-size: 1.25rem;
	font-weight: 300;
	color: var(--c-gray-600);
	line-height: 1;
	flex-shrink: 0;
	transition: transform var(--dur-base) var(--ease);
}
.faq-item.is-open .faq-toggle { transform: rotate(45deg); }

.faq-answer {
	overflow: hidden;
	max-height: 0;
	transition: max-height var(--dur-slow) var(--ease-out);
}
.faq-answer-inner {
	padding: 0 var(--s-5) var(--s-5);
	font-size: 0.875rem;
	color: var(--c-gray-700);
	line-height: 1.65;
}
.faq-answer a { color: var(--c-ink); text-decoration: underline; }

/* ---------- Contact (Support & Kontakt block) ---------- */
.contact-block {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--s-7);
	align-items: start;
}
@media (max-width: 860px) {
	.contact-block { grid-template-columns: 1fr; }
}

.contact-info dt {
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-gray-600);
	margin-bottom: var(--s-2);
}

.contact-info dd {
	margin: 0 0 var(--s-4);
	font-size: 0.9375rem;
	line-height: 1.6;
}

.contact-info a { text-decoration: underline; }
.contact-info a:hover { color: var(--c-gray-700); }

/* Contact page form button — stone variant */
.contact-form .btn-submit {
	background: var(--c-stone);
	color: var(--c-ink);
	border-color: var(--c-stone);
}
.contact-form .btn-submit:hover {
	background: var(--c-stone-hover);
	border-color: var(--c-stone-hover);
}

/* ---------- Footer ---------- */
.site-footer {
	background: var(--c-black);
	color: var(--c-white);
	padding: var(--s-9) 0 var(--s-5);
	font-size: 0.875rem;
}

.footer-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--s-6);
	margin-bottom: var(--s-7);
}
@media (max-width: 860px) {
	.footer-grid { grid-template-columns: repeat(2, 1fr); gap: var(--s-5); }
}
@media (max-width: 480px) {
	.footer-grid { grid-template-columns: 1fr; }
}

.footer-col h4 {
	font-size: 1rem;
	font-weight: 600;
	color: var(--c-white);
	margin: 0 0 var(--s-4);
	letter-spacing: -0.005em;
}

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

.footer-col li { margin-bottom: var(--s-2); }

.footer-col a,
.footer-col .footer-search-trigger {
	color: var(--c-white);
	font-size: 0.875rem;
	opacity: 0.85;
	transition: opacity var(--dur-base) var(--ease);
}
.footer-col a:hover,
.footer-col .footer-search-trigger:hover { opacity: 1; color: var(--c-white); }

.footer-col .footer-search-trigger {
	background: transparent;
	border: 0;
	padding: 0;
	font-family: inherit;
	cursor: pointer;
	text-align: left;
	display: inline;
}

.footer-col p {
	color: var(--c-white);
	font-size: 0.875rem;
	margin: 0 0 var(--s-2);
	opacity: 0.85;
}

.footer-col .footer-contact a {
	text-decoration: underline;
	display: block;
	margin-bottom: var(--s-2);
}

.footer-bottom {
	padding-top: var(--s-5);
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--s-3);
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.7);
}
.footer-bottom a { color: rgba(255, 255, 255, 0.85); }
.footer-bottom a:hover { color: var(--c-white); }

/* ---------- Forms ---------- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="number"],
textarea,
select {
	width: 100%;
	padding: 0.875rem 1rem;
	background: var(--c-white);
	border: 1px solid var(--c-gray-300);
	border-radius: var(--r-sm);
	font-family: var(--font-sans);
	font-size: 0.9375rem;
	color: var(--c-ink);
	transition: border-color var(--dur-base) var(--ease);
	-webkit-appearance: none;
	appearance: none;
}
input::placeholder,
textarea::placeholder { color: var(--c-gray-600); }

input:focus, textarea:focus, select:focus {
	outline: 0;
	border-color: var(--c-ink);
}

label {
	display: block;
	margin-bottom: var(--s-2);
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--c-ink);
}

.form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--s-4);
	margin-bottom: var(--s-4);
}
@media (max-width: 600px) {
	.form-row { grid-template-columns: 1fr; }
}

.form-field { margin-bottom: var(--s-4); }

/* ---------- Utility ---------- */
.text-center { text-align: center; }
.text-muted  { color: var(--c-gray-600); }
.uppercase   { text-transform: uppercase; letter-spacing: 0.06em; }
.divider {
	height: 1px;
	background: var(--c-gray-300);
	border: 0;
	margin: var(--s-6) 0;
}
.sr-only {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Long-form prose (Über uns, AGB, etc.) ---------- */
.prose {
	max-width: var(--container-narrow);
	margin-inline: auto;
	padding: 0 var(--gutter);
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--c-ink);
}
.prose h2 {
	font-size: 1.125rem;
	font-weight: 600;
	margin-top: var(--s-7);
	margin-bottom: var(--s-3);
}
.prose h3 { font-size: 1rem; margin-top: var(--s-5); margin-bottom: var(--s-3); }
.prose p { margin: 0 0 var(--s-3); }

.prose .info-box {
	background: var(--c-gray-100);
	border-radius: var(--r-md);
	padding: var(--s-5);
	margin: var(--s-5) 0;
}

.prose table {
	width: 100%;
	border-collapse: collapse;
	margin: var(--s-5) 0;
	font-size: 0.875rem;
	border: 1px solid var(--c-gray-300);
	border-radius: var(--r-md);
	overflow: hidden;
}
.prose th, .prose td {
	text-align: left;
	padding: 0.875rem 1rem;
	border-bottom: 1px solid var(--c-gray-300);
}
.prose th {
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-gray-600);
	background: var(--c-gray-100);
}
.prose tr:last-child td { border-bottom: 0; }

.prose a { color: var(--c-ink); text-decoration: underline; }
.prose a:hover { color: var(--c-gray-700); }

/* ---------- Reduced motion ---------- */
@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;
	}
}


/* ============================================================
 *  Homepage Banner (full-bleed image between products & steps)
 * ============================================================ */
.hr-banner {
	display: block;
	width: 100%;
	overflow: hidden;
	background: #F4F2EE;
	margin: 0;
	padding: 0;
	position: relative;
}
.hr-banner__link {
	display: block;
	width: 100%;
	height: 100%;
	text-decoration: none;
}
.hr-banner__img {
	width: 100%;
	height: 100%;
	display: block;
	transition: transform .6s cubic-bezier(0.16, 1, 0.3, 1);
}
.hr-banner__link:hover .hr-banner__img {
	transform: scale(1.02);
}
@media (max-width: 720px) {
	.hr-banner {
		height: auto !important;
		min-height: 280px;
	}
	.hr-banner__img {
		max-height: 60vh;
	}
}


/* ============================================================
 *  Header navigation — full-width mega dropdown
 *  Left: stacked subcategory links
 *  Right: 3-product preview cards
 * ============================================================ */

.header-menu .menu-item-has-children {
	position: static;
}

.site-header {
	position: relative;
}

/* The wrap that contains the <ul> and the product preview */
.header-menu .sub-menu-wrap {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	width: 100%;
	background: #fff;
	border-top: 1px solid #E5E5E5;
	border-bottom: 1px solid #E5E5E5;
	padding: 40px 64px;
	box-shadow: 0 12px 24px -8px rgba(0, 0, 0, 0.08);
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity .18s ease, transform .18s ease, visibility 0s linear .15s;
	z-index: 100;
	pointer-events: none;
	display: grid;
	grid-template-columns: minmax(220px, 1fr) 2fr;
	gap: 64px;
	align-items: start;
	max-width: 100vw;
	box-sizing: border-box;
}

.header-menu .menu-item-has-children:hover > .sub-menu-wrap,
.header-menu .menu-item-has-children:focus-within > .sub-menu-wrap,
.header-menu .sub-menu-wrap:hover {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
	transition: opacity .18s ease, transform .18s ease, visibility 0s linear 0s;
}

/* Hover bridge above the dropdown — wider so mouse can move down without losing hover */
.header-menu .sub-menu-wrap::before {
	content: '';
	position: absolute;
	top: -24px;
	left: 0;
	right: 0;
	height: 24px;
	background: transparent;
}

/* Keep the parent <li> hoverable while moving toward the dropdown */
.header-menu .menu-item-has-children::after {
	content: '';
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	height: 24px;
	background: transparent;
	pointer-events: none;
}
.header-menu .menu-item-has-children:hover::after {
	pointer-events: auto;
}

/* Left column: stacked links */
.header-menu .sub-menu--mega {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	text-align: left;
}

.header-menu .sub-menu--mega li {
	margin: 0;
	padding: 0;
	width: 100%;
	text-align: left;
}

.header-menu .sub-menu--mega a {
	display: inline-block;
	padding: 6px 0;
	font-size: 1rem;
	color: #1A1A1A;
	text-decoration: none;
	text-align: left;
	transition: color .15s ease;
}
.header-menu .sub-menu--mega a:hover,
.header-menu .sub-menu--mega a:focus {
	color: #806230;
}

/* Right column: 3 product preview cards */
.sub-menu-preview {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.sub-menu-preview__card {
	display: block;
	text-decoration: none;
	color: #1A1A1A;
	transition: opacity .15s ease;
}
.sub-menu-preview__card:hover {
	opacity: 0.8;
}

.sub-menu-preview__media {
	width: 100%;
	aspect-ratio: 1 / 1;
	background: #F4F2EE;
	border-radius: 4px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 10px;
}
.sub-menu-preview__media img {
	max-width: 80%;
	max-height: 80%;
	object-fit: contain;
	display: block;
}

.sub-menu-preview__name {
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 0 0 4px;
	color: #1A1A1A;
}

.sub-menu-preview__price {
	font-size: 0.8125rem;
	color: #4A4A4A;
}
.sub-menu-preview__price .woocommerce-Price-amount {
	color: inherit;
}

/* Caret indicator on parent items */
.header-menu .menu-item-has-children > a::after {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-left: 6px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform .15s ease;
	opacity: 0.6;
}
.header-menu .menu-item-has-children:hover > a::after {
	transform: translateY(0) rotate(225deg);
	opacity: 1;
}

/* If no product preview, links column expands to full width */
.header-menu .sub-menu-wrap:not(:has(.sub-menu-preview)) {
	grid-template-columns: 1fr;
}

/* Mobile: collapse to inline list */
@media (max-width: 900px) {
	.header-menu .sub-menu-wrap,
	.mobile-nav .sub-menu-wrap {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		padding: 4px 0 8px 16px;
		background: transparent;
		pointer-events: auto;
		width: auto;
		display: block;
	}
	.sub-menu-preview {
		display: none;
	}
	.header-menu .menu-item-has-children > a::after {
		display: none;
	}
}
}
