/**
 * WooCommerce - Modular Gunworks retail layout
 * Shop, category, product pages styled like old site (Ammo Depot style)
 */

/* ===== SHOP/CATEGORY ARCHIVE ===== */
.mgw-shop-wrapper {
  max-width: 1400px;
  margin: 0 auto;
  padding: 3rem 2rem;
}

.mgw-shop-page-header {
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #e8e8e8;
  text-align: center;
}

.mgw-shop-page-title {
  margin: 0 0 0.5rem 0;
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--color-bg-dark);
}

.mgw-shop-page-desc {
  margin: 0;
  color: #666;
  font-size: 1rem;
  line-height: 1.5;
}

main.mgw-shop-main {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  margin: 0;
  padding: 0;
}

/* Sidebar - filters, no clipping (overflow on inner wrapper) */
.mgw-shop-sidebar {
  flex: 0 0 280px;
  position: sticky;
  top: 160px;
  height: fit-content;
  max-height: calc(100vh - 180px);
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 0;
  overflow: visible;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
}

.mgw-filter-scroll-wrapper {
  overflow-y: auto;
  flex: 1;
  min-height: 0;
  padding-bottom: 0.5rem;
}

.mgw-filter-scroll-wrapper::-webkit-scrollbar {
  width: 8px;
}

.mgw-filter-scroll-wrapper::-webkit-scrollbar-track {
  background: #f5f5f5;
  border-radius: 0 0 8px 0;
}

/* Filter header */
.mgw-shop-sidebar .filter-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.2rem;
  border-bottom: 1px solid #e0e0e0;
  background: #f9f9f9;
  flex-shrink: 0;
}

.mgw-shop-sidebar .filter-header h3 {
  font-size: 0.95rem;
  margin: 0;
  font-weight: 700;
  text-transform: uppercase;
  color: #333;
}

/* Clear All - red CTA like reference site */
.mgw-shop-sidebar .filter-active-count {
  font-weight: 600;
  opacity: 0.9;
}

.mgw-shop-sidebar .clear-filters-link,
.mgw-shop-sidebar #clear-filters {
  padding: 0.3rem 0.6rem;
  background: transparent;
  color: var(--color-primary);
  border: none;
  cursor: pointer;
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: all 0.2s;
  text-decoration: none;
}

.mgw-shop-sidebar .clear-filters-red,
.mgw-shop-sidebar .clear-filters-link:hover,
.mgw-shop-sidebar #clear-filters:hover {
  color: #c62828 !important;
  opacity: 1;
}

/* Show Only In Stock - top block, always visible */
.mgw-shop-filters .filter-stock-top {
  padding: 1rem 1.2rem;
  border-bottom: 1px solid #e0e0e0;
  background: #fafafa;
}

.mgw-shop-filters .filter-stock-top .filter-label {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-weight: 600;
  color: #333;
  gap: 0.6rem;
}

.mgw-shop-filters .filter-stock-top input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: var(--color-primary);
}

.mgw-shop-sidebar .widget {
  padding: 1rem 1.2rem;
  border-bottom: 1px solid #e0e0e0;
}

.mgw-shop-sidebar .widget_title {
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
  color: #333;
}

/* Filter toggle */
.mgw-shop-filters .filter-toggle {
  width: 100%;
  padding: 1rem 1.2rem;
  background: #fff !important;
  color: #333 !important;
  border: none;
  border-bottom: 1px solid #e0e0e0;
  border-radius: 0;
  text-align: left;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 700;
  font-size: 0.95rem;
  transition: background 0.2s;
  box-shadow: none;
}

.mgw-shop-filters .filter-toggle:hover {
  background: #f5f5f5 !important;
  color: #333 !important;
}

.mgw-shop-filters .filter-toggle i {
  font-size: 0.8rem;
  transition: transform 0.3s;
  color: #333;
}

.mgw-shop-filters .filter-toggle.active i {
  transform: rotate(180deg);
  color: #333;
}

/* Filter content */
.mgw-shop-filters .filter-content {
  display: none;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid #e0e0e0;
}

.mgw-shop-filters .mgw-filter-form,
.mgw-shop-filters .filter-stock-top,
.mgw-shop-filters .filter-toggle,
.mgw-shop-filters input,
.mgw-shop-filters select,
.mgw-shop-filters .filter-option {
  box-sizing: border-box;
}

.mgw-shop-filters input,
.mgw-shop-filters select {
  max-width: 100%;
}

.mgw-shop-filters .filter-content.active {
  display: block;
}

/* Search input - matches original .filter-search */
.mgw-shop-filters .filter-search-input,
.mgw-shop-filters .filter-search,
.mgw-shop-filters .filter-search-within {
  width: 100%;
  padding: 0.6rem;
  margin-bottom: 0.8rem;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 0.85rem;
}

