
body {
	font-size: 18px;
	font-family: "Noto Sans JP", serif;
    font-weight: 400;
	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 {
	text-decoration: none;
	color: #000;
	transition: all .3s;
}
a:hover {
	filter: brightness(1.1);
}
p {
	line-height: 1.8;
}
:root {
    --blue: #4a86c4;
    --pink: #c55d8b;
    --grad: linear-gradient(-30deg, #e88dad 0%, #e88dad 20%, #90c4e9 90%, #90c4e9 110%);
    --grad2: linear-gradient(to right, rgba(112,182,214,0.10) -10%, rgba(197,93,139,0.10) 100%);
    --gray: #999999;
    --black: #4d4d4d;
}
/*==================================================================================
ヘッダー
==================================================================================*/
header {
	width: 100%;
    box-sizing: border-box;
    padding: 20px 0!important;
    background: rgba(255,255,255,0.7);
    position: fixed;
    top: 0;
    left: 0;
	z-index: 9999;
}
header.on {
    box-shadow: 0 6px 6px rgba(0,0,0,0.1);
}
header .logo {
    display: block;
    width: 200px;
}
/* メニュー -----------------------*/
nav.gnav ul {
    display: flex;
	flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
}
nav.gnav ul li {
    margin-left: 25px;
}
nav.gnav ul li:firts-child {
   margin-left: 0;
}
nav.gnav ul li#side_fix {
    position: fixed;
    top: 20%;
    right: 0;
}
nav.gnav ul li a {
    display: block;
    font-size: 16px;
    font-weight: 500;
}
nav.gnav ul li a.btn_contact {
    padding: 8px 25px 12px;
    border: 3px var(--pink) solid;
    border-radius: 30px;
	background: #fff;
    color: var(--pink);
}
nav.gnav ul li a:hover {
    color: var(--pink);
}
nav.gnav ul li a.btn_contact:hover {
    background: var(--pink);
    color: #fff;
}
nav.gnav ul li#side_fix .btn {
	display: flex!important;
    width: 70px;
    min-width: 0;
    height: 300px;
    border-radius: 20px 0 0 20px;
    font-size: 24px!important;
    writing-mode: vertical-rl;
	transform: translateX(100%);
	transition: all .5s;
	filter: drop-shadow(0 3px 6px rgba(0,0,0,0.2));
}
nav.gnav ul li#side_fix .btn::before {
    display: none;
}
nav.gnav ul li#side_fix .btn::after {
	width: 100%;
	height: 30px;
	transform: skewY(-30deg);
	animation: btn_side 4s infinite;
}
@keyframes btn_side {
	0% {top: 0; opacity: 1;}
	12% {top: 110%; opacity: 0;}
	100% {top: 110%; opacity: 0;}
}
nav.gnav ul li#side_fix .btn.on {
	transform: translateX(0);
}
nav.gnav ul li#side_fix .btn:hover {
	color: #fff!important;
	filter: drop-shadow(0 0 0 rgba(0,0,0,0.2)) saturate(160%) hue-rotate(5deg);
}
nav.gnav ul.contacts {
    display: none;
}

