/* ==========================================================================
   Cart plugin - public pages: one merged stylesheet.
   Consolidated 2026-09-02 from 8 per-page files (main + cart, shop,
   product, orders, order-confirmation, order-lookup, wishlist). See
   docs/PLUGIN_CSS_CONSOLIDATION_PLAN.md.

   Layer 0  --cart-* tokens (the 7 old prefixes reconciled to one set),
            on every page wrapper. --cart-card-bg / -card-border /
            -card-border-soft / -card-radius, plus --cart-accent (was
            var(--bs-primary)) and --cart-meta-color (was
            var(--bs-secondary-color)) are designer inputs; defaults =
            the previous values. PLUGIN_THEMING_API.md.
   Layer 1  main.css - shared base, every public page
   Layer 2  per-page sections, each scoped to the wrapper(s) of the
            page(s) that used to <link> that file
   Layer 3  @media, grouped by page
   ========================================================================== */

/* -- Layer 0 - tokens ---------------------------------------------------- */
.cart-page, .cart-shop-page, .cart-pdp-page, .cart-orders-page, .cart-confirmation-page, .cart-lookup-page, .cart-wishlist-page {
  --cart-card-bg:          color-mix(in srgb, var(--bs-body-bg) 97%, var(--bs-tertiary-bg));
  --cart-card-border:      color-mix(in srgb, var(--bs-body-color) 16%, transparent);
  --cart-card-border-soft: color-mix(in srgb, var(--bs-body-color) 9%, transparent);

  /* internal - resolved from the inputs above / canonical values */
  --cart-surface:        color-mix(in srgb, var(--bs-tertiary-bg) 78%, var(--bs-body-bg));
  --cart-surface-raised: color-mix(in srgb, var(--bs-tertiary-bg) 91%, var(--bs-body-bg));
  --cart-muted-panel:    color-mix(in srgb, var(--bs-tertiary-bg) 82%, var(--bs-body-bg));
  --cart-control:        color-mix(in srgb, var(--bs-body-bg) 94%, var(--bs-tertiary-bg));
  --cart-media-bg:       color-mix(in srgb, var(--bs-tertiary-bg) 88%, var(--bs-body-bg));
  --cart-focus:          rgba(var(--bs-primary-rgb), 0.13);
}

/* -- Layer 1 - main.css (shared base) --------------------------------- */
/* =========================================================
   Cart plugin - public storefront
   ========================================================= */


/* --- cart_products/cart_product/product_categories widgets (content
   blocks embedded on arbitrary CMS pages, frontend/src/plugins/cart/
   widget/main.js) - deliberately left unstyled at first (matching how
   these three widget classes had zero dedicated CSS from the start,
   riding on Bootstrap's own bare .card/.card-img-top defaults), but a
   REAL uploaded photo (not the small icon placeholder every test product
   used) exposed why that doesn't actually work: .card-img-top has no
   aspect-ratio/height cap of its own, so a real large source image
   renders at its full natural size - confirmed live on the storefront
   landing page's own "Shop by Category" tile, where one real category
   photo blew out to several times the height of the rest of the page.
   Fixed here for all three widget types at once (not just the one that
   happened to expose it), matching .cart-shop-card-image's own existing
   aspect-ratio/object-fit treatment above. */

/* cart hero
   ========================================================= */

.cart-hero {
  position: relative;
  overflow: hidden;
  color: var(--bs-body-color);
  background:
    radial-gradient(
      circle at 85% 15%,
      rgba(var(--bs-primary-rgb), 0.16),
      transparent 22rem
    ),
    linear-gradient(
      135deg,
      rgba(var(--bs-primary-rgb), 0.08),
      rgba(var(--bs-primary-rgb), 0.015)
    );
  border-bottom: 1px solid var(--bs-border-color);
}

.cart-widget-product-card .card-img-top,
.cart-widget-product-image-empty {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
}

.cart-widget-category-tile {
  display: block;
}

/* Corner radius/icon size tokenized (Phase 3, docs/BLOCK_TYPE_STYLING_PLAN.md)
   - see docs/BLOCK_TYPE_DESIGN_TOKENS.md. aspect-ratio/object-fit/width
   stay literals (structural square-tile layout, not a "look" default),
   matching the same distinction already drawn for gallery/portfolio_grid. */
.cart-widget-category-image,
.cart-widget-category-image-empty {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
  border-radius: var(--cms-block-product-categories-tile-radius, 0.5rem);
}

.cart-widget-category-image-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bs-tertiary-bg);
  color: var(--cart-meta-color, var(--bs-secondary-color));
  font-size: var(--cms-block-product-categories-icon-size, 2rem);
}

.cart-widget-category-name {
  font-weight: 600;
}

/* --- Wishlist heart (Phase 8) --- */

.cart-shop-card-wishlist {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  z-index: 2;
  border-radius: 50%;
  width: 2rem;
  height: 2rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bs-body-bg);
}

.cart-wishlist-heart.active {
  color: #dc3545;
  border-color: #dc3545;
}

/* --- Wishlist page --- */

.cart-wishlist-grid .cart-shop-card-wishlist {
  background: var(--bs-body-bg);
}

.cart-nav-count {
  font-size: 0.7rem;
  vertical-align: top;
}

/* --- PDP --- */

/* :not(.cart-pdp-thumb) is load-bearing, not defensive styling - a real,
   confirmed-live bug without it. This selector's specificity (class +
   element = 0,1,1) is HIGHER than a bare `.cart-pdp-thumb` class selector
   (0,1,0) REGARDLESS of source order or which comes later in the file -
   unlike the earlier same-specificity/media-query cascade bug documented
   further down this file, a plain specificity difference can't be fixed
   by reordering rules at all. Without this exclusion, this rule's
   `width: 100%` always won over .cart-pdp-thumb's own explicit width, and
   on mobile (where nothing constrains the thumbnail column's own width to
   match the intended fixed size) that stretched each thumbnail to nearly
   the full viewport width instead of a small square - confirmed live via
   getBoundingClientRect (`width: 456px` at a 480px viewport, vs. the
   intended 64px/4rem) and screenshot. It happened to look correct on
   desktop only by coincidence: `.cart-pdp-thumbs-wrap`'s own `flex: 0 0
   7rem` there constrains the CONTAINER to exactly 112px, so `width: 100%`
   (of that already-112px container) computed to the same 112px the
   intended fixed width would have produced anyway - a false negative that
   masked the underlying specificity bug during desktop-only verification. */
.cart-pdp-gallery img:not(.cart-pdp-thumb) {
  width: 100%;
  border-radius: 0.5rem;
}

/* Mobile-first base: a plain column stack (main image, then thumbs below).
   The desktop override (thumbnail rail to the LEFT of the main image, plus
   the vertical scroll arrows) lives further down this file, deliberately
   positioned AFTER every rule it overrides - see that block's own comment
   for why the ordering itself is load-bearing here, not just tidiness. */
.cart-pdp-gallery {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.cart-pdp-gallery-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  background: var(--bs-tertiary-bg);
  color: var(--cart-meta-color, var(--bs-secondary-color));
  font-size: 3rem;
  border-radius: 0.5rem;
}

/* .cart-pdp-thumbs-wrap is the outer flex column (scroll-up arrow / the
   scrollable thumb strip itself / scroll-down arrow) - a real, separate
   element from .cart-pdp-thumbs (the scrollable region alone) specifically
   so the two arrow buttons can sit OUTSIDE the scrollable area rather than
   inside it, where they'd otherwise scroll out of view along with the
   thumbnails they're meant to control. On mobile .cart-pdp-thumbs has no
   height cap at all (see the base .cart-pdp-thumbs rule below - it just
   wraps to more rows), so scrollHeight never exceeds clientHeight there
   and the arrows stay correctly hidden via the has-overflow gate without
   needing a separate mobile-specific override. */
.cart-pdp-thumbs-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
}

.cart-pdp-thumbs {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

/* Plain chevron glyphs, no button chrome (background/border) - matches
   the reference cafepress gallery's own thumbnail-scroll arrows, which
   are deliberately a lighter-weight affordance than the main image's own
   circular Prev/Next buttons. Hidden by default and shown only once JS
   (cartPdp gallery init) confirms the thumbnail column actually overflows
   its max-height - a product with few enough photos to fit the whole
   column has nothing to scroll, so no arrows to show. */
.cart-pdp-thumbs-scroll-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 1.1rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--cart-meta-color, var(--bs-secondary-color));
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  flex: 0 0 auto;
}

.cart-pdp-thumbs-scroll-btn:hover {
  color: var(--bs-body-color);
}

.cart-pdp-thumbs-scroll-btn:disabled {
  opacity: 0.25;
  cursor: default;
  pointer-events: none;
}

.cart-pdp-thumbs-wrap.has-overflow .cart-pdp-thumbs-scroll-btn {
  display: flex;
}

.cart-pdp-thumb {
  /* Base (mobile) size only - kept compact so several still wrap per row
     below the main image on a narrow viewport, matching this layout's own
     original mobile behavior. The larger, cafepress-reference-matching
     size (7rem) is scoped to the md+ desktop left-rail layout instead, in
     the media query below - a first attempt applied 7rem unconditionally
     and, confirmed live via screenshot, that made a thumbnail nearly fill
     an entire 480px-wide mobile viewport on its own (barely more than one
     per row), a real usability regression from the pre-existing compact
     multi-per-row mobile strip that the desktop-only ask never intended. */
  width: 4rem;
  height: 4rem;
  /* Without this, a flex item's default flex-shrink:1 lets the browser
     squish these below their own explicit width/height to fit inside
     .cart-pdp-thumbs' constrained max-height (vertical rail, md+) rather
     than actually overflowing it - confirmed live: with flex-shrink left
     at its default, 6 thumbnails inside a 150px-tall test column shrank to
     ~23px each with scrollHeight staying equal to clientHeight the whole
     time, so the has-overflow scroll-arrow gate never fired at all. */
  flex-shrink: 0;
  object-fit: cover;
  border-radius: 0.5rem;
  cursor: pointer;
  border: 2px solid var(--bs-border-color);
  transition: border-color 0.15s ease;
}

.cart-pdp-thumb.active,
.cart-pdp-thumb:hover {
  border-color: var(--cart-accent, var(--bs-primary));
}

/* stacks thumbnails in a vertical rail to the LEFT
   of the main image on desktop, not below it - reported live against a
   real screenshot after the first Prev/Next/counter pass (which kept the
   pre-existing below-image thumbnail strip untouched, since that part
   already matched the reference at the time). Deliberately done with CSS
   `order` on `.cart-pdp-thumbs-wrap` rather than reordering product.html's
   markup: keeps the main product image first in DOM/source order (the
   primary content, arguably better for a screen reader's default reading
   order and for paint priority) while still rendering it visually second
   on desktop; the underlying flex-column-then-row breakpoint swap is what
   drops it back below the image on narrow viewports, matching the
   original mobile layout, not the desktop left-rail one - a narrow
   fixed-width column competing for horizontal space next to the main
   image would leave little room for either on a small screen.

   This block is deliberately placed AFTER every base (mobile-first)
   .cart-pdp-gallery/-thumbs-wrap/-thumbs rule above, not immediately next
   to .cart-pdp-gallery's own base rule where it originally lived - a real,
   confirmed-live bug: a later base rule at equal specificity always wins a
   cascade tie over an earlier @media-wrapped rule, REGARDLESS of whether
   the media condition matches - @media only gates *whether* a rule
   applies, not its position in source-order cascade resolution. With the
   media query positioned before the base .cart-pdp-thumbs rule, this
   desktop override's own `flex-wrap: nowrap` was being silently beaten by
   the later base rule's `flex-wrap: wrap` at EVERY viewport width,
   including desktop - confirmed directly via getBoundingClientRect: 6
   thumbnails inside a height-constrained column wrapped into 3 short
   columns of 2 rows each instead of overflowing into one scrollable
   column, so .cart-pdp-thumbs-wrap's `has-overflow` gate for the new
   scroll arrows below never fired. Fixed by moving the whole media query
   here, after everything it overrides - the standard mobile-first
   ordering convention (base rules first, breakpoint overrides last) exists
   precisely to avoid this class of same-specificity/different-position
   bug, not just as a style preference. */


/* Phase 12 - the main image is wrapped in a real <a data-toggle="lightbox">
   (see product.html) so it opens a real zoom/carousel across every image;
   cursor: zoom-in signals that without needing any extra overlay markup. */
.cart-pdp-main-link {
  display: block;
  cursor: zoom-in;
  position: relative;
}

/* Cafepress-style gallery chrome (raised at the user's own request,
   referencing a real cafepress.com product page as the model): Prev/Next
   arrows and a "N / Total" position counter overlaid on the main image,
   plus a visible zoom-icon hint instead of relying on cursor:zoom-in
   alone (invisible until you're already hovering, easy to miss as an
   affordance). .cart-pdp-main-frame is a dedicated position:relative
   wrapper *around* the <a> link, not the link itself, since a link with
   position:relative would put the zoom-hint icon (already position-
   absolute against the link, unchanged from before this addition) and
   Prev/Next in the same stacking context - keeping them as siblings under
   one shared frame avoids fighting over z-index/click-target overlap. */
.cart-pdp-main-frame {
  position: relative;
}

.cart-pdp-zoom-hint {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2.25rem;
  height: 2.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  border-radius: 50%;
  font-size: 1.1rem;
  opacity: 0;
  transition: opacity 0.15s ease;
  pointer-events: none;
}

.cart-pdp-main-link:hover .cart-pdp-zoom-hint {
  opacity: 1;
}

.cart-pdp-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.85);
  color: var(--bs-body-color);
  border: 1px solid var(--bs-border-color);
  border-radius: 50%;
  font-size: 1.1rem;
  opacity: 0;
  transition: opacity 0.15s ease, background-color 0.15s ease;
  z-index: 2;
}

.cart-pdp-main-frame:hover .cart-pdp-nav-btn {
  opacity: 1;
}

.cart-pdp-nav-btn:hover {
  background: #fff;
}

.cart-pdp-nav-prev {
  left: 0.6rem;
}

.cart-pdp-nav-next {
  right: 0.6rem;
}

.cart-pdp-counter {
  position: absolute;
  bottom: 0.75rem;
  right: 0.75rem;
  padding: 0.15rem 0.6rem;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  border-radius: 1rem;
  font-size: 0.75rem;
  z-index: 2;
}

/* Dark theme: the semi-transparent-black overlays above already read
   fine against a light background; against the app's own dark theme the
   nav buttons' near-white fill would look out of place next to the rest
   of the chrome, so they get the same dark-glass treatment as the
   zoom-hint/counter instead. */
[data-bs-theme="dark"] .cart-pdp-nav-btn {
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.25);
}

[data-bs-theme="dark"] .cart-pdp-nav-btn:hover {
  background: rgba(0, 0, 0, 0.75);
}

.cart-pdp-price {
  color: var(--cart-accent, var(--bs-primary));
}

/* --- Cart page --- */

.cart-items-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.cart-item-row {
  display: grid;
  grid-template-columns: 4rem 1fr auto auto auto;
  align-items: center;
  gap: 0.85rem;
  padding: 0.75rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.6rem;
  background: var(--bs-body-bg);
}



.cart-item-image {
  width: 4rem;
  height: 4rem;
  object-fit: cover;
  border-radius: 0.4rem;
}

.cart-item-image-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bs-tertiary-bg);
  color: var(--cart-meta-color, var(--bs-secondary-color));
}

.cart-item-name {
  font-weight: 600;
  text-decoration: none;
  color: var(--bs-body-color);
}

.cart-item-name:hover {
  color: var(--cart-accent, var(--bs-primary));
}

.cart-item-qty-input {
  width: 4.5rem;
}

.cart-item-price {
  font-weight: 600;
  min-width: 5rem;
}

.cart-item-save-for-later-btn {
  margin-top: 0.25rem;
}

.cart-saved-item-row {
  opacity: 0.9;
}

.cart-saved-for-later-list .cart-item-row {
  background: var(--bs-tertiary-bg);
}

.cart-summary-card {
  position: sticky;
  top: 1rem;
}

.cart-summary-lines dt {
  font-weight: 400;
  color: var(--cart-meta-color, var(--bs-secondary-color));
}

.cart-summary-lines dd {
  margin: 0;
}



.cart-page {
width: min(100%, 88rem);
  padding: clamp(1rem, 3vw, 2rem);
}