.mgw-shop-filters .filter-search-input:focus,
.mgw-shop-filters .filter-search:focus,
.mgw-shop-filters .filter-search-within:focus {
  outline: none;
  border-color: var(--color-primary);
}

.mgw-shop-filters .filter-search-within {
  margin-bottom: 0.8rem;
}

/* Price - extra right padding so $999 input isn't cut off by scrollbar */
.mgw-shop-filters .price-filter-inputs {
  display: flex;
  gap: 0.4rem;
}

.mgw-shop-filters .price-filter-inputs input,
.mgw-shop-filters #price-min,
.mgw-shop-filters #price-max {
  flex: 1;
  min-width: 0;
  padding: 0.6rem;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 0.85rem;
  box-sizing: border-box;
}

.mgw-shop-filters #filter-price.filter-content {
  padding-right: 1rem;
}

.mgw-shop-filters .price-filter-inputs input:focus,
.mgw-shop-filters #price-min:focus,
.mgw-shop-filters #price-max:focus {
  outline: none;
  border-color: var(--color-primary);
}

/* Filter checklist */
.mgw-shop-filters .filter-checklist {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  max-height: 250px;
  overflow-y: auto;
}

/* Filter options - matches original .filter-label for checkboxes */
.mgw-shop-filters .filter-option {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-weight: 500;
  color: #333;
  gap: 0.6rem;
}

.mgw-shop-filters .filter-option input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: var(--color-primary);
}

.mgw-shop-filters .filter-option.current {
  color: var(--color-primary);
  font-weight: 600;
}

.mgw-shop-filters .filter-empty {
  display: block;
  color: #999;
  font-size: 0.85rem;
  font-style: italic;
}

/* Sort select - matches original #sort-filter */
.mgw-shop-filters .filter-sort-select {
  width: 100%;
  padding: 0.6rem;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 0.85rem;
  background: #fff;
}

.mgw-shop-filters .filter-sort-select:focus {
  outline: none;
  border-color: var(--color-primary);
}

/* Apply Filters button - primary CTA (WP form needs submit; original uses JS) */
.mgw-shop-filters .filter-apply-btn {
  width: calc(100% - 2.4rem);
  margin: 1rem 1.2rem;
  padding: 0.85rem 1rem;
  background: var(--color-primary);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-weight: 700;
  font-size: 0.95rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  transition: background 0.2s;
}

.mgw-shop-filters .filter-apply-btn:hover {
  background: #8b1a1a;
  color: #fff;
}

.mgw-shop-filters .filter-widgets-additional {
  border-top: 1px solid #e0e0e0;
}

.mgw-shop-content {
  flex: 1;
  min-width: 0;
}

/* Content area - product controls and grid align with filter sidebar */
.mgw-shop-main .ammunition-content {
  padding-top: 0;
}

.mgw-product-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #f0f0f0;
}

.mgw-product-search-form {
  flex: 1;
  min-width: 200px;
  max-width: 320px;
}

.mgw-product-search-input {
  width: 100%;
  padding: 0.6rem 1rem;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 0.9rem;
}

.mgw-product-search-input:focus {
  outline: none;
  border-color: var(--color-primary);
}

.mgw-product-controls .product-count {
  color: #666;
  font-weight: 500;
}

.mgw-product-controls .woocommerce-ordering select {
  padding: 0.5rem 2rem 0.5rem 0.75rem;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 0.9rem;
  background: #fff;
}

.mgw-product-controls .woocommerce-ordering select:focus {
  outline: none;
  border-color: var(--color-primary);
}

.mgw-results-per-page {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9rem;
  color: #666;
}
.mgw-results-per-page .mgw-per-page-label { margin-right: 0.25rem; }
.mgw-results-per-page .mgw-per-page-link {
  padding: 0.25rem 0.5rem;
  text-decoration: none;
  color: inherit;
  border-radius: 3px;
}
.mgw-results-per-page .mgw-per-page-link:hover,
.mgw-results-per-page .mgw-per-page-link.current {
  background: #f0f0f0;
  color: var(--color-primary);
  font-weight: 600;
}

/* Price per round (CPR) - industry standard for ammo */
.product-card .product-cpr {
  font-size: 0.85rem;
  color: #2e7d32;
  font-weight: 500;
  margin-top: 0.25rem;
}

/* Products grid - 4 across, tiles size to content (no stretching = less "long" feel) */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: start;
  list-style: none;
  margin: 0 0 2rem 0 !important;
  padding: 0 !important;
}

/* Hide subcategory items - we use filter sidebar for categories */
.mgw-shop-content .woocommerce ul.products li.product-category {
  display: none !important;
}

.woocommerce ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  min-width: 0;
  overflow: visible;
}

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

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