/*==================================================================================
共通
==================================================================================*/
/* レイアウト */
main {
    margin-top: 103px!important;
}
section {
    padding: 160px 0!important;
    position: relative;
}
.container {
	width: calc(100% - 120px);
	padding: 0 60px;
	margin: auto;
}
.max2000 {
	max-width: 2000px;
	margin: auto;
}
.max1600 {
	max-width: 1600px;
	margin: auto;
}
.max1400 {
	max-width: 1400px;
	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.align_center {
	align-items: center;
}
.row.just_center {
	justify-content: center;
}
.row.just_start {
	justify-content: flex-start;
}
.row.just_end {
	justify-content: flex-end;
}
.col3 {
    width: 30.5%;
}
.col2 {
    width: 47%;
}

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

.wrap {
    display: inline-block;
}
.round {
    border-radius: 40px;
    overflow: hidden;
}
.round_s {
    border-radius: 20px;
    overflow: hidden;
}

/* フォント */
h1 {
    font-size: 18px;
    font-weight: 500;
}
h2 {
    font-size: 30px;
    font-weight: 700;
    color: var(--blue);
}
h2 span {
    display: inline-block;
    padding-bottom: 20px;
    background: url("../img/h2.png") left bottom / 10px repeat-x;
}
.font_16 {
    font-size: 16px;
}
.font_20 {
    font-size: 20px;
}
.font_24 {
	font-size: 24px;
}
.font_30 {
	font-size: 30px;
}
.font_40 {
	font-size: 40px;
}
.font_46 {
	font-size: 46px;
}
.txt_center {
	text-align: center;
}
.bold {
	font-weight: 700;
}
.medium {
    font-weight: 500;
}
.eng {
    font-family: "aptly", sans-serif;
    font-weight: 700;
}
.line1 {
    line-height: 1;
}
.line1_4 {
    line-height: 1.4;
}
.line1_6 {
    line-height: 1.6;
}
.indent {
    padding-left: 1em;
    text-indent: -1em;
}
.blue {
    color: var(--blue);
}
.pink {
    color: var(--pink);
}
.gray {
    color: var(--gray);
}
.black {
    color: var(--black);
}
sup {
    color: var(--gray);
    vertical-align: super!important;
    font-size: 0.7em;
}

/* ボタン -----------------*/
.btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-width: 540px;
    height: 100px;
    border-radius: 50px;
    background: var(--grad);
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 0.05em;
	overflow: hidden;
	position: relative;
	filter: drop-shadow(0 3px 6px rgba(0,0,0,0.2));
}
.btn::before {
	content: "";
	display: block;
	width: 45px;
	height: 15px;
	background: url("../img/arrow.png") center center / contain no-repeat;
	position: absolute;
	top: 50%;
	right: 60px;
	transform: translateY(-50%);
	transition: all .3s;
	transform-origin: left center;
	opacity: 0;
}
.btn::after {
	content: "";
	display: block;
	width: 40px;
	height: 100%;
	background: rgba(255,255,255,0.3);
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	transform: skewX(-30deg);
	animation: btn 4s infinite;
}
@keyframes btn {
	0% {left: 0; opacity: 1;}
	12% {left: 110%; opacity: 0;}
	100% {left: 110%; opacity: 0;}
}
.btn:hover {
	transition: all .3s!important;
	transform: translateY(5px)!important;
	filter: drop-shadow(0 0 0 rgba(0,0,0,0.2)) saturate(160%) hue-rotate(5deg);
}
.btn:hover::before {
	right: 40px;
	opacity: 1;
}
.btn_2nd {
	display: inline-block;
	padding-right: 40px;
	color: var(--blue);
	font-size: 20px;
	font-weight: 500;
	position: relative;
}
.btn_2nd::before {
	content: "";
	display: block;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--blue);
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	transition: all .3s;
}
.btn_2nd::after {
	content: "";
	display: block;
	width: 4px;
	height: 4px;
	border-top: 2px #fff solid;
	border-right: 2px #fff solid;
	position: absolute;
	top: 50%;
	right: 13px;
	transform: translateY(-50%) rotate(45deg);
	transition: all .3s;
}
.btn_2nd:hover::before {
	right: -5px;
}
.btn_2nd:hover::after {
	right: 8px;
}

/* アニメーション -----------*/
.animated.fadeinup {
	animation: fadeinup .6s;
}
@keyframes fadeinup {
	0% {opacity: 0; transform: translateY(30px);}
	100% {opacity: 1; transform: translateY(0);}
}
.animated.fadeinup.second {
	animation: fadeinup_2nd 1.2s;
}
@keyframes fadeinup_2nd {
	0% {opacity: 0; transform: translateY(30px);}
	50% {opacity: 0; transform: translateY(30px);}
	100% {opacity: 1; transform: translateY(0);}
}
.animated.fadeinright {
	animation: fadeinright .6s;
}
@keyframes fadeinright {
	0% {opacity: 0; transform: translateX(30px);}
	100% {opacity: 1; transform: translateX(0);}
}
.animated.fadeinright.second {
	animation: fadeinright_2nd 1.2s;
}
@keyframes fadeinright_2nd {
	0% {opacity: 0; transform: translateX(30px);}
	50% {opacity: 0; transform: translateX(30px);}
	100% {opacity: 1; transform: translateX(0);}
}
.yay {
    opacity: 0;
    transform: translateY(2px);
}
.yay.fadeinup {
    transition: all .6s;
    transform: translateY(20px);
}
.yay.on {
    transition: all .6s;
    transform: translateY(0);
    opacity: 1;
}

