/* ==========================================================================
   MDENT mini-cart drawer (inc/mini-cart.php + woocommerce/cart/mini-cart.php)
   Slide-in panel from the right on desktop, bottom sheet on phones.
   1.21.1: one scrolling area (items, free shipping, reminder box, „Tęsti
   apsipirkimą“) between a compact header and a compact footer (subtotal +
   buttons) — on a phone with Safari's toolbars the list keeps ~400 px.
   ========================================================================== */

.mdent-mini-cart {
	/* Above the header (50), the shop's search box (200) and „Filtrai“ button
	   (900); below PhotoSwipe (1500) and the cookie dialog (99999). */
	position: fixed; inset: 0; z-index: 1000;
	visibility: hidden; pointer-events: none;
	transition: visibility 0s linear 0.45s;
	font-family: var(--font-sans); color: var(--fg);
}
.mdent-mini-cart.is-open { visibility: visible; pointer-events: auto; transition-delay: 0s; }

.mdent-mini-cart__backdrop {
	position: absolute; inset: 0;
	background: oklch(0.18 0.01 50 / 0.42);
	-webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
	opacity: 0; transition: opacity 0.4s;
}
.mdent-mini-cart.is-open .mdent-mini-cart__backdrop { opacity: 1; }

.mdent-mini-cart__panel {
	position: absolute; top: 0; right: 0; bottom: 0;
	width: min(27.5rem, 100%);
	display: flex; flex-direction: column;
	background: var(--bg);
	box-shadow: -24px 0 60px -20px oklch(0.2 0.02 60 / 0.25);
	transform: translateX(104%);
	transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1);
	outline: 0;
}
.mdent-mini-cart.is-open .mdent-mini-cart__panel { transform: none; }
.mdent-mini-cart__handle { display: none; }

/* Phone: bottom sheet */
@media (max-width: 63.99rem) {
	.mdent-mini-cart__panel {
		top: auto; left: 0; right: 0; bottom: 0; width: 100%;
		max-height: calc(100vh - 4.5rem); /* iOS < 15.4: 100vh is the large viewport */
		max-height: calc(100dvh - 0.75rem);
		border-radius: var(--r-xl) var(--r-xl) 0 0;
		box-shadow: 0 -24px 60px -20px oklch(0.2 0.02 60 / 0.3);
		transform: translateY(104%);
	}
	.mdent-mini-cart.is-dragging .mdent-mini-cart__panel { transition: none; }
	.mdent-mini-cart__handle {
		display: block; width: 2.5rem; height: 0.25rem; border-radius: 999px;
		background: var(--border); margin: 0.5rem auto 0; flex: none;
		touch-action: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mdent-mini-cart, .mdent-mini-cart__backdrop, .mdent-mini-cart__panel { transition: none; }
}

/* ---------- Header ---------- */
.mdent-mini-cart__head {
	display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
	padding: 1.5rem 1.5rem 0.75rem; flex: none;
}
.mdent-mini-cart__eyebrow {
	display: block; font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--champagne-text); margin-bottom: 0.3rem;
}
.mdent-mini-cart__title {
	font-family: var(--font-display); font-weight: 400; font-size: 1.9rem; line-height: 1.1;
	letter-spacing: -0.01em; margin: 0; color: var(--fg);
}
.mdent-mini-cart__close {
	flex: none; width: 2.75rem; height: 2.75rem; border-radius: 999px;
	border: 1px solid var(--border); background: var(--card); color: var(--fg);
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
	transition: background-color 0.2s, border-color 0.2s;
}
.mdent-mini-cart__close:hover { background: var(--sand); }
.mdent-mini-cart__close svg { width: 1.1rem; height: 1.1rem; }
.mdent-mini-cart__close:focus-visible, .mdent-mini-cart__qty-btn:focus-visible,
.mdent-mini-cart__remove:focus-visible, .mdent-mini-cart__continue:focus-visible,
.mdent-mini-cart__actions .btn:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }

