/* ld_header_cart: trigger + off-canvas / dropdown mini-cart. */
.epic-header-cart { display: flex; position: relative; }
.epic-header-cart .ld-module-cart { display: flex; align-items: center; position: relative; }

.epic-header-cart .ld-module-trigger {
	display: inline-flex; align-items: center; gap: .5em;
	cursor: pointer; user-select: none; line-height: 1; position: relative;
	color: inherit; transition: color .2s, opacity .2s;
}
.epic-header-cart .ld-module-trigger:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; border-radius: 2px; }
.epic-header-cart .lqd-module-trigger-txt-left .ld-module-trigger-txt { order: -1; }
.epic-header-cart .ld-module-trigger-icon { display: inline-flex; align-items: center; justify-content: center; font-size: 18px; position: relative; }
.epic-header-cart .ld-module-trigger-icon svg { width: 1em; height: 1em; display: block; }
.epic-header-cart .ld-module-trigger-icon svg:not([fill]) { fill: currentColor; }
.epic-header-cart .ld-module-trigger-icon .epic-cart-icn { fill: none; }
.epic-header-cart .lqd-module-icon-outline .ld-module-trigger-icon {
	width: 2.4em; height: 2.4em; border: 1px solid currentColor; border-radius: 50%; font-size: 15px;
}
.epic-header-cart .ld-module-trigger-close-cross { display: none; }

