.product-configurator-container {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 30px;
	align-items: start;
}

@media (max-width: 992px) {
	.product-configurator-container {
		grid-template-columns: 1fr;
	}
}

.product-configurator-summary {
	background-color: var(--p-400, #2a4771);
	border: 1px solid var(--p-400, #556c8e);
	border-radius: 5px;
	padding: 20px;
	position: sticky;
	top: 40px;
}

.product-configurator-summary h3 {
	margin-top: 0;
	margin-bottom: 15px;
	font-size: 1.2em;
	color: var(--p-100, #ccd3dd);
	border-bottom: 1px solid var(--p-400, #556c8e);
	padding-bottom: 15px;
}

#configurator-summary-items {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
}

#configurator-summary-items li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 0;
	border-bottom: 1px solid var(--p-400, #556c8e);
	font-size: 0.95em;
	color: var(--p-200, #aab5c6);
}

#configurator-summary-items li:last-child {
	border-bottom: none;
}

.summary-total {
	display: flex;
	justify-content: space-between;
	font-size: 1.2em;
	font-weight: bold;
	border-top: 2px solid var(--p-400, #556c8e);
	padding-top: 15px;
	color: #fff;
}

.registration-options-wrapper,
.workshop-options-wrapper {
	background-color: transparent;
	border: none;
	padding: 0;
	margin-bottom: 32px;
}

.registration-options-wrapper h3,
.workshop-options-wrapper h3 {
	color: var(--p-100, #ccd3dd);
	border-bottom-color: var(--p-400, #2a4771);
	margin-bottom: 16px;
}

.registration-options,
.workshop-options {
	display: grid;
	gap: 16px;
}

.registration-options p,
.workshop-options p {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}

.registration-options input[type="radio"],
.registration-options input[type="checkbox"],
.workshop-options input[type="radio"],
.workshop-options input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	pointer-events: none;
}

.registration-options label,
.workshop-options label {
	position: relative;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	flex-grow: 1;
	padding: 15px 15px 15px 50px;
	border: 2px solid var(--p-400, #2a4771);
	border-radius: 5px;
	text-align: left;
	cursor: pointer;
	transition: all 0.2s ease-in-out;
	background-color: var(--p-400, #2a4771);
	color: var(--p-100, #ccd3dd);
}


@media only screen and (max-width: 640px) {

	.registration-options label,
	.workshop-options label {
		flex-direction: column;
		align-items: start;
	}
	.registration-options label .price, .workshop-options label .price {
		margin-left:0 !important;
		padding-left:0 !important;
	}
}

.registration-options label:hover,
.workshop-options label:hover {
	border-color: var(--s-400, #59c5ff);
	background-color: var(--p-400, #556c8e);
}

.registration-options label::before,
.workshop-options label::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 15px;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	border: 2px solid var(--p-400, #556c8e);
	background-color: var(--p-600, #002255);
	transition: all 0.2s ease-in-out;
}

.registration-options input[type="radio"]+label::before,
.workshop-options input[type="radio"]+label::before {
	border-radius: 50%;
}

.registration-options input[type="checkbox"]+label::before,
.workshop-options input[type="checkbox"]+label::before {
	border-radius: 4px;
}

.registration-options input[type="radio"]:checked+label,
.registration-options input[type="checkbox"]:checked+label,
.workshop-options input[type="radio"]:checked+label,
.workshop-options input[type="checkbox"]:checked+label {
	border-color: var(--secondary, #06a8ff);
	background-color: var(--s-800, #0470aa);
	color: #fff;
	font-weight: bold;
}

.registration-options input[type="radio"]:checked+label::before,
.registration-options input[type="checkbox"]:checked+label::before,
.workshop-options input[type="radio"]:checked+label::before,
.workshop-options input[type="checkbox"]:checked+label::before {
	background-color: var(--secondary, #06a8ff);
	border-color: var(--s-hover, #058cd5);
}

.registration-options input[type="radio"]:checked+label::after,
.workshop-options input[type="radio"]:checked+label::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 20px;
	transform: translateY(-50%);
	width: 12px;
	height: 12px;
	background: #fff;
	border-radius: 50%;
}

.registration-options input[type="checkbox"]:checked+label::after,
.workshop-options input[type="checkbox"]:checked+label::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 21px;
	width: 6px;
	height: 11px;
	border: solid white;
	border-width: 0 3px 3px 0;
	transform: translateY(-50%) rotate(45deg);
}

.registration-options label .price,
.workshop-options label .price {
	display: block;
	margin-left: auto;
	font-weight: normal;
	color: var(--p-300, #8091aa);
	padding-left: 10px;
}

.registration-options input[type="radio"]:checked+label .price,
.registration-options input[type="checkbox"]:checked+label .price,
.workshop-options input[type="radio"]:checked+label .price,
.workshop-options input[type="checkbox"]:checked+label .price {
	color: var(--s-200, #ace2ff);
}

#roommate-field-wrapper {
	border: 2px solid var(--secondary, #06a8ff);
	padding: 16px;
	border-radius: 0 0 5px 5px;
	border-top: none !important;
	background-color: var(--s-800, #0470aa);
	color: var(--p-100, #ccd3dd);
	margin-top: -16px;
}

#roommate-field-wrapper label {
	padding: 0;
	border: none;
	text-align: left;
	font-weight: bold;
	margin-bottom: 8px;
	background: none;
	color: #fff;
	align-items: flex-start;
}

#roommate-field-wrapper label::before,
#roommate-field-wrapper label::after {
	display: none;
}

#roommate-field-wrapper input[type="text"] {
	width: 100%;
	padding: 8px;
	border-radius: 4px;
	background-color: var(--s-900, #035480);
	border: 1px solid var(--s-700, #058cd5);
	color: #fff;
}

.options-group-content {
	display: contents;
}

/*--- ---*/

/* Stlyes for validation */
.configurator-validation-message {
	color: var(--s-300, #ff5733);
	background-color: var(--s-darker, #331a1a);
	border: 1px solid var(--s-300, #ff5733);
	padding: 10px 15px;
	border-radius: 4px;
	margin-bottom: 15px;
	text-align: center;
	width: max-content;
}

.registration-options-wrapper h3.configurator-error,
.workshop-options-wrapper h3.configurator-error {
	color: #ff5733;

	text-decoration: underline;
	text-decoration-style: dotted;
	text-underline-offset: 4px;
}

.registration-options-wrapper h3.configurator-error::after,
.workshop-options-wrapper h3.configurator-error::after {
	content: ' *';
	color: #ff5733;
	font-weight: bold;
}

/* ── Step 2 subfields (woocommerce_form_field radio/checkbox) – same look as registration-options ── */

.checkout__step2,
.checkout__step2 p.form-row > label,
.checkout__step2 p.form-row > label .required {
	color: var(--p-100, #ccd3dd);
}

.checkout__step2 .woocommerce-input-wrapper:has(input.input-radio) {
	display: grid;
	gap: 16px;
}

.checkout__step2 .woocommerce-input-wrapper input.input-radio {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	pointer-events: none;
}

.checkout__step2 .woocommerce-input-wrapper input.input-radio + label {
	position: relative;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	flex-grow: 1;
	padding: 15px 15px 15px 50px;
	border: 2px solid var(--p-400, #2a4771);
	border-radius: 5px;
	text-align: left;
	cursor: pointer;
	transition: all 0.2s ease-in-out;
	background-color: var(--p-400, #2a4771);
	color: var(--p-100, #ccd3dd);
	font-weight: normal;
	margin: 0;
}

@media only screen and (max-width: 640px) {
	.checkout__step2 .woocommerce-input-wrapper input.input-radio + label {
		flex-direction: column;
		align-items: flex-start;
	}
}

.checkout__step2 .woocommerce-input-wrapper input.input-radio + label:hover {
	border-color: var(--s-400, #59c5ff);
	background-color: var(--p-400, #556c8e);
}

.checkout__step2 .woocommerce-input-wrapper input.input-radio + label::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 15px;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	border: 2px solid var(--p-400, #556c8e);
	background-color: var(--p-600, #002255);
	border-radius: 50%;
	transition: all 0.2s ease-in-out;
}

.checkout__step2 .woocommerce-input-wrapper input.input-radio:checked + label {
	border-color: var(--secondary, #06a8ff);
	background-color: var(--s-800, #0470aa);
	color: #fff;
	font-weight: bold;
}

.checkout__step2 .woocommerce-input-wrapper input.input-radio:checked + label::before {
	background-color: var(--secondary, #06a8ff);
	border-color: var(--s-hover, #058cd5);
}

.checkout__step2 .woocommerce-input-wrapper input.input-radio:checked + label::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 20px;
	transform: translateY(-50%);
	width: 12px;
	height: 12px;
	background: #fff;
	border-radius: 50%;
}

/* ── Meals checkboxes ── */

.checkout__step2 .custom__fields.switch .woocommerce-input-wrapper {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.checkout__step2 .custom__fields.switch .woocommerce-input-wrapper label.checkbox {
	position: relative;
	display: flex;
	flex-direction: row;
	align-items: center;
	padding: 15px 15px 15px 50px;
	border: 2px solid var(--p-400, #2a4771);
	border-radius: 5px;
	cursor: pointer;
	transition: all 0.2s ease-in-out;
	background-color: var(--p-400, #2a4771);
	color: var(--p-100, #ccd3dd);
	font-weight: normal;
	margin: 0;
}

.checkout__step2 .custom__fields.switch .woocommerce-input-wrapper label.checkbox::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 15px;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	border: 2px solid var(--p-400, #556c8e);
	background-color: var(--p-600, #002255);
	border-radius: 4px;
	transition: all 0.2s ease-in-out;
}

.checkout__step2 .custom__fields.switch .woocommerce-input-wrapper label.checkbox:hover {
	border-color: var(--s-400, #59c5ff);
	background-color: var(--p-400, #556c8e);
}

.checkout__step2 .custom__fields.switch .woocommerce-input-wrapper label.checkbox input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	pointer-events: none;
}

.checkout__step2 .custom__fields.switch .woocommerce-input-wrapper label.checkbox:has(input:checked) {
	border-color: var(--secondary, #06a8ff);
	background-color: var(--s-800, #0470aa);
	color: #fff;
	font-weight: bold;
}

.checkout__step2 .custom__fields.switch .woocommerce-input-wrapper label.checkbox:has(input:checked)::before {
	background-color: var(--secondary, #06a8ff);
	border-color: var(--s-hover, #058cd5);
}

.checkout__step2 .custom__fields.switch .woocommerce-input-wrapper label.checkbox:has(input:checked)::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 21px;
	width: 6px;
	height: 11px;
	border: solid white;
	border-width: 0 3px 3px 0;
	transform: translateY(-50%) rotate(45deg);
}