.wshop-mobile-purchase {
	display: none;
}

@media (max-width: 767px) {
	/* Elementor occasionally retains the desktop 53/47 flex basis from the
	   software templates after CSS regeneration. Make the intended mobile
	   column explicit so long product titles and both CTA buttons stay inside
	   the viewport. */
	.wshop-software-hero > .e-con-inner {
		width: 100% !important;
		max-width: 100% !important;
		flex-direction: column !important;
	}

	.wshop-software-hero > .e-con-inner > .e-con {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.wshop-software-hero .elementor-widget,
	.wshop-software-hero .elementor-widget-container,
	.wshop-software-hero form.cart {
		max-width: 100%;
	}

	.wshop-software-title .product_title {
		overflow-wrap: anywhere;
	}

	body.single-product {
		padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px));
	}

	.wshop-mobile-purchase {
		position: fixed;
		/* Above the legacy floating "Book a Demo" pill, which otherwise covers
		   the secondary product action on small screens. */
		z-index: 10010;
		right: 0;
		bottom: 0;
		left: 0;
		display: grid;
		grid-template-columns: minmax(0, 0.8fr) minmax(190px, 1.2fr);
		gap: 10px;
		align-items: center;
		padding: 10px max(14px, env(safe-area-inset-right, 0px))
			calc(10px + env(safe-area-inset-bottom, 0px))
			max(14px, env(safe-area-inset-left, 0px));
		border-top: 1px solid #dfe4ed;
		background: rgba(255, 255, 255, 0.97);
		box-shadow: 0 -8px 28px rgba(0, 23, 92, 0.12);
		backdrop-filter: blur(12px);
		transform: translateY(110%);
		transition: transform 180ms ease;
	}

	.wshop-mobile-purchase.is-visible {
		transform: translateY(0);
	}

	.wshop-mobile-purchase__summary {
		min-width: 0;
		color: #00175c;
		font-size: 12px;
		line-height: 1.2;
	}

	.wshop-mobile-purchase__summary strong,
	.wshop-mobile-purchase__summary span {
		display: block;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.wshop-mobile-purchase__summary span {
		margin-top: 3px;
		color: #56617a;
		font-weight: 700;
	}

	.wshop-mobile-purchase__actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 7px;
	}

	.wshop-mobile-purchase__buy,
	.wshop-mobile-purchase__contact {
		display: inline-flex;
		min-height: 46px;
		align-items: center;
		justify-content: center;
		padding: 9px 10px;
		border: 2px solid #00175c;
		border-radius: 9px;
		font: inherit;
		font-size: 12px;
		font-weight: 700;
		line-height: 1.1;
		text-align: center;
		text-decoration: none;
		cursor: pointer;
	}

	.wshop-mobile-purchase__buy {
		background: #00175c;
		color: #fff;
	}

	.wshop-mobile-purchase__contact {
		background: #fff;
		color: #00175c;
	}
}

@media (max-width: 430px) {
	.wshop-mobile-purchase {
		grid-template-columns: 1fr;
	}

	.wshop-mobile-purchase__summary {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wshop-mobile-purchase {
		transition: none;
	}
}
