@charset "utf-8";

/* ==========================================================================
   1. 現代的なリセット & 基本設定
   ========================================================================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  overflow-y: scroll;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  line-height: 1.6; /* 全体の標準的な行送りに修正 */
  font-family: -apple-system, BlinkMacSystemFont, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', 'BIZ UDPGothic', 'Yu Gothic', 'Meiryo', sans-serif;
  color: #333;
}

/* フォーム要素のデフォルト初期化 */
input, select, textarea, button {
  font-family: inherit;
  font-size: inherit;
}
input[type="submit"], button {
  -webkit-appearance: none;
  appearance: none; /* iPhone等のデフォルト装飾を消す現代の書き方 */
}

/* リスト・テーブル・画像の初期化 */
ul, ol { list-style: none; }
img { max-width: 100%; height: auto; vertical-align: middle; }
table { width: 100%; border-collapse: collapse; border-spacing: 0; }
th { text-align: center; font-weight: bold; }
td { text-align: justify; }

/* ==========================================================================
   2. 標準テキスト要素の設定
   ========================================================================== */
p { text-align: justify; line-height: 2; font-weight: 400; }

h1, h2, h3 { text-align: left; line-height: 1.4; font-weight: 800; }
h4, h5, h6 { text-align: left; line-height: 1.4; font-weight: 700; }

hr {
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
}

/* ==========================================================================
   3. リンク設定
   ========================================================================== */
a {
  color: #24449b;
  text-decoration: none;
  font-weight: bold;
  transition: opacity 0.3s ease, color 0.3s ease;
}
a:hover { color: #0064b4; }

/* 半透明リンク（ホバー時に少し薄くする共通処理） */
a.han:hover {
  opacity: 1;
}
@media screen and (min-width: 1120px) {
  a.han:hover { opacity: 0.6; }
}

/* ==========================================================================
   4. 汎用ユーティリティクラス（PC基準）
   ========================================================================== */
.tbold { font-weight: bold !important; }
.tcen  { text-align: center !important; }
.trig  { text-align: right !important; }
.red   { color: #dd001f !important; }
.tsml  { font-size: 0.8em !important; }

/* フォントサイズ（remベース） */
.tsml70 { font-size: 0.7rem !important; }
.tsml80 { font-size: 0.8rem !important; }
.tsml90 { font-size: 0.9rem !important; }

/* PC用マージン・パディングの一例（必要に応じて他数値も同様に整理） */
.mt0 { margin-top: 0px !important; }
.mt5 { margin-top: 5px !important; }
.mt10 { margin-top: 10px !important; }
.mt15 { margin-top: 15px !important; }
.mb0 { margin-bottom: 0px !important; }
.mb5 { margin-bottom: 5px !important; }
.mb10 { margin-bottom: 10px !important; }
.mb15 { margin-bottom: 15px !important; }

.pt0 { padding-top: 0px !important; }
.pt5 { padding-top: 5px !important; }
.pt10 { padding-top: 10px !important; }
.pt15 { padding-top: 15px !important; }
.pb0 { padding-bottom: 0px !important; }
.pb5 { padding-bottom: 5px !important; }
.pb10 { padding-bottom: 10px !important; }
.pb15 { padding-bottom: 15px !important; }

.mt15pconly { margin-top: 15px !important; }

/* 表示切り替え */
.sponly { display: none !important; }
.pconly { display: block !important; }
.sponly_inline { display: none !important; }
.pconly_inline { display: inline !important; }

/* ==========================================================================
   5. スマートフォン用設定 (ブレイクポイント: 1119px以下)
   ========================================================================== */
@media screen and (max-width: 1119px) {
  p { line-height: 1.8; }

  /* 表示切り替えの逆転 */
  .sponly { display: block !important; }
  .pconly { display: none !important; }
  .sponly_inline { display: inline !important; }
  .pconly_inline { display: none !important; }

  .mw640 { max-width: 640px; margin: 0 auto; }

  /* スマホ用の余白調整（em換算） */
  .mt5 { margin-top: 0.3em !important; }
  .mt10 { margin-top: 0.6em !important; }
  .mt15 { margin-top: 1em !important; }
  .mb5 { margin-bottom: 0.3em !important; }
  .mb10 { margin-bottom: 0.6em !important; }
  .mb15 { margin-bottom: 1em !important; }
  
  .pt5 { padding-top: 0.3em !important; }
  .pt10 { padding-top: 0.6em !important; }
  .pt15 { padding-top: 1em !important; }
  .pb5 { padding-bottom: 0.3em !important; }
  .pb10 { padding-bottom: 0.6em !important; }
  .pb15 { padding-bottom: 1em !important; }

  .mt15pconly { margin-top: 0.3em !important; }
}