.kumyy-booking-options {
	--kumyy-booking-primary: #f5445a;
	--kumyy-booking-primary-dark: #db3048;
	--kumyy-booking-border: #e4e7ec;
	--kumyy-booking-ink: #172033;
	--kumyy-booking-muted: #667085;
	display: block;
	width: 100%;
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px solid var(--kumyy-booking-border);
}

.kumyy-booking-options__heading {
	margin-bottom: 18px;
}

.kumyy-booking-options__heading>span,
.kumyy-booking-options__group>legend,
.kumyy-booking-summary h3 {
	color: var(--kumyy-booking-ink);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
}

.kumyy-booking-options__group {
	min-width: 0;
	margin: 0 0 20px;
	padding: 0;
	border: 0;
}

.kumyy-booking-options__group>legend {
	width: 100%;
	margin: 0 0 10px;
	padding: 0;
	font-size: 14px;
}

.kumyy-booking-options__list {
	display: flex;
	width: 100%;
	min-width: 0;
	flex-direction: column;
	align-items: stretch;
	gap: 9px;
}

.kumyy-booking-options__packages>legend {
	margin-bottom: 12px;
	font-size: 15px;
	font-weight: 500;
}

.kumyy-package-select {
	position: relative;
	width: 100%;
	min-width: 0;
}

