/**
 * KTC public site — mobile layout and touch refinements.
 */

body.ktc-shared-header {
	overflow-x: clip;
}

@media (max-width: 400px) {
	body.ktc-shared-header .ktc-tv-header__cta {
		padding-left: 12px;
		padding-right: 12px;
		max-width: 42vw;
	}
	body.ktc-shared-header .ktc-tv-header__cta .label {
		font-size: 12px;
		white-space: nowrap;
	}
}

body.ktc-shared-header .e-con,
body.ktc-shared-header .e-con-inner,
body.ktc-shared-header .elementor-widget-wrap {
	min-width: 0;
}

body.ktc-shared-header img,
body.ktc-shared-header video,
body.ktc-shared-header iframe {
	max-width: 100%;
	height: auto;
}

body.ktc-shared-header.ktc-home2-tourvia .ktc-voyage .ktc-ocean-video-el {
	height: 100% !important;
	max-width: none;
}

@media (max-width: 767px) {
	.ktc-home-finder {
		max-width: 100%;
		padding: 1rem 1rem 1.1rem;
		gap: 0.85rem;
	}

	.ktc-home-finder__field select,
	.ktc-home-finder__field input {
		font-size: 16px;
		min-height: 48px;
	}

	.ktc-home-finder__submit {
		width: 100%;
		min-height: 48px;
		justify-self: stretch;
	}

	.ktc-home-tour-list {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 760px) {
	.ktc-catalog .hero {
		padding-left: max(20px, env(safe-area-inset-left, 0px));
		padding-right: max(20px, env(safe-area-inset-right, 0px));
	}

	.ktc-catalog .hero > .wrap {
		width: 100%;
		max-width: none;
		margin: 0;
	}

	body.ktc-home2-tourvia .home-hero-area .container.w-container,
	body.page-id-10218 .home-hero-area .container.w-container,
	body.ktc-shared-header .home-hero-area .hero-wrapper,
	body.ktc-shared-header .home-hero-area .hero-left {
		padding-left: max(20px, env(safe-area-inset-left, 0px));
		padding-right: max(20px, env(safe-area-inset-right, 0px));
	}

	.ktc-catalog .hero h1 {
		font-size: clamp(34px, 10.5vw, 58px);
		line-height: 1.05;
		max-width: none;
	}

	.ktc-catalog .hero-note {
		position: static;
		margin-top: 1.25rem;
		max-width: 18rem;
	}

	.ktc-catalog-finder-wrap {
		margin-top: -24px;
	}

	.ktc-catalog-finder-wrap .ktc-home-finder__submit {
		width: 100%;
		justify-self: stretch;
	}

	.ktc-catalog .highlights {
		grid-template-columns: 1fr;
	}

	.ktc-catalog .booking-row {
		flex-direction: column;
		align-items: stretch;
		gap: 14px;
	}

	.ktc-catalog .actions {
		flex-direction: column;
		width: 100%;
	}

	.ktc-catalog .actions .button {
		width: 100%;
		min-height: 48px;
		justify-content: center;
		white-space: normal;
		text-align: center;
	}

	.ktc-catalog-search-note {
		padding-left: 20px !important;
		padding-right: 20px !important;
		margin-top: 0 !important;
	}
}

@media (max-width: 1099px) {
	body.ktc-home2-tourvia .home-hero-area,
	body.page-id-10218 .home-hero-area {
		padding-top: 64px !important;
	}

	body.ktc-home2-tourvia .home-hero-area .hero-title-wrap,
	body.page-id-10218 .home-hero-area .hero-title-wrap {
		margin-top: 0.5rem;
	}

	.ktc-tv-nav a,
	.ktc-tv-nav__drop > summary {
		min-height: 44px;
		display: flex;
		align-items: center;
		justify-content: flex-start;
		width: 100%;
	}

	.ktc-tv-header.is-menu-open .ktc-tv-nav {
		max-height: calc(100dvh - 88px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.ktc-tv-header.is-solid .ktc-tv-header__cta-icon {
		box-shadow: 0 1px 8px rgba(15, 20, 21, 0.08);
	}
}

@media (max-width: 380px) {
	#ktc-tv-header .ktc-tv-header__logo-img {
		height: 44px !important;
		max-height: 44px !important;
		max-width: min(115px, 36vw) !important;
	}

	.ktc-tv-header__cta-icon,
	.ktc-tv-header__toggle {
		width: 42px;
		height: 42px;
	}
}

@media (max-width: 991px) {
	body.ktc-branded-tour #st-content-wrapper .container,
	body.ktc-branded-tour #st-content-wrapper .st-tour-content > .container {
		padding-left: max(16px, env(safe-area-inset-left, 0px));
		padding-right: max(16px, env(safe-area-inset-right, 0px));
	}

	body.ktc-branded-tour #booking-request.fixed-on-mobile .btn,
	body.ktc-branded-tour #booking-request.fixed-on-mobile button,
	body.ktc-branded-tour #booking-request.fixed-on-mobile input,
	body.ktc-branded-tour #booking-request.fixed-on-mobile select {
		font-size: 16px;
		min-height: 44px;
	}
}
