@charset "UTF-8";

html { scroll-behavior: smooth; } /* smooth Scroll css */
body {
	position: relative;
	margin: 0;
	padding: 0;
	font-family: "source-han-sans-japanese", sans-serif;
	font-size: 100%;
	color: #343434;
	overflow-x: hidden;
}
#wrapper {
	width: 100%;
	height: 100%;
}
a.txtlink {
	padding-right: 12px;
	background: url('../img/ico_external_grey.svg') right center / 12px 12px no-repeat;
}




/* ------------------
	common
------------------ */

.txt-xsmall { font-size: 70%; }
.txt-small  { font-size: 80%; }
.txt-large  { font-size: 120%; }
.txt-en     { font-family: "montserrat", sans-serif; }

a { text-decoration: underline; }


.pc-none { display: none; }
.sp-none { display: block; }
@media screen and (min-width:768px) and ( max-width:1100px) { /* --- tablet --- */
	.pc-none { display: none; }
	.sp-none { display: block; }
}

@media screen and (max-width: 768px) { /* --- sp --- */
	.pc-none { display: block; }
	.sp-none { display: none; }
}


.flex {
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
}



/* -----------------
	navi
------------------ */
#header {
	width: 100%;
	height: 70px;
	background-color: #f5f5f5;
}

/* back to */
#header h1 {
	position: absolute;
	top: 20px;
	left: 25px;
}
#header h1 a {
	display: block;
	width: 345px;
	padding: 0;
}
#header h1 a img { width: 100%; height: auto; }

@media screen and (max-width: 768px) {
	/*#header { height: auto; }*/
	#header h1 { top: 22px; left: 18px; }
	#header h1 a { width: 290px; }
}


/* PC */
#header #g-nav { position: relative; }
#header #g-nav-list {
	position: absolute;
	top: 0;
	right: 0;
}
#header #g-nav ul {
	position: relative;
	height: 70px;
	display: flex;
	align-items: center;
}
#header #g-nav ul li {}
#header #g-nav ul li a {
	display: inline-block;
	padding: 0 10px;
	font-size: 14px;
	color: #003B3F;
	font-weight: 700;
	text-decoration: none;
}


/* header CTA */
#header #g-nav .header-CTA {
	width: 180px;
	height: 70px;
	margin: 0 0 0 16px;
	text-align: center;
}
#header #g-nav .header-CTA a {
	display: block;
	height: 70px;
	color: #FFF;
	line-height: 70px;
	background: url('../img/ico_external.svg') right 18px center / 12px 12px no-repeat #D11C1E;
}
@media screen and (max-width: 1060px) {
	#header #g-nav .header-CTA { width: 90%; margin: 20px auto 0 auto; }
	#header #g-nav .header-CTA a {
		padding: 0;
		color: #FFF;
		background: url('../img/ico_external.svg') right 18px center / 12px 12px no-repeat #003B3F;
	}
}


/* SP */
@media screen and (max-width: 1060px) {
#header #g-nav {
    position: fixed;
	top: -120%;
    left: 0;
	width: 100%;
    height: 100vh;
	transition: all 0.6s;
	z-index: 999;
}
#header #g-nav-list {
	position: relative;
	top: auto;
	right: auto;
}

#header #g-nav.panelactive { top: 0; }

#header #g-nav.panelactive #g-nav-list{
    position: fixed;
    top: auto;
	right: auto;
    width: 100%;
    height: 100vh;/*表示する高さ*/
    background: #efefef;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    z-index: 999;
}

#header #g-nav ul {
    position: absolute;
    width: 100%;
    top: 20%;
    left: 50%;
    display: block;
    transform: translate(-50%,-50%);
    z-index: 999;
}
#header #g-nav ul li {
	display: block;
	list-style: none;
    text-align: center;
}
#header #g-nav ul li a {
	display: block;
	padding: 15px;
	font-size: 1.25rem;
	letter-spacing: 0.1em;
}

