/* ============================================================
   Travel search redesign (skirejser)
   All classes are prefixed "ts-" to avoid Bootstrap/theme collisions.
   Loaded only when search_result.show is true (see includes/top.html)
   Brand: petrol #315b6b - yellow #ffbb00 - ink #373f50 (som theme.min.css)
   ============================================================ */
:root {
	--ts-petrol: #315b6b;
	--ts-petrol-deep: #24444f;
	--ts-petrol-soft: #e7eef1;
	--ts-yellow: #ffbb00;
	--ts-ink: #373f50;
	--ts-ink-soft: #4b566b;
	--ts-bg: #eef1f4;
	--ts-surface: #ffffff;
	--ts-line: #dde3e9;
	--ts-line-soft: #e9edf1;
	--ts-green: #1e7b46;
	--ts-radius: 10px;
	--ts-radius-sm: 7px;
	--ts-shadow-card: 0 1px 2px rgba(38, 50, 63, .06), 0 4px 14px rgba(38, 50, 63, .05);
}

.ts-wrap {
	background: var(--ts-bg);
	padding-bottom: 3rem;
}

/* ---------- Sticky search bar ---------- */
.ts-searchbar-wrap {
	position: sticky;
	top: 0;
	z-index: 1020;
	background: var(--ts-petrol);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 2px 10px rgba(38, 50, 63, .25);
	padding: .7rem 0;
	margin-bottom: 1.25rem;
}
.ts-searchbar {
	display: flex;
	align-items: stretch;
	gap: .5rem;
}
.ts-segments {
	flex: 1;
	display: grid;
	grid-template-columns: 1.5fr 1.2fr .9fr .9fr;
	background: var(--ts-surface);
	border-radius: var(--ts-radius);
	overflow: hidden;
}
.ts-segment {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 3.4rem;
}
.ts-segment + .ts-segment {
	border-left: 1px solid var(--ts-line-soft);
}
/* Label og vaerdi tegnes oven paa feltet, men selve feltet fylder hele
   segmentet, saa et klik hvor som helst i boksen aabner dropdownen. */
.ts-segment label {
	position: absolute;
	top: .5rem;
	left: 1rem;
	right: 1.6rem;
	font-size: .75rem;
	font-weight: 600;
	color: var(--ts-ink-soft);
	margin: 0;
	pointer-events: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* Kun de direkte felter fylder segmentet - ikke fx checkboksen i ts-when-foot */
.ts-segment > select,
.ts-segment > input {
	appearance: none;
	-webkit-appearance: none;
	border: 0;
	margin: 0;
	background: transparent;
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--ts-ink);
	width: 100%;
	height: 100%;
	min-height: 3.4rem;
	padding: 1.35rem 1.6rem .45rem 1rem;
	cursor: pointer;
	outline-offset: -3px;
	text-overflow: ellipsis;
}
.ts-segment > input::placeholder {
	color: var(--ts-ink);
	opacity: 1;
}
.ts-segment::after {
	content: "";
	position: absolute;
	right: .85rem;
	top: 50%;
	width: .5rem;
	height: .5rem;
	margin-top: -.4rem;
	border-right: 2px solid var(--ts-ink-soft);
	border-bottom: 2px solid var(--ts-ink-soft);
	transform: rotate(45deg);
	pointer-events: none;
}
.ts-segment.ts-no-caret::after {
	display: none;
}

/* ---------- Afrejse: felt der aabner kalenderen ---------- */
.ts-when-display {
	width: 100%;
	height: 100%;
	min-height: 3.4rem;
	border: 0;
	background: transparent;
	padding: 1.35rem 1.6rem .45rem 1rem;
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--ts-ink);
	text-align: left;
	cursor: pointer;
	outline-offset: -3px;
}
.ts-when-display .ts-when-value {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ts-segment-when::after {
	content: "";
	display: block;
	position: absolute;
	right: .85rem;
	top: 50%;
	width: .5rem;
	height: .5rem;
	margin-top: -.4rem;
	border-right: 2px solid var(--ts-ink-soft);
	border-bottom: 2px solid var(--ts-ink-soft);
	transform: rotate(45deg);
	pointer-events: none;
}
.ts-when-fallback {
	width: 100%;
}

/* ---------- Kalender ---------- */
.ts-cal {
	position: fixed;
	z-index: 1030;
	background: var(--ts-surface);
	border-radius: var(--ts-radius);
	box-shadow: 0 8px 40px rgba(38, 50, 63, .28);
	padding: 1rem 1rem .75rem;
	max-width: calc(100vw - 24px);
}
.ts-cal[hidden] {
	display: none;
}
.ts-cal-head {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
}
.ts-cal-months {
	display: flex;
	gap: 1.75rem;
}
.ts-cal-nav {
	flex: none;
	width: 2rem;
	height: 2rem;
	margin-top: .1rem;
	border: 0;
	border-radius: 50%;
	background: var(--ts-bg);
	color: var(--ts-ink);
	font-size: 1.125rem;
	line-height: 1;
	cursor: pointer;
	transition: background .15s ease-out;
}
.ts-cal-nav:hover {
	background: var(--ts-petrol-soft);
}
.ts-cal-nav:focus-visible {
	outline: 3px solid rgba(49, 91, 107, .4);
	outline-offset: 2px;
}
.ts-cal-month-name {
	text-align: center;
	font-size: .9375rem;
	font-weight: 700;
	color: var(--ts-ink);
	margin: 0 0 .6rem;
}
.ts-cal-grid {
	display: grid;
	grid-template-columns: 1.9rem repeat(7, 2.1rem);
	gap: 2px;
}
.ts-cal-label {
	font-size: .75rem;
	font-weight: 600;
	color: var(--ts-ink-soft);
	text-align: center;
	padding-bottom: .3rem;
}
.ts-cal-day,
.ts-cal-week {
	border: 0;
	border-radius: 6px;
	background: transparent;
	font-family: inherit;
	font-size: .8125rem;
	line-height: 1;
	padding: .5rem 0;
	cursor: pointer;
	transition: background .12s ease-out, color .12s ease-out;
}
.ts-cal-day {
	color: var(--ts-ink);
	font-weight: 500;
}
.ts-cal-day:hover:not(.ts-cal-empty) {
	background: var(--ts-petrol-soft);
}
.ts-cal-day.ts-cal-selected {
	background: var(--ts-petrol);
	color: #fff;
	font-weight: 700;
}
.ts-cal-day.ts-cal-range {
	background: var(--ts-petrol-soft);
	color: var(--ts-petrol-deep);
}
.ts-cal-day.ts-cal-empty,
.ts-cal-day.ts-cal-outside {
	color: #b9c2cb;
	cursor: default;
}
.ts-cal-week {
	color: var(--ts-ink-soft);
	font-weight: 600;
	background: var(--ts-bg);
}
.ts-cal-week:hover:not(.ts-cal-empty) {
	background: var(--ts-petrol);
	color: #fff;
}
.ts-cal-week.ts-cal-selected {
	background: var(--ts-petrol);
	color: #fff;
}
.ts-cal-week.ts-cal-empty {
	background: transparent;
	color: #ccd4db;
	cursor: default;
}
.ts-cal-day:focus-visible,
.ts-cal-week:focus-visible {
	outline: 3px solid rgba(49, 91, 107, .4);
	outline-offset: 1px;
}
.ts-cal-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	border-top: 1px solid var(--ts-line-soft);
	margin-top: .85rem;
	padding-top: .75rem;
}
.ts-cal-flex {
	display: flex;
	gap: .35rem;
	flex-wrap: wrap;
}
.ts-cal-flex button {
	border: 1px solid var(--ts-line);
	border-radius: 999px;
	background: var(--ts-surface);
	color: var(--ts-ink);
	font-family: inherit;
	font-size: .8125rem;
	font-weight: 500;
	padding: .4rem .85rem;
	cursor: pointer;
	transition: background .15s ease-out, border-color .15s ease-out, color .15s ease-out;
}
.ts-cal-flex button:hover:not(:disabled) {
	border-color: var(--ts-petrol);
}
.ts-cal-flex button[aria-pressed="true"] {
	background: var(--ts-petrol);
	border-color: var(--ts-petrol);
	color: #fff;
	font-weight: 600;
}
.ts-cal-flex button:disabled {
	opacity: .45;
	cursor: default;
}
.ts-cal-actions {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-left: auto;
}
.ts-cal-clear {
	border: 0;
	background: transparent;
	font-family: inherit;
	font-size: .875rem;
	font-weight: 500;
	color: var(--ts-ink-soft);
	text-decoration: underline;
	padding: .4rem 0;
	cursor: pointer;
}
.ts-cal-clear:hover {
	color: var(--ts-ink);
}
.ts-cal-save {
	border: 0;
	border-radius: var(--ts-radius-sm);
	background: var(--ts-petrol);
	color: #fff;
	font-family: inherit;
	font-size: .875rem;
	font-weight: 600;
	padding: .5rem 1.5rem;
	cursor: pointer;
	transition: background .15s ease-out;
}
.ts-cal-save:hover {
	background: var(--ts-petrol-deep);
}
.ts-cal-clear:focus-visible,
.ts-cal-save:focus-visible,
.ts-cal-flex button:focus-visible {
	outline: 3px solid rgba(49, 91, 107, .4);
	outline-offset: 2px;
}
@media (max-width: 767px) {
	.ts-cal {
		padding: .85rem .75rem .65rem;
	}
	.ts-cal-grid {
		grid-template-columns: 1.75rem repeat(7, minmax(1.9rem, 1fr));
	}
	.ts-cal-foot {
		gap: .6rem;
	}
	.ts-cal-actions {
		width: 100%;
		justify-content: flex-end;
	}
}

