@charset "utf-8";

/*//////////////////////////////////////////////////////////////////////////////

	共通

//////////////////////////////////////////////////////////////////////////////*/


/*------------------------------------------------------------------------------

	変数

------------------------------------------------------------------------------*/

:root {
	--main-color: 255,240,149;
	--sub-color: 115,167,244;
	--text-color: 51,51,51;
}


/*------------------------------------------------------------------------------

	image replacement

------------------------------------------------------------------------------*/

#content > header h1.logo,
#content > header p.logo a,
#content > footer .logo {
	display: block;
	overflow: hidden;
	outline: none;
	clear: both;
	text-indent: -9999px;
	white-space: nowrap;
	background-repeat: no-repeat;
	background-size: contain;
}


/*------------------------------------------------------------------------------

	全体

------------------------------------------------------------------------------*/

/*	site_column
------------------------------------------------------------------------------*/

.site_column {
	position: relative;
	margin: 0 auto;
	width: 86%;
	max-width: 1400px;
}


/*	body・textarea・input
------------------------------------------------------------------------------*/

body,
textarea,
input,
select {
	line-height: 1.8;
	font-family: "M PLUS Rounded 1c", sans-serif, YuGothic,"游ゴシック","メイリオ",Meiryo,sans-serif,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro",Osaka,verdana,"ＭＳ Ｐゴシック","MS PGothic",Sans-Serif;*/
	font-style: normal;
	font-size: 16px;
	font-weight: 500;
	color: rgba(35,35,0,1);
	-webkit-text-size-adjust: 100%;
	font-feature-settings: "palt";
}

textarea,
input,
select {
	-webkit-appearance: none;
}

#content {
	overflow: hidden;
}

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

body,
textarea,
input  {
	font-size: 14px;
}

}

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

body,
textarea,
input {
	font-size: 3.2vw;
}

}


/*	游ゴシックの箇所
------------------------------------------------------------------------------*/

main #go ul li a .label .explain,
#content > footer #copy {
	font-family: YuGothic,"游ゴシック","メイリオ",Meiryo,sans-serif,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro",Osaka,verdana,"ＭＳ Ｐゴシック","MS PGothic",Sans-Serif;
}

/*	見出し
------------------------------------------------------------------------------*/

h1,h2,h3,h4,h5,h6 {
	line-height: 1.4;
}

/*	アンカー
------------------------------------------------------------------------------*/

a,
a:hover,
a:visited {
	outline: none;
	text-decoration: none;
	color: rgba(var(--text-color),1);
}

a {
	transition: opacity .4s;
}

a:hover {
	text-decoration: none;
	opacity: .4;
}

main a,
main a:visited {
	text-decoration: underline;
}

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

a:hover {
	opacity: 1;
}

a[href^="tel:"] {
	text-decoration: underline;
}

}

@media screen and (min-width: 768px){
	
a[href^="tel:"] {
	pointer-events: none;
	text-decoration: none;
	color: #333;
}

a[href^="tel:"]:hover {
	cursor: default;
	opacity: 1;
}

}


/*	リスト
------------------------------------------------------------------------------*/

main ol,
main ul {
	margin: 1em 0 1em 1.5em;
}

main ul {
	list-style: disc;
}

main ol {
	list-style: decimal;
}

main li {
	margin-bottom: .5em;
	line-height: 1.4;
}

#content main table ol,
#content main table ul {
	margin: 0 0 0 1.5em;
	background-color: inherit;
}

#content main table ol li,
#content main table ul li {
	background-color: inherit;
	font-weight: normal;
}


/*	テーブル
------------------------------------------------------------------------------*/

table {
	width: 100%;
}

th,
td {
	line-height: 1.6;
}

th {
	font-weight: bold;
}


/*	その他
------------------------------------------------------------------------------*/

em {
	font-style: normal;
}

figcaption {
	margin-top: .5em;
	text-align: center;
	font-size: .875em;
}

img {
	vertical-align: bottom;
}

address {
	font-style: normal;
}


/*	共通設定
------------------------------------------------------------------------------*/

main p,
main dd {
	margin-bottom: .3em;
	text-align: justify;
}

main li:last-child,
main p:last-of-type,
main dd:last-of-type {
	margin-bottom: 0;
}


/*	独自class
------------------------------------------------------------------------------*/

.note {
	margin-left: 0;
}

.note li {
	display: block;
	position: relative;
	padding-left: 1em;
	font-size: .875em;
}

.note li::before {
	content: "※";
	position: absolute;
	top: 0;
	left: 0;
}

