body {
	font-family: "Helvetica Neue", Arial, "Yu Gothic", YuGothic, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	font-size: 75%;
	overflow-x: hidden;
}

html[lang="zh-hans"] body {
	font-family: "Helvetica Neue", Arial, "Noto Sans SC", sans-serif;
	font-weight: 300;
}

img {
	display: block;
	width: 100%;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}
a {
	text-decoration: none;
	color: #000;
}
p {
	line-height: 1.6;
}

/*==================================================================================
ヘッダー
==================================================================================*/
header {
	width: calc(100% - 30px);
	padding: 20px 15px!important;
	background: #000;
	z-index: 9000;
	position: relative;
}
header .logo {
	display: block;
	width: 120px;
}
header ul.sns {
	display: inline-flex;
	justify-content: center;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
header ul.sns li {
	margin: 0 6px;
}
header ul.sns li a {
	display: block;
	width: 30px;
}
/*==================================================================================
第1弾
==================================================================================*/
section#main_1st {
	width: 100%;
	height: 650px;
	overflow: hidden;
	position: relative;
}
section#main_1st .gradient {
	background: radial-gradient(circle, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 30%, rgba(255,255,255,0) 100%);
	background-size: 400% 400%;
	animation: gradient 15s ease infinite;
	width: 100%;
	height: 100vh;
	position: absolute;
	z-index: 1;
}
@keyframes gradient {
	0% { background-position: 0% 50%; }
	100% { background-position: 100% 50%; }
}
section#main_1st .bg {
	width: 100%;
	height: 100%;
	background: url("../img/phase01.jpg") center center / cover no-repeat;
	position: absolute;
	z-index: 1;
	transform: scale(1.2);
	animation: bg_1st 2s;
}
@keyframes bg_1st {
	0% {opacity: 0; transform: scale(1);}
	100% {opacity: 1; transform: scale(1.2);}
}
section#main_1st .txt {
	text-align: center;
	width: 70%;
	max-width: 700px;
	min-width: 500px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 3;
	animation: txt_1st 1.5s;
}
@keyframes txt_1st {
	0% {opacity: 0;}
	100% {opacity: 1;}
}
section#main_1st .txt h1 {
	margin-bottom: 25px;
}
section#main_1st .txt h2 {
	font-weight: normal;
	letter-spacing: 0.1em;
	margin: auto;
	font-size: 17px;
}
/* PARTICLE --------------------------------------------------------------------*/
/* WHITE -------------------------------------*/
section#main_1st #particles-js {
    width: 100%;
    height: 100%;
    position: absolute;
	z-index: 2;
	opacity: 1;
	animation: particles_1st 2s;
}
@keyframes particles_1st {
	0% {opacity: 0;}
	100% {opacity: 1;}
}
/* TIMER ------------------------------------------------------------------------*/
section#main_1st #timer {
	display: flex;
	justify-content: center;
	padding-bottom: 30px;
	color: #fff;
	font-size: 500%;
	font-family: 'Impact', sans-serif;
	letter-spacing: 0.2em;
	text-shadow: 0 0 30px rgba(0,0,0,0.3);
	position: absolute;
	left: 50%;
	bottom: 5%;
	transform: translateY(0) translateX(-50%);
	z-index: 3;
	animation: timer 2s;
}
@keyframes timer {
	0% {opacity: 0; transform: translateY(100%) translateX(-50%);}
	62.5% {opacity: 0; transform: translateY(100%) translateX(-50%);}
	100% {opacity: 1; transform: translateY(0) translateX(-50%);}
}
section#main_1st #timer span {
	position: relative;
}
section#main_1st #timer span::after {
	display: block;
	font-size: 25%;
	letter-spacing: 0.15em;
	position: absolute;
	left: 47%;
	bottom: -30px;
	transform: translateX(-50%);
}
section#main_1st #timer span#timer_days::after {
	content: "\044\061\079\073";
}
section#main_1st #timer span#timer_hours::after {
	content: "\048\06f\075\072\073";
}
section#main_1st #timer span#timer_minutes::after {
	content: "\04d\069\06e\075\074\065\073";
}
section#main_1st #timer span#timer_seconds::after {
	content: "\053\065\063\06f\06e\064\073";
}

/*==================================================================================
第2弾
==================================================================================*/
section#main_2nd {
	width: 100%;
	height: calc(100vh - 66px - 52px);
	overflow: hidden;
	position: relative;
}
section#main_2nd .bg {
	width: 100%;
	height: 100%;
	position: absolute;
	z-index: 1;
}
section#main_2nd .txt {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 3;
}
/* PHASE 01 -----------------------------------*/
section#main_2nd .phase01.bg {
	background: #000;
	opacity: 0;
	animation: phase01_bg 5s;
}
@keyframes phase01_bg {
	0% {opacity: 1;}
	60% {opacity: 1;}
	100% {opacity: 0;}
}
section#main_2nd .phase01.txt {
	width: 80%;
	max-width: 1600px;
	opacity: 0;
	animation: phase01_txt 5s;
}
@keyframes phase01_txt {
	0% {opacity: 0;}
	20% {opacity: 0;}
	40% {opacity: 1;}
	60% {opacity: 1;}
	100% {opacity: 0;}
}
/* PHASE 02 -----------------------------------*/
section#main_2nd .phase02.bg {
	background: url("../img/phase02.jpg") center center / cover no-repeat;
	opacity: 0;
	animation: phase02_bg 10s;
}
@keyframes phase02_bg {
	0% {opacity: 0; transform: scale(1);}
	40% {opacity: 0; transform: scale(1);}
	50% {opacity: 1; transform: scale(1);}
	70% {opacity: 1; transform: scale(1);}
	90% {opacity: 0; transform: scale(2);}
	100% {opacity: 0; transform: scale(2);}
}
section#main_2nd .phase02.txt {
	font-size: 350%;
	font-weight: bold;
	letter-spacing: 0.15em;
	opacity: 0;
	animation: phase02_txt 10s;
}
@keyframes phase02_txt {
	0% {opacity: 0; transform: translate(-50%,0) scale(1);}
	50% {opacity: 0; transform: translate(-50%,0) scale(1);}
	60% {opacity: 1; transform: translate(-50%,-50%) scale(1);}
	70% {opacity: 1; transform: translate(-50%,-50%) scale(1);}
	85% {opacity: 0; transform: translate(-50%,-50%) scale(1.2);}
	100% {opacity: 0; transform: translate(-50%,-50%) scale(1.2);}
}
/* PHASE 03 -----------------------------------*/
section#main_2nd .phase03.bg {
	background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.2) 100%), linear-gradient(45deg, #f2f5f7 0%, #e6ecf0 100%);
	opacity: 0;
}
section#main_2nd .phase03.bg.show {
	opacity: 1;
	animation: phase03_bg 1s;
}
@keyframes phase03_bg {
	0% {opacity: 0;}
	100% {opacity: 1;}
}
section#main_2nd .phase03.txt {
	width: calc(100% - 30px);
	padding: 5% 15px 0;
	opacity: 0;
}
section#main_2nd .phase03.txt.show {
	opacity: 1;
	animation: phase03_txt 6s;
}
@keyframes phase03_txt {
	0% {opacity: 0;}
	66.7% {opacity: 0;}
	100% {opacity: 1;}
}
section#main_2nd .phase03.txt h1 {
	margin-bottom: 60px!important;
	font-size: 437.5%;
	font-weight: bold;
	text-align: center;
	letter-spacing: 0.15em;
}
section#main_2nd .phase03.txt h2 {
	margin-bottom: 60px!important;
	font-size: 225%;
	font-weight: normal;
	text-align: center;
	line-height: 1.6;
	letter-spacing: 0.1em;
}
section#main_2nd .phase03.txt .btn {
	display: block;
	width: calc(680px - 60px);
	margin: auto;
	padding: 30px;
	background: #d93932;
	color: #fff;
	font-size: 287.5%;
	font-weight: bold;
	text-align: center;
	letter-spacing: 0.1em;
}
/* PARTICLE --------------------------------------------------------------------*/
/* WHITE -------------------------------------*/
canvas {
    display: block;
    vertical-align: bottom;
}
section#main_2nd #particles-js {
    width: 100%;
    height: 100%;
    position: absolute;
	z-index: 2;
	opacity: 0;
	animation: particles_2nd_01 10s;
}
@keyframes particles_2nd_01 {
	0% {opacity: 0;}
	20% {opacity: 1;}
	70% {opacity: 1;}
	80% {opacity: 0;}
	100% {opacity: 0;}
}
/* RED ------------------------------------*/
section#main_2nd .particles02 {
    width: 100%;
    height: 100%;
    position: absolute;
	z-index: 2;
	opacity: 0;
}
section#main_2nd .particles02.show {
	opacity: 1;
	animation: particles_2nd_02 2s;
}
@keyframes particles_2nd_02 {
	0% {opacity: 0;}
	100% {opacity: 1;}
}

