@charset "utf-8";

/* ---------------------------------------------------
・このCSSはPCとSPの表示比率を合わせています。
・サイズの単位は原則remにしてください。1rem = 1vw換算です。
・rootセレクタ内で、色やサイズの設定を指定してください。
---------------------------------------------------- */
/* Header1
------------------------- */
.header1 h1 {
	margin: 0;
}

.countdown {
	font-size: 3.5rem;
}

/* mv_btn */
.mv_btn {
	text-align: center;
}

.mv_btn a {
	display: inline-block;
	background: #ddd;
	padding: 5px 20px;
	margin: 1rem auto 0;
	border-radius: 30px;
	font-size: 3.5rem;
	text-decoration: none;
	text-align: center;
	color: inherit;
}

/* アコーディオンエリアの設定 */
.ac_area {
	display: none;
	padding: 0 0 2rem;
}

.ac_inner:first-child {
	padding: 0rem;
}

/* フォームボタンの文言・アイコン */
.cta_btn:after {
	content: '▼';
	position: absolute;
	right: 3rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 3rem;
}

.cta_btn.opened {
	border: 1px solid #333;
	color: #333;
}

.cta_btn.opened:before {
	content: '閉じる';
	font-size: 4.5rem;
}

.cta_btn.opened:after {
	content: '▲';
}

.cta_btn span {
	display: block;
	font-size: 4.5rem;
}

.cta_btn.opened span {
	display: none;
}

.cta_btn {
	display: block;
	width: 100%;
	background: none;
	color: var(--red);
	line-height: 1.2;
	padding: 3rem 0;
	cursor: pointer;
	transition: 0.3s;
	position: relative;
	z-index: 10;
	font-family: inherit;
	border-radius: 40px;
	border: 1px solid var(--red);
	text-align: center;
}

.cta_btn:hover {
	filter: brightness(1.3);
}

/*---------------bg_head----------------*/
.bg_head {
	padding: 2rem 5rem;
	background: var(--black);
	color: var(--yellow);
}

/*---------------arrow_head----------------*/
.arrow_head {
	margin-bottom: 12rem;
	position: relative;
	padding: 16rem 5rem 2rem;
	background: #faf7e9;
	color: var(--red);
}

.arrow_head::after {
	content: "";
	width: 100%;
	height: 10rem;
	background: #faf7e9;
	position: absolute;
	display: inline-block;
	bottom: -9.9rem;
	left: 0;
	-webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}

/*---------------circle_head----------------*/
.circle_head {
	background: var(--red);
	padding: 10rem 5rem 12rem;
	margin: 0 auto 7rem;
	color: #fff;
	position: relative;
	width: 105rem;
	border-radius: 0 0 50% 50%;
	left: 50%;
	transform: translateX(-50%);
}

.circle_head::after {
	position: absolute;
	content: "";
	width: 0;
	height: 0;
	bottom: -5.7rem;
	left: 50%;
	transform: translateX(-50%);
	border-style: solid;
	border-width: 30px 20px 0 20px;
	border-color: var(--red) transparent transparent transparent;
}

@media screen and (max-width: 480px) {
	.circle_head::after {
		border-width: 25px 15px 0 15px;
	}
}

/*----------------------------------------------
画像スライド
-----------------------------------------------*/
/* 共通 */
.slide {
	width: 100%;
	height: 30rem;
	/* PCデフォルトの高さ */
	background: url(../img/slide.jpg) repeat-x;
	background-size: auto 100%;
	animation: SlideAnime 70s linear infinite;
	margin: 0 auto 12rem;
}

/* アニメーション定義 */
@keyframes SlideAnime {
	from {
		background-position: 0 0;
	}

	to {
		background-position: -2160px 0;
	}
}

/* スマホ向け */
/* @media screen and (max-width: 768px) {
	.slide {
		height: 19vh;
	}
} */

/*-----------------------------------------------------
message
-----------------------------------------------------*/
#message {
	background: #FEFFF6;
	padding: 12rem 0 14rem;
}

#message .sub_head {
	color: #fff;
	font-size: 6.3rem;
	margin: 0 5rem 0;
}

#message .sec_inner {
	padding: 5rem;
	background-color: #fff;
	border: 1px solid #b59344;
}

.message_txt {
	font-family: "Noto Serif JP", serif;
	line-height: 2.08;
	font-size: 4rem;
	text-align: left;
	font-weight: bold;
	padding-bottom: 2rem;
}

/*-----------------------------------------------------
header_bottom
-----------------------------------------------------*/
#header_bottom {
	padding: 0 0 6rem;
}

#header_bottom .sub_head {
	font-size: 5.5rem;
	margin-bottom: 5rem;
}

/*-----------------------------------------------------
merit
-----------------------------------------------------*/
#merit {
	background: var(--blue);
	color: #fff;
}

