﻿/**
 * Janine´s Marmelade – Hauptstylesheet
 * Farben über Customizer (CSS-Variablen :root).
 */

:root {
	--jm-primary: #b42318;
	--jm-primary-hover: #8f1c13;
	--jm-secondary: #3d2914;
	--jm-header-bg: #fff8f0;
	--jm-footer-bg: #2a1810;
	--jm-footer-text: #f5ebe0;
	--jm-body-bg: #fffdfb;
	--jm-text: #1a1209;
	--jm-border: #e8ddd0;
	--jm-radius: 6px;
	--jm-header-height: 72px;
	--jm-max-width: 1200px;
	/* Mindest 10 px zum Bildschirmrand + iPhone Safe Area */
	--jm-edge-left: max(10px, env(safe-area-inset-left, 0px));
	--jm-edge-right: max(10px, env(safe-area-inset-right, 0px));
	--jm-logo-max-height: 48px;
}

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

html {
	-webkit-text-size-adjust: 100%;
	/* Kein height: 100% – body nutzt 100dvh für den Sticky-Footer */
}

/* Sticky Footer: Fußzeile sitzt bei wenig Inhalt am unteren Viewport-Rand */
body {
	margin: 0;
	width: 100%; /* Sicherheitsnetz: volle Breite auch wenn Plugins width einschränken */
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 1rem;
	line-height: 1.55;
	color: var(--jm-text);
	background: var(--jm-body-bg);
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

a {
	color: var(--jm-primary);
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

a:hover {
	color: var(--jm-primary-hover);
}

.jm-skip-link {
	position: absolute;
	left: -9999px;
	z-index: 999999;
	padding: 0.75rem 1rem;
	background: var(--jm-primary);
	color: #fff;
}

.jm-skip-link:focus {
	left: 0.5rem;
	top: 0.5rem;
}

/* ——— WordPress Admin-Bar: Vollbreite-Sicherheitsnetz ——— */
/* Verhindert dass Elementor, Caching-Plugins oder andere Plugins
   html/body auf eine schmale Breite einschränken */
body.admin-bar,
body.logged-in {
	width: 100%;
	max-width: none;
}

/* Elementor-Kit lädt ggf. kein CSS (fehlende Datei) →
   elementor-invisible Elemente dauerhaft sichtbar halten */
body.admin-bar .elementor-invisible,
body.logged-in .elementor-invisible {
	visibility: visible !important;
	opacity: 1 !important;
	animation: none !important;
	transform: none !important;
}

/* ——— Site Header ——— */
.jm-site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: var(--jm-header-bg);
	border-bottom: 1px solid var(--jm-border);
	flex-shrink: 0;
	width: 100%;
}

/* Flex: Desktop Menü mitte, Mobil Logo → Hamburger → Abstand → Icons */
.jm-header-inner {
	max-width: var(--jm-max-width);
	margin: 0 auto;
	padding-left: var(--jm-edge-left);
	padding-right: var(--jm-edge-right);
	min-height: var(--jm-header-height);
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.5rem 1rem;
}

.jm-nav-primary {
	order: 3;
	flex: 1 1 auto;
	min-width: 0;
}

.jm-header-tools {
	order: 4;
	flex-shrink: 0;
	margin-left: auto;
}

@media (min-width: 900px) {
	.jm-nav-toggle {
		display: none;
	}

	/* Navigation exakt mittig (Logo und Icons können unterschiedlich breit sein) */
	.jm-header-inner {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		gap: 0.75rem 1rem;
		position: relative;
	}

	.jm-logo-wrap {
		order: 1;
		position: relative;
		z-index: 2;
	}

	.jm-nav-primary {
		order: 2;
		position: absolute;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%);
		max-width: min(56vw, 34rem);
		width: max-content;
		flex: none;
		min-width: 0;
	}

	.jm-header-tools {
		order: 3;
		position: relative;
		z-index: 2;
		margin-left: auto;
	}
}

.jm-logo-wrap {
	display: flex;
	align-items: center;
	flex: 0 1 auto;
	min-width: 0;
}

.jm-logo-wrap .custom-logo-link {
	display: block;
	line-height: 0;
}

.jm-logo-wrap .custom-logo {
	max-height: var(--jm-logo-max-height, 48px);
	width: auto;
	height: auto;
}

.jm-site-title {
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0;
	letter-spacing: -0.02em;
}

.jm-site-title a {
	color: var(--jm-secondary);
	text-decoration: none;
}

.jm-site-title a:hover {
	color: var(--jm-primary);
}

/* Navigation zentriert (Desktop) */
.jm-nav-primary {
	display: flex;
	justify-content: center;
	align-items: center;
}

.jm-nav-primary .jm-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.15rem 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.jm-nav-primary .jm-menu a {
	color: var(--jm-text);
	font-weight: 500;
	font-size: 0.95rem;
	text-decoration: none;
	padding: 0.35rem 0;
}

.jm-nav-primary .jm-menu a:hover,
.jm-nav-primary .jm-menu .current-menu-item > a {
	color: var(--jm-primary);
}

.jm-nav-toggle {
	order: 2;
	flex-shrink: 0;
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--jm-border);
	background: #fff;
	border-radius: var(--jm-radius);
	cursor: pointer;
}

.jm-nav-toggle span {
	display: block;
	height: 2px;
	width: 20px;
	margin: 0 auto;
	background: var(--jm-text);
}

@media (max-width: 899px) {
	.jm-nav-toggle {
		display: flex;
	}

	/* Overlay: nimmt keinen Platz in der Kopfzeile ein */
	.jm-nav-primary {
		position: fixed;
		left: 0;
		right: 0;
		top: var(--jm-header-height);
		bottom: 0;
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 1rem var(--jm-edge-left) 1.5rem var(--jm-edge-right);
		background: var(--jm-header-bg);
		box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		transform: translateX(-100%);
		transition: transform 0.2s ease;
		overflow-y: auto;
		z-index: 999;
	}

	.jm-nav-primary.is-open {
		transform: translateX(0);
	}

	.jm-nav-primary .jm-menu {
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 0;
	}

	.jm-nav-primary .jm-menu a {
		display: block;
		padding: 0.75rem 0;
		border-bottom: 1px solid var(--jm-border);
	}
}

/* Header rechts: Konto + Warenkorb */
.jm-header-tools {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.35rem;
}

.jm-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: var(--jm-radius);
	border: 1px solid transparent;
	background: transparent;
	color: var(--jm-secondary);
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s;
}

.jm-icon-btn:hover {
	background: #fff;
	border-color: var(--jm-border);
	color: var(--jm-primary);
}

.jm-icon-btn svg {
	width: 22px;
	height: 22px;
}

/* ——— Warenkorb-Button mit Summe ——— */
.jm-cart-wrap {
	display: flex;
	align-items: center;
}

/* Cart-Toggle: Breite automatisch (Icon + Badge + Preis) */
.jm-mini-cart-toggle {
	width: auto;
	height: 44px;
	padding: 0 0.65rem;
	gap: 0.3rem;
}

.jm-cart-count {
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 99px;
	background: var(--jm-primary);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Badge ausblenden wenn Warenkorb leer */
.jm-cart-count:empty,
.jm-cart-count[data-count="0"] {
	display: none;
}

.jm-cart-subtotal {
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--jm-secondary);
	white-space: nowrap;
	line-height: 1;
}

.jm-cart-subtotal--empty {
	display: none;
}

/* ——— Mini-Warenkorb: Sidebar-Drawer ——— */
body.jm-mini-cart-open {
	overflow: hidden;
}

.jm-mini-cart-drawer {
	position: fixed;
	inset: 0;
	z-index: 9999;
	visibility: hidden;
	pointer-events: none;
}

.jm-mini-cart-drawer.is-open {
	visibility: visible;
	pointer-events: auto;
}

/* Backdrop */
.jm-mini-cart-drawer__backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	background: rgba(0, 0, 0, 0.45);
	border: none;
	padding: 0;
	cursor: pointer;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.jm-mini-cart-drawer.is-open .jm-mini-cart-drawer__backdrop {
	opacity: 1;
}

/* Panel – von rechts einfahren */
.jm-mini-cart-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
	width: min(400px, 96vw);
	background: #fff;
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: -6px 0 32px rgba(0, 0, 0, 0.14);
}

.jm-mini-cart-drawer.is-open .jm-mini-cart-drawer__panel {
	transform: translateX(0);
}

/* Drawer Kopf */
.jm-mini-cart-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--jm-border);
	flex-shrink: 0;
}

.jm-mini-cart-drawer__title {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--jm-secondary);
}

.jm-mini-cart-drawer__close {
	background: none;
	border: none;
	cursor: pointer;
	font-size: 1.6rem;
	line-height: 1;
	padding: 0.2rem 0.4rem;
	color: var(--jm-text);
	border-radius: var(--jm-radius);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s;
}

.jm-mini-cart-drawer__close:hover {
	background: var(--jm-border);
}

/* Drawer Body – enthält scrollbaren Bereich + sticky Footer */
.jm-mini-cart-drawer__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	min-height: 0;
	padding: 0;
}

