
body {
	font-family: vdl-v7gothic, sans-serif;
	font-weight: 500;
	letter-spacing: 0.02em;
	position: relative;
    left: 0;
    overflow-x: hidden;
	-webkit-text-size-adjust: 100%; /* iphone横向き 文字拡大防止 */
}
img {
	display: block;
	width: 100%;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}
a {
	font-size: 14px;
	text-decoration: none;
	color: #000;
	transition: all .3s;
}
a:hover {
	filter: brightness(1.1);
}
p {
	font-size: 14px;
	line-height: 2;
}


/*==================================================================================
ヘッダー
==================================================================================*/
header {
	width: 100%;
	padding: 20px 0!important;
	background: rgba(255,255,255,0.7);
	z-index: 9999;
}
header .logo {
	display: block;
	width: 240px;
}
nav.gnav ul:nth-child(1) {
	margin-bottom: 15px;
}
nav.gnav .btn {
	width: 140px;
	padding: 10px 0;
}
nav.gnav .btn.reserve {
	background: #000;
	color: #fff;
}
nav.gnav .btn::before {
	display: none;
}
nav.gnav ul:nth-child(2) li {
	margin-left: 30px;
}
nav.gnav ul:nth-child(2) li:first-child {
	margin-left: 0;
}
nav.gnav ul:nth-child(2) li a {
	display: block;
	font-size: 12px;
}
nav.gnav ul:nth-child(2) li a:hover {
	filter: none;
	color: #969696;
}

/*==================================================================================
共通
==================================================================================*/
/* レイアウト */
section {
	border-bottom: 1px #000 solid!important;
	padding: 160px 0!important;
}
.container {
	width: calc(100% - 120px);
	padding: 0 60px;
	margin: auto;
}
.max1360 {
	max-width: 1360px;
	margin: auto;
}
.max1200 {
	max-width: 1200px;
	margin: auto;
}
.max960 {
	width: 100%;
	max-width: 960px;
	margin: auto;
}
.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.row.align_center {
	align-items: center;
}
.row.align_end {
	align-items: flex-end;
}
.row.just_center {
	justify-content: center;
}
.row.just_start {
	justify-content: flex-start;
}
.row.just_end {
	justify-content: flex-end;
}

.mb_10 {
	margin-bottom: 10px;
}
.mb_20 {
	margin-bottom: 20px;
}
.mb_30 {
	margin-bottom: 30px;
}
.mb_60 {
	margin-bottom: 60px;
}
.mb_120 {
	margin-bottom: 120px;
}
.mr_20 {
	margin-right: 20px;
}

/* ボタン */
.btn {
	display: block;
	width: 460px;
	box-sizing: border-box;
	padding: 15px 20px;
	border: 2px #000 solid;
	border-radius: 0 20px 0 0;
	background: #fff;
	font-weight: 700;
	text-align: center;
	letter-spacing: 0.1em;
	position: relative;
	transition: all .3s;
}
.btn::before {
	content: "";
	display: block;
	width: 14px;
	height: 14px;
	background: url("../img/icon_arrow.png") center center / contain no-repeat;
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
}
.btn.animated::before {
	animation: btn_arrow 1.8s;
}
@keyframes btn_arrow {
	0% {transform: translateY(-50%) translateX(0);}
	74% {transform: translateY(-50%) translateX(0);}
	84% {transform: translateY(-80%) translateX(5px);}
	100% {transform: translateY(-50%) translateX(0);}
}
.btn::after {
	content: "";
	display: block;
	width: 60px;
	height: 100%;
	clip-path: polygon(50% 0, 100% 0, 50% 100%, 0 100%);
	background: #fff;
	position: absolute;
	top: -2px;
	left: 0;
	opacity: 0;
}
.btn.animated::after {
	animation: btn_film 1.8s;
}
@keyframes btn_film {
	0% {opacity: 0; left: 0;}
	52% {opacity: 0; left: 0;}
	55% {opacity: 1; left: 0;}
	100% {opacity: 0; left: 90%;}
}
.btn:hover {
	border-radius: 0;
	box-shadow: -4px 4px 0 #ccc;
	transform: translate(3px, -3px);
}

/* フォント */
h2 {
	font-size: 14px;
	color: #969696;
	line-height: 1.4;
	letter-spacing: 0.1em;
}
h2 span {
	display: block;
	color: #000;
	font-size: 30px;
}
h3 {
	font-size: 24px;
	text-align: center;
	line-height: 1.4;
	letter-spacing: 0.1em;
	padding-bottom: 60px!important;
	position: relative;
}
h3::after {
	content: "";
	display: block;
	height: 30px;
	border-right: 1px #000 solid;
	position: absolute;
	left: 50%;
	bottom: 0;
}
.font_12 {
	font-size: 12px;
}
.font_18 {
	font-size: 18px;
}
.font_24 {
	font-size: 24px;
	line-height: 1.6;
}
.font_34 {
	font-size: 34px;
	line-height: 1.4;
}
.font_40 {
	font-size: 40px;
	line-height: 1.4;
}
.txt_center {
	text-align: center;
}
.txt_right {
	text-align: right;
}
.bold {
	font-weight: 700;
}
.eng {
	font-family: futura-pt, sans-serif;
	font-weight: 600;
}
.gray {
	color: #969696;
}
.indent {
	padding-left: 1em;
	text-indent: -1em;
}
.line1_4 {
	line-height: 1.4;
}

