/*
 * Elementor compatibility layer.
 * Elementor 4.x emits container defaults after theme styles; these rules keep
 * the approved iBody composition intact after CSS regeneration and re-import.
 */
body.ibody-theme .elementor .e-con[class*="ibody-"],
body.ibody-theme .elementor .e-con.experience-marquee {
	padding: 0 !important;
}

body.ibody-theme .elementor .e-con.ibody-section {
	padding: clamp(85px, 9vw, 130px) 6.8vw !important;
}

body.ibody-theme .elementor .e-con.ibody-home-hero {
	min-height: 100svh !important;
	height: auto !important;
	padding: 170px 6.8vw 105px !important;
	justify-content: center !important;
	background-position: center 42% !important;
}

body.ibody-theme .elementor .e-con.ibody-home-hero__copy {
	width: min(820px, 76vw) !important;
	gap: 23px !important;
}

body.ibody-theme .elementor .e-con.ibody-hero-actions {
	width: auto !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 16px !important;
}

body.ibody-theme .elementor .lime-button .elementor-button {
	min-height: 58px !important;
	padding: 0 24px !important;
	border-radius: 14px !important;
	background: var(--lime) !important;
	color: var(--ink) !important;
}

body.ibody-theme .elementor .ibody-outline-button .elementor-button {
	min-height: 58px !important;
	padding: 0 24px !important;
	border: 1px solid rgba(255,255,255,.5) !important;
	border-radius: 14px !important;
	background: transparent !important;
	color: #fff !important;
}

body.ibody-theme .elementor .e-con.ibody-home-hero__stats {
	width: auto !important;
	padding: 0 !important;
	position: absolute !important;
	left: 6.8vw !important;
	right: auto !important;
	bottom: 30px !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 45px !important;
}

body.ibody-theme .elementor .e-con.experience-marquee {
	padding: 0 !important;
}

body.ibody-theme .elementor .e-con.ibody-home-intro {
	padding: clamp(85px, 9vw, 130px) 6.8vw !important;
	gap: 6vw !important;
}

body.ibody-theme .elementor .e-con.ibody-home-intro__note {
	padding-top: 22px !important;
}

body.ibody-theme .elementor .e-con.ibody-benefits {
	padding: 0 4.3vw 80px !important;
	gap: 0 !important;
}

body.ibody-theme .elementor .e-con.ibody-benefit-card,
body.ibody-theme .elementor .e-con.ibody-experience-card {
	min-height: 240px !important;
	padding: 32px 28px !important;
}

body.ibody-theme .elementor .e-con.ibody-home-classes,
body.ibody-theme .elementor .e-con.ibody-method,
body.ibody-theme .elementor .e-con.ibody-home-clinical,
body.ibody-theme .elementor .e-con.ibody-home-schedule,
body.ibody-theme .elementor .e-con.ibody-home-journal,
body.ibody-theme .elementor .e-con.ibody-team-intro,
body.ibody-theme .elementor .e-con.ibody-team-showcase,
body.ibody-theme .elementor .e-con.ibody-events-section,
body.ibody-theme .elementor .e-con.ibody-journal-archive,
body.ibody-theme .elementor .e-con.ibody-schedule-page,
body.ibody-theme .elementor .e-con.ibody-contact-section {
	padding: clamp(85px, 9vw, 130px) 6.8vw !important;
}

body.ibody-theme .elementor .e-con.ibody-class-grid {
	padding: 0 !important;
	gap: 14px !important;
}

body.ibody-theme .elementor .e-con.ibody-class-card {
	min-height: 430px !important;
	padding: 28px !important;
}

body.ibody-theme .elementor .e-con.ibody-method {
	gap: 8vw !important;
}

body.ibody-theme .elementor .e-con.ibody-method__visual {
	min-height: 620px !important;
	border-radius: 36px !important;
}

body.ibody-theme .elementor .e-con.ibody-method__copy {
	gap: 24px !important;
}

body.ibody-theme .elementor .ibody-dark-button .elementor-button {
	min-height: 56px !important;
	padding: 0 24px !important;
	border-radius: 13px !important;
	background: var(--ink) !important;
	color: #fff !important;
}

body.ibody-theme .elementor .e-con.ibody-home-clinical {
	min-height: 650px !important;
	justify-content: center !important;
}

body.ibody-theme .elementor .e-con.ibody-home-schedule {
	gap: 7vw !important;
}

body.ibody-theme .elementor .e-con.ibody-schedule-link-card {
	min-height: 160px !important;
	padding: 34px !important;
	border-radius: 26px !important;
	gap: 8px 22px !important;
}

