/* CRASHED STORE | Floating, non-modal shopping cart.
   The page remains clickable and scrollable while the cart is open. */
.site-nav > .nav-cart.cart-open { display: none !important; }
.floating-cart {
  position: fixed;
  top: var(--cart-float-top, 96px);
  right: clamp(14px, 3vw, 34px);
  z-index: 110;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 48px;
  padding: 0 12px 0 14px;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 9px;
  color: #111;
  background: #f7f7f7;
  box-shadow: 0 5px 22px rgba(0,0,0,.24);
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.floating-cart:hover, .floating-cart[aria-expanded="true"] { transform: translateY(-1px); box-shadow: 0 8px 26px rgba(0,0,0,.33); background: #e7e7e7; }
.floating-cart__icon { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.floating-cart__count { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 50%; background: #111; color: #fff; font: 800 10px Arial, sans-serif; }
.light-mode .floating-cart { color: #fff; background: #151515; border-color: #151515; }
.light-mode .floating-cart:hover, .light-mode .floating-cart[aria-expanded="true"] { background: #333; }
.light-mode .floating-cart__count { color: #111; background: #fff; }
.floating-cart:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

/* Non-modal dialog, positioned like a compact mini-cart below the icon. */
dialog.cart-modal {
  position: fixed;
  inset: auto clamp(14px, 3vw, 34px) auto auto;
  top: calc(var(--cart-float-top, 96px) + 57px);
  z-index: 109;
  display: block;
  box-sizing: border-box;
  width: min(355px, calc(100vw - 28px));
  max-width: none;
  max-height: calc(100dvh - var(--cart-float-top, 96px) - 68px);
  margin: 0;
  padding: 0;
  overflow: hidden;
  color: #f7f7f7;
  background: #151515;
  border: 1px solid #555;
  border-radius: 9px;
  box-shadow: 0 15px 45px rgba(0,0,0,.4);
}
dialog.cart-modal:not([open]) { display: none; }
/* The dialog opens with .show(), not .showModal(), so there is no backdrop,
   page-wide overlay, focus trap, or scroll lock. */
.cart-modal__inner { display: flex; flex-direction: column; width: 100%; max-height: calc(100dvh - var(--cart-float-top, 96px) - 68px); }
.cart-modal__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex: 0 0 auto; padding: 16px 18px 13px; border-bottom: 1px solid #393939; }
.cart-modal__titles { min-width: 0; }
.cart-modal__eyebrow { margin: 0 0 5px; color: #aaa; font-size: 9px; font-weight: 700; letter-spacing: .14em; }
.cart-modal__title { margin: 0; font-size: 17px; line-height: 1.2; font-weight: 750; letter-spacing: -.03em; }
.cart-modal__close { width: 27px; height: 27px; flex: 0 0 auto; display: grid; place-items: center; padding: 0; border: 1px solid #555; border-radius: 4px; background: transparent; color: inherit; font: 23px/1 Arial,sans-serif; cursor: pointer; }
.cart-modal__close:hover { background: #303030; }
.cart-modal__description { margin: 0; padding: 10px 18px 0; font: 9px/1.5 Arial,sans-serif; letter-spacing: .04em; color: #a9a9a9; }
.cart-modal__items { min-height: 70px; max-height: 40vh; overflow-y: auto; overscroll-behavior: contain; padding: 10px 18px 4px; }
.cart-modal__item { display: grid; grid-template-columns: 56px minmax(0,1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid #363636; }
.cart-modal__item:first-child { border-top: 1px solid #363636; }
.cart-modal__image { width: 56px; height: 74px; object-fit: cover; background: #ddd; color: #333; border-radius: 2px; }
.cart-modal__image--placeholder { display: grid; place-items: center; font-size: 8px; text-align: center; }
.cart-modal__info { min-width: 0; display: flex; align-items: flex-start; flex-direction: column; }
.cart-modal__designer { margin: 0 0 5px; color: #aaa; font: 700 9px Arial,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.cart-modal__product-link { color: inherit; font-size: 12px; line-height: 1.32; font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.cart-modal__product-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.cart-modal__meta { color: #aaa; font-size: 10px; margin: 5px 0; }
.cart-modal__price { font-size: 11px; margin: 2px 0 7px; font-weight: 700; }
.cart-modal__remove { background: transparent; border: 0; border-bottom: 1px solid currentColor; color: #bcbcbc; padding: 0 0 2px; font: 700 9px Arial,sans-serif; letter-spacing: .07em; cursor: pointer; }
.cart-modal__remove:hover { color: #fff; }
.cart-modal__empty { text-align: center; padding: 27px 6px; }
.cart-modal__empty h3 { font-size: 13px; letter-spacing: .04em; }
.cart-modal__empty p { font-size: 11px; line-height: 1.55; color: #aaa; }
.cart-modal__loading, .cart-modal__error { margin: 0; padding: 22px 0; text-align: center; font-size: 11px; line-height: 1.55; color: #aaa; }
.cart-modal__footer { flex: 0 0 auto; padding: 14px 18px 16px; border-top: 1px solid #4a4a4a; background: #191919; }
.cart-modal__subtotal { display: flex; justify-content: space-between; gap: 12px; align-items: center; font: 700 11px Arial,sans-serif; letter-spacing: .06em; }
.cart-modal__subtotal strong { font-size: 16px; letter-spacing: 0; }
.cart-modal__shipping { color: #aaa; font-size: 10px; line-height: 1.5; margin: 6px 0 11px; }
.cart-modal__warning { color: #e4b88b; font-size: 10px; line-height: 1.5; margin: 0 0 8px; }
.cart-modal__warning:empty { display: none; }
.cart-modal__checkout { display: block; width: 100%; min-height: 40px; border: 1px solid #fff; background: #fff; color: #111; cursor: pointer; font: 800 11px Arial,sans-serif; letter-spacing: .08em; }
.cart-modal__checkout:hover:not(:disabled) { background: #ddd; }
.cart-modal__checkout:disabled { opacity: .36; cursor: not-allowed; }
.cart-modal__continue { display: block; width: 100%; margin-top: 8px; padding: 4px; border: 0; background: transparent; color: inherit; cursor: pointer; font: 700 10px Arial,sans-serif; letter-spacing: .08em; }
.cart-modal button:focus-visible, .cart-modal a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.light-mode .cart-modal { color: #111; background: #fff; border-color: #d0d0d0; box-shadow: 0 15px 36px rgba(0,0,0,.15); }
.light-mode .cart-modal__header, .light-mode .cart-modal__item, .light-mode .cart-modal__item:first-child, .light-mode .cart-modal__footer { border-color: #ddd; }
.light-mode .cart-modal__footer { background: #f8f8f8; }
.light-mode .cart-modal__eyebrow, .light-mode .cart-modal__description, .light-mode .cart-modal__designer, .light-mode .cart-modal__meta, .light-mode .cart-modal__shipping, .light-mode .cart-modal__empty p, .light-mode .cart-modal__remove { color: #666; }
.light-mode .cart-modal__close { border-color: #ccc; }
.light-mode .cart-modal__close:hover { background: #eee; }
.light-mode .cart-modal__checkout { background: #111; color: #fff; border-color: #111; }
.light-mode .cart-modal__checkout:hover:not(:disabled) { background: #333; }
@media (max-width: 450px) {
  dialog.cart-modal { width: min(355px, calc(100vw - 28px)); }
  .cart-modal__items { max-height: 34vh; }
}
@media (prefers-reduced-motion: reduce) { .floating-cart { transition: none; } }
