/* ==========================================================================
   JI Shop Redesign 2026 – weitere Shop-Seiten
   Produktdetail, Warenkorb, Kasse, Prüfen & Bestellen, Bestätigung, Mein Konto
   Baut auf den Variablen und Komponenten aus shop.css auf.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Grundgerüst: einheitliche Inhaltsbreite auf allen Shop-Seiten
   -------------------------------------------------------------------------- */
body.ji-shop-page .woocommerce *,
body.ji-shop-page .woocommerce *::before,
body.ji-shop-page .woocommerce *::after,
body.ji-shop-page .ji-single *,
body.ji-shop-page .ji-page-head *,
body.ji-shop-page .ji-card-grid *,
.ji-pill,
.ji-btn-cart,
.ji-btn-outline {
	box-sizing: border-box;
}

body.ji-shop-page #main {
	padding-bottom: 70px !important;
}

body.ji-shop-page .ji-newsletter {
	margin-top: 0;
}

body.ji-shop-page #main > .wf-wrap {
	box-sizing: border-box;
	/* 2.8.3: The7 setzt eine feste Breite (Theme Options › Inhaltsbreite, z. B. 1300px) */
	width: 100% !important;
	max-width: calc(var(--ji-container) + 2 * var(--ji-gutter)) !important;
	padding-left: var(--ji-gutter) !important;
	padding-right: var(--ji-gutter) !important;
}

body.ji-shop-page .page-title {
	display: none;
}

body.ji-shop-page #main .wf-container-main {
	display: block !important;
}

body.ji-shop-page #content {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
}

body.ji-shop-page #sidebar {
	display: none !important;
}

body.ji-shop-page:not(.ji-shop-listing) #main {
	padding-top: 0 !important;
}

body.ji-shop-page .woocommerce,
body.ji-shop-page .ji-single,
body.ji-shop-page .ji-page-head {
	font-family: var(--ji-font);
	color: var(--ji-text);
}

/* --------------------------------------------------------------------------
   Seitenkopf mit Schrittanzeige
   -------------------------------------------------------------------------- */
.ji-page-head {
	width: calc(100% - 2 * var(--ji-gutter));
	max-width: var(--ji-container);
	margin: 0 auto;
	padding: 14px 0 34px;
}

.ji-page-head__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px 40px;
}

.ji-page-head__kicker {
	margin: 0 0 4px !important;
	font-size: 14px;
	color: var(--ji-text);
}

.ji-page-head .ji-section-title {
	margin: 0 !important;
}

.ji-steps {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 0;
	margin: 0 0 18px !important;
	padding: 0 !important;
	list-style: none !important;
}

.ji-steps__item {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	font-size: 14px;
	color: var(--ji-text);
}

.ji-steps__item::before {
	display: none !important;
}

.ji-steps__item + .ji-steps__item::after {
	display: none;
}

.ji-steps__item + .ji-steps__item {
	padding-left: 44px !important;
	position: relative;
}

.ji-steps__item + .ji-steps__item > .ji-steps__num::before {
	content: "";
	position: absolute;
	left: 10px;
	top: 50%;
	width: 24px;
	height: 1px;
	background: var(--ji-border);
}

.ji-steps__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: 1px solid var(--ji-border);
	border-radius: 50%;
	background: #fff;
	font-size: 13px;
	font-weight: var(--ji-semibold);
	line-height: 1;
}

.ji-steps__item a,
.ji-steps__item span {
	color: inherit !important;
	text-decoration: none !important;
}

.ji-steps__item.is-current {
	font-weight: var(--ji-semibold);
}

.ji-steps__item.is-current .ji-steps__num {
	border-color: transparent;
	background: var(--ji-gradient);
	color: #fff !important;
}

.ji-steps__item.is-done .ji-steps__num {
	border-color: var(--ji-red);
	color: var(--ji-red) !important;
}

.ji-steps__item.is-done a:hover {
	color: var(--ji-red) !important;
}

.ji-steps__item.is-todo {
	color: #999;
}

/* --------------------------------------------------------------------------
   Allgemeine Elemente: Überschriften, Buttons, Formulare, Tabellen, Hinweise
   -------------------------------------------------------------------------- */

/* Überschriften innerhalb der Shop-Seiten */
body.ji-shop-page .woocommerce h2,
body.ji-shop-page .woocommerce h3,
body.ji-shop-page .ji-single__details h2 {
	color: var(--ji-red);
	font-family: var(--ji-font);
	font-size: 20px;
	font-weight: var(--ji-semibold);
	line-height: 1.3;
	text-transform: none;
	letter-spacing: 0;
	margin: 0 0 16px;
}

body.ji-shop-page section.related > h2,
body.ji-shop-page section.up-sells > h2,
body.ji-shop-page .cross-sells > h2 {
	position: relative;
	margin: 0 0 26px !important;
	padding: 0 0 20px !important;
	color: var(--ji-red) !important;
	font-size: 25px !important;
	font-weight: var(--ji-semibold) !important;
}

body.ji-shop-page section.related > h2::after,
body.ji-shop-page section.up-sells > h2::after,
body.ji-shop-page .cross-sells > h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 75px;
	height: 1px;
	background: var(--ji-text);
}

/* Sekundäre Buttons: Outline-Pill */
body.ji-shop-page .woocommerce a.button:where(:not(.alt, .checkout-button, .wc-backward, .wc-forward.checkout)),
body.ji-shop-page .woocommerce button.button[name="update_cart"],
body.ji-shop-page .woocommerce input[name="update_cart"],
body.ji-shop-page .woocommerce button.button[name="apply_coupon"],
body.ji-shop-page .woocommerce input.button:not(.alt),
body.ji-shop-page .wgm-go-back-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 33px;
	height: auto;
	padding: 6px 22px !important;
	border: 1px solid var(--ji-text) !important;
	border-radius: var(--ji-radius-pill) !important;
	background: transparent !important;
	color: var(--ji-text) !important;
	font-family: var(--ji-font);
	font-size: 14px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.2 !important;
	text-transform: none !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

body.ji-shop-page .woocommerce a.button:where(:not(.alt, .checkout-button, .wc-backward, .wc-forward.checkout)):hover,
body.ji-shop-page .woocommerce button.button[name="update_cart"]:not(:disabled):hover,
body.ji-shop-page .woocommerce input[name="update_cart"]:not(:disabled):hover,
body.ji-shop-page .woocommerce button.button[name="apply_coupon"]:hover,
body.ji-shop-page .woocommerce input.button:not(.alt):hover,
body.ji-shop-page .wgm-go-back-button:hover {
	border-color: var(--ji-red) !important;
	background: var(--ji-red) !important;
	color: #fff !important;
}

body.ji-shop-page .woocommerce button.button:disabled,
body.ji-shop-page .woocommerce button.button[disabled] {
	opacity: .45;
	cursor: not-allowed;
}

/* Primäre Buttons: roter Verlauf */
body.ji-shop-page .woocommerce button[type="submit"].button:not([name="update_cart"]):not([name="apply_coupon"]),
body.ji-shop-page .woocommerce a.button.alt,
body.ji-shop-page .woocommerce a.button.checkout,
body.ji-shop-page .wgm-place-order.button,
body.ji-shop-page .woocommerce .return-to-shop a.button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: 200px;
	min-height: 40px;
	padding: 8px 28px !important;
	border: 0 !important;
	border-radius: 20px !important;
	background: var(--ji-gradient) !important;
	color: #fff !important;
	font-family: var(--ji-font);
	font-size: 14px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.2 !important;
	text-transform: none !important;
	text-decoration: none !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: filter .2s ease;
}

body.ji-shop-page .woocommerce button[type="submit"].button:not([name="update_cart"]):not([name="apply_coupon"]):hover,
body.ji-shop-page .woocommerce a.button.alt:hover,
body.ji-shop-page .woocommerce a.button.checkout:hover,
body.ji-shop-page .wgm-place-order.button:hover,
body.ji-shop-page .woocommerce .return-to-shop a.button:hover {
	filter: brightness(1.12);
}

/* Formularfelder */
body.ji-shop-page .woocommerce form .input-text,
body.ji-shop-page .woocommerce form input[type="text"],
body.ji-shop-page .woocommerce form input[type="email"],
body.ji-shop-page .woocommerce form input[type="tel"],
body.ji-shop-page .woocommerce form input[type="password"],
body.ji-shop-page .woocommerce form input[type="number"]:not(.qty),
body.ji-shop-page .woocommerce form input[type="date"],
body.ji-shop-page .woocommerce form select,
body.ji-shop-page .woocommerce form textarea,
body.ji-shop-page .ji-single #reviews input[type="text"],
body.ji-shop-page .ji-single #reviews input[type="email"],
body.ji-shop-page .ji-single #reviews textarea {
	width: 100%;
	min-height: 40px;
	margin: 0;
	padding: 8px 16px !important;
	border: 1px solid var(--ji-border) !important;
	border-radius: 20px !important;
	background-color: #fff !important;
	color: var(--ji-text) !important;
	font-family: var(--ji-font);
	font-size: 14px !important;
	line-height: 1.4;
	box-shadow: none !important;
	transition: border-color .2s ease, box-shadow .2s ease;
}

body.ji-shop-page .woocommerce form textarea,
body.ji-shop-page .ji-single #reviews textarea {
	min-height: 110px;
	border-radius: 12px !important;
}

body.ji-shop-page .woocommerce form select {
	padding-right: 42px !important;
	background: #fff url("icons/chevron-down.svg") no-repeat right 18px center / 14px 8px !important;
	-webkit-appearance: none;
	appearance: none;
}

body.ji-shop-page .woocommerce form .input-text:focus,
body.ji-shop-page .woocommerce form input:focus,
body.ji-shop-page .woocommerce form select:focus,
body.ji-shop-page .woocommerce form textarea:focus,
body.ji-shop-page .ji-single #reviews input:focus,
body.ji-shop-page .ji-single #reviews textarea:focus {
	border-color: var(--ji-red) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(210, 10, 17, .12) !important;
}

body.ji-shop-page .woocommerce form .form-row {
	margin: 0 0 14px;
	padding: 0;
}

body.ji-shop-page .woocommerce form .form-row label,
body.ji-shop-page .woocommerce form > p > label {
	display: block;
	margin: 0 0 6px;
	color: var(--ji-text);
	font-size: 13px;
	font-weight: var(--ji-semibold);
	line-height: 1.3;
}

body.ji-shop-page .woocommerce form .form-row label.checkbox,
body.ji-shop-page .woocommerce form .form-row label.woocommerce-form__label-for-checkbox,
body.ji-shop-page .woocommerce form label.woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: flex-start;
	gap: 8px;
	font-weight: 400;
	font-size: 13px;
}

body.ji-shop-page .woocommerce .required {
	color: var(--ji-red) !important;
	text-decoration: none;
	border: 0;
}

body.ji-shop-page .woocommerce form .form-row.woocommerce-invalid .input-text,
body.ji-shop-page .woocommerce form .form-row.woocommerce-invalid select {
	border-color: var(--ji-red) !important;
}

body.ji-shop-page .woocommerce form .form-row.woocommerce-validated .input-text {
	border-color: var(--ji-border) !important;
}

body.ji-shop-page input[type="checkbox"],
body.ji-shop-page input[type="radio"] {
	accent-color: var(--ji-red);
	width: 16px;
	height: 16px;
	margin-top: 2px;
}

/* Select2 (Länderauswahl) */
body.ji-shop-page .select2-container--default .select2-selection--single {
	height: 40px;
	border: 1px solid var(--ji-border);
	border-radius: 20px;
	background: #fff;
}

body.ji-shop-page .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding-left: 16px;
	padding-right: 40px;
	color: var(--ji-text);
	font-size: 14px;
	line-height: 38px;
}

body.ji-shop-page .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 0;
	right: 12px;
	height: 38px;
}

body.ji-shop-page .select2-container--focus .select2-selection--single,
body.ji-shop-page .select2-container--open .select2-selection--single {
	border-color: var(--ji-red);
}

.select2-dropdown {
	border-color: var(--ji-border) !important;
	border-radius: 12px !important;
	overflow: hidden;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var(--ji-red) !important;
}

/* Tabellen */
body.ji-shop-page .woocommerce table.shop_table,
body.ji-shop-page .wgm-second-checkout table.shop_table {
	width: 100%;
	margin: 0 0 24px;
	border: 1px solid var(--ji-border) !important;
	border-collapse: separate !important;
	border-spacing: 0;
	border-radius: var(--ji-radius-box);
	overflow: hidden;
	background: #fff;
	font-size: 14px;
}

body.ji-shop-page .woocommerce table.shop_table th,
body.ji-shop-page .woocommerce table.shop_table td,
body.ji-shop-page .wgm-second-checkout table.shop_table th,
body.ji-shop-page .wgm-second-checkout table.shop_table td {
	padding: 14px 16px !important;
	border: 0 !important;
	border-top: 1px solid var(--ji-border-light) !important;
	background: transparent;
	color: var(--ji-text);
	text-align: left;
	vertical-align: middle;
}

body.ji-shop-page .woocommerce table.shop_table thead th,
body.ji-shop-page .wgm-second-checkout table.shop_table thead th {
	border-top: 0 !important;
	background: var(--ji-bg-soft);
	font-size: 13px;
	font-weight: var(--ji-semibold);
	text-transform: none;
}

body.ji-shop-page .woocommerce table.shop_table tbody tr:first-child td,
body.ji-shop-page .woocommerce table.shop_table tbody tr:first-child th {
	border-top: 0 !important;
}

body.ji-shop-page .woocommerce table.shop_table thead + tbody tr:first-child td,
body.ji-shop-page .woocommerce table.shop_table thead + tbody tr:first-child th {
	border-top: 1px solid var(--ji-border-light) !important;
}

body.ji-shop-page .woocommerce table.shop_table tfoot th,
body.ji-shop-page .woocommerce table.shop_table tfoot td {
	background: var(--ji-bg-soft);
	font-weight: 400;
}

body.ji-shop-page .woocommerce table.shop_table .order-total th,
body.ji-shop-page .woocommerce table.shop_table .order-total td,
body.ji-shop-page .wgm-second-checkout table.shop_table .order-total td {
	font-weight: var(--ji-semibold);
}

body.ji-shop-page .woocommerce table.shop_table .order-total .amount,
body.ji-shop-page .wgm-second-checkout .order-total .amount {
	color: var(--ji-red);
	font-size: 17px;
	font-weight: var(--ji-semibold);
}

body.ji-shop-page .woocommerce table.shop_table a {
	color: var(--ji-text);
	font-weight: var(--ji-semibold);
	text-decoration: none;
}

body.ji-shop-page .woocommerce table.shop_table a:hover {
	color: var(--ji-red);
}

body.ji-shop-page .woocommerce table.shop_table small,
body.ji-shop-page .woocommerce table.shop_table .tax_label,
body.ji-shop-page .woocommerce table.shop_table .includes_tax,
body.ji-shop-page .woocommerce table.shop_table .wgm-tax {
	display: block;
	font-size: 12px;
	font-weight: 400;
	color: var(--ji-text);
}

/* Hinweise */
body.ji-shop-page .woocommerce-message,
body.ji-shop-page .woocommerce-info,
body.ji-shop-page .woocommerce-error,
body.ji-shop-page .woocommerce-noreviews,
body.ji-shop-page p.no-comments {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 20px;
	margin: 0 0 24px !important;
	padding: 14px 18px !important;
	border: 1px solid var(--ji-border) !important;
	border-left: 4px solid var(--ji-red) !important;
	border-radius: 8px !important;
	background: var(--ji-bg-soft) !important;
	color: var(--ji-text) !important;
	font-size: 14px;
	line-height: 1.45;
	list-style: none;
	box-shadow: none !important;
}

body.ji-shop-page .woocommerce-message {
	border-left-color: #6dad05 !important;
}

body.ji-shop-page .woocommerce-error {
	border-left-color: #9d383d !important;
	flex-direction: column;
	align-items: flex-start;
}

body.ji-shop-page .woocommerce-message::before,
body.ji-shop-page .woocommerce-info::before,
body.ji-shop-page .woocommerce-error::before {
	display: none !important;
}

body.ji-shop-page .woocommerce-error li {
	margin: 0;
	padding: 0;
}

body.ji-shop-page .woocommerce-message .button,
body.ji-shop-page .woocommerce-info .button {
	order: 2;
	float: none !important;
	margin: 0 !important;
}

body.ji-shop-page .woocommerce-message a:not(.button),
body.ji-shop-page .woocommerce-info a:not(.button),
body.ji-shop-page .woocommerce-error a:not(.button) {
	color: var(--ji-red);
}

/* --------------------------------------------------------------------------
   Produktdetailseite
   -------------------------------------------------------------------------- */
.ji-single {
	max-width: var(--ji-container);
	margin: 0 auto;
	padding-bottom: 10px;
}

.ji-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 0;
	margin: 30px 0 26px;
	font-size: 12px;
	line-height: 1.4;
	color: var(--ji-text);
}

.ji-breadcrumb a {
	color: var(--ji-text) !important;
	text-decoration: none !important;
}

.ji-breadcrumb a:hover {
	color: var(--ji-red) !important;
}

.ji-breadcrumb__sep {
	margin: 0 8px;
	color: #999;
}

.ji-single__top {
	display: grid;
	grid-template-columns: 440px minmax(0, 1fr);
	column-gap: 50px;
	align-items: start;
}

.ji-single__media {
	position: relative;
	padding: 34px;
	border: 1px solid var(--ji-border);
	background: var(--ji-bg-soft);
}

.ji-single__media .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	opacity: 1 !important;
}

.ji-single__media .woocommerce-product-gallery__image img,
.ji-single__media .woocommerce-product-gallery img.wp-post-image {
	display: block;
	width: auto !important;
	max-width: 100%;
	max-height: 440px;
	height: auto !important;
	margin: 0 auto;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .14);
}

.ji-single__media .woocommerce-product-gallery__trigger {
	top: 12px !important;
	right: 12px !important;
	width: 34px !important;
	height: 34px !important;
	border: 1px solid var(--ji-border);
	border-radius: 50% !important;
	background: #fff !important;
}

.ji-single__media .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 20px 0 0 !important;
	padding: 0 !important;
	list-style: none;
}

.ji-single__media .flex-control-thumbs li {
	width: 64px !important;
	float: none !important;
	margin: 0 !important;
}

.ji-single__media .flex-control-thumbs img {
	border: 1px solid var(--ji-border);
	background: #fff;
	opacity: .6;
	transition: opacity .2s ease, border-color .2s ease;
}

.ji-single__media .flex-control-thumbs img.flex-active,
.ji-single__media .flex-control-thumbs img:hover {
	border-color: var(--ji-red);
	opacity: 1;
}

.ji-single .onsale {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 5;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 4px 14px;
	border-radius: var(--ji-radius-pill);
	background: var(--ji-gradient);
	color: #fff;
	font-size: 13px;
	font-weight: var(--ji-semibold);
	line-height: 1.4;
}

.ji-single__summary {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	min-width: 0;
}

.ji-single__kicker {
	position: relative;
	margin: 0 0 12px !important;
	padding: 0 0 6px;
	color: var(--ji-red);
	font-size: 16px;
	font-weight: var(--ji-semibold);
	line-height: 1.3;
}

.ji-single__kicker::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 50px;
	height: 1px;
	background: var(--ji-red);
}

.ji-single__title {
	margin: 0 0 10px !important;
	padding: 0 !important;
	color: var(--ji-text) !important;
	font-family: var(--ji-font) !important;
	font-size: 30px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.2 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

.ji-single__excerpt {
	font-size: 17px;
	line-height: 1.35;
}

.ji-single__excerpt p {
	margin: 0 0 8px !important;
}

.ji-single__meta {
	font-size: 13px;
	margin-top: 6px !important;
}

.ji-buybox--single {
	max-width: 480px;
	margin-top: 22px;
	padding: 22px;
}

/* WooCommerce-Lagerstatus (Detailseite) im Stil der Liste */
.ji-buybox .ji-buybox__cart {
	display: contents;
}

.ji-buybox > .ji-buybox__cart > .stock,
.ji-buybox .ji-buybox__cart > p.stock {
	order: 4;
}

.ji-buybox p.stock,
.ji-buybox .woocommerce-variation-availability p.stock {
	position: relative;
	margin: 4px 0 0 !important;
	padding-left: 24px;
	color: var(--ji-text) !important;
	font-size: 12px;
	font-weight: var(--ji-semibold);
	line-height: 16px;
}

.ji-buybox p.stock.in-stock::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 21px;
	height: 16px;
	background: url("icons/check.svg") no-repeat center / contain;
}

.ji-buybox p.stock.out-of-stock {
	padding-left: 0;
	color: var(--ji-red) !important;
}

.ji-buybox--single form.cart:not(.variations_form) {
	order: 10;
}

/* Beschreibung / Zusätzliche Informationen / Bewertungen */
.ji-single__details {
	margin-top: 50px;
}

.ji-single .woocommerce-tabs {
	margin: 0 !important;
	padding: 0 !important;
}

.ji-single .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 18px !important;
	padding: 0 !important;
	border: 0 !important;
	list-style: none !important;
	overflow: visible !important;
}

