@charset "UTF-8";
/* CSS Document */

/* -------------------------------------------------
base css
--------------------------------------------------*/
html {
 font-size: 62.5%;
 scroll-behavior: smooth;
}

body {
 color: #000F32;
 letter-spacing: 0.05em;
 background-color: #F4F6FA;
 font-family: Noto Sans JP;
}

/* font
-------------------------*/
p {
 font-size: 1.6rem;
 line-height: 1.75; /*28px*/
 margin-top: 1.6rem;
 margin-bottom: 1.6rem;
}

.fs-s {
 font-size: 90%;
 line-height: 2;
}
.fs-xs {
 font-size: 1.2rem;
 line-height: 2;
}

h3 {
 font-family: 'Noto Serif JP', sans-serif;
 font-size: 2rem;
 line-height: 1.6; /* 40px */
 font-weight: bold;
}

h4 {
 font-size: 1.6rem;
 line-height: 1.5; /* 24px */
 font-weight: bold;
 margin-bottom: 0.8rem;
}

/* margin
-------------------------*/
.mb-0 {margin-bottom: 0;}
.mb-8 {margin-bottom: 0.8rem;}
.mb-16 {margin-bottom: 1.6rem;}
.mb-24 {margin-bottom: 2.4rem;}
.mb-32 {margin-bottom: 3.2rem;}
.mb-40 {margin-bottom: 4rem;}
.mb-54 {margin-bottom: 5.4rem;}
.mb-64 {margin-bottom: 6.4rem;}

.mt-0 {margin-top: 0;}
.mt-8 {margin-top: 0.8rem;}
.mt-16 {margin-top: 1.6rem;}
.mt-24 {margin-top: 2.4rem;}
.mt-32 {margin-top: 3.2rem;}
.mt-40 {margin-top: 4rem;}
.mt-54 {margin-top: 5.4rem;}
.mt-64 {margin-top: 6.4rem;}

/* -------------------------------------------------
state css
--------------------------------------------------*/
.cl-red {
 color: #f5000b;
}
.cl-blue-700 {
 color: #636C82;
}
.cl-blue-900 {
 color: #000F32;
}
.cl-white-00 {
 color: #ffffff;
}
.fbd {
 font-weight: bold;
}
.attention {
 color: #f5000b;
 font-weight: bold;
}
main a {
 color: #000F32;
 font-weight: bold;
}

/* mouse on */
a:hover {
 opacity: 0.4;
 transition-duration: 0.2s;
}

/* -------------------------------------------------
parts css
--------------------------------------------------*/

/*pagetop btn*/
#pagetop {
  display: block;
  width: 60px;
  height: 60px;
  box-sizing: border-box;
  background: #ffffff;
/*    border: 1px solid #999;*/
  padding-top: 30px;
  text-align: center;
  letter-spacing: -1px;
  font-size: 85%;
  text-decoration: none;
  color: #ffffff;
  opacity: 0.9;
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 10000;
}
#pagetop::before{
  content: "";
  display: block;
  border-top: 2px solid #000F32;
  border-right: 2px solid #000F32;
  width: 25%;
  height: 25%;
  top: 45%;
  left: 0;
  right: 0;
  margin: auto;
  position: absolute;
  transform: rotate(-45deg);
}
#pagetop:hover{
  opacity: 0.5;
}

/*タイトル飾り*/
section h3, 
section h3 {
 padding: 0 2rem; /*上下 左右の余白*/
 background: transparent; /*背景透明*/
 border-left: solid 4px #AEB3BE; 
 margin-bottom: 3rem;
}

/*表 タイトル飾り*/
section.table-area-01 h3, 
section.table-area-02 h3, 
section.table-area-03 h3 {
 padding: 0 2rem; /*上下 左右の余白*/
 background: transparent; /*背景透明に*/
 border-left: solid 4px #AEB3BE; /*左線*/
}

h2 {
 font-family: 'Noto Serif JP', sans-serif;
 font-size: 3.2rem;
 max-width: 856px;		
 text-align: center;
 margin: 7.2rem auto 5.4rem;	
}

/*外部リンクアイコン*/
span.arrow {
 position: relative;
 display: inline-block;
 padding: 0 0 0 16px;
 color: #000;
 vertical-align: top;
 text-decoration: none;
 /*	font-size: 15px;*/
}
.arrow::before, .arrow::after {
 position: absolute;
 top: 0;
 bottom: 0;
 left: 0;
 margin: auto;
 content: "";
 vertical-align: middle;
}
.arrow-link::before {
 width: 12px;
 height: 2px;
 background: #000F32;
 -webkit-transform: rotate(135deg);
 transform: rotate(135deg);
}
.arrow-link::after {
 left: 1px;
 width: 10px;
 height: 10px;
 border-top: 2px solid #000F32;
 border-right: 2px solid #000F32;
}