/* Product card styling - compact tiles, no overflow clip on buttons */
.mgw-product-card,
.woocommerce ul.products li.product {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  overflow: visible;
  transition: all 0.3s ease;
  box-shadow: 0 2px 4px rgba(0,0,0,0.08);
  display: flex;
  flex-direction: column;
}

.mgw-product-card .product-image-link,
.woocommerce ul.products li.product .product-image-link {
  border-radius: 8px 8px 0 0;
  overflow: hidden;
}

/* Compact card layout - no stretch */
.woocommerce ul.products li.product .mgw-product-card {
  display: flex;
  flex-direction: column;
}

.woocommerce ul.products li.product .product-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: visible;
  box-sizing: border-box;
}

.mgw-product-card:hover,
.woocommerce ul.products li.product:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(0,0,0,0.12);
  border-color: var(--color-primary);
}

.mgw-product-card .product-image-link,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
  display: block;
  text-decoration: none;
}

.mgw-product-card .product-image,
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail {
  width: 100%;
  height: 140px;
  background: #f5f5f5;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  object-fit: contain;
  flex-shrink: 0;
}

.mgw-product-card .product-image img,
.woocommerce ul.products li.product img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.mgw-product-card .product-image-placeholder {
  color: #ccc;
  font-size: 2.5rem;
}

.mgw-product-card .product-info,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  padding: 0.9rem 1rem 1.1rem;
  flex-grow: 1;
}

.mgw-product-card .product-brand {
  font-size: 0.75rem;
  color: #999;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 0.3rem;
  letter-spacing: 0.5px;
}

.mgw-product-card .product-name a,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 0.9rem;
  color: var(--color-bg-dark);
  font-weight: 600;
  line-height: 1.35;
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.mgw-product-card .product-name a:hover,
.woocommerce ul.products li.product a:hover {
  color: var(--color-primary);
}

.mgw-product-card .product-pricing .price,
.woocommerce ul.products li.product .price {
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: var(--color-primary) !important;
}

.mgw-product-card .product-sku {
  font-size: 0.75rem;
  color: #999;
  margin-top: 0.25rem;
}

.mgw-product-card .product-stock {
  font-size: 0.8rem;
  margin: 0.5rem 0;
  padding: 0.3rem 0.6rem;
  border-radius: 4px;
  display: inline-block;
}

.mgw-product-card .stock-in,
.woocommerce .stock.in-stock {
  background: #e8f5e9;
  color: #2e7d32;
  font-weight: 600;
}

.mgw-product-card .stock-out,
.woocommerce .stock.out-of-stock {
  background: #ffebee;
  color: #c62828;
  font-weight: 600;
}

/* Add to cart button - contained, never clipped */
.mgw-product-card .button,
.woocommerce ul.products li.product .button {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0.75rem 0 0 !important;
  padding: 0.7rem 1rem !important;
  background: var(--color-primary) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  font-weight: 600 !important;
  font-size: 0.9rem !important;
  text-align: center !important;
  transition: all 0.3s !important;
  box-sizing: border-box !important;
  flex-shrink: 0;
}

.mgw-product-card .button:hover,
.woocommerce ul.products li.product .button:hover {
  background: #8b1a1a !important;
  color: #fff !important;
}

/* ===== SHOP BY BRAND PAGE (Tile grid) ===== */
.mgw-brands-main {
  max-width: 1400px;
  margin: 0 auto;
  padding: 3rem 2rem;
}

.mgw-brands-main .page-title {
  font-size: 2rem;
  color: var(--color-bg-dark);
  margin-bottom: 0.5rem;
}

.mgw-brands-main .brands-subtitle {
  color: #666;
  margin-bottom: 2rem;
}

.mgw-brands-main .brands-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 1.5rem;
}

.mgw-brands-main .brand-card {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 1rem;
  text-align: center;
  transition: all 0.3s ease;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: hidden;
}

.mgw-brands-main .brand-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--color-primary);
  transform: scaleX(0);
  transition: transform 0.3s ease;
}

.mgw-brands-main .brand-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.12);
  border-color: var(--color-primary);
}

.mgw-brands-main .brand-card:hover::before {
  transform: scaleX(1);
}

.mgw-brands-main .brand-logo {
  width: 100%;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.75rem;
}

.mgw-brands-main .brand-logo img {
  max-width: 100%;
  max-height: 100px;
  object-fit: contain;
}

.mgw-brands-main .brand-logo-placeholder {
  width: 70px;
  height: 70px;
  background: linear-gradient(135deg, var(--color-accent) 0%, #2d4a6f 100%);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: 1.25rem;
}

.mgw-brands-main .brand-card h3 {
  font-size: 0.95rem;
  color: var(--color-bg-dark);
  margin: 0 0 0.25rem 0;
  line-height: 1.2;
}

.mgw-brands-main .brand-card p {
  color: #666;
  font-size: 0.8rem;
  margin: 0;
}

.mgw-brands-main .no-brands {
  color: #666;
  padding: 2rem;
}

/* Back to All Brands link (brand archive) */
.mgw-back-link {
  margin-bottom: 1rem;
}

.mgw-back-link a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: none;
}