.ji-single .woocommerce-tabs ul.tabs::before,
.ji-single .woocommerce-tabs ul.tabs::after,
.ji-single .woocommerce-tabs ul.tabs li::before,
.ji-single .woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.ji-single .woocommerce-tabs ul.tabs li {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--ji-border) !important;
	border-radius: var(--ji-radius-pill) !important;
	background: #fff !important;
	transition: border-color .2s ease;
}

.ji-single .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 7px 22px !important;
	color: var(--ji-text) !important;
	font-size: 14px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.3 !important;
	text-decoration: none !important;
}

.ji-single .woocommerce-tabs ul.tabs li.active,
.ji-single .woocommerce-tabs ul.tabs li:hover {
	border-color: var(--ji-red) !important;
}

.ji-single .woocommerce-tabs ul.tabs li.active a,
.ji-single .woocommerce-tabs ul.tabs li:hover a {
	color: var(--ji-red) !important;
}

.ji-single .woocommerce-Tabs-panel {
	margin: 0 !important;
	padding: 30px 34px !important;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
	font-size: 15px;
	line-height: 1.6;
}

.ji-single .woocommerce-Tabs-panel > h2:first-child {
	margin-bottom: 14px;
}

.ji-single .woocommerce-Tabs-panel ul li::marker {
	color: var(--ji-red);
}

.ji-single table.shop_attributes {
	width: 100%;
	margin: 0;
	border: 0 !important;
	border-collapse: collapse;
}

.ji-single table.shop_attributes th,
.ji-single table.shop_attributes td {
	padding: 10px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--ji-border-light) !important;
	background: none !important;
	font-style: normal;
	text-align: left;
	vertical-align: top;
}

.ji-single table.shop_attributes th {
	width: 220px;
	font-weight: var(--ji-semibold);
}

.ji-single table.shop_attributes td p {
	margin: 0;
	padding: 0;
}

/* Empfehlungen */
body.ji-shop-page section.related,
body.ji-shop-page section.up-sells {
	margin-top: 60px;
	clear: both;
}

.ji-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
	margin: 0;
	padding: 0;
}

.ji-card {
	display: flex;
	flex-direction: column;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	float: none !important;
	border: 1px solid var(--ji-border);
	background: #fff;
	list-style: none;
	transition: box-shadow .2s ease;
}

.ji-card:hover {
	box-shadow: 0 6px 18px rgba(0, 0, 0, .08);
}

.ji-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 240px;
	padding: 24px;
	border-bottom: 1px solid var(--ji-border);
	background: var(--ji-bg-soft);
}

.ji-card__media img {
	display: block;
	width: auto !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: 190px;
	margin: 0 !important;
	object-fit: contain;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .12);
}

.ji-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	padding: 18px 18px 20px;
}

.ji-card__kicker {
	margin: 0 0 4px !important;
	color: var(--ji-red);
	font-size: 12px;
	font-weight: var(--ji-semibold);
}

.ji-card__title {
	margin: 0 0 10px !important;
	padding: 0 !important;
	font-family: var(--ji-font) !important;
	font-size: 17px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.3 !important;
	text-transform: none !important;
}

.ji-card__title a {
	color: var(--ji-text) !important;
	text-decoration: none !important;
}

.ji-card__title a:hover {
	color: var(--ji-red) !important;
}

.ji-card .ji-price {
	margin-bottom: 14px;
}

.ji-card__btn {
	width: 100%;
	margin-top: auto;
}

/* --------------------------------------------------------------------------
   Warenkorb
   -------------------------------------------------------------------------- */
/* Layout (Standard-Markup von WooCommerce; eigene The7-Wrapper bleiben unberührt) */
body.woocommerce-cart .woocommerce:has(> .woocommerce-cart-form) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	column-gap: 40px;
	align-items: start;
}

body.woocommerce-cart .woocommerce:has(> .woocommerce-cart-form) > * {
	grid-column: 1 / -1;
}

body.woocommerce-cart .woocommerce:has(> .woocommerce-cart-form) > .woocommerce-cart-form {
	grid-column: 1;
	grid-row: 2;
}

body.woocommerce-cart .woocommerce:has(> .woocommerce-cart-form) > .cart-collaterals {
	display: contents;
}

body.woocommerce-cart .woocommerce:has(> .woocommerce-cart-form) .cart_totals {
	grid-column: 2;
	grid-row: 2;
}

body.woocommerce-cart .woocommerce:has(> .woocommerce-cart-form) .cross-sells {
	grid-column: 1 / -1;
	grid-row: 3;
	width: auto !important;
	float: none !important;
	margin-top: 30px;
}

/* The7-Warenkorb (.woocommerce-cart-wrap) */
body.woocommerce-cart .woocommerce-cart-wrap {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 360px;
	column-gap: 40px;
	align-items: start;
}

body.woocommerce-cart .woocommerce-cart-wrap > .woocommerce-cart-form {
	grid-column: 1;
	grid-row: 1;
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

body.woocommerce-cart .woocommerce-cart-wrap > .cart-collaterals {
	display: contents !important;
}

body.woocommerce-cart .woocommerce-cart-wrap .cart_totals {
	grid-column: 2;
	grid-row: 1;
	position: sticky;
	top: 120px;
}

body.woocommerce-cart .woocommerce-cart-wrap .cross-sells {
	grid-column: 1 / -1;
	grid-row: 2;
	width: auto !important;
	float: none !important;
	margin-top: 30px;
}

body.woocommerce-cart table.cart .cart-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

body.woocommerce-cart table.cart .cart-footer .coupon {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

body.woocommerce-cart table.cart .wc-coupon-input {
	width: 200px !important;
	min-height: 33px;
	height: 33px;
	padding: 4px 16px !important;
}

body.woocommerce-cart table.cart tr.jde_hint td {
	padding: 10px 16px !important;
	background: var(--ji-bg-soft);
	font-size: 12px;
	line-height: 1.5;
}

body.woocommerce-cart table.cart tr.jde_hint a {
	display: inline;
	color: var(--ji-red) !important;
	font-weight: 400 !important;
	text-decoration: underline !important;
}

body.woocommerce-cart table.cart .product-subtotal .wgm-tax,
body.ji-shop-page .woocommerce .wgm-tax {
	display: block;
	font-size: 12px;
	font-weight: 400;
	color: var(--ji-text);
}

body.woocommerce-cart table.cart .product-subtotal .wgm-tax .amount,
body.ji-shop-page .woocommerce .wgm-tax .amount {
	color: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
}

body.ji-shop-page .woocommerce br.wgm-break {
	display: none;
}

body.ji-shop-page .wc-cart-shipping-notice {
	margin: 0 0 14px;
	font-size: 12px;
	line-height: 1.4;
}

/* Produktlinks im Warenkorb + "Weiter einkaufen" */
body.woocommerce-cart table.cart .product-name a {
	color: var(--ji-text) !important;
	font-weight: var(--ji-semibold);
	text-decoration: none !important;
}

body.woocommerce-cart table.cart .product-name a:hover {
	color: var(--ji-red) !important;
	text-decoration: underline !important;
}

body.woocommerce-cart table.cart .product-thumbnail a {
	display: inline-flex;
}

body.ji-shop-page .ji-continue {
	margin: 16px 0 0;
	font-size: 14px;
}

body.ji-shop-page .ji-continue a {
	color: var(--ji-red) !important;
	font-weight: var(--ji-semibold);
	text-decoration: none !important;
}

body.ji-shop-page .ji-continue a:hover {
	text-decoration: underline !important;
}

/* The7-Checkout-Schritte ausblenden (ersetzt durch eigene Schrittanzeige) */
body.ji-shop-page .checkout-page-title {
	display: none !important;
}

body.woocommerce-cart table.cart .product-thumbnail {
	width: 96px;
}

body.woocommerce-cart table.cart .product-thumbnail a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	padding: 6px;
	border: 1px solid var(--ji-border);
	background: var(--ji-bg-soft);
}

body.woocommerce-cart table.cart .product-thumbnail img {
	width: auto !important;
	max-width: 100%;
	max-height: 58px;
	height: auto;
	margin: 0 !important;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .12);
}

body.woocommerce-cart table.cart .product-name {
	font-size: 15px;
	font-weight: var(--ji-semibold);
}

body.woocommerce-cart table.cart .product-name .variation {
	margin: 4px 0 0;
	font-size: 12px;
}

body.woocommerce-cart table.cart .product-name .variation dt,
body.woocommerce-cart table.cart .product-name .variation dd {
	display: inline;
	float: none;
	margin: 0;
	font-weight: 400;
}

body.woocommerce-cart table.cart .product-name .variation dd p {
	display: inline;
	margin: 0;
}

body.woocommerce-cart table.cart .product-subtotal .amount {
	color: var(--ji-red);
	font-weight: var(--ji-semibold);
}

body.woocommerce-cart table.cart .product-remove {
	width: 50px;
}

body.ji-shop-page .woocommerce a.remove {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 26px !important;
	height: 26px !important;
	border: 1px solid var(--ji-border) !important;
	border-radius: 50% !important;
	background: #fff !important;
	color: var(--ji-text) !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	text-decoration: none !important;
}

body.ji-shop-page .woocommerce a.remove:hover {
	border-color: var(--ji-red) !important;
	background: var(--ji-red) !important;
	color: #fff !important;
}

body.woocommerce-cart table.cart td.actions {
	padding: 16px !important;
	background: var(--ji-bg-soft);
}

body.woocommerce-cart table.cart td.actions .coupon {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

body.woocommerce-cart table.cart td.actions .coupon label {
	display: none;
}

body.woocommerce-cart table.cart td.actions .coupon .input-text {
	width: 200px !important;
	min-height: 33px;
	height: 33px;
	padding: 4px 16px !important;
}

body.woocommerce-cart table.cart td.actions > .button {
	float: right;
}

/* Mengenfeld im Warenkorb */
body.ji-shop-page .woocommerce .quantity {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

body.ji-shop-page .woocommerce .quantity .qty {
	width: 56px !important;
	height: 33px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 4px !important;
	border: 1px solid var(--ji-border) !important;
	border-radius: 0 !important;
	background: #fff !important;
	color: var(--ji-text) !important;
	font-size: 15px !important;
	text-align: center;
	-moz-appearance: textfield;
	box-shadow: none !important;
}

body.ji-shop-page .woocommerce .quantity .qty::-webkit-outer-spin-button,
body.ji-shop-page .woocommerce .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Summen-Box */
body.ji-shop-page h3#order_review_heading {
	margin: 0 !important;
	padding: 22px 22px 6px !important;
	border: 1px solid var(--ji-border);
	border-bottom: 0;
	border-radius: var(--ji-radius-box) var(--ji-radius-box) 0 0;
	background: #fff;
}

body.ji-shop-page h3#order_review_heading + #order_review {
	border-top: 0 !important;
	border-radius: 0 0 var(--ji-radius-box) var(--ji-radius-box) !important;
	padding-top: 6px !important;
}

body.ji-shop-page .cart_totals,
body.ji-shop-page .woocommerce-checkout-review-order,
body.ji-shop-page #order_review {
	padding: 22px 22px 24px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
}

body.ji-shop-page .cart_totals {
	width: 100% !important;
	float: none !important;
	margin: 0 0 30px;
}

body.ji-shop-page .cart_totals > h2 {
	text-align: left;
}

body.ji-shop-page .cart_totals table.shop_table,
body.ji-shop-page #order_review table.shop_table {
	border: 0 !important;
	border-radius: 0;
	margin-bottom: 18px;
}

body.ji-shop-page .cart_totals table.shop_table th,
body.ji-shop-page .cart_totals table.shop_table td,
body.ji-shop-page #order_review table.shop_table th,
body.ji-shop-page #order_review table.shop_table td {
	padding: 10px 0 !important;
	background: transparent !important;
}

body.ji-shop-page .cart_totals table.shop_table td,
body.ji-shop-page #order_review table.shop_table td:last-child,
body.ji-shop-page #order_review table.shop_table th:last-child {
	text-align: right;
}

body.ji-shop-page #order_review table.shop_table thead th {
	font-size: 13px;
}

body.ji-shop-page .cart_totals .order-total th,
body.ji-shop-page .cart_totals .order-total td,
body.ji-shop-page #order_review .order-total th,
body.ji-shop-page #order_review .order-total td {
	border-top: 1px solid var(--ji-text) !important;
}

body.ji-shop-page .wc-proceed-to-checkout {
	padding: 0 !important;
}

body.ji-shop-page .wc-proceed-to-checkout .checkout-button {
	display: flex !important;
	width: 100%;
	margin: 0 !important;
}

body.ji-shop-page .woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Leerer Warenkorb */
.ji-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 22px;
	padding: 44px 24px 36px;
	border: 1px solid var(--ji-border-light);
	border-radius: var(--ji-radius-box);
	background: var(--ji-bg-soft);
	text-align: center;
}

.ji-empty .ji-usp__icon img {
	width: 36px;
	height: 36px;
}

body.ji-shop-page .ji-empty .woocommerce-info,
body.ji-shop-page .ji-empty .cart-empty {
	display: block;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 18px;
	font-weight: var(--ji-semibold);
}

.ji-empty__cats {
	margin: 28px 0 0;
	text-align: center;
}

.ji-empty__cats p {
	margin: 0 0 12px;
	font-size: 14px;
}

.ji-empty__cats ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.ji-empty__cats li {
	margin: 0 !important;
	padding: 0 !important;
}

.ji-empty__cats li::before {
	display: none !important;
}

.ji-empty__cats .ji-pill {
	width: auto;
	min-width: 170px;
}

body.ji-shop-page .return-to-shop {
	margin: 26px 0 0;
	text-align: center;
}

/* --------------------------------------------------------------------------
   Kasse & German Market "Prüfen & Bestellen"
   -------------------------------------------------------------------------- */
body.woocommerce-checkout form.checkout h3:not(#order_review_heading),
body.ji-shop-check .wgm-second-checkout h3 {
	margin: 0 0 16px !important;
	color: var(--ji-red) !important;
	font-size: 20px !important;
}

body.woocommerce-checkout #customer_details .woocommerce-billing-fields,
body.woocommerce-checkout #customer_details .woocommerce-shipping-fields,
body.woocommerce-checkout #customer_details .woocommerce-additional-fields,
body.ji-shop-check .wgm-second-checkout .col2-set > div {
	margin-bottom: 26px;
	padding: 22px 22px 10px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
}

body.woocommerce-checkout #ship-to-different-address {
	font-size: 15px !important;
}

body.woocommerce-checkout #ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: var(--ji-semibold);
}

body.woocommerce-checkout .woocommerce-form-coupon,
body.woocommerce-checkout .woocommerce-form-login {
	margin: 0 0 24px !important;
	padding: 20px 22px !important;
	border: 1px solid var(--ji-border) !important;
	border-radius: var(--ji-radius-box) !important;
}

/* Layout (Standard-Markup von WooCommerce) */
body.woocommerce-checkout form.checkout:has(> #order_review) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 420px;
	grid-template-rows: auto auto 1fr;
	column-gap: 40px;
	align-items: start;
}

body.woocommerce-checkout form.checkout:has(> #order_review) > * {
	grid-column: 1 / -1;
}

body.woocommerce-checkout form.checkout:has(> #order_review) > #customer_details {
	grid-column: 1;
	grid-row: 2 / span 2;
}

body.woocommerce-checkout form.checkout:has(> #order_review) > #order_review_heading {
	grid-column: 2;
	grid-row: 2;
}

body.woocommerce-checkout form.checkout:has(> #order_review) > #order_review {
	grid-column: 2;
	grid-row: 3;
}

body.woocommerce-checkout #customer_details.col2-set > .col-1,
body.woocommerce-checkout #customer_details.col2-set > .col-2 {
	width: 100% !important;
	float: none !important;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
	display: flex;
	flex-wrap: wrap;
	column-gap: 16px;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row {
	flex: 1 1 100%;
	width: auto !important;
	float: none !important;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last {
	flex: 1 1 calc(50% - 8px);
}

/* --------------------------------------------------------------------------
   Kasse mit Teilnehmerdaten (Checkout-Template aus Plugin ji-woocommerce)
   Aufbau: #participants → #checkout-container > #address-container >
           #billing-address + #order-review
   -------------------------------------------------------------------------- */
body.woocommerce-checkout form.checkout h4,
body.woocommerce-checkout form.checkout h4#order_review_heading {
	margin: 0 0 16px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: var(--ji-red) !important;
	font-family: var(--ji-font);
	font-size: 20px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.3 !important;
	text-transform: none !important;
}

/* Trenner des Plugins ersetzen wir durch Abstände */
body.woocommerce-checkout form.checkout > hr,
body.woocommerce-checkout form.checkout > br {
	display: none;
}

/* Teilnehmer-Box (per JS gruppiert, siehe shop.js) */
.ji-participants {
	margin: 0 0 30px;
	padding: 24px 24px 8px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
}

.ji-participants__head {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 20px;
}

.ji-participants__head .ji-usp__icon {
	flex: 0 0 56px;
	width: 56px;
	height: 56px;
}

.ji-participants__head .ji-usp__icon img {
	width: 32px;
	height: 32px;
}

.ji-participants__head h4 {
	margin: 4px 0 2px !important;
}

.ji-participants__intro {
	margin: 0 !important;
	font-size: 14px;
	line-height: 1.45;
}

body.woocommerce-checkout #participants {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

/* Ohne JS: Plugin-Raster beibehalten, nur Felder stylen */
body.woocommerce-checkout #participants:not(.ji-grouped) {
	display: flex !important;
	flex-wrap: wrap;
	gap: 0 12px;
}

body.woocommerce-checkout #participants:not(.ji-grouped) .participant_heading {
	flex: 0 0 100%;
}

.ji-participant-event {
	margin: 0 0 16px;
}

.ji-participant-event__title,
body.woocommerce-checkout #participants h5.participant_heading {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px !important;
	color: var(--ji-text) !important;
	font-family: var(--ji-font);
	font-size: 16px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.35 !important;
	text-transform: none !important;
}

.ji-participant-event__title img {
	width: 22px;
	height: 22px;
	flex: 0 0 22px;
}

.ji-participant {
	display: grid;
	grid-template-columns: 150px 130px minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 14px;
	margin: 0 0 14px;
	padding: 16px 18px 4px;
	border: 1px solid var(--ji-border-light);
	border-radius: var(--ji-radius-box);
	background: var(--ji-bg-soft);
}

.ji-participant__head {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
	margin-bottom: 12px;
}

.ji-participant__head h6,
body.woocommerce-checkout #participants h6.participant_heading {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 !important;
	color: var(--ji-text) !important;
	font-family: var(--ji-font);
	font-size: 15px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.3 !important;
	text-transform: none !important;
}

.ji-participant__head h6.participant_heading {
	width: auto !important;
}

.ji-participant__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--ji-gradient);
	color: #fff;
	font-size: 12px;
	font-weight: var(--ji-semibold);
}

.ji-participant__copy {
	padding: 0;
	border: 0;
	background: none;
	color: var(--ji-red);
	font-family: var(--ji-font);
	font-size: 13px;
	text-decoration: underline;
	cursor: pointer;
}

.ji-participant__copy:hover {
	text-decoration: none;
}

body.woocommerce-checkout #participants .form-row {
	width: auto !important;
	float: none !important;
	margin: 0 0 14px !important;
}

.ji-participant .participant_mail {
	grid-column: 1 / span 2;
}

.ji-participant .participant_comment {
	grid-column: 3 / span 2;
}

body.woocommerce-checkout #participants textarea {
	height: 40px;
	min-height: 40px !important;
	border-radius: 20px !important;
	resize: vertical;
}

body.woocommerce-checkout #participants .participant_heading br,
body.woocommerce-checkout #participants div.participant_heading:empty {
	display: none;
}

/* Rechnungsadresse + Bestellung */
body.woocommerce-checkout #checkout-container {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

body.woocommerce-checkout #address-container {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 420px;
	column-gap: 40px;
	align-items: start;
}

body.woocommerce-checkout #billing-address,
body.woocommerce-checkout #shipping-address,
body.woocommerce-checkout #order-review {
	width: auto !important;
	float: none !important;
	margin: 0 0 26px;
	padding: 24px 24px 10px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
}

body.woocommerce-checkout #order-review {
	position: sticky;
	top: 120px;
	padding-bottom: 24px;
}

body.woocommerce-checkout #billing-address .woocommerce-billing-fields,
body.woocommerce-checkout #billing-address .woocommerce-shipping-fields,
body.woocommerce-checkout #billing-address .woocommerce-additional-fields {
	margin: 0;
	padding: 0;
	border: 0;
}

body.woocommerce-checkout #billing_postcode_field {
	flex: 0 0 150px !important;
}

body.woocommerce-checkout #billing_city_field {
	flex: 1 1 200px !important;
}

body.woocommerce-checkout #billing_company_field,
body.woocommerce-checkout #billing_vat_field {
	flex: 1 1 calc(50% - 8px) !important;
}

body.woocommerce-checkout #billing_company_field {
	margin-top: 8px !important;
	padding-top: 16px !important;
	border-top: 1px solid var(--ji-border-light);
}

body.woocommerce-checkout #billing_vat_field {
	margin-top: 8px !important;
	padding-top: 16px !important;
	border-top: 1px solid var(--ji-border-light);
}

