/**
 * WooCommerce Shop Styles - Tranquil Soul Crystal Boutique
 * Complete shop styling including product grids, cart, checkout, account, and WooCommerce elements
 * Fixed: scoped to WooCommerce/shop areas; header/page/global layout duplicates removed.
 */

/************ DO NOT EDIT BETWEEN THIS LINE (FAIR E WEB HOST) ************/

/* Header mini-cart styles moved to assets/css/header.css. */

/****** JAN 13 2026 EDITS *********/
/* ===========================
   Hide Entry Header Elements on Account & Pages
   =========================== */

/* Hide post-content and entry-meta on WooCommerce Account page */
.woocommerce-account .entry-header .post-content,
.woocommerce-account .entry-header .entry-meta {
  display: none !important;
}

/************ EDIT ONLY AFTER THIS LINE (FAIR E WEB HOST) ************/

/* ====================================
   SHOP ARCHIVE - HERO & LAYOUT
==================================== */

/* Shop Hero Section */
.ts-hero--shop {
  background: linear-gradient(135deg, var(--color-bg-5) 0%, var(--color-bg-3) 100%);
  padding: 80px var(--space-20) 60px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.ts-hero--shop::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 600"><defs><pattern id="shop-dots" x="0" y="0" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="2" fill="%235E5240" opacity="0.1"/></pattern></defs><rect width="1200" height="600" fill="url(%23shop-dots)"/></svg>');
  pointer-events: none;
}

.ts-shop-title,
.ts-hero--shop .woocommerce-products-header__title {
  font-size: var(--font-size-4xl);
  color: var(--color-primary);
  margin: 0 0 var(--space-16) 0;
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-tight);
  position: relative;
  z-index: 1;
}

.ts-hero--shop .term-description,
.ts-hero--shop .page-description {
  font-size: var(--font-size-lg);
  color: var(--color-text-secondary);
  max-width: 700px;
  margin: 0 auto;
  line-height: var(--line-height-normal);
  position: relative;
  z-index: 1;
}

/* Shop Section */
.ts-section--shop {
  padding: 60px 0 80px;
}

/* Shop archive & single product boxed layout */
.woocommerce-page .ts-container,
.post-type-archive-product .ts-container,
.tax-product_cat .ts-container,
.tax-product_tag .ts-container,
.single-product .ts-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-20);
}

/* Match Woo main content width on archives & singles */
.post-type-archive-product .site-content,
.tax-product_cat .site-content,
.tax-product_tag .site-content,
.single-product .site-content {
  max-width: 1200px;
  margin: 40px auto 80px;
  padding: 0 var(--space-20);
}

.ts-shop-wrapper,
.woocommerce .ts-shop-wrapper {
  max-width: 1200px;
  margin: 40px auto;
  padding: 0 var(--space-20);
}

.woocommerce-products-header {
  text-align: center;
  margin-bottom: var(--space-32);
  padding: var(--space-32) 0;
  border-bottom: 2px solid var(--color-border);
}

.woocommerce-products-header__title {
  font-size: var(--font-size-4xl);
  color: var(--color-primary);
  margin-bottom: var(--space-16);
}

.woocommerce-products-header .term-description {
  color: var(--color-text-secondary);
  max-width: 800px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Woo breadcrumbs aligned and padded like content */
.woocommerce .woocommerce-breadcrumb {
  max-width: 1200px;
  margin: 0 auto var(--space-16);
  padding: var(--space-16) var(--space-20) 0; /* top + side padding */
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

/* Optional: lighter separator + link color */
.woocommerce .woocommerce-breadcrumb a {
  color: var(--color-text-secondary);
  text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover {
  color: var(--color-primary);
}

/* ====================================
   SHOP CONTROLS & SORTING
==================================== */

.woocommerce-notices-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-20);
}

.woocommerce-result-count,
.woocommerce-ordering {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

.woocommerce-ordering select {
  padding: var(--space-8) var(--space-32) var(--space-8) var(--space-12);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-base);
  background-color: var(--color-surface);
  color: var(--color-text);
  font-size: var(--font-size-sm);
  cursor: pointer;
  transition: border-color var(--duration-fast) var(--ease-standard);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: var(--select-caret-light);
  background-repeat: no-repeat;
  background-position: right var(--space-12) center;
  background-size: 16px;
}

@media (prefers-color-scheme: dark) {
  .woocommerce-ordering select {
    background-image: var(--select-caret-dark);
  }
}

[data-color-scheme="dark"] .woocommerce-ordering select {
  background-image: var(--select-caret-dark);
}

.woocommerce-ordering select:focus {
  border-color: var(--color-primary);
  outline: var(--focus-outline);
  box-shadow: var(--focus-ring);
}

.woocommerce-before-shop-loop {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-24);
  padding-bottom: var(--space-16);
  border-bottom: 1px solid var(--color-border);
  flex-wrap: wrap;
  gap: var(--space-16);
}

/* ====================================
   PRODUCT GRID & CARDS
==================================== */

.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--space-32);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Prevent ::before/::after from stealing a grid cell */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  content: none !important;
  display: none !important;
}

.woocommerce ul.products li.product {
  background: var(--color-surface);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-lg);
  transition: all var(--duration-normal) var(--ease-standard);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  margin: 0 !important;
  width: 100% !important;
  float: none !important;
  position: relative;
}

.woocommerce ul.products li.product:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
  border-color: var(--color-primary);
}

/* Product Image */
.woocommerce ul.products li.product .woocommerce-loop-product__link {
  display: block;
}

.woocommerce ul.products li.product img {
  width: 100%;
  height: 280px;
  object-fit: cover;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  transition: transform var(--duration-normal) var(--ease-standard);
}

.woocommerce ul.products li.product:hover img {
  transform: scale(1.08);
}

/* Product Title */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  color: var(--color-text);
  font-weight: var(--font-weight-semibold);
  padding: var(--space-16) var(--space-16) var(--space-8);
  font-size: var(--font-size-lg);
  margin: 0;
  line-height: var(--line-height-tight);
}

/* Product Price */
.woocommerce ul.products li.product .price {
  color: var(--color-brown-600);
  font-weight: var(--font-weight-bold);
  padding: 0 var(--space-16);
  margin: 0 0 var(--space-12) 0;
  font-size: var(--font-size-lg);
}

.woocommerce ul.products li.product .price del {
  color: var(--color-text-secondary);
  opacity: 0.6;
  margin-right: var(--space-8);
}

.woocommerce ul.products li.product .price ins {
  text-decoration: none;
  color: var(--color-primary);
}

/* Add to Cart Button */
.woocommerce ul.products li.product .button {
  background-color: var(--color-primary);
  border: none;
  color: var(--color-btn-primary-text);
  font-weight: var(--font-weight-semibold);
  padding: var(--space-12) var(--space-20);
  border-radius: var(--radius-base);
  margin: 0 var(--space-16) var(--space-16);
  transition: all var(--duration-normal) var(--ease-standard);
  cursor: pointer;
  display: inline-block;
  text-decoration: none;
  width: calc(100% - var(--space-32));
  text-align: center;
}

.woocommerce ul.products li.product .button:hover {
  background-color: var(--color-primary-hover);
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}

.woocommerce ul.products li.product .button:focus-visible {
  outline: var(--focus-outline);
  box-shadow: var(--focus-ring);
}

.woocommerce ul.products li.product .added_to_cart {
  display: block;
  margin: 0 var(--space-16) var(--space-16);
  padding: var(--space-8) var(--space-16);
  text-align: center;
  background: var(--color-secondary);
  border-radius: var(--radius-base);
  color: var(--color-primary);
  text-decoration: none;
  font-size: var(--font-size-sm);
  transition: all var(--duration-fast) var(--ease-standard);
}

.woocommerce ul.products li.product .added_to_cart:hover {
  background: var(--color-secondary-hover);
}

/* Sale Badge */
.woocommerce ul.products li.product .onsale {
  position: absolute;
  top: var(--space-12);
  right: var(--space-12);
  background: var(--color-primary);
  color: var(--color-btn-primary-text);
  padding: var(--space-6) var(--space-12);
  border-radius: var(--radius-full);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  z-index: 10;
  box-shadow: var(--shadow-sm);
}

/* Make related products 4 columns on desktop */
.woocommerce .related ul.products,
.woocommerce .related ul.products.columns-3 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 768px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: var(--space-24);
  }
  .ts-hero--shop {
    padding: 40px var(--space-12) 30px;
  }
}

/* ====================================
   PAGINATION
==================================== */

/* Pagination: constrain hover to individual buttons, not full row */
.woocommerce nav.woocommerce-pagination ul {
  display: inline-flex;
  gap: var(--space-8);
  list-style: none;
  padding: 0;
  margin: 0;
  border: none;
  flex-wrap: wrap;
  justify-content: center;
  background: transparent; /* kill any wrapper background */
}

.woocommerce nav.woocommerce-pagination ul li {
  border: none;
  margin: 0;
  display: inline-block;
  width: auto;
  background: transparent; /* no li background */
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: var(--space-8) var(--space-12);
  width: auto;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-base);
  color: var(--color-text);
  text-decoration: none;
  font-weight: var(--font-weight-medium);
  transition: all var(--duration-fast) var(--ease-standard);
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-btn-primary-text);
  transform: translateY(-2px);
}

.woocommerce nav.woocommerce-pagination ul li a:focus-visible {
  outline: var(--focus-outline);
  box-shadow: var(--focus-ring);
}

/* ====================================
   CART & CHECKOUT LAYOUT (FULL WIDTH)
==================================== */

/* Force full-width canvas on WC pages that should be wide */
.woocommerce-cart .site-content,
.woocommerce-checkout .site-content,
.woocommerce-account .site-content {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Kill Elementor/Hello boxed container on WC pages */
.woocommerce-cart .elementor-container,
.woocommerce-checkout .elementor-container,
.woocommerce-cart .elementor-section,
.woocommerce-checkout .elementor-section {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Inner wrapper width (cart only) */
.ts-cart-wrapper {
  max-width: 1200px;
  margin: 40px auto;
  padding: 0 var(--space-20);
}

/* ====================================
   CART PAGE
==================================== */

.woocommerce-cart-form {
  margin-bottom: 40px;
}

.shop_table {
  width: 100%;
  border-collapse: collapse;
}

.shop_table thead th {
  background: var(--color-secondary);
  padding: 15px;
  text-align: left;
  font-weight: var(--font-weight-semibold);
  border-bottom: 2px solid var(--color-border);
}

.shop_table tbody tr {
  border-bottom: 1px solid var(--color-border);
}

.shop_table tbody td {
  padding: 20px 15px;
  vertical-align: middle;
}

.product-thumbnail img {
  max-width: 80px;
  border-radius: var(--radius-base);
}

.product-remove .remove {
  color: var(--color-error);
  font-size: 1.2rem;
  text-decoration: none;
}

.product-remove .remove:hover {
  color: var(--color-error);
  opacity: 0.7;
}

/* Cart Collaterals */
.cart-collaterals {
  max-width: 720px;              /* corrected from 7200px */
  margin-left: auto;
}

.woocommerce .cart-collaterals .cart_totals {
  background-color: var(--color-secondary);
  padding: var(--space-32);
  border-radius: var(--radius-lg);
}

/* Optional: widen columns inside totals table */
.woocommerce .cart_totals table {
  width: 100%;
}

.woocommerce .cart-collaterals .cart_totals .total {
  border-top: 2px solid var(--color-primary);
  padding-top: var(--space-20);
}

.woocommerce .cart-collaterals .cart_totals .total strong {
  color: var(--color-primary);
  font-weight: var(--font-weight-bold);
}

.woocommerce-cart table.cart {
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.woocommerce-cart table.cart th {
  background-color: var(--color-secondary);
  color: var(--color-text);
  font-weight: var(--font-weight-semibold);
  border-color: var(--color-card-border);
  padding: var(--space-16);
}

.woocommerce-cart table.cart td {
  border-color: var(--color-card-border);
  padding: var(--space-16);
}

.woocommerce .cart_totals table th,
.woocommerce .cart_totals table td {
  padding: var(--space-12) var(--space-16);
}

/* Shipping calculator form – match inputs to design system */
.woocommerce .cart-collaterals .shipping-calculator-form .form-row label {
  display: block;
  margin-bottom: var(--space-8);
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-sm);
  color: var(--color-text);
}

/* Base select/input styling */
.woocommerce .cart-collaterals .shipping-calculator-form .input-text,
.woocommerce .cart-collaterals .shipping-calculator-form select {
  width: 100%;
  padding: var(--space-8) var(--space-12);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-base);
  font-size: var(--font-size-sm);
  color: var(--color-text);
  background-color: var(--color-surface);
  transition: border-color var(--duration-fast) var(--ease-standard),
              box-shadow var(--duration-fast) var(--ease-standard);
}

/* Focus state */
.woocommerce .cart-collaterals .shipping-calculator-form .input-text:focus,
.woocommerce .cart-collaterals .shipping-calculator-form select:focus {
  border-color: var(--color-primary);
  outline: var(--focus-outline);
  box-shadow: var(--focus-ring);
}

/* Make the Woo Select2 boxes match select styling */
.woocommerce .cart-collaterals .shipping-calculator-form .select2-container--default .select2-selection--single {
  height: auto;
  min-height: 38px;
  border-radius: var(--radius-base);
  border: 1px solid var(--color-border);
  background-color: var(--color-surface);
  padding: 6px 36px 6px 12px;
  font-size: var(--font-size-sm);
}

.woocommerce .cart-collaterals .shipping-calculator-form .select2-container--default
.select2-selection--single .select2-selection__rendered {
  line-height: 1.4;
  color: var(--color-text);
  padding-left: 0;
}

.woocommerce .cart-collaterals .shipping-calculator-form .select2-container--default
.select2-selection--single .select2-selection__arrow {
  height: 100%;
  right: 10px;
}

/* Hover/focus for Select2 */
.woocommerce .cart-collaterals .shipping-calculator-form .select2-container--default.select2-container--open
.select2-selection--single,
.woocommerce .cart-collaterals .shipping-calculator-form .select2-container--default .select2-selection--single:focus {
  border-color: var(--color-primary);
  box-shadow: var(--focus-ring);
}



/* ====================================
   CHECKOUT PAGE (Woo core structure)
==================================== */

/* Checkout Form Fields */
.woocommerce-checkout .form-row {
  margin-bottom: var(--space-20);
}

.woocommerce-checkout .form-row label {
  display: block;
  margin-bottom: var(--space-8);
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-sm);
  color: var(--color-text);
}