.cart-page-header { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; margin-bottom: 1.25rem; padding-bottom: 1.15rem; border-bottom: 1px solid var(--cart-card-border-soft); }
.cart-page-heading { display: flex; align-items: center; min-width: 0; gap: .8rem; }
.cart-page-icon, .cart-section-icon { display: grid; flex: 0 0 auto; place-items: center; border: 1px solid rgba(var(--bs-primary-rgb), .28); background: rgba(var(--bs-primary-rgb), .1); color: var(--cart-accent, var(--bs-primary)); }
.cart-page-icon { width: 3rem; height: 3rem; border-radius: .78rem; font-size: 1.2rem; }
.cart-page-eyebrow, .cart-section-label { display: block; color: var(--cart-accent, var(--bs-primary)); font-size: .6rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.cart-page-header h1 { margin: .1rem 0 .12rem; font-size: clamp(1.55rem, 3vw, 2rem); letter-spacing: -.035em; }
.cart-page-header p { margin: 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .68rem; }
.cart-page-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.cart-page .btn-sm { border-radius: .55rem; font-size: .65rem; }

.cart-loading-state { display: flex; align-items: center; justify-content: center; gap: .6rem; min-height: 15rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .68rem; }
.cart-state-card { display: flex; align-items: center; flex-direction: column; width: min(100%, 36rem); margin: 3rem auto; padding: 2.5rem 1.25rem; border: 1px solid var(--cart-card-border); border-radius: .95rem; background: var(--cart-surface); text-align: center; }
.cart-state-icon { display: grid; width: 3.25rem; height: 3.25rem; place-items: center; border: 1px solid var(--cart-card-border); border-radius: .8rem; background: var(--cart-surface-raised); color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: 1.35rem; }
.cart-state-card h2 { margin: .8rem 0 .2rem; font-size: .9rem; }.cart-state-card p { margin: 0 0 1rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .65rem; }

.cart-page-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(18rem, .75fr); align-items: start; gap: 1rem; }
.cart-page-main { display: grid; min-width: 0; gap: 1rem; }
.cart-page-sidebar { min-width: 0; }
.cart-section-card { min-width: 0; overflow: hidden; border: 1px solid var(--cart-card-border); border-radius: .9rem; background: var(--bs-body-bg); box-shadow: 0 .7rem 2.1rem rgba(0, 0, 0, .07); }
.cart-section-header { display: flex; align-items: center; gap: .7rem; min-height: 4.6rem; padding: .82rem 1rem; border-bottom: 1px solid var(--cart-card-border); background: linear-gradient(105deg, rgba(var(--bs-primary-rgb), .055), transparent 52%), var(--cart-surface); }
.cart-section-icon { width: 2.2rem; height: 2.2rem; border-radius: .62rem; font-size: .9rem; }
.cart-section-header h2 { margin: .08rem 0 0; font-size: .85rem; letter-spacing: -.015em; }.cart-section-header p { margin: .1rem 0 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .58rem; }
.cart-section-body { padding: 1rem; }

.cart-items-list { min-width: 0; }
.cart-items-list:empty { display: none; }
.cart-items-list > :is(.cart-item, .cart-item-row, .cart-item-card, [data-cart-item-id], [data-item-id]) { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; min-width: 0; padding: .85rem 1rem; border-bottom: 1px solid var(--cart-card-border-soft); }
.cart-items-list > :is(.cart-item, .cart-item-row, .cart-item-card, [data-cart-item-id], [data-item-id]):last-child { border-bottom: 0; }
.cart-items-list :is(.cart-item-image, .cart-product-image, img) { width: 4.25rem; height: 4.25rem; border-radius: .62rem; background: var(--cart-surface); object-fit: cover; }
.cart-items-list :is(.cart-item-details, .cart-item-info, .cart-product-details) { min-width: 0; }
.cart-items-list :is(.cart-item-title, .cart-product-name, h3, h4) { margin: 0 0 .18rem; overflow: hidden; font-size: .72rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.cart-items-list :is(.cart-item-variant, .cart-item-meta, .cart-product-meta) { color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .58rem; }
.cart-items-list :is(.cart-item-price, .cart-line-total) { font-size: .7rem; font-weight: 800; white-space: nowrap; }
.cart-items-list :is(.cart-item-actions, .cart-item-controls) { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .38rem; }
.cart-items-list :is(.btn, button) { border-radius: .5rem; font-size: .6rem; }
.cart-items-list :is(input[type="number"], .cart-quantity-input) { width: 3.5rem; min-height: 2rem; padding: .25rem .4rem; border: 1px solid var(--cart-card-border); border-radius: .48rem; background: var(--cart-control); color: var(--bs-body-color); font-size: .62rem; text-align: center; }
.cart-saved-for-later-list { opacity: .9; }
.cart-saved-for-later-list > :is(.cart-item, .cart-item-row, .cart-item-card, [data-cart-item-id], [data-item-id]) { background: color-mix(in srgb, var(--cart-surface) 45%, transparent); }

.cart-inline-alert { display: flex; align-items: flex-start; gap: .55rem; margin: 0; border-radius: .65rem; font-size: .63rem; line-height: 1.45; }
.cart-checkout-account-prompt { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .65rem; margin-bottom: 1rem; padding: .75rem; border: 1px solid rgba(var(--bs-primary-rgb), .2); border-radius: .65rem; background: rgba(var(--bs-primary-rgb), .045); }
.cart-account-icon { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .55rem; background: rgba(var(--bs-primary-rgb), .1); color: var(--cart-accent, var(--bs-primary)); }
.cart-checkout-account-prompt strong { display: block; font-size: .66rem; }.cart-checkout-account-prompt p { margin: .08rem 0 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .56rem; }.cart-account-actions { display: flex; gap: .38rem; }
.cart-checkout-form { display: grid; gap: 1rem; }
.cart-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.cart-field { min-width: 0; }.cart-field-full { grid-column: 1 / -1; }
.cart-field .form-label, .cart-coupon-field .form-label { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; margin-bottom: .32rem; font-size: .63rem; font-weight: 700; }
/* .cart-required uses a darker-than-(--bs-danger) red so this ~8px uppercase marker clears WCAG AA (4.5:1) on light page backgrounds — E156. */
.cart-required, .cart-optional { font-size: .5rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }.cart-required { color: #b02a37; }.cart-optional { color: var(--cart-meta-color, var(--bs-secondary-color)); }
.cart-page :is(.form-control, .form-select) { min-height: 2.5rem; border-color: var(--cart-card-border); border-radius: .58rem; background-color: var(--cart-control); font-size: .67rem; }
.cart-page :is(.form-control, .form-select):focus { border-color: rgba(var(--bs-primary-rgb), .68); box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .1); }
.cart-shipping-section { display: grid; gap: .85rem; padding-top: 1rem; border-top: 1px solid var(--cart-card-border-soft); }
.cart-subsection-header { display: flex; align-items: center; gap: .55rem; }.cart-subsection-header > span { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: .5rem; background: var(--cart-surface); color: var(--cart-accent, var(--bs-primary)); font-size: .75rem; }.cart-subsection-header h3 { margin: 0; font-size: .72rem; }.cart-subsection-header p { margin: .08rem 0 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .54rem; }
.cart-save-address { display: flex; align-items: center; gap: .42rem; margin: 0; padding: .65rem; border: 1px solid var(--cart-card-border); border-radius: .58rem; background: var(--cart-surface); font-size: .61rem; }.cart-save-address .form-check-input { float: none; width: 1rem; height: 1rem; margin: 0; }
.cart-place-order-btn { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; min-height: 2.75rem; border-radius: .62rem; font-size: .7rem; font-weight: 800; }
.cart-secure-note { margin: -.5rem 0 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .53rem; text-align: center; }

.cart-summary-card { position: sticky; top: 1rem; }
.cart-coupon-field { padding-bottom: .9rem; border-bottom: 1px solid var(--cart-card-border-soft); }
.cart-coupon-field .input-group .form-control { border-radius: .58rem 0 0 .58rem; }.cart-coupon-field .input-group .btn { border-radius: 0 .58rem .58rem 0; font-size: .62rem; }.cart-coupon-field .form-text { min-height: .8rem; font-size: .54rem; }
.cart-summary-lines { margin: .9rem 0 0; }
.cart-summary-lines > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .38rem 0; }
.cart-summary-lines dt { color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .62rem; font-weight: 600; }.cart-summary-lines dd { margin: 0; font-size: .64rem; font-weight: 700; }
.cart-summary-total { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .65rem; padding-top: .8rem; border-top: 1px solid var(--cart-card-border); }.cart-summary-total span { font-size: .68rem; font-weight: 750; }.cart-summary-total strong { font-size: 1.05rem; letter-spacing: -.02em; }
.cart-summary-trust { display: flex; justify-content: space-between; gap: .5rem; margin-top: 1rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .5rem; }.cart-summary-trust span { display: inline-flex; align-items: center; gap: .25rem; }.cart-summary-trust i { color: var(--cart-accent, var(--bs-primary)); }






/* Public product directory -------------------------------------------------
   Kept separate from .cart-page so the shop and checkout can share this
   stylesheet without leaking layout rules into one another. */
.cart-shop-page {
width: min(100%, 92rem);
  padding: clamp(1rem, 3vw, 2rem);
}

.cart-shop-page > .d-flex:first-child {
  align-items: center !important;
  margin-bottom: 1.15rem !important;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--cart-card-border-soft);
}

.cart-shop-page > .d-flex:first-child h1 {
  margin: 0 !important;
  font-size: clamp(1.55rem, 3vw, 2rem);
  letter-spacing: -.035em;
}