.ts-searchbar .ts-submit {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	background: var(--ts-yellow);
	color: var(--ts-ink);
	border: 0;
	border-radius: var(--ts-radius);
	font-weight: 700;
	font-size: 1rem;
	padding: 0 1.4rem;
	white-space: nowrap;
	box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .14);
	transition: filter .15s ease-out;
}
.ts-searchbar .ts-submit:hover {
	filter: brightness(1.05);
}
.ts-searchbar .ts-submit:active {
	box-shadow: inset 0 2px 0 rgba(0, 0, 0, .12);
}

/* ---------- Layout ---------- */
.ts-layout {
	display: grid;
	grid-template-columns: 268px minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}

/* ---------- Filters ---------- */
/* Sidebaren foelger sidens egen scroll (som paa Booking.com): ingen egen
   scrollbar og ingen sticky-laasning, saa filtrene scroller med indholdet. */
.ts-filters {
	position: static;
}
.ts-filters-card {
	background: var(--ts-surface);
	border-radius: var(--ts-radius);
	box-shadow: var(--ts-shadow-card);
	padding: 1.1rem 1.15rem .95rem;
}
.ts-filters-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: .5rem;
}
.ts-filters-head .ts-title {
	font-size: 1rem;
	font-weight: 700;
	margin: 0;
	color: var(--ts-ink);
}
.ts-filters-head .reset-filters {
	font-size: .75rem;
	font-weight: 500;
	color: var(--ts-ink-soft);
	text-decoration: underline;
	cursor: pointer;
}
.ts-filter-group {
	border-top: 1px solid var(--ts-line-soft);
	padding: .75rem 0 .85rem;
}
.ts-filter-group:first-of-type {
	border-top: 0;
}
.ts-filter-label {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: .875rem;
	font-weight: 600;
	color: var(--ts-ink);
	margin: 0 0 .45rem;
}
.ts-filter-label .ts-info {
	color: var(--ts-ink-soft);
	cursor: pointer;
	font-size: .8125rem;
}
.ts-select {
	position: relative;
}
.ts-select select,
.ts-select input {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	border: 1px solid var(--ts-line);
	border-radius: var(--ts-radius-sm);
	background: var(--ts-surface);
	color: var(--ts-ink);
	font-family: inherit;
	font-size: .875rem;
	font-weight: 500;
	padding: .5rem 2rem .5rem .7rem;
	cursor: pointer;
	transition: border-color .15s ease-out, box-shadow .15s ease-out;
}
.ts-select input {
	padding-right: .7rem;
}
.ts-select select:hover,
.ts-select input:hover {
	border-color: var(--ts-petrol);
}
.ts-select select:focus,
.ts-select input:focus {
	outline: 0;
	border-color: var(--ts-petrol);
	box-shadow: 0 0 0 3px var(--ts-petrol-soft);
}
.ts-select::after {
	content: "";
	position: absolute;
	right: .8rem;
	top: 50%;
	width: .45rem;
	height: .45rem;
	margin-top: -.35rem;
	border-right: 2px solid var(--ts-ink-soft);
	border-bottom: 2px solid var(--ts-ink-soft);
	transform: rotate(45deg);
	pointer-events: none;
}
.ts-select.ts-no-caret::after {
	display: none;
}
/* ---------- Price slider ---------- */
.ts-range input[type="range"] {
	--ts-range-fill: 100%;
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	height: 1.4rem;
	margin: 0;
	background: transparent;
	cursor: pointer;
}
.ts-range input[type="range"]::-webkit-slider-runnable-track {
	height: 5px;
	border-radius: 999px;
	background: linear-gradient(
		to right,
		var(--ts-petrol) 0 var(--ts-range-fill),
		var(--ts-line) var(--ts-range-fill) 100%
	);
}
.ts-range input[type="range"]::-moz-range-track {
	height: 5px;
	border-radius: 999px;
	background: linear-gradient(
		to right,
		var(--ts-petrol) 0 var(--ts-range-fill),
		var(--ts-line) var(--ts-range-fill) 100%
	);
}
.ts-range input[type="range"]::-webkit-slider-thumb {
	appearance: none;
	-webkit-appearance: none;
	width: 1.1rem;
	height: 1.1rem;
	margin-top: -.35rem;
	border: 3px solid var(--ts-petrol);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(38, 50, 63, .3);
	transition: transform .12s ease-out;
}
.ts-range input[type="range"]::-moz-range-thumb {
	width: 1.1rem;
	height: 1.1rem;
	border: 3px solid var(--ts-petrol);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(38, 50, 63, .3);
}
.ts-range input[type="range"]:hover::-webkit-slider-thumb,
.ts-range input[type="range"]:active::-webkit-slider-thumb {
	transform: scale(1.12);
}
.ts-range input[type="range"]:focus-visible {
	outline: 3px solid rgba(49, 91, 107, .4);
	outline-offset: 4px;
	border-radius: 999px;
}
.ts-range-out {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: .5rem;
	font-size: .8125rem;
	color: var(--ts-ink-soft);
	margin-top: .1rem;
}
.ts-range-out strong {
	color: var(--ts-ink);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	text-align: right;
}

/* ---------- Checkbox filter ---------- */
.ts-check {
	display: flex;
	align-items: center;
	gap: .55rem;
	font-size: .875rem;
	color: var(--ts-ink);
	cursor: pointer;
	margin: 0;
}
.ts-check input {
	appearance: none;
	-webkit-appearance: none;
	width: 1.05rem;
	height: 1.05rem;
	margin: 0;
	flex: none;
	border: 1.5px solid #b6c1cb;
	border-radius: 4px;
	background: #fff;
	display: grid;
	place-content: center;
	cursor: pointer;
	transition: background .12s ease-out, border-color .12s ease-out;
}
.ts-check input:checked {
	background: var(--ts-petrol);
	border-color: var(--ts-petrol);
}
.ts-check input:checked::after {
	content: "";
	width: .3rem;
	height: .58rem;
	margin-top: -2px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(45deg);
}
.ts-check input:focus-visible {
	outline: 3px solid rgba(49, 91, 107, .4);
	outline-offset: 2px;
}

.ts-filter-soon .ts-select select {
	color: var(--ts-ink-soft);
	background: #f4f6f8;
	cursor: not-allowed;
}
.ts-soon {
	font-size: .75rem;
	font-weight: 600;
	color: var(--ts-yellow-deep);
	background: #fff3d1;
	padding: .1rem .45rem;
	border-radius: 999px;
}
.ts-filters-card .ts-apply {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: .35rem;
	width: 100%;
	margin-top: .9rem;
	background: var(--ts-petrol);
	color: #fff;
	border: 0;
	border-radius: var(--ts-radius-sm);
	padding: .65rem;
	font-weight: 600;
	font-size: .9375rem;
	transition: background .15s ease-out;
}
.ts-filters-card .ts-apply:hover {
	background: var(--ts-petrol-deep);
}
.ts-filters-foot {
	font-size: .75rem;
	color: var(--ts-ink-soft);
	text-align: center;
	margin-top: .6rem;
}
.ts-filters-foot a {
	color: inherit;
	text-decoration: underline;
	cursor: pointer;
}

