@charset "utf-8";

/*================================================
 *  メニュー
 ================================================*/
nav {
	width:100%;
	background:#fff;
	/*position: absolute;
	  transform: scale(1,1);
    transform-origin: 100% 0%;
    zoom:1;*/
}
nav:after {
	content:'';
	display:block;
	clear:both;
}

@media print, screen and (min-width:768px) {
		nav {
			z-index:10;
			background: #FFF;
			border-bottom: 1px solid #CCC;
			width: 100%;
		}

		/* 共通 */
		nav ul {
			margin:0;
			padding:0;
		}

		nav ul li {
			position:relative;
			margin:0;
			padding:0;
			list-style:none;
		}

		nav ul li a {
			display:block;
			margin:0;
			padding:16px;
			line-height:1;
			text-decoration: none;
			text-align: center;
			font-size: 1.4rem;
			color: #1BADD5;
			transition: .6s;
      height: 100%;
		}
		nav ul li a::before {
			font-family: 'Font Awesome 7 Pro';
			font-weight: 900;
			padding-right: 7px; 
			color: #1BADD5;
			font-size: 1.8rem;
		}
    nav ul li a.cur::before {
			color: #FFF;
    }
    nav ul li a.home::before {
			content: '\f015';
    }
    nav ul li a.cont::before {
			content: '\f518';
    }
    nav ul li a.favi::before {
			content: '\f005';
    }
    nav ul li a.hist::before {
			content: '\f022';
    }
    nav ul li a.cert::before {
			content: '\f570';
    }
    nav ul li a.qr::before {
			content: '\f029';
    }
    nav ul li a.logout::before {
			content: '\f2f5';
    }
		nav ul li:hover > a {
			background: #BDEAF6;
			border: 0;
		}
		nav ul li > a.cur {
			background: #44c4e7;
			color: #FFF;
		}

		nav ul.gnav > li {
			position:relative;
			margin:0;
			padding:0;
			text-align:center;
			list-style:none;
		}

		nav ul.gnav > li:first-child,
			nav ul.gnav > li:last-child {
			width:15%;
		}
		nav ul.gnav > li:nth-child(2) {
			width:25%;
		}
		nav ul.gnav > li:nth-child(3) {
			width:15%;
		}
		nav ul.gnav > li:nth-child(4) {
			width:20%;
		}
		nav ul.gnav > li:nth-child(5) {
			width:25%;
		}

		.gnav {
			display:flex;
		}

		#spMenu {
			display:none;
		}

		.fixed {
			position:fixed;
			top:0;
			left:0;
		}
}

/*-------------------------------------------------
 *  スマートフォン向けデザイン
-------------------------------------------------*/
@media screen and (max-width:767px) {
	nav {
		background:#44c4e7;
	}
	nav ul {
		margin:0;
		padding:0;
		}

	nav .inner > ul {
		z-index:10;
		overflow:auto;
		position:fixed;
		top:60px; /* メニューの位置 */
		right:0;
		width:100%;
		height:88%;
		height:-webkit-calc(100% - 93px);
		height:calc(100% - 93px);
	}
	nav li {
		position:relative;
		width:100%;
		float:none;
		margin:0;
		text-align:left;
		list-style:none;
		border-bottom:1px solid #44c4e7;
		background:#44c4e7;
	}

	nav li:first-child {
		border-top:0;
	}

	nav li a {
		display:block;
		padding:15px 30px;
		color:#44c4e7;
		text-decoration:none;
		background:#FFF;
		font-size: 1.6rem;
	}

    nav ul li a::before {
        font-family: 'Font Awesome 7 Pro';
        font-weight: 900;
        padding-right: 7px; 
        color: #1BADD5;
    }
    nav ul li a.cur::before {
        color: #FFF;
    }
    nav ul li a.home::before {
        content: '\f015';
    }
    nav ul li a.cont::before {
        content: '\f518';
    }
    nav ul li a.favi::before {
        content: '\f005';
    }
    nav ul li a.hist::before {
        content: '\f1da';
    }
    nav ul li a.cert::before {
			content: '\f570';
    }
    nav ul li a.logout::before {
        content: '\f2f5';
    }

    
    nav li a:hover {
		background:#BDEAF6;
	   border: 0;
    }
	nav li > a.cur {
		color:#fff;
		background:#44c4e7;
	}

    nav ul ul {
		display:none;
		position:relative;
	}
	nav li li a {
		box-sizing:border-box;
		width:100%;
		padding:10px 30px 10px 50px;
		text-align:left;
	}

	nav li li li a {
		padding:10px 30px 10px 70px;
	}

	.active > a:before {
		margin-top:0;
	}
	.active > a:after {
		margin-top:5px;
	}

	.gnav {
		display:none;
	}

	#spMenu { /* ハンバーガーメニューの位置 */
		display:block;
		z-index:10;
		position:fixed;
		top:10px;
		right:10px;
	}
	#spMenu:hover {
		cursor:pointer;
	}

	#navBtn { /* ハンバーガーメニューのサイズ */
		display:inline-block;
		position:relative;
		width:45px;
		height:45px;
		border-radius:5%;
		background:#44c4e7;
	}
	#navBtnIcon { /* ハンバーガーメニューの真ん中 */
		display:block;
		position:absolute;
		top:50%;
		left:50%;
		width:28px;
		height:3px;
		margin:-1px 0 0 -14px;
		background:#f1f1f1;
		transition:.2s;
	}
	#navBtnIcon:before,
	#navBtnIcon:after { /* ハンバーガーメニューの上下 */
		display:block;
		content:'';
		position:absolute;
		top:50%;
		left:0;
		width:28px;
		height:3px;
		background:#f1f1f1;
		transition:0.3s;
	}
	#navBtnIcon:before {
		margin-top:-11px;
	}
	#navBtnIcon:after {
		margin-top:9px;
	}
	#navBtn .close {
		background:transparent;
	}
	#navBtn .close:before,
	#navBtn .close:after {
		margin-top:0;
	}
	#navBtn .close:before {
		transform:rotate(-45deg);
		-webkit-transform:rotate(-45deg);
	}
	#navBtn .close:after {
		transform:rotate(-135deg);
		-webkit-transform:rotate(-135deg);
	}
	.lock {
		position: fixed;
		z-index: -1;
		width: 100%;
		height: 100%;
		top: 0;
		right: 0;
	}

}

