html { scroll-padding-top: 5rem; }

body {
  overflow-x: hidden;
  background: var(--color-white);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;
}

body.menu-open { overflow: hidden; }

.container { width: min(calc(100% - 3rem), var(--container)); margin-inline: auto; }
.section { padding: var(--space-section) 0; }

h1,
h2,
h3 {
  color: var(--color-primary);
  font-family: var(--font-heading);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.13;
}

h1 { max-width: 12ch; font-size: clamp(2.5rem, 5vw, 4.85rem); }
h2 { max-width: 17ch; font-size: clamp(2rem, 3.6vw, 3.35rem); }
h3 { font-size: clamp(1.32rem, 2vw, 1.75rem); }
p { max-width: 68ch; }

.eyebrow {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin-bottom: 1.05rem;
  color: var(--color-primary);
  font-family: var(--font-heading);
  font-size: .71rem;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1.4;
  text-transform: uppercase;
}

.eyebrow span { color: var(--color-muted-strong); font-size: .9em; }
.eyebrow-light { color: var(--color-muted-light); }

.section-intro { display: grid; gap: 1.1rem; }
.section-intro > p:last-child { color: var(--color-muted); }
.svg-sprite { display: none; }

.skip-link {
  position: fixed;
  z-index: var(--z-skip-link);
  top: 1rem;
  left: 1rem;
  padding: .65rem .95rem;
  background: var(--color-primary);
  color: var(--color-white);
  font-weight: 600;
  transform: translateY(-180%);
  transition: transform var(--transition-fast);
}

.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 4px; box-shadow: 0 0 0 4px var(--color-primary); }

@media (prefers-reduced-motion: no-preference) {
  body.has-reveal [data-reveal] {
    opacity: 0;
    transform: translateY(var(--reveal-distance));
    transition: opacity .55s ease, transform .55s ease;
  }

  body.has-reveal [data-reveal].is-revealed {
    opacity: 1;
    transform: translateY(0);
  }
}
