@charset "utf-8";

/* ------------------------------
 見出し&テキスト
------------------------------ */
.mainimgTop h1,
.mainimgPage h1,
.mainimgPage p {
	font-weight: 500;
	color: #fff;
}
.mainimgTop h1 {
	font-size: 2.8rem;
	padding-bottom: 10px;
}
.mainimgPage h1,
.mainimgPage p {
	font-size: 2.6rem;
	padding-bottom: 5px;
}
.mainimgTop h1,
.mainimgPage h1 {
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	/*
	-webkit-transition: opacity .4s ease-in-out .2s, -webkit-transform .4s ease-in-out .2s, -webkit-filter .15s ease-in-out .2s;
    transition: opacity .4s ease-in-out .2s, -webkit-transform .4s ease-in-out .2s, -webkit-filter .15s ease-in-out .2s;
    -o-transition: transform .4s ease-in-out .2s, opacity .4s ease-in-out .2s, filter .15s ease-in-out .2s;
    transition: transform .4s ease-in-out .2s, opacity .4s ease-in-out .2s, filter .15s ease-in-out .2s;
    transition: transform .4s ease-in-out .2s, opacity .4s ease-in-out .2s, filter .15s ease-in-out .2s, -webkit-transform .4s ease-in-out .2s, -webkit-filter .15s ease-in-out .2s;
    */
    -webkit-transition: opacity .4s ease-in-out .2s, -webkit-transform .4s ease-in-out .2s;
    transition: opacity .4s ease-in-out .2s, -webkit-transform .4s ease-in-out .2s;
    -o-transition: transform .4s ease-in-out .2s, opacity .4s ease-in-out .2s;
    transition: transform .4s ease-in-out .2s, opacity .4s ease-in-out .2s;
    transition: transform .4s ease-in-out .2s, opacity .4s ease-in-out .2s, -webkit-transform .4s ease-in-out .2s;
    /*
	-webkit-filter: blur(10px);
	        filter: blur(10px);
	*/
	-webkit-transform: translateY(10px);
	    -ms-transform: translateY(10px);
	        transform: translateY(10px);
	opacity: 0;
}
body.is-all-loaded .mainimgTop h1,
body.is-all-loaded .mainimgPage h1 {
	-webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0);
	/*
	-webkit-filter: blur(0);
	        filter: blur(0);
	*/
	opacity: 1;
}
.mainimgTop h1 small,
.mainimgPage h1 small {
	font-family: 'Roboto' , 'Noto Sans Japanese', "メイリオ", Meiryo, "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", Arial, sans-serif;
	font-weight: normal;
	display: block;
}
.contentsPage h2,
.modal-container h2 {
	font-size: 2.4rem;
	font-weight: 500;
	color: #063156;
	padding-bottom: 18px;
	margin-bottom: 25px;
	border-bottom: solid 1px #9BADBB;
}

.contentsPage h3 {
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.25;
	padding-left: 14px;
	margin-bottom: 25px;
	border-left: solid 3px #0078C8;
}

.contentsPage h4 {
	font-size: 1.8rem;
	font-weight: 500;
	padding-left: 15px;
	position: relative;
	margin-bottom: 10px;
}
.contentsPage h4::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.4em;
	width: 8px;
	height: 8px;
	border-radius: 8px;
	background: #0078C8;
}


.mainLead {
	font-size: 2.6rem;
	font-weight: bold;
	line-height: 1.5;
}

.title_line {
	font-size: 1.6rem;
	font-weight: bold;
	color: #063156;
	padding-bottom: 20px;
	margin-bottom: 25px;
	border-bottom: solid 1px #9BADBB;
}

/* ------------------------------
 スマホ用コード（見出し）
------------------------------ */
@media screen and (max-width: 767px) {
	.mainimgTop h1 {
		font-size: 2.2rem;
		line-height: 1.4;
		padding: 0 5%;
	}
	.mainimgPage h1,
	.mainimgPage p {
		font-size: 1.7rem;
		line-height: 1.4;
		padding: 0 3%;
	}
	
	.contentsPage h2,
	.modal-container h2 {
		font-size: 2rem;
		margin-bottom: 15px;
		padding-bottom: 10px;
	}
	.contentsPage h3 {
		font-size: 1.8rem;
	}
	
	.mainLead {
		font-size: 2.1rem;
	}
	
	.title_line {
		padding-bottom: 8px;
		margin-bottom: 10px;
	}
}

