@charset "UTF-8";
html{
  scroll-behavior: smooth;
}

/* アンカー位置（#header の実高さに追従）
-----------------------------------------------------------------------
   module.css の .scroll_adjust は 61px/81px の固定値で、#header（sticky・
   お知らせバー込み）の実高さと合わず見出しがヘッダーに隠れるため、
   page.js が測った --header-h で上書きする。
   JSが動かない場合は下のフォールバック値を使用 */
.main .scroll_adjust div {
  padding-top: var(--header-h, 61px);
}
@media screen and (768px <= width) {
  .main .scroll_adjust div {
    padding-top: var(--header-h, 81px);
  }
}
/* =========================================================
   column2609  ページ固有
   デザイン基準幅 768px（min(calc(N/768*100vw), Npx) でスケール）
   ========================================================= */
.main .column {
  --col-accent: #6dcff6;
  --col-accent-deep: #3aa9dd;
  --col-bg: #e8f4fb;
  --col-bg02: #f4f9fd;
  --col-line: #b9dff3;
  --col-text: #333;
  color: var(--col-text);
  padding: 0 0 min(calc(60 / 768 * 100vw), 60px);
}

/* --- 共通パーツ --------------------------------------- */
.main .column .col_inner {
  padding-inline: min(calc(24 / 768 * 100vw), 24px);
  margin-inline: auto;
}
.main .column .col_txt {
  font-size: min(calc(22 / 768 * 100vw), 22px);
  padding-inline:min(calc(12 / 768 * 100vw), 12px);
  letter-spacing: 0.04em;
}
.main .column .col_txt + .col_txt {
  margin-top: 1.6em;
}
.main .column .col_fig {
  margin: min(calc(40 / 768 * 100vw), 40px) auto;
  text-align: center;
}
.main .column .col_fig img {
  display: block;
  margin-inline: auto;
}

/* --- メインビジュアル --------------------------------- */
.main .column .col_mv img {
  display: block;
  width: 100%;
  max-width: none;
}

/* --- 目次 --------------------------------------------- */
.main .column .col_index {
  padding-inline: min(calc(24 / 768 * 100vw), 24px);
  border-radius: min(calc(30 / 768 * 100vw), 30px);
  padding-top: min(calc(40 / 768 * 100vw), 40px);
}
.main .column .col_index_list {
  display: grid;
  gap: min(calc(14 / 768 * 100vw), 14px);
}
.main .column .col_index_item a {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0 0.5em;
  align-items: center;
  padding: min(calc(16 / 768 * 100vw), 16px) min(calc(20 / 768 * 100vw), 20px);
  background: #8fbbdc;
  border-radius: min(calc(8 / 768 * 100vw), 8px);
  color: #fff;
  font-size: min(calc(20 / 768 * 100vw), 20px);
  line-height: 1.6;
  transition: opacity 0.3s;
  font-weight: bold;
}
.main .column .col_index_item a::after {
  content: "";
  width: min(calc(12 / 768 * 100vw), 12px);
  height: min(calc(12 / 768 * 100vw), 12px);
  border-right: min(calc(2 / 768 * 100vw), 2px) solid #fff;
  border-bottom: min(calc(2 / 768 * 100vw), 2px) solid #fff;
  transform: translateY(-25%) rotate(45deg);
  justify-self: end;
}
.main .column .col_index_num {
  font-size: min(calc(26 / 768 * 100vw), 26px);
  font-weight: normal;
  
}
@media (hover: hover) {
  .main .column .col_index_item a:hover {
    opacity: 0.7;
  }
}

/* --- セクション --------------------------------------- */
.main .column .col_sec {
  margin-top: min(calc(56 / 768 * 100vw), 56px);
}

.main .column .col_ttl {
  margin-bottom: min(calc(28 / 768 * 100vw), 28px);
  padding: min(calc(10 / 768 * 100vw), 10px) min(calc(20 / 768 * 100vw), 20px);
  background: #e8f0f6;
  font-size: min(calc(24 / 768 * 100vw), 24px);
  font-weight: 700;
  color: #282c2f;
}
.main .column .col_ttl span {
  color: #2e6d9c;
  font-weight: normal;
  font-size: min(calc(30 / 768 * 100vw), 30px);
}
/* --- 企業協力 ----------------------------------------- */
.main .column .col_credit {
  margin-top: min(calc(60 / 768 * 100vw), 60px);
  padding-block: min(calc(28 / 768 * 100vw), 28px);
  border-block: 1px solid #b2b1b1;
}
.main .column .col_credit_head {
  font-size: min(calc(22 / 768 * 100vw), 22px);
  font-weight: 700;
}
.main .column .col_credit_body {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 min(calc(20 / 768 * 100vw), 20px);
  align-items: center;
}
.main .column .col_credit_body img {
  display: block;
  border-radius: 50%;
}
.main .column .col_credit_txt {
  font-size: min(calc(19 / 768 * 100vw), 19px);
  line-height: 1.8;
}