/*==================================================================================
メイン
==================================================================================*/
section#main {
    padding: 0!important;
}
section#main .round {
    width: 100%;
	height: calc(100vh - 240px);
	background: url("../img/main.jpg") center center / cover no-repeat;
    position: relative;
}
section#main .round .main {
	width: auto;
	height: 80%;
    position: absolute;
    top: 50%;
    left: 20%;
    transform: translateY(-50%);
	pointer-events: none;
}
section#main .round .main img {
    width: auto;
    max-width: 540px;
	max-height: 100%;
}
section#main .round .main img.pc {
	display: block!important;
}
img.cover {
    height: 100%;
    object-fit: cover;
}
section#main ul.contacts {
    position: absolute;
    right: 40px;
    bottom: 40px;
}
section#main ul.contacts li {
    margin-left: 10px;
}
section#main ul.contacts li a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #fff;
}
section#main ul.contacts li a img {
    width: 50%;
}
section#main ul.contacts li:nth-child(1) a img {
    width: 40%;
}
/* サービス ------------------------------------------------------------------------*/
section#service ul .round_s {
    padding: 30px 30px 0;
    background: var(--grad2);
    overflow: visible;
    position: relative;
}
section#service ul li .round_s .point span {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    margin-left: 10px;
    background: var(--blue);
    color: #fff;
}
section#service ul li .round_s .ttl {
    font-size: min(2.8vw,40px);
}
section#service ul li .round_s img {
	width: 90%;
    margin: 0 auto;
    position: relative;
    top: 14px;
}
/* 入会資格 ------------------------------------------------------------------------*/
section#shikaku {
    background: url("../img/bg_dot.png") left top / 20% repeat, url("../img/bg_yarn.png") center center / contain no-repeat #f5f9fc;
}
section#shikaku .round_s {
    box-sizing: border-box;
    padding: 180px 40px 60px;
    background: #fff;
    box-shadow: 10px 10px 20px rgba(0,0,0,0.1);
    overflow: visible;
    position: relative;
}
section#shikaku .round_s .icon {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-content: center;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    color: #fff;
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
}
section#shikaku .round_s .icon.man {
    background: var(--blue);
}
section#shikaku .round_s .icon.woman {
    background: var(--pink);
}
section#shikaku .round_s .icon img {
    width: 100px;
    margin: -50px auto 20px;
}
section#shikaku .round_s .icon span {
    display: block;
    width: 100%;
	letter-spacing: 0.1em;
}
section#shikaku .round_s ul li {
    padding: 20px 0 20px 40px;
    border-bottom: 1px var(--gray) dashed;
    position: relative;
}
section#shikaku .round_s ul li::before {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    border: 1px var(--gray) solid;
    position: absolute;
    top: 27px;
    left: 0;
}
section#shikaku .round_s ul li::after {
    content: "";
    display: block;
    width: 6px;
    height: 12px;
    border-right: 5px var(--pink) solid;
    border-bottom: 5px var(--pink) solid;
    position: absolute;
    top: 27px;
    left: 6px;
    transform: rotate(45deg);
}
/* バナー、お知らせ -----------------------------------------------------------------*/
section#info .bana {
	display: flex;
	align-items: center;
	width: calc(50% - 15px);
	box-sizing: border-box;
	padding: 70px 15% 70px 5%;
	border-radius: 30px;
	background: linear-gradient(to right, #70b6d6 0%, #4a86c4 100%);
	color: #fff;
    font-size: min(2.4vw,40px);
	font-weight: 700;
	letter-spacing: 0.02em;
	filter: drop-shadow(0 3px 6px rgba(0,0,0,0.2));
	position: relative;
}
section#info .bana::before {
	content: "STEP";
    font-size: min(6vw,80px);
	color: #fff;
	opacity: 0.1;
	position: absolute;
	top: 15px;
	left: 20px;
}
section#info .bana:nth-child(2)::before {
	content: "PRICE";
}
section#info .bana::after {
	content: "";
	display: block;
	width: 28%;
	height: 88%;
	background: url("../img/bana01.png") right bottom / contain no-repeat;
	position: absolute;
	right: 6%;
	bottom: -6.4%;
}
section#info .bana:nth-child(2)::after {
	background-image: url("../img/bana02.png");
}
section#info .bana:hover {
	transition: all .3s!important;
	transform: translateY(5px)!important;
	filter: drop-shadow(0 0 0 rgba(0,0,0,0.2)) saturate(120%);
}
section#info .bana span {
	display: block;
	position: relative;
}
section#info .bana span::after {
	content: "";
	display: block;
	width: 0;
	border-bottom: 2px #fff solid;
	position: absolute;
	left: 0;
	bottom: -15px;
	opacity: 0;
	transition: all .3s;
}
section#info .bana:hover span::after {
	width: 100%;
	opacity: 1;
}
.article {
	display: block;
	padding: 40px 0;
	border-bottom: 1px var(--gray) dashed;
}
.article:first-child {
	border-top: 1px var(--gray) dashed;
}
.article p:last-child {
	transition: all .3s;
}
.article:hover p:last-child {
	color: var(--pink);
}

/*==================================================================================
下層ページ
==================================================================================*/
section#main_2nd {
    padding: 80px 0!important;
    background: #f5f9fc;
    position: relative;
}
section#main_2nd::after {
    content: "";
    display: block;
    width: 180px;
    height: 100%;
    background: url("../img/bana01.png") right bottom / contain no-repeat;
    position: absolute;
    right: 20%;
    bottom: -11px;
}
section#main_2nd.plan::after {
    background-image: url("../img/bana02.png");
}
section#main_2nd h2 {
    padding: 40px 0 0 60px!important;
    color: var(--black);
    font-size: 40px;
    letter-spacing: 0.05em;
    position: relative;
}
section#main_2nd h2::before {
    content: "STEP";
    font-size: 80px;
    color: var(--blue);
    opacity: 0.08;
    position: absolute;
    top: -20px;
    left: 0;
}
section#main_2nd.plan h2::before {
    content: "PLAN";
}
section#main_2nd h2 span {
    padding-bottom: 0;
    background: none;
    position: relative;
}