/* Admin-Bar-Offset: Panel startet unterhalb der Admin-Bar */
body.admin-bar .jm-mini-cart-drawer__panel {
	top: 32px;
	height: calc(100% - 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar .jm-mini-cart-drawer__panel {
		top: 46px;
		height: calc(100% - 46px);
	}
}

/* jm-header-mini-cart umfasst alles (scrollbar + footer) */
.jm-header-mini-cart.woocommerce {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	overflow: hidden;
}

/* Scrollbarer Artikel-Bereich */
.jm-mc-inner {
	flex: 1 1 auto;
	overflow-y: auto;
	overflow-x: hidden;
	padding: 0.5rem 1.25rem 1rem;
}

/* Leerer Warenkorb */
.woocommerce-mini-cart__empty-message {
	margin: 1rem 0 0;
	font-size: 0.93rem;
	color: #666;
}

/* Warenkorb-Liste: kein WooCommerce-Padding/Margin */
.jm-mini-cart-drawer .woocommerce-mini-cart,
.jm-header-mini-cart .woocommerce-mini-cart {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* ——— Mini-Cart Item Layout: Bild | Info | [Qty+Trash] ——— */
/* Hohe Spezifität, damit WooCommerce-Kern-CSS nicht übertrumpft */
.jm-mini-cart-drawer .woocommerce-mini-cart li.jm-mc-item,
.jm-mc-item {
	display: grid !important;
	grid-template-columns: 80px 1fr auto;
	gap: 0.75rem;
	align-items: center;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--jm-border);
	list-style: none;
	position: relative;
}

.jm-mini-cart-drawer .woocommerce-mini-cart li.jm-mc-item:last-child,
.jm-mc-item:last-child {
	border-bottom: none;
}

/* Produktbild — Spalte 1 */
.jm-mc-item__thumb {
	grid-column: 1;
	width: 80px;
	flex-shrink: 0;
}

.jm-mc-item__thumb img {
	width: 80px !important;
	height: 80px !important;
	object-fit: cover;
	border-radius: var(--jm-radius);
	display: block;
}

.jm-mc-item__thumb a {
	display: block;
	line-height: 0;
}

/* Artikel-Info — Spalte 2 */
.jm-mc-item__info {
	grid-column: 2;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.jm-mc-item__name {
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--jm-secondary);
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.jm-mc-item__name:hover {
	color: var(--jm-primary);
}

.jm-mc-item__price {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--jm-primary);
	display: flex;
	align-items: baseline;
	gap: 0.25rem;
	flex-wrap: wrap;
}

.jm-mc-item__price-label {
	font-size: 0.75rem;
	font-weight: 600;
	color: #888;
	flex-shrink: 0;
}

/* Rechte Spalte — Spalte 3: Stepper + Trash auf einer Linie */
.jm-mc-item__right {
	grid-column: 3;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.5rem;
}

/* Mengen-Stepper */
.jm-mc-qty {
	display: flex;
	align-items: center;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	overflow: hidden;
}

.jm-mc-qty__btn {
	background: none;
	border: none;
	width: 28px;
	height: 28px;
	cursor: pointer;
	font-size: 1.1rem;
	line-height: 1;
	color: var(--jm-text);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: background 0.15s;
}

.jm-mc-qty__btn:hover {
	background: var(--jm-border);
}

.jm-mc-qty__input {
	width: 30px;
	text-align: center;
	border: none;
	border-left: 1px solid var(--jm-border);
	border-right: 1px solid var(--jm-border);
	background: transparent;
	font-size: 0.88rem;
	font-weight: 700;
	padding: 0;
	height: 28px;
	-moz-appearance: textfield;
}

.jm-mc-qty__input::-webkit-outer-spin-button,
.jm-mc-qty__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Löschen-Button */
.jm-mc-item__remove {
	background: none;
	border: none;
	cursor: pointer;
	color: #999;
	padding: 0.25rem;
	border-radius: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color 0.15s, background 0.15s;
}

.jm-mc-item__remove:hover {
	color: #c00;
	background: #fef2f2;
}

/* ——— Sticky Footer: Zwischensumme + Button ——— */
.jm-mc-footer {
	flex-shrink: 0;
	padding: 1rem 1.25rem 1.25rem;
	border-top: 2px solid var(--jm-border);
	background: #fff;
}

/* Zwischensumme */
.jm-mc-footer .woocommerce-mini-cart__total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 0 0.75rem;
	font-size: 1rem;
	font-weight: 700;
	color: var(--jm-secondary);
}

.jm-mc-footer .woocommerce-mini-cart__total .woocommerce-Price-amount {
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--jm-primary);
}

/* Buttons */
.jm-mc-footer .woocommerce-mini-cart__buttons {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
}

.jm-mc-footer .woocommerce-mini-cart__buttons .button {
	display: block;
	text-align: center;
	padding: 0.75rem 1rem;
	border-radius: var(--jm-radius);
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	transition: background 0.15s, border-color 0.15s;
}

.jm-mc-footer .woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout) {
	background: var(--jm-primary);
	color: #fff;
	border: 2px solid var(--jm-primary);
}

.jm-mc-footer .woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout):hover {
	background: var(--jm-primary-hover);
	border-color: var(--jm-primary-hover);
}

/* Kasse-Button in Mini-Cart ausblenden (Weiterleitung zur Kasse nur über Warenkorb) */
.jm-mc-footer .woocommerce-mini-cart__buttons .button.checkout,
.jm-mini-cart-drawer .woocommerce-mini-cart__buttons .button.checkout,
.jm-header-mini-cart .button.checkout {
	display: none !important;
}

/* Ladeindikator: gedimmter Drawer während AJAX läuft */
.jm-mini-cart-drawer.jm-mc-loading .jm-mc-inner,
.jm-mini-cart-drawer.jm-mc-loading .jm-mc-footer {
	opacity: 0.5;
	pointer-events: none;
}

/* ——— Seiten-Ladeanimation (Navigation zur Warenkorb-Seite) ——— */
@keyframes jm-spin {
	to { transform: translate(-50%, -50%) rotate(360deg); }
}

body.jm-page-loading::before {
	content: '';
	position: fixed;
	inset: 0;
	background: rgba(255, 255, 255, 0.82);
	z-index: 99998;
	backdrop-filter: blur(2px);
}

body.jm-page-loading::after {
	content: '';
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 42px;
	height: 42px;
	border: 3px solid var(--jm-border);
	border-top-color: var(--jm-primary);
	border-radius: 50%;
	animation: jm-spin 0.65s linear infinite;
	z-index: 99999;
}

.jm-account-wrap {
	position: relative;
}

body.jm-account-modal-open {
	overflow: hidden;
}

.jm-account-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	box-sizing: border-box;
}

.jm-account-modal.is-open {
	display: flex;
}

.jm-account-modal__backdrop {
	position: absolute;
	inset: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(26, 18, 9, 0.45);
	cursor: pointer;
}

.jm-account-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(460px, 100%);
	max-height: min(92dvh, 820px);
	overflow: auto;
	background: #fff;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	box-shadow: 0 20px 48px rgba(0, 0, 0, 0.18);
}

.jm-account-modal__dialog:has(.jm-account-modal__foot--guest) {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	max-height: min(92dvh, 820px);
}

@media (max-width: 767px) {
	.jm-account-modal {
		align-items: flex-start;
		padding: 3rem 0.75rem max(1.5rem, env(safe-area-inset-bottom));
		box-sizing: border-box;
	}

	.jm-account-modal__dialog,
	.jm-account-modal__dialog:has(.jm-account-modal__foot--guest) {
		width: 100%;
		max-height: calc(100dvh - 4rem);
	}
}

