/**
 * Tech Innovators Checkout UI
 * Scoped to .dvl-checkout-ui on checkout page only.
 * All functionality (JS, AJAX, form names/ids) unchanged.
 */
.dvl-checkout-ui {
	--dvl-bg: #f8fafc;
	--dvl-card: #ffffff;
	--dvl-border: #e2e8f0;
	--dvl-border-light: #f1f5f9;
	--dvl-text: #0f172a;
	--dvl-text-muted: #475569;
	--dvl-text-label: #334155;
	--dvl-primary: #4f46e5;
	--dvl-primary-hover: #4338ca;
	--dvl-primary-light: #eef2ff;
	--dvl-primary-dark: #312e81;
	--dvl-required: #f43f5e;
	--dvl-focus-ring: #4f46e5;
	font-family: "Inter", ui-sans-serif, system-ui, sans-serif;
	-webkit-font-smoothing: antialiased;
	min-height: 60vh;
	background: var(--dvl-bg);
	color: var(--dvl-text);
	padding: 2rem 1rem 3rem;
}

.dvl-checkout-ui .dvl-checkout-wrap {
	max-width: 56rem;
	margin: 0 auto;
}

.dvl-checkout-ui .dvl-checkout-title {
	font-size: 1.875rem;
	font-weight: 700;
	margin-bottom: 2rem;
	color: var(--dvl-text);
}

/* Section cards (Wer nimmt teil?, Rechnungsdetails, Ihre Bestellung) */
.dvl-checkout-ui .dvl-section {
	background: var(--dvl-card);
	border-radius: 1rem;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	border: 1px solid var(--dvl-border);
	padding: 1.5rem;
	margin-bottom: 2rem;
}

.dvl-checkout-ui .dvl-section:last-of-type {
	margin-bottom: 0;
}

.dvl-checkout-ui .dvl-section-header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.dvl-checkout-ui .dvl-section-icon {
	width: 2.5rem;
	height: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--dvl-primary-light);
	color: var(--dvl-primary);
	border-radius: 0.5rem;
}

.dvl-checkout-ui .dvl-section-icon svg {
	width: 1.25rem;
	height: 1.25rem;
}

.dvl-checkout-ui .dvl-section-title {
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--dvl-text);
}

.dvl-checkout-ui .dvl-participants-hint {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	color: var(--dvl-text-muted);
}

/* Error message under each required field (no top error box) */
.dvl-checkout-ui .dvl-field-error {
	color: #c62828;
	font-size: 0.875rem;
	margin-top: 0.35rem;
	line-height: 1.4;
}
.dvl-checkout-ui .dvl-field-error a {
	color: #c62828;
	text-decoration: underline;
}

.dvl-checkout-ui .dvl-checkout-errors-fallback {
	margin-bottom: 1rem;
}
.dvl-checkout-ui .dvl-checkout-errors-fallback .dvl-field-error {
	margin-top: 0.5rem;
}

/* Form grid (2 columns on desktop) */
.dvl-checkout-ui .dvl-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

@media (max-width: 768px) {
	.dvl-checkout-ui .dvl-form-grid {
		grid-template-columns: 1fr;
	}
}

.dvl-checkout-ui .dvl-field {
	margin-bottom: 0;
}

.dvl-checkout-ui .dvl-field.full-width {
	grid-column: 1 / -1;
}

/* Labels */
.dvl-checkout-ui .dvl-label,
.dvl-checkout-ui label {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--dvl-text-label);
	display: block;
	margin-bottom: 0.5rem;
}

.dvl-checkout-ui .dvl-required {
	color: var(--dvl-required);
}

/* Inputs & selects - match sample */
.dvl-checkout-ui input[type="text"],
.dvl-checkout-ui input[type="email"],
.dvl-checkout-ui input[type="tel"],
.dvl-checkout-ui input[type="number"],
.dvl-checkout-ui select,
.dvl-checkout-ui textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	border-radius: 0.75rem;
	border: 1px solid var(--dvl-border);
	background: #fff;
	color: var(--dvl-text);
	font-size: 1rem;
	line-height: 1.5;
	transition: border-color 0.2s, box-shadow 0.2s;
	box-sizing: border-box;
}

