.frame-type-rlvshop_shop .form-control {
	background: #f5f5f5 !important;
	padding: 0.5rem 1rem;
	color: #004044;
	border: 2px solid transparent;
	border-radius: 0;
	font-size: inherit;
}

.frame-type-rlvshop_shop select.form-control {
	border: 2px solid #DFDFDF;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d3b37' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
	background-repeat: no-repeat !important;
	background-position: right 8px center !important;
	background-size: 32px 32px !important;
    padding-right: 48px;
}

.frame-type-rlvshop_shop .form-control:focus {
	box-shadow: none;
	color: #004044;
}

.frame-type-rlvshop_shop textarea.form-control::placeholder {
	color: #004044;
	opacity: .75;
}

.frame-type-rlvshop_shop .form-row {
	margin-bottom: .5rem;
}

.frame-type-rlvshop_shop .chk {
 	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-right: 16px;
	cursor: pointer;
	user-select: none;
}

/* Nativen Stil (Häkchen) ausblenden und selbst zeichnen */
input[type="checkbox"].tick,
input[type="radio"].tick {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	width: 22px;
	height: 22px;
	margin: 0;
	border: 1px solid #d7d7d7;
	background: #f6f6f6;
	position: relative;
	cursor: pointer;
	background-color: f6f6f6;
	accent-color: none;
}

/* Häkchen als Pseudo-Element (SVG als Background) */
.tick::after {
  content: "";
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 16px;
  transition: opacity .12s ease;
}

/* Unchecked: dezentes graues Häkchen */
.tick:not(:checked)::after {
  opacity: .35;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2399a3a3' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='5 12 10 17 19 7'/></svg>");
}


/* Checked: grüne Fläche + weißes Häkchen */
input[type="checkbox"].tick:checked,
input[type="radio"].tick:checked {
  background: #65A683;
  border-color: #65A683;
}
input[type="checkbox"].tick:checked::after,
input[type="radio"].tick:checked::after {
  opacity: 1;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='5 12 10 17 19 7'/></svg>");
}

.frame-type-rlvshop_shop [data-tried]:invalid {
  border-color: #E1B7BA;
  background: #E1B7BA !important;
  color: #B74D58;
}

#address-form a:not(.btn-underline) {
	font-size: inherit;
}

.frame-type-rlvshop_shop .btn-green-outline {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	border: 2px solid #bfe7cd;
	background: transparent;
	color: #000;
	cursor: pointer;
}

.frame-type-rlvshop_shop .btn-green-outline.active,
.frame-type-rlvshop_shop .btn-green-outline:hover {
	background: #bfe7cd;
	color: #000;
}

/* Navigations-Buttons (Weiter/Zurück) - Text mit dicker Unterstreichung statt Box */
.frame-type-rlvshop_shop .btn-underline {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	display: inline-block;
	padding: 0 0 0.1rem;
	border: none;
	border-bottom: 9px solid #c7e6cf;
	background: transparent;
	color: #000;
	font-size: 1rem;
	font-family: inherit;
	font-weight: normal;
	line-height: inherit;
	text-decoration: none;
	cursor: pointer;
}

.frame-type-rlvshop_shop .btn-underline:hover,
.frame-type-rlvshop_shop .btn-underline:focus-visible {
	border-bottom-color: #93c8a0;
	background: transparent;
	color: #000;
	text-decoration: none;
}

/* Artikel-Karte (Listen-, Übersichts- und Zusammenfassungsansicht) */
.frame-type-rlvshop_shop .media-order-product-container {
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 2px solid #bfe7cd;
	overflow: hidden;
	background: #fff;
}

.frame-type-rlvshop_shop .media-order-thumbnail {
	padding: 1rem;
}

.frame-type-rlvshop_shop .media-order-thumbnail img {
	width: 100%;
	height: auto;
	display: block;
}

.frame-type-rlvshop_shop .media-order-description {
	padding: 0 1rem 1rem;
	flex: 1 1 auto;
}

.frame-type-rlvshop_shop .media-order-title {
	margin: 0 0 0.5rem;
	font-size: 1.1rem;
}

