@charset "utf-8";
/* CSS Document */

/**********************************************
    ご利用案内
***********************************************/

.guidance-flow {
    padding: 3em 0;
    /*background:#23C35F;*/
    background: linear-gradient(to bottom, rgba(1,160,95,.1), rgba(1,160,95,0.5));
}

.guidance-flow h3 {
    text-align: center;
    margin-bottom: 2em;
}


@media screen and (min-width: 768px) {
    .guidance-flow .flow-list {
        display: flex;
        flex-wrap: wrap;
        gap: 1em;
        justify-content: space-between;
    }
}

@media screen and (min-width: 1200px) {
    .guidance-flow .flow-list li {
        flex-wrap: nowrap;
    }
}

.guidance-flow .flow-list li {
    counter-increment: step;
    background: #FFF;
    border-radius: 20px;
    box-shadow: 2px 2px 10px 10px rgba(0,0,0,.1);
    display: flex;
    margin-bottom: 2em;
    position: relative;
}

@media screen and (min-width: 768px) {
    .guidance-flow .flow-list li {
        width: calc(50% - 1em);
    }
}

@media screen and (min-width: 960px) {
    .guidance-flow .flow-list li {
        width: calc(25% - 1em);        
    }
}

@media screen and (min-width: 960px) {
    .guidance-flow .flow-list li::after {
        content: "";
        background: #97DA8E;
        clip-path: polygon(0 0, 0% 100%, 100% 50%);
        display: block;
        height: 40px;
        width: 30px;
        position: absolute;
        top: 20px;
        right: -30px;
        z-index: 1;
    }
    
    .guidance-flow .flow-list li:last-of-type::after {
        display: none;
    }
}

.guidance-flow .flow-list li .flow-cont {
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
}

.guidance-flow .flow-list li .flow-cont::after {
    content: counter(step);
    /*color: rgba(75,210,125,0.3);*/
    color: hsla(0,0%,100%,.4);
    font-family: "Public Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: 900;
    font-style: italic;
    font-size: 120px;
    line-height: 60px;    
    position:absolute;
    top: 0;
    left: 0;
}

@media screen and (min-width: 768px) {
    .guidance-flow .flow-list li::after {
        font-size: 120px;
    }
}