/* Select (e.g. Anrede) – same height and look as text inputs */
.dvl-checkout-ui select {
	min-height: 3rem;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	padding-right: 2.5rem;
}

.dvl-checkout-ui input:focus,
.dvl-checkout-ui select:focus,
.dvl-checkout-ui textarea:focus {
	outline: none;
	border-color: var(--dvl-focus-ring);
	box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.25);
}

/* Participant block (Wer nimmt teil? - product card) */
.dvl-checkout-ui .dvl-participant-card {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	align-items: flex-start;
	padding: 1rem;
	background: var(--dvl-bg);
	border-radius: 0.75rem;
	border: 1px solid var(--dvl-border-light);
	margin-bottom: 1.5rem;
}

.dvl-checkout-ui .dvl-participant-card .dvl-participant-image {
	width: 8rem;
	height: 8rem;
	object-fit: cover;
	border-radius: 0.5rem;
	box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

.dvl-checkout-ui .dvl-participant-card .dvl-participant-details {
	flex: 1;
	min-width: 0;
}

.dvl-checkout-ui .dvl-participant-card .dvl-participant-name {
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--dvl-primary-dark);
	margin-bottom: 0.5rem;
}

.dvl-checkout-ui .dvl-participant-card .dvl-participant-meta {
	font-size: 0.875rem;
	color: var(--dvl-text-muted);
	line-height: 1.5;
}

.dvl-checkout-ui .dvl-participant-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
	width: 100%;
}

@media (max-width: 768px) {
	.dvl-checkout-ui .dvl-participant-fields {
		grid-template-columns: 1fr;
	}
}

/* Override existing cc-widget inside new UI */
.dvl-checkout-ui .cc-widget {
	border: none;
	padding: 0;
}

.dvl-checkout-ui .cc-item {
	display: block;
	padding: 0 0 1.5rem;
	border-top: 1px solid var(--dvl-border-light);
	margin-top: 1.5rem;
}

.dvl-checkout-ui .cc-item:first-child {
	border-top: none;
	margin-top: 0;
	padding-top: 0;
}

.dvl-checkout-ui .cc-item .infos {
	display: flex;
	gap: 1rem;
	margin-bottom: 1rem;
}

.dvl-checkout-ui .cc-item .cc-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

.dvl-checkout-ui .cc-item .cc-form .cc-field[style*="50%"] {
	width: 100% !important;
	margin-left: 0 !important;
}

/* Age + alert row: span full width of cc-form (avoid narrow “fourth” column) */
.dvl-checkout-ui .cc-item .cc-form .cc-field[id^="display_birthdate_field_"] {
	grid-column: 1 / -1;
	clear: both;
	width: 100%;
}

@media (max-width: 768px) {
	.dvl-checkout-ui .cc-item .cc-form {
		grid-template-columns: 1fr;
	}
}

.dvl-checkout-ui .cc-item .cc-form input {
	padding: 0.75rem 1rem;
	border-radius: 0.75rem;
	border: 1px solid var(--dvl-border);
}