/* ---------- Results head + toolbar ---------- */
.ts-results-head h1 {
	/* Ingen font-size: overskriften arver sitets egen h1 fra theme.min.css */
	margin: 0 0 .15rem;
}
.ts-results-meta {
	color: var(--ts-ink-soft);
	font-size: .875rem;
	margin: 0;
}
.ts-results-meta strong {
	color: var(--ts-ink);
	font-weight: 600;
}
.ts-toolbar {
	display: flex;
	align-items: center;
	gap: .75rem;
	flex-wrap: wrap;
	margin: .9rem 0 1.1rem;
}
.ts-toolbar .ts-spacer {
	flex: 1;
}
.ts-sort {
	display: flex;
	align-items: center;
	gap: .5rem;
}
.ts-sort > label {
	font-size: .875rem;
	color: var(--ts-ink-soft);
	margin: 0;
	white-space: nowrap;
}
.ts-sort-select {
	position: relative;
}
.ts-sort-select select {
	appearance: none;
	-webkit-appearance: none;
	border: 0;
	background: transparent;
	font-family: inherit;
	font-size: .875rem;
	font-weight: 600;
	color: var(--ts-ink);
	padding: .35rem 1.4rem .35rem .25rem;
	cursor: pointer;
	border-radius: 4px;
}
.ts-sort-select::after {
	content: "";
	position: absolute;
	right: .35rem;
	top: 50%;
	width: .4rem;
	height: .4rem;
	margin-top: -.3rem;
	border-right: 2px solid var(--ts-ink-soft);
	border-bottom: 2px solid var(--ts-ink-soft);
	transform: rotate(45deg);
	pointer-events: none;
}
.ts-sort-select select:hover {
	color: var(--ts-petrol-deep);
}
.ts-sort-select select:focus-visible {
	outline: 3px solid rgba(49, 91, 107, .4);
	outline-offset: 2px;
}
.ts-sort-go {
	border: 1px solid var(--ts-line);
	border-radius: 999px;
	background: var(--ts-surface);
	font-family: inherit;
	font-size: .8125rem;
	padding: .3rem .8rem;
	cursor: pointer;
}
.ts-price-mode {
	display: inline-flex;
}
.ts-price-mode button {
	border: 1px solid var(--ts-line);
	background: var(--ts-surface);
	color: var(--ts-ink-soft);
	padding: .38rem .8rem;
	font-family: inherit;
	font-size: .875rem;
	font-weight: 500;
	cursor: pointer;
	transition: background .15s ease-out, color .15s ease-out;
}
.ts-price-mode button:first-child {
	border-radius: 999px 0 0 999px;
}
.ts-price-mode button:last-child {
	border-radius: 0 999px 999px 0;
	margin-left: -1px;
}
.ts-price-mode button[aria-pressed="true"] {
	background: var(--ts-ink);
	border-color: var(--ts-ink);
	color: #fff;
	font-weight: 600;
}
.ts-btn-map {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	background: var(--ts-surface);
	color: var(--ts-ink) !important;
	border: 1px solid var(--ts-line);
	border-radius: 999px;
	padding: .42rem 1rem;
	font-size: .875rem;
	font-weight: 600;
	text-decoration: none !important;
	cursor: pointer;
	transition: border-color .15s ease-out, box-shadow .15s ease-out;
}
.ts-btn-map:hover {
	border-color: var(--ts-petrol);
	box-shadow: var(--ts-shadow-card);
}

/* ---------- Alert (too many results) ---------- */
.ts-alert {
	background: #fff3d1;
	color: #6b4d00;
	border-radius: var(--ts-radius-sm);
	font-size: .875rem;
	padding: .7rem 1rem;
	margin-bottom: 1rem;
}

/* ---------- Hotel card ---------- */
.ts-hotel {
	background: var(--ts-surface);
	border-radius: var(--ts-radius);
	box-shadow: var(--ts-shadow-card);
	margin-bottom: 1.1rem;
	overflow: hidden;
}
.ts-hotel-top {
	display: grid;
	grid-template-columns: 296px minmax(0, 1fr);
}
.ts-hotel-media {
	position: relative;
	min-height: 215px;
	background: var(--ts-petrol-soft);
}
.ts-hotel-media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .25s cubic-bezier(.22, 1, .36, 1);
}
.ts-stars {
	color: var(--ts-yellow);
	font-size: .8125rem;
	white-space: nowrap;
	margin-left: .25rem;
}
.ts-bureau-name {
	font-size: .8125rem;
	font-weight: 600;
	color: var(--ts-ink-soft);
}
.ts-hotel-media .ts-slide {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 2.2rem;
	height: 2.2rem;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--ts-ink);
	font-size: .9375rem;
	display: grid;
	place-content: center;
	cursor: pointer;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .25);
	opacity: 0;
	transition: opacity .15s ease-out, background .15s ease-out;
}
.ts-hotel-media:hover .ts-slide,
.ts-hotel-media .ts-slide:focus-visible {
	opacity: 1;
}
.ts-hotel-media .ts-slide:hover {
	background: #fff;
}
.ts-hotel-media .ts-slide-prev {
	left: .6rem;
}
.ts-hotel-media .ts-slide-next {
	right: .6rem;
}
@media (hover: none) {
	.ts-hotel-media .ts-slide {
		opacity: 1;
	}
}
/* Statisk maerkat - det er pilene paa slideren, der bladrer i billederne */
.ts-hotel-media .ts-photos {
	position: absolute;
	left: .7rem;
	bottom: .6rem;
	background: rgba(20, 28, 36, .72);
	color: #fff;
	font-size: .8125rem;
	font-weight: 500;
	padding: .28rem .65rem;
	border-radius: 999px;
}
.ts-hotel-body {
	padding: 1rem 1.25rem .9rem;
	display: flex;
	flex-direction: column;
	gap: .4rem;
	min-width: 0;
}
.ts-hotel-head {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}
.ts-hotel-head .ts-name {
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.3;
	margin: 0;
	color: var(--ts-ink);
	letter-spacing: -.01em;
}
.ts-hotel-place {
	font-size: .875rem;
	color: var(--ts-ink-soft);
	margin-top: .1rem;
}
.ts-bureau {
	margin-left: auto;
	flex: none;
	text-align: right;
}
.ts-bureau img {
	height: 26px;
	width: auto;
	max-width: 110px;
	object-fit: contain;
}
.ts-bureau small {
	display: block;
	font-size: .75rem;
	color: var(--ts-ink-soft);
	margin-top: .2rem;
	white-space: nowrap;
}
.ts-bureau small strong {
	color: var(--ts-ink);
	font-weight: 600;
}
.ts-hotel-desc {
	font-size: .875rem;
	color: var(--ts-ink-soft);
	margin: 0;
	max-width: 72ch;
}
.ts-hotel-desc a {
	font-weight: 500;
	color: var(--ts-petrol);
}

