@charset "UTF-8";

/* ---------------------------------------
  基本情報
-----------------------------------------*/

html,body{	height:100%;}
html{
	font-size:62.5%;
    overflow-y: scroll;
}
body, h1, h2, h3, h4, h5, h6, p, address,
ul, ol, li, dl, dt, dd,
table, th, td, img, form,figcaption {
	margin: 0;
	padding: 0;
	border: none;
	line-height: 100%;
	list-style-type: none;
	font-style: normal;
	font-weight: normal;
	font-family: 'Noto Sans JP', sans-serif;
	text-align: left;
	color: #000;
	font-size: 1.5rem;
	line-height: 1.8;
}
input, button, textarea, select {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	outline: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	font-family: 'Noto Sans JP', sans-serif;
	color: #000;
	font-size: 1.5rem;
	line-height: 1.8;
}
textarea{
	resize: vertical;
}
select::-ms-expand {
	display: none;
}
body {
	background-color: #fff785;
	border-top: #e50012 solid 6px; 
}
main {
	border-bottom: #f5b391 solid 6px; 
}
body a {
	text-decoration: none;
	color: #000;
}
img{
	vertical-align: bottom;
	max-width: 100%;
}
*,*:after,*:before{
	box-sizing: border-box;
}
@media screen and (min-width: 769px) {
	body{
		min-width: 1175px;
	}
}
@media screen and (max-width: 768px) {
	body.fixed{
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
	img{
		width: 100%;
	}
	p, dt, dd ,li ,th ,td,
	input, button, textarea, select{
		font-size: 3.4vw;
		line-height: 1.6;
	}
}

/* responsive
--------------------------------*/
@media screen and (min-width: 769px) {
	.sp{
		display: none!important;
	}
}
@media screen and (max-width: 768px) {
	.pc{
		display: none!important;
	}
}

/* hover
--------------------------------*/
.fade:hover{
	opacity: .7;
}
.fade{
	outline: 1px solid transparent;
	transition: opacity .3s;
}

/* common
--------------------------------*/
.wrap{
	max-width: 960px;
	margin: 0 auto;
}
.aligncenter{
	display: block;
	margin: 0 auto;
}
.alignright{
	float: right;
}
.alignleft{
	float: left;
}
.tac{
	text-align: center;
}
.tar{
	text-align: right;
}
.tal{
	text-align: left;
}
.mb00{
	margin-bottom: 0px!important;
}
.mt40{
	margin-top: 40px!important;
}
.mb40{
	margin-bottom: 40px!important;
}
.mb20{
	margin-bottom: 20px!important;
}
@media screen and (max-width: 768px) {
	.wrap{
		width: 94%;
	}
	.mt40{
		margin-top: 9%!important;
	}
	.mb40{
		margin-bottom: 9%!important;
	}
	.mb20{
		margin-bottom: 5%!important;
	}
}


/* ---------------------------------------------
  index
-----------------------------------------------*/
#index li {
	display: block;
	margin: 0 27px 30px 0; 
	float: left;
}
#index li:nth-child(3n) {
	margin-right: 0; 
}
#index li a {
	display: block;
	background-color: #fff;
	width: 302px;
	height: 186px;
	border-radius: 20px;
}
#index li a:hover {
	background-color: #f5b391;
}
@media screen and (max-width: 768px) {
	#index {
		width: 335px;
		margin: 0 auto;
	}

	#index li {
		margin: 0 0 14px 0; 
	}
	#index li a {
		width: 335px;
		height: 128px;
	}
}

/* ---------------------------------------------
  header
-----------------------------------------------*/
header{
	width: 960px;
	margin: 40px auto;
}
header .logo{
	width: 736px;
}
@media screen and (max-width: 768px) {
	header{
		height: auto;
		width: 100%;
		min-width: 0;
		margin: 20px auto;
	}
	header .logo{
		width: 286px;
		margin-left: 3vw;
	}
}

/* ---------------------------------------------
  main
-----------------------------------------------*/

main{
	display: block;
	padding: 40px 0;
}
@media screen and (max-width: 768px) {
	main{
		padding: 20px 0 40px 0;
	}
}


/* ttl
--------------------------------*/
.ttl_type1{
	font-size: 1.8rem;
	line-height: 1.6em;
	letter-spacing: .1em;
	font-weight: bold;
	background: #EEEEEE;
	padding: 20px;
	border-left: 5px solid #006935;
	margin-bottom: 35px;
}
.ie .ttl_type1{
	padding: 23px 20px 17px;
}
.pc {
	display: block;
}
@media screen and (max-width: 768px) {
	.ttl_type1{
		font-size: 4vw;
		padding: 4.5%;
		margin-bottom: 5%;
	}
	.pc {
		display: none;
	}
}