/* Counter badge */
.epic-header-cart .ld-module-trigger .ld-module-trigger-count {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 1.6em; height: 1.6em; padding: 0 .35em; border-radius: 1em;
	font-size: 11px; font-weight: 600; line-height: 1; border: 1px solid currentColor;
}
.epic-header-cart .lqd-module-badge-fill .ld-module-trigger-count { background: #111; border-color: #111; color: #fff; }
.epic-header-cart .lqd-module-badge-outline .ld-module-trigger-count { background: transparent; }

/* Panel: closed by default (visibility so CSS transitions still run). */
.epic-cart-panel,
.epic-header-cart .ld-module-dropdown {
	visibility: hidden; opacity: 0; pointer-events: none;
	color: #181b31; background: #fff; text-align: start;
	transition: opacity .25s ease, transform .35s cubic-bezier(.23,1,.32,1), visibility 0s linear .35s;
}
.epic-cart-panel.is-open,
.epic-header-cart .ld-module-dropdown.is-open {
	visibility: visible; opacity: 1; pointer-events: auto;
	transition: opacity .25s ease, transform .35s cubic-bezier(.23,1,.32,1), visibility 0s;
}

/* Dropdown mode */
.epic-header-cart .ld-module-cart-dropdown-panel {
	position: absolute; top: calc(100% + 14px); right: 0; z-index: 1000;
	width: 360px; max-width: calc(100vw - 30px);
	box-shadow: 0 20px 50px rgba(0,0,0,.15); border-radius: 6px;
	transform: translateY(8px);
}
.epic-header-cart .ld-module-cart-dropdown-panel.is-open { transform: none; }
.epic-header-cart .ld-module-cart-dropdown-panel .ld-cart-contents { max-height: 70vh; overflow: auto; padding: 24px; }

/* Off-canvas mode (the panel is moved to <body> on the frontend; the second selector is for the editor). */
.ld-module-cart-offcanvas-dropdown {
	position: fixed; top: 0; bottom: 0; z-index: 100000;
	width: 420px; max-width: 92vw; height: 100vh; height: 100dvh;
	box-shadow: 0 0 60px rgba(0,0,0,.18);
}
.ld-module-cart-offcanvas-dropdown.ld-module-to-right { right: 0; transform: translateX(100%); }
.ld-module-cart-offcanvas-dropdown.ld-module-to-left { left: 0; transform: translateX(-100%); }
.ld-module-cart-offcanvas-dropdown.is-open { transform: none; }
.ld-module-cart-offcanvas-dropdown .ld-cart-contents {
	height: 100%; overflow-y: auto; overscroll-behavior: contain; padding: 40px 32px 32px; position: relative;
	display: flex; flex-direction: column;
}
.epic-cart-backdrop {
	position: fixed; inset: 0; z-index: 99999; background: rgba(0,0,0,.45);
	opacity: 0; visibility: hidden; transition: opacity .3s, visibility 0s linear .3s;
}
.epic-cart-backdrop.is-open { opacity: 1; visibility: visible; transition: opacity .3s, visibility 0s; }
html.epic-cart-locked { overflow: hidden; }

.ld-cart-close {
	position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: none; border: 0; color: inherit; font-size: 22px; cursor: pointer; border-radius: 50%;
}
.ld-module-to-left .ld-cart-close { right: 14px; }
.ld-cart-close:hover { background: rgba(0,0,0,.06); }

/* Mini-cart contents */
.epic-quickcart { display: flex; flex-direction: column; flex: 1 1 auto; width: 100%; }
.epic-quickcart.is-busy { opacity: .55; pointer-events: none; transition: opacity .15s; }
.epic-quickcart .ld-cart-head {
	display: flex; align-items: center; gap: .5em; margin: 0 0 24px;
	font-size: 26px; font-weight: 600; line-height: 1.2; color: inherit;
}
.epic-quickcart .ld-cart-head .ld-module-trigger-count {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 26px; height: 26px; padding: 0 6px; border-radius: 13px;
	background: #f2f2f2; font-size: 13px; font-weight: 600;
}
.epic-quickcart .ld-cart-products { width: 100%; flex: 1 1 auto; }
.epic-quickcart .empty h3 { font-size: 16px; font-weight: 500; margin: 0; opacity: .7; }

.epic-quickcart .ld-cart-product {
	position: relative; display: flex; align-items: flex-start; gap: 12px;
	padding: 16px 28px 16px 0; border-bottom: 1px solid rgba(0,0,0,.08);
}
.epic-quickcart .ld-cart-product:first-child { padding-top: 0; }
.epic-quickcart .ld-cart-product-remove {
	position: absolute; top: 14px; right: 0; width: 24px; height: 24px;
	display: inline-flex; align-items: center; justify-content: center;
	color: inherit; opacity: .55; font-size: 16px; text-decoration: none; border-radius: 50%;
}
.epic-quickcart .ld-cart-product:first-child .ld-cart-product-remove { top: -2px; }
.epic-quickcart .ld-cart-product-remove:hover { opacity: 1; background: rgba(0,0,0,.06); }
.epic-quickcart .ld-cart-product-info { flex: 1 1 auto; min-width: 0; }
.epic-quickcart .ld-cart-product-link { display: flex; align-items: center; gap: 14px; color: inherit; text-decoration: none; }
.epic-quickcart .ld-cart-product-info figure { flex: 0 0 64px; width: 64px; margin: 0; }
.epic-quickcart .ld-cart-product-info figure img { width: 64px; height: 64px; object-fit: cover; border-radius: 4px; display: block; }
.epic-quickcart .ld-cart-product-details { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.epic-quickcart .ld-cart-product-name { font-size: 15px; font-weight: 600; line-height: 1.3; }
.epic-quickcart .ld-cart-product-details dl.variation { margin: 0; font-size: 12px; opacity: .7; }
.epic-quickcart .ld-cart-product-details dl.variation dt,
.epic-quickcart .ld-cart-product-details dl.variation dd { display: inline; margin: 0; }
.epic-quickcart .ld-cart-product-details dl.variation dd p { display: inline; margin: 0; }
.epic-quickcart .ld-cart-product-price { font-size: 14px; opacity: .8; }

.epic-quickcart .ld-cart-product-price-qty {
	display: inline-flex; align-items: center; gap: 2px; margin: 10px 0 0 78px;
	border: 1px solid rgba(0,0,0,.15); border-radius: 20px; padding: 2px;
}
.epic-quickcart .ld-cart-product-price-qty-update {
	width: 26px; height: 26px; padding: 0; border: 0; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: none; color: inherit; cursor: pointer;
}
.epic-quickcart .ld-cart-product-price-qty-update:hover:not(:disabled) { background: rgba(0,0,0,.07); }
.epic-quickcart .ld-cart-product-price-qty-update:disabled { opacity: .3; cursor: default; }
.epic-quickcart .ld-cart-product-qty { min-width: 22px; text-align: center; font-size: 13px; font-weight: 600; }

.epic-quickcart .ld-cart-foot { padding-top: 20px; margin-top: auto; }
.epic-quickcart .ld-cart-total { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 16px; font-size: 16px; font-weight: 600; }
.epic-quickcart .ld-cart-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.epic-quickcart .ld-cart-buttons .btn {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 13px 16px; border-radius: 4px; font-size: 14px; font-weight: 600; text-decoration: none;
	border: 1px solid #111; transition: background-color .2s, color .2s;
}
.epic-quickcart .ld-cart-buttons .btn-cart { background: transparent; color: #111; }
.epic-quickcart .ld-cart-buttons .btn-cart:hover { background: #111; color: #fff; }
.epic-quickcart .ld-cart-buttons .btn-checkout { background: #111; color: #fff; }
.epic-quickcart .ld-cart-buttons .btn-checkout:hover { background: #333; border-color: #333; }
.ld-cart-message { margin-top: 16px; font-size: 13px; opacity: .75; }

@media (prefers-reduced-motion: reduce) {
	.epic-cart-panel, .epic-header-cart .ld-module-dropdown, .ld-module-cart-offcanvas-dropdown, .epic-cart-backdrop { transition: none !important; }
}

.epic-quickcart .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