/* ---------- Travel rows ---------- */
.ts-travels {
	border-top: 1px solid var(--ts-line-soft);
}
.ts-row {
	display: grid;
	grid-template-columns: 8.5rem 8.5rem minmax(0, 1fr) auto;
	gap: 1rem;
	align-items: center;
	padding: .65rem 1.25rem;
	text-decoration: none !important;
	color: var(--ts-ink) !important;
	border-top: 1px solid var(--ts-line-soft);
	transition: background .12s ease-out;
}
.ts-travels .ts-row:first-child {
	border-top: 0;
}
.ts-row:hover {
	background: #f7fafb;
}
.ts-row[hidden] {
	display: none;
}
.ts-row .ts-date strong {
	display: block;
	font-size: .9375rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
.ts-row .ts-date span,
.ts-row .ts-transport {
	font-size: .8125rem;
	color: var(--ts-ink-soft);
}
.ts-row .ts-transport i,
.ts-row .ts-transport svg {
	color: var(--ts-petrol);
	margin-right: .15rem;
}
.ts-row .ts-room {
	font-size: .875rem;
	color: var(--ts-ink);
	min-width: 0;
}
.ts-row .ts-lift {
	display: block;
	font-size: .8125rem;
	color: var(--ts-ink-soft);
	margin-top: .1rem;
}
.ts-row .ts-lift.ts-incl {
	color: var(--ts-green);
	font-weight: 500;
}
.ts-row .ts-price {
	text-align: right;
}
.ts-row .ts-amount {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	background: var(--ts-petrol);
	color: #fff;
	border-radius: var(--ts-radius-sm);
	padding: .5rem .95rem;
	font-weight: 700;
	font-size: 1rem;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	transition: background .15s ease-out;
}
.ts-row:hover .ts-amount {
	background: var(--ts-petrol-deep);
}
.ts-row .ts-price small {
	display: block;
	font-size: .75rem;
	color: var(--ts-ink-soft);
	margin-top: .25rem;
}
.ts-more {
	display: block;
	width: 100%;
	border: 0;
	border-top: 1px solid var(--ts-line-soft);
	background: #f7fafb;
	color: var(--ts-petrol-deep);
	font-family: inherit;
	font-size: .875rem;
	font-weight: 600;
	padding: .55rem;
	cursor: pointer;
	transition: background .12s ease-out;
}
.ts-more:hover {
	background: var(--ts-petrol-soft);
}

/* ---------- Empty state ---------- */
.ts-empty {
	background: var(--ts-surface);
	border-radius: var(--ts-radius);
	box-shadow: var(--ts-shadow-card);
	text-align: center;
	padding: 3.5rem 1.5rem 3rem;
}
.ts-empty i {
	font-size: 2rem;
	color: var(--ts-petrol);
	display: block;
	margin-bottom: .8rem;
}
.ts-empty-title {
	font-size: 1.0625rem;
	font-weight: 700;
	margin: 0 0 .3rem;
	color: var(--ts-ink);
}
.ts-empty-text {
	font-size: .9375rem;
	color: var(--ts-ink-soft);
	margin: 0 auto 1.4rem;
	max-width: 40ch;
}
.ts-empty-cta {
	display: inline-block;
	background: var(--ts-petrol);
	color: #fff !important;
	text-decoration: none !important;
	font-weight: 600;
	font-size: .9375rem;
	padding: .65rem 1.5rem;
	border-radius: var(--ts-radius-sm);
	transition: background .15s ease-out;
}
.ts-empty-cta:hover {
	background: var(--ts-petrol-deep);
}

/* ---------- Focus states ---------- */
.ts-row:focus-visible,
.ts-more:focus-visible,
.ts-btn-map:focus-visible,
.ts-price-mode button:focus-visible,
.ts-filter-toggle:focus-visible,
.ts-submit:focus-visible,
.ts-apply:focus-visible,
.ts-empty-cta:focus-visible,
.ts-photos:focus-visible {
	outline: 3px solid rgba(49, 91, 107, .4);
	outline-offset: 2px;
}
.ts-segment > select:focus-visible,
.ts-segment > input:focus-visible {
	outline: 2px solid var(--ts-petrol);
	outline-offset: 3px;
	border-radius: 3px;
}

/* ---------- Active filter chips ---------- */
.ts-chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .4rem;
	margin-bottom: .9rem;
}
.ts-chips-label {
	font-size: .8125rem;
	font-weight: 600;
	color: var(--ts-ink-soft);
	margin-right: .1rem;
}
.ts-chip {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	background: var(--ts-surface);
	border: 1px solid var(--ts-line);
	border-radius: 999px;
	padding: .3rem .7rem;
	font-size: .8125rem;
	color: var(--ts-ink) !important;
	text-decoration: none !important;
	transition: border-color .15s ease-out, background .15s ease-out;
}
.ts-chip .ts-chip-key {
	color: var(--ts-ink-soft);
}
.ts-chip i {
	font-size: .75rem;
	color: var(--ts-ink-soft);
}
.ts-chip:hover {
	border-color: var(--ts-petrol);
	background: var(--ts-petrol-soft);
}
.ts-chip:hover i {
	color: var(--ts-petrol-deep);
}
.ts-chip:focus-visible {
	outline: 3px solid rgba(49, 91, 107, .4);
	outline-offset: 2px;
}
.ts-chip-clear {
	border-style: dashed;
	color: var(--ts-ink-soft) !important;
}

/* ---------- Flexible date option ---------- */
.ts-flex-check {
	display: flex;
	align-items: center;
	gap: .3rem;
	margin: .15rem 0 0;
	font-size: .75rem;
	font-weight: 500;
	color: var(--ts-ink-soft);
	cursor: pointer;
}
.ts-flex-check.ts-flex-hidden {
	display: none;
}
.ts-flex-check input {
	appearance: none;
	-webkit-appearance: none;
	width: .8rem;
	height: .8rem;
	margin: 0;
	border: 1.5px solid #b6c1cb;
	border-radius: 3px;
	background: #fff;
	display: grid;
	place-content: center;
	cursor: pointer;
	flex: none;
}
.ts-flex-check input:checked {
	background: var(--ts-petrol);
	border-color: var(--ts-petrol);
}
.ts-flex-check input:checked::after {
	content: "";
	width: .2rem;
	height: .42rem;
	margin-top: -1px;
	border-right: 1.5px solid #fff;
	border-bottom: 1.5px solid #fff;
	transform: rotate(45deg);
}

/* ---------- Travel row: date range ---------- */
.ts-date-arrow {
	color: var(--ts-ink-soft);
	font-weight: 400;
}

/* ---------- Load more hotels ---------- */
/* ---------- Paginering ---------- */
.ts-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .35rem;
	padding: 1.25rem 0 0;
}
.ts-page {
	display: grid;
	place-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 .5rem;
	border: 1px solid var(--ts-line);
	border-radius: var(--ts-radius);
	background: var(--ts-surface);
	font-size: .9375rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--ts-ink) !important;
	text-decoration: none !important;
	transition: border-color .15s ease-out, background .15s ease-out;
}
.ts-page:hover {
	border-color: var(--ts-petrol);
	background: var(--ts-petrol-soft);
}
.ts-page:focus-visible {
	outline: 3px solid rgba(49, 91, 107, .4);
	outline-offset: 2px;
}
.ts-page-current {
	background: var(--ts-petrol);
	border-color: var(--ts-petrol);
	color: #fff !important;
	cursor: default;
}
.ts-page-current:hover {
	background: var(--ts-petrol);
}
.ts-page-step {
	font-size: .8125rem;
}
.ts-page-gap {
	padding: 0 .15rem;
	color: var(--ts-ink-soft);
}
.ts-pagination-note {
	text-align: center;
	font-size: .8125rem;
	color: var(--ts-ink-soft);
	margin: .6rem 0 0;
}
@media (max-width: 575px) {
	.ts-page {
		min-width: 2.25rem;
		height: 2.25rem;
		font-size: .875rem;
	}
}

/* ---------- Skeleton loading ---------- */
.ts-skeletons {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
}
.ts-skeleton {
	background: var(--ts-surface);
	border-radius: var(--ts-radius);
	box-shadow: var(--ts-shadow-card);
	overflow: hidden;
}
.ts-skeleton-top {
	display: grid;
	grid-template-columns: 296px minmax(0, 1fr);
}
.ts-skeleton-media {
	min-height: 215px;
}
.ts-skeleton-body {
	padding: 1.1rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: .6rem;
}
.ts-skeleton-line {
	display: block;
	height: .7rem;
	border-radius: 4px;
}
.ts-skeleton-title {
	height: 1.1rem;
	width: 45%;
}
.ts-skeleton-short {
	width: 30%;
}
.ts-skeleton-medium {
	width: 70%;
}
.ts-skeleton-rows {
	border-top: 1px solid var(--ts-line-soft);
	padding: .8rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: .8rem;
}
.ts-skeleton-row {
	display: block;
	height: 1.6rem;
	border-radius: 6px;
}
.ts-skeleton-media,
.ts-skeleton-line,
.ts-skeleton-row {
	background: linear-gradient(
		100deg,
		#eef1f4 20%,
		#f7f9fa 40%,
		#eef1f4 60%
	);
	background-size: 250% 100%;
	animation: ts-shimmer 1.4s ease-in-out infinite;
}
@keyframes ts-shimmer {
	0% { background-position: 150% 0; }
	100% { background-position: -50% 0; }
}
@media (prefers-reduced-motion: reduce) {
	.ts-skeleton-media,
	.ts-skeleton-line,
	.ts-skeleton-row {
		animation: none;
		background: #eef1f4;
	}
}

