/*
 * BestofSoft on Blocksy. Design lock: /home/work/projects/BestofSoft/bestofsoft-blocksy/STYLESEED.md
 * Layout concept: a disk-management view of the catalogue. Drives = brands, partitions = product lines;
 * the same segmented bar returns as category pictograms and list markers. Quiet greys, one red for the action.
 *
 * Never style the Borlabs Cookie banner from here (owned by another workstream).
 */

/* ---------- 1. Fonts (local, OFL) ---------- */
@font-face {
	font-family: "Archivo";
	src: url("../fonts/archivo-display.woff2") format("woff2");
	font-weight: 500 800;
	font-stretch: 100% 125%;
	font-display: swap;
}
@font-face {
	font-family: "Public Sans";
	src: url("../fonts/public-sans.woff2") format("woff2");
	font-weight: 400 700;
	font-display: swap;
}
@font-face {
	font-family: "JetBrains Mono";
	src: url("../fonts/jetbrains-mono.woff2") format("woff2");
	font-weight: 400 600;
	font-display: swap;
}

/* ---------- 2. Tokens ---------- */
:root {
	--bos-accent: #CC0000;        /* links, hub, focus, selection */
	--bos-btn: #CC0000;           /* primary action background */
	--bos-btn-hover: #A00000;
	--bos-btn-text: #FFFFFF;
	--bos-ink: #1A202C;           /* headings, strong text */
	--bos-text: #2D3748;          /* body */
	--bos-mute: #4A5568;          /* secondary text (7.5:1 on white) */
	--bos-rule: #D8DEE6;
	--bos-rule-strong: #9AA5B1;
	--bos-paper: #FFFFFF;
	--bos-tint: #F5F7FA;
	--bos-tint-2: #EDF1F6;
	--bos-lightbox: #F5F7FA;      /* tray behind product images (vendor art is drawn for white) */
	--bos-feature: #1A202C;       /* the one dark feature card */
	--bos-feature-text: #FFFFFF;
	--bos-feature-mute: #CBD3DD;
	--bos-part-1: #1A202C;
	--bos-part-2: #3D4757;
	--bos-part-3: #5F6B7D;
	--bos-part-4: #7D899B;
	--bos-part-5: #9AA5B1;
	--bos-part-text: #FFFFFF;      /* on parts 1-3 */
	--bos-part-text-2: #1A202C;    /* on parts 4-5 (contrast >= 4.5:1 for the 11px labels) */
	--bos-mark-ink: #1A202C;
	--bos-mark-paper: #FFFFFF;

	--bos-display: "Archivo", "Arial Narrow", system-ui, sans-serif;
	--bos-body: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--bos-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;

	--bos-r-sm: 6px;
	--bos-r: 10px;
	--bos-wrap: 1240px;
	--bos-gutter: max(16px, env(safe-area-inset-left, 0px));
	--bos-gutter-r: max(16px, env(safe-area-inset-right, 0px));
	--bos-ease: cubic-bezier(.2, .8, .2, 1);
}

/* Dark: only tokens change. Blocksy's palette slots are remapped here too so its own parts follow. */
@media (prefers-color-scheme: dark) {
	:root:root {
		color-scheme: dark;
		--bos-accent: #FF5A4F;
		--bos-btn: #CC0000;
		--bos-btn-hover: #E01B1B;
		--bos-ink: #F1F4F8;
		--bos-text: #D5DBE3;
		--bos-mute: #A7B1BE;
		--bos-rule: #2A3240;
		--bos-rule-strong: #4A5568;
		--bos-paper: #11151C;
		--bos-tint: #171C25;
		--bos-tint-2: #1E2430;
		--bos-lightbox: #E9EDF2;
		--bos-feature: #222A37;
		--bos-feature-text: #F1F4F8;
		--bos-feature-mute: #C3CBD6;
		--bos-part-1: #E9EDF2;      /* all five light enough for dark labels (>= 4.9:1) */
		--bos-part-2: #C9D0D9;
		--bos-part-3: #A9B3C0;
		--bos-part-4: #8E99A8;
		--bos-part-5: #7A8596;
		--bos-part-text: #11151C;
		--bos-part-text-2: #11151C;
		--bos-mark-ink: #F1F4F8;
		--bos-mark-paper: #11151C;

		--theme-palette-color-1: #FF5A4F;
		--theme-palette-color-2: #FF8A80;
		--theme-palette-color-3: #D5DBE3;
		--theme-palette-color-4: #F1F4F8;
		--theme-palette-color-5: #2A3240;
		--theme-palette-color-6: #171C25;
		--theme-palette-color-7: #11151C;
		--theme-palette-color-8: #1A202C;
	}
}

/* ---------- 3. Base: type, links, focus, buttons, fields ---------- */
/* :root:root because Blocksy prints its generated :root variables after this stylesheet. */
:root:root {
	--theme-font-stack-default: var(--bos-body);
	--theme-font-family: var(--bos-body);
	--theme-font-size: 17px;
	--theme-line-height: 1.6;
	--theme-text-color: var(--bos-text);
	--theme-headings-color: var(--bos-ink);
	--theme-link-initial-color: var(--bos-accent);
	--theme-link-hover-color: var(--bos-ink);
	--theme-border-color: var(--bos-rule);
	--theme-button-border-radius: var(--bos-r-sm);
	--theme-button-min-height: 48px;
	--theme-button-font-weight: 700;
	--theme-button-font-size: 16px;
	--theme-button-text-transform: none;
	--theme-button-background-initial-color: var(--bos-btn);
	--theme-button-background-hover-color: var(--bos-btn-hover);
	--theme-button-text-initial-color: var(--bos-btn-text);
	--theme-button-text-hover-color: var(--bos-btn-text);
	--theme-form-field-border-radius: var(--bos-r-sm);
	--theme-form-field-height: 48px;
	--theme-form-field-border-initial-color: var(--bos-rule-strong);
	--theme-form-field-border-focus-color: var(--bos-accent);
	--theme-form-field-background-initial-color: var(--bos-paper);
	--theme-form-field-background-focus-color: var(--bos-paper);
	--theme-form-text-initial-color: var(--bos-ink);
	--theme-form-text-focus-color: var(--bos-ink);
	--theme-form-selection-field-initial-color: var(--bos-rule-strong);
	--theme-form-selection-field-active-color: var(--bos-accent);
}

/* WooCommerce notices on tokens (Blocksy hardcodes a light grey that is unreadable in dark mode) */
body :is(.woocommerce-info, .woocommerce-message, .woocommerce-thankyou-order-received) {
	--background-color: var(--bos-tint-2);
	--theme-text-color: var(--bos-text);
	--theme-link-initial-color: var(--bos-accent);
	--theme-link-hover-color: var(--bos-ink);
}

