/* ------------------------------
default
------------------------------ */
* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

html,body {
	height: 100%;
	width: 100%;
}
body {
	background-image: url(../images/bg.png);
	font-family: 'Noto Serif JP', serif;
	line-height: 1.6;
	letter-spacing: 1px;
}
a {
	opacity: 1.0;
	text-decoration: none;

	-webkit-transition: all linear 0.2s;
	transition: all linear 0.2s;
}
a:hover{
	opacity: 0.7;
}

/* ------------------------------
common
------------------------------ */
.area {
	max-width: 1220px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 10px;
	padding-right: 10px;
}
.sponly {
	display: none;
}
h2.small {
	background-color: #000;
	color: #fff;
	display: block;
	font-size: 28px;
	line-height: 56px;
	height: 56px;
	width: 280px;
	text-align: center;
	margin: 0 auto;
	position: relative;
}
h2.big {
	background-color: #000;
	color: #fff;
	display: block;
	font-size: 28px;
	line-height: 112px;
	height: 112px;
	width: 392px;
	text-align: center;
	margin: 0 auto;
	position: relative;
}
h2.big::before,
h2.big::after {
	background-color: #000;
	content: '';
	display: block;
	border-radius: 50%;
	height: 5px;
	width: 5px;
	position: absolute;
	top: 54px;
}
h2.big::before {
	left: -58px;
}
h2.big::after {
	left: 445px;
}
.dot {
	background-color: #000;
	display: block;
	border-radius: 50%;
	height: 5px;
	width: 5px;
	position: absolute;
}

/* ------------------------------
container
------------------------------ */
#container {
	overflow: hidden;
}

/* ------------------------------
header
------------------------------ */
header {
	background-color: #000;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 9999;
}
header .header_inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 112px;
	padding: 28px 63px;
	width: 100vw;
	margin: 0 auto;
}
header .header_inner .logo img  {
	height: auto;
	width: 137px;
}

/* ------------------------------
nav
------------------------------ */
nav {
	max-width: 85%;
	width: 1000px;
}
nav ul {
	display: flex;
	justify-content: space-between;
}
nav ul li{
	display: inline-block;
}
nav ul li a{
	color: #fff;
	display: inline-block;
	font-size: 19px;
	padding: 0.5em 1em;
	white-space: nowrap;
}
nav ul li:nth-of-type(5) a{
	color: #000;
	background-color: #fff;
	margin-right: 5px;
}
nav ul li:last-of-type a{
	color: #000;
	background-color: #fff;
}
nav ul li:last-of-type a:hover{
	color: #000;
	background-color: #fff;
}
/* ------------------------------
main
------------------------------ */
main {
	background-image: url(../images/bg_go.png);
	background-position: center top;
	min-width: 1400px;
	position: relative;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
	width: 100%;
	padding-bottom: 168px;
	display: block;
}

#main_visual {
	display: flex;
	justify-content: space-between;
}
#main_visual .main_visual_elm {
	height: 896px;
}
#main_visual .main_visual_elm:nth-of-type(1),
#main_visual .main_visual_elm:nth-of-type(3) {
	background-image: url(../images/bg_go_black.png);
	flex-grow: 1;
}
#main_visual .main_visual_elm:nth-of-type(1) {
	background-position: top right;
}
#main_visual .main_visual_elm:nth-of-type(2) {
	position: relative;
	text-align: center;
	width: 952px;
}
#main_visual .main_visual_elm:nth-of-type(3) {
	background-position: top left;
}
#main_visual .main_visual_elm img.main_visual_go{
	margin-top: 56px;
	transform: translateX(-30px);
	width: 616px;
}
#main_visual .main_visual_elm img.main_visual_logo{
	height: auto;
	width: 215px;
	position: absolute;
	bottom: 60px;
	right: 60px;
}
#main_visual .main_visual_dotframe {
	position: absolute;
	top: 225px;
	left: 50%;
	transform: translateX(-50%);
	height: 560px;
	width: 616px;
}
#main_visual .main_visual_dot01{left:-3px;top:-3px;}
#main_visual .main_visual_dot02{right:-3px;top: -3px;}
#main_visual .main_visual_dot03{left:-3px;top: calc(50% - 3px);}
#main_visual .main_visual_dot04{right:-3px;top: calc(50% - 3px);}
#main_visual .main_visual_dot05{left:-3px;bottom: -3px;}
#main_visual .main_visual_dot06{display:none;}