/*================================================
 *  トピックパス（パンくずリスト）
 ================================================*/

#navi-wrap {
	width: 100%;
	background:#fbfbfb;
}

#navi {
  max-width: 980px;
  margin: 0 auto;
  padding: 9px 15px 8px;
	color: #666;
	font-size: 1.2rem;
}

#navi ol {
	margin: 0;
	padding: 0;
}
#navi ol li {
	display:inline;
	line-height: 1;
	list-style-type:none;
}
#navi ol li::after {
	/* liの後に記号追加 */
    font-family: 'Font Awesome 7 Pro';
    content: ' \f101 ';
    font-weight: 900;
    padding-left: 3px;
    color: #999;
}
#navi ol li:last-child::after {
    content : none;
} 

/*================================================
 *  プログラムのアコーディオン
 ================================================*/

/*ボックス全体*/
.accbox,
.accbox_v {
    margin: 0 0 2em;
    padding: 0;
}

/*ラベル*/
.accbox > label,
.accbox_v > label {
    display: block;
    margin: 5px 0 0;
    padding : 15px 13px 13.5px;
    background :#1abc9c;
    color: #FFF;
    font-size: 1.6rem;
    line-height: 1;
}
.accbox > label,
.accbox_v > label {
    cursor :pointer;
    /*max-width: 300px;*/
}
.accbox > label::before,
.accbox_v > label::before {
	/* liの後に記号追加 */
    font-family: 'Font Awesome 7 Pro';
    content: '\f105';
    font-weight: 900;
    padding-right: 8px;
}

/*ラベル選択時*/
.cssacc:checked + label {
    background :#16A084;
    color: #FFF;
    /*max-width: none;
    box-sizing: border-box;*/
}
/*ラベルホバー時*/
.accbox > label:hover {
    background :#16A084;
    color: #FFF;
}
.accbox > label:hover::before {
    content: '\f107';
    color: #FFF;
}
/*チェックは隠す*/
.accbox > input,
.accbox_v > input {
    display: none;
}

/*中身を非表示にしておく*/
.accbox .accshow {
    height: 0;
    padding: 0;
    overflow: hidden;
    opacity: 0;
    transition: 0.5s;
}

/*クリックで中身表示*/
.cssacc:checked + label + .accshow,
.accshow_v {
    height: auto;
    padding: 15px;
    background: #F7F7F7;
    opacity: 1;
}
.accbox .cssacc:checked + label {
    border-bottom: none;
}
.accbox label h3 {
    padding: 5px;
    background: #EFEFEF;
    font-size: 1.2rem;
	color:#333;
    margin: 10px 0 5px;
    line-height: 1.7em;
    border: 1px solid #FFF;
}
.cssacc:checked + label h3 {
    height: 0;
    padding: 0;
    overflow: hidden;
    opacity: 0;
    margin: 0;
}

/*アイコンを入れ替える*/
.cssacc:checked + label::before {
    content: '\f106';
}

/*================================================
 *  一般演題のアコーディオン
 ================================================*/

.p-parts ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.p-parts ul li a {
	display: block;
	padding: .4em .8em;
	text-decoration: none;
	background: #fff;
	text-align: left;
	margin: .2em 0;
}
.p-parts ul li a:hover {
	background: #B4F4E8;
	border-bottom: 1px solid transparent;
}

/*================================================
 *  アコーディオン2　（未使用）
 ================================================*/

/* チェックボックスは非表示 */
.accordion-hidden {
  display: none;
}

/* タイトル部分 */
.accordion-open {
  display: block;
  padding: 8px 30px 8px 12px;
  background: #e7e7e7;
  cursor: pointer;
  margin: 0 0 1px;
  font-weight: 700;
  position: relative;
}

.accordion-open:hover {
  background: #B4F4E8;
}
.accordion-hidden:checked + label {
  background: #B4F4E8;
}

/* 開閉状態を示すアイコン+の作成 */
.accordion-open::before,
.accordion-open::after {
  content: '';
  width: 12px;
  height: 2px;
  background: #1abc9c;
  position: absolute;
  top: 50%;
  right: 2%;
  transform: translateY(-50%);
}

/* 一本は縦にして+を作る */
.accordion-open::after {
  transform: translateY(-50%) rotate(90deg);
  transition: .5s;
}

/* アコーディオンが開いたら縦棒を横棒にして-にする */
.accordion-hidden:checked + .accordion-open:after {
  transform: translateY(-50%) rotate(0);
}

/* 本文部分 */
.accordion-close {
  display: block;
  height: 0;
  overflow: hidden;
  padding: 0;
  opacity: 0;
  transition: 0.5s;/* 表示速度の設定 */
}

/* チェックボックスにチェックが入ったら本文部分を表示する */
.accordion-hidden:checked + .accordion-open + .accordion-close {
  height: auto;
  opacity: 1;
  padding: 10px;
  background: #FFF;
}

