﻿/* ─── Shop Archive — Dark Theme ──────────────────────────────────────────── */
.tb-shop-header { margin-bottom: var(--tb-sp-5); }
.term-description { color: var(--tb-text-muted); max-width: 760px; }

.tb-shop-hero {
  margin-bottom: var(--tb-sp-6);
  padding: var(--tb-sp-6);
  border: 1px solid var(--tb-border);
  border-radius: var(--tb-r-lg);
  background:
    radial-gradient(circle at 85% 10%, rgba(140,230,25,.1) 0%, transparent 45%),
    linear-gradient(145deg, #141414 0%, #0f0f0f 100%);
}
.tb-shop-hero__inner {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: var(--tb-sp-5);
  align-items: end;
}
.tb-shop-title { margin-bottom: var(--tb-sp-2); }
.tb-shop-hero__meta {
  display: grid;
  gap: var(--tb-sp-2);
  justify-items: end;
}
.tb-shop-hero__meta span {
  display: inline-flex;
  padding: 7px 12px;
  border-radius: var(--tb-r-pill);
  border: 1px solid var(--tb-border);
  color: var(--tb-text-muted);
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.tb-shop-chips {
  margin-top: var(--tb-sp-5);
  display: flex;
  flex-wrap: wrap;
  gap: var(--tb-sp-2);
}
.tb-shop-chip {
  display: inline-flex;
  padding: 8px 14px;
  border-radius: var(--tb-r-pill);
  border: 1px solid var(--tb-border);
  color: var(--tb-text-muted);
  font-size: .82rem;
  transition: border-color var(--tb-dur-fast), color var(--tb-dur-fast), background var(--tb-dur-fast);
}
.tb-shop-chip:hover {
  border-color: var(--tb-accent);
  color: var(--tb-accent);
  background: rgba(140,230,25,.08);
}

.tb-shop-filters-toggle {
  display: none;
  margin-bottom: var(--tb-sp-4);
  padding: 10px 14px;
  border: 1px solid var(--tb-border);
  border-radius: var(--tb-r-md);
  color: var(--tb-text-strong);
  background: var(--tb-surface);
  font-weight: 700;
  font-size: .84rem;
}

.tb-shop-filters-drawer__header {
  display: none;
}

@media (min-width: 861px) {
  .tb-shop-filters-drawer {
    display: block;
    position: static;
    background: transparent;
  }
  .tb-shop-filters-drawer[hidden] {
    display: block;
  }
}

.tb-shop-filters-close {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--tb-border);
  color: var(--tb-text-muted);
}

/* Filter bar */
.tb-shop-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--tb-sp-3);
  margin-bottom: var(--tb-sp-4);
  padding: var(--tb-sp-4);
  border: 1px solid var(--tb-border);
  border-radius: var(--tb-r-lg);
  background: var(--tb-surface);
}
.tb-shop-filters__group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tb-shop-filters__group label {
  font-size: .75rem;
  color: var(--tb-text-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.tb-shop-filters__group select {
  width: 100%;
  padding: 9px 14px;
  border: 1.5px solid var(--tb-border);
  border-radius: var(--tb-r-md);
  font-size: .86rem;
  color: var(--tb-text);
  background: var(--tb-surface-2);
}
.tb-shop-filters__actions {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: var(--tb-sp-2);
}

/* Sort/filter bar */
.tb-shop-bar {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: var(--tb-sp-3);
  padding: var(--tb-sp-3) var(--tb-sp-4);
  background: var(--tb-surface); border: 1px solid var(--tb-border);
  border-radius: var(--tb-r-md); margin-bottom: var(--tb-sp-6);
}
.woocommerce-result-count { font-size: .85rem; color: var(--tb-text-muted); margin: 0; }
.woocommerce-ordering select {
  padding: 8px 34px 8px 14px;
  border: 1.5px solid var(--tb-border); border-radius: var(--tb-r-md);
  font-size: .875rem; background: var(--tb-surface-2); color: var(--tb-text);
  appearance: none; -webkit-appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23A0A0A0' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center;
  transition: border-color var(--tb-dur);
}
.woocommerce-ordering select:focus { outline: none; border-color: var(--tb-accent); }
.woocommerce-ordering select option { background: var(--tb-surface); }

/* Product grid */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: var(--tb-sp-4) !important;
  margin: 0 !important; padding: 0 !important; list-style: none !important;
  justify-items: stretch;
  align-items: stretch;
}

/* Override legacy Woo float widths so cards can fill grid columns correctly */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products li.tb-product-card,
.woocommerce-page ul.products li.tb-product-card {
  float: none !important;
  clear: none !important;
  width: auto !important;
  margin: 0 !important;
  max-width: none !important;
}
.tb-products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--tb-sp-4);
}
@media (max-width: 1100px) { .woocommerce ul.products { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 780px)  { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 400px)  { .woocommerce ul.products { grid-template-columns: 1fr !important; } }
@media (max-width: 1100px) { .tb-products-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 780px)  { .tb-products-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 400px)  { .tb-products-grid { grid-template-columns: 1fr; } }

@media (max-width: 860px) {
  .tb-shop-hero { padding: var(--tb-sp-5); }
  .tb-shop-hero__inner { grid-template-columns: 1fr; }
  .tb-shop-hero__meta { justify-items: start; }
  .tb-shop-filters-toggle { display: inline-flex; align-items: center; }
  .tb-shop-filters-drawer {
    position: fixed;
    inset: 0;
    z-index: 120;
    background: rgba(0,0,0,.64);
    padding: 0;
  }
  .tb-shop-filters-drawer .tb-shop-filters {
    position: absolute;
    right: 0;
    top: 0;
    width: min(92vw, 380px);
    height: 100%;
    overflow-y: auto;
    border-radius: 0;
    border: 0;
    padding: var(--tb-sp-4);
    grid-template-columns: 1fr;
  }
  .tb-shop-filters-drawer__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--tb-surface);
    padding: var(--tb-sp-4);
    border-bottom: 1px solid var(--tb-border);
  }
  .tb-shop-filters-drawer__header h2 {
    margin: 0;
    font-size: 1rem;
  }
  .tb-shop-filters__actions { justify-content: flex-start; }
}

