/* Desktop >=1200, Laptop >=992, Tablet >=768, Mobile <=576 */

@media (max-width: 1199px) {
	:root {
		--section-gap: 42px;
		--layout-max: 1200px;
		--layout-gutter: 40px;
		--container: 1200px;
	}

	.tour-grid { grid-template-columns: repeat(2, 1fr); }
	.is-home .tour-grid--featured,
	.is-home .tour-grid--vietnam {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}
	.destination-grid { grid-template-columns: repeat(2, 1fr); }
	.gallery-masonry__row--sm { grid-template-columns: repeat(2, 1fr); }
	.gallery-masonry__row--lg { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 991px) {
	:root {
		--section-gap: 38px;
		--heading-desktop: var(--heading-tablet);
	}

	.section-heading__title,
	.section-heading--solo {
		font-size: var(--heading-tablet);
	}

	.site-footer__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 40px 32px;
		padding: 64px 0 48px;
	}

	.hero {
		max-height: min(38vw, 480px);
		min-height: 0;
	}
}

@media (max-width: 767px) {
	:root {
		--section-gap: 34px;
		--heading-desktop: var(--heading-mobile);
		--layout-gutter: 24px;
	}

	.section-heading__title,
	.section-heading--solo {
		font-size: var(--heading-mobile);
	}

	.section-heading {
		margin-bottom: 32px;
	}

	/* Header — mobile overrides in header.css */
	.hero {
		max-height: min(42vw, 280px);
		min-height: 140px;
	}

	/* Search — collapsed trigger; expands to full form */
	.search-tour-toggle {
		display: flex;
		align-items: center;
		gap: 12px;
		width: 100%;
		margin: 8px 0 10px;
		padding: 12px 14px;
		border: 1px solid var(--color-border);
		border-radius: var(--radius-search);
		background: var(--color-white);
		box-shadow: var(--shadow-float);
		color: var(--color-dark-text);
		text-align: left;
		cursor: pointer;
		font: inherit;
		transition: border-color var(--transition), box-shadow var(--transition);
	}

	.search-tour-toggle:hover,
	.search-tour-toggle:focus-visible {
		outline: none;
		border-color: rgba(108, 60, 255, 0.35);
		box-shadow: 0 10px 28px rgba(108, 60, 255, 0.12);
	}

	.search-tour-toggle__icon {
		flex-shrink: 0;
		width: 40px;
		height: 40px;
		border-radius: 50%;
		background: var(--gradient-cta-glossy);
		mask: none;
		position: relative;
	}

	.search-tour-toggle__icon::after {
		content: '';
		position: absolute;
		inset: 11px;
		background: #fff;
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.8l-.3-.3A6.5 6.5 0 1014 15.5l.3.3v.8l5 5 1.5-1.5-5-5zm-6 0A4.5 4.5 0 119.5 5 4.5 4.5 0 0110.5 14z'/%3E%3C/svg%3E");
		mask-size: contain;
		mask-repeat: no-repeat;
		mask-position: center;
	}

	.search-tour-toggle__text {
		flex: 1;
		min-width: 0;
		display: flex;
		flex-direction: column;
		gap: 2px;
	}

	.search-tour-toggle__label {
		font-size: 0.95rem;
		font-weight: 700;
		line-height: 1.25;
		color: var(--color-dark-text);
	}

	.search-tour-toggle__hint {
		font-size: 0.78rem;
		line-height: 1.3;
		color: var(--color-gray-400);
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.search-tour-toggle__chevron {
		flex-shrink: 0;
		width: 12px;
		height: 8px;
		background-color: var(--color-gray-600);
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1.4 0L6 4.6 10.6 0 12 1.4l-6 6-6-6z'/%3E%3C/svg%3E");
		mask-size: contain;
		mask-repeat: no-repeat;
		mask-position: center;
		transition: transform 0.2s ease;
	}

	.search-tour-sticky.is-search-open .search-tour-toggle__chevron {
		transform: rotate(180deg);
	}

	.search-tour-sticky:not(.is-search-open) .search-tour:not(.search-tour--sidebar) {
		display: none;
	}

	.search-tour-sticky.is-search-open .search-tour-toggle {
		margin-bottom: 8px;
	}

	.search-tour:not(.search-tour--sidebar) {
		grid-template-columns: 1fr 1fr;
		border-radius: var(--radius-search);
		margin-top: 0;
		margin-bottom: 12px;
		padding: 10px;
		gap: 8px;
	}

	.search-tour:not(.search-tour--sidebar) .search-tour__field {
		border-right: 0;
		border-bottom: 0;
		padding: 0;
		min-height: 0;
		gap: 8px;
		width: 100%;
	}

	.search-tour:not(.search-tour--sidebar) .search-tour__field--destination {
		grid-column: 1 / -1;
	}

	.search-tour:not(.search-tour--sidebar) .search-tour__field--date .search-tour__icon,
	.search-tour:not(.search-tour--sidebar) .search-tour__field--guests .search-tour__icon {
		display: none;
	}

	.search-tour:not(.search-tour--sidebar) .search-tour__select-wrap,
	.search-tour:not(.search-tour--sidebar) .search-tour__date-wrap,
	.search-tour:not(.search-tour--sidebar) .search-tour__custom-select,
	.search-tour:not(.search-tour--sidebar) .search-tour__suggest-wrap {
		flex: 1 1 auto;
		width: 100%;
		min-width: 0;
	}

	.search-tour:not(.search-tour--sidebar) .search-tour__control,
	.search-tour:not(.search-tour--sidebar) .search-tour__field--date .flatpickr-input {
		min-height: 42px;
		padding: 8px 30px 8px 12px;
		font-size: 0.84rem;
		width: 100%;
	}

	.search-tour:not(.search-tour--sidebar) .search-tour__custom-label {
		display: block;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.search-tour:not(.search-tour--sidebar) .search-tour__submit {
		grid-column: 1 / -1;
		width: 100%;
		margin: 0;
		min-height: 44px;
		padding: 10px 20px;
	}

	.search-tour-sticky.is-sticky .search-tour-sticky__panel {
		padding: 8px 0 10px;
	}

	.search-tour-sticky.is-sticky .search-tour-toggle {
		margin-top: 0;
		margin-bottom: 0;
		padding: 8px 12px;
		border-radius: 14px;
		background: #F7F5FF;
		border: 1px solid rgba(108, 60, 255, 0.22);
	}

	.search-tour-sticky.is-sticky .search-tour-toggle__icon {
		width: 32px;
		height: 32px;
	}

	.search-tour-sticky.is-sticky .search-tour-toggle__icon::after {
		inset: 8px;
	}

	.search-tour-sticky.is-sticky .search-tour-toggle__label {
		font-size: 0.88rem;
	}

	.search-tour-sticky.is-sticky .search-tour-toggle__hint {
		font-size: 0.72rem;
	}

	.search-tour-sticky.is-sticky.is-search-open .search-tour-toggle {
		margin-bottom: 6px;
	}

	.search-tour-sticky.is-sticky .search-tour {
		margin-top: 0;
		margin-bottom: 0;
		padding: 8px;
	}

	.search-tour-sticky.is-sticky .search-tour__control,
	.search-tour-sticky.is-sticky .search-tour__field--date .flatpickr-input {
		min-height: 38px;
	}

	.search-tour-sticky.is-sticky .search-tour__submit {
		min-height: 40px;
		padding: 8px 16px;
	}

	/* Grids — tour/destination use tile grid on mobile via mobile-tiles.css */
	.testimonial-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.gallery-masonry__row--sm,
	.gallery-masonry__row--lg {
		grid-template-columns: repeat(2, 1fr);
	}

	.testimonial-card__head {
		grid-template-columns: auto 1fr;
	}

	.testimonial-card__stars {
		grid-column: 1 / -1;
	}

	/* CTA */
	.cta {
		padding: 56px 0;
	}

	.cta__actions {
		flex-direction: column;
		align-items: stretch;
		padding: 0 4px;
	}

	.cta__actions .btn {
		width: 100%;
		max-width: none;
	}

	/* Footer */
	.site-footer__grid {
		grid-template-columns: 1fr;
		gap: 0;
		padding: 40px 0 8px;
	}

	.site-footer__newsletter-inner {
		flex-direction: column;
		align-items: stretch;
	}

	.newsletter-form {
		max-width: none;
		flex-direction: column;
	}

	.newsletter-form__submit {
		width: 100%;
	}
}

@media (max-width: 576px) {
	:root {
		--section-gap: 30px;
	}

	.tour-card__btn {
		width: 100%;
	}
}