.guidance-flow .flow-list .flow-cont .flow-head {
    background: linear-gradient(90deg, #DAF3CF, #97DA8E);
    position: relative;
    padding: 70px 0 0;
}

.guidance-flow .flow-icon {
    width: 50px;
    margin: 10px 0;
    position: absolute;
    top: 0;
    right: 10px;
}

@media screen and (min-width: 768px) {
    .guidance-flow .flow-icon {
        width: 50px;
    }
}

.guidance-flow .flow-list .flow-body {
    padding: .5em 1em 1em;
}

.guidance-flow .flow-list h4 {
    color: #01A15E;
    margin: 0;
    text-align: center;
}

.guidance-flow .flow-list p {
    padding-top: 1em;
}

.btn-ht {
    background: #23C35F;
    border-radius: 10px;
    color: #FFF;
    font-size: .9em;
    text-align: center;
    display: block;
    padding: 5px;
    margin: 10px 0;
}


.apply {
    padding: 2em 0;
}

.apply .line-fukidashi {
    color: #006532;
    font-size: 1.2em;
    column-gap: 20px;
}

@media screen and (min-width: 768px) {
    .apply .line-fukidashi {
        font-size: 1.8em;
    }
}

.apply .line-fukidashi::before,
.apply .line-fukidashi::after {
    width: 3px;
    height: 1.8em;
    background: #006532;    
}

.apply .btn-wrap {
    padding-top: 0; 
}

@media screen and (min-width: 768px) {
    .apply .btn-wrap {
        display: flex;
        justify-content: space-between;
        padding-top: 0; 
    }
}

.apply .btn-wrap li {
    padding: 0 0 1em;
}

@media screen and (min-width: 768px) {
    .apply .btn-wrap li {
        width: 50%;
        padding: 0 .5em;
    }
}

.apply .btn-wrap .btn-trial a,
.apply .btn-wrap .btn-join a {
    font-size: 1.1em;
    padding: 1em .5em;
}

@media screen and (min-width: 768px) {
    .apply .btn-wrap .btn-trial a,
    .apply .btn-wrap .btn-join a {
        font-size: 1.1em;
    }
}

@media screen and (min-width: 960px) {
    .apply .btn-wrap .btn-trial a,
    .apply .btn-wrap .btn-join a {
        font-size: 1.4em;
    }
}

.useflow-ttl {
    padding-bottom: 3em;
}

@media screen and (min-width: 768px) {
    .useflow-ttl {
        display: flex;
        column-gap: 2em;
    }
}

@media screen and (max-width: 767px) {
    .useflow-ttl li {
        background: #01A15E;
        border-radius: 50px;
        color: #FFF;
        font-weight: bold;
        display: flex;
        align-items: center;
        padding: 5px 1em;
        margin-bottom: 1.5em;
        position: relative;
    }
}

@media screen and (min-width: 768px) {
    .useflow-ttl li {
        text-align: center;
        width: 20%;
    }
    
    .useflow-ttl li:last-of-type {
        padding-right: 0;
    }
}

@media screen and (max-width: 767px) {
    .useflow-ttl .step-icon {
        width: 20%;
    }
}

@media screen and (min-width: 768px) {
    .useflow-ttl .step-icon {
        position: relative;
    }
}

.useflow-ttl li::after,
.useflow-ttl .step-icon::after {
    font-family: "Material Icons Outlined";
    color: #01A15E;
    position: absolute;
}

@media screen and (max-width: 767px) {
    .useflow-ttl li::after {
        content: "\e5db";
        font-size: 1.5em;
        left: 50%;
        bottom: -1.3em;
        transform: translateX(-50%);
    }
}

@media screen and (min-width: 768px) {
    .useflow-ttl .step-icon::after {
        content: "\e5c8";
        font-size: 2em;
        top: 50%;
        right: -1em;
        transform: translateY(-50%);
    }
}

.useflow-ttl li:last-of-type::after,
.useflow-ttl li:last-of-type .step-icon::after {
    display: none;
}

@media screen and (max-width: 767px) {
    .useflow-ttl .flow-section-ttl {
        padding-left: 1em;
        text-align: center;
    }
}

/*.useflow {
    padding: 3em 0;
}*/

.useflow-shop {
    display: flex;
    justify-content: space-between;
    column-gap: 10px;
    margin-bottom: 1em;
}

@media screen and (min-width: 768px) {
    .useflow-shop {
        column-gap: 1em;
        padding: 1em 2em;
    }
    
    .useflow-shop::before {
        content: "";
        display: block;
        width: 20%;
    }
}

.useflow-shop li {
    border-radius: 10px;       
    width: 50%;
    padding: 10px;
    text-align: center;
}

@media screen and (max-width: 767px) {
    .useflow-shop li {
        background: #CCC; 
        cursor: pointer;
    }
}

@media screen and (min-width: 768px) {
    .useflow-shop li {
        width: 40%;
    }
}

.useflow-shop #shop01.active {
    background: #00A511;
    color: #FFF;
}

.useflow-shop #shop02.active {
    background: #9BC100;
    color: #FFF;
}

@media screen and (min-width: 768px) {
    .useflow-shop #shop01 {
        background: #00A511;
        color: #FFF;
    }

    .useflow-shop #shop02 {
        background: #9BC100;
        color: #FFF;
    }
}

.useflow-section {
    background: #D9F1E7;
    border-radius: 20px;
    padding: 1em;
    margin-bottom: 2em;
    position: relative;
}

@media screen and (max-width: 767px) {
    .useflow-section::before {
        content: "\ead0";
        font-family: "Material Icons Outlined";
        font-size: 2em;
        position: absolute;
        bottom: -1.2em;
        left: 50%;
        transform: translateX(-50%);
    }
    
    .useflow-section:last-of-type::before {
        display: none;
    }
}

@media screen and (min-width: 768px) {
    .useflow-section {
        display: flex;
        align-items: center;        
        z-index: 0;
    }
}

@media screen and (max-width: 767px) {
    .useflow-section dt {
        display: flex;
        align-items: center;
        justify-content: center;
    }
}