.wc-bookings-booking-form .kumyy-package-select__trigger {
	display: flex !important;
	width: 100% !important;
	height: auto !important;
	min-height: 40px;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0;
	padding: 13px 17px;
	border: 1px solid #d8dee8;
	border-radius: 12px;
	outline: 0;
	color: #667085;
	background: #fff;
	box-shadow: none;
	font-family: inherit;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: normal;
	line-height: 1.35;
	text-align: left;
	text-transform: none;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.wc-bookings-booking-form .kumyy-package-select__trigger:hover,
.wc-bookings-booking-form .kumyy-package-select__trigger:focus-visible,
.kumyy-package-select.is-open .kumyy-package-select__trigger {
	border-color: var(--kumyy-booking-primary);
	box-shadow: 0 0 0 2px rgba(245, 68, 90, .08);
}

.kumyy-package-select__chevron {
	width: 9px;
	height: 9px;
	flex: 0 0 9px;
	border-right: 2px solid #667085;
	border-bottom: 2px solid #667085;
	transform: translateY(-2px) rotate(45deg);
	transition: transform .2s ease;
}

.kumyy-package-select.is-open .kumyy-package-select__chevron {
	transform: translateY(2px) rotate(225deg);
}

.kumyy-package-select__menu {
	margin-top: 8px;
	padding: 7px;
	border: 1px solid #e4e7ec;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(16, 24, 40, .12);
}

.kumyy-package-select__menu[hidden] {
	display: none !important;
}

.wc-bookings-booking-form label.kumyy-package-select__option {
	position: relative;
	display: grid !important;
	width: 100% !important;
	min-width: 0 !important;
	grid-template-columns: 40px minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
	margin: 0;
	padding: 9px;
	border: 0;
	border-radius: 9px;
	color: var(--kumyy-booking-ink);
	background: transparent;
	font-size: 14px;
	line-height: 1.3;
	cursor: pointer;
	transition: background-color .18s ease;
}

.wc-bookings-booking-form label.kumyy-package-select__option:hover,
.wc-bookings-booking-form label.kumyy-package-select__option.is-selected {
	background: #fff0f2;
}

.kumyy-package-select__option>input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.kumyy-package-select__option .kumyy-booking-option__visual {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	font-size: 16px;
}

.kumyy-package-select__option .kumyy-booking-option__visual--icon i {
	color: inherit;
	font-size: inherit;
	line-height: 1;
}

.kumyy-package-select__option>strong {
	min-width: 0;
	overflow-wrap: anywhere;
	font-size: 12px;
	font-weight: 500;
}

.kumyy-package-select__price,
.kumyy-package-select__price .woocommerce-Price-amount {
	color: var(--kumyy-booking-primary-dark);
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
}

.kumyy-booking-option {
	position: relative;
	display: grid;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	grid-template-columns: 20px minmax(0, 1fr);
	gap: 10px;
	align-items: center;
	min-height: 58px;
	margin: 0;
	padding: 11px 12px;
	border: 1px solid var(--kumyy-booking-border);
	border-radius: 11px;
	background: #fff;
	cursor: pointer;
	transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.kumyy-booking-option.has-visual {
	grid-template-columns: 20px 46px minmax(0, 1fr);
}

.kumyy-booking-option__visual {
	display: grid !important;
	width: 46px;
	height: 46px;
	place-items: center;
	overflow: hidden;
	border-radius: 10px;
	color: var(--kumyy-booking-primary);
	background: #fff1f4;
	font-size: 20px;
}

.kumyy-booking-option__visual--image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kumyy-booking-option:hover {
	border-color: #fda4af;
}

.kumyy-booking-option.is-selected {
	border-color: var(--kumyy-booking-primary);
	background: #fff5f6;
	box-shadow: 0 0 0 2px rgba(245, 68, 90, .1);
}

.kumyy-booking-option>input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.kumyy-booking-option__control {
	position: relative;
	display: block;
	width: 19px;
	height: 19px;
	border: 1.5px solid #c9d1dc;
	border-radius: 50%;
	background: #fff;
}

.kumyy-booking-option input[type="checkbox"]+.kumyy-booking-option__control {
	border-radius: 5px;
}

.kumyy-booking-option input:checked+.kumyy-booking-option__control {
	border-color: var(--kumyy-booking-primary);
	background: var(--kumyy-booking-primary);
}

.kumyy-booking-option input:checked+.kumyy-booking-option__control::after {
	position: absolute;
	top: 4px;
	left: 6px;
	width: 5px;
	height: 8px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	content: "";
	transform: rotate(45deg);
}

.kumyy-booking-option__body {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 3px;
}

.kumyy-booking-option__body strong {
	display: flex;
	min-width: 0;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	color: var(--kumyy-booking-ink);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.35;
}

.kumyy-booking-option__body strong em {
	padding: 2px 6px;
	border-radius: 999px;
	color: #b4233a;
	background: #ffe4e8;
	font-size: 9px;
	font-style: normal;
	font-weight: 700;
	text-transform: uppercase;
}

.kumyy-booking-option__body small {
	display: block;
	min-width: 0;
	color: var(--kumyy-booking-muted);
	font-size: 11px;
	line-height: 1.4;
}

/*
 * MyTravel aplica reglas genéricas de ancho y flotado a los label del
 * formulario de Bookings. Estas reglas mantienen las opciones como tarjetas
 * de ancho completo dentro de la columna lateral.
 */
.wc-bookings-booking-form .kumyy-booking-options,
.wc-bookings-booking-form .kumyy-booking-options__group,
.wc-bookings-booking-form .kumyy-booking-options__list {
	float: none !important;
	clear: both;
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	box-sizing: border-box;
}

.wc-bookings-booking-form label.kumyy-booking-option {
	display: grid !important;
	float: none !important;
	clear: both;
	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	box-sizing: border-box;
	white-space: normal !important;
}

.wc-bookings-booking-form .kumyy-booking-option__body,
.wc-bookings-booking-form .kumyy-booking-option__body strong,
.wc-bookings-booking-form .kumyy-booking-option__body small {
	width: 100%;
	min-width: 0;
	white-space: normal !important;
	overflow-wrap: break-word;
}

.kumyy-booking-option__body small .woocommerce-Price-amount {
	color: #344054;
	font-weight: 700;
}

.kumyy-booking-option.is-mandatory {
	cursor: default;
}

.kumyy-booking-options__services>legend {
	display: block !important;
	margin-bottom: 12px;
}

.kumyy-booking-options__services-title {
	display: block;
	color: var(--kumyy-booking-ink);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.35;
}

.kumyy-booking-options__services-intro {
	display: block;
	margin-top: 3px;
	color: var(--kumyy-booking-muted);
	font-size: 11.5px;
	font-weight: 500;
	line-height: 1.45;
}

.kumyy-booking-options__services .kumyy-booking-options__list {
	gap: 0;
}

.kumyy-booking-options__services .kumyy-booking-option {
	grid-template-columns: 20px minmax(0, 1fr) auto;
	gap: 12px;
	min-height: 60px;
	padding: 10px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.kumyy-booking-options__services .kumyy-booking-option:hover,
.kumyy-booking-options__services .kumyy-booking-option.is-selected {
	border-color: transparent;
	background: transparent;
	box-shadow: none;
}

.kumyy-booking-options__services .kumyy-booking-option__body {
	gap: 4px;
	justify-content: center;
}

.kumyy-booking-options__services .kumyy-booking-option__body strong {
	font-size: 13px;
	line-height: 1.25;
	font-weight: 500;
}

.kumyy-booking-option__requirement {
	align-self: flex-start;
	padding: 2px 7px;
	border-radius: 999px;
	color: #c2410c;
	background: #fff1e7;
	font-size: 10px;
	font-style: normal;
	font-weight: 600;
	line-height: 1.3;
}

.kumyy-booking-option__price {
	align-self: center;
	color: var(--kumyy-booking-ink);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	white-space: nowrap;
}

.kumyy-booking-option__price .woocommerce-Price-amount {
	color: inherit;
	font: inherit;
}

.kumyy-booking-summary {
	margin-top: 8px;
	padding: 18px 0 0;
	border: 0;
	border-top: 1px solid var(--kumyy-booking-border);
	border-radius: 0;
	background: transparent;
}

.kumyy-booking-summary h3 {
	margin: 0 0 8px;
	font-size: 14px;
	font-weight: 700;
}

.kumyy-booking-summary__status {
	position: relative;
	margin: 0 0 12px;
	padding: 8px 10px 8px 30px;
	border-radius: 8px;
	color: #475467;
	background: #eef2f6;
	font-size: 10px;
	font-weight: 600;
	line-height: 1.4;
}

.kumyy-booking-summary__status[hidden] {
	display: none !important;
}

.kumyy-booking-summary.is-loading .kumyy-booking-summary__status::before {
	position: absolute;
	top: 50%;
	left: 11px;
	width: 11px;
	height: 11px;
	margin-top: -6px;
	border: 2px solid #fda4af;
	border-top-color: var(--kumyy-booking-primary);
	border-radius: 50%;
	content: "";
	animation: kumyy-booking-spin .7s linear infinite;
}

.kumyy-booking-summary__status.is-error {
	padding-left: 10px;
	color: #b42318;
	background: #fef3f2;
}

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

.kumyy-booking-summary dl,
.kumyy-booking-summary dl>div:last-child {
	margin: 0;
}

.kumyy-booking-summary dl>div {
	display: grid;
	grid-template-columns: minmax(105px, .9fr) minmax(0, 1.1fr);
	gap: 14px;
	align-items: start;
	margin: 0;
	padding: 8px 0;
	border-bottom: 1px solid #eaecf0;
	color: #475467;
	font-size: 10.5px;
	line-height: 1.4;
}

.kumyy-booking-summary dl>div[hidden] {
	display: none !important;
}

.kumyy-booking-summary dt {
	font-weight: 500;
}

.kumyy-booking-summary dd {
	margin: 0;
	color: var(--kumyy-booking-ink);
	font-weight: 700;
	text-align: right;
	overflow-wrap: anywhere;
}

.kumyy-booking-summary__total {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 5px !important;
	margin: 16px 0 0 !important;
	padding: 16px !important;
	border: 1px solid rgba(245, 68, 90, .24) !important;
	border-radius: 14px;
	background: linear-gradient(135deg, #fff 0%, #fff7f8 100%);
	box-shadow: 0 8px 22px rgba(245, 68, 90, .07);
	font-size: 13px !important;
}

.kumyy-booking-summary__total dt {
	color: var(--kumyy-booking-ink);
	font-size: 12px;
	font-weight: 700;
}

.kumyy-booking-summary__total--estimated dd {
	color: var(--kumyy-booking-primary);
	font-size: 25px;
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -.02em;
	text-align: left;
}

/* Primary booking action immediately below the clean summary. */
body.kumyy-layout-unified .wc-bookings-booking-form-button.single_add_to_cart_button {
	position: relative;
	width: 100% !important;
	min-height: 46px;
	margin: 14px 0 0 !important;
	padding: 11px 46px 11px 18px !important;
	border: 1px solid #e92f49 !important;
	border-radius: 9px !important;
	color: #fff !important;
	background: linear-gradient(135deg, #f5445a 0%, #f82047 100%) !important;
	box-shadow: 0 8px 18px rgba(245, 68, 90, .22) !important;
	font-family: inherit;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.35;
	text-align: center;
	text-transform: none !important;
	transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.kumyy-layout-unified .wc-bookings-booking-form-button.single_add_to_cart_button::after {
	position: absolute;
	top: 50%;
	right: 17px;
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
	content: "→";
	transform: translateY(-52%);
}

body.kumyy-layout-unified .wc-bookings-booking-form-button.single_add_to_cart_button:hover,
body.kumyy-layout-unified .wc-bookings-booking-form-button.single_add_to_cart_button:focus-visible {
	border-color: #d92d46 !important;
	background: linear-gradient(135deg, #ed3b52 0%, #df1738 100%) !important;
	box-shadow: 0 10px 22px rgba(223, 23, 56, .28) !important;
	transform: translateY(-1px);
}

body.kumyy-layout-unified .wc-bookings-booking-form-button.single_add_to_cart_button.disabled,
body.kumyy-layout-unified .wc-bookings-booking-form-button.single_add_to_cart_button:disabled {
	box-shadow: none !important;
	cursor: not-allowed;
	opacity: .55;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.kumyy-booking-summary.is-loading .kumyy-booking-summary__status::before {
		animation: none;
	}

	body.kumyy-layout-unified .wc-bookings-booking-form-button.single_add_to_cart_button {
		transition: none;
	}
}

@media (min-width: 1200px) {
	.kumyy-booking-options {
		margin-top: 18px;
		padding-top: 18px;
	}
}

@media (max-width: 575.98px) {
	.kumyy-booking-summary dl>div {
		grid-template-columns: minmax(95px, .9fr) minmax(0, 1.1fr);
		gap: 10px;
	}

	.kumyy-booking-summary__total--estimated dd {
		text-align: left;
	}
}