/* ─── Product Card ───────────────────────────────────────────────────────── */
.tb-product-card {
  background: var(--tb-surface);
  border: 1px solid var(--tb-border);
  border-radius: var(--tb-r-lg); overflow: hidden; position: relative;
  display: flex; flex-direction: column;
  transition: transform var(--tb-dur) var(--tb-ease),
              border-color var(--tb-dur),
              box-shadow var(--tb-dur);
}
.tb-product-card:hover {
  transform: translateY(-5px);
  border-color: var(--tb-accent);
  box-shadow: var(--tb-glow-sm), var(--tb-shadow-md);
}
.tb-product-card__link { display: flex; flex-direction: column; flex: 1; }

/* Image */
.tb-product-card__image-wrap {
  position: relative; overflow: hidden;
  aspect-ratio: 1/1; background: var(--tb-surface-2);
}
.tb-product-card__image {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--tb-dur-slow) var(--tb-ease);
}
.tb-product-card__image--hover {
  position: absolute; inset: 0; object-fit: cover;
  width: 100%; height: 100%;
  opacity: 0; transition: opacity var(--tb-dur);
}
.tb-product-card:hover .tb-product-card__image:first-child { transform: scale(1.05); }
.tb-product-card:hover .tb-product-card__image--hover { opacity: 1; }

/* Badges */
.tb-product-card__badges {
  position: absolute; top: var(--tb-sp-3); left: var(--tb-sp-3);
  display: flex; flex-direction: column; gap: 4px; z-index: 1;
}

