/* Katalog: Produktkarten, Kategorie-Liste, feste Kategorie-Ansichten. Lädt nur im Shop-Archiv. */

/* Archiv-Basis: Ergebnisanzahl, Sortierung und Pagination. */
.woocommerce .woocommerce-result-count {
	margin-bottom: 1.25rem;
	color: #64748b;
	font-size: var(--theme-text-small);
	font-weight: 600;
}

.woocommerce .woocommerce-ordering {
	margin-bottom: 1.25rem;
}

.woocommerce .woocommerce-ordering select.orderby {
	min-height: 2.85rem;
	padding: .5rem 2.25rem .5rem 1rem;
	border: 1px solid #b8c1ca;
	border-radius: var(--theme-radius-s);
	color: var(--theme-color-ink);
	background: #fff;
	font-family: var(--theme-font-body);
	font-size: var(--theme-text-small);
	font-weight: 600;
	cursor: pointer;
}

.woocommerce-pagination,
nav.woocommerce-pagination {
	display: flex;
	justify-content: center;
	width: 100%;
	margin-top: clamp(2rem, 5vw, 3.5rem);
}

.woocommerce-pagination ul.page-numbers,
nav.woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin: 0;
	padding: 0;
	border: none;
	list-style: none;
}

.woocommerce-pagination ul.page-numbers li,
nav.woocommerce-pagination ul.page-numbers li {
	margin: 0;
	padding: 0;
	float: none;
	border: none;
}

.woocommerce-pagination ul.page-numbers li .page-numbers,
nav.woocommerce-pagination ul.page-numbers li .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: .45rem .75rem;
	border: 1px solid var(--theme-color-line);
	border-radius: var(--theme-radius-s);
	color: var(--theme-color-blue-dark);
	background: #fff;
	font-family: var(--theme-font-heading);
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	transition: all var(--theme-transition);
}

.woocommerce-pagination ul.page-numbers li .page-numbers.current,
nav.woocommerce-pagination ul.page-numbers li .page-numbers.current,
.woocommerce-pagination ul.page-numbers li a.page-numbers:hover,
nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover {
	border-color: var(--theme-color-blue);
	color: #fff;
	background: var(--theme-color-blue);
}

.theme-product-card .price,
.theme-product-card .price ins,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price ins,
body.site-layout .woocommerce ul.products.theme-product-grid li.product.theme-product-card .price,
body.site-layout .woocommerce ul.products.theme-product-grid li.product.theme-product-card .price ins {
	color: #666666 !important;
}

.theme-product-card .price del,
.woocommerce ul.products li.product .price del,
body.site-layout .woocommerce ul.products.theme-product-grid li.product.theme-product-card .price del {
	/* 4.6:1 auf Weiss, bleibt deutlich heller als der gueltige Preis */
	color: #6b7780 !important;
	text-decoration: line-through !important;
	opacity: 1 !important;
}

/* Produktkarten behalten bei langen Aktionspreisen einen stabilen Inhaltsfluss. */
.theme-product-card .woocommerce-LoopProduct-link,
.theme-product-card .theme-product-card__content,
body.site-layout .woocommerce ul.products li.product .woocommerce-LoopProduct-link {
	display: flex;
	flex: 1;
	flex-direction: column;
}

body.site-layout .woocommerce ul.products:not(.theme-product-grid):not(.related *):not(.upsells *) {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--theme-space-l);
}

body.site-layout .woocommerce ul.products::before,
body.site-layout .woocommerce ul.products::after,
body.site-layout .woocommerce-page ul.products::before,
body.site-layout .woocommerce-page ul.products::after,
body.site-layout ul.products::before,
body.site-layout ul.products::after {
	display: none !important;
	content: none !important;
}

body.site-layout .woocommerce ul.products:not(.related *):not(.upsells *) li.product {
	display: flex;
	width: auto;
	height: 100%;
	flex-direction: column;
	float: none;
	padding: 0;
	margin: 0;
	border: 1px solid rgb(0 57 115 / 7%);
	border-radius: var(--theme-radius);
	background: var(--theme-color-surface);
	box-shadow: 0 .65rem 2rem rgb(0 57 115 / 8%);
}

