/* ==========================================================================
   Responsive Fix – Mobile & Tablet
   Snippet ID: 390  |  v1.7.0
   ========================================================================== */

/* --- Global: Prevent horizontal overflow --- */
html,
body {
	overflow-x: hidden !important;
	max-width: 100vw;
}

/* --- Tablet (768px – 1024px) --- */
@media (max-width: 1024px) and (min-width: 768px) {

	body .elementor .e-con.e-child {
		--width: 48% !important;
	}

	body .elementor .e-con.e-parent > .e-con-inner {
		padding-top: 50px;
		padding-bottom: 50px;
	}

	body .elementor h1,
	body .elementor .elementor-heading-title.elementor-size-default {
		font-size: clamp(28px, 5vw, 42px) !important;
	}
	body .elementor h2 {
		font-size: clamp(24px, 4vw, 36px) !important;
	}
	body .elementor h3 {
		font-size: clamp(20px, 3.5vw, 28px) !important;
	}

	/* Header: compact row on tablet */
	body .elementor .elementor-element.elementor-element-5edb916e {
		max-width: 100vw !important;
		width: 100vw !important;
		--content-width: 100% !important;
		--flex-wrap: nowrap !important;
		padding: 8px 20px !important;
		overflow: visible !important;
	}
	body .elementor .elementor-element.elementor-element-5edb916e > .e-con-inner {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		--flex-wrap: nowrap !important;
		flex-wrap: nowrap !important;
		overflow: visible !important;
	}
	body .elementor .elementor-element.elementor-element-33b60d7e {
		--width: 20% !important;
	}
	body .elementor .elementor-element.elementor-element-507b3936 {
		--width: 10% !important;
		overflow: visible !important;
	}
}

/* --- Mobile (up to 767px) --- */
@media (max-width: 767px) {

	/* All child containers stack full width */
	body .elementor .e-con.e-child {
		--width: 100% !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
	}

	/* Parent containers: tighter padding + wrap */
	body .elementor .e-con.e-parent {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	body .elementor .e-con.e-parent > .e-con-inner {
		padding-top: 40px;
		padding-bottom: 40px;
		--flex-wrap: wrap !important;
	}

	/* === Header overrides === */
	body .elementor .elementor-element.elementor-element-5edb916e {
		--content-width: 100% !important;
		--flex-wrap: nowrap !important;
		width: 100vw !important;
		max-width: 100vw !important;
		padding: 10px 16px !important;
		overflow: visible !important;
	}

	body .elementor .elementor-element.elementor-element-5edb916e > .e-con-inner {
		max-width: 100% !important;
		--flex-wrap: nowrap !important;
		flex-wrap: nowrap !important;
		justify-content: space-between !important;
		align-items: center !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		overflow: visible !important;
	}

	/* Logo: compact */
	body .elementor .elementor-element.elementor-element-33b60d7e {
		--width: auto !important;
		width: auto !important;
		max-width: 140px !important;
		flex: 0 0 auto !important;
	}

	/* Nav/hamburger: compact, allow dropdown to overflow */
	body .elementor .elementor-element.elementor-element-507b3936 {
		--width: auto !important;
		width: auto !important;
		max-width: 60px !important;
		flex: 0 0 auto !important;
		overflow: visible !important;
	}

	/* Desktop nav child: hide on mobile */
	body .elementor .elementor-element.elementor-element-46d595ab {
		display: none !important;
	}

	/* Hero section: clear fixed header */
	body .elementor .elementor-element.elementor-element-2abe3e5b {
		padding-top: 40px;
	}

	/* Footer columns: full width stacking */
	body .elementor .elementor-element.elementor-element-55e1c496,
	body .elementor .elementor-element.elementor-element-73d160fe,
	body .elementor .elementor-element.elementor-element-75ab02ee,
	body .elementor .elementor-element.elementor-element-467eb05c {
		--width: 100% !important;
	}

	/* Buttons: no overflow */
	body .elementor .elementor-button {
		max-width: 100%;
		white-space: normal;
	}

	/* Images: responsive */
	body .elementor img {
		max-width: 100%;
		height: auto;
	}
}

/* --- Small mobile (up to 480px) --- */
@media (max-width: 480px) {
	body .elementor .e-con.e-parent {
		padding-left: 12px !important;
		padding-right: 12px !important;
	}

	body .elementor .elementor-element.elementor-element-5edb916e {
		padding: 10px 12px !important;
	}
}