/*==================================================================================
第3弾
==================================================================================*/
header.head_3rd {
	width: 100%;
	padding: 30px 0!important;
	background: none;
	position: absolute;
	top: 0;
	left: 0;
}
header.head_3rd .logo {
	display: flex;
	align-items: flex-end;
	width: auto;
}
header.head_3rd .logo img {
	width: 160px;
	margin-right: 30px;
}
header.head_3rd .logo img.agic {
	width: 400px;
}
header.head_3rd .logo p {
	line-height: 1.6;
}
header.head_3rd ul.head_menu {
	display: flex;
}
header.head_3rd ul.head_menu li {
	margin-left: 7px;
}
.btn_main {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 360px;
	height: 80px;
	background: #e6e6e6;
	font-size: 133%;
	font-weight: 500;
	letter-spacing: 0.05em;
	position: relative;
	overflow: hidden;
}
.btn_main::after {
	content: "";
	display: block;
	border: 12px transparent solid;
	border-right: 12px #e61f20 solid;
	border-bottom: 12px #e61f20 solid;
	position: absolute;
	right: 5px;
	bottom: 5px;
	transition: all .5s;
}
.btn_main:hover::after {
	border-width: 250px;
	right: 0;
	bottom: 0;
	transition: none;
	animation: btn_main .5s;
}
.btn_main span {
    z-index: 1;
    transition: all .5s;
}
.btn_main:hover span {
	color: #fff;
}
header.head_3rd ul.head_menu li .btn_main {
	width: 160px;
	height: 45px;
	background: #fff;
	font-size: 100%;
	display: flex;
    justify-content: center;
    align-items: center;
}
header.head_3rd ul.head_menu li .btn_main::after {
	border: 6px transparent solid;
	border-right: 6px #e61f20 solid;
	border-bottom: 6px #e61f20 solid;
}
header.head_3rd ul.head_menu li .btn_main span {
	display: inline-block;
    padding-left: 20px;
	margin-right: 10px;
    position: relative;
    font-size: 14px;
    /*font-weight: bold;*/
	line-height: 14px;
    color: #333;
}
header.head_3rd ul.head_menu li .btn_main:hover::after {
	border-width: 150px;
	right: 0;
	bottom: 0;
	transition: none;
	animation: btn_main .5s;
}

