@charset "utf-8";

/* =========================
   Reset CSS for LP
   Target: Safari / Chrome / Edge
   ========================= */

/* box-sizing を統一 */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* iOS Safari の文字サイズ自動調整を防ぐ */
html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    line-height: 1.5;
    tab-size: 4;
}

/* 余白の初期化 */
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
dl,
dd,
figure,
blockquote {
    margin: 0;
}

/* リストの初期化 */
ul,
ol {
    padding: 0;
    list-style: none;
}

/* body の基本 */
body {
    min-height: 100vh;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* 見出し・テキストの折り返し安定化 */
h1,
h2,
h3,
h4,
h5,
h6,
p,
li {
    overflow-wrap: break-word;
}

/* メディア要素の扱いを安定化 */
img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}

/* 画像の下の余白対策 */
img {
    border-style: none;
}

/* フォーム部品は親のフォントを継承 */
input,
button,
textarea,
select {
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
}

/* Safari / Chrome / Edge のボタン見た目差異を減らす */
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
}

/* 入力欄の角丸や影の差異を減らす */
input,
textarea,
select {
    -webkit-appearance: none;
    appearance: none;
    background-color: transparent;
    border-radius: 0;
}

/* textarea の不要な横リサイズ防止 */
textarea {
    resize: vertical;
}

/* search 系の Safari/Chrome 見た目差異を軽減 */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
    -webkit-appearance: none;
}

/* number input のスピンボタン差異を軽減 */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

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

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

/* hidden 属性 */
[hidden] {
    display: none !important;
}

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