/* ===========================
   APC Vendor Selector — Theme
   =========================== */

:root {
  --apc-vs-radius: 10px;
  --apc-vs-border: 1px;
  --apc-vs-pad-v: 10px;
  --apc-vs-pad-h: 14px;
  --apc-vs-bg: #ffffff;
  --apc-vs-bg-hover: #f9fafb;
  --apc-vs-border-color: #d1d5db;
  --apc-vs-border-focus: #7c3aed;
  --apc-vs-ring: rgba(124, 58, 237, 0.18);
  --apc-vs-text: #111827;
  --apc-vs-text-muted: #6b7280;
  --apc-vs-label: #374151;
  --apc-vs-meta: #6b7280;
  --apc-vs-meta-bg: #f3f4f6;
  --apc-vs-price: #111827;
  --apc-vs-price-muted: #6b7280;
}

/* ===========================
   Layout & Container
   =========================== */

.apc-vendor-selector {
  display: grid;
  gap: 0.375rem;
  max-width: 480px;
  margin: 0.75rem 0 1rem;
}

/* Label */

.apc-vendor-selector__label {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--apc-vs-label);
  line-height: 1.2;
}

/* Select */

.apc-vendor-selector__select {
  width: 100%;
  font: inherit;
  color: var(--apc-vs-text);
  background-color: var(--apc-vs-bg);
  border: var(--apc-vs-border) solid var(--apc-vs-border-color);
  border-radius: var(--apc-vs-radius);
  padding: var(--apc-vs-pad-v)
    calc(var(--apc-vs-pad-h) + 22px)
    var(--apc-vs-pad-v)
    var(--apc-vs-pad-h);
  appearance: none;
  background-image:
    url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7l5 5 5-5' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    background-color 0.15s ease;
}

.apc-vendor-selector__select:hover {
  background-color: var(--apc-vs-bg-hover);
}

.apc-vendor-selector__select:focus {
  border-color: var(--apc-vs-border-focus);
  box-shadow: 0 0 0 4px var(--apc-vs-ring);
  outline: none;
}

.apc-vendor-selector__select:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.apc-vendor-selector__select option[value=""] {
  color: var(--apc-vs-text-muted);
}

/* Meta line (no offers / info) */

.apc-vendor-selector__meta {
  font-size: 0.88rem;
  color: var(--apc-vs-meta);
  background: var(--apc-vs-meta-bg);
  padding: 0.5rem 0.6rem;
  border-radius: calc(var(--apc-vs-radius) - 4px);
}

/* ===========================
   Vendor Price Block
   =========================== */

.apc-vendor-price {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--apc-vs-price);
  margin-top: 0.15rem;
}

.apc-vendor-price.apc-no-price {
  opacity: 0.7;
  color: var(--apc-vs-price-muted);
}

/* Optional tie-in with main add-to-cart button */

.single-product form.cart .button {
  transition: opacity 0.2s ease;
}

/* ===========================
   Loading / Shimmer State
   =========================== */

.apc-vendor-selector.is-loading .apc-vendor-selector__select {
  background-image:
    linear-gradient(
      100deg,
      rgba(255, 255, 255, 0) 30%,
      rgba(0, 0, 0, 0.05) 45%,
      rgba(255, 255, 255, 0) 60%
    ),
    url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7l5 5 5-5' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 200% 100%, 16px;
  background-position: -120% 0, right 12px center;
  animation: apc-vs-shimmer 1.1s linear infinite;
}

@keyframes apc-vs-shimmer {
  to {
    background-position: 120% 0, right 12px center;
  }
}

/* ===========================
   select2 / selectWoo Harmony
   =========================== */

.apc-vendor-selector
  .select2-container--default
  .select2-selection--single {
  height: auto;
  min-height: 40px;
  border-radius: var(--apc-vs-radius);
  border: var(--apc-vs-border) solid var(--apc-vs-border-color);
}

.apc-vendor-selector .select2-selection__rendered {
  padding: var(--apc-vs-pad-v) var(--apc-vs-pad-h);
  color: var(--apc-vs-text);
}

.apc-vendor-selector
  .select2-container--default.select2-container--open
  .select2-selection--single {
  border-color: var(--apc-vs-border-focus);
  box-shadow: 0 0 0 4px var(--apc-vs-ring);
}

.apc-vendor-selector .select2-results__option {
  padding: 0.5rem 0.6rem;
}

/* ===========================
   Dark Mode Support
   =========================== */

body.is-dark .apc-vendor-selector__select {
  background-color: #0f1220;
  color: #e5e7eb;
  border-color: #374151;
}

body.is-dark .apc-vendor-selector__select:hover {
  background-color: #12162a;
}

body.is-dark .apc-vendor-selector__label {
  color: #d1d5db;
}

body.is-dark .apc-vendor-selector__meta {
  color: #9ca3af;
  background: #111827;
}

body.is-dark .apc-vendor-price {
  color: #f9fafb;
}

body.is-dark .apc-vendor-price.apc-no-price {
  color: #9ca3af;
}