@keyframes btn_main {
	0%{
		right: 5px;
    	bottom: 5px;
		border-width: 4px;
	}
	30%{
		right: 0;
		bottom: 0;
		border-width: 4px;
	}
	100%{
		right: 0;
		bottom: 0;
		border-width: 250px;
	}
}
header.head_3rd ul.head_menu li .btn_main:hover span {
	color: #fff;
}
header.head_3rd ul.head_menu li .btn_main span::before {
	content: "";
	display: block;
	width: 18px;
	height: 18px;
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
header.head_3rd ul.head_menu li .btn_main.access span::before {
	background-image: url("../img/icon-location.svg");
	transition: all .5s;
}
header.head_3rd ul.head_menu li .btn_main.entry span::before {
	background-image: url("../img/icon_mail.png");
}
header.head_3rd ul.head_menu li .btn_main.contact span::before {
	background-image: url("../img/icon-question-circle.svg");
	transition: all .5s;
	/*width: 16px;
	height: 16px;*/
	left: -2px;
}
header.head_3rd ul.head_menu li .btn_main:hover.access span::before {
	background-image: url("../img/icon-location_w.svg");
	color: #fff;
}
header.head_3rd ul.head_menu li .btn_main:hover.contact span::before {
	background-image: url("../img/icon-question-circle_w.svg");
	color: #fff;
}
/* 共通 -----------------------------------------------------------------------*/
.container {
	width: calc(100% - 120px);
	padding: 0 60px;
}
.max1600 {
	max-width: 1600px;
	margin: auto;
}
.max1200 {
	max-width: 1200px;
	margin: auto;
}
.max960 {
	max-width: 960px;
	margin: auto;
}
.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.row.just_start {
	justify-content: flex-start;
}
.row.just_center {
	justify-content: center;
}
.row.align_center {
	align-items: center;
}
.row.align_end {
	align-items: flex-end;
}
.mb_120 {
	margin-bottom: 120px;
}
.mb_60 {
	margin-bottom: 60px;
}
.mb_30 {
	margin-bottom: 30px;
}
.mb_20 {
	margin-bottom: 20px;
}
.mb_10 {
	margin-bottom: 10px;
}
.mt_10 {
	margin-top: 10px;
}
.font_14 {
	font-size: 117%;
}
.font_13 {
	font-size: 108.333%;
}
.font_15 {
	font-size: 125%;
}
.font_16 {
	font-size: 133.333%;
	line-height: 1.6;
}
.font_18 {
	font-size: 150%;
}
.font_20 {
	font-size: 167%;
}
.font_24 {
	font-size: 200%;
}
h1 {
	font-size: 250%;
	/* font-weight: 500; */
	line-height: 1.6;
	text-align: center;
}
.bold {
	font-weight: bold;
}
.txt_center {
	text-align: center;
}
.eng {
	font-family: ethnocentric, sans-serif;
	font-weight: 300;
}
.red {
	color: #e61f20;
}
.line2 {
	line-height: 1.6;
}
/* メイン ---------------------------------------------------------------------*/
section#main_3rd {
	width: 100%;
	height: calc(100vh - 66px - 52px);
	overflow: hidden;
	position: relative;
}
section#main_3rd .bg {
	width: 100%;
	height: 100%;
	background: url("../img/phase02.jpg") center center / cover no-repeat;
	position: absolute;
	z-index: 1;
	transform: scale(1.2);
	animation: bg_3rd 2s;
}
@keyframes bg_3rd {
	0% {opacity: 0; transform: scale(1);}
	100% {opacity: 1; transform: scale(1.2);}
}
section#main_3rd .txt {
	width: 50%;
	max-width: 1600px;
	min-width: 600px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 3;
	animation: txt_3rd 1.5s;
}
@keyframes txt_3rd {
	0% {opacity: 0;}
	100% {opacity: 1;}
}
section#main_3rd .txt h1 {
	margin-bottom: 30px;
}
section#main_3rd .txt h2 {
	max-width: 300px;
	margin: auto;
}
/* PARTICLE */
section#main_3rd #particles-js {
    width: 100%;
    height: 100%;
    position: absolute;
	z-index: 2;
	opacity: 1;
	animation: particles_3rd 2s;
}
@keyframes particles_3rd {
	0% {opacity: 0;}
	100% {opacity: 1;}
}
/* NEWS -----------------------------------------------------------------------*/
.news-wrap {
	position: absolute;
    bottom: 0;
    z-index: 3;
}
.news-inner {
	max-width: 310px;
    margin-left: auto;
    background-color: #fff;
    padding: 20px;
    box-sizing: border-box;
	max-height: 200px;
	overflow-y: auto;
	box-shadow: 0px -8px 8px -1px #d5d5d5 inset;
}
.news-inner h4 {
	font-size: 16px;
	color: #e61f20;
}
.news-inner dl {
	font-size: 14px;
	line-height: 1.6;
	padding-top: 15px;
}
.news-inner dl:not(:last-of-type) {
	border-bottom: 1px solid #ccc;
	padding-bottom: 15px;
}
.news-inner dt {
	color: #4D4D4D;
	margin-bottom: 5px;
	font-weight: bold;
}
.news-inner::-webkit-scrollbar{
	width: 4px;
}
.news-inner::-webkit-scrollbar-track{
	background-color: #E6E6E6;
}
.news-inner::-webkit-scrollbar-thumb{
	background-color: #B3B3B3;
}
/* カレンダー ---------------------------------------------------------------------*/
section#calendar {
	padding: 60px 0 20px!important;
}
section#calendar .boad {
	border: 1px #e1e1e1 solid;
	background: #fff;
	position: relative;
}
section#calendar .boad::before,
section#calendar .boad::after {
	content: "";
	display: block;
	width: 80%;
	height: 40px;
	border-radius: 50%;
	background: radial-gradient(#dcdcdc 0%, rgba(255,255,255,0) 60%, rgba(255,255,255,0) 100%);
	position: absolute;
	top: -20px;
	left: 10%;
	z-index: -1;
}
section#calendar .boad::after {
	top: auto;
	bottom: -20px;
}
section#calendar .boad .col2 {
	width: 50%;
	min-height: 400px;
	position: relative;
}
section#calendar .boad .col2.calendar {
	width: calc(50% - 1px);
	border-right: 1px #e1e1e1 solid;
}
/* 左 カレンダー --------------------------------------*/
section#calendar a.month {
	display: block;
	padding: 15px 30px;
	border-right: 1px #e1e1e1 solid;
	border-bottom: 1px #e1e1e1 solid;
	border-radius: 0 0 5px 0;
	color: #a0a0a0;
	letter-spacing: 0.05em;
	position: absolute;
	top: 0;
	left: 0;
}
section#calendar a.month.next {
	border-right: none;
	border-left: 1px #e1e1e1 solid;
	border-radius: 0 0 0 5px;
	left: auto;
	right: 0;
}
section#calendar a.month span {
	display: inline-block;
	padding-left: 25px;
	position: relative;
}
section#calendar a.month.next span {
	padding-left: 0;
	padding-right: 25px;
}
section#calendar a.month span::after {
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	border-left: 1px #e61f20 solid;
	border-bottom: 1px #e61f20 solid;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%) rotate(45deg);
}
section#calendar a.month.next span::after {
	left: auto;
	right: 0;
	transform: translateY(-50%) rotate(225deg);
}
section#calendar .inner {
	padding: 50px 60px;
}
section#calendar .squares {
	display: flex;
	justify-content: center;
	align-items: center;
	width: calc(100% / 7);
	padding: 20px 0;
	font-size: 117%;
}
section#calendar .squares.d_week {
	margin-bottom: 30px;
	padding: 0;
}
section#calendar .squares a,
section#calendar .squares div {
	display: block;
	padding: 10px;
	position: relative;
}
section#calendar .squares a::before {
	content: "";
	display: block;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: #e61f20;
	position: absolute;
	left: 50%;
	bottom: 2px;
	transform: translateX(-50%);
}
section#calendar .squares a span {
	position: relative;
	z-index: 2;
}
section#calendar .squares a.on {
	pointer-events: none;
	color: #fff;
}
section#calendar .squares a.on::before {
	width: 66px;
	height: 66px;
	bottom: 50%;
	transform: translate(-50%,50%);
}
/* 右 スライド --------------------------------------*/
section#calendar .col2.schedule .inner {
	padding: 30px 0;
	height: 100%;
    box-sizing: border-box;
}
section#calendar .col2.schedule .day {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 66px;
	height: 66px;
	border-radius: 50%;
	border: 1px #e61f20 solid;
	margin: 0 auto 20px;
}
section#calendar .slider {
	padding: 0 60px;
	position: relative;
	overflow: hidden;
	height: 100%;
}
section#calendar .slider .slide {
	max-width: 460px;
	margin: auto;
	height: 100%;

	overflow: hidden;
	display: flex;
	flex-direction: column;
}
section#calendar .slider .slide > p {
	flex-shrink: 0;
}
section#calendar .slider .slide .event-wrap-outer {
	padding-right: 5px;
	padding-left: 5px;
	flex-grow: 1;
	overflow-y: auto;
}
section#calendar .slider .slide .event-wrap-outer::-webkit-scrollbar {
	width: 4px;
}
section#calendar .slider .slide .event-wrap-outer::-webkit-scrollbar-track {
	background-color: #E6E6E6;
}
section#calendar .slider .slide .event-wrap-outer::-webkit-scrollbar-thumb {
	background-color: #B3B3B3;
}

section#calendar .img {
	max-height: 220px;
	overflow: hidden;
	margin-right: -5px;
	margin-left: -5px;
}
section#calendar .img img {
	height: auto;
    object-fit: contain;
}
section#calendar .time {
	padding-left: 20px;
	line-height: 1.6;
	position: relative;
}
section#calendar .time::before {
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    background: url("../img/icon_time.png") center center / contain no-repeat;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0, -50%);
}
section#calendar .btn {
	display: inline-block;
	width: 120px;
	box-sizing: border-box;
	margin-left: 5px;
	padding: 5px 0;
	border: 1px #808080 solid;
	border-radius: 30px;
	color: #808080;
	text-align: center;
	font-weight: 500;
	transition: all .5s;
}
section#calendar .btn:hover {
	background-color: #808080;
	color: #fff;
}
section#calendar .btn.reserve {
	border: 1px #e61f20 solid;
	color: #e61f20;
}
section#calendar .slider .slide_arrows {
	width: 100%;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}
