/* ============================================================
   base.css — AB Agency global resets & shared utilities
   Box model reset, page wrapper, screen-reader-only helper,
   and shared animations used across multiple sections.
   ============================================================ */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.page {
  font-family: 'DM Sans', sans-serif;
  background: var(--white);
  color: var(--brand);
  min-height: 100vh;
  overflow-x: hidden;
  position: relative;
}

/* Visually hidden but accessible to screen readers & SEO */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Pulsing dot used in hero eyebrow and floating bubble badge */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

.hero-eyebrow-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--accent);
  animation: pulse 2s infinite;
}

/* Static dot variant (no animation) for matched-plan card */
.hero-eyebrow-dot--static {
  animation: none;
}
