/**
 * Package-search-only sizing that keeps nights and room controls compact on desktop.
 *
 * This component is loaded with the front-page search scripts so the two
 * compact controls fit the established single-row whitelabel layout. Mobile
 * modal controls return to the existing full-width form behavior.
 */
.wl_search-form-container.is-package-search {
	/* Match the rendered height of the legacy Flüge/Hotels/Mietwagen inputs. */
	--wl-package-control-height: 38.4px;
}

.wl_input-group.wl_compact-input-group {
	flex: 0 1 100px; /* TODO token: compact search-field basis */
	min-width: 90px; /* TODO token: compact search-field minimum */
}

@media (min-width: 1024px) {
	.wl_search-form-container.is-package-search .wl_form-fields > .wl_input-group {
		min-width: 0;
		flex: 1 1 0;
	}

	.wl_search-form-container.is-package-search .wl_form-fields > .wl_departure-group,
	.wl_search-form-container.is-package-search .wl_form-fields > .wl_destination-group {
		flex-grow: 1.35;
	}

	.wl_search-form-container.is-package-search .wl_form-fields > .wl_date-range-group,
	.wl_search-form-container.is-package-search .wl_form-fields > .wl_nights-group,
	.wl_search-form-container.is-package-search .wl_form-fields > .wl_rooms-group {
		flex-grow: 0.85;
	}
}

.wl_search-form-container.is-package-search .wl_form-fields > .wl_input-group > input:not([type="hidden"]) {
	height: var(--wl-package-control-height);
	min-height: var(--wl-package-control-height);
	max-height: var(--wl-package-control-height);
}

.wl_input-group.wl_nights-group,
.wl_input-group.wl_rooms-group {
	position: relative;
	flex-basis: 122px;
	min-width: 112px;
}

