/**
 * @file
 * Generic base elements.
 */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-family: var(--font-sans);
  font-size: 100%;
  font-weight: normal;
  font-style: normal;
  line-height: var(--line-height-base);
}

body {
  margin: 0;
  word-wrap: break-word;
  hyphens: auto;
  color: var(--color-text-neutral-medium);
  background-color: var(--color--gray-100);

  &.is-fixed {
    position: fixed;
    overflow: hidden;
    width: 100%;
  }
}

a {
  color: var(--color-text-primary-medium);

  &:hover {
    color: var(--color--primary-50);
  }

  &:focus {
    outline: solid 2px currentColor;
    outline-offset: 2px;
  }
}

button {
  font-family: inherit;
}

img,
video {
  display: block;
  max-width: 100%;
  height: auto;
}

audio {
  display: block;
  max-width: 100%;
}

h1 {
  letter-spacing: -0.01em;
  font-size: 1.75rem;

  @media (min-width: 43.75rem) {
    font-size: 3.75rem;
  }
}

h2 {
  letter-spacing: -0.01em;
  font-size: 1.5rem;

  @media (min-width: 43.75rem) {
    font-size: 2.25rem;
  }
}

h3 {
  font-size: 1.25rem;

  @media (min-width: 43.75rem) {
    font-size: 1.5rem;
  }
}

h4 {
  font-size: 1.125rem;
}

h5 {
  font-size: 1rem;
}

h6 {
  font-size: 0.875rem;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-block: var(--sp);
  color: var(--color-text-neutral-loud);
  font-family: var(--font-sans);
  font-weight: bold;
  line-height: 1.25;

  @media (min-width: 43.75rem) {
    margin-block: var(--sp2);
  }
}

ul {
  margin-block-start: 0.25em;
  margin-block-end: 0.25em;
  margin-inline-start: 1.5em;
  margin-inline-end: 0;
  padding-inline-start: 0;
  list-style-image: none;
}