body {
	background: var(--bos-paper);
	color: var(--bos-text);
	font-family: var(--bos-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6,
.page-title, .product_title, .woocommerce-loop-product__title {
	font-family: var(--bos-display);
	font-stretch: 112%;
	color: var(--bos-ink);
	letter-spacing: -0.01em;
	text-wrap: balance;
}
h1, .page-title, .product_title { font-weight: 800; }
h2, h3 { font-weight: 750; }

.bos-mono { font-family: var(--bos-mono); font-size: 0.82em; letter-spacing: 0; font-variant-numeric: tabular-nums; }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
summary:focus-visible, [tabindex]:focus-visible {
	outline: 2px solid var(--bos-accent);
	outline-offset: 2px;
}

::selection { background: var(--bos-accent); color: #FFFFFF; }

.bos-wrap {
	max-width: var(--bos-wrap);
	margin-inline: auto;
	padding-left: var(--bos-gutter);
	padding-right: var(--bos-gutter-r);
}

.bos-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 24px;
	border-radius: var(--bos-r-sm);
	font-weight: 700;
	font-size: 17px;
	text-decoration: none;
	transition: background-color .15s var(--bos-ease), border-color .15s var(--bos-ease), color .15s var(--bos-ease);
}
.bos-btn--primary { background: var(--bos-btn); color: var(--bos-btn-text); }
.bos-btn--primary:hover { background: var(--bos-btn-hover); color: var(--bos-btn-text); }
.bos-btn--quiet { color: var(--bos-ink); border: 1px solid var(--bos-rule-strong); }
.bos-btn--quiet:hover { border-color: var(--bos-ink); color: var(--bos-ink); }

.bos-link {
	color: var(--bos-ink);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: var(--bos-accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}
.bos-link:hover { color: var(--bos-accent); }

.bos-eyebrow {
	margin: 0 0 16px;
	color: var(--bos-mute);
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: 12.5px;
}

.bos-chip {
	display: inline-block;
	padding: 3px 8px;
	border-radius: 4px;
	border: 1px solid currentColor;
	font-size: 12px;
	white-space: nowrap;
}

/* ---------- 4. Header ---------- */
#header [data-row*="middle"] {
	--height: 76px;
	border-bottom: 1px solid var(--bos-rule);
	background: var(--bos-paper);
}
#header .site-title {
	font-family: var(--bos-display);
	font-stretch: 118%;
	font-weight: 800;
	font-size: 23px;
	letter-spacing: -0.02em;
	line-height: 1;
}
#header .site-title a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--bos-ink);
}
#header .site-title a::before {
	content: "";
	width: 34px;
	height: 34px;
	flex: none;
	background: url("../img/mark.svg?v=3.2c") center / contain no-repeat;
}
@media (prefers-color-scheme: dark) {
	#header .site-title a::before { background-image: url("../img/mark-dark.svg?v=3.2c"); }
}
#header .ct-menu-link {
	font-family: var(--bos-body);
	font-size: 15.5px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	color: var(--bos-ink);
}
#header .menu > li > .ct-menu-link:hover,
#header .menu > li.current-menu-item > .ct-menu-link {
	color: var(--bos-ink);
	text-decoration: underline;
	text-decoration-color: var(--bos-accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 8px;
}
#header .ct-cart-item, #header .ct-header-search, #header .ct-header-trigger { color: var(--bos-ink); }
#header .ct-cart-item .ct-label { font-family: var(--bos-body); font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }

/* Breadcrumbs and archive titles */
.ct-breadcrumbs {
	font-family: var(--bos-mono);
	font-size: 12.5px;
	text-transform: none;
	letter-spacing: 0;
	color: var(--bos-mute);
}
.ct-breadcrumbs a { color: var(--bos-mute); }
.ct-breadcrumbs a:hover { color: var(--bos-accent); }
.hero-section .page-title { font-size: clamp(32px, 4vw, 48px); }
.hero-section .page-description { color: var(--bos-mute); max-width: 62ch; }

/* ---------- 5. Front page ---------- */
.bos-front { overflow-x: clip; }

.bos-hero { padding-block: 72px 80px; border-bottom: 1px solid var(--bos-rule); }
.bos-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: 64px;
	align-items: center;
}
.bos-hero__title {
	margin: 0 0 24px;
	font-size: clamp(42px, 5.4vw, 74px);
	font-stretch: 122%;
	font-weight: 800;
	line-height: .98;
	letter-spacing: -0.03em;
}
.bos-hero__lead {
	margin: 0 0 32px;
	max-width: 46ch;
	font-size: 19px;
	line-height: 1.55;
	color: var(--bos-text);
}
.bos-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* The Datenträger-Map */
.bos-diskmap {
	padding: 24px 26px 20px;
	border: 1px solid var(--bos-rule);
	border-radius: var(--bos-r);
	background: var(--bos-tint);
	display: grid;
	gap: 22px;
}
.bos-diskmap__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	padding-top: 12px;
	border-top: 1px solid var(--bos-rule);
	color: var(--bos-mute);
	font-size: 11.5px;
}
.bos-diskmap__legend span { display: inline-flex; align-items: center; gap: 8px; }
.bos-key { display: inline-block; width: 18px; height: 10px; border-radius: 2px; background: var(--bos-part-2); }
.bos-diskmap__head {
	display: grid;
	grid-template-columns: 170px 1fr;
	gap: 16px;
	color: var(--bos-mute);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .08em;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--bos-rule);
}
.bos-disk {
	display: grid;
	grid-template-columns: 170px 1fr;
	gap: 16px;
	align-items: center;
	padding: 10px;
	margin: -10px;
	border-radius: var(--bos-r-sm);
	color: var(--bos-ink);
	text-decoration: none;
}
.bos-disk:hover, .bos-disk:focus-visible { background: var(--bos-tint-2); color: var(--bos-ink); }
.bos-disk__label { display: grid; gap: 2px; min-width: 0; }
.bos-disk__id { color: var(--bos-mute); font-size: 11px; }
.bos-disk__label strong { font-family: var(--bos-display); font-stretch: 118%; font-size: 24px; font-weight: 800; line-height: 1.15; }
.bos-disk__meta { color: var(--bos-mute); font-size: 11.5px; }
.bos-disk__bar {
	display: flex;
	gap: 3px;
	height: 84px;
	padding: 4px;
	border-radius: var(--bos-r-sm);
	border: 1px solid var(--bos-rule-strong);
	background: var(--bos-paper);
	min-width: 0;
	transition: border-color .15s var(--bos-ease), box-shadow .15s var(--bos-ease);
}
.bos-disk:hover .bos-disk__bar, .bos-disk:focus-visible .bos-disk__bar {
	border-color: var(--bos-accent);
	box-shadow: 0 0 0 1px var(--bos-accent);
}
.bos-part {
	flex: var(--w) 1 0;
	min-width: 0;
	display: flex;
	align-items: flex-end;
	padding: 6px 8px;
	border-radius: 3px;
	background: var(--bos-part-1);
	color: var(--bos-part-text);
	transform-origin: left center;
	animation: bos-fill .8s var(--bos-ease) both;
	animation-delay: calc(var(--i, 0) * 140ms);
}
.bos-part:nth-child(2) { background: var(--bos-part-2); animation-delay: calc(var(--i, 0) * 140ms + 70ms); }
.bos-part:nth-child(3) { background: var(--bos-part-3); animation-delay: calc(var(--i, 0) * 140ms + 140ms); }
.bos-part:nth-child(4) { background: var(--bos-part-4); color: var(--bos-part-text-2); animation-delay: calc(var(--i, 0) * 140ms + 210ms); }
.bos-part:nth-child(5) { background: var(--bos-part-5); color: var(--bos-part-text-2); animation-delay: calc(var(--i, 0) * 140ms + 280ms); }
.bos-part:nth-child(6) { background: var(--bos-part-3); color: var(--bos-part-text); animation-delay: calc(var(--i, 0) * 140ms + 350ms); }
.bos-part:nth-child(7) { background: var(--bos-part-2); color: var(--bos-part-text); animation-delay: calc(var(--i, 0) * 140ms + 420ms); }
.bos-part__name {
	font-family: var(--bos-mono);
	font-size: 11px;
	line-height: 1.2;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
@keyframes bos-fill {
	from { transform: scaleX(.06); }
	to { transform: scaleX(1); }
}

/* Sections */
.bos-section { padding-block: 88px; }
.bos-section + .bos-section { border-top: 1px solid var(--bos-rule); }
.bos-section__head { max-width: 640px; margin-bottom: 40px; }
.bos-section__head h2 { margin: 0 0 12px; font-size: clamp(30px, 3.2vw, 42px); line-height: 1.05; }
.bos-section__head p { margin: 0; color: var(--bos-mute); font-size: 18px; }
.bos-section__head--row {
	max-width: none;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.bos-section__head--row h2 { margin: 0; }

/* Brands */
.bos-brands__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: 16px;
}
.bos-brand {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 28px;
	border-radius: var(--bos-r);
	border: 1px solid var(--bos-rule);
	background: var(--bos-paper);
	color: var(--bos-text);
	text-decoration: none;
	transition: border-color .15s var(--bos-ease);
}
.bos-brand:hover { border-color: var(--bos-ink); color: var(--bos-text); }
.bos-brand__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.bos-brand__name {
	font-family: var(--bos-display);
	font-stretch: 125%;
	font-weight: 800;
	font-size: 34px;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--bos-ink);
}
.bos-brand__claim { font-size: 17px; }
.bos-brand__lines { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; }
.bos-brand__lines span {
	padding: 4px 9px;
	border-radius: 4px;
	background: var(--bos-tint);
	font-size: 14px;
	color: var(--bos-ink);
}
.bos-brand__go { font-weight: 700; color: var(--bos-ink); }
.bos-brand.is-feature {
	background: var(--bos-feature);
	border-color: var(--bos-feature);
	color: var(--bos-feature-mute);
}
.bos-brand.is-feature .bos-brand__name, .bos-brand.is-feature .bos-brand__go { color: var(--bos-feature-text); }
.bos-brand.is-feature .bos-chip { color: var(--bos-feature-mute); }
.bos-brand.is-feature .bos-brand__lines span { background: rgba(255, 255, 255, .1); color: var(--bos-feature-text); }
.bos-brand.is-feature .bos-brand__name { font-size: 48px; }
.bos-brand.is-feature:hover { border-color: var(--bos-accent); }

