/* ASW mobile polish — ≤767px only */

@media (max-width: 767px) {
	html,
	body {
		overflow-x: clip;
	}

	/* —— Programs: 2-up instead of one tall column —— */
	.as-inner-programs-grid {
		--e-con-grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 12px !important;
	}

	.as-inner-programs-grid > .e-con {
		min-width: 0;
		padding-bottom: 16px !important;
	}

	.as-inner-programs-grid > .e-con > .e-con-inner {
		--padding-left: 10px !important;
		--padding-right: 10px !important;
		padding-left: 10px !important;
		padding-right: 10px !important;
	}

	.as-inner-programs-grid .elementor-heading-title,
	.as-inner-programs-grid .elementor-widget-text-editor,
	.as-inner-programs-grid .elementor-widget-text-editor p,
	.as-inner-programs-grid .elementor-widget-container {
		font-size: 12px !important;
		letter-spacing: 0.02em !important;
		line-height: 1.3 !important;
		white-space: normal !important;
		overflow: visible !important;
		text-overflow: clip !important;
		overflow-wrap: anywhere;
		word-break: break-word;
		max-width: 100%;
	}

	.as-inner-programs-grid .elementor-widget-text-editor,
	.as-inner-programs-grid .elementor-widget-text-editor p {
		font-size: 11px !important;
		line-height: 1.35 !important;
	}

	.as-inner-programs-grid .elementor-widget-image img {
		width: 100%;
		height: auto;
		max-height: 160px;
		object-fit: cover;
	}

	/* —— Support Pathways: Elementor pads .e-con-inner (outer often 0) —— */
	.as-med-independent,
	.as-med-independent > .e-con-inner,
	.as-inner-medical,
	.as-inner-medical > .e-con-inner,
	.as-med-dist,
	.as-med-dist > .e-con-inner,
	.as-med-cta,
	.as-med-cta > .e-con-inner,
	.as-med-faq,
	.as-med-faq > .e-con-inner {
		--padding-left: 20px !important;
		--padding-right: 20px !important;
		padding-left: max(20px, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(20px, env(safe-area-inset-right, 0px)) !important;
		box-sizing: border-box;
	}

	.as-pathway-card,
	.as-pathway-card > .e-con-inner {
		--padding-left: 20px !important;
		--padding-right: 20px !important;
		padding-left: max(20px, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(20px, env(safe-area-inset-right, 0px)) !important;
		box-sizing: border-box;
	}

	.as-med-faq .elementor-tab-title,
	.as-med-faq .elementor-accordion-title {
		padding-right: 28px;
		overflow-wrap: anywhere;
	}

	/* —— Hero / eyebrow clip on narrow phones —— */
	.as-hero > .e-con-inner,
	.as-hero .e-con > .e-con-inner {
		--padding-left: 16px !important;
		--padding-right: 16px !important;
		padding-left: max(16px, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(16px, env(safe-area-inset-right, 0px)) !important;
		box-sizing: border-box;
	}

	.as-hero .elementor-heading-title,
	.elementor-location-single .elementor-heading-title {
		overflow-wrap: anywhere;
		max-width: 100%;
	}

	.as-hero .elementor-widget-heading:first-child .elementor-heading-title {
		letter-spacing: 0.08em !important;
	}

	/* —— Consultation / FluentBooking —— */
	body.page-id-523 .e-con-boxed > .e-con-inner,
	body.elementor-page-523 .e-con-boxed > .e-con-inner {
		--padding-left: 16px !important;
		--padding-right: 16px !important;
		padding-left: max(16px, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(16px, env(safe-area-inset-right, 0px)) !important;
		box-sizing: border-box;
	}

	/* 01 / 02 / 03 — continuous vertical flow (no white cards) handled below for all viewports */

	/* Booking slot shell — reclaim Elementor side padding on phones */
	body.page-id-523 .as-consult-book,
	body.page-id-523 .as-consult-book > .e-con-inner,
	body.page-id-523 .as-consult-booking,
	body.page-id-523 .as-consult-booking > .e-con-inner {
		--padding-left: 12px !important;
		--padding-right: 12px !important;
		padding-left: max(12px, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(12px, env(safe-area-inset-right, 0px)) !important;
		box-sizing: border-box;
		width: 100% !important;
		max-width: 100% !important;
	}

	body.page-id-523 .as-booking-slot,
	body.page-id-523 .as-booking-slot > .e-con-inner {
		--padding-left: 8px !important;
		--padding-right: 8px !important;
		padding-left: 8px !important;
		padding-right: 8px !important;
		padding-top: 12px !important;
		padding-bottom: 16px !important;
		box-sizing: border-box;
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		/* continuous flow — no nested white card */
		background: transparent !important;
		background-color: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}

	body.page-id-523 .as-booking-slot .fcal_cal_wrap,
	body.page-id-523 .as-booking-slot .fcal_wrap,
	body.page-id-523 .as-booking-slot .fcal_calendar_inner,
	body.page-id-523 .as-booking-slot .fcal_side {
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
	}

	body.page-id-523 .as-booking-slot .elementor-widget,
	body.page-id-523 .as-booking-slot .fluentform_wrapper_3,
	body.page-id-523 .as-booking-slot .fcal_booking_wrap,
	body.page-id-523 .as-booking-slot .fcal_cal_wrap,
	body.page-id-523 .as-booking-slot .fcal_wrap,
	body.page-id-523 .as-booking-slot .fcal_holder {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box;
	}

	/* DISCOVERY heading — scale + wrap on narrow phones */
	body.page-id-523 .as-booking-slot .elementor-element-8909382,
	body.page-id-523 .as-booking-slot .elementor-element-0c00ff3 {
		width: 100% !important;
		max-width: 100% !important;
	}

	body.page-id-523 .as-booking-slot .elementor-element-8909382 .elementor-heading-title,
	body.page-id-523 .as-booking-slot .elementor-element-0c00ff3 .elementor-heading-title {
		width: 100% !important;
		max-width: 100% !important;
		white-space: normal !important;
		overflow-wrap: break-word !important;
		word-break: normal !important;
		hyphens: none !important;
		text-align: center !important;
		box-sizing: border-box;
	}

	body.page-id-523 .as-booking-slot .elementor-element-0c00ff3 .elementor-heading-title {
		font-size: clamp(1.15rem, 5vw, 1.45rem) !important;
		line-height: 1.3 !important;
		padding-inline: 0.25rem;
	}

	/* FluentBooking calendar — stack + compact (was side-by-side + oversized) */
	body.page-id-523 .fcal_calendar_inner,
	body.page-id-523 .fcal_side,
	body.page-id-523 .fcal_date_wrapper,
	body.page-id-523 .fcal_calendar_slot_wrap {
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		gap: 0.75rem !important;
		box-sizing: border-box;
	}

	body.page-id-523 .fcal_day_picker_wrap,
	body.page-id-523 .fcal_day_picker,
	body.page-id-523 .calendar-container {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		flex: 1 1 auto !important;
		box-sizing: border-box;
	}

	body.page-id-523 .fcal_slot_picker {
		position: static !important;
		left: auto !important;
		right: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box;
	}

	body.page-id-523 .fcal_author {
		display: flex !important;
		align-items: center !important;
		gap: 0.6rem !important;
		margin-bottom: 0.35rem !important;
	}

	body.page-id-523 .fcal_author_avatar,
	body.page-id-523 .fcal_author_avatar img {
		width: 36px !important;
		height: 36px !important;
		max-width: 36px !important;
	}

	body.page-id-523 .fcal_side {
		padding: 0 !important;
	}

	body.page-id-523 .fcal_slot_wrapper {
		padding: 0 !important;
		margin-bottom: 0.5rem !important;
	}

	body.page-id-523 .fcal_slot_heading {
		font-size: 1.05rem !important;
		line-height: 1.3 !important;
		margin: 0 0 0.35rem !important;
	}

	body.page-id-523 .fcal_slot_description {
		font-size: 0.8rem !important;
		line-height: 1.35 !important;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		overflow: hidden;
		margin: 0.35rem 0 0.5rem !important;
	}

	body.page-id-523 .fcal_date_wrapper,
	body.page-id-523 .fcal_day_picker_wrap,
	body.page-id-523 .calendar-container {
		padding: 0 !important;
	}

	/* Timezone → Name: kill idle panel that still reserved ~130px */
	body.page-id-523 .fcal_timezone_select {
		margin-top: 12px !important;
		margin-bottom: 0 !important;
	}

	body.page-id-523 .fcal_timezone_wrapper,
	body.page-id-523 .fcal_timezone_select + *,
	body.page-id-523 .fcal_date_wrapper {
		margin-bottom: 0 !important;
		padding-bottom: 0 !important;
	}

	body.page-id-523 .fcal_slot_picker:not(:has(.fcal_spot)),
	body.page-id-523 .fcal_date_event_details:not(:has(.fcal_date_event_details_header span:not(:empty))) {
		display: none !important;
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
		border: 0 !important;
	}

	body.page-id-523 .fluentform_wrapper_3,
	body.page-id-523 .fluentform {
		margin-top: 0.5rem !important;
	}

	body.page-id-523 .calendar-month-year h2,
	body.page-id-523 .fcal_day_picker h2 {
		font-size: 1.05rem !important;
		line-height: 1.25 !important;
	}

	body.page-id-523 .fcal_day_picker .day-name,
	body.page-id-523 .fcal_day_picker .day {
		font-size: 11px !important;
		min-width: 0 !important;
	}

	body.page-id-523 .fcal_slot_wrapper,
	body.page-id-523 .fcal_author,
	body.page-id-523 .fcal_slot_info {
		width: 100% !important;
		max-width: 100% !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		box-sizing: border-box;
	}

	/* Discovery FluentForm — readable mobile layout */
	body.page-id-523 .fluentform_wrapper_3,
	body.page-id-523 .fluentform {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	body.page-id-523 .fluentform .ff-el-group,
	body.page-id-523 .fluentform .ff-t-container,
	body.page-id-523 .fluentform .ff-el-input--content,
	body.page-id-523 .fluentform .ff-el-form-control,
	body.page-id-523 .fluentform input,
	body.page-id-523 .fluentform select,
	body.page-id-523 .fluentform textarea {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	body.page-id-523 .fluentform .ff-el-input--label,
	body.page-id-523 .fluentform .ff-el-input--label label {
		display: block !important;
		width: 100% !important;
		text-align: left !important;
		margin-bottom: 0.35rem;
	}

	body.page-id-523 .fluentform .ff-btn-submit,
	body.page-id-523 .fluentform button[type='submit'] {
		width: 100% !important;
		max-width: 100% !important;
		justify-content: center !important;
	}

	.fcal_calendar,
	.fcal_booking_wrap,
	.fcal_calendar_wrapper,
	.fcal_month_calendar,
	.fcal_booking_form_container,
	.fluent-booking-calendar,
	.ff-el-form-control,
	.ff-el-input--content input,
	.ff-el-input--content select,
	.ff-el-input--content textarea {
		max-width: 100%;
		box-sizing: border-box;
	}

	.fcal_calendar_wrapper,
	.fcal_month_calendar,
	.fcal_booking_wrap {
		overflow-x: auto;
		width: 100%;
	}

	/* —— My Account / Woo forms —— */
	.woocommerce-account .woocommerce {
		padding-left: max(16px, env(safe-area-inset-left, 0px));
		padding-right: max(16px, env(safe-area-inset-right, 0px));
		box-sizing: border-box;
		width: 100% !important;
		max-width: 100%;
	}

	/* ponytail: zero L/R only for guest login/register columns — not signed-in
	   .woocommerce-MyAccount-content (ACC-01; account.css owns that inset). */
	.woocommerce-account .u-columns,
	.woocommerce-account .u-column1,
	.woocommerce-account .u-column2,
	.woocommerce-account .col-1,
	.woocommerce-account .col-2,
	.woocommerce-account .woocommerce-MyAccount-navigation {
		padding-left: 0 !important;
		padding-right: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box;
		width: 100% !important;
		float: none !important;
		max-width: 100%;
	}

	.woocommerce-account .u-columns.col2-set {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr);
		gap: 1.25rem;
	}

	.woocommerce-account .woocommerce-form-login,
	.woocommerce-account .woocommerce-form-register {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	.woocommerce-account .woocommerce form .form-row,
	.woocommerce-account .woocommerce form .form-row input.input-text,
	.woocommerce-account .woocommerce form .form-row textarea,
	.woocommerce-account .woocommerce form .form-row .woocommerce-Input {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	.woocommerce-account h1,
	.woocommerce-account h2,
	.woocommerce-account .elementor-heading-title {
		overflow-wrap: anywhere;
	}

	/* Account hero / Elementor shell gutters */
	.woocommerce-account .page-content .e-con-boxed > .e-con-inner,
	.woocommerce-account .elementor-location-single .e-con-boxed > .e-con-inner {
		--padding-left: 16px !important;
		--padding-right: 16px !important;
		padding-left: max(16px, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(16px, env(safe-area-inset-right, 0px)) !important;
		box-sizing: border-box;
	}

	/* —— Shared body text —— */
	.elementor-location-single .elementor-widget-text-editor,
	.elementor-location-single .elementor-widget-text-editor p {
		overflow-wrap: anywhere;
		max-width: 100%;
	}

	/* Research / About / Club section shells when present */
	.as-inner-research,
	.as-inner-research > .e-con-inner,
	.as-inner-about,
	.as-inner-about > .e-con-inner,
	.as-inner-club,
	.as-inner-club > .e-con-inner {
		--padding-left: 16px !important;
		--padding-right: 16px !important;
		padding-left: max(16px, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(16px, env(safe-area-inset-right, 0px)) !important;
		box-sizing: border-box;
	}

	/* Replenish trust / strip / tiers — reinforce side gutters */
	.asw-r-trust,
	.asw-r-strip,
	.asw-r-tiers,
	.asw-r-how,
	.asw-r-faq,
	.asw-r-legal {
		padding-left: max(20px, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(20px, env(safe-area-inset-right, 0px)) !important;
		box-sizing: border-box;
	}

}

@media (max-width: 360px) {
	.as-inner-programs-grid .elementor-heading-title {
		font-size: 12px !important;
	}
}

/* Consultation Discovery form — beat FluentForm table-cell rules */
.fluentform .ff-el-tc,
.fluentform .ff-el-form-check.ff-el-tc,
body.page-id-523 .fluentform .ff-el-tc {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	border: 0 !important;
	overflow: hidden;
}

.fluentform .ff-el-tc label.ff_tc_label,
body.page-id-523 .fluentform .ff_tc_label {
	display: flex !important;
	align-items: flex-start !important;
	gap: 0.75rem !important;
	width: 100% !important;
	max-width: 100% !important;
	text-align: left !important;
	line-height: 1.45;
}

/* Must match FluentForm specificity: label.ff_tc_label > span|div */
.fluentform .ff-el-tc label.ff_tc_label > span,
.fluentform .ff-el-tc label.ff_tc_label > span.ff_tc_checkbox,
body.page-id-523 .fluentform .ff_tc_checkbox {
	display: block !important;
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: none !important;
	padding-top: 0.15rem !important;
}

.fluentform .ff-el-tc label.ff_tc_label > div,
.fluentform .ff-el-tc label.ff_tc_label > div.ff_t_c,
body.page-id-523 .fluentform .ff_t_c {
	display: block !important;
	flex: 1 1 auto !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	text-align: left !important;
	overflow-wrap: anywhere !important;
	white-space: normal !important;
}

.fluentform .ff-el-tc input.ff-el-form-check-input,
body.page-id-523 .fluentform .ff_tc_checkbox input.ff-el-form-check-input {
	-webkit-appearance: checkbox !important;
	appearance: checkbox !important;
	width: 1.15rem !important;
	height: 1.15rem !important;
	min-width: 1.15rem !important;
	max-width: 1.15rem !important;
	margin: 0 !important;
	padding: 0 !important;
	position: static !important;
	opacity: 1 !important;
	accent-color: #1a2b4a;
}

/* Idle FluentBooking slot panel stays in-flow (visibility:hidden) — collapse it */
body.page-id-523 .fcal_slot_picker:not(:has(.fcal_spot)) {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	border: 0 !important;
}

body.page-id-523 .fcal_timezone_select {
	margin-top: 12px !important;
	margin-bottom: 0 !important;
}

/* Booking card + calendar containment */
body.page-id-523 .as-booking-slot,
body.page-id-523 .as-consult-book .e-con,
body.page-id-523 .as-consult-booking .e-con,
body.page-id-523 .fcal_booking_wrap,
body.page-id-523 .fcal_cal_wrap,
body.page-id-523 .fluentform_wrapper_3 {
	overflow-x: clip;
	max-width: 100%;
}

body.page-id-523 .fcal_month_calendar,
body.page-id-523 .fcal_calendar_wrapper,
body.page-id-523 .fcal_booking_wrap,
body.page-id-523 .fcal_cal_wrap,
body.page-id-523 .fcal_date_wrapper {
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box;
}

body.page-id-523 .fcal_svg,
body.page-id-523 .fcal_timezone_wrapper,
body.page-id-523 .fcal_time_format {
	max-width: 100%;
}

/* —— Conversation flow: one vertical timeline, no cards —— */
.as-consult-intro .elementor-element-7e2d5a3 {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 0 !important;
	position: relative;
	width: 100% !important;
	max-width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 0.25rem 0 0.5rem !important;
	background: transparent !important;
}

.as-consult-intro .elementor-element-7e2d5a3 > .e-con,
.as-consult-intro .elementor-element-c21cac2,
.as-consult-intro .elementor-element-77b2e41,
.as-consult-intro .elementor-element-496bfa0 {
	position: relative !important;
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	gap: 1rem !important;
	width: min(100%, 26rem) !important;
	max-width: 26rem !important;
	padding: 0 0 1.75rem 0 !important;
	margin-left: auto !important;
	margin-right: auto !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	min-height: 0 !important;
	box-sizing: border-box;
}

.as-consult-intro .elementor-element-7e2d5a3 > .e-con:last-child {
	padding-bottom: 0 !important;
}

/* connector line through the step numbers */
.as-consult-intro .elementor-element-7e2d5a3 > .e-con:not(:last-child)::before {
	content: '';
	position: absolute;
	left: 1.2rem;
	top: 2.55rem;
	bottom: 0.15rem;
	width: 2px;
	background: linear-gradient(180deg, #d99614 0%, rgba(217, 150, 20, 0.25) 100%);
	pointer-events: none;
	z-index: 0;
}

.as-consult-intro .elementor-element-7e2d5a3 > .e-con > .elementor-widget-heading:first-child {
	position: relative;
	z-index: 1;
	width: auto !important;
	max-width: none !important;
	flex: 0 0 auto !important;
	margin: 0 !important;
	background: transparent !important;
}

.as-consult-intro .elementor-element-7e2d5a3 > .e-con > .elementor-widget-heading:first-child .elementor-heading-title {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	margin: 0 !important;
	border-radius: 999px;
	border: 2px solid #d99614;
	background: #f8f7f4 !important;
	color: #061c4a !important;
	font-size: 0.85rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em !important;
	line-height: 1 !important;
}

.as-consult-intro .elementor-element-7e2d5a3 > .e-con > .elementor-widget-heading:last-child {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding-top: 0.35rem !important;
	background: transparent !important;
}

.as-consult-intro .elementor-element-7e2d5a3 > .e-con > .elementor-widget-heading:last-child .elementor-heading-title {
	margin: 0 !important;
	font-size: clamp(1.05rem, 3.6vw, 1.35rem) !important;
	line-height: 1.35 !important;
	text-align: left !important;
	color: #061c4a !important;
	overflow-wrap: anywhere;
	background: transparent !important;
}

/* Send Request — brand gold (not FluentForm blue) */
body.page-id-523 .fluentform .ff-btn-submit,
body.page-id-523 .fluentform button[type='submit'],
.fluentform_wrapper_3 .ff-btn-submit,
.fluentform_wrapper_3 button[type='submit'] {
	background: #d99614 !important;
	background-color: #d99614 !important;
	border-color: #d99614 !important;
	color: #061c4a !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em !important;
	box-shadow: none !important;
}

body.page-id-523 .fluentform .ff-btn-submit:hover,
body.page-id-523 .fluentform button[type='submit']:hover,
.fluentform_wrapper_3 .ff-btn-submit:hover,
.fluentform_wrapper_3 button[type='submit']:hover {
	background: #c7870f !important;
	background-color: #c7870f !important;
	border-color: #c7870f !important;
	color: #061c4a !important;
}