#area01 {
	height: 1064px;
	position: relative;
}
#area01 h2 {
	top: 280px;
}
#area01 img.area01_bg_black{
	position: absolute;
	left: 50%;
	transform: translate(-700px,57px);
	width: 1288px;
}
#area01 .area01_bg_right_box {
	background-image: url(../images/bg.png);
	height: 671px;
	width: 671px;
	position: absolute;
	left: 50%;
	transform: translateX(85px);
	border-top: 1px solid rgba(0,0,0,0.2);
}
#area01 .area01_bg_right_box01 {
	background-image: url(../images/bg_go.png);
	background-position: left top;
	height: 392px;
	width: 392px;
}
#area01 .area01_bg_right_box01 {
	background-image: url(../images/bg_go.png);
	background-position: -1px top;
	height: 392px;
	width: 392px;
	position: absolute;
	top: 167px;
	left: 0;
}
#area01 .area01_bg_right_box02 {
	background-image: url(../images/bg_go.png);
	background-position: -2px top;
	height: 112px;
	width: 560px;
	position: absolute;
	bottom: -1px;
	left: 1px;
}

#area01 .area01_copy {
	background-image: url(../images/bg.png);
	height: 223px;
	width: 838px;
	position: relative;
	padding: 30px;
	margin: 0 auto;
	top: 393px;
	left: 1px;
}
#area01 .area01_copy_en {
	display: none;
	background-image: url(../images/bg.png);
	height: 55px;
	width: 336px;
	position: relative;
	padding: 14px 0 0 3px;
	margin: 0 auto;
	top: 450px;
	left: -251px;
}
#area01 .area01_copy_en img{
	width: 300px;
}
#area02 {
	position: relative;
	margin-top: -168px;
}
#area02 .area02_way {
	background-image: url(../images/bg.png);
	font-size: 34px;
	height: 55px;
	width: 726px;
	position: relative;
	padding: 0;
	margin: 0 auto;
	top: 1px;
	left: 1px;
	text-align: center;
}
#area02 .area02_way_dot {left: -3px;top: -3px;}
#area02 .area02_message {
	background-image: url(../images/bg.png);
	font-size: 27px;
	height: 558px;
	width: 838px;
	position: relative;
	padding: 31px 12px;
	margin: 0 auto;
	top: 114px;
	left: 0px;
}
#area02 .area02_bg_black {
	position: relative;
	top: 3px;
	left: 50%;
	transform: translateX(-755px);
	width: 1736px;
}
#area02 .area02_story {
	background-image: url(../images/bg.png);
	display: block;
	height: 222px;
	width: 390px;
	margin: 0 auto;
	position: relative;
	top: -170px;
	line-height: 222px;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}
#area02 .area02_story img{
	width: 213px;
}
#area02 .area02_story_dot01 {top:-3px;left:-3px;}
#area02 .area02_story_dot02 {top:-3px;right:-3px;}
#area02 .area02_story_dot03 {bottom:-4px;left:-4px;}
#area02 .area02_story_dot04 {bottom:-4px;right:-4px;}

#target .target_list {
	display: block;
	margin: 56px auto;
	width: 839px;
	position: relative;
	left: 1px;
}
#target .target_list li {
	background-image: url(../images/bg.png);
	display: block;
	font-size: 34px;
	height: 110px;
	line-height: 110px;
	margin: 1px 0 2px 0;
	padding: 0 30px;
	position: relative;
}
#target .target_list li:before {
	background-color: #000;
	content: '';
	display: block;
	border-radius: 50%;
	height: 5px;
	width: 5px;
	position: absolute;
	left: -4px;
	top: 53px;
}
#target .target_list li:nth-of-type(1) {width:502px;}
#target .target_list li:nth-of-type(2) {width:558px;}
#target .target_list li:nth-of-type(3) {width:502px;margin-top:2px;}
#target .target_list li:nth-of-type(4) {width:726px;margin-top:2px;}