body.ibody-theme .elementor .e-con.ibody-home-cta,
body.ibody-theme .elementor .e-con.ibody-inner-cta {
	min-height: 610px !important;
	padding: 100px 6.8vw !important;
	justify-content: center !important;
	align-items: flex-start !important;
}

body.ibody-theme .elementor .e-con.ibody-inner-hero,
body.ibody-theme .elementor .e-con.ibody-team-hero {
	min-height: 760px !important;
	height: 88svh !important;
	padding: 180px 6.8vw 80px !important;
	justify-content: flex-end !important;
}

body.ibody-theme .elementor .e-con.ibody-team-hero {
	min-height: 820px !important;
	height: 94svh !important;
	background-position: center 16% !important;
}

body.ibody-theme .elementor .e-con.ibody-inner-hero__copy,
body.ibody-theme .elementor .e-con.ibody-team-hero__copy {
	width: min(950px, 82vw) !important;
	gap: 20px !important;
}

body.ibody-theme .elementor .e-con.ibody-contact-photo-hero {
	min-height: 660px !important;
	height: 76svh !important;
	padding: 0 !important;
}

body.ibody-theme .elementor .e-con.ibody-inner-content {
	padding: clamp(85px, 9vw, 130px) 6.8vw !important;
	gap: 8vw !important;
}

body.ibody-theme .elementor .e-con.ibody-inner-content__copy {
	gap: 18px !important;
}

body.ibody-theme .elementor .e-con.ibody-feature-grid {
	padding: clamp(85px, 9vw, 130px) 6.8vw !important;
	gap: 14px !important;
}

body.ibody-theme .elementor .e-con.ibody-feature-card {
	min-height: 210px !important;
	padding: 28px !important;
}

body.ibody-theme .elementor .e-con.ibody-experience-grid {
	padding: 90px 4.3vw 80px !important;
	gap: 0 !important;
}

body.ibody-theme .elementor .e-con.ibody-ecosystem {
	padding: clamp(85px, 9vw, 130px) 6.8vw !important;
	margin: 0 2vw 100px !important;
	border-radius: 38px !important;
}

body.ibody-theme .elementor .e-con.ibody-ecosystem-orbit {
	width: min(420px, 75vw) !important;
	padding: 0 !important;
	margin: 20px auto 35px !important;
}

body.ibody-theme .elementor .e-con.ibody-brands-grid {
	width: 100% !important;
	padding: 0 !important;
	gap: 0 !important;
}

body.ibody-theme .elementor .e-con.ibody-brand-card {
	min-height: 430px !important;
	padding: 42px 34px 25px !important;
}

body.ibody-theme .elementor .e-con.ibody-team-intro {
	gap: 8vw !important;
}

body.ibody-theme .elementor .e-con.ibody-team-grid {
	padding: 0 !important;
	gap: 16px !important;
}

body.ibody-theme .elementor .e-con.ibody-trainer-card {
	min-height: 590px !important;
	padding: 0 !important;
	border-radius: 28px !important;
}

body.ibody-theme .elementor .e-con.ibody-trainer-card:nth-child(-n+2) {
	min-height: 720px !important;
}

body.ibody-theme .elementor .e-con.ibody-contact-section {
	gap: 5vw !important;
}

@media (min-width: 1001px) {
	body.ibody-theme .site-header .ibody-menu > .menu-item--mega,
	body.ibody-theme .site-header .ibody-menu > li:nth-child(3) {
		position: static !important;
	}

	body.ibody-theme .site-header .ibody-menu > .menu-item--mega > .sub-menu,
	body.ibody-theme .site-header .ibody-menu > li:nth-child(3) > .sub-menu {
		top: calc(100% - 1px) !important;
		left: 50% !important;
		width: min(760px, 72vw) !important;
		min-width: 0 !important;
		transform: translate(-50%, 14px) !important;
		border-radius: 24px !important;
		background: rgba(13,17,14,.985) !important;
		box-shadow: 0 35px 90px rgba(0,0,0,.4) !important;
		backdrop-filter: blur(18px) !important;
	}

	body.ibody-theme .site-header .ibody-menu > .menu-item--mega:hover > .sub-menu,
	body.ibody-theme .site-header .ibody-menu > .menu-item--mega:focus-within > .sub-menu,
	body.ibody-theme .site-header .ibody-menu > .menu-item--mega.is-open > .sub-menu,
	body.ibody-theme .site-header .ibody-menu > li:nth-child(3):hover > .sub-menu,
	body.ibody-theme .site-header .ibody-menu > li:nth-child(3):focus-within > .sub-menu,
	body.ibody-theme .site-header .ibody-menu > li:nth-child(3).is-open > .sub-menu {
		opacity: 1 !important;
		visibility: visible !important;
		transform: translate(-50%, 0) !important;
	}

	body.ibody-theme .site-header .ibody-menu > .menu-item-has-children.is-open > .sub-menu {
		opacity: 1 !important;
		visibility: visible !important;
	}

	body.ibody-theme .site-header .ibody-menu .sub-menu > .menu-item-has-children > a::after {
		content: "↗";
		margin-left: auto;
		color: var(--lime);
		font-size: 15px;
	}
}