.mgw-back-link a:hover {
  text-decoration: underline;
}

/* Pagination */
.woocommerce-pagination {
  margin-top: 2rem;
}

.woocommerce-pagination ul.page-numbers {
  display: flex;
  gap: 0.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span {
  padding: 0.5rem 1rem;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  text-decoration: none;
  color: #333;
  font-weight: 600;
}

.woocommerce-pagination .page-numbers a:hover,
.woocommerce-pagination .page-numbers span.current {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}

/* ===== SINGLE PRODUCT (Professional storefront – Ammo Depot / PSA style) ===== */
body.single-product main.mgw-single-product-main,
body.single-product .mgw-single-product-main {
  max-width: 820px !important;
  margin: 0 auto;
  padding: 1.25rem 1rem;
}

.mgw-product-back {
  margin-bottom: 1rem;
}

.mgw-product-back .mgw-back-link {
  display: inline-block;
  font-size: 0.9rem;
  color: var(--color-primary, #0a2540);
  text-decoration: none;
  transition: color 0.15s ease;
}

.mgw-product-back .mgw-back-link:hover {
  color: var(--color-primary-dark, #061a2d);
  text-decoration: underline;
}

.mgw-single-product {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
}

.single-product .product .summary {
  padding-left: 1.5rem;
}

.single-product .product .summary .product_title {
  font-size: 1.15rem;
  font-weight: 600;
  color: #1a1a1a;
  margin: 0 0 0.5rem 0;
  line-height: 1.35;
  text-transform: none;
  letter-spacing: normal;
}

.single-product .product .summary .price {
  font-size: 1.25rem !important;
  color: var(--color-primary) !important;
  font-weight: 600 !important;
  margin-bottom: 0.75rem !important;
}

/* Product info block (SKU, Brand, Stock) - Ammo Depot style compact row */
.mgw-product-info-block {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1rem;
  padding: 0.5rem 0;
  margin-bottom: 0.75rem;
  border: none;
  font-size: 0.8rem;
  color: #555;
}

.mgw-product-info-block .mgw-label {
  font-weight: 600;
  color: #666;
  margin-right: 0.3rem;
}

.mgw-product-stock.mgw-stock-instock {
  color: #2e7d32;
  font-weight: 600;
}

.mgw-product-stock.mgw-stock-outofstock {
  color: #c62828;
  font-weight: 600;
}

/* Short description / excerpt */
.single-product .woocommerce-product-details__short-description {
  margin-bottom: 1rem;
  font-size: 0.9rem;
  line-height: 1.55;
  color: #555;
}

/* Quantity + Add to cart - compact row */
.single-product .product .summary .cart {
  margin-top: 0.75rem;
}

.single-product .product .summary .quantity input.qty {
  width: 3.5rem;
  padding: 0.45rem 0.5rem;
  font-size: 0.9rem;
  text-align: center;
}

.single-product .product .summary .single_add_to_cart_button {
  background: var(--color-primary) !important;
  color: #fff !important;
  padding: 0.55rem 1.25rem !important;
  font-weight: 600 !important;
  border: none !important;
  border-radius: 4px !important;
  font-size: 0.9rem !important;
  cursor: pointer;
  transition: background 0.2s;
}

.single-product .product .summary .single_add_to_cart_button:hover {
  background: #8b1a1a !important;
  color: #fff !important;
}

/* Description & tabs section – constrained width */
body.single-product .mgw-single-product-details {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid #e0e0e0;
  width: 100%;
  max-width: 720px;
}

.single-product .woocommerce-tabs {
  margin-top: 0;
}

.single-product .woocommerce-tabs ul.tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid #e0e0e0;
  margin: 0 0 1.5rem 0;
  padding: 0;
  list-style: none;
}

.single-product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0.75rem 1.25rem;
  border: none;
  background: transparent;
  font-weight: 600;
  font-size: 0.95rem;
  color: #666;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
}

.single-product .woocommerce-tabs ul.tabs li.active {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
}

.single-product .woocommerce-tabs .panel {
  padding: 0;
  margin: 0 0 2rem 0;
  font-size: 0.95rem;
  line-height: 1.7;
  color: #333;
}

.single-product .woocommerce-tabs .panel h2 {
  display: none;
}

.single-product .woocommerce-Tabs-panel table.woocommerce-product-attributes {
  width: 100%;
  border-collapse: collapse;
}

.single-product .woocommerce-Tabs-panel table.woocommerce-product-attributes th,
.single-product .woocommerce-Tabs-panel table.woocommerce-product-attributes td {
  padding: 0.6rem 0.8rem;
  border-bottom: 1px solid #eee;
  text-align: left;
}

.single-product .woocommerce-Tabs-panel table.woocommerce-product-attributes th {
  font-weight: 600;
  color: #666;
  width: 40%;
}

/* ===== SINGLE PRODUCT LAYOUT (Ammo Depot style) ===== */
body.single-product .mgw-single-product-layout {
  display: grid !important;
  grid-template-columns: 220px 1fr !important;
  gap: 1.5rem;
  align-items: start;
  max-width: 720px !important;
}

/* Image area - compact square, image fills (Ammo Depot style) */
body.single-product .mgw-single-product-gallery {
  background: #fff;
  padding: 0.5rem;
  border-radius: 4px;
  border: 1px solid #e5e5e5;
  min-width: 0;
  aspect-ratio: 1;
  display: flex !important;
  align-items: center;
  justify-content: center;
}

body.single-product .mgw-single-product-gallery .woocommerce-product-gallery,
body.single-product .mgw-single-product-gallery .woocommerce-product-gallery__wrapper,
body.single-product .mgw-single-product-gallery .woocommerce-product-gallery__image {
  display: block !important;
  min-height: 0;
  width: 100%;
  height: 100%;
}

body.single-product .mgw-single-product-gallery .woocommerce-product-gallery__wrapper {
  display: flex !important;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: 0;
}

body.single-product .mgw-single-product-gallery .woocommerce-product-gallery__image {
  display: flex !important;
  align-items: center;
  justify-content: center;
}

body.single-product .mgw-single-product-gallery .woocommerce-product-gallery__image img,
body.single-product .mgw-single-product-gallery img.wp-post-image {
  width: 100% !important;
  max-width: 100%;
  max-height: 100%;
  height: auto !important;
  object-fit: contain;
  object-position: center;
  border-radius: 4px;
  display: block;
  margin: 0 auto;
}

@media (max-width: 768px) {
  .mgw-single-product-layout {
    grid-template-columns: 1fr;
    max-width: none;
    gap: 1.5rem;
  }

  .single-product .product .summary {
    padding-left: 0;
  }

  .mgw-single-product-gallery {
    max-width: 280px;
    margin: 0 auto;
    aspect-ratio: 1;
  }

  .mgw-product-info-block {
    flex-direction: column;
    gap: 0.5rem;
  }
}


/* PDP: custom placeholder when no WC image + no Chattanooga URL */
body.single-product .mgw-gallery-placeholder-wrap {
  text-align: center;
}
body.single-product .mgw-gallery-placeholder {
  min-height: 280px;
  background: #f0f0f0;
  border-radius: 4px;
  color: #8a8a8a;
  font-size: 3.5rem;
}
body.single-product .mgw-gallery-placeholder-hint {
  margin: 0.75rem 0 0;
  font-size: 0.875rem;
  color: #666;
  max-width: 320px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.4;
}
/* ===== CART & CHECKOUT (Ammo Depot style) ===== */
.woocommerce-cart .woocommerce .button,
.woocommerce-checkout .woocommerce .button {
  background: var(--color-primary) !important;
  color: #fff !important;
  border-color: var(--color-primary) !important;
  padding: 1rem 1.5rem !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  border-radius: 8px !important;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  min-height: 52px !important;
}

.woocommerce-cart .woocommerce .button:hover,
.woocommerce-checkout .woocommerce .button:hover {
  background: #8b1a1a !important;
  color: #fff !important;
}

/* Age verification block (checkout gate like old site) */
.mgw-age-verification-block {
  background: #f9f9f9;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.mgw-age-verification-notice {
  font-size: 0.95rem;
  color: #333;
  line-height: 1.5;
  margin-bottom: 1rem;
}

.mgw-age-verification-checkboxes {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.mgw-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.9rem;
  color: #444;
  cursor: pointer;
}

.mgw-checkbox-label a {
  color: var(--color-primary);
  font-weight: 600;
}

.mgw-age-checkbox {
  margin-top: 0.2rem;
  flex-shrink: 0;
}

.mgw-age-verification-hint {
  font-size: 0.85rem;
  color: #666;
  margin: 1rem 0 0 0;
}

.mgw-checkout-disabled {
  cursor: not-allowed !important;
}

/* ===== FFL COMPLIANCE NOTICES (Industry standard) ===== */
.mgw-ffl-notice {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  background: #fff8e6;
  border: 1px solid #f0c14b;
  border-left: 4px solid #c9a227;
  border-radius: 6px;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #333;
}

.mgw-ffl-notice i {
  flex-shrink: 0;
  color: #c9a227;
  font-size: 1.25rem;
  margin-top: 0.1rem;
}

.mgw-ffl-notice-product i {
  color: #b22222;
}

.mgw-ffl-notice a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: none;
}

