#main_up,
#main_down {
  float: left;
  width: 100%;
  box-sizing: border-box;
}

/* ======== MAINCONTENTS CUSTOMIZE ======== */
div#main_up a,
div#main_down a {
   color:#134D99;
}

div#main_up a:hover,
div#main_down a:hover {
   color:#134D99;
   text-decoration:underline;
}

/* 見出し (h2-h6) */
div#main_up h2,
div#main_down h2 {
   clear:both;
   margin-bottom:8px;
   padding:1px 10px;
   line-height:2.0;
   color:#fff;
   font-size:94%;/* 15px相当 */
   font-weight:bold;
   background : #ffffff url(images/bg_h2.gif) repeat-x 100% 100%;
}

div#main_up h3,
div#main_down h3 {
   margin-bottom:8px;
   line-height:1.8;
   font-size:88%;/* 14px相当 */
   color:#134D99;
   border-bottom:3px solid #005DD8;
}

div#main_up h4,
div#main_down h4 {
   margin-bottom:2px;
   font-size:75%;/* 12px相当 */
}

div#main_up h5,
div#main_down h5 {
   margin-bottom:2px;
   font-size:75%;/* 12px相当 */
}

div#main_up h6,
div#main_down h6 {
   margin-bottom:2px;
   font-size:75%;/* 12px相当 */
}

/* 段落 */
div#main_up p,
div#main_down p {
   margin:0 0 1em 0;
   font-size:75%;/* 12px相当 */
}

/* リスト要素 */
/* ★注意：元の記述をより正確に解釈して修正しています */
div#main_up ul, div#main_up ol, div#main_up dl,
div#main_down ul, div#main_down ol, div#main_down dl {
   font-size:75%;/* 12px相当 */
}

div#main_up dt,
div#main_down dt {
   margin-bottom:3px;
}

div#main_up dd,
div#main_down dd {
   padding:0;
   margin:0 0 0.5em 1em;
   padding:3px;
   background:#f1f1f1;
}


/* ======== TOPNAVI CUSTOMIZE ======== */
div#main_up div.topNavi,
div#main_down div.topNavi {
   overflow:hidden;
   position:relative;
   margin-left:-10px;
}

/* IE6以前向けのハック */
* html div#main_up div.topNavi,
* html div#main_down div.topNavi {
   height:1em;
   overflow:visible;
}

div#main_up div.topNavi div.topNaviColumn,
div#main_down div.topNavi div.topNaviColumn {
   display:inline;
   float:left;
   margin-left:10px;
   padding:0 0 2em 0;
}

div#main_up div.topNavi h2.topNaviImg,
div#main_down div.topNavi h2.topNaviImg {
   margin:0;
   padding:0;
   background:none;
}

div#main_up div.topNavi div.topNaviColumn p.detail,
div#main_down div.topNavi div.topNaviColumn p.detail {
   position:absolute;
   bottom:0;
   text-align:right;
}

div#main_up div.topNavi div.topNaviColumn p.detail a,
div#main_down div.topNavi div.topNaviColumn p.detail a {
   padding:0 0 0 7px;
   background : url(images/bg_arrow.gif) no-repeat left 50%;
}

div#main_up div.topNavi div.topNaviColumn p.cLeft,
div#main_down div.topNavi div.topNaviColumn p.cLeft {
   right:280px;
}

div#main_up div.topNavi div.topNaviColumn p.cRight,
div#main_down div.topNavi div.topNaviColumn p.cRight {
   right:0;
}


/* ======== INFORMATION CUSTOMIZE ======== */
div#main_up dl.information,
div#main_down dl.information {
   margin:0;
}
div#main_up dl.information dt,
div#main_down dl.information dt {
   float:left;
   padding-top:5px;
}

div#main_up dl.information dd,
div#main_down dl.information dd {
   margin:0 0 5px 0;
   padding: 5px 0px 5px 9em;
   background : url(images/bg_dotline.gif) repeat-x 0px 100%;
}

/* テーブル */
div#main_up table,
div#main_down table {
   font-size:75%;/* 12px相当 */
}

/* 特定の要素の色指定 */
#top #contents #main_up p em strong,
#top #contents #main_down p em strong,
#top #contents #main_up h3 strong,
#top #contents #main_down h3 strong {
	color: #F00;
}



/* 各セクションの初期設定（スマホ表示） */
.main_up, .main_down .sub {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 20px;
}



/* #sub をグリッドの2列目に配置 */
#sub {
  grid-column: 2;
  /* #sub は縦方向に2行分を占めるようにする */
  grid-row: 1 / 3;
  width: 100%; /* ★ この行を追加 */
}



/* PC用：hoverで表示 *//* PC用：hoverで表示 *//* PC用：hoverで表示 *//* PC用：hoverで表示 */
@media screen and (min-width: 769px) {
  /* トップページ用 */
  #contents .wrapper {
    display: grid;
    /* 左カラム(可変)と右カラム(29%)を定義し、間に3%の隙間を空ける */
    grid-template-columns: 1fr 25%; 
    grid-column-gap: 3%;
  }


  /* #main_up をグリッドの1列目に配置 */
  #main_up {
    grid-column: 1;
  }

  /* #main_down をグリッドの1列目に配置 */
  #main_down {
    grid-column: 1;
  }
  /* #sub をグリッドの2列目に配置 */
  #sub {
    grid-column: 2;
    /* #sub は縦方向に2行分を占めるようにする */
    grid-row: 1 / 3; 
  }

}


/* スマホ表示 *//* スマホ表示 *//* スマホ表示 *//* スマホ表示 *//* スマホ表示 */
@media screen and (max-width: 768px) {
  #contents .wrapper {
  display: flex; /* block から flex に変更 */
  flex-direction: column; /* 縦並びのフレックスボックスにする */
  }

  /* 幅やマージンをリセット */
  #main_up,
  #main_down,
  #sub {
    width: 100%;
    margin: 0 0 30px; /* 元のスタイルを継承 */
  }

  /* orderプロパティで表示順を制御 */
  #main_up {
    order: 1; /* 1番目に表示 */
  }
  #sub {
    order: 2; /* 2番目に表示 */
  }
  #main_down {
    order: 3; /* 3番目に表示 */
  }
}