/* IMG */
.img_frm {
	border: 1px #000 solid;
	overflow: hidden;
	position: relative;
}
.img_frm img {
	height: 100%;
	object-fit: cover;
}
.img_frm.animated img {
	animation: img_frm .8s;
}
@keyframes img_frm {
	0% {opacity: 0; transform: scale(95%);}
	100% {opacity: 1; transform: scale(100%);}
}
.img_frm.img2nd.animated img {
	animation: img2nd .9s;
}
@keyframes img2nd {
	0% {opacity: 0; transform: scale(95%);}
	11% {opacity: 0; transform: scale(95%);}
	100% {opacity: 1; transform: scale(100%);}
}
.img_frm.img3rd.animated img {
	animation: img3rd 1s;
}
@keyframes img3rd {
	0% {opacity: 0; transform: scale(95%);}
	20% {opacity: 0; transform: scale(95%);}
	100% {opacity: 1; transform: scale(100%);}
}
.img_frm.img4th.animated img {
	animation: img4th 1.1s;
}
@keyframes img4th {
	0% {opacity: 0; transform: scale(95%);}
	27% {opacity: 0; transform: scale(95%);}
	100% {opacity: 1; transform: scale(100%);}
}
.img_frm.film::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: #fff;
	position: absolute;
	top: 0;
	left: 0;
	transform-origin: right center;
	transform: scaleX(0);
	opacity: 0;
}
.img_frm.film.animated::after {
	animation: img_film .8s;
}
@keyframes img_film {
	0% {opacity: 1; transform: scaleX(100%);}
	100% {opacity: 0; transform: scaleX(0)}
}
a .img_frm,
a .img_frm img {
	transition: all .4s;
}
a:hover .img_frm img {
	transform: scale(97%);
	filter: brightness(0.6);
}

/* アニメーション -----------*/
/* UP */
.animated.fadeinup {
	animation: fadeinup .8s;
}
@keyframes fadeinup {
	0% {opacity: 0; transform: translateY(20px);}
	100% {opacity: 1; transform: translateY(0);}
}
.animated.fadeinup.up2nd {
	animation: up2nd 1s;
}
@keyframes up2nd {
	0% {opacity: 0; transform: translateY(20px);}
	20% {opacity: 0; transform: translateY(20px);}
	100% {opacity: 1; transform: translateY(0);}
}
.animated.fadeinup.up3rd {
	animation: up3rd 1.1s;
}
@keyframes up3rd {
	0% {opacity: 0; transform: translateY(20px);}
	27% {opacity: 0; transform: translateY(20px);}
	100% {opacity: 1; transform: translateY(0);}
}
.animated.fadeinup.up4th {
	animation: up4th 1.2s;
}
@keyframes up4th {
	0% {opacity: 0; transform: translateY(20px);}
	29% {opacity: 0; transform: translateY(20px);}
	100% {opacity: 1; transform: translateY(0);}
}
/* DOWN */
.animated.fadeindown {
	animation: fadeindown .8s;
}
@keyframes fadeindown {
	0% {opacity: 0; transform: translateY(-20px);}
	100% {opacity: 1; transform: translateY(0);}
}
/* RIGHT */
.animated.fadeinright {
	animation: fadeinright .8s;
}
@keyframes fadeinright {
	0% {opacity: 0; transform: translateX(20px);}
	100% {opacity: 1; transform: translateX(0);}
}
.animated.fadeinright.r2nd {
	animation: r2nd 1s;
}
@keyframes r2nd {
	0% {opacity: 0; transform: translateX(20px);}
	20% {opacity: 0; transform: translateX(20px);}
	100% {opacity: 1; transform: translateX(0);}
}
.animated.fadeinright.r3rd {
	animation: r3rd 1.1s;
}
@keyframes r3rd {
	0% {opacity: 0; transform: translateX(20px);}
	27% {opacity: 0; transform: translateX(20px);}
	100% {opacity: 1; transform: translateX(0);}
}
.animated.fadeinright.r4th {
	animation: r4th 1.2s;
}
@keyframes r4th {
	0% {opacity: 0; transform: translateX(20px);}
	29% {opacity: 0; transform: translateX(20px);}
	100% {opacity: 1; transform: translateX(0);}
}


/*==================================================================================
MAIN
==================================================================================*/
section#main {
	padding: 0 0 60px!important;
}
.col2 {
	width: 50%;
}
section#main .col2.txt {
	width: calc(50% - 120px);
	height: calc(100vh - 290px);
	min-height: 680px;
	padding: 0 60px;
}
section#main h1 {
	width: 100%;
	margin-top: 240px;
	line-height: 1.8;
	letter-spacing: 0.1em;
}
section#main .col2.img {
	height: calc(100vh - 290px);
	min-height: 680px;
	position: relative;
}
section#main .col2.img .img_frm {
	height: 100%;
}
section#main .col2.img .point {
	width: 100%;
	position: absolute;
	left: calc(-100% + 60px);
	bottom: 0;
}
section#main .col2.img .point p.eng {
	color: #EFEFEF;
	font-size: 60px;
	line-height: 1;
	letter-spacing: 0.02em;
	white-space: nowrap;
}
section#main .col2.img .point p.eng span {
	display: inline-block;
}
section#main.animated .col2.img .point .p01,
section#main.animated .col2.img .point .p02,
section#main.animated .col2.img .point .p03 {
}
section#main.animated .col2.img .point .p01 {
	animation: point01 1.2s;
}
@keyframes point01 {
	0% {opacity: 0; transform: translateY(20px);}
	33% {opacity: 0; transform: translateY(20px);}
	100% {opacity: 1; transform: translateY(0);}
}
section#main.animated .col2.img .point .p02 {
	animation: point02 1.3s;
}
@keyframes point02 {
	0% {opacity: 0; transform: translateY(20px);}
	38% {opacity: 0; transform: translateY(20px);}
	100% {opacity: 1; transform: translateY(0);}
}
section#main.animated .col2.img .point .p03 {
	animation: point03 1.4s;
}
@keyframes point03 {
	0% {opacity: 0; transform: translateY(20px);}
	43% {opacity: 0; transform: translateY(20px);}
	100% {opacity: 1; transform: translateY(0);}
}
section#main .btn {
	width: 680px;
	text-align: left;
}
.icon_schedule {
	display: inline-block;
	padding-left: 45px;
	position: relative;
}
.icon_schedule::before {
	content: "";
	display: block;
	width: 30px;
	height: 30px;
	background: url("../img/icon_lady.png") center center / contain no-repeat;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}
