/* ============================================================
   RR AUDIOCAR PRO — Cart Drawer
   ============================================================ */

.rrac-cart-overlay {
  position: fixed;
  inset: 0;
  z-index: calc(var(--rrac-z-modal) - 1);
  background: var(--rrac-overlay-bg);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--rrac-dur-base) var(--rrac-ease-smooth);
}
.rrac-cart-overlay[data-open="true"] { opacity: 1; pointer-events: auto; }
/* El JS quita el attr `hidden` antes de iniciar la transición.
   Cuando NO hay attr hidden y NO hay data-open, queda con opacity 0 (no se ve). */

.rrac-cart-drawer {
  position: fixed;
  top: 0; right: 0;
  bottom: 0;
  width: var(--rrac-drawer-w);
  max-width: 92vw;
  height: 100vh; height: 100dvh;
  background: var(--rrac-surface);
  z-index: var(--rrac-z-modal);
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--rrac-border);
  box-shadow: var(--rrac-drawer-shadow);
  transform: translateX(100%);
  transition: transform var(--rrac-dur-slow) var(--rrac-ease-spring);
  font-family: var(--rrac-font-sans);
}
.rrac-cart-drawer[data-open="true"] { transform: translateX(0); }
.rrac-cart-drawer[hidden] { display: flex !important; }
@media (max-width: 768px) {
  .rrac-cart-drawer {
    width: 100%;
    max-width: 100%;
    border-left: 0;
  }
}

/* HEAD */
.rrac-cart-head {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--rrac-space-5) var(--rrac-space-6);
  border-bottom: 1px solid var(--rrac-border);
  background: var(--rrac-surface);
  position: sticky;
  top: 0;
  z-index: 2;
}
.rrac-cart-head__title {
  margin: 0;
  font-size: var(--rrac-text-xl);
  font-weight: var(--rrac-weight-bold);
  letter-spacing: var(--rrac-tracking-tight);
  display: inline-flex;
  align-items: center;
  gap: var(--rrac-space-3);
}
.rrac-cart-head__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px; height: 22px;
  padding: 0 7px;
  background: var(--rrac-primary-soft);
  color: var(--rrac-primary);
  border-radius: var(--rrac-radius-full);
  font-size: var(--rrac-text-xs);
  font-weight: var(--rrac-weight-bold);
  line-height: 1;
}
.rrac-cart-head__close {
  width: 40px; height: 40px;
  border-radius: var(--rrac-radius-full);
  background: var(--rrac-bg-subtle);
  color: var(--rrac-text-soft);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--rrac-dur-fast), transform var(--rrac-dur-fast);
}
.rrac-cart-head__close:hover { background: var(--rrac-border); transform: scale(1.05); }
.rrac-cart-head__close:active { transform: scale(0.95); }

/* SHIPPING BAR */
.rrac-cart-shipping {
  flex: 0 0 auto;
  padding: var(--rrac-space-4) var(--rrac-space-6);
  background: var(--rrac-bg-subtle);
  border-bottom: 1px solid var(--rrac-border);
}
.rrac-cart-shipping[hidden] { display: none; }
.rrac-cart-shipping__msg {
  display: flex;
  align-items: center;
  gap: var(--rrac-space-2);
  font-size: var(--rrac-text-sm);
  color: var(--rrac-text-soft);
  margin-bottom: var(--rrac-space-2);
  line-height: 1.4;
}
.rrac-cart-shipping__icon {
  color: var(--rrac-ship);
  display: inline-flex;
  flex-shrink: 0;
}
.rrac-cart-shipping__amount {
  font-weight: var(--rrac-weight-bold);
  color: var(--rrac-primary);
}
.rrac-cart-shipping__track {
  height: 6px;
  background: var(--rrac-ink-200);
  border-radius: var(--rrac-radius-full);
  overflow: hidden;
}
.rrac-cart-shipping__fill {
  height: 100%;
  background: linear-gradient(90deg, var(--rrac-primary), var(--rrac-brand-400));
  border-radius: var(--rrac-radius-full);
  width: 0%;
  transition: width var(--rrac-dur-slower) var(--rrac-ease-out);
}
.rrac-cart-shipping[data-state="reached"] .rrac-cart-shipping__fill {
  background: linear-gradient(90deg, var(--rrac-ship), #00d166);
}
.rrac-cart-shipping[data-state="reached"] .rrac-cart-shipping__msg {
  color: var(--rrac-ship);
  font-weight: var(--rrac-weight-semibold);
}

/* BODY */
.rrac-cart-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: var(--rrac-space-4) var(--rrac-space-6);
}

.rrac-cart-body .widget_shopping_cart_content { height: 100%; }

.rrac-cart-body .woocommerce-mini-cart {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--rrac-space-3);
}

.rrac-cart-body .woocommerce-mini-cart-item,
.rrac-cart-body .mini_cart_item {
  display: flex;
  gap: var(--rrac-space-3);
  padding: var(--rrac-space-3);
  background: var(--rrac-surface-alt);
  border: 1px solid var(--rrac-border);
  border-radius: var(--rrac-radius-xl);
  position: relative;
  list-style: none;
  margin: 0;
  transition: background var(--rrac-dur-fast) var(--rrac-ease-smooth);
}
.rrac-cart-body .woocommerce-mini-cart-item:hover,
.rrac-cart-body .mini_cart_item:hover {
  background: var(--rrac-bg-subtle);
}

