.kep-cart-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(100%, 550px);
  height: 100dvh;
  max-height: none;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--ink, #302019);
  background: var(--cream, #fffaf4);
  overflow: hidden;
}
.kep-cart-drawer[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.kep-cart-drawer::backdrop { background: #30201988; }
.kep-cart-heading { display: flex; align-items: center; gap: 12px; padding: 12px 20px; border-bottom: 1px solid var(--line); }
.kep-cart-heading h2 { margin: 0; font-size: clamp(24px, 5vw, 30px); }
.kep-cart-count { background: var(--sand); border-radius: 999px; padding: 4px 10px; }
.kep-cart-close { margin-inline-start: auto; min-width: 44px; min-height: 44px; }
.kep-cart-content { overflow-y: auto; overscroll-behavior: contain; padding-inline: 20px; }
.kep-cart-content > .panel { margin-block: 20px; }
.kep-cart-shipping { display: grid; gap: 6px; padding-block: 12px 4px; }
.kep-cart-shipping progress { width: 100%; height: 7px; accent-color: var(--copper, #a34f36); }
.cart-row .kep-cart-quantity { justify-self: start; }
.kep-cart-line { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 10px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.kep-cart-image { width: 64px; height: 64px; object-fit: contain; background: var(--white, #fffaf4); border-radius: 9px; }
.kep-cart-line-copy { min-width: 0; }
.kep-cart-line-copy > small { display: block; }
.kep-cart-product { font-weight: 700; color: inherit; overflow-wrap: anywhere; }
.kep-cart-line-controls { display: flex; align-items: center; gap: 4px; margin-block-start: 6px; }
.kep-cart-quantity { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; }
.kep-cart-quantity span { min-width: 20px; text-align: center; }
.kep-cart-quantity-button { min-width: 44px; min-height: 44px; padding: 0; background: transparent; border: 0; border-radius: 50%; color: inherit; font: inherit; cursor: pointer; }
.kep-cart-quantity-button:disabled { opacity: .45; cursor: default; }
.kep-cart-price { margin-inline-start: auto; white-space: nowrap; }
.kep-cart-footer { position: relative; padding: 10px 20px max(10px, env(safe-area-inset-bottom)); border-top: 1px solid var(--line); overflow-y: auto; max-height: 52dvh; }
.kep-cart-footer:empty { display: none; }
.kep-cart-totals { margin: 0; }
.kep-cart-totals > div { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-block: 2px; }
.kep-cart-totals dd { margin: 0; white-space: nowrap; }
.kep-cart-total { font-size: 19px; font-weight: 700; padding-block: 6px; border-top: 1px solid var(--line); }
.kep-cart-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 8px; }
.kep-cart-actions .button { justify-content: center; min-height: 44px; padding: 6px 8px; text-align: center; }
.kep-cart-save { display: block; margin: 2px auto 0; min-height: 44px; }
.kep-wallets { position: relative; min-width: 0; margin: 4px 0 8px; }
.kep-wallets:empty { display: none; }
.kep-wallets[data-wallet-visible="false"] { position: absolute; inset-inline: 16px; max-height: 0; margin: 0; overflow: hidden; visibility: hidden; pointer-events: none; }
.kep-wallet-terms { margin: 0 0 5px; font-size: 14px; line-height: 1.35; }
.kep-wallet-terms a { color: inherit; }
.kep-wallet-problem { margin: 5px 0 0; font-size: 14px; }
.ec-checkout-page .kep-wallets { width: 100%; max-width: 640px; }
@media (max-width: 760px) {
  .kep-cart-heading, .kep-cart-footer { padding-inline: 14px; }
  .kep-cart-content { padding-inline: 14px; }
  .kep-cart-footer[data-wallet="true"] .kep-cart-save:not(:focus) { display: none; }
}
