@charset "UTF-8";
/*
Style name: normalize.css
Description: normalize.css
Version: 1.0.0
*/

/* ===================================================================
 * 1. リセットCSS
 * ===================================================================*/

/* htmlとbodyの基本設定 */
html {
  line-height: 1.15; /* iOS Safari対応 */
  -webkit-text-size-adjust: 100%; /* iOS Safari対応 */
  -webkit-tap-highlight-color: transparent; /* iOS Safari タップハイライト除去 */
  scroll-behavior: smooth; /* スムーズスクロール */
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

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

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
}

ol,
ul {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption,
th,
td {
  text-align: left;
  vertical-align: middle;
}

q,
blockquote {
  quotes: none;
}

q:before,
q:after,
blockquote:before,
blockquote:after {
  content: "";
  content: none;
}

a,a * {
  text-decoration: none;
  color: inherit;
  -webkit-transition: all ease-in-out 0.3s;
  transition: all ease-in-out 0.3s;
  cursor: pointer;
}

a:focus,
a:active,
a:hover {
  outline: 0;
  opacity: 0.7;
  transition: opacity 0.3s ease;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  border: 0;
  -ms-interpolation-mode: bicubic;
  -webkit-user-drag: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

* {
  box-sizing: border-box;
}

/* フォーカス表示 */
a:focus-visible {
  outline-offset: 2px;
}

/* スクリーンリーダー用 */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* フォーム要素のリセット */
input,
textarea,
select,
button {
  margin: 0;
  padding: 0;
  border: none;
  outline: none;
  background: none;
  font: inherit;
  color: inherit;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: var(--border-radius-md);
  cursor: pointer;
  vertical-align: baseline;
  *vertical-align: middle;
}

input[type="checkbox"],
input[type="radio"] {
  width: 1rem;
  height: 1rem;
  margin: 0;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border: none;
  border-radius: 0;
  background-color: var(--color-white);
  cursor: pointer;
}

input[type="checkbox"]:checked,
input[type="radio"]:checked {
  border-color: var(--color-black);
  color: var(--color-white);
}

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border: none;
  padding: 0;
  background: var(--color-white);
  cursor: pointer;
}

textarea {
  resize: none;
  border: none;
  padding: 0;
  width: 100%;
  min-height: 100px;
}

button {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border: none;
  background: none;
  cursor: pointer;
  padding: 0;
  font: inherit;
  color: inherit;
}

input:focus,
textarea:focus,
select:focus,
button:focus {
  outline: none;
  box-shadow: none;
}

/* iPhone特有のズーム解除対策 */
input[type="text"],
input[type="number"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="url"],
textarea {
  font-size: var(--font-md);
}

/* ===================================================================
 * 2. HTML5要素定義
 * ===================================================================*/

/* ブロック要素として表示 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

/* インライン・ブロック要素として表示 */
audio,
canvas,
video {
  display: inline-block;
  *display: inline; /* IE7以下対応 */
  *zoom: 1; /* IE7以下対応 */
}

/* 非表示要素 */
audio:not([controls]) {
  display: none;
  height: 0;
}

[hidden] {
  display: none;
}

/* 追加のリセット */
/* iOS Safari でのフォームスタイリング */
input[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/* プログレス要素 */
progress {
  vertical-align: baseline;
}

/* サマリー要素のカーソル */
summary {
  display: list-item;
  cursor: pointer;
}

/* テンプレート要素の非表示 */
template {
  display: none;
}

/* Webkit系ブラウザのスクロールバー */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.3);
}

/* フォーカス時のoutline統一 */
:focus-visible {
  outline: 2px solid var(--color-black);
  outline-offset: 2px;
}

/* 選択時のスタイル */
::selection {
  background: var(--color-black);
  color: var(--color-white);
}

::-moz-selection {
  background: var(--color-black);
  color: var(--color-white);
}