/* Elementor button parity. These structural selectors also repair pages that
 * were imported by an earlier theme version before widget classes were fixed. */
body.ibody-theme .elementor .elementor-widget-button .elementor-button {
	border: 0 !important;
	border-radius: 14px !important;
	font-family: Manrope, sans-serif !important;
	font-weight: 800 !important;
	letter-spacing: .25px !important;
	box-shadow: none !important;
}

body.ibody-theme .elementor .e-con.ibody-hero-actions > .elementor-widget-button:first-child .elementor-button {
	min-height: 58px !important;
	padding: 0 24px !important;
	background: var(--lime) !important;
	color: var(--ink) !important;
}

body.ibody-theme .elementor .e-con.ibody-hero-actions > .elementor-widget-button:nth-child(2) .elementor-button {
	min-height: 58px !important;
	padding: 0 24px !important;
	border: 1px solid rgba(255,255,255,.5) !important;
	background: rgba(7,10,8,.12) !important;
	color: #fff !important;
	backdrop-filter: blur(8px);
}

body.ibody-theme .elementor .e-con.ibody-home-classes > .elementor-widget-button .elementor-button {
	min-height: 56px !important;
	padding: 0 25px !important;
	border: 1px solid rgba(255,255,255,.35) !important;
	background: transparent !important;
	color: #fff !important;
}

body.ibody-theme .elementor .e-con.ibody-method__copy .elementor-button,
body.ibody-theme .elementor .e-con.ibody-home-clinical > .elementor-widget-button .elementor-button,
body.ibody-theme .elementor .e-con.ibody-home-cta > .elementor-widget-button .elementor-button,
body.ibody-theme .elementor .e-con.ibody-inner-cta > .elementor-widget-button .elementor-button {
	min-height: 56px !important;
	padding: 0 24px !important;
	background: var(--ink) !important;
	color: #fff !important;
}

/* Premium lesson/service cards from the approved preview. */
body.ibody-theme .elementor .e-con.ibody-class-card {
	isolation: isolate !important;
	justify-content: flex-end !important;
}

body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(2),
body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(5) {
	background: #efede6 !important;
	color: var(--ink) !important;
	border-color: rgba(17,19,18,.13) !important;
}

body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(3) {
	background: var(--lime) !important;
	color: var(--ink) !important;
	border-color: var(--lime) !important;
}

body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(4) {
	background: #233025 !important;
}

body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(2) .elementor-widget-text-editor,
body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(3) .elementor-widget-text-editor,
body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(5) .elementor-widget-text-editor {
	color: rgba(17,19,18,.62) !important;
}

body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(2) .ibody-class-card__icon,
body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(3) .ibody-class-card__icon,
body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(5) .ibody-class-card__icon {
	color: var(--ink) !important;
}

body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(2)::before,
body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(3)::before,
body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(5)::before {
	border-color: rgba(17,19,18,.12) !important;
	box-shadow: 0 0 0 50px rgba(17,19,18,.025), 0 0 0 100px rgba(17,19,18,.018) !important;
}

body.ibody-theme .elementor .ibody-class-card__icon {
	position: absolute !important;
	top: 88px !important;
	left: 50% !important;
	width: 150px !important;
	height: 150px !important;
	margin: 0 !important;
	color: var(--lime) !important;
	transform: translateX(-50%) !important;
	transition: transform .55s cubic-bezier(.2,.75,.25,1), opacity .35s !important;
}

body.ibody-theme .elementor .ibody-class-card__icon .elementor-widget-container,
body.ibody-theme .elementor .ibody-class-card__icon svg {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
}

body.ibody-theme .elementor .ibody-class-card__icon svg {
	fill: none !important;
	stroke: currentColor !important;
	stroke-width: 4 !important;
	stroke-linecap: round !important;
	stroke-linejoin: round !important;
}