@media screen and (min-width: 768px) {
    .useflow-section dt {
        width: 20%;
        text-align: center;
    }
    
    .useflow-section dd {
        width: 80%;
    }
}

.useflow-section .wrap {
    text-align: center;
}

@media screen and (max-width: 767px) {
    .useflow-section .wrap {
        margin-right: 1em;
    }
}

.useflow-section .step-txt {
    font-weight: bold;
    color: #01A15E;
}

@media screen and (max-width: 767px) {
    .useflow-section .step-txt {
        padding-bottom: 0;
        font-size: 80%;
    }
}

.useflow-section .step-txt .step-num {
    font-size: 140%;
}

.useflow-section img {
    width: 60px;
}

@media screen and (min-width: 768px) {
    .useflow-section img {
        width: 100px;
    }
}

.useflow-section .flow-section-ttl {    
    color: #006532;
    font-size: 1.2em;
    font-weight: bold;
    padding: 0;
}

.useflow-section dd {
    padding-top: 1em;
}

@media screen and (min-width: 768px) {
    .useflow-section dd {
        display: flex;
        column-gap: 1em;
        padding: .5em 0 .5em 1em;
        position: relative;
    }
    
    .useflow-section dd::before,
    .useflow-section dd::after {
        content: "";
        position: absolute;
        top: -5em;
        display: block;
        width: 1px;
        height: 120%;
        z-index: -1;
    }
    
    .useflow-section:first-child dd::before,
    .useflow-section:first-child dd::after {
        top: -3em;
    }
    
    .useflow-section dd::before {
        background: #00A511;
        left: 25%;
    }
    
    .useflow-section dd::after {
        background: #9BC100;
        right: 25%;
    }
}

@media screen and (min-width: 960px) {
    .useflow-section dd {
        padding: 1em;
    }
}

.useflow-section dd .section-txt {
    background: #FFF;
    border-width: 2px;
    border-style: solid;
    border-radius: 20px;
    padding: 1em;
}

@media screen and (min-width: 768px) {
    .useflow-section dd .section-txt {        
        width: 50%;
        padding: 2em;
    }
    
    .useflow-section dd .section-txt.shopall {
        width: 100%;
    }
}

.section-txt.shop01 {
    border-color: #00A511;
}

@media screen and (min-width: 768px) {
    .section-txt.shop02 {
        display: block!important;
    }
}

.section-txt.shop02 {
    border-color: #9BC100;
}

.shopall {
    background: linear-gradient(to right, #00A511, #9BC100);
    border-radius: 20px;
    width: 100%;
    padding: 2px;
}

.shopall .section-txt {
    border-width: 0!important;
    border-radius: 22px;
    width: 100%!important;
}

.useflow-section dd p {
    padding-bottom: .5em;
}

@media screen and (min-width: 768px) {
    .useflow-section dd .section-txt .btn-wrap {
        display: flex;
    }
    
    .useflow-section dd .section-txt .btn-login a {
        width: calc((100% - 20px) / 3);
        margin-right: 10px;
    }
    
    .useflow-section dd .section-txt .btn-login a:last-of-type {
        margin-right: 0;
    } 
}

.useflow-section dd .section-txt .btn-login a {
    margin-bottom: 1em;
}


.method_ttl {
    background: #006532;
    border-radius: 10px;
    color: #FFF;
    padding: 10px 10px 10px 1.5em;
    position: relative;
}

.method_ttl::before {
    content: "";
    background: #FFF;
    width: 5px;
    height: 60%;
    position: absolute;
    top: 20%;
    left: 10px;
}

#members .method_ttl {
    background: #444;
}

#members #process .method_ttl {
    margin-bottom: 1.5em;
}

.method_cont {
    padding: 1em .5em 2em;
}

@media screen and (min-width: 768px) {
    .method_cont {
        padding: 1.5em 1em 2em;
    }
}


.method_cont dl {
    margin-top: 1em;
}

@media screen and (min-width: 768px) {
    .method_cont dl {
        padding:1em 1em 0;
    }
}

.method_cont dl.shop01 {
    background: rgba(0,165,17,.1);
}

.method_cont dl.shop02 {
    background: rgba(155,193,0,.1);
}