.rrac-cart-body .woocommerce-mini-cart-item img,
.rrac-cart-body .mini_cart_item img {
  width: 72px !important; height: 72px !important;
  object-fit: contain !important;
  background: var(--rrac-surface) !important;
  border-radius: var(--rrac-radius-lg);
  border: 1px solid var(--rrac-border);
  padding: 4px;
  flex-shrink: 0;
}

.rrac-cart-body .woocommerce-mini-cart-item a:not(.remove),
.rrac-cart-body .mini_cart_item a:not(.remove) {
  font-size: var(--rrac-text-sm) !important;
  font-weight: var(--rrac-weight-semibold) !important;
  color: var(--rrac-text) !important;
  text-decoration: none !important;
  line-height: 1.35 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  padding-right: var(--rrac-space-6);
}
.rrac-cart-body .woocommerce-mini-cart-item a:hover:not(.remove) {
  color: var(--rrac-primary) !important;
}

.rrac-cart-body .quantity {
  font-size: var(--rrac-text-xs) !important;
  color: var(--rrac-text-muted) !important;
  margin-top: var(--rrac-space-1);
  font-variant-numeric: tabular-nums;
}
.rrac-cart-body .quantity .amount,
.rrac-cart-body .quantity bdi,
.rrac-cart-body .quantity .woocommerce-Price-amount {
  font-weight: var(--rrac-weight-bold) !important;
  color: var(--rrac-text) !important;
  font-size: var(--rrac-text-sm) !important;
}

.rrac-cart-body a.remove,
.rrac-cart-body a.remove_from_cart_button {
  position: absolute !important;
  top: var(--rrac-space-2);
  right: var(--rrac-space-2);
  width: 24px; height: 24px;
  border-radius: var(--rrac-radius-full);
  background: var(--rrac-ink-100);
  color: var(--rrac-ink-600);
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-size: 14px !important;
  font-weight: var(--rrac-weight-bold);
  text-decoration: none !important;
  line-height: 1;
  border: 0;
  transition: all var(--rrac-dur-fast) var(--rrac-ease-smooth);
}
.rrac-cart-body a.remove:hover,
.rrac-cart-body a.remove_from_cart_button:hover {
  background: var(--rrac-danger-50);
  color: var(--rrac-danger);
  transform: scale(1.1);
}

/* Quitar el __total y __buttons del mini cart (los reemplazamos con nuestro footer) */
.rrac-cart-body .woocommerce-mini-cart__total,
.rrac-cart-body p.woocommerce-mini-cart__total,
.rrac-cart-body .woocommerce-mini-cart__buttons,
.rrac-cart-body p.woocommerce-mini-cart__buttons {
  display: none !important;
}

/* Empty message */
.rrac-cart-body .woocommerce-mini-cart__empty-message,
.rrac-cart-body p.woocommerce-mini-cart__empty-message {
  text-align: center;
  padding: var(--rrac-space-12) var(--rrac-space-4);
  color: var(--rrac-text-muted);
  font-size: var(--rrac-text-md);
  font-weight: var(--rrac-weight-medium);
}

/* FOOTER */
.rrac-cart-footer {
  flex: 0 0 auto;
  background: var(--rrac-surface);
  padding: var(--rrac-space-5) var(--rrac-space-6);
  padding-bottom: max(var(--rrac-space-5), env(safe-area-inset-bottom));
  border-top: 1px solid var(--rrac-border);
  box-shadow: 0 -8px 24px -8px rgba(11, 13, 16, .08);
}
.rrac-cart-footer__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: var(--rrac-space-3);
}
.rrac-cart-footer__label {
  font-weight: var(--rrac-weight-semibold);
  color: var(--rrac-text-soft);
  font-size: var(--rrac-text-md);
}
.rrac-cart-footer__amount {
  font-size: var(--rrac-text-4xl);
  font-weight: var(--rrac-weight-black);
  color: var(--rrac-text);
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--rrac-tracking-tight);
  line-height: 1;
}
.rrac-cart-footer__amount .amount,
.rrac-cart-footer__amount bdi,
.rrac-cart-footer__amount .woocommerce-Price-amount {
  font: inherit !important;
  color: inherit !important;
}
.rrac-cart-footer__cuotas {
  font-size: var(--rrac-text-xs);
  color: var(--rrac-ship);
  font-weight: var(--rrac-weight-semibold);
  text-align: right;
  margin-top: -8px;
  margin-bottom: var(--rrac-space-3);
  font-variant-numeric: tabular-nums;
}
.rrac-cart-footer__continue {
  display: block;
  width: 100%;
  text-align: center;
  margin-top: var(--rrac-space-3);
  padding: var(--rrac-space-2);
  background: transparent;
  border: 0;
  color: var(--rrac-text-soft);
  font-size: var(--rrac-text-sm);
  font-weight: var(--rrac-weight-semibold);
  cursor: pointer;
  font-family: inherit;
  transition: color var(--rrac-dur-fast);
}
.rrac-cart-footer__continue:hover { color: var(--rrac-primary); }

/* Item highlight when just added */
@keyframes rracCartItemEnter {
  from { opacity: 0; transform: translateY(-8px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.rrac-cart-body .mini_cart_item.rrac-just-added,
.rrac-cart-body .woocommerce-mini-cart-item.rrac-just-added {
  animation: rracCartItemEnter 320ms var(--rrac-ease-out);
  background: var(--rrac-primary-soft) !important;
}
@media (prefers-reduced-motion: reduce) {
  .rrac-cart-body .mini_cart_item.rrac-just-added,
  .rrac-cart-body .woocommerce-mini-cart-item.rrac-just-added { animation: none; }
  .rrac-cart-drawer { transition: transform 0.01ms !important; }
}
