/* Кошик (08-koshyk) і порожній кошик (16-sluzhbovi). */
.vv-cart__head { display: flex; align-items: baseline; justify-content: space-between; padding-top: 24px; }
.vv-cart__h1 { font: 700 32px/36px var(--vv-font); text-transform: uppercase; color: var(--vv-black); }
.vv-cart__count { font: 400 13px/20px var(--vv-font); color: var(--vv-stone); }
.vv-cart__layout { display: flex; flex-direction: column; padding-top: 8px; }
.vv-cart__main { display: flex; flex-direction: column; }

/* Рядок */
.vv-cart__row { display: flex; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--vv-line-soft); }
.vv-cart__row.is-busy { opacity: .5; pointer-events: none; }
.vv-cart__thumb { flex: none; width: 96px; height: 120px; background: var(--vv-sand); overflow: hidden; }
.vv-cart__thumb--care { background: var(--vv-white); }
.vv-cart__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.vv-cart__info { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; }
.vv-cart__top { display: flex; justify-content: space-between; gap: 12px; }
.vv-cart__name { font: 500 15px/22px var(--vv-font); color: var(--vv-black); }
.vv-cart__remove { flex: none; display: inline-flex; align-items: flex-start; color: var(--vv-stone); position: relative; }
.vv-cart__remove::after { content: ""; position: absolute; inset: -12px; }
.vv-cart__head-row { display: flex; flex-direction: column; gap: 4px; }
.vv-cart__meta { font: 400 12px/20px var(--vv-font); color: var(--vv-stone); }
.vv-cart__bottom { display: flex; align-items: center; justify-content: space-between; }
.vv-qty { position: relative; display: inline-flex; align-items: center; height: 32px; cursor: pointer; }
.vv-qty__val { display: inline-flex; align-items: center; gap: 6px; font: 400 14px/20px var(--vv-font); color: var(--vv-black); }
.vv-qty__val .vv-icon { color: var(--vv-ink-2); }
.vv-qty__select { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; font-size: 16px; }
.vv-cart__price { font: 600 15px/22px var(--vv-font); color: var(--vv-black); white-space: nowrap; }

