/* America Health Assurance — Site Styles */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-weight: 300;
  color: var(--aha-on-light);
  background: #000;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font-family: inherit; }

/* Button hover states */
.bb-outline-dark:hover  { background: #fff !important; color: #000 !important; }
.bb-outline-light:hover { background: #000 !important; color: #fff !important; }
.bb-fill-light:hover    { background: #2a2a2a !important; border-color: #2a2a2a !important; }
.bb-fill-dark:hover     { background: rgba(255,255,255,.88) !important; }
.bb-circle:hover        { background: #fff !important; color: #000 !important; }

/* Pixel divider — 8-bit checker transition between paper and dark surfaces */
.pixel-divider {
  width: 100%;
  height: 120px;
  --pix: 24px;
  background:
    /* row 1 — top, fewer dark pixels */
    linear-gradient(90deg, transparent calc(var(--pix) * 0), #000 calc(var(--pix) * 0), #000 calc(var(--pix) * 1), transparent calc(var(--pix) * 1), transparent calc(var(--pix) * 3), #000 calc(var(--pix) * 3), #000 calc(var(--pix) * 4), transparent calc(var(--pix) * 4), transparent calc(var(--pix) * 7), #000 calc(var(--pix) * 7), #000 calc(var(--pix) * 8), transparent calc(var(--pix) * 8)),
    var(--aha-paper-soft);
  background-size: calc(var(--pix) * 10) var(--pix);
  background-repeat: repeat-x;
  position: relative;
}
.pixel-band {
  background: var(--aha-paper-soft);
  position: relative;
}

/* SVG-based pixel divider — preferred for irregular pixel-art pattern */
.pixel-divider-svg {
  display: block;
  width: 100%;
  height: 88px;
}

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Section spacing helper */
.section-pad { padding: 96px 32px; }
.section-pad-sm { padding: 64px 32px; }
.container { max-width: 1440px; margin: 0 auto; }
.text-max { max-width: 720px; }

/* Top of page when arriving via internal link */
section:target { scroll-margin-top: 80px; }

/* Form fields */
.aha-input,
.aha-textarea,
.aha-select {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--aha-hairline-mid);
  padding: 14px 0;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: var(--aha-on-light);
  outline: none;
  transition: border-color 240ms cubic-bezier(.2,.7,.2,1);
  border-radius: 0;
}
.aha-input:focus,
.aha-textarea:focus,
.aha-select:focus { border-bottom-color: var(--aha-on-light); }
.aha-input::placeholder, .aha-textarea::placeholder { color: var(--aha-muted-on-light); }
.aha-textarea { resize: vertical; min-height: 120px; }
.aha-field-label {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--aha-muted-on-light);
  display: block;
  margin-bottom: 4px;
}

/* FAQ accordion */
details.faq-row {
  border-bottom: 1px solid var(--aha-hairline-light);
}
details.faq-row summary {
  list-style: none;
  cursor: pointer;
  padding: 28px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  font-family: 'Saira Condensed', sans-serif;
  font-weight: 700;
  font-size: 22px;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: var(--aha-on-light);
}
details.faq-row summary::-webkit-details-marker { display: none; }
details.faq-row .faq-icon {
  flex-shrink: 0;
  transition: transform 240ms cubic-bezier(.2,.7,.2,1);
}
details.faq-row[open] .faq-icon { transform: rotate(45deg); }
details.faq-row .faq-body {
  padding: 0 0 28px;
  max-width: 760px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--aha-body-on-light);
  font-weight: 300;
}

/* Pixel art motif used in CTA and dividers */
.pixel-art-band {
  height: 64px;
  background-repeat: repeat-x;
  background-size: 32px 32px;
}

/* Focus visible */
:focus-visible {
  outline: 2px solid var(--aha-on-light);
  outline-offset: 2px;
}
.aha-dark :focus-visible {
  outline-color: #fff;
}

/* Marquee scroll for "Coverage" section */
.scroll-row {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: 8px;
}
.scroll-row::-webkit-scrollbar { display: none; }
.scroll-row > * { scroll-snap-align: start; flex: 0 0 auto; }