/*==================================================================================
ABOUT
==================================================================================*/
section#about .img_frm {
	width: calc(50% + 60px);
	height: 400px;
}
section#about .txt {
	width: calc(50% - 120px);
}
/*==================================================================================
TopPage STUDIO
==================================================================================*/
section#top_studio {
	padding: 0 0 160px!important;
}
section#top_studio .bg_gray {
	padding: 60px 0 100px;
	background: #EFEFEF;
	position: relative;
}
section#top_studio .bg_gray::after {
	content: "";
	display: block;
	width: 100%;
	height: 30px;
	background: url("../img/bg_wave.gif") left top / 360px repeat-x;
	position: absolute;
	left: 0;
	bottom: 0;
}
section#top_studio .whatsup span {
	display: inline-block;
	padding-bottom: 10px;
	line-height: 1;
	letter-spacing: 0.05em;
	position: relative;
}
section#top_studio .whatsup span::after {
	content: "";
	display: block;
	width: 100%;
	border-bottom: 1px #000 solid;
	position: absolute;
	left: 0;
	bottom: 0;
}
section#top_studio .whatsup.animated span::after {
	animation: whatsup .8s;
}
@keyframes whatsup {
	0% {width: 0;}
	100% {width: 100%;}
}
section#top_studio .mind {
	margin: 0 3px;
}
section#top_studio .mind img {
	width: auto;
	height: 80px;
}
section#top_studio .mind.animated img {
	animation: mind 1s;
}
@keyframes mind {
	0% {opacity: 0; transform: scale(50%);}
	100% {opacity: 1; transform: scale(100%);}
}
section#top_studio .mind.m02.animated img {
	animation: mind02 1.2s;
}
@keyframes mind02 {
	0% {opacity: 0; transform: scale(50%);}
	17% {opacity: 0; transform: scale(50%);}
	100% {opacity: 1; transform: scale(100%);}
}
section#top_studio .mind.m03.animated img {
	animation: mind03 1.4s;
}
@keyframes mind03 {
	0% {opacity: 0; transform: scale(50%);}
	29% {opacity: 0; transform: scale(50%);}
	100% {opacity: 1; transform: scale(100%);}
}
/* 私たちがサポートします */
section#top_studio .us span {
	display: inline-block;
	padding: 5px 40px;
	color: #fff;
	line-height: 1;
	letter-spacing: 0.05em;
	position: relative;
}
section#top_studio .us span::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: #000;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}
section#top_studio .us.animated span::before {
	animation: leave_us 1.2s;
	transform-origin: left center;
}
@keyframes leave_us {
	0% {opacity: 0; transform: scaleX(0);}
	33.3% {opacity: 0; transform: scaleX(0);}
	100% {opacity: 1; transform: scaleX(100%);}
}
section#top_studio .us span::after {
	content: "";
	display: block;
	width: 80px;
	height: 90px;
	background: url("../img/logo_bird.png") center bottom / contain no-repeat;
	position: absolute;
	left: -74px;
	bottom: -11px;
}
section#top_studio .us.animated span::after {
	animation: bird .4s;
}
@keyframes bird {
	0% {bottom: 2px;}
	20% {bottom: -11px;}
	60% {bottom: -2px;}
	100% {bottom: -11px;}
}
section#top_studio .img_frm {
	height: 460px;
}
/*==================================================================================
SESSTION
==================================================================================*/
.col4 {
	width: calc(100% / 4 - 30px);
}
section#session .col4 {
	position: relative;
}
section#session .col4::after {
	content: "";
	display: block;
	width: 20px;
	height: 20px;
	background: url("../img/icon_arrow2.png") center center / contain no-repeat;
	position: absolute;
	top: 50%;
	right: -30px;
	transform: translateY(-50%);
}
section#session .col4:last-child::after {
	display: none;
}
section#session .img_frm {
	height: 400px;
	position: relative;
}
section#session .img_frm p {
	width: calc(100% - 30px);
	padding: 15px;
	color: #fff;
	position: absolute;
	left: 0;
	bottom: 0;
}
/*==================================================================================
bana
==================================================================================*/
section#top_bana {
	padding: 0!important;
}
section#top_bana .inner {
	padding: 60px 60px 30px 60px;
	position: relative;
}
section#top_bana .col2:first-child .inner {
	border-right: 1px #000 solid;
}
section#top_bana .inner::before {
	content: "";
	display: block;
	width: 22px;
	height: 22px;
	border: 1px #000 solid;
	position: absolute;
	right: 60px;
	bottom: 46px;
}
section#top_bana .inner::after {
	content: "";
	display: block;
	width: 6px;
	height: 6px;
	border-top: 2px #000 solid;
	border-right: 2px #000 solid;
	position: absolute;
	right: 70px;
	bottom: 54px;
	transform: rotate(45deg);
}
section#top_bana .img_frm {
	height: 600px;
	position: relative;
}
section#top_bana .img_frm span {
	width: calc(300px - 30px);
	padding: 15px;
	background: rgba(0,0,0,0.5);
	color: #fff;
	text-align: center;
	letter-spacing: 0.05em;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 2;
}
section#top_bana p {
	padding-right: 40px;
}