/* «Додати догляд» */
.vv-cart-cross { display: flex; flex-direction: column; gap: 16px; padding-top: 32px; }
.vv-cart-cross__title { font: 500 10px/12px var(--vv-font); letter-spacing: .18em; color: var(--vv-ink-2); }
.vv-rail-cart { display: flex; gap: 12px; margin-inline: calc(var(--vv-gutter) * -1); padding-inline: var(--vv-gutter); scroll-padding-inline: var(--vv-gutter); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.vv-rail-cart::-webkit-scrollbar { display: none; }
.vv-cart-cross__item { flex: none; width: 240px; display: flex; align-items: center; gap: 12px; padding: 12px; background: var(--vv-ivory); scroll-snap-align: start; }
.vv-cart-cross__img { flex: none; width: 56px; height: 72px; background: var(--vv-white); overflow: hidden; }
.vv-cart-cross__img img { width: 100%; height: 100%; object-fit: cover; }
.vv-cart-cross__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.vv-cart-cross__name { font: 500 13px/20px var(--vv-font); color: var(--vv-black); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vv-cart-cross__price { font: 500 13px/20px var(--vv-font); color: var(--vv-black); }
.vv-cart-cross__add { align-self: stretch; text-align: left; font: 500 10px/12px var(--vv-font); letter-spacing: .14em; text-transform: uppercase; color: var(--vv-wine); }
.vv-cart-cross .vv-rail-bar { height: 2px; margin-top: 16px; background: var(--vv-sand); }
.vv-cart-cross .vv-rail-bar span { display: block; width: 57%; height: 2px; background: var(--vv-wine); }

/* Підсумок: телефон — промокод, суми, «Оформити», «Продовжити», гарантії */
.vv-cart__aside { display: flex; flex-direction: column; gap: 24px; padding: 32px 0 40px; }
.vv-totals__title { display: none; }
.vv-coupon { order: 1; }
.vv-totals { order: 2; display: flex; flex-direction: column; gap: 12px; }
.vv-cart__actions { order: 3; display: flex; flex-direction: column; gap: 24px; }
.vv-guarantees { order: 4; }
.vv-totals__row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; font: 400 14px/22px var(--vv-font); color: var(--vv-ink-2); }
.vv-totals__note { font: inherit; color: inherit; }
.vv-totals__row--due { padding-top: 16px; border-top: 1px solid var(--vv-black); font: 500 15px/22px var(--vv-font); color: var(--vv-black); }
.vv-totals__due { font: 600 19px/26px var(--vv-font); }
.vv-totals__rm { margin-left: 6px; font: 400 12px/20px var(--vv-font); color: var(--vv-stone); text-decoration: underline; }
.vv-cart__continue { align-self: center; font: 400 13px/20px var(--vv-font); color: var(--vv-ink-2); text-decoration: underline; text-underline-offset: 4px; }

.vv-coupon__toggle > span:first-child { flex: 1; min-width: 0; }
.vv-coupon__toggle { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; height: 56px; padding: 0 20px; background: #F4F2EE; font: 400 14px/24px var(--vv-font); color: var(--vv-stone); text-align: left; }
.vv-coupon__sign { flex: none; width: 16px; font: 400 16px/24px var(--vv-font); text-align: center; }
.vv-coupon__form { display: flex; gap: 8px; padding-top: 8px; }
.vv-coupon__apply { flex: none; padding: 0 20px; }
.vv-coupon__msg { padding-top: 8px; font: 400 13px/20px var(--vv-font); color: var(--vv-wine); }

.vv-guarantees { display: flex; justify-content: space-between; gap: 8px; padding-top: 24px; border-top: 1px solid var(--vv-line-soft); }
.vv-guarantees__item { flex: none; width: 104px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; color: var(--vv-ink-2); }
.vv-guarantees__text { font: 400 12px/18px var(--vv-font); color: var(--vv-ink-2); white-space: nowrap; }

/* Липка панель на телефоні — поки основна кнопка поза екраном */
.vv-cart-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; background: var(--vv-white); border-top: 1px solid var(--vv-line-soft); transform: translateY(110%); transition: transform .25s var(--vv-ease); }
.vv-cart-bar.is-on { transform: none; }
.vv-cart-bar__sum { display: flex; flex-direction: column; }
.vv-cart-bar__label { font: 400 12px/18px var(--vv-font); color: var(--vv-stone); }
.vv-cart-bar__val { font: 600 17px/24px var(--vv-font); color: var(--vv-black); }
.vv-cart-bar__btn { flex: none; width: 184px; padding: 0; }

/* Порожній кошик */
.vv-empty-hero { display: flex; flex-direction: column; align-items: center; gap: 16px; padding-top: 48px; padding-bottom: 40px; text-align: center; }
.vv-empty-hero__icon { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: var(--vv-ivory); color: var(--vv-ink-2); }
.vv-empty-hero__title { font: 700 24px/28px var(--vv-font); text-transform: uppercase; color: var(--vv-black); }
.vv-empty-hero__text { font: 400 14px/24px var(--vv-font); color: var(--vv-ink-2); }
.vv-empty-hero__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; margin-top: 8px; }
.vv-empty-hero__actions .vv-btn { padding: 0; }

