/**
 * Limo NYC — responsive & layout fixes (Elementor homepage, header, footer).
 */

/* Prevent horizontal scroll site-wide */
html,
body {
	overflow-x: clip;
}

#page,
.site,
.elementor-page {
	max-width: 100%;
}

img,
video,
iframe,
.elementor-widget-image img {
	max-width: 100%;
	height: auto;
}

/* ——— Header ——— */
.elementor-location-header {
	position: relative;
	z-index: 100;
}

.elementor-18 .elementor-element-f05818c > .e-con-inner {
	flex-wrap: nowrap;
	align-items: center;
}

.elementor-18 .elementor-element-967d9d1 {
	width: 100% !important;
	max-width: 140px !important;
}

.elementor-18 .elementor-element-967d9d1 img {
	width: 100%;
	height: auto;
	object-fit: contain;
}

.elementor-18 .elementor-element-e60948f {
	flex-shrink: 0;
}

.elementor-18 .elementor-element-f672c09 .elementor-button {
	white-space: nowrap;
	padding: 12px 18px !important;
	font-size: 15px !important;
}

@media (max-width: 1024px) {
	.elementor-18 .elementor-element-0686134 {
		flex: 1 1 auto;
		justify-content: flex-end;
	}

	.elementor-18 .elementor-element-693b802 {
		width: auto !important;
		max-width: none !important;
	}
}

/* Tablet + mobile: burger menu panel */
@media (max-width: 1024px) {
	.elementor-18 .elementor-element-f05818c > .e-con-inner {
		justify-content: space-between;
	}

	.elementor-18 .elementor-element-39de8b7 {
		width: auto !important;
		max-width: 120px !important;
	}

	.elementor-18 .elementor-element-0686134 {
		width: auto !important;
		min-width: 0;
	}

	.elementor-18 .elementor-menu-toggle {
		display: flex !important;
		align-items: center;
		justify-content: center;
		z-index: 10001;
		cursor: pointer;
	}

	.elementor-18 .elementor-nav-menu--main {
		display: none !important;
	}

	.elementor-18 .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		position: absolute !important;
		top: 100% !important;
		right: 0 !important;
		left: auto !important;
		width: min(100vw - 24px, 320px) !important;
		max-height: calc(100vh - 80px);
		overflow-y: auto !important;
		z-index: 10000 !important;
		background: var(--color-neutral-1000, oklch(8% 0 0)) !important;
		border-radius: 10px;
		box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
	}

	.elementor-18 .elementor-nav-menu--dropdown[aria-hidden="false"] {
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
	}

	.elementor-18 .elementor-element-f05818c {
		position: relative;
		overflow: visible !important;
	}

	.elementor-18 .elementor-element-0686134 {
		position: static;
		overflow: visible !important;
	}

	.elementor-18 .elementor-element-693b802 {
		position: static;
		overflow: visible !important;
	}
}

@media (max-width: 767px) {
	.elementor-18 .elementor-nav-menu--dropdown .elementor-item {
		padding: 12px 16px !important;
	}
}

/* Desktop: submenus + page overflow */
@media (min-width: 1025px) {
	.elementor-location-header,
	.elementor-location-header .e-con,
	.elementor-location-header .elementor-nav-menu--main {
		overflow: visible !important;
	}

	.elementor-18 .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		display: none !important;
	}

	.elementor-page .e-con:not(.elementor-location-header *),
	.elementor-page .e-parent:not(.elementor-location-header *) {
		overflow: hidden;
	}
}

/* ——— Homepage hero (post 6) ——— */
.elementor-6 .elementor-element-ce52807 {
	min-height: clamp(520px, 85vh, 760px);
}

/* Hero width: see citypulse-nextjs-parity.css (max-w-7xl / 1280px) */
.elementor-6 .elementor-element-e52a3bb {
	min-width: 0;
}

.elementor-6 .elementor-element-f5212f4 .elementor-heading-title {
	font-size: clamp(2rem, 5vw, 3.5rem) !important;
	line-height: 1.15 !important;
}