.jm-account-modal__dialog:has(.jm-account-modal__foot--guest) {
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.jm-account-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.85rem 1rem;
	border-bottom: 1px solid var(--jm-border);
	background: var(--jm-header-bg, #fff8f0);
}

.jm-account-modal__head--guest {
	position: relative;
	justify-content: flex-end;
	align-items: center;
	flex-wrap: nowrap;
	gap: 0.5rem;
	padding: 0.65rem 0.85rem;
}

.jm-account-modal__sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.jm-account-tabs {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	gap: 0.35rem;
	align-items: center;
	min-width: 0;
	width: 100%;
}

.jm-account-modal__foot--guest {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.55rem;
	padding: 0.65rem 1rem 0.85rem;
	border-top: 1px solid var(--jm-border);
	background: var(--jm-header-bg, #fff8f0);
}

.jm-account-modal__foot--guest .jm-account-tabs {
	margin: 0;
}

.jm-header-login-submit-external {
	width: 100%;
	margin: 0;
	padding: 0.55rem 0.9rem;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	box-sizing: border-box;
}

/* Fußzeilen-„Anmelden“ nur bei Login-Tab */
.jm-account-modal__dialog:has(#jm-account-view-login[hidden]) .jm-header-login-submit-external {
	display: none !important;
}

.jm-account-panel--guest {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.jm-account-tab {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding: 0.45rem 0.65rem;
	border: 1px solid var(--jm-border);
	border-radius: 999px;
	background: #fff;
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--jm-secondary);
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.jm-account-tab:hover {
	border-color: var(--jm-primary);
	color: var(--jm-primary);
}

.jm-account-tab.is-active {
	background: var(--jm-primary);
	border-color: var(--jm-primary);
	color: #fff;
}

.jm-account-tab:focus-visible {
	outline: 2px solid var(--jm-primary);
	outline-offset: 2px;
}

.jm-account-modal__title {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--jm-secondary);
}

.jm-account-modal__close {
	flex: 0 0 auto;
	width: 2.25rem;
	height: 2.25rem;
	margin: 0;
	padding: 0;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: #fff;
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
	color: var(--jm-secondary);
}

.jm-account-modal__close:hover {
	border-color: var(--jm-primary);
	color: var(--jm-primary);
}

.jm-account-panel {
	position: static;
	right: auto;
	top: auto;
	width: auto;
	max-height: none;
	overflow: visible;
	padding: 0 1rem 1rem;
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
	z-index: auto;
}


.jm-account-view__lead {
	margin: 0 0 0.85rem;
	font-size: 0.92rem;
	line-height: 1.45;
	color: var(--jm-secondary);
	opacity: 0.92;
}

.jm-account-register-intro {
	margin: 0 0 0.85rem;
	font-size: 0.92rem;
	line-height: 1.45;
	color: var(--jm-secondary);
}

.jm-account-register-intro p {
	margin: 0;
}

.jm-account-view--register .woocommerce-form-register .form-row,
.jm-account-view--register .woocommerce-form-register .woocommerce-form-row {
	margin: 0 0 0.55rem;
}

.jm-account-view--register .woocommerce-form-register .form-row label,
.jm-account-view--register .woocommerce-form-register .woocommerce-form-row label {
	display: block;
	margin-bottom: 0.25rem;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--jm-secondary);
}

.jm-account-view--register .woocommerce-form-register input.input-text {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	padding: 0.5rem 0.6rem;
	font: inherit;
}

.jm-account-view--register .woocommerce-form-register .woocommerce-Button,
.jm-account-view--register .woocommerce-form-register button[type="submit"] {
	margin-top: 0.35rem;
	background: var(--jm-primary);
	border: 1px solid var(--jm-primary);
	color: #fff;
	padding: 0.55rem 1rem;
	border-radius: var(--jm-radius);
	font-weight: 600;
	cursor: pointer;
	width: 100%;
}

.jm-account-view--register .woocommerce-form-register .woocommerce-Button:hover,
.jm-account-view--register .woocommerce-form-register button[type="submit"]:hover {
	filter: brightness(1.05);
}

.jm-account-panel__switch {
	margin: 0.85rem 0 0;
	text-align: center;
	font-size: 0.9rem;
}

.jm-account-text-btn {
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: inherit;
	color: var(--jm-primary);
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}

.jm-account-text-btn:hover {
	color: var(--jm-secondary);
}

.jm-account-text-link {
	color: var(--jm-primary);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.jm-account-text-link:hover {
	color: var(--jm-secondary);
}

.jm-account-register-intro--disabled {
	margin-bottom: 0.75rem;
}

.jm-account-register-fallback-actions {
	margin: 0 0 0.5rem;
	text-align: center;
}

.jm-account-register-fallback-btn {
	display: inline-block;
	padding: 0.55rem 1rem;
	border: 1px solid var(--jm-primary);
	border-radius: var(--jm-radius);
	background: var(--jm-primary);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	font-size: 0.92rem;
}

.jm-account-register-fallback-btn:hover {
	filter: brightness(1.06);
	color: #fff;
}

.jm-account-panel__links {
	display: grid;
	gap: 0.4rem;
}

.jm-account-panel__links a {
	display: block;
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	text-decoration: none;
	font-weight: 600;
	color: var(--jm-secondary);
}

.jm-account-panel__links a:hover {
	background: var(--jm-header-bg);
	border-color: var(--jm-primary);
	color: var(--jm-primary);
}

.jm-account-panel .login-username,
.jm-account-panel .login-password,
.jm-account-panel .login-remember {
	margin: 0 0 0.55rem;
}

.jm-account-panel .login-submit {
	margin: 0.2rem 0 0.6rem;
}

.jm-account-panel input[type="text"],
.jm-account-panel input[type="password"] {
	width: 100%;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	padding: 0.5rem 0.6rem;
}

.jm-account-panel .button-primary {
	background: var(--jm-primary);
	border: 1px solid var(--jm-primary);
	color: #fff;
	padding: 0.55rem 0.9rem;
	border-radius: var(--jm-radius);
	cursor: pointer;
}


.jm-cart-count {
	position: absolute;
	top: 2px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	font-size: 0.65rem;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
	color: #fff;
	background: var(--jm-primary);
	border-radius: 9px;
}


/* ——— Inhalt ——— */
/* flex: 1 — Hauptbereich füllt die Mitte (Sticky-Footer), Inhalt bleibt sichtbar */
.jm-site-main,
#main.jm-site-main,
#primary.jm-site-main {
	max-width: var(--jm-max-width);
	margin: 0 auto;
	padding: 1.5rem var(--jm-edge-right) 3rem var(--jm-edge-left);
	flex: 1 0 auto;
	width: 100%;
	min-width: 0;
}

/* Einzelprodukt: etwas mehr nutzbare Breite für Galerie + Kurzinfo */
.single-product .jm-site-main {
	max-width: min(100%, 1340px);
}

.jm-site-main.jm-wide {
	max-width: 100%;
	padding-left: var(--jm-edge-left);
	padding-right: var(--jm-edge-right);
}

.jm-site-main.jm-no-padding {
	padding-top: 0;
	padding-bottom: 0;
	padding-left: var(--jm-edge-left);
	padding-right: var(--jm-edge-right);
}

.jm-page-title {
	font-size: clamp(1.35rem, 2.5vw, 1.85rem);
	margin: 0 0 1rem;
	color: var(--jm-secondary);
}

.jm-entry {
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--jm-border);
}

.jm-entry-title {
	font-size: 1.2rem;
	margin: 0 0 0.5rem;
}

.jm-entry-title a {
	color: var(--jm-secondary);
	text-decoration: none;
}

.jm-entry-title a:hover {
	color: var(--jm-primary);
}

.jm-entry-content :where(p, ul, ol) {
	margin-top: 0;
	margin-bottom: 1rem;
}

.jm-btn {
	display: inline-block;
	margin-top: 0.5rem;
	padding: 0.65rem 1.25rem;
	background: var(--jm-primary);
	color: #fff !important;
	font-weight: 600;
	text-decoration: none;
	border-radius: var(--jm-radius);
}

.jm-btn:hover {
	background: var(--jm-primary-hover);
	color: #fff !important;
}

.jm-footer-nav {
	margin: 1.5rem 0 0;
	text-align: center;
}

.jm-footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 1.25rem;
}

.jm-footer-menu a {
	color: var(--jm-footer-text);
	text-decoration: none;
}

.jm-footer-menu a:hover {
	text-decoration: underline;
}

/* Elementor: volle Breite, Rand trotzdem mindestens 10 px */
.elementor-page .jm-site-main {
	max-width: none;
	padding-top: 0;
	padding-bottom: 0;
	padding-left: var(--jm-edge-left);
	padding-right: var(--jm-edge-right);
}

/* ——— Footer ——— */
.jm-site-footer {
	background: var(--jm-footer-bg);
	color: var(--jm-footer-text);
	padding: 10px max(10px, var(--jm-edge-right)) 1.5rem max(10px, var(--jm-edge-left));
	margin-top: auto;
	flex-shrink: 0;
	width: 100%;
}

.jm-footer-widgets {
	max-width: var(--jm-max-width);
	margin: 0 auto;
	padding-top: 10px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}

@media (max-width: 767px) {
	.jm-footer-widgets {
		grid-template-columns: 1fr;
	}
}

.jm-site-footer .widget {
	font-size: 0.95rem;
}

.jm-site-footer .widget_nav_menu ul,
.jm-site-footer .menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.jm-site-footer .widget_nav_menu li,
.jm-site-footer .menu li {
	margin: 0 0 0.35rem;
	padding: 0;
}

.jm-site-footer .widget_nav_menu li::marker,
.jm-site-footer .menu li::marker {
	content: "";
}

.jm-site-footer .widget_nav_menu a,
.jm-site-footer .menu a {
	display: block;
	padding: 0.32rem 0.45rem;
	border-radius: 5px;
	text-decoration: none;
	transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.jm-site-footer .widget_nav_menu a:hover,
.jm-site-footer .menu a:hover {
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	transform: translateX(2px);
}

.jm-site-footer .widget-title {
	font-size: 1rem;
	margin: 0 0 1rem;
	color: #fff;
	font-weight: 700;
}

.jm-site-footer a {
	color: var(--jm-footer-text);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.jm-site-footer a:hover {
	color: #fff;
}

.jm-site-footer .jm-social-link {
	text-decoration: none;
}

.jm-footer-social {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem 1rem;
	margin: 0 auto 1.5rem;
	max-width: var(--jm-max-width);
}

.jm-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: var(--jm-radius);
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(255, 255, 255, 0.06);
	color: var(--jm-footer-text);
	text-decoration: none;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.jm-social-link:hover {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	border-color: rgba(255, 255, 255, 0.35);
}

.jm-social-icon {
	display: flex;
	width: 22px;
	height: 22px;
}

.jm-social-icon svg {
	width: 100%;
	height: 100%;
}

.jm-footer-bottom {
	max-width: var(--jm-max-width);
	margin: 2rem auto 0;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	font-size: 0.85rem;
	opacity: 0.9;
	text-align: center;
}

.jm-footer-bottom a {
	color: inherit;
}

.jm-footer-copyright-custom {
	display: inline-block;
	max-width: 100%;
	text-align: center;
}

/* ——— WooCommerce allgemein ——— */
.woocommerce .button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: var(--jm-primary);
	color: #fff;
	border-radius: var(--jm-radius);
}

.woocommerce .button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--jm-primary-hover);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	border-radius: var(--jm-radius);
	border-color: var(--jm-border);
}