#movie {
	margin-top: 169px;
}
#movie .movie_frame {
	background: #000;
    background-position: 0 0;
    margin: 56px auto;
    width: 616px;
    position: relative;
    height: 391px;
}
#movie .movie_frame a {
	background-image:url('https://img.youtube.com/vi/D7L7s-MsiV8/sd2.jpg');
	background-size: contain;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	height: 100%;
	width: 100%;
	position: relative;
}
#movie .movie_frame a img {
	width: 20%;
	height: auto;
	opacity: 0.8;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}

#program {
	margin-top: 282px;
	position: relative;
}
#program h2{
	top: 56px;
}
#program .program_left_box {
	border-left: 1px solid rgba(0,0,0,0.2);
	position: absolute;
	left: 50%;
	top: 0;
	transform: translateX(-812px);
}
#program .program_left_box img {
	display: block;
	height: auto;
	width: 448px;
}
#program .program_left_box_cover {
	background-image: url(../images/bg_go_gray.png);
	background-position: -1px -1px;
	height: 280px;
	width: 112px;
	position: absolute;
	top: 0;
	left: 0;
}
#program .program_right_box {
	position: absolute;
	left: 50%;
	transform: translateX(308px);
	top: 839px;
	z-index: 99;
}
#program .program_right_box img {
	display: block;
	height: auto;
	width: 336px;
}
#program .program_right_box_cover {
	background-image: url(../images/bg_go_gray.png);
	background-position: 0 0;
	height: 336px;
	width: 55px;
	position: absolute;
	top: 0;
	left: 0;
}
#program .program_content {
	margin: 0 auto;
	margin-top: 168px;
	transform: translateX(-56px);
	width: 728px;
}
#program .program_title {
	background-image: url(../images/bg.png);
	height: 111px;
	width: 616px;
	padding: 13px;
}
#program .program_title img{
	height: auto;
	width: 566px;
}
#program .program_message {
	background-image: url(../images/bg.png);
	height: 504px;
	width: 278px;
	position: absolute;
	left: 50%;
	top: 337px;
	transform: translateX(309px);
	padding: 30px 15px;
}
#program .program_message img{
	height: auto;
	width: 205px;
}
#program .program_message_cover01 {
	background-image: url(../images/bg_go.png);
	background-position: -2px top;
	height: 112px;
	width: 56px;
	position: absolute;
	bottom: 1px;
	left: 1px;
}
#program .program_message_cover02 {
	background-image: url(../images/bg_go.png);
	background-position: 0px top;
	height: 280px;
	width: 112px;
	position: absolute;
	bottom: 1px;
	right: 0;
}
#program .program_black01 {
	background-color: #000;
	height: 57px;
	width: 56px;
}
#program .program_bg_black {
	position: absolute;
	top: 167px;
	left: 50%;
	transform: translateX(-756px);
	width: 1624px;
}
#program .program_list {
	margin-left: 57px;
	position: relative;
}
#program .program_list li {
	background-image: url(../images/bg.png);
	height: 110px;
	padding: 12px 15px;
	margin: 1px 0 58px 0;
	position: relative;
}
#program .program_list li span {
	background-color: #000;
	color: #fff;
	display: inline-block;
	font-family: 'EB Garamond', serif;
	font-size: 50px;
	height: 56px;
	width: 56px;
	line-height: 56px;
	text-align: center;
	position: absolute;
	left: -57px;
	top: -1px;
}
#program .program_list_title {
	font-size: 32px;
	letter-spacing: -0.5px;
	white-space: nowrap;
}
#program .program_list_desc {
	font-size: 21px;
}
#program .program_list li:nth-of-type(1) {width: 559px;}
#program .program_list li:nth-of-type(2) {width: 615px;}
#program .program_list li:nth-of-type(3) {width: 559px;}
#program .program_list li:nth-of-type(4) {width: 671px;}
#program .program_list li:nth-of-type(5) {width: 503px;}