.wl_package-nights-trigger,
.wl_package-rooms-trigger {
	display: flex;
	width: 100%;
	height: var(--wl-package-control-height, 38.4px);
	min-height: var(--wl-package-control-height, 38.4px);
	max-height: var(--wl-package-control-height, 38.4px);
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 9px 12px;
	border: 1px solid #ccc;
	border-radius: 6px;
	background: #fff;
	color: var(--ut-blue-900, #050745);
	font: inherit;
	font-size: var(--ut-font-size-sm, 14px);
	text-align: left;
	cursor: pointer;
	box-sizing: border-box;
}

.wl_package-nights-trigger:focus-visible,
.wl_package-rooms-trigger:focus-visible {
	border-color: var(--ut-orange-500, #FC7D21);
	outline: 2px solid rgb(252 125 33 / 25%);
	outline-offset: 1px;
}

.wl_package-select-arrow {
	width: 8px;
	height: 8px;
	flex: 0 0 8px;
	border-right: 2px solid currentcolor;
	border-bottom: 2px solid currentcolor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.2s ease;
}

.wl_package-nights-trigger[aria-expanded="true"] .wl_package-select-arrow,
.wl_package-rooms-trigger[aria-expanded="true"] .wl_package-select-arrow {
	transform: translateY(2px) rotate(225deg);
}

.wl_package-rooms-trigger [data-package-rooms-label] {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.wl_package-nights-picker[hidden] {
	display: none;
}

.wl_package-nights-picker {
	position: absolute;
	z-index: 1100; /* Keep the selector above the hero and search container. */
	top: calc(100% + 12px);
	right: 0;
	width: min(320px, calc(100vw - 32px));
	padding: 16px 0 10px;
	border: 1px solid #e3e7eb;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 12px 36px rgb(0 25 51 / 18%);
	color: var(--ut-blue-900, #050745);
	box-sizing: border-box;
}

.wl_package-nights-picker h2 {
	margin: 0 18px 10px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
}

.wl_package-nights-options {
	max-height: 342px;
	overflow-y: auto;
	padding: 0 10px;
	scrollbar-color: var(--ut-blue-900, #050745) transparent;
	scrollbar-width: thin;
}

.wl_package-nights-options::-webkit-scrollbar {
	width: 8px;
}

.wl_package-nights-options::-webkit-scrollbar-thumb {
	border: 2px solid transparent;
	border-radius: 8px;
	background: var(--ut-blue-900, #050745);
	background-clip: padding-box;
}

.wl_package-nights-option {
	display: block;
	width: 100%;
	min-height: 42px;
	padding: 8px 14px;
	border: 0;
	border-radius: 7px;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.wl_package-nights-option:hover:not(.is-selected) {
	background: rgb(252 125 33 / 10%);
	color: var(--ut-orange-500, #FC7D21);
}

.wl_package-nights-option:focus-visible {
	outline: 2px solid var(--ut-orange-500, #FC7D21);
	outline-offset: -2px;
}

.wl_package-nights-option.is-selected {
	background: var(--ut-blue-900, #050745);
	color: #fff;
	font-weight: 700;
}

.wl_package-rooms-picker[hidden] {
	display: none;
}

.wl_package-rooms-picker {
	position: absolute;
	z-index: 1100;
	top: calc(100% + 12px);
	right: 0;
	width: min(430px, calc(100vw - 32px));
	max-height: min(650px, calc(100vh - 32px));
	padding: 20px 20px 0;
	border: 1px solid #e3e7eb;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 12px 36px rgb(0 25 51 / 18%);
	color: #142536;
	overflow-y: auto;
	box-sizing: border-box;
}

.wl_package-rooms-picker > h2 {
	margin: 0 0 18px;
	color: var(--ut-blue-900, #050745);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
}

.wl_package-room-list {
	display: grid;
	gap: 12px;
}

.wl_package-room {
	padding: 16px;
	border: 1px solid #e3e7eb;
	border-radius: 12px;
	background: #fff;
}

.wl_package-room-header,
.wl_package-guest-row,
.wl_package-stepper,
.wl_package-rooms-actions {
	display: flex;
	align-items: center;
}

.wl_package-room-header,
.wl_package-guest-row {
	justify-content: space-between;
}

.wl_package-room-header {
	min-height: 30px;
	margin-bottom: 6px;
}

.wl_package-room h3 {
	margin: 0;
	color: var(--ut-blue-900, #050745);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
}

.wl_package-remove-room {
	padding: 4px 0;
	border: 0;
	background: transparent;
	color: #596b7a;
	font: inherit;
	font-size: 13px;
	text-decoration: underline;
	cursor: pointer;
}

.wl_package-guest-row {
	min-height: 52px;
}

.wl_package-guest-label {
	font-size: 15px;
}

.wl_package-stepper {
	gap: 14px;
}

.wl_package-stepper button {
	display: inline-flex;
	width: 40px;
	height: 40px;
	flex: 0 0 40px;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1.5px solid var(--ut-blue-900, #050745);
	border-radius: 50%;
	background: #fff;
	color: var(--ut-blue-900, #050745);
	font: inherit;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
}

.wl_package-stepper button:hover:not(:disabled),
.wl_package-stepper button:focus-visible {
	border-color: var(--ut-orange-500, #FC7D21);
	color: var(--ut-orange-500, #FC7D21);
	outline: 2px solid rgb(252 125 33 / 20%);
	outline-offset: 1px;
}

.wl_package-stepper button:disabled {
	border-color: #cbd2d8;
	color: #a5adb4;
	cursor: not-allowed;
}

.wl_package-stepper output {
	min-width: 24px;
	color: #142536;
	font-size: 17px;
	text-align: center;
}

.wl_package-child-ages {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-top: 8px;
	padding-top: 12px;
	border-top: 1px solid #e3e7eb;
}

.wl_package-child-age label {
	display: block;
	margin-bottom: 5px;
	color: #52606d;
	font-size: 12px;
	font-weight: 600;
}

.wl_package-child-age select {
	width: 100%;
	min-height: 40px;
	padding: 7px 26px 7px 9px;
	border: 1px solid #aab5bf;
	border-radius: 7px;
	background: #fff;
	color: #142536;
	font: inherit;
	font-size: 13px;
}

.wl_package-child-age select:focus-visible,
.wl_package-remove-room:focus-visible {
	outline: 2px solid var(--ut-orange-500, #FC7D21);
	outline-offset: 2px;
}

.wl_package-add-room {
	width: 100%;
	min-height: 46px;
	margin: 12px 0 16px;
	padding: 10px 14px;
	border: 0;
	border-radius: 9px;
	background: #f1eee8;
	color: var(--ut-blue-900, #050745);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}

.wl_package-add-room:hover:not(:disabled),
.wl_package-add-room:focus-visible {
	background: rgb(252 125 33 / 14%);
	color: var(--ut-orange-500, #FC7D21);
	outline: 2px solid var(--ut-orange-500, #FC7D21);
	outline-offset: 1px;
}

.wl_package-add-room:disabled {
	color: #8b949c;
	cursor: not-allowed;
}

.wl_package-rooms-actions {
	position: sticky;
	bottom: 0;
	gap: 12px;
	margin: 0 -20px;
	padding: 14px 20px;
	border-top: 1px solid #e3e7eb;
	border-radius: 0 0 18px 18px;
	background: #fff;
}

.wl_package-rooms-actions button {
	min-height: 46px;
	flex: 1 1 50%;
	padding: 9px 14px;
	border: 0;
	border-radius: 8px;
	font: inherit;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
}

.wl_package-rooms-cancel {
	background: transparent;
	color: var(--ut-blue-900, #050745);
}

.wl_package-rooms-done {
	background: var(--ut-blue-900, #050745);
	color: #fff;
}

.wl_package-rooms-cancel:hover,
.wl_package-rooms-cancel:focus-visible {
	background: #f1eee8;
	outline: 2px solid var(--ut-orange-500, #FC7D21);
	outline-offset: 1px;
}

.wl_package-rooms-done:hover,
.wl_package-rooms-done:focus-visible {
	background: var(--ut-orange-500, #FC7D21);
	outline: 2px solid var(--ut-orange-500, #FC7D21);
	outline-offset: 1px;
}

.wl_package-multiselect {
	display: contents;
}

.wl_package-selection-tokens {
	display: none;
}

.wl_input-group.is-package-multiselect .wl_package-multiselect {
	display: flex;
	position: relative;
	height: var(--wl-package-control-height, 38.4px);
	min-height: var(--wl-package-control-height, 38.4px);
	max-height: var(--wl-package-control-height, 38.4px);
	flex-wrap: nowrap;
	align-items: center;
	gap: 6px;
	padding: 5px 8px;
	border: 1px solid #ccc;
	border-radius: 6px;
	background: #fff;
	overflow: visible;
	box-sizing: border-box;
}

.wl_input-group.is-package-multiselect .wl_package-multiselect:focus-visible {
	outline: 2px solid var(--ut-orange-500, #FC7D21);
	outline-offset: 2px;
}

.wl_input-group.is-package-multiselect .wl_package-selection-tokens {
	display: flex;
	min-width: 0;
	flex: 1 1 auto;
	align-items: center;
	gap: 6px;
}

.wl_input-group.is-package-multiselect .wl_package-selection-tokens:empty,
.wl_input-group.is-package-multiselect .wl_package-multiselect.is-editing.has-query .wl_package-selection-tokens {
	display: none;
}

.wl_input-group.is-package-multiselect .wl_package-multiselect input {
	display: block;
	width: auto;
	min-width: 0;
	flex: 1 1 auto;
	height: calc(var(--wl-package-control-height, 38.4px) - 12px);
	min-height: 0;
	max-height: calc(var(--wl-package-control-height, 38.4px) - 12px);
	align-self: center;
	box-sizing: border-box;
	padding: 4px 2px;
	border: 0;
	outline: 0;
}

.wl_input-group.is-package-multiselect .wl_package-multiselect.has-selection:not(.is-editing) input {
	display: none;
}

.wl_input-group.is-package-multiselect .wl_package-multiselect.has-selection:not(.is-editing),
.wl_input-group.is-package-multiselect .wl_package-multiselect.has-selection:not(.is-editing) .wl_package-selection-token,
.wl_input-group.is-package-multiselect .wl_package-multiselect.has-selection:not(.is-editing) .wl_package-selection-count {
	cursor: pointer;
}

.wl_input-group.is-package-multiselect .wl_package-multiselect.is-editing input {
	width: 100%;
	flex-basis: 100%;
}

.wl_input-group.is-package-multiselect .wl_package-multiselect.is-editing.has-selection:not(.has-query) .wl_package-selection-tokens {
	position: relative;
	z-index: 2;
	width: 100%;
	pointer-events: none;
}

.wl_input-group.is-package-multiselect .wl_package-multiselect.is-editing.has-selection:not(.has-query) .wl_package-selection-token button {
	pointer-events: auto;
}

.wl_input-group.is-package-multiselect .wl_package-multiselect.is-editing.has-selection:not(.has-query) input {
	position: absolute;
	z-index: 1;
	top: 5px;
	right: 8px;
	bottom: 5px;
	left: 8px;
	width: auto;
	color: transparent;
	caret-color: transparent;
}

.wl_input-group.is-package-multiselect .wl_package-multiselect.is-editing.has-selection:not(.has-query) input::placeholder {
	color: transparent;
	opacity: 0;
}

.wl_package-selection-token {
	display: inline-flex;
	min-width: 0;
	flex: 1 1 auto;
	align-items: center;
	gap: 6px;
	padding: 5px 8px 5px 10px;
	border-radius: 6px;
	background: #d9ecff; /* TODO token: selected search token */
	color: #142536;
	font-size: 13px;
	line-height: 1.25;
}

.wl_package-selection-label {
	position: relative;
	min-width: 0;
	flex: 1 1 auto;
}

.wl_package-selection-label-text {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.wl_package-selection-label.is-long-label:hover::after,
.wl_package-selection-label.is-long-label:focus-visible::after {
	position: absolute;
	z-index: 1001;
	top: calc(100% + 10px);
	left: -10px;
	width: max-content;
	max-width: min(320px, calc(100vw - 32px));
	padding: 7px 9px;
	border-radius: 4px;
	background: #142536;
	box-shadow: 0 4px 12px rgba(20, 37, 54, 0.2);
	color: #fff;
	content: attr(data-full-label);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.35;
	overflow-wrap: anywhere;
	pointer-events: none;
	white-space: normal;
}

.wl_package-selection-label.is-long-label:focus-visible {
	outline: 2px solid var(--ut-orange-500, #FC7D21);
	outline-offset: 2px;
}

.wl_package-selection-token button {
	display: inline-flex;
	flex: 0 0 18px;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	padding: 0;
	border: 1px solid #7890a3;
	border-radius: 50%;
	background: transparent;
	color: #526879;
	font: inherit;
	font-size: 12px;
	line-height: 1;
	cursor: pointer;
}

.wl_package-selection-count {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	min-width: 30px;
	height: 28px;
	padding: 0 7px;
	border-radius: 14px;
	background: #eef2f5;
	color: #526879;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	box-sizing: border-box;
}

body .ui-autocomplete {
	z-index: 1100 !important;
}

@media (max-width: 1023px) {
	body .ui-autocomplete {
		z-index: 10000 !important;
	}
}

.ui-autocomplete .wl_package-suggestion-heading {
	padding: 8px 12px;
	color: #52606d;
	font-size: 12px;
	font-weight: 600;
	pointer-events: none;
}

.wl_package-autocomplete-check {
	display: inline-flex;
	flex: 0 0 20px;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	margin-left: auto;
	border: 2px solid #7e8c97;
	border-radius: 4px;
	box-sizing: border-box;
}

.wl_package-autocomplete-check.is-selected::after {
	content: "\2713";
	color: #07569e;
	font-size: 15px;
	font-weight: 700;
}

.wl_date-range-group {
	position: relative;
}

.wl_search-form-container {
	z-index: 20;
	overflow: visible;
}

.wl_package-date-picker[hidden],
.wl_package-date-panel[hidden] {
	display: none;
}

.wl_package-date-picker {
	position: absolute;
	z-index: 1100; /* TODO token: search overlay layer */
	top: calc(100% + 12px);
	left: 0;
	width: min(376px, calc(100vw - 32px));
	padding: 16px 14px 14px;
	border: 1px solid #e3e7eb; /* TODO token: subtle search border */
	border-radius: 18px; /* TODO token: date-picker radius */
	background: #fff;
	box-shadow: 0 12px 36px rgb(0 25 51 / 18%);
	color: #142536;
}

.wl_package-date-picker h2 {
	margin: 0 6px 10px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
}

.wl_package-date-modes {
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin: 0 6px 12px;
	padding: 4px;
	border-radius: 24px;
	background: #f1eee8; /* TODO token: segmented control surface */
}

.wl_package-date-mode {
	position: relative;
	min-height: 38px;
	padding: 8px 10px;
	border: 0;
	border-radius: 20px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 13px;
	cursor: pointer;
}

.wl_package-date-mode.is-active {
	background: var(--ut-blue-900, #050745);
	color: #fff;
}

.wl_package-date-new {
	position: absolute;
	top: -18px;
	right: 20px;
	padding: 3px 8px;
	border-radius: 5px;
	background: var(--ut-blue-900, #050745);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
}

.wl_package-calendar-header,
.wl_package-month-carousel {
	display: flex;
	align-items: center;
	gap: 12px;
}

.wl_package-calendar-header {
	justify-content: space-between;
	margin-bottom: 8px;
}

.wl_package-date-arrow {
	display: inline-flex;
	flex: 0 0 48px;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid #142536;
	border-radius: 50%;
	background: #fff;
	color: #142536;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}

.wl_package-date-arrow:disabled {
	border-color: #cbd2d8;
	color: #9ca5ad;
	cursor: not-allowed;
}

.wl_package-calendar-month {
	display: flex;
	flex: 1;
	align-items: center;
	min-height: 48px;
	padding: 0 16px;
	border: 1px solid #9aa7b3;
	border-radius: 8px;
	font-weight: 500;
}

.wl_package-calendar-weekdays,
.wl_package-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.wl_package-calendar-weekdays {
	margin-bottom: 2px;
	font-size: 13px;
	font-weight: 700;
	text-align: center;
}

.wl_package-calendar-weekdays span {
	padding: 4px 0;
}

.wl_package-calendar-grid {
	row-gap: 1px;
}

.wl_package-calendar-grid button {
	height: 36px;
	min-width: 0;
	padding: 2px 0;
	border: 0;
	border-radius: 9px;
	background: transparent;
	color: #142536;
	font: inherit;
	cursor: pointer;
}

.wl_package-calendar-grid button:hover:not(:disabled),
.wl_package-calendar-grid button:focus-visible {
	background: #e5f3ff; /* TODO token: date hover surface */
}

.wl_package-calendar-grid button.is-selected {
	background: #050505;
	color: #fff;
	font-weight: 700;
}

.wl_package-calendar-grid button.is-outside-month,
.wl_package-calendar-grid button:disabled {
	color: #a5adb4;
}

.wl_package-calendar-grid button:disabled {
	cursor: not-allowed;
}

.wl_package-flexibility {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	margin: 10px -1px 10px;
	padding-top: 10px;
	border-top: 1px solid #e2e6e9;
}

.wl_package-flexibility button {
	min-height: 32px;
	padding: 5px 8px;
	border: 1px solid var(--ut-orange-500, #FC7D21);
	border-radius: 18px;
	background: #fff;
	color: var(--ut-orange-500, #FC7D21);
	font: inherit;
	font-size: 13px;
	cursor: pointer;
}

.wl_package-flexibility button.is-active {
	border-color: var(--ut-orange-500, #FC7D21);
	background: var(--ut-orange-500, #FC7D21);
	color: #fff;
}

.wl_package-flexible-label {
	margin: 0 0 14px;
	font-size: 14px;
}

.wl_package-month-carousel {
	justify-content: space-between;
	margin-bottom: 18px;
}

.wl_package-month-options {
	display: grid;
	flex: 1;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}

.wl_package-month-options button {
	display: flex;
	min-width: 0;
	min-height: 58px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 5px;
	border: 2px solid #f1eee8;
	border-radius: 12px;
	background: #fff;
	color: #142536;
	font: inherit;
	cursor: pointer;
}

.wl_package-month-options button.is-selected {
	border-color: #050505;
	background: #050505;
	color: #fff;
	font-weight: 700;
}

.wl_package-month-options span {
	font-size: 15px;
}

.wl_package-month-options small {
	font-size: 12px;
}

.wl_package-date-done {
	width: 100%;
	min-height: 44px;
	padding: 10px 16px;
	border: 0;
	border-radius: 8px;
	background: var(--ut-blue-900, #050745);
	color: #fff;
	font: inherit;
	font-size: 17px;
	font-weight: 700;
	cursor: pointer;
}

@media (max-width: 1023px) {
	/* This package sheet loads after front.css; preserve the full-screen modal layer and scrolling. */
	.wl_search-form-container.wl_modal-active {
		z-index: 2500;
		overflow-y: auto;
	}

	.wl_search-form-container.wl_modal-active .wl_input-group.wl_compact-input-group {
		flex: 1 1 100%;
	}

	.wl_search-form-container.wl_modal-active .wl_input-group.is-package-multiselect .wl_package-multiselect {
		height: var(--wl-package-control-height);
		min-height: var(--wl-package-control-height);
		max-height: var(--wl-package-control-height);
	}

	.wl_search-form-container.wl_modal-active .wl_package-date-picker {
		position: fixed;
		top: 50%;
		left: 50%;
		max-height: calc(100vh - 24px);
		overflow-y: auto;
		transform: translate(-50%, -50%);
	}

	.wl_search-form-container.wl_modal-active .wl_package-nights-picker {
		position: fixed;
		top: 50%;
		right: auto;
		left: 50%;
		max-height: calc(100vh - 24px);
		transform: translate(-50%, -50%);
	}

	.wl_search-form-container.wl_modal-active .wl_package-rooms-picker {
		position: fixed;
		top: 50%;
		right: auto;
		left: 50%;
		max-height: calc(100vh - 24px);
		transform: translate(-50%, -50%);
	}
}

@media (max-width: 420px) {
	.wl_package-date-picker {
		width: calc(100vw - 16px);
		padding-right: 12px;
		padding-left: 12px;
	}

	.wl_package-date-arrow {
		flex-basis: 42px;
		width: 42px;
		height: 42px;
	}

	.wl_package-month-options {
		gap: 5px;
	}

	.wl_package-rooms-picker {
		width: calc(100vw - 16px);
		padding-right: 16px;
		padding-left: 16px;
	}

	.wl_package-rooms-actions {
		margin-right: -16px;
		margin-left: -16px;
		padding-right: 16px;
		padding-left: 16px;
	}
}
