/*
 * ALS Product Engine — mobile responsive stability layer.
 *
 * This file intentionally loads after every storefront module. Keep all
 * rules inside mobile breakpoints so the approved desktop storefront remains
 * byte-for-byte compatible in presentation and purchase behaviour.
 */

@media (max-width: 767px),
	(max-width: 932px) and (orientation: landscape) and (max-height: 520px) and (pointer: coarse) {
	:root {
		--alspe-mobile-edge-left: max(8px, env(safe-area-inset-left));
		--alspe-mobile-edge-right: max(8px, env(safe-area-inset-right));
		--alspe-mobile-bottom: max(10px, env(safe-area-inset-bottom));
	}

	html,
	body {
		width: 100%;
		min-width: 0;
		max-width: 100%;
		overflow-x: hidden;
		overflow-x: clip;
		overscroll-behavior-x: none;
		-webkit-text-size-adjust: 100%;
		text-size-adjust: 100%;
	}

	html.alspe-preview-menu-open,
	html.alspe-search-modal-open,
	html.alspe-auth-opened {
		overscroll-behavior: none;
	}

	.alspe-preview-header *,
	.alspe-preview-sticky-header *,
	.alspe-home *,
	.alsae-page *,
	.alspe-page *,
	.alspe-commerce *,
	.alspe-info-page *,
	.alspe-site-footer *,
	.alspe-home-search-modal *,
	.alspe-preview-mobile-drawer *,
	.alspe-fly-cart-widget *,
	.alspe-auth-layer *,
	.alspe-identity-toast * {
		box-sizing: border-box;
	}

	.alspe-preview-header :where(a, button, input, form, div, nav, section, article, span),
	.alspe-home :where(a, button, input, form, div, nav, section, article, span),
	.alsae-page :where(a, button, input, form, div, nav, section, article, span),
	.alspe-page :where(a, button, input, form, div, nav, section, article, span),
	.alspe-commerce :where(a, button, input, form, div, nav, section, article, span),
	.alspe-info-page :where(a, button, input, form, div, nav, section, article, span) {
		min-width: 0;
	}

	.alspe-preview-header :where(a, button, input):focus-visible,
	.alspe-home :where(a, button, input, select, textarea):focus-visible,
	.alsae-page :where(a, button, input, select, textarea):focus-visible,
	.alspe-page :where(a, button, input, select, textarea):focus-visible,
	.alspe-commerce :where(a, button, input, select, textarea):focus-visible,
	.alspe-info-page :where(a, button, input, select, textarea):focus-visible,
	.alspe-auth-layer :where(a, button, input):focus-visible {
		outline: 3px solid rgba(22, 119, 199, .38) !important;
		outline-offset: 2px !important;
	}

	.alspe-preview-header img,
	.alspe-home img,
	.alsae-page img,
	.alspe-page img,
	.alspe-commerce img,
	.alspe-info-page img {
		max-width: 100%;
	}

	/* ------------------------------------------------------------------
	 * Global header, search and navigation drawer
	 * ------------------------------------------------------------------ */
	.alspe-preview-header,
	.alspe-preview-header-main,
	.alspe-preview-header-container,
	.alspe-preview-header-main-grid {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.alspe-preview-header-main-grid {
		display: grid !important;
		grid-template-columns: 44px minmax(0, 1fr) 92px !important;
		grid-template-areas: "menu logo actions" "search search search" !important;
		gap: 7px !important;
		padding: 8px max(9px, env(safe-area-inset-right)) 9px max(9px, env(safe-area-inset-left)) !important;
	}

	.alspe-preview-header-top,
	.alspe-preview-header-nav {
		display: none !important;
	}

	.alspe-preview-header-main > .alspe-preview-header-container,
	.alspe-preview-sticky-header > .alspe-preview-header-container {
		padding-inline: 0 !important;
	}

	.alspe-preview-menu-button {
		grid-area: menu !important;
		display: grid !important;
		place-items: center !important;
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
		margin: 0 !important;
	}

	.alspe-preview-logo {
		grid-area: logo !important;
		justify-self: center !important;
		min-width: 0 !important;
		max-width: 100% !important;
	}

	.alspe-preview-logo img {
		display: block !important;
		width: auto !important;
		height: 44px !important;
		max-width: min(148px, 100%) !important;
		object-fit: contain !important;
	}

	.alspe-preview-header-actions {
		grid-area: actions !important;
		display: grid !important;
		grid-template-columns: repeat(2, 44px) !important;
		align-items: center !important;
		justify-content: end !important;
		gap: 4px !important;
		width: 92px !important;
		min-width: 92px !important;
		margin: 0 !important;
	}

	.alspe-preview-header-actions .alspe-preview-court-action {
		display: none !important;
	}

	.alspe-preview-header-actions > a {
		display: grid !important;
		place-items: center !important;
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	.alspe-preview-header-actions > a > span {
		display: none !important;
	}

	body:not(.alspe-home-preview) .alspe-preview-header-main-grid > .alspe-preview-header-search {
		grid-area: search !important;
		display: grid !important;
		position: relative !important;
		grid-template-columns: 48px minmax(0, 1fr) !important;
		grid-template-areas: "submit input" "results results" !important;
		align-items: center !important;
		gap: 0 !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 4px !important;
		direction: ltr !important;
	}

	body:not(.alspe-home-preview) .alspe-preview-header-main-grid > .alspe-preview-header-search .alspe-home-search-icon {
		position: absolute !important;
		z-index: 3 !important;
		top: 50% !important;
		right: 11px !important;
		left: auto !important;
		display: grid !important;
		width: 34px !important;
		height: 34px !important;
		transform: translateY(-50%) !important;
		pointer-events: none !important;
	}

	body:not(.alspe-home-preview) .alspe-preview-header-main-grid > .alspe-preview-header-search input[type="search"] {
		grid-area: input !important;
		height: 46px !important;
		padding: 0 43px 0 38px !important;
		border-radius: 11px !important;
	}

	body:not(.alspe-home-preview) .alspe-preview-header-main-grid > .alspe-preview-header-search > button[type="submit"] {
		grid-area: submit !important;
		display: grid !important;
		place-items: center !important;
		width: 46px !important;
		height: 46px !important;
		min-width: 46px !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	body:not(.alspe-home-preview) .alspe-preview-header-main-grid > .alspe-preview-header-search .alspe-home-search-clear {
		position: absolute !important;
		z-index: 4 !important;
		top: 50% !important;
		right: auto !important;
		left: 56px !important;
		transform: translateY(-50%) !important;
	}

	body:not(.alspe-home-preview) .alspe-preview-header-main-grid > .alspe-preview-header-search .alspe-home-search-results {
		grid-area: results !important;
		top: calc(100% + 7px) !important;
		right: 0 !important;
		left: 0 !important;
		direction: rtl !important;
	}

	body.alspe-home-preview .alspe-preview-header-main-grid > .alspe-preview-header-search {
		display: none !important;
	}

	body.alspe-home-preview .alspe-preview-header-main-grid {
		grid-template-areas: "menu logo actions" !important;
	}

	.alspe-preview-sticky-grid {
		position: relative !important;
		display: grid !important;
		grid-template-columns: 44px 44px minmax(0, 1fr) 44px !important;
		grid-template-areas: "cart search logo menu" !important;
		align-items: center !important;
		gap: 5px !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		min-height: 58px !important;
		padding: 6px var(--alspe-mobile-edge-right) 6px var(--alspe-mobile-edge-left) !important;
		direction: ltr !important;
	}

	.alspe-preview-sticky-header.is-visible:not([hidden]) {
		position: fixed !important;
		top: 0 !important;
		right: 0 !important;
		left: 0 !important;
		display: block !important;
		z-index: 99990 !important;
	}

	body.admin-bar .alspe-preview-sticky-header.is-visible:not([hidden]) {
		top: 46px !important;
	}

	.alspe-preview-sticky-category-menu {
		display: none !important;
	}

	.alspe-preview-sticky-menu-button,
	.alspe-preview-sticky-search-toggle {
		display: grid !important;
		place-items: center !important;
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
		padding: 0 !important;
	}

	.alspe-preview-sticky-menu-button {
		grid-area: menu !important;
	}

	.alspe-preview-sticky-search-toggle {
		grid-area: search !important;
	}

	.alspe-preview-sticky-header .alspe-preview-logo {
		grid-area: logo !important;
		justify-self: center !important;
	}

	.alspe-preview-sticky-header .alspe-preview-logo img {
		width: auto !important;
		height: 40px !important;
		max-width: 122px !important;
	}

	.alspe-preview-sticky-header .alspe-preview-header-actions {
		grid-area: cart !important;
		display: block !important;
		width: 44px !important;
		min-width: 44px !important;
	}

	.alspe-preview-sticky-header .alspe-preview-account-link {
		display: none !important;
	}

	.alspe-preview-sticky-header .alspe-preview-header-actions > a.alspe-preview-cart {
		display: grid !important;
		place-items: center !important;
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
	}

	.alspe-preview-sticky-header .alspe-preview-sticky-search {
		position: absolute !important;
		z-index: 30 !important;
		top: calc(100% + 6px) !important;
		right: var(--alspe-mobile-edge-right) !important;
		left: var(--alspe-mobile-edge-left) !important;
		display: none !important;
		grid-template-columns: 48px minmax(0, 1fr) !important;
		align-items: center !important;
		width: auto !important;
		min-width: 0 !important;
		max-width: none !important;
		padding: 5px !important;
		direction: ltr !important;
	}

	.alspe-preview-sticky-header .alspe-preview-sticky-search.is-open {
		display: grid !important;
	}

	.alspe-preview-sticky-header .alspe-preview-sticky-search input[type="search"] {
		grid-column: 2 !important;
		grid-row: 1 !important;
		height: 46px !important;
		padding: 0 42px 0 36px !important;
	}

	.alspe-preview-sticky-header .alspe-preview-sticky-search > button[type="submit"] {
		grid-column: 1 !important;
		grid-row: 1 !important;
		width: 46px !important;
		height: 46px !important;
		min-width: 46px !important;
		padding: 0 !important;
	}

	.alspe-preview-sticky-header .alspe-preview-sticky-search .alspe-home-search-clear {
		top: 50% !important;
		right: auto !important;
		left: 57px !important;
		transform: translateY(-50%) !important;
	}

	body:not(.alspe-home-preview) .alspe-preview-sticky-header .alspe-preview-sticky-search:not(.is-open),
	body.alspe-home-preview .alspe-preview-sticky-header .alspe-preview-sticky-search {
		display: none !important;
	}

	body:not(.alspe-home-preview) .alspe-preview-sticky-header .alspe-preview-sticky-search.is-open {
		display: grid !important;
		width: auto !important;
		max-width: none !important;
	}

	.alspe-preview-header-search input[type="search"],
	.alspe-preview-sticky-search input[type="search"],
	.alspe-home-mobile-hero-search input[type="search"],
	.alspe-home-search-modal-form input[type="search"] {
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		font-size: 16px !important;
		direction: rtl !important;
		text-align: right !important;
		unicode-bidi: plaintext !important;
		-webkit-appearance: none !important;
		appearance: none !important;
	}

	.alspe-home-search-results {
		width: 100% !important;
		max-width: 100% !important;
		max-height: min(56dvh, 430px) !important;
		overflow-y: auto !important;
		overscroll-behavior: contain !important;
	}

	.alspe-preview-drawer-backdrop {
		position: fixed !important;
		inset: 0 !important;
		width: 100% !important;
		height: 100dvh !important;
	}

	.alspe-preview-drawer-backdrop[hidden],
	.alspe-home-search-modal[hidden] {
		display: none !important;
	}

	.alspe-preview-mobile-drawer[hidden] {
		display: none !important;
	}

	body.alspe-home-preview .alspe-preview-mobile-drawer,
	body:not(.alspe-home-preview) .alspe-preview-mobile-drawer {
		position: fixed !important;
		top: 0 !important;
		right: 0 !important;
		bottom: auto !important;
		left: auto !important;
		display: block;
		width: min(94vw, 400px) !important;
		max-width: 400px !important;
		height: 100vh !important;
		height: 100dvh !important;
		max-height: 100dvh !important;
		padding-right: max(9px, env(safe-area-inset-right)) !important;
		padding-bottom: calc(14px + env(safe-area-inset-bottom)) !important;
		padding-left: max(9px, env(safe-area-inset-left)) !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		overscroll-behavior: contain !important;
		-webkit-overflow-scrolling: touch !important;
		scroll-padding-block: 64px calc(24px + env(safe-area-inset-bottom)) !important;
		scrollbar-gutter: stable !important;
	}

	body.admin-bar.alspe-home-preview .alspe-preview-mobile-drawer,
	body.admin-bar:not(.alspe-home-preview) .alspe-preview-mobile-drawer {
		top: 46px !important;
		height: calc(100dvh - 46px) !important;
		max-height: calc(100dvh - 46px) !important;
	}

	.alspe-preview-mobile-drawer-head button,
	.alspe-mobile-tennis-stage-head > button {
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
	}

	.alspe-preview-mobile-quick-links {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 7px !important;
		min-width: 0 !important;
	}

	.alspe-preview-mobile-quick-links > a,
	.alspe-preview-mobile-sport > summary,
	.alspe-preview-mobile-category > summary,
	.alspe-preview-mobile-category-link,
	.alspe-preview-mobile-accessory-list > a,
	.alspe-preview-mobile-brand-list > a,
	.alspe-mobile-tennis-category-grid > a,
	.alspe-mobile-tennis-category-grid > button,
	.alspe-mobile-tennis-brand-grid > button,
	.alspe-mobile-tennis-family-grid > a {
		min-height: 44px !important;
		touch-action: manipulation;
	}

	.alspe-preview-mobile-quick-links > a {
		min-width: 0 !important;
		padding: 8px !important;
	}

	.alspe-preview-mobile-quick-links > a > span:last-child,
	.alspe-mobile-tennis-category-grid strong,
	.alspe-mobile-tennis-brand-grid strong,
	.alspe-mobile-tennis-family-grid strong {
		min-width: 0 !important;
		overflow-wrap: anywhere;
	}

	.alspe-mobile-tennis-stage,
	.alspe-preview-mobile-sport-panel {
		min-width: 0 !important;
		max-width: 100% !important;
	}

	.alspe-mobile-tennis-category-grid strong,
	.alspe-mobile-tennis-brand-grid > button strong,
	.alspe-mobile-tennis-family-grid > a strong {
		font-size: 12px !important;
		line-height: 1.45 !important;
		white-space: normal !important;
		overflow: visible !important;
		text-overflow: clip !important;
	}

	.alspe-home-search-modal {
		width: 100% !important;
		height: 100vh !important;
		height: 100dvh !important;
		padding: calc(62px + env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left)) !important;
		overflow: hidden !important;
	}

	body.admin-bar .alspe-home-search-modal {
		padding-top: 106px !important;
	}

	.alspe-home-search-modal-card {
		width: 100% !important;
		max-width: 100% !important;
		max-height: calc(100dvh - 80px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
		padding: 14px !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		overscroll-behavior: contain !important;
	}

	body.admin-bar .alspe-home-search-modal-card {
		max-height: calc(100dvh - 124px - env(safe-area-inset-bottom)) !important;
	}

	.alspe-home-search-modal-card > header > button {
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
	}

	/* ------------------------------------------------------------------
	 * Homepage rails, cards and mobile typography
	 * ------------------------------------------------------------------ */
	body.alspe-home-preview .alspe-home {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		overflow-x: clip !important;
	}

	body.alspe-home-preview .alspe-home-shell {
		width: calc(100% - 16px) !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin-inline: auto !important;
	}

	body.alspe-home-preview .alspe-home-mobile-search {
		padding-inline: 0 !important;
	}

	body.alspe-home-preview .alspe-home-mobile-hero-search {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body.alspe-home-preview .alspe-home-hero,
	body.alspe-home-preview .alspe-home-hero-slider,
	body.alspe-home-preview .alspe-home-hero-track,
	body.alspe-home-preview .alspe-home-hero-slide {
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body.alspe-home-preview .alspe-home-section-head,
	body.alspe-home-preview .alspe-home-section-head > div,
	body.alspe-home-preview .alspe-home-products-head,
	body.alspe-home-preview .alspe-home-journal-head,
	body.alspe-home-preview .alspe-home-journal-head > div {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body.alspe-home-preview .alspe-home-section-head h2,
	body.alspe-home-preview .alspe-home-journal-head h2 {
		max-width: 100% !important;
		font-size: clamp(20px, 6vw, 23px) !important;
		line-height: 1.45 !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	body.alspe-home-preview .alspe-home-status,
	body.alspe-home-preview .alspe-home-announcement--hero,
	body.alspe-home-preview .alspe-home-announcement--hero a,
	body.alspe-home-preview .alspe-home-announcement--hero > div {
		max-width: 100% !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	body.alspe-home-preview .alspe-home-tabs {
		display: flex !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		padding: 2px !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		overscroll-behavior-inline: contain !important;
		scrollbar-width: none !important;
	}

	body.alspe-home-preview .alspe-home-tabs::-webkit-scrollbar {
		display: none !important;
	}

	body.alspe-home-preview .alspe-home-tabs button {
		flex: 0 0 auto !important;
		min-height: 44px !important;
		font-size: 11.5px !important;
		touch-action: manipulation;
	}

	body.alspe-home-preview .alspe-home-category-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 8px !important;
	}

	body.alspe-home-preview .alspe-home-category {
		min-width: 0 !important;
		min-height: 112px !important;
		height: auto !important;
		padding: 10px 7px !important;
	}

	body.alspe-home-preview .alspe-home-category-image {
		width: 58px !important;
		height: 58px !important;
		min-width: 58px !important;
		min-height: 58px !important;
	}

	body.alspe-home-preview .alspe-home-category-image img,
	body.alspe-home-preview .alspe-home-category img {
		width: 50px !important;
		height: 50px !important;
		object-fit: contain !important;
	}

	body.alspe-home-preview .alspe-home-category strong {
		font-size: 12px !important;
		line-height: 1.5 !important;
		white-space: normal !important;
	}

	body.alspe-home-preview .alspe-home-need-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 8px !important;
		width: 100% !important;
		min-width: 0 !important;
	}

	body.alspe-home-preview .alspe-home-need-grid .alspe-home-need {
		display: grid !important;
		grid-template-columns: 40px minmax(0, 1fr) !important;
		grid-template-rows: auto !important;
		align-items: center !important;
		gap: 8px !important;
		min-width: 0 !important;
		min-height: 108px !important;
		height: auto !important;
		padding: 10px !important;
	}

	body.alspe-home-preview .alspe-home-need-icon {
		position: static !important;
		display: grid !important;
		place-items: center !important;
		grid-column: 1 !important;
		grid-row: 1 !important;
		width: 40px !important;
		height: 40px !important;
		min-width: 40px !important;
	}

	body.alspe-home-preview .alspe-home-need-icon img {
		display: block !important;
		width: 36px !important;
		height: 36px !important;
		object-fit: contain !important;
	}

	body.alspe-home-preview .alspe-home-need-copy {
		position: static !important;
		display: flex !important;
		grid-column: 2 !important;
		grid-row: 1 !important;
		min-width: 0 !important;
		flex-direction: column !important;
		gap: 3px !important;
	}

	body.alspe-home-preview .alspe-home-need-copy strong {
		font-size: 11.5px !important;
		line-height: 1.45 !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	body.alspe-home-preview .alspe-home-need-copy small {
		font-size: 9.5px !important;
		line-height: 1.55 !important;
		white-space: normal !important;
	}

	body.alspe-home-preview .alspe-home-product-rail {
		gap: 8px !important;
		max-width: 100% !important;
		padding: 3px 0 8px !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		overscroll-behavior-inline: contain !important;
		scroll-snap-type: x proximity !important;
		-webkit-overflow-scrolling: touch !important;
		scrollbar-width: none !important;
	}

	body.alspe-home-preview .alspe-home-product-rail::-webkit-scrollbar,
	body.alspe-home-preview .alspe-home-brand-grid::-webkit-scrollbar,
	body.alspe-home-preview .alspe-home-post-grid::-webkit-scrollbar {
		display: none !important;
	}

	body.alspe-home-preview .alspe-home-product-card {
		flex: 0 0 calc((100% - 8px) / 2) !important;
		width: calc((100% - 8px) / 2) !important;
		min-width: 0 !important;
		height: auto !important;
		min-height: 252px !important;
		max-height: none !important;
		border-radius: 13px !important;
		scroll-snap-align: start !important;
	}

	body.alspe-home-preview .alspe-home-product-image {
		height: 132px !important;
		min-height: 132px !important;
		max-height: 132px !important;
		margin: 6px !important;
		padding: 5px !important;
	}

	body.alspe-home-preview .alspe-home-product-card h3 {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		height: auto !important;
		min-height: 44px !important;
		max-height: none !important;
		padding: 0 7px !important;
		line-height: 1.55 !important;
		overflow: hidden !important;
	}

	body.alspe-home-preview .alspe-home-product-card h3 a {
		display: -webkit-box !important;
		font-size: 12px !important;
		line-height: 1.55 !important;
		white-space: normal !important;
		-webkit-box-orient: vertical !important;
		-webkit-line-clamp: 2 !important;
		overflow: hidden !important;
	}

	body.alspe-home-preview .alspe-home-product-foot {
		min-height: 64px !important;
		padding: 6px 7px !important;
	}

	body.alspe-home-preview .alspe-home-product-foot,
	body.alspe-home-preview .alspe-home-price,
	body.alspe-home-preview .alspe-home-product-unavailable {
		max-width: 100% !important;
		overflow-wrap: anywhere;
	}

	body.alspe-home-preview .alspe-home-price,
	body.alspe-home-preview .alspe-home-price ins {
		font-size: 12.5px !important;
		line-height: 1.45 !important;
	}

	body.alspe-home-preview .alspe-home-price del {
		font-size: 8px !important;
	}

	body.alspe-home-preview .alspe-home-product-context,
	body.alspe-home-preview .alspe-home-product-unavailable {
		font-size: 9.5px !important;
		line-height: 1.45 !important;
	}

	body.alspe-home-preview .alspe-home-brand-grid {
		max-width: 100% !important;
		grid-auto-columns: 42.5% !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		overscroll-behavior-inline: contain !important;
		-webkit-overflow-scrolling: touch !important;
	}

	body.alspe-home-preview .alspe-home-post-viewport,
	body.alspe-home-preview .alspe-home-post-grid {
		max-width: 100% !important;
	}

	body.alspe-home-preview .alspe-home-post-grid {
		overflow-x: auto !important;
		overflow-y: hidden !important;
		overscroll-behavior-inline: contain !important;
		-webkit-overflow-scrolling: touch !important;
	}

	/* ------------------------------------------------------------------
	 * Product archive and filters
	 * ------------------------------------------------------------------ */
	body.alspe-archive-layout .alsae-page {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		overflow-x: clip !important;
	}

	body.alspe-archive-layout .alsae-shell {
		width: calc(100% - 14px) !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin-inline: auto !important;
	}

	body.alspe-archive-layout .alsae-hero,
	body.alspe-archive-layout .alsae-finder,
	body.alspe-archive-layout .alsae-catalog {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body.alspe-archive-layout .alsae-hero-search {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body.alspe-archive-layout .alsae-hero-search input,
	body.alspe-archive-layout .alsae-toolbar .woocommerce-ordering select,
	body.alspe-archive-layout .alsae-sidebar input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
	body.alspe-archive-layout .alsae-sidebar select {
		font-size: 16px !important;
	}

	body.alspe-archive-layout .alsae-hero-search button,
	body.alspe-archive-layout .alsae-filter-toggle,
	body.alspe-archive-layout .alsae-sidebar-head button,
	body.alspe-archive-layout .alsae-sidebar-done,
	body.alspe-archive-layout .alsae-sidebar .button {
		min-height: 44px !important;
		touch-action: manipulation;
	}

	body.alspe-archive-layout .alsae-live-search-results {
		width: 100% !important;
		max-width: 100% !important;
		max-height: min(56dvh, 430px) !important;
		overflow-y: auto !important;
		overscroll-behavior: contain !important;
	}

	body.alspe-archive-layout .alsae-sidebar {
		top: 0 !important;
		right: 0 !important;
		bottom: auto !important;
		left: auto !important;
		width: min(92vw, 380px) !important;
		max-width: 380px !important;
		height: 100vh !important;
		height: 100dvh !important;
		max-height: 100dvh !important;
		padding-bottom: calc(76px + env(safe-area-inset-bottom)) !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		overscroll-behavior: contain !important;
		-webkit-overflow-scrolling: touch !important;
	}

	body.admin-bar.alspe-archive-layout .alsae-sidebar {
		top: 46px !important;
		height: calc(100dvh - 46px) !important;
		max-height: calc(100dvh - 46px) !important;
	}

	body.alspe-archive-layout .alsae-sidebar-done {
		position: sticky !important;
		bottom: max(8px, env(safe-area-inset-bottom)) !important;
		z-index: 8 !important;
		width: 100% !important;
	}

	body.alspe-archive-layout .alsae-products ul.products {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 9px !important;
	}

	body.alspe-archive-layout .alsae-products ul.products li.product {
		min-width: 0 !important;
		padding: 9px !important;
	}

	body.alspe-archive-layout .alsae-products ul.products li.product > a,
	body.alspe-archive-layout .alsae-products ul.products li.product .woocommerce-LoopProduct-link {
		min-width: 0 !important;
		max-width: 100% !important;
	}

	body.alspe-archive-layout .alsae-products ul.products li.product img {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 1 / 1 !important;
		object-fit: contain !important;
	}

	body.alspe-archive-layout .alsae-products ul.products li.product .woocommerce-loop-product__title,
	body.alspe-archive-layout .alsae-products ul.products li.product .product-title {
		min-height: 52px !important;
		max-height: 62px !important;
		font-size: 12px !important;
		line-height: 1.55 !important;
		overflow-wrap: anywhere;
	}

	body.alspe-archive-layout .alsae-products ul.products li.product .price,
	body.alspe-archive-layout .alsae-products ul.products li.product .price .amount {
		font-size: 12.5px !important;
		line-height: 1.55 !important;
	}

	body.alspe-archive-layout .alsae-products ul.products li.product .button,
	body.alspe-archive-layout .alsae-products ul.products li.product .alsae-product-cta {
		min-height: 44px !important;
		font-size: 11.5px !important;
		line-height: 1.45 !important;
		touch-action: manipulation;
	}

	/* ------------------------------------------------------------------
	 * Product detail, gallery, sticky purchase and cart companion
	 * ------------------------------------------------------------------ */
	body.alspe-product-layout .alspe-page,
	body.alspe-product-layout .alspe-shell,
	body.alspe-product-layout .alspe-hero,
	body.alspe-product-layout .alspe-gallery-card,
	body.alspe-product-layout .alspe-summary,
	body.alspe-product-layout .alspe-section {
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body.alspe-product-layout .alspe-shell {
		width: calc(100% - 14px) !important;
		margin-inline: auto !important;
	}

	body.alspe-product-layout .alspe-main-image {
		min-height: 0 !important;
		height: auto !important;
		aspect-ratio: 1 / 1 !important;
		padding: 8px !important;
	}

	body.alspe-product-layout .alspe-main-image > img {
		width: 100% !important;
		height: 100% !important;
		max-height: min(88vw, 410px) !important;
		object-fit: contain !important;
	}

	body.alspe-product-layout .alspe-size-guide-trigger {
		display: grid !important;
		place-items: center !important;
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
		padding: 0 !important;
	}

	body.alspe-product-layout .alspe-trust-strip {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 5px !important;
		min-width: 0 !important;
	}

	body.alspe-product-layout .alspe-trust-strip span {
		min-width: 0 !important;
		min-height: 48px !important;
		padding: 6px 4px !important;
		font-size: 10.5px !important;
		line-height: 1.45 !important;
		white-space: normal !important;
		text-align: center !important;
		overflow-wrap: anywhere;
	}

	body.alspe-product-layout .alspe-anchor-nav,
	body.alspe-product-layout .alspe-anchor-nav--compact {
		width: 100% !important;
		max-width: 100% !important;
		justify-content: flex-start !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		overscroll-behavior-inline: contain !important;
		-webkit-overflow-scrolling: touch !important;
		scrollbar-width: none !important;
	}

	body.alspe-product-layout .alspe-anchor-nav::-webkit-scrollbar {
		display: none !important;
	}

	body.alspe-product-layout .alspe-anchor-nav a,
	body.alspe-product-layout .alspe-grip-option,
	body.alspe-product-layout .alspe-contact-purchase-button,
	body.alspe-product-layout .alspe-cart-form button,
	body.alspe-product-layout .alspe-review-toggle,
	body.alspe-product-layout .alspe-technical-toggle,
	body.alspe-product-layout .alspe-open-review {
		min-height: 44px !important;
		touch-action: manipulation;
	}

	body.alspe-product-layout .alspe-native-reviews textarea,
	body.alspe-product-layout .alspe-native-reviews input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
	body.alspe-product-layout .alspe-cart-form select,
	body.alspe-product-layout .alspe-cart-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
		font-size: 16px !important;
	}

	body.alspe-product-layout .alspe-lightbox {
		width: 100% !important;
		height: 100vh !important;
		height: 100dvh !important;
		padding: calc(58px + env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left)) !important;
	}

	body.alspe-product-layout .alspe-lightbox-stage,
	body.alspe-product-layout .alspe-lightbox img {
		max-width: 100% !important;
		max-height: calc(100dvh - 90px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
	}

	body.alspe-product-layout .alspe-lightbox-close {
		top: calc(8px + env(safe-area-inset-top)) !important;
		right: max(8px, env(safe-area-inset-right)) !important;
		width: 44px !important;
		height: 44px !important;
	}

	body.alspe-product-layout .alspe-mobile-buybar {
		right: max(8px, env(safe-area-inset-right)) !important;
		bottom: calc(8px + env(safe-area-inset-bottom)) !important;
		left: max(8px, env(safe-area-inset-left)) !important;
		width: auto !important;
		max-width: none !important;
	}

	body.alspe-product-layout .alspe-mobile-buybar [data-alspe-sticky-buy] {
		min-height: 50px !important;
		font-size: 12px !important;
	}

	body.alspe-product-layout .alspe-fly-cart-widget {
		box-sizing: border-box !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		gap: 7px !important;
		padding-left: max(7px, env(safe-area-inset-left)) !important;
		padding-right: max(7px, env(safe-area-inset-right)) !important;
		padding-bottom: max(7px, env(safe-area-inset-bottom)) !important;
	}

	body.alspe-product-layout.alspe-mobile-cart-companion-active {
		padding-bottom: calc(100px + env(safe-area-inset-bottom)) !important;
	}

	body.alspe-product-layout .alspe-fly-cart-widget:not(.is-compact) {
		grid-template-columns: 68px minmax(0, 1fr) !important;
	}

	body.alspe-product-layout .alspe-fly-cart-widget:not(.is-compact) .alspe-fly-cart-dock {
		width: 68px !important;
		min-width: 68px !important;
		height: 78px !important;
	}

	body.alspe-product-layout .alspe-fly-cart-recs {
		min-width: 0 !important;
		max-width: 100% !important;
	}

	body.alspe-product-layout .alspe-fly-cart-widget:not(.is-compact) .alspe-fly-cart-recs {
		height: 78px !important;
		min-height: 78px !important;
		padding: 7px !important;
	}

	body.alspe-product-layout .alspe-fly-cart-widget:not(.is-compact) .alspe-fly-cart-recs__list {
		gap: 7px !important;
		height: 100% !important;
		padding: 0 1px !important;
	}

	body.alspe-product-layout .alspe-fly-cart-widget:not(.is-compact) .alspe-fly-suggestion {
		flex: 0 0 132px !important;
		width: 132px !important;
		height: 58px !important;
		min-height: 58px !important;
		grid-template-columns: 36px minmax(0, 1fr) !important;
		gap: 6px !important;
		padding: 5px !important;
	}

	body.alspe-product-layout .alspe-fly-cart-widget:not(.is-compact) .alspe-fly-suggestion > img {
		width: 36px !important;
		height: 46px !important;
		object-fit: contain !important;
	}

	body.alspe-product-layout .alspe-fly-suggestion__copy strong {
		font-size: 9.5px !important;
		line-height: 1.45 !important;
	}

	body.alspe-product-layout .alspe-fly-suggestion__copy b {
		font-size: 9px !important;
		line-height: 1.4 !important;
	}

	body.alspe-product-layout .alspe-cart-form table.variations,
	body.alspe-product-layout .alspe-cart-form table.variations tbody,
	body.alspe-product-layout .alspe-cart-form table.variations tr,
	body.alspe-product-layout .alspe-cart-form table.variations th,
	body.alspe-product-layout .alspe-cart-form table.variations td {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body.alspe-product-layout .alspe-cart-form table.variations tr {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 6px !important;
	}

	body.alspe-product-layout .alspe-cart-form .variable-items-wrapper,
	body.alspe-product-layout .alspe-cart-form .thwvsf-wrapper-ul,
	body.alspe-product-layout .alspe-cart-form .cfvsw-swatches-container,
	body.alspe-product-layout .alspe-cart-form .vi-wpvs-variation-wrap,
	body.alspe-product-layout .alspe-cart-form .alspe-native-swatch-list {
		max-width: 100% !important;
		flex-wrap: wrap !important;
	}

	/* ------------------------------------------------------------------
	 * Cart, checkout, payment, order result and account identity
	 * ------------------------------------------------------------------ */
	.alspe-commerce-page-shell {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin-inline: 0 !important;
		overflow-x: clip !important;
	}

	.alspe-commerce,
	.alspe-checkout-shell,
	.alspe-order-pay,
	.alspe-order-receipt,
	.alspe-order-result-shell {
		width: calc(100% - 12px) !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin-inline: auto !important;
	}

	body.alspe-order-pay-experience .alspe-commerce-page-shell > .woocommerce-message,
	body.alspe-order-pay-experience .alspe-commerce-page-shell > .woocommerce-error,
	body.alspe-order-pay-experience .alspe-commerce-page-shell > .woocommerce-info {
		width: calc(100% - 12px) !important;
		max-width: 100% !important;
		margin-inline: auto !important;
	}

	.alspe-commerce input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
	.alspe-commerce select,
	.alspe-commerce textarea,
	.alspe-commerce .select2-search__field,
	.alspe-auth-layer input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
	.alspe-account-identity-page input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
		font-size: 16px !important;
	}

	.alspe-commerce button,
	.alspe-commerce .button,
	.alspe-commerce a.button,
	.alspe-stage-next,
	.alspe-secondary-stage-btn,
	.alspe-auth-layer button,
	.alspe-account-identity-btn {
		min-height: 44px !important;
		touch-action: manipulation;
	}

	.alspe-stage-next,
	.alspe-secondary-stage-btn {
		min-height: 50px !important;
		font-size: 13px !important;
		font-weight: 900 !important;
		line-height: 1.45 !important;
	}

	.alspe-stage-footer {
		position: sticky !important;
		z-index: 20 !important;
		bottom: 0 !important;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
		background: rgba(251, 253, 255, .98) !important;
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
	}

	.alspe-stage-buttons {
		width: 100% !important;
		min-width: 0 !important;
		gap: 8px !important;
	}

	.alspe-stage-buttons > * {
		min-width: 0 !important;
	}

	.alspe-checkout-progress {
		max-width: 100% !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		overscroll-behavior-inline: contain !important;
		-webkit-overflow-scrolling: touch !important;
		scrollbar-width: none !important;
	}

	.alspe-checkout-progress::-webkit-scrollbar {
		display: none !important;
	}

	.alspe-commerce .woocommerce-notices-wrapper,
	.alspe-commerce-page-shell > .woocommerce-message,
	.alspe-commerce-page-shell > .woocommerce-error,
	.alspe-commerce-page-shell > .woocommerce-info,
	body.woocommerce-account .woocommerce-notices-wrapper,
	body.woocommerce-account > .woocommerce-message,
	body.woocommerce-account > .woocommerce-error,
	body.woocommerce-account > .woocommerce-info {
		box-sizing: border-box !important;
		width: calc(100% - 12px) !important;
		max-width: 100% !important;
		margin-inline: auto !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	.select2-container,
	.select2-container .select2-selection,
	.select2-container .select2-search__field {
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body > .select2-container--open .select2-dropdown {
		box-sizing: border-box !important;
		max-width: calc(100vw - 16px) !important;
	}

	.alspe-cart-row,
	.alspe-cart-item,
	.alspe-checkout-layout,
	.alspe-order-pay-layout,
	.alspe-result-layout,
	.alspe-result-hero,
	.alspe-order-product,
	.alspe-order-products {
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.alspe-auth-layer {
		width: 100% !important;
		height: 100vh !important;
		height: 100dvh !important;
		padding-top: env(safe-area-inset-top) !important;
		padding-bottom: env(safe-area-inset-bottom) !important;
	}

	.alspe-auth-shell {
		width: 100% !important;
		max-width: 100% !important;
		max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
		overflow-y: auto !important;
		overscroll-behavior: contain !important;
	}

	.alspe-identity-toast {
		right: auto !important;
		bottom: calc(10px + env(safe-area-inset-bottom)) !important;
		left: 50% !important;
		width: calc(100% - 16px) !important;
		max-width: calc(100% - 16px) !important;
		transform: translateX(-50%) !important;
	}

	.alspe-commerce-toast {
		box-sizing: border-box !important;
		bottom: calc(12px + env(safe-area-inset-bottom)) !important;
		width: calc(100% - 20px) !important;
		max-width: 460px !important;
	}

	/* Standard WooCommerce account endpoints are outside the custom checkout
	 * shell, so neutralise theme floats and keep navigation/table content usable. */
	body.woocommerce-account .woocommerce {
		box-sizing: border-box !important;
		width: calc(100% - 16px) !important;
		max-width: 100% !important;
		margin-inline: auto !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation,
	body.woocommerce-account .woocommerce-MyAccount-content {
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation {
		margin-bottom: 14px !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		overscroll-behavior-inline: contain !important;
		scrollbar-width: none !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation::-webkit-scrollbar {
		display: none !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: flex !important;
		align-items: stretch !important;
		gap: 7px !important;
		width: max-content !important;
		min-width: 100% !important;
		margin: 0 !important;
		padding: 2px !important;
		list-style: none !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation li {
		flex: 0 0 auto !important;
		margin: 0 !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation a,
	body.woocommerce-account .woocommerce-MyAccount-content .button {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		min-height: 44px !important;
		padding: 8px 12px !important;
		white-space: nowrap !important;
		touch-action: manipulation;
	}

	body.woocommerce-account .woocommerce-MyAccount-content input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
	body.woocommerce-account .woocommerce-MyAccount-content select,
	body.woocommerce-account .woocommerce-MyAccount-content textarea {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		font-size: 16px !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 12px !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address {
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		-webkit-overflow-scrolling: touch !important;
	}

	body.woocommerce-account .woocommerce-pagination ul,
	.alsae-page .woocommerce-pagination ul {
		display: flex !important;
		flex-wrap: wrap !important;
		justify-content: center !important;
		gap: 6px !important;
		max-width: 100% !important;
	}

	body.woocommerce-account .woocommerce-pagination a,
	body.woocommerce-account .woocommerce-pagination span,
	.alsae-page .woocommerce-pagination a,
	.alsae-page .woocommerce-pagination span {
		display: grid !important;
		place-items: center !important;
		min-width: 42px !important;
		min-height: 42px !important;
	}

	body.alspe-commerce-flow .alspe-trash-dock {
		box-sizing: border-box !important;
		left: max(8px, env(safe-area-inset-left)) !important;
		bottom: calc(76px + env(safe-area-inset-bottom)) !important;
		max-width: calc(100% - 16px - env(safe-area-inset-left) - env(safe-area-inset-right)) !important;
	}

	body.alspe-commerce-flow .alspe-trash-dock__copy strong {
		font-size: 11px !important;
		line-height: 1.4 !important;
	}

	body.alspe-commerce-flow .alspe-trash-dock__copy small {
		font-size: 9px !important;
		line-height: 1.4 !important;
	}

	/* ------------------------------------------------------------------
	 * Informational pages and footer touch targets
	 * ------------------------------------------------------------------ */
	.alspe-info-page,
	.alspe-info-container,
	.alspe-contact-channels,
	.alspe-contact-map-card,
	.alspe-about-feature-grid {
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.alspe-info-page input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
	.alspe-info-page select,
	.alspe-info-page textarea {
		font-size: 16px !important;
	}

	.alspe-info-button,
	.alspe-contact-channel,
	.alspe-contact-socials a,
	.alspe-site-footer a {
		touch-action: manipulation;
	}

	.alspe-info-button,
	.alspe-contact-socials a,
	.alspe-footer-phone,
	.alspe-footer-links a,
	.alspe-footer-help a {
		min-height: 44px !important;
	}

	.alspe-footer-bottom {
		padding-bottom: max(18px, env(safe-area-inset-bottom)) !important;
	}

	body.alspe-product-layout .alspe-footer-bottom,
	body.woocommerce-cart .alspe-footer-bottom {
		padding-bottom: max(64px, env(safe-area-inset-bottom)) !important;
	}

	/* External chat remains clear of sticky commerce controls. */
	body.alspe-commerce-active .chaty-widget,
	body.alspe-commerce-active [id^="chaty-widget-"],
	body.alspe-commerce-active [class*="chaty-widget-container"],
	body.woocommerce-cart .chaty-widget,
	body.woocommerce-checkout .chaty-widget {
		bottom: calc(88px + env(safe-area-inset-bottom)) !important;
	}

	html.alspe-preview-menu-open .chaty-widget,
	html.alspe-preview-menu-open [id^="chaty-widget-"],
	html.alspe-preview-menu-open [class*="chaty-widget-container"],
	html.alspe-search-modal-open .chaty-widget,
	html.alspe-search-modal-open [id^="chaty-widget-"],
	html.alspe-search-modal-open [class*="chaty-widget-container"],
	html.alspe-auth-opened .chaty-widget,
	html.alspe-auth-opened [id^="chaty-widget-"],
	html.alspe-auth-opened [class*="chaty-widget-container"] {
		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;
	}
}

@media (max-width: 560px) {
	body.alspe-archive-layout .alsae-toolbar-actions {
		display: grid !important;
		grid-template-columns: auto minmax(0, 1fr) 48px !important;
		grid-template-areas: "result ordering filter" "perpage perpage perpage" !important;
		gap: 7px !important;
		width: 100% !important;
		min-width: 0 !important;
		overflow: visible !important;
	}

	body.alspe-archive-layout .alsae-result-count-mobile {
		grid-area: result !important;
		min-height: 44px !important;
	}

	body.alspe-archive-layout .alsae-toolbar .woocommerce-ordering {
		grid-area: ordering !important;
		min-width: 0 !important;
		width: 100% !important;
	}

	body.alspe-archive-layout .alsae-toolbar .woocommerce-ordering select {
		width: 100% !important;
		min-height: 44px !important;
	}

	body.alspe-archive-layout .alsae-filter-toggle {
		grid-area: filter !important;
		width: 48px !important;
		min-width: 48px !important;
		padding: 0 !important;
	}

	body.alspe-archive-layout .alsae-filter-toggle-label {
		display: none !important;
	}

	body.alspe-archive-layout .alsae-per-page {
		grid-area: perpage !important;
		display: flex !important;
		justify-content: center !important;
		gap: 6px !important;
		width: 100% !important;
	}

	body.alspe-archive-layout .alsae-per-page a {
		width: 40px !important;
		height: 40px !important;
		min-width: 40px !important;
		min-height: 40px !important;
	}

	.alspe-stage-buttons {
		display: grid !important;
		grid-template-columns: minmax(0, .82fr) minmax(0, 1.28fr) !important;
	}

	.alspe-checkout-stage .alspe-shipping-choice {
		grid-template-columns: 22px 36px minmax(0, 1fr) !important;
		padding: 12px !important;
	}

	.alspe-shipping-price {
		grid-column: 3 !important;
		white-space: normal !important;
	}
}

@media (max-width: 390px) {
	.alspe-preview-header-main-grid {
		grid-template-columns: 44px minmax(0, 1fr) 92px !important;
		gap: 5px !important;
		padding-right: max(6px, env(safe-area-inset-right)) !important;
		padding-left: max(6px, env(safe-area-inset-left)) !important;
	}

	.alspe-preview-menu-button,
	.alspe-preview-header-actions > a {
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
	}

	.alspe-preview-header-actions {
		grid-template-columns: repeat(2, 44px) !important;
		width: 92px !important;
		min-width: 92px !important;
	}

	.alspe-preview-logo img {
		height: 41px !important;
		max-width: 126px !important;
	}

	body.alspe-home-preview .alspe-preview-mobile-drawer,
	body:not(.alspe-home-preview) .alspe-preview-mobile-drawer {
		width: 100% !important;
		max-width: 100% !important;
	}

	body.alspe-home-preview .alspe-home-product-card {
		height: auto !important;
		min-height: 244px !important;
		max-height: none !important;
	}

	body.alspe-home-preview .alspe-home-product-image {
		height: 122px !important;
		min-height: 122px !important;
		max-height: 122px !important;
	}

	body.alspe-archive-layout .alsae-products ul.products {
		gap: 7px !important;
	}

	body.alspe-archive-layout .alsae-products ul.products li.product {
		padding: 7px !important;
	}

	body.alspe-product-layout .alspe-trust-strip span {
		font-size: 10px !important;
	}

	.alspe-stage-next,
	.alspe-secondary-stage-btn {
		padding-inline: 8px !important;
		font-size: 12.5px !important;
	}
}

@media (max-width: 340px) {
	.alspe-preview-header-main-grid {
		grid-template-columns: 44px minmax(0, 1fr) 92px !important;
		gap: 4px !important;
	}

	.alspe-preview-menu-button,
	.alspe-preview-header-actions > a {
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
	}

	.alspe-preview-header-actions {
		grid-template-columns: repeat(2, 44px) !important;
		width: 92px !important;
		min-width: 92px !important;
	}

	.alspe-preview-logo img {
		max-width: 112px !important;
	}

	body.alspe-home-preview .alspe-home-product-card {
		flex-basis: 72% !important;
		width: 72% !important;
	}

	body.alspe-product-layout .alspe-trust-strip {
		grid-template-columns: 1fr !important;
	}

	.alspe-preview-mobile-quick-links {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.alspe-preview-mobile-quick-links > a {
		padding-inline: 6px !important;
		font-size: 10.5px !important;
	}
}

/* Short landscape phones need the same overlay protections as portrait, but
 * sticky checkout actions must stop covering the currently focused field. */
@media (max-width: 932px) and (orientation: landscape) and (max-height: 520px) and (pointer: coarse) {
	.alspe-home-search-modal {
		padding: max(6px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)) !important;
	}

	body.admin-bar .alspe-home-search-modal {
		padding-top: 52px !important;
	}

	.alspe-home-search-modal-card,
	body.admin-bar .alspe-home-search-modal-card {
		max-height: calc(100dvh - 12px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
		padding: 10px !important;
		border-radius: 16px !important;
	}

	body.admin-bar .alspe-home-search-modal-card {
		max-height: calc(100dvh - 58px - env(safe-area-inset-bottom)) !important;
	}

	.alspe-home-search-modal-card > header {
		margin-bottom: 8px !important;
	}

	.alspe-home-search-modal-hints {
		display: none !important;
	}

	body.alspe-home-preview .alspe-preview-mobile-drawer,
	body:not(.alspe-home-preview) .alspe-preview-mobile-drawer,
	body.admin-bar.alspe-home-preview .alspe-preview-mobile-drawer,
	body.admin-bar:not(.alspe-home-preview) .alspe-preview-mobile-drawer {
		top: 0 !important;
		width: min(62vw, 430px) !important;
		height: 100dvh !important;
		max-height: 100dvh !important;
	}

	.alspe-preview-mobile-drawer-head {
		min-height: 48px !important;
		padding-block: 4px !important;
	}

	.alspe-auth-layer {
		align-items: stretch !important;
		padding: max(4px, env(safe-area-inset-top)) max(7px, env(safe-area-inset-right)) max(4px, env(safe-area-inset-bottom)) max(7px, env(safe-area-inset-left)) !important;
	}

	.alspe-auth-shell {
		width: min(600px, 100%) !important;
		max-height: calc(100dvh - 8px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
		margin: auto !important;
		border-radius: 18px !important;
	}

	.alspe-auth-visual {
		display: none !important;
	}

	.alspe-auth-panel {
		min-height: 0 !important;
		padding: 16px 18px 14px !important;
	}

	.alspe-auth-brand img {
		height: 38px !important;
	}

	.alspe-auth-tabs {
		margin-block: 10px !important;
	}

	.alspe-auth-form__heading {
		margin-block: 6px 10px !important;
	}

	.alspe-stage-footer {
		position: static !important;
		padding-bottom: 10px !important;
	}

	.alspe-checkout-progress {
		padding-bottom: 4px !important;
	}

	body.alspe-product-layout .alspe-lightbox {
		padding: max(6px, env(safe-area-inset-top)) max(52px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(52px, env(safe-area-inset-left)) !important;
	}

	body.alspe-product-layout .alspe-lightbox-stage,
	body.alspe-product-layout .alspe-lightbox img {
		max-height: calc(100dvh - 14px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
	}
}

@media (max-width: 767px) and (hover: none),
	(max-width: 767px) and (pointer: coarse) {
	.alspe-preview-header a:hover,
	.alspe-home a:hover,
	.alsae-page a:hover,
	.alspe-page a:hover,
	.alspe-commerce a:hover,
	.alspe-site-footer a:hover {
		transform: none !important;
	}
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
	.alspe-preview-mobile-drawer,
	.alspe-home-search-modal-card,
	.alspe-home-hero-track,
	.alspe-mobile-buybar,
	.alspe-fly-cart-widget,
	.alspe-fly-cart-dock,
	.alspe-fly-cart-recs {
		animation: none !important;
		transition-duration: .01ms !important;
	}
}

/* ======================================================================
 * ALS Product Engine 0.48.57 — mobile QA round 3.
 * Final source-of-truth overrides for the issues captured on real phones:
 * independently scrolling filters, single-column auth, readable shipping,
 * non-obstructive cart feedback and collision-free commerce controls.
 * ====================================================================== */
@media (max-width: 767px),
	(max-width: 932px) and (orientation: landscape) and (max-height: 520px) and (pointer: coarse) {
	/* The filter header and confirmation action stay available while only the
	 * filter body scrolls. This removes the sticky button/content collision. */
	body.alspe-archive-layout .alsae-sidebar {
		display: grid !important;
		grid-template-rows: auto minmax(0, 1fr) auto !important;
		padding: 0 !important;
		overflow: hidden !important;
		background: #fff !important;
	}

	body.alspe-archive-layout .alsae-sidebar-head {
		position: relative !important;
		top: auto !important;
		z-index: 2 !important;
		min-height: 66px !important;
		margin: 0 !important;
		padding: max(12px, env(safe-area-inset-top)) 14px 11px !important;
		border-bottom: 1px solid var(--alsae-border) !important;
		background: rgba(255, 255, 255, .985) !important;
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
	}

	body.alspe-archive-layout .alsae-sidebar-scroll {
		min-width: 0 !important;
		min-height: 0 !important;
		padding: 14px 14px 18px !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		overscroll-behavior: contain !important;
		-webkit-overflow-scrolling: touch !important;
		scroll-padding-block: 12px 24px !important;
		scrollbar-width: thin !important;
	}

	body.alspe-archive-layout .alsae-sidebar-scroll::-webkit-scrollbar {
		width: 5px !important;
	}

	body.alspe-archive-layout .alsae-sidebar-done {
		position: relative !important;
		inset: auto !important;
		z-index: 3 !important;
		width: auto !important;
		min-height: 50px !important;
		margin: 0 14px max(12px, env(safe-area-inset-bottom)) !important;
		padding: 9px 14px !important;
		border-radius: 12px !important;
		box-shadow: 0 9px 24px rgba(15, 76, 138, .2) !important;
	}

	body.alspe-archive-layout .alsae-clear-filters {
		margin-bottom: 4px !important;
	}

	/* Mixed Persian/Latin product names wrap by words, not letter by letter. */
	body.alspe-archive-layout .alsae-products ul.products li.product .woocommerce-loop-product__title,
	body.alspe-archive-layout .alsae-products ul.products li.product .product-title {
		display: -webkit-box !important;
		min-height: 54px !important;
		max-height: none !important;
		word-break: normal !important;
		overflow-wrap: break-word !important;
		unicode-bidi: plaintext !important;
		-webkit-box-orient: vertical !important;
		-webkit-line-clamp: 3 !important;
		overflow: hidden !important;
	}

	/* Search result titles can use two lines on narrow screens. */
	.alspe-home-search-item {
		grid-template-columns: 54px minmax(0, 1fr) !important;
		gap: 9px !important;
	}

	.alspe-home-search-media {
		width: 54px !important;
		height: 54px !important;
	}

	.alspe-home-search-copy strong,
	.alspe-home-search-shortcut > strong {
		display: -webkit-box !important;
		white-space: normal !important;
		word-break: normal !important;
		overflow-wrap: break-word !important;
		unicode-bidi: plaintext !important;
		-webkit-box-orient: vertical !important;
		-webkit-line-clamp: 2 !important;
		overflow: hidden !important;
	}

	.alspe-home-search-meta {
		flex-wrap: wrap !important;
		row-gap: 4px !important;
	}

	/* The desktop auth grid was reintroduced later in identity.css. Force a
	 * bounded, single-column dialog that remains usable with the soft keyboard. */
	.alspe-auth-layer {
		display: grid !important;
		place-items: center !important;
		align-items: center !important;
		padding: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)) !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
	}

	.alspe-auth-shell {
		display: block !important;
		grid-template-columns: minmax(0, 1fr) !important;
		width: min(480px, 100%) !important;
		max-width: 100% !important;
		max-height: calc(100dvh - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom))) !important;
		margin: auto !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		overscroll-behavior: contain !important;
		border-radius: 22px !important;
	}

	.alspe-auth-visual {
		display: none !important;
	}

	.alspe-auth-panel,
	.alspe-auth-panel__header,
	.alspe-auth-brand,
	.alspe-auth-tabs,
	.alspe-auth-context,
	.alspe-auth-status,
	.alspe-auth-forms-wrap,
	.alspe-auth-form,
	.alspe-auth-field,
	.alspe-auth-input,
	.alspe-auth-code {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.alspe-auth-panel {
		display: flex !important;
		min-height: 0 !important;
		padding: 22px 16px 18px !important;
		overflow: visible !important;
	}

	.alspe-auth-panel__header {
		justify-content: center !important;
		padding-left: 0 !important;
	}

	.alspe-auth-form h2 {
		font-size: clamp(21px, 6.3vw, 27px) !important;
		line-height: 1.45 !important;
	}

	.alspe-auth-input input,
	.alspe-auth-code input {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.alspe-auth-code input {
		padding-inline: 10px !important;
		font-size: clamp(22px, 7vw, 27px) !important;
		letter-spacing: .28em !important;
	}

	.alspe-auth-close {
		left: 10px !important;
		top: 10px !important;
		width: 44px !important;
		height: 44px !important;
	}

	/* Cart feedback on phones is a compact dock only. The recommendation rail
	 * no longer behaves like a second footer over product content. */
	body.alspe-product-layout.alspe-mobile-cart-companion-active {
		padding-bottom: calc(76px + env(safe-area-inset-bottom)) !important;
	}

	body.alspe-product-layout .alspe-fly-cart-widget.is-compact {
		right: auto !important;
		bottom: calc(8px + env(safe-area-inset-bottom)) !important;
		left: max(8px, env(safe-area-inset-left)) !important;
		display: grid !important;
		grid-template-columns: 58px !important;
		width: 58px !important;
		max-width: 58px !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		pointer-events: none !important;
	}

	body.alspe-product-layout .alspe-fly-cart-widget.is-compact .alspe-fly-cart-recs {
		display: none !important;
	}

	body.alspe-product-layout .alspe-fly-cart-widget.is-compact .alspe-fly-cart-dock {
		grid-column: 1 !important;
		width: 58px !important;
		min-width: 58px !important;
		height: 58px !important;
		padding: 0 !important;
		border-radius: 18px !important;
		pointer-events: auto !important;
	}

	body.alspe-product-layout .alspe-fly-cart-widget.is-compact .alspe-fly-cart-dock__copy {
		display: none !important;
	}

	/* External floating chat covers remove/buy controls in the supplied mobile
	 * captures. Commerce pages retain their built-in contact/support links. */
	body.alspe-product-layout .chaty-widget,
	body.alspe-product-layout [id^="chaty-widget-"],
	body.alspe-product-layout [class*="chaty-widget-container"],
	body.alspe-commerce-active .chaty-widget,
	body.alspe-commerce-active [id^="chaty-widget-"],
	body.alspe-commerce-active [class*="chaty-widget-container"],
	body.woocommerce-cart .chaty-widget,
	body.woocommerce-cart [id^="chaty-widget-"],
	body.woocommerce-cart [class*="chaty-widget-container"],
	body.woocommerce-checkout .chaty-widget,
	body.woocommerce-checkout [id^="chaty-widget-"],
	body.woocommerce-checkout [class*="chaty-widget-container"] {
		display: none !important;
		visibility: hidden !important;
		pointer-events: none !important;
	}

	/* Cart item actions remain finger-sized and cannot sit under a floater. */
	body.woocommerce-cart .alspe-cart-item-actions {
		display: flex !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		justify-content: flex-start !important;
		gap: 7px !important;
		padding-top: 10px !important;
	}

	body.woocommerce-cart .alspe-cart-item-actions button,
	body.woocommerce-cart .alspe-cart-item-actions a {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		min-height: 44px !important;
		margin: 0 !important;
		padding: 7px 10px !important;
		border-radius: 10px !important;
		background: #f3f8fc !important;
		line-height: 1.4 !important;
	}

	body.woocommerce-cart .alspe-cart-item-actions .alspe-remove {
		background: #fff3f2 !important;
	}

	/* Keep long drawer content reachable and the close control stable. */
	.alspe-preview-mobile-drawer {
		scroll-padding-top: 64px !important;
		scroll-padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important;
	}

	.alspe-preview-mobile-drawer-head {
		background: rgba(255, 255, 255, .985) !important;
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
	}
}

@media (max-width: 560px) {
	/* Explicit placement prevents the copy from inheriting the 36px icon
	 * column, which was the cause of one-word-per-line shipping labels. */
	.alspe-checkout-stage .alspe-shipping-choice {
		display: grid !important;
		grid-template-columns: 22px 42px minmax(0, 1fr) !important;
		grid-template-rows: auto auto !important;
		align-items: center !important;
		column-gap: 10px !important;
		row-gap: 4px !important;
		min-height: 96px !important;
		padding: 13px !important;
	}

	.alspe-checkout-stage .alspe-shipping-choice > input {
		grid-column: 1 !important;
		grid-row: 1 / 3 !important;
		align-self: center !important;
		width: 18px !important;
		height: 18px !important;
		margin: 0 !important;
	}

	.alspe-checkout-stage .alspe-shipping-icon {
		grid-column: 2 !important;
		grid-row: 1 / 3 !important;
		width: 42px !important;
		height: 42px !important;
	}

	.alspe-checkout-stage .alspe-shipping-copy {
		grid-column: 3 !important;
		grid-row: 1 !important;
		align-items: flex-start !important;
		width: 100% !important;
		min-width: 0 !important;
		text-align: right !important;
	}

	.alspe-checkout-stage .alspe-shipping-price {
		grid-column: 3 !important;
		grid-row: 2 !important;
		align-items: flex-start !important;
		width: 100% !important;
		min-width: 0 !important;
		white-space: normal !important;
		text-align: right !important;
	}

	.alspe-checkout-stage .alspe-shipping-copy strong,
	.alspe-checkout-stage .alspe-shipping-copy small,
	.alspe-checkout-stage .alspe-shipping-price b,
	.alspe-checkout-stage .alspe-shipping-price small {
		max-width: 100% !important;
		word-break: normal !important;
		overflow-wrap: break-word !important;
		white-space: normal !important;
		line-height: 1.55 !important;
	}

	.alspe-auth-panel {
		padding: 20px 14px 16px !important;
	}

	.alspe-auth-brand img {
		max-width: 138px !important;
		height: 40px !important;
	}
}

/* ALS Product Engine 0.48.58 — mobile contact route and navigation-state pass. */
@media (max-width: 767px),
	(max-width: 932px) and (orientation: landscape) and (max-height: 520px) and (pointer: coarse) {
	body.alspe-info-page--contact .alspe-contact {
		display: block !important;
		position: relative !important;
		width: 100% !important;
		min-width: 0 !important;
		min-height: 65dvh !important;
		margin: 0 !important;
		padding: 0 0 max(18px, env(safe-area-inset-bottom)) !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	body.alspe-info-page--contact .alspe-contact-hero,
	body.alspe-info-page--contact .alspe-contact-main-section {
		display: block !important;
		width: 100% !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	body.alspe-info-page--contact .alspe-contact-hero {
		padding: 38px 0 46px !important;
	}

	body.alspe-info-page--contact .alspe-contact-hero-grid,
	body.alspe-info-page--contact .alspe-contact-main-grid,
	body.alspe-info-page--contact .alspe-contact-map-card {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		width: calc(100% - 22px) !important;
		max-width: 100% !important;
		gap: 14px !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	body.alspe-info-page--contact .alspe-contact-hero h1 {
		max-width: 100% !important;
		font-size: clamp(29px, 9vw, 38px) !important;
		line-height: 1.38 !important;
		letter-spacing: -.8px !important;
	}

	body.alspe-info-page--contact .alspe-contact-hero-badge {
		width: 100% !important;
		max-width: 100% !important;
		padding: 18px !important;
	}

	body.alspe-info-page--contact .alspe-contact-channels {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		width: calc(100% - 22px) !important;
		max-width: 100% !important;
		gap: 8px !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	body.alspe-info-page--contact .alspe-contact-channels > .is-phone {
		grid-column: 1 / -1 !important;
	}

	body.alspe-info-page--contact .alspe-contact-main-section {
		padding: 44px 0 36px !important;
	}

	body.alspe-info-page--contact .alspe-contact-form-card,
	body.alspe-info-page--contact .alspe-contact-detail-card {
		width: 100% !important;
		max-width: 100% !important;
		padding: 20px 15px !important;
		opacity: 1 !important;
		visibility: visible !important;
	}

	body.alspe-info-page--contact .alspe-contact-form-grid {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		width: 100% !important;
	}

	body.alspe-info-page--contact .alspe-contact-form label.full {
		grid-column: auto !important;
	}

	body.alspe-info-page--contact .alspe-contact-map-card {
		margin-bottom: 34px !important;
		padding: 10px !important;
	}

	body.alspe-info-page--contact .alspe-contact-map-copy {
		padding: 15px 8px !important;
	}

	body.alspe-info-page--contact .alspe-contact-map-visual,
	body.alspe-info-page--contact .alspe-contact-map-visual iframe,
	body.alspe-info-page--contact .alspe-contact-map-visual img,
	body.alspe-info-page--contact .alspe-contact-map-placeholder,
	body.alspe-info-page--contact .alspe-contact-map-image,
	body.alspe-info-page--contact .alspe-contact-neshan-preview {
		width: 100% !important;
		min-height: 280px !important;
		max-width: 100% !important;
	}

	body.alspe-info-page--contact .alspe-contact-form :where(input, select, textarea),
	body.alspe-info-page--contact .alspe-contact-form button {
		max-width: 100% !important;
	}
}

@media (max-width: 390px) {
	body.alspe-info-page--contact .alspe-contact-channels {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body.alspe-info-page--contact .alspe-contact-channels > .is-phone {
		grid-column: auto !important;
	}
}