body.woocommerce-checkout #billing_company_field input::placeholder,
body.woocommerce-checkout #billing_vat_field input::placeholder,
body.woocommerce-checkout #additional_order_nr_field input::placeholder {
	font-size: 12px;
}

body.woocommerce-checkout #order-review table.shop_table {
	margin-bottom: 18px;
	border: 0 !important;
	border-radius: 0;
}

body.woocommerce-checkout #order-review table.shop_table th,
body.woocommerce-checkout #order-review table.shop_table td {
	padding: 10px 0 !important;
	background: transparent !important;
}

body.woocommerce-checkout #order-review table.shop_table td.product-total,
body.woocommerce-checkout #order-review table.shop_table tfoot td {
	text-align: right;
}

body.woocommerce-checkout #order-review table.shop_table .order-total th,
body.woocommerce-checkout #order-review table.shop_table .order-total td {
	border-top: 1px solid var(--ji-text) !important;
}

/* Reihenfolge ab 2.3.0: Rechnungsadresse → Teilnehmer (links), Bestellung rechts */
body.woocommerce-checkout #address-container.ji-has-participants {
	grid-template-rows: auto 1fr;
}

body.woocommerce-checkout #address-container.ji-has-participants > #billing-address {
	grid-column: 1;
	grid-row: 1;
}

body.woocommerce-checkout #address-container.ji-has-participants > .ji-participants {
	grid-column: 1;
	grid-row: 2;
}

body.woocommerce-checkout #address-container.ji-has-participants > #order-review {
	grid-column: 2;
	grid-row: 1 / span 2;
	align-self: start;
}

/* In der schmaleren Spalte: 2 Felder je Zeile */
body.woocommerce-checkout #address-container .ji-participant {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.woocommerce-checkout #address-container .ji-participant .participant_mail,
body.woocommerce-checkout #address-container .ji-participant .participant_comment {
	grid-column: 1 / -1;
}

/* "Ich bestelle für ein Unternehmen" */
body.woocommerce-checkout .form-row[hidden],
body.woocommerce-checkout .ji-company-hint[hidden] {
	display: none !important;
}

body.woocommerce-checkout .ji-company-toggle {
	flex: 1 1 100% !important;
	margin: 8px 0 14px !important;
	padding: 14px 16px !important;
	border: 1px solid var(--ji-border-light);
	border-radius: var(--ji-radius-box);
	background: var(--ji-bg-soft);
}

body.woocommerce-checkout .ji-company-toggle label {
	display: inline-flex !important;
	align-items: center;
	gap: 10px;
	margin: 0 !important;
	font-size: 14px !important;
	font-weight: var(--ji-semibold) !important;
	cursor: pointer;
}

body.woocommerce-checkout .ji-company-toggle + #billing_company_field,
body.woocommerce-checkout .ji-company-toggle ~ #billing_vat_field {
	margin-top: 0 !important;
	padding-top: 0 !important;
	border-top: 0 !important;
}

body.woocommerce-checkout .ji-company-hint {
	flex: 1 1 100%;
	margin: -6px 0 16px !important;
	font-size: 12px;
	line-height: 1.45;
	color: var(--ji-text);
}

/* Hilfe-Box (Warenkorb-Summe und Bestellung) */
.ji-help {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin: 20px 0 0;
	padding: 16px 16px 14px;
	border-radius: var(--ji-radius-box);
	background: var(--ji-bg-soft);
	font-family: var(--ji-font);
	color: var(--ji-text);
	text-align: left;
}

.ji-help__icon {
	display: inline-flex;
	flex: 0 0 44px;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 0 1px rgba(210, 10, 17, .12), 0 4px 10px 1px rgba(210, 10, 17, .25);
}

.ji-help__photo {
	position: relative;
	flex: 0 0 64px;
	width: 64px;
	height: 64px;
}

.ji-help__photo > img {
	display: block;
	width: 64px !important;
	height: 64px !important;
	border: 3px solid #fff;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 0 0 1px rgba(210, 10, 17, .12), 0 4px 12px 1px rgba(210, 10, 17, .28);
}

.ji-help__badge {
	position: absolute;
	right: -2px;
	bottom: -2px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border: 2px solid #fff;
	border-radius: 50%;
	background: var(--ji-gradient);
}

.ji-help__badge img {
	width: 13px;
	height: 13px;
	filter: brightness(0) invert(1);
}

.ji-help.has-photo {
	align-items: center;
}

.ji-help__person {
	margin: 0 0 2px !important;
	font-size: 13px;
	line-height: 1.4;
}

.ji-help__title {
	margin: 0 0 2px !important;
	font-size: 15px;
	font-weight: var(--ji-semibold);
}

.ji-help__text {
	margin: 0 0 4px !important;
	font-size: 13px;
	line-height: 1.4;
}

.ji-help__link {
	display: block;
	color: var(--ji-red) !important;
	font-size: 15px;
	font-weight: var(--ji-semibold);
	text-decoration: none !important;
}

.ji-help__link:hover {
	text-decoration: underline !important;
}

/* Nur eine Zahlart: Radio-Button ausgeblendet → Karte trotzdem als gewählt zeigen */
body.ji-shop-page #payment ul.payment_methods li:only-child {
	border-color: var(--ji-red);
}

body.ji-shop-page #payment ul.payment_methods li input[style*="display: none"] + label {
	padding-left: 0;
}

/* Gutschein-Hinweis (The7) */
body.ji-shop-page .wc-coupon-wrap .woocommerce-info .close-message {
	display: none;
}

body.ji-shop-page .wc-coupon-wrap .woocommerce-info a {
	margin-left: 4px;
}

body.ji-shop-page .wc-coupon-wrap .form-coupon-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

body.ji-shop-page .wc-coupon-wrap .form-coupon-wrap .coupon {
	flex: 1 1 240px;
}

body.ji-shop-page .wc-coupon-wrap form.checkout_coupon {
	margin: 0 0 24px !important;
	padding: 18px 20px !important;
	border: 1px solid var(--ji-border) !important;
	border-radius: var(--ji-radius-box) !important;
}

/* Zahlungsarten */
body.ji-shop-page #payment {
	background: transparent !important;
	border-radius: 0 !important;
}

body.ji-shop-page #payment ul.payment_methods {
	margin: 0 0 16px !important;
	padding: 0 !important;
	border: 0 !important;
	list-style: none !important;
}

body.ji-shop-page #payment ul.payment_methods li {
	margin: 0 0 10px !important;
	padding: 12px 16px !important;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
	list-style: none !important;
	transition: border-color .2s ease;
}

body.ji-shop-page #payment ul.payment_methods li::before {
	display: none !important;
}

body.ji-shop-page #payment ul.payment_methods li:has(input:checked) {
	border-color: var(--ji-red);
}

body.ji-shop-page #payment ul.payment_methods li > label {
	display: inline;
	font-size: 14px;
	font-weight: var(--ji-semibold);
	cursor: pointer;
}

body.ji-shop-page #payment ul.payment_methods li img {
	max-height: 22px;
	vertical-align: middle;
	margin-left: 6px;
}

body.ji-shop-page #payment div.payment_box {
	margin: 10px 0 0 !important;
	padding: 12px 14px !important;
	border-radius: 8px !important;
	background: var(--ji-bg-soft) !important;
	color: var(--ji-text) !important;
	font-size: 13px;
}

body.ji-shop-page #payment div.payment_box::before {
	display: none !important;
}

body.ji-shop-page #payment div.form-row.place-order,
body.ji-shop-page .wgm-place-order.form-row {
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
}

body.ji-shop-page #place_order,
body.ji-shop-page .wgm-place-order.button {
	width: 100% !important;
	min-height: 46px !important;
	margin-top: 12px !important;
	border-radius: 23px !important;
	font-size: 15px !important;
}

body.ji-shop-page .woocommerce-terms-and-conditions-wrapper,
body.ji-shop-page .woocommerce-privacy-policy-text,
body.ji-shop-page .wgm-checkbox,
body.ji-shop-page .checkout_hints {
	font-size: 13px;
	line-height: 1.5;
}

body.ji-shop-page .woocommerce-terms-and-conditions-wrapper a,
body.ji-shop-page .woocommerce-privacy-policy-text a,
body.ji-shop-page .checkout_hints a {
	color: var(--ji-red);
}

/* German Market: Prüfseite */
body.ji-shop-check .wgm-second-checkout .col2-set {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px;
	margin-bottom: 10px;
}

body.ji-shop-check .wgm-second-checkout .col2-set > div {
	width: auto !important;
	float: none !important;
}

/* Prüfseite: Adresstabelle bleibt in der Box (2.30.3) – lange E-Mail-Adressen brechen um */
body.ji-shop-check .wgm-second-checkout table.review_order_billing {
	width: 100% !important;
	margin: 0 0 12px;
	table-layout: fixed;
	border-collapse: collapse;
	font-size: 14px;
}

body.ji-shop-check .wgm-second-checkout table.review_order_billing th,
body.ji-shop-check .wgm-second-checkout table.review_order_billing td {
	padding: 8px 10px 8px 0 !important;
	border: 0 !important;
	border-top: 1px solid var(--ji-border-light) !important;
	vertical-align: top;
	text-align: left;
	overflow-wrap: anywhere;
}

body.ji-shop-check .wgm-second-checkout table.review_order_billing tr:first-child > * {
	border-top: 0 !important;
}

body.ji-shop-check .wgm-second-checkout table.review_order_billing tr > :first-child {
	width: 40%;
	color: var(--ji-text);
	font-weight: var(--ji-semibold);
	overflow-wrap: break-word;
	hyphens: auto;
}

@media (max-width: 480px) {
	body.ji-shop-check .wgm-second-checkout table.review_order_billing tr {
		display: block;
		padding: 8px 0;
		border-top: 1px solid var(--ji-border-light);
	}

	body.ji-shop-check .wgm-second-checkout table.review_order_billing tr:first-child {
		border-top: 0;
	}

	body.ji-shop-check .wgm-second-checkout table.review_order_billing th,
	body.ji-shop-check .wgm-second-checkout table.review_order_billing td {
		display: block;
		width: auto !important;
		padding: 0 !important;
		border-top: 0 !important;
	}

	body.ji-shop-check .wgm-second-checkout table.review_order_billing tr > :first-child {
		font-size: 13px;
	}
}

body.ji-shop-check .wgm-second-checkout .col2-set::before,
body.ji-shop-check .wgm-second-checkout .col2-set::after {
	display: none;
}

body.ji-shop-check .wgm-second-checkout-user-note,
body.ji-shop-check .wgm_second_checkout_payment {
	margin-bottom: 20px;
	padding: 16px 20px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: var(--ji-bg-soft);
}

/* --------------------------------------------------------------------------
   Bestätigung (Danke-Seite)
   -------------------------------------------------------------------------- */
body.ji-shop-page .woocommerce-order .wc-complete-wrap h2:first-child,
body.ji-shop-page .woocommerce-order > .woocommerce-thankyou-order-received {
	margin: 0 0 26px !important;
}

body.ji-shop-page .woocommerce-thankyou-order-received {
	display: flex !important;
	align-items: center;
	gap: 22px;
	margin: 0 !important;
	padding: 26px 28px !important;
	border: 1px solid var(--ji-border-light) !important;
	border-left: 1px solid var(--ji-border-light) !important;
	border-radius: var(--ji-radius-box) !important;
	background: var(--ji-bg-soft) !important;
	color: var(--ji-text) !important;
	font-size: 18px !important;
	font-weight: var(--ji-semibold);
	line-height: 1.4;
}

body.ji-shop-page .woocommerce-thankyou-order-received::before {
	content: "" !important;
	display: block !important;
	position: static !important;
	flex: 0 0 64px;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #fff url("icons/check.svg") no-repeat center / 30px 23px;
	box-shadow:
		0 0 0 4px #fff,
		0 0 0 5px rgba(210, 10, 17, .12),
		0 6px 14px 3px rgba(210, 10, 17, .32);
}

/* Kacheln so breit wie ihr Inhalt, Rest wird gleichmäßig verteilt – kein Umbruch in Datum/E-Mail */
body.ji-shop-page ul.woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 36px !important;
	padding: 0 !important;
	list-style: none !important;
}

body.ji-shop-page ul.woocommerce-order-overview li {
	flex: 1 1 auto;
	max-width: 100%;
	margin: 0 !important;
	padding: 14px 16px !important;
	border: 1px solid var(--ji-border) !important;
	border-radius: var(--ji-radius-box);
	background: #fff;
	font-size: 12px !important;
	line-height: 1.4;
	text-transform: none !important;
	float: none !important;
}

/* Schmale Bildschirme: E-Mail darf – nur vor dem "@" (<wbr>) – umbrechen */
@media (max-width: 560px) {
	body.ji-shop-page ul.woocommerce-order-overview li.woocommerce-order-overview__email {
		flex-basis: 100%;
	}

	body.ji-shop-page ul.woocommerce-order-overview li.woocommerce-order-overview__email strong {
		white-space: normal;
	}
}

body.ji-shop-page ul.woocommerce-order-overview li::before {
	display: none !important;
}

body.ji-shop-page ul.woocommerce-order-overview li strong {
	display: block;
	margin-top: 4px;
	color: var(--ji-text);
	font-size: 15px !important;
	font-weight: var(--ji-semibold);
	white-space: nowrap;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
}

body.ji-shop-page .woocommerce-table--order-details th:last-child,
body.ji-shop-page .woocommerce-table--order-details td:last-child {
	text-align: right !important;
}

body.woocommerce-checkout #ship-to-different-address label span {
	color: var(--ji-text);
}

body.ji-shop-page ul.woocommerce-order-overview li.total strong .amount {
	color: var(--ji-red);
}

body.ji-shop-page .woocommerce-order-details,
body.ji-shop-page .woocommerce-customer-details {
	margin-bottom: 30px;
}

body.ji-shop-page .woocommerce-customer-details .col2-set,
body.ji-shop-page .woocommerce-customer-details .woocommerce-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px;
}

body.ji-shop-page .woocommerce-customer-details .col2-set::before,
body.ji-shop-page .woocommerce-customer-details .col2-set::after {
	display: none;
}

body.ji-shop-page .woocommerce-customer-details .col2-set > div,
body.ji-shop-page .woocommerce-customer-details .woocommerce-column {
	width: auto !important;
	float: none !important;
}

body.ji-shop-page .woocommerce address,
body.ji-shop-page .woocommerce-customer-details address {
	margin: 0;
	padding: 18px 20px !important;
	border: 1px solid var(--ji-border) !important;
	border-radius: var(--ji-radius-box) !important;
	background: #fff;
	font-style: normal;
	font-size: 14px;
	line-height: 1.6;
}

/* Bankverbindung (BACS) */
body.ji-shop-page .woocommerce-bacs-bank-details {
	margin: 0 0 30px;
	padding: 20px 22px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
}

body.ji-shop-page .woocommerce-bacs-bank-details ul.bacs_details {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
}

/* --------------------------------------------------------------------------
   Mein Konto
   -------------------------------------------------------------------------- */
body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 257px minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}

/* The7-Clearfix (::before/::after) würde sonst zu Grid-Zellen und verschiebt die Spalten */
body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::before,
body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::after {
	display: none !important;
	content: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 !important;
	padding: 18px 10px 20px !important;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
	list-style: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	list-style: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li::before {
	display: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 33px;
	padding: 4px 16px !important;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-pill);
	background: #fff;
	color: var(--ji-text) !important;
	font-size: 14px;
	line-height: 1.2;
	text-align: center;
	text-decoration: none !important;
	transition: border-color .2s ease, color .2s ease;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	border-color: var(--ji-red);
	color: var(--ji-red) !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a {
	border-style: dashed !important;
}

body.woocommerce-account .woocommerce-MyAccount-content {
	font-size: 15px;
	line-height: 1.6;
}

body.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
	padding: 20px 22px;
	border: 1px solid var(--ji-border-light);
	border-radius: var(--ji-radius-box);
	background: var(--ji-bg-soft);
}

body.woocommerce-account .woocommerce-MyAccount-content a:not(.button) {
	color: var(--ji-red);
}

body.woocommerce-account .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px;
}

body.woocommerce-account .woocommerce-Addresses::before,
body.woocommerce-account .woocommerce-Addresses::after {
	display: none;
}

body.woocommerce-account .woocommerce-Address {
	width: auto !important;
	float: none !important;
}

body.woocommerce-account .woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

body.woocommerce-account .woocommerce-Address-title a.edit {
	font-size: 13px;
	color: var(--ji-red);
}

body.woocommerce-account .woocommerce table.my_account_orders a.button,
body.woocommerce-account .woocommerce table.woocommerce-orders-table a.button {
	min-height: 28px !important;
	margin: 2px 4px 2px 0;
	padding: 4px 14px !important;
	font-size: 12px !important;
}

body.woocommerce-account fieldset {
	margin: 20px 0;
	padding: 20px 22px 8px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
}

body.woocommerce-account fieldset legend {
	padding: 0 8px;
	color: var(--ji-red);
	font-weight: var(--ji-semibold);
}

/* Anmeldung / Registrierung */
body.woocommerce-account #customer_login {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
}

body.woocommerce-account #customer_login::before,
body.woocommerce-account #customer_login::after {
	display: none;
}

body.woocommerce-account #customer_login > div {
	width: auto !important;
	float: none !important;
	padding: 26px 26px 20px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
}

body.woocommerce-account #customer_login form.login,
body.woocommerce-account #customer_login form.register,
body.woocommerce-account form.woocommerce-form-login:not(#customer_login form),
body.woocommerce-account form.lost_reset_password {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

body.woocommerce-account form.woocommerce-form-login:not(#customer_login form),
body.woocommerce-account form.lost_reset_password {
	max-width: 520px;
	padding: 26px !important;
	border: 1px solid var(--ji-border) !important;
	border-radius: var(--ji-radius-box) !important;
}

body.woocommerce-account .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

body.woocommerce-account .woocommerce-LostPassword a {
	color: var(--ji-red);
	font-size: 13px;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 991px) {
	body.woocommerce-checkout #address-container {
		display: block !important;
	}

	body.woocommerce-checkout #address-container.ji-has-participants {
		display: flex !important;
		flex-direction: column;
	}

	body.woocommerce-checkout #address-container.ji-has-participants > #order-review {
		order: 3;
	}

	body.woocommerce-checkout #order-review {
		position: static;
	}

	.ji-participant {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ji-participant .participant_mail,
	.ji-participant .participant_comment {
		grid-column: 1 / -1;
	}

	body.woocommerce-cart .woocommerce-cart-wrap {
		display: block !important;
	}

	body.woocommerce-cart .woocommerce-cart-wrap .cart_totals {
		position: static;
		margin-top: 26px;
	}

	body.woocommerce-cart .woocommerce:has(> .woocommerce-cart-form),
	body.woocommerce-checkout form.checkout:has(> #order_review) {
		display: block;
	}

	body.woocommerce-checkout form.checkout:has(> #order_review) > #order_review_heading {
		margin-top: 10px !important;
	}

	.ji-single__top {
		grid-template-columns: 340px minmax(0, 1fr);
		column-gap: 30px;
	}

	body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation ul {
		flex-direction: row;
		flex-wrap: wrap;
		padding: 12px !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation li a {
		padding: 4px 18px !important;
	}
}

@media (max-width: 778px) {
	.ji-participants {
		padding: 18px 16px 4px;
	}

	.ji-participants__head .ji-usp__icon {
		display: none;
	}

	.ji-participant {
		grid-template-columns: minmax(0, 1fr);
		padding: 14px 14px 2px;
	}

	body.woocommerce-checkout #billing-address,
	body.woocommerce-checkout #order-review {
		padding: 18px 16px 8px;
	}

	body.woocommerce-checkout #billing_company_field,
	body.woocommerce-checkout #billing_vat_field {
		flex: 1 1 100% !important;
	}

	body.woocommerce-checkout #billing_vat_field {
		margin-top: 0 !important;
		padding-top: 0 !important;
		border-top: 0;
	}

	.ji-page-head {
		padding: 30px 0 24px;
	}

	.ji-page-head__inner {
		flex-direction: column;
		align-items: flex-start;
	}

	.ji-steps__item:not(.is-current) > a,
	.ji-steps__item:not(.is-current) > span:not(.ji-steps__num) {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(1px, 1px, 1px, 1px);
	}

	.ji-steps__item + .ji-steps__item {
		padding-left: 30px !important;
	}

	.ji-steps__item + .ji-steps__item > .ji-steps__num::before {
		left: 6px;
		width: 18px;
	}

	.ji-single__top {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 26px;
	}

	.ji-single__media {
		padding: 20px;
	}

	.ji-single__media .woocommerce-product-gallery__image img {
		max-height: 320px;
	}

	.ji-single__title {
		font-size: 24px !important;
	}

	.ji-buybox--single {
		max-width: none;
		padding: 18px;
	}

	.ji-single .woocommerce-Tabs-panel {
		padding: 22px 18px !important;
	}

	.ji-single table.shop_attributes th {
		width: 40%;
	}

	body.ji-shop-page section.related > h2,
	body.ji-shop-page section.up-sells > h2,
	body.ji-shop-page .cross-sells > h2 {
		font-size: 21px !important;
	}

	.ji-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}

	.ji-card__media {
		height: 200px;
	}
}