section#calendar .slider .slide_arrows div {
	display: block;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: #e1e1e1;
	position: absolute;
	top: 0;
	left: -40px;
	cursor: pointer;
	transform: translateY(-50%);
	transition: all .5s;
}
section#calendar .slider .slide_arrows div:hover {
	background: #bbbbbb;
}
section#calendar .slider .slide_arrows div.next {
	left: auto;
	right: -40px;
}
section#calendar .slider .slide_arrows div::after {
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	border-left: 2px #fff solid;
	border-bottom: 2px #fff solid;
	position: absolute;
	top: 50%;
	right: 15px;
	transform: translateY(-50%) rotate(45deg);
}
section#calendar .slider .slide_arrows div.next::after {
	right: auto;
	left: 15px;
	transform: translateY(-50%) rotate(225deg);
}
/* 導入 --------------------------------------------------------------------------*/
section#intro {
	padding: 50px 0 !important;
	position: relative;
	z-index: 1;
}
section#intro::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	/* background: url("../img/intro_bg.jpg") center top / cover no-repeat; */
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: -1;
}
section#intro ul.list {
	max-width: 460px;
	margin: 0 auto;
	/* border-top: 1px #e61f20 solid; */
}
section#intro ul.list li {
	/* border-bottom: 1px #e61f20 solid; */
	position: relative;
}
section#intro ul.list li::before,
section#intro ul.list li::after{
	content:'';
	position:absolute;
	z-index:1;
	bottom:0;
	left:0;
	background:#ccc;
	width:100%;
	height:1px;
	transition:all 0.3s ease-in-out;
}
section#intro ul.list li::after{
	width:0;
	background:#e61f20;
}
section#intro ul.list li:hover::after {
	width:100%;
}
section#intro ul.list li a span {
	width: 25px;
    height: 25px;
    border-radius: 50%;
    overflow: hidden;
    position: absolute;
    top: calc(50% - 12px);
    right: 10px;
}
section#intro ul.list li a span::before {
	content: "";
    display: block;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: #e61f20;
}
section#intro ul.list li a span::after {
	content: "";
    border: 5px transparent solid;
    border-bottom: none;
    border-top: 6px #fff solid;
    position: absolute;
    top: 55%;
    right: 10%;
    transform: translate(-50%, -50%);
}
section#intro ul.list li:hover a span::after {
	animation: ArrowMotion 1s infinite;
}
@keyframes ArrowMotion {
	0% {
		top: 55%;
		opacity: 1;
	}
	25% {
		top: 100%;
		opacity: 0;
	}
	50% {
		top: -10%;
		opacity: 0;
	}
	75% {
		top: 55%;
		opacity: 1;
	}
}
section#intro ul.list li a {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	padding: 20px 40px 10px 20px;
	transition:all 0.3s ease-in-out;
}
section#intro ul.list li:hover a {
	color: #e61f20;
}
/* POINT --------------------------------------------------------------------------*/
section#point01,
section#point02,
section#point03 {
	padding: 0 0 80px!important;
	position: relative;
}
.point_main {
	width: 100%;
	height: 600px;
	overflow: hidden;
	position: relative;
}
.point_main img {
	height: 100%;
	object-fit: cover;
	object-position: 65%;
}
.point {
	display: inline-block;
	padding: 20px 40px 0 40px;
	background: #fff;
	position: absolute;
	bottom: 0;
	max-width: 880px;
	z-index: 2;
}
[lang="en"] .point {
	width: calc(100% - 140px);
}
.point_inner {
	padding: 40px;
}
rt {
	font-size: 30%;
}
h2 {
	font-size: 267%;
	font-weight: bold;
	line-height: 1.6;
	letter-spacing: 0.05em;
}
h2 small {
	font-size: 50%;
}
h3 {
	padding-top: 12px!important;
	color: #e61f20;
	font-size: 200%;
	font-weight: bold;
	letter-spacing: 0.05em;
	position: relative;
	line-height: 1.6;
}
h3::before {
	content: "";
	display: block;
	width: 40px;
	height: 2px;
	background: #e61f20;
	position: absolute;
	top: 0;
	left: 0;
}
h4.redbar-title {
	padding: 15px;
	background-color: #e61f20;
	font-weight: bold;
	color: #fff;
	letter-spacing: 0.05em;
	line-height: 1.6;
}
.mr_20 {
	margin-right: 20px;
}
.mb_5 {
	margin-bottom: 5px;
}
.gray {
	color: #999;
}
.darkgray {
	color: #4D4D4D;
}
/* 横幅可変コンテンツ ---------------------------*/
.section_point {
	position: relative;
	overflow: hidden;
}
.section_point .variable_cont {
	width: 100%;
	position: relative;
	transition: all .3s;
}
.section_point.active .variable_cont {
	width: calc(100% - 360px);
}
/* サイドタブ */
.section_point .sidetab {
	width: calc(360px - 90px);
	height: 100%;
	padding: 30px 60px 30px 30px;
	background: rgba(0,0,0,0.8);
	color: #fff;
	box-shadow: -2px 0 8px rgba(0,0,0,0.4);
	position: absolute;
	top: 0;
	right: -350px;
	z-index: 2;
	transition: all .3s;
	backdrop-filter: blur(5px);
}
.section_point.active .variable_cont + .sidetab {
	right: -340px;
}
.section_point .sidetab.sidetab-fixed { /* Sticky */
	position: fixed !important;
	top: 0px !important;
}
.section_point.active .sidetab {
	transform: translateX(-340px);
}
.section_point .sidetab.fix {
	position: fixed;
	transform: translateX(100%);
}
.section_point .sidetab.fix.active {
	transform: translateX(0);
}
.section_point .sidetab .trigger {
	width: 40px;
	height: 80px;
	background: rgba(0,0,0,0.8);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 50px);
	position: absolute;
	top: 0;
	left: -40px;
	cursor: pointer;
}
.section_point .sidetab .trigger span {
	display: inline-block;
    position: absolute;
    left: 20%;
    height: 1px;
    background: #fff;
    width: 45%;
}
.section_point .sidetab span:nth-of-type(1) {
	top:16px;
	animation: border_anim 2s linear infinite;
}
.section_point .sidetab span:nth-of-type(2) {
	top:23px;
	animation: border_anim 2s linear infinite;
	animation-delay: .5s;
}
.section_point .sidetab span:nth-of-type(3) {
	top:30px;
	animation: border_anim 2s linear infinite;
	animation-delay: 1s;
}
@keyframes border_anim {
	0%{
		width: 0%;
	}
	20%{
		width: 45%;
	}
	100%{
		width: 45%;
	}
}
/* タブ中身 */
.section_point .sidetab [class^="tab_cont"] {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 1s;
}
.section_point.active .sidetab [class^="tab_cont"].active {
	position: relative;
	opacity: 1;
	visibility: visible;
}
.section_point.active .sidetab [class^="tab_cont"] .ttl {
	padding: 10px 15px 0 0;
    border-top: 2px #e61f20 solid;
    position: absolute;
    top: 0;
    right: -60px;
    width: 14px;
}
.section_point.active .sidetab .sidetab-inner {
	padding-right: 10px;
    max-height: calc(100vh - 60px);
    overflow-y: auto;
}
.section_point.active .sidetab .sidetab-inner::-webkit-scrollbar{
	width: 3px;
}
.section_point.active .sidetab .sidetab-inner::-webkit-scrollbar-track{
	background-color: #202020;
}
.section_point.active .sidetab .sidetab-inner::-webkit-scrollbar-thumb{
	background-color: #404040;
}
.section_point.active .sidetab .sidetab-inner .gray {
	color: #bababa;
}

