/**
 * Soft Flames WooCommerce Styles
 *
 * Premium Store Presentation, Pack Sales Display, Mobile Sticky Purchase Bar
 */

/* ----------------------------------------------------
 * 1. Catalog & Product Grid
 * ---------------------------------------------------- */
.sf-shop-wrapper {
  padding-top: var(--sf-space-6);
  padding-bottom: var(--sf-space-16);
}

.woocommerce ul.products,
.sf-product-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sf-space-6);
  list-style: none;
  margin: var(--sf-space-8) 0;
  padding: 0;
}

/* 2 Columns on mobile 480px+ */
@media (min-width: 480px) {
  .woocommerce ul.products,
  .sf-product-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--sf-space-4);
  }
}

/* 3 Columns on tablet 768px+ */
@media (min-width: 768px) {
  .woocommerce ul.products,
  .sf-product-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sf-space-6);
  }
}

/* 4 Columns on desktop 1024px+ */
@media (min-width: 1024px) {
  .woocommerce ul.products,
  .sf-product-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--sf-space-6);
  }
}

/* ----------------------------------------------------
 * 2. Premium Product Card (.sf-product-card)
 * ---------------------------------------------------- */
.sf-product-card,
.woocommerce ul.products li.product {
  position: relative;
  background-color: var(--sf-color-surface);
  border: 1px solid var(--sf-color-border);
  border-radius: var(--sf-radius-md);
  overflow: hidden;
  transition: transform var(--sf-transition), box-shadow var(--sf-transition), border-color var(--sf-transition);
  display: flex;
  flex-direction: column;
}

.sf-product-card:hover,
.woocommerce ul.products li.product:hover {
  transform: translateY(-2px);
  box-shadow: var(--sf-shadow-md);
  border-color: var(--sf-color-gold-light);
}

.sf-product-card__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* Image Container with Object-Fit Contain */
.sf-product-card__media {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  background-color: var(--sf-color-bg-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sf-space-4);
  overflow: hidden;
}

.sf-product-card__img,
.woocommerce ul.products li.product img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  transition: transform var(--sf-transition-slow);
}

.sf-product-card:hover .sf-product-card__img,
.woocommerce ul.products li.product:hover img {
  transform: scale(1.04);
}

/* ----------------------------------------------------
 * Badges (1-2 max, calm & accessible)
 * ---------------------------------------------------- */
.sf-product-card__badges {
  position: absolute;
  top: 10px;
  left: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 2;
  pointer-events: none;
}

.sf-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 3px 8px;
  border-radius: var(--sf-radius-xs);
  line-height: 1.2;
}

.sf-badge--sale {
  background-color: var(--sf-color-sale);
  color: #FFFFFF;
}

.sf-badge--pack {
  background-color: var(--sf-color-heading);
  color: #FFFFFF;
}

/* ----------------------------------------------------
 * Card Body
 * ---------------------------------------------------- */