/* ------------------------------
 ボックス
------------------------------ */
/* -- 横並びボックス（flexbox） --- */
.flexBox {
	display: flex !important;
	flex-flow: row wrap;
}
.flexBox::after,
.cms_block.flexBox::after {
	display: none;
}
.flexBox > * {
	width: 100%;
}
/* -- 横並びボックス（flexbox） センター揃え --- */
.flexBox.fb-tac {
	justify-content: center;
}
/* -- 横並びボックス（flexbox） 縦センター揃え --- */
.flexBox.fb-vac {
	align-items: center;
}
/* -- 横並びボックス（flexbox） 左右別れ --- */
.flexBox.fb-btw {
	justify-content: space-between;
}


.w1-2p {
	width: 50%;
}

/* ------------------------------
 横幅グリッド PC用限定CSS
------------------------------ */
@media print, screen and (min-width: 768px) {
	/* -- 横並びボックス（flexbox） センター揃え --- */
	.flexBox.pc_fb-tac {
		justify-content: center;
	}
	/* -- 横並びボックス（flexbox） 縦センター揃え --- */
	.flexBox.pc_fb-vac {
		align-items: center;
	}
	/* -- 横並びボックス（flexbox） 左右別れ --- */
	.flexBox.pc_fb-btw {
		justify-content: space-between;
	}


	.w1-3p {
		width: 33.3333333333333%;
	}
	
	/* -- 1/3 --- */
	.w364,
	.w1-3 {
		width: 364px;
	}
	/* -- 2/3 --- */
	.w752,
	.w2-3 {
		width: 752px;
	}
	/* -- 1/2 --- */
	.w558,
	.w1-2 {
		width: 558px;
	}
	
	/* -- その他 --- */
	.w910 {
		width: 910px;
	}
	.w413 {
		width: 413px;
	}
	.w680 {
		width: 680px;
	}
	.w703 {
		width: 703px;
	}
	.w180 {
		width: 180px;
	}
	.w95 {
		width: 95px;
	}
}

/* ------------------------------
 テーブル
------------------------------ */
.contents table {
	width: 100%;
}

/* デフォルト */
table th {
	font-weight: 500;
	padding: 20px 0;
	border-bottom: solid 1px #E6E6E6;
	text-align: left;
}
table td {
	padding: 20px 0;
	vertical-align: top;
	border-bottom: solid 1px #E6E6E6;
}

/* ヘッダ有 */
.headTb table {
	border-left: solid 1px #E6E6E6;
}
.headTb table th {
	padding: 13px 15px;
	border-top: solid 1px #E6E6E6;
	border-right: solid 1px #E6E6E6;
	background: #ECF0F2;
}
.headTb table td {
	padding: 13px 15px;
	border-top: solid 1px #E6E6E6;
	border-right: solid 1px #E6E6E6;
}
/* ヘッダ有（間隔狭い） */
.fine table {
	border-left: solid 1px #E6E6E6;
}
.fine table th {
	padding: 3px 5px;
	text-align: center;
	vertical-align: middle;
	background: #ECF0F2;
	border-top: solid 1px #E6E6E6;
	border-right: solid 1px #E6E6E6;
}
.fine table td {
	padding: 3px 15px;
	text-align: center;
	vertical-align: middle;
	border-top: solid 1px #E6E6E6;
	border-right: solid 1px #E6E6E6;
}

/* 線無 */
.noline_tb th {
	border-bottom: none;
	padding: 5px 0;
}
.noline_tb td {
	border-bottom: none;
	padding: 5px 0;
}