/* POINT 01 ----------------------------*/
section#point01 .row {
	position: relative;
}
section#point01 .row::after {
	content: "";
    display: inline-block;
    position: absolute;
    background-image: url(../img/point01_centerimg.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    width: 250px;
    height: 250px;
    top: calc(50% + 10px);
    left: 50%;
    transform: translate(-50%, -50%);
}
section#point01 .col2 {
	display: flex;
	flex-direction: column;
	width: calc(100% / 2);
    position: relative;
    padding: 5% 8%;
    box-sizing: border-box;
}
section#point01 .col2.space-between {
	justify-content: space-between;
}
section#point01 .col2::before {
	content: "";
	display: inline-block;
	position: absolute;
	background-repeat: no-repeat;
    background-position: center;
}
section#point01 .col2:nth-of-type(1)::before,
section#point01 .col2:nth-of-type(4)::before {
	background-image: url(../img/point01_shadow_w.png);
	background-size: 100% 30px;
    width: 100%;
    height: 30px;
}
section#point01 .col2:nth-of-type(2)::before,
section#point01 .col2:nth-of-type(3)::before {
	background-image: url(../img/point01_shadow_h.png);
	background-size: 30px 100%;
    width: 30px;
    height: 100%;
}
section#point01 .col2:nth-of-type(1)::before {
	bottom: 0;
    left: 0;
}
section#point01 .col2:nth-of-type(2)::before {
	top: 0;
	left: 0;
}
section#point01 .col2:nth-of-type(3)::before {
	top: 0;
    right: 0;
    transform: rotate(-180deg);
}
section#point01 .col2:nth-of-type(4)::before {
	top: 0;
    left: 0;
    transform: rotate(180deg);
}
section#point01 .col2 figure {
	margin: 30px 0;
}
section#point01 .col2 img {
	display: inline-block;
	width: auto;
	height: 45px;
}
.btn_2nd {
	display: inline-block;
	padding: 6px 30px;
	border: 2px #e61f20 solid;
	border-radius: 5px;
	color: #e61f20;
}
section#point01 .scroll_window {
	display: block;
	width: calc(100% - 60px);
	padding: 30px;
	border-radius: 20px;
	background: #f2f2f2;
	overflow-x: scroll;
	white-space: nowrap;
	-webkit-overflow-scrolling: touch;
	box-shadow: 0 0 10px rgba(0,0,0,0.1) inset;
}
section#point01 .scroll_window::-webkit-scrollbar {
	height: 4px;
}
section#point01 .scroll_window::-webkit-scrollbar-track {
	margin: 0 2px;
	background: #e6e6e6;
	border-radius: 5px;
}
section#point01 .scroll_window::-webkit-scrollbar-thumb {
	border-radius: 5px;
	background: #b3b3b3;
}
section#point01 .scroll_window .row {
	min-width: 1180px;
}
section#point01 .case {
	width: 220px;
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
section#point01 .case .inner {
	padding: 20px;
	white-space: normal;
}
/* POINT 02 ----------------------------*/
section#point02 .col2 {
	width: calc(50% - 15px);
}
/* POINT 03 ----------------------------*/
section#point03 {
	padding: 0!important;
}
section#point03 .col2:nth-of-type(1) {
	width: calc(70% - 20px);
}
section#point03 .col2:nth-of-type(2) {
	width: calc(30%);
}
section#point03 ul {
	color: #666;
	line-height: 1.6;
	position: relative;
}
section#point03 ul li {
	margin-bottom: 0.5em;
    padding-left: 1.25em;
    /*text-indent: -1em;*/
}
section#point03 ul li:before{ 
	display: inline-block;
    vertical-align: middle;
    content: "";
    width: 1em;
    height: 1em;
	background-image: url(../img/right-chevron_gray_filled.svg);
	background-repeat: no-repeat;
    background-size: contain;
	position: absolute;
	left: 0;
	margin-top: .25em;
}
/* 申し込み ----------------------------------------------------------------------*/
section#foot_info {
	padding: 160px 0!important;
	position: relative;
}
section#foot_info .bg {
	display: block;
	width: 100%;
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: -1;
}
section#foot_info .container {
	position: relative;
	z-index: 2;
}
section#foot_info .boad_bl {
	width: calc(100% - 120px);
	background: #333;
	box-shadow: 5px 5px 10px rgba(0,0,0,0.2);
	position: absolute;
	left: 50%;
	bottom: -140px;
	transform: translateX(-50%);
	z-index: 2;
}
section#foot_info .body_txt {
	max-width: 400px;
    margin-left: auto;
	margin-right: auto;
}
section#foot_info .col2 {
	width: calc(50% - 40px);
	padding: 40px 20px 30px;
}
section#foot_info .col2:first-child {
	width: calc(50% - 41px);
	border-right: 1px #666 solid;
}
section#foot_info h3 {
	padding: 0!important;
	color: #fff;
	text-align: center;
}
section#foot_info h3::before {
	display: none;
}
section#foot_info .btn_main span {
	display: inline-block;
	padding: 1px 0 0 25px;
	margin-right: 10px;
	position: relative;
}
section#foot_info .btn_main span::before {
	content: "";
	display: block;
	width: 20px;
	height: 20px;
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	transition: all .5s;
}
section#foot_info .btn_main.office span::before {
	background-image: url("../img/icon-company.svg");
}
section#foot_info .btn_main.contact span::before {
	background-image: url("../img/icon-question-circle.svg");
	left: -2px;
}
section#foot_info .btn_main.office:hover span::before {
	background-image: url("../img/icon-company_w.svg");
}
section#foot_info .btn_main.contact:hover span::before {
	background-image: url("../img/icon-question-circle_w.svg");
}

/*==================================================================================
フッター
==================================================================================*/
footer {
	padding: 15px!important;
	background: #000;
    color: #fff;
	text-align: center;
}
footer.foot_3rd {
    padding: 170px 0 20px!important;
    background: #1a1a1a;
	text-align: left;
}
footer.foot_3rd .gray {
	color: #777;
}
footer.foot_3rd .logo img {
	width: 120px;
}
footer.foot_3rd .logo_agic img {
	width: 435px;
}
footer.foot_3rd .img {
	width: 230px;
}
footer.foot_3rd ul.foot_nav li:first-child {
	margin-right: 30px;
	position: relative;
}
footer.foot_3rd ul.foot_nav li:first-child::after {
	content: "";
	display: block;
	height: 14px;
	border-right: 1px #666 solid;
	position: absolute;
	top: 0;
	right: -15px;
}
footer.foot_3rd ul.foot_nav li a {
	color: #777;
}

.pc {display: block;}
.sp {display: none;}


@media screen and (max-width : 1280px) {
	/*==================================================================================
	第3弾
	==================================================================================*/
	header.head_3rd {
		padding: 20px 0!important;
	}
	header.head_3rd .logo img {
		width: 120px;
		margin-right: 20px;
	}
	header.head_3rd .logo p.font_20 {
		font-size: 133%;
	}
	/* 共通 -----------------------------------------------------------------------*/
	.container {
		width: calc(100% - 60px);
		padding: 0 30px;
	}
	/* カレンダー ---------------------------------------------------------------------*/
	/* 左 カレンダー --------------------------------------*/
	section#calendar a.month {
		padding: 12px 20px;
	}
	section#calendar a.month span {
		padding-left: 20px;
	}
	section#calendar a.month.next span {
		padding-left: 0;
		padding-right: 20px;
	}
	section#calendar a.month span::after {
		width: 6px;
		height: 6px;
	}
	section#calendar .inner {
		padding: 50px 30px 30px;
	}
	section#calendar .squares {
		width: calc(100% / 7);
		padding: 15px 0;
	}
	section#calendar .squares a.on::before {
		width: 56px;
		height: 56px;
	}
	/* 右 スライド --------------------------------------*/
	section#calendar .col2.schedule .inner {
		padding: 20px 0;
	}
	section#calendar .col2.schedule .day {
		width: 56px;
		height: 56px;
	}
	section#calendar .slider {
		padding: 0 40px;
	}
	section#calendar .btn {
		width: 100px;
	}
	section#calendar .slider .slide_arrows div {
		width: 60px;
		height: 60px;
		left: -30px;
	}
	section#calendar .slider .slide_arrows div.next {
		left: auto;
		right: -30px;
	}
	section#calendar .slider .slide_arrows div::after {
		width: 6px;
		height: 6px;
		right: 10px;
	}
	section#calendar .slider .slide_arrows div.next::after {
		right: auto;
		left: 10px;
	}
}
@media screen and (max-width : 1100px) {
	header.head_3rd .logo img.agic {
		width: 350px;
	}
	header.head_3rd ul.head_menu li .btn_main {
		width: 160px;
		height: 45px;
	}
	header.head_3rd ul.head_menu li .btn_main span {
		/*padding-top: 2px;*/
		margin-right: 4px;
		font-size: 13px;
		line-height: 13px;
	}
}