.sf-product-card__body {
  padding: var(--sf-space-4);
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.sf-product-card__cat {
  font-size: var(--sf-text-xs);
  color: var(--sf-color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--sf-space-1);
}

.sf-product-card__title {
  font-family: var(--sf-font-body);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  margin-bottom: var(--sf-space-2);
  min-height: 2.7em;
}

.sf-product-card__title a {
  color: var(--sf-color-heading);
}

.sf-product-card__title a:hover {
  color: var(--sf-color-gold-accessible);
}

/* Pricing Hierarchy */
.sf-product-card__pricing {
  margin-top: auto;
  margin-bottom: var(--sf-space-4);
}

.sf-product-card__main-price {
  font-family: var(--sf-font-body);
  font-size: var(--sf-text-lg);
  font-weight: 700;
  color: var(--sf-color-heading);
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.sf-product-card__pack-unit {
  font-size: var(--sf-text-xs);
  font-weight: 500;
  color: var(--sf-color-text-muted);
}

.sf-product-card__unit-price {
  font-size: var(--sf-text-xs);
  color: var(--sf-color-text-muted);
  margin-top: 2px;
}

.sf-product-card__unit-price .woocommerce-Price-amount {
  color: var(--sf-color-gold-accessible);
  font-weight: 600;
}

.sf-product-card__cta {
  margin-top: auto;
}

/* ----------------------------------------------------
 * 3. Single Product Page & Breadcrumbs
 * ---------------------------------------------------- */
.sf-breadcrumbs {
  font-size: var(--sf-text-xs);
  color: var(--sf-color-text-muted);
  margin-bottom: var(--sf-space-6);
  line-height: 1.6;
}

.sf-breadcrumbs a {
  color: var(--sf-color-text-muted);
  transition: color var(--sf-transition);
}

.sf-breadcrumbs a:hover {
  color: var(--sf-color-gold-accessible);
}

.sf-breadcrumb-sep {
  margin: 0 var(--sf-space-2);
  color: var(--sf-color-border);
}

.sf-breadcrumb-item:last-child {
  color: var(--sf-color-heading);
  font-weight: 500;
}

.woocommerce div.product {
  margin-top: var(--sf-space-6);
  margin-bottom: var(--sf-space-16);
}

.sf-single-price-block {
  margin: var(--sf-space-4) 0;
  padding-bottom: var(--sf-space-4);
  border-bottom: 1px solid var(--sf-color-border-light);
}

.sf-single-price {
  font-size: var(--sf-text-3xl) !important;
  font-weight: 700;
  color: var(--sf-color-heading) !important;
}

.sf-price-pack-suffix {
  font-size: var(--sf-text-sm);
  font-weight: 500;
  color: var(--sf-color-text-muted);
}

.sf-single-unit-price {
  margin-top: var(--sf-space-1);
  font-size: var(--sf-text-sm);
  color: var(--sf-color-text-muted);
}

.sf-single-unit-price strong {
  color: var(--sf-color-gold-accessible);
  font-weight: 700;
}

/* ----------------------------------------------------
 * Variations Form & Accessible Select Dropdown
 * ---------------------------------------------------- */
.woocommerce div.product form.cart,
.elementor-widget-woocommerce-product-add-to-cart form.cart {
  margin: var(--sf-space-6) 0;
}

.woocommerce div.product form.cart .variations,
.elementor-widget-woocommerce-product-add-to-cart form.cart .variations {
  width: 100% !important;
  border: none !important;
  margin-bottom: var(--sf-space-5) !important;
  border-collapse: separate !important;
  border-spacing: 0 var(--sf-space-4) !important;
}

.woocommerce div.product form.cart .variations tr,
.elementor-widget-woocommerce-product-add-to-cart form.cart .variations tr {
  border: none !important;
}

.woocommerce div.product form.cart .variations th.label,
.elementor-widget-woocommerce-product-add-to-cart form.cart .variations th.label {
  padding: var(--sf-space-2) var(--sf-space-4) var(--sf-space-2) 0 !important;
  vertical-align: middle !important;
  text-align: left !important;
  width: 110px !important;
  min-width: 90px !important;
}

.woocommerce div.product form.cart .variations th.label label,
.elementor-widget-woocommerce-product-add-to-cart form.cart .variations th.label label {
  font-family: var(--sf-font-body) !important;
  font-size: var(--sf-text-sm) !important;
  font-weight: 600 !important;
  color: var(--sf-color-heading) !important;
  cursor: pointer !important;
  display: block !important;
}

.woocommerce div.product form.cart .variations td.value,
.elementor-widget-woocommerce-product-add-to-cart form.cart .variations td.value {
  vertical-align: middle !important;
  padding: 0 !important;
  position: relative !important;
}

/* Premium Select Dropdown (Fixes 0px collapsed line) */
.woocommerce div.product form.cart .variations select,
.woocommerce div.product form.cart select,
.elementor-widget-woocommerce-product-add-to-cart form.cart select {
  display: block !important;
  width: 100% !important;
  max-width: 440px !important;
  min-height: 48px !important;
  height: 48px !important;
  line-height: 46px !important;
  padding: 0 44px 0 var(--sf-space-4) !important;
  font-family: var(--sf-font-body) !important;
  font-size: var(--sf-text-sm) !important;
  font-weight: 500 !important;
  color: var(--sf-color-heading) !important;
  background-color: var(--sf-color-surface) !important;
  border: 1.5px solid var(--sf-color-border) !important;
  border-radius: var(--sf-radius-sm) !important;
  cursor: pointer !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23474747' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 16px 16px !important;
  transition: border-color var(--sf-transition), box-shadow var(--sf-transition) !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.woocommerce div.product form.cart .variations select:hover,
.woocommerce div.product form.cart select:hover {
  border-color: var(--sf-color-gold) !important;
}

.woocommerce div.product form.cart .variations select:focus,
.woocommerce div.product form.cart select:focus {
  outline: none !important;
  border-color: var(--sf-color-gold) !important;
  box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.25) !important;
}

/* Reset / Clear Variations Link */
.woocommerce div.product form.cart a.reset_variations,
.elementor-widget-woocommerce-product-add-to-cart form.cart a.reset_variations {
  display: inline-block !important;
  margin-top: var(--sf-space-2) !important;
  font-size: var(--sf-text-xs) !important;
  font-weight: 600 !important;
  color: var(--sf-color-gold-accessible) !important;
  text-decoration: underline !important;
  cursor: pointer !important;
  transition: color var(--sf-transition) !important;
}

.woocommerce div.product form.cart a.reset_variations:hover {
  color: var(--sf-color-heading) !important;
}

/* Single Variation Wrap & Pricing */
.woocommerce div.product .single_variation_wrap {
  margin-top: var(--sf-space-4);
}

.woocommerce div.product .woocommerce-variation {
  margin-bottom: var(--sf-space-4);
}

.woocommerce div.product .woocommerce-variation-price {
  font-size: var(--sf-text-xl);
  font-weight: 700;
  color: var(--sf-color-heading);
  margin-bottom: var(--sf-space-2);
}

.woocommerce div.product .woocommerce-variation-availability {
  font-size: var(--sf-text-xs);
  color: var(--sf-color-text-muted);
}

/* Add-to-Cart Row (Quantity + Submit Button) */
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart:not(.variations_form),
.elementor-widget-woocommerce-product-add-to-cart form.cart .woocommerce-variation-add-to-cart {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: var(--sf-space-3) !important;
  margin-top: var(--sf-space-3) !important;
}

/* Quantity Input */
.woocommerce div.product form.cart .quantity,
.elementor-widget-woocommerce-product-add-to-cart form.cart .quantity {
  display: inline-flex !important;
  align-items: center !important;
}

.woocommerce div.product form.cart .quantity input.qty,
.elementor-widget-woocommerce-product-add-to-cart form.cart .quantity input.qty {
  width: 76px !important;
  min-height: 48px !important;
  height: 48px !important;
  padding: 0 var(--sf-space-2) !important;
  text-align: center !important;
  font-family: var(--sf-font-body) !important;
  font-size: var(--sf-text-base) !important;
  font-weight: 700 !important;
  color: var(--sf-color-heading) !important;
  background-color: var(--sf-color-surface) !important;
  border: 1.5px solid var(--sf-color-border) !important;
  border-radius: var(--sf-radius-sm) !important;
}

.woocommerce div.product form.cart .quantity input.qty:focus {
  outline: none !important;
  border-color: var(--sf-color-gold) !important;
  box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.2) !important;
}

/* Single Add to Cart Button */
.woocommerce div.product form.cart button.single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button,
.elementor-widget-woocommerce-product-add-to-cart form.cart button.single_add_to_cart_button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  height: 48px !important;
  padding: 0 var(--sf-space-8) !important;
  font-family: var(--sf-font-body) !important;
  font-size: var(--sf-text-sm) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  color: var(--sf-color-heading) !important;
  background-color: var(--sf-color-gold) !important;
  border: 1px solid var(--sf-color-gold) !important;
  border-radius: var(--sf-radius-sm) !important;
  cursor: pointer !important;
  transition: background-color var(--sf-transition), transform var(--sf-transition), opacity var(--sf-transition) !important;
}

