@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: auto;
    /* Disabled for Lenis */
    /* スムーズスクロール */
}

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: var(--transition-all);
    transition: var(--transition-all);
    cursor: pointer;
}

a:focus,
a:active,
a:hover {
    outline: 0;
    opacity: 1;
    transition: opacity var(--transition-base);
}

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-text-white);
    cursor: pointer;
}

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

select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    border: none;
    padding: 0;
    background: var(--color-text-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: var(--border-radius-sm);
}

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

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

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

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