.woocommerce-checkout .form-row label .required {
  color: var(--color-error);
  margin-left: var(--space-4);
}

.woocommerce-checkout .input-text,
.woocommerce-checkout select,
.woocommerce-checkout textarea {
  width: 100%;
  padding: var(--space-12) var(--space-16);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-base);
  font-size: var(--font-size-base);
  color: var(--color-text);
  background-color: var(--color-surface);
  transition: border-color var(--duration-fast) var(--ease-standard),
              box-shadow var(--duration-fast) var(--ease-standard);
}

.woocommerce-checkout .input-text:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus {
  border-color: var(--color-primary);
  outline: var(--focus-outline);
  box-shadow: var(--focus-ring);
}

.woocommerce-checkout select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: var(--select-caret-light);
  background-repeat: no-repeat;
  background-position: right var(--space-12) center;
  background-size: 16px;
  padding-right: var(--space-32);
}

@media (prefers-color-scheme: dark) {
  .woocommerce-checkout select {
    background-image: var(--select-caret-dark);
  }
}

/* Order Review Table base */
.woocommerce-checkout-review-order {
  background: var(--color-background);
  border-radius: var(--radius-base);
  padding: var(--space-24);
}

.woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: var(--space-24);
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
  padding: var(--space-12) var(--space-16);
  text-align: left;
  border-bottom: 1px solid var(--color-border);
}

.woocommerce-checkout-review-order-table th {
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  background: var(--color-secondary);
}

.woocommerce-checkout-review-order-table .cart-subtotal th,
.woocommerce-checkout-review-order-table .order-total th {
  font-weight: var(--font-weight-bold);
}

.woocommerce-checkout-review-order-table .order-total td {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
}

/* Payment Methods */
.woocommerce-checkout #payment {
  background: var(--color-background);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-base);
  padding: var(--space-20);
  margin-top: var(--space-24);
}

.woocommerce-checkout #payment ul.payment_methods {
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce-checkout #payment ul.payment_methods li {
  margin-bottom: var(--space-16);
  padding: var(--space-16);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-base);
  transition: all var(--duration-fast) var(--ease-standard);
}

.woocommerce-checkout #payment ul.payment_methods li:hover {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-sm);
}

.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
  margin-right: var(--space-8);
}

.woocommerce-checkout #payment div.payment_box {
  background: var(--color-bg-1);
  padding: var(--space-16);
  margin-top: var(--space-12);
  border-radius: var(--radius-base);
  font-size: var(--font-size-sm);
}

/* Place Order Button */
.woocommerce-checkout #place_order {
  width: 100%;
  padding: var(--space-16) var(--space-32);
  background: var(--color-primary);
  color: var(--color-btn-primary-text);
  border: none;
  border-radius: var(--radius-base);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  cursor: pointer;
  transition: all var(--duration-normal) var(--ease-standard);
  margin-top: var(--space-16);
}

.woocommerce-checkout #place_order:hover {
  background: var(--color-primary-hover);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.woocommerce-checkout #place_order:focus-visible {
  outline: var(--focus-outline);
  box-shadow: var(--focus-ring);
}

/* Terms and Conditions */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  margin-top: var(--space-16);
  padding: var(--space-16);
  background: var(--color-bg-2);
  border-radius: var(--radius-base);
}

.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

/* ====================================
   RESPONSIVE CHECKOUT
==================================== */

@media (max-width: 480px) {
  .woocommerce-checkout-review-order {
    padding: var(--space-16);
  }

  .woocommerce-checkout-review-order-table th,
  .woocommerce-checkout-review-order-table td {
    padding: var(--space-8) var(--space-12);
    font-size: var(--font-size-sm);
  }
}

/* Do not apply blog grid to WooCommerce pages */
.woocommerce-cart .blog-posts-grid,
.woocommerce-checkout .blog-posts-grid {
  display: block;
  grid-template-columns: none;
}

/* ====================================
   ANIMATIONS
==================================== */

@media (prefers-reduced-motion: no-preference) {
  .woocommerce ul.products li.product {
    animation: fadeInUp 0.6s var(--ease-standard) backwards;
  }

  .woocommerce ul.products li.product:nth-child(1) { animation-delay: 0.05s; }
  .woocommerce ul.products li.product:nth-child(2) { animation-delay: 0.1s; }
  .woocommerce ul.products li.product:nth-child(3) { animation-delay: 0.15s; }
  .woocommerce ul.products li.product:nth-child(4) { animation-delay: 0.2s; }
  .woocommerce ul.products li.product:nth-child(5) { animation-delay: 0.25s; }
  .woocommerce ul.products li.product:nth-child(6) { animation-delay: 0.3s; }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ====================================
   SHOPIFY-STYLE CHECKOUT LAYOUT
==================================== */

/* Main two-column layout */
.woocommerce-checkout .col2-set {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr);
  gap: var(--space-32);
  align-items: flex-start;
}

/* Left column – forms */
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  background: var(--color-surface);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-lg);
  padding: var(--space-24);
  box-shadow: var(--shadow-sm);
}

/* Section headings */
.woocommerce-checkout-section-title,
.woocommerce-checkout-order-heading {
  display: flex;
  align-items: center;
  gap: var(--space-12);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary);
  margin: 0 0 var(--space-16);
  padding-bottom: var(--space-12);
  border-bottom: 2px solid var(--color-border);
}

.woocommerce-checkout-section-title svg,
.woocommerce-checkout-order-heading svg {
  flex-shrink: 0;
  color: var(--color-primary);
}

/* Right column – order summary (enhanced card) */
.woocommerce-checkout-review-order {
  background: var(--color-surface);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-lg);
  padding: var(--space-24);
  box-shadow: var(--shadow-sm);
}

/* Responsive stacking like Shopify */
@media (max-width: 900px) {
  .woocommerce-checkout .col2-set {
    grid-template-columns: 1fr;
  }
}


/* Hide page header/meta on WooCommerce checkout */
.woocommerce-checkout .entry-header,
.woocommerce-checkout .entry-meta {
  display: none;
}

/* Checkout trust badges */
.ts-checkout-trust {
  margin: var(--space-32) auto 0;
  max-width: 1200px;
  padding: 0 var(--space-20) var(--space-32);
}

.ts-checkout-trust-inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-16);
  background: var(--color-bg-3);
  border-radius: var(--radius-lg);
  padding: var(--space-20);
  border: 1px solid var(--color-card-border);
}

.ts-checkout-trust-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.ts-checkout-trust-label {
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary);
  font-size: var(--font-size-md);
}

.ts-checkout-trust-text {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

/* ===========================
   Dashboard Wrapper & Grid
   =========================== */

.ts-account-dashboard {
  max-width: 100%;
  margin: 0;
  padding: 0;
}

.ts-account-header {
  margin-bottom: var(--space-24);
}

.ts-account-title {
  font-size: var(--font-size-3xl);
  color: var(--color-primary);
  margin: 0 0 var(--space-8);
}

.ts-account-subtitle {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--font-size-sm);
}

.ts-account-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.6fr);
  gap: var(--space-24);
}

/* Single-column variant used on Orders/Downloads/etc. */
.woocommerce-account .ts-account-grid--single {
  display: block;
  width: 100%;
  max-width: none;
}

@media (max-width: 900px) {
  .ts-account-grid {
    grid-template-columns: 1fr;
  }
}

.ts-account-section-title {
  font-size: var(--font-size-lg);
  margin: 0 0 var(--space-12);
  color: var(--color-primary);
}

.ts-account-quick .card__body,
.ts-account-orders .card__body {
  padding: var(--space-20);
}

/* ===========================
   Dashboard Quick Links
   =========================== */

.ts-account-links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.ts-account-links li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-10) var(--space-12);
  border-radius: var(--radius-base);
  text-decoration: none;
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-card-border);
  transition: all var(--duration-fast) var(--ease-standard);
}

.ts-account-links li a:hover {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

/* ===========================
   My Account Navigation (left)
   =========================== */

.woocommerce-account .woocommerce-MyAccount-navigation {
  width: 100%;                     /* full width of 240px column */
  padding: var(--space-16);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-card-border);
  box-shadow: var(--shadow-sm);
  margin-right: 0;                 /* gap handled by grid */
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-8);             /* space between each tab */
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-10) var(--space-12); /* compact, even tabs */
  border-radius: var(--radius-base);
  text-decoration: none;
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-card-border);
  transition: all var(--duration-fast) var(--ease-standard);
  font-size: var(--font-size-sm);
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  background: var(--color-surface);
  border-color: var(--color-primary);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
  color: var(--color-primary);
}

/* ===========================
   Content Column (right)
   =========================== */

/* Fill full right column; override any theme max-widths */
.woocommerce-account .woocommerce-MyAccount-content {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
}

/* Dashboard wrapper inside content should not constrain width */
.woocommerce-account .woocommerce-MyAccount-content .ts-account-dashboard {
  max-width: none !important;
  width: 100% !important;
}

/* Account cards: let inner body use full column width */
.woocommerce-account .ts-account-orders.card,
.woocommerce-account .ts-account-quick.card {
  width: 100%;
  max-width: none;
}

.woocommerce-account .ts-account-orders .card__body,
.woocommerce-account .ts-account-quick .card__body {
  max-width: none !important;
  width: 100% !important;
  padding-left: var(--space-24);
  padding-right: var(--space-24);
}

/* Space between section heading and notices/orders */
.ts-account-orders .ts-account-notices {
  margin-bottom: var(--space-16);
}

/* ===========================
   Orders Table & Buttons
   =========================== */

.ts-account-orders .woocommerce-orders-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size-sm);
}

.ts-account-orders .woocommerce-orders-table th,
.ts-account-orders .woocommerce-orders-table td {
  padding: var(--space-10) var(--space-12);
  border-bottom: 1px solid var(--color-card-border-inner);
}

.ts-account-orders .woocommerce-orders-table th {
  background: var(--color-secondary);
  font-weight: var(--font-weight-semibold);
}

.ts-account-orders .woocommerce-button.button,
.ts-account-dashboard .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-8) var(--space-16);
  border-radius: var(--radius-base);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  cursor: pointer;
  border: none;
  text-decoration: none;
  background: var(--color-primary);
  color: var(--color-btn-primary-text);
  transition: all var(--duration-normal) var(--ease-standard);
}

.ts-account-orders .woocommerce-button.button:hover,
.ts-account-dashboard .btn:hover {
  background: var(--color-primary-hover);
  transform: translateY(-2px);
}

/* ===========================
   Notices & Icons
   =========================== */

/* Base Woo notices wrapper on account pages */
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-info {
  position: relative;
  padding-left: var(--space-32);
}

.woocommerce-account .woocommerce-notices-wrapper .woocommerce-error::before,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-info::before {
  left: var(--space-12);
  top: 50%;
  transform: translateY(-50%);
}

/* Hard fix anywhere in account content/cards */
.ts-account-dashboard .woocommerce-error,
.ts-account-dashboard .woocommerce-message,
.ts-account-dashboard .woocommerce-info,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info {
  position: relative;
  padding-left: 40px;
  line-height: 1.4;
  background-position: 14px 50%;
  background-repeat: no-repeat;
}

.ts-account-dashboard .woocommerce-error::before,
.ts-account-dashboard .woocommerce-message::before,
.ts-account-dashboard .woocommerce-info::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info::before {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
}

/*** EDITS FROM JAN 13TH 2025 BY FAIR E WEB HOST ***/

/* ==================================
   WooCommerce Error Notice - View Cart Button
================================== */

/* Style the View cart button inside error notices */
.woocommerce-error .button,
.woocommerce-error a.button,
.woocommerce-message .button,
.woocommerce-message a.button {
  display: inline-block;
  padding: var(--space-8) var(--space-16);
  background: #2D9DA6 !important; /* Teal background */
  color: #ffffff !important; /* White text */
  border-radius: var(--radius-base);
  text-decoration: none;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  border: none;
  transition: all var(--duration-fast) var(--ease-standard);
  margin-left: var(--space-8);
}

