/* =========================================================
   components.css — Reusable UI Components
   Depends on: main.css, layout.css
   Used by: All pages
   ========================================================= */

/* -----------------------------
   1) Buttons (Extended)
------------------------------ */
.btn-lg {
  font-size: var(--fs-base);
  padding: 0.8rem 1.5rem;
  border-radius: var(--radius-lg);
}

.btn-sm {
  font-size: var(--fs-xs);
  padding: 0.45rem 0.8rem;
}

.btn-accent {
  background-color: var(--color-accent);
  color: #ffffff;
}

.btn-accent:hover {
  filter: brightness(0.95);
}

/* -----------------------------
   2) Badges
------------------------------ */
.badge {
  display: inline-block;
  padding: 0.25rem 0.6rem;
  font-size: var(--fs-xxs);
  font-weight: 600;
  border-radius: var(--radius-sm);
  background-color: var(--color-bg-soft);
  color: var(--color-text);
}

.badge-primary {
  background-color: var(--color-primary);
  color: #ffffff;
}

.badge-success {
  background-color: var(--color-success);
  color: #ffffff;
}

/* -----------------------------
   3) Cards (Advanced)
------------------------------ */
.card-hover {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card-hover:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.card-header {
  margin-bottom: var(--space-3);
}

.card-footer {
  margin-top: var(--space-4);
}

/* -----------------------------
   4) Feature Blocks
------------------------------ */
.feature {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
}

.feature-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
}

.feature h3 {
  margin-bottom: var(--space-2);
}

/* -----------------------------
   5) Icon Grid
------------------------------ */
.icon-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: var(--space-6);
  text-align: center;
}

.icon-grid-item img {
  margin-inline: auto;
  margin-bottom: var(--space-3);
  width: 48px;
  height: 48px;
}

/* -----------------------------
   6) Testimonial Block
------------------------------ */
.testimonial {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
}

.testimonial-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}

.testimonial-content p {
  margin-bottom: var(--space-2);
}

.testimonial-name {
  font-weight: 600;
  color: var(--color-text);
  font-size: var(--fs-sm);
}

.testimonial-role {
  font-size: var(--fs-xs);
  color: var(--color-text-muted);
}

/* -----------------------------
   7) Call To Action (CTA)
------------------------------ */
.cta {
  background-color: var(--color-primary);
  color: #ffffff;
  padding: var(--space-12);
  border-radius: var(--radius-xl);
  text-align: center;
}

.cta h2 {
  color: #ffffff;
  margin-bottom: var(--space-3);
}

.cta p {
  color: #e0e7ff;
  margin-bottom: var(--space-6);
}

/* -----------------------------
   8) Forms (UI)
------------------------------ */
.form-group {
  margin-bottom: var(--space-4);
}

.form-group label {
  display: block;
  margin-bottom: var(--space-2);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--color-text);
}

.form-actions {
  margin-top: var(--space-6);
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
}

/* -----------------------------
   9) Alerts / Messages
------------------------------ */
.alert {
  padding: var(--space-4);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-4);
  font-size: var(--fs-sm);
}

.alert-success {
  background-color: #dcfce7;
  color: #166534;
}

.alert-warning {
  background-color: #fef3c7;
  color: #92400e;
}

.alert-error {
  background-color: #fee2e2;
  color: #991b1b;
}

/* -----------------------------
   10) Simple Tabs
------------------------------ */
.tabs {
  border-bottom: 1px solid var(--color-border);
  display: flex;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}

.tab {
  padding: var(--space-2) var(--space-1);
  font-size: var(--fs-sm);
  cursor: pointer;
  border-bottom: 2px solid transparent;
}

.tab.is-active {
  border-bottom-color: var(--color-primary);
  color: var(--color-primary);
}

/* -----------------------------
   11) Pricing / Info Boxes
------------------------------ */
.info-box {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  background-color: #ffffff;
}

.info-box h3 {
  margin-bottom: var(--space-3);
}

/* -----------------------------
   12) Breadcrumbs
------------------------------ */
.breadcrumbs {
  font-size: var(--fs-xs);
  margin-bottom: var(--space-4);
}

.breadcrumbs a {
  color: var(--color-text-muted);
}

.breadcrumbs a:hover {
  color: var(--color-primary);
}

.breadcrumbs span {
  margin: 0 var(--space-1);
  color: var(--color-text-muted);
}