@media screen and (max-width : 960px) {
	/*==================================================================================
	第3弾
	==================================================================================*/
	header.head_3rd .row {
		justify-content: flex-start;
		align-items: flex-end;
		max-width: 460px;
		margin: auto;
	}
	header.head_3rd .logo {
		margin-bottom: 15px;
	}
	header.head_3rd .logo img {
		width: 100px;
		margin-right: 10px;
	}
	header.head_3rd .logo p.font_20 {
		font-size: 117%;
	}
	header.head_3rd ul.head_menu li {
		width: calc(75% / 2 - 4px);
		margin: 0;
	}
	.language {
		padding: 0.25rem 0.5rem;
		width: 25%!important;
	}
	header.head_3rd ul.head_menu {
		width: 100%;
		justify-content: space-between;
	}
	.btn_main {
		width: 260px;
		height: 60px;
		font-size: 117%;
	}
	.btn_main::after {
		border-width: 8px;
	}
	header.head_3rd ul.head_menu li .btn_main {
		width: 100%;
	}
	/* 共通 -----------------------------------------------------------------------*/
	/*main {
		overflow-x: hidden;
	}*/
	.container {
		width: calc(100% - 40px);
		padding: 0 20px;
	}
	.mb_120 {
		margin-bottom: 60px;
	}
	.mb_60 {
		margin-bottom: 40px;
	}
	.mb_30 {
		margin-bottom: 20px;
	}
	.mb_20 {
		margin-bottom: 15px;
	}
	.font_14 {
		font-size: 100%;
	}
	.font_16 {
		font-size: 117%;
	}
	.font_18 {
		font-size: 133%;
	}
	.font_20 {
		font-size: 133.333%;
	}
	.font_24 {
		font-size: 150%;
	}
	h1 {
		font-size: 20px;
		text-align: center;
		text-indent: -0.5em;
	}
	.news-inner {
		max-width: 460px;
		width: 100%;
		max-height: 130px;
		margin: auto;
	}
	/* カレンダー ---------------------------------------------------------------------*/
	section#calendar {
		padding: 40px 0 20px!important;
	}
	section#calendar .boad {
		max-width: 460px;
		margin: auto;
	}
	section#calendar .boad::before,
	section#calendar .boad::after {
		height: 30px;
		top: -15px;
	}
	section#calendar .boad::after {
		top: auto;
		bottom: -15px;
	}
	section#calendar .boad .col2 {
		width: 100%;
	}
	section#calendar .boad .col2.calendar {
		width: 100%;
		border-right: none;
		border-bottom: 1px #e1e1e1 solid;
	}
	/* 左 カレンダー --------------------------------------*/
	section#calendar .inner {
		padding: 40px 20px 20px;
	}
	section#calendar .squares {
		width: calc(100% / 7);
		padding: 10px 0;
	}
	section#calendar .squares a.on::before {
		width: 46px;
		height: 46px;
	}
	/* 右 スライド --------------------------------------*/
	section#calendar .col2.schedule .day {
		width: 46px;
		height: 46px;
	}
	section#calendar .btn {
		width: 80px;
		padding: 6px 0 4px;
	}
	section#calendar .slider {
		padding: 0 30px;
	}
	section#calendar .slider .slide_arrows div {
		width: 50px;
		height: 50px;
		left: -25px;
	}
	section#calendar .slider .slide_arrows div.next {
		left: auto;
		right: -25px;
	}
	/* POINT --------------------------------------------------------------------------*/
	section#point01,
	section#point02,
	section#point03 {
		padding: 0 0 40px!important;
	}
	.point_main {
		height: 460px;
	}
	.point {
		left: 20px;
		width: calc(100% - 40px);
		box-sizing: border-box;
		padding: 20px 25px 0;
	}
	.point_inner {
		padding: 20px 20px 0;
	}
	h4.redbar-title {
		letter-spacing: 0;
	}
	h2 {
		font-size: 150%;
		letter-spacing: 0;
	}
	h2 small {
		font-size: 12px;
	}
	h3 {
		font-size: 150%;
	}
	h3::before {
		width: 30px;
	}
	.mr_20 {
		margin-right: 15px;
	}
	/* 横幅可変コンテンツ ---------------------------*/
	.section_point.active .variable_cont {
		width: 100%;
	}
	/* サイドタブ */
	.section_point .sidetab {
		width: calc(300px - 50px);
		height: 100%;
		padding: 20px 35px 20px 15px;
		right: -290px;
	}
	.section_point.active .sidetab {
		right: 0;
	}
	.section_point .sidetab .trigger {
		/*width: 30px;
		height: 60px;
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 40px);
		left: -30px;*/
	}
	/* タブ中身 */
	.section_point.active .sidetab [class^="tab_cont"] .ttl {
		right: -40px;
	}
	/* POINT 01 ----------------------------*/
	section#point01 .point_inner .row {
		justify-content: flex-start;
	}
	section#point01 .col2 {
		padding: 3%;
	}
	section#point01 .row::after {
		width: 40%;
    	top: calc(50% + 20px);
	}
	section#point01 .col2 img {
		height: 30px;
	}
	.btn_2nd {
		padding: 4px 30px;
	}
	section#point01 .scroll_window {
		width: calc(100% - 40px);
		padding: 20px;
		border-radius: 15px;
		box-shadow: 0 0 6px rgba(0,0,0,0.1) inset;
	}
	section#point01 .scroll_window .row {
		min-width: 960px;
	}
	section#point01 .case {
		width: 180px;
	}
	section#point01 .case .inner {
		padding: 12px 15px;
	}
	/* POINT 02 ----------------------------*/
	section#point02 .col2 {
		width: calc(50% - 10px);
	}
	/* POINT 03 ----------------------------*/
	section#point03 .col2 {
		width: 100%!important;
	}
	section#point03 ul {
		font-size: 117%;
		line-height: 1.6;
	}
	section#point03 ul li {
		margin-bottom: 0.25em;
	}
	section#point03 .col_img {
		display: flex;
		justify-content: space-between;
	}
	section#point03 .col_img img {
		width: calc(100% / 2 - 5px);
	}
	/* 申し込み ----------------------------------------------------------------------*/
	section#foot_info {
		padding: 80px 0!important;
		background: #1a1a1a;
	}
	section#foot_info .bg {
		height: 360px;
		overflow: hidden;
		position: absolute;
		left: 0;
		bottom: auto;
		top: -60px;
		z-index: 1;
	}
	section#foot_info .bg img {
		height: 100%;
		object-fit: cover;
	}
	section#foot_info .boad_bl {
		width: calc(100% - 40px);
		max-width: 460px;
		box-shadow: 4px 4px 8px rgba(0,0,0,0.2);
		position: relative;
		bottom: -60px;
	}
	section#foot_info .col2 {
		width: calc(100% - 30px);
		padding: 30px 15px 20px;
	}
	section#foot_info .col2:first-child {
		width: calc(100% - 30px);
		border-right: none;
		border-bottom: 1px #666 solid;
	}
	section#foot_info h4 {
		margin-bottom: 0!important;
	}
	section#foot_info .btn_main span {
		padding-left: 20px;
	}
	section#foot_info .btn_main span::before {
		width: 16px;
		height: 16px;
	}
	/*==================================================================================
	フッター
	==================================================================================*/
	footer.foot_3rd {
	    padding: 30px 0 15px!important;
	}
}