.frame-type-rlvshop_shop .media-order-summary {
	font-size: 0.9rem;
	color: #333;
}

/* Fußleiste: Preis <-> Warenkorb-Icon (Liste) ODER (- Anzahl +) <-> Löschen (Übersicht/Zusammenfassung) */
.frame-type-rlvshop_shop .media-order-shopping {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0;
	background: #bfe7cd;
	/* #bfe7cd hat ~15,5:1 Kontrast zu Schwarz, aber nur ~1,35:1 zu Weiß (WCAG AA
	   verlangt 4,5:1) - deshalb hier schwarzer statt weißer Text/Icons. */
	color: #000;
}

.frame-type-rlvshop_shop .media-order-shopping--list .media-order-shopping-price {
	padding-left: 1rem;
	font-weight: bold;
	color: #000;
}

.frame-type-rlvshop_shop .media-order-shopping-stepper {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.frame-type-rlvshop_shop .media-order-shopping-count {
	min-width: 1.5rem;
	text-align: center;
	font-weight: bold;
}

.frame-type-rlvshop_shop .media-order-shopping-cart-icon,
.frame-type-rlvshop_shop .media-order-shopping-button-minus,
.frame-type-rlvshop_shop .media-order-shopping-button-plus,
.frame-type-rlvshop_shop .media-order-shopping-delete-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border: none;
	/* #333 statt der Akzentfarbe, damit der weiße Icon-Kontrast passt (~12,6:1) */
	background: #333;
	color: #fff;
	cursor: pointer;
}

.frame-type-rlvshop_shop .media-order-shopping-cart-icon:hover,
.frame-type-rlvshop_shop .media-order-shopping-cart-icon:focus-visible,
.frame-type-rlvshop_shop .media-order-shopping-button-minus:hover,
.frame-type-rlvshop_shop .media-order-shopping-button-minus:focus-visible,
.frame-type-rlvshop_shop .media-order-shopping-button-plus:hover,
.frame-type-rlvshop_shop .media-order-shopping-button-plus:focus-visible,
.frame-type-rlvshop_shop .media-order-shopping-delete-icon:hover,
.frame-type-rlvshop_shop .media-order-shopping-delete-icon:focus-visible {
	background: #1a1a1a;
}

.frame-type-rlvshop_shop .media-order-shopping-cart-icon.is-loading,
.frame-type-rlvshop_shop .media-order-shopping-button-minus.is-loading,
.frame-type-rlvshop_shop .media-order-shopping-button-plus.is-loading,
.frame-type-rlvshop_shop .media-order-shopping-delete-icon.is-loading {
	cursor: default;
}

.frame-type-rlvshop_shop .media-order-shopping-cart-icon.is-loading i,
.frame-type-rlvshop_shop .media-order-shopping-button-minus.is-loading i,
.frame-type-rlvshop_shop .media-order-shopping-button-plus.is-loading i,
.frame-type-rlvshop_shop .media-order-shopping-delete-icon.is-loading i {
	visibility: hidden;
}

.frame-type-rlvshop_shop .media-order-shopping-cart-icon.is-loading::after,
.frame-type-rlvshop_shop .media-order-shopping-button-minus.is-loading::after,
.frame-type-rlvshop_shop .media-order-shopping-button-plus.is-loading::after,
.frame-type-rlvshop_shop .media-order-shopping-delete-icon.is-loading::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1rem;
	height: 1rem;
	margin: -0.5rem 0 0 -0.5rem;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: rlvshop-spin 0.6s linear infinite;
}

@keyframes rlvshop-spin {
	to { transform: rotate(360deg); }
}

.rlvshop-added-tooltip {
	position: absolute;
	bottom: 100%;
	right: 0;
	margin-bottom: 0.5rem;
	padding: 0.35rem 0.75rem;
	background: #333;
	color: #fff;
	font-size: 0.8rem;
	white-space: nowrap;
	pointer-events: none;
	animation: rlvshop-tooltip-fade 1.8s ease forwards;
}

.rlvshop-added-tooltip::after {
	content: "";
	position: absolute;
	top: 100%;
	right: 0.75rem;
	border: 5px solid transparent;
	border-top-color: #333;
}