/*==================================================================================
活動の流れ
==================================================================================*/
section#vision {
    background: url("../img/vision_bg01.gif") left 15% top 40% / 14% no-repeat, url("../img/vision_bg02.gif") right 13% top 25% / 20% no-repeat;
}
section#vision::after {
    content: "";
    display: block;
    width: 200px;
    height: 200px;
    background: url("../img/step01.png") left bottom / contain no-repeat;
    position: absolute;
    left: 15%;
    bottom: -12px;
    z-index: 2;
}
section#vision .ttl span {
    display: inline-block;
    padding-bottom: 10px;
    background: url("../img/h2_2.png") left bottom / 20px repeat-x;
    font-size: 80px;
}
/* ステップ -----------------------------------------------------------------------*/
section#step {
    padding-top: 0!important;
}
section#step .bg {
    padding: 160px 60px;
    background: var(--grad2);
    position: relative;
}
section#step .bg::after {
    content: "";
    display: block;
    width: 26%;
    max-width: 360px;
    height: 300px;
    background: url("../img/step02.png") right bottom / contain no-repeat;
    position: absolute;
    right: 6%;
    bottom: 0;
}
section#step .boad {
    width: 70%;
    box-sizing: border-box;
    padding: 40px;
    background: #fff;
    overflow: visible;
    position: relative;
}
section#step .boad.right {
    margin-right: 0;
    margin-left: auto;
}
section#step .boad::before {
    content: "";
    display: block;
    width: 30%;
    height: 100%;
    background: url("../img/step_line01.png") left bottom / contain no-repeat;
    position: absolute;
    right: -32%;
    bottom: -45%;
}
section#step .boad.right::before {
    background-image: url("../img/step_line02.png");
    background-position: right bottom;
    position: absolute;
    right: auto;
    left: -30%;
    bottom: -30%;
}
section#step .boad:nth-child(3)::before {
    background-image: url("../img/step_line03.png");
    bottom: -40%;
}
section#step .boad.right:nth-child(4)::before {
    background-image: url("../img/step_line04.png");
    left: -30%;
    bottom: -35%;
}
section#step .boad:last-child::before {
    display: none;
}
section#step .boad .eng {
    font-size: 60px;
    opacity: 0.15;
    position: absolute;
    top: -30px;
    z-index: 2;
}

/*==================================================================================
料金プラン
==================================================================================*/
section#plan table {
    width: 100%;
}
section#plan table tr {
    border-bottom: 1px #ccc solid;
}
section#plan table thead th {
    padding: 20px;
    border-radius: 10px 10px 0 0;
    background: #e3e3e3;
    font-weight: 500;
    position: relative;
}
section#plan table thead th:first-child {
    background: none;
}
section#plan table thead th:nth-child(3) {
    background: var(--blue);
    color: #fff;
}
section#plan table thead th:last-child {
    background: var(--pink);
    color: #fff;
}
section#plan table thead th span {
    display: inline-block;
    white-space: nowrap;
    color: var(--black);
    position: absolute;
    top: -25px;
    left: 50%;
    transform: translateX(-50%);
}
section#plan table tbody th {
    padding: 15px 20px;
    border-right: 1px #ccc solid;
    background: #f6f6f6;
    color: var(--black);
    font-weight: 500;
    text-align: left;
}
section#plan table td {
    padding: 15px 20px;
    border-right: 1px #ccc solid;
    text-align: right;
    vertical-align: middle;
}
section#plan table tr:hover td {
    background: rgba(234,206,89,0.1);
}
section#plan table td:nth-child(3) {
    background: #f5f9fc;
}
section#plan table td:last-child {
    border-right: none;
    background: rgba(197,93,139,0.10);
}
section#plan ul li.round_s {
    padding: 30px;
    box-sizing: border-box;
    background: var(--grad2);
}

/*==================================================================================
フッター
==================================================================================*/
footer {
	padding: 100px 0 0!important;
	background: url("../img/foot_bg.jpg") center top / cover no-repeat;
}
footer .logo img {
	width: 200px;
	margin: auto;
}
footer ul.foot_nav li {
	margin: 0 20px;
}
footer ul.foot_nav li a:hover {
	color: var(--pink);
}
footer ul.contacts li {
	margin: 0 5px;
}
footer ul.contacts li a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #fff;
}
footer ul.contacts li a img {
    width: 50%;
}
footer ul.contacts li:nth-child(1) a img {
    width: 40%;
}
footer .copy {
	padding: 20px;
	border-top: 1px var(--gray) dashed;
	font-size: 14px;
	text-align: center;
}


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