.openbtn1 {
	position:fixed;
    z-index: 9999;/*ボタンを最前面に*/
	top:10px;
	right: 10px;
	cursor: pointer;
    width: 50px;
    height: 50px;
}
.openbtn1 span {
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 14px;
    height: 3px;
    border-radius: 2px;
	background-color: #003B3F;
  	width: 45%;
}
.openbtn1 span:nth-of-type(1) { top:15px; }
.openbtn1 span:nth-of-type(2) { top:23px; }
.openbtn1 span:nth-of-type(3) {	top:31px; }

.openbtn1.active span:nth-of-type(1) {
    top: 18px;
    left: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 30%;
}
.openbtn1.active span:nth-of-type(2) { opacity: 0; }
.openbtn1.active span:nth-of-type(3){
    top: 30px;
    left: 18px;
    transform: translateY(-6px) rotate(45deg);
    width: 30%;
}
}


/* ------------------------------------
	hero
------------------------------------- */
#hero {
	width: 100%;
}
#hero .inner {
	width: 100%;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
}
#hero .inner .left  { width: 40%; background: url('../img/mv_pct.jpg') center center / cover no-repeat; }
#hero .inner .right { width: 60%; padding: 65px 0 65px 50px; background: url('../img/mv_bg.jpg') right center / cover no-repeat; }

#hero .inner .title h1 { width: 465px; }
#hero .inner .title h2 { width: 300px; margin-bottom: 10px; }
#hero .inner .title h1 img,
#hero .inner .title h2 img { width: 100%; height: auto; }

#hero .inner .info { margin-top: 30px; }
#hero .inner .info h3 { font-size: 24px; font-weight: bold; margin-bottom: 15px; letter-spacing: 0.08rem; }
#hero .inner .info h3 em { font-family: "montserrat", sans-serif; font-size: 34px; font-weight: bold; font-style: normal; }
#hero .inner .info .info_list {
	width: 100%;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	margin-bottom: 7px;
	font-size: 17px;
}
#hero .inner .info .info_list dt { width: 120px; }
#hero .inner .info .info_list dd { width: calc(100% - 140px); }

#hero .inner .info .info_list dt span {
	width: 100%;
	display: inline-block;
	padding: 5px 0;
	font-family: "montserrat", sans-serif;
	font-weight: normal;
	text-align: center;
	letter-spacing: 0.02rem;
	font-size: 14px;
	border-radius: 30px;
	border: 1px solid #333;
	background-color: #fff;
}
#hero .inner .info .info_list dd {
	padding: 5px 0;
	font-weight: bold;
}
#hero .inner .info .info_list dd h1 { line-height: 1.4; }

@media screen and (max-width: 900px) {
	#hero {}
	#hero .inner .left  { width: 100%; height: 260px; background: url('../img/mv_pct.jpg') center center / cover no-repeat; }
	#hero .inner .right { width: 100%; padding: 40px 30px 40px 30px; background: url('../img/mv_bg.jpg') right center / cover no-repeat; }
	#hero .inner .title h1 { width: 100%; margin: 0 auto; }
	#hero .inner .title h2 { width: 70%; margin: 0 auto 15px auto; }
	#hero .inner .info h3 { text-align: center; }
	#hero .inner .info .info_list { text-align: center; }
	#hero .inner .info .info_list dt { width: 120px; margin: 0 auto; }
	#hero .inner .info .info_list dd { width: 100%; }
}



/* ------------------------------------
	concept
------------------------------------- */
#concept {
	width: 100%;
	max-width: 1000px;
	margin: 80px auto 50px auto;
}
#concept > .inner {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
}
#concept > .inner > .body { width: calc(100% - 400px); order: 1; }
#concept > .inner > .pct  { width: 360px; order: 2; }

#concept > .inner > .body h1 {
	margin-bottom: 5px;
	font-size: 27px;
	font-weight: bold;
	line-height: 1.35;
}
#concept > .inner > .body h2 {
	margin-bottom: 25px;
	font-size: 16px;
	font-weight: normal;
	line-height: 1.4;
}
#concept > .inner > .body p {
	font-size: 15px;
	line-height: 1.6;
}

#concept > .inner > .pct > img { width: 100%; height: auto; }