#price {
	margin-top: 113px;
	margin-bottom: 280px;
}
#price .price_box {
	background-image: url(../images/bg.png);
	background-position: 0 0;
	margin: 0 auto;
	width: 614px;
	position: relative;
	padding: 56px;
	height: 839px;
}
#price .price_box h3{
	font-size: 30px;
}
#price .price_box .plan_desc{
}
#price .price_list {
	width: 100%;
	margin-bottom: 25px;
}
#price .price_list tr td {
	vertical-align: middle;
	text-align: center;
	padding: 10px 0;
}
#price .price_list tr td:nth-of-type(1){
	font-size: 40px;
}
#price .price_list tr td:nth-of-type(2){
	font-size: 15px;
	text-align: center;
}
#price .price_list tr td:nth-of-type(3){
	font-size: 40px;
}
#price .price_list tr td:nth-of-type(4){
	font-size: 15px;
	vertical-align: bottom;
	width: 1em;
}
#price .price_list tr td:nth-of-type(4) span{
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	white-space: nowrap;
}
#price .price_dot01{left:-3px;top: -3px;}
#price .price_dot02{right:-3px;top: -3px;}
#price .price_dot03{left:-3px;bottom:-3px;}
#price .price_dot04{right:-3px;bottom:-3px;}
#price .price_remarks {
	font-size: 14px;
}
#price .price_campaign {
	background: #000;
	color: #fff;
	text-align: center;
	height: 57px;
	width: 618px;
	line-height: 56px;
	margin: 0 auto;
}
#teacher {
	margin: 0 auto;
	position: relative;
}
#teacher .teacher_message {
	background-image: url(../images/bg.png);
	margin: 0 auto;
	height: 167px;
	width: 1062px;
	padding: 20px;
	margin-top: 56px;
	margin-bottom: 56px;
	position: relative;
	left: 1px;
}
#teacher .teacher_message_cover {
	background-image: url(../images/bg_go.png);
	background-position: -2px top;
	height: 56px;
	width: 616px;
	position: absolute;
	left: 1px;
	bottom: 0;
}
#teacher .teacher01,
#teacher .teacher02 {
	position: relative;
	margin: 0 auto;
	width: 1400px;
}
#teacher .teacher01_name,
#teacher .teacher02_name {
	padding: 10px 55px;
}
#teacher .teacher_name {
	font-size: 42px;
}
#teacher .kana {
	font-size: 26px;
}
#teacher .teacher_profile {
	font-size: 21px;
	margin-top: 0.5em;
}
#teacher .teacher01_history_title,
#teacher .teacher02_history_title {
	font-size: 20px;
	padding: 12px;
	text-align: center;
}
#teacher .teacher01_history_list,
#teacher .teacher02_history_list {
	font-size: 16px;
	padding: 10px 0 10px 55px;
	display: flex;
	letter-spacing: -0.5px;
}
#teacher .teacher01_history_list div,
#teacher .teacher02_history_list div {
	padding-right: 25px;
}

#teacher .teacher01 {
	height: 897px;
}
#teacher .teacher01_bg_black {
	background-color: #000;
	position: absolute;
	left: 0;
	top: 0;
	height: 336px;
	width: 112px;
}
#teacher .teacher01_photo {
	position: absolute;
	left: 112px;
	top: 0;
}
#teacher .teacher01_photo img{
	border-right: 1px solid rgba(0,0,0,0.2);
	display: block;
	height: auto;
	width: 449px;
}
#teacher .teacher01_name {
	background-image: url(../images/bg.png);
	position: absolute;
	left: 560px;
	top: 1px;
	height: 335px;
	width: 672px;
}
#teacher .teacher01_bg_black2 {
	background-color: #000;
	position: absolute;
	right: 0;
	top: 0;
	height: 56px;
	width: 56px;
}
#teacher .teacher01_bg_white {
	background-image: url(../images/bg.png);
	height: 58px;
	width: 56px;
	position: absolute;
	left: 560px;
	top: 336px;
}
#teacher .teacher01_history_title {
	background-image: url(../images/bg.png);
	height: 56px;
	width: 224px;
	position: absolute;
	left: 560px;
	top: 393px;
}
#teacher .teacher01_history_list {
	background-image: url(../images/bg.png);
	height: 335px;
	width: 727px;
	position: absolute;
	left: 560px;
	top: 449px;
	padding-top: 30px;
	line-height: 1.7;
	border-left: solid 1px rgba(0,0,0,0.2);
}