body.site-layout .woocommerce ul.products li.product.theme-product-card a img,
body.site-layout .woocommerce ul.products li.product.theme-product-card img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	aspect-ratio: 1 / 1;
	border-radius: 7px;
	object-fit: cover;
}

body.site-layout .woocommerce ul.products:not(.theme-product-grid):not(.related *):not(.upsells *) li.product {
	padding: var(--theme-space-m);
}

.theme-product-card .woocommerce-product-details__short-description,
body.site-layout .woocommerce ul.products li.product .woocommerce-product-details__short-description {
	margin: 0 0 var(--theme-space-m);
}

.theme-product-card .woocommerce-product-details__short-description {
	padding-inline: 1.25rem;
}

.theme-product-card .woocommerce-product-details__short-description > :first-child {
	display: block;
	overflow: visible;
}

.theme-product-card .woocommerce-loop-product__title {
	display: block;
	min-height: 0;
	overflow: visible;
	white-space: normal;
}

.theme-product-card .price,
body.site-layout .woocommerce ul.products li.product .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .25rem .55rem;
	margin-top: auto;
	line-height: 1.35;
}

.theme-product-card .price br,
body.site-layout .woocommerce ul.products li.product .price br {
	display: none;
}

.theme-product-card .price :where(.saved-amount, .best-price-legal-note),
body.site-layout .woocommerce ul.products li.product .price :where(.saved-amount, .best-price-legal-note) {
	position: static;
	display: block;
	flex: 1 0 100%;
	margin: 0;
	white-space: normal !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
}

.woocommerce :where(.saved-amount, .best-price-legal-note) {
	display: block;
	font-size: .8rem;
	font-weight: 500;
	white-space: normal !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
}

.woocommerce .saved-amount {
	color: var(--theme-color-blue-dark) !important;
	font-weight: 600;
	font-size: .8rem !important;
	line-height: 1.35;
	max-inline-size: 20.5rem;
}

.theme-product-card .price .saved-amount,
body.site-layout .woocommerce ul.products li.product .price .saved-amount {
	margin-inline-start: auto;
}

.woocommerce .saved-amount b,
.woocommerce .saved-amount strong {
	font-family: var(--theme-font-heading);
	font-weight: 700;
}

.woocommerce .best-price-legal-note {
	color: #666 !important;
	font-size: .72rem !important;
	font-weight: 400 !important;
	line-height: 1.3;
}

@keyframes theme-urgency-pulse {
	0%, 100% { color: #003973; }
	50% { color: #3695bf; }
}

.theme-urgency-today {
	display: inline;
	animation: theme-urgency-pulse 1.6s ease-in-out infinite;
	font-weight: 700;
}

@media (max-width: 64rem) {
	.theme-section.usp-block .theme-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.5rem;
	}

	.theme-section.usp-block .theme-row + .theme-row {
		margin-top: 2.5rem;
	}

	.theme-magazine-grid,
	body.site-layout .woocommerce ul.products:not(.theme-product-grid) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 40rem) {
	.theme-section.usp-block .theme-row {
		grid-template-columns: 1fr;
		gap: 3rem;
	}
	.theme-section.usp-block .theme-row + .theme-row {
		margin-top: 3rem;
	}
	.theme-section.usp-block { padding-block: 3rem; }

	.theme-magazine-grid,
	body.site-layout .woocommerce ul.products:not(.theme-product-grid) {
		grid-template-columns: 1fr;
	}

	.theme-magazine-card__body {
		padding: 1.25rem;
	}

	.theme-feature-card__image {
		height: 6rem;
	}

	.theme-section.usp-block .theme-feature-card {
		grid-template-rows: 8rem auto 1fr;
	}

	.theme-section.usp-block .theme-feature-card__image {
		width: 8rem;
	}
}

/* Produktlisten-Layouts: Die feste Kategorie-Ansicht wählt über eine
   Modifikatorklasse am Section-Element die Darstellungsform. Ein neues
   Template muss dadurch nur diese eine Klasse setzen:
   - --sidebar : Filter-Sidebar links, Produkte rechts als Listen-Karten (Osmoseanlagen, Filtersätze)
   - --list    : Listen-Karten in voller Breite ohne Sidebar (Wasserionisierer, Wasserspender)
   - --compact : kompakte Grid-Karten ohne Rahmen (Enthärtungsanlagen, 3-Wege-Wasserhähne)
   Die Karten-Styles gelten für --sidebar und --list gemeinsam, sie unterscheiden
   sich allein durch den Sidebar-Wrapper und die Container-Breite. */
body.site-layout .theme-section--product-list--sidebar .theme-product-filter {
	display: grid;
	grid-template-columns: 15rem minmax(0, 1fr);
	align-items: start;
	gap: 3.5rem;
	width: min(calc(100% - 2rem), var(--theme-content-width));
	margin: 3.25rem auto 0;
}

.theme-product-filter__sidebar {
	min-width: 0;
	align-self: start;
}

.theme-product-filter__panel { padding: 0; border: 0; }

.theme-product-filter__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--theme-space-s);
	margin: 0 0 1.15rem;
	color: #666;
	font-size: 1.0625rem;
	font-weight: 800;
	list-style: none;
}