@media (max-width: 560px) {
	.ji-card-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Responsive-Tabellen von WooCommerce */
	body.ji-shop-page .woocommerce table.shop_table_responsive thead {
		display: none;
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive,
	body.ji-shop-page .woocommerce table.shop_table_responsive tbody,
	body.ji-shop-page .woocommerce table.shop_table_responsive tbody tr {
		display: block;
		width: 100%;
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tbody th {
		display: none;
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tr td.product-thumbnail {
		display: none !important;
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tr td.product-name {
		display: block !important;
		text-align: left !important;
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tr td.product-name::before {
		display: none;
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tr td.actions::before {
		display: none;
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tbody tr + tr {
		border-top: 1px solid var(--ji-border);
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tr td {
		border-top: 0 !important;
		padding: 8px 16px !important;
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tr td[data-title]::before {
		content: attr(data-title) ": ";
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tr td.product-remove {
		justify-content: flex-end;
		padding-top: 14px !important;
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tr td.product-name {
		font-size: 16px;
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tr td {
		display: flex !important;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: 4px 10px;
		min-width: 0;
		text-align: right !important;
	}

	body.ji-shop-page .woocommerce table.shop_table_responsive tr td::before {
		font-weight: var(--ji-semibold);
		text-align: left;
	}

	body.woocommerce-cart table.cart .product-thumbnail {
		display: none !important;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart td.actions {
		display: block !important;
		text-align: left !important;
		padding: 16px !important;
	}

	body.woocommerce-cart table.cart td.actions .coupon {
		display: flex;
		width: 100%;
		margin-bottom: 12px;
	}

	body.woocommerce-cart table.cart td.actions .coupon .input-text {
		flex: 1;
		width: auto !important;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart td.actions > .button {
		float: none;
		width: 100% !important;
	}

	body.ji-shop-check .wgm-second-checkout .col2-set,
	body.ji-shop-page .woocommerce-customer-details .col2-set,
	body.ji-shop-page .woocommerce-customer-details .woocommerce-columns,
	body.woocommerce-account .woocommerce-Addresses,
	body.woocommerce-account #customer_login {
		grid-template-columns: minmax(0, 1fr);
	}

	body.ji-shop-page .woocommerce-thankyou-order-received {
		flex-direction: column;
		align-items: flex-start;
		font-size: 16px !important;
	}
}

/* ==========================================================================
   Detailseite "Programm" (ab 2.4.0) – z. B. Zero to Hero
   ========================================================================== */
.ji-program__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	column-gap: 50px;
	align-items: start;
}

.ji-program__main {
	min-width: 0;
}

.ji-program__aside {
	position: sticky;
	top: 110px;
}

.ji-program__media {
	position: relative;
	margin: 0 0 26px;
	overflow: hidden;
	border-radius: var(--ji-radius-box);
	background: #262626;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}

.ji-program__media img,
.ji-program__image {
	display: block;
	width: 100% !important;
	height: auto !important;
	margin: 0 !important;
}

.ji-program__head .ji-single__title {
	font-size: 32px !important;
}

.ji-program__intro {
	font-size: 17px;
	line-height: 1.5;
}

.ji-program__intro p {
	margin: 0 0 12px !important;
}

/* Häkchen-Listen */
.ji-program__intro ul,
.ji-program__section ul,
.ji-package__list {
	margin: 0 0 14px !important;
	padding: 0 !important;
	list-style: none !important;
}

.ji-program__intro li,
.ji-program__section li,
.ji-package__list li {
	position: relative;
	margin: 0 0 10px !important;
	padding: 0 0 0 32px !important;
	list-style: none !important;
	line-height: 1.5;
}

.ji-program__intro li::before,
.ji-program__section li::before,
.ji-package__list li::before {
	content: "" !important;
	position: absolute;
	left: 0;
	top: 2px;
	width: 20px;
	height: 20px;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: url("icons/check-red.svg") no-repeat center / contain !important;
	transform: none !important;
}

.ji-program__section.is-excluded li::before,
.ji-package__list li.is-no::before {
	background-image: url("icons/x-grey.svg") !important;
}

.ji-program__section.is-excluded li,
.ji-package__list li.is-no {
	color: #777;
}

.ji-program__section.is-notes li::before {
	background-image: url("icons/info.svg") !important;
}

/* Kapitel-Navigation */
.ji-program__nav {
	position: sticky;
	top: var(--ji-sticky-offset, 70px);
	z-index: 20;
	margin: 30px 0 10px;
	padding: 10px 0;
	border-bottom: 1px solid var(--ji-border-light);
	background: rgba(255, 255, 255, .96);
	backdrop-filter: blur(6px);
}

.ji-program__nav ul {
	display: flex;
	gap: 8px;
	margin: 0 !important;
	padding: 0 0 2px !important;
	overflow-x: auto;
	list-style: none !important;
	scrollbar-width: thin;
}

.ji-program__nav li {
	flex: 0 0 auto;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.ji-program__nav li::before {
	display: none !important;
}

.ji-program__nav a {
	display: inline-flex;
	align-items: center;
	height: 32px;
	padding: 0 14px;
	border: 1px solid var(--ji-border);
	border-radius: 16px;
	background: #fff;
	color: var(--ji-text) !important;
	font-size: 13px;
	font-weight: var(--ji-semibold);
	white-space: nowrap;
	text-decoration: none !important;
	transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}

.ji-program__nav a:hover,
.ji-program__nav a.is-active {
	border-color: var(--ji-red);
	color: var(--ji-red) !important;
}

.ji-program__nav a.is-active {
	background: #fdf1f1;
}

/* Abschnitte */
.ji-program__section {
	margin: 0;
	padding: 40px 0 6px;
	scroll-margin-top: calc(var(--ji-sticky-offset, 70px) + 70px);
	font-size: 16px;
	line-height: 1.6;
}

.ji-program__section + .ji-program__section {
	border-top: 1px solid var(--ji-border-light);
}

.ji-program__h2 {
	position: relative;
	margin: 0 0 20px !important;
	padding: 0 0 14px !important;
	color: var(--ji-red) !important;
	font-family: var(--ji-font) !important;
	font-size: 24px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.3 !important;
	text-transform: none !important;
}

.ji-program__h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 60px;
	height: 1px;
	background: var(--ji-text);
}

.ji-program__content > p {
	margin: 0 0 14px !important;
}

.ji-program__content a {
	color: var(--ji-red);
}

/* Leistungsumfang: zweispaltig ab genügend Breite */
.ji-program__section.is-scope ul {
	columns: 2;
	column-gap: 36px;
}

.ji-program__section.is-scope li {
	break-inside: avoid;
}

/* Ergebnis-Liste als Kacheln */
.ji-program__section.is-outcome ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.ji-program__section.is-outcome li {
	margin: 0 !important;
	padding: 14px 16px 14px 46px !important;
	border: 1px solid var(--ji-border-light);
	border-radius: var(--ji-radius-box);
	background: var(--ji-bg-soft);
}

.ji-program__section.is-outcome li::before {
	left: 16px;
	top: 16px;
}

/* Hinweise / Zertifikat als graue Box */
.ji-program__section.is-notes .ji-program__content,
.ji-program__section.is-cert .ji-program__content {
	padding: 20px 22px 8px;
	border-radius: var(--ji-radius-box);
	background: var(--ji-bg-soft);
	font-size: 14px;
}

.ji-program__section.is-cert .ji-program__content {
	position: relative;
	padding-left: 86px;
	padding-bottom: 12px;
}

.ji-program__section.is-cert .ji-program__content::before {
	content: "";
	position: absolute;
	left: 20px;
	top: 20px;
	width: 48px;
	height: 48px;
	background: url("icons/certificate.svg") no-repeat center / contain;
}

/* Ablauf-Tabelle */
.ji-program__section table {
	width: 100%;
	margin: 0 0 14px;
	border: 1px solid var(--ji-border) !important;
	border-collapse: separate !important;
	border-spacing: 0;
	border-radius: var(--ji-radius-box);
	overflow: hidden;
	font-size: 14px;
}

.ji-program__section th,
.ji-program__section td {
	padding: 12px 14px !important;
	border: 0 !important;
	border-top: 1px solid var(--ji-border-light) !important;
	background: #fff;
	text-align: left;
	vertical-align: top;
}

.ji-program__section thead th {
	border-top: 0 !important;
	background: var(--ji-bg-soft);
	font-size: 13px;
	font-weight: var(--ji-semibold);
}

.ji-program__section.is-schedule tbody td:first-child {
	width: 48px;
	text-align: center;
}

.ji-program__section.is-schedule tbody td:first-child:not(:empty) {
	color: #fff;
}

.ji-program__section.is-schedule tbody td:first-child {
	position: relative;
	font-weight: var(--ji-semibold);
}

.ji-program__section.is-schedule tbody tr:not(:last-child) td:first-child {
	background:
		radial-gradient(circle at 50% 22px, #d20a11 13px, transparent 14px) no-repeat,
		#fff;
}

.ji-program__section.is-schedule tbody tr:last-child td:first-child {
	color: var(--ji-text);
}

.ji-program__section.is-schedule tbody td:nth-child(2) {
	white-space: nowrap;
	font-weight: var(--ji-semibold);
}

.ji-program__section.is-schedule tbody td:last-child {
	color: var(--ji-text);
}

/* Paketvergleich */
.ji-packages {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 16px;
	align-items: stretch;
}

.ji-package {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 24px 20px 20px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
	font-size: 14px;
}

.ji-package.is-current {
	border: 2px solid var(--ji-red);
	box-shadow: 0 8px 22px rgba(210, 10, 17, .12);
}

.ji-package__flag {
	position: absolute;
	top: -12px;
	left: 20px;
	padding: 3px 12px;
	border-radius: 12px;
	background: var(--ji-gradient);
	color: #fff;
	font-size: 11px;
	font-weight: var(--ji-semibold);
	letter-spacing: .03em;
	text-transform: uppercase;
}

.ji-package__flag.is-top {
	background: #4d4d4d;
}

.ji-package__name {
	margin: 0 0 6px !important;
	padding: 0 !important;
	font-family: var(--ji-font) !important;
	font-size: 18px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.3 !important;
	color: var(--ji-text) !important;
	text-transform: none !important;
}

.ji-package__price {
	margin: 0 0 14px !important;
	color: var(--ji-red);
	font-size: 22px;
	font-weight: var(--ji-semibold);
}

.ji-package__price .amount {
	color: var(--ji-red) !important;
}

.ji-program__media .ji-date-badge {
	left: auto;
	right: 14px;
}

.ji-package__price small {
	display: block;
	margin-top: 2px;
	color: var(--ji-text);
	font-size: 12px;
	font-weight: 400;
}

.ji-package__list li {
	margin-bottom: 8px !important;
	padding-left: 28px !important;
	font-size: 13px;
	line-height: 1.45;
}

.ji-package__list li::before {
	width: 18px;
	height: 18px;
	top: 1px;
}

.ji-package__cta {
	margin-top: auto;
	padding-top: 10px;
}

.ji-package__cta .ji-pill {
	width: 100%;
}

/* Add-ons */
.ji-addons {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ji-addon {
	display: grid;
	grid-template-columns: 140px minmax(0, 1fr) auto;
	gap: 18px;
	align-items: center;
	padding: 14px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
}

.ji-addon__media img {
	display: block;
	width: 140px !important;
	height: auto !important;
	margin: 0 !important;
	border-radius: 8px;
}

.ji-addon__title {
	margin: 0 0 4px !important;
	padding: 0 !important;
	font-family: var(--ji-font) !important;
	font-size: 16px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.3 !important;
	text-transform: none !important;
}

.ji-addon__title a {
	color: var(--ji-text) !important;
	text-decoration: none !important;
}

.ji-addon__title a:hover {
	color: var(--ji-red) !important;
}

.ji-addon__text {
	margin: 0 !important;
	font-size: 13px;
	line-height: 1.45;
}

.ji-addon__buy {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
	min-width: 170px;
	text-align: right;
}

.ji-addon__price {
	margin: 0 !important;
	color: var(--ji-red);
	font-size: 16px;
	font-weight: var(--ji-semibold);
}

.ji-addon__price .amount {
	color: var(--ji-red) !important;
}

body.ji-shop-page .ji-addon .button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: 170px;
	min-height: 33px;
	margin: 0 !important;
	padding: 6px 18px !important;
	border: 0 !important;
	border-radius: var(--ji-radius-pill) !important;
	background: var(--ji-gradient) !important;
	color: #fff !important;
	font-size: 13px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.2 !important;
	text-transform: none !important;
	text-decoration: none !important;
}

body.ji-shop-page .ji-addon .button.product_type_external {
	border: 1px solid var(--ji-text) !important;
	background: transparent !important;
	color: var(--ji-text) !important;
}

body.ji-shop-page .ji-addon .button.product_type_external:hover {
	border-color: var(--ji-red) !important;
	background: var(--ji-red) !important;
	color: #fff !important;
}

body.ji-shop-page .ji-addon .added_to_cart {
	font-size: 12px;
	color: var(--ji-red);
}

/* Kaufbox rechts */
.ji-buybox--program {
	max-width: none;
	margin-top: 0;
	border-radius: var(--ji-radius-box);
	box-shadow: 0 10px 28px rgba(0, 0, 0, .08);
}

.ji-program__buytitle {
	order: 0 !important;
	margin: 0 0 10px !important;
	font-size: 18px;
	font-weight: var(--ji-semibold);
	line-height: 1.3;
}

.ji-buybox--program .ji-price .price {
	font-size: 26px !important;
}

.ji-program__note {
	order: 3 !important;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 2px 0 6px !important;
	padding: 3px 10px;
	border-radius: 12px;
	background: var(--ji-bg-soft);
	border: 1px solid var(--ji-border-light);
	font-size: 12px;
	font-weight: var(--ji-semibold);
}

.ji-buybox--program form.cart:not(.variations_form) .single_add_to_cart_button {
	flex: 1 1 auto;
	min-width: 0 !important;
}

.ji-program__aside .ji-help {
	margin-top: 16px;
}

.ji-program__reviews {
	margin-top: 50px;
}

.ji-program__mobilebar {
	display: none;
}

@media (max-width: 991px) {
	.ji-program__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Kaufbox direkt unter den Kopf ziehen */
	.ji-program__main {
		display: contents;
	}

	.ji-program__main > * {
		order: 3;
	}

	.ji-program__head {
		order: 1 !important;
	}

	.ji-program__aside {
		order: 2;
		position: static;
		margin: 20px 0 10px;
	}

	.ji-program__section.is-outcome ul {
		grid-template-columns: minmax(0, 1fr);
	}

	.ji-program__section.is-scope ul {
		columns: 1;
	}

	.ji-program__mobilebar {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 60;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		background: #fff;
		box-shadow: 0 -4px 16px rgba(0, 0, 0, .12);
		transform: translateY(110%);
		transition: transform .25s ease;
	}

	.ji-program__mobilebar.is-visible {
		transform: none;
	}

	.ji-program__mobileprice {
		color: var(--ji-red);
		font-size: 18px;
		font-weight: var(--ji-semibold);
	}

	.ji-program__mobileprice .amount {
		color: var(--ji-red) !important;
	}

	.ji-program__mobilebar .ji-btn-cart {
		min-width: 150px;
		height: 40px;
		border-radius: 20px !important;
		text-decoration: none !important;
	}
}

@media (max-width: 778px) {
	.ji-program__head .ji-single__title {
		font-size: 24px !important;
	}

	.ji-program__nav {
		top: var(--ji-sticky-offset-mobile, 0px);
		margin-left: calc(-1 * var(--ji-gutter));
		margin-right: calc(-1 * var(--ji-gutter));
		padding-left: var(--ji-gutter);
		padding-right: var(--ji-gutter);
	}

	.ji-program__section.is-schedule table,
	.ji-program__section.is-schedule tbody,
	.ji-program__section.is-schedule tr {
		display: block;
	}

	.ji-program__section.is-schedule thead {
		display: none;
	}

	.ji-program__section.is-schedule tr {
		display: grid;
		grid-template-columns: 48px minmax(0, 1fr);
		border-top: 1px solid var(--ji-border-light);
	}

	.ji-program__section.is-schedule tr:first-child {
		border-top: 0;
	}

	.ji-program__section.is-schedule td {
		border-top: 0 !important;
		padding: 4px 12px !important;
	}

	.ji-program__section.is-schedule td:first-child {
		grid-row: 1 / span 3;
		padding-top: 12px !important;
	}

	.ji-program__section.is-schedule td:nth-child(2) {
		padding-top: 12px !important;
		font-size: 12px;
	}

	.ji-program__section.is-schedule td:last-child {
		padding-bottom: 12px !important;
		font-size: 13px;
	}

	.ji-program__section.is-cert .ji-program__content {
		padding-left: 22px;
		padding-top: 80px;
	}

	.ji-addon {
		grid-template-columns: 96px minmax(0, 1fr);
	}

	.ji-addon__media img {
		width: 96px !important;
	}

	.ji-addon__buy {
		grid-column: 1 / -1;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		min-width: 0;
	}

	body.ji-shop-single .ji-program ~ *,
	body.ji-shop-single #footer {
		padding-bottom: 0;
	}
}

/* The7: klebender Kopf auf dem Handy – Kapitel-Leiste darunter einrasten */
body.sticky-mobile-header {
	--ji-sticky-offset-mobile: 60px;
}

/* 2.4.1 – Warenkorb: Produktname bekommt auf Desktop genug Breite (lange Programm-Namen) */
@media (min-width: 769px) {
	body.woocommerce-cart table.cart td.product-name {
		width: 32%;
	}
}

/* 2.6.0 – "Nicht im … enthalten": Bezugsquelle als Kennzeichnung */
.ji-excl__intro {
	margin: 0 0 10px !important;
	color: #777;
}

.ji-excl__what {
	color: var(--ji-text);
}

.ji-excl__where {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 9px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-pill);
	font-size: 12px;
	color: var(--ji-text);
	white-space: nowrap;
	vertical-align: 1px;
}

/* 2.6.0 – Firmenbestellung fest gesetzt (Angebot nur für Unternehmen) */
.ji-company-toggle.is-locked label {
	cursor: default;
}

.ji-company-toggle.is-locked input {
	opacity: .55;
	pointer-events: none;
}

/* Einheit im Warenkorb unter dem Mengenfeld */
body.woocommerce-cart table.cart td.product-quantity .ji-qty-unit {
	display: block;
	margin: 6px 0 0;
	font-size: 12px;
	color: #777;
	text-align: center;
}

/* ---------------------------------------------------------------
 * 2.7.0 – Feedback Fabian Hueber (Mediendesign)
 * ------------------------------------------------------------- */

/* Trennstriche in Rot */
body.ji-shop-page section.related > h2::after,
body.ji-shop-page section.up-sells > h2::after,
body.ji-shop-page .cross-sells > h2::after,
.ji-program__h2::after {
	height: 2px;
	background: var(--ji-red);
}

/* Häkchen: grün, ohne flächigen Kreis */
.ji-program__intro li::before,
.ji-program__section li::before,
.ji-package__list li::before {
	background-image: url("icons/check-green.svg") !important;
}

.ji-program__section.is-excluded li::before,
.ji-package__list li.is-no::before {
	background-image: url("icons/x-grey.svg") !important;
}

/* "Gut zu wissen": normale Aufzählungspunkte statt i-Icons */
.ji-program__section.is-notes li {
	padding-left: 20px !important;
}

.ji-program__section.is-notes li::before {
	top: .62em !important;
	left: 4px !important;
	width: 6px !important;
	height: 6px !important;
	border-radius: 50% !important;
	background: #8a8a8a !important;
}

/* Listen mit fettem Anfang: kleine Zwischenüberschrift, Text darunter */
.ji-program__section li.ji-li-titled {
	margin-bottom: 16px !important;
}

.ji-li__title {
	display: block;
	margin-bottom: 2px;
	color: var(--ji-text);
	font-size: 15px;
	font-weight: var(--ji-semibold);
	line-height: 1.4;
}

.ji-li__text {
	display: block;
	color: var(--ji-text);
}

/* Einheitliche Fließtexte auf der Programm-Seite: 16 px / 1,6, gleiche Abstände */
.ji-program__intro,
.ji-program__content,
.ji-program__content p,
.ji-program__content li,
.ji-program__intro li,
.ji-program__section.is-notes .ji-program__content,
.ji-program__section.is-cert .ji-program__content {
	font-size: 16px !important;
	line-height: 1.6 !important;
}

.ji-program__intro p,
.ji-program__content > p,
.ji-program__content > ul,
.ji-program__content > ol,
.ji-program__content > table {
	margin: 0 0 16px !important;
}

.ji-program__section {
	margin-bottom: 40px !important;
}

.ji-program__section table {
	font-size: 15px;
}

/* Warenkorb: Hinweis zu Versand/Zahlung/Widerruf unter der Tabelle */
.ji-cart-legal {
	margin: 12px 0 0 !important;
	padding: 0 4px;
	font-size: 13px;
	color: #777;
}

.ji-cart-legal a {
	color: inherit !important;
	text-decoration: underline;
}

body.woocommerce-cart table.cart tr.jde_hint.is-moved {
	display: none;
}

/* Prüfen & Bestellen: zweispaltig wie die Kasse */
body.ji-shop-check .ji-check-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 420px;
	column-gap: 40px;
	align-items: start;
}

body.ji-shop-check .ji-check-grid #customer_details.col2-set {
	display: block !important;
	margin: 0 !important;
}

body.ji-shop-check .ji-check-grid #customer_details.col2-set > div {
	width: auto !important;
	float: none !important;
	margin-bottom: 26px;
}

body.ji-shop-check .ji-check-right > * + * {
	margin-top: 20px;
}

body.ji-shop-check .ji-check-right h3#order_review_heading + #order_review {
	margin-top: 0 !important;
}

body.ji-shop-check .ji-check-right .wgm-place-order {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px;
}

/* 2.24.0: Häkchen (AGB, Widerruf …) VOR dem Button „Zahlungspflichtig bestellen“, „Zurück“ danach */
body.ji-shop-check .ji-check-right .wgm-place-order > * {
	flex: 1 1 100%;
	order: 0;
}

body.ji-shop-check .ji-check-right .wgm-place-order .wgm-place-order.button {
	flex: 1 1 100%;
	order: 1;
	margin-top: 4px !important;
}

body.ji-shop-check .ji-check-right .wgm-place-order > a {
	flex: 0 0 auto;
	order: 2;
}

body.ji-shop-check .ji-check-right .wgm-place-order > input[type=hidden],
body.ji-shop-check .ji-check-right .wgm-place-order > .wgm-place-order-disabled {
	flex: 0 0 0;
}

/* Bestätigung: ab "Bestelldetails" zweispaltig */
body.ji-shop-page .ji-thankyou-details {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
	column-gap: 40px;
	align-items: start;
}

body.ji-shop-page .ji-thankyou-details > * {
	grid-column: 1 / -1;
}

body.ji-shop-page .ji-thankyou-details > .woocommerce-customer-details {
	grid-column: 1;
	grid-row: 1;
}

body.ji-shop-page .ji-thankyou-details > .woocommerce-order-details {
	grid-column: 2;
	grid-row: 1;
}

body.ji-shop-page .ji-thankyou-details .woocommerce-customer-details .col2-set,
body.ji-shop-page .ji-thankyou-details .woocommerce-customer-details .woocommerce-columns {
	display: block !important;
}

body.ji-shop-page .ji-thankyou-details .woocommerce-customer-details .woocommerce-column {
	width: auto !important;
	float: none !important;
	margin-bottom: 24px;
}

@media (max-width: 900px) {
	body.ji-shop-check .ji-check-grid,
	body.ji-shop-page .ji-thankyou-details {
		grid-template-columns: minmax(0, 1fr);
	}

	body.ji-shop-page .ji-thankyou-details > .woocommerce-order-details {
		grid-column: 1;
		grid-row: 1;
	}

	body.ji-shop-page .ji-thankyou-details > .woocommerce-customer-details {
		grid-row: 2;
	}
}

/* ==========================================================================
   2.8.7 – Produktbeschreibungen aus dem Block-Editor
   Gruppen/Spalten mit „volle Breite“ (alignfull) zog The7 auf 100vw – im neuen
   Design stehen Beschreibungen in einer Karte. Dort bleiben sie jetzt innerhalb
   der Karte; farbige Gruppen werden zu abgesetzten Kästen.
   ========================================================================== */
body.ji-shop-design .woocommerce-Tabs-panel .alignfull,
body.ji-shop-design .woocommerce-Tabs-panel .alignwide,
body.ji-shop-design .ji-program .alignfull,
body.ji-shop-design .ji-program .alignwide {
	width: auto !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

body.ji-shop-design .woocommerce-Tabs-panel .wp-block-group.has-background {
	margin: 28px 0 !important;
	padding: 28px 32px !important;
	border-radius: var(--ji-radius, 10px);
}

/* Spalten in einer farbigen Gruppe: Hintergrund nicht doppelt, kein zusätzlicher Innenabstand */
body.ji-shop-design .woocommerce-Tabs-panel .wp-block-group.has-background .wp-block-columns.has-background,
body.ji-shop-design .woocommerce-Tabs-panel .wp-block-group.has-background .wp-block-column.has-background {
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* „Inhaltsbreite“ der Blöcke (z. B. 60 %, mittig) war für die frühere volle Seitenbreite gedacht */
body.ji-shop-design .woocommerce-Tabs-panel .is-layout-constrained > * {
	max-width: 820px !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

body.ji-shop-design .woocommerce-Tabs-panel .wp-block-spacer {
	max-height: 24px;
}

@media (max-width: 778px) {
	body.ji-shop-design .woocommerce-Tabs-panel .wp-block-group.has-background {
		padding: 20px 16px !important;
	}

	body.ji-shop-design .woocommerce-Tabs-panel .is-layout-constrained > * {
		max-width: none !important;
	}
}

/* 2.31.8: dasselbe für die Produktseite mit Kapiteln (.ji-program, ab 2.30.4) – farbige Kästen mit
   Innenabstand, „Inhaltsbreite“ (z. B. 60 %, mittig) aufgehoben; wie im Block-Editor (2.31.6) */
body.ji-shop-design .ji-program .wp-block-group.has-background,
body.ji-shop-design .ji-program .wp-block-columns.has-background {
	margin: 28px 0 !important;
	padding: 28px 32px !important;
	border-radius: var(--ji-radius, 10px);
}

body.ji-shop-design .ji-program .wp-block-group.has-background .wp-block-columns.has-background,
body.ji-shop-design .ji-program .wp-block-group.has-background .wp-block-column.has-background {
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
}

body.ji-shop-design .ji-program .is-layout-constrained > * {
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

body.ji-shop-design .ji-program .wp-block-group.alignfull:not(.has-background) {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

body.ji-shop-design .ji-program .wp-block-spacer {
	max-height: 24px;
}

@media (max-width: 778px) {
	body.ji-shop-design .ji-program .wp-block-group.has-background,
	body.ji-shop-design .ji-program .wp-block-columns.has-background {
		padding: 20px 16px !important;
	}
}

/* Unterüberschriften in Beschreibungen nicht größer als die Abschnittsüberschrift */
body.ji-shop-design .woocommerce-Tabs-panel h3 {
	font-size: 18px !important;
	line-height: 1.35 !important;
	margin: 18px 0 6px !important;
}

/* ==========================================================================
   2.8.8 – Kapitel-Leiste: Desktop zeigt alle Abschnitte (Umbruch statt verstecktem
   Scrollen); schmale Bildschirme: wischbar mit Verlauf + Pfeil als Hinweis.
   ========================================================================== */
.ji-program__navbtn {
	display: none;
}

@media (min-width: 779px) {
	.ji-program__nav ul {
		flex-wrap: wrap;
		overflow: visible;
	}
}

@media (max-width: 778px) {
	.ji-program__nav ul {
		scrollbar-width: none;
	}

	.ji-program__nav ul::-webkit-scrollbar {
		display: none;
	}

	.ji-program__nav.has-more-right ul {
		-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 64px), transparent calc(100% - 20px));
		mask-image: linear-gradient(90deg, #000 calc(100% - 64px), transparent calc(100% - 20px));
	}

	.ji-program__nav.has-more-left ul {
		-webkit-mask-image: linear-gradient(90deg, transparent 20px, #000 64px);
		mask-image: linear-gradient(90deg, transparent 20px, #000 64px);
	}

	.ji-program__nav.has-more-left.has-more-right ul {
		-webkit-mask-image: linear-gradient(90deg, transparent 20px, #000 64px, #000 calc(100% - 64px), transparent calc(100% - 20px));
		mask-image: linear-gradient(90deg, transparent 20px, #000 64px, #000 calc(100% - 64px), transparent calc(100% - 20px));
	}

	.ji-program__navbtn {
		position: absolute;
		top: 50%;
		z-index: 2;
		width: 36px;  /* 2.29.0: Tap-Ziel mind. 36 px */
		height: 36px;
		margin-top: -18px;
		padding: 0;
		border: 1px solid var(--ji-border);
		border-radius: 50%;
		background: #fff;
		color: var(--ji-red);
		font-size: 20px;
		line-height: 26px;
		box-shadow: 0 2px 6px rgba(0, 0, 0, .12);
		cursor: pointer;
	}

	.ji-program__navbtn--prev {
		left: 8px;
	}

	.ji-program__navbtn--next {
		right: 8px;
	}

	.ji-program__nav.has-more-left .ji-program__navbtn--prev,
	.ji-program__nav.has-more-right .ji-program__navbtn--next {
		display: block;
	}
}

/* ==========================================================================
   2.9.3 – Hinweise von The7 („… wurde Ihrem Warenkorb hinzugefügt“, rechts eingeblendet):
   The7 färbt Text, Button und Schließen-Kreuz weiß (für den roten Hintergrund) –
   auf unserem hellen Hinweis war das unlesbar.
   ========================================================================== */
body.ji-shop-design .woocommerce-message,
body.ji-shop-design .woocommerce-info,
body.ji-shop-design .woocommerce-error {
	background: #fff !important;
	color: var(--ji-text) !important;
}

body.ji-shop-design .woocommerce-notices-wrapper > .woocommerce-message,
body.ji-shop-design .woocommerce-notices-wrapper > .woocommerce-info,
body.ji-shop-design .woocommerce-notices-wrapper > .woocommerce-error {
	box-shadow: 0 8px 24px rgba(0, 0, 0, .16) !important;
}

body.ji-shop-design .woocommerce-message .woocommerce-message-text,
body.ji-shop-design .woocommerce-info .woocommerce-info-text,
body.ji-shop-design .woocommerce-error .woocommerce-error-text,
body.ji-shop-design .woocommerce-message *:not(.button):not(a),
body.ji-shop-design .woocommerce-info *:not(.button):not(a),
body.ji-shop-design .woocommerce-error *:not(.button):not(a) {
	color: var(--ji-text) !important;
}

body.ji-shop-design .woocommerce-message a.button,
body.ji-shop-design .woocommerce-info a.button,
body.ji-shop-design.ji-shop-design.ji-shop-design .woocommerce-message .woocommerce-message-text a.button.button,
body.ji-shop-design.ji-shop-design.ji-shop-design .woocommerce-info .woocommerce-info-text a.button.button {
	display: inline-flex !important;
	align-items: center;
	height: 34px !important;
	padding: 0 18px !important;
	border: 0 !important;
	border-radius: 17px !important;
	background: var(--ji-red) !important;
	color: #fff !important;
	font-size: 13px !important;
	font-weight: var(--ji-semibold) !important;
	text-decoration: none !important;
	margin-top: 6px !important;
}

body.ji-shop-design .woocommerce-message a.button:hover,
body.ji-shop-design .woocommerce-info a.button:hover {
	background: var(--ji-red2, #9d383d) !important;
}

/* Schließen-Kreuz der The7-Einblendung */
body.ji-shop-design .woocommerce-message .close-message,
body.ji-shop-design .woocommerce-info .close-message,
body.ji-shop-design .woocommerce-error .close-message {
	color: var(--ji-text) !important;
	opacity: .6;
}

body.ji-shop-design .woocommerce-message .close-message::before,
body.ji-shop-design .woocommerce-message .close-message::after,
body.ji-shop-design .woocommerce-info .close-message::before,
body.ji-shop-design .woocommerce-info .close-message::after,
body.ji-shop-design .woocommerce-error .close-message::before,
body.ji-shop-design .woocommerce-error .close-message::after {
	background-color: var(--ji-text) !important;
	color: var(--ji-text) !important;
}

/* 2.15.0 – Ein Layout für alle: Bilder im Hoch-/Quadratformat, Galerie, Produktdaten */
.ji-program__media.is-contain {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 28px;
	background: var(--ji-bg-soft, #f5f5f5);
	box-shadow: none;
	border: 1px solid var(--ji-border);
}
.ji-program__media.is-contain img,
.ji-program__media.is-contain .ji-program__image {
	width: auto !important;
	max-width: 100%;
	max-height: 440px;
	height: auto !important;
	object-fit: contain;
}
.ji-program__media.is-contain .ji-date-badge {
	left: 14px;
	right: auto;
}
.ji-program__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: -14px 0 24px;
}
.ji-program__thumb {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	padding: 4px !important;
	border: 1px solid var(--ji-border) !important;
	border-radius: 8px !important;
	background: #fff !important;
	cursor: pointer;
	transition: border-color .2s;
}
.ji-program__thumb img {
	max-width: 100%;
	max-height: 100%;
	width: auto !important;
	height: auto !important;
	object-fit: contain;
}
.ji-program__thumb:hover,
.ji-program__thumb.is-active {
	border-color: var(--ji-red) !important;
	box-shadow: 0 0 0 1px var(--ji-red);
}
.ji-program__meta {
	margin: 14px 0 0 !important;
}
.ji-program .ji-single__subtitle {
	margin: 6px 0 0 !important;
	font-size: 18px;
	color: #444;
}
.ji-program .ji-upsells {
	margin: 4px 0 26px;
}
.ji-buybox--program .ji-buybox__toc {
	display: flex;
	justify-content: center;
	margin: 0 0 14px;
}
@media (max-width: 778px) {
	.ji-program__media.is-contain { padding: 18px; }
	.ji-program__media.is-contain img { max-height: 300px; }
	.ji-program__thumb { width: 60px; height: 60px; }
}
.ji-program__media.is-contain img,
.ji-program__media.is-contain .ji-program__image { max-height: 360px; }
.ji-program .ji-upsells { margin: 26px 0 26px; }
.ji-program__content h2[id] { scroll-margin-top: calc(var(--ji-sticky-offset, 70px) + 70px); }

/* 2.16.0 – Kopfband auf Produktseiten (Foto des Bereichs + roter Kasten), Kaufbox ragt hinein */
.ji-hero--product .ji-hero__slide {
	min-height: 260px;
}
.ji-hero--product .ji-hero__box {
	max-width: calc(100% - 410px);
}
.ji-hero--product .ji-hero__kicker {
	font-size: 18px;
}
.ji-hero--product .ji-hero__title {
	font-size: 28px !important;
}
.ji-flag--band {
	margin: 0 0 10px;
	background: #fff;
	color: var(--ji-red) !important;
}
body.ji-pband-on .ji-program > .ji-breadcrumb {
	margin-top: 22px;
}
@media (min-width: 992px) {
	body.ji-pband-on .ji-program__aside {
		margin-top: -190px;
		z-index: 6;
	}
	body.ji-pband-on .ji-program__aside .ji-buybox {
		box-shadow: 0 10px 30px rgba(0, 0, 0, .14);
	}
}
@media (max-width: 991px) {
	.ji-hero--product .ji-hero__box { max-width: 100%; }
}
@media (max-width: 778px) {
	.ji-hero--product .ji-hero__slide { min-height: 180px; }
	.ji-hero--product .ji-hero__title { font-size: 20px !important; }
	.ji-hero--product .ji-hero__kicker { font-size: 14px; }
}
/* 2.16.1 – Kaufbox nicht mehr ins Kopfband ziehen: Oberkante bündig mit dem Produktbild */
@media (min-width: 992px) {
	body.ji-pband-on .ji-program__aside {
		margin-top: 0;
	}
}

/* 2.17.2 – Ansprechperson größer und klar erkennbar (Vertrauen: echte Person) */
.ji-help.has-photo {
	gap: 18px;
	padding: 18px 18px 16px;
}
.ji-help__photo {
	flex: 0 0 96px;
	width: 96px;
	height: 96px;
}
.ji-help__photo > img {
	width: 96px !important;
	height: 96px !important;
	border: 3px solid #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .15);
}
.ji-help__badge {
	right: 0;
	bottom: 2px;
	width: 26px;
	height: 26px;
}
.ji-help.has-photo .ji-help__person {
	font-size: 15px;
	margin-bottom: 2px !important;
}
.ji-help.has-photo .ji-help__title {
	font-size: 14px;
	font-weight: 400;
	color: #555;
}
@media (max-width: 400px) {
	.ji-help__photo { flex-basis: 80px; width: 80px; height: 80px; }
	.ji-help__photo > img { width: 80px !important; height: 80px !important; }
}
.ji-help.has-photo .ji-help__text { margin-bottom: 6px !important; }
.ji-help.has-photo .ji-help__link { font-size: 14px; line-height: 1.5; }

/* 2.18.0 – Angebot anfordern + Kundenstimme */
.ji-quote-cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	margin: 12px 0 0;
	text-align: center;
}
.ji-quote-cta__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--ji-text) !important;
	font-size: 14px;
	font-weight: var(--ji-semibold);
	text-decoration: underline !important;
	text-underline-offset: 3px;
}
.ji-quote-cta__link:hover { color: var(--ji-red) !important; }
.ji-quote-cta__hint {
	color: #666;
	font-size: 12px;
	line-height: 1.4;
}
.ji-testimonial {
	position: relative;
	margin: 16px 0 0;
	padding: 18px 18px 16px 22px;
	border-left: 3px solid var(--ji-red);
	border-radius: 0 var(--ji-radius-box) var(--ji-radius-box) 0;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
}
.ji-testimonial__text { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.ji-testimonial__text p {
	margin: 0 !important;
	color: var(--ji-text);
	font-size: 15px;
	font-style: italic;
	line-height: 1.5;
}
.ji-testimonial__text p::before { content: "„"; }
.ji-testimonial__text p::after { content: "“"; }
.ji-testimonial__by {
	display: flex;
	flex-direction: column;
	margin-top: 10px;
	font-size: 13px;
	line-height: 1.4;
}
.ji-testimonial__by span { color: #666; }

/* 2.20.0 – Kontakt-Seitenleiste (wie johner-institut.de) */
.ji-sticky-cta {
	position: fixed;
	top: 50%;
	right: 0;
	z-index: 500;
	display: flex;
	flex-direction: column;
	gap: 16px;
	transform: translateY(-50%);
	filter: drop-shadow(rgba(0, 0, 0, .3) .4rem .4rem 1rem);
}
.ji-sticky-cta__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	padding: 8px 0;
	background: #4d4d4d;
	transition: transform .3s ease-in-out, background-color .2s;
}
.ji-sticky-cta__btn:hover { transform: scale(1.05); background: var(--ji-red); }
.ji-sticky-cta__btn img { display: block; width: 50px; height: 50px; }
@media (max-width: 778px) {
	.ji-sticky-cta { gap: 10px; top: auto; bottom: 120px; transform: none; }
	.ji-sticky-cta__btn { width: 40px; padding: 4px 0; }
	.ji-sticky-cta__btn img { width: 40px; height: 40px; }
}

/* Hilfe-Box in voller Breite (Suche ohne Treffer, Beratungs-Balken) */
.ji-help.ji-help--wide {
	max-width: 760px;
	margin: 28px 0 0;
	padding: 22px 24px;
}
.ji-help.ji-help--band {
	max-width: none;
	margin: 36px 0 10px;
	border: 1px solid var(--ji-border);
	border-left: 4px solid var(--ji-red);
	background: #fff;
	box-shadow: 0 4px 18px rgba(0, 0, 0, .06);
}
.ji-help--wide .ji-help__body { flex: 1 1 auto; }
.ji-help--wide .ji-help__title { font-size: 18px !important; font-weight: var(--ji-semibold) !important; color: var(--ji-text) !important; }
.ji-help__cta {
	flex: 0 0 auto;
	align-self: center;
	margin-left: auto;
	padding: 10px 22px !important;
	background: var(--ji-red) !important;
	border-color: var(--ji-red) !important;
	color: #fff !important;
	font-weight: var(--ji-semibold);
	white-space: nowrap;
}
.ji-help__cta:hover { background: #9d383d !important; }
@media (max-width: 778px) {
	.ji-help.ji-help--wide { flex-wrap: wrap; }
	.ji-help__cta { margin-left: 0; width: 100%; text-align: center; }
}
.ji-shop-layout > .ji-help--wide { grid-column: 1 / -1; }
.ji-help--search .ji-help__title { color: var(--ji-red) !important; }
/* Handy: Leiste würde Text verdecken – dort übernehmen Hilfe-Box und mobile Kaufleiste */
@media (max-width: 778px) {
	.ji-sticky-cta { display: none !important; }
}

/* ==========================================================================
   2.23.0 – Kasse (Standard-Markup der The7: #customer_details + .wc-order-review)
   ========================================================================== */
body.woocommerce-checkout form.checkout:has(> .wc-order-review) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	column-gap: 40px;
	align-items: start;
}

body.woocommerce-checkout form.checkout:has(> .wc-order-review) > * {
	grid-column: 1 / -1;
}

body.woocommerce-checkout form.checkout:has(> .wc-order-review) > #customer_details {
	grid-column: 1;
	grid-row: 2;
	width: auto !important;
	float: none !important;
}

body.woocommerce-checkout form.checkout > .wc-order-review {
	/* nicht sticky: Box enthält Button + Hilfe und ist oft höher als der Bildschirm */
	grid-column: 2;
	grid-row: 2;
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 22px 22px 20px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
	box-shadow: 0 6px 24px rgba(0, 0, 0, .05);
}

/* Überschrift + Bearbeiten-Link in einer Zeile, Box nicht doppelt */
body.woocommerce-checkout .wc-order-review {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	column-gap: 12px;
}

body.woocommerce-checkout .wc-order-review > * {
	flex: 1 1 100%;
}

body.woocommerce-checkout .wc-order-review > #order_review_heading,
body.woocommerce-checkout .wc-order-review > .ji-co-edit {
	flex: 0 1 auto;
}

body.ji-shop-page .wc-order-review h4#order_review_heading,
body.ji-shop-page .wc-order-review h3#order_review_heading {
	margin: 0 0 8px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
}

body.ji-shop-page .wc-order-review #order_review {
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
}

.ji-co-edit {
	color: var(--ji-red) !important;
	font-size: 13px;
	text-decoration: underline !important;
	text-underline-offset: 3px;
	white-space: nowrap;
}

/* Positionen: Name links, Preis rechts – auch in der schmalen Spalte */
body.woocommerce-checkout #order_review table.shop_table,
body.woocommerce-checkout #order-review table.shop_table {
	display: table !important;
	width: 100% !important;
	table-layout: auto;
}

body.woocommerce-checkout #order_review table.shop_table tr,
body.woocommerce-checkout #order-review table.shop_table tr {
	display: table-row !important;
}

body.woocommerce-checkout #order_review table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table td,
body.woocommerce-checkout #order-review table.shop_table th,
body.woocommerce-checkout #order-review table.shop_table td {
	display: table-cell !important;
	padding: 10px 0 !important;
	border-bottom: 1px solid var(--ji-border-light) !important;
	vertical-align: top;
	font-size: 14px;
	line-height: 1.45;
}

body.woocommerce-checkout #order_review table.shop_table td.product-total,
body.woocommerce-checkout #order_review table.shop_table tfoot td {
	padding-left: 12px !important;
	text-align: right !important;
	white-space: nowrap;
}

body.woocommerce-checkout #order_review table.shop_table tfoot th {
	font-weight: 400 !important;
	text-align: left !important;
}

body.woocommerce-checkout #order_review table.shop_table .order-total th,
body.woocommerce-checkout #order_review table.shop_table .order-total td {
	padding-top: 14px !important;
	border-top: 1px solid var(--ji-text) !important;
	border-bottom: 0 !important;
	font-weight: var(--ji-semibold) !important;
}

body.woocommerce-checkout #order_review table.shop_table .order-total .amount {
	color: var(--ji-red);
	font-size: 20px;
}

body.woocommerce-checkout #order_review .wgm-tax,
body.woocommerce-checkout #order_review .tax_label,
body.woocommerce-checkout #order-review .wgm-tax {
	display: block;
	color: #777;
	font-size: 12px !important;
	font-weight: 400;
	white-space: normal;
}

body.woocommerce-checkout #order_review .wgm-break {
	display: none;
}

body.woocommerce-checkout #order_review #shipping_method {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.woocommerce-checkout #order_review #shipping_method li {
	margin: 0 !important;
	padding: 0 !important;
	color: var(--ji-text);
	list-style: none !important;
}

body.woocommerce-checkout #order_review #shipping_method li::before {
	display: none !important;
}

/* Produktbild + Name */
.ji-co-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.ji-co-item__thumb {
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	overflow: hidden;
	border: 1px solid var(--ji-border-light);
	border-radius: 8px;
	background: var(--ji-bg-soft);
}

.ji-co-item__thumb img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}