.woocommerce div.product form.cart button.single_add_to_cart_button:hover:not(:disabled):not(.disabled) {
  background-color: var(--sf-color-gold-light) !important;
  border-color: var(--sf-color-gold-light) !important;
  transform: translateY(-1px) !important;
}

/* Disabled State When Variation Is Not Yet Chosen */
.woocommerce div.product form.cart button.single_add_to_cart_button.disabled,
.woocommerce div.product form.cart button.single_add_to_cart_button:disabled,
.elementor-widget-woocommerce-product-add-to-cart form.cart button.single_add_to_cart_button.disabled {
  opacity: 0.6 !important;
  cursor: not-allowed !important;
  background-color: #E5DFC8 !important;
  border-color: #D8D1B6 !important;
  color: #6B6555 !important;
  transform: none !important;
}

/* Compatibility with Variation Swatches Plugins */
.tawcvs-swatches,
.woo-variation-swatches,
.swatches-select {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 4px !important;
}

/* Quantity Note */
.sf-qty-note {
  display: inline-block;
  margin-left: var(--sf-space-3);
  font-size: var(--sf-text-sm);
  color: var(--sf-color-text-muted);
  font-weight: 500;
}

/* Wholesale Tier Cards */
.sf-tier-pricing {
  margin: var(--sf-space-6) 0;
  padding: var(--sf-space-4);
  background-color: var(--sf-color-bg-alt);
  border: 1px solid var(--sf-color-border);
  border-radius: var(--sf-radius-md);
}

