/* PDP color/size swatches (Flatsome ux-swatch) */
/* Shared PDP tokens (safe fallbacks for Flatsome reuse) */
.single-product {
  --vs-text: var(--vn-fg, #111111);
  --vs-muted: var(--vn-muted, #6b6b6b);
  --vs-soft: #8a8a8a;
  --vs-border: var(--vn-border, #e8e8e8);
  --vs-bg: #ffffff;
  --vs-bg-soft: #f7f7f7;
  --vs-accent: var(--fs-color-primary, #f16d30);
  --vs-radius: 8px;
  --vs-ease: 180ms ease;
  --vs-s1: 4px;
  --vs-s2: 8px;
  --vs-s3: 12px;
  --vs-s4: 16px;
  --vs-s5: 24px;
  --vs-s6: 32px;
}
.single-product .variations {
  margin-bottom: 0px;
  width: 100%;
  border: 0;
}

.single-product .variations tr,
.single-product .product-summary table.variations tr + tr,
.single-product .product-info table.variations tr + tr {
  display: block;
  margin-bottom: var(--vs-s5);
  border: 0;
  border-top: 0;
}
.single-product .variations tr:last-child {
  margin-bottom: 0px !important;
}
.single-product .variations td,
.single-product .variations th {
  display: block;
  padding: 0;
  border: 0;
  width: 100% !important;
  background: transparent;
}

.single-product .variations .label {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0;
  margin-bottom: var(--vs-s3);
  position: relative;
}

.single-product .variations .label label {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--vs-text);
}

.single-product .ux-swatch-selected-value {
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--vs-accent);
}

.single-product .ux-swatch-selected-value__separator {
  font-size: 0;
}

.single-product .ux-swatch-selected-value__separator::before {
  content: ": ";
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--vs-text);
}

.single-product .ux-swatches {
  gap: var(--vs-s2);
  margin: 0;
}

.single-product .variations select {
  border-radius: 6px;
}

/* Color swatches */
.single-product .ux-swatches-attribute-ux_image .ux-swatch--image {
  width: 46px;
  height: 46px;
  padding: 2px;
  box-shadow: none;
  border: 1px solid #ddd;
  overflow: hidden;
  border-radius: 50%;
  transition: border-color var(--vs-ease), box-shadow var(--vs-ease);
}

.single-product .ux-swatches-attribute-ux_image .ux-swatch--image img,
.single-product .ux-swatches-attribute-ux_image .ux-swatch__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

.single-product .ux-swatches-attribute-ux_image .ux-swatch.selected {
  border-color: var(--vs-text);
  border-width: 2px;
  box-shadow: none;
  padding: 1px;
}

.single-product .ux-swatches-attribute-ux_image .ux-swatch:hover:not(.selected):not(.disabled) {
  border-color: #777;
  box-shadow: none;
}

.single-product .ux-swatches-attribute-ux_image .ux-swatch.disabled {
  opacity: 0.35;
  cursor: not-allowed;
  position: relative;
}

.single-product .ux-swatches-attribute-ux_image .ux-swatch.disabled::after {
  content: "";
  position: absolute;
  inset: 20% 45%;
  background: #111;
  height: 1px;
  width: 70%;
  left: 15%;
  top: 50%;
  transform: rotate(-45deg);
}

/* Size buttons */
.single-product .ux-swatches-attribute-ux_label .ux-swatch--label {
  min-width: 52px;
  min-height: 46px;
  padding: 0 14px;
  border-radius: 6px;
  background: #fff;
  border: 1px solid #ddd;
  box-shadow: none;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--vs-text);
  transition: background var(--vs-ease), color var(--vs-ease), border-color var(--vs-ease);
}

.single-product .ux-swatches-attribute-ux_label .ux-swatch--label:hover:not(.selected):not(.disabled) {
  border-color: var(--vs-text);
  background: #fff;
  box-shadow: none;
}

.single-product .ux-swatches-attribute-ux_label .ux-swatch--label.selected {
  background: var(--vs-text);
  color: #fff;
  border-color: var(--vs-text);
  box-shadow: none;
}

.single-product .ux-swatches-attribute-ux_label .ux-swatch--label.disabled {
  opacity: 0.35;
  cursor: not-allowed;
  text-decoration: line-through;
  background: #fff;
}

.single-product .variations .reset_variations {
  display: inline-block;
  margin-top: 0;
  margin-left: auto;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #e53935;
  text-underline-offset: 2px;
}

.single-product .variations .reset_variations:hover {
  color: #c62828;
}

.vn-pdp-size-guide {
  margin: 0 0 var(--vs-s3);
  font-size: 0.875rem;
}

.vn-pdp-size-guide a {
  color: var(--vs-muted);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.vn-pdp-size-guide a:hover {
  color: var(--vs-text);
}

.single-product .woocommerce-variation-availability,
.single-product .stock {
  margin: 0 0 var(--vs-s4);
  font-size: 0.875rem;
  color: var(--vs-muted);
}

/* --------------------------------------------------------------------------