/* Tasks: head left, list right */
.bos-tasks .bos-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
	gap: 64px;
	align-items: start;
}
.bos-tasks .bos-section__head { position: sticky; top: 110px; }
.bos-tasks__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--bos-rule); }
.bos-tasks__list li { margin: 0; border-bottom: 1px solid var(--bos-rule); }
.bos-task {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	gap: 20px;
	align-items: center;
	padding: 20px 12px;
	color: var(--bos-text);
	text-decoration: none;
	transition: background-color .15s var(--bos-ease);
}
.bos-task:hover { background: var(--bos-tint); color: var(--bos-text); }
.bos-ticon {
	width: 56px;
	height: 56px;
	flex: none;
	fill: none;
	stroke: var(--bos-ink);
	stroke-width: 1.75;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.bos-ticon .f { fill: var(--bos-rule-strong); stroke: none; }
.bos-task:hover .bos-ticon .f { fill: var(--bos-accent); }
.bos-task__text { display: grid; gap: 2px; min-width: 0; }
.bos-task__name { font-family: var(--bos-display); font-stretch: 112%; font-weight: 750; font-size: 21px; color: var(--bos-ink); }
.bos-task__desc { color: var(--bos-mute); font-size: 16px; }
.bos-task__count {
	min-width: 40px;
	padding: 4px 8px;
	border: 1px solid var(--bos-rule-strong);
	border-radius: 4px;
	text-align: center;
	color: var(--bos-ink);
}

/* How buying works */
.bos-how__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 64px;
	align-items: start;
}
.bos-how h2 { margin: 0 0 28px; font-size: clamp(30px, 3.2vw, 42px); }
.bos-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.bos-steps li { display: grid; grid-template-columns: 40px 1fr; gap: 16px; align-items: start; font-size: 18px; margin: 0; }
.bos-steps strong { color: var(--bos-ink); }
.bos-steps__n {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: var(--bos-r-sm);
	background: var(--bos-ink);
	color: var(--bos-paper);
	font-size: 15px;
	font-weight: 600;
}
.bos-trader {
	padding: 28px;
	border-radius: var(--bos-r);
	background: var(--bos-tint);
	border: 1px solid var(--bos-rule);
}
.bos-trader p { margin: 0 0 12px; }
.bos-trader__label { color: var(--bos-mute); text-transform: uppercase; letter-spacing: .08em; font-size: 11.5px; }
.bos-trader__name { font-family: var(--bos-display); font-stretch: 112%; font-weight: 800; font-size: 24px; color: var(--bos-ink); }

/* ---------- 6. Product cards (archives, related, front page) ---------- */
[data-products] { --grid-columns-gap: 20px; }
[data-products] .product {
	display: flex;
	flex-direction: column;
	padding: 14px 14px 18px;
	border: 1px solid var(--bos-rule);
	border-radius: var(--bos-r);
	background: var(--bos-paper);
	transition: border-color .15s var(--bos-ease);
}
[data-products] .product:hover { border-color: var(--bos-rule-strong); }
[data-products] .product figure { margin: 0 0 16px; }
[data-products] .product .ct-media-container {
	display: block;
	border-radius: var(--bos-r-sm);
	background: var(--bos-lightbox);
	padding: 18%;
}
[data-products] .product .ct-media-container img { object-fit: contain; mix-blend-mode: multiply; }
.bos-card-brand { display: block; margin-bottom: 4px; color: var(--bos-mute); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
[data-products] .woocommerce-loop-product__title {
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.2;
	font-weight: 750;
}
[data-products] .woocommerce-loop-product__title a { color: var(--bos-ink); }
[data-products] .woocommerce-loop-product__title a:hover { color: var(--bos-accent); }
.bos-card-excerpt { margin: 0 0 14px; color: var(--bos-mute); font-size: 15px; line-height: 1.45; }
[data-products] .product .price {
	margin-top: auto;
	font-family: var(--bos-display);
	font-stretch: 105%;
	font-size: 22px;
	font-weight: 800;
	color: var(--bos-ink);
	font-variant-numeric: tabular-nums;
}
[data-products] .product .price .german-market-from-price-prefix { font-family: var(--bos-body); font-size: 15px; font-weight: 400; color: var(--bos-mute); }
[data-products] .product .wgm-info { font-size: 13px; line-height: 1.4; color: var(--bos-mute); }
[data-products] .product .ct-woo-card-actions { margin-top: 14px; }
[data-products] .product .ct-woo-card-actions .button {
	width: 100%;
	--theme-button-background-initial-color: transparent;
	--theme-button-text-initial-color: var(--bos-ink);
	--theme-button-background-hover-color: var(--bos-ink);
	--theme-button-text-hover-color: var(--bos-paper);
	border: 1px solid var(--bos-ink);
	min-height: 44px;
	font-size: 15px;
}

/* Task links above shop and category listings */
.bos-taskbar { margin: 0 0 28px; }
.bos-taskbar ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.bos-taskbar li { margin: 0; }
.bos-taskbar a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 14px;
	border-radius: var(--bos-r-sm);
	border: 1px solid var(--bos-rule-strong);
	color: var(--bos-ink);
	font-weight: 700;
	font-size: 15px;
	text-decoration: none;
}
.bos-taskbar a:hover { border-color: var(--bos-ink); color: var(--bos-ink); }
.bos-taskbar a[aria-current="page"] { background: var(--bos-ink); border-color: var(--bos-ink); color: var(--bos-paper); }
.woo-listing-top:empty { display: none; }

/* ---------- 7. Single product ---------- */
.single-product .woocommerce-product-gallery .ct-media-container,
.single-product .woocommerce-product-gallery .flexy-items > div {
	background: var(--bos-lightbox);
	border-radius: var(--bos-r);
}
.single-product .woocommerce-product-gallery img { mix-blend-mode: multiply; padding: 10%; object-fit: contain; }
.single-product .entry-summary .product_title { font-size: clamp(30px, 3vw, 40px); line-height: 1.05; margin-bottom: 12px; }
.single-product .entry-summary > .price,
.single-product .entry-summary .legacy-itemprop-offers .price,
.single-product .woocommerce-variation-price .price {
	font-family: var(--bos-display);
	font-stretch: 105%;
	font-weight: 800;
	font-size: 30px;
	color: var(--bos-ink);
	font-variant-numeric: tabular-nums;
}
.single-product .entry-summary .german-market-from-price-prefix { font-family: var(--bos-body); font-size: 17px; font-weight: 400; color: var(--bos-mute); }
.single-product .entry-summary .woocommerce-product-details__short-description { font-size: 18px; color: var(--bos-text); }
.single-product .entry-summary .wgm-info { font-size: 14px; color: var(--bos-mute); }
.single-product .variations label { font-weight: 700; color: var(--bos-ink); }
.single-product .variations select { font-size: 16px; }
.single-product .reset_variations { font-size: 14px; color: var(--bos-mute); }
.single-product .single_add_to_cart_button { min-height: 52px; font-size: 17px; }
.quantity {
	--quantity-initial-color: var(--bos-rule-strong);
	--quantity-hover-color: var(--bos-ink);
	--quantity-arrows-initial-color: var(--bos-mute);
	--quantity-arrows-hover-color: var(--bos-ink);
}
.single-product .product_meta {
	font-family: var(--bos-mono);
	font-size: 12.5px;
	color: var(--bos-mute);
	text-transform: none;
}
.single-product .product_meta > span { text-transform: none; letter-spacing: 0; }
.single-product .product_meta a { color: var(--bos-mute); }

