.jh-pc {
	--jh-pc-blue: #024f9a;
	--jh-pc-light-blue: #417bb3;
	--jh-pc-green: #008b7c;
	--jh-pc-dark: #393939;
	--jh-pc-grey: #5e5e5e;
	--jh-pc-line: #dfe4e8;
	color: var(--jh-pc-dark);
	box-sizing: border-box;
	font-family: inherit;
	margin: 32px 0;
	max-width: 100%;
	padding: 0;
	width: 100%;
}

.jh-pc-preconfig-intro {
	color: var(--jh-pc-dark);
	font-size: 15px;
	line-height: 1.55;
	margin: 0 0 18px;
	max-width: 860px;
}

.jh-pc-preconfig-intro p {
	margin: 0;
}

.jh-pc-preconfig-layout {
	display: grid;
	gap: 20px;
	grid-template-columns: minmax(240px, .38fr) minmax(0, 1.62fr);
}

.jh-pc-preconfig-form {
	align-content: start;
	background: rgba(255, 255, 255, .92);
	border: 1px solid rgba(2, 79, 154, .14);
	border-radius: 7px;
	display: grid;
	gap: 14px;
	padding: 18px;
}

.jh-pc-preconfig-form label {
	display: grid;
	gap: 6px;
	position: relative;
}

.jh-pc-preconfig-form label span {
	color: var(--jh-pc-dark);
	font-size: 13px;
	font-weight: 800;
}

.jh-pc-preconfig-form input {
	background: #ffffff;
	border: 1px solid var(--jh-pc-line);
	border-radius: 5px;
	color: var(--jh-pc-dark);
	font-size: 16px;
	font-weight: 700;
	min-height: 42px;
	padding: 8px 46px 8px 10px;
	width: 100%;
}

.jh-pc-preconfig-form select {
	background: #ffffff;
	border: 1px solid var(--jh-pc-line);
	border-radius: 5px;
	color: var(--jh-pc-dark);
	font-size: 16px;
	font-weight: 700;
	min-height: 42px;
	padding: 8px 56px 8px 10px;
	width: 100%;
}

.jh-pc-preconfig-form label.has-select em {
	pointer-events: none;
}

.jh-pc-preconfig-form em {
	bottom: 11px;
	color: var(--jh-pc-grey);
	font-size: 13px;
	font-style: normal;
	font-weight: 700;
	position: absolute;
	right: 11px;
}

.jh-pc-preconfig-targets {
	align-items: stretch;
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
}

.jh-pc-preconfig-target {
	align-content: start;
	align-items: start;
	background: #ffffff;
	border: 1px solid rgba(2, 79, 154, .14);
	border-left: 5px solid var(--jh-pc-light-blue);
	border-radius: 7px;
	display: grid;
	gap: 12px;
	grid-template-columns: 220px minmax(0, 1fr);
	padding: 16px;
}

.jh-pc-preconfig-target-image {
	align-items: center;
	background: #ffffff;
	display: flex;
	grid-row: span 2;
	height: 160px;
	justify-content: center;
	overflow: hidden;
	width: 220px;
}