.elementor-6 .elementor-element-ec2b794 {
	font-size: clamp(0.95rem, 2vw, 1.05rem) !important;
	line-height: 1.6 !important;
}

/* Hero CTA buttons */
.elementor-6 .elementor-element-c8511fd {
	width: 100% !important;
	max-width: 100% !important;
	margin-inline: 0 !important;
	gap: 12px;
}

.elementor-6 .elementor-element-c8511fd > .e-con-inner {
	flex-wrap: wrap;
	justify-content: flex-start;
}

.elementor-6 .elementor-element-3eaa304,
.elementor-6 .elementor-element-e9dcf37 {
	width: 100% !important;
	max-width: 100% !important;
}

.elementor-6 .elementor-element-3eaa304 .elementor-button,
.elementor-6 .elementor-element-e9dcf37 .elementor-button {
	width: 100%;
	justify-content: center;
}

/* Booking / quote card */
.elementor-6 .elementor-element-b5d62d8 {
	width: 100%;
	max-width: 420px;
	margin-inline: auto;
}

.elementor-6 .elementor-element-b5d62d8 > .e-con-inner {
	padding: clamp(16px, 3vw, 28px) !important;
}

.elementor-6 .elementor-element-35567ab {
	margin-left: 0 !important;
	letter-spacing: 0.12em !important;
}

/* Section headings & intro text — fluid width */
.elementor-6 .elementor-element-027e00d,
.elementor-6 .elementor-element-92c6b4e,
.elementor-6 .elementor-element-16eab22,
.elementor-6 .elementor-element-5d0c5bb {
	width: 100% !important;
	max-width: min(720px, 100%) !important;
	margin-inline: auto;
}

.elementor-6 .elementor-element-6948933 .elementor-heading-title,
.elementor-6 .elementor-element-3a41b1e .elementor-heading-title,
.elementor-6 .elementor-element-77f34da .elementor-heading-title {
	font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
	line-height: 1.2 !important;
}

/* Service / fleet icon grids */
.elementor-6 .elementor-element-824b8e0 > .e-con-inner,
.elementor-6 .elementor-element-5c206d8 > .e-con-inner,
.elementor-6 .elementor-element-8cd6af6 > .e-con-inner,
.elementor-6 .elementor-element-e76c122 > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 16px;
	width: 100%;
}

.elementor-6 .elementor-element-f52eadf,
.elementor-6 .elementor-element-b753cbb,
.elementor-6 .elementor-element-9f19060,
.elementor-6 .elementor-element-47f4ecd,
.elementor-6 .elementor-element-798a42d,
.elementor-6 .elementor-element-8592a18,
.elementor-6 .elementor-element-8e24564,
.elementor-6 .elementor-element-d84cbc7,
.elementor-6 .elementor-element-bf2dfa4,
.elementor-6 .elementor-element-480a031,
.elementor-6 .elementor-element-5b25fdf,
.elementor-6 .elementor-element-8cf970c,
.elementor-6 .elementor-element-2359e2c,
.elementor-6 .elementor-element-6550ed6 {
	width: 100% !important;
	max-width: 100% !important;
}

/* Fleet cards row */
.elementor-6 .elementor-element-8cd6af6 > .e-con-inner {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}