.sf-tier-pricing__title {
  font-size: var(--sf-text-sm);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--sf-space-3);
}

.sf-tier-pricing__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--sf-space-3);
}

.sf-tier-card {
  background: var(--sf-color-surface);
  border: 1px solid var(--sf-color-border);
  padding: var(--sf-space-3);
  border-radius: var(--sf-radius-sm);
  text-align: center;
}

.sf-tier-card__qty {
  display: block;
  font-size: var(--sf-text-xs);
  color: var(--sf-color-text-muted);
}

.sf-tier-card__discount {
  display: block;
  font-size: var(--sf-text-xl);
  font-weight: 700;
  color: var(--sf-color-gold-accessible);
  margin: 2px 0;
}

.sf-tier-card__price {
  font-size: var(--sf-text-xs);
  color: var(--sf-color-heading);
}

.sf-tier-pricing__note {
  font-size: var(--sf-text-xs);
  color: var(--sf-color-text-muted);
  margin-top: var(--sf-space-2);
  margin-bottom: 0;
}

/* ----------------------------------------------------
 * 4. Sticky Purchase Bar
 * ---------------------------------------------------- */
.sf-sticky-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: var(--sf-color-surface);
  border-top: 1px solid var(--sf-color-border);
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
  padding: var(--sf-space-3) 0;
  z-index: 990;
  transform: translateY(100%);
  transition: transform var(--sf-transition);
}

.sf-sticky-bar--visible {
  transform: translateY(0);
}

.sf-sticky-bar__container {
  max-width: var(--sf-container-width);
  margin: 0 auto;
  padding: 0 var(--sf-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sf-sticky-bar__product {
  display: flex;
  align-items: center;
  gap: var(--sf-space-3);
  overflow: hidden;
}

.sf-sticky-bar__thumb {
  width: 44px;
  height: 44px;
  object-fit: contain;
  border-radius: var(--sf-radius-xs);
  background: var(--sf-color-bg-alt);
  flex-shrink: 0;
}

.sf-sticky-bar__meta {
  display: flex;
  flex-direction: column;
}

.sf-sticky-bar__title {
  font-size: var(--sf-text-sm);
  font-weight: 600;
  color: var(--sf-color-heading);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 280px;
}

.sf-sticky-bar__price {
  font-size: var(--sf-text-sm);
  font-weight: 700;
  color: var(--sf-color-gold-accessible);
}

.sf-sticky-bar__btn {
  min-height: 42px;
  padding: 0 var(--sf-space-5);
  font-size: var(--sf-text-xs);
}

/* ----------------------------------------------------
 * 5. Trust Badges Component (Single Product)
 * ---------------------------------------------------- */
.sf-trust-badges {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sf-space-3);
  margin-top: var(--sf-space-6);
  padding: var(--sf-space-4);
  background-color: var(--sf-color-bg-alt);
  border: 1px solid var(--sf-color-border-light);
  border-radius: var(--sf-radius-md);
}

@media (min-width: 540px) {
  .sf-trust-badges {
    grid-template-columns: repeat(2, 1fr);
  }
}

.sf-trust-badge {
  display: flex;
  align-items: flex-start;
  gap: var(--sf-space-3);
}

.sf-trust-badge__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background-color: var(--sf-color-surface);
  border: 1px solid var(--sf-color-border);
  border-radius: var(--sf-radius-full);
  color: var(--sf-color-gold-accessible);
  flex-shrink: 0;
}

.sf-trust-badge__content {
  display: flex;
  flex-direction: column;
}

.sf-trust-badge__content strong {
  font-size: var(--sf-text-xs);
  font-weight: 700;
  color: var(--sf-color-heading);
  line-height: 1.3;
}

.sf-trust-badge__content span {
  font-size: 11px;
  color: var(--sf-color-text-muted);
  line-height: 1.3;
  margin-top: 1px;
}
