/*
 * tech-storefront — Shop / PLP styles (T-102).
 *
 * Enqueued only on shop / product taxonomy / product search archives.
 * Depends on tech-tokens (theme.css) for design tokens.
 *
 * Notes:
 * - The loop wrapper is WC's <ul class="products"> with a `prod-grid` class
 *   stamped on via the woocommerce_product_loop_start filter (T-041 mobile
 *   infinite scroll anchors to ul.products).
 * - The filter sidebar markup is owned by tech-merch (SidebarRenderer). We
 *   only style the slot wrapper here; tech-merch ships its own filters.css
 *   for the inner widgets.
 */

/* T-205: hard-lock the archive layout to fill the wrap. Some recent rule (likely an
 * implicit display: flex on a parent) made .archive-layout shrink to content, leaving
 * product cards squeezed to ~18px wide on /product-category/outlet/. Override
 * decisively with !important + minmax(0, 1fr) (same pattern as T-203 on prod-grid).
 */
.archive-wrap,
.archive-wrap.wrap,
.wrap.archive-wrap {
  display: block !important;
  width: 100%;
}

.archive-layout {
  display: grid !important;
  grid-template-columns: 260px minmax(0, 1fr) !important;
  gap: 24px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
}

.archive-sidebar {
  width: 260px;
  min-width: 0;
  max-width: 260px;
}

.archive-main {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 900px) {
  .archive-layout {
    grid-template-columns: 1fr !important;
  }
  .archive-sidebar {
    width: 100%;
    max-width: 100%;
    display: none;
  }
}

/* ---------- Wrapper + header ---------- */

.archive-wrap {
  display: block;
}

.archive-head {
  margin: 0.5rem 0 1.25rem;
}
.archive-title {
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  font-weight: 600;
  margin: 0 0 0.5rem;
}
.archive-blurb {
  color: var(--ink-3);
  font-size: 0.9375rem;
  max-width: 60ch;
  margin: 0 0 0.75rem;
}
.archive-blurb p:last-child { margin-bottom: 0; }

.subcat-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.5rem;
}

/* ---------- Layout (sidebar + main) ---------- */

.archive-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 1.5rem;
  align-items: start;
}

.archive-sidebar {
  position: sticky;
  top: 88px; /* clears the sticky header */
  max-height: calc(100vh - 100px);
  overflow-y: auto;
}

.archive-main {
  min-width: 0; /* lets the grid shrink without overflowing */
}

/* ---------- Toolbar (count + sort + view) ---------- */

/* T-124: toolbar — single row, count left, sort + view-switch right */
.archive-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
  margin-bottom: 24px;
  min-height: 56px;
}

/* tech-merch's results header (count + orderby + applied-filter pills) */
.archive-toolbar .tm-results-header,
.archive-toolbar > .woocommerce-result-count,
.archive-toolbar > form.woocommerce-ordering {
  display: inline-flex !important;
  align-items: center;
  margin: 0 !important;
  gap: 12px;
}

/* Make tech-merch's wrapper grow so view-switch stays right */
.archive-toolbar .tm-results-header {
  flex: 1;
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;        /* inside tm-results-header, count + sort can wrap if very narrow */
  gap: 16px;
}

.archive-toolbar .tm-results-header .tm-results-count,
.archive-toolbar .woocommerce-result-count {
  font-size: 14px;
  color: var(--ink-2);
  flex: 1;
  margin: 0;
}

/* Sort form / dropdown — keep inline */
.archive-toolbar .tm-orderby,
.archive-toolbar .woocommerce-ordering,
.archive-toolbar form.woocommerce-ordering {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

/* Sort label */
.archive-toolbar .tm-orderby label,
.archive-toolbar .woocommerce-ordering label {
  font-weight: 600;
  font-size: 14px;
  color: var(--ink);
  margin: 0;
  white-space: nowrap;
}

/* Sort dropdown */
.archive-toolbar select.orderby,
.archive-toolbar .woocommerce-ordering select {
  height: 36px;
  padding: 0 32px 0 12px;
  background: var(--paper);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F1014' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-family: var(--font-sans);
  color: var(--ink);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
}

.archive-toolbar select.orderby:focus,
.archive-toolbar .woocommerce-ordering select:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(236, 110, 77, 0.18);
}