.bos-facts {
	list-style: none;
	margin: 20px 0;
	padding: 0;
	border-top: 1px solid var(--bos-rule);
}
.bos-facts li {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 12px;
	padding: 10px 0;
	margin: 0;
	border-bottom: 1px solid var(--bos-rule);
	font-size: 15px;
}
.bos-facts__k { color: var(--bos-mute); text-transform: uppercase; letter-spacing: .06em; font-size: 11.5px; padding-top: 3px; }

/* German Market's price block (price + tax + shipping) stays; the bare duplicate price after it goes */
.single-product .entry-summary .legacy-itemprop-offers + p.price { display: none; }

/* Description: in the page container, readable measure, partition-segment list markers */
.single-product .woocommerce-tabs {
	width: var(--theme-container-width, calc(100% - 32px));
	max-width: var(--theme-normal-container-max-width, 1290px);
	margin-inline: auto;
}
body.single-product .woocommerce-tabs .entry-content.is-layout-constrained > * { margin-left: 0 !important; margin-right: 0 !important; max-width: 76ch; } /* core layout CSS uses !important */
.single-product .woocommerce-tabs[data-type*="type-4"] .entry-content > h2:first-of-type {
	margin: 56px 0 8px;
	padding-top: 24px;
	border-top: 1px solid var(--bos-rule);
	font-family: var(--bos-mono);
	font-stretch: 100%;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bos-mute);
	max-width: none;
}
.single-product .woocommerce-tabs h2 { font-size: 28px; margin-top: 1.4em; }
.single-product .woocommerce-tabs h3 { font-size: 22px; margin-top: 1.6em; }
.single-product .woocommerce-tabs ul { list-style: none; padding-left: 0; }
.single-product .woocommerce-tabs ul li { position: relative; padding-left: 26px; margin-bottom: 6px; }
.single-product .woocommerce-tabs ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .62em;
	width: 14px;
	height: 6px;
	border-radius: 1px;
	background: linear-gradient(90deg, var(--bos-ink) 0 60%, transparent 60% 70%, var(--bos-rule-strong) 70%);
}
.single-product .woocommerce-tabs table.shop_attributes { max-width: 640px; }
.single-product .related > h2, .single-product .upsells > h2 { font-size: 28px; }

/* ---------- 8. Cart and checkout ---------- */
.woocommerce-cart .shop_table, .woocommerce-checkout .shop_table { font-variant-numeric: tabular-nums; }
.woocommerce-cart .cart_totals, .woocommerce-checkout #order_review {
	border-radius: var(--bos-r);
}
.woocommerce-checkout .woocommerce h3, .woocommerce-cart .cart_totals h2 { font-size: 24px; }
.woocommerce-checkout #order_review_heading { font-size: 24px; }
.woocommerce-checkout #place_order {
	width: 100%;
	min-height: 56px;
	font-size: 18px;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout .german-market-checkbox-p,
.woocommerce-checkout .wgm-place-order-disabled { font-size: 15px; line-height: 1.5; }
.woocommerce-cart .checkout-button { min-height: 56px; font-size: 18px; }

/* German Market's checkout text and the order button use the body face, not a plugin default */
.woocommerce-checkout #place_order, .woocommerce-checkout .german-market-checkbox-p,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper, .woocommerce-checkout label,
.woocommerce-checkout .wgm-place-order-disabled, .woocommerce-checkout #payment .payment_box { font-family: var(--bos-body); }

/* Functional, carried over from the old theme (behaviour, not look) */
.woocommerce-cart .woocommerce-message { display: none; }                      /* no "added to cart" notice on the cart */
[data-products] .product-category:has(a[href*="/unkategorisiert/"]),
[data-products] .product-category:has(a[href*="/uncategorized/"]) { display: none; } /* hide the default category */
#elm-license-activations { display: none; }                                    /* licence view: no activations table */
.ewd-ufaq-ratings { display: none; }                                           /* FAQ: no "helpful?" rating */
.ppcp-paypal-paylater-message, .ppcp-paylater-message, [data-pp-message] { display: none !important; } /* no Pay Later */
#payment { display: flex; flex-direction: column; }                            /* wallet buttons below the method list */
#payment .payment_methods { order: 1; }
#payment .ppcp-googlepay-button-container, #payment .ppcp-applepay-button-container { order: 2; margin-top: 20px; }
#payment .form-row { order: 3; }

/* ---------- 9. Brand pages (/Marke/<brand>/) ---------- */
.bos-brandpage { overflow-x: clip; }
.bos-bhero { padding-block: 56px 64px; }
.bos-bhero .bos-eyebrow a { color: inherit; text-decoration: none; }
.bos-bhero .bos-eyebrow a:hover { color: var(--bos-accent); }
.bos-bhero__title {
	margin: 0 0 8px;
	font-size: clamp(56px, 11vw, 148px);
	font-stretch: 125%;
	font-weight: 800;
	line-height: .9;
	letter-spacing: -0.04em;
}
.bos-bhero__claim {
	margin: 0 0 24px;
	font-family: var(--bos-display);
	font-stretch: 112%;
	font-weight: 700;
	font-size: clamp(20px, 2.2vw, 28px);
	color: var(--bos-accent);
}
.bos-bhero .bos-hero__lead { max-width: 62ch; }
.bos-bhero__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
	color: var(--bos-mute);
	font-size: 13px;
}
.bos-bhero__facts li { margin: 0; padding: 5px 10px; border: 1px solid var(--bos-rule-strong); border-radius: 4px; }
.bos-bhero__facts strong { color: var(--bos-ink); font-weight: 600; }
.bos-bhero__map { margin-top: 48px; }
.bos-diskmap.is-single { background: var(--bos-tint); }
.bos-diskmap.is-single .bos-disk { grid-template-columns: 1fr; gap: 12px; pointer-events: auto; }
.bos-diskmap.is-single .bos-disk__label { grid-template-columns: auto auto 1fr; align-items: baseline; column-gap: 14px; }
.bos-diskmap.is-single .bos-disk__bar { height: 112px; }
.bos-diskmap.is-single .bos-part { text-decoration: none; transition: filter .15s var(--bos-ease); }
.bos-diskmap.is-single .bos-part:hover, .bos-diskmap.is-single .bos-part:focus-visible { filter: brightness(1.18); outline-offset: 0; }
.bos-diskmap.is-single .bos-part__name { font-size: 12px; }
.bos-disk__lines { display: none; color: var(--bos-mute); font-size: 11.5px; line-height: 1.5; }

