/*
 * Lyncto UI & Commerce Fix
 * Scoped fixes for the Lyncto Elementor off-canvas menu and WooCommerce menu cart.
 */

/* ---------- Elementor off-canvas menu (Popup ID 2868) ---------- */
.lyncto-ui-fix-page #elementor-popup-modal-2868 {
	position: fixed !important;
	inset: 0 !important;
	z-index: 999999 !important;
	align-items: stretch !important;
	justify-content: flex-start !important;
	overscroll-behavior: contain;
}

.lyncto-ui-fix-page #elementor-popup-modal-2868 .dialog-widget-content {
	position: relative !important;
	width: min(400px, calc(100vw - 12px)) !important;
	max-width: min(400px, calc(100vw - 12px)) !important;
	height: 100vh !important;
	height: 100dvh !important;
	min-height: 100vh !important;
	min-height: 100dvh !important;
	margin: 0 !important;
	border-radius: 0 !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	-webkit-overflow-scrolling: touch;
	backface-visibility: hidden;
	transform-style: preserve-3d;
	will-change: transform;
	contain: layout paint;
}

.lyncto-ui-fix-page #elementor-popup-modal-2868 .dialog-message,
.lyncto-ui-fix-page #elementor-popup-modal-2868 .dialog-lightbox-message,
.lyncto-ui-fix-page #elementor-popup-modal-2868 .elementor-location-popup {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: none !important;
	overflow: visible !important;
}

.lyncto-ui-fix-page #elementor-popup-modal-2868 .dialog-close-button {
	position: absolute !important;
	top: 24px !important;
	right: 24px !important;
	left: auto !important;
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	min-height: 36px !important;
	max-width: 36px !important;
	max-height: 36px !important;
	padding: 0 !important;
	margin: 0 !important;
	display: grid !important;
	place-items: center !important;
	line-height: 1 !important;
	font-size: 20px !important;
	z-index: 100 !important;
	cursor: pointer !important;
	transform: none !important;
}

.lyncto-ui-fix-page #elementor-popup-modal-2868 .dialog-close-button svg,
.lyncto-ui-fix-page #elementor-popup-modal-2868 .dialog-close-button i,
.lyncto-ui-fix-page #elementor-popup-modal-2868 .dialog-close-button [class*="eicon"] {
	display: block !important;
	width: 20px !important;
	height: 20px !important;
	min-width: 20px !important;
	min-height: 20px !important;
	max-width: 20px !important;
	max-height: 20px !important;
	font-size: 20px !important;
	line-height: 20px !important;
	flex: 0 0 20px !important;
	object-fit: contain !important;
	transform: none !important;
}

.lyncto-ui-fix-page #elementor-popup-modal-2868 .dialog-widget-content.animated {
	animation-duration: 0.34s !important;
	animation-timing-function: cubic-bezier(.22, .61, .36, 1) !important;
}

/* Protect menu content from generic page SVG rules. */
.lyncto-ui-fix-page #elementor-popup-modal-2868 .elementor-widget-container > svg:not(.e-font-icon-svg),
.lyncto-ui-fix-page #elementor-popup-modal-2868 nav svg {
	max-width: 100% !important;
	height: auto !important;
}

/* ---------- Elementor WooCommerce menu cart ---------- */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__toggle .elementor-button,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__toggle .elementor-button-icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__toggle svg,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__toggle i {
	width: 20px !important;
	height: 20px !important;
	min-width: 20px !important;
	min-height: 20px !important;
	max-width: 20px !important;
	max-height: 20px !important;
	font-size: 20px !important;
	line-height: 20px !important;
	object-fit: contain !important;
	transform: none !important;
}

.elementor-menu-cart__container .elementor-menu-cart__close-button,
.elementor-menu-cart__main .elementor-menu-cart__close-button {
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	min-height: 36px !important;
	max-width: 36px !important;
	max-height: 36px !important;
}

.elementor-menu-cart__container .elementor-menu-cart__close-button svg,
.elementor-menu-cart__main .elementor-menu-cart__close-button svg {
	width: 20px !important;
	height: 20px !important;
	min-width: 20px !important;
	min-height: 20px !important;
	max-width: 20px !important;
	max-height: 20px !important;
}

/*
 * Elementor currently renders the empty-cart illustration as:
 * .widget_shopping_cart_content > .wc-empty-mini-cart > svg
 * The SVG has no width/height attributes, so a generic SVG rule can expand it.
 */
.elementor-menu-cart__main .wc-empty-mini-cart,
.elementor-menu-cart__container .wc-empty-mini-cart {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: flex-start !important;
	text-align: center !important;
	padding: 24px 20px !important;
}

.elementor-menu-cart__main .wc-empty-mini-cart > svg,
.elementor-menu-cart__container .wc-empty-mini-cart > svg,
.elementor-menu-cart__main .wc-empty-mini-cart svg[data-name="Layer 1"],
.elementor-menu-cart__container .wc-empty-mini-cart svg[data-name="Layer 1"],
.elementor-menu-cart__main svg.lyncto-cart-empty-icon,
.elementor-menu-cart__container svg.lyncto-cart-empty-icon {
	display: block !important;
	width: 96px !important;
	height: 96px !important;
	min-width: 96px !important;
	min-height: 96px !important;
	max-width: 96px !important;
	max-height: 96px !important;
	margin: 8px auto 18px !important;
	padding: 0 !important;
	flex: 0 0 96px !important;
	object-fit: contain !important;
	transform: none !important;
}

.elementor-menu-cart__main .wc-empty-mini-cart > svg *,
.elementor-menu-cart__container .wc-empty-mini-cart > svg * {
	vector-effect: non-scaling-stroke;
}

.elementor-menu-cart__container,
.elementor-menu-cart__main {
	overscroll-behavior: contain;
}

@media (max-width: 767px) {
	.lyncto-ui-fix-page #elementor-popup-modal-2868 .dialog-widget-content {
		width: min(370px, calc(100vw - 12px)) !important;
		max-width: min(370px, calc(100vw - 12px)) !important;
	}

	.lyncto-ui-fix-page #elementor-popup-modal-2868 .dialog-close-button {
		top: 20px !important;
		right: 20px !important;
	}

	.elementor-menu-cart__main .wc-empty-mini-cart > svg,
	.elementor-menu-cart__container .wc-empty-mini-cart > svg,
	.elementor-menu-cart__main .wc-empty-mini-cart svg[data-name="Layer 1"],
	.elementor-menu-cart__container .wc-empty-mini-cart svg[data-name="Layer 1"] {
		width: 88px !important;
		height: 88px !important;
		min-width: 88px !important;
		min-height: 88px !important;
		max-width: 88px !important;
		max-height: 88px !important;
		flex-basis: 88px !important;
	}
}