/*archive btn*/
.link-btn {
 /* スタイル用 */
 display: flex;
 justify-content: center;
 align-items: center;
 max-width: 280px;
 /*  height: 50px;*/
 line-height: 3.42; /*48px*/
 margin: 0 auto;
 border: 1px solid #000F32;
 border-radius: 3px;
 color: #000F32;
 font-size: 1.4rem;
 font-weight: bold;
 position: relative;
}
.link-btn:before, .link-btn:after {
 position: absolute;
 top: 50%;
 right: 42px;
 height: 1px;
 background: #000F32;
 content: '';
}
.link-btn:before {
 width: 30px;
 transform: translateY(-50%);
}
.link-btn:after {
 width: 8px;
 transform: translateY(-50%) rotate(45deg);
 transform-origin: right center;
}

/*ページ送りr*/
/*
.pagination {
 display: flex;
 justify-content: center;
 align-items: center;
 gap: 0 8px;
 list-style-type: none;
 padding: 0;
}
.pagination a {
 display: flex;
 justify-content: center;
 align-items: center;
 width: 2em;
 height: 2em;
 border: 1px solid #000F32;
 border-radius: 1px;
 color: #000F32;
}
.pagination a:not(:hover) {
 text-decoration: none;
}
.pagination .current a {
 background-color: #000F32;
 color: #fff;
 pointer-events: none;
}
.pagination li {
 margin-top: 7.2rem !important;
}
*/

/*list number*/
ol.list-style-nmr {
 list-style-type: decimal;
 padding-left: 2em;
}
ol.list-style-nmr li {
 font-size: 1.5rem;
 line-height: 1.6;
 padding-bottom: 1.6rem;
}

/*list square*/
ul.list-style-square li,
ul.list-style-square li.list-attention {
 font-size: 1.5rem;
 line-height: 1.6;
 padding-bottom: 1.6rem;
}
ul.list-style-square li,
ul.list-style-square li.list-attention {
  position: relative;
  padding-left: 15px;
  }