/* プログラム */
.programTb table thead th {
	text-align: center;
	vertical-align: middle;
	padding: 8px 15px;
	font-weight: bold;
}
.programTb table tbody th {
	text-align: left;
	vertical-align: middle;
	background: #fff;
	padding: 8px 15px;
	font-weight: bold;
}
.programTb table td {
	text-align: left;
	vertical-align: middle;
	padding: 8px 15px;
}
/* ------------------------------
 スマホ用コード（テーブル）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- ヘッダ有 -- */
	.headTb.record table,
	.fine.record table {
		border-bottom: solid 1px #E6E6E6;
		border-right: solid 1px #E6E6E6;
	}
	.headTb.record table th,
	.fine.record table th {
		display: none;
	}
	.headTb.record table td,
	.fine.record table td {
		padding: 1px 15px 1px 0;
		display: list-item;
		list-style-type: disc;
		margin-left: 30px;
		border: none;
	}
	/*  名前tb */
	.headTb.record table td:first-child,
	.fine.record table tr td:first-child {
		font-weight: 500;
		padding: 5px 15px;
		border-top: solid 1px #E6E6E6;
		border-bottom: solid 1px #E6E6E6;
		background: #ECF0F2;
		list-style-type: none;
		margin-left: 0;
	}
	/* 所属 tb */
	.headTb.record table tr td:nth-of-type(2),
	.fine.record table tr td:nth-of-type(2) {
		padding: 8px 15px 1px 0;
	}
	.fine.record table tr td:nth-of-type(2)::before {
		content: "所属：";
		font-weight: 500;
	}
	/* 研究テーマ tb */
	.headTb.record table tr td:last-child,
	.fine.record table tr td:last-child {
		padding: 1px 15px 8px 0;
	}
	.fine.record table tr td:last-child::before {
		content: "研究テーマ：";
		font-weight: 500;
	}
	
	/* プログラム */
	.programTb table {
		border: none;
	}
	.programTb table thead th {
		display: none;
	}
	.programTb table tbody th {
		background: #ECF0F2;
		padding: 3px 10px;
		display: block;
		border: none;
		margin-bottom: 10px;
	}
	.programTb table tbody td:nth-child(2) {
		font-weight: bold;
		font-size: 1.5rem;
	}
	.programTb table td {
		padding: 0 10px;
		display: block;
		border: none;
		width: 100% !important;
	}
	.programTb table td:last-child {
		margin-bottom: 25px;
	}
}
@media screen and (max-width: 479px) {
	/* デフォルト */
	.res3 table th {
		width: auto !important;
		display: block;
		padding: 10px 5px;
		background: #ECF0F2;
	}
	.res3 table td {
		width: auto !important;
		display: block;
		padding: 10px 0;
		border-bottom: none;
	}
	.res3 table td:nth-of-type(1) {
		font-weight: 500;
		padding: 10px 0 0;
	}
	.res3 table tr {
		border-bottom: solid 1px #E6E6E6;
	}
	
	.contents .res table th {
		width: auto !important;
		display: block;
		padding: 10px 0 0;
		border-bottom: none;
	}
	.contents .res table td {
		width: auto !important;
		display: block;
		padding: 10px 0;
	}
	
	/* ヘッダ有 */
	.headTb.res table{
		border-bottom: solid 1px #E6E6E6;
	}
	.headTb.res table th {
		padding: 5px 10px;
	}
	.headTb.res table td {
		padding: 5px 10px;
		border-bottom: none;
	}
	
	
	
}

/* 横スクロールがつく */
@media screen and (max-width: 767px) {
	.scroller {
		width: 100% !important;
    	overflow: auto !important;
    	padding-left: 0em;
    	padding-right: 0em;
	}
	.scroller table {
		width: 1140px !important;
	}
}
@media screen and (max-width: 479px) {
	.scroller {
		width: 100% !important;
	}
	
}

/* ------------------------------
 リスト
------------------------------ */
/*  ノーマルリスト */
.list ul {
	margin-left: 18px;
	list-style-type: disc;
}

/* 算用数字リスト */
.number ol {
	margin-left: 25px;
	list-style-type: decimal;
}


/*  縞交互リスト */
.stripe ul {
	border-top: solid 1px #DADADA;
}
.stripe li {
	padding: 20px 30px;
	border-bottom: solid 1px #DADADA;
}
.stripe li:nth-child(odd) {
	background: #E8EDF0;
}

/*  下向き矢印リスト */
.downarrowList li:not(:last-child) {
	padding-bottom: 34px;
	background: url(../img/icon_dwnarrow.png) no-repeat left 8px bottom 10px / 13px auto;
}


/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 479px) {
	/*  縞交互リスト */
	.stripe li {
		padding: 15px;
	}
	
}
/* ------------------------------
 Google Map
------------------------------ */
.gmap iframe {
	width: 100% !important;
	height: 500px !important;
}
/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	.gmap iframe {
		height: 300px !important;
	}
}