@media screen and (max-width: 1060px) {
	#concept { margin: 80px auto 20px auto; padding: 0 25px; }
}
@media screen and (max-width: 768px) {
	#concept > .inner { }
	#concept > .inner > .body { width: 100%; order: 2; }
	#concept > .inner > .pct  { width: 80%; margin: 0 auto 30px auto; order: 1; }
	#concept > .inner > .body h1 { font-size: 22px; }
	#concept > .inner > .body p { font-size: 13px; }
}


/* ------------------------------------
	lab
------------------------------------- */
#lab {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto 80px auto;
}
#lab > .inner {
	padding: 30px 0;
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;

	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: center;
}
#lab > .inner > .pct { width: 295px; padding-left: 40px; }
#lab > .inner > .body { width: calc(100% - 340px); padding-right: 40px; }

#lab > .inner > .pct img { width: 100%; height: auto; }
#lab > .inner > .body > p {
	color: #D11C1E;
	line-height: 1.7;
}
@media screen and (max-width: 1060px) {
	#lab { padding: 25px; }
}
@media screen and (max-width: 768px) {
	#lab > .inner {}
	#lab > .inner > .pct { width: 60%; padding-left: 0px; margin: 0 auto 20px auto; }
	#lab > .inner > .body { width: 100%; padding-right: 0px; }
	#lab > .inner > .body > p { font-size: 13px; line-height: 1.5; }
}


/* ------------------------------------
	common layout
------------------------------------- */
.outline > .inner {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto 80px auto;
}
.outline > .inner > .ttl {
	margin-bottom: 15px;
	padding-bottom: 15px;
	border-bottom: 1px solid #D9D9D9;
}
.outline > .inner > .ttl > h1 {
	font-size: 23px;
	text-align: left;
	color: #0BA29A;
	font-weight: bold;
}
.outline > .inner > .body {
	margin-top: 15px;
}
.outline > .inner > .body > p,
#requirements .article > p {
	font-size: 15px;
	line-height: 1.6;
}

@media screen and (max-width: 1060px) {
	.outline > .inner { padding:  0 25px; }
}



/* ------------------------------------
	feature
------------------------------------- */
#feature > .inner > .body {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
}
#feature > .inner > .body > div { width: 47%; }

#feature > .inner > .body > div > ul {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	margin-bottom: 20px;
}
#feature > .inner > .body > div > ul > li:nth-child(1) { width: 160px; }
#feature > .inner > .body > div > ul > li:nth-child(2) { width: 280px; }

@media screen and (max-width: 768px) {
	#feature > .inner > .body { display: block; }
	#feature > .inner > .body > div:nth-child(1) { width: 100%; margin-bottom: 40px; }
	#feature > .inner > .body > div:nth-child(2) { width: 100%; }
	#feature > .inner > .body > div > ul { margin-bottom: 5px; }
	#feature > .inner > .body > div > ul > li:nth-child(1) { width: 0; display: none; }
	#feature > .inner > .body > div > ul > li:nth-child(2) { width: 100%; }
}


#feature > .inner > .body > div > ul > li img { width: 100%; height: auto; border: 1px solid #ccc; box-sizing: border-box; }

#feature > .inner > .body > div h1 {
	font-size: 22px;
	line-height: 1.3;
	font-weight: bold;
}
#feature > .inner > .body > div h2 {
	position: relative;
	font-family: "montserrat", sans-serif;
	margin-bottom: 26px;
	color: #0BA29A;
	font-size: 18px;
	font-weight: bold;
}
#feature > .inner > .body > div h2 em {
	font-size: 44px;
	font-style: normal;
	font-weight: bold;
}
#feature > .inner > .body > div h2::after {
	content: '';
	width: 30px;
	height: 2px;
	display: inline-block;
	background-color: #0BA29A;
	position: absolute;
	bottom: -10px;
	left: 0;
}

#feature > .inner > .body > div p {
	font-size: 14px;
	line-height: 1.6;
}
#feature .mention li{
	font-size: 13px;
	color: #FF0000;
	width: auto !important;
	display: block !important;
	margin-top: 10px;
}

@media screen and (max-width: 768px) {
}


