@charset "UTF-8";

/*------------------------------------
  CSS Reset (最新アップデート)
------------------------------------*/
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 62.5%; /* 1rem = 10px */
  scroll-behavior: smooth;
}

body {
  font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", Meiryo, sans-serif;
  line-height: 1.6;
  background-color: #ffffff;
  color: #333;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  min-width: 320px;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
}

ul, ol {
  list-style: none;
}

table {
  width: 100%;
  border-collapse: collapse;
}

button, input, select, textarea {
  font: inherit;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  line-height: 1.3;
}

blockquote, q {
  quotes: none;
}

address{
  font-style: normal;
}

/*------------------------------------
  共通クラス（アップデート版）
------------------------------------*/

/* フロート対応 */
.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

/* 文字サイズ */
.fs10 { font-size: 1.0rem !important; }
.fs12 { font-size: 1.2rem !important; }
.fs14 { font-size: 1.4rem !important; }
.fs16 { font-size: 1.6rem !important; }
.fs18 { font-size: 1.8rem !important; }

/* 余白 */
.mt10 { margin-top: 1rem !important; }
.mt20 { margin-top: 2rem !important; }
.mb10 { margin-bottom: 1rem !important; }
.mb20 { margin-bottom: 2rem !important; }
.ml10 { margin-left: 1rem !important; }
.ml20 { margin-left: 2rem !important; }
.mr10 { margin-right: 1rem !important; }
.mr20 { margin-right: 2rem !important; }

/* パディング */
.pt10 { padding-top: 1rem !important; }
.pt20 { padding-top: 2rem !important; }
.pb10 { padding-bottom: 1rem !important; }
.pb20 { padding-bottom: 2rem !important; }
.pl10 { padding-left: 1rem !important; }
.pl20 { padding-left: 2rem !important; }
.pr10 { padding-right: 1rem !important; }
.pr20 { padding-right: 2rem !important; }

/* テキスト関連 */
.txL { text-align: left !important; }
.txR { text-align: right !important; }
.txC { text-align: center !important; }
.txJ { text-align: justify !important; }

/* フレックスボックス用 */
.flex {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 隠す要素 */
.hidden { display: none !important; }

/*------------------------------------
  Safari向け調整（最新対応）
------------------------------------*/
@supports (-webkit-touch-callout: none) {
  html {
    letter-spacing: -0.02em;
  }
}