@charset "UTF-8";
/* ==========================================================================
   Base — テキスト基本スタイル・全体共通
   ========================================================================== */

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  color: var(--color-text);
  background: var(--color-white);
  word-break: break-word;
}

/* ----- Container 共通レイアウト ----- */
.l-container {
  width: 100%;
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-pad);
  padding-right: var(--container-pad);
}

/* ----- Section 共通余白 ----- */
.section {
  padding-top: var(--section-pad-y);
  padding-bottom: var(--section-pad-y);
}

.section--sm {
  padding-top: var(--section-pad-y-sm);
  padding-bottom: var(--section-pad-y-sm);
}

.section--no-pb {
  padding-bottom: 0;
}

/* ----- 見出し共通（英字小見出し + 日本語大見出し） ----- */
.heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.heading--left {
  align-items: flex-start;
  text-align: left;
}

.heading__en {
  font-family: var(--font-en);
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
}

.heading__ja {
  font-family: var(--font-jp);
  font-size: 31px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
  margin-top: 16px;
}

@media (max-width: 767px) {
  .heading__ja {
    font-size: 24px;
  }
  .heading__en {
    font-size: 16px;
  }
}

/* ----- 共通テキストブロック ----- */
.lead {
  font-size: 16px;
  line-height: 1.875;
  text-align: center;
}

@media (max-width: 767px) {
  .lead {
    text-align: left;
  }
}

/* ----- 単独セクションタイトル（英字小見出し無しの場合） ----- */
.section-title {
  font-family: var(--font-jp);
  font-size: 31px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: var(--color-primary);
  text-align: center;
}

.section-title--dark { color: var(--color-text); }

.section-title--left {
  text-align: left;
  color: var(--color-text);
}

@media (max-width: 767px) {
  .section-title { font-size: 22px; }
}

/* ----- ユーティリティ余白 ----- */
.mt-16 { margin-top: 16px; }
.mt-24 { margin-top: 24px; }
.mt-32 { margin-top: 32px; }
.mt-40 { margin-top: 40px; }
.mt-56 { margin-top: 56px; }
.mt-80 { margin-top: 80px; }

/* ----- PC/SP 出し分け ----- */
@media (max-width: 767px) {
  .pc-only { display: none !important; }
}
@media (min-width: 768px) {
  .sp-only { display: none !important; }
}