.l {
	display: block;
}

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

.l {
	display: inline;
}

}


/*	 slider
------------------------------------------------------------------------------*/

.slider {
	display: none;
	position: relative;
}

.slider.slick-initialized {
	display: block; 
}

.slider .slick-arrow {
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	border: none;
	background: none;
	padding: 0;
	width: 5.9%;
	height: 100%;
	font-size: 0;
	z-index: 2000;
}

.slider .slick-arrow:hover {
	cursor: pointer;
}

.slider .slick-arrow.slick-prev {
	left: 0;
	transform: scale(-1, 1);
}

.slider .slick-arrow.slick-next {
	right: 0;
}

.slider .slick-arrow.slick-prev { animation: 1.75s arrow_prev infinite;}

@keyframes arrow_prev {
0%,100% {translate: 0 -50%;}
50% {translate: -8% -50%;}
}

.slider .slick-arrow.slick-next { animation: 1.75s arrow_next infinite;}

@keyframes arrow_next {
0%,100% {translate: 0 -50%;}
50% {translate: 8% -50%;}
}

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

.slider .slick-arrow.slick-prev {
  left: 1%;
}

.slider .slick-arrow.slick-next {
  right: 1%;
}

}


/*------------------------------------------------------------------------------

	header

------------------------------------------------------------------------------*/

#content {
	position: relative;
}

#content > header {
	position: absolute;
	aspect-ratio: 657/290;
	width: 34.2%;
	max-width: 657px;
	top: 0;
	left: 0;
	z-index: 3;
	filter: drop-shadow(7px 7px 12px rgba(var(--text-color),.25));
}

#content > header h1.logo {
	width: 100%;
	height: 100%;
	background-image: url("../img/logo.svg");
	background-size: cover;
	background-repeat: no-repeat;
}

@media screen and (max-width: 844px) and (orientation: landscape) {

#content > header {
	width: 32%;
	left: 29px;
}

#content > header::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: -30px;	
	width: 30px;
	height: 100%;
	background-color: #fff;
}

}

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

#content > header {
	width: 36vw;
	filter: drop-shadow(1vw 1vw 3vw rgba(var(--text-color),.25));
}

}

@media screen and (max-width: 767px) and (orientation: landscape) {

#content > header {
	width: 36vw;
	left: 0;
}

#content > header::before {
	content: none;
}

}

/*------------------------------------------------------------------------------

	main

------------------------------------------------------------------------------*/

/* 見出し共通
------------------------------------------------------------------------------*/

main h2 {
	font-size: 2.25em;
}

main #model_course h2,
main #go h2 {
	margin-bottom: 1.2em;
	text-align: center;
}

main #model_course h2::after,
main #go h2::after {
	display: block;
	margin-top: .3em;
	font-size: .72em;
	color: rgba(var(--text-color),.3);
}

main #model_course h2::after {
	content: 'Model Course';
}
main #go h2::after {
	content: 'Go To Seoul';
}

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

main h2 {
	font-size: 1.75em;
}

}


/* promotion
------------------------------------------------------------------------------*/

main #promotion {
	position: relative;
	padding: 40px 0 120px;
	background: rgba(var(--main-color),1) url("../img/deco_1.svg");
	background-size: 1460px;
	/* ↓右上基準にはみ出したいのでcalcで実装。px部分を編集して位置を調整*/
	background-position: calc(100% + 730px) calc(100% - 610px);
	background-repeat: no-repeat;
}

main #promotion::before,
main #promotion::after {
	content: '';
	display: block;
	position: absolute;
	aspect-ratio: 1/1;
	z-index: 0;
}

main #promotion::before {
	width: 1080px;
	top: 260px;
	left: -540px;
	background-image: url("../img/deco_2.svg");
}

main #promotion::after {
	width: 270px;
	right: -100px;
	bottom: 70px;
	background-image: url("../img/deco_3.svg");
}

main #promotion .slider,
main #promotion .introduction,
main #promotion .button a {
	box-shadow: 7px 7px 12px 4px rgba(var(--text-color),.25);
}

main #promotion .slider {
	position: relative;
	max-width: 1800px;
	width: 92%;
	aspect-ratio: 2/1;
	margin: 0 auto;
	border-radius: 50px;
	border: 20px solid #FFF;
	box-sizing: content-box;
	overflow: hidden;
	z-index: 1;
}

main #promotion .slider li a {
	display: block;
}

main #promotion .slider li a:hover {
	opacity: 1;
}