/* Disable WooCommerce/Divi theme styles on checkout form – override (1,3,1) with !important */
.dvl-checkout-ui .quantity input.qty,
.dvl-checkout-ui .woocommerce .quantity input.qty,
.dvl-checkout-ui .woocommerce-page .quantity input.qty,
.dvl-checkout-ui .woocommerce #content .quantity input.qty,
.dvl-checkout-ui .woocommerce-page #content .quantity input.qty,
.dvl-checkout-ui .woocommerce form .form-row input.input-text,
.dvl-checkout-ui .woocommerce form .form-row textarea,
.dvl-checkout-ui .woocommerce form .form-row select,
.dvl-checkout-ui .woocommerce form .form-row .input-text,
.dvl-checkout-ui .et_pb_wc_cart_totals .select2-container--default .select2-selection--single,
.dvl-checkout-ui .et_pb_wc_checkout_billing .select2-container--default .select2-selection--single,
.dvl-checkout-ui .et_pb_wc_checkout_shipping .select2-container--default .select2-selection--single {
	-webkit-appearance: none !important;
	appearance: none !important;
	background-color: #fff !important;
	border: 1px solid var(--dvl-border) !important;
	border-radius: 0.75rem !important;
	border-width: 1px !important;
	border-style: solid !important;
	color: var(--dvl-text) !important;
	display: block !important;
	font-family: inherit !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
	letter-spacing: normal !important;
	line-height: 1.5 !important;
	margin: 0 !important;
	max-width: 100% !important;
	padding: 0.75rem 1rem !important;
	box-sizing: border-box !important;
	width: 100% !important;
}

.dvl-checkout-ui .woocommerce form .form-row select {
	min-height: 3rem !important;
	height: auto !important;
	padding-right: 2.5rem !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 1rem center !important;
}

.dvl-checkout-ui .et_pb_wc_cart_totals .select2-container--default .select2-selection--single,
.dvl-checkout-ui .et_pb_wc_checkout_billing .select2-container--default .select2-selection--single,
.dvl-checkout-ui .et_pb_wc_checkout_shipping .select2-container--default .select2-selection--single {
	min-height: 3rem !important;
}
.dvl-checkout-ui .woocommerce form .form-row .input-text,
.dvl-checkout-ui .woocommerce-page form .form-row .input-text {
	box-sizing: border-box !important;
	width: 100% !important;
}

/* Billing section - WooCommerce fields */
.dvl-checkout-ui .dvl-billing-h3,
.dvl-checkout-ui .woocommerce-billing-fields h3,
.dvl-checkout-ui .woocommerce-shipping-fields h3 {
	display: none;
}

.dvl-checkout-ui .woocommerce-billing-fields__field-wrapper,
.dvl-checkout-ui .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

.dvl-checkout-ui .woocommerce-billing-fields__field-wrapper .form-row-wide,
.dvl-checkout-ui .woocommerce-shipping-fields__field-wrapper .form-row-wide {
	grid-column: 1 / -1;
}

.dvl-checkout-ui .form-row {
	margin-bottom: 0;
	padding: 0;
}

.dvl-checkout-ui .form-row label {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--dvl-text-label);
}

.dvl-checkout-ui .form-row .required {
	color: var(--dvl-required);
}

.dvl-checkout-ui .form-row input.input-text,
.dvl-checkout-ui .form-row select {
	background-color: #fff !important;
	color: var(--dvl-text) !important;
	padding: 0.75rem 1rem !important;
	border-radius: 0.75rem !important;
	border: 1px solid var(--dvl-border) !important;
	width: 100% !important;
}

/* Order summary section (Ihre Bestellung) */
.dvl-checkout-ui #order_review_heading {
	font-size: 1.25rem;
	font-weight: 600;
	margin: 0 0 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--dvl-border-light);
}

.dvl-checkout-ui .woocommerce-checkout-review-order {
	padding: 0;
}

.dvl-checkout-ui .shop_table.woocommerce-checkout-review-order-table {
	width: 100%;
	border: none;
	margin: 0;
}

.dvl-checkout-ui .shop_table.woocommerce-checkout-review-order-table thead th {
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--dvl-border-light);
	font-weight: 600;
	color: var(--dvl-text);
	background: transparent;
}

.dvl-checkout-ui .shop_table.woocommerce-checkout-review-order-table tbody td {
	padding: 1rem 0;
	border-bottom: 1px solid var(--dvl-border-light);
	vertical-align: middle;
}