.bos-linecards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}
.bos-linecards li { margin: 0; display: flex; }
.bos-linecard {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
	padding: 22px;
	border: 1px solid var(--bos-rule);
	border-radius: var(--bos-r);
	background: var(--bos-paper);
	color: var(--bos-text);
	text-decoration: none;
	transition: border-color .15s var(--bos-ease), background-color .15s var(--bos-ease);
}
.bos-linecard:hover { border-color: var(--bos-ink); background: var(--bos-tint); color: var(--bos-text); }
.bos-linecard__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.bos-linecard__name { font-family: var(--bos-display); font-stretch: 112%; font-weight: 800; font-size: 20px; line-height: 1.15; color: var(--bos-ink); }
.bos-linecard__top .bos-chip { color: var(--bos-mute); }
.bos-linecard__blurb { font-size: 15.5px; color: var(--bos-text); }
.bos-linecard__price { margin-top: auto; color: var(--bos-ink); }
.bos-line { padding-block: 56px; scroll-margin-top: 24px; }
.bos-line .bos-section__head { max-width: none; margin-bottom: 28px; }
.bos-line .bos-section__head--row { align-items: flex-end; }
.bos-line .bos-section__head p { max-width: 62ch; margin-top: 8px; }
.bos-line .bos-section__head h2 { font-size: clamp(26px, 2.6vw, 34px); }
.bos-more h2 { margin: 0 0 24px; font-size: clamp(26px, 2.6vw, 34px); }
.bos-more__other { margin: 8px 0 0; color: var(--bos-mute); }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ---------- 10. Footer ---------- */
.bos-footer { background: var(--bos-tint); border-top: 1px solid var(--bos-rule); color: var(--bos-text); }
.bos-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, .8fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr);
	gap: 40px;
	padding-block: 56px 40px;
}
.bos-footer__logo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 14px;
	color: var(--bos-ink);
	font-family: var(--bos-display);
	font-stretch: 118%;
	font-weight: 800;
	font-size: 21px;
	text-decoration: none;
}
.bos-footer__brand p { margin: 0 0 12px; font-size: 15px; max-width: 36ch; }
.bos-footer__contact { color: var(--bos-mute); line-height: 1.7; }
.bos-footer h2.bos-footer__title {
	margin: 0 0 14px;
	font-family: var(--bos-mono);
	font-stretch: 100%;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bos-mute);
}
.bos-footer ul { list-style: none; margin: 0; padding: 0; }
.bos-footer__col li { margin: 0 0 8px; }
.bos-footer__col a { color: var(--bos-ink); text-decoration: none; font-size: 15.5px; }
.bos-footer__col a:hover { color: var(--bos-accent); text-decoration: underline; }
.bos-pay { display: flex; flex-wrap: wrap; gap: 8px; }
.bos-pay li { margin: 0; }
.bos-pay img { display: block; width: 48px; height: 32px; border-radius: 4px; border: 1px solid var(--bos-rule); background: #FFFFFF; }
.bos-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding-block: 20px 28px;
	border-top: 1px solid var(--bos-rule);
	font-size: 14px;
	color: var(--bos-mute);
}
.bos-footer__bottom p { margin: 0; }

/* ---------- 11. Responsive ---------- */
@media (max-width: 1000px) {
	.bos-hero__grid, .bos-tasks .bos-wrap, .bos-how__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.bos-tasks .bos-section__head { position: static; }
	.bos-brands__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.bos-brand.is-feature { grid-column: 1 / -1; }
	.bos-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 640px) {
	#header .ct-cart-item .ct-label { display: none; }
	.bos-hero { padding-block: 40px 48px; }
	.bos-section { padding-block: 56px; }
	.bos-hero__lead { font-size: 17.5px; }
	.bos-hero__actions .bos-btn { flex: 1 1 100%; }
	.bos-diskmap { padding: 16px; }
	.bos-diskmap__head { display: none; }
	.bos-disk { grid-template-columns: minmax(0, 1fr); gap: 8px; }
	.bos-disk__label { grid-template-columns: auto 1fr; align-items: baseline; column-gap: 10px; }
	.bos-disk__label .bos-disk__id { display: none; }
	.bos-brands__grid { grid-template-columns: minmax(0, 1fr); }
	.bos-brand { padding: 22px; }
	.bos-brand.is-feature .bos-brand__name { font-size: 40px; }
	.bos-task { grid-template-columns: 40px minmax(0, 1fr) auto; gap: 14px; padding: 16px 4px; }
	.bos-ticon { width: 40px; height: 40px; }
	.bos-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.bos-bhero { padding-block: 32px 40px; }
	.bos-bhero__map { margin-top: 32px; }
	.bos-diskmap.is-single .bos-disk__bar { height: 36px; }
	.bos-diskmap.is-single .bos-part__name { display: none; }
	.bos-diskmap.is-single .bos-disk__label { grid-template-columns: auto 1fr; }
	.bos-diskmap.is-single .bos-disk__lines { display: block; }
	.bos-disk__bar { height: 36px; }
	.bos-disk .bos-part__name { display: none; }
	.bos-disk__lines { display: block; }
	.bos-line { padding-block: 40px; }
}

/* ---------- 12. Motion preference ---------- */
@media (prefers-reduced-motion: reduce) {
	.bos-part { animation: none; }
	.bos-btn, .bos-brand, .bos-task, .bos-disk__bar, [data-products] .product { transition: none; }
}

/* ---------- 13. Page types, round B3 ---------- */
/* Brand filter on category pages: same chips as the task bar, label on its own line on mobile */
.bos-brandbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin: -12px 0 28px; }
.bos-brandbar__k { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--bos-mute); }
.bos-brandbar a { min-height: 40px; gap: 8px; font-size: 14px; }
.bos-brandbar a .bos-mono { font-weight: 500; font-size: 12px; opacity: .8; }

/* Product page: brand badge */
.bos-badge {
	display: inline-block;
	margin: 0 0 12px;
	padding: 4px 10px;
	border: 1px solid var(--bos-rule-strong);
	border-radius: var(--bos-r-sm);
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bos-ink);
	text-decoration: none;
}
.bos-badge:hover { border-color: var(--bos-ink); color: var(--bos-ink); }
.single-product .woocommerce-tabs h2, .single-product .woocommerce-tabs h3 { overflow-wrap: break-word; hyphens: auto; }

/* Checkout: trust note, panel corners on tokens */
.bos-trust { list-style: none; margin: 0 0 20px; padding: 14px 16px; background: var(--bos-tint); border-radius: var(--bos-r-sm); font-size: 14px; color: var(--bos-text); }
.bos-trust li { position: relative; margin: 0; padding: 3px 0 3px 22px; }
.bos-trust li::before { content: ""; position: absolute; left: 0; top: .85em; width: 12px; height: 5px; border-radius: 1px; background: linear-gradient(90deg, var(--bos-ink) 0 60%, transparent 60% 70%, var(--bos-rule-strong) 70%); }
.woocommerce-checkout #order_review, .woocommerce-checkout .ct-order-review, .woocommerce-cart .cart_totals { border-radius: var(--bos-r); overflow: hidden; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th { font-family: var(--bos-mono); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--bos-mute); }
.woocommerce-cart button[name="update_cart"] { background: transparent; color: var(--bos-ink); border: 1px solid var(--bos-rule-strong); }
.woocommerce-cart button[name="update_cart"]:disabled { opacity: .55; }
.woocommerce-cart button[name="update_cart"]:not(:disabled):hover { border-color: var(--bos-ink); background: var(--bos-tint); }

/* Legal and plain content pages: readable measure, quieter headings */
body.page:not(.woocommerce-page):not(.home) .entry-content > * { max-width: 74ch; }
body.page:not(.woocommerce-page):not(.home) .entry-content h2 { font-size: 24px; margin: 1.8em 0 .5em; }
body.page:not(.woocommerce-page):not(.home) .entry-content h3 { font-size: 19px; margin: 1.5em 0 .4em; }
body.page:not(.woocommerce-page):not(.home) .entry-content p,
body.page:not(.woocommerce-page):not(.home) .entry-content li { font-size: 17px; line-height: 1.65; }
body.page:not(.woocommerce-page):not(.home) .entry-content ul,
body.page:not(.woocommerce-page):not(.home) .entry-content ol { padding-left: 1.3em; }
body.page:not(.woocommerce-page):not(.home) .hero-section h1.page-title { font-size: clamp(34px, 4vw, 48px); }