/* ---------- Banner slot ---------- */
.ts-ad-slot {
	margin-bottom: 1.1rem;
	text-align: center;
}

/* ---------- Mobile ---------- */
.ts-filter-toggle {
	display: none;
}
@media (max-width: 991px) {
	.ts-layout {
		grid-template-columns: minmax(0, 1fr);
	}
	.ts-filters {
		display: none;
	}
	.ts-filters.ts-open {
		display: block;
	}
	.ts-filter-toggle {
		display: inline-flex;
		align-items: center;
		gap: .45rem;
		background: var(--ts-ink);
		color: #fff;
		border: 0;
		border-radius: 999px;
		padding: .42rem 1rem;
		font-family: inherit;
		font-size: .875rem;
		font-weight: 600;
		cursor: pointer;
	}
	.ts-searchbar-wrap {
		position: static;
	}
	.ts-searchbar {
		flex-direction: column;
	}
	.ts-segments {
		grid-template-columns: 1fr 1fr;
		gap: 1px;
		background: var(--ts-line-soft);
	}
	.ts-segment {
		background: var(--ts-surface);
		min-height: 3rem;
	}
	.ts-segment + .ts-segment {
		border-left: 0;
	}
	.ts-segment:last-child {
		grid-column: 1 / -1;
	}
	.ts-searchbar .ts-submit {
		justify-content: center;
		padding: .7rem 1rem;
		font-size: .9375rem;
	}
	.ts-hotel-top {
		grid-template-columns: minmax(0, 1fr);
	}
	.ts-hotel-media {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}
	.ts-row {
		grid-template-columns: minmax(0, 1fr) auto;
		row-gap: .25rem;
		padding: .7rem 1rem;
	}
	.ts-row .ts-transport {
		grid-column: 1;
	}
	.ts-row .ts-room {
		grid-column: 1 / -1;
	}
	.ts-row .ts-price {
		grid-row: 1;
		grid-column: 2;
	}
	.ts-price-mode button {
		padding: .55rem .9rem;
	}
	.ts-btn-map,
	.ts-filter-toggle {
		padding: .55rem 1rem;
	}
	.ts-sort {
		order: 5;
		width: 100%;
	}
	.ts-hotel-media .ts-slide {
		opacity: 1;
		width: 2.4rem;
		height: 2.4rem;
	}
	.ts-skeleton-top {
		grid-template-columns: minmax(0, 1fr);
	}
	.ts-skeleton-media {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}
	.ts-bureau small {
		white-space: normal;
	}
}
@media (prefers-reduced-motion: reduce) {
	.ts-wrap *,
	.ts-searchbar-wrap * {
		transition: none !important;
	}
}

/* ---------- Kort-modal ---------- */
.ts-map-modal .modal-content {
	border: 0;
	border-radius: var(--ts-radius);
	overflow: hidden;
}
.ts-map-modal .modal-header {
	align-items: center;
	border-bottom: 1px solid var(--ts-line-soft);
	padding: .9rem 1.25rem;
}
.ts-map-modal .modal-title {
	font-size: 1.0625rem;
	font-weight: 700;
	color: var(--ts-ink);
	margin: 0;
}
.ts-map-modal .modal-body {
	padding: 0;
}
.ts-map {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 25rem;
	/* minmax(0, 1fr) paa raekken, ellers vokser raekken med sidepanelets
	   indhold og panelet scroller ikke - det loeber bare ud af modalen */
	grid-template-rows: minmax(0, 1fr);
	height: min(74vh, 660px);
}
.ts-map #map-canvas {
	width: 100%;
	height: 100%;
	background: var(--ts-bg);
}
.ts-map-side {
	border-left: 1px solid var(--ts-line-soft);
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--ts-bg);
	padding: 1rem;
}
.ts-map-hint {
	font-size: .875rem;
	color: var(--ts-ink-soft);
	margin: 0;
	text-align: center;
	padding: 2.5rem 1rem;
	text-wrap: pretty;
}

/* ---------- Sidepanel: ét hotel og dets afgange ---------- */
.ts-map-hotel {
	background: var(--ts-surface);
	border-radius: var(--ts-radius);
	box-shadow: var(--ts-shadow-card);
	padding: .9rem .9rem .35rem;
}
/* Hotelbilledet gaar helt ud til kortets kant, saa panelet ikke faar en
   ramme om en ramme. Aspect-ratio i stedet for .ts-hotel-media's 215px:
   panelet er kun 25rem bredt, og et hoejt billede aeder afgangenes plads */
.ts-map-hotel-media {
	min-height: 0;
	aspect-ratio: 16 / 7;
	margin: -.9rem -.9rem .9rem;
	border-radius: var(--ts-radius) var(--ts-radius) 0 0;
	overflow: hidden;
}
.ts-map-hotel-media .ts-slide {
	width: 1.9rem;
	height: 1.9rem;
	font-size: .8125rem;
}
.ts-map-hotel-media .ts-photos {
	left: .55rem;
	bottom: .5rem;
	font-size: .75rem;
	padding: .22rem .55rem;
}
.ts-map-hotel-head {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
}
.ts-map-hotel-title {
	min-width: 0;
	flex: 1;
}
.ts-map-hotel-name {
	font-size: 1rem;
	font-weight: 700;
	color: var(--ts-ink);
	line-height: 1.3;
	margin: 0;
	text-wrap: balance;
}
.ts-map-hotel-name .ts-stars {
	font-size: .75rem;
	white-space: nowrap;
}
.ts-map-hotel-place {
	font-size: .8125rem;
	color: var(--ts-ink-soft);
	margin: .15rem 0 0;
}
.ts-map-hotel-logo {
	flex: none;
	height: 1.4rem;
	width: auto;
	max-width: 5.5rem;
	object-fit: contain;
	margin-top: .1rem;
}
.ts-map-hotel-desc {
	font-size: .8125rem;
	line-height: 1.5;
	color: var(--ts-ink-soft);
	margin: .6rem 0 0;
	text-wrap: pretty;
}
.ts-map-hotel-count {
	font-size: .75rem;
	font-weight: 600;
	color: var(--ts-ink-soft);
	margin: .9rem 0 .1rem;
}

/* Afgange: to linjer pr. rejse, saa de kan staa taet uden at blive rodede */
.ts-map-departure {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0 .75rem;
	padding: .6rem 0;
	border-top: 1px solid var(--ts-line-soft);
	text-decoration: none !important;
	color: var(--ts-ink) !important;
	transition: background .12s ease-out;
}
.ts-map-departure:hover {
	background: var(--ts-petrol-soft);
	box-shadow: 0 0 0 .55rem var(--ts-petrol-soft);
	border-radius: 3px;
}
.ts-map-departure-when strong {
	display: block;
	font-size: .875rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	line-height: 1.3;
}
.ts-map-departure-when small,
.ts-map-departure-price small {
	display: block;
	font-size: .75rem;
	color: var(--ts-ink-soft);
	line-height: 1.3;
}
.ts-map-departure-price {
	text-align: right;
	/* Kun beloebet maa ikke brydes - undertekstens laengde varierer med
	   sproget, og nowrap paa hele blokken aad datoens plads paa mobil */
	max-width: 9.5rem;
}
.ts-map-departure-price .ts-amount {
	display: block;
	font-size: .9375rem;
	font-weight: 700;
	color: var(--ts-petrol);
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	line-height: 1.3;
}
.ts-map-departure:hover .ts-amount {
	color: var(--ts-petrol-deep);
}
.ts-map-departure-meta {
	grid-column: 1 / -1;
	font-size: .75rem;
	color: var(--ts-ink-soft);
	line-height: 1.45;
	margin-top: .3rem;
}
.ts-map-departure-meta i,
.ts-map-departure-meta svg {
	color: var(--ts-petrol);
}
.ts-map-departure-meta .ts-incl {
	color: var(--ts-green);
	font-weight: 500;
}
.ts-map-dot {
	opacity: .5;
	margin: 0 .1rem;
}

/* Leaflet-markoerer */
.ts-map .leaflet-container {
	font-family: inherit;
}
@media (max-width: 991px) {
	.ts-map {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: 45% 55%;
		height: min(85vh, 680px);
	}
	.ts-map-side {
		border-left: 0;
		border-top: 1px solid var(--ts-line-soft);
		padding: .75rem;
	}
	.ts-map-hint {
		padding: 1.25rem 1rem;
	}
}

