.cart-v2-page { padding-bottom: 92px; }
.cart-v2-main { max-width: 1280px; }
.cart-v2-page a.cart-toggle { text-decoration: none; }
.basket-progress { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; color: var(--muted); font-size: 12px; margin: 0 0 26px; }
.basket-progress a { color: var(--muted); text-decoration: none; }
.basket-progress strong { color: var(--ink); font-weight: 600; }
.basket-heading { margin-bottom: 24px; }
.basket-heading h1 { display: flex; gap: 14px; align-items: center; font-size: 38px; margin: 5px 0 12px; }
.basket-heading h1 span { display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; min-width: 34px; height: 34px; padding: 0 7px; font-size: 16px; font-weight: 500; }
.basket-heading p:not(.eyebrow) { color: var(--muted); line-height: 1.6; font-size: 13px; margin: 0; }
.basket-back { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; font-size: 13px; text-decoration: none; }
.basket-layout { display: grid; gap: 24px; }
.basket-products { min-width: 0; }
.basket-list-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 0 2px 12px; }
.basket-list-heading h2 { font-size: 17px; margin: 0; }
.basket-list-heading span { color: var(--muted); font-size: 12px; }
.basket-items { display: grid; gap: 12px; }
.basket-item { display: grid; grid-template-columns: 76px minmax(0,1fr); gap: 14px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.basket-item-image { display: flex; justify-content: center; align-items: flex-start; border-radius: 9px; overflow: hidden; align-self: start; background: #faf9f7; }
.basket-item-image img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.basket-item-details { min-width: 0; }
.basket-item-top { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 5px 8px; margin: -2px 0 7px; }
.basket-stock { font-size: 10px; color: #66714f; margin: 0; }
.basket-stock.has-issue { color: #af591e; }
.basket-remove { display: inline-flex; gap: 4px; align-items: center; padding: 4px 0 4px 7px; border: 0; background: none; color: var(--muted); font-size: 11px; cursor: pointer; min-height: 30px; }
.basket-remove span { font-size: 20px; line-height: 1; }
.basket-remove:hover { color: var(--danger); }
.basket-item h3 { font-size: 14px; line-height: 1.45; margin: 0 0 7px; overflow-wrap: anywhere; }
.basket-item h3 a { text-decoration: none; color: inherit; }
.basket-item h3 a:hover { color: var(--orange); }
.basket-variant { font-size: 12px; line-height: 1.4; margin: 0 0 5px; }
.basket-sku { font-size: 10px; color: var(--muted); margin: 0 0 9px; }
.basket-options { font-size: 11px; color: #64615b; line-height: 1.65; margin: 7px 0 13px; padding: 9px 10px; border-radius: 7px; background: #f7f5f1; overflow-wrap: anywhere; }
.basket-item-issue { color: #a94c15; background: #fff4e8; border-radius: 7px; padding: 8px 10px; font-size: 12px; line-height: 1.5; margin: 8px 0 13px; }
.basket-item-bottom { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; justify-content: space-between; margin-top: 13px; }
.basket-quantity { height: 38px; background: #fafaf9; }
.basket-quantity input { width: 37px; font-size: 16px; }
.basket-quantity button { width: 31px; font-size: 16px; }
.basket-item-price { display: flex; flex-direction: column; gap: 5px; text-align: right; }
.basket-item-price strong { font-size: 18px; white-space: nowrap; }
.basket-item-price span { font-size: 10px; color: var(--muted); }
.basket-support { color: var(--muted); font-size: 12px; line-height: 1.7; margin: 18px 0 0; }
.basket-callback summary { cursor: pointer; list-style: none; }
.basket-callback summary::-webkit-details-marker { display: none; }
.basket-callback summary > span { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.basket-callback form { margin-top: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.basket-callback form > p:first-child { margin: 0 0 14px; }
.basket-callback form > label:not(.basket-callback-consent) { display: block; color: var(--ink); margin-bottom: 7px; }
.basket-callback-row { display: grid; gap: 10px; }
.basket-callback-row input { width: 100%; min-width: 0; font-size: 16px; }
.basket-callback-row .primary-button { font-size: 13px; min-height: 44px; }
.basket-callback-consent { display: flex; align-items: flex-start; gap: 9px; margin-top: 14px; font-size: 11px; line-height: 1.5; }
.basket-callback-consent input { width: 16px; height: 16px; min-height: 16px; padding: 0; flex-shrink: 0; margin: 2px 0 0; accent-color: var(--orange); }
.basket-callback-error, .basket-callback-message { margin: 8px 0 0; font-size: 12px; color: var(--danger); }
.basket-callback form.is-sent .basket-callback-message { color: #4e6b3d; }
.basket-callback [aria-invalid="true"] { outline: 1px solid var(--danger); }
@media (min-width: 480px) { .basket-callback-row { grid-template-columns: minmax(0,1fr) auto; } }
.basket-summary { min-width: 0; }
.basket-summary-card { padding: 23px; border-radius: 14px; border: 1px solid #e5e0d5; background: #f2eee6; }
.basket-summary-card h2 { font-size: 25px; margin: 7px 0 23px; }
.basket-totals { margin: 0; }
.basket-totals > div { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 8px 0; font-size: 13px; }
.basket-totals dt { color: #726e64; }
.basket-totals dd { text-align: right; margin: 0; font-weight: 500; white-space: nowrap; }
.basket-totals .basket-delivery-label { font-size: 11px; }
#basket-discount { color: #627346; }
.basket-totals .basket-total-row { margin-top: 17px; padding: 21px 0 6px; border-top: 1px solid #dcd6ca; }
.basket-total-row dt { color: var(--ink); font-size: 13px; }
.basket-total-row dd { font-size: 26px; font-weight: 700; }
.basket-coupon-form { padding: 23px 0 8px; }
.basket-coupon-form label { display: block; font-size: 12px; margin-bottom: 10px; }
.basket-coupon-input { display: flex; background: #fff; border: 1px solid #dcd6ca; border-radius: 8px; overflow: hidden; }
.basket-coupon-input:focus-within { border-color: var(--orange); }
.basket-coupon-input input { border: 0; background: transparent; padding: 13px; width: 100%; min-width: 0; font-size: 16px; outline-offset: -3px; }
.basket-coupon-submit { border: 0; border-left: 1px solid #ede9e1; background: #fff; padding: 0 16px; font-size: 21px; cursor: pointer; }
.basket-coupon-submit:hover { background: #fff5e7; }
.basket-coupon-applied { display: flex; gap: 10px; justify-content: space-between; font-size: 11px; margin-top: 10px; color: #627346; }
.basket-coupon-applied button { border: 0; padding: 0; background: none; text-decoration: underline; color: #726e64; cursor: pointer; }
#basket-coupon-message { font-size: 12px; line-height: 1.5; margin: 10px 0 0; color: var(--danger); }
.basket-checkout-hint { font-size: 12px; line-height: 1.5; color: #a94c15; margin: 8px 0 14px; }
.basket-checkout { display: none; }
.basket-summary-note { font-size: 11px; color: #726e64; line-height: 1.6; margin: 15px 0 0; }
.basket-mobile-bar { display: flex; align-items: center; justify-content: space-between; gap: 14px; position: fixed; z-index: 20; bottom: 0; left: 0; right: 0; background: #fff; padding: 13px 16px calc(13px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); box-shadow: 0 -6px 24px #17171708; }
.basket-mobile-bar > div { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.basket-mobile-bar > div span { color: var(--muted); font-size: 10px; }
.basket-mobile-bar strong { font-size: 21px; white-space: nowrap; }
.basket-mobile-bar .primary-button { font-size: 13px; min-height: 44px; gap: 20px; padding: 12px 18px; }
.cart-v2-page [aria-disabled="true"] { opacity: .45; cursor: not-allowed; }
.cart-v2-page button:disabled { opacity: .4; cursor: not-allowed; }
.basket-notice { border: 1px solid #efd6b3; background: #fff5e8; padding: 15px 18px; color: #99531d; font-size: 13px; line-height: 1.5; border-radius: 10px; margin: 0 0 20px; }
.basket-notice p { margin: 0; }
.basket-notice button { margin-top: 8px; color: inherit; }
.basket-empty { padding: 42px 20px; text-align: center; border-radius: 18px; border: 1px solid var(--line); background: #fff; }
.empty-basket-icon { display: grid; place-items: center; width: 104px; height: 104px; margin: 0 auto 28px; background: #f4f0e8; border-radius: 50%; }
.empty-basket-icon svg { width: 63px; height: 63px; fill: none; stroke: #bd9562; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.basket-empty h2 { font-size: 29px; line-height: 1.2; margin: 10px 0 16px; }
.basket-empty p:not(.eyebrow) { max-width: 380px; margin: 0 auto 25px; line-height: 1.7; font-size: 14px; color: var(--muted); }
.basket-empty .primary-button { max-width: 290px; margin: 0 auto 12px; }
.basket-empty .text-button { display: inline-block; font-size: 12px; }
@media (min-width: 600px) {
  .basket-heading h1 { font-size: 44px; }
  .basket-item { grid-template-columns: 118px minmax(0,1fr); gap: 23px; padding: 24px; }
  .basket-item h3 { font-size: 18px; }
  .basket-stock, .basket-sku { font-size: 11px; }
  .basket-variant { font-size: 13px; }
  .basket-options { font-size: 12px; }
  .basket-item-price strong { font-size: 22px; }
  .basket-item-price span { font-size: 11px; }
  .basket-quantity { height: 42px; }
  .basket-quantity input { width: 42px; font-size: 16px; }
  .basket-quantity button { width: 36px; }
  .basket-summary-card { padding: 27px; }
  .basket-empty { padding: 65px 25px; }
}
@media (min-width: 900px) {
  .cart-v2-page { padding-bottom: 0; }
  .basket-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 35px; }
  .basket-heading h1 { font-size: 50px; }
  .basket-heading p:not(.eyebrow) { font-size: 14px; }
  .basket-back { margin: 0; }
  .basket-layout { grid-template-columns: minmax(0,1fr) 330px; gap: 32px; align-items: start; }
  .basket-summary { position: sticky; top: 106px; }
  .basket-summary-card h2 { font-size: 27px; }
  .basket-checkout { display: flex; margin-top: 12px; font-size: 13px; }
  .basket-mobile-bar { display: none; }
  .basket-list-heading { padding-bottom: 18px; }
  .basket-item { grid-template-columns: 110px minmax(0,1fr); gap: 24px; }
}