.mdent-mini-cart__added {
	margin: 0 0 0 auto; flex: none; /* in the header row, next to the close button */
	display: inline-flex; align-items: center; gap: 0.4rem; align-self: center;
	padding: 0.4rem 0.8rem 0.4rem 0.6rem; border-radius: 999px; white-space: nowrap;
	background: var(--champagne); color: var(--ink);
	font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.01em;
	animation: mdent-mc-pop 0.4s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.mdent-mini-cart__added[hidden] { display: none; }
.mdent-mini-cart__added svg { width: 0.9rem; height: 0.9rem; color: var(--champagne-text); }
@keyframes mdent-mc-pop { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

.mdent-mini-cart__notice {
	margin: 0 1.5rem 0.75rem; padding: 0.7rem 0.9rem; flex: none;
	border-radius: var(--r-sm); background: oklch(0.96 0.03 25); color: var(--destructive);
	font-size: 0.8125rem; line-height: 1.45;
}
.mdent-mini-cart__notice[hidden] { display: none; }

/* Phones: a compact one-row header — title, „Pridėta“, close (after the rules above). */
@media (max-width: 63.99rem) {
	.mdent-mini-cart__head { align-items: center; padding: 0.35rem 1rem 0.55rem; touch-action: none; }
	.mdent-mini-cart__eyebrow { display: none; }
	.mdent-mini-cart__title { font-size: 1.6rem; }
	.mdent-mini-cart__notice { margin: 0 1rem 0.6rem; }
}
@media (max-width: 22.49rem) { .mdent-mini-cart__added-more { display: none; } }

/* ---------- Body (fragment) ---------- */
.mdent-mini-cart .widget_shopping_cart_content,
.mdent-mini-cart__body { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.mdent-mini-cart.is-busy .mdent-mini-cart__body { opacity: 0.6; pointer-events: none; }
.mdent-mini-cart__body { transition: opacity 0.2s; }

/* The one scrolling area: items, free shipping, the reminder box, „Tęsti apsipirkimą“. */
.mdent-mini-cart__scroll {
	--mc-pad: 1.5rem; --mc-item-pad: 0.85rem; --mc-item-gap: 0.75rem;
	flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: 0.125rem var(--mc-pad) 0.5rem;
}
@media (max-width: 63.99rem) {
	.mdent-mini-cart__scroll { --mc-pad: 1rem; --mc-item-pad: 0.75rem; --mc-item-gap: 0.625rem; }
}

.mdent-mini-cart__items { list-style: none; margin: 0; padding: 0; }
/* Defensive resets against WooCommerce's widget stylesheet */
.woocommerce ul.mdent-mini-cart__items li, .woocommerce-page ul.mdent-mini-cart__items li { padding: var(--mc-item-pad, 0.85rem); margin: 0 0 var(--mc-item-gap, 0.75rem); list-style: none; }
.woocommerce ul.mdent-mini-cart__items li::before, .woocommerce ul.mdent-mini-cart__items li::after { content: none; display: none; }
.woocommerce ul.mdent-mini-cart__items li img { float: none; width: 100%; margin: 0; box-shadow: none; }
.woocommerce ul.mdent-mini-cart__items li a { display: inline; font-weight: inherit; }
.woocommerce ul.mdent-mini-cart__items li a.mdent-mini-cart__name { display: block; font-weight: 500; }
.woocommerce ul.mdent-mini-cart__items li a.mdent-mini-cart__remove { display: inline-flex; }
.woocommerce ul.mdent-mini-cart__items li dl { padding: 0; border: 0; }
.woocommerce ul.mdent-mini-cart__items li dl dt, .woocommerce ul.mdent-mini-cart__items li dl dd { float: none; display: inline; margin: 0; padding: 0; font-weight: inherit; }

.mdent-mini-cart__item {
	position: relative;
	display: grid; grid-template-columns: var(--mc-thumb, 4.25rem) 1fr; gap: 0.9rem; align-items: start;
	padding: var(--mc-item-pad, 0.85rem); margin: 0 0 var(--mc-item-gap, 0.75rem);
	background: var(--card); border: 1px solid var(--border); border-radius: var(--r-md);
	box-shadow: var(--shadow-soft);
	transition: opacity 0.2s, border-color 0.3s, box-shadow 0.3s;
}
.mdent-mini-cart__item.is-updating { opacity: 0.55; pointer-events: none; }
.mdent-mini-cart__item.is-just-added { border-color: var(--champagne-deep); animation: mdent-mc-glow 1.6s ease-out; }
@keyframes mdent-mc-glow {
	0% { box-shadow: 0 0 0 4px oklch(0.72 0.07 70 / 0.35), var(--shadow-soft); }
	100% { box-shadow: 0 0 0 0 oklch(0.72 0.07 70 / 0), var(--shadow-soft); }
}

@media (max-width: 63.99rem) { .mdent-mini-cart__scroll { --mc-thumb: 3.75rem; } .mdent-mini-cart__item { gap: 0.75rem; } }
.mdent-mini-cart__thumb {
	width: var(--mc-thumb, 4.25rem); height: var(--mc-thumb, 4.25rem); border-radius: var(--r-sm);
	background: #fff; border: 1px solid var(--border); overflow: hidden;
	display: flex; align-items: center; justify-content: center; padding: 0.3rem;
}
.mdent-mini-cart__thumb a { display: contents; }
.mdent-mini-cart__thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }

.mdent-mini-cart__info { min-width: 0; padding-right: 2.25rem; }
.mdent-mini-cart__name {
	display: block; font-size: 0.9rem; font-weight: 500; line-height: 1.35; color: var(--fg);
	text-decoration: none; overflow-wrap: anywhere;
}
a.mdent-mini-cart__name:hover { color: var(--champagne-text); }
.mdent-mini-cart__info dl.variation {
	display: flex; flex-wrap: wrap; gap: 0 0.35rem; margin: 0.2rem 0 0; font-size: 0.75rem; color: var(--muted-fg);
}
.mdent-mini-cart__info dl.variation dt, .mdent-mini-cart__info dl.variation dd { margin: 0; display: inline; }
.mdent-mini-cart__info dl.variation dd p { display: inline; margin: 0; }

.mdent-mini-cart__row {
	display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-top: 0.65rem;
}
.mdent-mini-cart__qty {
	display: inline-flex; align-items: stretch; height: 2.5rem; /* 40 px, the ± targets 44 × 40 */
	border: 1px solid var(--border); border-radius: 999px; background: var(--card); overflow: hidden;
}
.mdent-mini-cart__qty--single { align-items: center; padding: 0 0.8rem; font-size: 0.8125rem; color: var(--muted-fg); }
.mdent-mini-cart__qty-btn {
	width: 2.75rem; border: 0; background: transparent; color: var(--fg); cursor: pointer;
	font-size: 1.05rem; line-height: 1; display: inline-flex; align-items: center; justify-content: center;
	transition: background-color 0.2s, color 0.2s; padding: 0;
}
.mdent-mini-cart__qty-btn:hover:not(:disabled) { background: var(--sand); }
.mdent-mini-cart__qty-btn:disabled { color: var(--border); cursor: not-allowed; }
.mdent-mini-cart__qty-input {
	width: 2.25rem; min-width: 0; border: 0; background: transparent; text-align: center;
	font: inherit; font-size: 16px; font-weight: 500; color: var(--fg); padding: 0; /* 16 px: no zoom-in on iPhones */
	-moz-appearance: textfield; appearance: textfield; outline: 0;
	font-variant-numeric: tabular-nums;
}
.mdent-mini-cart__qty-input::-webkit-inner-spin-button, .mdent-mini-cart__qty-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.mdent-mini-cart__line-total {
	font-size: 0.9375rem; font-weight: 500; white-space: nowrap; font-variant-numeric: tabular-nums;
}
.mdent-mini-cart__remove {
	position: absolute; top: 0.25rem; right: 0.25rem;
	width: 2.5rem; height: 2.5rem; border-radius: 999px; /* 40 px target, the × stays small */
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--muted-fg); text-decoration: none; transition: background-color 0.2s, color 0.2s;
}
.mdent-mini-cart__remove:hover { background: var(--sand); color: var(--destructive); }
.mdent-mini-cart__remove svg { width: 0.9rem; height: 0.9rem; }

/* ---------- Free-shipping progress ---------- */
.mdent-mini-cart__ship {
	margin: 0.125rem 0 0.75rem; padding: 0.8rem 1rem;
	background: var(--card); border: 1px solid var(--border); border-radius: var(--r-md);
}
.mdent-mini-cart__ship-text {
	margin: 0 0 0.55rem; font-size: 0.8125rem; color: var(--muted-fg); line-height: 1.4;
	display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap;
}
.mdent-mini-cart__ship-text:last-child { margin-bottom: 0; } /* free by coupon, no threshold: no bar */
.mdent-mini-cart__ship-text strong { color: var(--fg); font-weight: 500; }
.mdent-mini-cart__ship-text svg { width: 0.9rem; height: 0.9rem; color: var(--champagne-text); }
.mdent-mini-cart__ship-track { height: 0.375rem; border-radius: 999px; background: var(--sand); overflow: hidden; }
.mdent-mini-cart__ship-bar {
	height: 100%; border-radius: 999px; background: var(--champagne-deep);
	transition: width 0.5s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.mdent-mini-cart__ship.is-free .mdent-mini-cart__ship-bar { background: var(--champagne-deep); }
.mdent-mini-cart__ship.is-free .mdent-mini-cart__ship-text strong { color: var(--champagne-text); }

/* ---------- Summary ---------- */
/* Footer: never scrolls away. */
.mdent-mini-cart__summary {
	flex: none; padding: 0.85rem 1.5rem calc(1rem + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid var(--border); background: var(--bg);
	box-shadow: 0 -14px 24px -22px oklch(0.2 0.02 60 / 0.35);
}
@media (max-width: 63.99rem) {
	.mdent-mini-cart__summary { padding: 0.7rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px)); }
}
.mdent-mini-cart__subtotal {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 0.7rem;
}
.mdent-mini-cart__subtotal-label { display: flex; flex-direction: column; font-size: 0.9375rem; line-height: 1.3; color: var(--fg); }
.mdent-mini-cart__subtotal-note { font-size: 0.75rem; color: var(--muted-fg); text-wrap: pretty; }
.mdent-mini-cart__subtotal-amount {
	font-family: var(--font-display); font-size: 1.6rem; font-weight: 500; line-height: 1; color: var(--fg);
	font-variant-numeric: tabular-nums;
}
.mdent-mini-cart__subtotal-amount .woocommerce-Price-currencySymbol { font-size: 0.85em; margin-left: 0.05em; }
/* [Peržiūrėti krepšelį][Apmokėti] side by side; on very narrow phones they wrap. */
.mdent-mini-cart__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; }
.mdent-mini-cart__actions .btn { flex: 1 1 auto; min-height: 3rem; padding: 0.8rem 1rem; white-space: nowrap; }
.mdent-mini-cart__actions .mdent-mini-cart__checkout { flex: 1 1 45%; }
.mdent-mini-cart__actions .btn--outline { background: var(--card); }
@media (max-width: 22.49rem) { /* < 360 px: both buttons still fit one row */
	.mdent-mini-cart__actions .btn { padding: 0.75rem 0.6rem; font-size: 0.8125rem; letter-spacing: 0; }
	.mdent-mini-cart__actions .mdent-mini-cart__checkout { flex-basis: 40%; }
}
.mdent-mini-cart__continue {
	display: block; width: 100%; min-height: 2.75rem; margin: 0.25rem 0 0; padding: 0.4rem;
	background: none; border: 0; cursor: pointer;
	font: inherit; font-size: 0.8125rem; color: var(--muted-fg); text-decoration: underline; text-underline-offset: 0.2em;
	transition: color 0.2s;
}
.mdent-mini-cart__continue:hover { color: var(--fg); }