.merit_box {
	background: #fff;
	border: 0.5rem solid var(--brown);
	border-top: none;
	;
	margin-top: 8rem;
	position: relative;
}

.merit_box:last-of-type {
	margin-bottom: 0;
}

.merit_box h3 {
	color: var(--mainTxtColor);
	width: 96rem;
	margin-left: -3.3rem;
	background: var(--grad_gold);
	padding: 4rem 3rem;
	text-align: center;
	font-size: 5rem;
	position: relative;
	letter-spacing: -0.5px;
}

.merit_box h3::before {
	content: "";
	position: absolute;
	bottom: -2rem;
	left: 0;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 3.1rem 2rem 0;
	border-color: transparent var(--brown) transparent transparent;
}

.merit_box h3::after {
	content: "";
	position: absolute;
	bottom: -2rem;
	right: 0;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 2rem 3.1rem 0 0;
	border-color: var(--brown) transparent transparent transparent;
}

/*-----------------------------------------------------
voice
-----------------------------------------------------*/
#voice {
	background: #faf7e9;
}

/*-----------------voice-----------------*/
.voice_box {
	background: #fff;
}

.voice_box+.voice_box {
	margin-top: 10rem;
}

.voice_box_inner {
	padding: 2rem 5rem 5rem;
}

.voice_box_ttl {
	font-size: 5.5rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	font-family: "Noto Serif JP", "serif";
	padding: 5rem;
	margin-bottom: 4rem;
	background-image: linear-gradient(90deg, #27110c 0%, #7d6106 50%, #27110c 100%);
	color: #fff;
	position: relative;
}

.voice_box_ttl::before {
	position: absolute;
	content: "";
	width: 7rem;
	height: 5rem;
	display: inline-block;
	left: 47%;
	background: #7B5F06;
	-webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	bottom: -4.5rem;
}

.voice_box .flex {
	justify-content: left;
	margin-bottom: 4rem;
}

.voice_box .flex img {
	width: 35%;
	margin: 0 3rem 0 0;
}

.voice_name {
	width: 57%;
	font-size: 3.5rem;
	line-height: 1.4;
}

/*-----------------------------------------------------
method
-----------------------------------------------------*/
#method {
	background-color: #edeadb;
	background-image: url(https://www.transparenttextures.com/patterns/az-subtle.png);
}

.method_ttl {
	color: var(--mainTxtColor);
	background: var(--grad_gold);
	padding: 4rem 5rem;
	margin-top: 18rem;
	font-size: 5rem;
	line-height: 1.3;
	text-align: center;
	font-weight: 700;
	position: relative;
	z-index: 1;
}

.method_ttl::before {
	content: attr(data-en);
	position: absolute;
	top: -7.5rem;
	left: 50%;
	transform: translateX(-50%);
	color: var(--mainTxtColor);
	font-size: 5rem;
	font-weight: 700;
	border-radius: 70rem;
	width: 15rem;
	height: 15rem;
	padding: 2rem 0 0;
	background: #fef8d5;
	z-index: -1;
}

.method_box+.method_ttl {
	margin-top: 16rem;
}

.method_box {
	padding: 7rem 5rem;
	background: #fff;
}

/* list1 */
.list1 {
	border: 4px double var(--brown);
	padding: 2rem 4.5rem;
	margin: 0;
	background: #fff;
	font-size: 4.1rem;
}

.list1 li {
	border-bottom: 2px dotted #c0c0c0;
	padding: 3rem 1rem 3rem 5.5rem;
	position: relative;
}

.list1 li:after {
	content: "";
	display: block;
	position: absolute;
	border-left: 4px solid var(--red);
	border-bottom: 4px solid var(--red);
	width: 3rem;
	height: 1.5rem;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	left: 0;
	top: 4.5rem;
}

.list1 li:last-child {
	border-bottom: none;
}

#method .list1 {
	margin-bottom: 4rem;
}

/*-----------------------------------------------------
future
-----------------------------------------------------*/
#future {
	padding: 0 0 14rem;
}

#future .list1 {
	padding: 2rem 4.5rem;
}

#future .list1 img {
	margin-top: 3rem;
}

#future .list1 li {
	padding: 4rem 1rem 4rem 5.5rem;
}

#future .list1 li::after {
	top: 5.5rem;
}

/*-----------------------------------------------------
special
-----------------------------------------------------*/
#special {
	background: #faf7e9;
	padding: 14rem 0 0;
}

/*-----------------------------------------------------
profile
-----------------------------------------------------*/
#profile {
	padding: 0 0 14rem;
	background: url(../img/bg_profile.jpg);
	background-position: top center;
}

/*-----------------------------------------------------
offer
-----------------------------------------------------*/