@media screen and (max-width : 640px) {
	.pc {display: none;}
	.sp {display: inline;}
	/*==================================================================================
	ヘッダー
	==================================================================================*/
	header {
		padding: 15px!important;
	}
	header .logo {
		width: 80px;
	}
	header ul.sns li {
		margin: 0 5px;
	}
	header ul.sns li a {
		width: 20px;
	}
	/*==================================================================================
	第1弾
	==================================================================================*/
	section#main_1st {
		height: calc(100vh - 48px - 40px);
	}
	section#main_1st .bg {
		background-image: url("../img/phase01_sp.jpg");
	}
	section#main_1st .txt {
		width: 88%;
		max-width: 370px;
		min-width: 0;
	}
	section#main_1st .txt h1 {
		margin-bottom: 5%;
	}
	section#main_1st .txt h2 {
		font-size: 14px;
	}
	/* TIMER ------------------------------------------------------------------------*/
	section#main_1st #timer {
		padding-bottom: 20px;
		font-size: 375%;
		letter-spacing: 0.1em;
		text-shadow: 0 0 20px rgba(0,0,0,0.3);
	}
	@keyframes timer {
		0% {opacity: 0;}
		62.5% {opacity: 0;}
		100% {opacity: 1;}
	}
	section#main_1st #timer span::after {
		font-size: 16%;
		letter-spacing: 0.1em;
		left: 47%;
		bottom: -20px;
	}
	/*==================================================================================
	第2弾
	==================================================================================*/
	section#main_2nd {
		height: calc(100vh - 48px - 40px);
	}
	/* PHASE 01 -----------------------------------*/
	section#main_2nd .phase01.txt {
		width: calc(80% - 30px);
		max-width: 360px;
		padding: 0 15px;
	}
	/* PHASE 02 -----------------------------------*/
	section#main_2nd .phase02.bg {
		background-image: url("../img/phase02_sp.jpg");
	}
	section#main_2nd .phase02.txt {
		width: calc(100% - 30px);
		padding: 0 15px;
		font-size: 225%;
		text-align: center;
		letter-spacing: 0.1em;
	}
	/* PHASE 03 -----------------------------------*/
	section#main_2nd .phase03.txt {
		padding-top: 2% 15px 0;
	}
	section#main_2nd .phase03.txt h1 {
		margin-bottom: 30px!important;
		font-size: 225%;
		line-height: 1.6;
		letter-spacing: 0.1em;
	}
	section#main_2nd .phase03.txt h2 {
		margin-bottom: 60px!important;
		font-size: 125%;
		line-height: 1.6;
		letter-spacing: 0.05em;
	}
	section#main_2nd .phase03.txt .btn {
		width: calc(280px - 30px);
		padding: 20px 15px;
		font-size: 150%;
		letter-spacing: 0.05em;
	}
	/*==================================================================================
	第3弾
	==================================================================================*/
	header.head_3rd .logo {
		/* margin-bottom: 10px; */
	}
	header.head_3rd .logo img {
		width: 80px;
		margin-right: 10px;
	}
	header.head_3rd .logo img.agic {
		width: calc(100% - 90px);
	}
	header.head_3rd .logo p.font_20 {
		font-size: 100%;
	}
	header.head_3rd ul.head_menu li .btn_main {
		font-size: 100%;
	}
	header.head_3rd ul.head_menu li .btn_main span {
		/*padding: 2px 0 0 18px;*/
		padding-left: 20px;
		font-size: 13px;
		line-height: 13px;
	}
	header.head_3rd ul.head_menu li .btn_main span::before {
	    width: 16px;
	    height: 16px;
	}
	section#main_3rd {
		height: calc(100vh - 48px - 40px);
	}
	section#main_3rd .bg {
		background-image: url("../img/phase02_sp.jpg");
	}
	section#main_3rd .txt {
		width: 70%;
		max-width: 360px;
		min-width: 0;
	}
	section#main_3rd .txt h1 {
		margin-bottom: 20%;
	}
	section#main_3rd .txt h2 {
		width: 80%;
	}
	section#point02 .full_img {
		width: 100vw;
		margin-left: -40px;
	}
	section#point03 .col_img {
		display: block;
	}
	section#point03 .col_img img {
		width: 100%;
	}
	/* 導入 --------------------------------------------------------------------------*/
	section#intro {
		padding: 60px 0!important;
	}
	section#intro .container {
		max-width: 460px;
		margin: auto;
	}
	section#intro h1 + p {
		text-align: left;
	}
	section#intro ul.list li::before {
		display: none;
	}
	section#intro ul.list li::after {
		width: 100%;
	}
	section#intro ul.list li a {
		padding: 10px 40px 7px 10px;
	}
	section#intro ul.list li p {
		width: 100%;
		/* margin-top: 10px; */
	}
	section#intro ul.list li a span {
		width: 20px;
		height: 20px;
		top: calc(50% - 10px);
	}
	section#intro ul.list li a span::before {
		width: 20px;
		height: 20px;
	}
	section#intro ul.list li a span::after {
		border-width: 4px;
	}
	/* POINT --------------------------------------------------------------------------*/
	/* POINT 01 ----------------------------*/
	section#point01 .point_inner .row {
		justify-content: center;
	}
	section#point01 .col3 {
		width: 100%;
		max-width: 360px;
		margin: 0 auto 60px;
	}
	section#point01 .col3::before {
		width: 40px;
		height: 100px;
		position: absolute;
		top: auto;
		bottom: -10px;
		right: auto;
		left: calc(50% - 50px);
		transform: rotate(90deg);
		transform-origin: left bottom;
	}
	section#point01 .col3:nth-child(2)::after {
		width: 100%;
		top: auto;
		bottom: -45px;
		right: 0;
	}
	/* POINT 02 ----------------------------*/
	section#point02 .col2 {
		width: 100%;
		max-width: 360px;
		margin: 0 auto 20px;
	}
	/* POINT 03 ----------------------------*/
	section#point03 .col3 {
		width: 100%;
		max-width: 360px;
		margin: 0 auto 20px;
	}
	/* 申し込み ----------------------------------------------------------------------*/
	section#foot_info {
		padding: 40px 0!important;
	}
	section#foot_info .bg {
		height: 360px;
	}
	section#foot_info .boad_bl {
		bottom: -30px;
	}
	section#foot_info .btn_main span {
		padding: 0 0 0 20px;
	}
	section#foot_info .btn_main span::before {
	    width: 16px;
	    height: 16px;
	}
	/*==================================================================================
	フッター
	==================================================================================*/
	footer {
	    padding: 12px 10px!important;
		font-size: 62.5%;
	}
	footer.foot_3rd {
		font-size: 87.5%;
	}
	footer.foot_3rd .logo img {
		width: 100px;
	}
	footer.foot_3rd .font_20 {
		font-size: 143%;
	}
	footer.foot_3rd .font_14 {
		font-size: 100%;
	}
	footer.foot_3rd .img {
		width: 100%;
		margin: 10px 0;
	}
	footer.foot_3rd .img img {
		width: 180px;
		margin: auto;
	}
	footer.foot_3rd ul.foot_nav{
		width: 100%;
		justify-content: center;
		margin-bottom: 10px;
	}
	footer.foot_3rd ul.foot_nav li:first-child::after {
		height: 10px;
	}
	footer.foot_3rd ul.foot_nav + p {
		width: 100%;
		text-align: center;
	}
	footer.foot_3rd .logo_agic img {
		width: 100%;
	}
}