ul.list-style-square li:before {
  content: "";
  position: absolute;
  top: .5em;
  left: 0;
  width: 10px;
  height: 10px;
  background-color: #000F32;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  }
ul.list-style-square li.list-attention:before {
  content: "";
  position: absolute;
  top: .5em;
  left: 0;
  width: 10px;
  height: 10px;
  background-color: #f5000b;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  }


/* -------------------------------------------------
layout css
--------------------------------------------------*/

/*common
-------------------------*/
/*両サイド*/
.inner {
 padding: 0 2%;
}

.txt-justify {
 text-align: justify;
 }

p.txt-justify {
 padding: 0!important;
}


/* header
-------------------------*/
header {
 width: 100%;
 border-top: solid 8px #000F32;
 background-color: #ffffff;
}

/*logo*/
header div.nav-wrap {
 background-color: #000F32;
}

/*global navigation*/
header div.nav-wrap div.inner nav.gnav ul {
 height: inherit;
 font-size: 1.3rem;
 line-height: 3.5;
}

header div.nav-wrap div.inner nav.gnav ul li a {
 color: #ffffff;
}

/* main visual
-------------------------*/

/*トップページ ヘッダー画像*/
div.top-main-visual img {
 width: 100%;
 max-height: 380px;
 object-fit: cover;
 object-position: 50% 35%; 
}

/*下層ページ ヘッダー画像*/
div.main-visual img {
 width: 100%;
 max-height: 380px;
 object-fit: cover;
}

/* footer
-------------------------*/
footer {
 width: 100%;
 border-top: solid 1px #E9E9E9;
}
footer nav.fnav h3 {
 font-size: 1.4rem;
 font-weight: bold;
 line-height: 1.6;
 margin-top: 4rem;
 margin-bottom: 0.8rem;
}

footer nav.fnav ul {
 margin-bottom: 6.4rem;
}

footer nav.fnav ul li {
 font-size: 1.2rem;
 line-height: 2;
 /*margin-bottom: 6.4rem;*/
}

footer nav.fnav ul.first {
 margin-bottom: 3.2rem;	
}

footer div.copy {
 text-align: center;
 background-color: #636C82;
 line-height: 5.6;
}

/* contact-area
-------------------------*/
div.contact-area {
 background-color: #f4f4f4;
 padding: 2.4rem;
 margin-bottom: 3rem;
}
div.contact-area h4 {
 padding-bottom: 1rem;
 border-bottom: #dedede solid 1px;
}

/* top page
-------------------------*/
section.top-news li {
 border-bottom: solid 1px #E9E9E9;
 margin-top: 3.2rem;
}
section.top-news div.top-news__time {
 font-size: 1.3rem;
 line-height: 1.23; /*15.99*/
 color: #AEB3BE;
}
section.top-news li:first-child {
 margin-top: 0;
}
section.top-news div.top-news__list h3 {
 margin-top: 0.8rem;
 margin-bottom: 0.8rem;
 padding: 0; /*上下 左右の余白*/
 background: transparent; /*背景透明に*/
 border-left: 0; /*左線リセット*/
}
section.top-news div.top-news__list p {
 font-weight: normal;
 margin: 0;
}

section.top-news div.top-news__list {
 margin-bottom: 3.2rem;
}
section.top-news div.link-btn {
 margin-top: 6.4rem;
}

/* seminar page
-------------------------*/

table {
 width: 100%;
}

th.nrp, td.nrp {
 white-space: nowrap;
}

section.table-area-01 th, 
section.table-area-01 td, 
section.table-area-02 th, 
section.table-area-02 td {
 font-size: 1.4rem;
 line-height: 1.6; /*24*/
 border: 1px solid #AEB3BE;
}

section.table-area-01 th, 
section.table-area-02 th, 
ection.table-area-03 th {
 background-color: #D0D3D9;
}

section.table-area-01 th, 
section.table-area-02 th, 
section.table-area-03 th {
 background-color: #D0D3D9;
}

/* researchpaper page
-------------------------*/

section.table-area-03 table tr th, 
section.table-area-03 table tr td:last-child {
 text-align: center;
}

/*文字の折り返し*/
section.table-area-03 table tr th, 
section.table-area-03 table tr td:nth-child(2) {
  white-space: nowrap;
}

section.table-area-03 tr th,
section.table-area-03 tr td {
 font-size: 1.4rem;
 line-height: 1.6; /*24*/
 padding: 1rem;
 border: 1px solid #AEB3BE;
}

/* contest page
-------------------------*/

.contest-box-01 {
 margin-bottom: 2.4rem;
}
.contest-box-02 {
 margin-bottom: 5.4rem;
}
.contest-box-01 p, .contest-box-02 p {
 margin: 0;
}

/*過去情報*/
div.accordion div.option div.content h4 {
 margin-bottom: 0;
 padding-left: 1rem;
 font-size: 1.5rem;
 line-height: 1.6;
}
div.option div.content p {
 font-size: 1.4rem;
 line-height: 1.8; /*25.2*/
 padding: 1rem;
}

/*table scroll*/
.table-wrap-hd {
width: 100%;
overflow-x: auto;
 padding-bottom: 5px;
}
.table-wrap-hd::-webkit-scrollbar {
height: 5px;
}
.table-wrap-hd::-webkit-scrollbar-track {
border-radius: 5px;
background: #eee;
}
.table-wrap-hd::-webkit-scrollbar-thumb {
border-radius: 5px;
background: #666;
}

/* -------------------------------------------------
media css
--------------------------------------------------*/

/* sp,tablet common
-------------------------*/

/*global navigation*/
@media screen and (max-width: 1024px) {
 
 /* チェックボックスは非表示に */
 .gnav-hidden {
  display: none;
 }
 /* ハンバーガーアイコンの設置スペース */
 .gnav-open {
  margin: 0 0 0 auto; /* アイコン右寄寄せ */
  display: flex;
  height: 60px;
  width: 60px;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 100; 
  cursor: pointer;
 }
 /* ハンバーガーメニューのアイコン */
 .gnav-open span, .gnav-open span:before, .gnav-open span:after {
  content: '';
  display: block;
  height: 3px;
  width: 25px;
  border-radius: 3px;
  background: #ffffff;
  transition: 0.5s;
  position: absolute;
 }
 /* 三本線のうち一番上の棒の位置調整 */
 .gnav-open span:before {
  bottom: 8px;
 }
 
 /* 三本線のうち一番下の棒の位置調整 */
 .gnav-open span:after {
  top: 8px;
 }
 /* アイコンがクリック後真ん中の線を透明 */
 #gnav-check:checked ~ .gnav-open span {
  background: rgba(255, 255, 255, 0);
 }
 /* アイコンがクリック後アイコンが×印になように上下の線を回転 */
 #gnav-check:checked ~ .gnav-open span::before {
  bottom: 0;
  transform: rotate(45deg);
 }
 #gnav-check:checked ~ .gnav-open span::after {
  top: 0;
  transform: rotate(-45deg);
 }
 /* クリック後　メニュー*/
 .gnav {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 100%; /* メニューを画面の外に飛ばす */
  z-index: 99;
  background: rgba(0, 15, 50, 0.8);
  transition: .5s;
 }
 .gnav ul.gnav-list {
  margin-top: 68px;
  padding-left: 5rem;
 }
 /* アイコンクリック後メニューを表示 */
 #gnav-check:checked ~ .gnav {
  left: 0; /* メニューを画面に入れる */
 }
 
}