.ji-co-item__name {
	font-weight: var(--ji-semibold);
	color: #222;
}

body.woocommerce-checkout #order_review td.product-name .product-quantity {
	display: inline-block;
	margin-left: 60px;
	color: #777;
	font-size: 13px;
	font-weight: 400;
}

body.woocommerce-checkout #order_review td.product-name .variation {
	margin: 2px 0 0 60px !important;
	font-size: 13px;
	color: #777;
}

body.woocommerce-checkout #order_review td.product-name .variation dt,
body.woocommerce-checkout #order_review td.product-name .variation dd,
body.woocommerce-checkout #order_review td.product-name .variation dd p {
	display: inline;
	margin: 0 !important;
	font-weight: 400;
}

/* Abschnitte links */
.ji-co-head {
	margin: 0 0 18px;
}

.ji-co-head__title {
	margin: 0 0 4px !important;
	color: var(--ji-red) !important;
	font-size: 20px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.3 !important;
}

.ji-co-head__intro {
	margin: 0 !important;
	color: #666;
	font-size: 14px;
	line-height: 1.45;
}

body.woocommerce-checkout #customer_details .woocommerce-shipping-fields {
	padding-top: 16px;
	padding-bottom: 16px;
}

body.woocommerce-checkout #customer_details .woocommerce-shipping-fields:has(.shipping_address[style*="block"]) {
	padding-bottom: 10px;
}

