/* ─── Reset & Base ──────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: 'Plus Jakarta Sans', sans-serif;
  background: #050f1e;
  color: #fff;
  min-height: 100vh;
}

img { display: block; max-width: 100%; }
a { text-decoration: none; }

/* ─── Catalog grid ──────────────────────────────────────────────────────── */
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 24px;
}

/* ─── Card hover (transition only — colors handled inline by JS) ────────── */
.course-card {
  transition: transform 0.22s, box-shadow 0.22s;
  position: relative;
}
.course-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 52px rgba(0,0,0,0.55) !important;
}

/* ─── CTA button 3-D effect ─────────────────────────────────────────────── */
.cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-weight: 700;
  font-size: 0.82rem;
  text-decoration: none;
  padding: 10px 14px;
  border-radius: 10px;
  letter-spacing: 0.03em;
  transition: background 0.15s, box-shadow 0.15s, transform 0.1s;
  margin-top: 4px;
  cursor: pointer;
  font-family: inherit;
}
.cta-btn:active { transform: translateY(3px) !important; }

/* ─── Category nav buttons ──────────────────────────────────────────────── */
.cat-nav-btn {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 999px;
  color: rgba(255,255,255,0.5);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 5px 14px;
  cursor: pointer;
  transition: background 0.18s, color 0.18s, border-color 0.18s;
  letter-spacing: 0.03em;
  font-family: inherit;
}
.cat-nav-btn:hover {
  background: rgba(255,255,255,0.10);
  color: rgba(255,255,255,0.85);
  border-color: rgba(255,255,255,0.22);
}

/* ─── Back to top button ────────────────────────────────────────────────── */
.back-top-btn {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 999px;
  color: rgba(255,255,255,0.55);
  font-size: 0.73rem;
  font-weight: 600;
  padding: 6px 20px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: inherit;
  transition: background 0.18s, color 0.18s;
}
.back-top-btn:hover {
  background: rgba(255,255,255,0.09);
  color: rgba(255,255,255,0.8);
}

/* ─── Como Funciona steps ───────────────────────────────────────────────── */
.steps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}

/* ─── Features checkmarks grid ──────────────────────────────────────────── */
.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

/* ─── 2-column guarantee section ────────────────────────────────────────── */
.two-col {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  align-items: stretch;
  max-width: 900px;
  margin: 0 auto;
}

/* ─── Hero logo+title row ───────────────────────────────────────────────── */
.hero-top {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

/* ─── Category nav wrapper ──────────────────────────────────────────────── */
.cat-nav-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 40px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}

/* ─── Responsive helpers ─────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .hero-top { flex-direction: column; text-align: center; }
  .hero-top > div { text-align: center; }
}
