/*
 * I3Commerce → Tonerink CSS Bridge
 *
 * Maps I3Commerce's default Tailwind utility classes and component patterns
 * to Tonerink's visual design system. This file is loaded AFTER shop.css
 * and overrides I3Commerce's default app.css styling to match the
 * Toner Ink dark service-commerce identity.
 *
 * All colors reference CSS custom properties from shop.css (:root).
 * Override via config/tonerink-front.php → tonerink-theme-vars.blade.php.
 */

/* =========================================
   Product Card Bridge
   I3Commerce uses .product .product--type-2
   Tonerink uses .product-card
   ========================================= */

/* Bridge I3Commerce product card classes to tonerink styles */
.product.product--type-2 {
  background: var(--panel, #fff);
  border-radius: 8px;
  overflow: hidden;
  transition: box-shadow 0.2s;
}

.product.product--type-2:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.product--content-top {
  background: #fff;
  position: relative;
}

.product--content-top .product--media img {
  width: 100%;
  height: auto;
  object-fit: contain;
  padding: 1rem;
}

.product--content-bottom {
  padding: 1rem;
}

.product--title h2 a {
  color: var(--accent, #4361ee);
  font-size: 0.9rem;
  font-weight: 500;
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.product--title h2 a:hover {
  text-decoration: underline;
}

.product--manufacturer a {
  color: var(--red, #f05564);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  text-decoration: none;
}

.product--price-final span {
  color: var(--red, #f05564);
  font-size: 1.1rem;
  font-weight: 700;
}

.product--price-initial span {
  color: var(--muted, #888);
  font-size: 0.85rem;
}

/* Availability badges */
.availability--type-1 { color: var(--green, #42d78c); font-size: 0.8rem; }
.availability--type-2 { color: var(--info, #058fff); font-size: 0.8rem; }
.availability--type-3 { color: var(--blue, #335599); font-size: 0.8rem; }
.availability--type-4 { color: var(--red, #f05564); font-size: 0.8rem; }

/* Labels (new, discount) */
.product--labels-label.new {
  background: var(--panel-3, #222225);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 3px;
}

.product--labels-label.discount {
  background: var(--red, #f05564);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 3px;
}

/* ATC and wishlist buttons */
.product--atc-btn {
  background: var(--red, #f05564);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s;
}

.product--atc-btn:hover {
  background: var(--primary-dark);
}

.product--atc-btn svg { fill: #fff; width: 16px; height: 16px; }

.product--wishlist-btn {
  background: #fff;
  border: 1px solid var(--line, #313136);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
}

.product--wishlist-btn.added,
.product--wishlist-btn:hover {
  background: var(--red, #f05564);
  border-color: var(--red, #f05564);
}

.product--wishlist-btn.added svg,
.product--wishlist-btn:hover svg {
  fill: #fff;
}

.product--wishlist-btn svg { fill: currentColor; width: 16px; height: 16px; }


/* =========================================
   Category Page Bridge
   ========================================= */

.section--header h1 {
  font-family: 'Rubik', sans-serif;
  font-weight: 700;
  color: var(--text, #fff);
}

#product--listing {
  padding-bottom: 3rem;
  --filter-space-xs: 4px;
  --filter-space-sm: 8px;
  --filter-space-md: 12px;
  --filter-space-lg: 16px;
  --filter-space-xl: 24px;
  --filter-drawer-width: 440px;
  --filter-z-backdrop: 80;
  --filter-z-drawer: 90;
}

/* Navigation filters panel */
.navigation--wrapper {
  background: var(--panel, #1e1e2f);
  border-radius: 8px;
  padding: 1rem;
}

/* Off-canvas catalog filters */
#product--listing .catalog-filters-drawer {
  position: fixed !important;
  inset: 0 auto 0 0 !important;
  z-index: var(--filter-z-drawer) !important;
  width: min(var(--filter-drawer-width), calc(100vw - var(--filter-space-lg))) !important;
  min-width: 0 !important;
  max-width: var(--filter-drawer-width) !important;
  height: 100vh !important;
  height: 100dvh !important;
  padding: 0 !important;
  overflow: hidden !important;
  color: var(--text, #d5d5d8);
  background: var(--panel, #252529) !important;
  border: 1px solid var(--line, #313136);
  border-left: 0;
  border-radius: 0 12px 12px 0;
  box-shadow: 14px 0 40px rgba(10, 10, 12, .24);
  transform: translate3d(calc(-100% - var(--filter-space-lg)), 0, 0) !important;
  visibility: hidden;
  transition:
    transform 260ms cubic-bezier(.22, 1, .36, 1),
    visibility 0s linear 260ms;
  container-type: inline-size;
}

.filters--active #product--listing .catalog-filters-drawer {
  transform: translate3d(0, 0, 0) !important;
  visibility: visible;
  transition-delay: 0s;
}

#product--listing .catalog-filters-drawer:focus {
  outline: none;
}

#product--listing .catalog-filters-backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--filter-z-backdrop);
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: rgba(10, 10, 12, .62);
  cursor: default;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 220ms ease,
    visibility 0s linear 220ms;
}

.filters--active #product--listing .catalog-filters-backdrop {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

#product--listing .catalog-filters {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  background: var(--panel, #252529);
}

#product--listing .catalog-filters .sidebar--selected-filters {
  flex: 0 0 auto;
}

#product--listing .catalog-filters__header {
  min-height: 72px;
  padding: var(--filter-space-md) var(--filter-space-xl);
  gap: var(--filter-space-lg);
  color: var(--heading, #f6f6f7);
  background: var(--panel, #252529) !important;
  border-color: var(--line, #313136) !important;
}

#product--listing .catalog-filters__title-row {
  min-width: 0;
  gap: var(--filter-space-sm);
}

#product--listing .catalog-filters__header .sidebar--text {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.01em;
}

#product--listing .catalog-filters__active-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding-inline: 7px;
  color: var(--white, #f8f8f9);
  background: var(--primary, #ed1c24);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

#product--listing .catalog-filters__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 var(--filter-space-md);
  gap: var(--filter-space-sm);
  color: var(--text, #d5d5d8) !important;
  background: transparent !important;
  border: 1px solid var(--line, #313136) !important;
  border-radius: var(--radius, 6px);
  font-size: 13px;
  font-weight: 500;
  transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

#product--listing .catalog-filters__close:hover {
  color: var(--heading, #f6f6f7) !important;
  background: var(--panel-2, #313136) !important;
  border-color: var(--field-border, #5a5a5f) !important;
}

#product--listing .catalog-filters__close:focus-visible,
#product--listing .catalog-filters__apply:focus-visible,
#product--listing .controls--actions-toggle:focus-visible {
  outline: 3px solid var(--info, #058fff);
  outline-offset: 3px;
}

#product--listing .catalog-filters__selected {
  max-height: min(180px, 25vh);
  padding: var(--filter-space-md) var(--filter-space-xl);
  overflow-y: auto;
  background: var(--panel-3, #222225);
  border-color: var(--line, #313136) !important;
}

#product--listing .catalog-filters__selected .selected--filters-list {
  margin: 0;
  padding: 0;
}

#product--listing .catalog-filters__selected .item--action-remove {
  min-height: 36px;
  padding: var(--filter-space-sm) var(--filter-space-md) !important;
  gap: var(--filter-space-sm) !important;
  color: var(--text, #d5d5d8) !important;
  background: var(--panel-2, #313136) !important;
  border-color: var(--line, #313136) !important;
  border-radius: var(--radius, 6px);
  font-size: 12px;
  text-align: left;
}

#product--listing .catalog-filters__selected .item--action-remove:hover {
  color: var(--heading, #f6f6f7) !important;
  border-color: var(--field-border, #5a5a5f) !important;
}

#product--listing .catalog-filters__selected .item--action-remove svg {
  flex: 0 0 auto;
  fill: currentColor;
}

#product--listing .catalog-filters__selected .filter--clear {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  color: var(--red, #f05564) !important;
  font-size: 12px;
  font-weight: 500;
  text-underline-offset: 3px;
}

#product--listing .catalog-filters__groups {
  flex: 1 1 auto;
  min-height: 0;
  margin: 0;
  padding: 0 var(--filter-space-sm);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: var(--field-border, #5a5a5f) transparent;
  scrollbar-width: thin;
}

#product--listing .catalog-filters__groups > li {
  margin: 0 !important;
  border-color: var(--line, #313136) !important;
}

#product--listing .catalog-filters__groups > li > .filter--block > .filter--block-item > [data-bs-toggle="collapse"] {
  min-height: 60px;
  margin: 0 !important;
  padding: var(--filter-space-md) var(--filter-space-lg);
  gap: var(--filter-space-md);
  cursor: pointer;
  border-radius: var(--radius, 6px);
  transition: background-color 160ms ease;
}

#product--listing .catalog-filters__groups > li > .filter--block > .filter--block-item > [data-bs-toggle="collapse"]:hover {
  background: var(--panel-2, #313136);
}

#product--listing .catalog-filters__groups [data-bs-toggle="collapse"]:focus-visible {
  outline: 3px solid var(--info, #058fff);
  outline-offset: -3px;
}

#product--listing .catalog-filters__groups .filter--name {
  color: var(--heading, #f6f6f7);
  font-size: 15px;
  font-weight: 500 !important;
  line-height: 1.35;
}

#product--listing .catalog-filters__groups [data-bs-toggle="collapse"] svg {
  flex: 0 0 auto;
  transition: transform 180ms cubic-bezier(.22, 1, .36, 1);
}

#product--listing .catalog-filters__groups [data-bs-toggle="collapse"] svg path {
  fill: var(--muted, rgba(213, 213, 216, .72));
}

#product--listing .catalog-filters__groups [data-bs-toggle="collapse"][aria-expanded="true"] svg {
  transform: rotate(180deg) !important;
}

#product--listing .catalog-filters__groups [data-bs-toggle="collapse"].collapsed svg {
  transform: rotate(0) !important;
}

#product--listing .catalog-filters__groups .filter--content,
#product--listing .catalog-filters__groups .collapse.show:not(.numeric-slider) {
  margin-top: 0 !important;
  padding: 0 var(--filter-space-lg) var(--filter-space-lg);
}

/* Tailwind's visibility utility and Bootstrap's disclosure component both use
   `.collapse`; restore Bootstrap's intended visible state inside filters. */
#product--listing .catalog-filters__groups .collapse.show,
#product--listing .catalog-filters__groups .collapsing {
  visibility: visible;
}

#product--listing .catalog-filters__groups .filter--search {
  margin: 0 0 var(--filter-space-md) !important;
}

#product--listing .catalog-filters__groups .filter--search input {
  min-height: 44px;
  padding: var(--filter-space-sm) 40px var(--filter-space-sm) var(--filter-space-md) !important;
  color: var(--text, #d5d5d8) !important;
  background: var(--field, #48484d) !important;
  border: 1px solid var(--field-border, #5a5a5f) !important;
  border-radius: var(--radius, 6px);
  font-size: 14px;
}

#product--listing .catalog-filters__groups .filter--search input::placeholder {
  color: var(--muted, rgba(213, 213, 216, .72));
}

#product--listing .catalog-filters__groups .filter--search input:focus {
  border-color: var(--info, #058fff) !important;
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--info, #058fff) 20%, transparent);
}

#product--listing .catalog-filters__groups .filter--search svg path {
  fill: var(--muted, rgba(213, 213, 216, .72));
}

#product--listing .catalog-filters__groups .filter--list {
  display: grid;
  gap: var(--filter-space-xs);
  margin-bottom: 0 !important;
}

#product--listing .catalog-filters__groups .filter--list > div {
  min-height: 44px;
  margin: 0 !important;
}

#product--listing .catalog-filters__groups .filter--list > a {
  min-height: 44px;
  margin: 0 !important;
  padding: var(--filter-space-sm) var(--filter-space-sm) var(--filter-space-sm) 32px;
  color: var(--text, #d5d5d8) !important;
  border-radius: var(--radius, 6px);
  font-size: 14px;
  line-height: 1.35;
  transition: color 160ms ease, background-color 160ms ease;
}

#product--listing .catalog-filters__groups .filter--list > a:hover {
  color: var(--heading, #f6f6f7) !important;
  background: var(--panel-2, #313136);
}

#product--listing .catalog-filters__groups .subcategories-listing-type .filter--list > a {
  padding-left: var(--filter-space-sm);
}

#product--listing .catalog-filters__groups .filter--list label.label--option {
  width: 100%;
  min-height: 44px;
  align-items: center;
  padding: var(--filter-space-sm) var(--filter-space-sm) var(--filter-space-sm) 32px !important;
  color: var(--text, #d5d5d8);
  border-radius: var(--radius, 6px);
  font-size: 14px;
  line-height: 1.35;
  transition: color 160ms ease, background-color 160ms ease;
}

#product--listing .catalog-filters__groups .filter--list label.label--option:hover {
  color: var(--heading, #f6f6f7);
  background: var(--panel-2, #313136);
}

#product--listing .catalog-filters__groups .filter--list input.hidden {
  position: absolute !important;
  display: block !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  opacity: 0;
}

#product--listing .catalog-filters__groups .filter--list label.label--option::before {
  left: var(--filter-space-xs);
  width: 20px;
  min-width: 20px;
  height: 20px;
  margin: 0;
  background: var(--field, #48484d);
  border: 1px solid var(--field-border, #5a5a5f);
  border-radius: 4px;
}

#product--listing .catalog-filters__groups .filter--list label.label--option::after {
  top: 50%;
  left: 11px;
  width: 6px;
  min-width: 0;
  height: 10px;
  background: transparent !important;
  border: 0 solid var(--white, #f8f8f9);
  border-width: 0 2px 2px 0;
  border-radius: 0;
  opacity: 0;
  transform: translateY(-62%) rotate(45deg);
}

#product--listing .catalog-filters__groups .filter--list input:checked + label.label--option::before {
  background: var(--primary, #ed1c24);
  border-color: var(--primary, #ed1c24);
}

#product--listing .catalog-filters__groups .filter--list input:checked + label.label--option::after {
  opacity: 1;
}

#product--listing .catalog-filters__groups .filter--list input:focus-visible + label.label--option::before {
  outline: 3px solid var(--info, #058fff);
  outline-offset: 2px;
}

#product--listing .catalog-filters__groups .form-check-input {
  flex: 0 0 auto;
  width: 20px !important;
  height: 20px !important;
  margin-right: var(--filter-space-md) !important;
  accent-color: var(--primary, #ed1c24);
}

#product--listing .catalog-filters__groups .form-check-label {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--text, #d5d5d8);
  font-size: 14px;
}

#product--listing .catalog-filters__groups .filter--show-more {
  padding: var(--filter-space-sm) 0 0 !important;
  color: var(--primary, #ed1c24);
  font-size: 13px;
  font-weight: 500;
  text-underline-offset: 3px;
}

#product--listing .catalog-filters__groups .numeric-slider.filter--content {
  padding: 0 var(--filter-space-lg) var(--filter-space-xl);
}

#product--listing .catalog-filters__groups .extra-controls {
  padding-bottom: var(--filter-space-lg) !important;
  grid-template-columns: 1fr 20px 1fr !important;
  gap: var(--filter-space-sm) !important;
}

#product--listing .catalog-filters__groups .extra-controls input {
  min-width: 0;
  min-height: 44px;
  padding: var(--filter-space-sm) !important;
  color: var(--text, #d5d5d8);
  background: var(--field, #48484d) !important;
  border: 1px solid var(--field-border, #5a5a5f);
  border-radius: var(--radius, 6px);
  font-size: 14px;
}

#product--listing .catalog-filters__apply {
  position: relative !important;
  inset: auto !important;
  flex: 0 0 auto;
  justify-content: flex-start !important;
  width: calc(100% - (var(--filter-space-lg) * 2)) !important;
  min-height: 52px;
  margin: var(--filter-space-md) var(--filter-space-lg) var(--filter-space-lg);
  padding: 0 var(--filter-space-lg) !important;
  gap: var(--filter-space-md);
  color: var(--white, #f8f8f9) !important;
  background: var(--primary, #ed1c24) !important;
  border: 0 !important;
  border-radius: var(--radius, 6px);
  box-shadow: none;
  opacity: 1 !important;
  filter: none !important;
  font-size: 14px !important;
  font-weight: 600;
  transition: background-color 160ms ease, transform 160ms ease;
}

#product--listing .catalog-filters__apply span {
  flex: 1 1 auto;
  text-align: left;
}

#product--listing .catalog-filters__apply strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 28px;
  padding-inline: var(--filter-space-sm);
  background: rgba(248, 248, 249, .16);
  border-radius: 999px;
  font-size: 12px;
}

#product--listing .catalog-filters__apply:hover {
  background: var(--primary-dark, #c81018) !important;
  transform: translateY(-1px);
}

#product--listing .controls--actions-toggle {
  min-height: 44px;
  gap: var(--filter-space-sm) !important;
  background: var(--primary, #ed1c24);
  border-radius: var(--radius, 6px);
  font-size: 14px !important;
  font-weight: 600;
}

#product--listing .controls--actions-toggle:hover {
  background: var(--primary-dark, #c81018);
}

@media (max-width: 480px) {
  #product--listing .catalog-filters-drawer {
    width: 100vw !important;
    max-width: 100vw !important;
    border-right: 0;
    border-radius: 0;
  }

  #product--listing .catalog-filters__header {
    min-height: 68px;
    padding-inline: var(--filter-space-lg);
  }

  #product--listing .catalog-filters__close {
    width: 44px;
    padding: 0;
  }

  #product--listing .catalog-filters__close span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  #product--listing .catalog-filters__selected {
    padding-inline: var(--filter-space-lg);
  }

  #product--listing .catalog-filters__groups {
    padding-inline: var(--filter-space-xs);
  }

  #product--listing .catalog-filters__apply {
    width: calc(100% - (var(--filter-space-md) * 2)) !important;
    margin: var(--filter-space-md);
  }
}

@media (prefers-reduced-motion: reduce) {
  #product--listing .catalog-filters-drawer,
  #product--listing .catalog-filters-backdrop,
  #product--listing .catalog-filters__groups [data-bs-toggle="collapse"] svg {
    transition-duration: 1ms !important;
  }
}

/* Sidebar filters (desktop): compact page column without nested scrolling */
@media (min-width: 1024px) {
  #product--listing .navigation--wrapper:not(.catalog-filters-drawer) {
    position: relative !important;
    top: auto !important;
    align-self: start;
    max-height: none;
    padding: 0;
    overflow: visible;
    background: var(--panel, #252529);
    border: 1px solid var(--line, #313136);
    border-radius: 8px;
  }

  #product--listing .catalog-filters--sidebar {
    display: block;
    height: auto !important;
    overflow: visible;
    border-radius: 8px;
  }

  #product--listing .catalog-filters--sidebar .catalog-filters__header {
    min-height: 60px;
    padding: var(--filter-space-sm) var(--filter-space-lg);
    border-radius: 8px 8px 0 0;
  }

  #product--listing .catalog-filters--sidebar .catalog-filters__close {
    display: none !important;
  }

  #product--listing .catalog-filters--sidebar .catalog-filters__groups {
    display: block;
    padding: 0 var(--filter-space-sm);
    overflow: visible;
  }

  #product--listing .catalog-filters--sidebar .catalog-filters__selected {
    max-height: none;
    padding-inline: var(--filter-space-lg);
  }
}

/* Product grid */
.product-list--wrapper {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1.25rem;
}

/* =========================================
   Search Results Bridge
   ========================================= */

.search--input-field {
  background: var(--panel-2, #2a2a3d);
  border: 1px solid var(--line, #3a3a4d);
  color: var(--text, #fff);
  border-radius: 4px;
  font-family: 'Rubik', sans-serif;
}

.search--input-button {
  background: var(--red, #f05564);
  color: #fff;
  border: none;
  border-radius: 4px;
  font-weight: 600;
  cursor: pointer;
}

.search--input-button:hover {
  background: var(--primary-dark);
}

/* =========================================
   Header Bridge
   ========================================= */

/* Override I3Commerce's header styles with tonerink's */
.header.header--type-1 {
  display: none !important; /* Hide default, we use tonerink-header */
}

/* =========================================
   Footer Bridge
   ========================================= */

/* Hide I3Commerce default footer if it somehow renders */
.footer--type-1,
.footer--type-2,
.footer--type-3 {
  display: none !important;
}

/* =========================================
   General Overrides
   ========================================= */

/* Body and page background */
body {
  font-family: var(--font-family, 'Rubik'), sans-serif !important;
}

/* Container width */
.container {
  max-width: 1320px;
}

/* Links */
a {
  text-decoration: none;
}

/* Breadcrumbs: quiet navigation hierarchy with a clearly readable destination */
#breadcrumbs.catalog-breadcrumbs {
  width: 100%;
  padding: 20px 0;
  overflow: hidden;
}

#breadcrumbs .catalog-breadcrumbs__list {
  display: flex;
  align-items: center;
  min-width: 0;
  margin: 0;
  padding: 0;
  gap: 8px;
  list-style: none;
}

#breadcrumbs .catalog-breadcrumbs__item {
  position: static;
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
}

#breadcrumbs.catalog-breadcrumbs li::after {
  content: none;
}

#breadcrumbs .catalog-breadcrumbs__link,
#breadcrumbs .catalog-breadcrumbs__label,
#breadcrumbs .catalog-breadcrumbs__current {
  display: block;
  min-width: 0;
  color: var(--muted, rgba(38, 39, 43, .68));
  font-size: 13px;
  font-weight: 400;
  line-height: 20px;
  white-space: nowrap;
}

#breadcrumbs .catalog-breadcrumbs__link {
  text-decoration: none;
  text-underline-offset: 3px;
  transition: color 160ms ease;
}

#breadcrumbs .catalog-breadcrumbs__link:hover {
  color: var(--primary, #ed1c24);
  text-decoration: underline;
}

#breadcrumbs .catalog-breadcrumbs__link:focus-visible {
  color: var(--primary, #ed1c24);
  border-radius: 2px;
  outline: 3px solid color-mix(in oklch, var(--primary, #ed1c24) 28%, transparent);
  outline-offset: 3px;
}

#breadcrumbs .catalog-breadcrumbs__separator {
  position: static;
  display: flex;
  flex: 0 0 16px;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 20px;
  margin: 0;
  padding: 0;
  color: color-mix(in oklch, var(--muted, #777980) 55%, transparent);
}

#breadcrumbs .catalog-breadcrumbs__separator::after {
  content: none;
}

#breadcrumbs .catalog-breadcrumbs__separator svg {
  width: 12px;
  height: 12px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.75;
}

#breadcrumbs .catalog-breadcrumbs__item--current {
  flex: 1 1 auto;
}

#breadcrumbs .catalog-breadcrumbs__current {
  overflow: hidden;
  color: var(--heading, #101114);
  font-weight: 500;
  text-overflow: ellipsis;
}

@media (max-width: 639px) {
  #breadcrumbs.catalog-breadcrumbs {
    padding: 12px 0;
  }

  #breadcrumbs .catalog-breadcrumbs__list {
    min-height: 24px;
  }

  #breadcrumbs .catalog-breadcrumbs__item,
  #breadcrumbs .catalog-breadcrumbs__separator {
    display: none;
  }

  #breadcrumbs .catalog-breadcrumbs__separator:nth-last-child(2),
  #breadcrumbs .catalog-breadcrumbs__item:nth-last-child(3) {
    display: flex;
  }

  #breadcrumbs .catalog-breadcrumbs__separator:nth-last-child(2) {
    order: -1;
    margin: 0;
    padding: 0;
    transform: rotate(180deg);
  }

  #breadcrumbs .catalog-breadcrumbs__separator:nth-last-child(2)::after {
    content: none;
  }

  #breadcrumbs .catalog-breadcrumbs__item:nth-last-child(3) {
    flex: 1 1 auto;
    overflow: hidden;
  }

  #breadcrumbs .catalog-breadcrumbs__item:nth-last-child(3) .catalog-breadcrumbs__link,
  #breadcrumbs .catalog-breadcrumbs__item:nth-last-child(3) .catalog-breadcrumbs__label {
    overflow: hidden;
    color: var(--text, #26272b);
    font-size: 14px;
    font-weight: 500;
    text-overflow: ellipsis;
  }
}

