@media (max-width: 480px) {
  #pagetop {display: none;}

  #contents {margin-top: 40px;}
}

body {
  min-width: 1000px;
}

#top #contents .inner #main h2 {
  margin: 0 0 20px 15px;
  font-size: 19px;
  font-family: verdana, "ヒラギノ丸ゴ ProN W4", "Hiragino Maru Gothic ProN", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "MS PGothic", Sans-Serif;
}

#top #contents .inner #main .size17 {
  margin: 20px 0px 10px 15px;
  font-size: 17px;
  font-family: verdana, "ヒラギノ丸ゴ ProN W4", "Hiragino Maru Gothic ProN", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "MS PGothic", Sans-Serif;
}

#top #contents .inner #main p {
  padding: 0 15px;
}

.image-box {
  position: relative;
  width: 495px;
  height: 250px;
}

/* 画像本体 */
.image-box__img {
  object-fit: cover;
  object-position: center;
  display: block;
  width: 495px;
  height: 250px;
}

/* 透けた黒背景＋白文字のキャプション */
.image-box__caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.45);
  /* 半透明の黒 */
  color: #fff;
  padding: 5px 15px;
}

/* テキスト調整 */
.image-box__caption h3 {
  margin: 0 0 0.25rem 0;
}

.image-box__caption p {
  margin: 0;
  opacity: 0.9;
}

.arrow_list {
  margin: 5px 0 0 15px;
}

.arrow_list li {
  position: relative;
  padding-left: 16px;
}

.arrow_list li:before {
  content: "";
  position: absolute;
  top: 0.8em;
  left: 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 5px;
  height: 5px;
  border-top: 2px solid #0070C0;
  border-right: 2px solid #0070C0;
}

.image-layout {
  display: flex;
  gap: 10px;
  /* 左右の間隔 */
}

.left-block {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  /* 2列 */
  grid-template-rows: repeat(2, auto);
  /* 2行 */
  gap: 10px;
  /* 小画像の間隔 */
  width: 40%;
  /* 左ブロックの幅 */
}

.left-block img {
  width: 100%;
  height: auto;
  object-fit: cover;
  /* 必要なら画像を整える */
}

.right-block {
  width: 60%;
  /* 右ブロックの幅 */
}

.right-block img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.image-layout {
  margin-top: 20px;
}

.flow-container {
  position: relative;
  width: 615px;
  margin: 10px 10px 0 0;
}

.step {
  background-color: #e6e6fa;
  padding: 8px 16px;
  margin-bottom: 12px;
  font-size: 14px;
  color: #333;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.flow-container .arrow {
  position: absolute;
  top: 22px;
  left: 53%;
  transform: translateX(180px);
  width: 60px;
  height: 90%;
  background-color: #5F68A0;
  /*opacity: 0.85;  少し透過でテキストが見える */
  z-index: 999;
  /* 最前面 */
  clip-path: polygon(30% 0, 70% 0, 70% 85%, 100% 85%, 50% 100%, 0 85%, 30% 85%);
}

.flow-svg {
  display: none;
}

/* =========================================================
   スマホ幅（～600px）の見切れ対策：evaluation.html 向け共通
   ========================================================= */