#teacher .teacher02 {
	height: 784px;
}
#teacher .teacher02_bg_black {
	background-color: #000;
	position: absolute;
	right: 0;
	top: 0;
	height: 168px;
	width: 112px;
}
#teacher .teacher02_photo {
	position: absolute;
	right: 112px;
	top: -1px;
}
#teacher .teacher02_photo img{
	display: block;
	height: auto;
	width: 449px;
}
#teacher .teacher02_name {
	background-image: url(../images/bg.png);
	position: absolute;
	left: 226px;
	top: 0px;
	height: 279px;
	width: 613px;
}
#teacher .teacher02_bg_black2 {
	background-color: #000;
	position: absolute;
	right: 0;
	top: 0;
	height: 56px;
	width: 56px;
}
#teacher .teacher02_bg_white {
	background-image: url(../images/bg.png);
	height: 59px;
	width: 55px;
	position: absolute;
	left: 337px;
	top: 278px;
}
#teacher .teacher02_history_title {
	background-image: url(../images/bg.png);
	height: 56px;
	width: 222px;
	position: absolute;
	left: 226px;
	top: 336px;
}
#teacher .teacher02_history_list {
	background-image: url(../images/bg.png);
	height: 279px;
	width: 616px;
	position: absolute;
	left: 224px;
	top: 392px;
	padding-top: 20px;
	line-height: 1.7;
	border-left: solid 1px rgba(0,0,0,0.2);
}
#teacher .teacher03,
#teacher .teacher04,
#teacher .teacher05,
#teacher .teacher06,
#teacher .teacher07,
#teacher .teacher08,
#teacher .teacher09,
#teacher .teacher10,
#teacher .teacher11,
#teacher .teacher12 {
	background-image: url(../images/bg.png);
	height: 111px;
	width: 726px;
	margin: 0 auto;
	padding: 20px;
	margin-bottom: 57px;
	position: relative;
	transform: translateX(1px);
}
#teacher .teacher03:after,
#teacher .teacher04:after,
#teacher .teacher05:after,
#teacher .teacher06:after,
#teacher .teacher07:after,
#teacher .teacher08:after,
#teacher .teacher09:after,
#teacher .teacher10:after,
#teacher .teacher11:after,
#teacher .teacher12:after {
	background-color: #000;
	content: "";
	display: block;
	height: 56px;
	width: 56px;
	position: absolute;
	top: 0;
	right: 0;
}

#voice {
	margin-top: 225px;
}
#voice .voice_box {
	background-image: url(../images/bg.png);
	width: 726px;
	position: relative;
	transform: translateX(1px);
	margin: 0 auto;
	margin-top: 57px;
	padding: 35px 85px;
}
#voice .voice_box .voice_who{
	font-size: 25px;
}
#voice .voice_box .voice_text{
	font-size: 22px;
	margin-top: 1em;
	height: 141px;
	overflow: hidden;
	transition: all 0.3s ease;
}
#voice .voice_box:nth-of-type(1) .voice_text{margin-bottom: 61px;}
#voice .voice_box:nth-of-type(2) .voice_text{margin-bottom: 62px;}
#voice .voice_box:nth-of-type(3) .voice_text{margin-bottom: 62px;}
#voice .voice_box:nth-of-type(4) .voice_text{margin-bottom: 62px;}
#voice .voice_box:after{
	background-color: #000;
	content: "";
	display: block;
	height: 56px;
	width: 56px;
	position: absolute;
	right: -1px;
	bottom: -1px;
}
#voice .voice_box .read_more,
#voice .voice_box .close{
	font-size: 18px;
	color: #000;
	display: block;
	line-height: 56px;
	text-decoration: none;
	text-align: center;
	width: 100%;
	position: absolute;
	left: 0;
	bottom: 0;
}
#voice .voice_box .close {
	display: none;
}

