:root {
  --pv-border-soft: rgba(15, 23, 42, 0.10);
  --pv-border: rgba(2, 132, 132, 0.22);
  --pv-bg: rgba(2, 132, 132, 0.06);
  --pv-shadow: 0 14px 34px rgba(2, 6, 23, 0.07);
}

/* =========================
   Ficha de producto — Premium suave
   ========================= */

/* Buy box: un solo “panel”, sin frames múltiples */
.c-buybox {
  border: 1px solid var(--pv-border-soft);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--pv-shadow);
  border-radius: 16px;
}

.c-buybox__title {
  font-size: 0.875rem;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 500;
}

.c-variant {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.pv-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.pv-chip {
  border: 1px solid var(--pv-border-soft);
  background: rgba(255, 255, 255, 0.75);
  border-radius: 999px;
  padding: 0.42rem 0.70rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgba(15, 23, 42, 0.78);
  line-height: 1;
  transition: background 140ms ease, border-color 140ms ease, transform 140ms ease;
  user-select: none;
}

.pv-chip:hover {
  border-color: var(--pv-border);
  background: var(--pv-bg);
}

.pv-chip:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(2, 132, 132, 0.18);
}

.pv-chip.is-active {
  border-color: rgba(2, 132, 132, 0.40);
  background: rgba(2, 132, 132, 0.10);
}

.pv-chip.is-disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.pv-chip.is-disabled:hover {
  border-color: var(--pv-border-soft);
  background: rgba(255, 255, 255, 0.75);
}

.pv-hint {
  font-size: 0.75rem;
  color: rgba(15, 23, 42, 0.55);
}

.c-qty {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.c-stepper {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--pv-border-soft);
  border-radius: 12px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.70);
}

.c-stepper__btn {
  padding: 0.50rem 0.70rem;
  font-size: 0.95rem;
  color: rgba(15, 23, 42, 0.70);
}

.c-stepper__btn:hover {
  background: rgba(2, 132, 132, 0.06);
}

.c-stepper__input {
  width: 3.2rem;
  text-align: center;
  background: transparent;
  outline: none;
  font-size: 0.95rem;
  color: rgba(15, 23, 42, 0.80);
}

.c-cta {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.c-btn {
  border-radius: 12px;
  padding: 0.72rem 1rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.c-btn--primary {
  background: var(--brand);
  color: white;
}

.c-btn--primary:hover {
  opacity: 0.93;
}

.c-btn--secondary {
  border: 1px solid var(--pv-border-soft);
  background: rgba(255, 255, 255, 0.60);
  color: rgba(15, 23, 42, 0.80);
}

.c-btn--secondary:hover {
  border-color: rgba(15, 23, 42, 0.16);
  background: rgba(255, 255, 255, 0.75);
}

/* Título/precio: menos “peso”, premium suave */
.pp-title {
  font-weight: 600;
}

.pp-price {
  font-weight: 650;
  letter-spacing: -0.01em;
}

.pp-meta {
  color: rgba(15, 23, 42, 0.58);
}

@media (max-width: 640px) {
  .c-btn { padding: 0.66rem 0.95rem; }
}