.woocommerce-info,
.woocommerce-message {
	border-top-color: var(--jm-primary);
}

/* "Warenkorb anzeigen"-Button in der Hinzugefügt-Meldung ausblenden */
.woocommerce-message .wc-forward,
.woocommerce-message a.button {
	display: none !important;
}

/* "Warenkorb anzeigen"-Link nach AJAX Add-to-Cart auf Kategorie-/Shop-Seiten ausblenden */
a.added_to_cart.wc-forward {
	display: none !important;
}

.woocommerce table.shop_table {
	border-radius: var(--jm-radius);
}

/* Checkout / Kasse */
.woocommerce-checkout #payment div.payment_box {
	background: #f9f5f0;
	border-radius: var(--jm-radius);
}

/* Block-Checkout neutral unterstützen */
.wc-block-components-button:not(.is-link) {
	background: var(--jm-primary);
	color: #fff;
	border-radius: var(--jm-radius);
}

/* Breite Shop-Inhalte */
.woocommerce .jm-site-main,
.woocommerce-page .jm-site-main {
	max-width: var(--jm-max-width);
}

/* ——— Shop & Produkt-Raster ——— */
/* Breadcrumb wird im Theme per PHP entfernt; falls ein Plugin ihn einblendet, ausblenden */
.woocommerce .woocommerce-breadcrumb {
	display: none !important;
}

.woocommerce .woocommerce-products-header {
	margin-bottom: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--jm-border);
}

.woocommerce .woocommerce-products-header__title.page-title {
	font-size: clamp(1.35rem, 2.5vw, 1.85rem);
	margin: 0 0 0.5rem;
	color: var(--jm-secondary);
}

.woocommerce .jm-result-count,
.woocommerce p.jm-result-count {
	margin: 0.35rem 0 0;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--jm-text);
}

.woocommerce .woocommerce-ordering select {
	padding: 0.45rem 2rem 0.45rem 0.65rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background-color: #fff;
	font-size: 0.9rem;
	color: var(--jm-text);
}

/* Flex: letzte Reihe bei wenigen Artikeln zentriert (2, 3, … Karten mittig) */
.woocommerce ul.products {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: 1.5rem 1.25rem;
	margin: 0 auto;
	padding: 1.25rem 0 0;
	list-style: none;
	max-width: 100%;
}

.woocommerce ul.products li.product {
	margin: 0;
	flex: 0 1 100%;
	width: 100%;
	max-width: 100%;
	float: none;
	clear: none !important;
	background: #fff;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	padding: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last {
	clear: none !important;
}

@media (min-width: 480px) {
	.woocommerce ul.products li.product {
		flex: 0 1 calc(50% - 0.625rem);
		max-width: min(100%, 330px);
	}
}

@media (min-width: 600px) {
	.woocommerce ul.products {
		gap: 1.75rem 1.5rem;
	}

	.woocommerce ul.products li.product {
		flex: 0 1 290px;
		max-width: min(100%, 320px);
	}
}

@media (min-width: 900px) {
	.woocommerce ul.products li.product {
		flex: 0 1 300px;
		max-width: min(100%, 340px);
	}
}

@media (min-width: 1024px) {
	.woocommerce ul.products {
		justify-content: flex-start;
		gap: 1.5rem;
	}

	.woocommerce ul.products li.product,
	.single-product .related ul.products li.product {
		flex: 0 1 calc((100% - 4.5rem) / 4) !important;
		width: calc((100% - 4.5rem) / 4) !important;
		max-width: calc((100% - 4.5rem) / 4) !important;
		margin-right: 0 !important;
	}
}

.woocommerce ul.products li.product:hover {
	border-color: rgba(180, 35, 24, 0.35);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06);
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	padding: 0.75rem 0.75rem 0;
}

.woocommerce ul.products li.product img {
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 1 / 1;
	min-height: 200px;
}

@media (min-width: 600px) {
	.woocommerce ul.products li.product img {
		min-height: 220px;
	}
}

@media (min-width: 900px) {
	.woocommerce ul.products li.product img {
		min-height: 240px;
	}
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 1rem;
	font-weight: 600;
	color: var(--jm-secondary);
	padding: 0.75rem 0.75rem 0;
	margin: 0;
	line-height: 1.35;
}

.woocommerce ul.products li.product .price {
	padding: 0.35rem 0.75rem 0;
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	color: var(--jm-primary);
}

.woocommerce ul.products li.product .price .woocommerce-price-suffix,
.woocommerce ul.products li.product .tax-info,
.woocommerce ul.products li.product .shipping-costs-info,
.woocommerce ul.products li.product .wc-gzd-additional-info,
.woocommerce ul.products li.product .wc-gzd-additional-info p {
	display: block;
	margin: 0.35rem 0 0;
	font-size: 0.87rem;
	font-weight: 500;
	line-height: 1.4;
	color: var(--jm-text);
}

.woocommerce ul.products li.product .wc-gzd-additional-info,
.woocommerce ul.products li.product .price .woocommerce-price-suffix {
	padding: 0.45rem 0.55rem;
	border: 1px solid var(--jm-border);
	border-radius: calc(var(--jm-radius) - 2px);
	background: var(--jm-header-bg, #fff8f0);
}

.woocommerce ul.products li.product .shipping-costs-info a {
	text-underline-offset: 2px;
}

/* Katalog/Produktübersicht: Lieferzeit nicht in Karten zeigen */
.woocommerce ul.products li.product .delivery-time-info {
	display: none !important;
}

.woocommerce ul.products li.product .button {
	margin: 0.75rem;
	align-self: stretch;
	text-align: center;
	border-radius: var(--jm-radius);
	font-weight: 600;
}

.woocommerce nav.woocommerce-pagination {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--jm-border);
}

.woocommerce nav.woocommerce-pagination ul {
	border: none;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	min-width: 2.5rem;
	padding: 0.4rem 0.65rem;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--jm-primary);
	border-color: var(--jm-primary);
	color: #fff;
}

.woocommerce .jm-no-products-box {
	max-width: 42rem;
	margin: 1.5rem auto 0;
	padding: 1.2rem 1.35rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: var(--jm-header-bg, #fff8f0);
	text-align: left;
}

.woocommerce .jm-no-products-box__title {
	margin: 0 0 0.55rem;
	font-size: 1.15rem;
	color: var(--jm-secondary);
}

.woocommerce .jm-no-products-box__text {
	margin: 0;
	line-height: 1.55;
}

.woocommerce .jm-no-products-box__btn {
	display: inline-block;
	margin-top: 0.9rem;
	padding: 0.55rem 0.95rem;
	border-radius: var(--jm-radius);
	background: var(--jm-primary);
	color: #fff;
	text-decoration: none;
	font-weight: 700;
}

.woocommerce .jm-no-products-box__btn:hover {
	background: var(--jm-primary-hover);
	color: #fff;
}

.woocommerce-cart .cart_totals .includes_tax,
.woocommerce-checkout .woocommerce-checkout-review-order-table .includes_tax {
	display: inline-block;
	margin-top: 0.2rem;
	font-size: 0.86rem;
	color: var(--jm-text);
	opacity: 0.9;
}

.woocommerce-cart .cart_totals .jm-shipping-delivery-time,
.woocommerce-checkout .woocommerce-checkout-review-order-table .jm-shipping-delivery-time,
.wc-block-components-totals-shipping .jm-shipping-delivery-time {
	display: block;
	margin-top: 0.28rem;
	font-size: 0.86rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--jm-secondary);
}

.woocommerce-cart .cart_totals tr.jm-shipping-delivery-row th,
.woocommerce-cart .cart_totals tr.jm-shipping-delivery-row td,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.jm-shipping-delivery-row th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.jm-shipping-delivery-row td {
	padding-top: 0.2rem;
	border-top: 0;
}

.woocommerce-cart .cart_totals tr.jm-shipping-delivery-row td,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.jm-shipping-delivery-row td {
	display: block;
	width: 100% !important;
	text-align: left !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	padding-bottom: 0.5rem;
}

.wc-block-components-totals-shipping .wc-block-components-totals-item {
	display: grid !important;
	grid-template-columns: 1fr auto;
	row-gap: 0.2rem;
}

.wc-block-components-totals-shipping .wc-block-components-totals-item::after {
	content: "Lieferzeit: 3 - 4 Wochen";
	display: block;
	grid-column: 1 / -1;
	margin-top: 0.2rem;
	font-size: 0.86rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--jm-secondary);
	text-align: left;
}

/* ——— Navigation: Großbuchstaben ——— */
.jm-nav-primary .jm-menu a,
.jm-footer-menu a {
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.88rem;
}

/* ——— Warenkorb & Kasse: keine Kurzbeschreibung unter dem Produkttitel ——— */
.woocommerce-cart table.shop_table .product-name > p,
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name > p,
.woocommerce-cart table.shop_table td.product-name p,
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name p {
	display: none !important;
}

.woocommerce-cart table.shop_table td.product-name .woocommerce-product-details__short-description,
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name .woocommerce-product-details__short-description,
.woocommerce-cart table.shop_table td.product-name .wc-gzd-item-desc,
.woocommerce-cart table.shop_table td.product-name .wc-gzd-cartitem-product-desc {
	display: none !important;
}

