/* =====================================================================
   Puhitaki — Komponensek (gombok, kártyák, badge-ek, chipek)
   ===================================================================== */

/* ---------- Gombok ---------- */
.btn {
  --btn-bg: var(--c-ink);
  --btn-fg: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  padding: 0.85em 1.6em;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--fs-400);
  line-height: 1;
  color: var(--btn-fg);
  background: var(--btn-bg);
  border: 0;
  border-radius: var(--r-pill);
  cursor: pointer;
  transition: transform var(--t-fast) var(--ease-bounce),
              box-shadow var(--t) var(--ease),
              background-color var(--t-fast) var(--ease);
  white-space: nowrap;
  text-align: center;
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0) scale(0.98); }

.btn--primary {
  --btn-bg: var(--c-primary);
  box-shadow: var(--sh-primary);
}
.btn--primary:hover { --btn-bg: var(--c-primary-d); }

.btn--secondary { --btn-bg: var(--c-secondary); box-shadow: 0 12px 26px rgba(108,92,231,0.32); }

.btn--ghost {
  --btn-bg: transparent;
  --btn-fg: var(--c-ink);
  border: 2px solid var(--c-line);
}
.btn--ghost:hover { border-color: var(--c-ink); background: var(--c-surface); }

.btn--block { width: 100%; }
.btn--lg { padding: 1.05em 2em; font-size: var(--fs-500); }
.btn--sm { padding: 0.6em 1.1em; font-size: var(--fs-300); }

.btn__icon { width: 1.15em; height: 1.15em; }

/* ---------- Chip / Badge ---------- */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0.45em 0.9em;
  font-size: var(--fs-300);
  font-weight: 700;
  border-radius: var(--r-pill);
  background: var(--c-surface-2);
  color: var(--c-ink-soft);
}
.chip--primary   { background: var(--c-primary-wash);   color: var(--c-primary-d); }
.chip--secondary { background: var(--c-secondary-wash); color: var(--c-secondary); }
.chip--accent    { background: var(--c-accent-wash);    color: #9a6b00; }
.chip--mint      { background: var(--c-mint-wash);      color: #117a6f; }

.badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  padding: 0.4em 0.85em;
  font-size: var(--fs-300);
  font-weight: 800;
  letter-spacing: 0.02em;
  border-radius: var(--r-pill);
  color: #fff;
  background: var(--c-primary);
  box-shadow: var(--sh-sm);
}
.badge--sale { background: var(--c-primary); }
.badge--new  { background: var(--c-secondary); }
.badge--hot  { background: var(--c-ink); }

/* ---------- Kártya ---------- */
.card {
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-sm);
  transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.card:hover { transform: translateY(-6px); box-shadow: var(--sh-lg); }

/* ---------- Feature ikon csempe ---------- */
.feature {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  padding: var(--sp-5);
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-xs);
  transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.feature:hover { transform: translateY(-4px); box-shadow: var(--sh-md); }
.feature__icon {
  width: 54px; height: 54px;
  display: grid; place-items: center;
  border-radius: var(--r-md);
  background: var(--c-secondary-wash);
  color: var(--c-secondary);
}
.feature__icon svg { width: 26px; height: 26px; }
.feature h3 { font-size: var(--fs-500); }
.feature p { font-size: var(--fs-400); }

/* ---------- Pill sor / rating ---------- */
.stars {
  display: inline-flex;
  gap: 2px;
  color: var(--c-accent);
}
.stars svg { width: 16px; height: 16px; fill: currentColor; }

/* ---------- Marquee szalag ---------- */
.marquee {
  overflow: hidden;
  background: var(--c-ink);
  color: #fff;
  padding-block: 0.7rem;
}
.marquee__track {
  display: flex;
  gap: 2.5rem;
  width: max-content;
  animation: marquee 28s linear infinite;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-size: var(--fs-400);
}
.marquee__track span { display: inline-flex; align-items: center; gap: 0.8rem; }
.marquee__track span::after { content: "✦"; color: var(--c-accent); }
.marquee:hover .marquee__track { animation-play-state: paused; }
@keyframes marquee {
  to { transform: translateX(-50%); }
}
