/* ============================================================
   LA GORDITA — Component primitives
   Depends on colors_and_type.css + brand.css.
   ============================================================ */

/* ---------------- BUTTONS ---------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 15px;
  line-height: 1;
  padding: 13px 22px;
  border-radius: var(--r-pill);
  border: 2px solid transparent;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: transform .12s cubic-bezier(.34,1.56,.64,1), background-color .15s, box-shadow .15s, color .15s;
  user-select: none;
}
.btn:focus-visible { outline: none; box-shadow: 0 0 0 4px var(--ring); }
.btn:active { transform: translateY(1px) scale(0.98); }

.btn--primary { background: var(--primary); color: #fff; box-shadow: var(--shadow-brand); }
.btn--primary:hover { background: var(--primary-hover); }
.btn--primary:active { background: var(--primary-press); }

.btn--accent { background: var(--accent); color: #fff; box-shadow: 0 10px 24px rgba(228,0,124,.28); }
.btn--accent:hover { background: var(--rosa-600); }

.btn--gold { background: var(--maiz-500); color: var(--cocoa-900); box-shadow: 0 10px 22px rgba(246,162,30,.30); }
.btn--gold:hover { background: var(--maiz-600); }

.btn--teal { background: var(--teal-500); color: #fff; box-shadow: 0 10px 22px rgba(17,157,164,.28); }
.btn--teal:hover { background: var(--teal-600); }

.btn--lima { background: var(--lima-500); color: var(--cocoa-900); box-shadow: 0 10px 22px rgba(124,181,24,.30); }
.btn--lima:hover { background: var(--lima-600); }

.btn--outline { background: transparent; color: var(--primary); border-color: var(--buganvilla-300); }
.btn--outline:hover { background: var(--buganvilla-50); border-color: var(--primary); }

.btn--ghost { background: transparent; color: var(--fg1); }
.btn--ghost:hover { background: var(--masa-200); }

.btn--on-dark { background: var(--maiz-500); color: var(--cocoa-900); }
.btn--on-dark:hover { background: var(--maiz-300); }

.btn--lg { font-size: 17px; padding: 16px 30px; }
.btn--sm { font-size: 13px; padding: 9px 16px; gap: 6px; }
.btn--block { width: 100%; }

/* ---------------- BADGES / TAGS / CHIPS ---------------- */
.badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-body); font-weight: 800;
  font-size: 12px; letter-spacing: .03em;
  padding: 5px 11px; border-radius: var(--r-pill);
  text-transform: uppercase;
}
.badge--chili { background: var(--chili-50); color: var(--chili-700); }
.badge--rosa  { background: var(--rosa-50);  color: var(--rosa-700); }
.badge--gold  { background: var(--maiz-50);  color: var(--maiz-700); }
.badge--teal  { background: var(--teal-50);  color: var(--teal-700); }
.badge--lima  { background: var(--lima-50);  color: var(--lima-700); }
.badge--solid { background: var(--chili-500); color: #fff; }

.chip {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--font-body); font-weight: 700; font-size: 14px;
  padding: 9px 16px; border-radius: var(--r-pill);
  background: var(--bg-raised); color: var(--fg1);
  border: 1.5px solid var(--border); cursor: pointer;
  transition: all .14s;
}
.chip:hover { border-color: var(--border-strong); }
.chip[aria-selected="true"], .chip.is-active {
  background: var(--cocoa-900); color: var(--fg-on-dark); border-color: var(--cocoa-900);
}

/* ---------------- CARDS ---------------- */
.card {
  background: var(--bg-raised);
  border: 1.5px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.card--hover { transition: transform .18s cubic-bezier(.34,1.4,.64,1), box-shadow .18s; cursor: pointer; }
.card--hover:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

/* ---------------- INPUTS ---------------- */
.field { display: flex; flex-direction: column; gap: 6px; }
.field__label { font-family: var(--font-body); font-weight: 800; font-size: 13px; color: var(--fg1); }
.input, .textarea, .select {
  font-family: var(--font-body); font-size: 15px; color: var(--fg1);
  background: var(--bg-raised);
  border: 1.5px solid var(--border-strong);
  border-radius: var(--r-md);
  padding: 12px 14px;
  transition: border-color .15s, box-shadow .15s;
  width: 100%;
}
.input::placeholder { color: var(--fg3); }
.input:focus, .textarea:focus, .select:focus {
  outline: none; border-color: var(--primary);
  box-shadow: 0 0 0 4px var(--buganvilla-50);
}

/* quantity stepper */
.stepper { display: inline-flex; align-items: center; gap: 0; border: 1.5px solid var(--border-strong); border-radius: var(--r-pill); overflow: hidden; }
.stepper button { width: 36px; height: 36px; border: 0; background: var(--bg-raised); font-size: 20px; font-weight: 700; color: var(--primary); cursor: pointer; line-height: 1; }
.stepper button:hover { background: var(--buganvilla-50); }
.stepper span { min-width: 30px; text-align: center; font-family: var(--font-body); font-weight: 800; }