.woocommerce-cart table.shop_table td.product-name .delivery-time-info,
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name .delivery-time-info,
.woocommerce-cart table.shop_table td.product-name [class*="delivery-time"],
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name [class*="delivery-time"],
.woocommerce-order .woocommerce-table__product-name .delivery-time-info,
.woocommerce-order .woocommerce-table__product-name [class*="delivery-time"] {
	display: none !important;
}

/* Leerer Warenkorb: "Neu im Shop" Produktempfehlungen ausblenden */
.wc-block-cart__empty-cart__cross-sells,
.wc-block-cart__empty-cart__cross-sells-block,
.wc-block-cart__empty-cart .wc-block-grid,
.wc-block-cart__empty-cart .wp-block-woocommerce-product-new {
	display: none !important;
}

/* Schrittleiste Warenkorb/Kasse/Bestellung */
.jm-checkout-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.6rem;
	margin: 0 0 1.1rem;
	padding: 0.75rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: #fff;
}

.jm-checkout-step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 0.55rem 0.65rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	text-decoration: none;
	color: var(--jm-secondary);
	background: var(--jm-header-bg, #fff8f0);
	font-weight: 600;
	font-size: 0.9rem;
}

.jm-checkout-step__dot {
	width: 0.58rem;
	height: 0.58rem;
	border-radius: 50%;
	background: rgba(61, 41, 20, 0.28);
}

.jm-checkout-step__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.15rem;
	height: 1.15rem;
	font-size: 0.95rem;
	line-height: 1;
}

.jm-checkout-step.is-active {
	background: #fff0ee;
	border-color: rgba(180, 35, 24, 0.35);
	color: var(--jm-primary);
}

.jm-checkout-step.is-active .jm-checkout-step__dot {
	background: var(--jm-primary);
}

.jm-checkout-step.is-active .jm-checkout-step__icon {
	transform: scale(1.05);
}

.jm-checkout-step:hover {
	border-color: rgba(180, 35, 24, 0.35);
	color: var(--jm-primary);
}

.jm-checkout-step.is-final {
	cursor: default;
}

/* Bestellung erhalten: kompaktere Tabelle + Produktbilder */
.woocommerce-order .woocommerce-order-details {
	padding: 1rem 1.1rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: #fff;
}

.woocommerce-order .woocommerce-table--order-details th,
.woocommerce-order .woocommerce-table--order-details td {
	vertical-align: middle;
}

.jm-order-item-with-thumb {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
}

.jm-order-item-thumb {
	width: 40px;
	height: 40px;
	object-fit: cover;
	border-radius: 6px;
	border: 1px solid var(--jm-border);
}

.jm-order-item-with-thumb__name {
	display: inline-block;
}

.wc-block-cart-items__row .wc-block-components-product-details__description,
.wc-block-components-order-summary-item .wc-block-components-product-details__description {
	display: none !important;
}

/* Block-Warenkorb / Block-Kasse: doppelte Einzelpreis-Zeile (neben Gesamt) ausblenden */
.wc-block-cart-items__row .wc-block-cart-item__prices {
	display: none !important;
}

.wc-block-components-order-summary-item .wc-block-components-order-summary-item__individual-prices,
.wc-block-components-order-summary-item .wc-block-cart-item__prices {
	display: none !important;
}

/* Block: Inhalt / Grundpreis / Stk. als kleine Kontrast-Kästchen */
.wc-block-cart-items__row .wc-block-components-product-details,
.wc-block-components-order-summary-item .wc-block-components-product-details {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.45rem;
	margin-top: 0.4rem;
	max-width: 100%;
}

.wc-block-cart-items__row .wc-block-components-product-details > span[aria-hidden="true"],
.wc-block-components-order-summary-item .wc-block-components-product-details > span[aria-hidden="true"] {
	display: none !important;
}

.wc-block-cart-items__row .wc-block-components-product-details > span[class*="wc-block-components-product-details__"],
.wc-block-components-order-summary-item .wc-block-components-product-details > span[class*="wc-block-components-product-details__"] {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.12rem;
	padding: 0.38rem 0.55rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: var(--jm-header-bg, #fff8f0);
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
	font-size: 0.8rem;
	line-height: 1.35;
	font-weight: 600;
	color: var(--jm-secondary);
}

.wc-block-cart-items__row .wc-block-components-product-details .wc-block-components-product-details__name,
.wc-block-components-order-summary-item .wc-block-components-product-details .wc-block-components-product-details__name {
	font-size: 0.68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.85;
}

.wc-block-cart-items__row .wc-block-components-product-details .wc-block-components-product-details__value,
.wc-block-components-order-summary-item .wc-block-components-product-details .wc-block-components-product-details__value {
	font-size: 0.84rem;
	font-weight: 700;
	color: var(--jm-text);
}

/* Block-Warenkorb: jm-cart-meta-stack innerhalb des Block-Wrappers */
.wc-block-cart-items__row .wc-block-components-product-details__value .jm-cart-meta-stack,
.wc-block-components-order-summary-item .wc-block-components-product-details__value .jm-cart-meta-stack {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 0.35rem;
}

/* Globale .jm-block-cart-meta Styles (oben definiert) gelten auch hier */
.wc-block-cart-items__row .wc-block-components-product-details__value .jm-block-cart-meta-sep,
.wc-block-components-order-summary-item .wc-block-components-product-details__value .jm-block-cart-meta-sep {
	display: none;
}

.wc-block-cart-items__row .wc-block-components-product-metadata p,
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata p,
.wc-block-cart-items__row .wc-block-components-product-details > p {
	display: none !important;
}

/* Warenkorb/Kasse: Produktinfos klar größer */
.woocommerce-cart table.shop_table td.product-thumbnail img {
	width: 96px;
	max-width: 96px;
	border-radius: var(--jm-radius);
}

.woocommerce-cart table.shop_table td.product-name a,
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name {
	font-size: 1.08rem;
	font-weight: 700;
	line-height: 1.35;
}

.woocommerce-cart table.shop_table td.product-price,
.woocommerce-cart table.shop_table td.product-subtotal,
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total {
	font-size: 1.02rem;
	font-weight: 700;
}

.jm-price-unit-prefix {
	font-size: 0.88em;
	font-weight: 700;
	color: var(--jm-secondary);
	margin-right: 0.2rem;
}

/* WooCommerce rendert bei leerem key ein dt mit nur ":" — ausblenden */
.woocommerce-cart table.shop_table td.product-name dl.variation dt.variation-,
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name dl.variation dt.variation- {
	display: none !important;
}

/* ——— Inhalt / Grundpreis / Stk. — Boxen nebeneinander ———
 * Einheitliches Format: span.jm-cart-meta-stack > span.jm-block-cart-meta
 * Gilt für klassischen Warenkorb, Store-API-Pfad und WooCommerce-Kasse */
.jm-cart-meta-stack {
	display: inline-flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0.45rem 0 0;
	padding: 0;
	vertical-align: middle;
}

.jm-block-cart-meta {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.3rem 0.55rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: var(--jm-header-bg, #fff8f0);
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--jm-secondary);
	white-space: nowrap;
}

.jm-block-cart-meta__name {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	opacity: 0.75;
}

.jm-block-cart-meta__val {
	font-size: 0.82rem;
	font-weight: 700;
	color: var(--jm-secondary);
}

/* ——— Anti-Flash: Leerer-Warenkorb-Meldung verzögern ———
 * WooCommerce-Blocks zeigt beim Hydration kurz "leer" bevor Store-API antwortet */
.woocommerce-cart .wc-block-cart__empty-cart__content {
	animation: jm-cart-antiflash 1s ease-out both;
}

@keyframes jm-cart-antiflash {
	0%, 65% {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}
	100% {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
}

/* Direkte Störer unter dem Titel (Kurztext, Plugin-Boxen) — Zulassungsliste eng */
.woocommerce-cart table.shop_table td.product-name > *:not(a):not(.jm-cart-item-variation):not(.jm-cart-meta-stack):not(dl),
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name > *:not(a):not(.jm-cart-item-variation):not(.jm-cart-meta-stack):not(dl) {
	display: none !important;
}

/* Weitere Varianten-/Meta-Zeilen (dl) unter dem Stack */
.woocommerce-cart table.shop_table td.product-name dl.variation,
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name dl.variation {
	display: block;
	margin: 0.35rem 0 0;
	font-size: 0.9rem;
	line-height: 1.45;
	color: var(--jm-secondary);
}

.jm-mini-cart-drawer .woocommerce-mini-cart dl.variation,
.jm-header-mini-cart .woocommerce-mini-cart dl.variation {
	margin: 0.35rem 0 0;
	font-size: 0.88rem;
	line-height: 1.4;
}

.jm-account-panel .jm-turnstile-wrap {
	margin: 0.6rem 0 0.35rem;
}

/* Blocks (Warenkorb / Bestellübersicht): Meta nur untereinander, volle Breite */
.wc-block-cart-items__row .wc-block-components-product-metadata,
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata {
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	align-content: flex-start !important;
	gap: 0.28rem;
	margin-top: 0.35rem;
	width: 100%;
	max-width: 100%;
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--jm-secondary);
}

/* Alle anderen Kinder als Block — NICHT unsere Meta-Stack-Span */
.wc-block-cart-items__row .wc-block-components-product-metadata > *:not(.jm-cart-meta-stack),
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata > *:not(.jm-cart-meta-stack) {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* Unsere Meta-Boxen innerhalb product-metadata horizontal erzwingen */
.wc-block-cart-items__row .wc-block-components-product-metadata > .jm-cart-meta-stack,
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata > .jm-cart-meta-stack,
.wc-block-components-order-summary-item .wc-block-components-product-metadata .jm-cart-meta-stack {
	display: inline-flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	width: auto !important;
	max-width: 100% !important;
}

.wc-block-cart-items__row .wc-block-components-product-metadata .jm-block-cart-meta,
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata .jm-block-cart-meta,
.wc-block-components-order-summary-item .wc-block-components-product-metadata .jm-block-cart-meta {
	display: inline-flex !important;
	width: auto !important;
}

.wc-block-cart-items__row .wc-block-components-product-metadata .wc-block-components-product-metadata__description,
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata .wc-block-components-product-metadata__description {
	margin: 0;
}

.wc-block-cart-items__row .wc-block-components-product-metadata .wc-block-components-product-metadata__item,
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata .wc-block-components-product-metadata__item {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
}

.woocommerce-cart .jm-cart-item-variation,
.woocommerce-checkout .jm-cart-item-variation {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.88rem;
	font-weight: 500;
	color: var(--jm-text);
	opacity: 0.92;
}

.jm-cart-extra {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.9rem;
	line-height: 1.4;
	color: var(--jm-secondary);
}

.jm-cart-extra span {
	display: block;
}

.jm-cart-extra .jm-grundpreis {
	font-size: 0.88rem;
	font-weight: 600;
}

/* Mini-Warenkorb: WooCommerce-Kern-Reset damit Grid nicht überschrieben wird */
.jm-mini-cart-drawer .woocommerce-mini-cart .cart_list li.jm-mc-item {
	display: grid !important;
	padding-left: 0 !important;
	margin: 0 !important;
}

/* Mini-Warenkorb: Titel + Preis/Infos — Styles über grid-kind, nicht li-direkt */
.jm-mini-cart-drawer .woocommerce-mini-cart .cart_list li a,
.jm-header-mini-cart .woocommerce-mini-cart .cart_list li a {
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.35;
}

.jm-mini-cart-drawer .woocommerce-mini-cart .quantity,
.jm-header-mini-cart .woocommerce-mini-cart .quantity,
.jm-widget-cart-qty-line {
	display: block;
	margin-top: 0.2rem;
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--jm-primary);
}

.woocommerce table.shop_table .product-name .variation,
.woocommerce table.shop_table .product-name .wc-item-meta {
	margin: 0.3rem 0 0;
	font-size: 0.9rem;
	line-height: 1.4;
}

.woocommerce table.shop_table .product-name .wc-item-meta li,
.woocommerce table.shop_table .product-name .wc-item-meta p {
	margin: 0.1rem 0;
}

/* Checkout Block: Name und Metadaten gut lesbar */
.wc-block-components-order-summary-item__description .wc-block-components-product-name {
	font-size: 1.02rem;
	font-weight: 700;
	line-height: 1.35;
}

.wc-block-components-product-metadata,
.wc-block-components-product-metadata__description {
	font-size: 0.9rem;
	line-height: 1.4;
}

.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
	aspect-ratio: 1 / 1;
	min-height: clamp(260px, 42vw, 620px);
}