#voice .voice_box.active .voice_text{
	height: 813px;
}
#voice .voice_box.active .read_more {
	display: none;
}
#voice .voice_box.active .close {
	display: block;
}
#voice .voice_remarks {
	background-image: url(../images/bg.png);
	width: 726px;
	line-height: 54px;
	height: 54px;
	text-align: center;
	position: relative;
	transform: translateX(1px);
	margin: 0 auto;
	margin-top: 57px;
}

#contact {
	margin-top: 282px;
}
#contact .contact_button {
	/*background-image: url(../images/bg.png);*/
	background-color: #000;
	color: #fff;
	display: block;
	font-size: 28px;
	height: 111px;
	width: 840px;
	line-height: 111px;
	text-align: center;
	position: relative;
	margin: 0 auto;
}
#contact .contact_button svg {
	height: 16px;
	width: 16px;
}
/*
#contact .contact_dot01{left:-3px;top: -3px;}
#contact .contact_dot02{right:-3px;top: -3px;}
#contact .contact_dot03{left:-3px;bottom:-3px;}
#contact .contact_dot04{right:-3px;bottom:-3px;}
*/
#contact .contact_remarks {
	background-image: url(../images/bg.png);
	width: 838px;
	line-height: 54px;
	height: 54px;
	text-align: center;
	position: relative;
	transform: translateX(1px);
	margin: 0 auto;
	margin-top: 57px;
}
#contact .banner_area{
	width: 840px;
	height: 336px;
	margin: 113px auto 0;
}
#contact .banner_area a,
#contact .banner_area a img{
	display: block;
	width: 100%;
}
/* ------------------------------
footer
------------------------------ */
footer {
	background-image: url(../images/bg.png);
	border-top: 1px solid rgba(0,0,0,0.2);
	font-size: 19px;
	padding: 2em 0;
	text-align: center;
}
footer .youtube {
	padding: 30px 0;
}
footer .youtube a {
	color: #000;
	font-size: 12px;
	display: inline-block;
	padding: 15px 0;
}
footer .youtube a img{
	height: 20px;
	width: auto;
}

/* ------------------------------
誕生の背景
------------------------------ */
body.modal {
	overflow: hidden;
}
#birth_story {
	position: fixed;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	overflow-y: scroll;
	opacity: 0;
	z-index: -1;
	transition: 0.3s all ease;
}
#birth_story .story_frame {
	background-image: url(../images/bg_go_black.png);
	background-position: center top;
	height: 100vh;
	position: relative;
}
#birth_story .story_text {
	background-image: url(../images/bg.png);
	font-size: 24px;
	padding: 56px;
	height: 840px;
	max-height: 90vh;
	width: 840px;
	overflow-y: scroll;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
#birth_story .story_text p{
	padding-bottom: 1em;
}
#birth_story.active {
	opacity: 1;
	z-index: 99999;
}
#birth_story #close_modal {
	pointer-events: auto;
	display: inline-block;
	position: absolute;
	top: 15px;
	right: 20px;
	height: 25px;
	width: 25px;
}
#birth_story #close_modal img{
	display: block;
}

/* ------------------------------
animation
------------------------------ */
.fadein{
	opacity : 0.1;
	transform : translate(0, 50px)!important;
	transition : all 500ms;
}
.fadein.scrollin {
	opacity : 1;
	transform : translate(0, 0)!important;
}
#voice .voice_box.fadein.scrollin{
	transform : translate(1px, 0)!important;
}