.mgw-ffl-notice a:hover {
  text-decoration: underline;
}

.mgw-ffl-notice-category {
  margin-top: 0.5rem;
}

/* FFL badge on product cards */
.mgw-ffl-badge {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 0.25rem 0.5rem;
  background: #1a2c4b;
  color: #fff;
  border-radius: 4px;
  margin-bottom: 0.4rem;
}

/* Checkout FFL notice */
.mgw-checkout-ffl-notice {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  background: #e7f3ff;
  border: 1px solid #1a2c4b;
  border-left: 4px solid #1a2c4b;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  border-radius: 6px;
}

.mgw-checkout-ffl-notice i {
  color: #1a2c4b;
  font-size: 1.25rem;
  flex-shrink: 0;
}

.mgw-checkout-ffl-notice p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #333;
}

/* Checkout state compliance notice */
.mgw-checkout-state-notice {
  font-size: 0.85rem;
  color: #666;
  margin-bottom: 1rem;
}

.mgw-checkout-state-notice a {
  color: var(--color-primary);
  font-weight: 600;
}

/* Load more button - replaces default pagination style */
.mgw-load-more-wrap {
  text-align: center;
  margin: 2rem 0 3rem;
}

.mgw-load-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2.5rem;
  background: var(--color-primary);
  color: #fff !important;
  border: none;
  border-radius: 8px;
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s;
}