body.woocommerce-checkout #customer_details .woocommerce-shipping-fields #ship-to-different-address {
	margin: 0 !important;
}

body.woocommerce-checkout #customer_details .woocommerce-shipping-fields .shipping_address {
	margin-top: 18px;
}

body.woocommerce-checkout #customer_details .woocommerce-additional-fields:not(:has(.form-row)) {
	display: none;
}

/* Inline-AGB-Text der Kasse ausblenden (falls ein Plugin ihn doch ausgibt) */
body.woocommerce-checkout:not(.ji-shop-check) .woocommerce-terms-and-conditions {
	display: none !important;
}

/* Vertrauensliste unter dem Button */
.ji-co-trust {
	margin: 14px 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.ji-co-trust li {
	position: relative;
	margin: 0 0 6px !important;
	padding: 0 0 0 24px !important;
	color: var(--ji-text);
	font-size: 13px;
	line-height: 1.45;
	list-style: none !important;
}

.ji-co-trust li::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 0;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: #2e7d32 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.3l2.6 2.5L12 5.4' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px no-repeat;
}

body.woocommerce-checkout .wc-order-review .ji-help,
body.woocommerce-checkout #order-review .ji-help {
	margin-top: 18px;
}

@media (max-width: 991px) {
	body.woocommerce-checkout form.checkout:has(> .wc-order-review) {
		display: block;
	}

	body.woocommerce-checkout form.checkout > .wc-order-review {
		position: static;
		margin-top: 6px !important;
	}
}

@media (max-width: 560px) {
	body.woocommerce-checkout form.checkout > .wc-order-review {
		padding: 18px 16px;
	}

	body.woocommerce-checkout #order_review td.product-name .product-quantity,
	body.woocommerce-checkout #order_review td.product-name .variation {
		margin-left: 0 !important;
	}

	.ji-co-item__thumb {
		flex-basis: 40px;
		width: 40px;
		height: 40px;
	}
}

/* Positionen in der schmalen Spalte: Name oben, Menge + Preis darunter */
body.woocommerce-checkout #order_review tbody tr.cart_item {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--ji-border-light);
}

body.woocommerce-checkout #order_review tbody tr.cart_item > td {
	display: block !important;
	padding: 0 !important;
	border: 0 !important;
}

body.woocommerce-checkout #order_review tbody tr.cart_item > td.product-name {
	grid-column: 1 / -1;
}

body.woocommerce-checkout #order_review tbody tr.cart_item > td.product-total {
	grid-column: 1 / -1;
	margin-top: 4px;
	padding-left: 60px !important;
	white-space: normal;
}

body.woocommerce-checkout #order_review tbody tr.cart_item > td.product-total > .amount,
body.woocommerce-checkout #order_review tbody tr.cart_item > td.product-total > .woocommerce-Price-amount {
	font-weight: var(--ji-semibold);
}

body.woocommerce-checkout #order_review tbody tr.cart_item .wgm-tax {
	display: block;
}

body.woocommerce-checkout #order_review td.product-name .product-quantity {
	margin-left: 4px;
}

body.woocommerce-checkout #order_review td.product-name .ji-co-item + .product-quantity {
	margin-left: 60px;
}

body.woocommerce-checkout #order_review td.product-name .variation dt {
	margin-right: 4px !important;
}

@media (max-width: 560px) {
	body.woocommerce-checkout #order_review tbody tr.cart_item > td.product-total,
	body.woocommerce-checkout #order_review td.product-name .ji-co-item + .product-quantity {
		padding-left: 52px !important;
		margin-left: 0 !important;
	}
}

.ji-co-qty {
	float: left;
	color: #777;
	font-size: 13px;
	font-weight: 400;
}

body.woocommerce-checkout #order_review td.product-name dl.variation,
body.woocommerce-checkout #order_review td.product-name .ji-co-item ~ .variation {
	margin: 2px 0 0 60px !important;
	padding: 0 !important;
}

@media (max-width: 560px) {
	body.woocommerce-checkout #order_review td.product-name dl.variation {
		margin-left: 52px !important;
	}
}

/* Reihenfolge unter der Zahlart: Button → Vertrauensliste → Ansprechperson */
body.woocommerce-checkout #payment .form-row.place-order {
	display: flex !important;
	flex-direction: column;
}

body.woocommerce-checkout #payment .form-row.place-order > * { order: 5; }
body.woocommerce-checkout #payment .form-row.place-order > #place_order { order: 1; margin-top: 4px !important; }
body.woocommerce-checkout #payment .form-row.place-order > .ji-co-trust { order: 2; }
body.woocommerce-checkout #payment .form-row.place-order > .ji-help { order: 3; }

/* Gleiche Positions-Darstellung in der Kasse mit Teilnehmern (#order-review aus ji-woocommerce) */
body.woocommerce-checkout #order-review tbody tr.cart_item {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	padding: 12px 0;
	border-bottom: 1px solid var(--ji-border-light);
}

body.woocommerce-checkout #order-review tbody tr.cart_item > td {
	display: block !important;
	padding: 0 !important;
	border: 0 !important;
}

body.woocommerce-checkout #order-review tbody tr.cart_item > td.product-total {
	margin-top: 4px;
	padding-left: 60px !important;
	text-align: right;
	color: var(--ji-text);
}

body.woocommerce-checkout #order-review tbody tr.cart_item > td.product-total .amount {
	color: var(--ji-text);
	font-weight: var(--ji-semibold);
}

body.woocommerce-checkout #order-review td.product-name dl.variation {
	margin: 2px 0 0 60px !important;
	padding: 0 !important;
	color: #777;
	font-size: 13px;
}

body.woocommerce-checkout #order-review td.product-name .variation dt,
body.woocommerce-checkout #order-review td.product-name .variation dd,
body.woocommerce-checkout #order-review td.product-name .variation dd p {
	display: inline;
	margin: 0 4px 0 0 !important;
	font-weight: 400;
}

body.woocommerce-checkout #order-review tfoot th { font-weight: 400 !important; text-align: left !important; }
body.woocommerce-checkout #order-review tfoot td { padding-left: 12px !important; }
body.woocommerce-checkout #order-review .order-total .amount { color: var(--ji-red); font-size: 20px; }
body.woocommerce-checkout #order-review .wgm-break { display: none; }
body.woocommerce-checkout #order-review #shipping_method { margin: 0 !important; padding: 0 !important; list-style: none !important; }
body.woocommerce-checkout #order-review #shipping_method li { margin: 0 !important; padding: 0 !important; list-style: none !important; }
body.woocommerce-checkout #order-review #shipping_method li::before { display: none !important; }

/* Tabelle als Block-Raster, damit Positionen immer die volle Breite nutzen */
body.woocommerce-checkout #order_review table.shop_table,
body.woocommerce-checkout #order-review table.shop_table,
body.woocommerce-checkout #order_review table.shop_table > tbody,
body.woocommerce-checkout #order-review table.shop_table > tbody,
body.woocommerce-checkout #order_review table.shop_table > tfoot,
body.woocommerce-checkout #order-review table.shop_table > tfoot {
	display: block !important;
	width: 100% !important;
}

body.woocommerce-checkout #order_review table.shop_table > thead,
body.woocommerce-checkout #order-review table.shop_table > thead {
	display: none !important;
}

body.woocommerce-checkout #order_review table.shop_table > tbody > tr.cart_item,
body.woocommerce-checkout #order-review table.shop_table > tbody > tr.cart_item {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	width: 100%;
}

body.woocommerce-checkout #order_review table.shop_table > tfoot > tr,
body.woocommerce-checkout #order-review table.shop_table > tfoot > tr {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 12px;
	width: 100%;
	border-bottom: 1px solid var(--ji-border-light);
}

body.woocommerce-checkout #order_review table.shop_table > tfoot > tr > *,
body.woocommerce-checkout #order-review table.shop_table > tfoot > tr > * {
	display: block !important;
	border: 0 !important;
}

body.woocommerce-checkout #order_review table.shop_table > tfoot > tr.order-total,
body.woocommerce-checkout #order-review table.shop_table > tfoot > tr.order-total {
	margin-top: -1px;
	border-top: 1px solid var(--ji-text);
	border-bottom: 0;
}

body.woocommerce-checkout #order_review table.shop_table > tfoot > tr.order-total > *,
body.woocommerce-checkout #order-review table.shop_table > tfoot > tr.order-total > * {
	padding-top: 14px !important;
	border-top: 0 !important;
}


/* ==========================================================================
   2.24.0 – Teilnehmende aus JI Shop Core 1.2.0
   ========================================================================== */
/* leere Lieferadress-Box (z. B. nur Veranstaltungen im Warenkorb) ausblenden */
body.woocommerce-checkout #customer_details .woocommerce-shipping-fields:empty,
body.woocommerce-checkout #customer_details .woocommerce-shipping-fields:not(:has(*)) {
	display: none !important;
}

body.woocommerce-checkout #customer_details .ji-participants {
	margin: 0 0 26px;
}

/* Prüfseite: Teilnehmende zur Kontrolle */
.ji-check-participants {
	margin: 0 0 26px;
	padding: 22px 22px 14px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
}

.ji-check-participants h3 {
	margin: 0 0 12px !important;
	color: var(--ji-red) !important;
	font-size: 20px !important;
}

.ji-check-participants__event {
	margin: 0 0 6px !important;
	font-weight: var(--ji-semibold);
}

.ji-check-participants__list {
	margin: 0 0 12px 20px !important;
	padding: 0 !important;
	font-size: 14px;
	line-height: 1.5;
}

.ji-check-participants__list li {
	margin: 0 0 6px !important;
}

.ji-check-participants__list span {
	color: #777;
	font-size: 13px;
}

.ji-check-participants__edit a {
	color: var(--ji-red) !important;
	font-size: 13px;
	text-decoration: underline !important;
}


/* ==========================================================================
   2.25.0 – Fehlermeldungen in Kasse/Prüfseite: fest oben im Formular statt The7-Popup
   ========================================================================== */
body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup {
	grid-row: 1;
	grid-column: 1 / -1;
}

body.woocommerce-checkout .woocommerce-NoticeGroup .woocommerce-error,
body.woocommerce-checkout .woocommerce-notices-wrapper .woocommerce-error,
body.ji-shop-check .woocommerce-error {
	position: static !important;
	top: auto !important;
	right: auto !important;
	left: auto !important;
	transform: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 0 24px !important;
	padding: 16px 20px 16px 52px !important;
	border: 1px solid var(--ji-red) !important;
	border-radius: var(--ji-radius-box) !important;
	background: #fff5f5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%23d20a11'/%3E%3Cpath d='M12 6.5v7M12 16.8v.2' stroke='%23fff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") 18px 17px / 22px no-repeat !important;
	box-shadow: none !important;
	color: var(--ji-text) !important;
	opacity: 1 !important;
	visibility: visible !important;
	animation: none !important;
}

body.woocommerce-checkout .woocommerce-error .close-message,
body.ji-shop-check .woocommerce-error .close-message {
	display: none !important;
}

body.woocommerce-checkout .woocommerce-error li,
body.ji-shop-check .woocommerce-error li {
	display: block !important;
	margin: 0 0 4px !important;
	padding: 0 !important;
	font-size: 14px;
	line-height: 1.45;
	list-style: none !important;
}

body.woocommerce-checkout .woocommerce-error li::before,
body.ji-shop-check .woocommerce-error li::before {
	display: none !important;
}

body.woocommerce-checkout .woocommerce-error li[data-id] {
	cursor: pointer;
	text-decoration: underline;
	text-decoration-color: rgba(210, 10, 17, .35);
	text-underline-offset: 3px;
}

.ji-co-error-title {
	margin: 0 0 6px !important;
	color: var(--ji-red);
	font-weight: var(--ji-semibold);
}

/* fehlerhafte Felder deutlich markieren */
body.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
body.woocommerce-checkout .form-row.woocommerce-invalid select,
body.woocommerce-checkout .form-row.woocommerce-invalid textarea,
body.woocommerce-checkout .form-row.woocommerce-invalid .select2-selection {
	border-color: var(--ji-red) !important;
	box-shadow: 0 0 0 3px rgba(210, 10, 17, .12) !important;
}

/* 2.26.0 – Suche ohne Treffer */
.ji-search-help {
	grid-column: 1 / -1;
	margin: 0 0 40px;
	padding: 24px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
}

.ji-search-help__form {
	display: flex;
	gap: 10px;
	max-width: 560px;
	margin: 0 0 18px !important;
}

.ji-search-help__form input[type=search] {
	flex: 1 1 auto;
	height: 44px !important;
	padding: 0 18px !important;
	border: 1px solid var(--ji-border) !important;
	border-radius: 22px !important;
	font-size: 15px !important;
}

.ji-search-help__form button {
	flex: 0 0 auto;
	height: 44px;
	padding: 0 22px !important;
	border: 0 !important;
	border-radius: 22px !important;
	background: var(--ji-gradient) !important;
	color: #fff !important;
	font-weight: var(--ji-semibold) !important;
	cursor: pointer;
}

.ji-search-help__label {
	margin: 0 0 8px !important;
	font-weight: var(--ji-semibold);
}

.ji-search-help__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 18px !important;
}

.ji-search-help__chips .ji-pill {
	flex: 0 0 auto;
	width: auto !important;
	min-width: 0 !important;
	padding: 6px 16px !important;
	font-size: 14px !important;
}

.ji-search-help__chips span {
	margin-left: 4px;
	color: #777;
	font-weight: 400;
}

.ji-search-help__training {
	margin: 4px 0 0 !important;
	padding-top: 16px;
	border-top: 1px solid var(--ji-border-light);
	font-size: 14px;
}

.ji-search-help__training a {
	color: var(--ji-red) !important;
	font-weight: var(--ji-semibold);
}

@media (max-width: 560px) {
	.ji-search-help { padding: 18px 16px; }
	.ji-search-help__form button { padding: 0 16px !important; }
}

/* 2.27.0 – Leerer Warenkorb: Text sichtbar (The7 macht Hinweise sonst zum Popup), keine Aufzählungspunkte */
body.ji-shop-page .ji-empty .woocommerce-info,
body.ji-shop-page .ji-empty .cart-empty {
	position: static !important;
	top: auto !important;
	right: auto !important;
	left: auto !important;
	transform: none !important;
	width: auto !important;
	max-width: none !important;
	box-shadow: none !important;
	opacity: 1 !important;
	visibility: visible !important;
	animation: none !important;
	color: #222 !important;
}

body.ji-shop-page .ji-empty .woocommerce-info::before,
body.ji-shop-page .ji-empty .close-message {
	display: none !important;
}

.ji-empty__cats li {
	list-style: none !important;
}

.ji-empty__cats li::marker {
	content: "" !important;
}

.ji-participant__optional {
	color: #888;
	font-size: 13px;
	font-weight: 400;
}

/* 2.27.0: aktuelle German-Market-Vorlage – Überschrift steckt jetzt IN #order_review */
body.ji-shop-page #order_review > h3#order_review_heading {
	margin: 0 0 8px !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	width: auto !important;
}

/* 2.27.0: „Fast fertig! …“ auf der Prüfseite als ruhiger Hinweis oben statt Popup über der Bestellung */
body.ji-shop-check .woocommerce-message,
body.ji-shop-check .woocommerce-info {
	position: static !important;
	top: auto !important;
	right: auto !important;
	left: auto !important;
	transform: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 0 22px !important;
	padding: 14px 18px !important;
	border: 1px solid var(--ji-border) !important;
	border-left: 4px solid var(--ji-red) !important;
	border-radius: var(--ji-radius-box) !important;
	background: #fff !important;
	box-shadow: none !important;
	color: var(--ji-text) !important;
	font-size: 14px;
	opacity: 1 !important;
	visibility: visible !important;
	animation: none !important;
}

body.ji-shop-check .woocommerce-message .close-message,
body.ji-shop-check .woocommerce-info .close-message,
body.ji-shop-check .woocommerce-message::before,
body.ji-shop-check .woocommerce-info::before {
	display: none !important;
}

/* ==========================================================================
   2.28.0 – Danke-Seite neu (woocommerce/checkout/thankyou.php)
   ========================================================================== */
.ji-thanks { display: block; }

.ji-thanks__hero {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 8px 22px;
	align-items: center;
	margin: 0 0 28px;
	padding: 28px 30px;
	border: 1px solid var(--ji-border-light);
	border-radius: var(--ji-radius-box);
	background: var(--ji-bg-soft);
}

.ji-thanks__check {
	display: block;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #fff url("icons/check.svg") no-repeat center / 30px 23px;
	box-shadow: 0 0 0 4px #fff, 0 0 0 5px rgba(210, 10, 17, .12), 0 6px 14px 3px rgba(210, 10, 17, .25);
}