.cart-shop-page > .d-flex:first-child h1::before {
  display: block;
  margin-bottom: .12rem;
  color: var(--cart-accent, var(--bs-primary));
  content: "Storefront";
  font-size: .59rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.cart-shop-page > .d-flex:first-child > a {
  min-height: 2.4rem;
  padding: .5rem .75rem;
  border-radius: .58rem;
  font-size: .67rem;
  font-weight: 700;
}

.cart-shop-page > .row { --bs-gutter-x: 1rem; }

.cart-shop-page aside .list-group {
  position: sticky;
  top: 1rem;
  overflow: hidden;
  border: 1px solid var(--cart-card-border);
  border-radius: .75rem;
  background: var(--bs-body-bg);
  box-shadow: 0 .65rem 1.8rem rgba(0, 0, 0, .055);
}


.cart-shop-page aside .list-group::before {
  display: block;
  padding: .72rem .82rem .55rem;
  border-bottom: 1px solid var(--cart-card-border-soft);
  background: var(--cart-surface);
  color: var(--cart-meta-color, var(--bs-secondary-color));
  content: "Categories";
  font-size: .57rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.cart-shop-page aside .list-group-item {
  min-height: 2.55rem;
  padding: .62rem .8rem;
  border: 0;
  border-bottom: 1px solid var(--cart-card-border-soft);
  background: transparent;
  color: var(--cart-meta-color, var(--bs-secondary-color));
  font-size: .65rem;
  font-weight: 650;
}

.cart-shop-page aside .list-group-item:first-child {
    border-top-left-radius: 0 !important;
    border-top-right-radius: inherit;
}

.cart-shop-page aside .list-group-item:last-child { border-bottom: 0; }
.cart-shop-page aside .list-group-item:hover { background: rgba(var(--bs-primary-rgb), .045); color: var(--bs-body-color); }
.cart-shop-page aside .list-group-item.active {
  box-shadow: inset .18rem 0 0 var(--cart-accent, var(--bs-primary));
  background: rgba(var(--bs-primary-rgb), .095);
  color: var(--cart-accent, var(--bs-primary));
}

/* NOTE: #cartShopFilterForm is now the outer catalog layout container
   (class .cart-shop-layout, wrapping <aside> + <main>). It is styled by
   `.cart-shop-page .cart-shop-layout` below; its inner filter bar is
   `.cart-shop-toolbar`. The old block here targeted #cartShopFilterForm
   as a single-row filter *toolbar* (an ID selector that outranked
   .cart-shop-layout), which forced a `minmax(12rem, 1fr) …` 3-track grid
   — so the sidebar ballooned to fill 1fr in List view and gap collapsed
   to a hard-coded 1rem. Removed. */

.cart-shop-page .row-cols-1 {
  --bs-gutter-x: .85rem;
  --bs-gutter-y: .85rem;
}

.cart-shop-card {
  height: 100% !important;
  min-height: 0;
  overflow: hidden;
  border: 1px solid var(--cart-card-border);
  border-radius: .78rem;
  background: var(--bs-body-bg);
  box-shadow: 0 .55rem 1.6rem rgba(0, 0, 0, .05);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.cart-shop-card:hover {
  border-color: color-mix(in srgb, var(--cart-accent, var(--bs-primary)) 45%, var(--cart-card-border));
  box-shadow: 0 .9rem 2.2rem rgba(0, 0, 0, .1);
  transform: translateY(-2px);
}

.cart-shop-card-image-link {
  display: block;
  overflow: hidden;
  border-bottom: 1px solid var(--cart-card-border-soft);
  background: var(--cart-surface);
  text-decoration: none;
}

.cart-shop-card-image {
  display: block;
  width: 100%;
  height: 10.75rem;
  border-radius: 0 !important;
  background: var(--cart-surface);
  object-fit: contain;
  transition: transform .2s ease;
}

.cart-shop-card:hover .cart-shop-card-image:not(.cart-shop-card-image-empty) { transform: scale(1.025); }

.cart-shop-card-image-empty {
  display: grid;
  height: 10.75rem;
  place-items: center;
  background:
    radial-gradient(circle at center, rgba(var(--bs-primary-rgb), .08), transparent 48%),
    var(--cart-surface);
  color: color-mix(in srgb, var(--cart-accent, var(--bs-primary)) 72%, var(--cart-meta-color, var(--bs-secondary-color)));
}

.cart-shop-card-image-empty i { font-size: 1.45rem; opacity: .75; }

.cart-shop-card-wishlist {
  position: absolute !important;
  z-index: 4;
  top: .6rem;
  right: .6rem;
  display: grid !important;
  width: 2.05rem !important;
  height: 2.05rem !important;
  min-height: 0 !important;
  padding: 0 !important;
  place-items: center;
  border: 1px solid var(--cart-card-border) !important;
  border-radius: .55rem !important;
  background: color-mix(in srgb, var(--bs-body-bg) 88%, transparent) !important;
  color: var(--cart-meta-color, var(--bs-secondary-color)) !important;
  box-shadow: 0 .25rem .7rem rgba(0, 0, 0, .12);
  backdrop-filter: blur(8px);
}

.cart-shop-card-wishlist:hover,
.cart-shop-card-wishlist.active {
  border-color: rgba(var(--bs-danger-rgb), .35) !important;
  background: color-mix(in srgb, var(--bs-body-bg) 92%, var(--bs-danger)) !important;
  color: var(--bs-danger) !important;
}

.cart-shop-card .card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 8.9rem;
  padding: .82rem;
}

.cart-shop-card .card-body h2 {
  margin: 0 0 .3rem;
  font-size: .72rem;
  font-weight: 750;
  line-height: 1.35;
}

.cart-shop-card .card-body h2 a {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.cart-shop-card-rating {
  display: flex;
  align-items: center;
  gap: .2rem;
  margin: 0 0 .35rem !important;
  font-size: .57rem !important;
}

.cart-shop-card-price {
  margin: auto 0 .65rem !important;
  color: var(--bs-body-color);
  font-size: .68rem;
  font-weight: 750;
}

.cart-shop-card-price .badge {
  padding: .22rem .4rem;
  border-radius: .38rem;
  font-size: .5rem;
  text-transform: uppercase;
}

.cart-shop-card-price s { font-size: .56rem !important; font-weight: 500; }

.cart-shop-card .card-body > .btn {
  min-height: 2.15rem;
  margin-top: 0 !important;
  border-radius: .52rem;
  font-size: .62rem;
  font-weight: 750;
}

/* -- Layer 2 : cart  (.cart-page) ------------------------------------- */
/* Public cart and checkout. Loaded after main.css to normalize the legacy compact sizing. */
.cart-page {
width: min(100%, 90rem);
  padding: clamp(1.1rem, 2.5vw, 2.35rem);
  color: var(--bs-body-color);
  font-size: .94rem;
}

/* Header */
.cart-page .cart-page-header { align-items: center; gap: 1.5rem; margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom-color: var(--cart-card-border); }
.cart-page .cart-page-heading { gap: .85rem; }
.cart-page .cart-page-icon { width: 3.15rem; height: 3.15rem; border-radius: .7rem; font-size: 1.25rem; }
.cart-page .cart-page-eyebrow, .cart-page .cart-section-label { font-size: .67rem; letter-spacing: .11em; }
.cart-page .cart-page-header h1 { margin: .08rem 0 .15rem; font-size: clamp(1.9rem, 3.2vw, 2.55rem); font-weight: 650; }
.cart-page .cart-page-header p { font-size: .88rem; line-height: 1.45; }
.cart-page .cart-page-actions { gap: .5rem; }
.cart-page .btn-sm { min-height: 2.35rem; padding: .45rem .72rem; border-radius: .4rem; font-size: .78rem; font-weight: 650; }

/* States */
.cart-page .cart-loading-state { min-height: 18rem; font-size: .86rem; }
.cart-page .cart-state-card { padding: 3.25rem 1.5rem; border-color: var(--cart-card-border); border-radius: .75rem; background: var(--cart-muted-panel); }
.cart-page .cart-state-icon { width: 3.75rem; height: 3.75rem; border-color: var(--cart-card-border); border-radius: .65rem; font-size: 1.55rem; }
.cart-page .cart-state-card h2 { margin: 1rem 0 .3rem; font-size: 1.2rem; }
.cart-page .cart-state-card p { margin-bottom: 1.2rem; font-size: .86rem; }

/* Two-column checkout workspace */
.cart-page .cart-page-layout { grid-template-columns: minmax(0, 1.65fr) minmax(19rem, .72fr); gap: 1.35rem; }
.cart-page .cart-page-main { gap: 1.15rem; }
.cart-page .cart-section-card { border-color: var(--cart-card-border); border-radius: .7rem; background: var(--cart-card-bg); box-shadow: 0 .35rem 1.2rem rgba(0, 0, 0, .045); }
.cart-page .cart-section-header { min-height: 0; padding: 1rem 1.1rem; border-bottom-color: var(--cart-card-border); background: linear-gradient(110deg, rgba(var(--bs-primary-rgb), .055), transparent 55%), var(--cart-muted-panel); }
.cart-page .cart-section-icon { width: 2.35rem; height: 2.35rem; border-radius: .55rem; font-size: .95rem; }
.cart-page .cart-section-header h2 { margin: .08rem 0 0; font-size: 1rem; font-weight: 700; }
.cart-page .cart-section-header p { margin-top: .18rem; font-size: .76rem; line-height: 1.4; }
.cart-page .cart-section-body { padding: 1.15rem; }

/* Cart lines rendered by main.js */
.cart-page .cart-items-list { display: block; }
.cart-page .cart-item-row, .cart-page .cart-items-list > .cart-item-row {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr) 4.75rem minmax(7.5rem, auto) 2.4rem;
  align-items: center;
  gap: 1rem;
  min-width: 0;
  padding: 1rem 1.1rem;
  border: 0;
  border-bottom: 1px solid var(--cart-card-border-soft);
  border-radius: 0;
  background: transparent;
}
.cart-page .cart-item-row:last-child, .cart-page .cart-items-list > .cart-item-row:last-child { border-bottom: 0; }
.cart-page .cart-items-list .cart-item-image, .cart-page .cart-item-image { width: 5.5rem; height: 5.5rem; border: 1px solid var(--cart-card-border-soft); border-radius: .55rem; background: var(--cart-muted-panel); object-fit: contain; }
.cart-page .cart-item-info { min-width: 0; }
.cart-page .cart-item-name { display: inline-block; margin-bottom: .25rem; color: var(--bs-body-color); font-size: .92rem; font-weight: 700; line-height: 1.3; text-decoration: none; }
.cart-page .cart-item-name:hover { color: var(--cart-accent, var(--bs-primary)); }
.cart-page .cart-item-info .text-muted { font-size: .76rem !important; line-height: 1.35; }
.cart-page .cart-items-list .cart-item-save-for-later-btn { min-height: 0; margin-top: .4rem; padding: 0 !important; border: 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .72rem; text-decoration: underline; text-underline-offset: .18rem; }
.cart-page .cart-items-list .cart-item-save-for-later-btn:hover { color: var(--cart-accent, var(--bs-primary)); }
.cart-page .cart-item-qty { position: relative; }
.cart-page .cart-item-qty::before { display: block; margin-bottom: .25rem; color: var(--cart-meta-color, var(--bs-secondary-color)); content: "Qty"; font-size: .64rem; font-weight: 700; text-align: center; text-transform: uppercase; }
.cart-page .cart-items-list .cart-item-qty-input, .cart-page .cart-item-qty-input { width: 100%; min-height: 2.4rem; padding: .35rem; border-color: var(--cart-card-border); border-radius: .4rem; background: var(--cart-control); font-size: .82rem; text-align: center; }
.cart-page .cart-item-price { font-size: .88rem; font-weight: 750; white-space: nowrap; }
.cart-page .cart-item-price .badge { padding: .22rem .4rem; border-radius: .2rem; font-size: .6rem; letter-spacing: .03em; text-transform: uppercase; }
.cart-page .cart-item-price s { font-size: .72rem !important; }
.cart-page .cart-items-list .cart-item-remove-btn { display: grid; width: 2.35rem; height: 2.35rem; min-height: 0; padding: 0; place-items: center; border-radius: .4rem; font-size: .75rem; }

/* Saved products use a simpler four-column row */
.cart-page .cart-saved-for-later-list .cart-saved-item-row { grid-template-columns: 5.5rem minmax(0, 1fr) minmax(7rem, auto) auto; background: color-mix(in srgb, var(--cart-muted-panel) 48%, transparent); }
.cart-page .cart-saved-item-row > .d-flex { min-width: 10.5rem; align-items: center; justify-content: flex-end; flex-direction: row !important; gap: .45rem !important; }
.cart-page .cart-saved-item-row .cart-item-move-to-cart-btn { white-space: nowrap; }
.cart-page .cart-saved-item-row .cart-item-remove-btn { flex: 0 0 auto; }

/* Saved-for-later is a holding area, visually distinct from the active order. */
.cart-page .cart-saved-section > .cart-section-header { border-bottom-color: color-mix(in srgb, var(--bs-warning) 28%, var(--cart-card-border)); background: linear-gradient(110deg, rgba(var(--bs-warning-rgb), .13), rgba(var(--bs-warning-rgb), .025) 58%), var(--cart-muted-panel); }
.cart-page .cart-saved-section > .cart-section-header .cart-section-icon { border-color: rgba(var(--bs-warning-rgb), .34); background: rgba(var(--bs-warning-rgb), .12); color: color-mix(in srgb, var(--bs-warning) 78%, var(--bs-body-color)); }
.cart-page .cart-saved-section > .cart-section-header .cart-section-label { color: color-mix(in srgb, var(--bs-warning) 76%, var(--bs-body-color)); }

/* Alerts and account prompt */
.cart-page .cart-inline-alert { padding: .8rem .9rem; border-radius: .5rem; font-size: .78rem; }
.cart-page .cart-checkout-account-prompt { gap: .8rem; margin-bottom: 1.15rem; padding: .9rem; border-radius: .55rem; }
.cart-page .cart-account-icon { width: 2.25rem; height: 2.25rem; border-radius: .5rem; }
.cart-page .cart-checkout-account-prompt strong { font-size: .82rem; }
.cart-page .cart-checkout-account-prompt p { margin-top: .12rem; font-size: .73rem; line-height: 1.4; }
.cart-page .cart-account-actions { gap: .45rem; }

/* Checkout fields */
.cart-page .cart-checkout-form { gap: 1.15rem; }
.cart-page .cart-form-grid { gap: .9rem; }
.cart-page .cart-field .form-label, .cart-page .cart-coupon-field .form-label { margin-bottom: .4rem; font-size: .78rem; font-weight: 700; }
.cart-page .cart-required, .cart-page .cart-optional { font-size: .58rem; }
.cart-page :is(.form-control, .cart-page .form-select) { min-height: 2.75rem; border-color: var(--cart-card-border); border-radius: .45rem; background-color: var(--cart-control); font-size: .82rem; }
.cart-page .cart-shipping-section { gap: 1rem; padding-top: 1.15rem; border-top-color: var(--cart-card-border-soft); }
.cart-page .cart-subsection-header { gap: .65rem; }
.cart-page .cart-subsection-header > span { width: 2rem; height: 2rem; border-radius: .45rem; font-size: .82rem; }
.cart-page .cart-subsection-header h3 { font-size: .88rem; }
.cart-page .cart-subsection-header p { margin-top: .1rem; font-size: .7rem; }
.cart-page .cart-save-address { gap: .5rem; padding: .75rem; border-color: var(--cart-card-border); border-radius: .45rem; font-size: .76rem; }
.cart-page .cart-save-address .form-check-input { width: 1.1rem; height: 1.1rem; }
.cart-page .cart-place-order-btn { min-height: 3rem; border-radius: .48rem; font-size: .86rem; }
.cart-page .cart-secure-note { margin-top: -.55rem; font-size: .68rem; }

/* Sticky order summary */
.cart-page .cart-summary-card { top: 1rem; }
.cart-page .cart-coupon-field { padding-bottom: 1rem; border-bottom-color: var(--cart-card-border-soft); }
.cart-page .cart-coupon-field .input-group .form-control { border-radius: .45rem 0 0 .45rem; }
.cart-page .cart-coupon-field .input-group .btn { border-radius: 0 .45rem .45rem 0; font-size: .76rem; font-weight: 700; }
.cart-page .cart-coupon-field .form-text { min-height: .9rem; font-size: .68rem; }
.cart-page .cart-summary-lines { margin-top: 1rem; }
.cart-page .cart-summary-lines > div { padding: .5rem 0; }
.cart-page .cart-summary-lines dt { font-size: .78rem; }
.cart-page .cart-summary-lines dd { font-size: .8rem; }
.cart-page .cart-summary-total { margin-top: .75rem; padding-top: 1rem; border-top-color: var(--cart-card-border); }
.cart-page .cart-summary-total span { font-size: .88rem; }
.cart-page .cart-summary-total strong { font-size: 1.35rem; }
.cart-page .cart-summary-trust { margin-top: 1.15rem; font-size: .65rem; }

/* -- Layer 2 : shop  (.cart-shop-page, .cart-wishlist-page) ------------------------------------- */
/* Public shop catalog. Loaded after main.css so product-detail gallery rules remain untouched. */
.cart-shop-page {
width: min(100%, 96rem);
  padding: clamp(1.1rem, 2.4vw, 2.25rem) clamp(.85rem, 2.4vw, 2.25rem) 3rem;
  color: var(--bs-body-color);
  font-size: .94rem;
}

.cart-shop-page .cart-shop-header, .cart-wishlist-page .cart-shop-header { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.35rem; }
.cart-shop-page .cart-shop-eyebrow, .cart-wishlist-page .cart-shop-eyebrow { display: block; margin-bottom: .25rem; color: var(--cart-accent, var(--bs-primary)); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cart-shop-page .cart-shop-header h1, .cart-wishlist-page .cart-shop-header h1 { margin: 0; font-size: clamp(1.85rem, 3.2vw, 2.6rem); font-weight: 650; letter-spacing: -.04em; line-height: 1.08; }
.cart-shop-page .cart-shop-header p, .cart-wishlist-page .cart-shop-header p { max-width: 52rem; margin: .38rem 0 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .88rem; line-height: 1.5; }
.cart-shop-page .cart-shop-cart-link, .cart-wishlist-page .cart-shop-cart-link { display: inline-flex; align-items: center; justify-content: center; min-height: 2.45rem; padding: .5rem .8rem; gap: .4rem; border-radius: .35rem; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.cart-shop-page .cart-shop-cart-link .cart-nav-count, .cart-wishlist-page .cart-shop-cart-link .cart-nav-count { min-width: 1.2rem; padding: .18rem .35rem; border-radius: 999px; font-size: .62rem; }

/* Catalog layout and scalable category sidebar */
.cart-shop-page .cart-shop-layout, .cart-wishlist-page .cart-shop-layout { display: grid; grid-template-columns: minmax(11rem, 13rem) minmax(0, 1fr); align-items: start; gap: clamp(1.35rem, 2.6vw, 2.5rem); }
.cart-shop-page .cart-shop-results, .cart-wishlist-page .cart-shop-results { min-width: 0; }
.cart-shop-page .cart-shop-sidebar, .cart-wishlist-page .cart-shop-sidebar { position: sticky; top: 1rem; min-width: 0; }
.cart-shop-page .cart-shop-categories, .cart-wishlist-page .cart-shop-categories { border: 0; }
.cart-shop-page .cart-shop-categories-heading, .cart-wishlist-page .cart-shop-categories-heading { display: flex; align-items: center; justify-content: space-between; padding: 0 0 .7rem; border-bottom: 1px solid var(--cart-card-border); color: var(--bs-body-color); font-size: .69rem; font-weight: 800; letter-spacing: .09em; list-style: none; text-transform: uppercase; }
.cart-shop-page .cart-shop-categories-heading::-webkit-details-marker, .cart-wishlist-page .cart-shop-categories-heading::-webkit-details-marker { display: none; }
.cart-shop-page .cart-shop-categories-heading i, .cart-wishlist-page .cart-shop-categories-heading i { display: none; font-size: .72rem; transition: transform .18s ease; }
.cart-shop-page .cart-shop-category-list, .cart-wishlist-page .cart-shop-category-list { display: block; max-height: min(65vh, 36rem); overflow-y: auto; padding: .35rem .35rem .35rem 0; scrollbar-color: var(--cart-card-border) transparent; scrollbar-width: thin; }
.cart-shop-page .cart-shop-category-link, .cart-wishlist-page .cart-shop-category-link { display: block; padding: .62rem .65rem; border-left: 2px solid transparent; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .79rem; font-weight: 600; line-height: 1.25; text-decoration: none; overflow-wrap: anywhere; }
.cart-shop-page .cart-shop-category-link:hover, .cart-wishlist-page .cart-shop-category-link:hover { background: var(--cart-media-bg); color: var(--bs-body-color); }
.cart-shop-page .cart-shop-category-link.active, .cart-wishlist-page .cart-shop-category-link.active { border-left-color: var(--cart-accent, var(--bs-primary)); background: rgba(var(--bs-primary-rgb), .09); color: var(--cart-accent, var(--bs-primary)); font-weight: 750; }

/* Search and sort */
.cart-shop-page .cart-shop-toolbar, .cart-wishlist-page .cart-shop-toolbar, .cart-shop-page #cartShopFilterForm.cart-shop-toolbar, .cart-wishlist-page #cartShopFilterForm.cart-shop-toolbar { display: grid !important; grid-template-columns: minmax(15rem, 1fr) minmax(10.5rem, 12rem) auto 2.55rem; align-items: end; gap: .55rem !important; margin: 0 0 1.25rem !important; padding: 0; border: 0; background: transparent; }
.cart-shop-page .cart-shop-search-field, .cart-wishlist-page .cart-shop-search-field { position: relative; min-width: 0; }
.cart-shop-page .cart-shop-search-field > i, .cart-wishlist-page .cart-shop-search-field > i { position: absolute; z-index: 2; top: 50%; left: .82rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .8rem; transform: translateY(-50%); pointer-events: none; }
.cart-shop-page .cart-shop-search-field .form-control, .cart-wishlist-page .cart-shop-search-field .form-control { padding-left: 2.3rem; }
.cart-shop-page .cart-shop-sort-field label, .cart-wishlist-page .cart-shop-sort-field label { display: block; margin-bottom: .3rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .67rem; font-weight: 700; }
.cart-shop-page .cart-shop-toolbar :is(.form-control, .cart-wishlist-page .cart-shop-toolbar :is(.form-control, .cart-shop-page .form-select), .cart-wishlist-page .form-select) { min-height: 2.55rem; border: 1px solid var(--cart-card-border); border-radius: .35rem; background: var(--cart-control); color: var(--bs-body-color); font-size: .8rem; }
.cart-shop-page .cart-shop-toolbar :is(.form-control, .cart-wishlist-page .cart-shop-toolbar :is(.form-control, .cart-shop-page .form-select):focus, .cart-wishlist-page .form-select):focus { border-color: rgba(var(--bs-primary-rgb), .8); box-shadow: 0 0 0 .18rem rgba(var(--bs-primary-rgb), .12); }
.cart-shop-page .cart-shop-search-btn, .cart-wishlist-page .cart-shop-search-btn { display: grid; width: 2.55rem; height: 2.55rem; padding: 0; place-items: center; border-radius: .35rem; }
.cart-shop-page .cart-shop-view-switch, .cart-wishlist-page .cart-shop-view-switch { display: inline-flex; height: 2.55rem; padding: .2rem; gap: .12rem; border: 1px solid var(--cart-card-border); border-radius: .35rem; background: var(--cart-control); }
.cart-shop-page .cart-shop-view-btn, .cart-wishlist-page .cart-shop-view-btn { display: grid; width: 2.05rem; padding: 0; place-items: center; border: 0; border-radius: .24rem; background: transparent; color: var(--cart-meta-color, var(--bs-secondary-color)); }
.cart-shop-page .cart-shop-view-btn:hover, .cart-wishlist-page .cart-shop-view-btn:hover { color: var(--bs-body-color); }
.cart-shop-page .cart-shop-view-btn.active, .cart-wishlist-page .cart-shop-view-btn.active { background: rgba(var(--bs-primary-rgb), .14); color: var(--cart-accent, var(--bs-primary)); }
.cart-shop-page .cart-shop-view-btn:focus-visible, .cart-wishlist-page .cart-shop-view-btn:focus-visible { outline: 2px solid var(--cart-accent, var(--bs-primary)); outline-offset: 1px; }

/* Compact product collection */
.cart-shop-page .cart-shop-grid, .cart-wishlist-page .cart-shop-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.5rem, 2.5vw, 2.35rem) clamp(.85rem, 1.75vw, 1.35rem); }
.cart-shop-page .cart-shop-card, .cart-wishlist-page .cart-shop-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid var(--cart-card-border-soft); border-radius: .7rem; background: color-mix(in srgb, var(--bs-body-bg) 97%, var(--bs-tertiary-bg)); box-shadow: 0 .25rem .8rem rgba(0, 0, 0, .035); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.cart-shop-page .cart-shop-card:hover, .cart-wishlist-page .cart-shop-card:hover { border-color: var(--cart-card-border); box-shadow: 0 .65rem 1.5rem rgba(0, 0, 0, .08); transform: translateY(-2px); }
.cart-shop-page .cart-shop-card-image-link, .cart-wishlist-page .cart-shop-card-image-link { display: block; overflow: hidden; margin: .45rem .45rem 0; border-radius: .5rem; background: var(--cart-media-bg); }
.cart-shop-page .cart-shop-card-image, .cart-wishlist-page .cart-shop-card-image { display: block; width: 100%; aspect-ratio: 4 / 4.35; border-radius: .5rem !important; background: var(--cart-media-bg); object-fit: contain; transition: transform .25s ease; }
.cart-shop-page .cart-shop-card:hover .cart-shop-card-image:not(.cart-shop-card-image-empty), .cart-wishlist-page .cart-shop-card:hover .cart-shop-card-image:not(.cart-shop-card-image-empty) { transform: scale(1.025); }
.cart-shop-page .cart-shop-card-image-empty, .cart-wishlist-page .cart-shop-card-image-empty { display: grid; place-items: center; color: color-mix(in srgb, var(--cart-meta-color, var(--bs-secondary-color)) 72%, transparent); }
.cart-shop-page .cart-shop-card-image-empty i, .cart-wishlist-page .cart-shop-card-image-empty i { font-size: 1.7rem; opacity: .72; }
.cart-shop-page .cart-shop-card-wishlist, .cart-wishlist-page .cart-shop-card-wishlist { position: absolute !important; z-index: 4; top: .65rem; right: .65rem; display: grid !important; width: 2.25rem !important; height: 2.25rem !important; min-height: 0 !important; padding: 0 !important; place-items: center; border: 1px solid var(--cart-card-border) !important; border-radius: 50% !important; background: color-mix(in srgb, var(--bs-body-bg) 88%, transparent) !important; color: var(--cart-meta-color, var(--bs-secondary-color)) !important; box-shadow: 0 .2rem .65rem rgba(0, 0, 0, .12); backdrop-filter: blur(8px); }
.cart-shop-page .cart-shop-card-wishlist:hover, .cart-wishlist-page .cart-shop-card-wishlist:hover, .cart-shop-page .cart-shop-card-wishlist.active, .cart-wishlist-page .cart-shop-card-wishlist.active { border-color: rgba(var(--bs-danger-rgb), .5) !important; background: var(--bs-body-bg) !important; color: var(--bs-danger) !important; }
.cart-shop-page .cart-shop-card .card-body, .cart-wishlist-page .cart-shop-card .card-body { display: flex; flex: 1 1 auto; flex-direction: column; padding: .8rem .75rem .8rem; }
.cart-shop-page .cart-shop-card .card-body h2, .cart-wishlist-page .cart-shop-card .card-body h2 { margin: 0 0 .35rem; font-size: .92rem; font-weight: 650; line-height: 1.35; }
.cart-shop-page .cart-shop-card .card-body h2 a, .cart-wishlist-page .cart-shop-card .card-body h2 a { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--bs-body-color); text-decoration: none; }
.cart-shop-page .cart-shop-card .card-body h2 a:hover, .cart-wishlist-page .cart-shop-card .card-body h2 a:hover { color: var(--cart-accent, var(--bs-primary)); }
.cart-shop-page .cart-shop-card-rating, .cart-wishlist-page .cart-shop-card-rating { display: flex; align-items: center; gap: .24rem; margin: 0 0 .35rem !important; font-size: .72rem !important; }
.cart-shop-page .cart-shop-card-price, .cart-wishlist-page .cart-shop-card-price { display: flex; align-items: center; flex-wrap: wrap; gap: .32rem; margin: auto 0 .55rem !important; color: var(--bs-body-color); font-size: .82rem; font-weight: 700; }
.cart-shop-page .cart-shop-card-price .badge, .cart-wishlist-page .cart-shop-card-price .badge { padding: .2rem .38rem; border-radius: .18rem; font-size: .58rem; letter-spacing: .035em; text-transform: uppercase; }
.cart-shop-page .cart-shop-card-price s, .cart-wishlist-page .cart-shop-card-price s { color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .7rem; font-weight: 500; }
.cart-shop-page .cart-shop-card-link, .cart-wishlist-page .cart-shop-card-link { display: inline-flex; align-items: center; align-self: flex-start; gap: .3rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .72rem; font-weight: 700; text-decoration: none; }
.cart-shop-page .cart-shop-card-link:hover, .cart-wishlist-page .cart-shop-card-link:hover { color: var(--cart-accent, var(--bs-primary)); }
.cart-shop-page .cart-shop-card-link i, .cart-wishlist-page .cart-shop-card-link i { transition: transform .15s ease; }
.cart-shop-page .cart-shop-card-link:hover i, .cart-wishlist-page .cart-shop-card-link:hover i { transform: translateX(.16rem); }

/* List view */
.cart-shop-page .cart-shop-grid[data-view="list"], .cart-wishlist-page .cart-shop-grid[data-view="list"] { display: block; }
.cart-shop-page .cart-shop-grid[data-view="list"] .cart-shop-card, .cart-wishlist-page .cart-shop-grid[data-view="list"] .cart-shop-card { display: grid; grid-template-columns: clamp(8rem, 16vw, 11rem) minmax(0, 1fr); gap: 1rem; margin-bottom: .7rem; padding: .45rem; }
.cart-shop-page .cart-shop-grid[data-view="list"] .cart-shop-card-image-link, .cart-wishlist-page .cart-shop-grid[data-view="list"] .cart-shop-card-image-link { margin: 0; }
.cart-shop-page .cart-shop-grid[data-view="list"] .cart-shop-card-image, .cart-wishlist-page .cart-shop-grid[data-view="list"] .cart-shop-card-image { aspect-ratio: 1 / 1; }
.cart-shop-page .cart-shop-grid[data-view="list"] .cart-shop-card-wishlist, .cart-wishlist-page .cart-shop-grid[data-view="list"] .cart-shop-card-wishlist { top: 1.6rem; right: .65rem; }
.cart-shop-page .cart-shop-grid[data-view="list"] .cart-shop-card .card-body, .cart-wishlist-page .cart-shop-grid[data-view="list"] .cart-shop-card .card-body { justify-content: center; padding: .25rem 3.25rem .25rem 0; }
.cart-shop-page .cart-shop-grid[data-view="list"] .cart-shop-card .card-body h2, .cart-wishlist-page .cart-shop-grid[data-view="list"] .cart-shop-card .card-body h2 { margin-bottom: .45rem; font-size: 1rem; }
.cart-shop-page .cart-shop-grid[data-view="list"] .cart-shop-card-price, .cart-wishlist-page .cart-shop-grid[data-view="list"] .cart-shop-card-price { margin: .1rem 0 .65rem !important; }

.cart-shop-page .cart-shop-empty, .cart-wishlist-page .cart-shop-empty { display: flex; align-items: center; flex-direction: column; padding: 4rem 1.5rem; border-top: 1px solid var(--cart-card-border); border-bottom: 1px solid var(--cart-card-border); text-align: center; }
.cart-shop-page .cart-shop-empty > span, .cart-wishlist-page .cart-shop-empty > span { display: grid; width: 3.4rem; height: 3.4rem; place-items: center; border: 1px solid var(--cart-card-border); border-radius: 50%; color: var(--cart-meta-color, var(--bs-secondary-color)); }
.cart-shop-page .cart-shop-empty h2, .cart-wishlist-page .cart-shop-empty h2 { margin: .85rem 0 .25rem; font-size: 1.12rem; }
.cart-shop-page .cart-shop-empty p, .cart-wishlist-page .cart-shop-empty p { margin: 0 0 1rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .82rem; }






/* E112: nested category links in the shop sidebar */
.cart-shop-page .cart-shop-category-link-child, .cart-wishlist-page .cart-shop-category-link-child { padding-left: 1.5rem; font-size: 0.9375rem; }
.cart-shop-page .cart-shop-category-link-grandchild, .cart-wishlist-page .cart-shop-category-link-grandchild { padding-left: 2.5rem; font-size: 0.9375rem; opacity: 0.9; }

/* E113/E114: filter sidebar (categories checkboxes, price slider, in-stock, attribute facets) */
.cart-shop-page .cart-shop-filter-head, .cart-wishlist-page .cart-shop-filter-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .6rem; }
.cart-shop-page .cart-shop-filter-title, .cart-wishlist-page .cart-shop-filter-title { font-weight: 600; font-size: .95rem; }
.cart-shop-page .cart-shop-clear-filters, .cart-wishlist-page .cart-shop-clear-filters { font-size: .78rem; text-decoration: none; color: rgba(var(--bs-primary-rgb), .95); }
.cart-shop-page .cart-shop-clear-filters:hover, .cart-wishlist-page .cart-shop-clear-filters:hover { text-decoration: underline; }