.mgw-load-more-btn:hover {
  background: #8b1a1a;
  color: #fff !important;
}

.mgw-load-more-btn .fas {
  font-size: 0.9rem;
}

/* Hide default pagination numbers when Load more is used */
.mgw-shop-content .woocommerce-pagination ul.page-numbers {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.mgw-shop-content .woocommerce-pagination .page-numbers li {
  list-style: none;
}

.mgw-shop-content .woocommerce-pagination .page-numbers .next,
.mgw-shop-content .woocommerce-pagination .page-numbers .prev {
  display: inline-block;
}

.mgw-pagination-numbers {
  margin-top: 1rem;
}

.mgw-pagination-numbers .page-numbers {
  justify-content: center;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
  main.mgw-shop-main {
    flex-direction: column;
  }

  .mgw-shop-sidebar,
  .mgw-shop-filters {
    position: static;
    max-height: none;
    flex: 1 1 100%;
  }

  .woocommerce ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  main.mgw-shop-main {
    padding: 2rem 1rem;
  }

  .mgw-shop-sidebar {
    order: -1;
    margin-bottom: 1rem;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 0;
  }

  .mgw-shop-sidebar .filter-header {
    padding: 1rem;
  }

  .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }
}

/* Shop filters: hide inventory-style counts; product grid shows the real result set */
.mgw-shop-sidebar .mgw-layered-nav-no-counts .count,
.mgw-shop-sidebar .woocommerce-widget-layered-nav-list .count {
  display: none !important;
}
.mgw-shop-sidebar .wpc-term-count,
.mgw-shop-sidebar .wpc-posts-found {
  display: none !important;
}