/* col2
--------------------------------*/
#col2 .wrap{
	display: flex;
	justify-content: flex-start;
	align-items: stretch;
	flex-direction: row-reverse;
}
.side_col{
	width: 245px;
	padding: 0;
	margin-right: 20px;
	border-radius: 20px;
}
.main_col{
	width: calc(100% - 245px - 20px);
	padding-bottom: 40px;
	background-color: #fff;
	border-radius: 20px;
}
.main_col section {
	margin:0 40px 40px 40px;
}
.main_col .ch {
	background-color: #e50012;
	border-radius: 20px  20px 0 0;
	text-align: center;
	color: #fff;
	font-weight: bold;
	font-size: 16px;
	letter-spacing: 0.6em;
	padding: 10px 0;
}
.main_col .ch span {
	font-size: 24px;
}

.main_col h1 {
	text-align: center;
	padding: 70px 0;
	font-weight: bold;
	font-size: 30px;
	line-height: 36px;
}
.main_col h1 span {
	font-weight: normal;
	font-size: 18px;
}
.main_col h1:after {
  content: '･･･';
  display: block;
  color: #e50012;
  font-weight: bold;
  padding-top: 20px;
}

#abstract {
	background-color: #f2f2f2;
	border-radius: 20px;
	padding: 20px 20px 10px 20px;
}
#abstract dt {
	color: #e50012;
	font-weight: bold;
	text-align: center;
	letter-spacing: 0.8em;
	margin-bottom: 10px;
}

#abstract dt img {
	vertical-align: middle;
	display: inline;
}

#abstract dd {
	font-weight: bold;
	text-indent: -1.5em;
	margin-left:1.5em; 
	margin-bottom: 10px;
}
#abstract dd span {
	color: #e50012;
	padding-right: 0.5em;
}
#abstract dd a {
	text-decoration: underline;
}
#abstract dd a:hover {
	text-decoration: none;
}
.sectionBox h2 {
	background: #fff785 url(../img/common/eyecatch.svg) 15px center no-repeat;
	background-size: 22px;
	border-radius: 20px;
	font-size: 18px;
	line-height: 24px;
	padding: 13px 15px 15px 45px ;
	font-weight: bold;
	margin-bottom:30px; 
}
.sectionBox h3 {
	border-bottom:#e50012 solid 2px; 
	font-size: 16px;
	line-height: 22px;
	padding: 15px 15px 15px 0;
	font-weight: bold;
	margin-bottom:20px; 
}
.sectionBox h3.circle {
	background: url(../img/common/eyecatch.svg) left center no-repeat;
	background-size: 16px;
	padding-left: 25px;
}
.sectionBox h4 {
	font-weight: bold;
}
.sectionBox p {
	text-indent: 1em;
}

.sectionBox figcaption,
.sectionBox strong {
	font-weight: bold;
}

.main_col section#references {
	border:#fcd681 solid 5px;
	padding: 15px 15px 10px 15px;
	margin-top: 80px;
}

#references dt {
	font-weight: bold;
	margin-bottom: 5px;
}
#references dd {
	text-indent: -2em;
	margin-left:2em; 
	margin-bottom: 5px;
}

#references dd.word-break {
	word-break:break-all;
}

.sectionBox,
.sectionBox figure,
.sectionBox p {
	margin-bottom: 20px;
}
.sectionBox figcaption {
	margin-bottom: 10px;
}

.ch06 .left {
	float: left;
}
.ch06 .right {
	float: right;
}
.ch06 div figcaption,
.ch07 figcaption {
	text-align: center;
}

.ch06 img,
.ch07 img {
	width: 300px;
}
.ch07 img {
	margin:0 auto; 
}

figure img.border {
	border: solid 1px #000;
}
figure img.p5 {
	padding: 5px;
}

p.number {
	text-indent: -2.5em;
	margin-left:2.5em; 
}
p.number2 {
	text-indent: -1em;
	margin-left:2em; 
}
p.noindent {
	text-indent: 0em;
}

@media screen and (max-width: 768px) {
	.main_col h1 {
		padding:35px 0; 
	}
	.main_col section {
		margin-left:20px;
		margin-right:20px;
	}
	.ch06 .left,
	.ch06 .right {
		float: none;
	}
	.ch06 img,
	.ch07 img {
		width: 100%;
	}
	.sectionBox,
	.sectionBox p {
		margin-bottom: 5%;
	}
	.sectionBox figcaption {
		margin-bottom: 2%;
	}
	#references {
		margin-top: 5%;
	}
	#col2 .wrap{
		display: block;
	}
	.main_col{
		width: 100%;
	}
	.side_col{
		margin: 0;
	}
	.main_col .ch {
		font-size: 2vw;
	}
	.main_col .ch span {
		font-size: 3vw;
	}
	.main_col .ch {
		font-size: 16px;
	}
	.main_col .ch span {
		font-size: 24px;
	}
	#references dt,
	#abstract dt, 
	#references dd,
	#abstract dd {
		font-size: 14px;
	}
	#abstract dt img {
		display: inline;
		width: auto;
	}
	.sectionBox p {
		font-size: 1.5rem;
	}
}