.cart-shop-page .cart-shop-filter-group, .cart-wishlist-page .cart-shop-filter-group { border-top: 1px solid var(--cart-card-border); padding: .55rem 0; }
.cart-shop-page .cart-shop-filter-group > summary, .cart-wishlist-page .cart-shop-filter-group > summary { list-style: none; cursor: pointer; font-weight: 600; font-size: .82rem; display: flex; align-items: center; justify-content: space-between; padding: .1rem 0; }
.cart-shop-page .cart-shop-filter-group > summary::-webkit-details-marker, .cart-wishlist-page .cart-shop-filter-group > summary::-webkit-details-marker { display: none; }
.cart-shop-page .cart-shop-filter-group > summary::after, .cart-wishlist-page .cart-shop-filter-group > summary::after { content: "\2013"; opacity: .5; }
.cart-shop-page .cart-shop-filter-group:not([open]) > summary::after, .cart-wishlist-page .cart-shop-filter-group:not([open]) > summary::after { content: "+"; }
.cart-shop-page .cart-shop-filter-options, .cart-wishlist-page .cart-shop-filter-options { display: flex; flex-direction: column; gap: .3rem; margin-top: .45rem; max-height: 15rem; overflow-y: auto; }

.cart-shop-page .cart-shop-filter-option, .cart-wishlist-page .cart-shop-filter-option { display: flex; align-items: center; gap: .45rem; font-size: .8rem; cursor: pointer; margin: 0; }
.cart-shop-page .cart-shop-filter-option input, .cart-wishlist-page .cart-shop-filter-option input { margin: 0; flex: 0 0 auto; }
.cart-shop-page .cart-shop-filter-option > span:first-of-type, .cart-wishlist-page .cart-shop-filter-option > span:first-of-type { flex: 1 1 auto; }
.cart-shop-page .cart-shop-filter-option-child, .cart-wishlist-page .cart-shop-filter-option-child { padding-left: 1rem; }
.cart-shop-page .cart-shop-filter-option-grandchild, .cart-wishlist-page .cart-shop-filter-option-grandchild { padding-left: 2rem; }
.cart-shop-page .cart-shop-facet-count, .cart-wishlist-page .cart-shop-facet-count { font-size: .72rem; color: var(--cart-meta-color, var(--bs-secondary-color)); }