/* sp
-------------------------*/
@media screen and (max-width: 767px) {
 
 /*各ページコンテンツの背景*/
 .sp-contents-inner {
  margin: auto 5%;
  background-color: #ffffff;
  box-shadow: 0px 4px 6px 0px rgba(234, 234, 234, 0.4);
  padding: 4.8rem 3.2rem;
  margin-bottom: 7.2rem;
 }
 footer nav.fnav {
  margin: auto 4%;
 }
 
 /*contest page 見出しと名前の余白*/
 table.style-none td {
  padding: 1rem;
}
 
/* pagetop btn*/
 #pagetop{
  width: 40px;
  height: 40px;
  text-indent: -9999px;
  opacity: 1;
  border: none;
  background: none;
  bottom: 10px;
  right: 10px;
}
#pagetop::before{
  bottom: 0;
}
 
/*表 縦レイアウト researchpaper page以外*/ 
section.table-area-01 table , 
section.table-area-02 table {
  display: block;
  width: 100%;
}
section.table-area-01 table tbody,
section.table-area-02 table tbody {
  display: block;
  width: 100%;
}
section.table-area-01 table tr, 
section.table-area-02 table tr {
  display: block;
  width: 100%;
}
section.table-area-01 table tr th, 
section.table-area-02 table tr th {
  display: block;
  width: 100%;
 border-bottom: none;
 padding: 1rem;
} 
 
section.table-area-01 table tr td, 
section.table-area-02 table tr td {
 display: block;
 width: 100%;
 border-bottom: none;
 padding: 1.6rem;
} 
 
/*表の最後 ボーダー有り*/ 
section.table-area-01 table tr td.table-end, 
section.table-area-02 table tr td.table-end {
 border-bottom: solid 1px #AEB3BE;  
 }
 
/*過去開催内 表の余白*/
section.table-area-01 div.accordion div.option div.content table tr th,
section.table-area-02 div.accordion div.option div.content table tr th, 
section #sm-table div.accordion div.option div.content table tr td {
 padding: 1rem!important;
}
section.table-area-01 div.accordion div.option div.content table tr td,
section.table-area-02 div.accordion div.option div.content table tr td,
section #sm-table div.accordion div.option div.content table tr td {
 padding: 1.6rem!important;
}

/*main visual　高さ調整*/
div.main-visual img {
 max-height: 180px;
 object-fit: cover;
}

}

/* tablet
-------------------------*/
@media screen and (min-width: 768px) {

 footer nav.fnav {
  margin: auto 5%;
 }
 
 /*各ページコンテンツの背景*/
 .dp-contents-inner {
  max-width: 856px;
  margin: auto;
  background-color: #ffffff;
  box-shadow: 0px 4px 6px 0px rgba(234, 234, 234, 0.4);
  padding: 6.4rem 12rem;
  margin-bottom: 7.2rem;
 }
 
 /*表の余白*/ 
section.table-area-01 th, 
section.table-area-01 td, 
section.table-area-02 th, 
section.table-area-02 td {
 padding: 2rem;
}
 
}

/*tablet横*/
@media (min-width:834px) and (max-width: 1024px) {
 
/*global navigation*/
header div.nav-wrap div.inner nav.gnav ul {
 height: inherit;
 font-size: 1.3rem;
 line-height: 3;
} 
 
} 

/* desktop
-------------------------*/
@media screen and (min-width: 1025px) {
 
 /*global navigation横並び*/
 header div.nav-wrap div.inner nav.gnav ul {
 display: flex;
 justify-content: space-between;
 padding-bottom: 1rem;
 }

 .pc-none {
  display: none !important;
  }
 
}