/* Reset & base typography */
* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 700;
  color: var(--color-ink);
  line-height: 1.25;
}

a {
  color: var(--color-ink);
  text-decoration: none;
  font-weight: 600;
}
a:hover {
  text-decoration: underline;
  text-decoration-color: var(--color-primary);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
a.btn:hover,
a.nav-link:hover,
a.dropdown-item:hover,
a.navbar-brand:hover,
a.link-cta:hover,
a.product-card:hover,
.footer-social a:hover,
.footer-logo:hover {
  text-decoration: none;
}

img { max-width: 100%; height: auto; }

.section {
  padding: 64px 0;
}
.section-alt {
  background: var(--color-bg-alt);
}
.section-title {
  font-size: 2rem;
  margin-bottom: 8px;
}
.section-subtitle {
  color: var(--color-text-muted);
  margin-bottom: 40px;
}

.text-accent { color: var(--color-accent); }
.text-primary-brand { color: var(--color-primary); }

@media (max-width: 767.98px) {
  .section { padding: 40px 0; }
  .section-title { font-size: 1.5rem; }
}

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .6s ease, transform .6s ease;
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }
.reveal-delay-4 { transition-delay: .4s; }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}