.ji-thanks__title {
	margin: 0 0 4px !important;
	color: #222 !important;
	font-size: 24px !important;
	font-weight: var(--ji-semibold) !important;
	line-height: 1.3 !important;
}

.ji-thanks__sub {
	margin: 0 !important;
	color: #666;
	font-size: 15px;
}

.ji-thanks__facts {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 12px;
	margin: 18px 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.ji-thanks__facts > div {
	min-width: 0;
	padding: 14px 16px;
	border: 1px solid var(--ji-border-light);
	border-radius: 10px;
	background: #fff;
}

.ji-thanks__facts dt {
	margin: 0 0 4px;
	color: #777;
	font-size: 12px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.ji-thanks__facts dd {
	margin: 0;
	color: #222;
	font-size: 16px;
	font-weight: var(--ji-semibold);
	overflow-wrap: anywhere;
}

.ji-thanks__total,
.ji-thanks__total .amount { color: var(--ji-red) !important; font-size: 18px; }

/* So geht es weiter */
.ji-thanks__next {
	margin: 0 0 32px;
}

.ji-thanks__next h3 {
	margin: 0 0 14px !important;
	color: var(--ji-red) !important;
	font-size: 20px !important;
}

.ji-thanks__next ol {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	counter-reset: jistep;
}

.ji-thanks__next li {
	position: relative;
	margin: 0 !important;
	padding: 16px 16px 16px 58px !important;
	border: 1px solid var(--ji-border-light);
	border-radius: var(--ji-radius-box);
	background: #fff;
	list-style: none !important;
	counter-increment: jistep;
	font-size: 14px;
	line-height: 1.5;
}

.ji-thanks__next li::before {
	content: counter(jistep) !important;
	position: absolute;
	top: 16px;
	left: 16px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--ji-gradient);
	color: #fff;
	font-size: 13px;
	font-weight: var(--ji-semibold);
}

.ji-thanks__next li strong { display: block; margin-bottom: 2px; color: #222; }
.ji-thanks__next li span { color: var(--ji-text); }

/* Details + Seitenleiste */
.ji-thanks__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}

.ji-thanks__main .wc-wide-column,
.ji-thanks__main .woocommerce-order-details,
.ji-thanks__main .woocommerce-cart-wrap {
	display: block !important;
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.ji-thanks__main .woocommerce-order-details {
	margin: 0 0 24px !important;
	padding: 22px 22px 8px !important;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
}

.ji-thanks__main h4,
.ji-thanks__box h4 {
	margin: 0 0 12px !important;
	padding: 0 !important;
	color: var(--ji-red) !important;
	font-size: 18px !important;
	font-weight: var(--ji-semibold) !important;
	text-transform: none !important;
}

.ji-thanks__main table.shop_table {
	width: 100% !important;
	margin: 0 0 14px !important;
	border: 0 !important;
	border-radius: 0 !important;
}

.ji-thanks__main table.shop_table th,
.ji-thanks__main table.shop_table td {
	padding: 10px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--ji-border-light) !important;
	background: none !important;
	font-size: 14px;
	vertical-align: top;
	text-align: left;
}

.ji-thanks__main table.order_details td:last-child,
.ji-thanks__main table.order_details th:last-child,
.ji-thanks__main table.order_details tfoot td {
	padding-left: 12px !important;
	text-align: right !important;
	white-space: nowrap;
}

.ji-thanks__main table.order_details thead th {
	color: #777;
	font-size: 12px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.ji-thanks__main table.order_details tfoot tr:last-child th,
.ji-thanks__main table.order_details tfoot tr:last-child td {
	border-bottom: 0 !important;
}

.ji-thanks__main table.order_details .wgm-tax,
.ji-thanks__main table.order_details small {
	display: block;
	color: #777;
	font-size: 12px;
	font-weight: 400;
	white-space: normal;
}

.ji-thanks__main table.order_details .wc-item-meta,
.ji-thanks__main table.order_details .wc-item-meta li {
	margin: 2px 0 0 !important;
	padding: 0 !important;
	color: #777;
	font-size: 13px;
	list-style: none !important;
}

.ji-thanks__main table.order_details .wc-item-meta li::before { display: none !important; }
.ji-thanks__main table.order_details .wc-item-meta p { display: inline; margin: 0; }

/* Kundendaten: Überschrift + Tabelle als eine Box */
.ji-thanks__main .wc-wide-column > header {
	padding: 22px 22px 0;
	border: 1px solid var(--ji-border);
	border-bottom: 0;
	border-radius: var(--ji-radius-box) var(--ji-radius-box) 0 0;
	background: #fff;
}

.ji-thanks__main table.customer_details {
	display: table !important;
	padding: 0 22px 10px !important;
	border: 1px solid var(--ji-border) !important;
	border-top: 0 !important;
	border-radius: 0 0 var(--ji-radius-box) var(--ji-radius-box) !important;
	background: #fff !important;
	border-collapse: separate !important;
	border-spacing: 22px 0 !important;
	margin: 0 !important;
}

.ji-thanks__main table.customer_details th {
	width: 38%;
	color: #777;
	font-weight: 400;
}

.ji-thanks__main table.customer_details tr:last-child th,
.ji-thanks__main table.customer_details tr:last-child td {
	border-bottom: 0 !important;
}

/* Seitenleiste */
.ji-thanks__box {
	margin: 0 0 20px;
	padding: 22px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
}

.ji-thanks__event { margin: 0 0 6px !important; font-weight: var(--ji-semibold); color: #222; }

.ji-thanks__participants ol {
	margin: 0 0 12px 20px !important;
	padding: 0 !important;
	font-size: 14px;
	line-height: 1.45;
}

.ji-thanks__participants li { margin: 0 0 8px !important; }
.ji-thanks__participants li span { color: #777; font-size: 13px; }

.ji-thanks__aside .ji-help { margin: 0 0 20px; }

.ji-thanks__actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 !important;
}

.ji-thanks__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	border-radius: 23px;
	background: var(--ji-gradient);
	color: #fff !important;
	font-weight: var(--ji-semibold);
	text-decoration: none !important;
}

.ji-thanks__link {
	color: var(--ji-text) !important;
	font-size: 14px;
	text-align: center;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

@media (max-width: 900px) {
	.ji-thanks__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 560px) {
	.ji-thanks__hero { grid-template-columns: minmax(0, 1fr); padding: 22px 18px; }
	.ji-thanks__check { width: 52px; height: 52px; }
	.ji-thanks__title { font-size: 20px !important; }
	.ji-thanks__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ji-thanks__main .woocommerce-order-details,
	.ji-thanks__box { padding: 18px 16px !important; }
	.ji-thanks__main table.customer_details { border-spacing: 16px 0 !important; }
}

/* 2.28.0 Feinschliff: The7 macht Tabellen sonst zu Flex-Blöcken mit Rahmen */
.ji-thanks__main table.order_details {
	display: table !important;
	border: 0 !important;
	box-shadow: none !important;
	border-collapse: collapse !important;
}

.ji-thanks__main table.order_details thead { display: table-header-group !important; }
.ji-thanks__main table.order_details tbody { display: table-row-group !important; }
.ji-thanks__main table.order_details tfoot { display: table-footer-group !important; }
.ji-thanks__main table.order_details tr { display: table-row !important; }

.ji-thanks__main table.order_details th,
.ji-thanks__main table.order_details td {
	display: table-cell !important;
}

.ji-thanks__main table.order_details td.product-name a {
	color: #222 !important;
	font-weight: var(--ji-semibold);
	text-decoration: none !important;
}

.ji-thanks__main table.order_details td.product-name a:hover { color: var(--ji-red) !important; }

.ji-thanks__main table.order_details td.product-name .product-quantity {
	margin-left: 4px;
	color: #777;
	font-weight: 400;
}

.ji-thanks__main table.order_details .product-tax,
.ji-thanks__main table.order_details tfoot td small,
.ji-thanks__main table.order_details tfoot td .includes_tax,
.ji-thanks__main table.order_details tfoot td .wgm-tax {
	display: block !important;
	color: #777;
	font-size: 12px;
	font-weight: 400;
	white-space: normal;
}

.ji-thanks__main table.order_details tfoot tr:nth-last-child(2) th,
.ji-thanks__main table.order_details tfoot tr:nth-last-child(2) td {
	font-weight: var(--ji-semibold);
	color: #222;
}

.ji-thanks__main table.order_details tfoot tr:nth-last-child(2) td > .amount,
.ji-thanks__main table.order_details tfoot tr:nth-last-child(2) td > .woocommerce-Price-amount {
	color: var(--ji-red);
	font-size: 17px;
}

/* Kundendaten */
.ji-thanks__main table.customer_details {
	display: block !important;
	width: auto !important;
	padding: 0 22px 12px !important;
	border-spacing: 0 !important;
	border-collapse: collapse !important;
}

.ji-thanks__main table.customer_details tbody {
	display: table !important;
	width: 100%;
	border-collapse: collapse;
}

.ji-thanks__main table.customer_details tr { display: table-row !important; }
.ji-thanks__main table.customer_details th,
.ji-thanks__main table.customer_details td { display: table-cell !important; }

@media (max-width: 560px) {
	.ji-thanks__main table.customer_details { padding: 0 16px 10px !important; }
	.ji-thanks__main table.customer_details th { width: 42%; }
}

/* 2.28.0 Mobil: Tabelle darf nicht überlaufen, E-Mail-Kachel volle Breite */
.ji-thanks__facts dd { overflow-wrap: anywhere; }
@media (max-width: 560px) {
	.ji-thanks__facts > div:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.ji-thanks__main table.order_details {
		table-layout: fixed !important;
		width: 100% !important;
	}
	.ji-thanks__main table.order_details th,
	.ji-thanks__main table.order_details td {
		white-space: normal !important;
		overflow-wrap: break-word;
		hyphens: auto;
		padding-left: 10px !important;
		padding-right: 10px !important;
		font-size: 14px;
	}
	.ji-thanks__main table.order_details th:first-child,
	.ji-thanks__main table.order_details td:first-child { width: 58% !important; }
	.ji-thanks__main table.order_details td:last-child,
	.ji-thanks__main table.order_details td:last-child * {
		white-space: normal !important;
	}
	.ji-thanks__main table.order_details td:last-child {
		display: table-cell !important;
	}
	.ji-thanks__main table.order_details td:last-child > *,
	.ji-thanks__main table.order_details td:last-child .wgm-tax,
	.ji-thanks__main table.order_details td:last-child .product-tax {
		display: block !important;
		text-align: right;
	}
}
@media (max-width: 560px) {
	.ji-thanks__main table.customer_details tbody { table-layout: fixed; }
	.ji-thanks__main table.customer_details th,
	.ji-thanks__main table.customer_details td {
		white-space: normal !important;
		overflow-wrap: break-word;
		hyphens: auto;
		padding-left: 0 !important;
		padding-right: 8px !important;
		font-size: 14px;
	}
}
@media (max-width: 560px) {
	.ji-thanks__main table.customer_details tbody,
	.ji-thanks__main table.customer_details tr,
	.ji-thanks__main table.customer_details th,
	.ji-thanks__main table.customer_details td {
		display: block !important;
		width: auto !important;
	}
	.ji-thanks__main table.customer_details tr {
		padding: 12px 0;
		border-bottom: 1px solid var(--ji-border);
	}
	.ji-thanks__main table.customer_details tr:last-child { border-bottom: 0; }
	.ji-thanks__main table.customer_details th,
	.ji-thanks__main table.customer_details td {
		border: 0 !important;
		padding: 0 !important;
	}
	.ji-thanks__main table.customer_details th {
		font-size: 12px;
		text-transform: uppercase;
		letter-spacing: .04em;
		margin-bottom: 4px;
	}
}
@media (max-width: 560px) {
	body .ji-thanks .ji-thanks__main table.order_details th.product-name,
	body .ji-thanks .ji-thanks__main table.order_details td.product-name,
	body .ji-thanks .ji-thanks__main table.order_details tfoot th {
		width: 56% !important;
		min-width: 0 !important;
	}
	body .ji-thanks .ji-thanks__main table.customer_details th,
	body .ji-thanks .ji-thanks__main table.customer_details td {
		padding: 0 !important;
		height: auto !important;
	}
	body .ji-thanks .ji-thanks__main table.customer_details tr {
		padding: 12px 0 !important;
		border-bottom: 1px solid var(--ji-border) !important;
	}
	body .ji-thanks .ji-thanks__main table.customer_details tr:last-child { border-bottom: 0 !important; }
}
@media (max-width: 560px) {
	body .ji-thanks .ji-thanks__main table.order_details th:last-child,
	body .ji-thanks .ji-thanks__main table.order_details td:last-child {
		width: 44% !important;
	}
	body .ji-thanks .ji-thanks__main table.order_details th,
	body .ji-thanks .ji-thanks__main table.order_details td {
		padding-left: 10px !important;
		padding-right: 10px !important;
	}
}

/* 2.28.0 Mein Konto › Bestellung: Steuerhinweis unter den Betrag */
body.woocommerce-account table.order_details td:last-child .product-tax,
body.woocommerce-account table.order_details td:last-child .wgm-tax,
body.woocommerce-account table.order_details tfoot td small {
	display: block !important;
	margin-top: 2px;
	font-size: 12px;
	color: #777;
	white-space: normal;
}
body.woocommerce-account table.order_details td:last-child { text-align: right; display: table-cell !important; }
body.woocommerce-account table.order_details { display: table !important; width: 100% !important; }
body.woocommerce-account table.order_details thead { display: table-header-group !important; }
body.woocommerce-account table.order_details tbody { display: table-row-group !important; }
body.woocommerce-account table.order_details tfoot { display: table-footer-group !important; }
body.woocommerce-account table.order_details tr { display: table-row !important; }
body.woocommerce-account table.order_details th,
body.woocommerce-account table.order_details td { display: table-cell !important; vertical-align: top; }
body.woocommerce-account table.order_details td:last-child .product-tax,
body .ji-thanks table.order_details td:last-child .product-tax {
	display: block !important;
	text-align: right !important;
	margin-top: 2px;
}


/* -------------------------------------------------------------------------
 * 2.29.0 – Layout-Prüfung aller Seiten
 * ---------------------------------------------------------------------- */
/* Bilder in Produktbeschreibungen: feste Höhe aus dem Block-Editor verzerrt sie,
   sobald die Spalte schmaler wird → Höhe immer proportional */
.ji-shop-single .wp-block-image img,
.ji-program__intro img,
.ji-program__content img {
	max-width: 100%;
	height: auto !important;
}

/* Ersatz für den The7-Shortcode [dt_divider] in alten Produkttexten */
.ji-divider {
	display: block;
	height: 0;
	margin: 28px 0;
	border: 0;
	border-top: 2px solid var(--ji-border, #e5e5e5);
}

/* 404 im Shop-Layout */
body.error404 #content.ji-404 {
	min-height: 0;
	text-align: left;
}
.ji-404__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}
.ji-404__lead {
	margin: 0 0 18px;
	font-size: 16px;
}
.ji-404__actions {
	display: flex;
	margin: 22px 0 0 !important;
}
.ji-404__btn {
	padding: 0 28px;
}
@media (max-width: 900px) {
	.ji-404__grid { grid-template-columns: minmax(0, 1fr); }
}

/* Warenkorb: Einheit („Exemplar“, „Personen“) lag neben dem Mengenfeld und
   überdeckte den Steuerhinweis der Zwischensumme → unter das Feld */
body.woocommerce-cart table.cart td.product-quantity .quantity {
	display: inline-grid !important;
	grid-template-columns: auto auto auto;
	align-items: center;
	justify-content: center;
	column-gap: 4px;
	width: auto !important;
}
body.woocommerce-cart table.cart td.product-quantity .ji-qty-unit {
	grid-column: 1 / -1;
	width: auto !important;
	margin: 4px 0 0 !important;
	text-align: center;
	white-space: normal;
}
body.ji-shop-page .cart_totals .woocommerce-shipping-methods label,
body.ji-shop-page #order_review .woocommerce-shipping-methods label {
	color: var(--ji-text) !important;
}

/* Warenkorb-Summe: The7 macht die Tabelle zu Blöcken (Beschriftung und Betrag
   untereinander, Betrag rechts unten) → wie in der Kasse: Beschriftung links, Betrag rechts */
body.ji-shop-page .cart_totals table.shop_table { display: table !important; width: 100% !important; }
body.ji-shop-page .cart_totals table.shop_table tbody { display: table-row-group !important; }
body.ji-shop-page .cart_totals table.shop_table tr { display: table-row !important; }
body.ji-shop-page .cart_totals table.shop_table th,
body.ji-shop-page .cart_totals table.shop_table td {
	display: table-cell !important;
	vertical-align: top;
	border-bottom: 1px solid var(--ji-border) !important;
}
body.ji-shop-page .cart_totals table.shop_table th {
	width: 38%;
	padding-right: 12px !important;
	text-align: left;
	font-weight: var(--ji-semibold, 600);
}
body.ji-shop-page .cart_totals table.shop_table td::before { display: none !important; } /* data-title der responsiven Tabelle */
body.ji-shop-page .cart_totals table.shop_table tr.order-total th,
body.ji-shop-page .cart_totals table.shop_table tr.order-total td { border-bottom: 0 !important; }

/* Rot nur für die Gesamtsumme – Zwischensumme und Versand in Textfarbe (The7-Akzent überschreiben) */
body.ji-shop-page .cart_totals tr:not(.order-total) .amount,
body.ji-shop-page #order_review tfoot tr:not(.order-total) .amount,
body.ji-shop-page .ji-check-page tfoot tr:not(.order-total) .amount,
body.ji-shop-page table.shop_table tfoot tr.cart-subtotal .amount,
body.ji-shop-page table.shop_table tfoot tr.shipping .amount,
body.ji-shop-page table.shop_table tfoot tr.woocommerce-shipping-totals .amount {
	color: var(--ji-text) !important;
}

/* Versandhinweis unter dem Button war mobil 9 px */
body.ji-shop-page .wc-cart-shipping-notice small,
body.ji-shop-page .wc-cart-shipping-notice {
	font-size: 12px !important;
	line-height: 1.45;
}

/* The7 („popup-message-style“) macht Hinweise zu fixierten Popups. Auf allen Shop-Seiten
   stehen sie im Seitenfluss – z. B. „Bitte melden Sie sich an …“ auf der Danke-Seite */
body.ji-shop-page #content .woocommerce > .woocommerce-info,
body.ji-shop-page #content .woocommerce > .woocommerce-message,
body.ji-shop-page #content .woocommerce > .woocommerce-error,
body.ji-shop-page #content .woocommerce-notices-wrapper > *,
body.ji-shop-page #content .woocommerce > .woocommerce-notices-wrapper > * {
	position: static !important;
	top: auto !important;
	right: auto !important;
	bottom: auto !important;
	left: auto !important;
	transform: none !important;
	width: auto !important;
	max-width: none !important;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: auto !important;
}

/* Anmelde- und E-Mail-Bestätigungsformular (Danke-Seite, wenn die Sitzung nicht passt) */
body.ji-shop-page form.woocommerce-form-login,
body.ji-shop-page form.woocommerce-verify-email {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 20px;
	max-width: 720px;
	margin: 0 0 30px;
	padding: 22px;
	border: 1px solid var(--ji-border);
	border-radius: var(--ji-radius-box);
	background: #fff;
}
body.ji-shop-page form.woocommerce-form-login > *,
body.ji-shop-page form.woocommerce-verify-email > * {
	grid-column: 1 / -1;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}
body.ji-shop-page form.woocommerce-form-login > .form-row-first { grid-column: 1; }
body.ji-shop-page form.woocommerce-form-login > .form-row-last { grid-column: 2; }
body.ji-shop-page form.woocommerce-form-login > .clear { display: none; }
body.ji-shop-page form.woocommerce-form-login label,
body.ji-shop-page form.woocommerce-verify-email label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}
body.ji-shop-page form.woocommerce-form-login input.input-text,
body.ji-shop-page form.woocommerce-verify-email input.input-text {
	width: 100% !important;
	box-sizing: border-box;
}
body.ji-shop-page form.woocommerce-form-login .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 20px 0 0;
	font-weight: 400;
}
body.ji-shop-page form.woocommerce-form-login button[type="submit"],
body.ji-shop-page form.woocommerce-verify-email button[type="submit"] {
	min-height: 44px;
	padding: 0 28px;
	border: 0;
	border-radius: 22px;
	background: var(--ji-gradient);
	color: #fff;
	font-weight: var(--ji-semibold, 600);
}
@media (max-width: 600px) {
	body.ji-shop-page form.woocommerce-form-login { grid-template-columns: minmax(0, 1fr); }
	body.ji-shop-page form.woocommerce-form-login > .form-row-first,
	body.ji-shop-page form.woocommerce-form-login > .form-row-last { grid-column: 1; }
}
/* „Passwort anzeigen“-Knopf: The7 zeigt statt des Auges ein Dreieck → schlichtes Augen-Icon */
body.ji-shop-page .password-input { position: relative; display: block; }
body.ji-shop-page .password-input .show-password-input {
	position: absolute;
	top: 50%;
	right: 10px;
	width: 24px;
	height: 24px;
	margin-top: -12px;
	padding: 0;
	border: 0;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23777'%3E%3Cpath d='M12 5c-5 0-9 4.5-10 7 1 2.5 5 7 10 7s9-4.5 10-7c-1-2.5-5-7-10-7zm0 11.5A4.5 4.5 0 1 1 12 7.5a4.5 4.5 0 0 1 0 9zm0-7a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z'/%3E%3C/svg%3E") center / 20px no-repeat;
	cursor: pointer;
}
body.ji-shop-page .password-input .show-password-input::before,
body.ji-shop-page .password-input .show-password-input::after { display: none !important; content: none !important; }
/* Auge-Knopf: Tap-Ziel 36 px */
body.ji-shop-page .password-input .show-password-input { right: 4px; width: 36px; height: 36px; margin-top: -18px; }