@media screen and (max-width : 980px) {
	.pc {display: none;}
	.tb {display: inline;}
	
	body { font-size: 14px; }
	/*==================================================================================
	ヘッダー
	==================================================================================*/
	header {
	    padding: 15px 0!important;
	}
	header.active {
		background: none;
	}
	header .container {
		max-width: 100%;
	}
	header .logo {
	    width: 160px;
		z-index: 9999;
	}
	/* スマホ版 メニュー -----------------------*/
	nav.gnav {
	    z-index: 2;
	    width: 100%;
		height: 100vh;
		background: rgba(0,0,0,0.8);
		opacity: 0;
		visibility: hidden;
		transition: all 0.3s;
	    position: fixed;
	    top: 0;
	    left: 0;
	}
	nav.gnav.active {
	    opacity: 1;
		visibility: visible;
	}
	nav.gnav .bg {
	    width: calc(100% - 100px);
		max-width: 460px;
		height: 100%;
		box-sizing: border-box;
		padding: 100px 30px 0;
		background: var(--grad2) #fff;
		transform: translateX(-100%);
		transition: all .3s;
	}
	nav.gnav.active .bg {
		transform: translateX(0);
	}
	nav.gnav ul li {
	    width: 100%;
		margin: 0;
	    border-bottom: 1px dotted #ccc;
	}
	nav.gnav ul li#side_fix {
		margin: 30px 0 20px;
		border-bottom: none;
	    position: relative;
	    top: 0;
	}
	nav.gnav ul li a {
	    display: block;
		padding: 20px 0;
		font-size: 14px;
	}
	nav.gnav ul li a.btn_contact {
		padding: 20px 0;
		font-size: 14px;
    	border: none;
		border-radius: 0;
		background: none;
		color: #000;
		text-align: left;
	}
	nav.gnav ul li a.btn_contact:hover {
		background: none;
		color: var(--pink);
	}
	nav.gnav ul li#side_fix .btn {
		display: flex!important;
	    width: 100%;
	    height: 60px;
	    border-radius: 50px;
		padding: 0;
	    font-size: 18px!important;
	    writing-mode: inherit;
		transform: none;
	}
	nav.gnav ul li#side_fix .btn::after {
		width: 30px;
		height: 100%;
		transform: skewX(-30deg);
		animation: btn 4s infinite;
	}
	nav.gnav ul li#side_fix .btn.on {
		transform: none;
	}
	nav.gnav ul.contacts {
		display: flex;
		justify-content: flex-start;
	}
	nav.gnav ul.contacts li {
		width: auto;
	    margin-left: 10px;
		border: none;
	}
	nav.gnav ul.contacts li a {
	    display: flex;
	    justify-content: center;
	    align-items: center;
	    width: 50px;
	    height: 50px;
	    border-radius: 50%;
		padding: 0;
	    background: #fff;
	}
	nav.gnav ul.contacts li a img {
	    width: 50%;
	}
	nav.gnav ul.contacts li:nth-child(1) a img {
	    width: 40%;
	}
	.gnavToggle {
	    display: flex;
		flex-wrap: wrap;
		flex-direction: column;
		justify-content: center;
		align-items: center;
	    width: 40px;
	    height: 40px;
	    text-align: center;
	    cursor: pointer;
	    position: fixed;
	    right: 30px;
	    top: 20px;
	    z-index: 9999;
	}
	.gnavToggle span {
	    display: block;
	    width: 100%;
		margin-bottom: 5px;
	    border-bottom: 3px var(--pink) solid;
	    transition: .35s ease-in-out;
	}
	.gnavToggle span:last-child {
		margin-bottom: 0;
	}
	.gnavToggle.active span:nth-child(1) {
	    transform: translateY(8px) rotate(-25deg);
	}
	.gnavToggle.active span:nth-child(2) {
		opacity: 0;
	}
	.gnavToggle.active span:nth-child(3) {
	    transform: translateY(-8px) rotate(25deg);
	}
	/*==================================================================================
	共通
	==================================================================================*/
	/* レイアウト */
	main {
	    margin-top: 80px!important;
	}
	section {
	    padding: 80px 0!important;
	}
	.container {
		width: calc(100% - 60px);
		max-width: 840px;
		padding: 0 30px;
	}
	.max1400 {
		max-width: 840px;
	}
	.max1200 {
		max-width: 680px;
	}
	.max960 {
		max-width: 540px;
	}
	.col3 {
		width: calc(50% - 15px);
	}
	.col2 {
		width: calc(50% - 15px);
	}
	.tb100 {
		width: 100%;
		margin-bottom: 30px;
	}
	.tb100:last-child {
		margin-bottom: 0;
	}
	.mb_10 {
		margin-bottom: 5px;
	}
	.mb_20 {
		margin-bottom: 15px;
	}
	.mb_30 {
		margin-bottom: 20px;
	}
	.mb_40 {
		margin-bottom: 30px;
	}
	.mb_60 {
		margin-bottom: 40px;
	}
	.mb_120 {
		margin-bottom: 80px;
	}
	.round {
	    border-radius: 20px;
	}
	.round_s {
	    border-radius: 10px;
	}
	/* フォント */
	h1 {
	    font-size: 14px;
	}
	h2 {
	    font-size: 24px;
	}
	h2 span {
	    padding-bottom: 15px;
	    background-size: 8px;
	}
	.font_16 {
	    font-size: 14px;
	}
	.font_20 {
	    font-size: 18px;
	}
	.font_24 {
		font-size: 20px;
	}
	.font_30 {
		font-size: 24px;
	}
	.font_40 {
		font-size: 30px;
	}
	.font_46 {
		font-size: 30px;
	}
	/* ボタン -----------------*/
	.btn {
		width: 100%;
	    min-width: 0;
	    max-width: 460px;
	    height: 80px;
	    font-size: 20px;
	}
	.btn::before {
		width: 40px;
		height: 12px;
		right: 40px;
	}
	.btn:hover::before {
		right: 25px;
	}
	.btn_2nd {
		padding-right: 30px;
		font-size: 16px;
	}
	.btn_2nd::before {
		width: 25px;
		height: 25px;
	}
	.btn_2nd::after {
		width: 3px;
		height: 3px;
		right: 11px;
	}
	.btn_2nd:hover::before {
		right: -5px;
	}
	.btn_2nd:hover::after {
		right: 6px;
	}
	/* スクロール */
	.scroll {
		display: block;
	  	overflow-x: scroll;
	  	white-space: nowrap;
	  	-webkit-overflow-scrolling: touch;
		padding: 0 0 10px;
	}
	.scroll::-webkit-scrollbar {
	  height: 10px;
	}
	.scroll::-webkit-scrollbar-track {
	  margin: 0 2px;
	  background: #efefef;
	  border-radius: 5px;
	}
	.scroll::-webkit-scrollbar-thumb {
	  border-radius: 5px;
	  background: #ccc;
	}
	/*==================================================================================
	メイン
	==================================================================================*/
	section#main .round {
		height: 560px;
	}
	section#main .round .main {
		height: 85%;
	    left: 15%;
	}
	section#main .round .main img.pc {
		display: none!important;
	}
	section#main .round .main img.tb.sp {
		display: block!important;
	    max-width: 300px;
		margin: auto;
	}
	section#main ul.contacts {
	    right: 20px;
	    bottom: 20px;
	}
	section#main ul.contacts li a {
	    width: 50px;
	    height: 50px;
	}
	/* サービス ------------------------------------------------------------------------*/
	section#service ul .round_s {
	    padding: 20px 20px 0;
	}
	section#service ul li .round_s .point span {
	    width: 35px;
	    height: 35px;
	    margin-left: 6px;
	}
	section#service ul li .round_s .ttl {
	    font-size: min(4vw,36px);
	}
	section#service ul li .round_s img {
	    top: 12px;
	}
	/* 入会資格 ------------------------------------------------------------------------*/
	section#shikaku {
	    background: #f5f9fc url("../img/bg_dot.png") left top / 20% repeat;
	}
	section#shikaku .round_s {
	    padding: 140px 20px 40px;
	    box-shadow: 5px 5px 10px rgba(0,0,0,0.1);
	}
	section#shikaku .round_s .icon {
	    width: 140px;
	    height: 140px;
	    top: -20px;
	}
	section#shikaku .round_s .icon img {
	    width: 80px;
	    margin: -40px auto 20px;
	}
	section#shikaku .round_s ul li {
	    padding: 20px 0 20px 35px;
	}
	section#shikaku .round_s ul li::before {
	    top: 24px;
	}
	section#shikaku .round_s ul li::after {
	    top: 24px;
	}
	/* バナー、お知らせ -----------------------------------------------------------------*/
	section#info .bana {
		width: 100%;
		margin-bottom: 40px;
		padding: 50px 15% 50px 50px;
		border-radius: 20px;
	    font-size: min(4.6vw,30px);
	}
	section#info .bana::before {
	    font-size: min(10vw,60px);
	}
	section#info .bana::after {
		bottom: -6%;
	}
	section#info .bana span::after {
		bottom: -10px;
	}
	.article {
		padding: 20px 0;
	}
    /*==================================================================================
    下層ページ
    ==================================================================================*/
    section#main_2nd {
        padding: 40px 0!important;
    }
    section#main_2nd::after {
        width: 25%;
        max-width: 120px;
        right: 10%;
        bottom: -8px;
    }
    section#main_2nd h2 {
        padding: 20px 0 0 50px!important;
        font-size: 30px;
    }
    section#main_2nd h2::before {
        font-size: 60px;
        top: -15px;
    }
    /*==================================================================================
    活動の流れ
    ==================================================================================*/
    section#vision {
        padding-bottom: 140px!important;
        background: url("../img/vision_bg01.gif") left 5% top 30% / 20% no-repeat, url("../img/vision_bg02.gif") right 5% top 45% / 20% no-repeat;
    }
    section#vision::after {
        width: 30%;
        max-width: 140px;
        left: 10%;
        bottom: -10px;
    }
    section#vision .ttl span {
        padding-bottom: 6px;
        background-size: 10px;
        font-size: 60px;
    }
    /* ステップ -----------------------------------------------------------------------*/
    section#step .bg {
        padding: 120px 30px 180px;
    }
    section#step .bg::after {
        width: 50%;
        max-width: 240px;
        right: 30px;
    }
    section#step .boad {
        width: 85%;
        padding: 30px;
    }
    section#step .boad::before {
        width: 18%;
        right: -20%;
        bottom: -20%;
    }
    section#step .boad.right::before {
        right: auto;
        left: -20%;
        bottom: -25%;
    }
    section#step .boad:nth-child(3)::before {
        bottom: -20%;
    }
    section#step .boad.right:nth-child(4)::before {
        left: -20%;
        bottom: -20%;
    }
    section#step .boad .eng {
        font-size: 40px;
        top: -15px;
    }
    /*==================================================================================
    料金プラン
    ==================================================================================*/
    section#plan .container.max1200 {
        max-width: 840px;
    }
    section#plan .scroll {
        padding-top: 30px;
    }
    section#plan table thead th {
        padding: 10px 20px;
    }
    section#plan table tbody th {
        padding: 12px;
    }
    section#plan table td {
        padding: 12px;
    }
    section#plan ul li.round_s {
        padding: 20px;
    }
	/*==================================================================================
	フッター
	==================================================================================*/
	footer .logo img {
		width: 160px;
	}
	footer ul.foot_nav li {
		margin: 0 10px 15px;
	}
	footer ul.contacts li {
		margin: 0 2px;
	}
	footer ul.contacts li a {
	    width: 50px;
	    height: 50px;
	}
	footer .copy {
		padding: 15px;
		font-size: 12px;
	}
}