/* ------------------------------------
	criteria
------------------------------------- */
#criteria ol {
	margin: 20px 0 20px 30px;
	list-style-type: decimal;
	list-style-position: outside;
}
#criteria ol li {
	padding: 5px 0;
	font-size: 15px;
	line-height: 1.6;
}


/* ------------------------------------
	date
------------------------------------- */
.date_list {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	margin: 30px 0 0 0;
}
.date_list .list_time        { width: 200px; }
.date_list .list_description { width: calc(100% - 240px); }

.date_list .list_time .time {
	display: block;
	padding: 10px 0;
	font-family: "montserrat", sans-serif;
	color: #FFF;
	text-align: center;
	font-size: 17px;
	letter-spacing: 0.05rem;
	border-radius: 30px;
	background-color: #00757F;
}
.date_list .list_description h3 {
	margin-bottom: 5px;
	font-size: 26px;
	font-weight: bold;
}
.date_list .list_description .venue {
	color: #0BA29A;
	margin-bottom: 5px;
}
.date_list .list_description p {
	line-height: 1.6;
}
.date_list .list_description h4 {
	margin-top: 20px;
	font-size: 18px;
	font-weight: bold;
}
.date_list .list_description h4:before {
	content: "";
	display: inline-block;
	vertical-align: middle;
	width: .8em;
	height: .2em;
	background: #0BA29A;
	margin-right: .5em;
	margin-top: -.15em;
}

@media screen and (max-width: 768px) {
	.date_list {}
	.date_list .list_time {	width: auto; margin-bottom: 10px; }
	.date_list .list_description { width: 100%; }
	.date_list .list_time .time { display: inline-block; width: 190px; }
	.date_list .list_description h3 { font-size: 23px; }
	.date_list .list_description h4 { font-size: 16px; }
}

/* ------------------------------------
	online
------------------------------------- */
#online ul {
	margin: 20px 0 0 20px;
	list-style-type: circle;
	list-style-position: outside;
}
#online ul li {
	padding: 5px 0;
	font-size: 15px;
	line-height: 1.6;
}

/* ------------------------------------
	requirements
------------------------------------- */
#requirements .pct-pc {
	width: 100%;
	margin: 35px 0;
}
#requirements .pct-sp { display: none; }

@media screen and (max-width: 768px) {
	#requirements .pct-pc { display: none; }
	#requirements .pct-sp { display: block; width: 100%; height: auto; margin: 35px 0; }
}

#requirements .pct-pc img,
#requirements .pct-sp img { width: 100%; height: auto; }

#requirements .article {
	margin-bottom: 40px;
	padding-left: 40px;
}
#requirements .article > h2 {
	padding: 0 0 0 20px;
	margin-bottom: 20px;
	font-size: 17px;
	font-weight: bold;
	background: url('../img/h2_circle.svg') left center / 12px 12px no-repeat;
}
#requirements .article > ol {
	margin: 20px 0 20px 30px;
	list-style-type: decimal;
	list-style-position: outside;
}
#requirements .article > ol > li {
	padding: 5px 0;
	font-size: 15px;
	line-height: 1.6;
}
#requirements .article > ul {
	margin: 20px 0 0 20px;
	list-style-type: circle;
	list-style-position: outside;
}
#requirements .article > ul > li {
	padding: 5px 0;
	font-size: 15px;
	line-height: 1.6;
}

@media screen and (max-width: 768px) {
	#requirements .article { padding-left: 0; }
}


/* ------------------------------------
	judge
------------------------------------- */
#judge {
	width: 100%;
	padding: 80px 0;
	background: url('') bottom / auto 100% repeat-x #00757F;
}
#judge .inner {
	position: relative;
	max-width: 1000px;
	margin: 0 auto;
}
#judge .inner .body {
	padding: 45px 45px 45px 45px;
	border-radius: 0 80px 0 0;
	background-color: #fff;
}

@media screen and (max-width: 1060px) {
	#judge { padding: 80px 25px; }
	#judge .inner .body { padding: 30px; }
}