/* 404, search */
.error404 .page-title, .error404 h1 { font-size: clamp(30px, 4vw, 44px); line-height: 1.15; }
.error404 .ct-search-form, .search .ct-search-form { max-width: 520px; }
.search-no-results .page-description, .search-no-results .ct-search-form { max-width: 62ch; }
.search-no-results .ct-search-form { margin-top: 16px; }
@media (max-width: 640px) {
	.single-product .woocommerce-tabs h2 { font-size: 24px; }
	.single-product .woocommerce-tabs h3 { font-size: 20px; }
	.bos-brandbar__k { flex-basis: 100%; }
}
body.page:not(.woocommerce-page):not(.home) .entry-content > * { margin-left: 0 !important; margin-right: 0 !important; } /* core constrained layout centres with !important */
.ct-pagination .page-numbers.current, .ct-pagination [aria-current="page"] { color: var(--bos-paper) !important; background: var(--bos-ink) !important; }
body.page:not(.woocommerce-page):not(.home) .entry-content { width: var(--theme-container-width, calc(100% - 32px)); max-width: var(--theme-normal-container-max-width, 1290px); margin-inline: auto; }

/* Mobile listings: filter chips scroll sideways in one line, product cards in two columns (price, tax and shipping notices stay) */
@media (max-width: 640px) {
	.bos-taskbar ul { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--bos-gutter) * -1); padding-inline: var(--bos-gutter); scrollbar-width: none; }
	.bos-taskbar ul::-webkit-scrollbar { display: none; }
	.bos-taskbar a { white-space: nowrap; }
	.bos-brandbar ul { flex-basis: 100%; }
	.bos-taskbar { margin-bottom: 20px; }
	.bos-brandbar { margin-top: -6px; }
	[data-products].columns-4, [data-products].columns-3, [data-products][class*="columns"], .products[data-products] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; --grid-columns-gap: 10px; gap: 10px; }
	[data-products] .product { padding: 10px; }
	[data-products] .product .woocommerce-product-details__short-description, [data-products] .product .bos-card-excerpt { display: none; }
	[data-products] .woocommerce-loop-product__title { font-size: 15px; }
	[data-products] .product .price { font-size: 18px; }
	[data-products] .product .ct-woo-card-actions .button { font-size: 14px; padding-inline: 8px; min-height: 44px; }
}
.woocommerce-cart .cart_totals .wc-proceed-to-checkout > * + * { margin-top: 10px; }