/*==================================================================================
PRICE
==================================================================================*/
section#price table {
	width: 100%;
}
section#price table tr {
	border-bottom: 1px #999 solid;
}
section#price table th {
	padding: 20px;
	border-right: 1px #ccc dashed;
	background: #fafafa;
	font-weight: 700;
	text-align: center;
}
section#price table tr:first-child th {
	padding: 5px;
	background: #EFEFEF;
	font-weight: normal;
}
section#price table td {
	padding: 20px;
	border-right: 1px #ccc dashed;
	text-align: center;
}
section#price table th:last-child,
section#price table td:last-child {
	border: none;
}
section#price table.first {
	border-top: 1px #999 solid;
}
section#price table.first tr:first-child th {
	padding: 10px;
	background: #fafafa;
}
section#price table.first td {
	padding: 10px;
}
/*==================================================================================
VOICE
==================================================================================*/
section#voice {
	padding: 60px 0!important;
	border-bottom: none!important;
	background: #EFEFEF;
}
section#voice h2 {
	text-align: center;
}
section#voice .sp-slide {
	padding-top: 20px;
}
section#voice .sp-slide.sp-selected {
	top: -20px;
}
section#voice .voice {
	padding: 20px 30px;
	border-left: 1px #000 solid;
	border-right: 1px #000 solid;
	background: #fff;
	opacity: 0.5;
}
section#voice .sp-slide.sp-selected .voice {
	opacity: 1;
}
section#voice .sp-buttons {
	padding-top: 30px;
}
section#voice .sp-buttons .sp-button {
	width: 30px;
	height: 5px;
	border: none;
	border-radius: 0;
	background: #ccc;
}
section#voice .sp-buttons .sp-button.sp-selected-button {
	background: #000;
}
/*==================================================================================
FAQ
==================================================================================*/
/* accordion */
dl.accordion {
	width: 100%;
	border-bottom: 1px #000 solid;
}
dl.accordion dt {
	padding: 20px 40px 20px 64px;
	cursor: pointer;
	position: relative;
}
dl.accordion dt::after {
	content: "";
	display: block;
	width: 7px;
	height: 7px;
	border-right: 2px #000 solid;
	border-bottom: 2px #000 solid;
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%) rotate(45deg);
	transition: all .3s;
}
dl.accordion dt.open::after {
	transform: translateY(-50%) rotate(-135deg);
}
dl.accordion dt span {
	line-height: 1;
	position: absolute;
	top: 22px;
	left: 10px;
}
dl.accordion dd {
	display: none;
	padding: 20px 20px 20px 64px;
	background: #F7F7F7;
	position: relative;
}
dl.accordion dd span {
	line-height: 1;
	position: absolute;
	top: 20px;
	left: 26px;
}
/*==================================================================================
トライアルレッスン
==================================================================================*/
section#trial {
	padding: 60px 0!important;
	background: url("../img/trial.jpg") center center / cover no-repeat;
	color: #fff;
}
section#trial h3 {
	padding: 0!important;
	text-align: left;
}
section#trial h3::after {
	display: none;
}
section#trial .btn:hover {
	box-shadow: -4px 4px 0 rgba(0,0,0,0.6);
}
/*==================================================================================
INSTRUCTOR
==================================================================================*/
section#instructor {
	padding: 100px 0!important;
	border-bottom: none!important;
}
.border {
	border-top: 1px #000 solid;
	position: relative;
}
section#instructor .border::after {
	content: "";
	display: block;
	width: 100%;
	height: 400px;
	background: #EFEFEF;
	position: absolute;
	top: 0;
	left: 0;
}
section#instructor .container {
	position: relative;
	z-index: 2;
}
section#instructor .img_frm {
	height: 600px;
}
/*==================================================================================
STUDIO
==================================================================================*/
section#studio {
	padding: 100px 0 0!important;
}
section#studio .s01 {
	padding: 60px 0 160px;
	position: relative;
}
section#studio .s01::before {
	content: "";
	display: block;
	width: 50%;
	height: 100%;
	background: #EFEFEF;
	position: absolute;
	top: 0;
	right: 0;
}
section#studio .s01::after,
section#studio .s02::after,
section#studio .s03::after {
	content: "";
	display: block;
	height: 100%;
	border-right: 1px #000 solid;
	position: absolute;
	top: 0;
	left: 50%;
}
section#studio .s01 .row {
	position: relative;
	z-index: 2;
}
section#studio .s01 .txt {
	width: calc(50% - 160px);
	padding: 0 80px;
}
section#studio .s01 .img_frm {
	width: calc(50% - 82px);
	margin-left: 80px;
}
/* 正面 */
section#studio .s02 {
	max-width: 1600px;
	margin: auto;
	padding: 80px 0 160px;
	position: relative;
}
section#studio .s02 .txt {
	width: calc(50% - 160px);
	padding: 0 0 0 160px;
}
section#studio .s02 .img_frm {
	width: calc(50% - 2px + 80px);
	height: calc(100% - 2px);
	position: absolute;
	top: -80px;
	left: 0;
	z-index: 2;
}
/* モニター */
section#studio .s03 {
	padding: 80px 0 0;
	position: relative;
}
section#studio .s03 .txt {
	width: calc(50% - 200px);
	padding: 0 80px 0 120px;
}
section#studio .s03 .img_frm {
	width: calc(50% - 162px);
	height: calc(100% - 2px);
	position: relative;
	top: -160px;
}
/* 豊富なマシーン ------------------------------------------------------------------*/
section#machine {
	padding: 160px 0 120px!important;
	background: #EFEFEF;
}
.col3 {
	width: calc(100% / 3 - 30px);
}
.col3_2 {
	width: calc((100% / 3) * 2 - 15px);
}
section#machine .img_frm {
	height: 280px;
}
/*==================================================================================
ACCESS
==================================================================================*/
section#access .img_frm {
	height: 420px;
}
section#access table {
	width: calc(100% - 60px);
}
section#access table th {
	width: 100px;
	padding: 30px 0;
	border-bottom: 2px #000 solid;
	font-weight: normal;
	text-align: left;
	vertical-align: top;
}
section#access table td {
	width: calc(100% - 100px - 20px);
	padding: 30px 0 30px 20px;
	position: relative;
}
section#access table td::after {
	content: "";
	display: block;
	width: calc(100% - 20px);
	height: 100%;
	border-bottom: 1px #969696 solid;
	position: absolute;
	left: 20px;
	bottom: 0;
}
/*==================================================================================
TOPICS
==================================================================================*/
section#top_topics {
	padding: 40px 0 0!important;
	border-bottom: none!important;
}
section#top_topics ul li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding-bottom: 10px;
	border-bottom: 1px #969696 solid;
}
section#top_topics ul li span {
	display: block;
	width: 90px;
}
.category {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 140px;
	height: 24px;
	background: #999;
	color: #fff;
	font-size: 12px;
}
section#top_topics ul li .category {
	width: 130px;
	height: 22px;
}
section#top_topics ul li .txt {
	width: calc(100% - 90px - 130px - 30px);
}
section#top_topics ul li .txt:hover {
	opacity: 0.8;
}
/* TOPICS一覧 */
section#topics {
	padding: 100px 0!important;
}
section#topics .bg_gray {
	padding: 60px 0;
	background: #EFEFEF;
}
section#topics .side_cont {
	width: 200px;
	border-right: 1px #dfdfdf solid;
	box-sizing: border-box;
}
section#topics .article_list {
	width: calc(100% - 200px - 60px);
}
section#topics .article_list ul li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding: 20px 40px;
	border-bottom: 1px #000 solid;
	background: #fff;
}
section#topics .article_list ul li span {
	display: block;
	width: 90px;
}
section#topics .article_list ul li .txt {
	width: calc(100% - 90px - 140px - 40px);
}
section#topics .article_list ul li .txt:hover {
	opacity: 0.8;
}
article {
	padding: 40px 60px!important;
	background: #fff;
}
article h3 {
	text-align: left;
	padding-bottom: 10px!important;
	border-bottom: 1px #000 solid!important;
}
article h3::after {
	display: none;
}

