/* =========================================================
   FINX public modules — components
   Shared UI primitives. Themes only override accent colors.
   ========================================================= */

/* Eyebrow / kicker */
.eyebrow,
.kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: var(--tracking-label, 0.08em);
  color: var(--color-brand, var(--color-accent, #1da989));
}

.eyebrow:before,
.kicker:before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  flex: 0 0 auto;
}

/* Hero pre-headline label — one shared pill for every page's hero.
   Only the color (theme accent, or a page's own light/dark override) differs;
   size, padding, radius and border are identical everywhere. */
.hero-badge,
.hero .eyebrow,
.hero .kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  margin: 0 0 20px;
  padding: 9px 16px;
  border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
  border-radius: var(--radius-pill, 999px);
  background: color-mix(in srgb, currentColor 8%, #fff);
  color: var(--color-accent, #1da989);
  font-size: 0.875rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  line-height: 1.3;
}

.hero-badge svg,
.hero .eyebrow svg,
.hero .kicker svg {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}

.hero .eyebrow:before,
.hero .kicker:before {
  display: none; /* the pill background replaces the dot bullet used outside hero */
}

/* Multiple badges side by side (e.g. therabot-pro) */
.hero-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
}

.hero-badges .hero-badge {
  margin: 0;
}

/* Buttons — one shape language */
.btn,
.button,
.fh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  padding: 0 22px;
  border-radius: var(--radius-md, 16px);
  border: 1px solid transparent;
  font-weight: 800;
  font-size: 0.95rem;
  letter-spacing: -0.02em;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.btn:hover,
.button:hover,
.fh-btn:hover {
  transform: translateY(-2px);
}

.btn-primary,
.btn.primary,
.button-primary,
.fh-btn--primary {
  background: var(--color-brand, var(--color-accent, #1da989));
  color: #fff;
  box-shadow: 0 12px 28px rgba(11, 34, 49, 0.16);
}

.btn-outline,
.btn.secondary,
.button-secondary,
.fh-btn--line {
  background: #fff;
  border-color: var(--color-line, #e5e7eb);
  color: var(--color-ink, #1f2937);
}

.btn-soft {
  background: var(--color-accent-soft, #eaf7f1);
  color: var(--color-accent, #1da989);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 28px 0 24px;
}

.lead,
.hero-lead,
.section-copy {
  margin: 0;
  max-width: 720px;
  font-size: var(--fs-body-l, 1.125rem);
  line-height: 1.7;
  color: var(--color-muted, #667085);
}

/* Cards */
.fx-card,
.service-card,
.how-step,
.mini-card {
  background: #fff;
  border: 1px solid var(--color-line, #e5e7eb);
  border-radius: var(--radius-lg, 24px);
  box-shadow: var(--shadow-sm, 0 10px 28px rgba(11, 34, 49, 0.08));
}
