/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: var(--font-body);
  font-size: var(--fs-base);
  color: var(--color-gray-800);
  background: var(--color-white);
  line-height: 1.6;
  overflow-x: hidden;
  overflow-x: clip;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea, select { font-family: inherit; font-size: inherit; }

/* ===== TIPOGRAFIA ===== */
h1, h2, h3, h4, h5 {
  font-family: var(--font-display);
  line-height: 1.2;
  font-weight: 700;
}

/* ===== CONTAINER ===== */
.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--space-6);
}
.container--md {
  max-width: var(--container-md);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

/* ===== SEÇÕES ===== */
.section {
  padding: var(--section-py) 0;
}
.section--light {
  background: var(--color-light-bg);
}
.section--dark {
  background: var(--color-dark);
  color: var(--color-text);
}
.section--primary {
  background: var(--color-primary);
  color: var(--color-text);
}

.section__header {
  text-align: center;
  margin-bottom: var(--space-12);
}
.section__title {
  font-size: var(--fs-3xl);
  color: var(--color-primary);
  margin-bottom: var(--space-4);
}
.section--dark .section__title,
.section--primary .section__title {
  color: var(--color-text);
}
.section__subtitle {
  font-size: var(--fs-md);
  color: var(--color-gray-600);
  max-width: 600px;
  margin: 0 auto;
}
.section--dark .section__subtitle,
.section--primary .section__subtitle {
  color: var(--color-support);
}

/* ===== UTILITÁRIOS ===== */
.text-center { text-align: center; }
.text-accent  { color: var(--color-accent); }
.text-primary { color: var(--color-primary); }
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); border: 0;
}

/* ===== ANIMAÇÕES DE ENTRADA ===== */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-left  { opacity: 0; transform: translateX(-40px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal-right { opacity: 0; transform: translateX(40px);  transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal-left.visible, .reveal-right.visible { opacity: 1; transform: translateX(0); }

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--color-gray-100); }
::-webkit-scrollbar-thumb { background: var(--color-primary); border-radius: var(--radius-full); }

/* ===== MOBILE FIRST ===== */
@media (max-width: 767px) {
  .section { padding: var(--section-py-sm) 0; }
  .section__title { font-size: var(--fs-2xl); }
  .container { padding: 0 var(--space-4); }
}