/*==================================================================================
フッター
==================================================================================*/
footer {
	padding: 60px 0 0!important;
}
footer .logo {
	display: block;
	width: 180px;
}
.foot_nav {
	width: calc(100% - 240px);
}
.foot_nav ul:nth-child(1) {
	margin-bottom: 15px;
}
.foot_nav .btn {
	width: 140px;
	padding: 10px 0;
}
.foot_nav .btn.reserve {
	background: #000;
	color: #fff;
}
.foot_nav .btn::before {
	display: none;
}
.foot_nav ul:nth-child(2) li {
	margin-left: 30px;
}
.foot_nav ul:nth-child(2) li:first-child {
	margin-left: 0;
}
.foot_nav ul:nth-child(2) li a {
	font-size: 12px;
}
.foot_nav ul:nth-child(2) li a:hover {
	filter: none;
	color: #969696;
}
footer .copy {
	width: calc(100% - 20px);
	padding: 15px 10px;
	border-top: 1px #000 solid;
	text-align: center;
}

/* ページトップへ戻るボタン */
.btn_pagetop {
	display: block;
	width: calc(40px - 2px);
	height: calc(40px - 2px);
	border: 1px #000 solid;
	background: #fff;
	position: fixed;
	right: 40px;
	bottom: 40px;
	z-index: 100;
}
.btn_pagetop span {
	display: block;
	width: 8px;
	height: 8px;
	border-top: 2px #000 solid;
	border-right: 2px #000 solid;
	transform: translateX(-50%) rotate(-45deg);
	position: absolute;
	top: 45%;
	left: 50%;
}



.tb {display: none;}
.pc {display: inline;}
.sp {display: none;}


@media screen and (max-width : 1400px) {
	/*==================================================================================
	メイン
	==================================================================================*/
	section#main .col2.txt {
		width: calc(50% - 60px);
		padding: 0 60px 0 0;
	}
	section#main .col2.img .point {
		left: -100%;
	}
}
@media screen and (max-width : 1200px) {
	/*==================================================================================
	ヘッダー
	==================================================================================*/
	header .logo {
		width: 220px;
	}
	nav.gnav ul:nth-child(2) li {
		margin-left: 20px;
	}
	/*==================================================================================
	共通
	==================================================================================*/
	/* レイアウト */
	.container {
		width: calc(100% - 60px);
		padding: 0 30px;
	}
	/*==================================================================================
	メイン
	==================================================================================*/
	section#main .col2.txt {
		width: calc(50% - 30px);
		padding: 0 30px 0 0;
	}
}

