/**
 * WooCommerce Appearance - Mini Cart styles.
 *
 * The mini cart (widget / header dropdown / slide-out cart) can appear on any
 * page, so this stylesheet is enqueued site-wide and scoped to the
 * body.wcapp-minicart class. It reads from the same --wcapp-* design tokens as
 * the Cart and Checkout, so the selected Appearance Preset themes the mini cart
 * too. As with the rest of the plugin this themes components only (colours,
 * borders, radius, typography, buttons) and never imposes the panel's layout or
 * open/close mechanics, so it composes with each theme's mini cart.
 */

/* -------------------------------------------------------------------------
 * Container + typography.
 * ---------------------------------------------------------------------- */
body.wcapp-minicart .widget_shopping_cart,
body.wcapp-minicart .woocommerce.widget_shopping_cart,
body.wcapp-minicart .woocommerce-mini-cart,
body.wcapp-minicart .widget_shopping_cart_content {
  color: var(--wcapp-color-text);
  font-family: var(--wcapp-font-base);
  font-size: var(--wcapp-font-size);
  line-height: var(--wcapp-line-height);
}
body.wcapp-minicart .widget_shopping_cart_content {
  background: var(--wcapp-color-surface);
}
body.wcapp-minicart .widget_shopping_cart_content * {
  box-sizing: border-box;
}
body.wcapp-minicart .widget_shopping_cart a {
  color: var(--wcapp-color-accent);
  text-decoration: none;
}
body.wcapp-minicart .widget_shopping_cart a:hover {
  color: var(--wcapp-color-accent-hover);
}

/* -------------------------------------------------------------------------
 * Line items.
 * ---------------------------------------------------------------------- */
body.wcapp-minicart ul.woocommerce-mini-cart,
body.wcapp-minicart ul.cart_list {
  margin: 0;
  padding: 0;
  list-style: none;
}
body.wcapp-minicart ul.woocommerce-mini-cart li.woocommerce-mini-cart-item,
body.wcapp-minicart ul.cart_list li.mini_cart_item {
  position: relative;
  display: block;
  margin: 0;
  padding: 14px 8px 14px 30px;
  border-top: var(--wcapp-border-width) solid var(--wcapp-color-border);
  list-style: none;
  overflow: hidden;
}
body.wcapp-minicart ul.woocommerce-mini-cart li:first-child {
  border-top: 0;
}
body.wcapp-minicart ul.woocommerce-mini-cart li a:not(.remove),
body.wcapp-minicart ul.cart_list li a:not(.remove) {
  display: block;
  font-weight: 600;
  color: var(--wcapp-color-heading);
}
body.wcapp-minicart ul.woocommerce-mini-cart li a:not(.remove):hover {
  color: var(--wcapp-color-accent);
}

/* Thumbnails (WooCommerce nests the image inside the product link). */
body.wcapp-minicart ul.woocommerce-mini-cart li img,
body.wcapp-minicart ul.cart_list li img {
  width: 54px;
  height: 54px;
  margin: 0 0 0 12px;
  object-fit: cover;
  border-radius: var(--wcapp-radius-sm);
  border: var(--wcapp-border-width) solid var(--wcapp-color-border);
  float: right;
}

/* Quantity + prices */
body.wcapp-minicart .woocommerce-mini-cart .quantity,
body.wcapp-minicart ul.cart_list li .quantity {
  display: block;
  border: 0;
  background: none;
  padding: 2px 0 0;
  color: var(--wcapp-color-muted);
  font-size: var(--wcapp-fs-sm);
}
body.wcapp-minicart .widget_shopping_cart .woocommerce-Price-amount,
body.wcapp-minicart ul.cart_list li .woocommerce-Price-amount {
  color: var(--wcapp-color-price);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* Remove buttons */
body.wcapp-minicart ul.woocommerce-mini-cart li a.remove,
body.wcapp-minicart ul.woocommerce-mini-cart li a.remove_from_cart_button,
body.wcapp-minicart ul.cart_list li a.remove {
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin: 0;
  border-radius: 999px;
  border: var(--wcapp-border-width) solid transparent;
  background: transparent;
  color: var(--wcapp-color-muted);
  font-size: 16px;
  line-height: 1;
  text-decoration: none;
}
body.wcapp-minicart ul.woocommerce-mini-cart li a.remove:hover,
body.wcapp-minicart ul.woocommerce-mini-cart li a.remove_from_cart_button:hover,
body.wcapp-minicart ul.cart_list li a.remove:hover {
  color: var(--wcapp-color-error);
  background: color-mix(in srgb, var(--wcapp-color-error) 12%, transparent);
  border-color: color-mix(in srgb, var(--wcapp-color-error) 30%, transparent);
}

/* -------------------------------------------------------------------------
 * Subtotal.
 * ---------------------------------------------------------------------- */
body.wcapp-minicart .woocommerce-mini-cart__total,
body.wcapp-minicart .widget_shopping_cart .total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 14px 8px;
  border-top: var(--wcapp-border-width) solid var(--wcapp-color-border);
  border-bottom: var(--wcapp-border-width) solid var(--wcapp-color-border);
  color: var(--wcapp-color-heading);
  font-size: var(--wcapp-fs-lg);
  font-weight: 700;
}
body.wcapp-minicart .woocommerce-mini-cart__total .woocommerce-Price-amount,
body.wcapp-minicart .widget_shopping_cart .total .woocommerce-Price-amount {
  color: var(--wcapp-color-price);
}