@media (max-width: 480px) {

  #main h2 {
    margin-left: 0 !important;
  }

  /* コンテンツ幅を画面に追従させ、左右に少し余白 */
  #contents .inner {
    width: auto !important;
    margin: 0 16px !important;
  }

  /* メイン領域は可変幅に */
  #main {
    width: auto !important;
    float: none !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  /* （評価ページ）インライン固定幅を打ち消して可変化 */
  #main h1 {
    width: auto !important;
  }

  .flow-container {
    width: 100% !important;
    margin: 10px 0 0 0 !important;
  }

  /* 右側の2画像が inline style で 351px 固定 → 100%に強制 */
  #main img[style*="width: 351px"] {
    width: 100% !important;
    height: auto !important;
  }

  /* 画像は基本的に親幅にフィット（保険） */
  #main img {
    max-width: 100%;
    height: auto;
  }

  /* リストや段落の左右のインラインマージンを控えめに（本文のはみ出し防止） */
  .arrow_list {
    margin-left: 1em !important;
  }

  #main p {
    padding: 0 0 !important;
  }

  /* 行間が広い設計なので内側余白はゼロでOK */

  /* （念のため）サイドメニュー起因の固定サイズが入ってきたら全て可変に */
  .side-menu,
  .side-menu .menu-list {
    width: 100% !important;
    height: auto !important;
    box-sizing: border-box;
  }

  /* フロー直後の画像ブロックごと消す（中の img だけでなく親ごと） */
  #main .flow-side {
    display: none !important;
  }

  .image-layout {
    display: flex;
    /* （既にflexでも）明示 */
    flex-direction: column;
    /* ← 横 → 縦 */
    gap: 12px;
    /* ブロック間の余白はお好みで */
    margin-top: 12px;
    /* 少し詰める */
  }

  .image-layout .left-block,
  .image-layout .right-block {
    width: 100% !important;
    /* ← 40% / 60% を上書き */
  }


  /* 2) ボタン本体を画面幅にフィット（固定800px→100%へ） */
  .arrow-button,
  .arrow-button_notafter {
    display: block;
    /* inline-block → block で行頭に揃える */
    width: 100% !important;
    /* 800px を上書き */
    max-width: 100% !important;
    box-sizing: border-box;
    /* padding 込みで幅計算 */
    padding: 10px 44px 10px 16px;
    /* 右に矢印ぶんの余白を確保（矢印あり時） */
    font-size: clamp(13px, 3.6vw, 16px);
    border-radius: 12px;
    /* 角丸はやや小さめに */
    white-space: normal;
    /* 折返しを許可 */
    overflow-wrap: anywhere;
    /* 長い語/URL でもはみ出させない */
    line-height: 1;
  }

  /* 3) 矢印の描画を右端に固定（押し出し回避） */
  .arrow-button {
    position: relative;
    /* 矢印の absolute の基準 */
  }

  .arrow-button::after {
    content: '→';
    position: absolute;
    right: 16px;
    /* 右余白の内側に固定配置 */
    top: 50%;
    transform: translateY(-50%);
    float: none;
    /* 既存の float を無効化 */
  }

  /* 4) 親の .parent を左右余白で包む（中央寄せのままでもOK） */
  .parent {
    padding: 0 0;
    /* 既定の余白が強い場合は 0～8px など調整 */
    text-align: left;
    /* 左揃えにしたい場合。中央にしたいなら center */
  }

  /* 2カラム → 縦積み。右（画像）を先に、左（本文）を後に */
  .two-col {
    display: flex !important;
    flex-direction: column !important;
    /* ← 縦積み */
    align-items: center;
    /* ← 中央へ寄せる */
    gap: 12px;
  }

  .two-col .right {
    order: 1;
    /* ← 右を先頭＝h2直下へ */
    width: auto !important;
    margin: 0 !important;
    text-align: center;
  }

  .two-col .right img {
    display: block;
    max-width: 260px;
    /* 画像の上限。必要に応じて 200〜300px で現物合わせ */
    width: 80%;
    height: auto;
    margin: 0 auto;
  }

  .two-col .right p {
    margin: 6px 0 0 !important;
    padding: 0 !important;
    text-align: center;
  }

  .two-col .left {
    order: 2;
    /* ← 本文は2番目に（画像の下） */
    width: 100% !important;
    /* ← 見切れを防ぐ */
  }

  /* 1) 既存のフロー本体は非表示（矢印も含め完全に隠す） */
  #main .flow-container {
    display: none !important;
    /* 既存の幅指定や矢印表示の有無より強く隠す */
  }

  /* 2) 画像版フローを表示して画面幅にフィットさせる */
  #main .flow-svg {
    display: block !important;
    margin: 10px 0 0 0;
  }

  #main .flow-svg svg {
    width: 100% !important;
    height: auto;
  }

  .wrapper {
    display: none !important;
  }

  .activity_list {
    margin: 8px 0 0 29px !important;
  }

  .disc_list {
    margin-left: 1em !important;
  }
}