.woocommerce-error .button:hover,
.woocommerce-error a.button:hover,
.woocommerce-message .button:hover,
.woocommerce-message a.button:hover {
  background: #257D85 !important; /* Darker teal on hover */
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(45, 157, 166, 0.3);
}

/* Ensure the notice itself maintains proper styling */
.woocommerce-error {
  background: #fef2f2;
  border-left: 4px solid #dc2626;
  padding: var(--space-16);
  border-radius: var(--radius-base);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-12);
}

.woocommerce-message {
  background: #f0fdf4;
  border-left: 4px solid #16a34a;
  padding: var(--space-16);
  border-radius: var(--radius-base);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-12);
}

/** END OF JAN 13TH 2026 EDITS **/

/* ===========================
   Payment Methods: Header + Button
   =========================== */

/* Title + Add Payment Method button inline */
.ts-account-header--inline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  margin-bottom: var(--space-16);
}

/* Add payment method button */
.ts-account-add-payment {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-6) var(--space-16);
  border-radius: var(--radius-base);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  border: 1px solid var(--color-error);
  color: var(--color-error);
  background: transparent;
  text-decoration: none;
  transition: all var(--duration-fast) var(--ease-standard);
}

.ts-account-add-payment:hover {
  background: rgba(var(--color-error-rgb), 0.06);
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
}

/* ===========================
   Payment Methods: List
   =========================== */

/* UL: .woocommerce-PaymentMethods.payment_methods.methods */
.ts-account-orders .woocommerce-PaymentMethods.payment_methods.methods {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--color-card-border-inner);
}

/* Each saved method row */
.ts-account-orders .woocommerce-PaymentMethods.payment_methods.methods li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-12);
  padding: var(--space-12) 0;
  border-bottom: 1px solid var(--color-card-border-inner);
  font-size: var(--font-size-sm);
  color: var(--color-text);
}

/* Label/description area */
.ts-account-orders .woocommerce-PaymentMethods.payment_methods.methods li .method {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

/* Actions (Set default / Delete) */
.ts-account-orders .woocommerce-PaymentMethods.payment_methods.methods li .actions {
  display: flex;
  align-items: center;
  gap: var(--space-8);
}

.ts-account-orders .woocommerce-PaymentMethods.payment_methods.methods li .actions a {
  font-size: var(--font-size-xs);
  text-decoration: none;
  color: var(--color-primary);
  padding: var(--space-4) var(--space-8);
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  transition: all var(--duration-fast) var(--ease-standard);
}

.ts-account-orders .woocommerce-PaymentMethods.payment_methods.methods li .actions a:hover {
  border-color: var(--color-primary);
  background: rgba(var(--color-success-rgb), 0.06);
}

/* Default badge */
.ts-account-orders .woocommerce-PaymentMethods.payment_methods.methods li .default {
  display: inline-flex;
  align-items: center;
  padding: var(--space-4) var(--space-8);
  border-radius: var(--radius-full);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  background-color: rgba(var(--color-success-rgb), 0.12);
  color: var(--color-success);
}

/* ===========================
   Add Payment Method Form View
   =========================== */

/* Wrapper on /add-payment-method/ endpoint */
.woocommerce-account .woocommerce-add-payment-method {
  max-width: 820px;
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-card-border);
  padding: var(--space-24);
}

/* Kill tinted inner panels from gateways; keep only fields visible */
.woocommerce-account .woocommerce-add-payment-method .payment_box,
.woocommerce-account .woocommerce-add-payment-method .wc-stripe-elements-field,
.woocommerce-account .woocommerce-add-payment-method .stripe-card-group {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0;
}

/* Form rows */
.woocommerce-account .woocommerce-add-payment-method .form-row {
  margin-bottom: var(--space-16);
}

.woocommerce-account .woocommerce-add-payment-method label {
  display: block;
  margin-bottom: var(--space-6);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-text);
}

/* Submit button */
.woocommerce-account .woocommerce-add-payment-method #place_order,
.woocommerce-account .woocommerce-add-payment-method button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-10) var(--space-20);
  border-radius: var(--radius-base);
  background: var(--color-primary);
  color: var(--color-btn-primary-text);
  border: none;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  cursor: pointer;
  transition: all var(--duration-normal) var(--ease-standard);
}

.woocommerce-account .woocommerce-add-payment-method #place_order:hover,
.woocommerce-account .woocommerce-add-payment-method button[type="submit"]:hover {
  background: var(--color-primary-hover);
  transform: translateY(-2px);
}

/* ===========================
   Misc
   =========================== */

/* Do not apply blog grid to Woo pages */
.woocommerce-cart .blog-posts-grid,
.woocommerce-checkout .blog-posts-grid,
.woocommerce-account .blog-posts-grid {
  display: block;
  grid-template-columns: none;
}

/* Left navigation column */
.woocommerce-MyAccount-navigation {
  flex: 0 0 220px; /* make tabs narrower */
}

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce-MyAccount-navigation li {
  margin-bottom: var(--space-8, 8px);
}

.woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 10px 14px;
  font-size: var(--font-size-sm, 12px);
  border-radius: var(--radius-base, 8px);
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-card-border, #ddd);
  color: var(--color-text, #222);
  text-decoration: none;
}

.woocommerce-MyAccount-navigation li.is-active a {
  background: var(--color-primary, #7D38A4);
  color: var(--color-btn-primary-text, #fff);
  border-color: var(--color-primary, #7D38A4);
}

/* Right content column */
.woocommerce-MyAccount-content {
  flex: 1;
}

/* Product cards: ensure inner content fills the full card width */

/* Remove extra inner wrapper margins/padding Woo might add */
.woocommerce ul.products li.product .inside,
.woocommerce ul.products li.product .product-inner,
.woocommerce ul.products li.product .wc-block-grid__product {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Force all child blocks to use the full card width */
.woocommerce ul.products li.product > * {
  width: 100%;
}

/* Kill any leftover right margin that causes the white strip */
.woocommerce ul.products li.product {
  margin-right: 0 !important;
}

/* Make product action buttons fill the full card width */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-left: 0;
  margin-right: 0;
}

/* If theme wraps buttons in an inner div, ensure it is full width too */
.woocommerce ul.products li.product .product-actions,
.woocommerce ul.products li.product .product-footer {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-left: 0;
  padding-right: 0;
}


/* ====================================
   WOOCOMMERCE NOTICES – GLOBAL
==================================== */

.woocommerce-message,
.woocommerce-notice {
  background-color: rgba(var(--color-success-rgb), var(--status-bg-opacity));
  color: var(--color-success);
  border-color: rgba(var(--color-success-rgb), var(--status-border-opacity));
  border-left: 4px solid var(--color-success);
  border-radius: var(--radius-base);
  padding: var(--space-16);
  margin-bottom: var(--space-16);
}

.woocommerce-error {
  background-color: rgba(var(--color-error-rgb), var(--status-bg-opacity));
  color: var(--color-error);
  border-color: rgba(var(--color-error-rgb), var(--status-border-opacity));
  border-left: 4px solid var(--color-error);
  border-radius: var(--radius-base);
  padding: var(--space-16);
  margin-bottom: var(--space-16);
}

.woocommerce-info {
  background-color: rgba(var(--color-info-rgb), var(--status-bg-opacity));
  color: var(--color-info);
  border-color: rgba(var(--color-info-rgb), var(--status-border-opacity));
  border-left: 4px solid var(--color-info);
  border-radius: var(--radius-base);
  padding: var(--space-16);
  margin-bottom: var(--space-16);
}

/* Unify look with theme surface + primary border */
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-primary);
  padding: var(--space-16) var(--space-20);
  border-radius: var(--radius-base);
  color: var(--color-text);
}

/* ====================================
   GLOBAL WRAPPER & ICONS
==================================== */

.woocommerce-notices-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-20);
}

/* Give room for Woo's ::before icon */
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info {
  position: relative;
  padding-left: var(--space-32);
}

/* Position Woo's ::before icon vertically centered */
.woocommerce-notices-wrapper .woocommerce-error::before,
.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before {
  position: absolute;
  left: var(--space-12);
  top: 50%;
  transform: translateY(-50%);
}

/* Inline <i> or SVG icons inside notices */
.woocommerce-notices-wrapper .woocommerce-error i,
.woocommerce-notices-wrapper .woocommerce-message i,
.woocommerce-notices-wrapper .woocommerce-info i,
.woocommerce-notices-wrapper .woocommerce-error svg,
.woocommerce-notices-wrapper .woocommerce-message svg,
.woocommerce-notices-wrapper .woocommerce-info svg {
  margin-right: var(--space-8);
}

/* ====================================
   ACCOUNT PAGE NOTICES
==================================== */

/* Base wrapper on account templates */
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-info {
  position: relative;
  padding-left: var(--space-32); /* space for icon */
}

.woocommerce-account .woocommerce-notices-wrapper .woocommerce-error::before,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-info::before {
  left: var(--space-12);
  top: 50%;
  transform: translateY(-50%);
}

/* Inside dashboard/cards content */
.ts-account-dashboard .woocommerce-error,
.ts-account-dashboard .woocommerce-message,
.ts-account-dashboard .woocommerce-info,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info {
  position: relative;
  padding-left: 40px;
  line-height: 1.4;
  background-position: 14px 50%;
  background-repeat: no-repeat;
}

.ts-account-dashboard .woocommerce-error::before,
.ts-account-dashboard .woocommerce-message::before,
.ts-account-dashboard .woocommerce-info::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info::before {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
}

/* Space between “Orders” heading and notices */
.ts-account-orders .ts-account-notices {
  margin-bottom: var(--space-16);
}

/* ====================================
   EMPTY CART NOTICE – CART PAGE ONLY
==================================== */

/* Centered pill notice for "Your cart is currently empty." */
.woocommerce-cart .cart-empty.woocommerce-info {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  line-height: 1.5;
  padding: 14px 18px;
  margin-bottom: 24px;
  border-radius: 999px;
  border: 1px solid rgba(94,82,64,0.2);
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

/* Override global absolute ::before positioning only here */
.woocommerce-cart .cart-empty.woocommerce-info::before {
  position: static;
  left: auto;
  top: auto;
  transform: none;
  margin: 0;
  flex: 0 0 auto;
}

/* Prevent inline icons in the message from colliding with text */
.woocommerce-cart .cart-empty.woocommerce-info i,
.woocommerce-cart .cart-empty.woocommerce-info svg {
  margin-right: 6px;
}

/* Space above "Return to shop" button */
.woocommerce-cart .cart-empty + .return-to-shop {
  margin-top: 20px;
}

/* ====================================
   CART: Empty-cart AJAX search bar
==================================== */

.ts-cart-search-wrapper {
  max-width: 520px;              /* // CART SEARCH: match cart content width */
  margin: 20px auto 10px;
}

.ts-cart-search-form {
  position: relative;            /* // CART SEARCH: anchor dropdown */
}

.ts-cart-search-input-wrap {
  position: relative;
}

.ts-cart-search-input {
  width: 100%;
  padding: 12px 16px 12px 42px;  /* // CART SEARCH: space for search icon */
  border-radius: 999px;
  border: 1px solid rgba(94,82,64,0.22);
  font-size: 0.98rem;
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

.ts-cart-search-input:focus {
  outline: none;
  border-color: #21808D;
  box-shadow: 0 0 0 3px rgba(33,128,141,0.18);
}

.ts-cart-search-icon {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: #626c71;
  font-size: 0.9rem;
  pointer-events: none;          /* // CART SEARCH: clicks go to input */
}

/* Dropdown results panel under the input */
.ts-cart-search-results {
  position: absolute;
  left: 0;
  right: 0;
  margin-top: 6px;
  background: #fff;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,0.06);
  box-shadow: 0 12px 30px rgba(0,0,0,0.08);
  max-height: 320px;
  overflow-y: auto;
  z-index: 50;
  display: none;                 /* // CART SEARCH: toggled via .is-open */
}

.ts-cart-search-results.is-open {
  display: block;
}

/* Single result row (product) */
.ts-cart-search-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  text-decoration: none;
  color: var(--color-text);
}

.ts-cart-search-item:hover {
  background-color: #f5f3ee;
}

.ts-cart-search-item img {
  width: 40px;
  height: 40px;
  object-fit: cover;
  border-radius: 8px;
}

/* Title + price layout */
.ts-cart-search-title {
  flex: 1;
}

.ts-cart-search-price {
  font-weight: 600;
  color: var(--color-primary);
}

/* Empty state inside dropdown */
.ts-cart-search-empty {
  padding: 10px 14px;
  font-size: 0.9rem;
  color: #777;
}

/* Make cart + checkout go full-width (you already do similar) */
.woocommerce-cart .site-content,
.woocommerce-checkout .site-content {
  max-width: 100%;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

/* Single product: use same width/padding rhythm as blog posts */
.single-product .site-content {
  max-width: 1100px;        /* align with ts-single-product-container */
  margin: 60px auto 80px;
  padding: 0 24px;          /* page-side padding */
}

@media (max-width: 768px) {
  .single-product .site-content {
    margin: 40px auto 60px;
    padding: 0 16px;
  }
}


/* ============================================================
   Tranquil Soul WooCommerce Final Scoped Corrections
   Keep this at the bottom of shop.css.
   Purpose: shop-only corrections without boxing the homepage/header.
============================================================ */

/* Never let shop.css box the general site canvas. Only WooCommerce pages are scoped below. */
.woocommerce-page:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.single-product) .site-content,
.post-type-archive-product .site-content,
.tax-product_cat .site-content,
.tax-product_tag .site-content,
.single-product .site-content {
  max-width: 1200px;
  margin: 40px auto 80px;
  padding: 0 var(--space-20);
}

/* Cart, checkout, and account can stay wide. */
.woocommerce-cart .site-content,
.woocommerce-checkout .site-content,
.woocommerce-account .site-content {
  width: 100%;
  max-width: none;
}

/* One final brand-consistent product action style. */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce ul.products li.product .added_to_cart.wc-forward {
  display: block;
  width: calc(100% - var(--space-32));
  box-sizing: border-box;
  margin: var(--space-8) var(--space-16) var(--space-16);
  text-align: center;
  border-radius: var(--radius-base);
  text-decoration: none;
}

.woocommerce ul.products li.product .added_to_cart,
.woocommerce ul.products li.product .added_to_cart.wc-forward {
  padding: var(--space-10) var(--space-16);
  background: #7D38A4;
  color: #ffffff;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  border: 0;
  transition: transform var(--duration-fast) var(--ease-standard),
              box-shadow var(--duration-fast) var(--ease-standard),
              background var(--duration-fast) var(--ease-standard);
}

.woocommerce ul.products li.product .added_to_cart:hover,
.woocommerce ul.products li.product .added_to_cart.wc-forward:hover {
  background: #6B2E8F;
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(125, 56, 164, 0.3);
}

/* ============================================================
   FINAL FIX - Product Card Add To Cart Buttons
   Fixes: buttons not filling card, old black/default button styles winning.
   Keep this at the bottom of shop.css.
============================================================ */

.woocommerce ul.products,
.woocommerce-page ul.products {
  align-items: stretch;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  padding-bottom: 0 !important;
}

.woocommerce ul.products li.product a.woocommerce-loop-product__link,
.woocommerce-page ul.products li.product a.woocommerce-loop-product__link {
  display: block;
  width: 100%;
  color: inherit;
  text-decoration: none;
}

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  display: block;
  padding-left: var(--space-16, 16px);
  padding-right: var(--space-16, 16px);
}