/* ==========================================================================
   2.32.0 – Kasse: Kundenart (JI Shop Core 1.8.0) als drei Auswahlfelder nebeneinander
   ========================================================================== */
#billing_customer_type_field {
	margin-bottom: 18px !important;
}

#billing_customer_type_field > label {
	display: block;
	margin-bottom: 8px;
	font-weight: var(--ji-semibold, 600);
}

#billing_customer_type_field .woocommerce-input-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

#billing_customer_type_field input.input-radio {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

#billing_customer_type_field label.radio {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	margin: 0 !important;
	padding: 10px 16px;
	border: 1px solid #cfcfcf;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	font-weight: 400;
	line-height: 1.3;
}

#billing_customer_type_field label.radio::before {
	content: "";
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	border: 1px solid #9a9a9a;
	border-radius: 50%;
	background: #fff;
}

#billing_customer_type_field input.input-radio:checked + label.radio {
	border-color: var(--ji-red, #d20a11);
	box-shadow: 0 0 0 1px var(--ji-red, #d20a11) inset;
}

#billing_customer_type_field input.input-radio:checked + label.radio::before {
	border-color: var(--ji-red, #d20a11);
	background: radial-gradient(circle, var(--ji-red, #d20a11) 0 4px, #fff 5px);
}

#billing_customer_type_field input.input-radio:focus-visible + label.radio {
	outline: 2px solid var(--ji-red, #d20a11);
	outline-offset: 2px;
}

#billing_customer_type_field input.input-radio:disabled + label.radio {
	opacity: .45;
	cursor: not-allowed;
}

@media (max-width: 778px) {
	#billing_customer_type_field label.radio {
		flex: 1 1 100%;
	}
}

#billing_customer_type_field label.radio abbr.required,
#billing_customer_type_field label.radio .optional {
	display: none;
}

/* 2.32.0: Prüfen & Bestellen – Abstand zwischen „Fast fertig! …“ und den Kästen darunter */
body.ji-shop-check .woocommerce-info + form.wgm-second-checkout,
body.ji-shop-check .woocommerce-notices-wrapper + form.wgm-second-checkout {
	margin-top: 28px !important;
}

/* 2.32.0: Hinweis „Platz reserviert …“ unter dem Warenkorb-Button / auf der Danke-Seite */
.ji-booking-note {
	margin: 12px 0 0 !important;
	padding: 10px 12px;
	border-left: 3px solid var(--ji-red, #d20a11);
	background: #f7f7f7;
	font-size: 14px;
	line-height: 1.45;
	color: var(--ji-text, #3c3c3c);
}

/* Kundenart: Hinweis für Unternehmen ohne USt-IdNr. */
#billing_customer_type_field .ji-ct-hint {
	display: block;
	flex-basis: 100%;
	margin-top: 4px;
	font-size: 13px;
	color: #6b6b6b;
}

/* ==========================================================================
   2.33.0 – Aufzählungen in Produktbeschreibungen: wie auf der Website rote Quadrate;
   grüne Häkchen nur, wenn die Liste den Stil „Mit Häkchen“ hat (Block-Editor › Liste › Stile)
   oder vom Shop selbst erzeugt wird (Kurzbeschreibung oben, Paket-Leistungen).
   „Nicht enthalten“ (x) und „Gut zu wissen“ (Punkte) bleiben wie bisher.
   ========================================================================== */
.ji-program__section:not(.is-excluded):not(.is-notes):not(.is-outcome) .ji-program__content ul:not(.is-style-with-red-hooks):not(.is-style-with-white-hooks) > li {
	padding-left: 22px !important;
}

.ji-program__section:not(.is-excluded):not(.is-notes):not(.is-outcome) .ji-program__content ul:not(.is-style-with-red-hooks):not(.is-style-with-white-hooks) > li::before {
	top: .62em !important;
	left: 3px !important;
	width: 7px !important;
	height: 7px !important;
	border-radius: 0 !important;
	background: var(--ji-red, #d20a11) !important;
}

/* nummerierte Listen: Zahlen statt Symbol */
.ji-program__section .ji-program__content ol {
	list-style: decimal !important;
	padding-left: 1.4em !important;
}

.ji-program__section .ji-program__content ol > li {
	padding-left: 4px !important;
	list-style: decimal !important;
}

.ji-program__section .ji-program__content ol > li::before {
	content: none !important;
}

/* 2.34.1 – Kasse „Ihre Daten“: Ausrichtung je Kundenart
   Privatperson: „Firma“ (freiwillig) über die volle Breite, damit Vorname/Nachname wieder nebeneinander stehen.
   Behörde: „Leitweg-ID“ mit demselben Abstand und Strich wie „Firma“/„USt-IdNr.“ (stand 8 px höher). */
body.woocommerce-checkout .ji-customer-type[data-type="private"] ~ #billing_company_field {
	flex: 1 1 100% !important;
}

body.woocommerce-checkout #billing_leitweg_id_field {
	flex: 1 1 calc(50% - 8px) !important;
	margin-top: 8px !important;
	padding-top: 16px !important;
	border-top: 1px solid var(--ji-border-light);
}

@media (max-width: 778px) {
	body.woocommerce-checkout #billing_leitweg_id_field {
		flex: 1 1 100% !important;
		margin-top: 0 !important;
		padding-top: 0 !important;
		border-top: 0;
	}
}

/* 2.34.2 – Kasse: Fehlertext direkt unter dem Feld (WooCommerce „checkout-inline-error-message“)
   war ungestaltet (15 px grau, ohne Abstand) und brach in schmalen Spalten in drei Zeilen um. */
body.woocommerce-checkout .checkout-inline-error-message {
	margin: 4px 0 0 !important;
	font-size: 12px !important;
	line-height: 1.35 !important;
	color: var(--ji-red, #d20a11) !important;
}

/* 2.34.3 – Kasse/Prüfseite: Fehlerliste oben lesbar
   The7 macht ul.woocommerce-error-text zu einer Flex-Zeile → mehrere Meldungen standen ohne Leerzeichen
   hintereinander („…Pflichtfeld.Rechnung: Nachname …“). Jetzt: jede Meldung eine eigene Zeile mit Punkt.
   Außerdem begrenzte The7 den Kasten auf 500 px Höhe (Rest abgeschnitten). */
body.woocommerce-checkout .woocommerce-NoticeGroup .woocommerce-error,
body.woocommerce-checkout .woocommerce-notices-wrapper .woocommerce-error,
body.ji-shop-check .woocommerce-error {
	display: block !important;
	height: auto !important;
	max-height: none !important;
	overflow: visible !important;
}

body.woocommerce-checkout .woocommerce-error ul.woocommerce-error-text,
body.ji-shop-check .woocommerce-error ul.woocommerce-error-text,
body.woocommerce-checkout .woocommerce-error ul,
body.ji-shop-check .woocommerce-error ul {
	display: block !important;
	white-space: normal !important; /* The7 setzt pre-wrap: Zeilenumbrüche/Tabs zwischen den <li> wurden zu Leerzeilen */
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.woocommerce-checkout .woocommerce-error li,
body.ji-shop-check .woocommerce-error li {
	position: relative;
	width: auto !important;
	margin: 0 0 6px !important;
	padding: 0 0 0 14px !important;
	background: radial-gradient(circle, var(--ji-red, #d20a11) 2.5px, transparent 3px) 0 .72em / 6px 6px no-repeat !important;
}

body.woocommerce-checkout .woocommerce-error li:last-child,
body.ji-shop-check .woocommerce-error li:last-child {
	margin-bottom: 0 !important;
}

body.woocommerce-checkout .woocommerce-error li a,
body.ji-shop-check .woocommerce-error li a {
	white-space: normal !important;
}

/* 2.35.0 – Gutschein: Kasse ohne Gutschein-Hinweis, Warenkorb mit zugeklapptem Feld */
body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout form.checkout_coupon,
body.woocommerce-checkout .wc-coupon-wrap {
	display: none !important;
}

body.woocommerce-cart .woocommerce-cart-form .coupon.is-collapsed {
	display: none !important;
}

body.woocommerce-cart .ji-coupon-toggle {
	display: inline-block;
	margin: 0;
	min-height: 40px; /* Tippfläche mobil */
	padding: 10px 0;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	color: var(--ji-red, #d20a11) !important;
	font-size: 14px;
	font-weight: var(--ji-semibold, 600);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

body.woocommerce-cart .ji-coupon-toggle:hover,
body.woocommerce-cart .ji-coupon-toggle:focus-visible {
	color: var(--ji-red2, #9d383d) !important;
}

body.woocommerce-cart .ji-coupon-toggle[hidden] {
	display: none !important;
}

/* The7 gibt dem Gutscheinfeld 50 px Innenabstand unten → Feld stand höher als „Warenkorb aktualisieren“ */
body.woocommerce-cart table.cart .cart-footer .coupon {
	padding: 0 !important;
	margin: 0 !important;
}

body.woocommerce-cart table.cart .cart-footer .coupon::before,
body.woocommerce-cart table.cart .cart-footer .coupon::after {
	display: none !important;
}

body.woocommerce-cart table.cart .cart-footer .coupon > * {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* 2.36.0 – Versandart in Warenkorb/Kasse: kein rotes Listenquadrat vor „Versandkostenpauschale“ (The7-Listenstil) */
ul.woocommerce-shipping-methods,
ul.woocommerce-shipping-methods li,
#shipping_method,
#shipping_method li {
	list-style: none !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
}

/* 2.37.0 – Seite „Vertrag widerrufen“ */
.ji-revoke {
	max-width: 1000px;
	color: var(--ji-text);
}

.ji-revoke__lead {
	max-width: 720px;
	margin: 0 0 20px !important;
	font-size: 16px;
	line-height: 1.6;
}

.ji-revoke__steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 0 0 28px !important;
	padding: 0 !important;
	list-style: none !important;
	counter-reset: jirev;
}

.ji-revoke__steps li {
	position: relative;
	margin: 0 !important;
	padding: 14px 16px 14px 52px !important;
	border: 1px solid var(--ji-border-light, #e5e5e5);
	border-radius: var(--ji-radius-box, 8px);
	background: #fff;
	font-size: 14px;
	line-height: 1.45;
	counter-increment: jirev;
}

.ji-revoke__steps li::before {
	content: counter(jirev) !important;
	position: absolute;
	top: 14px;
	left: 14px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--ji-red, #d20a11) !important;
	color: #fff;
	font-size: 13px;
	font-weight: var(--ji-semibold, 600);
}

.ji-revoke__steps strong {
	display: block;
	margin-bottom: 2px;
	color: var(--ji-heading, #333);
}

.ji-revoke__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 24px;
	align-items: start;
}

.ji-revoke__grid::before,
.ji-revoke__grid::after {
	display: none !important;
}

.ji-revoke__card {
	padding: 24px 28px 28px;
	border: 1px solid var(--ji-border-light, #e5e5e5);
	border-radius: var(--ji-radius-box, 8px);
	background: #fff;
	box-shadow: 0 4px 18px rgba(0, 0, 0, .05);
}

.ji-revoke__title {
	margin: 0 0 16px !important;
	font-size: 20px !important;
}

.ji-revoke .german-market-withdrawal-form-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4px 16px;
}

.ji-revoke .german-market-withdrawal-form-fields > .form-row,
.ji-revoke .german-market-withdrawal-form-fields > .clear {
	float: none !important;
	width: auto !important;
	margin: 0 0 12px !important;
	padding: 0 !important;
}

.ji-revoke .german-market-withdrawal-form-fields > .clear {
	display: none;
}

.ji-revoke .german-market-withdrawal-form-fields > .form-row-submit,
.ji-revoke .german-market-withdrawal-form-fields > .withdrawal-form-cc-site-url-wrapper {
	grid-column: 1 / -1;
}

.ji-revoke .withdrawal-form-cc-site-url-wrapper {
	position: absolute !important;
	left: -9999px !important;
}

.ji-revoke label {
	display: block;
	margin-bottom: 4px;
	font-size: 13px;
	font-weight: var(--ji-semibold, 600);
}

.ji-revoke label .required {
	color: var(--ji-red, #d20a11);
	text-decoration: none;
}

.ji-revoke input.input-text {
	width: 100% !important;
	height: 42px !important;
	padding: 0 14px !important;
	border: 1px solid var(--ji-border, #ccc) !important;
	border-radius: 21px !important;
	background: #fff !important;
	font-size: 15px !important;
}

.ji-revoke input.input-text:focus {
	border-color: var(--ji-red, #d20a11) !important;
	outline: none;
	box-shadow: 0 0 0 3px rgba(210, 10, 17, .12);
}

.ji-revoke .privacy-policy-applies {
	display: block;
	margin: 4px 0 14px;
	font-size: 13px;
}

.ji-revoke button[name="submit-withdrawal"] {
	min-height: 44px;
	padding: 0 28px !important;
	border: 0 !important;
	border-radius: 22px !important;
	background: linear-gradient(90deg, var(--ji-red, #d20a11), var(--ji-red2, #9d383d)) !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: var(--ji-semibold, 600) !important;
	cursor: pointer;
}

.ji-revoke .german-market-withdrawal-form-message:not([hidden]) {
	margin: 0 0 16px !important;
}

.ji-revoke__aside .ji-help {
	margin-top: 0;
}

.ji-revoke__policy {
	margin: 0 0 16px !important;
	padding: 14px 16px;
	border-left: 3px solid var(--ji-red, #d20a11);
	background: var(--ji-bg-soft, #f5f5f5);
	font-size: 14px;
	line-height: 1.5;
}

@media (max-width: 900px) {
	.ji-revoke__steps,
	.ji-revoke__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 600px) {
	/* mobil kompakt, damit das Formular schnell erreichbar ist */
	.ji-revoke__lead {
		font-size: 15px;
		margin-bottom: 14px !important;
	}
	.ji-revoke__steps {
		gap: 8px;
		margin-bottom: 18px !important;
	}
	.ji-revoke__steps li {
		padding: 2px 0 2px 38px !important;
		border: 0;
		background: none;
		font-size: 13px;
	}
	.ji-revoke__steps li::before {
		top: 2px;
		left: 0;
		width: 24px;
		height: 24px;
		font-size: 12px;
	}
	.ji-revoke__card {
		padding: 18px 16px 20px;
	}
	.ji-revoke .german-market-withdrawal-form-fields {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* 2.38.0 – Warenkorb mobil als Karte: × oben rechts statt eigener Zeile, kleines Produktbild,
   Steuerhinweis und Bruttobetrag untereinander, weniger Leerraum */
@media (max-width: 778px) {
	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item {
		position: relative;
		display: block !important;
		padding: 14px 0 10px !important;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-remove {
		position: absolute !important;
		top: 12px;
		right: 12px;
		z-index: 2;
		display: block !important;
		width: auto !important;
		padding: 0 !important;
		border: 0 !important;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-remove a.remove {
		width: 32px !important;
		height: 32px !important;
		font-size: 20px !important;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-thumbnail {
		display: block !important;
		padding: 0 60px 6px 16px !important;
		text-align: left !important;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-thumbnail::before {
		display: none !important;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-thumbnail img {
		width: 64px !important;
		height: auto !important;
		border-radius: 6px;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-name {
		display: block !important;
		padding: 0 60px 8px 16px !important;
		text-align: left !important;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-name::before {
		display: none !important;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-price,
	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-quantity,
	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-subtotal {
		justify-content: space-between !important;
		text-align: right !important;
		padding: 6px 16px !important;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-subtotal .wgm-break {
		display: none;
	}

	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-subtotal .wgm-tax,
	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-subtotal .ji-price-gross--line {
		display: block;
		flex-basis: 100%;
		margin: 0;
		text-align: right;
		font-size: 12px;
	}
}

/* 2.38.0 – Entfernen-× im Warenkorb war fast unsichtbar: The7 legt eine Maske (x-lg.svg) über den ganzen Kreis */
body.ji-shop-page .woocommerce a.remove {
	-webkit-mask-image: none !important;
	mask-image: none !important;
}

@media (max-width: 778px) {
	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-name,
	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-name * {
		text-align: left !important;
		justify-content: flex-start !important;
	}
	body.ji-shop-page.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-thumbnail a {
		display: inline-block;
		border: 0 !important;
	}
}

/* 2.38.0 – Suche ohne Treffer, mobil: Suchfeld darf schrumpfen (The7 setzt eine feste Breite), Button bleibt im Kasten */
.ji-search-help__form input[type=search] {
	width: auto !important;
	min-width: 0 !important;
}

/* 2.38.0 – „Sie bestellen als“: Pflicht-Sternchen nur an der Frage, nicht an jeder Auswahl (WooCommerce setzt es an jede Option) */
#billing_customer_type_field label.radio .required,
#billing_customer_type_field label.radio abbr.required {
	display: none !important;
}

/* 2.38.0 – Add-ons: Steuerhinweis unter dem Preis */
.ji-addon__tax {
	margin: -4px 0 8px !important;
	font-size: 12px;
	line-height: 1.4;
	text-align: right;
}

/* 2.38.0 – „Pakete im Vergleich“: Paketname immer zweizeilig reserviert, damit Preise und Listen auf einer Höhe beginnen */
@media (min-width: 779px) {
	.ji-package__name {
		min-height: 2.6em;
		display: flex;
		align-items: flex-start;
	}
}

/* 2.38.0 – Bestellübersicht Kasse: Variante („Sprache: Deutsch“) direkt unter dem Produktnamen statt eingerückt und mit Lücke
   (WooCommerce setzt hinter den Namen ein &nbsp;, das eine leere Zeile erzeugt) */
body.woocommerce-checkout #order_review td.product-name {
	font-size: 0 !important;
}

body.woocommerce-checkout #order_review td.product-name > * {
	font-size: 14px;
	line-height: 1.4;
}

@media (max-width: 560px) {
	body.woocommerce-checkout #order_review td.product-name dl.variation,
	body.woocommerce-checkout #order_review td.product-name .ji-co-item ~ .variation {
		margin-left: 52px !important;
	}
}

/* 2.39.0 – Verfügbarkeit: grüner Haken / oranges Ausrufezeichen (wenige Plätze) / rotes X (ausgebucht) */
.ji-buybox p.stock.in-stock::before,
.ji-buybox .woocommerce-variation-availability p.stock.in-stock::before {
	background-image: url("icons/avail-check.svg") !important;
}
.ji-buybox p.stock.in-stock.ji-avail-few::before,
.ji-buybox .woocommerce-variation-availability p.stock.in-stock.ji-avail-few::before {
	left: 2px;
	top: 0;
	width: 16px;
	height: 16px;
	background-image: url("icons/avail-few.svg") !important;
	background-size: contain;
}
.ji-buybox p.stock.in-stock.ji-avail-few,
.ji-buybox .woocommerce-variation-availability p.stock.in-stock.ji-avail-few {
	color: #b35900 !important;
}
.ji-buybox p.stock.out-of-stock,
.ji-buybox .woocommerce-variation-availability p.stock.out-of-stock {
	position: relative;
	padding-left: 24px !important;
	color: var(--ji-red) !important;
}
.ji-buybox p.stock.out-of-stock::before,
.ji-buybox .woocommerce-variation-availability p.stock.out-of-stock::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 0;
	width: 16px;
	height: 16px;
	background: url("icons/avail-soldout.svg") no-repeat center / contain;
}

/* 2.39.1 – Ausgebucht: „Vertrieb kontaktieren“ mit Abstand zu „Ausgebucht“ */
.ji-buybox .ji-buybox__sales {
	order: 10;
	margin-top: 22px;
}

/* 2.41.2 – „Was Sie am Ende haben“ (Kacheln): immer grüner Haken, auch wenn die Liste im Block-Editor
   keinen Stil „Mit Häkchen“ hat – das rote Quadrat der normalen Aufzählung klebte sonst oben links in der Kachel */
.ji-program__section.is-outcome .ji-program__content li::before {
	content: "" !important;
	position: absolute;
	left: 16px !important;
	top: 16px !important;
	width: 20px !important;
	height: 20px !important;
	border-radius: 0 !important;
	background: url("icons/check-green.svg") no-repeat center / contain !important;
}
.ji-program__section.is-outcome .ji-program__content li {
	position: relative;
	list-style: none !important;
}

/* 2.41.3 – Produktname unter dem Bild, über dem Untertitel (Seiten mit Kopfband) */
.ji-program__head .ji-single__name {
	margin: 18px 0 0 !important;
	color: var(--ji-text);
	font-size: 24px;
	font-weight: var(--ji-semibold);
	line-height: 1.25;
}
@media (max-width: 778px) {
	.ji-program__head .ji-single__name { font-size: 20px; }
}