/* Shop by: quick filters (aligned with design system — not “default plugin chrome”) */
.mgw-shop-by-widget .mgw-shop-by-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.mgw-shop-by-widget .mgw-shop-by-link {
  display: block;
  padding: 0.5rem 0.9rem;
  border: 1px solid #cfd6dc;
  border-radius: var(--radius, 6px);
  font-size: 0.88rem;
  font-weight: 600;
  font-family: var(--font-body, Roboto, Arial, sans-serif);
  text-decoration: none;
  text-transform: none;
  letter-spacing: 0;
  color: #2c3e50;
  background: #fff;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.mgw-shop-by-widget .mgw-shop-by-link:hover {
  border-color: var(--color-primary, #b22222);
  color: var(--color-primary, #b22222);
}
.mgw-shop-by-widget .mgw-shop-by-link.is-active {
  background: var(--color-primary, #b22222);
  color: #fff;
  border-color: var(--color-primary, #b22222);
}

/* Native WooCommerce archive layout: primary + shop-sidebar */
.mgw-woo-catalog-wrap {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1rem;
  box-sizing: border-box;
}
@media (min-width: 992px) {
  .mgw-woo-catalog-wrap {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
  }
  .mgw-woo-catalog-wrap #primary {
    flex: 1;
    min-width: 0;
  }
  .mgw-woo-catalog-wrap .mgw-woo-sidebar {
    flex: 0 0 280px;
  }
}
.mgw-back-to-brands {
  margin: 0 0 1rem;
}
.mgw-woo-sidebar .widget {
  margin-bottom: 1.5rem;
}

/* Retail loop cards (Woo hooks) */
.woocommerce ul.products li.product .mgw-loop-brand {
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text-muted, #5a6b75);
  margin: 0 0 0.35rem;
}
.woocommerce ul.products li.product .mgw-loop-cpr {
  font-size: 0.85rem;
  color: var(--color-text-muted, #5a6b75);
  margin: 0.35rem 0 0;
}
.woocommerce ul.products li.product .mgw-loop-ffl-badge {
  display: inline-block;
  margin: 0.35rem 0;
  padding: 0.2rem 0.5rem;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  background: #fef3cd;
  color: #856404;
  border-radius: 3px;
}
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail {
  object-fit: contain;
  background: #f4f4f4;
}

/* ===== Catalog layout cleanup (native Woo + mgw-woo-catalog-wrap) ===== */
body.post-type-archive-product #main.site-main,
body.tax-product_cat #main.site-main,
body.tax-pa_brand #main.site-main {
  max-width: none;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  box-sizing: border-box;
}

@media (min-width: 992px) {
  .mgw-woo-catalog-wrap {
    flex-direction: row;
  }
  /* Filters left, grid right (retail convention) */
  .mgw-woo-catalog-wrap #primary {
    order: 2;
    flex: 1;
    min-width: 0;
  }
  .mgw-woo-catalog-wrap .mgw-woo-sidebar {
    order: 1;
    flex: 0 0 min(300px, 28vw);
    position: sticky;
    top: 1rem;
    align-self: flex-start;
    /* Let the page scroll; avoid a nested scrollbar around the whole filter column */
    max-height: none;
    overflow: visible;
    padding: 1.15rem 1.2rem;
    background: #fff;
    border: 1px solid #e2e6ea;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(26, 44, 75, 0.06);
  }
}

.mgw-woo-catalog-wrap .mgw-woo-sidebar .widget {
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid #e8ecef;
}
.mgw-woo-catalog-wrap .mgw-woo-sidebar .widget:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.mgw-woo-catalog-wrap .mgw-woo-sidebar .widget_title {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #2c3e50;
  margin: 0 0 0.65rem;
  padding: 0;
}

/* Archive header: breathing room below breadcrumbs */
.woocommerce .woocommerce-breadcrumb {
  margin-bottom: 1rem;
  font-size: 0.85rem;
  color: #5a6b75;
}
.woocommerce-products-header {
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e8ecef;
}
.woocommerce-products-header__title {
  font-size: clamp(1.35rem, 2.5vw, 1.85rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: none;
  margin: 0 0 0.35rem;
  line-height: 1.2;
  color: #1a1d21;
}

/* Toolbar: results + sort (wrapped via mgw_shop_loop_toolbar_* hooks) */
.woocommerce .mgw-shop-loop-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 1.25rem;
  clear: both;
}
.woocommerce .mgw-shop-loop-toolbar .woocommerce-result-count {
  float: none;
  margin: 0;
  font-size: 0.9rem;
  color: #5a6b75;
}
.woocommerce .mgw-shop-loop-toolbar .woocommerce-ordering {
  float: none;
  margin: 0;
}
.woocommerce .mgw-shop-loop-toolbar .woocommerce-ordering select {
  max-width: 100%;
  min-width: 12rem;
  padding: 0.45rem 2rem 0.45rem 0.65rem;
  border-radius: 6px;
  border: 1px solid #cfd6dc;
  background-color: #fff;
  font-size: 0.9rem;
}

/* Product grid: equal-height cards, aligned CTAs
   Woo outputs ul.products.columns-N + floated % widths — conflicts with grid.
   LoopProduct-link wraps image/title/price; CTA is sibling — flex + ::after grows link so buttons align. */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  align-items: stretch;
  gap: 1.25rem !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
  clear: both;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
  content: none !important;
}
.woocommerce ul.products.columns-1 li.product,
.woocommerce ul.products.columns-2 li.product,
.woocommerce ul.products.columns-3 li.product,
.woocommerce ul.products.columns-4 li.product,
.woocommerce ul.products.columns-5 li.product,
.woocommerce ul.products.columns-6 li.product,
.woocommerce ul.products[class*="columns-"] li.product {
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  clear: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last {
  clear: none !important;
}
.woocommerce ul.products li.product {
  display: flex !important;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 0.85rem !important;
  background: #fff;
  border: 1px solid #e8ecef;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.woocommerce ul.products li.product:hover {
  border-color: #cfd6dc;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
}
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  color: inherit;
  text-decoration: none;
}
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link::after {
  content: "";
  flex-grow: 1;
  min-height: 0;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img {
  width: 100%;
  height: auto;
  max-height: 220px;
  aspect-ratio: 1;
  object-fit: contain;
  background: #f0f2f4;
  border-radius: 6px;
  margin-bottom: 0.65rem;
  flex-shrink: 0;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 0.92rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  text-transform: none !important;
  margin: 0 0 0.35rem !important;
  padding: 0 !important;
  color: #1a1d21;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.woocommerce ul.products li.product .price {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-primary, #c62828) !important;
  margin-bottom: 0.25rem;
  flex-shrink: 0;
}
.woocommerce ul.products li.product .star-rating {
  margin: 0.25rem 0;
  flex-shrink: 0;
}
.woocommerce ul.products li.product .mgw-loop-brand,
.woocommerce ul.products li.product .mgw-loop-cpr,
.woocommerce ul.products li.product .mgw-loop-ffl-badge {
  flex-shrink: 0;
}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
  flex-shrink: 0;
  align-self: stretch;
  margin-top: 0.75rem;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
  border-radius: 6px;
  font-weight: 600;
  padding: 0.55rem 0.75rem;
}
.woocommerce ul.products li.product a.product_type_variable,
.woocommerce ul.products li.product a.product_type_simple {
  background: var(--color-primary, #c62828);
  color: #fff !important;
  border: none;
}
.woocommerce ul.products li.product a.product_type_variable:hover,
.woocommerce ul.products li.product a.product_type_simple:hover {
  filter: brightness(0.92);
  color: #fff !important;
}

/* Layered nav lists in sidebar */
.mgw-woo-sidebar .woocommerce-widget-layered-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 220px;
  overflow-y: auto;
}
.mgw-woo-sidebar .woocommerce-widget-layered-nav-list li {
  margin: 0 0 0.35rem;
  line-height: 1.3;
}
.mgw-woo-sidebar .woocommerce-widget-layered-nav-list a {
  font-size: 0.88rem;
  text-decoration: none;
  color: #2c3e50;
}
.mgw-woo-sidebar .woocommerce-widget-layered-nav-list a:hover {
  color: var(--color-primary, #c62828);
}
.mgw-woo-sidebar .woocommerce-widget-layered-nav-list .chosen a {
  font-weight: 700;
  color: var(--color-primary, #c62828);
}

/* Price filter: override Woo default purple (#7f54b3) + tidy layout */
.mgw-woo-sidebar .widget_price_filter .price_slider {
  margin-bottom: 0.85rem;
}
.mgw-woo-sidebar .widget_price_filter .ui-slider-horizontal {
  height: 6px;
}
.mgw-woo-sidebar .widget_price_filter .price_slider_wrapper .ui-widget-content {
  background: #e8ecef !important;
  border: 0 !important;
  border-radius: 6px !important;
}
.mgw-woo-sidebar .widget_price_filter .ui-slider .ui-slider-range {
  background: var(--color-accent, #1a2c4b) !important;
  border-radius: 6px !important;
}
.mgw-woo-sidebar .widget_price_filter .ui-slider .ui-slider-handle {
  width: 18px !important;
  height: 18px !important;
  top: 50% !important;
  margin-top: -9px !important;
  background: var(--color-primary, #b22222) !important;
  border: 2px solid #fff !important;
  border-radius: 50% !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18) !important;
}
.mgw-woo-sidebar .widget_price_filter .price_slider_amount {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  line-height: 1.4;
  font-size: 0.875rem;
  text-align: left;
  color: #3d4f5f;
}
.mgw-woo-sidebar .widget_price_filter .price_slider_amount .button {
  float: none;
  margin: 0;
  padding: 0.45rem 1rem;
  border-radius: var(--radius, 6px);
  font-size: 0.85rem;
  font-weight: 600;
  background: var(--color-accent, #1a2c4b);
  color: #fff;
  border: none;
  cursor: pointer;
  transition: filter 0.15s ease;
}
.mgw-woo-sidebar .widget_price_filter .price_slider_amount .button:hover {
  filter: brightness(1.08);
  color: #fff;
}
.mgw-woo-sidebar .widget_price_filter .price_label {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 500;
}

/* Category widget: SelectWoo (fixes clipped label + alignment) */
.mgw-woo-sidebar .widget_product_categories .select2-container {
  width: 100% !important;
  max-width: 100%;
}
.mgw-woo-sidebar .widget_product_categories .select2-container--default .select2-selection--single {
  height: auto !important;
  min-height: 2.6rem;
  padding: 0.45rem 2.25rem 0.45rem 0.65rem !important;
  border: 1px solid #cfd6dc !important;
  border-radius: var(--radius, 6px) !important;
  background: #fff !important;
}
.mgw-woo-sidebar .widget_product_categories .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0 !important;
  line-height: 1.45 !important;
  font-size: 0.9rem !important;
  font-family: var(--font-body, Roboto, Arial, sans-serif) !important;
  color: #1a1d21 !important;
}
.mgw-woo-sidebar .widget_product_categories .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  min-height: 2.6rem;
  right: 6px;
}
.mgw-woo-sidebar .widget_product_categories .select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--color-accent, #1a2c4b) !important;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination {
  margin-top: 2rem;
  clear: both;
}
