
/* Product details only — required choices, inventory badge, quantity rhythm, hover zoom. */
#product-page .availability-badge {
  display:inline-flex;align-items:center;gap:10px;width:max-content;
  padding:9px 15px;border:1px solid transparent;border-radius:999px;
  margin-bottom:18px;font-size:13px;font-weight:690;letter-spacing:.015em;
}
#product-page .availability-badge .status-label {background:transparent!important;color:inherit;padding:0}
#product-page .availability-badge .status-indicator {
  width:9px;height:9px;min-width:9px;border-radius:50%;display:block;
  background:currentColor;position:relative;
  animation:status-pulse 1.75s ease-in-out infinite;
}
#product-page .availability-badge .status-indicator::after {
  content:"";position:absolute;inset:-4px;border:1px solid currentColor;
  border-radius:50%;opacity:.45;animation:status-halo 1.75s ease-out infinite;
}
#product-page .availability-badge.status-available {color:#7ae6a8;background:#19392b;border-color:#315d48}
#product-page .availability-badge.status-stock_out {color:#ff9c95;background:#3b2225;border-color:#694047}
#product-page .availability-badge.status-upcoming {color:#ffc477;background:#3d2d20;border-color:#6c4b2f}
@keyframes status-pulse {0%,100%{opacity:1;box-shadow:0 0 0 0 currentColor}50%{opacity:.5;box-shadow:0 0 0 4px transparent}}
@keyframes status-halo {0%{transform:scale(.68);opacity:.5}100%{transform:scale(1.22);opacity:0}}
#product-page .variant-selectors {margin-top:18px;gap:15px}
#product-page .variant-selectors .variant-field {gap:8px;min-width:0;font-size:14px;font-weight:660}
#product-page .variant-selectors .custom-select-trigger:disabled {opacity:.72;cursor:not-allowed;background:#25282e!important;color:#9b9ca4!important}
#product-page .variant-selectors .custom-select-trigger:disabled .custom-select-label {color:#a1a3ac}
#product-page .variant-selectors .variant-field.is-missing .custom-select-trigger {
  border:1.5px solid #ff575f!important;background:#392329!important;
  box-shadow:0 0 0 3px rgba(255,86,94,.12)!important;
  outline:none!important;
}
#product-page .variant-selectors .variant-field.is-missing .custom-select-trigger .custom-select-label {color:#fff}
#product-page .variant-selectors .variant-field.is-missing .custom-select-trigger:focus-visible {
  outline:2px solid #ff6269!important;outline-offset:3px!important;
}
#product-page .variant-option-error {display:block;color:#ff777d;font-size:12px;font-weight:650;line-height:1.4;margin-top:1px}
#product-page .variant-option-error[hidden] {display:none!important}
#product-page .quantity-row {margin-top:10px;margin-bottom:11px;gap:14px;min-height:43px}
#product-page .quantity-row > label {font-size:18px;font-weight:720;letter-spacing:.002em;color:#f3f2f2}
#product-page .product-price.pending-price {gap:0}
#product-page .product-price.pending-price > #detail-price-hint {display:none!important}
@media (hover:hover) and (pointer:fine) {
  #product-page .product-hero-image {overflow:hidden}
  #product-page .product-hero-image #detail-image {
    cursor:zoom-in;
    transform-origin:var(--zoom-x,50%) var(--zoom-y,50%);
    transition:transform .7s cubic-bezier(.22,1,.36,1),transform-origin .14s ease-out;
    will-change:transform;
  }
  #product-page .product-hero-image #detail-image:hover {transform:scale(1.15)}
}
@media (max-width:760px){
  #product-page .variant-selectors{gap:14px}
  #product-page .quantity-row{margin-top:9px}
}
@media (prefers-reduced-motion: reduce){
  #product-page .availability-badge .status-indicator,
  #product-page .availability-badge .status-indicator::after{animation:none}
  #product-page .product-hero-image #detail-image{transition:none!important}
}

/* Product details: restore the stock-label flex item dimensions.
   Base styles.css sizes every .availability-badge span to an 8px dot,
   which accidentally constrains the text label to 8px too. */
#product-page #detail-availability {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: fit-content;
  max-width: 100%;
  min-height: 34px;
  padding: 8px 14px;
  gap: 9px;
  line-height: 1.3;
  vertical-align: middle;
  box-sizing: border-box;
}
#product-page #detail-availability > .status-label {
  display: inline-block;
  flex: 0 0 auto;
  width: auto !important;
  height: auto !important;
  min-width: 0;
  border-radius: 0 !important;
  background: transparent !important;
  white-space: nowrap;
  line-height: 1.3;
  overflow: visible;
}
#product-page #detail-availability > .status-indicator {
  display: block;
  flex: 0 0 9px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
}