/* ---------- Prishistogram ---------- */
.ts-histogram {
	display: flex;
	align-items: flex-end;
	gap: 2px;
	height: 2.4rem;
	margin-bottom: .15rem;
}
.ts-histogram-bar {
	flex: 1;
	min-height: 2px;
	background: var(--ts-petrol);
	opacity: .55;
	border-radius: 1px 1px 0 0;
	transition: opacity .15s ease-out, background .15s ease-out;
}
.ts-histogram-bar.ts-histogram-dim {
	background: var(--ts-line);
	opacity: 1;
}

/* ---------- Hvor til: felt der aabner destinationsvaelgeren ---------- */
.ts-where-display,
.ts-transport-display {
	width: 100%;
	height: 100%;
	min-height: 3.4rem;
	border: 0;
	background: transparent;
	padding: 1.35rem 1.6rem .45rem 1rem;
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--ts-ink);
	text-align: left;
	cursor: pointer;
	outline-offset: -3px;
}
.ts-where-display .ts-where-value {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ts-segment-where::after {
	content: "";
	display: block;
	position: absolute;
	right: .85rem;
	top: 50%;
	width: .5rem;
	height: .5rem;
	margin-top: -.4rem;
	border-right: 2px solid var(--ts-ink-soft);
	border-bottom: 2px solid var(--ts-ink-soft);
	transform: rotate(45deg);
	pointer-events: none;
}
.ts-where-inputs {
	display: none;
}

/* ---------- Destinationsvaelger ---------- */
.ts-where {
	position: fixed;
	z-index: 1030;
	width: 30rem;
	max-width: calc(100vw - 24px);
	background: var(--ts-surface);
	border-radius: var(--ts-radius);
	box-shadow: 0 8px 40px rgba(38, 50, 63, .28);
	display: flex;
	flex-direction: column;
	max-height: min(70vh, 560px);
}
.ts-where[hidden] {
	display: none;
}
.ts-where-search {
	padding: .85rem .85rem .6rem;
}
/* Ikonet centreres i selve feltet - laa det i containeren, skoed den
   asymmetriske padding det op over inputtet */
.ts-where-search-field {
	position: relative;
	display: block;
}
.ts-where-search-field > i,
.ts-where-search-field > svg {
	position: absolute;
	left: .8rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--ts-ink-soft);
	font-size: .875rem;
	pointer-events: none;
}
.ts-where-search input {
	width: 100%;
	border: 1px solid var(--ts-line);
	border-radius: var(--ts-radius-sm);
	background: var(--ts-surface);
	font-family: inherit;
	font-size: .9375rem;
	color: var(--ts-ink);
	padding: .6rem .8rem .6rem 2.35rem;
	appearance: none;
	-webkit-appearance: none;
}
.ts-where-search input:focus {
	outline: 0;
	border-color: var(--ts-petrol);
	box-shadow: 0 0 0 3px var(--ts-petrol-soft);
}
.ts-where-list {
	overflow-y: auto;
	padding: 0 .35rem;
	flex: 1;
	overscroll-behavior: contain;
}
.ts-where-row {
	display: flex;
	align-items: center;
	gap: .7rem;
	padding: .5rem .5rem;
	margin: 0;
	border-radius: var(--ts-radius-sm);
	cursor: pointer;
	transition: background .12s ease-out;
}
.ts-where-row:hover {
	background: var(--ts-bg);
}
.ts-where-flag {
	flex: none;
	width: 1.5rem;
	height: 1.1rem;
	border-radius: 2px;
	object-fit: cover;
	background: var(--ts-line-soft);
}
/* Mangler flagbilledet, staar landekoden i stedet - se travelWhere.flag() */
.ts-where-flag-code {
	display: grid;
	place-content: center;
	overflow: hidden;
	position: relative;
}
.ts-where-flag-code::before {
	content: attr(data-code);
	font-size: .5625rem;
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--ts-ink-soft);
}
.ts-where-flag-code img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 2px;
}
.ts-where-name {
	flex: 1;
	min-width: 0;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--ts-ink);
	line-height: 1.25;
}
.ts-where-name small {
	display: block;
	font-size: .8125rem;
	font-weight: 400;
	color: var(--ts-ink-soft);
}
.ts-where-expand {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	border: 0;
	background: transparent;
	font-family: inherit;
	font-size: .8125rem;
	font-weight: 500;
	color: var(--ts-ink-soft);
	cursor: pointer;
	padding: .25rem .4rem;
	border-radius: 999px;
}
.ts-where-expand:hover {
	background: var(--ts-petrol-soft);
	color: var(--ts-petrol-deep);
}
.ts-where-expand i,
.ts-where-expand svg {
	font-size: .7rem;
	transition: transform .15s ease-out;
}
.ts-where-expand.ts-where-open i,
.ts-where-expand.ts-where-open svg {
	transform: rotate(180deg);
}
.ts-where-row input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	margin: 0;
	border: 1.5px solid #b6c1cb;
	border-radius: 4px;
	background: #fff;
	display: grid;
	place-content: center;
	cursor: pointer;
	transition: background .12s ease-out, border-color .12s ease-out;
}
.ts-where-row input[type="checkbox"]:checked {
	background: var(--ts-petrol);
	border-color: var(--ts-petrol);
}
.ts-where-row input[type="checkbox"]:checked::after {
	content: "";
	width: .32rem;
	height: .62rem;
	margin-top: -2px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(45deg);
}
.ts-where-row input[type="checkbox"]:focus-visible {
	outline: 3px solid rgba(49, 91, 107, .4);
	outline-offset: 2px;
}
.ts-where-destinations {
	padding: 0 0 .35rem 2.2rem;
}
.ts-where-destination .ts-where-name {
	font-weight: 500;
	font-size: .875rem;
}
.ts-where-destination .ts-where-name small {
	display: inline;
	margin-left: .4rem;
	font-size: .8125rem;
}
.ts-where-empty {
	text-align: center;
	color: var(--ts-ink-soft);
	font-size: .875rem;
	padding: 2rem 1rem;
	margin: 0;
}
.ts-where-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	border-top: 1px solid var(--ts-line-soft);
	padding: .7rem .85rem;
}
.ts-where-clear {
	border: 0;
	background: transparent;
	font-family: inherit;
	font-size: .875rem;
	font-weight: 500;
	color: var(--ts-ink-soft);
	text-decoration: underline;
	padding: .4rem 0;
	cursor: pointer;
}
.ts-where-clear:hover {
	color: var(--ts-ink);
}
.ts-where-save {
	border: 0;
	border-radius: var(--ts-radius-sm);
	background: var(--ts-petrol);
	color: #fff;
	font-family: inherit;
	font-size: .875rem;
	font-weight: 600;
	padding: .55rem 1.6rem;
	cursor: pointer;
	transition: background .15s ease-out;
}
.ts-where-save:hover {
	background: var(--ts-petrol-deep);
}
.ts-where-clear:focus-visible,
.ts-where-save:focus-visible,
.ts-where-expand:focus-visible {
	outline: 3px solid rgba(49, 91, 107, .4);
	outline-offset: 2px;
}
.ts-where-quiet .ts-where-name {
	color: var(--ts-ink-soft);
	font-weight: 400;
}
.ts-more-loading {
	opacity: .6;
	cursor: progress;
}
.ts-more-loading i,
.ts-more-loading svg {
	animation: ts-more-spin .8s linear infinite;
	display: inline-block;
}
@keyframes ts-more-spin {
	to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
	.ts-more-loading i { animation: none; }
}
noscript .ts-more {
	display: block;
	text-align: center;
	text-decoration: none;
}

/* ---------- Filtre med flere valg ---------- */
.ts-checks {
	display: flex;
	flex-direction: column;
}
.ts-check {
	display: flex;
	align-items: center;
	gap: .55rem;
	padding: .3rem 0;
	margin: 0;
	font-size: .875rem;
	cursor: pointer;
	min-height: 1.9rem;
}
.ts-check input {
	flex: none;
	width: 1.05rem;
	height: 1.05rem;
	accent-color: var(--ts-petrol);
	cursor: pointer;
	margin: 0;
}
.ts-check-name {
	flex: 1;
	min-width: 0;
	color: var(--ts-ink);
}
.ts-check-count {
	flex: none;
	font-size: .75rem;
	color: var(--ts-ink-soft);
	font-variant-numeric: tabular-nums;
}
.ts-check:hover .ts-check-name {
	color: var(--ts-petrol-deep);
}
.ts-checks-more {
	display: contents;
}
.ts-checks-more[open] > summary {
	/* "Vis alle" har gjort sit arbejde, naar listen er foldet ud */
	display: none;
}
.ts-checks-more summary {
	order: 1;
	list-style: none;
	cursor: pointer;
	font-size: .8125rem;
	font-weight: 600;
	color: var(--ts-petrol);
	padding: .35rem 0 .1rem;
	margin-top: .15rem;
}
.ts-checks-more summary::-webkit-details-marker {
	display: none;
}
.ts-checks-more summary:hover {
	text-decoration: underline;
}
.ts-checks-more[open] summary {
	order: 0;
}