/* dual-handle price slider */
.cart-shop-page .cart-shop-price-filter, .cart-wishlist-page .cart-shop-price-filter { margin-top: .55rem; }
.cart-shop-page .cart-shop-price-slider, .cart-wishlist-page .cart-shop-price-slider { position: relative; height: 1.6rem; }
.cart-shop-page .cart-shop-price-track, .cart-wishlist-page .cart-shop-price-track, .cart-shop-page .cart-shop-price-fill, .cart-wishlist-page .cart-shop-price-fill { position: absolute; top: 50%; height: .28rem; border-radius: .28rem; transform: translateY(-50%); }
.cart-shop-page .cart-shop-price-track, .cart-wishlist-page .cart-shop-price-track { left: 0; right: 0; background: var(--cart-card-border); }
.cart-shop-page .cart-shop-price-fill, .cart-wishlist-page .cart-shop-price-fill { background: rgba(var(--bs-primary-rgb), .85); }
.cart-shop-page .cart-shop-price-range, .cart-wishlist-page .cart-shop-price-range { position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.cart-shop-page .cart-shop-price-range::-webkit-slider-thumb, .cart-wishlist-page .cart-shop-price-range::-webkit-slider-thumb { pointer-events: auto; -webkit-appearance: none; appearance: none; width: 1rem; height: 1rem; border-radius: 50%; background: var(--bs-body-bg); border: 2px solid rgba(var(--bs-primary-rgb), .9); cursor: pointer; margin-top: 0; }
.cart-shop-page .cart-shop-price-range::-moz-range-thumb, .cart-wishlist-page .cart-shop-price-range::-moz-range-thumb { pointer-events: auto; width: 1rem; height: 1rem; border-radius: 50%; background: var(--bs-body-bg); border: 2px solid rgba(var(--bs-primary-rgb), .9); cursor: pointer; }
.cart-shop-page .cart-shop-price-range::-webkit-slider-runnable-track, .cart-wishlist-page .cart-shop-price-range::-webkit-slider-runnable-track, .cart-shop-page .cart-shop-price-range::-moz-range-track, .cart-wishlist-page .cart-shop-price-range::-moz-range-track { background: transparent; }
.cart-shop-page .cart-shop-price-readout, .cart-wishlist-page .cart-shop-price-readout { margin-top: .4rem; font-size: .78rem; color: var(--bs-body-color); }

/* E-cart: /shop pagination */
.cart-shop-page .cart-shop-pagination, .cart-wishlist-page .cart-shop-pagination { display: flex; flex-wrap: wrap; gap: .3rem; justify-content: center; margin-top: 1.75rem; }
.cart-shop-page .cart-shop-page-link, .cart-wishlist-page .cart-shop-page-link { min-width: 2.1rem; padding: .35rem .6rem; text-align: center; border: 1px solid var(--cart-card-border); border-radius: .35rem; font-size: .82rem; text-decoration: none; color: var(--bs-body-color); background: var(--cart-control); }
.cart-shop-page .cart-shop-page-link:hover, .cart-wishlist-page .cart-shop-page-link:hover { border-color: rgba(var(--bs-primary-rgb), .6); }
.cart-shop-page .cart-shop-page-link.active, .cart-wishlist-page .cart-shop-page-link.active { background: rgba(var(--bs-primary-rgb), .9); border-color: rgba(var(--bs-primary-rgb), .9); color: #fff; }

/* -- Layer 2 : product  (.cart-pdp-page) ------------------------------------- */
/* =========================================================
   Cart plugin - public product detail

   This file intentionally does not target the existing gallery, main-image,
   thumbnail, zoom, counter, or gallery-navigation selectors. Those rules
   remain exclusively in main.css.
   ========================================================= */

.cart-pdp-page {
width: min(100%, 86rem);
  padding: clamp(1rem, 2.75vw, 2.25rem);
  color: var(--bs-body-color);
  font-size: .925rem;
}

.cart-pdp-page .cart-pdp-breadcrumb { display: block; margin-bottom: .25rem; }
.cart-pdp-page .cart-pdp-breadcrumb .breadcrumb { align-items: center; margin: 0; font-size: .78rem; }
.cart-pdp-page .cart-pdp-breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: var(--cart-meta-color, var(--bs-secondary-color)); content: "\F285"; font-family: bootstrap-icons; font-size: .62rem; }
.cart-pdp-page .cart-pdp-breadcrumb a { color: var(--cart-meta-color, var(--bs-secondary-color)); text-decoration: none; }
.cart-pdp-page .cart-pdp-breadcrumb a:hover { color: var(--cart-accent, var(--bs-primary)); }

/* Product header */
.cart-pdp-page .cart-pdp-header { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.35rem; margin-top: 1.35rem;}
.cart-pdp-page .cart-pdp-eyebrow { display: block; margin-bottom: .25rem; color: var(--cart-accent, var(--bs-primary)); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cart-pdp-page .cart-pdp-header h1 { margin: 0; font-size: clamp(1.85rem, 3.2vw, 2.6rem); font-weight: 650; letter-spacing: -.04em; line-height: 1.08; }
.cart-pdp-page .cart-pdp-header p { max-width: 52rem; margin: .38rem 0 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .88rem; line-height: 1.5; }
.cart-pdp-page .cart-pdp-cart-link { display: inline-flex; align-items: center; justify-content: center; min-height: 2.45rem; padding: .5rem .8rem; gap: .4rem; border-radius: .35rem; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.cart-pdp-page .cart-pdp-cart-link .cart-nav-count { min-width: 1.2rem; padding: .18rem .35rem; border-radius: 999px; font-size: .62rem; }


/* Product hero */
.cart-pdp-page .cart-pdp-hero { --bs-gutter-x: clamp(1.5rem, 4vw, 4rem); --bs-gutter-y: 1.5rem; align-items: flex-start; }
.cart-pdp-page .cart-pdp-media, .cart-pdp-page .cart-pdp-info { min-width: 0; }
.cart-pdp-page .cart-pdp-media { padding-top: .15rem; }
.cart-pdp-page .cart-pdp-info { position: sticky; top: 1.25rem; padding-top: .15rem; }
.cart-pdp-page .cart-pdp-info::before { display: block; margin-bottom: .45rem; color: var(--cart-meta-color, var(--bs-secondary-color)); content: "Product"; font-size: .7rem; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.cart-pdp-page .cart-pdp-title-row { gap: 1rem; }
.cart-pdp-page .cart-pdp-title-row h1 { max-width: 28ch; margin: 0; font-size: clamp(1.9rem, 3.5vw, 2.85rem) !important; font-weight: 600; letter-spacing: -.04em; line-height: 1.08; }
.cart-pdp-page .cart-wishlist-heart { display: grid; flex: 0 0 auto; width: 2.65rem; height: 2.65rem; min-height: 0; padding: 0; place-items: center; border: 1px solid var(--cart-card-border); border-radius: 50%; background: transparent; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: 1rem; transition: border-color .15s ease, background-color .15s ease, color .15s ease; }
.cart-pdp-page .cart-wishlist-heart:hover, .cart-pdp-page .cart-wishlist-heart.active { border-color: rgba(var(--bs-danger-rgb), .48); background: rgba(var(--bs-danger-rgb), .08); color: var(--bs-danger); }
.cart-pdp-page .cart-pdp-rating { display: flex; align-items: center; gap: .28rem; margin: .8rem 0 1rem !important; color: var(--cart-meta-color, var(--bs-secondary-color)) !important; font-size: .82rem; }
.cart-pdp-page .cart-pdp-rating .bi-star-fill { font-size: .78rem; }
.cart-pdp-page .cart-pdp-price { margin: 0 0 1.1rem; color: var(--bs-body-color); font-size: clamp(1.35rem, 2.2vw, 1.7rem) !important; font-weight: 650 !important; letter-spacing: -.025em; }
.cart-pdp-page .cart-pdp-description { margin-bottom: 1.25rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--cart-card-border); color: var(--cart-meta-color, var(--bs-secondary-color)) !important; font-size: .9rem; line-height: 1.75; }
.cart-pdp-page .cart-pdp-description > :last-child { margin-bottom: 0; }

/* Purchase controls */
.cart-pdp-page .cart-pdp-purchase-form { display: grid; gap: 1rem; }
.cart-pdp-page .cart-pdp-purchase-form > .mb-3 { margin-bottom: 0 !important; }
.cart-pdp-page .cart-pdp-purchase-form .form-label, .cart-pdp-page .cart-pdp-review-form .form-label { margin-bottom: .45rem; color: var(--bs-body-color); font-size: .78rem; font-weight: 700; }
.cart-pdp-page .cart-pdp-option-selected { color: var(--cart-meta-color, var(--bs-secondary-color)) !important; font-size: .72rem; }
.cart-pdp-page .cart-pdp-option-group { gap: .5rem !important; }
.cart-pdp-page .cart-pdp-option-btn { min-height: 2.55rem; padding: .5rem .85rem; border: 1px solid var(--cart-card-border); border-radius: .2rem; background: transparent; color: var(--bs-body-color); font-size: .78rem; font-weight: 650; }
.cart-pdp-page .cart-pdp-option-btn:hover:not(:disabled) { border-color: var(--bs-body-color); background: transparent; color: var(--bs-body-color); }
.cart-pdp-page .cart-pdp-option-btn.active, .cart-pdp-page .cart-pdp-option-btn[aria-pressed="true"] { border-color: var(--bs-body-color); background: var(--bs-body-color); color: var(--bs-body-bg); box-shadow: none; }
.cart-pdp-page .cart-pdp-option-btn:disabled { opacity: .38; text-decoration: line-through; }
.cart-pdp-page :is(.form-control, .cart-pdp-page .form-select) { min-height: 2.75rem; border-color: var(--cart-card-border); border-radius: .2rem; background-color: var(--cart-control); color: var(--bs-body-color); font-size: .84rem; }
.cart-pdp-page :is(.form-control, .cart-pdp-page .form-select):focus { border-color: var(--bs-body-color); box-shadow: 0 0 0 .2rem var(--cart-focus); }
.cart-pdp-page #cartPdpOptionHint, .cart-pdp-page #cartPdpOptionUnavailable { margin: -.35rem 0 0 !important; font-size: .74rem !important; }
.cart-pdp-page .cart-pdp-quantity-row { align-items: center !important; justify-content: space-between; margin-top: .1rem; padding-top: 1rem; border-top: 1px solid var(--cart-card-border-soft); }
.cart-pdp-page .cart-pdp-quantity-row .form-label { margin: 0; }
.cart-pdp-page #cartPdpQty { width: 5rem; min-height: 2.5rem; margin-left: auto; padding-inline: .55rem; text-align: center; }
.cart-pdp-page #cartPdpAddBtn { width: 100%; min-height: 3.25rem; border-radius: .2rem; font-size: .9rem; font-weight: 750; letter-spacing: .015em; }
.cart-pdp-page #cartPdpError { margin: 0 0 1rem; border-radius: .2rem; font-size: .78rem; }

/* Reviews */
.cart-pdp-page .cart-pdp-reviews-section { margin-top: clamp(3.25rem, 7vw, 5.5rem) !important; }
.cart-pdp-page .cart-pdp-reviews-section > div { padding: 0; }
.cart-pdp-page #cartReviews { margin: 0 !important; padding: 0 0 1rem; border-bottom: 1px solid var(--cart-card-border); font-size: clamp(1.3rem, 2.5vw, 1.75rem) !important; font-weight: 600; letter-spacing: -.025em; }
.cart-pdp-page #cartReviews::before { margin-right: .55rem; color: var(--cart-accent, var(--bs-primary)); content: "\F42A"; font-family: bootstrap-icons; font-size: .95em; font-weight: 400; }
.cart-pdp-page .cart-pdp-rating-summary { align-items: center; margin: 0 !important; padding: 1.5rem 0; border-bottom: 1px solid var(--cart-card-border-soft); }
.cart-pdp-page .cart-pdp-rating-summary .display-5 { font-size: 2.35rem; font-weight: 600 !important; }
.cart-pdp-page .cart-pdp-rating-summary .small { font-size: .75rem; }
.cart-pdp-page .cart-pdp-rating-summary .progress { height: .36rem !important; border-radius: 0; background: var(--cart-muted-panel); }
.cart-pdp-page .cart-pdp-review-form { margin: 0 !important; padding: 1.35rem 0; border: 0 !important; border-bottom: 1px solid var(--cart-card-border-soft) !important; border-radius: 0 !important; }
.cart-pdp-page .cart-pdp-review-form::before { display: block; margin-bottom: 1rem; content: "Write a review"; font-size: 1rem; font-weight: 650; }
.cart-pdp-page .cart-pdp-review-form .btn, .cart-pdp-page .cart-review-helpful-btn { min-height: 2.35rem; border-radius: .2rem; font-size: .75rem; font-weight: 700; }
.cart-pdp-page #cartReviews ~ form[method="get"] { margin: 0 !important; padding: 1rem 0 .25rem; }
.cart-pdp-page .cart-pdp-review-list { border-bottom: 1px solid var(--cart-card-border); }
.cart-pdp-page .cart-pdp-review { margin: 0 !important; padding: 1.25rem 0 !important; border-color: var(--cart-card-border-soft) !important; font-size: .86rem; }
.cart-pdp-page .cart-pdp-review:last-child { border-bottom: 0 !important; }
.cart-pdp-page .cart-pdp-review strong { font-size: .92rem; font-weight: 650; }
.cart-pdp-page .cart-pdp-review .small { font-size: .74rem; }
.cart-pdp-page .cart-pdp-review p { max-width: 72ch; line-height: 1.65; }
.cart-pdp-page .cart-pdp-review .badge { border-radius: .15rem; font-size: .64rem; }
.cart-pdp-page .pagination { font-size: .72rem; }
.cart-pdp-page .page-link { padding: .45rem .65rem; border-radius: 0 !important; }

/* Recommendation carousels */
.cart-pdp-page .cart-pdp-recommendations { margin-top: clamp(3.25rem, 7vw, 5.5rem); padding-top: 1.4rem; border-top: 1px solid var(--cart-card-border); }
.cart-pdp-page .cart-pdp-recommendations-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.cart-pdp-page .cart-pdp-section-label { display: block; margin-bottom: .25rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .7rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.cart-pdp-page .cart-pdp-recommendations h2 { margin: 0; font-size: clamp(1.3rem, 2.6vw, 1.8rem); font-weight: 600; letter-spacing: -.03em; }
.cart-pdp-page .cart-pdp-carousel-controls { display: flex; flex: 0 0 auto; gap: .45rem; }
.cart-pdp-page .cart-pdp-carousel-btn { display: grid; width: 2.55rem; height: 2.55rem; padding: 0; place-items: center; border: 1px solid var(--cart-card-border); border-radius: 50%; background: transparent; color: var(--bs-body-color); transition: border-color .15s ease, background-color .15s ease, color .15s ease; }
.cart-pdp-page .cart-pdp-carousel-btn:hover:not(:disabled) { border-color: var(--bs-body-color); background: var(--bs-body-color); color: var(--bs-body-bg); }
.cart-pdp-page .cart-pdp-carousel-btn:disabled { opacity: .28; cursor: default; }
.cart-pdp-page .cart-pdp-product-rail { display: grid; grid-auto-columns: clamp(14rem, 22vw, 18rem); grid-auto-flow: column; gap: clamp(1rem, 2vw, 1.5rem); overflow-x: auto; padding: 0 0 1rem; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-color: var(--cart-card-border) transparent; scrollbar-width: thin; }
.cart-pdp-page .cart-pdp-product-rail > .col { width: auto; padding: 0; scroll-snap-align: start; }
.cart-pdp-page .cart-pdp-product-rail .cart-shop-card { min-height: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.cart-pdp-page .cart-pdp-product-rail .cart-shop-card:hover { border-color: transparent; box-shadow: none; transform: none; }
.cart-pdp-page .cart-pdp-product-rail .cart-shop-card-image-link { border: 0; background: var(--cart-muted-panel); }
.cart-pdp-page .cart-pdp-product-rail .cart-shop-card-image { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; }
.cart-pdp-page .cart-pdp-product-rail .cart-shop-card:hover .cart-shop-card-image:not(.cart-shop-card-image-empty) { transform: scale(1.018); }
.cart-pdp-page .cart-pdp-product-rail .cart-shop-card .card-body { min-height: 0; padding: .85rem 0 0; }
.cart-pdp-page .cart-pdp-product-rail .cart-shop-card .card-body h3 { margin: 0 0 .38rem; font-size: .91rem; font-weight: 600; line-height: 1.4; }
.cart-pdp-page .cart-pdp-product-rail .cart-shop-card-rating { margin-bottom: .35rem !important; font-size: .74rem !important; }
.cart-pdp-page .cart-pdp-product-rail .cart-shop-card-price { margin: .2rem 0 .7rem !important; font-size: .82rem; font-weight: 600; }
.cart-pdp-page .cart-pdp-product-rail .cart-shop-card .card-body > .btn { min-height: 2.45rem; border-radius: .2rem; font-size: .76rem; font-weight: 700; }
.cart-pdp-page .cart-shop-cart-link { display: inline-flex; align-items: center; justify-content: center; min-height: 2.45rem; padding: .5rem .8rem; gap: .4rem; border-radius: .35rem; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.cart-pdp-page .cart-shop-cart-link .cart-nav-count { min-width: 1.2rem; padding: .18rem .35rem; border-radius: 999px; font-size: .62rem; }









/* E-cart: product attributes spec list on the PDP */
.cart-pdp-page .cart-pdp-specs { margin: 0 0 1rem; display: grid; gap: .25rem; }
.cart-pdp-page .cart-pdp-spec-row { display: flex; gap: .5rem; font-size: .85rem; }
.cart-pdp-page .cart-pdp-spec-row dt { flex: 0 0 8rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-weight: 500; margin: 0; }
.cart-pdp-page .cart-pdp-spec-row dd { margin: 0; }

/* -- Layer 2 : orders  (.cart-orders-page) ------------------------------------- */
/* Public customer order history. Product/gallery rules remain in main.css. */
.cart-orders-page {
width: min(100%, 90rem);
  padding: clamp(1.1rem, 2.5vw, 2.35rem);
  color: var(--bs-body-color);
  font-size: .94rem;
}

.cart-orders-page .cart-orders-header { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--cart-card-border); }
.cart-orders-page .cart-orders-heading { display: flex; align-items: center; min-width: 0; gap: .85rem; }
.cart-orders-page .cart-orders-heading-icon { display: grid; width: 3.15rem; height: 3.15rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(var(--bs-primary-rgb), .3); border-radius: .7rem; background: rgba(var(--bs-primary-rgb), .1); color: var(--cart-accent, var(--bs-primary)); font-size: 1.2rem; }
.cart-orders-page .cart-orders-eyebrow, .cart-orders-page .cart-orders-section-label { display: block; color: var(--cart-accent, var(--bs-primary)); font-size: .67rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.cart-orders-page .cart-orders-header h1 { margin: .08rem 0 .15rem; font-size: clamp(1.9rem, 3.2vw, 2.55rem); font-weight: 650; letter-spacing: -.035em; }
.cart-orders-page .cart-orders-header p { margin: 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .88rem; line-height: 1.45; }
.cart-orders-page .cart-orders-shop-link { display: inline-flex; align-items: center; min-height: 2.35rem; flex: 0 0 auto; padding: .45rem .72rem; gap: .4rem; border-radius: .4rem; font-size: .78rem; font-weight: 650; }

.cart-orders-page .cart-orders-directory { overflow: hidden; border: 1px solid var(--cart-card-border); border-radius: .75rem; background: var(--cart-card-bg); }
.cart-orders-page .cart-orders-directory-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.65rem; padding: .85rem 1.1rem; border-bottom: 1px solid var(--cart-card-border); background: linear-gradient(110deg, rgba(var(--bs-primary-rgb), .08), transparent 55%), var(--cart-muted-panel); }
.cart-orders-page .cart-orders-directory-header h2 { margin: .06rem 0 0; font-size: 1rem; }
.cart-orders-page .cart-orders-count { padding: .3rem .55rem; border: 1px solid var(--cart-card-border); border-radius: 999px; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .68rem; font-weight: 700; }

.cart-orders-page .cart-order-history-list { display: grid; }
.cart-orders-page .cart-order-history-card { display: grid; grid-template-columns: minmax(13rem, 1.1fr) minmax(13rem, 1.65fr) auto 2rem; align-items: center; min-height: 6.25rem; padding: .95rem 1rem; gap: 1rem; border-bottom: 1px solid var(--cart-card-border-soft); background: transparent; color: var(--bs-body-color); transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease; }
.cart-orders-page .cart-order-history-card:last-child { border-bottom: 0; }
.cart-orders-page .cart-order-history-card:hover { background: color-mix(in srgb, var(--cart-accent, var(--bs-primary)) 5%, transparent); color: var(--bs-body-color); box-shadow: inset .2rem 0 var(--cart-accent, var(--bs-primary)); }
.cart-orders-page .cart-order-history-card:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--cart-accent, var(--bs-primary)); outline-offset: -2px; }

.cart-orders-page .cart-order-primary { display: flex; align-items: center; min-width: 0; gap: .75rem; }
.cart-orders-page .cart-order-icon { display: grid; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(var(--bs-primary-rgb), .24); border-radius: .5rem; background: rgba(var(--bs-primary-rgb), .08); color: var(--cart-accent, var(--bs-primary)); font-size: .9rem; }
.cart-orders-page .cart-order-identity { display: grid; min-width: 0; gap: .18rem; }
.cart-orders-page .cart-order-number { overflow: hidden; font-size: .9rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.cart-orders-page .cart-order-date { color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .72rem; }

.cart-orders-page .cart-order-details { display: grid; min-width: 0; gap: .28rem; }
.cart-orders-page .cart-order-detail { display: flex; align-items: center; min-width: 0; gap: .42rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .73rem; line-height: 1.35; }
.cart-orders-page .cart-order-detail > i { width: 1rem; flex: 0 0 auto; color: var(--cart-accent, var(--bs-primary)); text-align: center; }
.cart-orders-page .cart-order-detail > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cart-orders-page .cart-order-detail-review { color: var(--cart-accent, var(--bs-primary)); }
.cart-orders-page .cart-order-detail-review > i { color: var(--bs-warning); }
.cart-orders-page .cart-order-detail-muted { opacity: .72; }
.cart-orders-page .cart-order-return { width: fit-content; padding: .25rem .45rem; border-radius: .35rem; font-weight: 700; }
.cart-orders-page .cart-order-return small { margin-left: .25rem; opacity: .8; font-size: .66rem; font-weight: 600; }
.cart-orders-page .cart-order-return-requested { background: rgba(var(--bs-warning-rgb), .12); color: var(--bs-warning-text-emphasis); }
.cart-orders-page .cart-order-return-requested > i { color: var(--bs-warning-text-emphasis); }
.cart-orders-page .cart-order-return-refunded { background: rgba(var(--bs-success-rgb), .12); color: var(--bs-success-text-emphasis); }
.cart-orders-page .cart-order-return-refunded > i { color: var(--bs-success); }
.cart-orders-page .cart-order-return-declined { background: rgba(var(--bs-secondary-rgb), .12); }

.cart-orders-page .cart-order-summary { display: grid; min-width: 7.5rem; justify-items: end; gap: .35rem; }
.cart-orders-page .cart-order-status { display: inline-flex; align-items: center; min-height: 1.45rem; padding: .2rem .48rem; border: 1px solid transparent; border-radius: 999px; font-size: .63rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.cart-orders-page .cart-order-status-paid, .cart-orders-page .cart-order-status-completed, .cart-orders-page .cart-order-status-fulfilled { border-color: rgba(var(--bs-success-rgb), .28); background: rgba(var(--bs-success-rgb), .11); color: var(--bs-success-text-emphasis); }
.cart-orders-page .cart-order-status-pending, .cart-orders-page .cart-order-status-processing { border-color: rgba(var(--bs-warning-rgb), .3); background: rgba(var(--bs-warning-rgb), .11); color: var(--bs-warning-text-emphasis); }
.cart-orders-page .cart-order-status-cancelled, .cart-orders-page .cart-order-status-canceled { border-color: rgba(var(--bs-secondary-rgb), .3); background: rgba(var(--bs-secondary-rgb), .12); color: var(--cart-meta-color, var(--bs-secondary-color)); }
.cart-orders-page .cart-order-status-refunded { border-color: rgba(var(--bs-info-rgb), .3); background: rgba(var(--bs-info-rgb), .11); color: var(--bs-info-text-emphasis); }
.cart-orders-page .cart-order-status-failed { border-color: rgba(var(--bs-danger-rgb), .3); background: rgba(var(--bs-danger-rgb), .11); color: var(--bs-danger-text-emphasis); }
.cart-orders-page .cart-order-total { font-size: .95rem; font-weight: 800; }
.cart-orders-page .cart-order-open-icon { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid var(--cart-card-border); border-radius: .4rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .7rem; transition: border-color .16s ease, color .16s ease, transform .16s ease; }
.cart-orders-page .cart-order-history-card:hover .cart-order-open-icon { border-color: rgba(var(--bs-primary-rgb), .45); color: var(--cart-accent, var(--bs-primary)); transform: translateX(.12rem); }

.cart-orders-page .cart-orders-empty { display: flex; align-items: center; flex-direction: column; width: min(100%, 38rem); margin: 3rem auto; padding: 3.25rem 1.5rem; border: 1px solid var(--cart-card-border); border-radius: .75rem; background: var(--cart-muted-panel); text-align: center; }
.cart-orders-page .cart-orders-empty-icon { display: grid; width: 3.75rem; height: 3.75rem; place-items: center; border: 1px solid rgba(var(--bs-primary-rgb), .25); border-radius: .65rem; background: rgba(var(--bs-primary-rgb), .08); color: var(--cart-accent, var(--bs-primary)); font-size: 1.5rem; }
.cart-orders-page .cart-orders-empty h2 { margin: 1rem 0 .3rem; font-size: 1.15rem; }
.cart-orders-page .cart-orders-empty p { max-width: 30rem; margin: 0 0 1.15rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .84rem; }
.cart-orders-page .cart-orders-empty .btn { display: inline-flex; align-items: center; gap: .4rem; }

/* -- Layer 2 : order-confirmation  (.cart-confirmation-page) ------------------------------------- */
/* Public order confirmation/detail view. */
.cart-confirmation-page {
width: min(100%, 90rem);
  padding: clamp(1.1rem, 2.5vw, 2.35rem);
  color: var(--bs-body-color);
  font-size: .94rem;
}

.cart-confirmation-page .cart-confirmation-state { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; padding: 1.2rem 1.25rem; border: 1px solid var(--cart-card-border); border-radius: .75rem; background: var(--cart-muted-panel); }
.cart-confirmation-page .cart-confirmation-state-icon { display: grid; width: 3.5rem; height: 3.5rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(var(--bs-success-rgb), .35); border-radius: .7rem; background: rgba(var(--bs-success-rgb), .13); color: var(--bs-success); font-size: 1.45rem; }
.cart-confirmation-page .cart-confirmation-eyebrow, .cart-confirmation-page .cart-confirmation-section-label { display: block; color: var(--cart-accent, var(--bs-primary)); font-size: .67rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.cart-confirmation-page .cart-confirmation-state .cart-confirmation-eyebrow { color: var(--bs-success); }
.cart-confirmation-page .cart-confirmation-state h1 { margin: .1rem 0 .2rem; font-size: clamp(1.55rem, 3vw, 2.1rem); font-weight: 700; letter-spacing: -.025em; }
.cart-confirmation-page .cart-confirmation-state p { margin: 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .86rem; }
.cart-confirmation-page .cart-confirmation-state p strong { color: var(--bs-body-color); font-weight: 650; }
.cart-confirmation-page .cart-confirmation-state .btn { display: inline-flex; align-items: center; gap: .4rem; }
.cart-confirmation-page .cart-confirmation-status-pending_payment .cart-confirmation-state { background: linear-gradient(110deg, rgba(var(--bs-warning-rgb), .1), transparent 62%), var(--cart-muted-panel); }
.cart-confirmation-page .cart-confirmation-status-pending_payment .cart-confirmation-state-icon { border-color: rgba(var(--bs-warning-rgb), .35); background: rgba(var(--bs-warning-rgb), .13); color: var(--bs-warning-text-emphasis); }
.cart-confirmation-page .cart-confirmation-status-pending_payment .cart-confirmation-state .cart-confirmation-eyebrow { color: var(--bs-warning-text-emphasis); }
.cart-confirmation-page .cart-confirmation-status-cancelled .cart-confirmation-state { background: linear-gradient(110deg, rgba(var(--bs-danger-rgb), .08), transparent 62%), var(--cart-muted-panel); }
.cart-confirmation-page .cart-confirmation-status-cancelled .cart-confirmation-state-icon { border-color: rgba(var(--bs-danger-rgb), .32); background: rgba(var(--bs-danger-rgb), .1); color: var(--bs-danger); }
.cart-confirmation-page .cart-confirmation-status-cancelled .cart-confirmation-state .cart-confirmation-eyebrow { color: var(--bs-danger); }

.cart-confirmation-page .cart-confirmation-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(17rem, .85fr); align-items: start; gap: 1.25rem; }
.cart-confirmation-page .cart-confirmation-receipt { overflow: hidden; border: 1px solid var(--cart-card-border); border-radius: .75rem; background: var(--cart-card-bg); }
.cart-confirmation-page .cart-confirmation-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.8rem; padding: .9rem 1.1rem; border-bottom: 1px solid var(--cart-card-border); background: linear-gradient(110deg, rgba(var(--bs-primary-rgb), .08), transparent 55%), var(--cart-muted-panel); }
.cart-confirmation-page .cart-confirmation-panel-header h2 { margin: .06rem 0 0; font-size: 1rem; }
.cart-confirmation-page .cart-confirmation-status { display: inline-flex; align-items: center; min-height: 1.5rem; padding: .22rem .52rem; border: 1px solid transparent; border-radius: 999px; font-size: .63rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.cart-confirmation-page .cart-confirmation-status.cart-confirmation-status-paid, .cart-confirmation-page .cart-confirmation-status.cart-confirmation-status-completed, .cart-confirmation-page .cart-confirmation-status.cart-confirmation-status-fulfilled { border-color: rgba(var(--bs-success-rgb), .28); background: rgba(var(--bs-success-rgb), .11); color: var(--bs-success-text-emphasis); }
.cart-confirmation-page .cart-confirmation-status.cart-confirmation-status-pending_payment, .cart-confirmation-page .cart-confirmation-status.cart-confirmation-status-pending, .cart-confirmation-page .cart-confirmation-status.cart-confirmation-status-processing { border-color: rgba(var(--bs-warning-rgb), .3); background: rgba(var(--bs-warning-rgb), .11); color: var(--bs-warning-text-emphasis); }
.cart-confirmation-page .cart-confirmation-status.cart-confirmation-status-cancelled, .cart-confirmation-page .cart-confirmation-status.cart-confirmation-status-canceled { border-color: rgba(var(--bs-secondary-rgb), .3); background: rgba(var(--bs-secondary-rgb), .12); color: var(--cart-meta-color, var(--bs-secondary-color)); }
.cart-confirmation-page .cart-confirmation-status.cart-confirmation-status-refunded { border-color: rgba(var(--bs-info-rgb), .3); background: rgba(var(--bs-info-rgb), .11); color: var(--bs-info-text-emphasis); }

.cart-confirmation-page .cart-confirmation-items { display: grid; padding: 0 1.1rem; }
.cart-confirmation-page .cart-confirmation-item { display: grid; grid-template-columns: 2.6rem minmax(0, 1fr) auto; align-items: start; gap: .8rem; padding: 1rem 0; border-bottom: 1px solid var(--cart-card-border-soft); }
.cart-confirmation-page .cart-confirmation-item-icon { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid var(--cart-card-border); border-radius: .5rem; background: var(--cart-muted-panel); color: var(--cart-accent, var(--bs-primary)); font-size: .9rem; }
.cart-confirmation-page .cart-confirmation-item-details { min-width: 0; }
.cart-confirmation-page .cart-confirmation-item h3 { margin: .05rem 0 .18rem; font-size: .88rem; font-weight: 750; line-height: 1.35; }
.cart-confirmation-page .cart-confirmation-item p { margin: 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .72rem; }
.cart-confirmation-page .cart-confirmation-delivery-note { margin-top: .28rem !important; font-style: italic; }
.cart-confirmation-page .cart-confirmation-line-total { padding-top: .08rem; font-size: .84rem; white-space: nowrap; }
.cart-confirmation-page .cart-confirmation-item-actions { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .55rem; }
.cart-confirmation-page .cart-confirmation-item-actions .btn { display: inline-flex; align-items: center; min-height: 1.95rem; padding: .3rem .5rem; gap: .3rem; border-radius: .35rem; font-size: .68rem; font-weight: 700; }
.cart-confirmation-page .cart-confirmation-reviewed { display: inline-flex; align-items: center; min-height: 1.95rem; padding: .3rem .5rem; gap: .3rem; border-radius: .35rem; background: rgba(var(--bs-success-rgb), .1); color: var(--bs-success-text-emphasis); font-size: .68rem; font-weight: 700; }
.cart-confirmation-page .cart-confirmation-return-check { margin-top: .55rem; }
.cart-confirmation-page .cart-confirmation-return-check .form-check-input { width: 1rem; height: 1rem; margin-top: .12rem; }
.cart-confirmation-page .cart-confirmation-return-check .form-check-label { color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .7rem; }

.cart-confirmation-page .cart-confirmation-totals { display: flex; justify-content: flex-end; padding: 1rem 1.1rem 1.1rem; background: var(--cart-muted-panel); }
.cart-confirmation-page .cart-confirmation-totals dl { width: min(100%, 22rem); margin: 0; }
.cart-confirmation-page .cart-confirmation-totals dl > div { display: flex; justify-content: space-between; gap: 1rem; padding: .28rem 0; }
.cart-confirmation-page .cart-confirmation-totals dt { color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .74rem; font-weight: 600; }
.cart-confirmation-page .cart-confirmation-totals dd { margin: 0; font-size: .76rem; font-weight: 700; }
.cart-confirmation-page .cart-confirmation-totals .cart-confirmation-discount :is(dt, .cart-confirmation-page dd) { color: var(--bs-success); }
.cart-confirmation-page .cart-confirmation-totals .cart-confirmation-total { margin-top: .45rem; padding-top: .72rem; border-top: 1px solid var(--cart-card-border); }
.cart-confirmation-page .cart-confirmation-totals .cart-confirmation-total :is(dt, .cart-confirmation-page dd) { color: var(--bs-body-color); font-size: 1rem; font-weight: 800; }

.cart-confirmation-page .cart-confirmation-sidebar { display: grid; gap: .8rem; }
.cart-confirmation-page .cart-confirmation-info-panel { display: flex; align-items: flex-start; gap: .75rem; padding: .95rem; border: 1px solid var(--cart-card-border); border-radius: .65rem; background: var(--cart-card-bg); }
.cart-confirmation-page .cart-confirmation-info-icon { display: grid; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(var(--bs-primary-rgb), .24); border-radius: .48rem; background: rgba(var(--bs-primary-rgb), .08); color: var(--cart-accent, var(--bs-primary)); font-size: .82rem; }
.cart-confirmation-page .cart-confirmation-info-panel h2 { margin: .06rem 0 .5rem; font-size: .9rem; }
.cart-confirmation-page .cart-confirmation-info-panel address { margin: 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .75rem; font-style: normal; line-height: 1.55; }
.cart-confirmation-page .cart-confirmation-carrier { margin: 0 0 .12rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .7rem; }
.cart-confirmation-page .cart-confirmation-tracking-link { display: inline-flex; align-items: center; min-width: 0; gap: .35rem; font-size: .76rem; font-weight: 750; text-decoration: none; }
.cart-confirmation-page .cart-confirmation-tracking-link span { overflow-wrap: anywhere; }
.cart-confirmation-page .cart-confirmation-tracking-number { font-size: .76rem; overflow-wrap: anywhere; }
.cart-confirmation-page .cart-confirmation-return-status { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .3rem; padding: .28rem .45rem; border-radius: .35rem; font-size: .68rem; font-weight: 750; }
.cart-confirmation-page .cart-confirmation-return-status small { opacity: .8; font-size: .62rem; }
.cart-confirmation-page .cart-confirmation-return-requested { background: rgba(var(--bs-warning-rgb), .12); color: var(--bs-warning-text-emphasis); }
.cart-confirmation-page .cart-confirmation-return-refunded { background: rgba(var(--bs-success-rgb), .12); color: var(--bs-success-text-emphasis); }
.cart-confirmation-page .cart-confirmation-return-denied { background: rgba(var(--bs-secondary-rgb), .12); color: var(--cart-meta-color, var(--bs-secondary-color)); }
.cart-confirmation-page .cart-confirmation-return-copy { margin: .55rem 0 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .7rem; line-height: 1.45; }
.cart-confirmation-page .cart-confirmation-return-copy strong { color: var(--bs-body-color); }
.cart-confirmation-page .cart-confirmation-request-panel .btn { display: inline-flex; align-items: center; gap: .35rem; border-radius: .35rem; font-size: .7rem; font-weight: 700; }
.cart-confirmation-page #cartReturnForm { margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--cart-card-border-soft); }
.cart-confirmation-page #cartReturnForm p { margin: 0 0 .6rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .7rem; line-height: 1.4; }
.cart-confirmation-page #cartReturnForm .form-label { margin-bottom: .35rem; font-size: .72rem; font-weight: 700; }
.cart-confirmation-page #cartReturnForm .form-label span { color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .65rem; font-weight: 500; }
.cart-confirmation-page #cartReturnForm .form-control { margin-bottom: .55rem; border-color: var(--cart-card-border); border-radius: .4rem; background: color-mix(in srgb, var(--bs-body-bg) 94%, var(--bs-tertiary-bg)); color: var(--bs-body-color); }
.cart-confirmation-page #cartReturnForm .alert { padding: .55rem .65rem; font-size: .7rem; }

.cart-confirmation-page .cart-confirmation-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--cart-card-border); }
.cart-confirmation-page .cart-confirmation-actions .btn { display: inline-flex; align-items: center; gap: .4rem; border-radius: .4rem; font-size: .78rem; font-weight: 700; }
.cart-confirmation-page .cart-confirmation-lookup-link { display: inline-flex; align-items: center; gap: .35rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .72rem; text-decoration: none; }
.cart-confirmation-page .cart-confirmation-lookup-link:hover { color: var(--cart-accent, var(--bs-primary)); }

/* -- Layer 2 : order-lookup  (.cart-lookup-page) ------------------------------------- */
/* Guest order lookup. */
.cart-lookup-page {
width: min(100%, 58rem);
  min-height: min(42rem, calc(100vh - 9rem));
  padding: clamp(1.5rem, 4vw, 3rem) clamp(.75rem, 3vw, 2rem);
  color: var(--bs-body-color);
  font-size: .94rem;
}

.cart-lookup-page .cart-lookup-header { display: flex; align-items: center; gap: .9rem; margin-bottom: 1.4rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--cart-card-border); }
.cart-lookup-page .cart-lookup-header-icon { display: grid; width: 3.2rem; height: 3.2rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(var(--bs-primary-rgb), .3); border-radius: .7rem; background: rgba(var(--bs-primary-rgb), .1); color: var(--cart-accent, var(--bs-primary)); font-size: 1.2rem; }
.cart-lookup-page .cart-lookup-eyebrow, .cart-lookup-page .cart-lookup-section-label { display: block; color: var(--cart-accent, var(--bs-primary)); font-size: .67rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.cart-lookup-page .cart-lookup-header h1 { margin: .08rem 0 .18rem; font-size: clamp(1.8rem, 4vw, 2.35rem); font-weight: 680; letter-spacing: -.035em; }
.cart-lookup-page .cart-lookup-header p { max-width: 41rem; margin: 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .84rem; line-height: 1.5; }

.cart-lookup-page .cart-lookup-panel { overflow: hidden; border: 1px solid var(--cart-card-border); border-radius: .75rem; background: var(--cart-card-bg); box-shadow: 0 .7rem 2rem rgba(0, 0, 0, .06); }
.cart-lookup-page .cart-lookup-panel-header { display: flex; align-items: center; gap: .7rem; min-height: 4.7rem; padding: .85rem 1.1rem; border-bottom: 1px solid var(--cart-card-border); background: linear-gradient(110deg, rgba(var(--bs-primary-rgb), .08), transparent 58%), var(--cart-muted-panel); }
.cart-lookup-page .cart-lookup-panel-icon { display: grid; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(var(--bs-primary-rgb), .24); border-radius: .48rem; background: rgba(var(--bs-primary-rgb), .08); color: var(--cart-accent, var(--bs-primary)); font-size: .82rem; }
.cart-lookup-page .cart-lookup-panel-header h2 { margin: .06rem 0 0; font-size: .95rem; }
.cart-lookup-page .cart-lookup-panel-body { padding: clamp(1rem, 3vw, 1.5rem); }
.cart-lookup-page .cart-lookup-panel-body .alert { margin-bottom: 1rem; padding: .7rem .8rem; border-radius: .45rem; font-size: .76rem; }

.cart-lookup-page .cart-lookup-form { display: grid; gap: 1rem; }
.cart-lookup-page .cart-lookup-field { min-width: 0; }
.cart-lookup-page .cart-lookup-field .form-label { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .4rem; font-size: .76rem; font-weight: 750; }
.cart-lookup-page .cart-lookup-field .cart-required { color: #b02a37; font-size: .61rem; font-weight: 750; letter-spacing: .045em; text-transform: uppercase; }
.cart-lookup-page .cart-lookup-input-group { display: grid; grid-template-columns: 2.65rem minmax(0, 1fr); min-height: 2.85rem; overflow: hidden; border: 1px solid var(--cart-card-border); border-radius: .48rem; background: color-mix(in srgb, var(--bs-body-bg) 94%, var(--bs-tertiary-bg)); transition: border-color .16s ease, box-shadow .16s ease; }
.cart-lookup-page .cart-lookup-input-group:focus-within { border-color: rgba(var(--bs-primary-rgb), .72); box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .1); }
.cart-lookup-page .cart-lookup-input-icon { display: grid; place-items: center; border-right: 1px solid var(--cart-card-border-soft); color: var(--cart-accent, var(--bs-primary)); font-size: .82rem; }
.cart-lookup-page .cart-lookup-input-group .form-control { min-width: 0; min-height: 2.8rem; padding: .65rem .8rem; border: 0; border-radius: 0; background: transparent; color: var(--bs-body-color); font-size: .82rem; box-shadow: none; }
.cart-lookup-page .cart-lookup-input-group .form-control::placeholder { color: var(--cart-meta-color, var(--bs-secondary-color)); opacity: .7; }
.cart-lookup-page .cart-lookup-help { margin-top: .35rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .68rem; line-height: 1.4; }
.cart-lookup-page .cart-lookup-submit { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; margin-top: .2rem; gap: .45rem; border-radius: .45rem; font-size: .8rem; font-weight: 750; }

.cart-lookup-page .cart-lookup-panel-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1.1rem; border-top: 1px solid var(--cart-card-border); background: var(--cart-muted-panel); color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .67rem; }
.cart-lookup-page .cart-lookup-panel-footer :is(span, .cart-lookup-page a) { display: inline-flex; align-items: center; gap: .35rem; }
.cart-lookup-page .cart-lookup-panel-footer span i { color: var(--cart-accent, var(--bs-primary)); }
.cart-lookup-page .cart-lookup-panel-footer a { color: var(--cart-meta-color, var(--bs-secondary-color)); font-weight: 650; text-decoration: none; }
.cart-lookup-page .cart-lookup-panel-footer a:hover { color: var(--cart-accent, var(--bs-primary)); }

/* -- Layer 2 : wishlist  (.cart-wishlist-page) ------------------------------------- */
/* Public wishlist/list manager. */
.cart-wishlist-page {
width: min(100%, 90rem);
  padding: clamp(1.1rem, 2.5vw, 2.35rem);
  color: var(--bs-body-color);
  font-size: .94rem;
}

.cart-wishlist-page .cart-wishlist-header { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--cart-card-border); }
.cart-wishlist-page .cart-wishlist-heading { display: flex; align-items: center; min-width: 0; gap: .85rem; }
.cart-wishlist-page .cart-wishlist-heading-icon { display: grid; width: 3.15rem; height: 3.15rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(var(--bs-danger-rgb), .3); border-radius: .7rem; background: rgba(var(--bs-danger-rgb), .1); color: var(--bs-danger); font-size: 1.2rem; }
.cart-wishlist-page .cart-wishlist-eyebrow, .cart-wishlist-page .cart-wishlist-section-label { display: block; color: var(--cart-accent, var(--bs-primary)); font-size: .67rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.cart-wishlist-page .cart-wishlist-header h1 { margin: .08rem 0 .15rem; font-size: clamp(1.9rem, 3.2vw, 2.55rem); font-weight: 650; letter-spacing: -.035em; }
.cart-wishlist-page .cart-wishlist-header p { margin: 0; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .88rem; line-height: 1.45; }
.cart-wishlist-page .cart-wishlist-header-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.cart-wishlist-page .cart-wishlist-header-actions .btn { display: inline-flex; align-items: center; min-height: 2.35rem; padding: .45rem .72rem; gap: .4rem; border-radius: .4rem; font-size: .78rem; font-weight: 650; }

.cart-wishlist-page .cart-wishlist-loading { display: flex; align-items: center; justify-content: center; gap: .6rem; min-height: 18rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .86rem; }
.cart-wishlist-page #cartWishlistLoading:not(.d-none) + .cart-wishlist-workspace { display: none; }
.cart-wishlist-page .cart-wishlist-workspace { min-width: 0; }
.cart-wishlist-page .cart-wishlist-listbar { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 1rem; margin-bottom: 1.35rem; padding: .7rem .85rem; border: 1px solid var(--cart-card-border); border-radius: .65rem; background: var(--cart-muted-panel); }
.cart-wishlist-page .cart-wishlist-listbar h2 { margin: .06rem 0 0; font-size: .92rem; }

.cart-wishlist-page #cartWishlistTabs { display: flex; min-width: 0; overflow-x: auto; flex-wrap: nowrap; align-items: center; gap: .35rem; margin: 0; padding: .1rem 0 .25rem; scrollbar-width: thin; }
.cart-wishlist-page #cartWishlistTabs .nav-item { flex: 0 0 auto; min-height: 2.45rem; padding: .18rem; gap: .12rem; border: 1px solid var(--cart-card-border-soft); border-radius: .45rem; background: color-mix(in srgb, var(--bs-body-bg) 82%, transparent); }
.cart-wishlist-page #cartWishlistTabs .nav-item:hover { border-color: var(--cart-card-border); background: var(--bs-body-bg); }
.cart-wishlist-page #cartWishlistTabs .nav-item:has(.cart-wishlist-tab-btn.active) { border-color: rgba(var(--bs-primary-rgb), .38); background: rgba(var(--bs-primary-rgb), .09); box-shadow: 0 0 0 .12rem rgba(var(--bs-primary-rgb), .07); }
.cart-wishlist-page #cartWishlistTabs .cart-wishlist-tab-btn { min-height: 2rem; padding: .45rem .65rem; border-radius: .3rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .78rem; font-weight: 700; }
.cart-wishlist-page #cartWishlistTabs .cart-wishlist-tab-btn:hover { color: var(--bs-body-color); }
.cart-wishlist-page #cartWishlistTabs .cart-wishlist-tab-btn.active { background: var(--cart-accent, var(--bs-primary)); color: var(--bs-white); }
.cart-wishlist-page #cartWishlistTabs .cart-wishlist-tab-btn .badge { padding: .2rem .38rem; border-radius: 999px; font-size: .6rem; }
.cart-wishlist-page #cartWishlistTabs .cart-wishlist-rename-btn, .cart-wishlist-page #cartWishlistTabs .cart-wishlist-delete-btn { display: grid; width: 2rem; height: 2rem; min-height: 0; padding: 0; place-items: center; border: 1px solid transparent; border-radius: .3rem; background: transparent; font-size: .72rem; }
.cart-wishlist-page #cartWishlistTabs .cart-wishlist-rename-btn { color: var(--cart-meta-color, var(--bs-secondary-color)) !important; }
.cart-wishlist-page #cartWishlistTabs .cart-wishlist-rename-btn:hover { border-color: var(--cart-card-border); background: var(--cart-card-border-soft); color: var(--bs-body-color) !important; }
.cart-wishlist-page #cartWishlistTabs .cart-wishlist-delete-btn { color: color-mix(in srgb, var(--bs-danger) 72%, var(--cart-meta-color, var(--bs-secondary-color))) !important; }
.cart-wishlist-page #cartWishlistTabs .cart-wishlist-delete-btn:hover { border-color: rgba(var(--bs-danger-rgb), .34); background: rgba(var(--bs-danger-rgb), .1); color: var(--bs-danger) !important; }
.cart-wishlist-page #cartWishlistTabs :is(.cart-wishlist-rename-btn, .cart-wishlist-page .cart-wishlist-delete-btn):focus-visible { outline: 2px solid var(--cart-accent, var(--bs-primary)); outline-offset: 1px; }

/* Bootstrap modal created by the wishlist module for New/Rename List. */
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) .modal-dialog { width: min(calc(100% - 1.5rem), 30rem); margin-inline: auto; }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) .modal-content { overflow: hidden; border: 1px solid var(--cart-card-border); border-radius: .75rem; background: var(--bs-body-bg); color: var(--bs-body-color); box-shadow: 0 1.4rem 4rem rgba(0, 0, 0, .32); opacity: 1; }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) .modal-header { min-height: 4.4rem; padding: 1rem 1.15rem; border-bottom: 1px solid var(--cart-card-border); background: linear-gradient(110deg, rgba(var(--bs-primary-rgb), .09), transparent 62%), var(--cart-muted-panel); }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) .modal-title { display: flex; align-items: center; gap: .55rem; margin: 0; font-size: 1rem; font-weight: 750; }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) .modal-title::before { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid rgba(var(--bs-primary-rgb), .28); border-radius: .45rem; background: rgba(var(--bs-primary-rgb), .1); color: var(--cart-accent, var(--bs-primary)); content: "\F4C9"; font-family: "bootstrap-icons"; font-size: .84rem; font-weight: 400; }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) .btn-close { margin: 0; opacity: .65; }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) .modal-body { padding: 1.15rem; background: var(--bs-body-bg); }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) .form-label { margin-bottom: .4rem; font-size: .78rem; font-weight: 700; }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) :is(.form-control, .cart-wishlist-page .form-select) { min-height: 2.75rem; border: 1px solid var(--cart-card-border); border-radius: .45rem; background: color-mix(in srgb, var(--bs-body-bg) 94%, var(--bs-tertiary-bg)); color: var(--bs-body-color); font-size: .84rem; }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) :is(.form-control, .cart-wishlist-page .form-select):focus { border-color: rgba(var(--bs-primary-rgb), .72); box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .1); }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) .form-text { color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .7rem; }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) .modal-footer { padding: .85rem 1.15rem; gap: .45rem; border-top: 1px solid var(--cart-card-border); background: var(--cart-muted-panel); }
.cart-wishlist-page :is(#cartWishlistModal, .cart-wishlist-page #cartWishlistListModal, .cart-wishlist-page #cartWishlistRenameModal, .cart-wishlist-page .cart-wishlist-modal) .modal-footer .btn { min-height: 2.4rem; margin: 0; padding: .45rem .85rem; border-radius: .4rem; font-size: .78rem; font-weight: 700; }

/* Also cover Bootstrap/Bootbox wishlist dialogs when the module applies this marker to the body. */
.cart-wishlist-page body.cart-wishlist-modal-open .modal.show .modal-content { background: var(--bs-body-bg); color: var(--bs-body-color); opacity: 1; }

.cart-wishlist-page .cart-wishlist-empty { display: flex; align-items: center; flex-direction: column; width: min(100%, 38rem); margin: 3rem auto; padding: 3.25rem 1.5rem; border: 1px solid var(--cart-card-border); border-radius: .75rem; background: var(--cart-muted-panel); text-align: center; }
.cart-wishlist-page .cart-wishlist-empty-icon { display: grid; width: 3.75rem; height: 3.75rem; place-items: center; border: 1px solid rgba(var(--bs-danger-rgb), .25); border-radius: .65rem; background: rgba(var(--bs-danger-rgb), .08); color: var(--bs-danger); font-size: 1.5rem; }
.cart-wishlist-page .cart-wishlist-empty h2 { margin: 1rem 0 .3rem; font-size: 1.15rem; }
.cart-wishlist-page .cart-wishlist-empty p { margin: 0 0 1.15rem; color: var(--cart-meta-color, var(--bs-secondary-color)); font-size: .84rem; }
.cart-wishlist-page .cart-wishlist-empty .btn { display: inline-flex; align-items: center; gap: .4rem; }

/* Saved products are deliberately more compact than the main Shop collection. */
.cart-wishlist-page .cart-wishlist-grid { --bs-gutter-x: 1.1rem; --bs-gutter-y: 1.35rem; }
.cart-wishlist-page .cart-wishlist-grid > .col { width: 33.333333% !important; }
.cart-wishlist-page .cart-wishlist-grid .cart-shop-card { overflow: hidden; border: 1px solid var(--cart-card-border) !important; border-radius: .7rem; background: var(--cart-card-bg) !important; box-shadow: 0 .35rem 1.1rem rgba(0, 0, 0, .055) !important; }
.cart-wishlist-page .cart-wishlist-grid .cart-shop-card:hover { border-color: color-mix(in srgb, var(--cart-accent, var(--bs-primary)) 32%, var(--cart-card-border)) !important; box-shadow: 0 .75rem 1.7rem rgba(0, 0, 0, .09) !important; }
.cart-wishlist-page .cart-wishlist-grid .cart-shop-card-image-link { display: block; overflow: hidden; margin: .5rem .5rem 0; border-radius: .5rem; background: var(--cart-muted-panel); }
.cart-wishlist-page .cart-wishlist-grid .cart-shop-card-image { width: 100%; height: auto !important; aspect-ratio: 16 / 10; border-radius: .5rem !important; background: var(--cart-muted-panel); object-fit: contain; }
.cart-wishlist-page .cart-wishlist-grid .cart-shop-card-image-empty { display: grid; place-items: center; }
.cart-wishlist-page .cart-wishlist-grid .cart-shop-card .card-body { min-height: 8.8rem; padding: .85rem .8rem .8rem; }
.cart-wishlist-page .cart-wishlist-grid .cart-shop-card .card-body h2 { margin-bottom: .45rem; font-size: .92rem; line-height: 1.35; }
.cart-wishlist-page .cart-wishlist-grid .cart-shop-card-price { margin: auto 0 .75rem !important; font-size: .84rem; font-weight: 700; }
.cart-wishlist-page .cart-wishlist-grid .cart-shop-card .card-body > .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 2.35rem; border-color: rgba(var(--bs-primary-rgb), .34); border-radius: .4rem; background: rgba(var(--bs-primary-rgb), .07); font-size: .76rem; font-weight: 700; }
.cart-wishlist-page .cart-wishlist-grid .cart-shop-card .card-body > .btn:hover { border-color: var(--cart-accent, var(--bs-primary)); background: var(--cart-accent, var(--bs-primary)); color: var(--bs-white); }
.cart-wishlist-page .cart-wishlist-grid .cart-wishlist-list-remove-btn { top: .85rem !important; right: .85rem !important; width: 2.15rem !important; height: 2.15rem !important; border: 1px solid rgba(var(--bs-danger-rgb), .42) !important; border-radius: 50% !important; background: color-mix(in srgb, var(--bs-body-bg) 90%, transparent) !important; color: var(--bs-danger) !important; box-shadow: 0 .2rem .65rem rgba(0, 0, 0, .14); }
.cart-wishlist-page .cart-wishlist-grid .cart-wishlist-list-remove-btn:hover { border-color: var(--bs-danger) !important; background: var(--bs-danger) !important; color: var(--bs-white) !important; }