/* ------------------------------
 ページ内リンク
------------------------------ */
.pageInLink ul {
	font-size: 0;
}
.pageInLink li {
	font-size: 1.4rem;
	width: 25%;
	margin-bottom: 10px;
	padding-right: 10px;
	vertical-align: top;
	display: inline-block;
}
.pageInLink li:before {
	font-family: 'FontAwesome';
	content: '\f107';
	color: #0078C8;
	font-size: 2.4rem;
	margin-right: 5px;
	line-height: 1;
	vertical-align: middle;
	display: inline-block;
}
/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	.pageInLink li {
		width: 50%;
	}
}
@media screen and (max-width: 479px) {
	.pageInLink li {
		width: 100%;
		display: block;
		margin-bottom: 0;
	}
}
/* ------------------------------
 下層リンク
------------------------------ */
.pageLinkTop ul {
	width: 100%;
	display: table;
	table-layout:fixed;
}
.pageLinkTop ul li:first-child {
	border-left: solid 1px #9BADBB;
}
.pageLinkTop ul li {
	font-size: 1.6rem;
	line-height: 1.5;
	color: #063156;
	padding: 8px 20px;
	text-align: center;
	display: table-cell;
	border-right: solid 1px #9BADBB;
}
.pageLinkTop ul li a {
	display: inline-block;
	padding-bottom: 4px;
	-webkit-transform: perspective(1px) translateZ(0);
	transform: perspective(1px) translateZ(0);
	box-shadow: 0 0 1px transparent;
	position: relative;
	text-decoration: none;
}
.pageLinkTop ul li a::before {
	content: "";
	position: absolute;
	bottom: -5px;
	z-index: -1;
	left: 50%;
	right: 50%;
	height: 2px;
	background: #0078C8;
	-webkit-transition-property: left, right;
	transition-property: left, right;
	-webkit-transition-duration: 0.3s;
	transition-duration: 0.3s;
	-webkit-transition-timing-function: ease-out;
	transition-timing-function: ease-out;
}
.pageLinkTop ul li a:hover:before,
.pageLinkTop ul li span a:before {
	left: 0;
	right: 0;
}
/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	.pageLinkTop {
		display: none;
	}
	
}

/* ------------------------------
 背景色
------------------------------ */
/* -- 薄い青 -- */
.colorBg {
	padding: 40px;
	background: #ECF0F2;
}
/* -- 白 -- */
.colorBg-wt {
	padding: 40px;
	background: #fff;
}
/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- 薄い青 -- */
	.colorBg {
		padding: 20px;
	}
	/* -- 白 -- */
	.colorBg-wt {
		padding: 20px;
	}
}
/* ------------------------------
 下線
------------------------------ */
/* -- 薄いグレー -- */
.dotBt {
	border-bottom: 1px dotted #e6e6e6;
	padding-bottom: 45px;
	margin-bottom: 40px;
}

/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- 薄いグレー -- */
	.dotBt {
		padding-bottom: 15px;
		margin-bottom: 20px;
	}
}
/* ------------------------------
 ボタン
------------------------------ */
.btn-a a,
a.btn-a,
a.btn-gold {
	line-height: 1.5;
	color: #fff;
	display: inline-block;
	text-decoration: none;
	border-radius: 3px;
	-webkit-transition: 0.1s ease-in-out;
	-moz-transition: 0.1s ease-in-out;
	-o-transition: 0.1s ease-in-out;
	transition: 0.1s ease-in-out;
}
.btn-a a,
a.btn-a {
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
	color: #fff;
	min-width: 160px;
	padding: 10px 15px;
	text-align: center;
	text-shadow: 0 1px 1px rgba(25, 49, 117, 0.7);
	border-bottom: solid 2px #004D8C;
	background: #0078C8;
}
.btn-a.movie a {
	min-width: 200px;
}
.btn-a.movie a::before {
	font-family: 'FontAwesome';
	content: '\f0da';
	font-size: 1.2rem;
	width: 16px;
	height: 18px;
	display: inline-block;
	border-radius: 100%;
	background: #fff;
	line-height: 18px;
	color: #0078C8;
	position: static;
	padding-left: 2px;
	margin-left: 0;
	margin-right: 5px;
	margin-bottom: 3px;
	vertical-align: middle;
	box-shadow: 0 1px 1px rgba(25, 49, 117, 0.7);
}
.btn-a.arrow-b a::before {
	content: '\f107';
	font-family: 'FontAwesome';
	font-size: 2.4rem;
	font-weight: normal;
	line-height: 14px;
	margin-right: 8px;
	margin-bottom: 5px;
	display: inline-block;
	vertical-align: middle;
}
.btn-a a:hover,
a.btn-a:hover {
	text-shadow: 0 1px 1px rgba(25, 49, 117, 0.5);  
	background: #4CA0D8;
	border-color: #4C82AE;
}
.btn-a a:before,
a.btn-a:before {
	display: none;
}