@media screen and (max-width : 540px) {
	/*==================================================================================
	メイン
	==================================================================================*/
	section#main .round {
		height: calc(100vh - 200px);
		max-height: 800px;
		min-height: 600px;
		background-image: url("../img/main_sp.jpg");
	}
	section#main .round .main {
		width: calc(100% - 40px);
		height: auto;
	    left: 20px;
	}
	section#main .round .main img {
		width: 100%;
		height: auto;
	}
	section#main ul.contacts li {
	    margin-left: 5px;
	}
	section#main ul.contacts li a {
	    width: 40px;
	    height: 40px;
	}
	/* 入会資格 ------------------------------------------------------------------------*/
	section#shikaku .round_s {
		width: 100%;
		margin-bottom: 60px;
	    padding: 110px 20px 40px;
	}
	section#shikaku .round_s:nth-child(2) {
		margin-bottom: 0;
	}
	section#shikaku .round_s .icon {
	    width: 110px;
	    height: 110px;
	    top: -20px;
	}
	section#shikaku .round_s .icon img {
	    width: 60px;
	    margin: -40px auto 10px;
	}
}


@media screen and (max-width : 460px) {
	.tb {display: none;}
	.sp {display: inline;}
	/*==================================================================================
	ヘッダー
	==================================================================================*/
	header .logo {
	    width: 140px;
	}
	/* スマホ版 メニュー -----------------------*/
	nav.gnav .bg {
	    width: calc(100% - 80px);
		padding: 80px 20px 0;
	}
	nav.gnav ul li a.btn_contact {
		padding: 20px 0;
	}
	nav.gnav ul li#side_fix .btn {
	    font-size: 18px!important;
	}
	nav.gnav ul.contacts li {
	    margin-left: 6px;
	}
	.gnavToggle {
	    right: 20px;
	    top: 16px;
	}
	/*==================================================================================
	共通
	==================================================================================*/
	/* レイアウト */
	main {
	    margin-top: 75px!important;
	}
	section {
	    padding: 60px 0!important;
	}
	.container {
		width: calc(100% - 40px);
		padding: 0 20px;
	}
	.col3 {
		width: calc(50% - 10px);
	}
	.col2 {
		width: calc(50% - 10px);
	}
	.sp100 {
		width: 100%;
		margin-bottom: 30px;
	}
	.sp100:last-child {
		margin-bottom: 0;
	}
	/* フォント */
	h1 {
		font-size: 12px;
	}
	h2 {
	    font-size: 18px;
	}
	.font_16 {
	    font-size: 12px;
	}
	.font_20 {
	    font-size: 16px;
	}
	.font_24 {
		font-size: 18px;
	}
	.font_30 {
		font-size: 22px;
	}
	.font_40 {
		font-size: 24px;
	}
	.font_46 {
		font-size: 24px;
	}
	/* ボタン -----------------*/
	.btn {
	    height: 70px;
	    font-size: 18px;
	}
	.btn::before {
		display: none;
	}
	/*==================================================================================
	メイン
	==================================================================================*/
	section#main .round {
		min-height: 500px;
	}
	section#main ul.contacts {
	    display: none;
	}
	/* サービス ------------------------------------------------------------------------*/
	section#service ul li .round_s .point span {
	    width: 30px;
	    height: 30px;
		font-size: 16px;
	}
	section#service ul li .round_s .ttl {
	    font-size: 26px;
	}
	section#service ul li .round_s img {
		width: 80%;
	    top: 10px;
	}
	/* 入会資格 ------------------------------------------------------------------------*/
	section#shikaku {
	    background-size: 50%;
	}
	section#shikaku .round_s ul li {
	    padding: 15px 0 15px 30px;
	}
	section#shikaku .round_s ul li::before {
		width: 18px;
		height: 18px;
	    top: 18px;
	}
	section#shikaku .round_s ul li::after {
	    top: 16px;
	    left: 5px;
	}
	/* バナー、お知らせ -----------------------------------------------------------------*/
	section#info .bana {
		margin-bottom: 20px;
		padding: 40px 15% 40px 20px;
		border-radius: 15px;
	    font-size: 20px;
	}
	section#info .bana::before {
	    font-size: 36px;
		top: 10px;
		left: 15px;
	}
	section#info .bana::after {
		width: 30%;
		height: 94%;
		right: 4%;
	}
	section#info .bana span::after {
		border-bottom: 1px #fff solid;
		bottom: -8px;
	}
	section#info h2 {
		margin-bottom: 30px;
	}
    /*==================================================================================
    下層ページ
    ==================================================================================*/
    section#main_2nd::after {
        right: 20px;
        bottom: -6px;
    }
    section#main_2nd h2 {
        padding: 20px 0 0 40px!important;
        font-size: 24px;
    }
    section#main_2nd h2::before {
        font-size: 50px;
    }
    /*==================================================================================
    活動の流れ
    ==================================================================================*/
    section#vision {
        background: url("../img/vision_bg01.gif") left 5% top 6% / 35% no-repeat, url("../img/vision_bg02.gif") right 5% top 40% / 30% no-repeat;
    }
    section#vision::after {
        width: 30%;
        max-width: 140px;
        left: 10%;
        bottom: -8px;
    }
    section#vision .ttl {
        margin-bottom: 40px;
    }
    section#vision .ttl span {
        font-size: 50px;
    }
    /* ステップ -----------------------------------------------------------------------*/
    section#step .bg {
        width: calc(100% + 40px);
        box-sizing: border-box;
        padding: 60px 20px 120px;
        position: relative;
        left: -20px;
    }
    section#step .boad {
        width: 92%;
        padding: 20px;
        margin-bottom: 40px;
    }
    section#step .boad::before {
        right: -10%;
        bottom: -10%;
    }
    section#step .boad.right::before {
        width: 16%;
        right: auto;
        left: -12%;
        bottom: -10%;
    }
    section#step .boad:nth-child(3)::before {
        bottom: -10%;
    }
    section#step .boad.right:nth-child(4)::before {
        left: -12%;
        bottom: -10%;
    }
    section#step .boad .eng {
        font-size: 30px;
    }
    /*==================================================================================
    料金プラン
    ==================================================================================*/
    section#plan h3 {
        margin-bottom: 20px;
    }
    section#plan .scroll {
        padding-top: 20px;
    }
    section#plan table thead th {
        font-size: 14px;
    }
    section#plan table thead th span {
        top: -20px;
    }
    section#plan table tbody th {
        padding: 10px;
        font-size: 12px;
        line-height: 1.2;
    }
    section#plan table tbody td {
        padding: 10px;
    }
    section#plan ul li.col3 {
        margin-bottom: 10px;
    }
	/*==================================================================================
	フッター
	==================================================================================*/
	footer {
		padding: 70px 0 0!important;
	}
	footer .logo img {
		width: 160px;
	}
	footer ul.foot_nav li a {
		font-size: 12px;
	}
	footer .copy {
		padding: 10px;
		font-size: 10px;
	}
}