.elementor-6 .elementor-element-9f9a902 img,
.elementor-6 .elementor-element-404ed1d img,
.elementor-6 .elementor-element-ab4ee99 img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* Pricing cards */
.elementor-6 .elementor-element-e76c122 > .e-con-inner {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

/* FAQ accordion */
.elementor-6 .elementor-element-a915f11 {
	width: 100%;
	max-width: 900px;
	margin-inline: auto;
}

/* Logo carousel */
.elementor-6 .elementor-element-6814a62 .elementor-image-carousel-wrapper {
	padding-inline: 8px;
}

.elementor-6 .elementor-element-6814a62 .swiper-slide {
	display: flex;
	align-items: center;
	justify-content: center;
}

.elementor-6 .elementor-element-6814a62 img {
	max-height: 56px;
	width: auto;
	object-fit: contain;
}

/* Section padding */
.elementor-6 .elementor-element-a4fb00a,
.elementor-6 .elementor-element-37dfd86,
.elementor-6 .elementor-element-84987d8,
.elementor-6 .elementor-element-a22b597,
.elementor-6 .elementor-element-341a718 {
	padding-inline: clamp(20px, 4vw, 60px) !important;
}

.elementor-6 .elementor-element-a22b597 {
	--content-width: min(100%, 1000px);
}

.elementor-6 .elementor-element-a22b597 > .e-con-inner {
	max-width: 1000px;
	margin-inline: auto;
}

/* ——— Footer ——— */
.elementor-15 .elementor-element-0bb3643 > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 32px 24px;
}

.elementor-15 .elementor-element-1f73dce,
.elementor-15 .elementor-element-40a492e {
	width: 100% !important;
	max-width: 100% !important;
}

.elementor-15 .elementor-element-29372c3 .elementor-widget-text-editor {
	text-align: center;
}

/* Override Elementor mobile mistake: 900px-wide hero button row */
@media (max-width: 767px) {
	.elementor-6 .elementor-element-c8511fd {
		--width: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.elementor-6 .elementor-element-027e00d,
	.elementor-6 .elementor-element-92c6b4e,
	.elementor-6 .elementor-element-16eab22 {
		--container-widget-width: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.elementor-6 .elementor-element-ce52807 > .e-con-inner {
		width: 100% !important;
		max-width: 100% !important;
		flex-direction: column;
		align-items: stretch;
		text-align: center;
	}

	.elementor-6 .elementor-element-e52a3bb {
		width: 100% !important;
		max-width: 100% !important;
		--width: 100% !important;
	}

	.elementor-6 .elementor-element-e52a3bb {
		align-items: center;
	}

	.elementor-6 .elementor-element-c8511fd > .e-con-inner {
		justify-content: center;
	}

	.elementor-6 .elementor-element-13120e2 > .e-con-inner {
		flex-direction: column;
		align-items: stretch;
	}

	.elementor-6 .elementor-element-b5d62d8 {
		max-width: 100%;
	}

	.elementor-6 .elementor-element-5879c93,
	.elementor-6 .elementor-element-f5212f4,
	.elementor-6 .elementor-element-ec2b794 {
		text-align: center;
	}

	.elementor-6 .elementor-element-8b74c6c {
		border-width: 0 !important;
	}

	.elementor-6 .elementor-element-c5dc0fd > .e-con-inner,
	.elementor-6 .elementor-element-a5ea1ab > .e-con-inner,
	.elementor-6 .elementor-element-6289adc > .e-con-inner,
	.elementor-6 .elementor-element-c872fb6 > .e-con-inner,
	.elementor-6 .elementor-element-3e6d788 > .e-con-inner,
	.elementor-6 .elementor-element-56afa75 > .e-con-inner,
	.elementor-6 .elementor-element-0069b2b > .e-con-inner,
	.elementor-6 .elementor-element-0464720 > .e-con-inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	.elementor-15 .elementor-element-62addf3::after,
	.elementor-15 .elementor-element-22f8ce3::after,
	.elementor-15 .elementor-element-fb26ce7::after,
	.elementor-15 .elementor-element-ae59ed6::after {
		left: 50%;
		transform: translateX(-50%);
	}

	.elementor-15 .elementor-element-62addf3,
	.elementor-15 .elementor-element-22f8ce3,
	.elementor-15 .elementor-element-fb26ce7,
	.elementor-15 .elementor-element-ae59ed6 {
		text-align: center;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-6 .elementor-element-ce52807 > .e-con-inner {
		flex-wrap: wrap;
	}

	.elementor-6 .elementor-element-e52a3bb {
		flex: 1 1 55%;
	}

	.elementor-6 .elementor-element-b5d62d8 {
		flex: 1 1 340px;
	}
}