main #promotion .introduction {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	margin-top: -80px;
	padding: 85px 95px;
	background-color: #fff;
	border-radius: 50px;
	z-index: 2;
}

main #promotion .introduction section {
	order: 2;
	flex: 1;
}

main #promotion .introduction section h2 {
	margin-bottom: .5em;
	font-size: 2.25em;
}

main #promotion .introduction section p {
	font-size: 1.125em;
	line-height: 1.9;
}

main #promotion .introduction figure {
	max-width: 450px;
	width: 45%;
	margin-right: 80px;
	order: 1;
}

main #promotion .button {
	position: relative;
	margin: 70px auto 0;
	text-align: center;
	z-index: 1;
}
main #promotion .button a {
	display: inline-block;
	padding: 1em 3em;
	font-size: 1.25em;
	font-weight: bold;
	background-color: rgba(229,0,56,1.00);
	color: #FFF;
	text-decoration: none;
	border-radius: 3em;
}

main #promotion .button a > span {
	display: block;
}

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

main #promotion::before {
	width: 50%;
	top: 18%;
	left: -25%;
}

}

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

main #promotion::before {
	top: 25%;
}

main #promotion::after {
	right: -150px;
}

main #promotion .introduction {
	margin-top: -70px;
	padding: 70px;
}

main #promotion .introduction figure {
	width: 38%;
	margin-right: 60px;
}

}

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

main #promotion {
	padding-top: 25px;
}

main #promotion::before {
	width: 65%;
	left: -33%;
}

main #promotion::after {
	right: -150px;
}

main #promotion .introduction {
	margin-top: -40px;
}

main #promotion .introduction section h2 {
	font-size: 1.8em;
}

main #promotion .introduction section p {
	font-size: 1em;
}

}

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

main #promotion {
	padding-bottom: 100px;
}

main #promotion::after {
	right: -90px;
	bottom: 40px;
}

main #promotion .introduction {
	flex-direction: column;
	align-items: center;
}

main #promotion .introduction {
	padding: 50px;
}

main #promotion .introduction figure {
	width: 55%;
	margin-right: 0;
	margin-bottom: 40px;
}

main #promotion .introduction section p {
	font-size: 1.125em;
}

}

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

main #promotion .slider {
	border-width: 15px;
}

}

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

main #promotion {
	padding: 4vw 0 15vw;
	background-size: 80vw;
	background-position: 55vw -25vw;
}

main #promotion::before {
	width: 80vw;
	top: 40vw;
	left: -40vw;
}

main #promotion::after {
	width: 47vw;
	right: -20vw;
	bottom: 10vw;
}

main #promotion .site_column {
	width: 82%;
}

main #promotion .slider,
main #promotion .introduction,
main #promotion .button a {
	box-shadow: 1vw 1vw 3vw 1vw rgba(var(--text-color),.25);
}

main #promotion .slider {
	width: 88%;
	border-radius: 6vw;
	border-width: 1.5vw;
}

  main #promotion .introduction {
	margin-top: -4vw;
	padding: 9vw 6vw;
	border-radius: 4vw;
}

main #promotion .introduction section h2 {
	font-size: 1.65em;
}

main #promotion .introduction section p {
	font-size: .875em;
}
main #promotion .introduction figure {
	width: 70%;
	margin-bottom: 6vw;
}

main #promotion .button {
	width: 100%;
	margin-top: 9vw;
}

main #promotion .button a {
	border-radius: 5em;
	font-size: 1.125em;
	line-height: 1.4;
}

main #promotion .button a span span {
	display: block;
}

}


/* model_course
------------------------------------------------------------------------------*/

main #model_course {
	position: relative;
	padding-bottom: 170px;
	background-color: rgba(var(--main-color),1);
	z-index: 0;
}

main #model_course::after {
	content: '';
	display: block;
	left: 0;
	bottom: 0;
	position: absolute;
	width: 100%;
	height: 50%;
	background-color: transparent;
	background-image: radial-gradient(rgba(255,255,255,.5) 31%, transparent 32.5%), radial-gradient(rgba(255,255,255,.5) 31%, transparent 32.5%);
	background-position: 0 0, 22px 22px;
	background-size: 44px 44px;
	z-index: 1;
	clip-path: polygon(0 35%, 100% 0, 100% 100%, 0% 100%);/*コンテンツが増えたら35％→25%に修正*/
}

main #model_course .cs {
	position: relative;
	margin: 0 auto;
	z-index: 2;
	text-align: center;
}

main #model_course .cs p {
	display: inline-block;
	padding: 8em 12em;
	background-color: #fff;
	border-radius: 50px;
}

