* { box-sizing: border-box; }
body {
  font-family: 'Inter', sans-serif;
  background-color: #fafafa;
  color: #0d0d10;
  -webkit-font-smoothing: antialiased;
}
.font-headline { font-family: 'Space Grotesk', sans-serif; }

/* glassmorphism nav — light */
.glass-nav {
  background: rgba(250,250,250,0.75);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(0,0,0,0.07);
}

/* teal gradient CTA */
.cta-gradient {
  background: linear-gradient(135deg, #0891b2 0%, #06b6d4 100%);
  color: #fff;
}
.cta-gradient:hover {
  box-shadow: 0 0 28px rgba(8,145,178,0.35);
  filter: brightness(1.06);
}

/* ghost border light */
.ghost {
  border: 1px solid rgba(0,0,0,0.08);
}

/* soft card */
.card-soft {
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 0.875rem;
  transition: box-shadow .3s, transform .3s;
}
.card-soft:hover {
  box-shadow: 0 12px 40px rgba(8,145,178,0.1);
  transform: translateY(-3px);
}

/* neomorphism for stat pills */
.neo-pill {
  background: #ffffff;
  box-shadow: 4px 4px 10px rgba(0,0,0,0.06), -2px -2px 8px rgba(255,255,255,0.9);
  border-radius: 0.875rem;
}

/* section divider via bg shift only */
.bg-alt { background-color: #f2f5f9; }

/* program timeline left border */
.day-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 0.875rem;
  position: relative;
  transition: box-shadow .3s, border-color .3s;
  overflow: hidden;
}
.day-card::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(180deg, #0891b2, #7c3aed);
  opacity: 0;
  transition: opacity .3s;
}
.day-card:hover::before { opacity: 1; }
.day-card:hover {
  box-shadow: 0 8px 32px rgba(8,145,178,0.12);
  border-color: rgba(8,145,178,0.2);
}

/* bento grid card */
.bento {
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 0.875rem;
  overflow: hidden;
  transition: box-shadow .3s;
}
.bento:hover { box-shadow: 0 8px 32px rgba(8,145,178,0.1); }

/* pricing card highlight border */
.pricing-card {
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.08);
  border-top: 3px solid #0891b2;
  border-radius: 0.875rem;
}

/* quote bar */
.quote-bar {
  border-left: 3px solid #0891b2;
  background: rgba(8,145,178,0.04);
  border-radius: 0 0.5rem 0.5rem 0;
}

/* tool tag */
.tool-tag {
  background: rgba(8,145,178,0.07);
  color: #0891b2;
  border: 1px solid rgba(8,145,178,0.18);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: .04em;
  padding: 3px 10px;
  border-radius: 0.375rem;
  display: inline-block;
}

/* inner vignette on images */
.inner-vignette { position: relative; }
.inner-vignette::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 50%, rgba(242,245,249,0.9) 100%);
  pointer-events: none;
}

.text-gradient {
  background: linear-gradient(135deg, #0891b2 0%, #7c3aed 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24; }

.tag-tertiary {
  background: rgba(124,58,237,0.08);
  color: #7c3aed;
  border: 1px solid rgba(124,58,237,0.18);
}

.hide-mobile { display: none; }
@media (min-width: 768px) { .hide-mobile { display: flex; } }

/* New custom styles for additional blocks */
.banner-glow {
  background: linear-gradient(90deg, #0d0d10 0%, #1a1a20 100%);
  position: relative;
  overflow: hidden;
}
.banner-glow::after {
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background: radial-gradient(circle at 70% 50%, rgba(8,145,178,0.15) 0%, transparent 60%);
  pointer-events: none;
}

.social-proof-quote {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.5rem;
  line-height: 1.4;
  font-weight: 500;
  color: #0d0d10;
}
@media (min-width: 768px) {
  .social-proof-quote {
    font-size: 2rem;
  }
}