/*-----------------------------------------------------
schedule
-----------------------------------------------------*/
.schedule {
	background-color: #fffef9;
	background-image: url(https://www.transparenttextures.com/patterns/ag-square.png);
}

#offer+.schedule {
	padding: 14rem 0 0;
}

.sche {
	background-color: #edeadb;
	background-image: url("https://www.transparenttextures.com/patterns/az-subtle.png");
	/* This is mostly intended for prototyping; please download the pattern and re-host for production environments. Thank you! */
	border-top: 5px solid #27110c;
	padding: 5rem;
	font-size: 4rem;
	margin-bottom: 5rem;
}

.sche h3 {
	margin-bottom: 2rem;
	padding-bottom: 1rem;
	font-size: 5.2rem;
	font-weight: bold;
	color: #27110c;
	border-bottom: 1px solid #27110c;
	line-height: 1.4;
}

.sche table {
	margin: 0rem 0;
}

.sche_area {
	margin-top: 3.5rem;
}

.sche_area span {
	background: #27110c;
	padding: .5rem 2rem 1rem;
	color: #fff;
	font-size: 4.5rem;
	font-weight: 700;
	line-height: 2.5;
}

.sche .notice {
	padding-top: 1rem;
	color: var(--mainTxtColor);
}

.sche .notice li {
	padding-left: 3.5rem;
	font-size: 3rem;
}

.schedule .arrow_head {
	background: #fcfbf6;
	margin-bottom: 0;
	color: var(--mainTxtColor);
	font-size: 5rem;
	padding: 2rem 5rem 0rem;
}

.schedule .arrow_head::after {
	background: #fcfbf6;
}

.schedule .arrow_hea+img .schedule+.schedule {
	padding-top: 0;
}

.schedule+.schedule .sec_inner .notice:nth-child(1) {
	padding-top: 0;
}

.schedule+.schedule .sche {
	margin-bottom: 8rem;
}

/* list2 */
.list2 {
	margin-bottom: 3rem;
	font-size: 4.1rem;
}

.list2 li {
	padding-left: 4rem;
	position: relative;
}

.list2 li:after {
	position: absolute;
	content: "";
	width: 2rem;
	height: 2rem;
	background: var(--mainTxtColor);
	left: 0;
	top: 2.3rem;
}

.list2 li+li {
	margin-top: 3rem;
}


/*-----------------------------------------------------
formJump
-----------------------------------------------------*/
#formJump .letter_btn {
	font-size: 5.5rem;
	padding: 3rem 4rem 3rem 0;
}

#formJump .letter_btn::after {
	position: absolute;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	right: 5rem;
}

.cta_box:nth-of-type(2) .letter_btn {
	background: #2590d0;
	text-shadow: 0 1px 3px #004cab;
	box-shadow: #0067db 0px 7px 0px 0px,
		rgba(255, 255, 255, 0.3) 0px 0px 20px 0px inset;
}

.cta_box {
	border: 3px solid var(--red);
	padding: 2px;
	position: relative;
}

.medal {
	position: absolute;
	width: 16rem;
	top: 0;
	left: 1.5rem;
}

.cta_box_inner {
	border: 1px solid var(--red);
	padding: 7rem 5rem;
}

.cta_box:nth-of-type(1) .cta_box_inner {
	padding: 10rem 5rem 5rem;
}

.cta_box_inner h3 {
	font-size: 6rem;
	text-align: center;
	font-family: 'Noto Serif JP', "serif";
	border-bottom: 1px solid;
	padding-bottom: 2rem;
	margin-bottom: 4rem;
	line-height: 1.4;
}

.cta_box_list {
	margin-bottom: 4rem;
	font-weight: 700;
}

.fa-ul {
	padding: 1rem 0 1rem 6.5rem;
	position: relative;
}

.fa-ul:before,
.fa-ul:after {
	content: "";
	display: block;
	position: absolute;
}

.fa-ul:before {
	width: 4rem;
	height: 4rem;
	border-radius: 10rem;
	background: #ffffff;
	border: 1px solid var(--mainTxtColor);
	left: 0;
	top: 2.2rem;
}

.fa-ul:after {
	border-left: 3px solid var(--red);
	border-bottom: 3px solid var(--red);
	width: 3.5rem;
	height: 1.5rem;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	left: 1rem;
	top: 2.2rem;
}

/*--------研究発表会のみ-------- */
.cta_box+.cta_box {
	margin-top: 8rem;
	border-color: var(--blue);
}

.cta_box+.cta_box .cta_box_inner {
	border-color: var(--blue);
}

.cta_box+.cta_box .letter_btn {
	padding: 3rem 5rem 3rem 0 !important;
}

.cta_box+.cta_box .letter_btn::after {
	right: 14rem !important;
}

/* -- cart__area --*/
#cart__area {
	padding: 12rem 0 0;
}

/* -- その他 --*/
.w_700 {
	font-weight: 700;
}

.top {
	margin-top: 5rem;
}