.theme-product-filter__title::-webkit-details-marker { display: none; }

.theme-filter-links {
	display: grid;
	gap: .625rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.theme-filter-links li {
	list-style: none;
	padding: 0;
	margin: 0;
	border: 0;
}

.theme-filter-link {
	position: relative;
	display: flex;
	width: 100%;
	min-height: 3rem;
	align-items: center;
	gap: .75rem;
	padding: .65rem .85rem;
	border: 1.5px solid var(--theme-color-line);
	border-radius: var(--theme-radius-s);
	color: var(--theme-color-ink);
	background: #ffffff;
	font-family: var(--theme-font-heading);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.25;
	cursor: pointer;
	text-align: left;
	text-decoration: none;
	box-sizing: border-box;
	transition: all var(--theme-transition);
}

.theme-filter-link:hover {
	border-color: #cbd5e1;
	background: #fdfefe;
	box-shadow: 0 2px 6px rgb(16 35 62 / 4%);
	color: var(--theme-color-ink);
	text-decoration: none;
}

.theme-filter-link.is-active {
	border-color: var(--theme-color-blue);
	background: #f8fbfe;
	box-shadow: 0 2px 10px rgb(0 57 115 / 8%);
	color: var(--theme-color-blue-dark);
}

.theme-filter-control {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	border: 1.5px solid #cbd5e1;
	border-radius: .25rem;
	background: #ffffff;
	box-sizing: border-box;
	transition: all var(--theme-transition);
}

.theme-filter-link:hover .theme-filter-control {
	border-color: #94a3b8;
}

.theme-filter-link.is-active .theme-filter-control {
	border-color: var(--theme-color-blue);
	background: var(--theme-color-blue) center / .75rem .75rem no-repeat url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='m3 8 3 3 7-7'/%3E%3C/svg%3E");
}

.theme-icon-aqua-stop:before { content: "\e900"; color: #126194; }
.theme-icon-auto-membrane-rinse:before { content: "\e901"; color: #126194; }
.theme-icon-direct-filtration:before { content: "\e902"; color: #126194; }
.theme-icon-ice-maker:before { content: "\e903"; color: #126194; }
.theme-icon-chilled:before { content: "\e904"; color: #126194; }
.theme-icon-hot-water:before { content: "\e905"; color: #126194; }
.theme-icon-carbonated:before { content: "\e906"; color: #126194; }
.theme-icon-room-temperature:before { content: "\e907"; color: #126194; }
.theme-icon-self-priming:before { content: "\e908"; color: #126194; }
.theme-icon-rinse-96h:before { content: "\e909"; color: #126194; }

.theme-filter-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 1.75rem;
	height: 1.75rem;
	font-family: "theme-icons" !important;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	font-size: 1.6rem;
	color: #126194;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.theme-filter-label {
	flex: 1 1 auto;
	min-width: 0;
	color: var(--theme-color-ink);
	font-family: var(--theme-font-heading);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.25;
}

.theme-filter-link.is-active .theme-filter-label {
	color: var(--theme-color-blue-dark);
}

.theme-filter-reset {
	display: inline-flex;
	align-items: center;
	width: auto;
	min-height: 2.25rem;
	margin-top: .5rem;
	padding: .25rem 0;
	border: 0;
	border-radius: 0;
	color: var(--theme-color-blue-dark);
	background: transparent;
	font-family: var(--theme-font-heading);
	font-size: var(--theme-text-small);
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
	text-decoration: none;
	box-sizing: border-box;
	transition: color var(--theme-transition);
}

.theme-filter-reset:hover {
	color: var(--theme-color-blue);
	background: transparent;
	text-decoration: underline;
}

.theme-product-filter__results {
	min-width: 0;
	align-self: start;
	margin-top: 0;
	padding-top: 0;
}

.theme-product-filter__results > .theme-product-grid { margin-top: 0; }

.theme-product-filter__results > .theme-product-grid::before,
.theme-product-filter__results > .theme-product-grid::after,
body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) .theme-product-grid.products::before,
body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) .theme-product-grid.products::after {
	display: none !important;
	content: none !important;
}

.theme-filter-status { display: flex; flex-wrap: wrap; gap: .25rem .65rem; margin: 0 0 1.15rem; color: #666; font-size: var(--theme-text-small); }
.theme-filter-status--top { margin: 0 0 1.15rem; }
.theme-filter-status--bottom { margin: 1.15rem 0 0; }
.theme-filter-status:empty,
.theme-filter-status[hidden] { display: none !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important; }
.theme-filter-status [data-filter-notice-reset] { padding: 0; border: 0; color: var(--theme-color-blue-dark); background: transparent; font: inherit; font-weight: 700; cursor: pointer; text-decoration: none; }
.theme-filter-status [data-filter-notice-reset]:hover { text-decoration: none; }

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) .theme-product-grid.products {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	width: 100%;
	margin: 0;
}

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card {
	display: block;
	min-height: 0;
	padding: 1.2rem;
	border: 1px solid var(--theme-color-line);
	border-radius: var(--theme-radius-s);
	background: #fff;
	box-shadow: var(--theme-card-shadow);
	cursor: pointer;
}

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .theme-product-card__content {
	display: grid;
	grid-template-columns: 13.8rem minmax(0, 1fr);
	grid-template-rows: auto 1fr auto;
	column-gap: 1.65rem;
	min-height: auto;
}

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card img {
	grid-row: 1 / -1;
	align-self: start;
	width: 100%;
	height: auto;
	min-height: 0;
	max-height: 15.6rem;
	aspect-ratio: 1 / 1;
	border-radius: 7px;
	object-fit: cover;
}

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .woocommerce-loop-product__title {
	display: block;
	min-height: 0;
	max-height: none;
	overflow: visible;
	margin: 0;
	padding: 0 0 .65rem;
	font-family: var(--theme-font-heading);
	font-size: clamp(1.05rem, 2vw, 1.375rem);
	font-weight: 500;
	line-height: 1.35;
	white-space: normal;
}

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .woocommerce-loop-product__title a {
	color: var(--theme-color-blue-dark);
	text-decoration: none;
}

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .woocommerce-product-details__short-description {
	padding: 0;
	margin: 0;
}

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .woocommerce-product-details__short-description p {
	display: block;
	overflow: visible;
	margin: 0;
	color: #666;
	font-size: 1rem;
	line-height: 1.55;
}

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .price {
	justify-self: end;
	display: block;
	margin: .8rem 0 0;
	padding: 0;
	color: #666;
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.3;
	text-align: right;
}

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .price del {
	margin-right: .45rem;
	color: #666;
	font-size: .875rem;
	font-weight: 400;
	text-decoration: line-through;
}

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .price ins {
	color: #666;
	background: transparent;
	font-size: 1.25rem;
	font-weight: 700;
	text-decoration: none;
}

body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .onsale {
	top: 1.2rem;
	left: 1.2rem;
	min-height: 0;
	margin: 0;
	padding: .375rem 1.125rem;
	border-radius: 3px;
	border-top-left-radius: 7px;
	color: #fff;
	background: var(--theme-color-blue-dark);
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.3;
}

@media (max-width: 47.9375rem) {
	body.site-layout .theme-section--product-list--sidebar .theme-product-filter {
		grid-template-columns: 1fr;
		gap: 2.25rem;
		margin-block: 2.5rem 0;
	}
	.theme-product-filter__sidebar {
		padding: 0;
		border: 1px solid #d8d8d8;
	}

	.theme-product-filter__title { min-height: 3.5rem; padding: .75rem 1.25rem; margin: 0; cursor: pointer; }
	.theme-product-filter__title::after { content: "+"; font-family: Arial, sans-serif; font-size: 1.5rem; font-weight: 400; }
	.theme-product-filter__panel[open] .theme-product-filter__title::after { content: "−"; }
	.theme-product-filter__panel > :not(summary) { margin-inline: 1.25rem; margin-block-end: 1.25rem; }

	.theme-filter-links {
		gap: .25rem;
	}

	.theme-filter-links li {
		padding: 0;
	}

	.theme-filter-link { min-height: 3rem; }

	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .theme-product-card__content {
		grid-template-columns: minmax(8.5rem, 10rem) minmax(0, 1fr);
		column-gap: 1rem;
		min-height: 10rem;
	}

	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card img {
		align-self: start;
		max-height: 11rem;
	}

	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .woocommerce-loop-product__title {
		font-size: 1.1rem;
	}

	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .woocommerce-product-details__short-description p {
		display: block;
		overflow: visible;
		font-size: .92rem;
	}

	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .price {
		font-size: 1.1rem;
	}

	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .price ins {
		font-size: 1.15rem;
	}

	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .price del {
		font-size: .82rem;
	}
}

@media (max-width: 30rem) {
	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .theme-product-card__content {
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
	}

	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card img {
		grid-row: auto;
		width: 100%;
		height: auto;
		max-height: none;
		aspect-ratio: 1 / 1;
		object-fit: cover;
		margin: 0 0 1rem;
	}

	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .price {
		margin: .65rem 0 0;
		font-size: 1.05rem;
	}

	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .price ins {
		font-size: 1.1rem;
	}

	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid li.product.theme-product-card .price del {
		font-size: .8rem;
	}
}

@media (max-width: 24rem) {
	.theme-product-filter__title {
		gap: .5rem;
		padding-inline: .75rem;
		font-size: .875rem;
		white-space: nowrap;
	}

	.theme-product-filter__title::after { font-size: 1.25rem; }
}

/* Übergänge ab der Produktliste folgen auf allen Kategorieseiten demselben
   Prinzip: Die Section schließt ohne eigenen unteren Abstand ab, Listen-
   Container (Filter-Wrapper, Produktgrid) tragen keine vertikalen
   Außenabstände. Den Rhythmus zur Folgesection steuert allein die
   Folgesection über ihr eigenes Top-Padding, damit sich kein gestapelter
   Doppelabstand mehr aufbauen kann. */
body.tax-product_cat .theme-section--product-list {
	padding-bottom: 0;
}

body.tax-product_cat .theme-section--product-list .theme-product-filter {
	margin-bottom: 0;
}

body.tax-product_cat .theme-section--product-list :is(.theme-product-grid, ul.products) {
	padding-bottom: 0;
	margin-bottom: 0;
}

/* Erste Produktsektion im etablierten Sektionsrhythmus. */
.theme-section--product-list--sidebar,
.theme-section--product-list--list {
	padding-top: 1.45rem;
}

/* Endet die Produktliste direkt vor der Wellen-Sektion der Bewertungen,
   liefert die Produktliste selbst den Übergangsabstand zur nächsten Sektion. */
body.term-wasserspender .theme-section--product-list {
	padding-bottom: var(--theme-section-transition-space);
}

/* Kategorieprodukte in kompakter Kartenübersicht. */
body.site-layout .theme-section--product-list--compact .theme-product-filter {
	width: min(calc(100% - 2rem), var(--theme-container-size-product));
}

body.site-layout .theme-section--product-list--compact ul.products.theme-product-grid {
	gap: 3.74rem 2.5rem;
}

body.site-layout .theme-section--product-list--compact ul.products.theme-product-grid li.product.theme-product-card {
	display: block;
	height: auto;
	overflow: visible;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

body.site-layout .theme-section--product-list--compact ul.products.theme-product-grid li.product.theme-product-card.first {
	clear: none;
}

body.site-layout .theme-section--product-list--compact ul.products.theme-product-grid li.product.theme-product-card .theme-product-card__content {
	display: block;
	height: auto;
	min-height: 0;
}

body.site-layout .theme-section--product-list--compact ul.products.theme-product-grid li.product.theme-product-card img {
	width: 100%;
	height: auto;
	max-height: none;
	aspect-ratio: 1 / 1;
	border-radius: 7px;
	object-fit: cover;
}

body.site-layout .theme-section--product-list--compact ul.products.theme-product-grid li.product.theme-product-card .woocommerce-loop-product__title {
	display: block;
	min-height: 0;
	margin: 0;
	padding: .6875rem 0;
	overflow: visible;
	font-family: var(--theme-font-heading);
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 1.5;
}

body.site-layout .theme-section--product-list--compact ul.products.theme-product-grid li.product.theme-product-card .price {
	display: block;
	margin: 0;
	color: #666;
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.3;
}

/* Listen-Layout ohne Sidebar erhält einen zentrierten Produkt-Container. */
body.site-layout .theme-section--product-list--list .theme-product-filter {
	width: min(calc(100% - 2rem), var(--theme-container-size-product));
}

body.term-enthaertungsanlagen .theme-section--faq-intro {
	min-height: 0;
	text-align: center;
}

body.term-enthaertungsanlagen .theme-section--advisor {
	padding: 6% 0 2%;
}

body.term-enthaertungsanlagen .theme-advisor {
	padding: 0;
}

body.term-enthaertungsanlagen .theme-advisor__content {
	width: min(100%, var(--theme-content-width));
}

body.term-enthaertungsanlagen .theme-advisor h2 {
	padding-bottom: .625rem;
	font-family: var(--theme-font-heading);
	font-weight: 500;
}

body.term-enthaertungsanlagen .theme-advisor p {
	font-weight: 500;
}

body.term-enthaertungsanlagen .theme-advisor form {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 5%;
}

body.term-enthaertungsanlagen .theme-advisor__field {
	gap: .3125rem;
	font-family: var(--theme-font-heading);
	font-weight: 500;
}

body.term-enthaertungsanlagen .theme-advisor .wp-element-button {
	position: relative;
	width: 100%;
	min-height: 3.25rem;
	padding: .375rem 2.5rem .375rem .875rem;
	border: 1px solid #002244;
	border-radius: .375rem;
	color: #fff;
	background: var(--theme-color-blue) linear-gradient(180deg, #004b8d 0%, #003366 100%);
	box-shadow: 0 2px 6px rgb(0 34 68 / 25%), inset 0 1px 0 rgb(255 255 255 / 15%);
	font-family: var(--theme-font-heading);
	font-weight: 700;
	transition: color var(--theme-transition), background var(--theme-transition), border-color var(--theme-transition), box-shadow var(--theme-transition), transform var(--theme-transition);
}

body.term-enthaertungsanlagen .theme-advisor .wp-element-button:hover {
	border-color: #001933;
	color: #fff;
	background: var(--theme-color-blue-dark) linear-gradient(180deg, #005a9e 0%, #002850 100%);
	box-shadow: 0 4px 12px rgb(0 34 68 / 35%), inset 0 1px 0 rgb(255 255 255 / 20%);
	transform: translateY(-1px);
}

body.term-enthaertungsanlagen .theme-advisor .wp-element-button:active {
	transform: translateY(0);
	box-shadow: 0 1px 3px rgb(0 34 68 / 25%);
}

body.term-enthaertungsanlagen .theme-advisor .wp-element-button::after {
	position: absolute;
	top: 50%;
	right: 1rem;
	content: "";
	width: .8rem;
	height: .8rem;
	background-color: currentColor;
	transform: translateY(-50%);
	-webkit-mask: var(--theme-icon-chevron-right) center / contain no-repeat;
	mask: var(--theme-icon-chevron-right) center / contain no-repeat;
}

/* Berater-Ergebnis als Hinweisfeld im Stil der WooCommerce-Hinweise.
   Grün = Empfehlung, Bernstein = kein Treffer, Rot = ungültige Eingabe. */
body.term-enthaertungsanlagen .theme-advisor [data-advisor-result]:empty {
	display: none;
}

body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result {
	display: flex;
	gap: .875rem;
	align-items: flex-start;
	width: 100%;
	margin: 1.25rem 0 0;
	padding: .9rem 1.25rem;
	border: 1px solid #c9e8d5;
	border-left: .25rem solid var(--theme-color-success);
	border-radius: var(--theme-radius-s);
	background: #f1faf4;
	color: var(--theme-notice-color);
	box-shadow: var(--theme-notice-shadow);
	font-size: 1rem;
	line-height: 1.5;
	animation: theme-advisor-result-in .3s ease;
}

body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result__icon {
	flex: 0 0 auto;
	width: 1.5rem;
	height: 1.5rem;
	margin-top: .125rem;
	color: var(--theme-color-success);
	background-color: currentColor;
	-webkit-mask: var(--theme-icon-circle-check) center / contain no-repeat;
	mask: var(--theme-icon-circle-check) center / contain no-repeat;
}

body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result__title {
	display: block;
	color: #14532d;
	font-family: var(--theme-font-heading);
	font-size: 1.05rem;
	font-weight: 700;
}

body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result__product {
	color: var(--theme-color-success);
}

body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result__hint {
	display: block;
	margin-top: .2rem;
	color: var(--theme-notice-color);
	font-size: var(--theme-text-small);
}

body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result--warning {
	border-color: #fde68a;
	border-left-color: #d97706;
	background: #fffbeb;
}

body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result--warning .theme-advisor-result__icon {
	color: #d97706;
	-webkit-mask-image: var(--theme-icon-circle-exclamation);
	mask-image: var(--theme-icon-circle-exclamation);
}

body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result--warning .theme-advisor-result__title {
	color: #92400e;
}

body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result--danger {
	border-color: #fecaca;
	border-left-color: var(--theme-color-danger);
	background: #fff5f5;
}

body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result--danger .theme-advisor-result__icon {
	color: var(--theme-color-danger);
	-webkit-mask-image: var(--theme-icon-circle-exclamation);
	mask-image: var(--theme-icon-circle-exclamation);
}

body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result--danger .theme-advisor-result__title {
	color: #991b1b;
}

@keyframes theme-advisor-result-in {
	from {
		opacity: 0;
		transform: translateY(.4rem) scale(.985);
	}

	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.term-enthaertungsanlagen .theme-advisor .theme-advisor-result {
		animation: none;
	}
}

body.term-enthaertungsanlagen .theme-section--product-list {
	padding-top: 1%;
}

body.site-layout.term-enthaertungsanlagen .theme-product-filter {
	width: min(100%, var(--theme-content-width));
	margin: 1vw auto 0;
}

body.site-layout.term-enthaertungsanlagen .woocommerce ul.products.theme-product-grid {
	gap: 3.74rem 3.16rem;
}

body.site-layout.term-enthaertungsanlagen .woocommerce ul.products.theme-product-grid li.product.theme-product-card img {
	border-radius: .4375rem;
}

body.site-layout.term-enthaertungsanlagen .woocommerce ul.products.theme-product-grid li.product.theme-product-card {
	float: none;
	width: 100%;
}

body.term-enthaertungsanlagen .theme-section.usp-block {
	align-items: start;
	gap: 3.16rem 3.475rem;
	padding: 2% max(10%, calc((100% - var(--theme-content-width)) / 2)) 6%;
}

body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card {
	display: flex;
	height: auto;
	align-self: start;
}

body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card__image {
	width: 30%;
	height: auto;
	max-height: none;
	object-position: center;
	/* Flex-Spalte: stretch fällt bei fester Breite auf links zurück, Icon deshalb zentrieren */
	align-self: center;
}

body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card__image[src*="Deutschlandweiter-Service"] {
	aspect-ratio: 1;
}

body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card__image[src*="15-Jahre-Erfahrung"] {
	aspect-ratio: .939;
}

body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card__image[src*="Qualitaetsprodukte"] {
	aspect-ratio: .757;
}

body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card__image[src*="10-Jahre-Garantie"] {
	aspect-ratio: 1.09;
}

body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card__title {
	margin: 1.875rem 0 0;
	padding-bottom: .625rem;
}

body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card__content {
	margin-top: 0;
	font-weight: 500;
}

@media (min-width: 48rem) {
	body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card {
		display: grid;
		grid-template-rows: 9.5625rem auto 1fr;
		justify-items: center;
	}

	body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card--tall-media {
		grid-template-rows: 11.8125rem auto 1fr;
	}

	body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card__image {
		height: 100%;
		aspect-ratio: auto;
		object-fit: contain;
	}
}

@media (max-width: 47.9375rem) {
	body.site-layout .theme-section--product-list--compact .theme-product-filter {
		width: var(--theme-container-width);
	}

	body.site-layout .theme-section--product-list--compact ul.products.theme-product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.25rem .75rem;
	}

	body.term-enthaertungsanlagen .theme-section--advisor {
		padding: 5rem 0 1.875rem;
	}

	body.term-enthaertungsanlagen .theme-advisor__content {
		width: var(--theme-container-width);
	}

	body.term-enthaertungsanlagen .theme-advisor h2 {
		font-size: var(--theme-text-section-title);
		line-height: 1.5;
	}

	body.term-enthaertungsanlagen .theme-advisor p,
	body.term-enthaertungsanlagen .theme-advisor__field {
		font-size: 1.125rem;
		line-height: 1.5;
	}

	body.term-enthaertungsanlagen .theme-advisor p {
		margin-bottom: 1.35rem;
	}

	body.term-enthaertungsanlagen .theme-advisor form {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	body.term-enthaertungsanlagen .theme-advisor .wp-element-button {
		margin-top: .5rem;
	}

	body.term-enthaertungsanlagen .theme-section--product-list {
		padding-top: 0;
	}

	body.site-layout.term-enthaertungsanlagen .theme-product-filter {
		width: var(--theme-container-width);
		margin: 1.875rem auto 0;
	}

	body.site-layout.term-enthaertungsanlagen .woocommerce ul.products.theme-product-grid {
		gap: 2.242rem .75rem;
	}

	body.term-enthaertungsanlagen .theme-section.usp-block {
		gap: 1.875rem;
		padding: 1.875rem 10% 3.125rem;
	}

	body.term-enthaertungsanlagen .theme-section.usp-block .theme-column:nth-child(2) {
		margin-bottom: 1.875rem;
	}

	body.term-enthaertungsanlagen .theme-section.usp-block .theme-feature-card__content {
		font-size: 1.125rem;
		line-height: 1.5;
	}

	body.site-layout .theme-section--product-list--compact ul.products.theme-product-grid li.product.theme-product-card .woocommerce-loop-product__title {
		padding: .5175rem 0;
		font-size: 1.035rem;
		line-height: 1.5;
	}

	body.site-layout .theme-section--product-list--compact ul.products.theme-product-grid li.product.theme-product-card .price {
		font-size: 1.035rem;
		line-height: 1.625rem;
	}
}

@media (max-width: 47.9375rem) {
	.theme-section--product-list--sidebar,
	.theme-section--product-list--list {
		padding-top: 2.5rem;
	}
}

/* Produktliste und Filter liegen bereits im Container (1rem Seitenabstand über
   --theme-container-width); das zusätzliche 100% - 2rem verschmälerte die Boxen
   auf Mobil ein zweites Mal. Die Overrides stehen am Dateiende, damit sie die
   Desktop-Breitenregeln der einzelnen Kategorien zuverlässig überstimmen. */
@media (max-width: 47.9375rem) {
	body.site-layout .theme-section--product-list--sidebar .theme-product-filter,
	body.site-layout .theme-section--product-list--list .theme-product-filter,
	body.site-layout .theme-section--product-list--compact .theme-product-filter,
	body.site-layout.term-enthaertungsanlagen .theme-product-filter {
		width: 100%;
		margin-inline: 0;
	}

	body.site-layout .theme-section--product-list--sidebar ul.products.theme-product-grid,
	body.site-layout :is(.theme-section--product-list--sidebar, .theme-section--product-list--list) ul.products.theme-product-grid,
	body.site-layout .theme-section--product-list--compact ul.products.theme-product-grid {
		width: 100%;
		margin-inline: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.theme-magazine-card:hover {
		transform: none;
	}
}

