/*
 * Reset CSS
 * ============================================================
 * ブラウザのデフォルトスタイルを統一するためのリセットCSS
 * ============================================================
 */

/* ボックスモデルの統一 */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* ルート・ドキュメント */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  tab-size: 4;
}

/* セクショニング */
body {
  min-height: 100vh;
}

main {
  display: block;
}

/* タイポグラフィ */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

p,
blockquote,
dl,
dd,
figure {
  margin: 0;
}

/* リスト */
ol,
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* リンク */
a {
  color: inherit;
  text-decoration: none;
  background-color: transparent;
}

/* メディア */
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* フォーム */
button,
input,
select,
textarea,
optgroup {
  font-family: inherit;
  font-size: 100%;
  line-height: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
  cursor: pointer;
  -webkit-appearance: button;
}

button:disabled {
  cursor: not-allowed;
}

textarea {
  resize: vertical;
  overflow: auto;
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
}

/* テーブル */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* その他 */
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
  border: 0;
  border-top: 1px solid currentColor;
}

abbr[title] {
  text-decoration: underline dotted;
  cursor: help;
}

address {
  font-style: normal;
}

fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}