/* Stjernefilteret: valgte stjerner fyldt, resten svage.
   Klassen sidder paa et span uden om ikonet - Font Awesome erstatter <i> med
   <svg> og taber de ekstra klasser undervejs */
.ts-check-stars {
	font-size: .8125rem;
	letter-spacing: .04em;
	white-space: nowrap;
}
.ts-check-stars .ts-star {
	color: var(--ts-yellow);
}
.ts-check-stars .ts-star-off {
	color: var(--ts-line);
}

/* ---------- Hjaelpe-modal ---------- */
.ts-help {
	padding: 0;
}
.ts-help-block {
	padding: 1.15rem 1.5rem;
	border-bottom: 1px solid var(--ts-line-soft);
	scroll-margin-top: 1rem;
	transition: background .3s ease-out;
}
.ts-help-block:last-child {
	border-bottom: 0;
}
.ts-help-block.ts-help-current {
	background: var(--ts-petrol-soft);
}
.ts-help-block h3 {
	font-size: .9375rem;
	font-weight: 700;
	color: var(--ts-ink);
	margin: 0 0 .5rem;
}
.ts-help-block p {
	font-size: .875rem;
	line-height: 1.55;
	color: var(--ts-ink-soft);
	margin: 0 0 .5rem;
	text-wrap: pretty;
}
.ts-help-block p:last-child {
	margin-bottom: 0;
}
.ts-help-block ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ts-help-block li {
	position: relative;
	font-size: .875rem;
	line-height: 1.5;
	color: var(--ts-ink-soft);
	padding: .2rem 0 .2rem 1rem;
}
.ts-help-block li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .72rem;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--ts-petrol);
}
.ts-help-block strong {
	color: var(--ts-ink);
	font-weight: 600;
}
/* Info-ikon i soegebjaelken, hvor valget faktisk traeffes */
.ts-info-segment {
	margin-left: .3rem;
	pointer-events: auto;
	color: var(--ts-ink-soft);
	opacity: .75;
}
.ts-info-segment:hover {
	opacity: 1;
	color: var(--ts-petrol);
}
/* Deaktiverede valg i placeholder-filtre */
.ts-check-disabled {
	cursor: default;
	opacity: .5;
}
.ts-check-disabled input {
	cursor: default;
}

/* ---------- Transportvaelger ----------
   Panelet hedder ts-transport-panel, ikke ts-transport: sidstnaevnte er
   transport-cellen paa hver rejseraekke, og et faelles navn gjorde alle 150
   celler position: fixed med skygge - de blev haengende paa skaermen ved scroll */
.ts-transport-panel {
	position: fixed;
	z-index: 1030;
	background: var(--ts-surface);
	border-radius: var(--ts-radius);
	box-shadow: 0 8px 40px rgba(38, 50, 63, .28);
	display: flex;
	flex-direction: column;
	max-height: min(70vh, 30rem);
}
.ts-transport-panel[hidden] {
	display: none;
}
.ts-transport-list {
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: .5rem .35rem;
	/* flex-basis auto, ellers bidrager listen med nul til panelets hoejde -
	   saa blev panelet 33px, indholdet flooed udenfor, og fordi panelet er
	   fixed, blev det haengende paa skaermen naar man scrollede */
	flex: 1 1 auto;
	min-height: 0;
}
.ts-transport-row {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0;
	padding: .5rem .65rem;
	border-radius: var(--ts-radius-sm);
	cursor: pointer;
	transition: background .12s ease-out;
}
.ts-transport-row:hover {
	background: var(--ts-bg);
}
.ts-transport-row > i,
.ts-transport-row > svg {
	flex: none;
	width: 1.1rem;
	color: var(--ts-ink-soft);
	font-size: .9375rem;
}
.ts-transport-icon {
	flex: none;
	width: 1.1rem;
}
.ts-transport-name {
	flex: 1;
	min-width: 0;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--ts-ink);
}
.ts-transport-name small {
	display: block;
	font-size: .75rem;
	font-weight: 400;
	color: var(--ts-ink-soft);
}
.ts-transport-count {
	flex: none;
	font-size: .8125rem;
	color: var(--ts-ink-soft);
	font-variant-numeric: tabular-nums;
}
/* Afgangssteder rykkes ind under deres transportform */
.ts-transport-point {
	padding-left: 2.35rem;
	position: relative;
}
.ts-transport-point::before {
	content: "";
	position: absolute;
	left: 1.25rem;
	top: 50%;
	width: .5rem;
	height: .5rem;
	margin-top: -.45rem;
	border-left: 1px solid var(--ts-line);
	border-bottom: 1px solid var(--ts-line);
	border-bottom-left-radius: 3px;
}
.ts-transport-point .ts-transport-name {
	font-weight: 400;
	font-size: .875rem;
}
.ts-transport-all {
	border-bottom: 1px solid var(--ts-line-soft);
	border-radius: 0;
	margin-bottom: .25rem;
}
.ts-transport-check {
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	accent-color: var(--ts-petrol);
	cursor: pointer;
	margin: 0;
}
.ts-transport-check:disabled {
	opacity: .4;
	cursor: default;
}
/* Fem felter i baren i stedet for fire */
.ts-segments {
	grid-template-columns: 1.4fr 1.1fr .8fr .8fr 1fr;
}
@media (max-width: 991px) {
	.ts-segments {
		grid-template-columns: 1fr 1fr;
	}
}

/* Skelet for de filtre, der hentes efter sideindlaesningen */
.ts-filter-skeleton .ts-skeleton-line {
	display: block;
	height: .7rem;
	margin-bottom: .5rem;
	border-radius: 4px;
}
.ts-filter-skeleton .ts-skeleton-line:first-child {
	height: .9rem;
	margin-bottom: .8rem;
}

/* ---------- Rejsende: felt der aabner voksne/boern-vaelgeren ---------- */
.ts-travelers-display {
	width: 100%;
	height: 100%;
	min-height: 3.4rem;
	border: 0;
	background: transparent;
	padding: 1.35rem 1.6rem .45rem 1rem;
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--ts-ink);
	text-align: left;
	cursor: pointer;
	outline-offset: -3px;
}
.ts-travelers-display .ts-travelers-value {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ts-segment-travelers::after {
	content: "";
	display: block;
	position: absolute;
	right: .85rem;
	top: 50%;
	width: .5rem;
	height: .5rem;
	margin-top: -.4rem;
	border-right: 2px solid var(--ts-ink-soft);
	border-bottom: 2px solid var(--ts-ink-soft);
	transform: rotate(45deg);
	pointer-events: none;
}
.ts-travelers-inputs {
	display: none;
}

/* ---------- Rejsende-vaelger ---------- */
.ts-travelers-panel {
	position: fixed;
	z-index: 1030;
	background: var(--ts-surface);
	border-radius: var(--ts-radius);
	box-shadow: 0 8px 40px rgba(38, 50, 63, .28);
	display: flex;
	flex-direction: column;
	max-height: min(70vh, 30rem);
}
.ts-travelers-panel[hidden] {
	display: none;
}
.ts-travelers-list {
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: .5rem .35rem;
	flex: 1 1 auto;
	min-height: 0;
}
.ts-travelers-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .6rem;
	margin: 0;
	padding: .5rem .65rem;
	border-radius: var(--ts-radius-sm);
}
.ts-travelers-name {
	font-size: .9375rem;
	font-weight: 600;
	color: var(--ts-ink);
	display: flex;
	flex-direction: column;
}
.ts-travelers-name small {
	font-size: .75rem;
	font-weight: 400;
	color: var(--ts-ink-soft);
}
.ts-travelers-counter {
	display: flex;
	align-items: center;
	gap: .35rem;
}
.ts-travelers-step {
	width: 2rem;
	height: 2rem;
	border: 1px solid var(--ts-line-soft);
	border-radius: 50%;
	background: var(--ts-surface);
	font-family: inherit;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1;
	color: var(--ts-petrol);
	cursor: pointer;
}
.ts-travelers-step:hover:not(:disabled) {
	border-color: var(--ts-petrol);
}
.ts-travelers-step:disabled {
	color: var(--ts-ink-soft);
	opacity: .4;
	cursor: default;
}
.ts-travelers-count {
	min-width: 1.5rem;
	text-align: center;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--ts-ink);
	font-variant-numeric: tabular-nums;
}
.ts-travelers-child {
	padding-top: .15rem;
	padding-bottom: .35rem;
}
.ts-travelers-child .ts-travelers-name {
	font-weight: 400;
	font-size: .875rem;
	color: var(--ts-ink-soft);
}
.ts-travelers-age {
	border: 1px solid var(--ts-line-soft);
	border-radius: var(--ts-radius-sm);
	background: var(--ts-surface);
	font-family: inherit;
	font-size: .875rem;
	color: var(--ts-ink);
	padding: .35rem .5rem;
}

