/* Alyura commerce UI: side cart, cart page, offers, quantity stepper. Tokens come from main.css. */

.alyura-no-scroll { overflow: hidden; }

/* ---------- Side cart drawer ---------- */
.alyura-cartdrawer {
	position: fixed;
	inset: 0 0 0 auto;
	width: min(440px, 100vw);
	max-width: 100vw;
	height: 100dvh;
	max-height: 100dvh;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--a-bg);
	color: var(--a-ink);
	box-shadow: -12px 0 32px rgba(10, 52, 64, 0.18);
	overflow: hidden;
}
.alyura-cartdrawer[open] { display: flex; flex-direction: column; animation: alyura-drawer-in 0.22s ease-out; }
.alyura-cartdrawer::backdrop { background: rgba(10, 52, 64, 0.5); }
@keyframes alyura-drawer-in { from { transform: translateX(32px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .alyura-cartdrawer[open] { animation: none; } }

.alyura-cartdrawer__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 8px 10px 20px; background: var(--a-surface); border-bottom: 1px solid var(--a-border); }
.alyura-cartdrawer__title { margin: 0; font-size: 20px; font-weight: 700; }
.alyura-cartdrawer__count { color: var(--a-ink-subtle); font-weight: 600; }
.alyura-cartdrawer__close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: var(--a-ink); cursor: pointer; }
.alyura-cartdrawer__close:hover { background: var(--a-bg); }

.alyura-cartui--drawer { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.alyura-cartui__scroll { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 14px 16px 18px; display: flex; flex-direction: column; gap: 12px; }
.alyura-cartui__foot { padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--a-surface); border-top: 1px solid var(--a-border); box-shadow: var(--a-shadow-bar); display: grid; gap: 8px; }
.alyura-cartui__foot-saved { margin: 0; text-align: center; color: var(--a-success); font-weight: 600; font-size: 14px; }
.alyura-cartui__viewcart { justify-self: center; min-height: 36px; display: inline-flex; align-items: center; color: var(--a-brand); font-weight: 600; font-size: 15px; }
.alyura-cartui__loading { margin: 24px 16px; color: var(--a-ink-muted); }
.alyura-cartui.is-busy { cursor: progress; }
.alyura-cartui.is-busy :is(.alyura-cartui__items, .alyura-cartui__summary, .alyura-cartui__offers, .alyura-cartui__coupon) { opacity: 0.55; pointer-events: none; transition: opacity 0.15s; }

/* Shared blocks inside drawer and page */
.alyura-cartui__items { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.alyura-cartui--drawer :is(.alyura-cartui__items > li, .alyura-cartui__offers, .alyura-cartui__coupon, .alyura-cartui__summary, .alyura-cartui__free) { background: var(--a-surface); border: 1px solid var(--a-border); border-radius: var(--a-r-lg); }
.alyura-cartui__item { display: grid; grid-template-columns: 84px 1fr; gap: 12px; padding: 12px; }
.alyura-cartui--page .alyura-cartui__item { grid-template-columns: 112px 1fr; padding: 16px 0; border-bottom: 1px solid var(--a-border); }
.alyura-cartui--page .alyura-cartui__item:last-child { border-bottom: 0; }
.alyura-cartui__thumb { display: block; aspect-ratio: 1; border-radius: var(--a-r-md); overflow: hidden; background: var(--a-bg); }
.alyura-cartui__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.alyura-cartui__info { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.alyura-cartui__seller { font-size: 13px; color: var(--a-ink-subtle); font-weight: 600; text-transform: uppercase; letter-spacing: 0.02em; }
.alyura-cartui__name { color: var(--a-ink); font-weight: 600; font-size: 15px; line-height: 1.3; text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.alyura-cartui__name:hover { color: var(--a-brand); text-decoration: underline; }
.alyura-cartui__metas { display: flex; flex-wrap: wrap; gap: 4px 10px; }
.alyura-cartui__meta { font-size: 13px; color: var(--a-ink-muted); }
.alyura-cartui__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin-top: 2px; }
.alyura-cartui__now { font-weight: 700; font-size: 16px; }
.alyura-cartui__mrp { color: var(--a-ink-subtle); font-size: 14px; }
.alyura-cartui__off { color: var(--a-success); font-weight: 700; font-size: 14px; }
.alyura-cartui__low { color: var(--a-danger); font-size: 13px; font-weight: 600; }
.alyura-cartui__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 6px; }

.alyura-qty { display: inline-flex; align-items: center; border: 1px solid var(--a-border-strong); border-radius: var(--a-r-pill); background: var(--a-surface); }
.alyura-qty__btn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: var(--a-ink); cursor: pointer; }
.alyura-qty__btn:hover:not(:disabled) { background: var(--a-brand-soft); color: var(--a-brand); }
.alyura-qty__btn:disabled { color: var(--a-border-strong); cursor: not-allowed; }
.alyura-qty__value { min-width: 28px; text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }

.alyura-cartui__remove, .alyura-cartui__link { min-height: 36px; padding: 0 4px; border: 0; background: none; color: var(--a-ink-muted); font: 600 14px/1 var(--a-font); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.alyura-cartui__remove:hover, .alyura-cartui__link:hover { color: var(--a-danger); }
.alyura-cartui__link { color: var(--a-brand); }
.alyura-cartui__link:hover { color: var(--a-brand-hover); }

/* Free delivery progress */
.alyura-cartui__free { display: flex; gap: 12px; align-items: center; padding: 12px 14px; background: var(--a-brand-soft); border-radius: var(--a-r-lg); }
.alyura-cartui--drawer .alyura-cartui__free { background: var(--a-brand-soft); border-color: transparent; }
.alyura-cartui__free-icon { display: inline-flex; color: var(--a-brand); }
.alyura-cartui__free-body { flex: 1; }
.alyura-cartui__free-text { margin: 0 0 6px; font-size: 14px; }
.alyura-cartui__free-track { height: 6px; border-radius: 99px; background: rgba(15, 76, 92, 0.15); overflow: hidden; }
.alyura-cartui__free-fill { display: block; height: 100%; border-radius: inherit; background: var(--a-brand); transition: width 0.3s ease; }
.alyura-cartui__free.is-done .alyura-cartui__free-fill { background: var(--a-success); }

/* Headings, coupon, offers */
.alyura-cartui__heading { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 16px; font-weight: 700; }
.alyura-cartui__heading-icon { display: inline-flex; color: var(--a-brand); }
.alyura-cartui__heading--plain { text-transform: uppercase; letter-spacing: 0.04em; font-size: 14px; color: var(--a-ink-muted); }
.alyura-cartui--drawer :is(.alyura-cartui__offers, .alyura-cartui__coupon, .alyura-cartui__summary) { padding: 14px; }

.alyura-cartui__coupon-form { display: flex; gap: 8px; }
.alyura-cartui__coupon-input { flex: 1; min-width: 0; min-height: 44px; padding: 0 12px; border: 1px solid var(--a-input-border); border-radius: var(--a-r-md); font: 600 15px var(--a-font); text-transform: uppercase; background: var(--a-surface); color: var(--a-ink); }
.alyura-cartui__coupon-input::placeholder { text-transform: none; font-weight: 400; color: var(--a-ink-subtle); }
.alyura-cartui__coupon-btn { flex: none; }
.alyura-cartui__applied-list { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 6px; }
.alyura-cartui__applied { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px dashed var(--a-success); border-radius: var(--a-r-md); background: #EEF8F1; font-size: 14px; }
.alyura-cartui__applied-icon { display: inline-flex; color: var(--a-success); }
.alyura-cartui__applied-body { flex: 1; }

.alyura-cartui__offer-list { list-style: none; margin: 0 0 4px; padding: 0; display: grid; gap: 8px; }
.alyura-offer-card { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px dashed var(--a-border-strong); border-radius: var(--a-r-md); background: #FFFBF0; }
.alyura-offer-card__body { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.alyura-offer-card__title { font-weight: 700; }
.alyura-offer-card__text { font-size: 14px; color: var(--a-ink-muted); }
.alyura-offer-card__code { font-size: 13px; color: var(--a-ink-muted); }
.alyura-offer-card__code strong { color: var(--a-ink); letter-spacing: 0.04em; }
.alyura-offer-card__need { font-size: 13px; color: #8A5300; font-weight: 600; }
.alyura-offer-card__apply { flex: none; min-height: 40px; padding: 0 14px; border: 1px solid var(--a-brand); border-radius: var(--a-r-md); background: var(--a-surface); color: var(--a-brand); font: 700 14px var(--a-font); cursor: pointer; }
.alyura-offer-card__apply:hover:not(:disabled) { background: var(--a-brand); color: var(--a-on-brand); }
.alyura-offer-card__apply:disabled { border-color: var(--a-border); color: var(--a-ink-subtle); cursor: not-allowed; }

/* Price details */
.alyura-cartui__lines { margin: 0; display: grid; gap: 10px; }
.alyura-cartui__line { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; }
.alyura-cartui__line dt, .alyura-cartui__line dd { margin: 0; }
.alyura-cartui__line.is-green dd { color: var(--a-success); font-weight: 600; }
.alyura-cartui__line.is-total { padding-top: 12px; border-top: 1px dashed var(--a-border-strong); font-size: 17px; font-weight: 700; }
.alyura-cartui__saved { margin: 12px 0 0; padding: 8px 10px; border-radius: var(--a-r-md); background: #EEF8F1; color: var(--a-success); font-weight: 700; font-size: 14px; }
.alyura-cartui__trust { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--a-ink-muted); font-size: 13px; }
.alyura-cartui__trust span { display: inline-flex; color: var(--a-brand); }

.alyura-cartui__checkout { width: 100%; justify-content: space-between; min-height: 52px; padding: 0 18px; font-size: 17px; font-weight: 700; border-radius: var(--a-r-md); }
.alyura-cartui__checkout-total { font-variant-numeric: tabular-nums; }

.alyura-cartui__error { margin: 0; padding: 10px 12px; border-radius: var(--a-r-md); background: #FDECEA; color: var(--a-danger); font-weight: 600; font-size: 14px; }
.alyura-cartui__flash { display: flex; align-items: center; gap: 8px; margin: 0; padding: 10px 12px; border-radius: var(--a-r-md); background: #EEF8F1; color: var(--a-success); font-weight: 700; font-size: 14px; }
.alyura-cartui__flash span { display: inline-flex; }

/* Empty */
.alyura-cartui__empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 48px 24px; }
.alyura-cartui__empty-icon { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: var(--a-brand-soft); color: var(--a-brand); }
.alyura-cartui__empty-icon svg { width: 32px; height: 32px; }
.alyura-cartui__empty-title { margin: 8px 0 0; font-size: 20px; font-weight: 700; }
.alyura-cartui__empty-text { margin: 0 0 8px; color: var(--a-ink-muted); max-width: 300px; }

/* ---------- Cart page ---------- */
.alyura-cartui--page { display: grid; gap: 16px; align-items: start; padding-bottom: 96px; }
.alyura-cartui--page .alyura-cartui__empty { background: var(--a-surface); border: 1px solid var(--a-border); border-radius: var(--a-r-lg); }
.alyura-cartui__main, .alyura-cartui__side { display: grid; gap: 14px; min-width: 0; }
.alyura-cartui__card { background: var(--a-surface); border: 1px solid var(--a-border); border-radius: var(--a-r-lg); padding: 16px 18px; }
.alyura-cartui__title { margin: 0 0 12px; font-size: 20px; }
.alyura-cartui--page .alyura-cartui__free { margin-bottom: 4px; }
.alyura-cartui__checkout--side { margin-top: 16px; }
.alyura-cartui__bar { position: fixed; z-index: 40; left: 0; right: 0; bottom: var(--a-bottomnav-h); display: flex; align-items: center; gap: 12px; padding: 10px 16px; background: var(--a-surface); border-top: 1px solid var(--a-border); box-shadow: var(--a-shadow-bar); }
.alyura-cartui__bar-total { display: flex; flex-direction: column; flex: 1; line-height: 1.2; }
.alyura-cartui__bar-total strong { font-size: 18px; }
.alyura-cartui__bar-total span { color: var(--a-success); font-size: 13px; font-weight: 600; }
.alyura-cartui__checkout--bar { width: auto; flex: 0 0 auto; min-width: 150px; justify-content: center; }
.alyura-cartui__checkout--bar .alyura-cartui__checkout-total { display: none; }
.alyura-cartui__checkout--side { display: none; }

@media (min-width: 960px) {
	.alyura-cartui--page { grid-template-columns: minmax(0, 1fr) 380px; gap: 20px; padding-bottom: 32px; }
	.alyura-cartui--page > .alyura-cartui__empty { grid-column: 1 / -1; }
	.alyura-cartui__side { position: sticky; top: 140px; }
	.alyura-cartui__bar { display: none; }
	.alyura-cartui__checkout--side { display: inline-flex; }
	.alyura-cartui__card { padding: 20px 24px; }
}

/* Cart page: lines grouped by seller */
.alyura-cartui__groups { display: grid; gap: 8px; }
.alyura-cartui__group + .alyura-cartui__group { padding-top: 8px; border-top: 6px solid var(--a-bg); }
.alyura-cartui__group-title { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; font-size: 15px; color: var(--a-ink-muted); }
.alyura-cartui__group-title span { display: inline-flex; color: var(--a-brand); }