a.btn-gold {
	font-size: 1.6rem;
	font-weight: 500;
	min-width: 300px;
	padding: 10px 15px;
	vertical-align: middle;
	text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
	border-bottom: solid 2px #80591F;
	background: #DB941F;
}
a.btn-gold:hover {
	background: #E6B462;
	border-color: #A68B62;
}
a.btn-gold span::before {
	content: '\f105';
	font-family: 'FontAwesome';
	font-size: 2.4rem;
	font-weight: normal;
	line-height: 14px;
	margin-right: 8px;
	margin-bottom: 5px;
	display: inline-block;
	vertical-align: middle;
}
/* -- 横並びボタン -- */
.inlineBtn {
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
}
.cms_block.inlineBtn::after {
	display: none;
}
.inline-block-btn .btn-a a {
    min-width: 200px;
}
/* ------------------------------
 PC用限定CSS
------------------------------ */
@media print, screen and (min-width: 768px) {
	/* -- 横並びボタン -- */
	.inlineBtn a {
		margin-left: 12px;
		margin-right: 12px;
	}
	.inline-block-btn .btn-a a {
		display: inline-block;
		margin-right: 10px;
	}
}
/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	.btn-a a,
	a.btn-a {
		font-size: 1.5rem;
	}
	
	a.btn-gold {
		font-size: 1.5rem;
		min-width: 240px;
		padding: 9px 15px 10px;
		border-radius: 0;
		border: none;
	}
	/* -- 横並びボタン -- */
	.inlineBtn > *:not(:last-child) {
		margin-bottom: 10px;
	}
}

/* ------------------------------
 アイコン
------------------------------ */
.cms_link,
a.icon-a,
.icon-a a {
	color: #0078C8;
	padding-left: 20px;
	display: inline-block;
	position: relative;
}
.cms_link::before,
a.icon-a::before,
.icon-a a::before  {
	font-family: 'FontAwesome';
	font-size: 1.2rem;
	content: '\f105';
	line-height: 16px;
	color: #fff;
	position: absolute;
	top: 0.5em;
	left: auto;
	width: 14px;
	height: 16px;
	margin-left: -20px;
	text-align: center;
	padding-left: 2px;
	border-right: none;
	border-radius: 16px;
	background: #0078C8;
}

.icon-b a,
a.icon-b {
	padding-left: 14px;
	display: inline-block;
	position: relative;
}
.icon-b a::before,
a.icon-b::before  {
	font-family: 'FontAwesome';
	font-size: 1.8rem;
	line-height: 1.4;
	content: '\f105';
	color: #0078C8;
	position: absolute;
	top: 0;
	left: 0;
}

.icon-c a,
a.icon-c {
	padding-left: 14px;
	display: inline-block;
	position: relative;
}
.icon-c a::before,
a.icon-c::before  {
	font-family: 'FontAwesome';
	font-size: 1.2rem;
	content: "\f0da";
	color: #0078C8;
	position: absolute;
	top: 0.3em;
	left: 0;
}

/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_link::before,
	a.icon-a::before,
	.icon-a a::before  {
		top: 0.3em;
	}
}

/* ------------------------------
 動画ポップアップ
------------------------------ */
.movieBlock .btn-a .cms_caption_b {
	margin-top: 25px;
}
/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	.movieBlock .btn-a .cms_caption_b {
		margin-top: 15px;
	}
}



/* ------------------------------
 モーダル
------------------------------ */
body.modal-enable {
	position: fixed;
	overflow: scroll;
}
.modal-content-html {
	position: relative !important;
	display: none;
	width: 980px !important;
	padding: 40px;
	background: #fff;
	overflow: visible;
}
.modal-close:not(.btn-a) {
	display: none;
}
/* .modal-close {
	display: block;
	position: fixed;
	top: 30px;
	right: 45px;
	width: 45px;
	height: 45px;
	line-height: 45px;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	z-index: 11000;
	background: url(../img/modal-close_white.png) no-repeat 0 0 / 45px 45px;
}
.modal-close span {
	visibility: hidden;
} */
.modal-overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;/*for old Safari*/
	height: 100vh;
	background-color: rgba(26,26,26,0.9);
	z-index: 11000;
/*	overflow: scroll;*/
	overflow-y: scroll;
	overflow-x: hidden;
	-webkit-overflow-scrolling: touch;
}
.modal-container {
	position: relative;
	text-align: left;
	max-width: 100%;
	left: 0;
	right: 0;
	margin: auto;
	height: 100%;
}
.modal-open:hover {
    cursor: pointer;
}
.modal-close:hover {
	cursor: pointer;
}
/* ----------------------
 スマホ用コード
---------------------- */
@media screen and (max-width: 767px) {

	.modal-overlay {
		padding-bottom: 100px;
	}

	body.modal-enable {
		overflow: hidden;
	}
	.modal-content-html {
		width: 90% !important;
		padding: 20px;
		margin: 0 !important;
	}
	/* .modal-close {
		position: absolute;
		top: 20px;
		right: 20px;
		width: 30px;
		height: 30px;
		line-height: 30px;
		background: url(../img/modal-close_white.png) no-repeat 0 0 / 30px 30px;
	} */
	.pop-content {
		width: 90%;
		margin-bottom: 120px !important;
	}
	.pop-content .text {
		padding: 5%;
	}
}