.jh-pc-preconfig-target-image img {
	cursor: zoom-in;
	display: block;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.jh-pc-preconfig-target-content {
	grid-column: 2;
}

.jh-pc-preconfig-target.no-image .jh-pc-preconfig-target-content,
.jh-pc-preconfig-target.no-image .jh-pc-preconfig-button {
	grid-column: 1 / -1;
}

.jh-pc-preconfig-target.is-match {
	border-left-color: var(--jh-pc-green);
	box-shadow: 0 12px 26px rgba(0, 139, 124, .1);
}

.jh-pc-preconfig-target strong {
	color: var(--jh-pc-blue);
	display: block;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.25;
}

.jh-pc-preconfig-target span {
	color: var(--jh-pc-green);
	display: block;
	font-size: 13px;
	font-weight: 800;
	margin-top: 4px;
}

.jh-pc-preconfig-target p {
	color: var(--jh-pc-grey);
	font-size: 14px;
	line-height: 1.45;
	margin: 8px 0 0;
}

.jh-pc-preconfig-button {
	align-items: center;
	background: var(--jh-pc-green);
	border: 1px solid var(--jh-pc-green);
	border-radius: 4px;
	color: #ffffff;
	display: inline-flex;
	font-size: 14px;
	font-weight: 800;
	grid-column: 2;
	justify-content: center;
	min-height: 42px;
	padding: 10px 16px;
	text-decoration: none;
	white-space: nowrap;
	width: max-content;
}

.jh-pc-preconfig-target-content[hidden],
.jh-pc-preconfig-button[hidden] {
	display: none !important;
}

.jh-pc-preconfig-target.is-match {
	opacity: 1;
}

.jh-pc-preconfig-backbar {
	margin-bottom: 16px;
}

.jh-pc-preconfig-back {
	align-items: center;
	background: #ffffff;
	border: 1px solid var(--jh-pc-blue);
	border-radius: 4px;
	color: var(--jh-pc-blue);
	display: inline-flex;
	font-size: 14px;
	font-weight: 800;
	min-height: 38px;
	padding: 8px 14px;
	text-decoration: none;
}

.jh-pc-preconfig-back:hover,
.jh-pc-preconfig-back:focus {
	background: var(--jh-pc-blue);
	color: #ffffff;
}

.jh-pc-preconfig-button:hover,
.jh-pc-preconfig-button:focus {
	background: #ffffff;
	color: var(--jh-pc-green);
}

.jh-pc-preconfig-empty {
	background: #ffffff;
	border: 1px solid rgba(202, 38, 45, .22);
	border-left: 5px solid #e00000;
	border-radius: 7px;
	color: #a51f25;
	font-weight: 700;
	margin: 0;
	padding: 14px 16px;
}

.jh-pc-selected-configurator {
	margin-top: 30px;
	scroll-margin-top: 24px;
}

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

.jh-pc-workspace {
	background:
		linear-gradient(135deg, rgba(2, 79, 154, .08) 0%, rgba(0, 139, 124, .07) 42%, rgba(255, 255, 255, .96) 100%),
		#f7f9fb;
	border: 1px solid rgba(2, 79, 154, .14);
	border-top: 5px solid var(--jh-pc-green);
	border-radius: 8px;
	box-shadow: 0 22px 52px rgba(57, 57, 57, .12);
	overflow: hidden;
	padding: clamp(20px, 3vw, 34px);
}

.jh-pc-brandbar {
	align-items: center;
	background: rgba(255, 255, 255, .86);
	border: 1px solid rgba(2, 79, 154, .12);
	border-radius: 6px;
	display: grid;
	gap: 18px;
	grid-template-columns: minmax(150px, 210px) minmax(0, 1fr);
	margin-bottom: 26px;
	padding: 18px 22px;
}

.jh-pc-brandmark {
	align-items: center;
	display: flex;
	min-width: 150px;
}

.jh-pc-brandmark img {
	display: block;
	height: auto;
	max-height: 52px;
	max-width: 210px;
	object-fit: contain;
	width: auto;
}

.jh-pc-brandcopy {
	border-left: 1px solid rgba(2, 79, 154, .16);
	display: grid;
	gap: 4px;
	padding-left: 22px;
	text-align: left;
}

.jh-pc-brandcopy span {
	color: var(--jh-pc-green);
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
}

.jh-pc-brandcopy strong {
	color: var(--jh-pc-blue);
	font-size: clamp(19px, 1.65vw, 25px);
	line-height: 1.18;
}

.jh-pc-shell {
	align-items: stretch;
	display: grid;
	gap: 22px;
	grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
	width: 100%;
}

.jh-pc-stage,
.jh-pc-detail {
	background: rgba(255, 255, 255, .9);
	border: 1px solid rgba(2, 79, 154, .12);
	border-radius: 8px;
	min-width: 0;
	padding: clamp(18px, 2vw, 24px);
}

.jh-pc-stage {
	display: flex;
	flex-direction: column;
	height: auto;
	max-height: none;
	min-height: 0;
	position: sticky;
	top: 24px;
}

.jh-pc-stage h3,
.jh-pc-detail h3 {
	color: var(--jh-pc-blue);
	font-size: 22px;
	line-height: 1.25;
	margin: 0 0 18px;
}

.jh-pc-visual .jh-pc-stage h3,
.jh-pc-visual .jh-pc-detail h3 {
	display: none;
}

.jh-pc-position-list {
	display: grid;
	flex: 1 1 auto;
	gap: 12px;
	min-height: 0;
	max-height: none;
	overflow-y: auto;
	padding: 3px 8px 3px 3px;
	scrollbar-color: var(--jh-pc-light-blue) #eef3f7;
	scrollbar-width: thin;
}

.jh-pc-position-list::-webkit-scrollbar {
	width: 8px;
}

.jh-pc-position-list::-webkit-scrollbar-thumb {
	background: var(--jh-pc-light-blue);
	border-radius: 999px;
}

.jh-pc-position-list::-webkit-scrollbar-track {
	background: #eef3f7;
	border-radius: 999px;
}

.jh-pc-position {
	align-items: start;
	background: #ffffff;
	border: 1px solid var(--jh-pc-line);
	border-radius: 6px;
	color: var(--jh-pc-dark);
	display: grid;
	gap: 18px;
	grid-template-areas: "visual content";
	grid-template-columns: 270px minmax(0, 1fr);
	min-height: 282px;
	overflow: hidden;
	padding: 16px;
	position: relative;
	text-align: left;
	transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
	width: 100%;
}

.jh-pc-position-depth-1 {
	margin-left: 34px;
	width: calc(100% - 34px);
}

.jh-pc-position-depth-2 {
	margin-left: 58px;
	width: calc(100% - 58px);
}

.jh-pc-position-depth-3 {
	margin-left: 82px;
	width: calc(100% - 82px);
}

.jh-pc-position:hover,
.jh-pc-position:focus,
.jh-pc-position.is-active {
	border-color: var(--jh-pc-green);
	box-shadow: 0 10px 24px rgba(0, 139, 124, .12);
	outline: 0;
}

.jh-pc-position.is-active::after {
	border: 2px solid var(--jh-pc-green);
	border-radius: 6px;
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 2;
}

.jh-pc-position:hover,
.jh-pc-position:focus {
	transform: translateY(-1px);
}

.jh-pc-position-bundle-child {
	background: #f6f9fb;
	border-color: #e5ebf0;
	cursor: pointer;
	gap: 14px;
	grid-template-areas:
		"visual content"
		"quantity quantity";
	grid-template-columns: 160px minmax(0, 1fr);
	min-height: 166px;
	padding: 14px;
}

.jh-pc-bundle-children {
	display: grid;
	gap: 12px;
}

.jh-pc-bundle-children[hidden] {
	display: none;
}

.jh-pc-bundle-toggle {
	align-items: center;
	background: rgba(255, 255, 255, .96);
	border: 1px solid #dfe4e8;
	border-radius: 8px;
	box-shadow: 0 4px 10px rgba(0, 0, 0, .08);
	color: var(--jh-pc-blue);
	cursor: pointer;
	display: inline-flex;
	font-size: 12px;
	font-weight: 700;
	height: 28px;
	justify-content: center;
	letter-spacing: .01em;
	line-height: 1;
	padding: 0 10px;
	position: absolute;
	bottom: 8px;
	left: 8px;
	width: 32px;
	z-index: 3;
}

.jh-pc-bundle-toggle::before {
	content: "×";
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
}

.jh-pc-bundle-toggle[aria-expanded="false"]::before {
	content: "Konfigurieren";
	font-size: 11px;
}

.jh-pc-bundle-toggle[aria-expanded="false"] {
	width: auto;
}

.jh-pc-bundle-toggle:hover,
.jh-pc-bundle-toggle:focus {
	background: #ffffff;
	border-color: var(--jh-pc-green);
	color: var(--jh-pc-green);
	outline: 0;
}

.jh-pc-position-bundle-child:hover,
.jh-pc-position-bundle-child:focus {
	border-color: var(--jh-pc-green);
	box-shadow: 0 8px 18px rgba(0, 139, 124, .1);
	outline: 0;
}

.jh-pc-position-content {
	display: grid;
	gap: 6px;
	grid-area: content;
	align-content: start;
	height: 100%;
	min-width: 0;
	padding: 4px 4px 54px 0;
}

.jh-pc-position[data-bundle-parent] .jh-pc-position-content {
	padding-bottom: 4px;
}

.jh-pc-position-kicker {
	color: var(--jh-pc-green);
	font-size: 10px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
}

.jh-pc-position-note {
	color: var(--jh-pc-grey);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.35;
}

.jh-pc-position-meta {
	display: grid;
	gap: 3px;
	grid-template-columns: 1fr;
	margin-top: 4px;
}

.jh-pc-position-meta span {
	align-items: baseline;
	background: transparent;
	border: 0;
	border-radius: 0;
	display: flex;
	gap: 6px;
	padding: 0;
}

.jh-pc-position-meta b {
	color: #525f68;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.35;
}

.jh-pc-position-meta em {
	color: #6d7880;
	font-size: 13px;
	font-style: normal;
	font-weight: 400;
	line-height: 1.35;
}

.jh-pc-position-meta em strong {
	color: inherit;
	font-weight: inherit;
}

.jh-pc-position-custom-fields {
	display: grid;
	gap: 6px;
	margin-top: 6px;
}

.jh-pc-position-custom-fields[hidden],
.jh-pc-position-custom-field[hidden] {
	display: none !important;
}

.jh-pc-position-custom-field {
	background: linear-gradient(135deg, rgba(2, 79, 154, .06), rgba(0, 139, 124, .08));
	border: 1px solid rgba(2, 79, 154, .16);
	border-left: 3px solid var(--jh-pc-green);
	border-radius: 6px;
	display: grid;
	column-gap: 8px;
	row-gap: 3px;
	grid-template-columns: 34px minmax(0, 1fr);
	grid-template-areas:
		". label"
		"key value";
	padding: 7px 9px 8px;
}

.jh-pc-position-custom-field strong {
	align-items: center;
	background: transparent;
	border-radius: 0;
	color: var(--jh-pc-blue);
	display: inline-flex;
	font-size: 14px;
	font-weight: 800;
	grid-area: key;
	justify-content: flex-end;
	line-height: 1;
	min-height: 28px;
	min-width: 0;
	padding: 0;
	white-space: nowrap;
}

.jh-pc-position-custom-field strong::after {
	color: #7a8790;
	content: "=";
	font-size: 13px;
	font-weight: 700;
	margin-left: 4px;
}

.jh-pc-position-custom-field span {
	color: var(--jh-pc-dark);
	font-size: 11px;
	font-weight: 700;
	grid-area: label;
	line-height: 1.25;
}

.jh-pc-position-custom-field em {
	background: #ffffff;
	border: 1px solid rgba(2, 79, 154, .14);
	border-radius: 5px;
	color: var(--jh-pc-dark);
	display: block;
	font-size: 13px;
	font-style: normal;
	font-weight: 600;
	grid-area: value;
	line-height: 1.3;
	min-height: 26px;
	padding: 4px 7px;
	text-align: right;
}

.jh-pc-position-field {
	align-items: center;
	align-self: end;
	background: transparent;
	border: 0;
	border-radius: 0;
	display: grid;
	gap: 7px;
	margin-top: auto;
	padding: 0;
}

.jh-pc-position-field strong {
	align-items: center;
	background: var(--jh-pc-blue);
	border-radius: 4px;
	color: #ffffff;
	display: inline-flex;
	font-size: 13px;
	font-weight: 800;
	justify-content: center;
	line-height: 1;
	min-height: 26px;
	min-width: 28px;
	padding: 6px 8px;
}

.jh-pc-position-field span {
	color: #525f68;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.25;
}

.jh-pc-position-field em {
	background: #eef2f5;
	border: 1px solid #dfe6ec;
	border-radius: 5px;
	color: var(--jh-pc-grey);
	font-size: 13px;
	font-style: normal;
	font-weight: 500;
	margin-left: 0;
	max-width: 220px;
	min-height: 38px;
	padding: 10px 12px;
	text-align: right;
}

.jh-pc-position-visual {
	background: #ffffff;
	border: 1px solid #e2e7eb;
	border-radius: 5px;
	display: block;
	grid-area: visual;
	height: 250px;
	min-height: 250px;
	padding: 8px;
	position: relative;
	text-align: center;
	width: 100%;
}

.jh-pc-position-image img {
	background: transparent;
	border: 0;
	display: block;
	height: 232px;
	margin: 0 auto;
	max-width: 108%;
	object-fit: contain;
	transform: scale(1.08);
	width: 100%;
}

.jh-pc-position-bundle-child .jh-pc-position-visual {
	height: 138px;
	min-height: 138px;
}

.jh-pc-position-bundle-child .jh-pc-position-image img {
	height: 120px;
	transform: scale(1.06);
}

.jh-pc-position-image-slider {
	display: block;
	position: relative;
}

.jh-pc-position-image-slides {
	display: block;
}

.jh-pc-position-image-slide-wrap {
	display: block;
}

.jh-pc-position-image-slide-wrap[hidden] {
	display: none;
}

.jh-pc-position-image-nav {
	align-items: center;
	background: rgba(255, 255, 255, .92);
	border: 1px solid #e2e7eb;
	border-radius: 50%;
	color: var(--jh-pc-blue);
	cursor: pointer;
	display: flex;
	font-size: 18px;
	height: 30px;
	justify-content: center;
	line-height: 1;
	opacity: 0;
	padding: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: opacity .15s ease, background-color .15s ease;
	width: 30px;
	z-index: 2;
}

.jh-pc-position-image-nav span {
	pointer-events: none;
}

.jh-pc-position-image-slider:hover .jh-pc-position-image-nav,
.jh-pc-position-image-slider:focus-within .jh-pc-position-image-nav {
	opacity: 1;
}

.jh-pc-position-image-nav:hover,
.jh-pc-position-image-nav:focus-visible {
	background: #ffffff;
}

.jh-pc-position-image-prev {
	left: 4px;
}

.jh-pc-position-image-next {
	right: 4px;
}

.jh-pc-position-bundle-child .jh-pc-position-image-nav {
	font-size: 14px;
	height: 24px;
	width: 24px;
}

@media (hover: none) {
	.jh-pc-position-image-nav {
		opacity: 1;
	}
}

.jh-pc-position-badge {
	align-items: center;
	background: var(--jh-pc-blue);
	border: 2px solid #ffffff;
	border-radius: 5px;
	box-shadow: 0 8px 18px rgba(2, 79, 154, .2);
	color: #ffffff;
	display: inline-flex;
	font-size: 18px;
	font-weight: 900;
	justify-content: center;
	left: 10px;
	line-height: 1;
	min-height: 38px;
	min-width: 42px;
	padding: 9px 11px;
	position: absolute;
	top: 10px;
	z-index: 1;
}

.jh-pc-config-qty {
	align-items: center;
	bottom: 14px;
	display: flex;
	gap: 8px;
	position: absolute;
	right: 14px;
	z-index: 3;
}

.jh-pc-config-toggle {
	align-items: center;
	background: #ffffff;
	border: 1px solid #dfe4e8;
	border-radius: 4px;
	cursor: pointer;
	display: inline-flex;
	height: 40px;
	justify-content: center;
	margin: 0;
	padding: 0;
	position: relative;
	width: 40px;
}

.jh-pc-config-toggle::before {
	background: #ffffff;
	border: 1px solid #cfd8df;
	border-radius: 3px;
	content: "";
	display: block;
	height: 22px;
	position: relative;
	width: 22px;
}

.jh-pc-config-toggle.is-active::before {
	background: var(--jh-pc-green);
	border-color: var(--jh-pc-green);
}

.jh-pc-config-toggle.is-active::after {
	color: #ffffff;
	content: "✓";
	font-size: 17px;
	font-weight: 800;
	line-height: 1;
	position: absolute;
}

.jh-pc-config-qty input[type="number"] {
	background: #ffffff;
	border: 1px solid #dfe4e8;
	border-radius: 4px;
	color: var(--jh-pc-grey);
	font-size: 14px;
	font-weight: 700;
	height: 40px;
	line-height: 38px;
	margin: 0;
	padding: 6px;
	text-align: center;
	width: 52px;
}

.jh-pc-config-qty input[type="number"]:focus,
.jh-pc-config-toggle:focus {
	border-color: var(--jh-pc-green);
	box-shadow: 0 0 0 2px rgba(0, 139, 124, .15);
	outline: 0;
}

.jh-pc-position-number {
	display: none !important;
}

.jh-pc-position-title {
	color: var(--jh-pc-dark);
	display: block;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.24;
}

.jh-pc-position-bundle-child .jh-pc-position-title {
	font-size: 15px;
	font-weight: 700;
}

.jh-pc-position-bundle-child .jh-pc-position-content {
	padding-bottom: 4px;
}

.jh-pc-panel {
	background: #ffffff;
	border: 1px solid var(--jh-pc-line);
	border-radius: 6px;
	display: none;
	padding: 20px;
}

.jh-pc-panel.is-active {
	display: block;
}

.jh-pc-panel.has-warning {
	border-color: #ca262d;
}

.jh-pc-product-info {
	display: grid;
	gap: 18px;
	margin-bottom: 18px;
}

.jh-pc-config-images {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.jh-pc-config-image {
	background: #f4f7f9;
	border: 1px solid var(--jh-pc-line);
	border-radius: 6px;
	padding: 14px;
	text-align: center;
}

.jh-pc-config-image img {
	height: auto;
	max-height: 300px;
	max-width: 100%;
	object-fit: contain;
}

.jh-pc img[data-lightbox-src] {
	cursor: zoom-in;
}

.jh-pc-config-image img {
	max-height: 360px;
}

.jh-pc-selected-product {
	display: block;
}

.jh-pc-product-content {
	min-width: 0;
}

.jh-pc-product-title {
	margin-bottom: 14px;
}

.jh-pc-product-title h4 {
	color: var(--jh-pc-blue);
	font-size: 22px;
	line-height: 1.22;
	margin: 0 0 6px;
}

.jh-pc-product-title p {
	color: var(--jh-pc-grey);
	font-weight: 700;
	margin: 0;
}

.jh-pc-product-data {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
}

.jh-pc-product-data div {
	background: #f4f7f9;
	border: 1px solid var(--jh-pc-line);
	border-radius: 4px;
	padding: 10px 12px;
}

.jh-pc-product-data dt {
	color: var(--jh-pc-grey);
	font-size: 13px;
	font-weight: 700;
	margin: 0 0 4px;
}

.jh-pc-product-data dd {
	color: var(--jh-pc-dark);
	font-size: 15px;
	font-weight: 400;
	margin: 0;
}

.jh-pc-product-attributes,
.jh-pc-bundle-items {
	border-top: 1px solid #e2e7eb;
	margin-top: 14px;
	padding-top: 14px;
}

.jh-pc-tabs {
	background: #ffffff;
	border: 1px solid #e2e7eb;
	border-radius: 6px;
	display: grid;
	gap: 0;
	overflow: hidden;
}

.jh-pc-tab-nav {
	align-items: stretch;
	display: grid;
	gap: 0;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.jh-pc-tab-nav button {
	background: #f4f7f9;
	border: 0;
	border-bottom: 1px solid #dfe4e8;
	border-left: 1px solid #dfe4e8;
	border-radius: 0;
	color: var(--jh-pc-grey);
	cursor: pointer;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	min-height: 38px;
	padding: 8px 10px;
	text-align: center;
}

.jh-pc-tab-nav button:first-child {
	border-left: 0;
}

.jh-pc-tab-nav button:hover,
.jh-pc-tab-nav button:focus,
.jh-pc-tab-nav button.is-active {
	background: #ffffff;
	border-bottom-color: #ffffff;
	box-shadow: inset 0 3px 0 var(--jh-pc-green);
	color: var(--jh-pc-blue);
	outline: 0;
}

.jh-pc-tab-panel {
	display: none;
	min-height: 220px;
	padding: 16px;
}

.jh-pc-tab-panel.is-active {
	display: block;
}

.jh-pc-muted {
	color: #7a858d;
	font-size: 14px;
	margin: 0;
}

.jh-pc-description-copy {
	color: var(--jh-pc-dark);
	font-size: 14px;
	line-height: 1.55;
	min-width: 0;
}

.jh-pc-description-copy p {
	margin: 0 0 10px;
}

.jh-pc-description-copy p:last-child {
	margin-bottom: 0;
}

.jh-pc-product-actions {
	align-items: end;
	border-top: 1px solid #e2e7eb;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	margin-top: 14px;
	padding-top: 14px;
}

.jh-pc-product-actions[hidden] {
	display: none !important;
}

.jh-pc-downloads {
	min-width: 0;
}

.jh-pc-product-description h5,
.jh-pc-downloads h5,
.jh-pc-product-attributes h5,
.jh-pc-bundle-items h5 {
	color: var(--jh-pc-blue);
	font-size: 16px;
	line-height: 1.3;
	margin: 0 0 10px;
}

.jh-pc-product-description p {
	margin: 0 0 10px;
}

.jh-pc-product-description p:last-child {
	margin-bottom: 0;
}

.jh-pc-downloads-list {
	display: block;
	min-width: 0;
}

.jh-pc-download-flat {
	align-items: start;
	display: grid !important;
	column-gap: 10px;
	row-gap: 6px;
	grid-auto-flow: row dense;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	width: 100%;
}

.jh-pc-download-entry {
	align-items: start;
	background: #ffffff;
	border: 1px solid #e7ebef;
	border-radius: 4px;
	display: grid;
	font-size: 13px;
	gap: 0;
	grid-template-columns: 1fr;
	line-height: 1.25;
	max-width: 100%;
	min-width: 0;
	padding: 4px 6px;
	position: relative;
}

.jh-pc-download-entry[data-download-url]:not([data-download-url=""]),
.jh-pc-download-entry:has([data-downloadurl]),
.jh-pc-download-entry:has(a[href*="wpdmdl="]) {
	cursor: pointer;
}

.jh-pc-download-entry a[href*="downloadberechtigung"] {
	cursor: pointer;
}

.jh-pc-download-entry-left {
	grid-column: 1;
}

.jh-pc-download-entry-right {
	grid-column: 2;
}

.jh-pc-download-file {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr);
	column-gap: 6px;
	font-size: 13px;
	line-height: 1.2;
	min-width: 0;
}

.jh-pc-download-icon {
	align-self: start;
	grid-column: 1;
	grid-row: 1;
	min-height: 34px;
}

.jh-pc-download-icon:empty {
	display: none;
}

.jh-pc-download-file:has(.jh-pc-download-icon:empty) {
	grid-template-columns: 1fr;
}

.jh-pc-download-file:has(.jh-pc-download-icon:empty) .jh-pc-download-text {
	grid-column: 1;
}

.jh-pc-download-text {
	display: grid;
	gap: 1px;
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
}

.jh-pc-download-title {
	color: var(--jh-pc-dark);
	display: block;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.15;
	min-width: 0;
	overflow: hidden;
	text-align: left;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.jh-pc-download-rendered {
	align-items: center;
	display: contents;
	min-width: 0;
	text-align: left;
}

.jh-pc-download-entry .media,
.jh-pc-download-entry .card,
.jh-pc-download-entry [class*="wpdm"] {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	font-size: 12px !important;
	line-height: 1.2 !important;
	margin: 0 !important;
	max-width: 100% !important;
	min-height: 0 !important;
	padding: 0 !important;
	width: auto !important;
}

.jh-pc-download-entry .media {
	align-items: center !important;
	display: contents !important;
	gap: 0 !important;
}

.jh-pc-download-entry .img-48,
.jh-pc-download-entry .wpdm-icon,
.jh-pc-download-entry .mr-3 {
	margin: 0 !important;
}

.jh-pc-download-entry .media-body,
.jh-pc-download-entry .card-body {
	display: contents !important;
	padding: 0 !important;
	width: auto !important;
}

.jh-pc-download-entry img,
.jh-pc-download-entry .wpdm_icon {
	height: 34px !important;
	max-height: 34px !important;
	max-width: 34px !important;
	object-fit: contain;
	width: 34px !important;
}

.jh-pc-download-rendered img,
.jh-pc-download-rendered .wpdm_icon,
.jh-pc-download-rendered .img-48 {
	display: none !important;
}

.jh-pc-download-entry h3,
.jh-pc-download-entry h4,
.jh-pc-download-entry .package-title,
.jh-pc-download-entry .wpdm-title {
	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	margin: 0 !important;
}

.jh-pc-download-entry a {
	font-size: 12px !important;
	line-height: 1.2 !important;
}

.jh-pc-download-entry .alert,
.jh-pc-download-entry [class*="alert"],
.jh-pc-download-entry .wpdm-access-denied,
.jh-pc-download-entry .wpdm-permission-denied {
	background: transparent !important;
	border: 0 !important;
	color: #b00020 !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left !important;
}

.jh-pc-download-title + .jh-pc-download-rendered .package-title,
.jh-pc-download-title + .jh-pc-download-rendered .wpdm-title,
.jh-pc-download-title + .jh-pc-download-rendered h3,
.jh-pc-download-title + .jh-pc-download-rendered h4 {
	display: none !important;
}

.jh-pc-download-entry .btn,
.jh-pc-download-entry .wpdm-download-link,
.jh-pc-download-entry .download-link {
	border-radius: 3px !important;
	font-size: 11px !important;
	line-height: 1.2 !important;
	min-height: 0 !important;
	padding: 4px 8px !important;
}

.jh-pc-download-entry .text-muted,
.jh-pc-download-entry .package-size,
.jh-pc-download-entry .download-count,
.jh-pc-download-entry .wpdm-download-count,
.jh-pc-download-entry .wpdm-download-size {
	display: none !important;
}

.jh-pc-download-shortcode {
	display: inline-flex;
	line-height: 1;
}

.jh-pc-download-folders {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.jh-pc-download-folder {
	background: #f7f9fb;
	border: 1px solid #dfe4e8;
	border-radius: 5px;
	min-width: 0;
	overflow: hidden;
}

.jh-pc-download-folder summary {
	align-items: center;
	cursor: pointer;
	display: flex;
	gap: 10px;
	justify-content: space-between;
	list-style: none;
	padding: 9px 10px;
}

.jh-pc-download-folder summary::-webkit-details-marker {
	display: none;
}

.jh-pc-download-folder summary span {
	color: var(--jh-pc-dark);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.25;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.jh-pc-download-folder summary em {
	color: var(--jh-pc-grey);
	font-size: 11px;
	font-style: normal;
	font-weight: 700;
	white-space: nowrap;
}

.jh-pc-download-folder .jh-pc-download-flat {
	border-top: 1px solid #dfe4e8;
	padding: 6px;
}

@media (max-width: 520px) {
	.jh-pc-download-flat {
		grid-template-columns: 1fr;
	}
}

.jh-pc-config-summary {
	background: #ffffff;
	border: 1px solid var(--jh-pc-line);
	border-radius: 6px;
	margin-top: 20px;
	padding: 20px;
}

.jh-pc-config-summary-header {
	margin-bottom: 14px;
}

.jh-pc-config-summary-header h4 {
	color: var(--jh-pc-blue);
	font-size: 20px;
	line-height: 1.22;
	margin: 0 0 6px;
}

.jh-pc-config-summary-header p {
	color: var(--jh-pc-grey);
	font-size: 13px;
	margin: 0;
}

.jh-pc-config-summary .jh-pc-tab-nav {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.jh-pc-config-summary-group {
	margin-bottom: 16px;
}

.jh-pc-config-summary-group:last-child {
	margin-bottom: 0;
}

.jh-pc-config-summary-group h5 {
	color: var(--jh-pc-dark);
	font-size: 14px;
	font-weight: 800;
	margin: 0 0 8px;
}

.jh-pc-download-tabs,
.jh-pc-download-variant-tabs {
	display: grid;
	gap: 10px;
	min-width: 0;
}

.jh-pc-download-variant-tabs {
	margin-top: 10px;
}

.jh-pc-download-tab-nav,
.jh-pc-download-variant-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.jh-pc-download-tab-nav button,
.jh-pc-download-variant-nav button {
	background: #ffffff;
	border: 1px solid #dfe4e8;
	border-radius: 4px;
	color: var(--jh-pc-dark);
	cursor: pointer;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.2;
	padding: 7px 10px;
	text-align: left;
}

.jh-pc-download-tab-nav button.is-active,
.jh-pc-download-variant-nav button.is-active {
	background: var(--jh-pc-blue);
	border-color: var(--jh-pc-blue);
	color: #ffffff;
}

.jh-pc-download-variant-nav button {
	background: #f4f7f9;
	font-size: 11px;
	padding: 6px 8px;
}

.jh-pc-download-tab-panel,
.jh-pc-download-variant-panel {
	display: none;
	min-width: 0;
}

.jh-pc-download-tab-panel.is-active,
.jh-pc-download-variant-panel.is-active {
	display: block;
}

.jh-pc-bundle-list {
	display: grid;
	gap: 10px;
}

.jh-pc-bundle-item {
	align-items: center;
	background: #f4f7f9;
	border: 1px solid #dfe4e8;
	border-radius: 4px;
	display: grid;
	gap: 12px;
	grid-template-columns: 58px 1fr;
	padding: 10px;
}

.jh-pc-bundle-thumb img {
	background: #ffffff;
	border: 1px solid #e2e7eb;
	height: 52px;
	object-fit: contain;
	width: 52px;
}

.jh-pc-bundle-item strong,
.jh-pc-bundle-item span {
	display: block;
}

.jh-pc-bundle-item span {
	color: var(--jh-pc-grey);
	font-size: 13px;
	margin-top: 3px;
}

.jh-pc-options {
	display: grid;
	gap: 7px;
	margin: 0 0 10px;
	padding: 0 14px 4px;
}

.jh-pc-options-stage {
	margin-top: -4px;
}

.jh-pc-position-depth-1 + .jh-pc-options-stage {
	margin-left: 34px;
	width: calc(100% - 34px);
}

.jh-pc-position-depth-2 + .jh-pc-options-stage {
	margin-left: 58px;
	width: calc(100% - 58px);
}

.jh-pc-position-depth-3 + .jh-pc-options-stage {
	margin-left: 82px;
	width: calc(100% - 82px);
}

.jh-pc-options-panel {
	display: none;
}

.jh-pc-options label {
	align-items: center;
	display: grid;
	gap: 12px;
	grid-template-columns: minmax(132px, .34fr) minmax(0, 1fr);
	margin: 0;
}

.jh-pc-options label span {
	color: var(--jh-pc-grey);
	display: block;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.18;
	margin: 0;
	text-align: right;
	white-space: normal;
}

.jh-pc-options select {
	background: #ffffff;
	border: 1px solid #cfd8df;
	border-radius: 4px;
	color: var(--jh-pc-dark);
	font-size: 14px;
	min-height: 38px;
	padding: 6px 10px;
	width: 100%;
}

.jh-pc-reset-variation {
	background: transparent;
	border: 1px solid #cfd8df;
	border-radius: 4px;
	color: var(--jh-pc-grey);
	cursor: pointer;
	font-size: 13px;
	font-weight: 700;
	justify-self: end;
	min-height: 34px;
	padding: 6px 12px;
}

.jh-pc-reset-variation:hover,
.jh-pc-reset-variation:focus {
	background: #ffffff;
	border-color: var(--jh-pc-green);
	color: var(--jh-pc-green);
	outline: 0;
}

.jh-pc-product-legend {
	background: #f6f9fb;
	border: 1px solid rgba(2, 79, 154, .12);
	border-left: 4px solid var(--jh-pc-green);
	border-radius: 6px;
	color: var(--jh-pc-dark);
	font-size: 13px;
	line-height: 1.45;
	padding: 10px 12px;
}

.jh-pc-product-legend p {
	margin: 0 0 7px;
}

.jh-pc-product-legend p:last-child {
	margin-bottom: 0;
}

.jh-pc-product-legend table {
	border-collapse: collapse;
	font-size: 13px;
	width: 100%;
}

.jh-pc-product-legend td,
.jh-pc-product-legend th {
	border: 1px solid rgba(2, 79, 154, .14);
	padding: 6px 8px;
	text-align: left;
}

.jh-pc-hint {
	background: #f4f7f9;
	border-left: 4px solid var(--jh-pc-light-blue);
	color: var(--jh-pc-dark);
	margin: 0 0 16px;
	padding: 12px 14px;
}

.jh-pc-hint p {
	margin: 0 0 8px;
}

.jh-pc-hint p:last-child {
	margin-bottom: 0;
}

.jh-pc-calculation-fields {
	display: grid;
	gap: 10px;
	margin: -4px 0 18px;
}

/* Hidden calculation fields stay in the DOM for formulas and automatic selections,
   but must never become visible through the component display rules. */
.jh-pc-calculation-fields[hidden],
.jh-pc-global-input-field[hidden],
.jh-pc-calculation-field[hidden],
.jh-pc-product-selection-field[hidden] {
	display: none !important;
}

.jh-pc-calculation-fields-left {
	margin: 0 0 12px;
}

.jh-pc-global-input-field {
	align-items: center;
	background: #ffffff;
	border: 1px solid rgba(2, 79, 154, .16);
	border-left: 5px solid var(--jh-pc-blue);
	border-radius: 7px;
	display: grid;
	gap: 10px;
	grid-template-columns: auto minmax(0, 1fr) minmax(120px, 180px) auto;
	padding: 10px 14px;
}

.jh-pc-global-input-field strong,
.jh-pc-calculation-main b {
	background: rgba(2, 79, 154, .08);
	border-radius: 4px;
	color: var(--jh-pc-blue);
	display: inline-flex;
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	padding: 5px 7px;
	white-space: nowrap;
}

.jh-pc-global-input-field span {
	color: var(--jh-pc-dark);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
}

.jh-pc-global-input-field input {
	border: 1px solid var(--jh-pc-line);
	border-radius: 5px;
	color: var(--jh-pc-blue);
	font-size: 16px;
	font-weight: 700;
	min-height: 36px;
	padding: 6px 9px;
	text-align: right;
	width: 100%;
}

.jh-pc-global-input-field em {
	color: var(--jh-pc-grey);
	font-size: 13px;
	font-style: normal;
	font-weight: 700;
}

.jh-pc-calculation-field {
	background: #f4f7f9;
	border: 1px solid var(--jh-pc-line);
	border-left: 5px solid var(--jh-pc-light-blue);
	border-radius: 7px;
	display: grid;
	gap: 8px;
	padding: 12px 14px;
	transition: border-color .16s ease, background .16s ease;
}

.jh-pc-calculation-field.is-ok {
	background: #f4f7f9;
	border-color: var(--jh-pc-line);
	border-left-color: var(--jh-pc-light-blue);
}

.jh-pc-calculation-field.is-low,
.jh-pc-calculation-field.is-high {
	background: #f4f7f9;
	border-color: var(--jh-pc-line);
	border-left-color: var(--jh-pc-light-blue);
}

.jh-pc-calculation-main {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
}

.jh-pc-calculation-main span {
	align-items: center;
	color: var(--jh-pc-dark);
	display: inline-flex;
	font-size: 13px;
	font-weight: 700;
	gap: 8px;
	line-height: 1.3;
}

.jh-pc-calculation-main strong {
	align-items: baseline;
	color: var(--jh-pc-blue);
	display: inline-flex;
	font-size: 20px;
	font-weight: 800;
	gap: 5px;
	line-height: 1.1;
	white-space: nowrap;
}

.jh-pc-calculation-main [data-calc-result][hidden] {
	display: none !important;
}

.jh-pc-calculation-main strong em {
	color: var(--jh-pc-grey);
	font-size: 13px;
	font-style: normal;
	font-weight: 700;
}

.jh-pc-product-selection-field .jh-pc-calculation-main {
	align-items: flex-start;
}

.jh-pc-product-selection-field .jh-pc-calculation-main > span:first-child {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.jh-pc-product-selection-field .jh-pc-calculation-main strong {
	font-size: 13px;
	line-height: 1.35;
	text-align: right;
	white-space: normal;
}

.jh-pc-product-selection-field [data-product-selection-result][hidden] {
	display: none !important;
}

.jh-pc-product-selection-clearance {
	align-items: center;
	border-top: 1px solid var(--jh-pc-line);
	display: flex;
	justify-content: space-between;
	padding-top: 8px;
}

.jh-pc-product-selection-clearance[hidden] {
	display: none !important;
}

.jh-pc-product-selection-clearance > span {
	color: var(--jh-pc-dark);
	font-size: 13px;
	font-weight: 700;
}

.jh-pc-product-selection-clearance > strong {
	color: var(--jh-pc-blue);
	font-size: 16px;
	font-weight: 800;
}

.jh-pc-product-selection-clearance em {
	color: var(--jh-pc-grey);
	font-size: 12px;
	font-style: normal;
}

.jh-pc-product-selection-details {
	background: #ffffff;
	margin-top: 4px;
}

.jh-pc-product-selection-details[hidden] {
	display: none !important;
}

.jh-pc-product-selection-field.is-neutral [data-product-selection-message] {
	background: #edf5fc;
	border-color: #b9d5ee;
	color: var(--jh-pc-blue);
}

.jh-pc-product-selection-field.is-high [data-product-selection-message] {
	background: #ca262d;
	border-color: #ca262d;
	color: #ffffff;
	font-weight: 500;
	line-height: 1.5;
	white-space: pre-line;
}

.jh-pc-product-selection-field.is-warning [data-product-selection-message] {
	background: #e67e22;
	border-color: #e67e22;
	color: #ffffff;
	font-weight: 700;
	line-height: 1.5;
	white-space: pre-line;
}

.jh-pc-product-selection-field.is-warning {
	border-left-color: #e67e22;
}

.jh-pc-product-selection-field.is-ok .jh-pc-calculation-main > strong {
	color: var(--jh-pc-blue);
	font-size: 14px;
	max-width: min(58%, 520px);
}

.jh-pc-product-selection-details .jh-pc-formula-breakdown-separator {
	margin: 5px 0 6px;
}

.jh-pc-calculation-field.is-ok .jh-pc-calculation-main strong {
	color: var(--jh-pc-blue);
}

.jh-pc-calculation-field.is-low .jh-pc-calculation-main strong,
.jh-pc-calculation-field.is-high .jh-pc-calculation-main strong {
	color: var(--jh-pc-blue);
}

.jh-pc-calculation-field p {
	background: #19b600;
	border: 1px solid #19b600;
	border-radius: 5px;
	color: #ffffff;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.35;
	margin: 0;
	padding: 7px 9px;
}

.jh-pc-calculation-field.is-low p,
.jh-pc-calculation-field.is-high p {
	background: #e00000;
	border-color: #e00000;
	color: #ffffff;
}

.jh-pc-result-line,
.jh-pc-total {
	background: #f4f7f9;
	border: 1px solid var(--jh-pc-line);
	border-radius: 6px;
	display: grid;
	gap: 8px;
	margin-top: 16px;
	padding: 14px;
}

.jh-pc-result-line span,
.jh-pc-total > span {
	color: var(--jh-pc-grey);
	font-weight: 700;
}

.jh-pc-result-line strong,
.jh-pc-total strong {
	align-items: center;
	background: var(--jh-pc-green);
	border: 1px solid var(--jh-pc-green);
	border-radius: 4px;
	color: #ffffff;
	display: flex;
	font-size: 17px;
	justify-content: space-between;
	min-height: 42px;
	padding: 9px 12px;
}

.jh-pc-panel-message {
	color: #ca262d;
	font-weight: 700;
	margin-top: 12px;
}

.jh-pc-purchase {
	align-items: end;
	display: grid;
	gap: 10px;
	justify-items: end;
	margin-left: auto;
}

.jh-pc-cart-form {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: flex-end;
	margin: 0;
}

.jh-pc-price {
	color: var(--jh-pc-blue);
	font-size: 18px;
	font-weight: 800;
	line-height: 1.25;
	text-align: right;
}

.jh-pc-price:empty {
	display: none;
}

.jh-pc-quantity .quantity {
	margin: 0;
}

.jh-pc-quantity input.qty,
.jh-pc-quantity .qty {
	background: #ffffff;
	border: 1px solid #cfd8df;
	border-radius: 4px;
	color: var(--jh-pc-dark);
	font-size: 15px;
	font-weight: 700;
	height: 42px;
	line-height: 40px;
	margin: 0;
	max-width: 64px;
	min-height: 42px;
	padding: 8px 10px;
	text-align: center;
	width: 64px;
}

.jh-pc-purchase .button,
.jh-pc-purchase .jh-pc-cart-button,
.jh-pc-purchase .afrfqbt,
.jh-pc-purchase .afrfqbt_single_page {
	align-items: center;
	background: var(--jh-pc-green);
	border: 1px solid var(--jh-pc-green);
	border-radius: 4px;
	color: #ffffff;
	display: flex;
	font-weight: 700;
	justify-content: center;
	line-height: 1.25;
	margin: 0;
	max-width: 100%;
	min-height: 42px;
	padding: 10px 15px;
	text-align: center;
	text-decoration: none;
	width: max-content;
}

.jh-pc-purchase .button:hover,
.jh-pc-purchase .button:focus,
.jh-pc-purchase .jh-pc-cart-button:hover,
.jh-pc-purchase .jh-pc-cart-button:focus,
.jh-pc-purchase .afrfqbt:hover,
.jh-pc-purchase .afrfqbt:focus,
.jh-pc-purchase .afrfqbt_single_page:hover,
.jh-pc-purchase .afrfqbt_single_page:focus {
	background: #ffffff;
	color: var(--jh-pc-green);
}

.jh-pc-purchase .button.loading,
.jh-pc-purchase .button:disabled,
.jh-pc-purchase .jh-pc-cart-button.loading,
.jh-pc-purchase .jh-pc-cart-button:disabled {
	cursor: wait;
	opacity: .72;
}

.jh-pc-quote-notice,
.jh-pc-purchase .added_to_quote {
	color: var(--jh-pc-green);
	display: block;
	font-size: 13px;
	font-weight: 700;
	text-align: right;
	width: 100%;
}

.jh-pc-quote-notice.is-error {
	color: #ca262d;
}

.jh-pc-total {
	margin-top: 18px;
}

.jh-pc-config-footer {
	align-items: center;
	background: linear-gradient(90deg, rgba(0, 139, 124, .08), #ffffff 48%);
	border: 1px solid rgba(2, 79, 154, .16);
	border-left: 5px solid var(--jh-pc-green);
	border-radius: 7px;
	display: grid;
	gap: 14px;
	grid-template-columns: minmax(0, 1fr) auto;
	justify-content: stretch;
	margin-top: 18px;
	padding: 16px 18px;
}

.jh-pc-config-footer div {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.jh-pc-config-footer strong {
	color: var(--jh-pc-blue);
	font-size: 18px;
	font-weight: 800;
	line-height: 1.25;
}

.jh-pc-config-footer span {
	color: var(--jh-pc-dark);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.45;
}

.jh-pc-config-quote-button {
	align-items: center;
	background: var(--jh-pc-green);
	border: 1px solid var(--jh-pc-green);
	border-radius: 4px;
	color: #ffffff;
	cursor: pointer;
	display: inline-flex;
	font-size: 14px;
	font-weight: 800;
	justify-content: center;
	line-height: 1.25;
	margin: 0;
	min-height: 42px;
	padding: 10px 16px;
	text-align: center;
	transition: background .16s ease, color .16s ease, opacity .16s ease;
	white-space: nowrap;
}

.jh-pc-config-quote-button:hover,
.jh-pc-config-quote-button:focus {
	background: #ffffff;
	color: var(--jh-pc-green);
	outline: 0;
}

.jh-pc-config-quote-button.loading,
.jh-pc-config-quote-button:disabled {
	cursor: wait;
	opacity: .72;
}

.jh-pc-config-footer-notice {
	color: var(--jh-pc-green);
	font-size: 13px;
	font-weight: 700;
	grid-column: 1 / -1;
	line-height: 1.35;
	margin: 0;
}

.jh-pc-config-footer-notice:empty {
	display: none;
}

.jh-pc-config-footer-notice.is-error {
	color: #ca262d;
}

.jh-pc-total-message {
	color: var(--jh-pc-green);
	font-weight: 700;
	margin: 0;
}

.jh-pc-total-message.is-warning {
	color: #ca262d;
}

.jh-pc-empty {
	background: #f4f7f9;
	border: 1px solid var(--jh-pc-line);
	border-radius: 6px;
	color: var(--jh-pc-grey);
	padding: 18px;
}

.jh-pc-error {
	color: #ca262d;
	font-weight: 700;
}

.jh-pc-lightbox-open {
	overflow: hidden;
}

.jh-pc-lightbox {
	align-items: center;
	background: rgba(20, 28, 36, .86);
	display: flex;
	inset: 0;
	justify-content: center;
	padding: 34px;
	position: fixed;
	z-index: 999999;
}

.jh-pc-lightbox[hidden] {
	display: none;
}

.jh-pc-lightbox img {
	background: #ffffff;
	border-radius: 6px;
	box-shadow: 0 24px 70px rgba(0, 0, 0, .34);
	display: block;
	max-height: calc(100vh - 88px);
	max-width: min(1180px, calc(100vw - 68px));
	object-fit: contain;
	padding: 14px;
}

.jh-pc-lightbox-close {
	align-items: center;
	background: #ffffff;
	border: 1px solid #dfe4e8;
	border-radius: 8px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .14);
	color: var(--jh-pc-blue);
	cursor: pointer;
	display: inline-flex;
	font-size: 22px;
	font-weight: 700;
	height: 32px;
	justify-content: center;
	line-height: 1;
	position: fixed;
	right: 22px;
	top: 22px;
	width: 36px;
	z-index: 1000000;
}

.jh-pc-lightbox-close:hover,
.jh-pc-lightbox-close:focus {
	background: var(--jh-pc-green);
	color: #ffffff;
	outline: 0;
}

.jh-pc-maintenance {
	margin: 0 auto;
	max-width: 1180px;
	padding: 28px 18px;
}

.jh-pc-maintenance-card {
	align-items: center;
	background: linear-gradient(135deg, #f4f7f9 0%, #ffffff 58%, rgba(0, 139, 124, .08) 100%);
	border: 1px solid var(--jh-pc-line);
	border-radius: 8px;
	display: grid;
	gap: 24px;
	grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr);
	padding: 28px;
}

.jh-pc-maintenance-image {
	align-items: center;
	background: #ffffff;
	display: flex;
	justify-content: center;
	min-height: 190px;
}

.jh-pc-maintenance-image img {
	height: auto;
	max-height: 320px;
	max-width: 100%;
	object-fit: contain;
}

.jh-pc-maintenance-content span {
	color: var(--jh-pc-green);
	display: block;
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 6px;
	text-transform: uppercase;
}

.jh-pc-maintenance-content strong {
	color: var(--jh-pc-blue);
	display: block;
	font-size: 26px;
	line-height: 1.2;
	margin-bottom: 10px;
}

.jh-pc-maintenance-content p {
	color: var(--jh-pc-dark);
	font-size: 17px;
	line-height: 1.5;
	margin: 0;
}

@media (max-width: 1080px) {
	.jh-pc-shell {
		grid-template-columns: 1fr;
	}

	.jh-pc-preconfig-layout {
		grid-template-columns: 1fr;
	}

	.jh-pc-preconfig-target {
		grid-template-columns: 150px minmax(0, 1fr);
	}

	.jh-pc-preconfig-target-image {
		height: 110px;
		width: 150px;
	}

	.jh-pc-stage {
		height: auto;
		max-height: none;
		min-height: 0;
		position: static;
	}

	.jh-pc-position-list {
		overflow-y: visible;
		padding: 0;
	}

	.jh-pc-tab-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.jh-pc-maintenance-card {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 980px) {
	.jh-pc-brandbar {
		grid-template-columns: minmax(150px, 210px) minmax(0, 1fr);
	}
}

@media (max-width: 560px) {
	.jh-pc {
		margin: 20px 0;
		width: 100%;
	}

	.jh-pc-workspace {
		padding: 16px;
	}

	.jh-pc-brandbar {
		align-items: flex-start;
		display: grid;
		gap: 14px;
		padding: 16px;
	}

	.jh-pc-brandcopy {
		border-left: 0;
		border-top: 1px solid rgba(2, 79, 154, .16);
		padding-left: 0;
		padding-top: 14px;
	}

	.jh-pc-stage,
	.jh-pc-detail {
		padding: 14px;
	}

	.jh-pc-position {
		grid-template-columns: 1fr;
		grid-template-areas:
			"content"
			"visual";
		min-height: 0;
		padding: 12px;
	}

	.jh-pc-position-image img {
		height: 178px;
		width: 100%;
	}

	.jh-pc-position-meta {
		grid-template-columns: 1fr;
	}

	.jh-pc-position-field {
		align-items: flex-start;
		display: grid;
	}

	.jh-pc-position-field em {
		margin-left: 0;
	}

	.jh-pc-panel {
		padding: 16px;
	}

	.jh-pc-product-data {
		grid-template-columns: 1fr;
	}

	.jh-pc-config-images {
		grid-template-columns: 1fr;
	}

	.jh-pc-tab-nav {
		grid-template-columns: 1fr;
	}

	.jh-pc-product-actions {
		align-items: start;
		display: grid;
	}

	.jh-pc-config-footer {
		grid-template-columns: 1fr;
	}

	.jh-pc-config-quote-button {
		width: 100%;
		white-space: normal;
	}

	.jh-pc-purchase,
	.jh-pc-cart-form,
	.jh-pc-purchase .button,
	.jh-pc-purchase .jh-pc-cart-button,
	.jh-pc-purchase .afrfqbt,
	.jh-pc-purchase .afrfqbt_single_page {
		margin-left: 0;
		width: 100%;
	}

	.jh-pc-cart-form {
		justify-content: stretch;
	}

	.jh-pc-quantity,
	.jh-pc-quantity .quantity,
	.jh-pc-quantity input.qty,
	.jh-pc-quantity .qty {
		width: 100%;
	}

	.jh-pc-quantity input.qty,
	.jh-pc-quantity .qty {
		max-width: none;
	}
}


.jh-pc-technical-legend {
	margin-top: 18px;
}

.jh-pc-technical-legend table {
	width: 100%;
	border-collapse: collapse;
}

.jh-pc-technical-legend td,
.jh-pc-technical-legend th {
	padding: 12px 16px;
	border: 1px solid #ffffff;
}

/* JH 2.0.157: Einheitliches Legenden-Tabellenlayout im Konfigurator und in den technischen Daten. */
.jh-pc-product-legend,
.jh-pc-technical-legend {
	width: 100%;
}

.jh-pc-product-legend {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
}

.jh-pc-technical-legend {
	margin-top: 18px;
}

.jh-pc-product-legend table,
.jh-pc-technical-legend table {
	border-collapse: separate !important;
	border-spacing: 0 !important;
	border-radius: 6px;
	overflow: hidden;
	table-layout: fixed;
	width: 100% !important;
}

.jh-pc-product-legend table tr > th,
.jh-pc-product-legend table tr > td,
.jh-pc-technical-legend table tr > th,
.jh-pc-technical-legend table tr > td {
	border: 1px solid #ffffff !important;
	font-size: 14px;
	line-height: 1.35;
	padding: 12px 16px !important;
	vertical-align: middle;
}

.jh-pc-product-legend table tr > th:first-child,
.jh-pc-product-legend table tr > td:first-child,
.jh-pc-technical-legend table tr > th:first-child,
.jh-pc-technical-legend table tr > td:first-child {
	background: #6699c2 !important;
	color: #ffffff !important;
	font-weight: 700;
	text-align: center;
	width: 32%;
}

.jh-pc-product-legend table tr > th:not(:first-child),
.jh-pc-product-legend table tr > td:not(:first-child),
.jh-pc-technical-legend table tr > th:not(:first-child),
.jh-pc-technical-legend table tr > td:not(:first-child) {
	background: #f4f4f4 !important;
	color: var(--jh-pc-dark) !important;
	font-weight: 400;
	text-align: left;
}

.jh-pc-product-legend table tr:first-child > th:first-child,
.jh-pc-product-legend table tr:first-child > td:first-child,
.jh-pc-technical-legend table tr:first-child > th:first-child,
.jh-pc-technical-legend table tr:first-child > td:first-child {
	border-top-left-radius: 6px;
}

.jh-pc-product-legend table tr:first-child > th:last-child,
.jh-pc-product-legend table tr:first-child > td:last-child,
.jh-pc-technical-legend table tr:first-child > th:last-child,
.jh-pc-technical-legend table tr:first-child > td:last-child {
	border-top-right-radius: 6px;
}

.jh-pc-product-legend table tr:last-child > th:first-child,
.jh-pc-product-legend table tr:last-child > td:first-child,
.jh-pc-technical-legend table tr:last-child > th:first-child,
.jh-pc-technical-legend table tr:last-child > td:first-child {
	border-bottom-left-radius: 6px;
}

.jh-pc-product-legend table tr:last-child > th:last-child,
.jh-pc-product-legend table tr:last-child > td:last-child,
.jh-pc-technical-legend table tr:last-child > th:last-child,
.jh-pc-technical-legend table tr:last-child > td:last-child {
	border-bottom-right-radius: 6px;
}


/* JH 2.0.159: Legendentabelle in Technische Daten exakt auf Kachelbreite ziehen. */
.jh-pc-tab-panel[data-tab-panel="technical"] .jh-pc-technical-legend {
	box-sizing: border-box;
	clear: both;
	display: block;
	margin: 18px 0 0 0 !important;
	max-width: none !important;
	padding: 0 !important;
	width: 100% !important;
}

.jh-pc-tab-panel[data-tab-panel="technical"] .jh-pc-technical-legend[hidden] {
	display: none !important;
}

.jh-pc-tab-panel[data-tab-panel="technical"] .jh-pc-technical-legend table {
	box-sizing: border-box;
	display: table !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	min-width: 0 !important;
	width: 100% !important;
}

.jh-pc-tab-panel[data-tab-panel="technical"] .jh-pc-technical-legend table tr > th:first-child,
.jh-pc-tab-panel[data-tab-panel="technical"] .jh-pc-technical-legend table tr > td:first-child {
	width: 32% !important;
}

.jh-pc-tab-panel[data-tab-panel="technical"] .jh-pc-technical-legend table tr > th:not(:first-child),
.jh-pc-tab-panel[data-tab-panel="technical"] .jh-pc-technical-legend table tr > td:not(:first-child) {
	width: auto !important;
}

/* v2.0.164: Einheitliche horizontale Feldkennungen auf Produktbildern */
.jh-pc-position-badges {
	display: flex;
	flex-direction: row;
	gap: 5px;
	left: 10px;
	max-width: calc(100% - 20px);
	position: absolute;
	top: 10px;
	z-index: 2;
}

.jh-pc-position-badges .jh-pc-position-badge {
	font-size: 15px;
	min-height: 32px;
	min-width: 34px;
	padding: 7px 9px;
	position: static;
}

.jh-pc-position-bundle-child .jh-pc-position-badges {
	gap: 4px;
	left: 8px;
	top: 8px;
}

.jh-pc-position-bundle-child .jh-pc-position-badges .jh-pc-position-badge {
	font-size: 13px;
	min-height: 28px;
	min-width: 30px;
	padding: 6px 8px;
}

/* v2.0.165: Feldkennungen als ein kompaktes Badge, z. B. C | E */
.jh-pc-position-badges {
	gap: 0;
}

.jh-pc-position-badges .jh-pc-position-badge {
	border-radius: 6px;
	font-size: 14px;
	letter-spacing: .02em;
	min-height: 30px;
	min-width: 34px;
	padding: 7px 10px;
	white-space: nowrap;
}

.jh-pc-position-bundle-child .jh-pc-position-badges .jh-pc-position-badge {
	font-size: 13px;
	min-height: 28px;
	min-width: 30px;
	padding: 6px 9px;
}

/* v2.0.166: Einheitliche blaue Feldkennungen überall */
.jh-pc-position-badges {
	display: flex;
	flex-direction: row;
	gap: 5px;
}

.jh-pc-position-badges .jh-pc-position-badge,
.jh-pc-global-input-field strong,
.jh-pc-calculation-main b,
.jh-pc-position-custom-field strong {
	align-items: center;
	background: var(--jh-pc-blue);
	border: 2px solid #ffffff;
	border-radius: 5px;
	box-shadow: 0 8px 18px rgba(2, 79, 154, .2);
	color: #ffffff;
	display: inline-flex;
	font-size: 13px;
	font-weight: 900;
	justify-content: center;
	letter-spacing: 0;
	line-height: 1;
	min-height: 30px;
	min-width: 34px;
	padding: 7px 9px;
	white-space: nowrap;
}

.jh-pc-position-custom-field strong::after {
	content: none !important;
}

.jh-pc-global-input-field strong,
.jh-pc-calculation-main b {
	box-shadow: none;
	font-size: 12px;
	min-height: 26px;
	min-width: 28px;
	padding: 6px 8px;
}

.jh-pc-position-custom-field {
	grid-template-columns: 42px minmax(0, 1fr);
	grid-template-areas:
		". label"
		"key value";
}

.jh-pc-position-custom-field strong {
	align-self: center;
	grid-area: key;
	justify-self: center;
}

.jh-pc-position-bundle-child .jh-pc-position-badges .jh-pc-position-badge {
	font-size: 12px;
	min-height: 28px;
	min-width: 30px;
	padding: 6px 8px;
}


/* v2.0.167: Eine einheitliche Badge-Komponente fuer alle Feldkennungen */
.jh-pc-position-badge,
.jh-pc-position-badges .jh-pc-position-badge,
.jh-pc-position-bundle-child .jh-pc-position-badges .jh-pc-position-badge,
.jh-pc-global-input-field strong,
.jh-pc-calculation-main b,
.jh-pc-position-custom-field strong {
	align-items: center !important;
	background: var(--jh-pc-blue, #005aa0) !important;
	border: 2px solid #ffffff !important;
	border-radius: 5px !important;
	box-shadow: 0 8px 18px rgba(2, 79, 154, .20) !important;
	box-sizing: border-box !important;
	color: #ffffff !important;
	display: inline-flex !important;
	font-size: 13px !important;
	font-weight: 900 !important;
	height: 34px !important;
	justify-content: center !important;
	letter-spacing: 0 !important;
	line-height: 1 !important;
	min-height: 34px !important;
	min-width: 34px !important;
	padding: 0 9px !important;
	width: 34px !important;
	white-space: nowrap !important;
}

.jh-pc-position-badges {
	align-items: center !important;
	display: flex !important;
	flex-direction: row !important;
	gap: 6px !important;
	left: 10px !important;
	position: absolute !important;
	top: 10px !important;
	z-index: 2 !important;
}

.jh-pc-position-badges .jh-pc-position-badge,
.jh-pc-position-bundle-child .jh-pc-position-badges .jh-pc-position-badge {
	position: static !important;
}

.jh-pc-position-custom-field strong::after {
	content: none !important;
}


/* v2.0.168: Feld-Badges vereinheitlichen, Berechnungsfelder ausnehmen */
.jh-pc-position-badges .jh-pc-position-badge,
.jh-pc-position-bundle-child .jh-pc-position-badges .jh-pc-position-badge {
	height: 34px !important;
	min-height: 34px !important;
	min-width: 34px !important;
	width: auto !important;
	padding: 0 9px !important;
}

.jh-pc-position-custom-field strong,
.jh-pc-global-input-field strong {
	height: 34px !important;
	min-height: 34px !important;
	min-width: 34px !important;
	width: 34px !important;
	padding: 0 !important;
}

.jh-pc-calculation-main b {
	align-items: center !important;
	background: rgba(2, 79, 154, .08) !important;
	border: 0 !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	color: var(--jh-pc-blue) !important;
	display: inline-flex !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	height: auto !important;
	justify-content: center !important;
	line-height: 1 !important;
	min-height: 0 !important;
	min-width: 0 !important;
	padding: 5px 7px !important;
	width: auto !important;
	white-space: nowrap !important;
}

/* v2.0.170: Eingabe-Feldkennungen optisch auf Bild-Badges ausrichten */
.jh-pc-global-input-field {
	padding-left: 26px !important;
}

@media (max-width: 640px) {
	.jh-pc-global-input-field {
		padding-left: 18px !important;
	}
}

.jh-pc-jump-highlight {
	box-shadow: 0 0 0 3px rgba(0,139,124,.35), 0 10px 25px rgba(0,0,0,.12) !important;
}
[data-calc-jump-target] {
	cursor: pointer;
}
.jh-pc-message-target-field {
	display: block;
}
.jh-pc-message-target-field > span {
	display: block;
	font-weight: 600;
	margin-bottom: 4px;
}
.jh-pc-message-target-field input[type=search] {
	width: 100%;
}


/* v2.0.181: klickbare Berechnungsmeldungen sichtbar machen */
.jh-pc-calculation-field p[data-calc-message].is-clickable {
	position: relative;
	padding-right: 42px;
	cursor: pointer;
	transition: filter .15s ease, transform .15s ease, box-shadow .15s ease;
}

.jh-pc-calculation-field p[data-calc-message].is-clickable::after {
	content: '→';
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 20px;
	font-weight: 800;
	line-height: 1;
}

.jh-pc-calculation-field p[data-calc-message].is-clickable:hover,
.jh-pc-calculation-field p[data-calc-message].is-clickable:focus {
	filter: brightness(1.08);
	box-shadow: inset 0 0 0 2px rgba(255,255,255,.55);
	outline: none;
}


/* v2.0.184: separate CTA button for calculation jumps */
.jh-pc-calculation-field p[data-calc-message] {
	cursor: default;
}
.jh-pc-calculation-field p[data-calc-message].is-clickable::after {
	content: none !important;
}
.jh-pc-calc-adjust-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 8px;
	padding: 7px 14px;
	border: 1px solid #005aa8;
	border-radius: 8px;
	background: #005aa8;
	color: #fff;
	font-weight: 800;
	line-height: 1.15;
	cursor: pointer;
	box-shadow: 0 8px 18px rgba(0,90,168,.16);
}
.jh-pc-calc-adjust-button:hover,
.jh-pc-calc-adjust-button:focus {
	background: #004f94;
	border-color: #004f94;
	outline: none;
}
.jh-pc-calc-adjust-button[hidden] {
	display: none !important;
}

/* v2.0.189: collapsible formula breakdown for result fields */

.jh-pc-calculation-field.has-formula-breakdown {
	cursor: pointer;
}
.jh-pc-calculation-field.has-formula-breakdown .jh-pc-calculation-main::after {
	content: "▾";
	margin-left: 10px;
	color: #005aa8;
	font-weight: 800;
	transition: transform .15s ease;
}
.jh-pc-calculation-field.has-formula-breakdown.is-breakdown-open .jh-pc-calculation-main::after {
	transform: rotate(180deg);
}
.jh-pc-formula-breakdown {
	margin-top: 10px;
	padding: 8px 12px 10px;
	border-radius: 8px;
	background: rgba(255,255,255,.7);
	border: 1px solid rgba(0,90,168,.14);
}
.jh-pc-formula-breakdown[hidden] {
	display: none !important;
}
.jh-pc-formula-breakdown-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 4px 0;
	font-size: 14px;
	line-height: 1.25;
}
.jh-pc-formula-breakdown-row b {
	font-weight: 800;
	color: #005aa8;
}
.jh-pc-formula-breakdown-row span {
	font-weight: 700;
	color: #2d3748;
}
.jh-pc-formula-breakdown-total {
	margin-top: 5px;
	padding-top: 8px;
	border-top: 1px solid rgba(0,90,168,.25);
}

/* v2.0.193: calculation header spacing and grouped formula breakdown */
.jh-pc-calculation-main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 18px;
}
.jh-pc-calculation-field.has-formula-breakdown .jh-pc-calculation-main {
	grid-template-columns: minmax(0, 1fr) auto auto;
}
.jh-pc-calculation-main > span {
	min-width: 0;
}
.jh-pc-calculation-main > strong {
	justify-self: end;
	text-align: right;
}
.jh-pc-formula-breakdown-subtotal,
.jh-pc-formula-breakdown-total {
	margin-top: 5px;
	padding-top: 8px;
	border-top: 1px solid rgba(0,90,168,.25);
}
.jh-pc-formula-breakdown-spacer {
	height: 7px;
}

/* v2.0.198: custom separators from backend detail calculation template */
.jh-pc-formula-breakdown-separator {
	border-top: 1px solid rgba(0, 91, 170, .28);
	height: 1px;
	margin: 8px 0 10px;
}

/* v2.0.396: collapsible "Details" section for the balancer breakdown (NB-Gewichte etc.), collapsed by default */
.jh-pc-formula-breakdown-advanced {
	margin-top: 6px;
}
.jh-pc-formula-breakdown-advanced > summary {
	cursor: pointer;
	font-size: 13px;
	font-weight: 700;
	color: #005aa8;
	padding: 4px 0;
	list-style: none;
}
.jh-pc-formula-breakdown-advanced > summary::-webkit-details-marker {
	display: none;
}
.jh-pc-formula-breakdown-advanced > summary::before {
	content: "▸ ";
}
.jh-pc-formula-breakdown-advanced[open] > summary::before {
	content: "▾ ";
}
.jh-pc-formula-breakdown-advanced .jh-pc-formula-breakdown-row {
	padding-left: 4px;
}


/* v2.0.202: Detailrechnung wie technische Rechnung darstellen */
.jh-pc-formula-breakdown {
	display: grid;
	gap: 7px;
}
.jh-pc-formula-breakdown-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: baseline;
	gap: 18px;
}
.jh-pc-formula-breakdown-row b,
.jh-pc-formula-breakdown-row span {
	line-height: 1.25;
}
.jh-pc-formula-breakdown-subtotal,
.jh-pc-formula-breakdown-total {
	padding-top: 10px;
	margin-top: 4px;
	border-top: 1px solid rgba(0,90,168,.25);
}
.jh-pc-formula-breakdown-spacer {
	height: 16px;
}

/* v2.0.208: position list rows must stay content-sized inside the scroller.
   Prevent CSS Grid from stretching the last visible product card into a white block. */
.jh-pc-position-list {
	align-content: start;
	align-items: start;
	grid-auto-rows: max-content;
}

.jh-pc-position-list > .jh-pc-position {
	align-self: start;
}

/* v2.0.210: The left product scroller must end exactly at the configurator edge.
   Remove the bottom dead zone caused by the stretched stage padding/list padding. */
.jh-pc-visual .jh-pc-stage {
	padding-bottom: 0;
}

.jh-pc-visual .jh-pc-position-list {
	padding-bottom: 0;
	margin-bottom: 0;
}

.jh-pc-visual .jh-pc-position-list::after {
	content: none !important;
	display: none !important;
}

@media (max-width: 980px) {
	.jh-pc-visual .jh-pc-stage {
		padding-bottom: 14px;
	}
}


/* v2.0.211: Formula detail rows match product-card field badges and use compact right-aligned values. */
.jh-pc-formula-breakdown {
	padding: 10px 14px 12px;
}

.jh-pc-formula-breakdown-row {
	grid-template-columns: auto minmax(0, 1fr) minmax(112px, max-content);
	gap: 10px;
	font-size: 13px;
	line-height: 1.25;
}

.jh-pc-formula-breakdown-row b {
	align-items: center;
	align-self: center;
	background: var(--jh-pc-blue);
	border-radius: 5px;
	box-shadow: 0 8px 18px rgba(0, 90, 168, .18);
	color: #ffffff;
	display: inline-flex;
	font-size: 12px;
	font-weight: 800;
	justify-content: center;
	line-height: 1;
	min-height: 30px;
	min-width: 30px;
	padding: 6px 8px;
	white-space: nowrap;
}

.jh-pc-formula-breakdown-row span {
	color: #1f2937;
	font-size: 13px;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	justify-self: end;
	line-height: 1.25;
	text-align: right;
	white-space: nowrap;
}

.jh-pc-formula-breakdown-subtotal b,
.jh-pc-formula-breakdown-total b {
	background: transparent;
	box-shadow: none;
	color: var(--jh-pc-blue);
	justify-content: flex-start;
	min-height: 0;
	min-width: 0;
	padding: 0;
}

.jh-pc-formula-breakdown-subtotal,
.jh-pc-formula-breakdown-total {
	grid-template-columns: minmax(0, 1fr) minmax(112px, max-content);
	gap: 14px;
}

.jh-pc-formula-breakdown-subtotal b,
.jh-pc-formula-breakdown-total b {
	grid-column: 1;
}

.jh-pc-formula-breakdown-subtotal span,
.jh-pc-formula-breakdown-total span {
	grid-column: 2;
}

.jh-pc-formula-breakdown-separator {
	margin: 7px 0 8px;
}


/* v2.0.212: Detailrechnung: Kennung als Badge, Produkt-/Zeilenlabel daneben, Werte sauber rechtsbuendig. */
.jh-pc-formula-breakdown-row {
	align-items: center;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(112px, max-content);
	gap: 12px;
	font-size: 13px;
	line-height: 1.25;
	min-height: 32px;
}

.jh-pc-formula-breakdown-row.has-breakdown-badge {
	grid-template-columns: 32px minmax(0, 1fr) minmax(112px, max-content);
}

.jh-pc-formula-breakdown-row b {
	grid-column: 1;
}

.jh-pc-formula-breakdown-row strong {
	color: var(--jh-pc-blue);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.25;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.jh-pc-formula-breakdown-row.has-breakdown-badge strong {
	grid-column: 2;
}

.jh-pc-formula-breakdown-row.has-breakdown-badge span {
	grid-column: 3;
}

.jh-pc-formula-breakdown-row:not(.has-breakdown-badge) strong {
	grid-column: 1;
}

.jh-pc-formula-breakdown-row:not(.has-breakdown-badge) span {
	grid-column: 2;
}

.jh-pc-formula-breakdown-subtotal,
.jh-pc-formula-breakdown-total {
	grid-template-columns: minmax(0, 1fr) minmax(112px, max-content);
}

.jh-pc-formula-breakdown-subtotal strong,
.jh-pc-formula-breakdown-total strong {
	grid-column: 1;
}

.jh-pc-formula-breakdown-subtotal span,
.jh-pc-formula-breakdown-total span {
	grid-column: 2;
}

.jh-pc-auto-selection-deficit strong,
.jh-pc-auto-selection-deficit span {
	color: #b32d2e;
	font-weight: 800;
}

.jh-pc-auto-selection-highlight {
	background-color: #fff6d6;
	border-radius: 4px;
}

.jh-pc-auto-selection-highlight strong,
.jh-pc-auto-selection-highlight span {
	color: #b35c00;
	font-weight: 800;
}

.jh-pc-product-selection-variation {
	align-items: start;
	background: rgba(0, 145, 122, 0.08);
	border-left: 4px solid #00917a;
	border-radius: 4px;
	margin-top: 8px;
	padding: 10px 12px;
}

.jh-pc-product-selection-variation strong,
.jh-pc-product-selection-variation span {
	color: #007c68;
	font-weight: 800;
	max-width: min(620px, 62vw);
	overflow-wrap: anywhere;
	white-space: normal;
}


/* v2.0.213: Product-Scroller folgt der Hoehe der rechten Spalte. Keine kuenstliche Deadzone. */
.jh-pc-shell {
	align-items: stretch;
}

.jh-pc-stage {
	min-height: 0;
	overflow: hidden;
}

.jh-pc-position-list {
	align-content: start;
	flex: 1 1 auto;
	min-height: 0;
}

@media (max-width: 980px) {
	.jh-pc-stage {
		height: auto !important;
		overflow: visible;
	}

	.jh-pc-position-list {
		height: auto !important;
		max-height: none !important;
		overflow: visible;
	}
}

/* v2.0.214: Berechnung bleibt beim Aktionsbutton offen und wird im Viewport sauber zentriert. */
.jh-pc-calc-adjust-button {
	position: relative;
	z-index: 2;
}

.jh-pc-calculation-field.is-breakdown-open {
	scroll-margin-top: 90px;
	scroll-margin-bottom: 90px;
}

/* v2.0.215: Die rechte Spalte darf nicht von der natuerlichen Hoehe der linken Produktliste gestreckt werden.
   Rechts gibt die sichtbare Hoehe vor; links scrollt nur innerhalb dieser Hoehe. */
.jh-pc-visual .jh-pc-shell {
	align-items: start !important;
}

.jh-pc-visual .jh-pc-stage {
	box-sizing: border-box;
	max-height: none !important;
	overflow: hidden !important;
}

.jh-pc-visual .jh-pc-position-list {
	box-sizing: border-box;
	max-height: none !important;
	overflow-y: auto !important;
}

@media (max-width: 980px) {
	.jh-pc-visual .jh-pc-shell {
		align-items: stretch !important;
	}
}


/* v2.0.311: Der serverseitig gerenderte Inhalt ist sofort sichtbar.
   Die nachfolgende Scroller-Synchronisierung darf die erste Darstellung
   nicht mehr bis zur Ausführung des Frontend-Skripts blockieren. */
.jh-pc-visual .jh-pc-shell {
	visibility: visible;
}

/* v2.0.217: Produktdetails erst nach echter Produktauswahl anzeigen. */
/* v2.0.220: Produktdetails bleiben beim Initial-Laden strikt verborgen. */
.jh-pc:not(.has-product-selection) .jh-pc-selected-product {
	display: none !important;
}

.jh-pc-formula-breakdown-row.is-jumpable {
	cursor: pointer;
}

.jh-pc-formula-breakdown-row.is-jumpable strong {
	text-decoration: none;
}

.jh-pc-formula-breakdown-row.is-jumpable:hover strong,
.jh-pc-formula-breakdown-row.is-jumpable:focus strong {
	text-decoration: underline;
}


/* v2.0.223: Bei aktivem Rechenfehler ersetzt rechts im Anfragebanner die Fehler-Aktion den Anfrage-/Warenkorb-Button. */
.jh-pc-config-footer-error-wrap {
	display: grid;
	gap: 10px;
	grid-column: 2;
	justify-self: stretch;
	min-width: min(420px, 100%);
}

.jh-pc-config-footer-error-wrap[hidden] {
	display: none !important;
}

.jh-pc-config-footer-error {
	background: #e60000;
	border-radius: 4px;
	color: #ffffff;
	font-size: 15px;
	font-weight: 800;
	display:flex;
	align-items:center;
	justify-content:flex-start;
	min-height:42px;
	line-height:1;
	margin:0;
	padding:0 14px;
}

.jh-pc-config-footer-adjust {
	justify-content: center;
	width: 100%;
}

/* Linke Banner-Beschreibung bleibt sichtbar; nur die rechte Aktion wird ersetzt. */
.jh-pc-config-footer.has-active-config-error {
	grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
}

.jh-pc-config-footer.has-active-config-error [data-jh-pc-global-quote-button],
.jh-pc-config-footer.has-active-config-error .jh-pc-cart-button,
.jh-pc-config-footer.has-active-config-error .jh-pc-quote-button {
	display: none !important;
}

.jh-pc-config-footer[hidden] {
	display: none !important;
}

@media (max-width: 760px) {
	.jh-pc-config-footer.has-active-config-error {
		grid-template-columns: minmax(0, 1fr);
	}

	.jh-pc-config-footer-error-wrap {
		grid-column: 1;
		min-width: 0;
	}
}

/* v2.0.280: sichtbare Ergebnisse von Wenn-dann-Bedingungen */
.jh-pc-formula-breakdown-condition {
	background: #f4f7fa;
	border: 1px solid #d7e1ea;
	border-radius: 5px;
	margin: 4px 0;
	padding: 8px 10px;
}

.jh-pc-formula-breakdown-condition strong {
	color: #393939;
}

.jh-pc-formula-breakdown-condition span {
	border-radius: 999px;
	font-size: 12px;
	padding: 4px 9px;
}

.jh-pc-formula-breakdown-condition.is-passed span {
	background: #e4f5ef;
	color: #08765f;
}

.jh-pc-formula-breakdown-condition.is-failed span {
	background: #fde8e8;
	color: #b4232a;
}

.jh-pc-formula-breakdown-condition.is-inactive span,
.jh-pc-formula-breakdown-condition.is-incomplete span {
	background: #edf1f5;
	color: #596773;
}

/* v2.0.359: Gleich hohe Bild- und Textbereiche in der Ausführungsübersicht */
.jh-pc-preconfig-results {
	display: grid;
	gap: 14px;
	min-width: 0;
}

.jh-pc-preconfig-reset {
	background: #ffffff;
	border: 1px solid var(--jh-pc-blue);
	border-radius: 5px;
	color: var(--jh-pc-blue);
	cursor: pointer;
	font-size: 13px;
	font-weight: 800;
	min-height: 38px;
	padding: 8px 12px;
}

.jh-pc-preconfig-reset:hover,
.jh-pc-preconfig-reset:focus {
	background: var(--jh-pc-blue);
	color: #ffffff;
	outline: 0;
}

.jh-pc-preconfig-reset:disabled {
	background: #f4f5f6;
	border-color: #d8dde1;
	color: #8b949b;
	cursor: default;
}

.jh-pc-preconfig-carousel {
	background: #ffffff;
	border: 1px solid rgba(2, 79, 154, .14);
	border-left: 5px solid var(--jh-pc-light-blue);
	border-radius: 7px;
	box-sizing: border-box;
	min-width: 0;
	padding: 14px;
}

.jh-pc-preconfig-carousel[hidden],
.jh-pc-preconfig-carousel-slide[hidden],
.jh-pc-preconfig-target[hidden] {
	display: none !important;
}

.jh-pc-preconfig-carousel-head {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	margin-bottom: 12px;
}

.jh-pc-preconfig-carousel-head > strong {
	color: var(--jh-pc-blue);
	display: block;
	font-size: 15px;
	line-height: 1.3;
}

.jh-pc-preconfig-carousel-head > span {
	color: var(--jh-pc-grey);
	font-size: 12px;
	font-weight: 800;
}

.jh-pc-preconfig-result-properties {
	display: grid;
	gap: 3px;
	margin-top: 7px;
}

.jh-pc-preconfig-result-property {
	align-items: baseline;
	display: grid;
	gap: 10px;
	grid-template-columns: minmax(110px, max-content) minmax(0, 1fr);
}

.jh-pc-preconfig-result-property-label,
.jh-pc-preconfig-result-property-value {
	display: block;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.4;
}

.jh-pc-preconfig-result-property-label {
	color: #393939;
}

.jh-pc-preconfig-result-property-value {
	color: var(--jh-pc-blue);
}

.jh-pc-preconfig-carousel-body {
	display: block;
	min-width: 0;
}

.jh-pc-preconfig-carousel-viewport {
	align-items: stretch;
	background: linear-gradient(135deg, #f8fbfd, #ffffff);
	display: grid;
	gap: 14px;
	grid-auto-rows: 1fr;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	min-height: 0;
	overflow: visible;
}

.jh-pc-preconfig-carousel-viewport.is-single {
	grid-template-columns: minmax(0, 1fr);
}

.jh-pc-preconfig-carousel-slide {
	align-self: stretch;
	background: #ffffff;
	border: 1px solid rgba(2, 79, 154, .08);
	display: grid;
	grid-template-rows: 64px 300px minmax(150px, 1fr);
	height: 100%;
	min-height: 0;
	margin: 0;
	min-width: 0;
	width: 100%;
}

.jh-pc-preconfig-carousel-slide-head {
	box-sizing: border-box;
	height: 64px;
	overflow: hidden;
	padding: 10px 12px 6px;
	text-align: left;
}

.jh-pc-preconfig-carousel-slide-head > strong {
	color: var(--jh-pc-blue);
	display: block;
	font-size: 21px;
	font-weight: 800;
	line-height: 1.25;
}

.jh-pc-preconfig-carousel-slide-image {
	align-items: center;
	display: flex;
	height: 300px;
	justify-content: center;
	min-height: 0;
	overflow: hidden;
}

.jh-pc-preconfig-carousel-slide-image img {
	cursor: zoom-in;
	display: block;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
	width: 100%;
}

.jh-pc-preconfig-carousel-slide-description {
	background: #ffffff;
	border-top: 1px solid rgba(2, 79, 154, .12);
	box-sizing: border-box;
	color: var(--jh-pc-dark);
	font-size: 14px;
	height: 100%;
	line-height: 1.5;
	min-height: 150px;
	min-width: 0;
	padding: 14px 16px 16px;
	text-align: left;
}

.jh-pc-preconfig-carousel-slide-description[hidden] {
	display: none !important;
}

.jh-pc-preconfig-carousel-slide-description .jh-pc-preconfig-target-hint,
.jh-pc-preconfig-carousel-slide-description .jh-pc-preconfig-target-rich-text {
	color: inherit;
	font-size: inherit;
	line-height: inherit;
	margin-top: 0;
}

.jh-pc-preconfig-carousel-slide-description .jh-pc-preconfig-target-hint + .jh-pc-preconfig-target-rich-text {
	border-top: 1px solid var(--jh-pc-line);
	margin-top: 10px;
	padding-top: 10px;
}

.jh-pc-preconfig-carousel-slide-description p:first-child,
.jh-pc-preconfig-carousel-slide-description ul:first-child,
.jh-pc-preconfig-carousel-slide-description ol:first-child {
	margin-top: 0;
}

.jh-pc-preconfig-carousel-slide-description p:last-child,
.jh-pc-preconfig-carousel-slide-description ul:last-child,
.jh-pc-preconfig-carousel-slide-description ol:last-child {
	margin-bottom: 0;
}

.jh-pc-preconfig-carousel-slide-description .jh-pc-preconfig-button {
	display: inline-flex;
	margin-top: 12px;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-viewport {
	grid-template-columns: minmax(0, 1fr);
	width: 100%;
}

.jh-pc-preconfig-carousel.is-focused {
	padding: 10px;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-head {
	margin-bottom: 6px;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-body {
	display: block;
	position: relative;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide {
	grid-template-columns: minmax(420px, .85fr) minmax(500px, 1.15fr);
	grid-template-rows: 420px auto;
	height: auto;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-head {
	grid-column: 1;
	grid-row: 1;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-image {
	grid-column: 2;
	grid-row: 1;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-description {
	grid-column: 1 / -1;
	grid-row: 2;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-head {
	align-self: start;
	min-height: 0;
	padding: 14px 10px;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-image {
	min-height: 0;
	padding: 0;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-result-property {
	gap: 10px;
	grid-template-columns: minmax(132px, max-content) minmax(0, 1fr);
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-result-properties {
	gap: 2px;
	margin-top: 5px;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-result-property-value {
	hyphens: none;
	white-space: nowrap;
	word-break: normal;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-arrow.is-prev {
	left: 4px;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-arrow.is-next {
	right: 4px;
}

.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-arrow:disabled {
	visibility: hidden;
}

.jh-pc-preconfig-carousel-arrow {
	align-items: center;
	background: #ffffff;
	border: 1px solid var(--jh-pc-blue);
	border-radius: 999px;
	color: var(--jh-pc-blue);
	cursor: pointer;
	display: inline-flex;
	font-size: 28px;
	height: 40px;
	justify-content: center;
	line-height: 1;
	padding: 0 0 3px;
	width: 40px;
}

.jh-pc-preconfig-carousel-arrow:hover,
.jh-pc-preconfig-carousel-arrow:focus {
	background: var(--jh-pc-blue);
	color: #ffffff;
	outline: 0;
}

.jh-pc-preconfig-carousel-arrow:disabled {
	border-color: #d8dde1;
	color: #a4abb1;
	cursor: default;
}

.jh-pc-preconfig-targets {
	display: block;
}

.jh-pc-preconfig-targets > [data-preconfig-target] {
	display: none !important;
}

.jh-pc-preconfig-results .jh-pc-preconfig-target {
	align-items: start;
	grid-template-columns: minmax(0, 1fr) auto;
	padding: 16px 18px;
}

.jh-pc-preconfig-results .jh-pc-preconfig-target-content {
	align-self: start;
	grid-column: 1;
	justify-self: start;
	width: 100%;
}

.jh-pc-preconfig-results .jh-pc-preconfig-target.no-image .jh-pc-preconfig-target-content {
	grid-column: 1;
	grid-row: 1;
}

.jh-pc-preconfig-results .jh-pc-preconfig-target-hint {
	color: var(--jh-pc-dark);
	margin-top: 0;
}

.jh-pc-preconfig-results .jh-pc-preconfig-target-rich-text {
	border-top: 0;
	color: var(--jh-pc-dark);
	margin-top: 0;
	padding-top: 0;
}

.jh-pc-preconfig-results .jh-pc-preconfig-target-hint strong,
.jh-pc-preconfig-results .jh-pc-preconfig-target-rich-text strong {
	color: inherit;
	display: inline;
	font-size: inherit;
	line-height: inherit;
}

.jh-pc-preconfig-results .jh-pc-preconfig-target-hint span,
.jh-pc-preconfig-results .jh-pc-preconfig-target-rich-text span {
	color: inherit;
	display: inline;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	margin-top: 0;
}

.jh-pc-preconfig-results .jh-pc-preconfig-target-hint p,
.jh-pc-preconfig-results .jh-pc-preconfig-target-hint li,
.jh-pc-preconfig-results .jh-pc-preconfig-target-rich-text p,
.jh-pc-preconfig-results .jh-pc-preconfig-target-rich-text li {
	color: inherit;
	font-size: inherit;
	line-height: inherit;
}

.jh-pc-preconfig-results .jh-pc-preconfig-target-hint a,
.jh-pc-preconfig-results .jh-pc-preconfig-target-rich-text a {
	color: var(--jh-pc-blue);
}

.jh-pc-preconfig-results .jh-pc-preconfig-target-hint + .jh-pc-preconfig-target-rich-text {
	border-top: 1px solid var(--jh-pc-line);
	margin-top: 12px;
	padding-top: 10px;
}

.jh-pc-preconfig-results .jh-pc-preconfig-button,
.jh-pc-preconfig-results .jh-pc-preconfig-target.no-image .jh-pc-preconfig-button {
	align-self: start;
	grid-column: 2;
	grid-row: 1;
}

/* v2.0.242: Formatierte Zusatzinformationen fuer Ziel-Konfiguratoren */
.jh-pc-preconfig-target-hint {
	color: var(--jh-pc-grey);
	font-size: 14px;
	line-height: 1.45;
	margin-top: 8px;
}

.jh-pc-preconfig-target-rich-text {
	border-top: 1px solid var(--jh-pc-line);
	color: var(--jh-pc-dark);
	font-size: 15px;
	line-height: 1.55;
	margin-top: 12px;
	padding-top: 10px;
}

.jh-pc-preconfig-target-hint p,
.jh-pc-preconfig-target-rich-text p {
	margin: 0 0 8px;
}

.jh-pc-preconfig-target-rich-text ul,
.jh-pc-preconfig-target-rich-text ol {
	margin: 8px 0 8px 20px;
	padding: 0;
}

.jh-pc-preconfig-target-rich-text li + li {
	margin-top: 4px;
}

@media (max-width: 1280px) {
	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto 360px auto;
		height: auto;
	}

	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-head,
	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-image,
	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-description {
		grid-column: 1;
	}

	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-head { grid-row: 1; }
	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-image { grid-row: 2; }
	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-description { grid-row: 3; }

	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-head {
		padding: 10px 8px 5px;
	}
}

@media (max-width: 760px) {
	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto 260px auto;
		height: auto;
	}

	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-head {
		padding: 8px 6px 5px;
	}

	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-carousel-slide-image {
		padding-right: 0;
	}

	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-result-property {
		gap: 1px;
		grid-template-columns: minmax(0, 1fr);
	}

	.jh-pc-preconfig-carousel.is-focused .jh-pc-preconfig-result-property-value {
		white-space: normal;
	}

	.jh-pc-preconfig-carousel-slide-head > strong {
		font-size: 21px;
	}

	.jh-pc-preconfig-result-property-label,
	.jh-pc-preconfig-result-property-value {
		font-size: 15px;
	}

	.jh-pc-preconfig-result-property {
		grid-template-columns: 1fr;
		gap: 1px;
	}

	.jh-pc-preconfig-carousel-viewport {
		grid-template-columns: 1fr;
	}

	.jh-pc-preconfig-carousel-slide {
		grid-template-rows: auto 260px auto;
		height: auto;
	}

	.jh-pc-preconfig-carousel-slide-image {
		min-height: 0;
	}

	.jh-pc-preconfig-results .jh-pc-preconfig-target {
		grid-template-columns: 1fr;
	}

	.jh-pc-preconfig-results .jh-pc-preconfig-button,
	.jh-pc-preconfig-results .jh-pc-preconfig-target.no-image .jh-pc-preconfig-button {
		grid-column: 1;
		grid-row: auto;
		width: 100%;
	}
}
.jh-pc-options.is-automatic select:disabled {
	opacity: 1;
	border-color: #c5cbd0;
	background-color: #e2e6e8;
	box-shadow: inset 0 0 0 1px rgba(57, 57, 57, 0.04);
	color: #727b81;
	cursor: not-allowed;
	-webkit-text-fill-color: #727b81;
}

.jh-pc-options.is-automatic label.is-auto-controlled > span {
	color: #788188;
}

.jh-pc-auto-selection-status {
	margin: 8px 0 0;
	padding: 9px 12px;
	border-radius: 5px;
	background: #eef3f4;
	color: #4b555c;
	font-size: 13px;
	line-height: 1.4;
}

.jh-pc-auto-selection-status.is-selected {
	border-left: 4px solid #008b7c;
	background: #eaf6f3;
	color: #17655d;
}

.jh-pc-auto-selection-status.is-warning {
	border-left: 4px solid #d97706;
	background: #fff3df;
	color: #8a4b08;
}

.jh-pc-auto-selection-status.is-error {
	border-left: 4px solid #b42318;
	background: #fff0ef;
	color: #8f1d14;
}

/* Automatic product selection: compact explanation icon and modal. */
.jh-pc-auto-selection-status.has-auto-selection-info,
.jh-pc-product-selection-field [data-product-selection-message].has-auto-selection-info {
	box-sizing: border-box;
	cursor: pointer;
	display: block;
	min-height: 48px;
	padding-right: 58px;
	position: relative;
}

.jh-pc-auto-selection-status.has-auto-selection-info:hover,
.jh-pc-product-selection-field [data-product-selection-message].has-auto-selection-info:hover {
	filter: brightness(0.98);
}

.jh-pc-auto-selection-status.has-auto-selection-info:focus-visible,
.jh-pc-product-selection-field [data-product-selection-message].has-auto-selection-info:focus-visible {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.5), 0 0 0 5px rgba(143, 29, 20, 0.35);
	outline: none;
}

.jh-pc-auto-selection-message-text {
	display: block;
	min-width: 0;
	white-space: pre-line;
}

.jh-pc-auto-selection-info-button {
	align-items: center;
	background: #ffffff;
	border: 2px solid rgba(143, 29, 20, 0.42);
	border-radius: 50%;
	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2);
	box-sizing: border-box;
	color: #8f1d14;
	cursor: pointer;
	display: grid;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 20px;
	font-style: normal;
	font-weight: 900;
	height: 34px;
	line-height: 1;
	place-items: center;
	position: absolute;
	right: 12px;
	text-align: center;
	pointer-events: none;
	text-transform: none;
	top: 50%;
	transform: translateY(-50%);
	width: 34px;
}

.jh-pc-auto-selection-info-button > span {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: center;
	line-height: 1;
	padding: 0 0 1px;
	width: 100%;
}


html.jh-pc-modal-open {
	overflow: hidden;
}

.jh-pc-auto-info-modal {
	align-items: center;
	background: rgba(21, 35, 47, 0.68);
	display: flex;
	inset: 0;
	justify-content: center;
	padding: 24px;
	position: fixed;
	z-index: 1000000;
}

.jh-pc-auto-info-modal[hidden] {
	display: none !important;
}

.jh-pc-auto-info-dialog {
	background: #ffffff;
	border-radius: 12px;
	box-shadow: 0 22px 70px rgba(0, 0, 0, 0.3);
	max-height: calc(100vh - 48px);
	max-width: 920px;
	overflow: auto;
	padding: 30px 32px 28px;
	position: relative;
	width: 100%;
}

.jh-pc-auto-info-close {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: #393939;
	cursor: pointer;
	display: inline-flex;
	font-size: 28px;
	font-weight: 400;
	height: 38px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: absolute;
	right: 14px;
	top: 12px;
	width: 38px;
}

.jh-pc-auto-info-close:hover,
.jh-pc-auto-info-close:focus-visible {
	background: #eef4f8;
	color: #005aa0;
	outline: none;
}

.jh-pc-auto-info-eyebrow {
	color: #005aa0;
	display: block;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	margin: 0 48px 7px 0;
	text-transform: uppercase;
}

.jh-pc-auto-info-dialog h3 {
	color: #222222;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 48px 18px 0;
}

.jh-pc-auto-info-content p {
	background: transparent;
	border: 0;
	color: #393939;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.55;
	margin: 0 0 12px;
	padding: 0;
}

.jh-pc-auto-info-content p:last-child {
	margin-bottom: 0;
}


.jh-pc-auto-info-intro {
	font-size: 15px !important;
	font-weight: 500 !important;
	margin-bottom: 18px !important;
}

.jh-pc-auto-info-group {
	background: #f6f8fa;
	border: 1px solid #dce4e9;
	border-radius: 8px;
	margin: 0 0 16px;
	overflow: hidden;
}

.jh-pc-auto-info-group h4 {
	background: #eaf1f6;
	color: #005aa0;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.02em;
	line-height: 1.35;
	margin: 0;
	padding: 10px 14px;
	text-transform: uppercase;
}

.jh-pc-auto-info-rows {
	padding: 4px 14px;
}

.jh-pc-auto-info-row {
	align-items: center;
	border-bottom: 1px solid #e2e8ec;
	display: grid;
	gap: 18px;
	grid-template-columns: minmax(0, 1fr) minmax(220px, 42%);
	padding: 9px 0;
}

.jh-pc-auto-info-row:last-child {
	border-bottom: 0;
}

.jh-pc-auto-info-row > strong {
	color: #39434a;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}

.jh-pc-auto-info-row > span {
	color: #172b3a;
	font-size: 14px;
	min-width: 0;
	overflow-wrap: anywhere;
	font-variant-numeric: tabular-nums;
	font-weight: 800;
	line-height: 1.4;
	text-align: right;
}

.jh-pc-auto-info-row.is-error > strong,
.jh-pc-auto-info-row.is-error > span {
	color: #b42318;
}

.jh-pc-auto-info-row.is-ok > strong,
.jh-pc-auto-info-row.is-ok > span {
	color: #087567;
}

.jh-pc-auto-info-label {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: 8px;
	min-width: 0;
}

.jh-pc-auto-info-label-text {
	color: inherit;
	flex: 1 1 auto;
	font: inherit;
	line-height: inherit;
	min-width: 0;
}

.jh-pc-auto-info-field-badge {
	align-items: center !important;
	background: var(--jh-pc-blue, #005aa0) !important;
	border: 2px solid #ffffff !important;
	border-radius: 5px !important;
	box-shadow: 0 8px 18px rgba(2, 79, 154, .20) !important;
	box-sizing: border-box !important;
	color: #ffffff !important;
	display: inline-flex !important;
	flex: 0 0 auto !important;
	font-size: 13px !important;
	font-weight: 900 !important;
	height: 34px !important;
	justify-content: center !important;
	letter-spacing: 0 !important;
	line-height: 1 !important;
	min-height: 34px !important;
	min-width: 34px !important;
	overflow-wrap: normal !important;
	padding: 0 9px !important;
	text-align: center !important;
	white-space: nowrap !important;
	width: auto !important;
}

.jh-pc-auto-info-value.has-field-formula {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: flex-end;
	min-height: 34px;
}

.jh-pc-auto-info-formula-token {
	color: inherit;
	font-size: 15px;
	font-style: normal;
	font-weight: 800;
	line-height: 1;
}

.jh-pc-auto-info-row.is-error .jh-pc-auto-info-field-badge,
.jh-pc-auto-info-row.is-ok .jh-pc-auto-info-field-badge {
	color: #ffffff !important;
}

.jh-pc-auto-info-conclusion {
	background: #fff1f0 !important;
	border-left: 4px solid #b42318 !important;
	border-radius: 5px;
	color: #7f1d17 !important;
	font-weight: 600 !important;
	margin-top: 18px !important;
	padding: 12px 14px !important;
}

@media (max-width: 640px) {
	.jh-pc-auto-info-modal {
		align-items: flex-end;
		padding: 12px;
	}

	.jh-pc-auto-info-dialog {
		border-radius: 12px 12px 8px 8px;
		max-height: calc(100vh - 24px);
		padding: 27px 22px 24px;
	}

	.jh-pc-auto-info-dialog h3 {
		font-size: 19px;
	}

	.jh-pc-auto-info-row {
		display: block;
	}

	.jh-pc-auto-info-row > span {
		display: block;
		margin-top: 7px;
		min-width: 0;
		text-align: left;
	}

	.jh-pc-auto-info-label {
		align-items: flex-start;
	}

	.jh-pc-auto-info-value.has-field-formula {
		display: flex;
		justify-content: flex-start;
	}
}



/* Quantity of the complete top-level bundle. */
.jh-pc-position[data-bundle-parent] {
	grid-template-areas:
		"visual content"
		"quantity quantity";
}

.jh-pc-bundle-parent-quantity-control {
	align-items: center;
	background: #ffffff;
	border: 1px solid #dfe6ec;
	border-radius: 6px;
	display: grid;
	gap: 12px;
	grid-area: quantity;
	grid-template-columns: minmax(0, 1fr) 92px;
	margin: 0;
	max-width: none;
	padding: 10px 12px;
	width: 100%;
}

.jh-pc-bundle-parent-quantity-control > span {
	color: var(--jh-pc-dark);
	font-size: 14px;
	font-weight: 700;
}

.jh-pc-bundle-parent-quantity-control input[data-config-quantity] {
	background: #ffffff;
	border: 1px solid #cfd8df;
	border-radius: 4px;
	box-sizing: border-box;
	color: var(--jh-pc-dark);
	font-size: 15px;
	font-weight: 700;
	height: 40px;
	margin: 0;
	min-height: 40px;
	padding: 7px 10px;
	text-align: center;
	width: 86px;
}

.jh-pc-bundle-parent-quantity-control input[data-config-quantity]:focus {
	border-color: var(--jh-pc-green);
	box-shadow: 0 0 0 1px var(--jh-pc-green);
	outline: 0;
}

/* Editable quantity for one concrete bundle component. */
.jh-pc-bundle-quantity-control {
	align-items: center;
	background: #ffffff;
	border: 1px solid #dfe6ec;
	border-radius: 6px;
	display: grid;
	gap: 12px;
	grid-area: quantity;
	grid-template-columns: minmax(0, 1fr) 92px;
	margin: 0;
	max-width: none;
	padding: 10px 12px;
	width: 100%;
}

.jh-pc-bundle-quantity-control > span {
	color: var(--jh-pc-dark);
	font-size: 14px;
	font-style: normal;
	font-weight: 700;
}

.jh-pc-bundle-quantity-control input[data-bundle-quantity] {
	background: #ffffff;
	border: 1px solid #cfd8df;
	border-radius: 4px;
	box-sizing: border-box;
	color: var(--jh-pc-dark);
	font-size: 15px;
	font-weight: 700;
	height: 40px;
	margin: 0;
	min-height: 40px;
	padding: 7px 10px;
	text-align: center;
	width: 86px;
}

.jh-pc-bundle-quantity-control input[data-bundle-quantity]:focus {
	border-color: var(--jh-pc-green);
	box-shadow: 0 0 0 1px var(--jh-pc-green);
	outline: 0;
}

@media (max-width: 640px) {
	.jh-pc-position[data-bundle-parent],
	.jh-pc-position-bundle-child {
		grid-template-areas:
			"visual"
			"content"
			"quantity";
		grid-template-columns: minmax(0, 1fr);
	}

	.jh-pc-bundle-parent-quantity-control,
	.jh-pc-bundle-quantity-control {
		max-width: none;
	}
}

/* v2.0.376: Long field identifiers stay inside their blue badges. */
.jh-pc-formula-breakdown-row.has-breakdown-badge {
	grid-template-columns: minmax(34px, max-content) minmax(0, 1fr) minmax(112px, max-content);
}

.jh-pc-formula-breakdown-row.has-breakdown-badge > b {
	box-sizing: border-box;
	height: auto;
	max-width: 128px;
	min-height: 30px;
	min-width: 30px;
	overflow-wrap: anywhere;
	padding: 7px 9px;
	text-align: center;
	white-space: normal;
	width: auto;
	word-break: break-word;
}

.jh-pc-position-custom-field {
	grid-template-columns: minmax(42px, max-content) minmax(0, 1fr);
}

.jh-pc-position-custom-field strong,
.jh-pc-global-input-field strong {
	height: auto !important;
	max-width: 128px !important;
	min-height: 34px !important;
	min-width: 34px !important;
	overflow-wrap: anywhere !important;
	padding: 7px 9px !important;
	text-align: center !important;
	white-space: normal !important;
	width: auto !important;
	word-break: break-word !important;
}

@media (max-width: 640px) {
	.jh-pc-formula-breakdown-row.has-breakdown-badge {
		grid-template-areas:
			"key label"
			". value";
		grid-template-columns: minmax(34px, max-content) minmax(0, 1fr);
	}

	.jh-pc-formula-breakdown-row.has-breakdown-badge > b {
		grid-area: key;
	}

	.jh-pc-formula-breakdown-row.has-breakdown-badge > strong {
		grid-area: label;
	}

	.jh-pc-formula-breakdown-row.has-breakdown-badge > span {
		grid-area: value;
		justify-self: start;
		text-align: left;
	}
}


/* v2.0.379: optional/required product state and unified quantity rows. */
.jh-pc-position-has-quantity {
	grid-template-areas:
		"visual content"
		"quantity quantity";
}

.jh-pc-quantity-control {
	align-items: center;
	background: #ffffff;
	border: 1px solid #dfe6ec;
	border-radius: 6px;
	display: grid;
	gap: 14px;
	grid-area: quantity;
	grid-template-columns: minmax(0, 1fr) 92px;
	margin: 0;
	max-width: none;
	padding: 10px 12px;
	width: 100%;
}

.jh-pc-quantity-state {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	min-width: 0;
}

.jh-pc-quantity-state-button {
	background: #ffffff;
	border: 1px solid #cfd8df;
	border-radius: 5px;
	color: var(--jh-pc-dark);
	cursor: pointer;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	min-height: 36px;
	padding: 7px 13px;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.jh-pc-quantity-state-button.is-active {
	background: var(--jh-pc-green);
	border-color: var(--jh-pc-green);
	color: #ffffff;
}

.jh-pc-quantity-state-button:disabled {
	cursor: not-allowed;
	opacity: .48;
}

/* v2.0.381: technically required products have no selectable status. */
.jh-pc-quantity-control.is-required .jh-pc-quantity-state-button,
.jh-pc-quantity-control.is-required .jh-pc-quantity-state-button.is-active {
	background: #eef1f3;
	border-color: #d7dde2;
	box-shadow: none;
	color: #8a949c;
	cursor: not-allowed;
	opacity: 1;
}

.jh-pc-quantity-control.is-required [data-quantity-state="1"]::after {
	content: "";
}

.jh-pc-quantity-control.is-not-required,
.jh-pc-position.is-not-required {
	background: #f5f7f8;
}

.jh-pc-position.is-not-required > .jh-pc-position-content,
.jh-pc-position.is-not-required > .jh-pc-position-visual {
	opacity: .52;
}

.jh-pc-quantity-control.is-parent-disabled {
	opacity: .55;
}

.jh-pc-quantity-control input[data-config-quantity],
.jh-pc-quantity-control input[data-bundle-quantity] {
	background: #ffffff;
	border: 1px solid #cfd8df;
	border-radius: 4px;
	box-sizing: border-box;
	color: var(--jh-pc-dark);
	font-size: 15px;
	font-weight: 700;
	height: 40px;
	margin: 0;
	min-height: 40px;
	padding: 7px 10px;
	text-align: center;
	width: 86px;
}

.jh-pc-quantity-control input:disabled {
	background: #f2f4f5;
	color: #7a858d;
}

@media (max-width: 640px) {
	.jh-pc-position-has-quantity {
		grid-template-areas:
			"visual"
			"content"
			"quantity";
		grid-template-columns: minmax(0, 1fr);
	}

	.jh-pc-quantity-control {
		grid-template-columns: minmax(0, 1fr) 82px;
	}

	.jh-pc-quantity-state {
		align-items: stretch;
		flex-direction: column;
	}
}


/* v2.0.382: Das generische Bundle-Aufbaumaß bleibt technisch vorhanden, wird aber nicht zusätzlich zur konfigurierten Feldanzeige ausgegeben. */
.jh-pc.jh-pc-visual .jh-pc-position-meta [data-position-field="bundle_pdimensions"] {
	display: none !important;
}