/* ---------- Contrast fixes (B4 gate run) ---------- */
/* Required-field asterisk: WooCommerce's pure #F00 is 4.0:1 on white; house red is 5.9:1. */
.woocommerce form .required, .woocommerce-checkout .required { color: #CC0000; }
@media (prefers-color-scheme: dark) {
	.woocommerce form .required, .woocommerce-checkout .required { color: #FF5A4F; }
	/* White text on the dark-mode accent text red (#FF5A4F) is 3.1:1; filled badges use the button red like the buttons do. */
	.ct-dynamic-count-cart, .onsale, .ct-woo-badge, span.onsale { background-color: #CC0000; color: #FFFFFF; }
}

/* Header icon buttons are 15-18 px: extend the touch area to 44 px without moving anything. */
@media (pointer: coarse) {
	#header .ct-header-search, #header .ct-cart-item, #header .ct-header-trigger { position: relative; }
	#header .ct-header-search::after, #header .ct-cart-item::after, #header .ct-header-trigger::after { content: ""; position: absolute; inset: -14px; min-width: 44px; min-height: 44px; }
}

/* Shipping notice sat flush on the quantity/add-to-cart row on the product page. */
.single-product .summary .wgm-info.woocommerce_de_versandkosten { margin-bottom: 14px; }

/* ---------- 14. Polish pass, round B5 ---------- */

/* 14.1 Icon artwork (Macrium ships flat icons, not box shots): its own tile so a grid mixing both reads as one family.
   Soft brand-neutral gradient, the icon larger and lifted with a ground shadow, like an app tile. */
[data-products] .product.bos-b-macrium .ct-media-container,
.single-product .product.bos-b-macrium .woocommerce-product-gallery .flexy-items > div:first-child {
	background: linear-gradient(160deg, var(--bos-tint-2) 0%, var(--bos-lightbox) 62%);
}
[data-products] .product.bos-b-macrium .ct-media-container { padding: 12%; }
[data-products] .product.bos-b-macrium .ct-media-container img { border-radius: 16%; box-shadow: 0 8px 16px -8px rgba(26, 32, 44, .28); mix-blend-mode: normal; }

/* 14.2 Cards: lift on hover, image eases in; the border change stays as the non-motion cue */
[data-products] .product { transition: border-color .15s var(--bos-ease), transform .2s var(--bos-ease), box-shadow .2s var(--bos-ease); }
[data-products] .product:hover { transform: translateY(-3px); box-shadow: 0 10px 24px -14px rgba(26, 32, 44, .35); }
[data-products] .product .ct-media-container img { transition: transform .35s var(--bos-ease); }
[data-products] .product:hover .ct-media-container img { transform: scale(1.04); }
.bos-brand .bos-brand__go span { display: inline-block; transition: transform .2s var(--bos-ease); }
.bos-brand:hover .bos-brand__go span { transform: translateX(4px); }
.bos-task { transition: transform .2s var(--bos-ease); }
.bos-task:hover { transform: translateX(4px); }
.bos-btn:active, .single_add_to_cart_button:active { transform: translateY(1px); }

/* 14.3 Thin product lines (1-3 products): the row gets a help card instead of a mostly empty grid */
.bos-line__body.is-thin { display: grid; grid-template-columns: minmax(0, calc((100% - 60px) / 4 * var(--n) + 20px * (var(--n) - 1))) minmax(0, 1fr); gap: 20px; align-items: stretch; }
.bos-line__body.is-thin [data-products] { grid-template-columns: repeat(var(--n), minmax(0, 1fr)) !important; }
.bos-linehelp {
	display: flex;
	flex-direction: column;
	gap: 10px;
	justify-content: center;
	padding: 28px;
	border: 1px dashed var(--bos-rule-strong);
	border-radius: var(--bos-r);
	background: var(--bos-tint);
	color: var(--bos-text);
}
.bos-linehelp p { margin: 0; }
.bos-linehelp__k { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--bos-mute); }
.bos-linehelp__t { font-family: var(--bos-display); font-stretch: 112%; font-weight: 800; font-size: 22px; line-height: 1.2; color: var(--bos-ink); }
.bos-linehelp .bos-link { align-self: flex-start; }
@media (max-width: 1000px) {
	.bos-line__body.is-thin { grid-template-columns: minmax(0, 1fr); }
	.bos-line__body.is-thin [data-products] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* 14.5 Scroll reveal (class set by assets/js/bos.js; nothing is hidden without JS) */
.bos-reveal-on [data-bos-reveal]:not(.is-in) { opacity: 0; transform: translateY(14px); }
.bos-reveal-on [data-bos-reveal] { transition: opacity .5s var(--bos-ease), transform .5s var(--bos-ease); }
.bos-reveal-on .bos-linecard[data-bos-reveal], .bos-reveal-on .bos-brand[data-bos-reveal], .bos-reveal-on .bos-task[data-bos-reveal] { transition: opacity .5s var(--bos-ease), transform .5s var(--bos-ease), border-color .15s, background-color .15s; }
@media (prefers-reduced-motion: reduce) {
	.bos-reveal-on [data-bos-reveal]:not(.is-in) { opacity: 1; transform: none; }
	[data-products] .product:hover, [data-products] .product:hover .ct-media-container img, .bos-task:hover, .bos-brand:hover .bos-brand__go span { transform: none; }
}

/* 14.6 Product page: the tax/shipping lines hung 40px under the price */
.single-product .entry-summary .legacy-itemprop-offers .price { margin: 0 0 4px; }
.single-product .entry-summary .legacy-itemprop-offers .wgm-info { margin: 0; line-height: 1.45; }

/* 14.7 Footer: five columns, brand column added; collapses like the four-column grid did */
@media (max-width: 1100px) and (min-width: 1001px) {
	.bos-footer__grid { gap: 28px; }
}
@media (max-width: 1000px) {
	.bos-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

/* ---------- 14. Licence filter (Laufzeit / Gerät / Anzahl Geräte), inc/facets.php + assets/js/bos-filter.js ---------- */
.bos-fhide, .bos-filter [hidden] { display: none !important; }
.bos-filter {
	margin: 0 0 28px;
	padding: 16px 18px 14px;
	background: var(--bos-tint);
	border: 1px solid var(--bos-rule);
	border-radius: var(--bos-r);
}
.bos-filter[hidden] { display: none; }
.bos-filterwrap { margin-top: 28px; }
.bos-filter__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.bos-filter__title { margin: 0; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--bos-mute); font-weight: 500; }
.bos-filter__reset, .bos-linkbtn {
	white-space: nowrap;
	min-height: 44px;
	padding: 0 4px;
	background: none;
	border: 0;
	color: var(--bos-accent);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.bos-linkbtn { min-height: 0; padding: 0; font-size: inherit; white-space: normal; }
.bos-filter__groups { display: flex; flex-wrap: wrap; gap: 14px 32px; }
.bos-filter__group { margin: 0; padding: 0; border: 0; min-width: 0; }
.bos-filter__legend { padding: 0; margin: 0 0 6px; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--bos-mute); }
.bos-filter__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.bos-fchip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
	padding: 0 14px;
	background: var(--bos-paper);
	border: 1px solid var(--bos-rule-strong);
	border-radius: var(--bos-r-sm);
	color: var(--bos-ink);
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .15s var(--bos-ease), border-color .15s var(--bos-ease), color .15s var(--bos-ease);
}
.bos-fchip:hover { border-color: var(--bos-ink); }
.bos-fchip[aria-pressed="true"] { background: var(--bos-ink); border-color: var(--bos-ink); color: var(--bos-paper); }
.bos-fchip[aria-disabled="true"] { border-style: dashed; color: var(--bos-mute); font-weight: 500; cursor: not-allowed; }
.bos-fchip[aria-disabled="true"]:hover { border-color: var(--bos-rule-strong); }
.bos-filter__status { margin: 12px 0 0; min-height: 1.4em; font-size: 14px; color: var(--bos-mute); }
.bos-filter__empty { margin: 10px 0 0; padding: 12px 14px; background: var(--bos-paper); border: 1px solid var(--bos-rule); border-radius: var(--bos-r-sm); color: var(--bos-text); font-size: 15px; }
/* what the card shows while a filter is on: the matching variation, named under the price */
.bos-fprice__l { display: block; margin-top: 2px; font-family: var(--bos-mono); font-stretch: 100%; font-size: 12.5px; font-weight: 500; letter-spacing: 0; color: var(--bos-mute); }

@media (max-width: 689px) {
	.bos-filter { padding: 14px 14px 10px; margin-bottom: 20px; }
	.bos-filter__groups { gap: 12px; }
	.bos-filter__group { flex-basis: 100%; }
	.bos-fchip { flex: 0 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
	.bos-fchip { transition: none; }
}

/* 14.8 Header dropdown (Aufgaben): Blocksy paints it dark while palette-color-8 is our ink, so the links vanished */
.ct-header .sub-menu {
	--dropdown-width: 270px;
	width: 270px;
	--dropdown-divider: 1px solid var(--bos-rule);
	background-color: var(--bos-paper);
	border: 1px solid var(--bos-rule);
	border-radius: var(--bos-r-sm);
	box-shadow: 0 10px 24px rgba(26, 32, 44, .12);
}
.ct-header .sub-menu .ct-menu-link {
	--theme-link-initial-color: var(--bos-ink);
	--theme-link-hover-color: var(--bos-accent);
	font-size: 14.5px;
	min-height: 44px;
}
.ct-header .sub-menu .ct-menu-link:hover,
.ct-header .sub-menu .ct-menu-link:focus-visible,
.ct-header .sub-menu .current-menu-item > .ct-menu-link {
	background-color: var(--bos-tint);
	box-shadow: inset 3px 0 0 var(--bos-accent);
}

/* 14.9 Header account symbol (text element with one link, see settings/theme-mods.php): same ink and size as the cart icon, 44 px target */
#header .ct-header-text .entry-content { margin: 0; }
#header .bos-account {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	color: var(--bos-ink);
	border-radius: var(--bos-r-sm);
	transition: color .15s ease;
}
#header .bos-account:hover, #header .bos-account:focus-visible { color: var(--bos-accent); }
#header .bos-account svg { display: block; width: 15px; height: 15px; }

/* 14.10 Mobile header: with the account icon added the logo ran into the search icon (overlapped at 360 px).
   Tighter margins between the icon items (the account link brings its own 44 px box) leave at least 12 px behind the wordmark. */
@media (max-width: 689px) {
	#header [data-column="end"] [data-items] > [data-id] { margin-inline: 6px; }
	#header [data-column="end"] [data-items] > [data-id="text"] { margin-inline: 0; }
	#header [data-column="end"] [data-items] > [data-id="trigger"] { margin-inline: 12px 0; }
	#header [data-column="start"] .site-branding { margin-inline: 0 12px; }
}
@media (max-width: 400px) {
	#header .site-title { font-size: 20px; }
	#header .site-title a { gap: 8px; }
}
/* a filtered card on sale: regular price struck through, sale price as the price (same pair the product page shows) */
[data-products] .product .price del { margin-right: 6px; font-family: var(--bos-body); font-size: 15px; font-weight: 400; color: var(--bos-mute); }
[data-products] .product .price ins { text-decoration: none; background: none; color: inherit; }

/* 14.11 Header panels: Blocksy paints the mini cart (#29333C), the off-canvas menu and the search modal (near-black)
   dark in both colour schemes, so the red links (2.2:1), the ink menu entry and the grey hint line vanished.
   Same fix as 14.8: paper background, ink text, rule border, accent links; dark mode follows the tokens.
   The doubled attribute selector outranks Blocksy's generated [data-header*="type-1"] rules. */
[data-header*="type-1"][data-header*="type-1"] [data-id="cart"] .ct-cart-content {
	--theme-text-color: var(--bos-text);
	--mini-cart-background-color: var(--bos-paper);
	--mini-cart-divider-color: var(--bos-rule);
	--theme-link-initial-color: var(--bos-accent);
	--theme-link-hover-color: var(--bos-btn-hover);
	border: 1px solid var(--bos-rule);
	border-radius: var(--bos-r-sm);
	box-shadow: 0 10px 24px rgba(26, 32, 44, .12);
}
[data-header*="type-1"][data-header*="type-1"] [data-id="cart"] .ct-cart-content .total { --theme-text-color: var(--bos-ink); }
@media (prefers-color-scheme: dark) {
	[data-header*="type-1"][data-header*="type-1"] [data-id="cart"] .ct-cart-content { --theme-link-hover-color: var(--bos-accent); box-shadow: 0 10px 24px rgba(0, 0, 0, .5); }
}
.ct-cart-content a:not(.button) { text-decoration: underline; text-underline-offset: 2px; }
.ct-cart-content .woocommerce-mini-cart-item .product-title { font-weight: 600; }
.ct-cart-content .jde_hint, .ct-cart-content .wgm-info, .ct-cart-content .woocommerce-mini-cart__total + * { color: var(--bos-mute); }
.ct-cart-content .woocommerce-mini-cart__buttons .button {
	--theme-button-min-height: 44px;
	--theme-button-background-initial-color: var(--bos-btn);
	--theme-button-background-hover-color: var(--bos-btn-hover);
	--theme-button-text-initial-color: var(--bos-btn-text);
	--theme-button-text-hover-color: var(--bos-btn-text);
	border-radius: var(--bos-r-sm);
	text-decoration: none;
}
.ct-cart-content .woocommerce-mini-cart__buttons .button:not(.checkout) {
	--theme-button-background-initial-color: transparent;
	--theme-button-background-hover-color: transparent;
	--theme-button-text-initial-color: var(--bos-ink);
	--theme-button-text-hover-color: var(--bos-ink);
	border: 1px solid var(--bos-rule-strong);
}
.ct-cart-content .woocommerce-mini-cart__buttons .button:not(.checkout):hover { border-color: var(--bos-ink); }

/* Off-canvas menu and search modal */
[data-header*="type-1"][data-header*="type-1"] #offcanvas .ct-panel-inner,
[data-header*="type-1"][data-header*="type-1"] #search-modal { background-color: color-mix(in srgb, var(--bos-paper) 98%, transparent); }
[data-header*="type-1"][data-header*="type-1"] #offcanvas {
	--theme-text-color: var(--bos-text);
	--theme-link-initial-color: var(--bos-ink);
	--theme-link-hover-color: var(--bos-accent);
	--theme-icon-color: var(--bos-ink);
	--theme-icon-hover-color: var(--bos-accent);
}
[data-header*="type-1"][data-header*="type-1"] [data-id="mobile-menu"] { --theme-link-initial-color: var(--bos-ink); --theme-link-hover-color: var(--bos-accent); }
#offcanvas .ct-panel-inner { border-inline-start: 1px solid var(--bos-rule); }
#offcanvas .current-menu-item > .ct-menu-link { color: var(--bos-ink); box-shadow: inset 3px 0 0 var(--bos-accent); padding-inline-start: 12px; }
[data-header*="type-1"][data-header*="type-1"] #search-modal {
	--theme-text-color: var(--bos-text);
	--theme-icon-color: var(--bos-ink);
	--theme-icon-hover-color: var(--bos-accent);
}
[data-header*="type-1"][data-header*="type-1"] #search-modal .ct-search-form {
	--theme-link-initial-color: var(--bos-ink);
	--theme-form-text-initial-color: var(--bos-ink);
	--theme-form-text-focus-color: var(--bos-ink);
	--theme-form-field-border-initial-color: var(--bos-rule-strong);
	--theme-button-text-initial-color: var(--bos-btn-text);
	--theme-button-text-hover-color: var(--bos-btn-text);
}
#search-modal .ct-search-form input[type="search"]::placeholder { color: var(--bos-mute); opacity: 1; }