/* View-switch buttons — inline-flex group, right-aligned */
.archive-toolbar .archive-toolbar-right,
.archive-toolbar .archive-view-switch {
  display: inline-flex !important;
  align-items: center;
  gap: 4px;
  margin: 0;
  flex: 0 0 auto;
}

.archive-toolbar .view-switch {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  background: var(--paper);
  border-radius: var(--radius-sm);
  cursor: pointer;
  padding: 0;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.archive-toolbar .view-switch:hover {
  background: var(--paper-2);
}

.archive-toolbar .view-switch[data-tech-view-active="1"],
.archive-toolbar .view-switch.is-active {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}

/* Strip any tech-merch toolbar wrap rules that force block */
.archive-toolbar .tm-results-header,
.archive-toolbar .tm-results-header > * {
  width: auto !important;
}

/* Mobile — keep on one row if possible, otherwise allow wrap */
@media (max-width: 600px) {
  .archive-toolbar {
    flex-wrap: wrap;
  }
}

/* ---------- Product grid (overlays WC ul.products) ---------- */

ul.products.prod-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
ul.products.prod-grid > li {
  margin: 0;
  padding: 0;
  width: auto !important; /* override WC's float-grid percentage widths */
  float: none !important;
}

/* ---------- Empty state ---------- */

.archive-empty {
  padding: 2.5rem 1rem;
  text-align: center;
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  background: var(--paper-2);
}
.archive-empty p {
  font-size: 1rem;
  color: var(--ink-2);
  margin: 0 0 1rem;
}

/* ---------- Pagination ---------- */

/* T-124: pagination — no borders, just fills + hover */
.woocommerce-pagination {
  margin: 32px 0;
  display: flex;
  justify-content: center;
}

.woocommerce-pagination ul.page-numbers {
  display: inline-flex;
  gap: 4px;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
}

.woocommerce-pagination ul.page-numbers li {
  list-style: none;
  display: inline-flex;
  margin: 0;
}

/* All chips — size + reset borders */
.woocommerce-pagination ul.page-numbers li a,
.woocommerce-pagination ul.page-numbers li span,
.woocommerce nav.woocommerce-pagination ul li a.page-numbers,
.woocommerce nav.woocommerce-pagination ul li span.page-numbers,
.woocommerce nav.woocommerce-pagination ul li .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  background: transparent;
  color: var(--ink);
  border: 0 !important;
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
  box-shadow: none !important;
  outline: none !important;
}

/* Hover on linkable page numbers (excludes the current span) */
.woocommerce-pagination ul.page-numbers li a:hover,
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:hover {
  background: var(--paper-2);
  color: var(--brand);
}

/* Current page — coral pill, NO border */
.woocommerce-pagination ul.page-numbers li .page-numbers.current,
.woocommerce-pagination ul.page-numbers li span.current,
.woocommerce nav.woocommerce-pagination ul li .current {
  background: var(--brand);
  background-color: var(--brand);
  color: #fff;
  font-weight: 700;
  border: 0 !important;
}

/* Dots — quiet */
.woocommerce-pagination ul.page-numbers li .page-numbers.dots,
.woocommerce nav.woocommerce-pagination ul li span.dots {
  background: transparent;
  color: var(--ink-3);
  cursor: default;
  min-width: 24px;
}

/* Prev/Next arrows */
.woocommerce-pagination ul.page-numbers li a.next,
.woocommerce-pagination ul.page-numbers li a.prev {
  font-size: 18px;
  font-weight: 500;
}

/* Strip any focus rings */
.woocommerce-pagination ul.page-numbers li a:focus,
.woocommerce-pagination ul.page-numbers li a:focus-visible {
  outline: 0;
  background: var(--paper-2);
}

/* T-114: card title 2-line clamp so titles don't overlap price/button */
.product-card .card-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  min-height: 2.6em;
  line-height: 1.3;
}

/* ---------- Infinite-scroll sentinel (mobile, T-041) ---------- */
/* tech-merch's filters-scroll.js manages the loader; our sentinel is a
 * marker the JS could optionally key off in future. Kept invisible. */