/*--------------------------------------------------------------------organization----------------------------------------------------------------------*/
.side-menu {
  width: 170px;
  flex: 0 0 170px;
  height: 325px;
  background: #E7E7F3
    /*font-family: sans-serif;*/
}

.side-menu .menu-title {
  margin: 5px 0 15px 10px;
}

.side-menu .menu-list {
  width: 150px;
  height: 270px;
  background-color: #fff;
  list-style: none;
  padding: 0;
  line-height: 25px;
}

.side-menu .menu-list li {
  margin-left: 5px;
}

.side-menu .menu-list .submenu {
  line-height: 20px;
  list-style: none;
  padding-left: 1em;
}

.side-menu .menu-list .sep {
  border: none;
  border-top: 3px solid #E7E7F3;
  margin: 6px 0;
}

.side-menu .arrow_list {
  margin-left: 10px;
}

.side-menu .arrow_list li:before {
  content: "";
  position: absolute;
  top: 0.7em;
  left: 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 5px;
  height: 5px;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
}

.arrow_list li.no-before {
  padding-left: 0;
  margin: 0;
}

.arrow_list li.no-before::before {
  content: none;
}

.side-menu a {
  color: #333;
  /*リンクテキストの色*/
  -webkit-transition: 0.5s;
  /*マウスオン時の移り変わるまでの時間設定。0.5秒。*/
  transition: 0.5s;
  /*同上*/
  text-decoration: none;
  /*マウスオン時にリンクの下線を消す設定*/
}

.side-menu a:hover {
  color: #0070C0;
  /*マウスオン時の文字色*/
  text-decoration: none;
  /*マウスオン時にリンクの下線を消す設定*/
}

.line {
  border: #ccc solid 1px;
  margin-bottom: 10px;
  width: 810px;
}

.link_member .ta1 {
  line-height: 15px;
}

.link_member .ta1 a {
  color: #0070C0;
  text-decoration: none;
}

.link_member .ta1,
.link_member .ta1 td,
.link_member .ta1 th {
  border: none;
  box-shadow: none;
  background-image: none;
  background: transparent
}

.admin_research th:first-child,
.admin_research td:first-child:not([colspan]) {
  width: 7em;
}

@media (min-width: 500px) {
  .ISO .link_member {
    width: 450px;
  }
}

@media (max-width: 480px) {
  #side-menu-sp-js {
    width: auto !important;
    height: auto !important;
    padding: 8px 10px;
    box-sizing: border-box;
    background: #E7E7F3;
    border-radius: 4px;
    margin: 16px;
  }

  #side-menu-sp-js .menu-list {
    width: 100% !important;
    height: auto !important;
    padding: 8px 10px;
    box-sizing: border-box;
    line-height: 1.7;
  }

  /* インライン style="width:700px" を確実に打ち消すため、特異性を上げて !important も付与 */
  #main table.ta1,
  #main .ta1 {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    /* セル内の自動割付を強化 */
    border-collapse: collapse;
    /* レイアウトを安定化（任意） */
  }

  /* セル内の長文・長いリンク名の折り返しを強化（admin_research 含む） */
  #main .ta1 td,
  #main .ta1 th {
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }

  /* link_member の <section style="margin-left:30px;"> をゼロに（左右の押し出し防止） */
  #main section {
    margin: 0 !important;
  }

  /* 画面幅に合わせてコンテンツ器も可変に（横スクロール根治） */
  #contents .inner {
    width: auto !important;
    margin: 0 12px !important;
  }

  /* .line の固定 810px を解除（スマホでのハミ出し防止） */
  .line {
    width: auto !important;
    max-width: 100% !important;
  }
}