/*==================================================================================
言語選択
==================================================================================*/
.language {
	display: flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
    position: relative;
    padding: 0.25rem 1rem;
    box-sizing: border-box;
    border-radius: 0.25rem;
    cursor: pointer;
	transition: all 0.5s;
}
.language a {
	width: 100%!important;
	display: block;
}
.language:hover {
	opacity: 1;
	border-radius: .25rem .25rem 0 0;
}
.language ul {
	display:none;
	opacity: 0;
	top:0;
	transition: all 0.5s;
}
.language .menuSub {
	border-radius: 0 0 .25rem .25rem;
}
.language .menuSub li {
	margin: 0!important;
	width: 100%!important;
}
.language .menuSub a {
	text-decoration: none;
	color: #000;
	padding: 10px;
	transition: all 0.5s;
	box-sizing: border-box;
}
.language .menuSub li:last-of-type a {
	border-radius: 0 0 .25rem .25rem;
}
.language .menuSub a:hover {
	background-color: #eee;
}
.language .menuSub a.selected {
	font-weight: bold;
}
.language:hover ul {
	display:block;
	position:absolute;
	opacity: 1;
	padding:0;
	margin:0;
	top:100%;
	left:0;
	list-style-type:none;
	width: 100%;
	background-color: #fff;
}
@media screen and (max-width : 640px) {
	.language {
		padding: 0.25rem .5rem;
		width: 25%!important;
	}
}


.calendar-wrap {
	display: flex;
    justify-content: center;
    /*align-items: center;*/
    border-right: 1px #e1e1e1 solid;
    box-sizing: border-box;
}
.calendar {
	width: 100%!important;
	height: 100%!important;
}
.calendar-inner {
	width: 100%!important;
}
.calendar .view {
	width: 100%!important;
}
.calendar-ct {
	margin: auto;
}
#daytitle {
	font-size: 20px;
    font-weight: bold;
}
.calendar .week li {
	color: #000;
}
.calendar-hd {
	text-align: center;
    padding: 45px 0 15px;
    height: auto;
    line-height: normal;
}
.calendar-display {
	display: none!important;
}
.calendar .calendar-views .now {
	color: #fff!important;
}
.calendar .calendar-views .selected {
	color: #000;
	background: #e9a9aa!important;
}
.calendar .days li, .calendar .week li {
	font-size: 14px;
}
.calendar .calendar-views .now {
	background-color: #e61f20!important;
}
.calendar .calendar-views .dot {
	background: #e61f20;
	bottom: 10px;
}
.calendar-arrow, .calendar-display {
	float: unset;
    display: block;
    text-align: center;
    color: black;
    font-size: 20px;
    font-weight: bold;
}
.calendar-arrow .prev {
	padding-left: 40px;
}
.calendar-arrow .next {
	padding-right: 40px;
}
.calendar-arrow, .calendar-arrow .next {
	float: unset;
}
.calendar-arrow span {
	display: block;
    padding: 12px 20px;
    border-right: 1px #e1e1e1 solid;
    border-bottom: 1px #e1e1e1 solid;
    border-radius: 0 0 5px 0;
	font-size: 12px;
    color: #a0a0a0;
    letter-spacing: 0.05em;
    position: absolute;
    top: 0;
    left: 0;
}
.calendar-arrow span.next {
	border-right: none;
    border-left: 1px #e1e1e1 solid;
    border-radius: 0 0 0 5px;
    left: auto;
    right: 0;
    padding-left: 20px;
    padding-right: 40px;
}
.calendar-arrow span::after {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border-left: 1px #e61f20 solid;
    border-bottom: 1px #e61f20 solid;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%) rotate(45deg);
}
.calendar-arrow span.prev::after {
	left: 20px;
}
.calendar-arrow span.next::after {
    left: auto;
    right: 20px;
    transform: translateY(-50%) rotate(225deg);
}
.calendar .days li, .calendar .week li {
	width: 57px!important;
	height: 57px!important;
	line-height: 57px!important;
}
@media screen and (max-width : 960px) {
	.calendar .date-items li {
		width: 280px!important;
	}
	.calendar-ct {
		width: 280px!important;
		height: 280px!important;
	}
	.calendar .days li, .calendar .week li {
		width: 40px!important;
		height: 40px!important;
		line-height: 40px!important;
	}
	.calendar-arrow span {
		font-size: 10px;
	}
	.calendar-hd {
		padding: 55px 0 15px;
	}
	section#calendar .boad .col2 {
		min-height: 400px;
	}
	.calendar-wrap {
		border-right: none;
		border-bottom: 1px #e1e1e1 solid;
	}
	.calendar .calendar-views .dot {
		bottom: 5px;
	}
}

/* footer ボックス内ボタン位置 */
#foot_info > .boad_bl > .col2 {
	display: flex !important;
	flex-direction: column !important;
}
#foot_info > .boad_bl > .col2 .row.just_center {
	margin-top: auto !important;
}


/*Scroll2Top button*/
#back2top {
	display: table;
	position: fixed;
	bottom: -64px;
	left: 20px;
	color: #ffffff !important;
	font-size: 20px;
	z-index: 1000;
	text-decoration: none;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(0, 0, 0, .8);
	text-align: center;
	transition: all 500ms 0s ease;
	cursor: pointer;
}
#back2top.up {
	transform: translateY(-84px);
}
#back2top.down {
	transform: translateY(64px);
}
#back2top i {
	display: table-cell;
	vertical-align: middle;
}
#back2top {
	text-decoration: none !important;
}
#back2top:active,
#back2top:focus {
	outline: none;
	border: none;
	text-decoration: none !important;
	color: #ffffff !important;
}
#back2top::after {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    border-left: 2px #fff solid;
    border-bottom: 2px #fff solid;
    position: absolute;
    top: 12px;
    left: 10px;
    transform: translateX(50%) translateY(50%) rotate(135deg);
}


/* lity.css customized */
.lity-close, .lity-close:hover, .lity-close:focus, .lity-close:active, .lity-close:visited {
	position: absolute;
	top: -44px;
	right: 0;
	width: 44px;
	height: 44px;
	background-image: url(../img/close.svg);
	background-repeat: no-repeat;
	background-size: contain;
	font-size: 44px;
	line-height: 44px;
}

.lity-container {
	width: calc(100% - 30px);
}
@media (min-width: 576px) {
	.lity-container {
		width: 540px;
	}
}

@media (min-width: 768px) {
	.lity-container {
		width: 720px;
	}
}

@media (min-width: 992px) {
	.lity-container {
		width: 960px;
	}
}

@media (min-width: 1200px) {
	.lity-container {
		width: 1140px;
	}
}

.lity-content {
	overflow-y: auto;
    box-sizing: border-box;
}
.lity-content::-webkit-scrollbar{
	width: 8px;
}
.lity-content::-webkit-scrollbar-track{
	background-color: #E6E6E6;
}
.lity-content::-webkit-scrollbar-thumb{
	background-color: #B3B3B3;
}

/* #productlist */
.productcategory span {
	color: #e61f20;
	font-weight: bold;
	padding-right: 10px;
	border-right: solid 1px #e61f20;
}
@media (min-width: 576px) {
	.productcategory {
		border-right: solid 1px #e61f20;
	}
	.productcategory span {
		padding-right: 0;
		border-right: none;
	}
}
.producttype {
	font-size: 80%;
	margin-bottom: .25em;
}
.productname {
	font-weight: bold;
}

/* 追加 */
.btn_small {
	padding: .5rem 1em;
	line-height: 1.6;
	height: unset;
	min-height: 45px;
	font-size: 96%;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	margin: 20px auto;
}

.new_item::after {
	content: url(../img/new_item_ja.png);
	display:inline;
	vertical-align:middle;
	width:30px;
	height: 30px;
	margin-left: 6px;
}
html[lang=en] .new_item::after,
html[lang=zh-hans] .new_item::after {
		content: url(../img/new_item_en.png);
}

.productname a {
	text-decoration: underline;
	transition: 0.3s;
}

.productname a:hover {
	text-shadow: 1px 1px 4px #ccc;
}

/* 6/28　門脇追加 */
.pc-space {
	margin-bottom: 95px;
}
@media screen and (max-width: 960px) {
	.pc-space {
		margin-bottom: 0;
	}
}