/* Info */
.tb-product-card__info { padding: var(--tb-sp-3) var(--tb-sp-4) var(--tb-sp-2); flex: 1; }
.tb-product-card__cat {
  font-size: .7rem; color: var(--tb-accent); text-transform: uppercase;
  letter-spacing: .08em; margin-bottom: 4px; font-weight: 600;
}
.tb-product-card__name {
  font-size: .9rem; font-weight: 600; line-height: 1.35; color: var(--tb-text-strong);
  margin-bottom: var(--tb-sp-2);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.tb-product-card__price .price { display: flex; align-items: baseline; gap: var(--tb-sp-2); flex-wrap: wrap; }
.tb-product-card__price ins { text-decoration: none; font-weight: 700; color: var(--tb-text-strong); }
.tb-product-card__price del { color: var(--tb-text-dim); font-size: .82rem; }
.tb-product-card__price .amount { font-size: .95rem; }
.tb-product-card__stock {
  margin-top: var(--tb-sp-2);
  font-size: .76rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 700;
}
.tb-product-card__stock.is-in { color: var(--tb-accent); }
.tb-product-card__stock.is-out { color: var(--tb-danger); }

/* Actions */
.tb-product-card__actions { padding: var(--tb-sp-3) var(--tb-sp-4) var(--tb-sp-4); }

/* ATC button override */
.tb-product-card a.add_to_cart_button,
.tb-product-card a.button {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%; padding: 10px 16px;
  background: var(--tb-accent); color: #0A0A0A;
  border: none; border-radius: var(--tb-r-pill);
  font-size: .82rem; font-weight: 700; cursor: pointer;
  transition: background var(--tb-dur), box-shadow var(--tb-dur);
  box-shadow: var(--tb-glow-sm);
  text-decoration: none;
}
.tb-product-card a.add_to_cart_button:hover,
.tb-product-card a.button:hover { background: var(--tb-accent-hover); box-shadow: var(--tb-glow-md); }
.tb-product-card a.added { background: #22c55e; color: #fff; }
.tb-product-card a.loading { opacity: .6; pointer-events: none; }
.tb-product-card__out-of-stock { display: block; text-align: center; font-size: .82rem; color: var(--tb-text-dim); padding: var(--tb-sp-2); }

/* Pagination */
.tb-shop-pagination { margin-top: var(--tb-sp-7); }
.woocommerce-pagination ul {
  display: flex; align-items: center; justify-content: center; gap: var(--tb-sp-2);
  list-style: none; margin: 0; padding: 0;
}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  border: 1.5px solid var(--tb-border); border-radius: var(--tb-r-md);
  font-size: .9rem; font-weight: 500; color: var(--tb-text-muted);
  transition: border-color var(--tb-dur-fast), color var(--tb-dur-fast), background var(--tb-dur-fast);
  background: var(--tb-surface);
}
.woocommerce-pagination ul li a:hover { border-color: var(--tb-accent); color: var(--tb-accent); }
.woocommerce-pagination ul li span.current { background: var(--tb-accent); border-color: var(--tb-accent); color: #0A0A0A; font-weight: 800; }

/* No products found */
.woocommerce-no-products-found, .woocommerce-info {
  padding: var(--tb-sp-7) var(--tb-sp-5); text-align: center; color: var(--tb-text-muted);
  background: var(--tb-surface); border: 1px solid var(--tb-border); border-radius: var(--tb-r-lg);
}

.tb-shop-empty .woocommerce-info {
  margin: 0;
}

.tb-shop-empty {
  border: 1px solid var(--tb-border);
  border-radius: var(--tb-r-lg);
  background: linear-gradient(140deg, #151515 0%, #111 100%);
  padding: var(--tb-sp-5);
}

.tb-shop-empty__actions {
  margin-top: var(--tb-sp-4);
  display: flex;
  gap: var(--tb-sp-3);
  justify-content: center;
  flex-wrap: wrap;
}