/* ---------- Boernepris-linje paa hotelkortet ---------- */
.ts-childprice {
	margin: .4rem 0 0;
	font-size: .875rem;
	color: var(--ts-green);
}
.ts-childprice strong {
	font-weight: 700;
}
.ts-childprice .fa {
	font-size: .8125rem;
	margin-right: .15rem;
}

/* Raekker med boernerabat-pris: knappen beholder sin farve (Mikkels
   oenske) - kun noten under den er groen og baerer markeringen */
.ts-row-childprice .ts-price small {
	color: var(--ts-green);
}

/* Chips er fjern-knapper - paa touch-skaerme skal de kunne rammes med
   en tommelfinger (44px-omraadet), uden at desktop-visningen vokser */
@media (pointer: coarse) {
	.ts-chip {
		padding-top: .55rem;
		padding-bottom: .55rem;
	}
}

/* ---------- Bjaelken uden for resultatsiden (ts-entry) ---------- */
/* Samme bjaelke, fritstaaende: kompakt paa én raekke som paa
   resultatsiden - toppen af destinations-, lande- og artikelsider.
   ts-hero-varianten nedenfor er den store til landings-/forsiderne */
.ts-searchbar-wrap.ts-entry {
	position: static;
	padding: .7rem;
	margin: 0 0 1.25rem;
}
.ts-entry .container {
	padding: 0;
	max-width: none;
}

/* Hero: sidens primaere soegeindgang (landing, forside) - stoerre felter,
   to raekker paa brede skaerme og afrundede hjoerner, fordi den staar som
   en selvstaendig blok i indholdet. Den kompakte topbjaelke er kantet:
   den spaender hele baandets bredde (Mikkels oenske) */
.ts-entry.ts-hero {
	padding: 1rem;
	border-radius: var(--ts-radius);
}
.ts-hero .ts-segment {
	min-height: 4.6rem;
}
.ts-hero .ts-segment label {
	top: .8rem;
	font-size: .8125rem;
}
.ts-hero .ts-segment > select,
.ts-hero .ts-segment > input,
.ts-hero .ts-where-display,
.ts-hero .ts-transport-display,
.ts-hero .ts-when-display,
.ts-hero .ts-travelers-display {
	font-size: 1.0625rem;
	padding-top: 1.8rem;
	padding-bottom: .7rem;
}
.ts-hero .ts-searchbar .ts-submit {
	font-size: 1.0625rem;
	padding: 0 1.8rem;
}
@media (min-width: 992px) {
	.ts-hero .ts-searchbar {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: .65rem;
	}
	.ts-hero .ts-segments {
		display: contents;
	}
	.ts-hero .ts-segment {
		background: var(--ts-surface);
		border-radius: var(--ts-radius);
	}
	.ts-hero .ts-segment + .ts-segment {
		border-left: 0;
	}
	.ts-hero .ts-searchbar .ts-submit {
		justify-content: center;
		min-height: 4.6rem;
	}
}

/* CMS-indlejret boks i artikler */
.ts-article-box {
	margin: 1.5rem 0;
}
.ts-article-box-headline {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--ts-ink);
	margin: 0 0 .75rem;
}

/* ---------- Kontekst-CTA (footer, sidebar, indlejret) ---------- */
.ts-cta {
	background: var(--ts-petrol);
	border-radius: var(--ts-radius);
	padding: 1.5rem 1.75rem;
	margin: 1.5rem 0;
	display: flex;
	align-items: center;
	gap: 1.25rem;
	flex-wrap: wrap;
	text-align: left;
}
.ts-cta-headline {
	flex: 1 1 16rem;
	margin: 0;
	font-size: 1.15rem;
	font-weight: 700;
	color: #fff;
}
.ts-cta-sub {
	flex-basis: 100%;
	order: 3;
	margin: 0;
	font-size: .875rem;
	color: rgba(255, 255, 255, .75);
}
.ts-cta-button {
	border-radius: var(--ts-radius-sm);
	background: var(--ts-yellow);
	color: var(--ts-ink);
	font-weight: 700;
	font-size: .9375rem;
	padding: .8rem 1.4rem;
	white-space: nowrap;
	text-decoration: none;
	box-shadow: 0 2px 0 rgba(38, 50, 63, .28);
}
.ts-cta-button:hover {
	color: var(--ts-ink);
	text-decoration: none;
	filter: brightness(1.04);
}
.ts-cta-stack {
	flex-direction: column;
	align-items: stretch;
	text-align: center;
	gap: .6rem;
	padding: 1.25rem;
}
.ts-cta-stack .ts-cta-sub {
	order: 0;
}
.ts-cta-stack .ts-cta-button {
	text-align: center;
}

/* Hotelkort-liste uden for resultatsiden (indkvarteringssiderne): samme
   kort, men uden resultatsidens baggrund og bundluft */
.ts-wrap.ts-list {
	background: transparent;
	padding-bottom: 0;
}

/* Knap i sidens egen farve (ikke paa petrol-baand): bruges under
   rejselisterne paa destinations- og landesider. a.-prefix og
   .portal-varianten, saa den hvide tekst vinder over sidens linkfarve */
a.ts-button,
.portal a.ts-button {
	display: inline-block;
	border-radius: var(--ts-radius-sm);
	background: var(--ts-petrol);
	color: #fff;
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 700;
	padding: .85rem 1.6rem;
	text-decoration: none;
	transition: background .15s ease-out;
}
a.ts-button:hover,
a.ts-button:focus,
.portal a.ts-button:hover,
.portal a.ts-button:focus {
	background: var(--ts-petrol-deep);
	color: #fff;
	text-decoration: none;
}

/* ---------- Dage paa ski: felt og panel ---------- */
.ts-days-display {
	width: 100%;
	height: 100%;
	min-height: 3.4rem;
	border: 0;
	background: transparent;
	padding: 1.35rem 1.6rem .45rem 1rem;
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--ts-ink);
	text-align: left;
	cursor: pointer;
	outline-offset: -3px;
}
.ts-days-display .ts-days-value {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ts-segment-days::after {
	content: "";
	display: block;
	position: absolute;
	right: .85rem;
	top: 50%;
	width: .5rem;
	height: .5rem;
	margin-top: -.4rem;
	border-right: 2px solid var(--ts-ink-soft);
	border-bottom: 2px solid var(--ts-ink-soft);
	transform: rotate(45deg);
	pointer-events: none;
}
.ts-days-inputs {
	display: none;
}
.ts-days-panel {
	position: fixed;
	z-index: 1030;
	background: var(--ts-surface);
	border-radius: var(--ts-radius);
	box-shadow: 0 8px 40px rgba(38, 50, 63, .28);
	padding: .35rem;
}
.ts-days-panel[hidden] {
	display: none;
}
.ts-days-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .6rem;
	width: 100%;
	border: 0;
	background: transparent;
	border-radius: var(--ts-radius-sm);
	padding: .6rem .7rem;
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--ts-ink);
	text-align: left;
	cursor: pointer;
}
.ts-days-row:hover {
	background: var(--ts-petrol-soft);
}
.ts-days-current {
	color: var(--ts-petrol);
}
.ts-days-row .fa {
	font-size: .8125rem;
}