body.ibody-theme .elementor .e-con.ibody-class-card:hover .ibody-class-card__icon {
	transform: translateX(-50%) rotate(-7deg) scale(1.08) !important;
}

body.ibody-theme .elementor .e-con.ibody-class-card > .elementor-widget-button {
	position: absolute !important;
	top: 25px !important;
	right: 25px !important;
	z-index: 3 !important;
	width: 58px !important;
	height: 58px !important;
	margin: 0 !important;
}

body.ibody-theme .elementor .e-con.ibody-class-card > .elementor-widget-button .elementor-button {
	display: grid !important;
	place-items: center !important;
	width: 58px !important;
	height: 58px !important;
	min-height: 58px !important;
	padding: 0 !important;
	border-radius: 50% !important;
	background: var(--lime) !important;
	color: var(--ink) !important;
	font-size: 0 !important;
	transition: transform .3s, background .3s !important;
}

body.ibody-theme .elementor .e-con.ibody-class-card > .elementor-widget-button .elementor-button::after {
	content: "↗";
	font-size: 27px;
	font-weight: 500;
}

body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(2) > .elementor-widget-button .elementor-button,
body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(3) > .elementor-widget-button .elementor-button,
body.ibody-theme .elementor .e-con.ibody-class-grid > .ibody-class-card:nth-child(5) > .elementor-widget-button .elementor-button {
	background: var(--ink) !important;
	color: var(--lime) !important;
}

body.ibody-theme .elementor .e-con.ibody-class-card:hover > .elementor-widget-button .elementor-button {
	transform: rotate(45deg) !important;
	background: #d0ff58 !important;
}

/* The 360° visual has visible, layered motion instead of a nearly static ring. */
body.ibody-theme .elementor .e-con.ibody-method__visual::before {
	inset: 9% !important;
	border-color: rgba(186,244,45,.34) !important;
	animation: ibody360Orbit 18s linear infinite !important;
}

body.ibody-theme .elementor .e-con.ibody-method__visual::after {
	inset: 25% !important;
	border-color: rgba(255,255,255,.19) !important;
	animation: ibody360Morph 7s ease-in-out infinite alternate !important;
}

body.ibody-theme .elementor .e-con.ibody-method__visual > .elementor-widget-heading {
	z-index: 2 !important;
	animation: ibody360Number 4.8s ease-in-out infinite !important;
}

body.ibody-theme .elementor .e-con.ibody-method__visual > .elementor-widget-heading::before {
	content: "";
	position: absolute;
	width: 250px;
	height: 250px;
	left: 50%;
	top: 50%;
	border: 1px solid rgba(186,244,45,.28);
	border-radius: 50%;
	transform: translate(-50%,-50%);
	box-shadow: 0 0 55px rgba(186,244,45,.08);
}

body.ibody-theme .elementor .e-con.ibody-method__visual > .elementor-widget-heading::after {
	content: "";
	position: absolute;
	width: 15px;
	height: 15px;
	left: calc(50% + 116px);
	top: calc(50% - 8px);
	border-radius: 50%;
	background: var(--lime);
	box-shadow: 0 0 25px rgba(186,244,45,.65);
	transform-origin: -116px 8px;
	animation: ibody360Dot 8s linear infinite;
}

@keyframes ibody360Orbit {
	to { transform: rotate(360deg); }
}

@keyframes ibody360Morph {
	0% { transform: rotate(-9deg) scale(.9); border-radius: 42% 58% 63% 37%/55% 39% 61% 45%; }
	100% { transform: rotate(11deg) scale(1.08); border-radius: 61% 39% 43% 57%/41% 62% 38% 59%; }
}

@keyframes ibody360Number {
	0%,100% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 0 rgba(186,244,45,0)); }
	50% { transform: translateY(-9px) scale(1.025); filter: drop-shadow(0 0 22px rgba(186,244,45,.2)); }
}

@keyframes ibody360Dot {
	to { transform: rotate(360deg); }
}

