/**
 * Task 04 — Responsive lock (M01 + approved mobile footer).
 * Breakpoints: mobile ≤767 | tablet 768–1199 | desktop ≥1200
 * Forces Elementor Free flex containers that use Vastus CSS classes to stack.
 */

/* —— Global overflow / type —— */
html {
	overflow-x: clip;
}

body {
	overflow-x: clip;
}

@media (max-width: 767px) {
	:root {
		--vy-fs-hero: clamp(1.85rem, 8vw, 2.15rem);
		--vy-fs-h2: clamp(1.45rem, 6vw, 1.75rem);
		--vy-section-y: 2.25rem;
		--vy-footer-stack: 2.75rem;
	}

	.vy-section {
		padding-block: var(--vy-section-y);
	}

	/* Full-width CTAs for touch */
	.vy-btn-gold .elementor-button,
	.vy-btn-navy .elementor-button,
	.vy-btn-ghost .elementor-button,
	a.vy-btn-gold,
	a.vy-btn-navy,
	a.vy-btn-ghost {
		width: 100%;
		min-height: 48px;
	}

	.vy-card-media .elementor-button {
		width: calc(100% - 2.2rem);
		margin-inline: 1.1rem;
	}
}

/* —— Force Elementor container stacks (Free flexbox) —— */
@media (max-width: 767px) {
	.vy-hero.e-con,
	.vy-hero.elementor-element,
	.elementor-element.vy-hero,
	.vy-split.e-con,
	.vy-split.elementor-element,
	.elementor-element.vy-split,
	.vy-split--reverse.e-con,
	.elementor-element.vy-split--reverse,
	.vy-section.e-con.vy-split,
	.elementor-element.vy-cruises-grid,
	.vy-cruises-grid.e-con,
	.elementor-element.vy-facts,
	.vy-facts.e-con,
	.elementor-element.vy-faq-grid,
	.vy-faq-grid.e-con,
	/* Parent of FAQ intro + accordion (section without vy-faq-grid on outer) */
	.elementor-element.vy-section:has(> .e-con .elementor-widget-accordion),
	.elementor-element.vy-section:has(> .elementor-element .elementor-widget-accordion) {
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
	}

	.vy-hero > .e-con,
	.vy-hero > .elementor-element,
	.elementor-element.vy-hero > .e-con,
	.elementor-element.vy-hero > .elementor-element,
	.vy-split > .e-con,
	.vy-split > .elementor-element,
	.elementor-element.vy-split > .e-con,
	.elementor-element.vy-split > .elementor-element,
	.vy-cruises-grid > .e-con,
	.vy-cruises-grid > .elementor-element,
	.elementor-element.vy-cruises-grid > .e-con,
	.elementor-element.vy-cruises-grid > .elementor-element,
	.vy-facts > .e-con,
	.vy-facts > .elementor-element,
	.elementor-element.vy-facts > .e-con,
	.elementor-element.vy-facts > .elementor-element,
	.vy-faq-grid > .e-con,
	.vy-faq-grid > .elementor-element,
	.elementor-element.vy-faq-grid > .e-con,
	.elementor-element.vy-faq-grid > .elementor-element {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 auto !important;
		min-width: 0 !important;
	}

	/* Named homepage section parents (Task 03 builder classes) */
	.elementor-element.vy-section--cool,
	.elementor-element.vy-home-cruises,
	.elementor-element.vy-home-gallery,
	.elementor-element.vy-home-faq {
		flex-direction: column !important;
	}

	.elementor-element.vy-section--cool > .e-con,
	.elementor-element.vy-section--cool > .elementor-element,
	.elementor-element.vy-home-cruises > .e-con,
	.elementor-element.vy-home-cruises > .elementor-element,
	.elementor-element.vy-home-gallery > .e-con,
	.elementor-element.vy-home-gallery > .elementor-element,
	.elementor-element.vy-home-faq > .e-con,
	.elementor-element.vy-home-faq > .elementor-element {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 auto !important;
	}
}

