/* Keep the mobile menu button attached to the visible sticky CTA.
 * When the CTA slides away, the button settles into the viewport corner. */
@media (max-width: 680px) {
	.wsd .wsd-nav .wsd-menu-dot {
		transition: bottom .3s cubic-bezier(.22, 1, .36, 1), border-radius .42s cubic-bezier(.22, 1, .36, 1), transform .42s cubic-bezier(.22, 1, .36, 1), box-shadow .3s ease !important;
	}

	.wsd .wsd-nav .wsd-menu-dot.is-sticky-cta-hidden {
		bottom: max(14px, env(safe-area-inset-bottom)) !important;
	}

	.wla .wla-menu-button.is-mobile-floating {
		position: fixed !important;
		right: 14px !important;
		top: auto !important;
		bottom: calc(74px + env(safe-area-inset-bottom)) !important;
		transition: bottom .3s cubic-bezier(.22, 1, .36, 1), border-radius .42s cubic-bezier(.22, 1, .36, 1), transform .42s cubic-bezier(.22, 1, .36, 1), box-shadow .3s ease !important;
	}

	.wla .wla-menu-button.is-mobile-floating.is-sticky-cta-hidden {
		bottom: max(14px, env(safe-area-inset-bottom)) !important;
	}
}

@media (max-width: 620px) {
	.wsp .wsp-nav {
		pointer-events: none;
	}

	.wsp .wsp-menu-button.is-mobile-floating {
		position: fixed !important;
		right: 14px !important;
		top: auto !important;
		bottom: calc(74px + env(safe-area-inset-bottom)) !important;
		z-index: 110 !important;
		width: 60px !important;
		height: 60px !important;
		margin: 0 !important;
		overflow: visible;
		border: 1px solid transparent !important;
		border-radius: 50% 50% 16px 50% !important;
		background: linear-gradient(145deg, rgba(176, 55, 51, .96), rgba(214, 54, 48, .96)) padding-box,
			conic-gradient(from 210deg, rgba(255, 255, 255, .95), rgba(255, 255, 255, .2), rgba(255, 255, 255, .72)) border-box !important;
		box-shadow: 0 15px 34px rgba(93, 37, 34, .28), inset 0 1px 0 rgba(255, 255, 255, .3) !important;
		pointer-events: auto;
		transition: bottom .3s cubic-bezier(.22, 1, .36, 1), border-radius .42s cubic-bezier(.22, 1, .36, 1), transform .42s cubic-bezier(.22, 1, .36, 1), box-shadow .3s ease !important;
	}

	.wsp .wsp-menu-button.is-mobile-floating::before {
		position: absolute;
		bottom: 6px;
		left: 50%;
		color: #fff;
		content: "MENU";
		font-size: 7px;
		font-weight: 900;
		letter-spacing: .16em;
		transform: translateX(-50%);
	}

	.wsp .wsp-menu-button.is-mobile-floating span {
		width: 21px;
		height: 2px;
		background: #fff;
	}

	.wsp .wsp-menu-button.is-mobile-floating.is-sticky-cta-hidden {
		bottom: max(14px, env(safe-area-inset-bottom)) !important;
	}

	.wsp .wsp-menu-button.is-mobile-floating[aria-expanded="true"] {
		border-radius: 16px 50% 50% 50% !important;
	}

	.wsp .wsp-menu-button.is-mobile-floating[aria-expanded="true"]::before {
		top: 6px;
		bottom: auto;
		left: 7px;
		content: "CLOSE";
		font-size: 6px;
		letter-spacing: .1em;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wsd .wsd-nav .wsd-menu-dot,
	.wla .wla-menu-button.is-mobile-floating,
	.wsp .wsp-menu-button.is-mobile-floating {
		transition-duration: .01ms !important;
	}
}