.tech-infinite-sentinel {
  height: 1px;
  width: 100%;
}

/* ---------- Mobile filter FAB ---------- */

/* T-119: mobile filter FAB — funnel icon + label + count badge */
.filter-fab {
  display: none;                         /* hidden on desktop; see @media below */
  position: fixed;
  bottom: 24px;
  left: 24px;
  z-index: 70;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  background: var(--brand);
  color: #fff;
  border: 0;
  border-radius: 999px;
  font-weight: 600;
  font-size: 14px;
  box-shadow: 0 8px 20px rgba(15, 16, 20, 0.18);
  cursor: pointer;
  transition: background 0.15s ease;
}

.filter-fab:hover { background: var(--accent); }

.filter-fab .tech-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}

.filter-fab-label { white-space: nowrap; }

.filter-fab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  font-feature-settings: 'tnum';
}

.filter-fab-count[hidden] { display: none; }

/* ---------- Mobile filter bottom-sheet ---------- */

.filter-sheet-bg {
  position: fixed;
  inset: 0;
  background: rgba(15, 16, 20, 0.45);
  z-index: 80;
}
.filter-sheet {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 90;
  background: var(--paper);
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  transform: translateY(100%);
  transition: transform 220ms ease;
}
.filter-sheet.is-open { transform: translateY(0); }

.filter-sheet-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--line);
}
.filter-sheet-hd h2 {
  font-size: 1.0625rem;
  font-weight: 600;
  margin: 0;
}
.filter-sheet-hd .icon-btn {
  background: transparent;
  border: 0;
  padding: 0.25rem;
  cursor: pointer;
  color: var(--ink-2);
}

.filter-sheet-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 0.75rem 1rem;
}

.filter-sheet-foot {
  display: flex;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--line);
}
.filter-sheet-foot .btn { flex: 1 1 auto; }

/* Buttons used inside the sheet (theme doesn't ship a global .btn yet) */
.filter-sheet-foot .btn,
.archive-empty .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 1rem;
  border-radius: var(--radius-sm);
  font-weight: 500;
  font-size: 0.9375rem;
  cursor: pointer;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}