.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image,
.single-product div.product .woocommerce-product-gallery .flex-viewport {
	height: 100%;
}

/* ——— „Mein Konto“ ——— */
.woocommerce-account .woocommerce {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	align-items: flex-start;
}

.woocommerce-account .woocommerce > .woocommerce-notices-wrapper {
	flex: 1 1 100%;
	width: 100%;
}

.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation {
	flex: 0 0 100%;
	width: 100%;
	max-width: 100%;
}

.woocommerce-account .woocommerce > .woocommerce-MyAccount-content {
	flex: 1 1 0;
	min-width: 0;
	width: 100%;
}

@media (min-width: 768px) {
	.woocommerce-account .woocommerce {
		gap: 2rem;
	}

	.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation {
		flex: 0 0 13rem;
		width: 13rem;
		max-width: 14rem;
	}

	.woocommerce-account .woocommerce > .woocommerce-MyAccount-content {
		flex: 1 1 0;
		width: auto;
		min-width: 0;
	}
}

.woocommerce-account .woocommerce-MyAccount-navigation {
	background: #fff;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	overflow: hidden;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0.35rem 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	margin: 0;
	border-bottom: 1px solid var(--jm-border);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
	border-bottom: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 0.75rem 1rem;
	text-decoration: none;
	font-weight: 600;
	color: var(--jm-text);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 0.8rem;
	border-left: 3px solid transparent;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	background: var(--jm-header-bg);
	color: var(--jm-primary);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	border-left-color: var(--jm-primary);
	background: #fff8f5;
	color: var(--jm-primary);
}

.woocommerce-account .woocommerce-MyAccount-content {
	background: #fff;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	padding: 1.25rem 1.5rem 1.5rem;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

.woocommerce-account .woocommerce-MyAccount-content fieldset {
	border-radius: var(--jm-radius);
	border-color: var(--jm-border);
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title h3 {
	font-size: 1.05rem;
	color: var(--jm-secondary);
}

.jm-account-dashboard {
	margin: 0;
}

.jm-account-dashboard__welcome {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin: 0 0 1.5rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--jm-border);
}

.jm-account-dashboard__icon {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: var(--jm-radius);
	border: 1px solid var(--jm-border);
	background: var(--jm-header-bg);
	color: var(--jm-primary);
}

.jm-account-dashboard__icon svg {
	display: block;
}

.jm-account-dashboard__title {
	font-size: clamp(1.1rem, 2vw, 1.35rem);
	margin: 0 0 0.35rem;
	color: var(--jm-secondary);
	line-height: 1.25;
}

.jm-account-dashboard__intro {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--jm-text);
	opacity: 0.95;
}

.jm-account-dashboard__cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.65rem;
}

@media (min-width: 560px) {
	.jm-account-dashboard__cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.jm-account-dashboard__cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.jm-account-dashboard__cards a {
	display: block;
	padding: 0.85rem 1rem;
	text-decoration: none;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: #fff;
	color: var(--jm-text);
	transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.jm-account-dashboard__cards a:hover {
	border-color: var(--jm-primary);
	background: var(--jm-header-bg);
	color: var(--jm-secondary);
}

.jm-account-dashboard__cards strong {
	display: block;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--jm-secondary);
	margin-bottom: 0.2rem;
}

.jm-account-dashboard__cards span {
	font-size: 0.85rem;
	opacity: 0.9;
}

/* ——— Einzelprodukt ——— */
.single-product div.product {
	display: flex !important;
	flex-direction: column;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: flex-start !important;
	gap: 1.5rem 5px;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	position: relative;
}

@media (min-width: 768px) {
	/*
	 * Flex + flex-start: verhindert große Mittellücken (z. B. justify-content: space-between).
	 * Galerie nur so breit wie Inhalt, Kurzinfo direkt daneben (5px gap).
	 */
	.single-product div.product {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: flex-start;
		align-content: flex-start;
		justify-content: flex-start !important;
		column-gap: 5px;
		row-gap: 1.5rem;
	}

	.single-product div.product > span.onsale {
		position: absolute;
		left: 0.5rem;
		top: 0.5rem;
		z-index: 4;
		margin: 0;
		pointer-events: none;
	}

	.single-product div.product > .woocommerce-product-gallery {
		flex: 0 1 auto;
		width: auto;
		max-width: min(100%, 620px);
		margin: 0 !important;
		order: 1;
	}

	.single-product div.product > .summary.entry-summary {
		flex: 1 1 min(420px, calc(100% - 5px));
		min-width: min(100%, 260px);
		max-width: min(100%, 520px);
		width: auto;
		margin: 0 !important;
		order: 2;
	}

	/* Tabs, Beschreibung unten, Upsells … volle Breite */
	.single-product div.product > *:not(.woocommerce-product-gallery):not(.summary):not(.onsale) {
		flex: 1 1 100%;
		width: 100%;
		min-width: 100%;
		max-width: 100%;
		order: 10;
	}

	.single-product div.product .summary.entry-summary > :first-child {
		margin-top: 0;
	}
}

@media (min-width: 1100px) {
	.single-product div.product > .woocommerce-product-gallery {
		max-width: min(100%, 680px);
	}

	.single-product div.product > .summary.entry-summary {
		max-width: min(100%, 540px);
	}
}

/* Elementor Produktseite: keine maximal gespreizten Spalten */
@media (min-width: 768px) {
	.single-product .elementor-section .elementor-container.elementor-column-gap-default,
	.single-product .elementor-section .elementor-container.elementor-column-gap-narrow,
	.single-product .elementor-section .elementor-container.elementor-column-gap-extended {
		justify-content: flex-start !important;
		column-gap: 5px !important;
	}

	.single-product .elementor-row {
		justify-content: flex-start !important;
		width: 100%;
	}

	.single-product .elementor-column.elementor-col-50 {
		width: auto !important;
		flex-grow: 0 !important;
		flex-shrink: 1 !important;
	}

	.single-product .elementor-column.elementor-col-50:last-of-type {
		flex: 1 1 min(280px, 50%) !important;
		max-width: min(540px, 100%) !important;
	}

	/* Elementor 3+ Flexbox-Container (.e-con) */
	.single-product .e-con.e-flex {
		justify-content: flex-start !important;
		column-gap: 5px !important;
	}
}

/* Galerie: Lupe / Zoom-Trigger aus (falls Skripte von Plugins nachladen) */
.single-product .woocommerce-product-gallery__trigger {
	display: none !important;
}

.single-product .woocommerce-product-gallery .zoomImg {
	display: none !important;
}

.single-product div.product .woocommerce-product-gallery {
	margin: 0;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	/* etwas weniger Innenrand ≈ sichtbar größeres Produktbild (~20px) */
	padding: clamp(0.45rem, 1.2vw, 0.85rem);
	background: #fff;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.single-product div.product .woocommerce-product-gallery .flex-viewport,
.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
	width: 100% !important;
	max-width: 100%;
}

.single-product div.product .woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	max-height: none;
	object-fit: contain;
}