/* ---------- Empty ---------- */
.mdent-mini-cart__empty {
	flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-align: center; padding: 2.5rem 1.75rem 3rem;
}
.mdent-mini-cart__empty-icon {
	width: 4rem; height: 4rem; border-radius: 999px; background: var(--sand); color: var(--champagne-text);
	display: inline-flex; align-items: center; justify-content: center; margin-bottom: 1.25rem;
}
.mdent-mini-cart__empty-icon svg { width: 1.6rem; height: 1.6rem; }
.mdent-mini-cart__empty-title {
	font-family: var(--font-display); font-weight: 400; font-size: 1.5rem; margin: 0 0 0.5rem; color: var(--fg);
}
.mdent-mini-cart__empty .woocommerce-mini-cart__empty-message {
	font-size: 0.9rem; color: var(--muted-fg); line-height: 1.6; margin: 0 0 1.5rem; max-width: 18rem;
}

/* ---------- Page scroll lock ---------- */
/* overscroll-behavior: a downward drag on the sheet must not pull-to-refresh the page. */
body.mdent-cart-open { overflow: hidden; overscroll-behavior: none; }
html:has(> body.mdent-cart-open) { overscroll-behavior: none; }
body.mdent-cart-open .sticky-cta,
body.mdent-cart-open .mdent-sp-sticky { opacity: 0; pointer-events: none; }
/* The ASMS „Išsaugokite krepšelį“ prompt is position:fixed at z-index 99999 and
   would sit on top of the drawer's footer (subtotal + buttons); hide it while
   the drawer is open — it comes back as soon as the drawer closes. */