.filter-sheet-foot .btn.primary,
.archive-empty .btn.primary {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.filter-sheet-foot .btn.primary:hover { background: var(--ink-2); border-color: var(--ink-2); }
.filter-sheet-foot .btn.ghost,
.archive-empty .btn.ghost {
  background: var(--paper);
  color: var(--ink-2);
  border-color: var(--line);
}
.filter-sheet-foot .btn.ghost:hover { border-color: var(--accent); color: var(--accent); }

/* T-130/T-133: FAB swap — user confirmed (twice) that tech-merch's teal FAB is the working
 * filter button. Hide our coral .filter-fab everywhere. tech-merch's .tm-filter-fab is
 * shown ONLY on mobile (≤900px) — T-130 forced it site-wide which leaked a "Filter1" box
 * onto desktop. */

.filter-fab,
button.filter-fab,
body .filter-fab,
.archive-wrap .filter-fab {
  display: none !important;
}

/* T-133: hide tech-merch's FAB on desktop (was inline-flex site-wide in T-130) */
.tm-filter-fab,
button.tm-filter-fab,
html body button.tm-filter-fab,
.tm-mobile-buybar .tm-filter-fab {
  display: none !important;
}

/* T-133: tech-merch's .tm-filter-fab only on mobile — was site-wide in T-130 */
@media (max-width: 900px) {
  .tm-filter-fab,
  button.tm-filter-fab,
  html body button.tm-filter-fab,
  .tm-mobile-buybar .tm-filter-fab {
    display: inline-flex !important;
    position: fixed !important;
    bottom: 24px !important;
    left: 24px !important;
    z-index: 70 !important;
  }

  /* And if tech-merch suppresses itself when our theme is detected, override on mobile only */
  body[data-theme="tech-storefront"] .tm-filter-fab,
  body.theme-tech-storefront .tm-filter-fab {
    display: inline-flex !important;
  }
}

/* ---------- Responsive ---------- */

@media (max-width: 1100px) {
  ul.products.prod-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .archive-layout {
    grid-template-columns: 1fr;
  }
  .archive-sidebar {
    display: none; /* sidebar contents reach mobile via the bottom-sheet clone */
  }
  .filter-fab { display: inline-flex; }
}

@media (max-width: 700px) {
  ul.products.prod-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
}

@media (max-width: 420px) {
  ul.products.prod-grid { grid-template-columns: 1fr; }
}

/* T-116: defeat Woo's default li.product width that breaks first-row grid layout.
 * Woo ships `.woocommerce ul.products li.product { width: 22.05%; float: left; }`
 * which partially wins against our `> li` rule on PLP; force-disable via wider
 * !important selectors. */
.prod-grid.products li.product,
ul.products.prod-grid li.product,
ul.products li.product {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  margin-right: 0 !important;
  clear: none !important;
}

/* T-116: reinforce grid container in case WC base CSS resets display */
/* T-127: grid-auto-rows: 1fr so all cells in a row match the tallest sibling */
/* T-130: row-gap tightened, column-gap kept normal so cards aren't squished */
/* T-134: row-gap tightened further (16→8px desktop, 12→6px mobile) */
/* T-203: minmax(0, 1fr) lets cards shrink instead of overflowing the track when
 * a wide brand pill or long title would otherwise force expansion; column-gap
 * trimmed 20→16px, 3-col drops in earlier at 1280px (was 1100), 2-col at 900
 * (was 760) so 1366px desktops don't get 4 cramped cards. */
ul.products.prod-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  row-gap: 8px !important;
  column-gap: 16px !important;
  grid-auto-rows: 1fr !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

@media (max-width: 1280px) {
  ul.products.prod-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    row-gap: 8px !important;
    column-gap: 14px !important;
  }
}
@media (max-width: 900px) {
  ul.products.prod-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    row-gap: 6px !important;
    column-gap: 12px !important;
  }
}
@media (max-width: 440px) {
  ul.products.prod-grid {
    grid-template-columns: 1fr !important;
    row-gap: 6px !important;
  }
}

/* T-130 / T-203: card title — 12.5px + hyphens auto, mirrors home.css block */
.product-card .card-title,
ul.products li.product .card-title,
.prod-grid .product-card .card-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 12.5px;
  line-height: 1.35;
  min-height: 2.7em;
  max-height: 2.7em;
  margin: 0 0 6px 0;
  font-weight: 500;
  color: var(--ink);
  word-break: break-word;
  hyphens: auto;
}

/* T-118: Kill WC's clearfix pseudo-elements that occupy grid cells.
 * WC ships `.woocommerce ul.products::before/::after { content: " "; display: table; }`
 * for legacy float-clearfix. With display:grid on the ul those pseudos become
 * grid items and eat row-1 cell-1 (first product then renders in cell 2). */
ul.products.prod-grid::before,
ul.products.prod-grid::after,
ul.products::before,
ul.products::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce .products ul::before,
.woocommerce .products ul::after {
  display: none !important;
  content: none !important;
}

/* T-216: list view — compact rows, proportioned buttons (supersedes T-210) */

ul.products.prod-grid.view-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  grid-template-columns: none !important;
  grid-auto-rows: auto !important;
}

ul.products.prod-grid.view-list li.product {
  width: 100% !important;
  max-width: 100% !important;
}

/* Row layout: image | content | actions */
ul.products.prod-grid.view-list .product-card {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  align-items: center;
  gap: 16px;
  min-height: 0;
  height: auto;
  padding: 10px 14px;
}

/* Image area — small thumbnail */
ul.products.prod-grid.view-list .product-card .card-image {
  width: 80px;
  height: 80px;
  aspect-ratio: 1 / 1;
  max-height: 80px;
  margin: 0;
}

/* card-link wrapper — make it span all 3 columns */
ul.products.prod-grid.view-list .product-card .card-link {
  display: contents;
}

/* Content (brand + title + price) in middle column, stacked tight */
ul.products.prod-grid.view-list .product-card .card-brand {
  grid-column: 2;
  grid-row: 1;
  font-size: 10.5px;
  line-height: 1.2;
  margin: 0;
  height: 13px;
}