/* Empty state */
body.wcapp-minicart .woocommerce-mini-cart__empty-message {
  padding: 18px 8px;
  color: var(--wcapp-color-muted);
  text-align: center;
}

/* -------------------------------------------------------------------------
 * Buttons.
 * ---------------------------------------------------------------------- */
body.wcapp-minicart .woocommerce-mini-cart__buttons,
body.wcapp-minicart .widget_shopping_cart .buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 14px 8px 4px;
}
body.wcapp-minicart .woocommerce-mini-cart__buttons .button,
body.wcapp-minicart .widget_shopping_cart .buttons .button {
  flex: 1 1 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  margin: 0;
  padding: 12px 18px;
  font-family: inherit;
  font-size: var(--wcapp-font-size);
  font-weight: var(--wcapp-button-weight);
  line-height: 1.1;
  border-radius: var(--wcapp-button-radius);
  border: var(--wcapp-border-width) solid var(--wcapp-color-border);
  background: var(--wcapp-color-surface);
  color: var(--wcapp-color-heading);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
body.wcapp-minicart .woocommerce-mini-cart__buttons .button:hover,
body.wcapp-minicart .widget_shopping_cart .buttons .button:hover {
  border-color: var(--wcapp-color-accent);
  color: var(--wcapp-color-accent);
}
body.wcapp-minicart .woocommerce-mini-cart__buttons .button.checkout,
body.wcapp-minicart .woocommerce-mini-cart__buttons .button.wc-forward,
body.wcapp-minicart .widget_shopping_cart .buttons .checkout {
  background: var(--wcapp-color-accent);
  border-color: var(--wcapp-color-accent);
  color: var(--wcapp-color-accent-contrast);
  box-shadow: var(--wcapp-shadow);
}
body.wcapp-minicart .woocommerce-mini-cart__buttons .button.checkout:hover,
body.wcapp-minicart .woocommerce-mini-cart__buttons .button.wc-forward:hover,
body.wcapp-minicart .widget_shopping_cart .buttons .checkout:hover {
  background: var(--wcapp-color-accent-hover);
  border-color: var(--wcapp-color-accent-hover);
  color: var(--wcapp-color-accent-contrast);
}

/* -------------------------------------------------------------------------
 * Focus visibility.
 * ---------------------------------------------------------------------- */
body.wcapp-minicart .widget_shopping_cart a:focus-visible,
body.wcapp-minicart .widget_shopping_cart .button:focus-visible {
  outline: 2px solid var(--wcapp-color-focus);
  outline-offset: 2px;
}

/* -------------------------------------------------------------------------
 * Preset signatures (mirrors the Cart / Checkout treatments).
 * ---------------------------------------------------------------------- */
body.wcapp-minicart.wcapp-preset-glass .widget_shopping_cart_content {
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  backdrop-filter: blur(14px) saturate(1.4);
}
body.wcapp-minicart.wcapp-preset-aurora .woocommerce-mini-cart__buttons .button.checkout,
body.wcapp-minicart.wcapp-preset-aurora .woocommerce-mini-cart__buttons .button.wc-forward,
body.wcapp-minicart.wcapp-preset-aurora .widget_shopping_cart .buttons .checkout {
  background-image: linear-gradient(135deg, #a855f7 0%, #d946ef 55%, #ec4899 100%);
  border-color: transparent;
}
body.wcapp-minicart.wcapp-preset-neon .woocommerce-mini-cart__buttons .button.checkout,
body.wcapp-minicart.wcapp-preset-neon .woocommerce-mini-cart__buttons .button.wc-forward,
body.wcapp-minicart.wcapp-preset-neon .widget_shopping_cart .buttons .checkout {
  box-shadow: 0 0 0 1px rgba(74, 222, 128, 0.4), 0 0 22px rgba(74, 222, 128, 0.35);
}
body.wcapp-minicart.wcapp-preset-titanium .widget_shopping_cart_content {
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0) 60%);
}