/* =========================================
   Product Detail Page Bridge
   I3Commerce uses .product-layout-1 with Tailwind
   Tonerink uses .product-detail grid
   ========================================= */

/* Main layout: two-column grid like tonerink's .product-detail */
.product-layout-1 {
  font-family: 'Rubik', sans-serif;
}

.product-layout-1 #product--view {
  padding-bottom: 2rem;
}

.product-layout-1 .product--main {
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: 32px;
}

/* Media / Gallery panel: white background like tonerink's .detail-media */
.product-layout-1 .product--main-media {
  position: relative;
}

.product-layout-1 .media--wrapper {
  background: #fff;
  border-radius: var(--radius, 6px);
  padding: 1rem;
}

.product-layout-1 .swiper--main {
  background: #fff;
  border-radius: var(--radius, 6px);
}

.product-layout-1 .swiper--main img {
  width: 100%;
  max-height: 500px;
  object-fit: contain;
}

.product-layout-1 .swiper--thumbs {
  height: auto !important;
}

.product-layout-1 .swiper--thumbs .swiper-slide {
  background: #fff;
  border: 1px solid var(--line, #313136) !important;
  border-radius: 4px;
  overflow: hidden;
}

.product-layout-1 .swiper--thumbs .swiper-slide-thumb-active {
  border-color: var(--primary, #ed1c24) !important;
}

.product-layout-1 .swiper--thumbs img {
  object-fit: contain;
  padding: 4px;
}

/* Swiper navigation arrows */
.product-layout-1 .button-next,
.product-layout-1 .button-prev {
  color: var(--text, #d5d5d8);
}

/* Info panel: like tonerink's .detail-copy */
.product-layout-1 .info--wrapper {
  padding: 26px !important;
  border: 1px solid var(--line, #313136);
  border-radius: var(--radius, 6px);
}

/* Manufacturer */
.product-layout-1 .manufacturer span {
  color: var(--red, #f05564);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
}

/* Product title */
.product-layout-1 .title h1 {
  color: var(--heading, #f6f6f7);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 700;
  line-height: 1.2;
}

/* Price: red, large, like tonerink's .detail-price */
.product-layout-1 .price--final .total-price {
  color: var(--red, #f05564) !important;
  font-size: 2rem !important;
  font-weight: 700 !important;
}

.product-layout-1 .price--initial {
  display: flex;
  align-items: center;
}

.product-layout-1 .price--initial .discount__price-inner {
  color: var(--muted, rgba(213,213,216,.72));
  font-size: 1.1rem;
}

/* Short description */
.product-layout-1 .short--description {
  color: var(--muted, rgba(213,213,216,.72));
  font-size: 0.95rem;
  line-height: 1.5;
}

.product-layout-1 .short--description a#read--more {
  color: var(--blue, #335599) !important;
  font-weight: 500;
}

/* SKU */
.product-layout-1 .sku {
  color: var(--muted, rgba(213,213,216,.72));
  font-size: 0.85rem;
}

.product-layout-1 .sku span {
  color: var(--text, #d5d5d8);
}

/* Availability */
.product-layout-1 .availability {
  font-size: 0.9rem;
  color: var(--text, #d5d5d8);
}

/* Quantity selector: tonerink style */
.product-layout-1 .actions--quantity {
  height: auto !important;
}

.product-layout-1 .actions--quantity button {
  width: 44px;
  height: 44px;
  background: var(--panel-2, #313136) !important;
  color: var(--text, #d5d5d8) !important;
  border: 1px solid var(--line, #313136) !important;
  border-radius: var(--radius, 6px) !important;
  font-size: 1.25rem;
  cursor: pointer;
  transition: background 0.2s;
}

.product-layout-1 .actions--quantity button:hover {
  background: var(--field, #48484d) !important;
}

.product-layout-1 .qnt--input {
  width: 60px !important;
  height: 44px;
  background: var(--field, #48484d) !important;
  color: var(--text, #d5d5d8) !important;
  border: 1px solid var(--line, #313136) !important;
  border-radius: var(--radius, 6px) !important;
  text-align: center;
  font-size: 1rem;
  font-family: 'Rubik', sans-serif;
}

/* Add to cart button: primary red like tonerink */
.product-layout-1 .actions--add-cart {
  background: var(--primary, #ed1c24) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--radius, 6px) !important;
  padding: 14px 24px !important;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.9rem;
  transition: background 0.2s;
}

.product-layout-1 .actions--add-cart:hover {
  background: var(--primary-dark, #c81018) !important;
}

/* Wishlist button on product page: full-width outlined style */
.product-layout-1 .actions .product--wishlist-btn {
  width: 100% !important;
  height: auto !important;
  border-radius: var(--radius, 6px) !important;
  background: transparent;
  border: 1px solid var(--line, #313136) !important;
  color: var(--text, #d5d5d8);
  padding: 14px 24px;
  font-size: 0.9rem;
}

.product-layout-1 .actions .product--wishlist-btn:hover {
  background: var(--panel-2, #313136);
  border-color: var(--red, #f05564) !important;
  color: var(--red, #f05564);
}

.product-layout-1 .actions .product--wishlist-btn.added {
  background: var(--red, #f05564);
  border-color: var(--red, #f05564) !important;
  color: #fff;
}

.product-layout-1 .actions .product--wishlist-btn svg {
  width: 17px;
  height: 15px;
}

.product-layout-1 .actions .product--wishlist-btn:hover svg path,
.product-layout-1 .actions .product--wishlist-btn.added svg path {
  fill: currentColor;
}

/* Social share */
.product-layout-1 .social {
  color: var(--muted, rgba(213,213,216,.72));
  font-size: 0.85rem;
}

.product-layout-1 .social a {
  color: var(--text, #d5d5d8);
  transition: color 0.2s;
}

.product-layout-1 .social a:hover {
  color: var(--blue, #335599);
}

.product-layout-1 .social svg path {
  fill: var(--text, #d5d5d8);
}

.product-layout-1 .social a:hover svg path {
  fill: var(--blue, #335599);
}

/* =========================================
   Product Description Tabs Bridge
   ========================================= */

/* Tab bar: dark surface with underline indicators */
#product--description {
  background: var(--panel, #252529);
  border-color: var(--line, #313136) !important;
  padding: 2rem 1rem;
}

#product--description .nav-pills {
  border-color: var(--line, #313136) !important;
  gap: 0;
}

#product--description .nav-link {
  color: var(--muted, rgba(213,213,216,.72));
  font-family: 'Rubik', sans-serif;
  font-weight: 500;
  font-size: 0.95rem;
  border-bottom: 2px solid transparent !important;
  padding: 12px 20px !important;
  transition: color 0.2s, border-color 0.2s;
  background: transparent !important;
  border-radius: 0 !important;
}

#product--description .nav-link:hover {
  color: var(--text, #d5d5d8);
}

#product--description .nav-link.active {
  color: var(--heading, #f6f6f7) !important;
  border-bottom-color: var(--primary, #ed1c24) !important;
  background: transparent !important;
}

/* Tab content */
#product--description .tab-content {
  color: var(--text, #d5d5d8);
  font-size: 0.95rem;
  line-height: 1.7;
}

#product--description .wysiwyg--editor-wrapper {
  color: var(--text, #d5d5d8);
}

#product--description .wysiwyg--editor-wrapper h1,
#product--description .wysiwyg--editor-wrapper h2,
#product--description .wysiwyg--editor-wrapper h3 {
  color: var(--heading, #f6f6f7);
}

/* Specifications list */
#product--description #pills-specifications ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

#product--description #pills-specifications li {
  display: grid !important;
  grid-template-columns: 200px 1fr !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid var(--line, #313136);
  background: transparent !important;
}

#product--description #pills-specifications li:nth-child(odd) {
  background: var(--panel-2, #313136) !important;
}

#product--description #pills-specifications li span {
  color: var(--text, #d5d5d8);
  border-color: var(--line, #313136) !important;
}

#product--description #pills-specifications li span:first-child {
  color: var(--muted, rgba(213,213,216,.72));
  font-weight: 500;
}

/* =========================================
   Related/Upsell Products Section Bridge
   ========================================= */

#related--products,
#upsell--products {
  border-color: var(--line, #313136) !important;
}

#related--products .section--header h2,
#upsell--products .section--header h2 {
  color: var(--heading, #f6f6f7);
  font-family: 'Rubik', sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
}

/* Recently seen products */
#recently-seen--products {
  border-color: var(--line, #313136) !important;
}

/* =========================================
   Product Detail Responsive
   ========================================= */

@media (max-width: 768px) {
  .product-layout-1 .product--main {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  .product-layout-1 .info--wrapper {
    padding: 16px !important;
  }

  .product-layout-1 .title h1 {
    font-size: 1.5rem;
  }

  .product-layout-1 .price--final .total-price {
    font-size: 1.5rem !important;
  }

  #product--description #pills-specifications li {
    grid-template-columns: 1fr !important;
    gap: 4px;
  }
}

/* =========================================
   Cart Page Bridge
   ========================================= */

#cart--view {
  font-family: 'Rubik', sans-serif;
  border-color: var(--line, #313136) !important;
}

/* Cart content panel: dark surface instead of white */
#cart--view .cart--content {
  background: var(--panel, #252529) !important;
  border-radius: var(--radius, 6px);
  color: var(--text, #d5d5d8);
}

#cart--view .cart--content .section--header {
  border-color: var(--line, #313136) !important;
}

#cart--view .cart--content .section--header h1 span {
  color: var(--heading, #f6f6f7);
  font-weight: 700;
}

#cart--view .cart--content-list {
  border-color: var(--line, #313136) !important;
}

/* Cart item styling */
#cart--view .cart--content-list li {
  color: var(--text, #d5d5d8);
}

#cart--view .remove--all {
  color: var(--muted, rgba(213,213,216,.72));
}

#cart--view .remove--all:hover {
  color: var(--red, #f05564);
}

#cart--view #continue_shopping {
  background: transparent;
  border: 1px solid var(--line, #313136) !important;
  color: var(--text, #d5d5d8) !important;
  border-radius: var(--radius, 6px);
  font-weight: 500;
  transition: border-color 0.2s;
}

#cart--view #continue_shopping:hover {
  border-color: var(--text, #d5d5d8) !important;
}

/* Cart summary sidebar */
#cart--view .cart--summary {
  background: var(--panel, #252529) !important;
  border-radius: var(--radius, 6px);
  color: var(--text, #d5d5d8);
}

/* Cart buttons */
#cart--view .btn {
  background: var(--primary, #ed1c24);
  color: #fff;
  border: none;
  border-radius: var(--radius, 6px);
  font-weight: 600;
  font-family: 'Rubik', sans-serif;
  cursor: pointer;
  transition: background 0.2s;
}

#cart--view .btn:hover {
  background: var(--primary-dark, #c81018);
}

/* =========================================
   Checkout Page Bridge
   ========================================= */

.customer-checkout {
  font-family: 'Rubik', sans-serif;
  background: var(--page, #1e1e20);
  color: var(--text, #d5d5d8);
}

/* Step indicators */
.customer-checkout .steps .step-item .step-marker {
  background: var(--panel-2, #313136);
  border-color: var(--line, #313136);
  color: var(--muted, rgba(213,213,216,.72));
}

.customer-checkout .steps .step-item.is-active .step-marker,
.customer-checkout .steps .step-item.is-success .step-marker {
  background: var(--primary, #ed1c24);
  border-color: var(--primary, #ed1c24);
  color: #fff;
}

.customer-checkout .step-title {
  color: var(--text, #d5d5d8);
  font-family: 'Rubik', sans-serif;
}

/* Checkout content blocks */
.customer-checkout .checkout-content {
  background: var(--panel, #252529);
  border-radius: var(--radius, 6px);
  color: var(--text, #d5d5d8);
}

.customer-checkout .checkout-content-block {
  color: var(--text, #d5d5d8);
}

.customer-checkout .checkout-content__titles h2 {
  color: var(--heading, #f6f6f7);
  font-family: 'Rubik', sans-serif;
}

/* Checkout form fields */
.customer-checkout input,
.customer-checkout select,
.customer-checkout textarea {
  background: var(--field, #48484d) !important;
  color: var(--text, #d5d5d8) !important;
  border: 1px solid var(--line, #313136) !important;
  border-radius: var(--radius, 6px) !important;
  font-family: 'Rubik', sans-serif;
}

.customer-checkout input::placeholder,
.customer-checkout textarea::placeholder {
  color: var(--muted, rgba(213,213,216,.72)) !important;
}

/* Checkout action buttons */
.customer-checkout .i3-button,
.customer-checkout .next-btn {
  background: var(--primary, #ed1c24) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--radius, 6px) !important;
  font-weight: 600;
  font-family: 'Rubik', sans-serif;
  padding: 12px 24px;
  cursor: pointer;
  transition: background 0.2s;
}

.customer-checkout .i3-button:hover,
.customer-checkout .next-btn:hover {
  background: var(--primary-dark, #c81018) !important;
}

.customer-checkout #back-step-btn {
  background: var(--panel-2, #313136) !important;
  color: var(--text, #d5d5d8) !important;
}

.customer-checkout #back-step-btn:hover {
  background: var(--field, #48484d) !important;
}

/* Bulma's legacy info palette is still used by checkout notices. Preserve
   the semantic meaning, but source the color from Toner Ink instead. */
.customer-checkout .has-text-info {
  color: var(--info, #058fff) !important;
}

.customer-checkout .notification.is-info,
.customer-checkout .notification.is-info.is-light {
  border: 1px solid color-mix(in oklch, var(--info, #058fff) 35%, var(--line, #313136));
  color: var(--text, #d5d5d8) !important;
  background: color-mix(in oklch, var(--info, #058fff) 12%, var(--panel, #252529)) !important;
}

/* Checkout summary sidebar */
.customer-checkout .summary-content .sidebar {
  background: var(--panel, #252529);
  border-radius: var(--radius, 6px);
  color: var(--text, #d5d5d8);
}

/* Checkout header override */
.header-nav {
  background: var(--panel, #252529);
  border-bottom: 1px solid var(--line, #313136);
  font-family: 'Rubik', sans-serif;
}

.header-nav .upper-header__link a,
.header-nav .upper-header__link-contact,
.header-nav .phone-link {
  color: var(--text, #d5d5d8);
}

.header-nav .upper-header__link-lang {
  color: var(--muted, rgba(213,213,216,.72));
}

.header-nav .logo-wrapper img {
  max-height: 40px;
}

/* =========================================
   Customer Auth Bridge
   ========================================= */

#customer--login,
#customer--register,
#customer--forgot-password,
#customer--reset-password {
  font-family: 'Rubik', sans-serif;
}

/* Auth header */
#customer--login .section--header h1 span,
#customer--register .section--header h1 span,
#customer--forgot-password .section--header h1 span {
  color: var(--heading, #f6f6f7);
  font-weight: 700;
}

#customer--login .section--header p,
#customer--register .section--header p,
#customer--forgot-password .section--header p {
  color: var(--muted, rgba(213,213,216,.72));
  border-color: var(--line, #313136) !important;
}

/* Auth form panel: dark instead of white */
#customer--login .bg-white,
#customer--register .bg-white,
#customer--forgot-password .bg-white,
#customer--reset-password .bg-white {
  background: var(--panel, #252529) !important;
  border-radius: var(--radius, 6px);
}

/* Auth form fields */
#customer--login input,
#customer--register input,
#customer--forgot-password input,
#customer--reset-password input {
  background: var(--field, #48484d) !important;
  color: var(--text, #d5d5d8) !important;
  border: 1px solid var(--line, #313136) !important;
  border-radius: var(--radius, 6px) !important;
  font-family: 'Rubik', sans-serif;
}

#customer--login input::placeholder,
#customer--register input::placeholder,
#customer--forgot-password input::placeholder {
  color: var(--muted, rgba(213,213,216,.72)) !important;
}

/* Auth submit button */
#customer--login .btn,
#customer--register .btn,
#customer--forgot-password .btn,
#customer--reset-password .btn {
  background: var(--primary, #ed1c24) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--radius, 6px) !important;
  font-weight: 600;
  font-family: 'Rubik', sans-serif;
  transition: background 0.2s;
}

#customer--login .btn:hover,
#customer--register .btn:hover,
#customer--forgot-password .btn:hover,
#customer--reset-password .btn:hover {
  background: var(--primary-dark, #c81018) !important;
}

/* Auth links */
#customer--login a,
#customer--register a,
#customer--forgot-password a {
  color: var(--blue, #335599);
}

#customer--login p,
#customer--register p,
#customer--forgot-password p {
  color: var(--text, #d5d5d8) !important;
}

/* Social login buttons */
.socials--login a {
  background: var(--panel-2, #313136) !important;
  border-color: var(--line, #313136) !important;
  border-radius: var(--radius, 6px) !important;
  color: var(--text, #d5d5d8);
  transition: background 0.2s;
}

.socials--login a:hover {
  background: var(--field, #48484d) !important;
}

.socials--login span {
  color: var(--text, #d5d5d8) !important;
}

/* Validation errors */
.text-red-900,
.text-red-500 {
  color: var(--red, #f05564) !important;
}

.border-red-500 {
  border-color: var(--red, #f05564) !important;
}

/* =========================================
   Customer Account Bridge
   ========================================= */

/* Account sidebar */
aside[aria-label="Sidebar"] {
  background: var(--panel, #252529) !important;
  border-radius: var(--radius, 6px);
  overflow: hidden;
}

aside[aria-label="Sidebar"] > div > div:first-child {
  color: var(--heading, #f6f6f7) !important;
  border-color: var(--line, #313136) !important;
}

aside[aria-label="Sidebar"] ul li a {
  color: var(--text, #d5d5d8) !important;
  font-family: 'Rubik', sans-serif;
}

aside[aria-label="Sidebar"] ul li a:hover {
  background: var(--panel-2, #313136) !important;
  color: var(--heading, #f6f6f7) !important;
}

aside[aria-label="Sidebar"] ul li.active a {
  background: var(--primary, #ed1c24) !important;
  color: #fff !important;
}

/* Account content panels */
#customer--profile .bg-white,
#customer--orders .bg-white,
#customer--addresses .bg-white,
#customer--invoices .bg-white,
#customer--wishlist .bg-white,
#customer--newsletter .bg-white {
  background: var(--panel, #252529) !important;
  color: var(--text, #d5d5d8);
  border-radius: var(--radius, 6px);
}

/* Account form fields */
#customer--profile input,
#customer--profile select,
#customer--addresses input,
#customer--addresses select,
#customer--invoices input,
#customer--invoices select {
  background: var(--field, #48484d) !important;
  color: var(--text, #d5d5d8) !important;
  border: 1px solid var(--line, #313136) !important;
  border-radius: var(--radius, 6px) !important;
  font-family: 'Rubik', sans-serif;
}

/* Account section headers */
#customer--profile .section--header h1,
#customer--orders .section--header h1,
#customer--addresses .section--header h1,
#customer--invoices .section--header h1 {
  color: var(--heading, #f6f6f7);
}

/* Account buttons */
#customer--profile .btn,
#customer--addresses .btn,
#customer--invoices .btn {
  background: var(--primary, #ed1c24) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--radius, 6px) !important;
  font-weight: 600;
  font-family: 'Rubik', sans-serif;
}

#customer--profile .btn:hover,
#customer--addresses .btn:hover,
#customer--invoices .btn:hover {
  background: var(--primary-dark, #c81018) !important;
}

/* Order history table */
#customer--orders table {
  width: 100%;
  border-collapse: collapse;
}

#customer--orders th {
  color: var(--muted, rgba(213,213,216,.72));
  border-bottom: 1px solid var(--line, #313136);
  font-weight: 500;
  text-align: left;
  padding: 12px 16px;
}

#customer--orders td {
  color: var(--text, #d5d5d8);
  border-bottom: 1px solid var(--line, #313136);
  padding: 12px 16px;
}

#customer--orders tr:hover td {
  background: var(--panel-2, #313136);
}

/* =========================================
   Minicart Bridge
   ========================================= */

#minicart {
  font-family: 'Rubik', sans-serif;
}

/* =========================================
   Notifications Bridge
   ========================================= */

.toast-top-right {
  font-family: 'Rubik', sans-serif;
}

/* =========================================
   Homepage Bridge
   ========================================= */

/* Homepage static blocks: ensure dark theme */
.static-block--wrapper {
  color: var(--text, #d5d5d8);
}

.static-block--wrapper h1,
.static-block--wrapper h2,
.static-block--wrapper h3 {
  color: var(--heading, #f6f6f7);
  font-family: 'Rubik', sans-serif;
}

/* Swiper products carousel */
.swiper--products .swiper-button-next,
.swiper--products .swiper-button-prev {
  color: var(--text, #d5d5d8);
}

/* =========================================
   Tailwind Utility Overrides (dark theme)
   ========================================= */

/* Override common Tailwind white backgrounds */
.bg-white {
  background-color: var(--panel, #252529) !important;
}

.bg-slate-50 {
  background-color: var(--panel-2, #313136) !important;
}

.text-black {
  color: var(--text, #d5d5d8) !important;
}

.text-gray-800 {
  color: var(--muted, rgba(213,213,216,.72)) !important;
}

.border-slate-200,
.border-slate-100,
.border-gray-100 {
  border-color: var(--line, #313136) !important;
}

/* Fix odd/even spec rows with Tailwind */
.odd\:bg-white:nth-child(odd) {
  background-color: var(--panel, #252529) !important;
}

.even\:bg-slate-50:nth-child(even) {
  background-color: var(--panel-2, #313136) !important;
}

/* =========================================
   Homepage Product Card (BEM) Bridge
   Maps .product-card__* classes from
   components/product-card.blade.php to
   Phase 1 tonerink visual identity.
   ========================================= */

/* Card container */
.product-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius, 6px);
  background: var(--panel, #252529);
  transition: box-shadow 0.2s;
}

.product-card:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
}

/* Media area: white background, centered image */
.product-card__media {
  position: relative;
  height: 280px;
  display: grid;
  place-items: center;
  background: #fff;
  overflow: hidden;
}

.product-card__media a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.product-card__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 1rem;
}

/* Product badges: stacked top-left so they never compete with the wishlist control */
.product-card__badges {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  pointer-events: none;
}

.product-card__badge {
  position: static;
  background: var(--red, #f05564);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 3px;
  white-space: nowrap;
}

.product-card__badge--new {
  background: var(--info, #058fff);
}

/* Wishlist button: top-right circle */
.product-card__wishlist {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--line, #313136);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  z-index: 4;
  font-size: 1rem;
  color: var(--muted, #888);
}

.product-card__wishlist:focus-visible {
  outline: 3px solid var(--info, #058fff);
  outline-offset: 3px;
}

.product-card__wishlist:hover,
.product-card__wishlist.added {
  background: var(--red, #f05564);
  border-color: var(--red, #f05564);
  color: #fff;
}

.product-card__wishlist i {
  font-size: 16px;
  line-height: 1;
}

@media (pointer: coarse) {
  .product-card__wishlist {
    width: 44px;
    height: 44px;
  }
}

/* Body area: dark panel */
.product-card__body {
  position: relative;
  min-height: 137px;
  padding: 12px 16px 14px;
  background: var(--panel, #252529);
}

/* Category / manufacturer label */
.product-card__category {
  display: block;
  color: var(--red, #f05564);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 4px;
}

/* Product title link */
.product-card__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: var(--blue, #335599);
  font-size: 0.9rem;
  font-weight: 500;
  text-decoration: none;
  line-height: 1.3;
  margin-bottom: 6px;
}

.product-card__title:hover {
  text-decoration: underline;
}

/* Availability text */
.product-card__availability {
  font-size: 0.8rem;
  margin-bottom: 6px;
}

/* Price block */
.product-card__price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 4px;
}

.product-card__price-current {
  color: var(--red, #f05564);
  font-size: 1.25rem;
  font-weight: 700;
}

.product-card__price-old {
  color: var(--muted, rgba(213,213,216,.72));
  font-size: 0.85rem;
  text-decoration: line-through;
}

/* Add-to-cart button: bottom-right circle */
.product-card__cart-btn {
  position: absolute;
  bottom: 14px;
  right: 16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--red, #f05564);
  color: #fff;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s;
  text-decoration: none;
  font-size: 1rem;
}

.product-card__cart-btn:hover {
  background: var(--primary-dark);
}

.product-card__cart-btn i {
  font-size: 16px;
  line-height: 1;
}

/* =========================================
   Homepage Products Grid Override
   Ensures .products-grid from shop.css works
   with I3Commerce product cards
   ========================================= */

#trending-products .products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

@media (max-width: 1050px) {
  #trending-products .products-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .product-card__media {
    height: 220px;
  }
}

@media (max-width: 760px) {
  #trending-products .products-grid {
    grid-template-columns: 1fr;
  }

  .product-card__media {
    height: 240px;
  }
}