.single-product div.product .summary.entry-summary {
	background: #fff;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	padding: clamp(1.15rem, 2.5vw, 1.75rem) clamp(1.15rem, 2.8vw, 2.15rem);
	min-width: 0;
	margin: 0;
	box-sizing: border-box;
	overflow-x: clip;
	display: flex;
	flex-direction: column;
}

@media (max-width: 767px) {
	.single-product div.product .summary.entry-summary {
		width: 100%;
		max-width: 100%;
	}
}

@media (min-width: 768px) {
	.single-product div.product > .summary.entry-summary {
		width: auto;
		max-width: min(100%, 520px);
		min-width: min(100%, 260px);
	}

	.single-product div.product .summary.entry-summary {
		min-width: min(100%, 380px);
	}
}

@media (min-width: 1100px) {
	.single-product div.product > .summary.entry-summary {
		max-width: min(100%, 540px);
	}

	.single-product div.product .summary.entry-summary {
		min-width: min(100%, 440px);
	}
}

/* Elementor o. ä.: Kurzinfo in schmalen Spalten trotzdem nutzbar */
.single-product .elementor-widget-woocommerce-product-add-to-cart,
.single-product .elementor-widget-woocommerce-product-price,
.single-product .elementor-widget-woocommerce-product-short-description {
	min-width: 0;
}

.single-product .elementor .product .summary.entry-summary,
.single-product .elementor .woocommerce div.product .summary.entry-summary {
	width: 100%;
	max-width: 100%;
}

/* Titel nicht mit Viewport „aufblasen“ */
.single-product div.product .summary .product_title {
	font-size: clamp(1.2rem, 1.35rem + 0.4vw, 1.5rem);
	margin: 0 0 0.75rem;
	color: var(--jm-secondary);
	line-height: 1.25;
	max-width: 100%;
}

/* Langbeschreibung / Tabs: volle Breite, etwas großzügiger lesbar */
.single-product div.product .woocommerce-tabs {
	width: 100%;
	max-width: 100%;
}

.single-product div.product .woocommerce-tabs .woocommerce-Tabs-panel {
	font-size: 1.05rem;
	line-height: 1.65;
	max-width: none;
	width: 100%;
}

.single-product div.product .woocommerce-tabs .woocommerce-Tabs-panel p {
	max-width: none;
}

/* Badges / Widgets unter dem Titel, in der Summary */
.single-product .jm-product-summary-widgets {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin: 0 0 1rem;
}

.single-product .jm-product-summary-widgets .jm-product-summary-widget {
	margin: 0;
}

.single-product .jm-product-summary-widgets .jm-product-summary-widget__title {
	display: block;
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--jm-secondary);
	opacity: 0.85;
	margin: 0 0 0.25rem;
}

.single-product .jm-product-summary-widgets .widget_custom_html .custom-html-widget,
.single-product .jm-product-summary-widgets .textwidget {
	margin: 0;
	padding: 0;
	border: none;
	background: transparent;
}

.single-product .jm-product-summary-widgets img {
	display: block;
	max-height: clamp(4rem, 14vw, 10rem);
	max-width: min(100%, 22rem);
	width: auto;
	height: auto;
	object-fit: contain;
}

/* „Made in Germany“ / Siegel auch unter dem Warenkorb größer darstellbar */
.single-product .jm-product-trust-widgets img {
	max-height: clamp(3.5rem, 12vw, 9rem);
	max-width: min(100%, 20rem);
	width: auto;
	height: auto;
	object-fit: contain;
}

.single-product div.product .summary p.price {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--jm-primary);
	margin-bottom: 1rem;
	order: 20;
}

/* Grundpreis unmittelbar unter dem Endpreis */
.jm-grundpreis-wrap {
	display: block;
	margin-top: 0.35rem;
	max-width: 100%;
}

.jm-grundpreis-wrap .jm-grundpreis {
	display: block;
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--jm-secondary);
}