.method_cont dt span {
    background: #D5D5D5;
    padding: 5px;
}

.method_cont dl.shop01 dt span {
    background: rgba(0,165,17,.5);
}

.method_cont dl.shop02 dt span {
    background: rgba(155,193,0,.5);
}

@media screen and (max-width: 767px) {
    .method_cont dt span {
        display: block;
        width: 100%;
    }
}

.method_cont dd {
    padding: 1em .5em 2em 0; 
}

.methods .circle-num {
    margin-bottom: 1em;
}

@media screen and (min-width: 768px) {
    .method_cont .circle-num .after-arrow {
        display: inline-block;
    }
    .method_cont .circle-num .after-arrow::after {
        content: " →　";  
    }

    .method_cont .circle-num .after-arrow:last-child::after {
        display: none;
    }
}


@media screen and (min-width: 960px) {
    #methods .btn-wrap {
        display: flex;
        justify-content: space-between;
        column-gap: 1em;
    }
}

.btn-guide {
    background: #666;
    border: 3px solid #333;
    border-radius: 10px;
    color: #FFF;
    display: block;
    padding: 1em;
    margin-bottom: 1em;
}

@media screen and (min-width: 960px) {
    .btn-guide {
        width: 50%;
    }
}

#methods .training-memu {
    display: block;
    padding: .5em;
}


/***********************************************
　　　　　　　WEB入会・体験予約手順
***********************************************/

#guide h2 {
    color: #006532;
    text-align: center;
}

.choice {
    display: flex;
    justify-content: center;
    grid-gap: 10px;
    padding: 2em 0;
}

.choice li {
    width: 50%;
}

.choice a {
    background: #B9FFD2;
    border: 1px solid #006532;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    height: 100%;
    padding: 10px;
}

.choice a .material-symbols-outlined {
    vertical-align: middle;
}

#process .wrap {
    padding: 2em 0;
}


/*** 手順スライダー ************************************************/

#process .slide-wrap {
    position: relative;
    margin-bottom: 3em;
}

@media screen and (min-width: 768px) {
    #process .slide-wrap {
        padding: 0 1em;
    }
}

#process .swiper-button-prev::after,
#process .swiper-button-next::after {
    font-size: 30px;
    font-weight: bold;
}

.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom, .swiper-pagination-fraction {
bottom: 0;
}

.swiper-button-prev, .swiper-rtl .swiper-button-next {
    left: 0;
}

.swiper-button-next, .swiper-rtl .swiper-button-prev {
    right: 0;
}

.swiper-button-next::after,
.swiper-button-prev::after {
    color: #01A15E;
}

/*#process .swiper-button-prev {
    left: -1em;
}

#process .swiper-button-next {
    right: -1em;
}*/

#process .swiper-pagination-bullet {
    background: #333;
    color: #FFF;
    font-size: 16px;
    height: 24px;
    width: 24px;
    line-height: 1.5;
    transition: transform .2s linear;
}

#process .swiper-pagination-bullet-active {
    background: #01A15E;
    color: #D7E139;
}

@media screen and (max-width: 767px) {
    #members #process .swiper-wrapper {
        padding-top: 1.5em;
    }
}

@media screen and (min-width: 768px) {
    #process .swiper-slide {
        width: 45%;
    }
}

.process dl {
    border-radius: 20px;
    border: 1px solid #CCC;
    height: auto;
    margin-bottom: 1.5em;
}

.process dl dt {
    background: #01A15E;
    border-radius: 20px 20px 0 0;
    color: #FFF;
    font-size: 1.1em;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: baseline;
    padding: 5px 0;
}

#members .process dl dt {
    padding: 1em 0;
}

@media screen and (min-width: 768px) {
    .process dl dt {
        font-size: 1.2em;
    }
}

.process dl dt span {
    background: #D7E139;
    border-radius: 100%;
    color: #01A15E;
    font-size: 12px;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 50px;
    margin-right: 10px;
}

@media screen and (min-width: 768px) {
    .process dl dt span {
        font-size: 14px;
        width: 60px;
        height: 60px;
    }
}

.process dl dd {
    display: flex;
    padding: 1em;
}

