html {
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}

body.bousai-page {
  overflow-x: hidden;
  color: var(--bousai-color-gray-950);
  background: var(--bousai-color-background);
  font-family: var(--bousai-font-sans);
  font-size: var(--bousai-font-size-base);
  line-height: var(--bousai-line-height-body);
  -webkit-font-smoothing: antialiased;
}

.bousai-page h1,
.bousai-page h2,
.bousai-page h3,
.bousai-page h4 {
  color: var(--bousai-color-navy-950);
  font-weight: 700;
  line-height: var(--bousai-line-height-heading);
}

.bousai-page a {
  color: var(--bousai-color-navy-900);
  text-underline-offset: 0.2em;
}

.bousai-page :focus-visible {
  outline: 0;
  box-shadow: var(--bousai-focus-ring);
}

.bousai-page [id] {
  scroll-margin-top: 8rem;
}

.bousai-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.bousai-skip-link {
  position: fixed;
  z-index: 1000;
  top: var(--bousai-space-3);
  left: var(--bousai-space-3);
  padding: var(--bousai-space-2) var(--bousai-space-4);
  color: var(--bousai-color-white);
  background: var(--bousai-color-navy-950);
  border-radius: var(--bousai-radius-sm);
  transform: translateY(-200%);
}

.bousai-skip-link:focus {
  transform: translateY(0);
}