.single-product div.product .summary p.price .woocommerce-price-suffix {
	display: block;
	margin-top: 0.6rem;
	padding: 0.7rem 0.85rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: var(--jm-header-bg, #fff8f0);
	font-size: 0.92rem;
	font-weight: 500;
	line-height: 1.45;
	color: var(--jm-text);
}

.single-product div.product .summary .wc-gzd-additional-info,
.single-product div.product .summary .tax-info,
.single-product div.product .summary .shipping-costs-info,
.single-product div.product .summary .delivery-time-info,
.single-product div.product .summary .wc-gzd-additional-info p {
	margin: 0 0 0.45rem;
	font-size: 0.95rem;
	line-height: 1.45;
	color: var(--jm-text);
}

.single-product div.product .summary .delivery-time-info:last-child,
.single-product div.product .summary .wc-gzd-additional-info p:last-child {
	margin-bottom: 0;
}

.single-product div.product .summary .wc-gzd-additional-info {
	order: 30;
	padding: 0.8rem 0.9rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: var(--jm-header-bg, #fff8f0);
}

.single-product div.product .summary .wc-gzd-product-units,
.single-product div.product .summary .product-units,
.single-product div.product .summary .wc-gzd-product-unit,
.single-product .jm-product-facts {
	order: 32;
}

.single-product div.product .summary .wc-gzd-product-units,
.single-product div.product .summary .product-units,
.single-product div.product .summary .wc-gzd-product-unit {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	max-width: 100%;
	margin: 0 0 1rem;
	padding: 0.45rem 0.7rem;
	background: #fff;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--jm-secondary);
}

/* Shop / Archive: gleicher Grundpreis-Stil */
.woocommerce ul.products li.product .jm-grundpreis-wrap .jm-grundpreis {
	font-size: 0.82rem;
	font-weight: 600;
}

.single-product .jm-tab-section {
	margin-bottom: 1.75rem;
}

.single-product .jm-tab-section:last-child {
	margin-bottom: 0;
}

.single-product .jm-tab-section h3 {
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0 0 0.65rem;
	color: var(--jm-secondary);
}

.single-product .jm-tab-section__body {
	margin: 0;
}

.single-product .jm-nutrition-table-wrap {
	max-width: 30rem;
}

.single-product .jm-nutrition-table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	overflow: hidden;
	background: #fff;
}

.single-product .jm-nutrition-table th,
.single-product .jm-nutrition-table td {
	padding: 0.48rem 0.65rem;
	border-bottom: 1px solid var(--jm-border);
	text-align: left;
	vertical-align: top;
	line-height: 1.4;
}

.single-product .jm-nutrition-table tr:last-child th,
.single-product .jm-nutrition-table tr:last-child td {
	border-bottom: none;
}

.single-product .jm-nutrition-table th {
	width: 62%;
	background: var(--jm-header-bg, #fff8f0);
	font-weight: 700;
	color: var(--jm-secondary);
}

.single-product .jm-nutrition-table td {
	font-weight: 600;
}

.single-product .jm-nutrition-table__note {
	margin: 0.7rem 0 0;
	font-size: 0.9rem;
	line-height: 1.5;
}

.single-product .jm-grundpreis-tab__legal {
	font-size: 0.95rem;
	line-height: 1.6;
	margin: 0 0 1rem;
}

.single-product .jm-grundpreis-tab__hint,
.single-product .jm-grundpreis-tab__calc {
	font-size: 0.95rem;
	line-height: 1.55;
	margin: 0 0 0.75rem;
}

.single-product .jm-be-tab__intro,
.single-product .jm-be-tab__hint {
	font-size: 0.95rem;
	line-height: 1.55;
	margin: 0 0 1rem;
}

.single-product .jm-be-table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 0 0 1.25rem;
}

.single-product .jm-be-table {
	width: 100%;
	min-width: 36rem;
	border-collapse: collapse;
	font-size: 0.92rem;
	margin: 0;
}

.single-product .jm-be-table th,
.single-product .jm-be-table td {
	border: 1px solid var(--jm-border);
	padding: 0.45rem 0.65rem;
	text-align: left;
	vertical-align: top;
}

.single-product .jm-be-table thead th {
	background: var(--jm-header-bg, #fff8f0);
	font-weight: 700;
}

.single-product .jm-be-summary {
	display: grid;
	grid-template-columns: minmax(9rem, 40%) 1fr;
	gap: 0.35rem 1rem;
	margin: 0;
	padding: 1rem 1.15rem;
	background: var(--jm-header-bg, #fff8f0);
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	font-size: 0.95rem;
}

.single-product .jm-be-summary dt {
	font-weight: 700;
	margin: 0;
	color: var(--jm-secondary);
}

.single-product .jm-be-summary dd {
	margin: 0;
}

/* Kurzbeschreibung liegt per Theme unter der zweispaltigen Zeile (.jm-product-description-below) */
.single-product div.product .summary .woocommerce-product-details__short-description {
	display: none !important;
}

.single-product .jm-product-description-below {
	width: 100%;
	max-width: min(100%, 52rem);
	margin: 0 auto 1.75rem;
	padding: 0;
	box-sizing: border-box;
}

.single-product .jm-product-description-below .woocommerce-product-details__short-description {
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--jm-text);
	margin: 0;
	max-width: none;
	display: block;
	padding: 1rem 1.25rem;
	background: var(--jm-header-bg);
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	box-sizing: border-box;
}

/* Infobox: Glasinhalt, Gewicht, Lager */
.single-product .jm-product-facts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	background: #fff;
	border: 1px solid var(--jm-border, #e8ddd0);
	border-radius: var(--jm-radius, 6px);
	font-size: 0.9rem;
	line-height: 1.4;
}

.single-product .jm-product-facts__item {
	font-weight: 600;
	color: var(--jm-secondary, #3d2914);
}

.single-product .jm-product-facts__stock {
	color: var(--jm-primary, #b42318);
}

.single-product div.product .summary form.cart {
	margin-top: 0.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--jm-border);
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.75rem 1rem;
	column-gap: 1rem;
	row-gap: 0.75rem;
	order: 40;
}

.single-product div.product .summary .product_meta {
	order: 50;
}

/* Einfaches Produkt (Menge direkt im Formular): eine Zeile, Button-Spalte nicht schrumpfen */
.single-product div.product .summary form.cart:has(> .quantity) {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: end;
	column-gap: 1rem;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.single-product div.product .summary form.cart:has(> .quantity) .quantity {
	grid-column: 1;
}

.single-product div.product .summary form.cart:has(> .quantity) .single_add_to_cart_button {
	grid-column: 2;
	justify-self: stretch;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	overflow: visible;
	white-space: normal;
	text-align: center;
	line-height: 1.25;
	overflow-wrap: break-word;
}

.single-product div.product .summary form.cart table.variations {
	flex: 1 1 100%;
	width: 100%;
	margin-bottom: 0.25rem;
	grid-column: 1 / -1;
}

/* Variables Produkt: Menge + Button nach den Varianten nebeneinander */
.single-product div.product .summary form.cart .woocommerce-variation-add-to-cart,
.single-product div.product .summary form.cart .woocommerce-variation-add-to-cart-disabled {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-end;
	gap: 0.75rem 1rem;
	width: 100%;
	flex: 1 1 100%;
}

.single-product div.product .summary form.cart .woocommerce-variation-add-to-cart .quantity,
.single-product div.product .summary form.cart .woocommerce-variation-add-to-cart-disabled .quantity {
	flex: 0 0 auto;
}

.single-product div.product .summary form.cart .woocommerce-variation-add-to-cart .single_add_to_cart_button,
.single-product div.product .summary form.cart .woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button {
	flex: 1 1 auto;
	min-width: min(100%, 12.5rem);
	width: auto;
	overflow: visible;
	white-space: normal;
	text-align: center;
	line-height: 1.25;
}

.single-product div.product .summary form.cart .quantity {
	margin: 0;
	float: none;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
}

.single-product div.product .summary form.cart .quantity .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.single-product div.product .summary form.cart .quantity .qty {
	min-width: 4.75rem;
	width: 5.5rem;
	padding: 0.65rem 0.4rem;
	font-size: 1.1rem;
	font-weight: 700;
	text-align: center;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: #fff;
	/* Pfeile zum Hoch-/Runterzählen (nicht als reines Textfeld darstellen) */
	appearance: auto;
}

.single-product div.product .summary form.cart .quantity .qty::-webkit-outer-spin-button,
.single-product div.product .summary form.cart .quantity .qty::-webkit-inner-spin-button {
	opacity: 1;
	height: auto;
	cursor: pointer;
}

.single-product div.product .summary form.cart .single_add_to_cart_button {
	flex: 0 1 auto;
	min-height: 2.85rem;
	padding: 0.7rem 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	float: none;
	overflow: visible;
	white-space: normal;
	text-align: center;
	line-height: 1.25;
}

.single-product div.product .summary form.cart .single_variation_wrap {
	width: 100%;
	flex: 1 1 100%;
}

.single-product .related.products {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--jm-border);
}

.single-product .related.products > h2 {
	font-size: 1.15rem;
	color: var(--jm-secondary);
	margin-bottom: 1rem;
}

.jm-el-product-slider {
	width: 100%;
	max-width: min(100%, 1270px);
	margin: 0 auto 12px;
	padding: 0 10px;
	box-sizing: border-box;
}

.elementor-widget-jm_woo_product_slider .elementor-widget-container {
	max-width: min(100%, 1270px);
	margin-left: auto;
	margin-right: auto;
}

.jm-el-product-slider__title {
	margin: 0 0 0.9rem;
	color: var(--jm-secondary);
}

.jm-el-product-slider__viewport {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
}

.jm-el-product-slider__track {
	display: flex;
	gap: 0;
	overflow: hidden;
	padding: 0;
	width: max-content;
	animation: jm-el-slider-loop 22s linear infinite;
}

.jm-el-product-slider__viewport:hover .jm-el-product-slider__track,
.jm-el-product-slider__viewport:focus-within .jm-el-product-slider__track {
	animation-play-state: paused;
}

.jm-el-product-slider__lane {
	display: flex;
	gap: 0.9rem;
	flex: 0 0 auto;
}

.jm-el-product-slider__item {
	flex: 0 0 min(18rem, 78%);
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	padding: 0.75rem;
	background: #fff;
}

.jm-el-product-slider__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.jm-el-product-slider__link img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: calc(var(--jm-radius) - 2px);
}

.jm-el-product-slider__name {
	margin: 0.65rem 0 0.35rem;
	font-size: 0.98rem;
	line-height: 1.35;
	color: var(--jm-secondary);
}

.jm-el-product-slider__price {
	display: block;
	font-weight: 700;
	color: var(--jm-primary);
}

.jm-el-product-slider__btn {
	display: inline-block;
	margin-top: 0.65rem;
	padding: 0.45rem 0.75rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	text-decoration: none;
	font-weight: 700;
	color: var(--jm-secondary);
}

.jm-el-product-slider__btn:hover {
	border-color: var(--jm-primary);
	color: var(--jm-primary);
}

@media (min-width: 900px) {
	.jm-el-product-slider__item {
		flex-basis: min(15rem, 32%);
	}
}

@keyframes jm-el-slider-loop {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

/* Bewertungen / Rezensionen (falls noch Reste von Plugins) */
.single-product #reviews,
.single-product #tab-reviews,
.single-product .woocommerce-Reviews {
	display: none !important;
}

/* Vertrauens-Widgets unter dem Warenkorb-Button */
.jm-product-trust-widgets {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.5rem 0.75rem;
	margin: 1.25rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--jm-border);
	clear: both;
}

.jm-product-trust-widgets .jm-product-trust-widget {
	margin: 0;
}

.jm-product-trust-widgets .jm-product-trust-widget__title {
	display: block;
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--jm-secondary);
	opacity: 0.85;
	margin: 0 0 0.35rem;
}

.jm-product-trust-widgets .jm-product-trust-widget .textwidget,
.jm-product-trust-widgets .jm-product-trust-widget > .custom-html-widget,
.jm-product-trust-widgets .jm-product-trust-widget > :not(.jm-product-trust-widget__title) {
	font-size: 0.85rem;
	font-weight: 600;
	padding: 0.45rem 0.75rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: var(--jm-header-bg);
	color: var(--jm-secondary);
	line-height: 1.35;
}

.jm-product-trust-widgets .widget_custom_html .custom-html-widget {
	border: none;
	padding: 0;
	background: transparent;
	font-size: inherit;
}

.jm-product-trust-widgets .widget_custom_html .jm-product-trust-widget__title + .custom-html-widget {
	font-size: 0.85rem;
	font-weight: 600;
	padding: 0.45rem 0.75rem;
	border: 1px solid var(--jm-border);
	border-radius: var(--jm-radius);
	background: var(--jm-header-bg);
	color: var(--jm-secondary);
}

/* =====================================================================
   MOBILE – Shop/Kategorie-Header + Produkt-Tabs
   ===================================================================== */
@media (max-width: 767px) {

	/* ——— Shop/Kategorie: Titel, Trefferzahl, Sortierung zentrieren ——— */
	.woocommerce .woocommerce-products-header {
		text-align: center;
	}

	.woocommerce .woocommerce-products-header__title.page-title {
		text-align: center;
	}

	.woocommerce .jm-result-count,
	.woocommerce p.jm-result-count,
	.woocommerce-result-count {
		text-align: center;
		width: 100%;
	}

	.woocommerce .woocommerce-ordering {
		display: flex;
		justify-content: center;
		width: 100%;
	}

	.woocommerce .woocommerce-ordering select {
		width: auto;
		max-width: 100%;
	}

	/* ——— Produkt-Tabs: alle Tabs auf einer Linie ——— */
	.single-product div.product .woocommerce-tabs ul.tabs {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		gap: 0;
		padding: 0;
		margin: 0 0 -1px;
		border-bottom: 1px solid var(--jm-border);
	}

	.single-product div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar {
		display: none;
	}

	.single-product div.product .woocommerce-tabs ul.tabs li {
		flex: 0 0 auto;
		white-space: nowrap;
		margin: 0;
		border-radius: 0;
	}

	.single-product div.product .woocommerce-tabs ul.tabs li a {
		display: block;
		padding: 0.6rem 0.9rem;
		font-size: 0.82rem;
		font-weight: 600;
		white-space: nowrap;
	}
}