@media screen and (max-width : 960px) {
	.pc {display: none;}
	.tb {display: inline;}
	
	p { font-size: 12px; }
	
	/*==================================================================================
	ヘッダー
	==================================================================================*/
	header {
		padding: 10px 0!important;
		position: fixed;
		top: 0;
		left: 0;
		transition: all .3s;
	}
	header.active {
		background: #fff;
	}
	header .logo {
		width: 180px;
		position: relative;
		z-index: 3;
	}
	/* スマホ版 メニュー -----------------------*/
	nav.gnav {
		z-index: 2;
		width: 100%;
		height: calc(100vh - 77px);
		background: rgba(0,0,0,0.5);
		opacity: 0;
		visibility: hidden;
		transition: all 0.3s;
		position: fixed;
 	 	top: 77px;
		left: 0;
	}
	nav.gnav.active {
	    opacity: 1;
		visibility: visible;
	}
	nav.gnav .sp_boad {
		display: flex;
		flex-wrap: wrap;
		width: calc(100% - 100px - 80px);
		max-width: 360px;
		padding: 40px;
		border-radius: 0 0 20px 0;
		background: #fff;
		position: absolute;
		top: 20px;
		left: 20px;
		transform: scale(0);
		transform-origin: left top;
	}
	nav.gnav.active .sp_boad {
		transform: scale(100%);
		transition: all .5s;
		transition-delay: .3s;
	}
	nav.gnav ul:nth-child(1) {
		width: 100%;
		margin-bottom: 0;
		order: 2;
	}
	nav.gnav ul:nth-child(2) {
		width: 100%;
		margin-bottom: 30px;
	}
	nav.gnav ul li {
	    width: 100%;
		margin-bottom: 20px;
	}
	nav.gnav ul:nth-child(2) li {
		margin-left: 0;
	}
	nav.gnav ul:nth-child(2) li:last-child {
		margin-bottom: 0;
	}
	nav.gnav ul:nth-child(2) li a {
		font-size: 14px;
	}
	nav.gnav .btn {
		width: 100%;
		padding: 15px 0;
	}

	.gnavToggle {
	    z-index: 3;
	    display: flex;
		flex-wrap: wrap;
		flex-direction: column;
		justify-content: center;
		align-items: center;
	    width: 80px;
	    height: 77px;
	    text-align: center;
	    cursor: pointer;
	    position: fixed;
	    top: 0;
	    right: 0;
	}
	.gnavToggle span {
	    display: block;
	    width: 40px;
		margin-bottom: 6px;
	    border-bottom: solid 2px #000;
	    -webkit-transition: .3s ease-in-out;
	    -moz-transition: .3s ease-in-out;
	    transition: .3s ease-in-out;
	}
	.gnavToggle span:nth-child(3) {
		width: 100%;
		margin-bottom: 0;
	    border: none;
	    color: #000;
	    font-size: 12px;
		text-align: center;
		letter-spacing: 0.05em;
	}
	.gnavToggle.active {
	    background: #EFEFEF;
	}
	.gnavToggle.active span {
	    margin-bottom: 0;
	}
	.gnavToggle.active span:nth-child(1) {
	    transform: translateY(1px) rotate(-15deg);
	}
	.gnavToggle.active span:nth-child(2) {
	    transform: translateY(-1px) rotate(15deg);
	}
	.gnavToggle.active span:nth-child(3) {
	    margin-top: 10px;
	}

	/*==================================================================================
	共通
	==================================================================================*/
	/* レイアウト */
	main {
		margin-top: 78px;
	}
	section {
		padding: 80px 0!important;
	}
	.container {
		width: calc(100% - 40px);
		padding: 0 20px;
	}
	.mb_10 {
		margin-bottom: 5px;
	}
	.mb_20 {
		margin-bottom: 15px;
	}
	.mb_30 {
		margin-bottom: 20px;
	}
	.mb_60 {
		margin-bottom: 40px;
	}
	.mb_120 {
		margin-bottom: 80px;
	}
	.mr_20 {
		margin-right: 15px;
	}
	/* ボタン */
	.btn {
		width: calc(100% - 40px);
		max-width: 360px;
		padding: 15px 20px;
		border-radius: 0 10px 0 0;
		letter-spacing: 0.05em;
	}
	.btn::before {
		width: 10px;
		height: 10px;
		right: 15px;
	}
	/* フォント */
	h2 {
		font-size: 12px;
		letter-spacing: 0.05em;
	}
	h2 span {
		font-size: 24px;
	}
	h3 {
		font-size: 20px;
		letter-spacing: 0.02em;
		padding-bottom: 40px!important;
	}
	h3::after {
		height: 20px;
	}
	.font_12 {
		font-size: 10px;
	}
	.font_18 {
		font-size: 14px;
	}
	.font_24 {
		font-size: 20px;
	}
	.font_34 {
		font-size: 24px;
	}
	.font_40 {
		font-size: 30px;
	}
	/*==================================================================================
	MAIN
	==================================================================================*/
	section#main {
		padding: 0 0 40px!important;
		border-top: 1px #000 solid;
	}
	.col2 {
		width: 100%;
	}
	section#main .col2.txt {
		width: calc(100% - 80px);
		height: auto;
		min-height: 0;
		margin-bottom: 40px;
		padding: 0 40px;
		order: 2;
		z-index: 2;
	}
	section#main h1 {
		margin-top: 0;
		line-height: 1.6;
		letter-spacing: 0.05em;
		order: 2;
	}
	section#main .col2.img {
		height: calc(100vh - 77px - 364px);
		min-height: 460px;
		margin-bottom: 40px;
		padding-top: 40px;
	}
	section#main .col2.img .point {
		width: calc(100% - 80px);
		padding: 0 40px;
		left: 0;
		bottom: 40px;
	}
	section#main .col2.img .point p.eng {
		color: rgba(255,255,255,0.5);
		font-size: 50px;
		white-space: pre-wrap;
	}
	section#main .col2.img .point p.mb_20 {
		margin-bottom: 0;
	}
	section#main .btn {
		width: 100%;
		max-width: 460px;
	}
	.icon_schedule {
		padding-left: 32px;
	}
	.icon_schedule::before {
		width: 25px;
		height: 25px;
	}
	/*==================================================================================
	ABOUT
	==================================================================================*/
	section#about .img_frm {
		width: 100%;
		max-width: 680px;
		height: 300px;
		margin: 0 auto 40px;
	}
	section#about .txt {
		width: 100%;
		max-width: 680px;
		margin: auto;
	}
	/*==================================================================================
	TopPage STUDIO
	==================================================================================*/
	section#top_studio {
		padding: 0 0 80px!important;
	}
	section#top_studio .bg_gray {
		padding: 30px 0 60px;
	}
	section#top_studio .bg_gray::after {
		height: 16px;
		background-size: 200px;
	}
	section#top_studio .mind img {
		height: 60px;
	}
	/* 私たちがサポートします */
	section#top_studio .us {
		margin-left: 64px;
	}
	section#top_studio .us span {
		padding: 5px 30px;
	}
	section#top_studio .us span::after {
		width: 64px;
		height: 72px;
		left: -58px;
		bottom: -9px;
	}
	section#top_studio .img_frm {
		height: 240px;
	}
	/*==================================================================================
	SESSTION
	==================================================================================*/
	section#session .row {
		justify-content: flex-start;
	}
	.col4 {
		width: calc(50% - 10px);
	}
	section#session .col4 {
		width: calc(50% - 25px);
		margin-bottom: 20px;
	}
	section#session .col4:nth-child(1) {
		margin-right: 30px;
	}
	section#session .col4:nth-child(3) {
		margin-right: 30px;
	}
	section#session .col4::after {
		width: 15px;
		height: 15px;
		top: 50%;
		right: -22px;
		transform: translateY(-50%);
	}
	section#session .img_frm {
		height: 360px;
		margin-bottom: 5px;
	}
	/*==================================================================================
	bana
	==================================================================================*/
	section#top_bana .inner {
		padding: 20px;
	}
	section#top_bana .col2:first-child .inner {
		border-right: none;
		border-bottom: 1px #000 solid;
	}
	section#top_bana .inner::before {
		position: absolute;
		right: 20px;
		bottom: 20px;
	}
	section#top_bana .inner::after {
		width: 4px;
    	height: 4px;
    	border-top: 1px #000 solid;
    	border-right: 1px #000 solid;
		right: 31px;
		bottom: 29px;
	}
	section#top_bana .img_frm {
		height: 400px;
	}
	section#top_bana .img_frm span {
		width: calc(200px - 20px);
		padding: 10px;
	}
	/*==================================================================================
	PRICE
	==================================================================================*/
	section#price table th {
		padding: 10px;
	}
	section#price table td {
		padding: 10px;
	}
	section#price table.first tr:first-child th {
		padding: 5px 10px;
	}
	section#price table.first td {
		padding: 5px 10px;
	}
	/*==================================================================================
	VOICE
	==================================================================================*/
	section#voice {
		padding: 30px 0!important;
	}
	section#voice .sp-slide {
		padding-top: 10px;
	}
	section#voice .sp-slide.sp-selected {
		top: -10px;
	}
	section#voice .voice {
		padding: 15px 20px;
	}
	section#voice .sp-buttons {
		padding-top: 10px;
	}
	section#voice .sp-buttons .sp-button {
		width: 20px;
		height: 3px;
	}
	/*==================================================================================
	FAQ
	==================================================================================*/
	/* accordion */
	dl.accordion dt {
		padding: 15px 30px 15px 50px;
	}
	dl.accordion dt::after {
		width: 5px;
		height: 5px;
		border-right: 1px #000 solid;
		border-bottom: 1px #000 solid;
		right: 10px;
	}
	dl.accordion dt span {
		font-size: 20px;
		top: 16px;
		left: 10px;
	}
	dl.accordion dd {
		padding: 15px 15px 15px 50px;
	}
	dl.accordion dd span {
		font-size: 20px;
		top: 16px;
		left: 24px;
	}
	/*==================================================================================
	トライアルレッスン
	==================================================================================*/
	section#trial {
		padding: 40px 0!important;
	}
	/*==================================================================================
	INSTRUCTOR
	==================================================================================*/
	section#instructor {
		padding: 80px 0!important;
	}
	section#instructor .border::after {
		height: 200px;
	}
	section#instructor .img_frm {
		height: 400px;
	}
	/*==================================================================================
	STUDIO
	==================================================================================*/
	section#studio {
		padding: 80px 0 0!important;
	}
	section#studio .s01 {
		padding: 40px 0 80px;
	}
	section#studio .s01 .txt {
		width: calc(50% - 80px);
		padding: 0 40px;
	}
	section#studio .s01 .img_frm {
		width: calc(50% - 42px);
		margin-left: 40px;
	}
	/* 正面 */
	section#studio .s02 {
		padding: 40px 0 120px;
	}
	section#studio .s02 .txt {
		width: calc(50% - 80px);
		padding: 0 0 0 80px;
	}
	section#studio .s02 .img_frm {
		width: calc(50% - 2px + 40px);
		top: -40px;
	}
	/* モニター */
	section#studio .s03 {
		padding: 40px 0 0;
	}
	section#studio .s03 .txt {
		width: calc(50% - 120px);
		margin-bottom: 30px;
		padding: 0 40px 0 80px;
	}
	section#studio .s03 .img_frm {
		width: calc(50% - 122px);
		top: -80px;
		right: 40px;
	}
	/* 豊富なマシーン ------------------------------------------------------------------*/
	section#machine {
		padding: 80px 0 40px!important;
	}
	.col3,
	.col3_2 {
		width: calc(100% / 2 - 15px);
	}
	section#machine .col3 {
		width: calc(100% / 3 - 10px);
	}
	section#machine .col3_2 {
		width: calc((100% / 3) * 2 - 5px);
	}
	/*==================================================================================
	ACCESS
	==================================================================================*/
	section#access .img_frm {
		height: 240px;
	}
	section#access .row {
		max-width: 460px;
		margin: auto;
	}
	section#access table {
		width: 100%;
		margin-bottom: 30px;
	}
	section#access table th {
		width: 60px;
		padding: 15px 0;
	}
	section#access table td {
		width: calc(100% - 60px - 20px);
		padding: 15px 0 15px 20px;
	}
	/*==================================================================================
	TOPICS
	==================================================================================*/
	section#top_topics {
		padding: 20px 0 0!important;
	}
	.category {
		width: 110px;
		height: 20px;
		font-size: 10px;
	}
	section#top_topics ul li span {
		width: 65px;
		font-size: 12px;
	}
	section#top_topics ul li .category {
		width: 110px;
		height: 20px;
	}
	section#top_topics ul li .txt {
		width: calc(100% - 65px - 110px - 20px);
	}
	/* TOPICS一覧 */
	section#topics {
		padding: 80px 0!important;
	}
	section#topics .bg_gray {
		padding: 30px 0;
	}
	section#topics .side_cont {
		width: 140px;
	}
	section#topics .article_list {
		width: calc(100% - 140px - 30px);
	}
	section#topics .article_list ul li {
		padding: 10px 20px;
	}
	section#topics .article_list ul li span {
		width: 70px;
		font-size: 12px;
	}
	section#topics .article_list ul li .txt {
		width: calc(100% - 70px - 110px - 20px);
	}
	article {
		padding: 20px 30px!important;
	}
	/*==================================================================================
	フッター
	==================================================================================*/
	footer {
		padding: 30px 0 0!important;
	}
	footer .logo {
		width: 100%;
		margin-bottom: 15px;
	}
	footer .logo img {
		width: 140px;
		margin: auto;
	}
	.foot_nav {
		width: 100%;
	}
	.foot_nav ul:nth-child(1) {
		justify-content: center;
		margin-bottom: 0;
	}
	.foot_nav ul:nth-child(2) {
		display: none;
	}
	footer .copy {
		padding: 10px;
	}
	/* ページトップへ戻るボタン */
	.btn_pagetop {
		width: calc(30px - 2px);
		height: calc(30px - 2px);
		right: 20px;
		bottom: 20px;
	}
	.btn_pagetop span {
		width: 5px;
		height: 5px;
		border-width: 1px;
	}
}

