.btn {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius);
  font-weight: 600;
  text-align: center;
  transition: all var(--transition);
  cursor: pointer;
}

.btn--primary {
  background: var(--color-accent);
  color: #fff;
}
.btn--primary:hover { background: var(--color-accent-dark); color: #fff; }

.btn--outline {
  border: 2px solid currentColor;
  color: var(--color-primary);
  background: transparent;
}
.btn--outline:hover { background: var(--color-primary); color: #fff; }

.btn--ghost-light {
  border: 2px solid rgba(255,255,255,.8);
  color: #fff;
  background: transparent;
}
.btn--ghost-light:hover { background: #fff; color: var(--color-primary); }

.card {
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: var(--space-3);
  transition: transform var(--transition), box-shadow var(--transition);
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }

.card__icon {
  width: 48px; height: 48px;
  border-radius: var(--radius);
  background: var(--color-bg-alt);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: var(--space-2);
  color: var(--color-accent-dark);
  font-size: var(--fs-xl);
}

.card__title { margin-bottom: var(--space-1); }

.faq-item {
  border-bottom: 1px solid var(--color-border);
  padding-block: var(--space-2);
}

.faq-item__question {
  width: 100%;
  text-align: left;
  font-weight: 600;
  font-size: var(--fs-lg);
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--color-primary);
}
.faq-item__question::after {
  content: "+";
  font-size: 1.5rem;
  transition: transform var(--transition);
}
.faq-item.is-expanded .faq-item__question::after { content: "−"; }

.faq-item__answer {
  display: none;
  padding-top: var(--space-2);
  color: var(--color-muted);
}
.faq-item.is-expanded .faq-item__answer { display: block; }

.cta-banner {
  background: var(--color-primary);
  color: #fff;
  padding: var(--space-6);
  border-radius: var(--radius-lg);
  text-align: center;
}
.cta-banner h2 { color: #fff; margin-bottom: var(--space-2); }
.cta-banner p { color: rgba(255,255,255,.85); margin-bottom: var(--space-3); }

.bridge-cta {
  text-align: center;
  padding: var(--space-4);
  background: var(--color-bg-alt);
  border-radius: var(--radius);
  margin-top: var(--space-6);
}
.bridge-cta p { margin-bottom: var(--space-2); color: var(--color-muted); }