@keyframes rlvshop-tooltip-fade {
	0% { opacity: 0; transform: translateY(4px); }
	15% { opacity: 1; transform: translateY(0); }
	80% { opacity: 1; }
	100% { opacity: 0; }
}

/* Warenkorb-Widget */
.frame-type-rlvshop_shop .shopping-cart-container {
	border: 2px solid #bfe7cd;
	overflow: hidden;
	background: #fff;
}

.frame-type-rlvshop_shop .shopping-card-head {
	padding: 1rem;
	background: #bfe7cd;
	/* siehe Kontrast-Begründung oben bei .media-order-shopping - schwarzer Text auf #bfe7cd */
	color: #000;
}

.frame-type-rlvshop_shop .shopping-card-head h3 {
	margin: 0 0 0.25rem;
	color: #000;
}

.frame-type-rlvshop_shop .shopping-cart-counter {
	font-size: 0.85rem;
}

.frame-type-rlvshop_shop .shopping-card-body {
	padding: 1rem;
}

.frame-type-rlvshop_shop .shopping-cart-items {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
}

.frame-type-rlvshop_shop .shopping-cart-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid #eee;
}

.frame-type-rlvshop_shop .shopping-cart-item-count {
	font-weight: bold;
	min-width: 1.25rem;
	text-align: right;
}

.frame-type-rlvshop_shop .shopping-cart-button-remove-item button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border: none;
	background: #333;
	color: #fff;
	cursor: pointer;
}

.frame-type-rlvshop_shop .shopping-cart-button-remove-item button:hover {
	background: #1a1a1a;
}

.frame-type-rlvshop_shop .shopping-cart-item-price {
	margin-left: auto;
	text-align: right;
	white-space: nowrap;
}

.frame-type-rlvshop_shop .shopping-cart-shipping,
.frame-type-rlvshop_shop .shopping-cart-total {
	display: flex;
	justify-content: space-between;
	padding: 0.5rem 0;
}

.frame-type-rlvshop_shop .shopping-cart-shipping-price,
.frame-type-rlvshop_shop .shopping-cart-total-amount {
	margin-left: auto;
	text-align: right;
}

.frame-type-rlvshop_shop .shopping-cart-total {
	border-top: 1px solid #ccc;
	font-weight: bold;
}

.frame-type-rlvshop_shop .shopping-cart-total .subtext {
	font-weight: normal;
	font-size: 0.8rem;
}

.frame-type-rlvshop_shop .shopping-card-foot {
	background: #333;
}

.frame-type-rlvshop_shop .shopping-card-foot a {
	display: block;
	text-decoration: none;
}

.frame-type-rlvshop_shop .shopping-cart-button {
	display: block;
	width: 100%;
	padding: 0.9rem 1rem;
	border: none;
	background: transparent;
	color: #fff;
	font-weight: bold;
	cursor: pointer;
}

.frame-type-rlvshop_shop .shopping-cart-button:hover {
	background: #1a1a1a;
}

/* Captcha-Box im dunklen Footer - eigener heller Hintergrund, sonst
   unleserlich (dunkler Labeltext auf #333) */
.frame-type-rlvshop_shop .captcha-container {
	background: #fff;
	color: #000;
	padding: 1rem;
}

.frame-type-rlvshop_shop .captcha-container label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
	font-weight: normal;
	color: #000;
}

.frame-type-rlvshop_shop .captcha-container label strong {
	font-size: 1.2rem;
}

.frame-type-rlvshop_shop .captcha-container .form-control {
	margin: 0;
	background: #dcdcdc !important;
}

.frame-type-rlvshop_shop .eu-guarantee-notice {
	background: #fff;
}

/* Honeypot: fuer Menschen/Screenreader unsichtbar, aber weiterhin im DOM
   vorhanden und ausfuellbar - display:none/visibility:hidden wird von
   honeypot-erkennenden Bots oft ausgewertet, Off-Screen-Positionierung nicht. */
.frame-type-rlvshop_shop .rlvshop-honeypot {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