/* title */
#judge .inner .body h2 {
	position: absolute;
	width: 240px;
	height: auto;
	top: -34px;
}
#judge .inner .body h2 img { width: 100%; height: auto; }
#judge .inner .body h1 {
	margin-bottom: 30px;
	font-size: 22px;
	font-weight: bold;
	color: #003B3F;
}
@media screen and (max-width: 768px) {
	#judge .inner .body h2 { width: 190px; top: -27px; }
}

/* profile */
#judge .inner .body .profile {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
}
#judge .inner .body .profile + .profile {
	margin-top: 40px;
}
#judge .inner .body .profile .pct  { width: 184px; }
#judge .inner .body .profile .desc { width: calc(100% - 224px); }

#judge .inner .body .profile .pct img { width: 100%; height: auto; border-radius: 50%;overflow: hidden; }
#judge .inner .body .profile .desc h1 { font-size: 17px; font-weight: bold; margin-bottom: 5px; }
#judge .inner .body .profile .desc .name-en { font-family: "montserrat", sans-serif; font-size: 16px; color: #07D2B3; margin-bottom: 20px; }
#judge .inner .body .profile .desc .company { font-size: 12px; color: #888; line-height: 1.5; padding-bottom: 20px; border-bottom: 1px solid #ccc; }
#judge .inner .body .profile .desc .txt { font-size: 14px; line-height: 1.5; margin-top: 20px; }

@media screen and (max-width: 768px) {
	#judge .inner .body .profile {}
	#judge .inner .body .profile .pct  { width: 60%; margin: 0 auto 20px auto; }
	#judge .inner .body .profile .desc { width: 100%; }
	#judge .inner .body .profile .desc h1,
	#judge .inner .body .profile .desc .name-en,
	#judge .inner .body .profile .desc .company { text-align: center; }
}



/* notice */
#judge .notice {
	width: 100%;
	margin: 40px 0 80px 0;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: center;
	color: #fff;
}
#judge .notice .notice__ttl  { width: 10%; }
#judge .notice .notice__body { width: 90%; padding-left: 30px; border-left: 1px solid #339199; box-sizing: border-box; }

#judge .notice .notice__ttl > h1 { font-size: 14px; font-weight: bold; }
#judge .notice .notice__body > ol {
	margin: 10px 0 0 20px;
	list-style-type: decimal;
	list-style-position: outside;
}
#judge .notice .notice__body ol li {
	padding: 5px;
	font-size: 13px;
	line-height: 1.5;
}

@media screen and (max-width: 768px) {
	#judge .notice .notice__ttl  { width: 100%; }
	#judge .notice .notice__body { width: 100%; padding-left: 0; border-left: none; }
}


/* ------------------------------------
	body CTA
------------------------------------- */
.body_CTA {
	width: 680px;
	margin: 30px auto;
}
.body_CTA a {
	display: block;
	padding: 24px 0;
	font-size: 23px;
	color: #FFF;
	text-align: center;
	font-weight: bold;
	text-decoration: none;
	border-radius: 8px;
	background: url('../img/ico_external.svg') right 40px center / 16px 16px no-repeat #D11C1E;
	transition: all .2s ease 0s;
}
.body_CTA a:hover {
	transform: scale(1.02);
}
@media screen and (max-width: 768px) {
	.body_CTA { width: 100%; }
	.body_CTA a { font-size: 18px; background: url('../img/ico_external.svg') right 25px center / 16px 16px no-repeat #D11C1E; }
}





/* ------------------------------------
	Footer固定リンク
------------------------------------- */
#fixed-footer {
	position: fixed;
	bottom: -70px;
	width: 100%;
	box-sizing: border-box;
	transition: .5s;
}
#fixed-footer a {
	display: block;
	padding: 20px 0;
	text-align: center;
	background-color: #f5f5f5;
}
#fixed-footer a img { width: 30%; height: auto; }
#fixed-footer.is-show { bottom: 0; background-color: #f5f5f5; }

@media screen and (max-width: 768px) {
	#fixed-footer a img { width: 80%; height: auto; }
}
.su_list{
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 10px;
}
.su_list img{
	width: 100px;
	display: block;
	border: 1px solid #D9D9D9;
}
