/* TULAB home page – tablet & mobile responsive fixes */

/* ---- Shared: prevent horizontal drift ---- */
@media (max-width: 1024px) {
	html,
	body {
		overflow-x: hidden;
		width: 100%;
		max-width: 100%;
		margin: 0;
		padding: 0;
	}

	.elementor-location-header,
	.elementor-512,
	.elementor-452 {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.elementor-452 > .e-con {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box !important;
	}

	.elementor-452 img,
	.elementor-452 .e-image-base {
		max-width: 100% !important;
		height: auto !important;
	}

	.elementor-452 .elementor-shape {
		width: 100% !important;
		left: 0 !important;
		right: 0 !important;
	}

	/*
	 * Wave dividers are position:absolute and do not reserve layout space.
	 * Add bottom clearance so content sits above the wave, and size waves
	 * proportionally on smaller screens (waves remain visible).
	 */
	.elementor-452 > .e-con:has(> .elementor-shape-bottom),
	.elementor-452 .elementor-element.elementor-element-54768fda,
	.elementor-452 .elementor-element.elementor-element-1cc799fc,
	.elementor-452 .elementor-element.elementor-element-603cf9f8,
	.elementor-452 .elementor-element.elementor-element-64602dce,
	.elementor-452 .elementor-element.elementor-element-46591b8d {
		overflow: visible !important;
		--padding-bottom: 80px !important;
		padding-bottom: 80px !important;
	}

	.elementor-452 > .e-con > .elementor-shape-bottom svg {
		height: 56px !important;
	}

	.elementor-452 > .e-con:has(> .elementor-shape-bottom) > *:not(.elementor-shape) {
		position: relative;
		z-index: 1;
	}

	/* Benefit section wave is "above content" in Elementor – keep wave, lift content */
	.elementor-452 .elementor-element.elementor-element-64602dce {
		--padding-bottom: 100px !important;
		padding-bottom: 100px !important;
	}

	.elementor-452 .elementor-element.elementor-element-64602dce > .elementor-shape-bottom {
		z-index: 2;
		pointer-events: none;
	}

	/* Nested containers: ensure last items clear the parent wave zone */
	.elementor-452 .elementor-element.elementor-element-42ab0fd,
	.elementor-452 .elementor-element.elementor-element-750aab8a,
	.elementor-452 .elementor-element.elementor-element-9133c5e {
		padding-bottom: 20px !important;
	}

	.elementor-452 .elementor-element.elementor-element-42ab0fd > .e-con:last-child,
	.elementor-452 .elementor-element.elementor-element-750aab8a > .e-con:last-child,
	.elementor-452 .elementor-element.elementor-element-9133c5e > .elementor-widget:last-child {
		margin-bottom: 12px !important;
	}
}

/* ---- Tablet (≤1024px) ---- */
@media (max-width: 1024px) {
	/* Symmetric section padding (overrides Elementor CSS vars) */
	.elementor-452 > .e-con,
	.elementor-452 .elementor-element.elementor-element-54768fda,
	.elementor-452 .elementor-element.elementor-element-1cc799fc,
	.elementor-452 .elementor-element.elementor-element-603cf9f8,
	.elementor-452 .elementor-element.elementor-element-64602dce,
	.elementor-452 .elementor-element.elementor-element-46591b8d,
	.elementor-452 .elementor-element.elementor-element-2be0334e {
		--padding-left: 20px !important;
		--padding-right: 20px !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
	}

	/* Header */
	.elementor .e-8e1c2fe-c1fbd97 {
		width: 100% !important;
		flex-wrap: wrap !important;
		align-items: stretch !important;
		gap: 8px 12px !important;
		padding: 10px 20px !important;
		box-sizing: border-box !important;
	}

	.elementor-512 .elementor-element.elementor-element-41b96d9,
	.elementor-512 .elementor-element.elementor-element-98ed7b1,
	.elementor-512 .elementor-element.elementor-element-c7d8f54 {
		align-self: stretch !important;
		--align-self: stretch !important;
	}

	.elementor-512 .elementor-element.elementor-element-41b96d9 img {
		height: 50px !important;
		width: auto !important;
	}

	.elementor-512 .elementor-element.elementor-element-98ed7b1 {
		margin: 0 !important;
		flex: 1 1 auto !important;
	}

	.elementor .e-04f3180-e33d3ff {
		font-size: 12px !important;
		padding: 10px 18px !important;
		white-space: nowrap;
		flex-shrink: 0;
		align-self: center !important;
	}

	.elementor-512 .elementor-element.elementor-element-c7d8f54 {
		margin: 0 !important;
		flex: 0 0 100% !important;
		width: 100% !important;
		justify-content: center !important;
	}

	/* Hero section */
	.elementor-452 .elementor-element.elementor-element-54768fda {
		flex-direction: column !important;
	}

	.elementor-452 .elementor-element.elementor-element-b3dbfd8 {
		width: 100% !important;
		padding-top: 8% !important;
		padding-bottom: 4% !important;
	}

	.elementor-452 .elementor-element.elementor-element-43831e8d {
		margin: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		text-align: center;
	}

	.elementor-452 .elementor-element.elementor-element-43831e8d .elementor-heading-title {
		font-size: 42px !important;
		line-height: 1.1em !important;
	}

	.elementor-452 .elementor-element.elementor-element-6f99c144 {
		width: 100% !important;
		max-width: 100% !important;
		margin: 20px 0 0 !important;
		text-align: center;
	}

	.elementor-452 .elementor-element.elementor-element-6380de1e {
		margin: 24px 0 0 !important;
		align-self: center !important;
		text-align: center;
		width: 100% !important;
	}

	.elementor-452 .elementor-element.elementor-element-54768fda > .e-image-base {
		width: 100% !important;
		max-width: 420px !important;
		height: auto !important;
		margin: 0 auto !important;
		display: block !important;
		object-fit: cover;
	}

	/* "Cost of doing it all" section */
	.elementor-452 .elementor-element.elementor-element-1cc799fc {
		flex-direction: column !important;
	}

	.elementor-452 .elementor-element.elementor-element-34bf4847 {
		margin: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		text-align: center;
	}

	.elementor-452 .elementor-element.elementor-element-42ab0fd {
		min-height: auto !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/* Programs section */
	.elementor-452 .elementor-element.elementor-element-603cf9f8 {
		min-height: auto !important;
	}

	.elementor-452 .elementor-element.elementor-element-750aab8a {
		flex-wrap: wrap !important;
		gap: 30px 20px !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		--padding-left: 0 !important;
		--padding-right: 0 !important;
	}

	.elementor-452 .elementor-element.elementor-element-10f72d55,
	.elementor-452 .elementor-element.elementor-element-208e0f40,
	.elementor-452 .elementor-element.elementor-element-4951f18a,
	.elementor-452 .elementor-element.elementor-element-1856c2ea {
		width: calc(50% - 10px) !important;
		flex: 0 0 calc(50% - 10px) !important;
	}

	/* About coach section */
	.elementor-452 .elementor-element.elementor-element-64602dce {
		min-height: auto !important;
		flex-direction: column !important;
		gap: 30px !important;
	}

	.elementor-452 .elementor-element.elementor-element-13d7bffc .e-image-base,
	.elementor-452 .elementor-element.elementor-element-54abbd6b img {
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
	}

	.elementor-452 .elementor-element.elementor-element-f2744ef {
		width: 100% !important;
		max-width: 100% !important;
		margin-top: 24px !important;
	}

	/* Testimonials */
	.elementor-452 .elementor-element.elementor-element-46591b8d {
		min-height: auto !important;
	}

	.elementor-452 .elementor-element.elementor-element-9133c5e {
		padding-left: 0 !important;
		padding-right: 0 !important;
		--padding-left: 0 !important;
		--padding-right: 0 !important;
	}

	/* CTA section */
	.elementor-452 .elementor-element.elementor-element-2be0334e {
		flex-direction: column !important;
	}

	.elementor-452 .elementor-element.elementor-element-11048b3f {
		padding-left: 0 !important;
		padding-right: 0 !important;
		--padding-left: 0 !important;
		--padding-right: 0 !important;
	}

	.elementor-452 .elementor-element.elementor-element-35800d87 {
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* ---- Mobile (≤767px) ---- */
@media (max-width: 767px) {
	.elementor-452 > .e-con,
	.elementor-452 .elementor-element.elementor-element-54768fda,
	.elementor-452 .elementor-element.elementor-element-1cc799fc,
	.elementor-452 .elementor-element.elementor-element-603cf9f8,
	.elementor-452 .elementor-element.elementor-element-64602dce,
	.elementor-452 .elementor-element.elementor-element-46591b8d,
	.elementor-452 .elementor-element.elementor-element-2be0334e {
		--padding-left: 16px !important;
		--padding-right: 16px !important;
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	/* Header: grid layout for proper left/right balance */
	.elementor .e-8e1c2fe-c1fbd97 {
		display: grid !important;
		grid-template-columns: 1fr auto;
		align-items: center !important;
		padding: 10px 16px !important;
	}

	.elementor-512 .elementor-element.elementor-element-41b96d9 {
		grid-column: 1;
		grid-row: 1;
		justify-self: start;
		align-self: center !important;
	}

	.elementor-512 .elementor-element.elementor-element-98ed7b1 {
		grid-column: 2;
		grid-row: 1;
		flex: none !important;
		justify-self: end;
		align-self: center !important;
		width: auto !important;
	}

	.elementor .e-04f3180-e33d3ff {
		grid-column: 1 / -1;
		grid-row: 2;
		width: 100% !important;
		text-align: center !important;
		max-height: none !important;
		white-space: normal;
		box-sizing: border-box !important;
	}

	.elementor-512 .elementor-element.elementor-element-c7d8f54 {
		grid-column: 1 / -1;
		grid-row: 3;
		--grid-column-gap: 6px !important;
	}

	.elementor-512 .elementor-element.elementor-element-c7d8f54 .elementor-social-icon {
		--icon-padding: 0.35em !important;
		font-size: 14px !important;
	}

	.elementor-512 .elementor-element.elementor-element-41b96d9 img {
		height: 42px !important;
	}

	/* Page widgets: full width & centered */
	.elementor-452 .e-con .elementor-widget {
		width: 100% !important;
		max-width: 100% !important;
	}

	.elementor-452 .elementor-element.elementor-element-43831e8d .elementor-heading-title {
		font-size: 32px !important;
	}

	.elementor-452 .elementor-element.elementor-element-54768fda > .e-image-base {
		max-width: 100% !important;
	}

	.elementor-452 .elementor-element.elementor-element-34bf4847 .elementor-heading-title {
		font-size: 28px !important;
	}

	.elementor-452 .elementor-element.elementor-element-10f72d55,
	.elementor-452 .elementor-element.elementor-element-208e0f40,
	.elementor-452 .elementor-element.elementor-element-4951f18a,
	.elementor-452 .elementor-element.elementor-element-1856c2ea {
		width: 100% !important;
		flex: 0 0 100% !important;
	}

	.elementor-452 .elementor-element.elementor-element-6380de1e .elementor-button,
	.elementor-452 .elementor-element.elementor-element-e64aa9f .elementor-button {
		padding: 14px 32px !important;
	}

	.elementor-452 .elementor-element.elementor-element-3445ee9d .elementor-heading-title {
		font-size: 28px !important;
	}

	.elementor-452 .elementor-widget.elementor-mobile-align-center .elementor-button-wrapper,
	.elementor-452 .elementor-mobile-align-center .elementor-widget-container {
		display: flex !important;
		justify-content: center !important;
	}

	/* Wave clearance – extra room on small screens for taller wave peaks */
	.elementor-452 > .e-con:has(> .elementor-shape-bottom),
	.elementor-452 .elementor-element.elementor-element-54768fda,
	.elementor-452 .elementor-element.elementor-element-1cc799fc,
	.elementor-452 .elementor-element.elementor-element-603cf9f8,
	.elementor-452 .elementor-element.elementor-element-64602dce,
	.elementor-452 .elementor-element.elementor-element-46591b8d {
		--padding-bottom: 72px !important;
		padding-bottom: 72px !important;
	}

	.elementor-452 > .e-con > .elementor-shape-bottom svg {
		height: 40px !important;
	}

	/* Benefit section wave is set "above content" in Elementor – keep wave, lift content */
	.elementor-452 .elementor-element.elementor-element-64602dce {
		--padding-bottom: 88px !important;
		padding-bottom: 88px !important;
	}

	.elementor-452 .elementor-element.elementor-element-64602dce > .elementor-shape-bottom {
		z-index: 2;
		pointer-events: none;
	}

	/* Nested containers: ensure last items clear the parent wave zone */
	.elementor-452 .elementor-element.elementor-element-42ab0fd,
	.elementor-452 .elementor-element.elementor-element-750aab8a,
	.elementor-452 .elementor-element.elementor-element-9133c5e {
		padding-bottom: 16px !important;
	}

	.elementor-452 .elementor-element.elementor-element-42ab0fd > .e-con:last-child,
	.elementor-452 .elementor-element.elementor-element-750aab8a > .e-con:last-child,
	.elementor-452 .elementor-element.elementor-element-9133c5e > .elementor-widget:last-child {
		margin-bottom: 8px !important;
	}
}

/* ---- Mobile/tablet nav dropdown (≤1024px) ---- */
@media (max-width: 1024px) {
	.elementor-location-header {
		position: relative;
		z-index: 200;
		overflow: visible !important;
	}

	.elementor .e-8e1c2fe-c1fbd97 {
		position: relative;
		overflow: visible !important;
	}

	.elementor-512 .elementor-element.elementor-element-98ed7b1,
	.elementor-512 .elementor-element.elementor-element-98ed7b1 .elementor-widget-container {
		overflow: visible !important;
	}

	/* Reset desktop horizontal menu spacing that breaks the dropdown */
	.elementor-512 .elementor-element.elementor-element-98ed7b1 {
		--n-menu-title-space-between: 0px !important;
		--n-menu-heading-justify-content: stretch !important;
		--n-menu-title-justify-content-mobile: center !important;
		--n-menu-heading-wrap: wrap !important;
		--n-menu-direction: column !important;
		margin: 0 !important;
	}

	.elementor-512 .elementor-element.elementor-element-98ed7b1 .e-n-menu {
		position: static !important;
		width: auto !important;
	}

	.elementor-512 .elementor-element.elementor-element-98ed7b1 .e-n-menu-heading {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		width: 100% !important;
		gap: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.elementor-512 .elementor-element.elementor-element-98ed7b1 .e-n-menu-item {
		width: 100% !important;
	}

	.elementor-512 .elementor-element.elementor-element-98ed7b1 .e-n-menu-title {
		width: 100% !important;
		justify-content: center !important;
		padding: 14px 16px !important;
		background-color: #fff !important;
		border-bottom: 1px solid rgba(40, 50, 37, 0.1) !important;
		box-sizing: border-box !important;
		white-space: normal !important;
		overflow: visible !important;
	}

	.elementor-512 .elementor-element.elementor-element-98ed7b1 .e-n-menu-title-text {
		text-align: center;
		white-space: normal !important;
		overflow: visible !important;
	}

	/* ---- Open state: full-width panel below logo + close button ---- */
	.elementor .e-8e1c2fe-c1fbd97:has(.e-n-menu-toggle[aria-expanded="true"]) {
		display: grid !important;
		grid-template-columns: 1fr auto !important;
		grid-template-rows: auto auto !important;
		align-items: center !important;
	}

	/* Flatten menu widget so toggle + panel participate in header grid */
	.elementor .e-8e1c2fe-c1fbd97:has(.e-n-menu-toggle[aria-expanded="true"]) .elementor-element-98ed7b1,
	.elementor .e-8e1c2fe-c1fbd97:has(.e-n-menu-toggle[aria-expanded="true"]) .elementor-element-98ed7b1 .elementor-widget-container,
	.elementor .e-8e1c2fe-c1fbd97:has(.e-n-menu-toggle[aria-expanded="true"]) .elementor-element-98ed7b1 .e-n-menu {
		display: contents !important;
	}

	.elementor .e-8e1c2fe-c1fbd97:has(.e-n-menu-toggle[aria-expanded="true"]) .elementor-element-41b96d9 {
		grid-column: 1 !important;
		grid-row: 1 !important;
		width: auto !important;
		max-width: none !important;
		justify-self: start !important;
	}

	.elementor .e-8e1c2fe-c1fbd97:has(.e-n-menu-toggle[aria-expanded="true"]) .e-n-menu-toggle {
		grid-column: 2 !important;
		grid-row: 1 !important;
		justify-self: end !important;
	}

	.elementor .e-8e1c2fe-c1fbd97:has(.e-n-menu-toggle[aria-expanded="true"]) .e-n-menu-wrapper {
		grid-column: 1 / -1 !important;
		grid-row: 2 !important;
		position: static !important;
		inset: auto !important;
		transform: none !important;
		width: 100% !important;
		min-width: 100% !important;
		max-width: 100% !important;
		background-color: #F7F1ED !important;
		padding: 0 !important;
		margin: 8px 0 0 !important;
		box-shadow: 0 12px 24px rgba(40, 50, 37, 0.12);
		border-top: 1px solid rgba(40, 50, 37, 0.1);
		overflow: visible !important;
		z-index: 201;
	}

	/* Hide CTA + social while nav is open */
	.elementor .e-8e1c2fe-c1fbd97:has(.e-n-menu-toggle[aria-expanded="true"]) .e-04f3180-e33d3ff,
	.elementor .e-8e1c2fe-c1fbd97:has(.e-n-menu-toggle[aria-expanded="true"]) .elementor-element-c7d8f54 {
		display: none !important;
	}
}