@media (min-width: 1024px) {
	.vv-cart__head { justify-content: flex-start; gap: 24px; padding-top: 48px; padding-bottom: 40px; }
	.vv-cart__h1 { font-size: 40px; line-height: 44px; letter-spacing: -.005em; }
	.vv-cart__count { font-size: 16px; line-height: 26px; }
	.vv-cart__layout { flex-direction: row; align-items: flex-start; gap: 32px; padding-top: 0; padding-bottom: 96px; border-bottom: 1px solid var(--vv-line-soft); }
	.vv-cart { background: var(--vv-white); }
	.vv-cart__main { flex: 1; min-width: 0; gap: 32px; }
	.vv-cart__list { display: flex; flex-direction: column; gap: 32px; }
	.vv-cart__row { gap: 24px; padding: 0 0 32px; }
	.vv-cart__thumb { width: 112px; height: 144px; }
	.vv-cart__info { justify-content: flex-start; gap: 12px; }
	.vv-cart__head-row { gap: 12px; }
	.vv-cart__top { align-items: baseline; gap: 24px; }
	.vv-cart__name { font-size: 19px; line-height: 26px; }
	.vv-cart__remove { font: 400 16px/26px var(--vv-font); }
	.vv-cart__meta { margin: 0; font: 400 14px/24px var(--vv-font); color: var(--vv-ink-2); }
	.vv-cart__bottom { margin-top: 8px; }
	.vv-qty { width: 160px; height: auto; }
	.vv-qty__val { gap: 10px; font: 400 15px/24px var(--vv-font); }
	.vv-cart__price { font-size: 19px; line-height: 26px; }

	.vv-cart-cross { gap: 20px; padding-top: 8px; }
	.vv-cart-cross__title { font: var(--vv-eyebrow); letter-spacing: .24em; color: var(--vv-black); }
	.vv-rail-cart { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; overflow: visible; }
	.vv-cart-cross__item { width: auto; gap: 20px; padding: 20px; background: transparent; border: 1px solid var(--vv-line-soft); }
	.vv-cart-cross__img { width: 88px; height: 112px; background: var(--vv-sand); }
	.vv-cart-cross__txt { gap: 10px; }
	.vv-cart-cross__name { font-size: 16px; line-height: 24px; white-space: normal; }
	.vv-cart-cross__price { font: 600 16px/24px var(--vv-font); }
	.vv-cart-cross__add { align-self: flex-start; display: inline-flex; align-items: center; height: 36px; padding: 0 20px; border: 1px solid var(--vv-wine); font-size: 11px; }

	.vv-cart__aside { flex: none; width: 368px; position: sticky; top: 24px; padding: 0; gap: 24px; }
	.vv-totals__title { order: 0; display: block; padding-bottom: 20px; border-bottom: 1px solid var(--vv-line-soft); }
	.vv-totals__title span { display: block; font: 600 26px/32px var(--vv-font); color: var(--vv-black); }
	.vv-totals { order: 1; gap: 16px; }
	.vv-cart__actions { order: 2; gap: 16px; }
	.vv-coupon { order: 3; }
	.vv-guarantees { order: 4; }
	.vv-totals__row { font-size: 15px; line-height: 24px; }
	.vv-totals__row .vv-totals__val { color: var(--vv-black); }
	.vv-totals__row--ship { flex-direction: column; align-items: stretch; gap: 4px; }
	.vv-totals__note { font-size: 13px; line-height: 22px; color: var(--vv-stone); }
	.vv-totals__row--due { border-color: var(--vv-line); font: 500 17px/26px var(--vv-font); }
	.vv-totals__due { font: 700 24px/32px var(--vv-font); }
	.vv-cart__continue { align-self: stretch; display: flex; align-items: center; justify-content: center; height: 48px; border: 1px solid var(--vv-wine); font: var(--vv-btn); letter-spacing: .14em; text-transform: uppercase; color: var(--vv-wine); text-decoration: none; }
	.vv-guarantees__item { width: 112px; gap: 10px; }
	.vv-guarantees__text { color: var(--vv-stone); white-space: normal; }
	.vv-cart-bar { display: none; }

	.vv-empty-hero { gap: 24px; padding-top: 112px; padding-bottom: 96px; background: var(--vv-white); border-bottom: 1px solid var(--vv-line-soft); }
	.vv-empty-hero__icon { background: transparent; border: 1px solid var(--vv-line); }
	.vv-empty-hero__title { font-size: 40px; line-height: 44px; letter-spacing: -.005em; }
	.vv-empty-hero__text { width: 360px; font-size: 17px; line-height: 30px; }
	.vv-empty-hero__actions { display: flex; justify-content: center; gap: 16px; width: auto; margin-top: 16px; }
	.vv-empty-hero__actions .vv-btn { width: 200px; }
	.vv-empty-trust { display: flex; justify-content: center; gap: 96px; padding: 64px var(--vv-gutter) 72px; background: var(--vv-white); }
	.vv-empty-trust__item { flex: none; width: 200px; display: flex; flex-direction: column; align-items: center; gap: 12px; color: var(--vv-ink-2); }
	.vv-empty-trust__item span { font: 400 13px/22px var(--vv-font); color: var(--vv-stone); text-align: center; }
}
@media (min-width: 1280px) {
	.vv-cart__h1 { font-size: 56px; line-height: 58px; }
	.vv-empty-hero__text { width: 452px; }
	.vv-cart__layout { gap: 40px; }
	.vv-cart__aside { width: 408px; }
}
@media (min-width: 1440px) {
	.vv-empty-hero__text { width: 520px; }
	.vv-cart__layout { gap: 48px; }
	.vv-cart__aside { width: 448px; }
	.vv-guarantees__item { width: 138px; }
}
@media (max-width: 1023px) { .vv-empty-hero__actions .vv-btn--line { letter-spacing: .16em; } }
@media (min-width: 1920px) { .vv-guarantees__item { width: 112px; } }