/* -- Layer 3 : @media (all pages) ------------------------------------- */

/* ---- main ---- */
@media (min-width: 768px) {
  .cart-pdp-gallery {
    flex-direction: row;
    align-items: flex-start;
  }

  /* Desktop-only, larger thumbnail size matching the reference cafepress
     gallery (reported live against a real screenshot) - the base 4rem
     size above stays in effect on mobile. scroll-snap-align pairs with
     .cart-pdp-thumbs' own scroll-snap-type above - each thumbnail's own
     top edge becomes a valid snap point the column always rests on. */
  .cart-pdp-thumb {
    width: 7rem;
    height: 7rem;
    scroll-snap-align: start;
  }

  .cart-pdp-thumbs-wrap {
    order: -1;
    /* Must match .cart-pdp-thumb's own width (7rem) directly above. */
    flex: 0 0 7rem;
  }

  .cart-pdp-thumbs {
    flex-direction: column;
    flex-wrap: nowrap;
    /* Exactly 4 thumbnails visible at a time, per the reference gallery -
       4 * the thumb's own 7rem height (desktop-only, above) + 3 * the
       0.5rem gap between them (N items have N-1 gaps). Anything beyond
       that scrolls via the up/down arrows above/below, not a visible
       native scrollbar (hidden below) - the arrows are the only scroll
       affordance shown, matching the reference's own chrome-less look. */
    max-height: 29.5rem;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: none; /* Firefox */
    /* Without this, a scroll (from the arrow buttons' own JS `scrollBy`,
       or a direct trackpad/wheel gesture over the column) can rest at any
       arbitrary pixel offset - reported live: the top/bottom thumbnail
       ends up half cut off mid-scroll, since neither the arrows' ~90%-of-
       visible-height increment nor a raw wheel gesture is guaranteed to
       land exactly on a thumbnail boundary. scroll-snap-type forces the
       browser to always settle the final rest position on the nearest
       snap point (each thumbnail's own top edge, via scroll-snap-align
       below) after ANY scroll interaction, not just the arrow buttons -
       so this fixes wheel/trackpad/touch scrolling too, not only clicks. */
    scroll-snap-type: y mandatory;
  }

  .cart-pdp-thumbs::-webkit-scrollbar {
    display: none; /* Chrome/Safari/Edge */
  }

  .cart-pdp-main-frame {
    flex: 1 1 auto;
    min-width: 0;
  }
}
@media (max-width: 575.98px) {
  .cart-item-row {
    grid-template-columns: 3rem 1fr auto;
    grid-template-areas:
      "image info remove"
      "image qty price";
  }
  .cart-item-image { grid-area: image; }
  .cart-item-info { grid-area: info; }
  .cart-item-remove-btn { grid-area: remove; }
  .cart-item-qty { grid-area: qty; }
  .cart-item-price { grid-area: price; }
}
@media (max-width: 991.98px) { .cart-page-layout { grid-template-columns: minmax(0, 1fr); }.cart-page-sidebar { order: -1; }.cart-summary-card { position: static; }.cart-summary-card .cart-section-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, .75fr); gap: 1rem; }.cart-summary-lines { margin-top: 0; } }
@media (max-width: 767.98px) { .cart-page { padding: .85rem .75rem; }.cart-page-header { align-items: flex-start; flex-direction: column; }.cart-page-actions { justify-content: flex-start; }.cart-summary-card .cart-section-body { grid-template-columns: minmax(0, 1fr); }.cart-form-grid { grid-template-columns: minmax(0, 1fr); }.cart-field-full { grid-column: auto; }.cart-checkout-account-prompt { grid-template-columns: auto minmax(0, 1fr); }.cart-account-actions { grid-column: 1 / -1; padding-left: 2.65rem; }.cart-items-list > :is(.cart-item, .cart-item-row, .cart-item-card, [data-cart-item-id], [data-item-id]) { grid-template-columns: auto minmax(0, 1fr); }.cart-items-list :is(.cart-item-actions, .cart-item-controls) { grid-column: 1 / -1; justify-content: flex-start; padding-left: 5rem; } }
@media (max-width: 479.98px) { .cart-page-icon { width: 2.5rem; height: 2.5rem; }.cart-page-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }.cart-page-actions .btn { display: flex; align-items: center; justify-content: center; }.cart-items-list :is(.cart-item-image, .cart-product-image, img) { width: 3.5rem; height: 3.5rem; }.cart-items-list :is(.cart-item-actions, .cart-item-controls) { padding-left: 4.25rem; }.cart-account-actions { padding-left: 0; }.cart-summary-trust { flex-direction: column; } }
@media (prefers-reduced-motion: reduce) { .cart-page *, .cart-page *::before, .cart-page *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }
@media (max-width: 991.98px) {
  .cart-shop-card-image,
  .cart-shop-card-image-empty { height: 9.75rem; }
}
@media (max-width: 767.98px) {
  .cart-shop-page { padding: .85rem .75rem; }
  .cart-shop-page > .row { display: block; }
  .cart-shop-page aside { margin-bottom: .75rem !important; }
  .cart-shop-page aside .list-group {
    position: static;
    display: flex;
    overflow-x: auto;
    flex-direction: row;
    border-radius: .65rem;
    scrollbar-width: thin;
  }
  .cart-shop-page aside .list-group::before { display: none; }
  .cart-shop-page aside .list-group-item {
    flex: 0 0 auto;
    min-height: 2.3rem;
    border-right: 1px solid var(--cart-card-border-soft);
    border-bottom: 0;
    white-space: nowrap;
  }
  .cart-shop-page aside .list-group-item.active { box-shadow: inset 0 -.16rem 0 var(--cart-accent, var(--bs-primary)); }
}
@media (max-width: 479.98px) {
  .cart-shop-page > .d-flex:first-child { align-items: flex-start !important; }
  .cart-shop-page > .d-flex:first-child > a { padding-inline: .6rem; }
  .cart-shop-card-image,
  .cart-shop-card-image-empty { height: 11rem; }
}
@media (prefers-reduced-motion: reduce) {
  .cart-shop-page *, .cart-shop-page *::before, .cart-shop-page *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}