.dvl-checkout-ui .shop_table.woocommerce-checkout-review-order-table .product-thumbnail img {
	width: 4rem;
	height: 4rem;
	object-fit: cover;
	border-radius: 0.5rem;
}

.dvl-checkout-ui .shop_table.woocommerce-checkout-review-order-table .product-name {
	font-weight: 600;
	color: var(--dvl-text);
}

.dvl-checkout-ui .shop_table.woocommerce-checkout-review-order-table tfoot td,
.dvl-checkout-ui .shop_table.woocommerce-checkout-review-order-table tfoot th {
	padding: 0.5rem 0;
	border: none;
	background: transparent;
	font-size: 0.875rem;
	color: var(--dvl-text-muted);
}

.dvl-checkout-ui .shop_table.woocommerce-checkout-review-order-table .order-total th,
.dvl-checkout-ui .shop_table.woocommerce-checkout-review-order-table .order-total td {
	padding-top: 1rem;
	border-top: 1px solid var(--dvl-border);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--dvl-text);
}

.dvl-checkout-ui .shop_table.woocommerce-checkout-review-order-table .order-total .amount {
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--dvl-primary);
}

/* Payment & place order */
.dvl-checkout-ui #payment {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--dvl-border-light);
}

.dvl-checkout-ui .place-order {
	margin-top: 1.5rem;
}

/* Age restriction message: show wide (full width), not columnar */
.dvl-checkout-ui #alert_age {
	margin-bottom: 1rem;
	width: 100%;
}

/* Wide inside its section only – no viewport breakout */
.dvl-checkout-ui .dvl-age-alert-box {
	background-color: #ffab400f;
	border: 1px solid #FFAB40;
	border-radius: 0.25rem;
	padding: 0.75rem 1.25rem;
	text-align: left;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.dvl-checkout-ui .dvl-age-alert-box h6 {
	margin: 0 0 0.35rem 0;
	font-size: 1rem;
}

.dvl-checkout-ui .dvl-age-alert-box span {
	display: block;
}

.dvl-checkout-ui .place-order .button.alt,
.dvl-checkout-ui #place_order {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	max-width: 100%;
	padding: 1rem 2rem;
	background: var(--dvl-primary) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 0.75rem;
	font-weight: 700;
	font-size: 1rem;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(79, 70, 229, 0.25);
	transition: background 0.2s, transform 0.1s;
}

.dvl-checkout-ui .place-order .button.alt:hover,
.dvl-checkout-ui #place_order:hover {
	background: var(--dvl-primary-hover) !important;
	transform: translateY(-1px);
}

/* Error notices: hide summary box – errors are shown only under each field */
.dvl-checkout-ui .woocommerce-checkout-errors-wrap {
	display: none !important;
}

/* Col2-set layout */
.dvl-checkout-ui .col2-set {
	display: block;
}

.dvl-checkout-ui .col2-set .col-1,
.dvl-checkout-ui .col2-set .col-2 {
	width: 100%;
	float: none;
	margin: 0;
}

.dvl-checkout-ui .col2-set #customer_details {
	display: block;
}

/* AGB checkbox area */
.dvl-checkout-ui .woocommerce-terms-and-conditions-wrapper {
	margin: 1.5rem 0;
	padding-top: 1.5rem;
	border-top: 1px solid var(--dvl-border-light);
}

.dvl-checkout-ui .woocommerce-form__label-for-checkbox {
	display: flex !important;
	align-items: flex-start;
	gap: 0.75rem;
	cursor: pointer;
}

.dvl-checkout-ui .woocommerce-form__label-for-checkbox .woocommerce-form__input-checkbox {
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.15rem;
	border-radius: 0.25rem;
	border: 1px solid var(--dvl-border);
	cursor: pointer;
}

.dvl-checkout-ui .woocommerce-form__label-for-checkbox a {
	color: var(--dvl-primary);
	font-weight: 500;
}

.dvl-checkout-ui .woocommerce-form__label-for-checkbox a:hover {
	text-decoration: underline;
}