body.mdent-cart-open #asms-wc-cart-prompt,
body.mdent-cart-open .asms-wc-cart-prompt { visibility: hidden; pointer-events: none; }
/* The cookie settings button (M Cookie Consent, fixed, z-index 99999) would
   cover the bottom of the sheet on phones the same way. */
body.mdent-cart-open #mcc-reopen { visibility: hidden; pointer-events: none; }

/* Header cart icon doubles as the drawer trigger */
a.mdent-cart-link[aria-expanded="true"] { background: var(--sand); color: var(--fg); }

/* ---------- „Priminsime apie krepšelį“ (inc/cart-recovery.php, assets/js/cart-remind.js) ---------- */
.mdent-cart-remind { margin: 0.75rem 0 0; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--card); text-align: left; }
.mdent-cart-remind__summary {
	display: flex; align-items: center; gap: 0.55rem; padding: 0.7rem 0.9rem; cursor: pointer; list-style: none;
	font-size: 0.8125rem; line-height: 1.35; color: var(--fg);
}
.mdent-cart-remind__summary::-webkit-details-marker { display: none; }
.mdent-cart-remind__summary svg { flex: none; width: 1.05rem; height: 1.05rem; color: var(--champagne-text); }
.mdent-cart-remind__summary::after {
	content: ""; flex: none; margin-left: auto; width: 0.42rem; height: 0.42rem;
	border-right: 1.5px solid var(--muted-fg); border-bottom: 1.5px solid var(--muted-fg); transform: translateY(-0.12rem) rotate(45deg); transition: transform 0.2s;
}
.mdent-cart-remind[open] .mdent-cart-remind__summary::after { transform: translateY(0.12rem) rotate(-135deg); }
.mdent-cart-remind[data-saved] .mdent-cart-remind__title { color: var(--champagne-text); font-weight: 500; }
.mdent-cart-remind__summary:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; border-radius: var(--r-md); }
.mdent-cart-remind__body { display: grid; gap: 0.55rem; padding: 0 0.9rem 0.9rem; }
.mdent-cart-remind__choices { display: flex; flex-wrap: wrap; gap: 0.35rem 1.25rem; font-size: 0.875rem; }
.mdent-cart-remind__choice { display: inline-flex; align-items: center; gap: 0.45rem; cursor: pointer; color: var(--fg); }
.mdent-cart-remind__choice input { width: 1.05rem; height: 1.05rem; margin: 0; accent-color: var(--ink); }
.mdent-cart-remind__input {
	box-sizing: border-box; width: 100%; padding: 0.7rem 0.85rem; border: 1px solid var(--input); border-radius: var(--r-sm);
	background: var(--bg); color: var(--fg); font: inherit; font-size: 16px; /* 16px: no zoom-in on iPhones */
}
.mdent-cart-remind__input:focus { outline: 2px solid var(--ring); outline-offset: 1px; border-color: transparent; }
.mdent-cart-remind__input[hidden], .mdent-cart-remind__off[hidden], .mdent-cart-remind__msg[hidden] { display: none; }
.mdent-cart-remind .btn.mdent-cart-remind__save { width: 100%; padding: 0.75rem 1.25rem; background: var(--card); }
.mdent-cart-remind__off {
	justify-self: start; padding: 0; background: none; border: 0; cursor: pointer;
	font: inherit; font-size: 0.75rem; color: var(--muted-fg); text-decoration: underline; text-underline-offset: 0.2em;
}
.mdent-cart-remind__note { margin: 0; font-size: 0.7rem; line-height: 1.5; color: var(--muted-fg); }
.mdent-cart-remind__note a { color: inherit; }
.mdent-cart-remind__msg { margin: 0; font-size: 0.8rem; line-height: 1.4; color: var(--champagne-text); }
.mdent-cart-remind__msg.is-error { color: var(--destructive); }
.mdent-cart-remind.is-busy { opacity: 0.6; pointer-events: none; }
/* In the drawer the box sits in the scrolling area (mdent_mini_cart_extras):
   opening it scrolls with the list and never covers the buttons. */
.mdent-mini-cart__scroll .mdent-cart-remind { margin: 0 0 0.25rem; }

/* Reduced motion: no pop-in for „Pridėta“ and no glow on the added line
   (after the rules that set those animations, so it wins). */
@media (prefers-reduced-motion: reduce) {
	.mdent-mini-cart__added, .mdent-mini-cart__item.is-just-added { animation: none; }
}