@media screen and (max-width : 680px) {
	/*==================================================================================
	STUDIO
	==================================================================================*/
	section#studio .txt {
		order: 2;
	}
	section#studio .s01 {
		padding: 30px 0 60px;
	}
	section#studio .s01::before {
		width: 100%;
		height: 30%;
	}
	section#studio .s01::after {
		display: none;
	}
	section#studio .s01 .row {
		max-width: 540px;
		margin: auto;
	}
	section#studio .s01 .txt {
		width: calc(100% - 80px);
		padding: 0 40px;
	}
	section#studio .s01 .img_frm {
		width: calc(100% - 82px);
		margin: 0 auto 20px;
	}
	/* 正面 */
	section#studio .s02 {
		padding: 30px 0 60px;
	}
	section#studio .s02::after {
		left: auto;
		right: 40px;
	}
	section#studio .s02 .container {
		width: 100%;
		padding: 0;
	}
	section#studio .s02 .row {
		justify-content: flex-start;
	}
	section#studio .s02 .txt {
		width: calc(100% - 40px - 60px);
		padding: 0 40px 0 20px;
	}
	section#studio .s02 .img_frm {
		width: calc(100% - 22px);
		height: calc(300px - 2px);
		margin: -60px 0 20px;
		position: relative;
		top: 0;
		left: 0;
	}
	/* モニター */
	section#studio .s03 {
		max-width: 540px;
		margin: auto;
		padding: 30px 0;
	}
	section#studio .s03::after {
		left: 40px;
	}
	section#studio .s03 .txt {
		width: calc(100% - 60px);
		margin-bottom: 0;
		padding: 0 0 0 60px;
	}
	section#studio .s03 .img_frm {
		width: calc(100% - 62px);
		max-width: 300px;
		margin: -60px 0 20px 0;
		top: 0;
		right: auto;
		left: 60px;
	}
	/* 豊富なマシーン ------------------------------------------------------------------*/
	section#machine .row{
		max-width: 360px;
		margin: 0 auto 20px;
	}
	section#machine .col3,
	section#machine .col3_2 {
		width: 100%;
		margin-bottom: 20px;
	}
	section#machine .order2 {
		order: 2;
	}
	section#machine .txt_right {
		text-align: left;
	}
	/*==================================================================================
	TOPICS
	==================================================================================*/
	/* TOPICS一覧 */
	section#topics .side_cont {
		width: 100%;
		margin-bottom: 20px;
		padding-bottom: 10px;
		border-right: none;
		border-bottom: 1px #dfdfdf solid;
	}
	section#topics .side_cont p {
		margin-bottom: 5px;
	}
	section#topics .side_cont ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start;
		width: 100%;
	}
	section#topics .side_cont .category {
		margin-right: 10px;
		margin-bottom: 0;
	}
	section#topics .article_list {
		width: 100%;
	}
}