/* ---------------------------------------------
  footer
-----------------------------------------------*/
footer{
	padding: 20px 0 26px 0;
	background: #fff;
	border-top: #fff785 solid 6px; 
	text-align: center;
}
@media screen and (max-width: 768px) {
	footer{
		padding: 5% 0 6% 0;
		font-size: 2vw;
	}
}

/* ------------------------------
    clearfix
------------------------------ */

.cf:after{
  content: ".";
  display: block;
  height: 0;
  font-size:0;
  clear: both;
  visibility:hidden;
}

.cf {display: inline-block;}

/* Hides from IE Mac */
* html .cf {height: 1%;}
.cf {display:block;}
/* End Hack */



/* ------------------------------
    menu
------------------------------ */

header {
  display: flex;
  justify-content: space-between;
}

.nav-button {
  display: none;
}

.nav-wrap.open {
  display: block;
}

.nav-wrap.close {
  display: none;
}

.nav-wrap li a {
	display: block;
	background-color: #fff;
	width: 245px;
}
.nav-wrap li:first-child a {
		border-radius: 20px 20px 0 0;
}
.nav-wrap li:last-child a {
		border-radius: 0 0 20px 20px;
}
.nav-wrap li a img {
	width: 245px;
}
.nav-wrap li a.act,
.nav-wrap li a:hover {
	background-color: #f5b391;
}

@media screen and (max-width: 768px) {
  .nav-button {
    display: block;
    cursor: pointer;
    background-color: #e50012;
	border-radius: 30px 0 0 30px;
	position: fixed;
	right: 0;
	padding-left:25px;
    z-index: 15;
  }
  .nav-wrap {
    position: fixed;
    left: 0;
    top: 0;
    display: none;
    z-index: 5;
    background-color: rgba(255, 247, 133, 1);
    width: 100%;
    height: 100%;
    padding-top: 90px;
  }
  .nav-wrap ul {
  	margin-bottom: 30px;
  }
	.nav-wrap::-webkit-scrollbar {
	  display:none;
	}
	.nav-wrap li a {
		margin:0 auto; 
	}
	.nav-wrap li:last-child a {
		margin-bottom:20px; 
	}
  .nav-wrap .nav {
    height: 100%;
    position: relative;
    overflow-x: hidden;
    overflow-y: auto;
  }
  /*メニューボタン*/
  .nav-button,
.nav-button span {
    display: inline-block;
    transition: all 0.4s;
    box-sizing: border-box;
  }

  .nav-button {
    width: 80px;
    height: 60px;
  }

  .nav-button span {
    position: fixed;
    z-index: 30;
    width: 30px;
    height: 2px;
    background-color: #fff;
    border-radius: 4px;
  }

  .nav-button span:nth-of-type(1) {
    top: 45px;
  }

  .nav-button span:nth-of-type(2) {
    top: 55px;
  }

  .nav-button span:nth-of-type(3) {
    top: 65px;
  }

  .nav-button.active span:nth-of-type(1) {
    -webkit-transform: translateY(10px) rotate(-45deg);
    transform: translateY(10px) rotate(-45deg);
  }

  .nav-button.active span:nth-of-type(2) {
    opacity: 0;
  }

  .nav-button.active span:nth-of-type(3) {
    -webkit-transform: translateY(-10px) rotate(40deg);
    transform: translateY(-10px) rotate(40deg);
  }
}

  .pagetop {
      display: none;
      position: fixed;
      bottom: 30px;
      right: 15px;
  }
  .pagetop a {
      display: block;
      background-color: #ccc;
      text-align: center;
      color: #222;
      font-size: 12px;
      text-decoration: none;
      padding: 5px 10px;
      filter:alpha(opacity=50);
      -moz-opacity: 0.5;
      opacity: 0.5;
    border-radius: 20px;

  }
  .pagetop a:hover {
      display: block;
      background-color: #333;
      text-align: center;
      color: #fff;
      font-size: 12px;
      text-decoration: none;
      padding:5px 10px;
      filter:alpha(opacity=50);
      -moz-opacity: 0.5;
      opacity: 0.5;
  }