/* -------------------------------------------------------------------------
 * Shoptimizer slide-out cart drawer (#shoptimizerCartDrawer).
 *
 * The drawer is owned and heavily styled by the theme, which scopes its rules
 * with the #shoptimizerCartDrawer ID plus stateful open classes. Matching that
 * with plain selectors would tie on specificity and depend on stylesheet load
 * order, so this block uses scoped !important to reliably recolour the whole
 * drawer - wrapper, header, close button, list, borders, totals, and buttons -
 * to the active preset. This is a deliberate, self-contained theme-integration
 * exception; it only ever changes colours/borders and never the drawer's
 * position, size, transform, or open/close behaviour.
 * ---------------------------------------------------------------------- */
body.wcapp-minicart #shoptimizerCartDrawer,
body.wcapp-minicart #shoptimizerCartDrawer .widget,
body.wcapp-minicart #shoptimizerCartDrawer .widget_shopping_cart,
body.wcapp-minicart #shoptimizerCartDrawer .widget_shopping_cart_content,
body.wcapp-minicart #shoptimizerCartDrawer .woocommerce-mini-cart {
  background-color: var(--wcapp-color-surface) !important;
  color: var(--wcapp-color-text) !important;
}

/* Header / heading bar. */
body.wcapp-minicart #shoptimizerCartDrawer .cart-drawer-heading,
body.wcapp-minicart #shoptimizerCartDrawer .cart_drawer_heading {
  color: var(--wcapp-color-heading) !important;
  background-color: var(--wcapp-color-surface-alt) !important;
  border-bottom: var(--wcapp-border-width) solid var(--wcapp-color-border) !important;
}

/* Links, quantities, prices. */
body.wcapp-minicart #shoptimizerCartDrawer a {
  color: var(--wcapp-color-accent) !important;
}
body.wcapp-minicart #shoptimizerCartDrawer .woocommerce-mini-cart-item a:not(.remove) {
  color: var(--wcapp-color-heading) !important;
}
body.wcapp-minicart #shoptimizerCartDrawer .quantity,
body.wcapp-minicart #shoptimizerCartDrawer .woocommerce-mini-cart__empty-message {
  color: var(--wcapp-color-muted) !important;
}
body.wcapp-minicart #shoptimizerCartDrawer .amount,
body.wcapp-minicart #shoptimizerCartDrawer .woocommerce-Price-amount {
  color: var(--wcapp-color-price) !important;
}

/* Item + total dividers. */
body.wcapp-minicart #shoptimizerCartDrawer .woocommerce-mini-cart-item,
body.wcapp-minicart #shoptimizerCartDrawer .cart_list li,
body.wcapp-minicart #shoptimizerCartDrawer .woocommerce-mini-cart__total {
  border-color: var(--wcapp-color-border) !important;
}
body.wcapp-minicart #shoptimizerCartDrawer .woocommerce-mini-cart__total {
  color: var(--wcapp-color-heading) !important;
}
body.wcapp-minicart #shoptimizerCartDrawer .woocommerce-mini-cart__total strong {
  color: var(--wcapp-color-heading) !important;
}

/* Close button (icon drawn with stroke). */
body.wcapp-minicart #shoptimizerCartDrawer .close-drawer,
body.wcapp-minicart #shoptimizerCartDrawer .cart-drawer-close,
body.wcapp-minicart #shoptimizerCartDrawer .close-drawer svg {
  color: var(--wcapp-color-muted) !important;
  stroke: currentColor !important;
}
body.wcapp-minicart #shoptimizerCartDrawer .close-drawer:hover,
body.wcapp-minicart #shoptimizerCartDrawer .close-drawer:hover svg {
  color: var(--wcapp-color-text) !important;
}

/* Buttons. */
body.wcapp-minicart #shoptimizerCartDrawer .woocommerce-mini-cart__buttons .button,
body.wcapp-minicart #shoptimizerCartDrawer .buttons .button {
  background-color: var(--wcapp-color-surface) !important;
  border: var(--wcapp-border-width) solid var(--wcapp-color-border) !important;
  color: var(--wcapp-color-heading) !important;
}
body.wcapp-minicart #shoptimizerCartDrawer .woocommerce-mini-cart__buttons .button.checkout,
body.wcapp-minicart #shoptimizerCartDrawer .woocommerce-mini-cart__buttons .button.wc-forward,
body.wcapp-minicart #shoptimizerCartDrawer .buttons .checkout {
  background-color: var(--wcapp-color-accent) !important;
  border-color: var(--wcapp-color-accent) !important;
  color: var(--wcapp-color-accent-contrast) !important;
}

/* -------------------------------------------------------------------------
 * Reduced motion.
 * ---------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  body.wcapp-minicart .widget_shopping_cart * {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