@media screen and (max-width : 460px) {
	.tb {display: none;}
	.sp {display: inline;}
	
	/*==================================================================================
	ヘッダー
	==================================================================================*/
	header .logo {
		width: 140px;
	}
	/* スマホ版 メニュー -----------------------*/
	nav.gnav {
		height: calc(100vh - 64px);
 	 	top: 64px;
	}
	nav.gnav .sp_boad {
		width: calc(100% - 100px - 60px);
		padding: 30px;
	}
	nav.gnav ul li {
		margin-bottom: 15px;
	}
	nav.gnav ul:nth-child(2) li:last-child {
		margin-bottom: 0;
	}
	nav.gnav ul:nth-child(2) li a {
		font-size: 12px;
	}
	.gnavToggle {
	    width: 80px;
	    height: 64px;
	}
	/*==================================================================================
	共通
	==================================================================================*/
	/* レイアウト */
	main {
		margin-top: 65px;
	}
	/* フォント */
	.font_24 {
		font-size: 18px;
	}
	.font_34 {
		font-size: 22px;
	}
	.font_40 {
		font-size: 28px;
	}
	/*==================================================================================
	MAIN
	==================================================================================*/
	section#main .col2.txt {
		width: 100%;
		padding: 0;
	}
	section#main .col2.img {
		height: calc(100vh - 77px - 344px);
		min-height: 360px;
	}
	section#main .col2.img .point {
		width: calc(100% - 40px);
		padding: 0 20px;
		bottom: 20px;
	}
	section#main .col2.img .point p.eng {
		font-size: 40px;
	}
	section#main .btn .font_24 {
		font-size: 20px;
	}
	/*==================================================================================
	ABOUT
	==================================================================================*/
	section#about .img_frm {
		height: 240px;
	}
	/*==================================================================================
	TopPage STUDIO
	==================================================================================*/
	section#top_studio .bg_gray::after {
		height: 12px;
		background-size: 140px;
	}
	section#top_studio .bg_gray .container {
		width: calc(100% - 20px);
		padding: 0 10px;
	}
	section#top_studio .mind {
		margin: 0 2px;
	}
	section#top_studio .mind img {
		height: 44px;
	}
	section#top_studio .img_frm {
		height: 120px;
	}
	/*==================================================================================
	SESSTION
	==================================================================================*/
	.col4 {
		width: 100%;
	}
	section#session .col4 {
		width: 100%;
		margin-bottom: 20px;
	}
	section#session .col4:nth-child(1),
	section#session .col4:nth-child(3),
	section#session .col4:nth-child(4) {
		margin: 0 0 20px;
	}
	section#session .col4::after {
		width: 15px;
		height: 15px;
		top: auto;
		right: 10px;
		bottom: 0;
		transform: rotate(90deg);
	}
	/*==================================================================================
	bana
	==================================================================================*/
	section#top_bana .img_frm {
		height: 240px;
	}
	/*==================================================================================
	INSTRUCTOR
	==================================================================================*/
	section#instructor .img_frm {
		height: 240px;
	}
	/*==================================================================================
	STUDIO
	==================================================================================*/
	section#studio .s01 .txt {
		width: 100%;
		padding: 0;
	}
	section#studio .s01 .img_frm {
		width: calc(100% - 2px);
		margin: 0 auto 20px;
	}
	/* 正面 */
	section#studio .s02 .img_frm {
		height: calc(240px - 2px);
	}
	/* モニター */
	section#studio .s03 .img_frm {
		height: calc(300px - 2px);
	}
	/* 豊富なマシーン ------------------------------------------------------------------*/
	.col3 {
		width: 100%;
	}
	/*==================================================================================
	ACCESS
	==================================================================================*/
	section#access .img_frm {
		height: 140px;
	}
	/*==================================================================================
	TOPICS
	==================================================================================*/
	section#top_topics ul li {
		justify-content: flex-start;
	}
	.category {
		margin-bottom: 5px;
	}
	section#top_topics ul li span {
		margin: 0 10px 5px 0;
	}
	section#top_topics ul li .txt {
		width: 100%;
	}
	/* TOPICS一覧 */
	section#topics .article_list ul li {
		justify-content: flex-start;
		padding: 10px;
	}
	section#topics .article_list ul li span {
		margin: 0 10px 5px 0;
	}
	section#topics .article_list ul li .txt {
		width: 100%;
	}
	article {
		padding: 20px 15px!important;
	}
	/*==================================================================================
	フッター
	==================================================================================*/
	/* ページトップへ戻るボタン */
	.btn_pagetop {
		display: none!important;
	}
}