@media (max-width: 760px) {
	body.ibody-theme .elementor .e-con.ibody-section,
	body.ibody-theme .elementor .e-con.ibody-home-intro,
	body.ibody-theme .elementor .e-con.ibody-home-classes,
	body.ibody-theme .elementor .e-con.ibody-method,
	body.ibody-theme .elementor .e-con.ibody-home-clinical,
	body.ibody-theme .elementor .e-con.ibody-home-schedule,
	body.ibody-theme .elementor .e-con.ibody-home-journal,
	body.ibody-theme .elementor .e-con.ibody-team-intro,
	body.ibody-theme .elementor .e-con.ibody-team-showcase,
	body.ibody-theme .elementor .e-con.ibody-events-section,
	body.ibody-theme .elementor .e-con.ibody-journal-archive,
	body.ibody-theme .elementor .e-con.ibody-schedule-page,
	body.ibody-theme .elementor .e-con.ibody-contact-section,
	body.ibody-theme .elementor .e-con.ibody-inner-content,
	body.ibody-theme .elementor .e-con.ibody-feature-grid {
		padding: 85px 20px !important;
	}

	body.ibody-theme .elementor .e-con.ibody-home-hero {
		min-height: 940px !important;
		padding: 150px 20px 125px !important;
		background-position: 68% 56% !important;
	}

	body.ibody-theme .elementor .e-con.ibody-home-hero__copy,
	body.ibody-theme .elementor .e-con.ibody-inner-hero__copy,
	body.ibody-theme .elementor .e-con.ibody-team-hero__copy {
		width: 100% !important;
	}

	body.ibody-theme .elementor .e-con.ibody-hero-actions {
		width: 100% !important;
		flex-direction: column !important;
		align-items: stretch !important;
	}

	body.ibody-theme .elementor .e-con.ibody-home-hero__stats {
		left: 20px !important;
		right: 20px !important;
		bottom: 105px !important;
		gap: 22px !important;
	}

	body.ibody-theme .elementor .e-con.ibody-benefits,
	body.ibody-theme .elementor .e-con.ibody-experience-grid {
		padding: 70px 20px 80px !important;
		gap: 14px !important;
	}

	body.ibody-theme .elementor .e-con.ibody-class-grid {
		display: flex !important;
		width: calc(100% + 20px) !important;
		max-width: none !important;
		margin-right: -20px !important;
		padding: 0 20px 14px 0 !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory !important;
		scroll-padding-left: 0 !important;
		scrollbar-width: none !important;
	}

	body.ibody-theme .elementor .e-con.ibody-class-grid::-webkit-scrollbar {
		display: none !important;
	}

	body.ibody-theme .elementor .e-con.ibody-class-card {
		flex: 0 0 84vw !important;
		width: 84vw !important;
		min-height: 610px !important;
		scroll-snap-align: start !important;
	}

	body.ibody-theme .elementor .ibody-class-card__icon {
		top: 125px !important;
		width: 185px !important;
		height: 185px !important;
	}

	body.ibody-theme .elementor .e-con.ibody-method {
		gap: 45px !important;
	}

	body.ibody-theme .elementor .e-con.ibody-method__visual {
		min-height: 520px !important;
	}

	body.ibody-theme .elementor .e-con.ibody-method__visual .elementor-heading-title {
		font-size: 86px !important;
	}

	body.ibody-theme .elementor .e-con.ibody-method__visual > .elementor-widget-heading::before {
		width: 205px;
		height: 205px;
	}

	body.ibody-theme .elementor .e-con.ibody-method__visual > .elementor-widget-heading::after {
		left: calc(50% + 94px);
		transform-origin: -94px 8px;
	}

	body.ibody-theme .elementor .e-con.ibody-schedule-link-card {
		padding: 28px 24px !important;
	}

	body.ibody-theme .elementor .e-con.ibody-home-cta,
	body.ibody-theme .elementor .e-con.ibody-inner-cta {
		min-height: 560px !important;
		padding: 85px 20px 120px !important;
	}

	body.ibody-theme .elementor .e-con.ibody-inner-hero,
	body.ibody-theme .elementor .e-con.ibody-team-hero {
		min-height: 740px !important;
		height: 88svh !important;
		padding: 150px 20px 70px !important;
		background-position: center 20% !important;
	}

	body.ibody-theme .elementor .e-con.ibody-contact-photo-hero {
		min-height: 600px !important;
		height: 70svh !important;
	}

	body.ibody-theme .elementor .e-con.ibody-ecosystem {
		padding: 68px 20px 35px !important;
		margin: 0 0 70px !important;
		border-radius: 28px !important;
	}

	body.ibody-theme .elementor .e-con.ibody-brand-card {
		min-height: 390px !important;
		padding: 35px 22px !important;
	}

	body.ibody-theme .elementor .e-con.ibody-trainer-card,
	body.ibody-theme .elementor .e-con.ibody-trainer-card:nth-child(-n+2) {
		min-height: 590px !important;
	}
}