@media screen and (min-width: 768px) {
    .process dl dd {
        padding: 2em;
    }
}

.process dl dd .img_box {
    text-align: center;
}

.process dl dd .img_box {
    width: 50%;
    padding-right: 1em;
}

.process dl dd .txt-block {
    width: 50%;
    margin: 0;
}

@media screen and (min-width: 768px) {
    .process dl dd .img_box {
        width: 30%;
    }
    .process dl dd .txt-block {
        width: 70%;
        padding-left: 1em;
    }
}

.process dl dd .img_box img {
    border: 1px solid #CCC;
}

.process dl dd .img_box span {
    color: #666;
    font-size: .8em;
    display: inline-block;    
    padding: 5px;
}

.process dl dd .img_box span::before {
    content: "\e8ff";
    font-family: "Material Icons Outlined";
    color: #666;
    font-size: 1.4em;
    vertical-align: middle;
}

/*@media screen and (min-width: 768px) {
    .process dl dd .img_box a {
        cursor: none;
        pointer-events: none;
    }
    
    .process dl dd .img_box span {
        display: none;
    }
}*/

.process .step-f {
    color: #01A15E;
    font-weight: bold;
}

.process .td-uline {
    text-decoration:underline;
}

@media screen and (min-width: 768px) {
    #process .btn-wrap {
        display: flex;
        justify-content: center;
    }
}


@media screen and (max-width: 767px) {
    #process .btn-more {
        width: 90%;
        margin-bottom: 1em;
    }
}

@media screen and (min-width: 768px) {
    #process .btn-more {
        width: 30%;
        margin-right: 1em;
    }
}


/*** 入会の手続き時の注意 *****************************************/

.attention {
    border: 4px double #ff6e00;
    padding: 10px;
    margin-bottom: 2em;
}

.attention h3 {
    background: #FFC482;
    font-size: clamp(16px, calc(14.545454545454545px + 0.45454545454545453vw), 20px);
    padding: 0 10px;
    margin-bottom: 0;
}
.attention .txt-block {
    padding: 1em 5px 0;
}

@media screen and (min-width: 768px) {
    .attention .txt-block {
        padding: 1em 1em 0;
    }
}

.attention dl {
    padding: 1em 0 0;
}

.attention dt {
    /*border-bottom: 2px solid #006532;*/
    font-weight: bold;
    font-size: 1.1em;
    color: #006532;
    text-decoration: underline 2px #006532;
    text-underline-offset: 4px;
}

.attention dd {
    padding: .5em 0 1em;
}

.attention .list {
    padding-left: 1em;
}

.attention .list li {
    padding-bottom: 0;
}


@media screen and (min-width: 768px) {
    .apply.single .btn-wrap {
        justify-content: center;
    }
}










/*** チェック項目 *****************************************/

.popup {
	background: rgba(0, 0, 0, .3);
	display: flex;
	justify-content: center;
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 999;
	opacity: 0;	
	transition: all 0.3s ease-in-out;
	visibility:hidden;
}

.popup.active {
	opacity: 1;
	-moz-transform: translateX(0);
	-webkit-transform: translateX(0);
	transform: translateX(0);
	visibility: visible;
}

/*** チェックボックス ***/

input[type="checkbox"] {
	display: none;
}

.check-mark label {
	line-height: 20px;
	display: block;
	cursor: pointer;
	padding-left: 30px;
	position: relative;
}

.check-mark label::before {
	content: "";
	background-color:#fff;
	box-shadow:	 inset 0 0 2px 2px rgba(110,205,225,.5);
	border: 1px solid #333;
	border-radius: 4px;
	display: inline-block;
	width: 20px;
	height: 20px;
	position: absolute;
	left: 0;
	top: 5px;
}

/* チェックした時のスタイル */
.check-mark input[type="checkbox"]:checked ~ label::after {
	content: "\e5ca"; /*check*/
    font-family: 'Material symbols Outlined';
	font-size: 30px;
	font-weight: 900;
	color: #01A15E;
	position: absolute;
	left: -3px;
	top: 5px;
}

.check-all {
	border: none;
	background: #EBEBEB;
	padding: 10px 1em;
	margin: 1em 0;
	text-align: left;
}