/* ---- cart ---- */
@media (max-width: 991.98px) {
  .cart-page .cart-page-layout { grid-template-columns: minmax(0, 1fr); }
  .cart-page .cart-page-sidebar { order: -1; }
  .cart-page .cart-summary-card { position: static; }
}
@media (max-width: 767.98px) {
  .cart-page { padding: 1rem .75rem 2rem; }
  .cart-page .cart-page-header { align-items: flex-start; }
  .cart-page .cart-item-row, .cart-page .cart-items-list > .cart-item-row { grid-template-columns: 4.5rem minmax(0, 1fr) auto; grid-template-areas: "image info remove" "image qty price"; gap: .65rem .8rem; }
  .cart-page .cart-item-image { grid-area: image; }
  .cart-page .cart-item-info { grid-area: info; }
  .cart-page .cart-item-remove-btn { grid-area: remove; }
  .cart-page .cart-item-qty { grid-area: qty; width: 4.25rem; }
  .cart-page .cart-item-price { grid-area: price; justify-self: end; }
  .cart-page .cart-items-list .cart-item-image, .cart-page .cart-item-image { width: 4.5rem; height: 4.5rem; }
  .cart-page .cart-saved-for-later-list .cart-saved-item-row { grid-template-columns: 4.5rem minmax(0, 1fr) auto; grid-template-areas: "image info price" "image actions actions"; }
  .cart-page .cart-saved-item-row > .d-flex { grid-area: actions; min-width: 0; align-items: center; justify-content: flex-end; flex-direction: row !important; }
}
@media (max-width: 479.98px) {
  .cart-page .cart-page-heading { align-items: flex-start; }
  .cart-page .cart-page-icon { width: 2.65rem; height: 2.65rem; }
  .cart-page .cart-page-actions { grid-template-columns: minmax(0, 1fr); }
  .cart-page .cart-form-grid { grid-template-columns: minmax(0, 1fr); }
  .cart-page .cart-field-full { grid-column: auto; }
  .cart-page .cart-item-row, .cart-page .cart-items-list > .cart-item-row { padding: .85rem; }
  .cart-page .cart-item-price { font-size: .8rem; }
  .cart-page .cart-summary-trust { flex-direction: row; }
}
@media (prefers-reduced-motion: reduce) {
  .cart-page *, .cart-page *::before, .cart-page *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* ---- shop ---- */
@media (max-width: 1199.98px) {
  .cart-shop-page .cart-shop-grid, .cart-wishlist-page .cart-shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .cart-shop-page { padding: 1rem .75rem 2.25rem; }
  .cart-shop-page .cart-shop-header, .cart-wishlist-page .cart-shop-header { align-items: flex-start; }
  .cart-shop-page .cart-shop-layout, .cart-wishlist-page .cart-shop-layout { display: block; }
  .cart-shop-page .cart-shop-sidebar, .cart-wishlist-page .cart-shop-sidebar { position: static; margin-bottom: 1rem; }
  .cart-shop-page .cart-shop-categories, .cart-wishlist-page .cart-shop-categories { border-top: 1px solid var(--cart-card-border); border-bottom: 1px solid var(--cart-card-border); }
  .cart-shop-page .cart-shop-categories-heading, .cart-wishlist-page .cart-shop-categories-heading { padding: .72rem .15rem; cursor: pointer; }
  .cart-shop-page .cart-shop-categories-heading i, .cart-wishlist-page .cart-shop-categories-heading i { display: inline-block; }
  .cart-shop-page .cart-shop-categories:not([open]) .cart-shop-categories-heading i, .cart-wishlist-page .cart-shop-categories:not([open]) .cart-shop-categories-heading i { transform: rotate(-90deg); }
  .cart-shop-page .cart-shop-category-list, .cart-wishlist-page .cart-shop-category-list { max-height: 14rem; padding: .25rem 0 .55rem; }
  .cart-shop-page .cart-shop-toolbar, .cart-wishlist-page .cart-shop-toolbar, .cart-shop-page #cartShopFilterForm.cart-shop-toolbar, .cart-wishlist-page #cartShopFilterForm.cart-shop-toolbar { grid-template-columns: minmax(0, 1fr) auto auto; }
  .cart-shop-page .cart-shop-search-field, .cart-wishlist-page .cart-shop-search-field { grid-column: 1 / -1; }
  .cart-shop-page .cart-shop-grid, .cart-wishlist-page .cart-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .cart-shop-page .cart-shop-header, .cart-wishlist-page .cart-shop-header { flex-direction: column; }
  .cart-shop-page .cart-shop-cart-link, .cart-wishlist-page .cart-shop-cart-link { align-self: stretch; }
  .cart-shop-page .cart-shop-grid, .cart-wishlist-page .cart-shop-grid { gap: 1.35rem .7rem; }
  .cart-shop-page .cart-shop-card .card-body h2, .cart-wishlist-page .cart-shop-card .card-body h2 { font-size: .83rem; }
  .cart-shop-page .cart-shop-card-price, .cart-wishlist-page .cart-shop-card-price { font-size: .75rem; }
  .cart-shop-page .cart-shop-card-wishlist, .cart-wishlist-page .cart-shop-card-wishlist { top: .45rem; right: .45rem; width: 2.05rem !important; height: 2.05rem !important; }
  .cart-shop-page .cart-shop-grid[data-view="list"] .cart-shop-card, .cart-wishlist-page .cart-shop-grid[data-view="list"] .cart-shop-card { grid-template-columns: 6.75rem minmax(0, 1fr); gap: .75rem; }
  .cart-shop-page .cart-shop-grid[data-view="list"] .cart-shop-card .card-body, .cart-wishlist-page .cart-shop-grid[data-view="list"] .cart-shop-card .card-body { padding-right: 2.5rem; }
  .cart-shop-page .cart-shop-grid[data-view="list"] .cart-shop-card-wishlist, .cart-wishlist-page .cart-shop-grid[data-view="list"] .cart-shop-card-wishlist { top: 1.4rem; right: .35rem; }
}
@media (max-width: 359.98px) {
  .cart-shop-page .cart-shop-grid, .cart-wishlist-page .cart-shop-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ---- product ---- */
@media (max-width: 991.98px) {
  .cart-pdp-page .cart-pdp-info { position: static; }
  .cart-pdp-page .cart-pdp-title-row h1 { font-size: clamp(1.65rem, 4vw, 2.25rem) !important; }
  .cart-pdp-page .cart-pdp-product-rail { grid-auto-columns: minmax(13.5rem, 31vw); }
}
@media (max-width: 767.98px) {
  .cart-pdp-page .cart-pdp-header { align-items: flex-start; }
  .cart-pdp-page { padding: .85rem .75rem 2rem; }
  .cart-pdp-page .cart-pdp-hero { --bs-gutter-y: 1.25rem; }
  .cart-pdp-page .cart-pdp-info { padding-top: .5rem; }
  .cart-pdp-page .cart-pdp-title-row h1 { font-size: clamp(1.7rem, 8vw, 2.2rem) !important; }
  .cart-pdp-page .cart-pdp-product-rail { grid-auto-columns: minmax(13rem, 72vw); }
  .cart-pdp-page .cart-pdp-reviews-section { padding-inline: .75rem; }
}
@media (max-width: 575.98px) {
  .cart-pdp-page .cart-pdp-header { flex-direction: column; }
  .cart-pdp-page .cart-pdp-header { flex-direction: column; }
  .cart-pdp-page .cart-pdp-cart-link { align-self: stretch; }
}
@media (max-width: 479.98px) {
  .cart-pdp-page .cart-wishlist-heart { width: 2.4rem; height: 2.4rem; }
  .cart-pdp-page .cart-pdp-recommendations-header { align-items: center; }
  .cart-pdp-page .cart-pdp-carousel-btn { width: 2.35rem; height: 2.35rem; }
}
@media (prefers-reduced-motion: reduce) {
  .cart-pdp-page *, .cart-pdp-page *::before, .cart-pdp-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ---- orders ---- */
@media (max-width: 991.98px) {
  .cart-orders-page .cart-order-history-card { grid-template-columns: minmax(12rem, 1fr) auto 2rem; }
  .cart-orders-page .cart-order-details { grid-column: 1 / -1; grid-row: 2; padding-left: 3.25rem; }
  .cart-orders-page .cart-order-summary { grid-column: 2; grid-row: 1; }
  .cart-orders-page .cart-order-open-icon { grid-column: 3; grid-row: 1; }
}
@media (max-width: 575.98px) {
  .cart-orders-page { padding: 1rem .75rem 2rem; }
  .cart-orders-page .cart-orders-header { align-items: flex-start; flex-direction: column; }
  .cart-orders-page .cart-orders-shop-link { justify-content: center; width: 100%; }
  .cart-orders-page .cart-orders-directory-header { min-height: 4.15rem; }
  .cart-orders-page .cart-order-history-card { grid-template-columns: minmax(0, 1fr) auto; padding: .9rem .8rem; gap: .7rem; }
  .cart-orders-page .cart-order-icon { width: 2.25rem; height: 2.25rem; }
  .cart-orders-page .cart-order-summary { grid-column: 1; grid-row: 2; justify-items: start; padding-left: 3rem; }
  .cart-orders-page .cart-order-details { grid-column: 1 / -1; grid-row: 3; padding: .65rem 0 0; border-top: 1px solid var(--cart-card-border-soft); }
  .cart-orders-page .cart-order-open-icon { grid-column: 2; grid-row: 1 / span 2; }
  .cart-orders-page .cart-order-return { width: 100%; }
  .cart-orders-page .cart-order-return small { display: block; margin: .08rem 0 0; }
}

/* ---- order-confirmation ---- */
@media (max-width: 991.98px) {
  .cart-confirmation-page .cart-confirmation-layout { grid-template-columns: 1fr; }
  .cart-confirmation-page .cart-confirmation-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .cart-confirmation-page { padding: 1rem .75rem 2rem; }
  .cart-confirmation-page .cart-confirmation-state { align-items: flex-start; padding: 1rem; }
  .cart-confirmation-page .cart-confirmation-state-icon { width: 3rem; height: 3rem; }
  .cart-confirmation-page .cart-confirmation-panel-header { min-height: 4.2rem; padding: .8rem; }
  .cart-confirmation-page .cart-confirmation-items { padding: 0 .8rem; }
  .cart-confirmation-page .cart-confirmation-item { grid-template-columns: 2.35rem minmax(0, 1fr); gap: .65rem; }
  .cart-confirmation-page .cart-confirmation-item-icon { width: 2.25rem; height: 2.25rem; }
  .cart-confirmation-page .cart-confirmation-line-total { grid-column: 2; justify-self: start; }
  .cart-confirmation-page .cart-confirmation-totals { padding: .85rem .8rem 1rem; }
  .cart-confirmation-page .cart-confirmation-sidebar { grid-template-columns: 1fr; }
  .cart-confirmation-page .cart-confirmation-actions { align-items: stretch; flex-direction: column; }
  .cart-confirmation-page .cart-confirmation-actions .btn { justify-content: center; width: 100%; }
  .cart-confirmation-page .cart-confirmation-lookup-link { justify-content: center; }
}

/* ---- order-lookup ---- */
@media (min-width: 768px) {
  .cart-lookup-page .cart-lookup-form { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: .85rem; }
  .cart-lookup-page .cart-lookup-submit { grid-column: 1 / -1; }
}
@media (max-width: 575.98px) {
  .cart-lookup-page { min-height: 0; padding: 1rem .75rem 2rem; }
  .cart-lookup-page .cart-lookup-header { align-items: flex-start; }
  .cart-lookup-page .cart-lookup-header-icon { width: 2.8rem; height: 2.8rem; }
  .cart-lookup-page .cart-lookup-panel-footer { align-items: flex-start; flex-direction: column; }
}

/* ---- wishlist ---- */
@media (max-width: 1199.98px) {
  .cart-wishlist-page .cart-wishlist-grid > .col { width: 33.333333% !important; }
}
@media (max-width: 767.98px) {
  .cart-wishlist-page { padding: 1rem .75rem 2rem; }
  .cart-wishlist-page .cart-wishlist-header { align-items: flex-start; flex-direction: column; }
  .cart-wishlist-page .cart-wishlist-header-actions { justify-content: flex-start; }
  .cart-wishlist-page .cart-wishlist-listbar { display: block; }
  .cart-wishlist-page .cart-wishlist-listbar > div:first-child { margin-bottom: .65rem; }
  .cart-wishlist-page .cart-wishlist-grid > .col { width: 50% !important; }
}
@media (max-width: 479.98px) {
  .cart-wishlist-page .cart-wishlist-heading { align-items: flex-start; }
  .cart-wishlist-page .cart-wishlist-heading-icon { width: 2.65rem; height: 2.65rem; }
  .cart-wishlist-page .cart-wishlist-header-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .cart-wishlist-page .cart-wishlist-header-actions .btn:last-child { grid-column: 1 / -1; }
  .cart-wishlist-page .cart-wishlist-header-actions .btn { justify-content: center; }
  .cart-wishlist-page .cart-wishlist-grid { --bs-gutter-x: .7rem; }
  .cart-wishlist-page .cart-wishlist-grid .cart-shop-card .card-body h2 { font-size: .82rem; }
  .cart-wishlist-page #cartWishlistTabs .cart-wishlist-rename-btn, .cart-wishlist-page #cartWishlistTabs .cart-wishlist-delete-btn { width: 2.2rem; height: 2.2rem; }
}
@media (max-width: 359.98px) {
  .cart-wishlist-page .cart-wishlist-grid > .col { width: 100% !important; }
}