main #model_course .plans {
	position: relative;
	z-index: 2;
}

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

main #model_course {
	padding-bottom: 25vw;
}

main #model_course::after {
	height: 40%;
	background-position: 0 0, 4vw 4vw;
	background-size: 8vw 8vw;
}

main #model_course .cs p {
	padding: 15vw 20vw;
	border-radius: 6vw;
}

}

/* go
------------------------------------------------------------------------------*/

main #go {
	padding: 96px 0;
	background-color: rgba(var(--sub-color),.2);
}

main #go ul {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	margin: 0;
	padding: 65px 220px;
	background-color: rgba(var(--sub-color),1);
	border-radius: 50px;
	list-style: none;
}

main #go ul li {
	width: 46%;
	margin-bottom: 0;
}

main #go ul li a {
	display: flex;
	align-items: center;
	border-radius: 10em;
	background-color: #fff;
	text-decoration: none;
	border: 10px solid #FFF;
	box-shadow: 7px 7px 10px 4px rgba(var(--text-color),.25);
}

main #go ul li a .label {
	margin-left: 1em;
}

main #go ul li a .label span {
	display: block;
}

main #go ul li a::before,
main #go ul li a::after {
	content: '';
	display: block;
	aspect-ratio: 1/1;
}

main #go ul li a::before {
	width: 100px;
}

main #go ul .timetable a::before {
	background-image: url("../img/icon_air.svg");
}

main #go ul .access a::before {
	background-image: url("../img/icon_map.svg");
}

main #go ul li a::after {
	width: 20px;
	margin-left: auto;
	margin-right: 1.2em;
	background-color: rgba(var(--sub-color),1);
	background-image: url("../img/icon_arrow_w.svg");
	background-size: 60%;
	background-position: center;
	background-repeat: no-repeat;
	border-radius: 50%;
}



main #go ul li a .label .explain {
	font-weight: bold;
}

main #go ul li a .label .name {
	font-size: 2em;
}

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

main #go ul {
	padding: 65px 80px;
}

main #go ul li {
	width: 48%;
}

}

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

main #go ul {
	padding: 40px;
	border-radius: 30px;
}

main #go ul li a::before {
	width: 70px;
}

main #go ul li a .label .name {
	font-size: 1.65em;
}

}

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

main #go ul li a::after {
	margin-right: .8em;
}

}

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

main #go ul li a {
	box-shadow: 3px 3px 7px 2px rgba(var(--text-color),.25);
}

main #go ul li a::before {
	width: 50px;
}

main #go ul li a .label .name {
	font-size: 1.5em;
}

main #go ul li a .label .explain {
	font-size: .75em;
}

}

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

main #go ul li a::after {
	width: 17px;
}

}

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

main #go {
	padding: 12vw 0;
}

main #go ul {
	flex-direction: column;
	padding: 8vw 6vw;
	border-radius: 6vw;
}

main #go ul li {
	width: 100%;
}

main #go ul li a {
	box-shadow: .5vw .5vw 1.5vw rgba(var(--text-color),.25);
}

main #go ul li:first-child {
	margin-bottom: 1.5em;
}

main #go ul li a::before {
	width: 10vw;
}

main #go ul li a::after {
	width: 4vw;
}
}

/*------------------------------------------------------------------------------

	footer

------------------------------------------------------------------------------*/

#content > footer {
	padding: 85px 0;
}

#content > footer #copy {
	text-align: center;
	font-weight: bold;
}

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

#content > footer {
	padding: 50px 0;
}

}

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

#content > footer {
	padding: 8vw 0;
}

}


/*	 page_top
------------------------------------------------------------------------------*/

#page_top {
	position: fixed;
	right: 3vw;
	bottom: 3vw;
	z-index: 1000;
	width: 10vw;
	height: 10vw;	
	max-width: 85px;
	max-height: 85px;
	transition: opacity .6s;
	background-color: #FFF;
	border-radius: 20px;
	opacity: 0;
	overflow: hidden;
}

.moved #page_top {
	opacity: .7;
}

#page_top a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	background-color: rgba(var(--text-color),.6);
	text-decoration: none;
	cursor: default;
}

.moved #page_top a {
	cursor: pointer;
	opacity: 1;
}

#page_top a::after {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%)  rotate(-90deg);
	background-image: url("../img/icon_arrow_w.svg");
	background-repeat: no-repeat;
	background-size: 100%;
	content: "";
	display: block;
	width: 40%;
	height: 40%;
}