/* —— Hero mobile —— */
@media (max-width: 767px) {
	.vy-hero {
		min-height: min(70vh, 32rem);
		align-items: flex-end;
	}

	.vy-hero-seal {
		order: 3;
		margin-top: 1rem;
		text-align: center;
	}

	.vy-hero-seal img {
		max-width: 140px;
		margin-inline: auto;
	}

	.vy-heading-display {
		text-wrap: balance;
	}
}

/* —— Facts —— */
@media (max-width: 767px) {
	.vy-facts,
	.elementor-element.vy-facts {
		display: flex !important;
		flex-direction: column !important;
		gap: 1.35rem !important;
	}

	.vy-fact-cell {
		min-width: 0;
		width: 100%;
		padding-block: 0.35rem;
		border-bottom: 1px solid var(--vy-border);
	}

	.vy-fact-cell:last-child {
		border-bottom: 0;
	}
}

/* —— Feature grid —— */
@media (max-width: 767px) {
	.vy-feature-grid,
	.elementor-element.vy-feature-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1.25rem !important;
	}
}

/* —— FAQ single column —— */
@media (max-width: 767px) {
	.vy-faq-grid,
	.elementor-element.vy-faq-grid {
		display: block !important;
		width: 100% !important;
	}

	.elementor-widget-accordion .elementor-tab-title,
	.elementor-widget-accordion .e-n-accordion-item-title {
		min-height: 48px;
		padding-block: 0.85rem;
	}
}

/* —— Footer one-column (locked) —— */
@media (max-width: 767px) {
	.vy-footer__grid,
	.elementor-element.vy-footer__grid,
	.vy-footer .e-con.vy-footer__grid {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		gap: var(--vy-footer-stack) !important;
		text-align: center !important;
	}

	.vy-footer__group,
	.elementor-element.vy-footer__group,
	.vy-footer .vy-footer__group {
		width: 100% !important;
		max-width: 22rem;
		border-inline-start: 0 !important;
		padding-inline-start: 0 !important;
	}

	.vy-footer__group + .vy-footer__group,
	.elementor-element.vy-footer__group + .elementor-element.vy-footer__group {
		border-block-start: 1px solid rgba(255, 255, 255, 0.12);
		padding-block-start: var(--vy-footer-stack);
	}

	.vy-footer .elementor-icon-list-items,
	.vy-footer .elementor-widget-social-icons {
		justify-content: center;
	}

	.vy-footer .elementor-icon-list-item {
		justify-content: center;
	}

	.vy-footer__bottom {
		padding-block: 1.5rem;
		line-height: 1.7;
	}

	.vy-footer__logo img {
		max-height: 64px;
		margin-inline: auto;
	}
}

/* —— Header collision guard (widget CSS complements) —— */
@media (max-width: 767px) {
	.vy-header__inner {
		flex-wrap: nowrap;
		padding-inline: 0.85rem;
	}

	.vy-header__logo img {
		max-height: 52px !important;
	}

	.vy-header__cta {
		padding-inline: 0.75rem;
		font-size: 0.68rem;
		min-height: 44px;
		white-space: nowrap;
		border-radius: 6px;
	}

	.vy-header__actions {
		gap: 0.35rem;
		margin-left: auto;
	}

	.vy-header__lang-code {
		font-size: 0.75rem;
	}
}

/* —— Tablet —— */
@media (min-width: 768px) and (max-width: 1199px) {
	.vy-facts {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.vy-feature-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.vy-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem;
	}

	.vy-footer__group + .vy-footer__group {
		border-inline-start: 0;
		padding-inline-start: 0;
	}
}

/* —— Reduced motion —— */
@media (prefers-reduced-motion: reduce) {
	.vy-btn-gold .elementor-button,
	.vy-btn-navy .elementor-button,
	.vy-header__cta {
		transition: none !important;
	}
}
