/*
 * dvh-heidelbeeren-shop: nutzt die im Travelify Child Theme etablierten
 * dvh-Naturfarben statt generischer Grautöne. Werte hier bei Bedarf an die
 * exakten Theme-Variablen (--dvh-primary etc.) angleichen, falls vorhanden.
 */
.dvh-hb-order-form {
	clear: both;
	--dvh-hb-green-dark: #2f4d2f;
	--dvh-hb-green: #4a7c40;
	--dvh-hb-green-light: #eef6ea;
	--dvh-hb-berry: #4b2e6b;
	--dvh-hb-border: #d8e3d2;
	--dvh-hb-text: #333333;

	max-width: 480px;
	margin: 32px auto 0;
	padding: 28px;
	border: 1px solid var(--dvh-hb-border);
	border-radius: 10px;
	background: #ffffff;
	box-shadow: 0 2px 10px rgba(47, 77, 47, 0.06);
	font-family: inherit;
	color: var(--dvh-hb-text);
}

.dvh-hb-field {
	margin-bottom: 16px;
}

.dvh-hb-field-row {
	display: flex;
	gap: 12px;
}

.dvh-hb-field--zip {
	flex: 0 0 100px;
}

.dvh-hb-field--city {
	flex: 1;
}

.dvh-hb-order-form .dvh-hb-product-image {
	margin-bottom: 18px;
	text-align: center;
}

.dvh-hb-order-form .dvh-hb-product-image img.dvh-hb-product-photo {
	max-width: 220px !important;
	width: 100% !important;
	height: auto !important;
	object-fit: contain !important;
	border-radius: 8px !important;
	box-shadow: 0 2px 8px rgba(47, 77, 47, 0.12);
}

.dvh-hb-field label {
	display: block;
	margin-bottom: 4px;
	font-weight: 600;
	color: var(--dvh-hb-green-dark);
}

.dvh-hb-field input,
.dvh-hb-field select,
.dvh-hb-field textarea {
	width: 100%;
	padding: 9px 11px;
	border: 1px solid var(--dvh-hb-border);
	border-radius: 5px;
	box-sizing: border-box;
	font-size: 15px;
	font-family: inherit;
	transition: border-color 0.15s ease;
}

.dvh-hb-field input:focus,
.dvh-hb-field select:focus,
.dvh-hb-field textarea:focus {
	border-color: var(--dvh-hb-green);
	outline: none;
	box-shadow: 0 0 0 2px rgba(74, 124, 64, 0.15);
}

.dvh-hb-summary {
	margin: 20px 0;
	padding: 14px 16px;
	background: var(--dvh-hb-green-light);
	border: 1px solid var(--dvh-hb-border);
	border-radius: 6px;
	line-height: 1.7;
}

.dvh-hb-summary strong {
	color: var(--dvh-hb-green-dark);
}

.dvh-hb-discount-hint {
	margin: 8px 0 0;
	font-size: 13px;
	color: var(--dvh-hb-berry);
}

.dvh-hb-stock-hint {
	margin: 0 0 18px;
	padding: 8px 12px;
	background: var(--dvh-hb-green-light);
	border: 1px solid var(--dvh-hb-border);
	border-radius: 6px;
	font-size: 14px;
	color: var(--dvh-hb-green-dark);
}

.dvh-hb-legal {
	font-size: 12px;
	color: #777777;
	margin-bottom: 18px;
	line-height: 1.5;
}

.dvh-hb-legal a {
	color: var(--dvh-hb-green);
}

.dvh-hb-message {
	margin-top: 16px;
	padding: 12px 14px;
	border-radius: 6px;
	font-size: 14px;
}

.dvh-hb-message--ok {
	background: #e5f3e0;
	color: var(--dvh-hb-green-dark);
	border: 1px solid #c5e3ba;
}

.dvh-hb-message--error {
	background: #fbe7e7;
	color: #7a1e1e;
	border: 1px solid #f3c6c6;
}

.dvh-hb-notice {
	color: var(--dvh-hb-berry);
	text-align: center;
}

.dvh-hb-coupon-row {
	display: flex;
	gap: 8px;
}

.dvh-hb-coupon-row input {
	flex: 1;
	text-transform: uppercase;
}

.dvh-hb-coupon-btn {
	flex: 0 0 auto;
	padding: 0 16px;
	border: 1px solid var(--dvh-hb-green);
	border-radius: 5px;
	background: var(--dvh-hb-green);
	color: #ffffff;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease;
}

.dvh-hb-coupon-btn:hover {
	background: var(--dvh-hb-green-dark);
}

.dvh-hb-coupon-btn:disabled {
	opacity: 0.6;
	cursor: default;
}

.dvh-hb-coupon-message {
	margin-top: 6px;
	font-size: 13px;
	min-height: 1em;
}

.dvh-hb-coupon-message--ok {
	color: var(--dvh-hb-green-dark);
}

.dvh-hb-coupon-message--error {
	color: #7a1e1e;
}