.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce-page ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce-page ul.products li.product .added_to_cart,
.woocommerce ul.products li.product .added_to_cart.wc-forward,
.woocommerce-page ul.products li.product .added_to_cart.wc-forward {
  position: relative !important;
  z-index: 5 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 48px !important;
  margin: auto 0 0 0 !important;
  padding: 13px 18px !important;
  box-sizing: border-box !important;
  border: 0 !important;
  border-radius: 0 0 var(--radius-lg, 12px) var(--radius-lg, 12px) !important;
  background: var(--color-primary, #7D38A4) !important;
  color: var(--color-btn-primary-text, #ffffff) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: capitalize !important;
  letter-spacing: 0 !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  box-shadow: none !important;
  transition: background 180ms ease, transform 180ms ease, box-shadow 180ms ease !important;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce-page ul.products li.product .button:hover,
.woocommerce ul.products li.product .add_to_cart_button:hover,
.woocommerce-page ul.products li.product .add_to_cart_button:hover,
.woocommerce ul.products li.product .added_to_cart:hover,
.woocommerce-page ul.products li.product .added_to_cart:hover,
.woocommerce ul.products li.product .added_to_cart.wc-forward:hover,
.woocommerce-page ul.products li.product .added_to_cart.wc-forward:hover {
  background: var(--color-primary-hover, #6B2E8F) !important;
  color: var(--color-btn-primary-text, #ffffff) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 8px 18px rgba(125, 56, 164, 0.22) !important;
}

.woocommerce ul.products li.product .button.loading,
.woocommerce-page ul.products li.product .button.loading,
.woocommerce ul.products li.product .add_to_cart_button.loading,
.woocommerce-page ul.products li.product .add_to_cart_button.loading {
  opacity: 0.75 !important;
  pointer-events: none !important;
}

.woocommerce ul.products li.product .button.added,
.woocommerce-page ul.products li.product .button.added,
.woocommerce ul.products li.product .add_to_cart_button.added,
.woocommerce-page ul.products li.product .add_to_cart_button.added {
  background: #21808D !important;
}

/* ============================================================
   FINAL WooCommerce My Account Layout
   Correct target: .woocommerce-MyAccount-wrapper
============================================================ */

/* Hide only the WordPress page title, not Account Dashboard */
body.woocommerce-account .entry-header,
body.woocommerce-account header.entry-header,
body.woocommerce-account .page-header,
body.woocommerce-account .page-title,
body.woocommerce-account .entry-title,
body.woocommerce-account main > h1:first-child,
body.woocommerce-account #primary > h1:first-child,
body.woocommerce-account .site-main > h1:first-child {
    display: none !important;
}

/* Reset Woo account page canvas */
body.woocommerce-account .site-content,
body.woocommerce-account .content-area,
body.woocommerce-account #primary,
body.woocommerce-account main.site-main,
body.woocommerce-account .site-main,
body.woocommerce-account .entry-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Main account wrapper */
body.woocommerce-account .woocommerce-MyAccount-wrapper,
body.woocommerce-account .ts-my-account-layout {
    width: min(1120px, calc(100% - 48px)) !important;
    max-width: 1120px !important;
    margin: 70px auto 90px !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 240px minmax(0, 1fr) !important;
    gap: 34px !important;
    align-items: start !important;
}

/* Stop old flex rules */
body.woocommerce-account .woocommerce-MyAccount-wrapper {
    flex-direction: initial !important;
}

/* Account navigation aside */
body.woocommerce-account .ts-my-account-nav {
    width: 100% !important;
    max-width: 240px !important;
    min-width: 0 !important;
}

/* Woo navigation itself */
body.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 100% !important;
    max-width: 240px !important;
    float: none !important;
    flex: none !important;
    margin: 0 !important;
    padding: 18px !important;
    background: #ffffff !important;
    border: 1px solid var(--color-card-border, rgba(0, 0, 0, 0.12)) !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.08) !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li {
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 46px !important;
    padding: 12px 14px !important;
    border-radius: 10px !important;
    border: 1px solid rgba(0, 0, 0, 0.10) !important;
    background: #ffffff !important;
    color: var(--color-text, #063642) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transform: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible {
    background: var(--color-primary, #21808d) !important;
    border-color: var(--color-primary, #21808d) !important;
    color: #ffffff !important;
}

/* Content column */
body.woocommerce-account .woocommerce-MyAccount-content,
body.woocommerce-account .ts-my-account-content {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    float: none !important;
    flex: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Dashboard section */
body.woocommerce-account .ts-account-dashboard {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Account Dashboard heading */
body.woocommerce-account .ts-account-title {
    display: block !important;
    margin: 0 0 14px !important;
    color: var(--color-text, #063642) !important;
    font-size: clamp(36px, 3.4vw, 52px) !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
}

/* Dashboard intro */
body.woocommerce-account .ts-account-subtitle {
    max-width: 760px !important;
    margin: 0 0 28px !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 14px !important;
    line-height: 1.65 !important;
}

/* Recent activity card */
body.woocommerce-account .ts-account-orders.card {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    border: 1px solid var(--color-card-border, rgba(0, 0, 0, 0.12)) !important;
    border-radius: 16px !important;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.06) !important;
    overflow: hidden !important;
}

body.woocommerce-account .ts-account-orders .card__body {
    padding: 26px !important;
}

body.woocommerce-account .ts-account-section-title {
    margin: 0 0 18px !important;
    color: var(--color-primary, #21808d) !important;
    font-size: 20px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
}

/* Inner Woo dashboard/orders content */
body.woocommerce-account .ts-account-notices,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error {
    width: 100% !important;
    max-width: none !important;
}

/* Tables */
body.woocommerce-account .woocommerce table.shop_table {
    width: 100% !important;
    max-width: none !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: #ffffff !important;
    border: 1px solid var(--color-card-border, rgba(0, 0, 0, 0.12)) !important;
    border-radius: 14px !important;
    overflow: hidden !important;
}

body.woocommerce-account .woocommerce table.shop_table th,
body.woocommerce-account .woocommerce table.shop_table td {
    padding: 16px !important;
}

/* Buttons */
body.woocommerce-account .woocommerce a.button,
body.woocommerce-account .woocommerce button.button,
body.woocommerce-account .woocommerce input.button,
body.woocommerce-account .ts-account-dashboard .btn {
    min-height: 42px !important;
    padding: 12px 18px !important;
    border-radius: 10px !important;
    border: 0 !important;
    background: var(--color-primary, #21808d) !important;
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.woocommerce-account .woocommerce a.button:hover,
body.woocommerce-account .woocommerce button.button:hover,
body.woocommerce-account .woocommerce input.button:hover,
body.woocommerce-account .ts-account-dashboard .btn:hover {
    background: var(--color-primary-hover, #1b6f79) !important;
    color: #ffffff !important;
}

/* Tablet */
@media (max-width: 900px) {
    body.woocommerce-account .woocommerce-MyAccount-wrapper,
    body.woocommerce-account .ts-my-account-layout {
        width: min(100% - 32px, 1120px) !important;
        margin: 42px auto 70px !important;
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }

    body.woocommerce-account .ts-my-account-nav,
    body.woocommerce-account .woocommerce-MyAccount-navigation {
        max-width: none !important;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation ul {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
}

/* Mobile */
@media (max-width: 575px) {
    body.woocommerce-account .woocommerce-MyAccount-wrapper,
    body.woocommerce-account .ts-my-account-layout {
        width: min(100% - 24px, 1120px) !important;
        margin: 30px auto 54px !important;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation {
        padding: 14px !important;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation ul {
        grid-template-columns: 1fr !important;
    }

    body.woocommerce-account .ts-account-title {
        font-size: 32px !important;
    }

    body.woocommerce-account .ts-account-orders .card__body {
        padding: 18px !important;
    }
}

/* ============================================================
   WooCommerce Cart Page: Hide Default WordPress Page Header
   Keeps custom cart heading only
============================================================ */

body.woocommerce-cart .entry-header,
body.woocommerce-cart header.entry-header,
body.woocommerce-cart .page-header,
body.woocommerce-cart .type-page > header,
body.woocommerce-cart article.page > header,
body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-cart .entry-meta,
body.woocommerce-cart .post-meta,
body.woocommerce-cart .posted-on,
body.woocommerce-cart .byline,
body.woocommerce-cart .author,
body.woocommerce-cart .updated,
body.woocommerce-cart .published {
    display: none !important;
}

/* Reset cart page top spacing after default title is hidden */
body.woocommerce-cart .site-content,
body.woocommerce-cart .content-area,
body.woocommerce-cart main.site-main,
body.woocommerce-cart #primary {
    padding-top: 0 !important;
}

/* Main cart page container */
body.woocommerce-cart .woocommerce {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin: 56px auto 90px !important;
}

/* If your custom cart heading is inside the Woo content, keep it visible */
body.woocommerce-cart .woocommerce h1,
body.woocommerce-cart .woocommerce h2,
body.woocommerce-cart .ts-cart-title,
body.woocommerce-cart .ts-page-title {
    display: block !important;
}

/* ============================================================
   FINAL WooCommerce Cart + Checkout Styling
   Scope: Cart and Checkout only
============================================================ */

/* Hide default WordPress page headers/meta on Woo system pages */
body.woocommerce-cart .entry-header,
body.woocommerce-cart header.entry-header,
body.woocommerce-cart .page-header,
body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-cart .entry-meta,
body.woocommerce-cart .post-meta,
body.woocommerce-cart .posted-on,
body.woocommerce-cart .byline,
body.woocommerce-checkout .entry-header,
body.woocommerce-checkout header.entry-header,
body.woocommerce-checkout .page-header,
body.woocommerce-checkout .entry-title,
body.woocommerce-checkout .page-title,
body.woocommerce-checkout .entry-meta,
body.woocommerce-checkout .post-meta,
body.woocommerce-checkout .posted-on,
body.woocommerce-checkout .byline {
    display: none !important;
}

/* Reset full page canvas */
body.woocommerce-cart .site-content,
body.woocommerce-cart .content-area,
body.woocommerce-cart main.site-main,
body.woocommerce-cart #primary,
body.woocommerce-cart .entry-content,
body.woocommerce-checkout .site-content,
body.woocommerce-checkout .content-area,
body.woocommerce-checkout main.site-main,
body.woocommerce-checkout #primary,
body.woocommerce-checkout .entry-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Page editor headings like "Your Shopping Cart" and "Secure Checkout" */
body.woocommerce-cart .entry-content > h1:first-child,
body.woocommerce-cart .entry-content > h2:first-child,
body.woocommerce-checkout .entry-content > h1:first-child,
body.woocommerce-checkout .entry-content > h2:first-child {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin: 54px auto 8px !important;
    padding: 0 !important;
    color: var(--color-text, #063642) !important;
    font-size: clamp(36px, 4vw, 56px) !important;
    line-height: 1.05 !important;
    font-weight: 950 !important;
    letter-spacing: -0.045em !important;
}

/* Page editor subtitle paragraph under title */
body.woocommerce-cart .entry-content > h1:first-child + p,
body.woocommerce-cart .entry-content > h2:first-child + p,
body.woocommerce-checkout .entry-content > h1:first-child + p,
body.woocommerce-checkout .entry-content > h2:first-child + p {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin: 0 auto 36px !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 16px !important;
    line-height: 1.65 !important;
}

/* Main WooCommerce containers */
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin: 0 auto 90px !important;
    padding: 0 !important;
}

/* ============================================================
   CART
============================================================ */

body.woocommerce-cart .ts-cart-wrapper {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 360px !important;
    gap: 34px !important;
    align-items: start !important;
    width: 100% !important;
    margin-top: 38px !important;
}

body.woocommerce-cart .woocommerce-cart-form {
    min-width: 0 !important;
    background: #ffffff !important;
    border: 1px solid var(--color-card-border, rgba(0, 0, 0, 0.12)) !important;
    border-radius: 22px !important;
    box-shadow: 0 16px 44px rgba(0, 0, 0, 0.065) !important;
    overflow: hidden !important;
}

body.woocommerce-cart table.shop_table {
    width: 100% !important;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: collapse !important;
    background: #ffffff !important;
}

body.woocommerce-cart table.shop_table thead {
    background: rgba(33, 128, 141, 0.075) !important;
}

body.woocommerce-cart table.shop_table th {
    padding: 18px 16px !important;
    color: var(--color-text, #063642) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.09) !important;
}

body.woocommerce-cart table.shop_table td {
    padding: 18px 16px !important;
    vertical-align: middle !important;
    color: var(--color-text, #063642) !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
}

body.woocommerce-cart .product-thumbnail {
    width: 82px !important;
}

body.woocommerce-cart .product-thumbnail img {
    width: 54px !important;
    height: 54px !important;
    object-fit: cover !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12) !important;
}

body.woocommerce-cart .product-name a {
    color: var(--color-primary, #21808d) !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
}

body.woocommerce-cart .product-name a:hover {
    color: var(--color-primary-hover, #1b6f79) !important;
    text-decoration: underline !important;
}

body.woocommerce-cart .product-price,
body.woocommerce-cart .product-subtotal {
    white-space: nowrap !important;
    font-weight: 800 !important;
}

body.woocommerce-cart .quantity input.qty {
    width: 64px !important;
    min-height: 42px !important;
    padding: 8px 10px !important;
    border: 1px solid rgba(0, 0, 0, 0.18) !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    color: var(--color-text, #063642) !important;
    text-align: center !important;
    font-weight: 800 !important;
}

body.woocommerce-cart .product-remove {
    width: 56px !important;
    text-align: center !important;
}

body.woocommerce-cart .product-remove a.remove {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(0, 0, 0, 0.06) !important;
    color: #111111 !important;
    text-decoration: none !important;
    font-size: 0 !important;
    line-height: 1 !important;
    transition: background 180ms ease, color 180ms ease, transform 180ms ease !important;
}

body.woocommerce-cart .product-remove a.remove::before {
    content: "×" !important;
    font-size: 24px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

body.woocommerce-cart .product-remove a.remove i {
    display: none !important;
}

body.woocommerce-cart .product-remove a.remove:hover {
    background: #dc2626 !important;
    color: #ffffff !important;
    transform: scale(1.06) !important;
}

/* Cart actions row */
body.woocommerce-cart td.actions {
    padding: 22px !important;
    background: rgba(0, 0, 0, 0.018) !important;
    text-align: right !important;
}

body.woocommerce-cart td.actions .button,
body.woocommerce-cart .cart_totals .button,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    min-height: 48px !important;
    padding: 14px 22px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--color-primary, #21808d) !important;
    color: #ffffff !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    text-decoration: none !important;
    box-shadow: 0 14px 30px rgba(33, 128, 141, 0.20) !important;
}

body.woocommerce-cart td.actions .button:hover,
body.woocommerce-cart .cart_totals .button:hover,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
    background: var(--color-primary-hover, #1b6f79) !important;
    color: #ffffff !important;
}

body.woocommerce-cart td.actions .button:disabled,
body.woocommerce-cart td.actions .button.disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

/* Cart totals */
body.woocommerce-cart .cart-collaterals {
    width: 100% !important;
    max-width: 360px !important;
    float: none !important;
    margin: 0 !important;
}

body.woocommerce-cart .cart_totals {
    width: 100% !important;
    float: none !important;
    background: #ffffff !important;
    border: 1px solid var(--color-card-border, rgba(0, 0, 0, 0.12)) !important;
    border-radius: 22px !important;
    box-shadow: 0 16px 44px rgba(0, 0, 0, 0.08) !important;
    overflow: hidden !important;
}

body.woocommerce-cart .cart_totals h2 {
    margin: 0 !important;
    padding: 24px 24px 18px !important;
    color: var(--color-text, #063642) !important;
    font-size: 28px !important;
    line-height: 1.1 !important;
    font-weight: 950 !important;
    letter-spacing: -0.035em !important;
}

body.woocommerce-cart .cart_totals table {
    margin: 0 !important;
    border: 0 !important;
}

body.woocommerce-cart .cart_totals th,
body.woocommerce-cart .cart_totals td {
    padding: 16px 24px !important;
    border-top: 1px solid rgba(0, 0, 0, 0.08) !important;
}

body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td {
    color: var(--color-primary, #21808d) !important;
    font-size: 20px !important;
    font-weight: 950 !important;
}

body.woocommerce-cart .wc-proceed-to-checkout {
    padding: 22px 24px 24px !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    width: 100% !important;
    margin: 0 !important;
}

/* ============================================================
   CHECKOUT
============================================================ */

body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout .woocommerce-info {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin: 0 auto 24px !important;
    padding: 18px 22px !important;
    border: 1px solid rgba(33, 128, 141, 0.14) !important;
    border-radius: 16px !important;
    background: rgba(33, 128, 141, 0.06) !important;
    color: var(--color-text, #063642) !important;
    box-shadow: none !important;
}

body.woocommerce-checkout form.checkout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 470px !important;
    gap: 36px !important;
    align-items: start !important;
    margin-top: 34px !important;
}

body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review {
    min-width: 0 !important;
}

body.woocommerce-checkout .col2-set {
    width: 100% !important;
    float: none !important;
}

body.woocommerce-checkout .col2-set .col-1,
body.woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
}

body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout .woocommerce-additional-fields,
body.woocommerce-checkout #order_review {
    background: #ffffff !important;
    border: 1px solid var(--color-card-border, rgba(0, 0, 0, 0.12)) !important;
    border-radius: 22px !important;
    box-shadow: 0 16px 44px rgba(0, 0, 0, 0.065) !important;
    padding: 28px !important;
}

body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout .woocommerce-additional-fields {
    margin-top: 24px !important;
}

body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3,
body.woocommerce-checkout #order_review_heading {
    margin: 0 0 22px !important;
    padding-bottom: 16px !important;
    border-bottom: 2px solid rgba(33, 128, 141, 0.18) !important;
    color: var(--color-primary, #21808d) !important;
    font-size: 24px !important;
    line-height: 1.15 !important;
    font-weight: 950 !important;
    letter-spacing: -0.025em !important;
}

body.woocommerce-checkout #order_review_heading {
    display: block !important;
    margin: 0 0 18px !important;
}

/* Fields */
body.woocommerce-checkout .form-row {
    margin: 0 0 18px !important;
    padding: 0 !important;
}

body.woocommerce-checkout .form-row label {
    margin-bottom: 8px !important;
    color: var(--color-text, #063642) !important;
    font-size: 14px !important;
    font-weight: 850 !important;
    line-height: 1.35 !important;
}

body.woocommerce-checkout .required {
    color: #dc2626 !important;
}

body.woocommerce-checkout input.input-text,
body.woocommerce-checkout textarea,
body.woocommerce-checkout select,
body.woocommerce-checkout .select2-container .select2-selection--single {
    width: 100% !important;
    min-height: 48px !important;
    padding: 12px 14px !important;
    border: 1px solid rgba(0, 0, 0, 0.16) !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    color: var(--color-text, #063642) !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
    box-shadow: none !important;
}

body.woocommerce-checkout textarea {
    min-height: 120px !important;
}

body.woocommerce-checkout input.input-text:focus,
body.woocommerce-checkout textarea:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout .select2-container--focus .select2-selection--single {
    outline: none !important;
    border-color: var(--color-primary, #21808d) !important;
    box-shadow: 0 0 0 4px rgba(33, 128, 141, 0.14) !important;
}

/* Checkout order table */
body.woocommerce-checkout .woocommerce-checkout-review-order-table {
    width: 100% !important;
    margin: 0 0 24px !important;
    border: 1px solid rgba(0, 0, 0, 0.10) !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td {
    padding: 16px !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
    background: rgba(33, 128, 141, 0.075) !important;
    color: var(--color-text, #063642) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td {
    color: var(--color-primary, #21808d) !important;
    font-size: 20px !important;
    font-weight: 950 !important;
}

/* Payment box */
body.woocommerce-checkout #payment {
    background: transparent !important;
    border: 0 !important;
}

body.woocommerce-checkout #payment ul.payment_methods {
    padding: 0 !important;
    border: 0 !important;
}

body.woocommerce-checkout #payment ul.payment_methods li {
    padding: 18px !important;
    border: 1px solid rgba(0, 0, 0, 0.10) !important;
    border-radius: 16px !important;
    background: #ffffff !important;
    margin-bottom: 14px !important;
}

body.woocommerce-checkout #payment div.payment_box {
    margin: 14px 0 0 !important;
    padding: 16px !important;
    border-radius: 14px !important;
    background: rgba(33, 128, 141, 0.06) !important;
    color: var(--color-text-secondary, #626c71) !important;
}

body.woocommerce-checkout #payment div.payment_box::before {
    display: none !important;
}

body.woocommerce-checkout #place_order {
    width: 100% !important;
    min-height: 54px !important;
    margin-top: 18px !important;
    padding: 15px 24px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--color-primary, #21808d) !important;
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 950 !important;
    line-height: 1.1 !important;
    box-shadow: 0 16px 36px rgba(33, 128, 141, 0.24) !important;
}

body.woocommerce-checkout #place_order:hover {
    background: var(--color-primary-hover, #1b6f79) !important;
}

/* Notices */
body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-checkout .woocommerce-notices-wrapper {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin: 24px auto !important;
}

/* ============================================================
   Responsive Cart + Checkout
============================================================ */

@media (max-width: 1100px) {
    body.woocommerce-cart .ts-cart-wrapper,
    body.woocommerce-checkout form.checkout {
        grid-template-columns: 1fr !important;
    }

    body.woocommerce-cart .cart-collaterals {
        max-width: none !important;
    }
}

@media (max-width: 760px) {
    body.woocommerce-cart .entry-content > h1:first-child,
    body.woocommerce-cart .entry-content > h2:first-child,
    body.woocommerce-checkout .entry-content > h1:first-child,
    body.woocommerce-checkout .entry-content > h2:first-child,
    body.woocommerce-cart .entry-content > h1:first-child + p,
    body.woocommerce-cart .entry-content > h2:first-child + p,
    body.woocommerce-checkout .entry-content > h1:first-child + p,
    body.woocommerce-checkout .entry-content > h2:first-child + p,
    body.woocommerce-cart .woocommerce,
    body.woocommerce-checkout .woocommerce,
    body.woocommerce-checkout .woocommerce-form-coupon-toggle,
    body.woocommerce-checkout .woocommerce-info {
        width: min(100% - 28px, 1180px) !important;
    }

    body.woocommerce-cart .ts-cart-wrapper,
    body.woocommerce-checkout form.checkout {
        margin-top: 26px !important;
        gap: 24px !important;
    }

    body.woocommerce-cart .woocommerce-cart-form,
    body.woocommerce-cart .cart_totals,
    body.woocommerce-checkout .woocommerce-billing-fields,
    body.woocommerce-checkout .woocommerce-shipping-fields,
    body.woocommerce-checkout .woocommerce-additional-fields,
    body.woocommerce-checkout #order_review {
        border-radius: 18px !important;
    }

    body.woocommerce-checkout .woocommerce-billing-fields,
    body.woocommerce-checkout .woocommerce-shipping-fields,
    body.woocommerce-checkout .woocommerce-additional-fields,
    body.woocommerce-checkout #order_review {
        padding: 22px !important;
    }
}

@media (max-width: 620px) {
    body.woocommerce-cart table.shop_table thead {
        display: none !important;
    }

    body.woocommerce-cart table.shop_table,
    body.woocommerce-cart table.shop_table tbody,
    body.woocommerce-cart table.shop_table tr,
    body.woocommerce-cart table.shop_table td {
        display: block !important;
        width: 100% !important;
    }

    body.woocommerce-cart table.shop_table tr.cart_item {
        padding: 18px !important;
        border-bottom: 1px solid rgba(0, 0, 0, 0.10) !important;
    }

    body.woocommerce-cart table.shop_table tr.cart_item td {
        padding: 8px 0 !important;
        border-bottom: 0 !important;
        text-align: left !important;
    }

    body.woocommerce-cart .product-thumbnail {
        width: 100% !important;
    }

    body.woocommerce-cart .product-thumbnail img {
        width: 72px !important;
        height: 72px !important;
    }

    body.woocommerce-cart td.actions {
        padding: 18px !important;
        text-align: left !important;
    }

    body.woocommerce-cart td.actions .button {
        width: 100% !important;
    }
}

/* ============================================================
   FINAL WooCommerce Shop Archive Styling
   Scope: Shop archive + product category/tag archives only
============================================================ */

body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag {
    background: var(--color-background, #ffffff) !important;
}

/* Main shop page container */
body.post-type-archive-product .site-content,
body.tax-product_cat .site-content,
body.tax-product_tag .site-content,
body.post-type-archive-product .content-area,
body.tax-product_cat .content-area,
body.tax-product_tag .content-area,
body.post-type-archive-product main.site-main,
body.tax-product_cat main.site-main,
body.tax-product_tag main.site-main,
body.post-type-archive-product #primary,
body.tax-product_cat #primary,
body.tax-product_tag #primary {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.post-type-archive-product .woocommerce,
body.tax-product_cat .woocommerce,
body.tax-product_tag .woocommerce {
    width: min(1320px, calc(100% - 48px)) !important;
    max-width: 1320px !important;
    margin: 56px auto 96px !important;
    padding: 0 !important;
}

/* Breadcrumb */
body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_tag .woocommerce-breadcrumb {
    margin: 0 0 32px !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

body.post-type-archive-product .woocommerce-breadcrumb a,
body.tax-product_cat .woocommerce-breadcrumb a,
body.tax-product_tag .woocommerce-breadcrumb a {
    color: var(--color-primary, #21808d) !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

body.post-type-archive-product .woocommerce-breadcrumb a:hover,
body.tax-product_cat .woocommerce-breadcrumb a:hover,
body.tax-product_tag .woocommerce-breadcrumb a:hover {
    text-decoration: underline !important;
}

/* Shop header */
body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header {
    margin: 0 0 38px !important;
    padding: 56px 32px 46px !important;
    border-radius: 28px !important;
    background:
        radial-gradient(circle at 12% 20%, rgba(125, 56, 164, 0.18), transparent 32%),
        radial-gradient(circle at 88% 10%, rgba(33, 128, 141, 0.18), transparent 30%),
        linear-gradient(135deg, #f8f1ff 0%, #f9f5ff 46%, #ecfbfa 100%) !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important;
    text-align: center !important;
    overflow: hidden !important;
}

body.post-type-archive-product .woocommerce-products-header__title,
body.tax-product_cat .woocommerce-products-header__title,
body.tax-product_tag .woocommerce-products-header__title,
body.post-type-archive-product .page-title,
body.tax-product_cat .page-title,
body.tax-product_tag .page-title {
    margin: 0 auto !important;
    color: var(--color-text, #063642) !important;
    font-size: clamp(42px, 5vw, 72px) !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    letter-spacing: -0.055em !important;
    text-align: center !important;
}

body.post-type-archive-product .term-description,
body.tax-product_cat .term-description,
body.tax-product_tag .term-description {
    max-width: 760px !important;
    margin: 18px auto 0 !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 17px !important;
    line-height: 1.65 !important;
}

/* Result count + sorting row */
body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count {
    margin: 0 0 28px !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.tax-product_tag .woocommerce-ordering {
    margin: 0 0 28px !important;
}

body.post-type-archive-product .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select,
body.tax-product_tag .woocommerce-ordering select {
    min-width: 220px !important;
    min-height: 46px !important;
    padding: 10px 42px 10px 14px !important;
    border: 1px solid rgba(0, 0, 0, 0.14) !important;
    border-radius: 12px !important;
    background-color: #ffffff !important;
    color: var(--color-text, #063642) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

/* Product grid */
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 28px !important;
    list-style: none !important;
}

body.post-type-archive-product ul.products::before,
body.post-type-archive-product ul.products::after,
body.tax-product_cat ul.products::before,
body.tax-product_cat ul.products::after,
body.tax-product_tag ul.products::before,
body.tax-product_tag ul.products::after {
    display: none !important;
}

/* Product card */
body.post-type-archive-product ul.products li.product,
body.tax-product_cat ul.products li.product,
body.tax-product_tag ul.products li.product {
    width: 100% !important;
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    background: #ffffff !important;
    border: 1px solid var(--color-card-border, rgba(0, 0, 0, 0.12)) !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    box-shadow: 0 14px 38px rgba(0, 0, 0, 0.065) !important;
    transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease !important;
}

body.post-type-archive-product ul.products li.product:hover,
body.tax-product_cat ul.products li.product:hover,
body.tax-product_tag ul.products li.product:hover {
    transform: translateY(-6px) !important;
    border-color: var(--color-primary, #21808d) !important;
    box-shadow: 0 22px 54px rgba(0, 0, 0, 0.105) !important;
}

/* Product image */
body.post-type-archive-product ul.products li.product a.woocommerce-LoopProduct-link,
body.tax-product_cat ul.products li.product a.woocommerce-LoopProduct-link,
body.tax-product_tag ul.products li.product a.woocommerce-LoopProduct-link {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    color: inherit !important;
    text-decoration: none !important;
}

body.post-type-archive-product ul.products li.product img,
body.tax-product_cat ul.products li.product img,
body.tax-product_tag ul.products li.product img {
    width: 100% !important;
    height: 310px !important;
    margin: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
    background: rgba(0, 0, 0, 0.04) !important;
    transition: transform 260ms ease !important;
}

body.post-type-archive-product ul.products li.product:hover img,
body.tax-product_cat ul.products li.product:hover img,
body.tax-product_tag ul.products li.product:hover img {
    transform: scale(1.035) !important;
}

/* Sale badge */
body.post-type-archive-product ul.products li.product .onsale,
body.tax-product_cat ul.products li.product .onsale,
body.tax-product_tag ul.products li.product .onsale {
    top: 14px !important;
    right: 14px !important;
    left: auto !important;
    min-height: auto !important;
    min-width: auto !important;
    margin: 0 !important;
    padding: 8px 11px !important;
    border-radius: 999px !important;
    background: #000000 !important;
    color: #ffffff !important;
    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

/* Product text */
body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
    min-height: 54px !important;
    margin: 0 !important;
    padding: 22px 22px 8px !important;
    color: var(--color-text, #063642) !important;
    font-size: 17px !important;
    line-height: 1.28 !important;
    font-weight: 900 !important;
    letter-spacing: -0.015em !important;
}

body.post-type-archive-product ul.products li.product .price,
body.tax-product_cat ul.products li.product .price,
body.tax-product_tag ul.products li.product .price {
    display: block !important;
    margin: 0 !important;
    padding: 0 22px 22px !important;
    color: var(--color-text, #063642) !important;
    font-size: 17px !important;
    line-height: 1.3 !important;
    font-weight: 900 !important;
}

body.post-type-archive-product ul.products li.product .price del,
body.tax-product_cat ul.products li.product .price del,
body.tax-product_tag ul.products li.product .price del {
    color: rgba(0, 0, 0, 0.45) !important;
    font-weight: 700 !important;
}

body.post-type-archive-product ul.products li.product .price ins,
body.tax-product_cat ul.products li.product .price ins,
body.tax-product_tag ul.products li.product .price ins {
    color: var(--color-primary, #21808d) !important;
    text-decoration: none !important;
}

/* Add to cart button */
body.post-type-archive-product ul.products li.product .button,
body.tax-product_cat ul.products li.product .button,
body.tax-product_tag ul.products li.product .button {
    width: calc(100% - 44px) !important;
    min-height: 48px !important;
    margin: auto 22px 22px !important;
    padding: 14px 18px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--color-primary, #21808d) !important;
    color: #ffffff !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    text-decoration: none !important;
    box-shadow: 0 14px 30px rgba(33, 128, 141, 0.20) !important;
    transition: background 180ms ease, transform 180ms ease, box-shadow 180ms ease !important;
}

body.post-type-archive-product ul.products li.product .button:hover,
body.tax-product_cat ul.products li.product .button:hover,
body.tax-product_tag ul.products li.product .button:hover {
    background: var(--color-primary-hover, #1b6f79) !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 18px 38px rgba(33, 128, 141, 0.26) !important;
}

/* Added to cart link */
body.post-type-archive-product ul.products li.product .added_to_cart,
body.tax-product_cat ul.products li.product .added_to_cart,
body.tax-product_tag ul.products li.product .added_to_cart {
    margin: -12px 22px 22px !important;
    color: var(--color-primary, #21808d) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    text-align: center !important;
    text-decoration: none !important;
}

/* Pagination */
body.post-type-archive-product .woocommerce-pagination,
body.tax-product_cat .woocommerce-pagination,
body.tax-product_tag .woocommerce-pagination {
    margin-top: 54px !important;
    display: flex !important;
    justify-content: center !important;
}

body.post-type-archive-product .woocommerce-pagination ul,
body.tax-product_cat .woocommerce-pagination ul,
body.tax-product_tag .woocommerce-pagination ul {
    border: 0 !important;
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

body.post-type-archive-product .woocommerce-pagination ul li,
body.tax-product_cat .woocommerce-pagination ul li,
body.tax-product_tag .woocommerce-pagination ul li {
    border: 0 !important;
}

body.post-type-archive-product .woocommerce-pagination .page-numbers,
body.tax-product_cat .woocommerce-pagination .page-numbers,
body.tax-product_tag .woocommerce-pagination .page-numbers {
    min-width: 42px !important;
    min-height: 42px !important;
    padding: 10px 14px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(0, 0, 0, 0.12) !important;
    background: #ffffff !important;
    color: var(--color-text, #063642) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 14px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
    text-decoration: none !important;
}

body.post-type-archive-product .woocommerce-pagination .page-numbers.current,
body.post-type-archive-product .woocommerce-pagination .page-numbers:hover,
body.tax-product_cat .woocommerce-pagination .page-numbers.current,
body.tax-product_cat .woocommerce-pagination .page-numbers:hover,
body.tax-product_tag .woocommerce-pagination .page-numbers.current,
body.tax-product_tag .woocommerce-pagination .page-numbers:hover {
    background: var(--color-primary, #21808d) !important;
    border-color: var(--color-primary, #21808d) !important;
    color: #ffffff !important;
}

/* Responsive */
@media (max-width: 1180px) {
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 860px) {
    body.post-type-archive-product .woocommerce,
    body.tax-product_cat .woocommerce,
    body.tax-product_tag .woocommerce {
        width: min(100% - 32px, 1320px) !important;
        margin-top: 38px !important;
    }

    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px !important;
    }

    body.post-type-archive-product ul.products li.product img,
    body.tax-product_cat ul.products li.product img,
    body.tax-product_tag ul.products li.product img {
        height: 260px !important;
    }
}

@media (max-width: 560px) {
    body.post-type-archive-product .woocommerce,
    body.tax-product_cat .woocommerce,
    body.tax-product_tag .woocommerce {
        width: min(100% - 24px, 1320px) !important;
    }

    body.post-type-archive-product .woocommerce-products-header,
    body.tax-product_cat .woocommerce-products-header,
    body.tax-product_tag .woocommerce-products-header {
        padding: 42px 20px 36px !important;
        border-radius: 20px !important;
    }

    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: 1fr !important;
    }

    body.post-type-archive-product ul.products li.product img,
    body.tax-product_cat ul.products li.product img,
    body.tax-product_tag ul.products li.product img {
        height: 300px !important;
    }

    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering,
    body.post-type-archive-product .woocommerce-result-count,
    body.tax-product_cat .woocommerce-result-count,
    body.tax-product_tag .woocommerce-result-count {
        width: 100% !important;
        float: none !important;
        text-align: left !important;
    }

    body.post-type-archive-product .woocommerce-ordering select,
    body.tax-product_cat .woocommerce-ordering select,
    body.tax-product_tag .woocommerce-ordering select {
        width: 100% !important;
    }
}

/* ============================================================
   FINAL Shop Width Correction
   Keeps shop archive premium but not full-screen wide
============================================================ */

body.post-type-archive-product .woocommerce,
body.tax-product_cat .woocommerce,
body.tax-product_tag .woocommerce {
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto 90px !important;
    padding: 0 !important;
}

/* Every main shop piece gets the same contained width */
body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_tag .woocommerce-breadcrumb,
body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header,
body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count,
body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.tax-product_tag .woocommerce-ordering,
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products,
body.post-type-archive-product .woocommerce-pagination,
body.tax-product_cat .woocommerce-pagination,
body.tax-product_tag .woocommerce-pagination {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Shop page top spacing */
body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_tag .woocommerce-breadcrumb {
    margin-top: 52px !important;
    margin-bottom: 28px !important;
}

/* Hero should be contained, not viewport-wide */
body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header {
    margin-top: 0 !important;
    margin-bottom: 38px !important;
    padding: clamp(46px, 5vw, 70px) 28px !important;
    border-radius: 24px !important;
}

/* Controls row */
body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count {
    float: left !important;
    margin-bottom: 28px !important;
}

body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.tax-product_tag .woocommerce-ordering {
    float: right !important;
    margin-bottom: 28px !important;
    text-align: right !important;
}

/* Clear float before product grid */
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products {
    clear: both !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 24px !important;
}

/* Product cards slightly tighter */
body.post-type-archive-product ul.products li.product,
body.tax-product_cat ul.products li.product,
body.tax-product_tag ul.products li.product {
    border-radius: 18px !important;
}

body.post-type-archive-product ul.products li.product img,
body.tax-product_cat ul.products li.product img,
body.tax-product_tag ul.products li.product img {
    height: 260px !important;
}

body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
    padding: 20px 18px 8px !important;
    font-size: 16px !important;
}

body.post-type-archive-product ul.products li.product .price,
body.tax-product_cat ul.products li.product .price,
body.tax-product_tag ul.products li.product .price {
    padding: 0 18px 20px !important;
}

body.post-type-archive-product ul.products li.product .button,
body.tax-product_cat ul.products li.product .button,
body.tax-product_tag ul.products li.product .button {
    width: calc(100% - 36px) !important;
    margin: auto 18px 20px !important;
}

/* Pagination spacing */
body.post-type-archive-product .woocommerce-pagination,
body.tax-product_cat .woocommerce-pagination,
body.tax-product_tag .woocommerce-pagination {
    margin-top: 52px !important;
}

/* Medium screens */
@media (max-width: 1180px) {
    body.post-type-archive-product .woocommerce-breadcrumb,
    body.tax-product_cat .woocommerce-breadcrumb,
    body.tax-product_tag .woocommerce-breadcrumb,
    body.post-type-archive-product .woocommerce-products-header,
    body.tax-product_cat .woocommerce-products-header,
    body.tax-product_tag .woocommerce-products-header,
    body.post-type-archive-product .woocommerce-result-count,
    body.tax-product_cat .woocommerce-result-count,
    body.tax-product_tag .woocommerce-result-count,
    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering,
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products,
    body.post-type-archive-product .woocommerce-pagination,
    body.tax-product_cat .woocommerce-pagination,
    body.tax-product_tag .woocommerce-pagination {
        width: min(100% - 40px, 1180px) !important;
    }

    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

/* Tablet */
@media (max-width: 860px) {
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px !important;
    }

    body.post-type-archive-product ul.products li.product img,
    body.tax-product_cat ul.products li.product img,
    body.tax-product_tag ul.products li.product img {
        height: 240px !important;
    }

    body.post-type-archive-product .woocommerce-result-count,
    body.tax-product_cat .woocommerce-result-count,
    body.tax-product_tag .woocommerce-result-count,
    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering {
        float: none !important;
        width: min(100% - 40px, 1180px) !important;
        text-align: left !important;
    }
}

/* Mobile */
@media (max-width: 560px) {
    body.post-type-archive-product .woocommerce-breadcrumb,
    body.tax-product_cat .woocommerce-breadcrumb,
    body.tax-product_tag .woocommerce-breadcrumb,
    body.post-type-archive-product .woocommerce-products-header,
    body.tax-product_cat .woocommerce-products-header,
    body.tax-product_tag .woocommerce-products-header,
    body.post-type-archive-product .woocommerce-result-count,
    body.tax-product_cat .woocommerce-result-count,
    body.tax-product_tag .woocommerce-result-count,
    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering,
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products,
    body.post-type-archive-product .woocommerce-pagination,
    body.tax-product_cat .woocommerce-pagination,
    body.tax-product_tag .woocommerce-pagination {
        width: min(100% - 24px, 1180px) !important;
    }

    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: 1fr !important;
    }

    body.post-type-archive-product ul.products li.product img,
    body.tax-product_cat ul.products li.product img,
    body.tax-product_tag ul.products li.product img {
        height: 300px !important;
    }

    body.post-type-archive-product .woocommerce-ordering select,
    body.tax-product_cat .woocommerce-ordering select,
    body.tax-product_tag .woocommerce-ordering select {
        width: 100% !important;
    }
}

/* ============================================================
   FINAL Shop Filter / Result Count Row Fix
   Keeps result count + sorting inside same shop container
============================================================ */

body.post-type-archive-product .woocommerce,
body.tax-product_cat .woocommerce,
body.tax-product_tag .woocommerce {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin: 52px auto 90px !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    column-gap: 24px !important;
    row-gap: 0 !important;
    align-items: center !important;
}

/* Full-width rows inside the shop container */
body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_tag .woocommerce-breadcrumb,
body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header,
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products,
body.post-type-archive-product .woocommerce-pagination,
body.tax-product_cat .woocommerce-pagination,
body.tax-product_tag .woocommerce-pagination,
body.post-type-archive-product .woocommerce-notices-wrapper,
body.tax-product_cat .woocommerce-notices-wrapper,
body.tax-product_tag .woocommerce-notices-wrapper {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Breadcrumb */
body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_tag .woocommerce-breadcrumb {
    margin-top: 0 !important;
    margin-bottom: 28px !important;
}

/* Hero contained inside .woocommerce */
body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header {
    margin-bottom: 36px !important;
}

/* Result count stays left inside container */
body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count {
    grid-column: 1 / 2 !important;
    width: auto !important;
    max-width: 100% !important;
    float: none !important;
    clear: none !important;
    margin: 0 0 30px !important;
    padding: 0 !important;
    justify-self: start !important;
    align-self: center !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

/* Sorting stays right inside container */
body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.tax-product_tag .woocommerce-ordering {
    grid-column: 2 / 3 !important;
    width: auto !important;
    max-width: 100% !important;
    float: none !important;
    clear: none !important;
    margin: 0 0 30px !important;
    padding: 0 !important;
    justify-self: end !important;
    align-self: center !important;
    text-align: right !important;
}

body.post-type-archive-product .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select,
body.tax-product_tag .woocommerce-ordering select {
    min-width: 220px !important;
    max-width: 100% !important;
}

/* Product grid starts below the filter row */
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products {
    clear: none !important;
    margin-top: 0 !important;
}

/* Tablet/mobile: stack result count and sorting */
@media (max-width: 760px) {
    body.post-type-archive-product .woocommerce,
    body.tax-product_cat .woocommerce,
    body.tax-product_tag .woocommerce {
        width: min(100% - 28px, 1180px) !important;
        grid-template-columns: 1fr !important;
        margin-top: 36px !important;
    }

    body.post-type-archive-product .woocommerce-result-count,
    body.tax-product_cat .woocommerce-result-count,
    body.tax-product_tag .woocommerce-result-count,
    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering {
        grid-column: 1 / -1 !important;
        width: 100% !important;
        justify-self: stretch !important;
        text-align: left !important;
    }

    body.post-type-archive-product .woocommerce-result-count,
    body.tax-product_cat .woocommerce-result-count,
    body.tax-product_tag .woocommerce-result-count {
        margin-bottom: 14px !important;
    }

    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering {
        margin-bottom: 26px !important;
    }

    body.post-type-archive-product .woocommerce-ordering select,
    body.tax-product_cat .woocommerce-ordering select,
    body.tax-product_tag .woocommerce-ordering select {
        width: 100% !important;
    }
}

/* ============================================================
   SIMPLE FINAL SHOP / CATEGORY LAYOUT FIX
   Paste at the VERY BOTTOM of shop.css
============================================================ */

/* Reset shop archive canvas */
body.post-type-archive-product .site-content,
body.tax-product_cat .site-content,
body.tax-product_tag .site-content,
body.post-type-archive-product .content-area,
body.tax-product_cat .content-area,
body.tax-product_tag .content-area,
body.post-type-archive-product #primary,
body.tax-product_cat #primary,
body.tax-product_tag #primary,
body.post-type-archive-product main.site-main,
body.tax-product_cat main.site-main,
body.tax-product_tag main.site-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* One proper centered shop container */
body.post-type-archive-product .woocommerce,
body.tax-product_cat .woocommerce,
body.tax-product_tag .woocommerce {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin: 52px auto 90px !important;
    padding: 0 !important;
}

/* Breadcrumb contained */
body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_tag .woocommerce-breadcrumb {
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 28px !important;
    padding: 0 !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 14px !important;
}

body.post-type-archive-product .woocommerce-breadcrumb a,
body.tax-product_cat .woocommerce-breadcrumb a,
body.tax-product_tag .woocommerce-breadcrumb a {
    color: var(--color-primary, #21808d) !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

/* Hero/category header contained */
body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header {
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 36px !important;
    padding: clamp(48px, 5vw, 72px) 32px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important;
    background:
        radial-gradient(circle at 12% 20%, rgba(125, 56, 164, 0.18), transparent 32%),
        radial-gradient(circle at 88% 10%, rgba(33, 128, 141, 0.18), transparent 30%),
        linear-gradient(135deg, #f8f1ff 0%, #f9f5ff 46%, #ecfbfa 100%) !important;
    text-align: center !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

body.post-type-archive-product .woocommerce-products-header__title,
body.tax-product_cat .woocommerce-products-header__title,
body.tax-product_tag .woocommerce-products-header__title,
body.post-type-archive-product .page-title,
body.tax-product_cat .page-title,
body.tax-product_tag .page-title {
    max-width: 920px !important;
    margin: 0 auto !important;
    color: var(--color-text, #063642) !important;
    font-size: clamp(44px, 5vw, 72px) !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    letter-spacing: -0.055em !important;
    text-align: center !important;
}

body.post-type-archive-product .term-description,
body.tax-product_cat .term-description,
body.tax-product_tag .term-description {
    max-width: 760px !important;
    margin: 18px auto 0 !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 17px !important;
    line-height: 1.65 !important;
    text-align: center !important;
}

body.post-type-archive-product .term-description p,
body.tax-product_cat .term-description p,
body.tax-product_tag .term-description p {
    margin: 0 !important;
}

/* Result count and sorting row */
body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count {
    float: left !important;
    width: auto !important;
    margin: 0 0 28px !important;
    padding: 0 !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 14px !important;
    line-height: 46px !important;
}

body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.tax-product_tag .woocommerce-ordering {
    float: right !important;
    width: auto !important;
    margin: 0 0 28px !important;
    padding: 0 !important;
}

body.post-type-archive-product .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select,
body.tax-product_tag .woocommerce-ordering select {
    width: 220px !important;
    min-height: 46px !important;
    padding: 10px 42px 10px 14px !important;
    border: 1px solid rgba(0, 0, 0, 0.14) !important;
    border-radius: 12px !important;
    background-color: #ffffff !important;
    color: var(--color-text, #063642) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
}

/* Product grid contained below controls */
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products {
    clear: both !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 24px !important;
    list-style: none !important;
}

body.post-type-archive-product ul.products::before,
body.post-type-archive-product ul.products::after,
body.tax-product_cat ul.products::before,
body.tax-product_cat ul.products::after,
body.tax-product_tag ul.products::before,
body.tax-product_tag ul.products::after {
    display: none !important;
    content: none !important;
}

/* Product cards */
body.post-type-archive-product ul.products li.product,
body.tax-product_cat ul.products li.product,
body.tax-product_tag ul.products li.product {
    width: 100% !important;
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    background: #ffffff !important;
    border: 1px solid var(--color-card-border, rgba(0, 0, 0, 0.12)) !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    box-shadow: 0 14px 38px rgba(0, 0, 0, 0.065) !important;
}

body.post-type-archive-product ul.products li.product:hover,
body.tax-product_cat ul.products li.product:hover,
body.tax-product_tag ul.products li.product:hover {
    transform: translateY(-5px) !important;
    border-color: var(--color-primary, #21808d) !important;
    box-shadow: 0 22px 54px rgba(0, 0, 0, 0.105) !important;
}

/* Product image */
body.post-type-archive-product ul.products li.product a.woocommerce-loop-product__link,
body.tax-product_cat ul.products li.product a.woocommerce-loop-product__link,
body.tax-product_tag ul.products li.product a.woocommerce-loop-product__link,
body.post-type-archive-product ul.products li.product a.woocommerce-LoopProduct-link,
body.tax-product_cat ul.products li.product a.woocommerce-LoopProduct-link,
body.tax-product_tag ul.products li.product a.woocommerce-LoopProduct-link {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    color: inherit !important;
    text-decoration: none !important;
}

body.post-type-archive-product ul.products li.product img,
body.tax-product_cat ul.products li.product img,
body.tax-product_tag ul.products li.product img {
    width: 100% !important;
    height: 260px !important;
    margin: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 18px 18px 0 0 !important;
}

/* Product title */
body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
    min-height: 54px !important;
    margin: 0 !important;
    padding: 20px 18px 8px !important;
    color: var(--color-text, #063642) !important;
    font-size: 16px !important;
    line-height: 1.28 !important;
    font-weight: 900 !important;
}

/* Product price */
body.post-type-archive-product ul.products li.product .price,
body.tax-product_cat ul.products li.product .price,
body.tax-product_tag ul.products li.product .price {
    display: block !important;
    margin: 0 !important;
    padding: 0 18px 20px !important;
    color: var(--color-text, #063642) !important;
    font-size: 17px !important;
    line-height: 1.3 !important;
    font-weight: 900 !important;
}

body.post-type-archive-product ul.products li.product .price ins,
body.tax-product_cat ul.products li.product .price ins,
body.tax-product_tag ul.products li.product .price ins {
    color: var(--color-primary, #21808d) !important;
    text-decoration: none !important;
}

/* Add to cart */
body.post-type-archive-product ul.products li.product .button,
body.tax-product_cat ul.products li.product .button,
body.tax-product_tag ul.products li.product .button,
body.post-type-archive-product ul.products li.product .add_to_cart_button,
body.tax-product_cat ul.products li.product .add_to_cart_button,
body.tax-product_tag ul.products li.product .add_to_cart_button,
body.post-type-archive-product ul.products li.product .added_to_cart,
body.tax-product_cat ul.products li.product .added_to_cart,
body.tax-product_tag ul.products li.product .added_to_cart {
    width: 100% !important;
    max-width: none !important;
    min-height: 48px !important;
    margin: auto 0 0 !important;
    padding: 14px 18px !important;
    border: 0 !important;
    border-radius: 0 0 18px 18px !important;
    background: var(--color-primary, #21808d) !important;
    color: #ffffff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    text-align: center !important;
    text-decoration: none !important;
    box-shadow: none !important;
}

/* Pagination */
body.post-type-archive-product .woocommerce-pagination,
body.tax-product_cat .woocommerce-pagination,
body.tax-product_tag .woocommerce-pagination {
    clear: both !important;
    width: 100% !important;
    margin: 54px 0 0 !important;
    display: flex !important;
    justify-content: center !important;
}

/* Responsive */
@media (max-width: 1180px) {
    body.post-type-archive-product .woocommerce,
    body.tax-product_cat .woocommerce,
    body.tax-product_tag .woocommerce {
        width: min(100% - 40px, 1180px) !important;
    }

    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 860px) {
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px !important;
    }

    body.post-type-archive-product ul.products li.product img,
    body.tax-product_cat ul.products li.product img,
    body.tax-product_tag ul.products li.product img {
        height: 240px !important;
    }
}

@media (max-width: 640px) {
    body.post-type-archive-product .woocommerce,
    body.tax-product_cat .woocommerce,
    body.tax-product_tag .woocommerce {
        width: min(100% - 24px, 1180px) !important;
        margin-top: 34px !important;
    }

    body.post-type-archive-product .woocommerce-products-header,
    body.tax-product_cat .woocommerce-products-header,
    body.tax-product_tag .woocommerce-products-header {
        padding: 42px 20px 36px !important;
        border-radius: 20px !important;
    }

    body.post-type-archive-product .woocommerce-result-count,
    body.tax-product_cat .woocommerce-result-count,
    body.tax-product_tag .woocommerce-result-count,
    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering {
        float: none !important;
        width: 100% !important;
        text-align: left !important;
        line-height: 1.5 !important;
    }

    body.post-type-archive-product .woocommerce-ordering select,
    body.tax-product_cat .woocommerce-ordering select,
    body.tax-product_tag .woocommerce-ordering select {
        width: 100% !important;
    }

    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: 1fr !important;
    }

    body.post-type-archive-product ul.products li.product img,
    body.tax-product_cat ul.products li.product img,
    body.tax-product_tag ul.products li.product img {
        height: 300px !important;
    }
}

/* ============================================================
   FINAL SHOP WIDTH FIX
   Keeps Shop, Product Categories, and Product Tags contained
============================================================ */

/* Full page reset only */
body.post-type-archive-product .site-content,
body.tax-product_cat .site-content,
body.tax-product_tag .site-content,
body.post-type-archive-product .content-area,
body.tax-product_cat .content-area,
body.tax-product_tag .content-area,
body.post-type-archive-product #primary,
body.tax-product_cat #primary,
body.tax-product_tag #primary,
body.post-type-archive-product main.site-main,
body.tax-product_cat main.site-main,
body.tax-product_tag main.site-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Main Woo wrapper */
body.post-type-archive-product .woocommerce,
body.tax-product_cat .woocommerce,
body.tax-product_tag .woocommerce {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 0 90px !important;
}

/* Contain each main shop section */
body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_tag .woocommerce-breadcrumb,
body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header,
body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count,
body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.tax-product_tag .woocommerce-ordering,
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products,
body.post-type-archive-product .woocommerce-pagination,
body.tax-product_cat .woocommerce-pagination,
body.tax-product_tag .woocommerce-pagination {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

/* Breadcrumb */
body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_tag .woocommerce-breadcrumb {
    margin-top: 52px !important;
    margin-bottom: 28px !important;
    padding: 0 !important;
    font-size: 14px !important;
}

/* Hero/category header */
body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header {
    margin-top: 0 !important;
    margin-bottom: 36px !important;
    padding: clamp(48px, 5vw, 72px) 32px !important;
    border-radius: 24px !important;
    background:
        radial-gradient(circle at 12% 20%, rgba(125, 56, 164, 0.18), transparent 32%),
        radial-gradient(circle at 88% 10%, rgba(33, 128, 141, 0.18), transparent 30%),
        linear-gradient(135deg, #f8f1ff 0%, #f9f5ff 46%, #ecfbfa 100%) !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important;
    text-align: center !important;
    overflow: hidden !important;
}

body.post-type-archive-product .woocommerce-products-header__title,
body.tax-product_cat .woocommerce-products-header__title,
body.tax-product_tag .woocommerce-products-header__title,
body.post-type-archive-product .page-title,
body.tax-product_cat .page-title,
body.tax-product_tag .page-title {
    max-width: 920px !important;
    margin: 0 auto !important;
    color: var(--color-text, #063642) !important;
    font-size: clamp(44px, 5vw, 72px) !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    letter-spacing: -0.055em !important;
    text-align: center !important;
}

body.post-type-archive-product .term-description,
body.tax-product_cat .term-description,
body.tax-product_tag .term-description {
    max-width: 760px !important;
    margin: 18px auto 0 !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 17px !important;
    line-height: 1.65 !important;
    text-align: center !important;
}

body.post-type-archive-product .term-description p,
body.tax-product_cat .term-description p,
body.tax-product_tag .term-description p {
    margin: 0 !important;
}

/* Result count and sorting */
body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count {
    float: left !important;
    clear: none !important;
    width: auto !important;
    max-width: none !important;
    margin-bottom: 28px !important;
    line-height: 46px !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 14px !important;
}

body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.tax-product_tag .woocommerce-ordering {
    float: right !important;
    clear: none !important;
    width: auto !important;
    max-width: none !important;
    margin-bottom: 28px !important;
}

body.post-type-archive-product .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select,
body.tax-product_tag .woocommerce-ordering select {
    width: 220px !important;
    min-height: 46px !important;
    padding: 10px 42px 10px 14px !important;
    border: 1px solid rgba(0, 0, 0, 0.14) !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    color: var(--color-text, #063642) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
}

/* Product grid */
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products {
    clear: both !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 24px !important;
    padding: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    list-style: none !important;
}

body.post-type-archive-product ul.products::before,
body.post-type-archive-product ul.products::after,
body.tax-product_cat ul.products::before,
body.tax-product_cat ul.products::after,
body.tax-product_tag ul.products::before,
body.tax-product_tag ul.products::after {
    display: none !important;
    content: none !important;
}

/* Product card */
body.post-type-archive-product ul.products li.product,
body.tax-product_cat ul.products li.product,
body.tax-product_tag ul.products li.product {
    width: 100% !important;
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    background: #ffffff !important;
    border: 1px solid var(--color-card-border, rgba(0, 0, 0, 0.12)) !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    box-shadow: 0 14px 38px rgba(0, 0, 0, 0.065) !important;
}

/* Product link and image */
body.post-type-archive-product ul.products li.product a.woocommerce-loop-product__link,
body.tax-product_cat ul.products li.product a.woocommerce-loop-product__link,
body.tax-product_tag ul.products li.product a.woocommerce-loop-product__link {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    color: inherit !important;
    text-decoration: none !important;
}

body.post-type-archive-product ul.products li.product img,
body.tax-product_cat ul.products li.product img,
body.tax-product_tag ul.products li.product img {
    width: 100% !important;
    height: 260px !important;
    margin: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 18px 18px 0 0 !important;
}

/* Product title and price */
body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
    min-height: 54px !important;
    margin: 0 !important;
    padding: 20px 18px 8px !important;
    color: var(--color-text, #063642) !important;
    font-size: 16px !important;
    line-height: 1.28 !important;
    font-weight: 900 !important;
}

body.post-type-archive-product ul.products li.product .price,
body.tax-product_cat ul.products li.product .price,
body.tax-product_tag ul.products li.product .price {
    display: block !important;
    margin: 0 !important;
    padding: 0 18px 20px !important;
    color: var(--color-text, #063642) !important;
    font-size: 17px !important;
    line-height: 1.3 !important;
    font-weight: 900 !important;
}

body.post-type-archive-product ul.products li.product .price ins,
body.tax-product_cat ul.products li.product .price ins,
body.tax-product_tag ul.products li.product .price ins {
    color: var(--color-primary, #21808d) !important;
    text-decoration: none !important;
}

/* Add to cart */
body.post-type-archive-product ul.products li.product .button,
body.tax-product_cat ul.products li.product .button,
body.tax-product_tag ul.products li.product .button {
    width: 100% !important;
    max-width: none !important;
    min-height: 48px !important;
    margin: auto 0 0 !important;
    padding: 14px 18px !important;
    border: 0 !important;
    border-radius: 0 0 18px 18px !important;
    background: var(--color-primary, #21808d) !important;
    color: #ffffff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    text-decoration: none !important;
}

/* Mobile */
@media (max-width: 1180px) {
    body.post-type-archive-product .woocommerce-breadcrumb,
    body.tax-product_cat .woocommerce-breadcrumb,
    body.tax-product_tag .woocommerce-breadcrumb,
    body.post-type-archive-product .woocommerce-products-header,
    body.tax-product_cat .woocommerce-products-header,
    body.tax-product_tag .woocommerce-products-header,
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products,
    body.post-type-archive-product .woocommerce-pagination,
    body.tax-product_cat .woocommerce-pagination,
    body.tax-product_tag .woocommerce-pagination {
        width: min(100% - 40px, 1180px) !important;
    }

    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 860px) {
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 640px) {
    body.post-type-archive-product .woocommerce-breadcrumb,
    body.tax-product_cat .woocommerce-breadcrumb,
    body.tax-product_tag .woocommerce-breadcrumb,
    body.post-type-archive-product .woocommerce-products-header,
    body.tax-product_cat .woocommerce-products-header,
    body.tax-product_tag .woocommerce-products-header,
    body.post-type-archive-product .woocommerce-result-count,
    body.tax-product_cat .woocommerce-result-count,
    body.tax-product_tag .woocommerce-result-count,
    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering,
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        width: min(100% - 24px, 1180px) !important;
    }

    body.post-type-archive-product .woocommerce-result-count,
    body.tax-product_cat .woocommerce-result-count,
    body.tax-product_tag .woocommerce-result-count,
    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering {
        float: none !important;
        line-height: 1.5 !important;
    }

    body.post-type-archive-product .woocommerce-ordering select,
    body.tax-product_cat .woocommerce-ordering select,
    body.tax-product_tag .woocommerce-ordering select {
        width: 100% !important;
    }

    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: 1fr !important;
    }
}

/* ============================================================
   SHOP FILTER ROW ONLY
   Fix result count + sorting width/alignment
============================================================ */

body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count {
    float: left !important;
    clear: none !important;
    width: auto !important;
    max-width: none !important;

    /* Match the 1180px shop container */
    margin-top: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 28px !important;
    margin-left: max(24px, calc((100vw - 1180px) / 2)) !important;

    padding: 0 !important;
    line-height: 46px !important;
    color: var(--color-text-secondary, #626c71) !important;
    font-size: 14px !important;
}

body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.tax-product_tag .woocommerce-ordering {
    float: right !important;
    clear: none !important;
    width: auto !important;
    max-width: none !important;

    /* Match the 1180px shop container */
    margin-top: 0 !important;
    margin-right: max(24px, calc((100vw - 1180px) / 2)) !important;
    margin-bottom: 28px !important;
    margin-left: 0 !important;

    padding: 0 !important;
    text-align: right !important;
}

body.post-type-archive-product .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select,
body.tax-product_tag .woocommerce-ordering select {
    width: 220px !important;
    min-height: 46px !important;
}

/* Product grid must start below the filter row */
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products {
    clear: both !important;
}

/* Mobile/tablet stack */
@media (max-width: 640px) {
    body.post-type-archive-product .woocommerce-result-count,
    body.tax-product_cat .woocommerce-result-count,
    body.tax-product_tag .woocommerce-result-count,
    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering {
        float: none !important;
        width: min(100% - 24px, 1180px) !important;
        max-width: 1180px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: left !important;
        line-height: 1.5 !important;
    }

    body.post-type-archive-product .woocommerce-result-count,
    body.tax-product_cat .woocommerce-result-count,
    body.tax-product_tag .woocommerce-result-count {
        margin-bottom: 14px !important;
    }

    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering {
        margin-bottom: 28px !important;
    }

    body.post-type-archive-product .woocommerce-ordering select,
    body.tax-product_cat .woocommerce-ordering select,
    body.tax-product_tag .woocommerce-ordering select {
        width: 100% !important;
    }
}