/* 14.11 Disk map parts are links: the theme's a:hover colour (ink) beat .bos-part's label colour, so labels vanished on hover */
a.bos-part:is(:hover, :focus-visible) { color: var(--bos-part-text); }
a.bos-part:is(:nth-child(4), :nth-child(5)):is(:hover, :focus-visible) { color: var(--bos-part-text-2); }

/* 14.11 Header panels: Blocksy paints the mini cart (#29333C), the off-canvas menu and the search modal (near-black)
   dark in both colour schemes, so the red links (2.2:1), the ink menu entry and the grey hint line vanished.
   Same fix as 14.8: paper background, ink text, rule border, accent links; dark mode follows the tokens.
   The doubled attribute selector outranks Blocksy's generated [data-header*="type-1"] rules. */
[data-header*="type-1"][data-header*="type-1"] [data-id="cart"] .ct-cart-content {
	--theme-text-color: var(--bos-text);
	--mini-cart-background-color: var(--bos-paper);
	--mini-cart-divider-color: var(--bos-rule);
	--theme-link-initial-color: var(--bos-accent);
	--theme-link-hover-color: var(--bos-btn-hover);
	border: 1px solid var(--bos-rule);
	border-radius: var(--bos-r-sm);
	box-shadow: 0 10px 24px rgba(26, 32, 44, .12);
}
[data-header*="type-1"][data-header*="type-1"] [data-id="cart"] .ct-cart-content .total { --theme-text-color: var(--bos-ink); }
@media (prefers-color-scheme: dark) {
	[data-header*="type-1"][data-header*="type-1"] [data-id="cart"] .ct-cart-content { --theme-link-hover-color: var(--bos-accent); box-shadow: 0 10px 24px rgba(0, 0, 0, .5); }
}
.ct-cart-content a:not(.button) { text-decoration: underline; text-underline-offset: 2px; }
.ct-cart-content .woocommerce-mini-cart-item .product-title { font-weight: 600; }
.ct-cart-content .jde_hint, .ct-cart-content .wgm-info, .ct-cart-content .woocommerce-mini-cart__total + * { color: var(--bos-mute); }
.ct-cart-content .woocommerce-mini-cart__buttons .button {
	--theme-button-min-height: 44px;
	--theme-button-background-initial-color: var(--bos-btn);
	--theme-button-background-hover-color: var(--bos-btn-hover);
	--theme-button-text-initial-color: var(--bos-btn-text);
	--theme-button-text-hover-color: var(--bos-btn-text);
	border-radius: var(--bos-r-sm);
	text-decoration: none;
}
.ct-cart-content .woocommerce-mini-cart__buttons .button:not(.checkout) {
	--theme-button-background-initial-color: transparent;
	--theme-button-background-hover-color: transparent;
	--theme-button-text-initial-color: var(--bos-ink);
	--theme-button-text-hover-color: var(--bos-ink);
	border: 1px solid var(--bos-rule-strong);
}
.ct-cart-content .woocommerce-mini-cart__buttons .button:not(.checkout):hover { border-color: var(--bos-ink); }

/* Off-canvas menu and search modal */
[data-header*="type-1"][data-header*="type-1"] #offcanvas .ct-panel-inner,
[data-header*="type-1"][data-header*="type-1"] #search-modal { background-color: color-mix(in srgb, var(--bos-paper) 98%, transparent); }
[data-header*="type-1"][data-header*="type-1"] #offcanvas {
	--theme-text-color: var(--bos-text);
	--theme-link-initial-color: var(--bos-ink);
	--theme-link-hover-color: var(--bos-accent);
	--theme-icon-color: var(--bos-ink);
	--theme-icon-hover-color: var(--bos-accent);
}
[data-header*="type-1"][data-header*="type-1"] [data-id="mobile-menu"] { --theme-link-initial-color: var(--bos-ink); --theme-link-hover-color: var(--bos-accent); }
#offcanvas .ct-panel-inner { border-inline-start: 1px solid var(--bos-rule); }
#offcanvas .current-menu-item > .ct-menu-link { color: var(--bos-ink); box-shadow: inset 3px 0 0 var(--bos-accent); padding-inline-start: 12px; }
[data-header*="type-1"][data-header*="type-1"] #search-modal {
	--theme-text-color: var(--bos-text);
	--theme-icon-color: var(--bos-ink);
	--theme-icon-hover-color: var(--bos-accent);
}
[data-header*="type-1"][data-header*="type-1"] #search-modal .ct-search-form {
	--theme-link-initial-color: var(--bos-ink);
	--theme-form-text-initial-color: var(--bos-ink);
	--theme-form-text-focus-color: var(--bos-ink);
	--theme-form-field-border-initial-color: var(--bos-rule-strong);
	--theme-button-text-initial-color: var(--bos-btn-text);
	--theme-button-text-hover-color: var(--bos-btn-text);
	--theme-button-background-initial-color: var(--bos-btn);
	--theme-button-background-hover-color: var(--bos-btn-hover);
}
#search-modal .ct-search-form input[type="search"]::placeholder { color: var(--bos-mute); opacity: 1; }

/* 14.11 Disk map parts are links: the theme's a:hover colour (ink) beat .bos-part's label colour, so labels vanished on hover */
a.bos-part:is(:hover, :focus-visible) { color: var(--bos-part-text); }
a.bos-part:is(:nth-child(4), :nth-child(5)):is(:hover, :focus-visible) { color: var(--bos-part-text-2); }

/* Thank-you page after the contact form (/kontakt/danke/) */
.bos-thanks__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
@media (max-width: 480px) { .bos-thanks__actions .bos-btn { flex: 1 1 100%; } }
