/**
 * Стили виджета GoCruise под брендбук Travel Kar
 * Переменные виджета: https://widget.gocruise.ru (раздел 4 документации)
 */
.ces-app,
.ces-app .ces-search-form__button {
	font-family: var(--font-family), "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.ces-app {
	--ces-global-border-radius: 8px;
	--ces-form-bg-color: var(--color-primary, #096285);
	--ces-form-border-radius: var(--ces-global-border-radius);
	--ces-form-input-label-color: #ffffff;
	--ces-form-input-border-radius: var(--ces-global-border-radius);
	--ces-form-footer-border-top-color: rgba(255, 255, 255, 0.2);
	--ces-modal-overlay: rgba(0, 0, 0, 0.6);
	--ces-modal-border-radius: var(--ces-global-border-radius);
	--ces-form-button-border-radius: var(--ces-global-border-radius);
	--ces-form-button-color: var(--color-primary, #096285);
	--ces-form-button-hover-color: var(--color-primary-light, #0d7ba3);
	--ces-form-button-submit-color: var(--color-secondary-orange, #EF7F1A);
	--ces-form-button-submit-hover-color: #d66a0f;
	--ces-result-card-border-radius: var(--ces-global-border-radius);
	--ces-result-card-bg-color: var(--color-bg-light, #f5f5f5);
	--ces-result-card-shadow: 0 2px 8px rgba(9, 98, 133, 0.12);
	--ces-result-card-button-price-border-radius: var(--ces-global-border-radius);
	--ces-result-card-button-price-color: var(--color-secondary-orange, #EF7F1A);
	--ces-result-card-button-price-hover-color: #d66a0f;
	--ces-result-card-button-date-border-radius: var(--ces-global-border-radius);
	--ces-result-card-button-date-color: var(--color-primary, #096285);
	--ces-result-card-button-date-hover-color: var(--color-primary-light, #0d7ba3);
}

.cruise-widget-shell {
	position: relative;
	width: 100%;
	margin-bottom: 2rem;
	border-radius: 24px;
	overflow: hidden;
	background:
		radial-gradient(circle at top left, rgba(0, 160, 227, 0.2), transparent 30%),
		radial-gradient(circle at bottom right, rgba(239, 127, 26, 0.22), transparent 32%),
		linear-gradient(135deg, #083b4f 0%, #096285 48%, #0d7ba3 100%);
	box-shadow: 0 22px 60px rgba(9, 98, 133, 0.18);
}

.cruise-widget-shell #ces {
	position: relative;
	/* без z-index: иначе контекст наложения «запирает» position:fixed модалки виджета ниже шапки сайта (z-index ~1000) */
	background: rgba(255, 255, 255, 0.98);
}

/* Модальные окна GoCruise (например «Все цены») — поверх шапки и поиска в header */
.ces-modal[role="dialog"] {
	z-index: 10100 !important;
}

html.cruise-gocruise-modal-open {
	overflow: hidden;
	height: 100%;
}

html.cruise-gocruise-modal-open body {
	overflow: hidden;
}

/* Плавающая панель лайфхаков (справа на десктопе, снизу на мобильных) */
.cruise-tips-widget {
	position: fixed;
	z-index: 920;
	display: flex;
	flex-direction: row-reverse;
	align-items: stretch;
	pointer-events: none;
}

.cruise-tips-widget > * {
	pointer-events: auto;
}

.cruise-tips-widget__tab {
	display: none;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0.65rem 0.45rem;
	max-width: 2.75rem;
	border: 1px solid rgba(9, 98, 133, 0.25);
	border-radius: 12px 0 0 12px;
	background: var(--color-primary, #096285);
	color: #fff;
	font-family: var(--font-family), "Montserrat", sans-serif;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	cursor: pointer;
	box-shadow: -4px 4px 20px rgba(9, 98, 133, 0.22);
	transition: background 0.2s ease, transform 0.2s ease;
}

.cruise-tips-widget__tab:hover {
	background: var(--color-primary-light, #0d7ba3);
}

.cruise-tips-widget.is-collapsed .cruise-tips-widget__tab {
	display: flex;
}

.cruise-tips-widget.is-collapsed .cruise-tips-widget__panel {
	display: none;
}

.cruise-tips-widget:not(.is-collapsed) .cruise-tips-widget__tab {
	display: none !important;
}

.cruise-tips-widget__panel {
	width: min(300px, calc(100vw - 2rem));
	/* Высота — от окна, заголовок и точки не обрезаем; текст скроллится в середине */
	max-height: min(85vh, calc(100svh - 2rem));
	display: flex;
	flex-direction: column;
	min-height: 0;
	border-radius: 12px;
	border: 1px solid rgba(9, 98, 133, 0.15);
	background: #fff;
	box-shadow: 0 12px 40px rgba(9, 98, 133, 0.18);
	overflow: hidden;
}

.cruise-tips-widget__head {
	flex-shrink: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.65rem 0.75rem;
	background: linear-gradient(135deg, rgba(9, 98, 133, 0.08) 0%, rgba(0, 160, 227, 0.06) 100%);
	border-bottom: 1px solid rgba(9, 98, 133, 0.1);
}

.cruise-tips-widget__title {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--color-primary, #096285);
}

.cruise-tips-widget__controls {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	align-items: center;
	justify-content: flex-end;
}

.cruise-tips-widget__btn {
	margin: 0;
	padding: 0.35rem 0.6rem;
	border: 1px solid rgba(9, 98, 133, 0.35);
	border-radius: 999px;
	background: #fff;
	color: var(--color-primary, #096285);
	font-family: inherit;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.cruise-tips-widget__btn:hover {
	background: var(--color-primary, #096285);
	color: #fff;
	border-color: var(--color-primary, #096285);
}

.cruise-tips-widget__btn[aria-pressed="true"] {
	background: rgba(239, 127, 26, 0.15);
	border-color: var(--color-secondary-orange, #ef7f1a);
	color: #c45a0a;
}

.cruise-tips-widget__slides {
	flex: 1 1 auto;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.cruise-tips-widget__slides-inner {
	position: relative;
	padding: 0.85rem 0.9rem 0.5rem;
}

.cruise-tip-card {
	display: none;
	flex-direction: column;
	justify-content: flex-start;
	padding: 0;
	margin: 0;
}

.cruise-tip-card.is-active {
	display: flex;
	animation: cruise-tips-tip-in 0.35s ease forwards;
}

@keyframes cruise-tips-tip-in {
	from {
		opacity: 0;
		transform: translateX(10px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

.cruise-tip-card__meta {
	display: block;
	margin-bottom: 0.4rem;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text-light, #666);
}

.cruise-tip-card__heading,
.cruise-tip-card h3 {
	margin: 0 0 0.45rem;
	color: var(--color-text, #333);
	font-size: 0.98rem;
	font-weight: 700;
	line-height: 1.25;
}

.cruise-tip-card__text,
.cruise-tip-card p {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.55;
	color: var(--color-text-light, #555);
}

.cruise-tips-widget__dots {
	flex-shrink: 0;
	display: flex;
	gap: 0.45rem;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 0.75rem 0.75rem;
	border-top: 1px solid rgba(9, 98, 133, 0.08);
}

.cruise-tips-widget__dot {
	width: 9px;
	height: 9px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(9, 98, 133, 0.25);
	cursor: pointer;
	transition: transform 0.2s ease, background 0.2s ease;
}

.cruise-tips-widget__dot.is-active,
.cruise-tips-widget__dot:hover {
	background: var(--color-secondary-orange, #ef7f1a);
	transform: scale(1.15);
}

/* Десктоп: справа по краю вьюпорта, по вертикали — по центру экрана (не под хэдером) */
@media (min-width: 992px) {
	.cruise-tips-widget {
		top: 50%;
		transform: translateY(-50%);
		right: 0;
		padding-right: env(safe-area-inset-right, 0px);
		bottom: auto;
		left: auto;
		align-items: center;
	}

	.cruise-tips-widget.is-collapsed .cruise-tips-widget__tab {
		border-radius: 12px 0 0 12px;
	}
}

/* Планшет и мобильные: снизу по центру, не перекрываем контент на всю ширину узкой полосой */
@media (max-width: 991px) {
	.cruise-tips-widget {
		left: 0.75rem;
		right: 0.75rem;
		bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
		top: auto;
		flex-direction: column;
		align-items: stretch;
	}

	.cruise-tips-widget__panel {
		width: 100%;
		max-width: none;
		max-height: min(55vh, calc(100svh - 6rem));
		border-radius: 12px;
		order: 2;
	}

	.cruise-tips-widget__tab {
		order: 1;
		display: none;
		align-self: flex-end;
		writing-mode: horizontal-tb;
		text-orientation: mixed;
		max-width: none;
		padding: 0.5rem 0.9rem;
		border-radius: 999px 999px 0 0;
		margin-bottom: -1px;
		box-shadow: 0 -4px 16px rgba(9, 98, 133, 0.12);
		font-size: 0.78rem;
	}

	.cruise-tips-widget.is-collapsed .cruise-tips-widget__tab {
		display: inline-flex;
		align-self: flex-end;
	}

	.cruise-tips-widget.is-collapsed {
		align-items: flex-end;
	}
}

.ces-app .ces-search-results__title,
.ces-app .ces-search-results__title * {
	color: #ffffff !important;
}

.ces-app .ces-search-results__title {
	margin-bottom: 0.75rem;
	font-size: clamp(1.35rem, 2vw, 1.85rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ces-app .ces-search-results__filter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	width: 100%;
	padding: 0.75rem 0 0.9rem;
	color: rgba(255, 255, 255, 0.92) !important;
	font-size: 0.95rem;
	line-height: 1.4;
	border-top: 1px solid rgba(255, 255, 255, 0.24);
	border-bottom: 1px solid rgba(255, 255, 255, 0.24);
}

.ces-app .ces-search-results__filter_select {
	min-height: 40px;
	padding: 0.5rem 2.25rem 0.5rem 0.85rem;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	color: #ffffff !important;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.2;
	outline: none;
	box-shadow: none;
}

.ces-app .ces-search-results__filter_select:focus,
.ces-app .ces-search-results__filter_select:hover {
	border-color: rgba(255, 255, 255, 0.52);
	background: rgba(255, 255, 255, 0.18);
}

.ces-app .ces-search-results__filter_select option {
	color: #1f2a30;
	background: #ffffff;
}

@media (max-width: 767px) {
	.cruise-widget-shell,
	.cruise-widget-shell #ces {
		border-radius: 18px;
	}

	.cruise-tip-card {
		justify-content: flex-start;
	}

	.ces-app .ces-search-results__filter {
		align-items: stretch;
	}

	.ces-app .ces-search-results__filter_select {
		width: 100%;
	}
}