ul.products.prod-grid.view-list .product-card .card-title {
  grid-column: 2;
  grid-row: 2;
  font-size: 14px;
  line-height: 1.3;
  margin: 1px 0;
  -webkit-line-clamp: 1;
  height: auto;
  max-height: 1.4em;
  overflow: hidden;
  text-overflow: ellipsis;
}

ul.products.prod-grid.view-list .product-card .card-price {
  grid-column: 2;
  grid-row: 3;
  font-size: 13.5px;
  font-weight: 700;
  margin: 0;
  line-height: 1.2;
  min-height: 0;
}

/* Action button — right column, fixed proportions */
ul.products.prod-grid.view-list .product-card .card-add-btn,
ul.products.prod-grid.view-list .product-card .ajax_add_to_cart,
ul.products.prod-grid.view-list .product-card .card-select-options,
ul.products.prod-grid.view-list .product-card .btn-notify,
ul.products.prod-grid.view-list .product-card .list-variations-trigger {
  grid-column: 3;
  grid-row: 1 / span 3;
  margin-top: 0;
  align-self: center;
  width: auto;
  min-width: 130px;
  max-width: 180px;
  height: 36px;
  padding: 0 14px;
  font-size: 13px;
  white-space: nowrap;
  flex-direction: row;
}

/* Wishlist heart — small + top-right */
ul.products.prod-grid.view-list .product-card .card-wish {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 24px;
  height: 24px;
}

/* Badge top-left */
ul.products.prod-grid.view-list .product-card .card-badge {
  position: absolute;
  top: 6px;
  left: 6px;
  font-size: 9px;
  padding: 2px 6px;
}

/* Mobile list-view — even more compact */
@media (max-width: 600px) {
  ul.products.prod-grid.view-list .product-card {
    grid-template-columns: 64px 1fr;
    gap: 10px;
    padding: 8px 10px;
  }

  ul.products.prod-grid.view-list .product-card .card-image {
    width: 64px;
    height: 64px;
    max-height: 64px;
  }

  ul.products.prod-grid.view-list .product-card .card-add-btn,
  ul.products.prod-grid.view-list .product-card .ajax_add_to_cart,
  ul.products.prod-grid.view-list .product-card .card-select-options,
  ul.products.prod-grid.view-list .product-card .btn-notify {
    grid-column: 1 / span 2;
    grid-row: 4;
    margin-top: 6px;
    width: 100%;
    height: 36px;
    max-width: none;
  }
}

/* T-216: inline variation selector for variable products in list view */
.list-variations-inline {
  display: none;
  align-items: center;
  gap: 8px;
}

ul.products.prod-grid.view-list .list-variations-inline {
  display: inline-flex;
  grid-column: 3;
  grid-row: 1 / span 3;
  align-self: center;
}

.list-variations-inline .list-variation-select {
  height: 36px;
  padding: 0 28px 0 10px;
  background: var(--paper);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F1014' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 8px center;
  background-size: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-family: var(--font-sans);
  color: var(--ink);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
  min-width: 110px;
  max-width: 160px;
}

.list-variations-inline .list-variation-select:focus {
  outline: none;
  border-color: var(--brand);
}

.list-variations-inline .list-add-with-variation {
  height: 36px;
  min-width: 110px;
  padding: 0 14px;
  background: var(--brand);
  color: #fff;
  border: 0;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  cursor: pointer;
  transition: background 0.15s ease, opacity 0.15s ease;
}

.list-variations-inline .list-add-with-variation:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.list-variations-inline .list-add-with-variation:not(:disabled):hover {
  background: var(--brand-2, #d65a3f);
}

@media (max-width: 600px) {
  ul.products.prod-grid.view-list .list-variations-inline {
    grid-column: 1 / span 2;
    grid-row: 4;
    flex-wrap: wrap;
  }

  .list-variations-inline .list-variation-select {
    flex: 1 1 50%;
    max-width: none;
  }

  .list-variations-inline .list-add-with-variation {
    flex: 1 1 40%;
  }
}

/* Active state on toggle button — already in T-124 but reinforce */
.archive-toolbar .view-switch[data-tech-view-active="1"] {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
