/*
Author: Sofnet Solutions
*/

@media only screen and (max-width:640px){
	.companyLogo{width: 80px;}
}

.balloon{
	margin-bottom: 10px;
	text-align: center;
}

.balloon > span{
    display: inline-block;
	position: relative;
	padding: 0 20px;
	font-size: 18px;
	font-weight: bold;
}

.balloon > span::before,.balloon > span::after{
	display: block;
	position: absolute;
	content: "";
	width: 2px;
	height: 20px;
	background-color: #563114;
	bottom: 0;
}

.balloon > span::before{
	left: 0;
	transform: rotate(-40deg);
}

.balloon > span::after{
	right: 0;
	transform: rotate(40deg);
}

@media only screen and (max-width:640px){
	.balloon{margin-bottom: 5px;}
	.balloon > span{
		padding: 0 15px;
		font-size: 16px;
	}
}

.checkCircleLst > li{
    margin-top: 25px;
    padding: 20px 20px 20px 65px;
    border: 1px solid #f4568a;
    border-radius: 100px;
    background: url("../../images/icon_checkmark_pink.png") no-repeat top 23px left 25px / 26px 19px;
}

.checkCircleLst > li:first-child{margin-top: 0;}

@media only screen and (max-width:640px){
    .checkCircleLst > li{
        margin-top: 15px;
        padding: 10px 20px 10px 50px;
        background-position: top 14px left 20px;
        background-size: 21px 15px;
    }
}

/* =============================================================
 grand prix
============================================================= */

.importantMsgBox{
	padding: 40px 10px;
	border-radius:3px;
	border:2px solid #f5d40b;
}

.contestArea{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.contestArea .imgArea{
	width: 150px;
	margin-left: 10px;
	text-align: center;
}

.contestArea .imgArea:first-child{margin-left: 0;}

.contestArea .imgArea a{transition: opacity .3s;}
.contestArea .imgArea a:hover{opacity: .7;}

.contestArea .imgArea img{width: 100%;}

.contestArea .imgArea .name{
	color: #563114;
	font-size: 14px;
}

.gpTtl{
	margin-bottom: 40px;
	text-align: center;
}

.gpTtl > span{
	display: inline-block;
	min-width: 600px;
	min-height: 80px;
	line-height: 60px;
	font-size: 28px;
	text-align: center;
	background:url("../../images/img_gp_ribbon.png") no-repeat top center / auto 80px;
}

.crownTtl{
	position: relative;
    margin-bottom: 20px;
    text-align: center;
}

.crownTtl span{
    position: relative;
    display: inline-block;
    line-height: 1.2;
    padding: 0 45px;
    box-sizing: border-box;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
}

.crownTtl span::before,.crownTtl span::after{
	content: "";
	display: block;
	position: absolute;
	width: 36px;
	height: 30px;
	top: 0;
	background: url("../../images/img_crown.png") no-repeat top left / 100% auto;
}

.crownTtl span::before{left: 0;}
.crownTtl span::after{right: 0;}

@media only screen and (max-width:640px){
	.importantMsgBox{padding: 20px 10px;}
	.contestArea{margin-top: -10px;}
	.contestArea .imgArea{
		width: 120px;
		margin: 10px 0 0 0;
		padding: 0 5px;
	}
	.contestArea .imgArea .name{font-size: 12px;}
	
	.gpTtl{margin-bottom: 20px;}
	
	.gpTtl > span{
		min-width: 100%;
		min-height: 50px;
		line-height: 35px;
		font-size: 20px;
		background-size: 100% 50px;
	}
	
	.crownTtl{margin-bottom: 10px;}
	
	.crownTtl span{
		padding: 0 35px;
		font-size: 18px
	}
	
	.crownTtl span::before,.crownTtl span::after{
		width: 28px;
		height: 22px;
	}
}


/* =============================================================
 benefits
============================================================= */

.benefits{
	margin-bottom: 50px;
	text-align: center;
}

.benefits .number{
	display: inline-block;
	position: relative;
	width: 120px;
	height: 120px;
	padding: 20px 0;
	margin-bottom: 20px;
	line-height: 35px;
	font-size: 24px;
	text-align: center;
	box-sizing: border-box;
	color: #333;
	z-index: 2;
}

.benefits .number::before,.benefits .number::after{
	display: block;
	position: absolute;
	content: "";
}

.benefits .number::before{
	width: 90px;
	height: 90px;
	bottom: 0;
	right: 0;
	background-color: #ffcb93;
	border-radius: 50%;
	z-index: -1;
}

.benefits .number::after{
	width: 120px;
	height: 120px;
	top: 0;
	left: 0;
	background: url("../../images/img_benefits.png") no-repeat center / 100% auto;
	border-radius: 50%;
	z-index: -1;
}

.benefits .number > span{
	display: block;
	font-family: 'Zen Maru Gothic', sans-serif;
	font-size: 40px;
}

.benefits .imgArea{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	max-width: 640px;
	margin: -20px auto 0;
}

.benefits .imgArea img{
	margin-top: 20px;
	padding: 0 10px;
}

.benefits .imgArea img:nth-child(-n+2){
	width: 300px;
	height: auto;
}

.benefits .imgArea img:nth-last-child(-n+3){
	width: 160px;
}

@media only screen and (max-width:640px){
	.benefits .number{
		width: 80px;
		height: 80px;
		padding: 10px 0;
		line-height: 28px;
		font-size: 18px;
	}
	
	.benefits .number::before{
		width: 60px;
		height: 60px;
	}
	
	.benefits .number::after{
		width: 80px;
		height: 80px;
	}
	
	.benefits .number > span{font-size: 30px;}
	
	.benefits .imgArea{
		justify-content: space-between;
		margin-top: -10px;
	}
	
	.benefits .imgArea img{
		padding: 0;
		margin-top: 10px;
	}
	
	.benefits .imgArea img:nth-child(-n+2){width:  calc(50% - 5px);}
	.benefits .imgArea img:nth-last-child(-n+3){width: calc(33% - 5px);}
}


.balloonTxt{
    margin-bottom: 15px;
    text-align: center;
}

.balloonTxt > span{
    display: inline-block;
    position: relative;
    padding: 0 40px 20px;
    font-size: 28px;
    font-weight: 500;
    color: #c6a549;
    transform: rotate(-5deg);
}

.balloonTxt > span::before{
    content: "";
    display: block;
    position: absolute;
    width: 195px;
    height: 58px;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    background: url("../../images/img_balloon.png") no-repeat top left / 100% auto;
}

@media only screen and (max-width:640px){
    .balloonTxt{
        margin-bottom: 10px;
    }

    .balloonTxt > span{
        padding: 0 30px 18px;
        font-size: 22px;
    }

    .balloonTxt > span::before{
        width: 156px;
        height: 47px;
    }
}

.imgTwoClm{
	display: flex;
	justify-content: center;
}

.imgTwoClm .clm{
	width: 360px;
	margin-left: 40px;
}

.imgTwoClm .clm:first-child{margin-left: 0;}

@media only screen and (max-width:640px){
	.imgTwoClm{justify-content: space-between;}
	.imgTwoClm .clm{
		width: calc(50% - 5px);
		margin-left: 0;
	}
}

.imgThreeClm,
.imgFiveClm{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.imgThreeClm .clm{
    width: 240px;
    margin-left: 20px;
}

.imgFiveClm .clm{
    width: 160px;
    margin-left: 15px;
}

.imgThreeClm .clm:first-child,
.imgFiveClm .clm:first-child{margin-left: 0;}

.imgThreeClm .clm img,
.imgFiveClm .clm img{width: 100%;}

@media only screen and (max-width:640px){
    .imgThreeClm,
    .imgFiveClm{margin-top: -10px;}

    .imgThreeClm .clm{
        width: calc(50% - 5px);
        margin-top: 10px;
        margin-left: 10px;
    }

    .imgFiveClm .clm{
        width: calc(33% - 6px);
        margin-top: 10px;
        margin-left: 10px;
    }

    .imgThreeClm .clm:nth-child(2n-1),
    .imgFiveClm .clm:nth-child(3n-2){margin-left: 0;}
}

.sampleClm{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: -20px;
}

.sampleClm li{
    width:240px;
    margin-top: 20px;
}

.sampleClm li img{width:100%;}

@media only screen and (max-width:640px){
    .sampleClm{
        margin-top: -8px;
    }

    .sampleClm li{
        width: calc(50% - 4px);
        margin-top: 8px;
    }
}

.profileClm{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.profileClm.reverse{flex-direction: row-reverse;}

.profileClm .profileImg{width: 240px;}

.profileClm .profileTxt{
    width: calc(100% - 270px);
}

@media only screen and (max-width:640px){
    .profileClm{display: block;}

    .profileClm .profileImg{margin: 0 auto 20px;}

    .profileClm .profileTxt{width: 100%;}
}


.flowLst{
    width: 760px;
    margin: 0 auto;
}

.flowLst > li{
    position: relative;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-bottom: 50px;
}

.flowLst > li:last-child{margin-bottom: 0;}

.flowLst > li::after{
    content: "";
    display: block;
    position: absolute;
    width: 4px;
    height: calc(100% - 8px);
    top: 50px;
    left: 19px;
    border-left: 4px dotted #fe9925;
}

.flowLst > li:last-child::after{display: none;}

.flowLst .num{
    width: 42px;
    height: 42px;
    padding-top: 2px;
    border-radius: 50%;
    box-sizing: border-box;
    background-color: #fe9925;
    color: #fff;
    font-size: 24px;
    text-align: center;
}

.flowLst .txtArea{
    width: calc(100% - 54px);
}

.flowLst .txtArea .ttl{
    display: block;
    margin-bottom: 10px;
    padding-top: 2px;
    color: #fe9925;
    font-size: 24px;
    font-weight: bold;
}

.flowLst .imgArea img{
    width: 270px;
}

@media only screen and (max-width:640px){
    .flowLst{
        width: auto;
    }

    .flowLst > li{
        margin-bottom: 30px;
    }

    .flowLst > li::after{
        height: calc(100% - 16px);
        top: 38px;
        left: 13px;
    }

    .flowLst .num{
        width: 30px;
        height: 30px;
        font-size: 18px;
    }

    .flowLst .txtArea{
        width: calc(100% - 38px);
    }

    .flowLst .txtArea .ttl{
        font-size: 16px;
    }

    .flowLst .imgArea img{
        max-width: 270px;
        width: 100%;
    }
}

.flexClm{
    display: flex;
    flex-wrap: wrap;
}

.flexClm.jCCenter{justify-content: center;}

.flexClm .cnt{
    width: 270px;
    margin-left: 20px;
}

.flexClm .cnt:first-child{margin-left: 0;}

.flexClm .cnt .txt{
    margin-top: 10px;
    font-size: 14px;
}

@media only screen and (max-width:640px){
    .flexClm.row{
        display: block;
    }

    .flexClm .cnt{
        width: calc(50% - 5px);
        margin-left: 10px;
    }

    .flexClm.row .cnt{
        width: 270px;
        margin: 20px 0 0;
    }

    .flexClm.row .cnt:first-child{margin-top: 0;}

    .flexClm .cnt .txt{
        margin-top: 8px;
        font-size: 14px;
    }
}

/* anchor link
------------------------------------------------------- */
.lstPlanPoint{
    margin-bottom:40px;
    font-size: 0;
}

.lstPlanPoint li{
    display: inline-block;
    width : 47%;
    width: -webkit-calc(50% - 5px);
    width: -moz-calc(50% - 5px);
    width: calc(50% - 5px);
    margin-bottom:10px;
    font-size:14px;
    border: 1px solid #6f624e;
    vertical-align: top;
    box-sizing: border-box;
}

.lstPlanPoint li:nth-child(2n){margin-left:10px;}

.lstPlanPoint li a{
    display: block;
    position: relative;
    padding: 10px 10px 25px 10px;
    font-weight: bold;
    color:#544e41;
    box-sizing: border-box;
    text-align: center;
}

.lstPlanPoint li a:after{
    display: block;
    position: absolute;
    bottom: 10px;
    right: 50%;
    margin-right: -6px;
    border-top: 8px solid #f4568a;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    content: "";
}

.lstPlanPoint li.single a{min-height: 77px;}

.lstPlanPoint li.single span{
    display: inline-block;
    padding-top: 10px;
}

@media only screen and (min-width:640px){
    .lstPlanPoint{margin:0 0 30px -30px;}

    .lstPlanPoint li{
        width: 210px;
        margin: 0 0 20px 30px;
        font-size:16px;
        text-align: center;
        transition: all .8s;
    }

    .lstPlanPoint li a{
        padding: 20px 20px 30px;
        transition: all .8s;
    }

    .lstPlanPoint li.single a {min-height: 100%;}

    .lstPlanPoint li.single span {
        display: inline-block;
        padding-top: 0;
    }

    .lstPlanPoint li:hover{border-color:#f4568a;}

    .lstPlanPoint li:hover a{color:#f4568a;}

    .lstPlanPoint li a:after{
        top:auto;
        bottom: 10px;
        right: 50%;
        margin-top: 0;
        margin:0 -10px 0 0;
        border-top: 8px solid #f4568a;
        border-left: 10px solid transparent;
        border-right: 10px solid transparent;
        transition: all .8s;
    }

    .lstPlanPoint li:hover a:after{border-top-color: #f4568a;}

    .lstPlanPoint li:nth-child(2n){margin-left:30px;}
}

/* faq
------------------------------------------------------- */

.faqArea dl{
    margin-top: 15px;
    border: 1px solid #fe9925;
    border-radius: 10px;
}

.faqArea dl:first-child{margin-top: 0;}

.faqArea dt,
.faqArea dd{
    position: relative;
}

.faqArea dd,
.faqArea dt a{
    display:block;
    padding: 14px 40px 14px 55px;
}

.faqArea dt::before,
.faqArea dt::after,
.faqArea dd::before,
.faqArea dd::after{
    content: "";
    display: block;
    position: absolute;
}

.faqArea dt::before,
.faqArea dd::before{
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: #fe9925;
    top: 10px;
    left: 10px;
}

.faqArea dt::after,
.faqArea dd::after{
    top: 8px;
    font-size: 22px;
    color: #fff;
}

.faqArea dt::after{
    content: "Q";
    left: 20px;
}

.faqArea dd::after{
    content: "A";
    left: 22px;
}

.faqArea dt a{
    position: relative;
    color: #563114;
    transition: opacity .2s;
}

.faqArea dt a:hover{
    opacity: .7;
    cursor: pointer;
}

.faqArea dt a::before,
.faqArea dt a::after{
    content: "";
    display: block;
    position: absolute;
    width: 18px;
    height: 2px;
    top: 25px;
    right: 15px;
    background-color: #fe9925;
}

.faqArea dt a::after{
    transform: rotate(90deg);
    transition: all .3s;
}

.faqArea dt a.open::after{
    display: none;
}

/* form
------------------------------------------------------- */

.btnTtl {
    margin-bottom: 20px;
    padding: 10px 20px;
    background-color: #eee;
    text-align: center;
    font-size: 20px;
    font-weight: bold;
}

@media only screen and (max-width:640px){
	.btnTtl {
    	margin-bottom: 12px;
    	padding: 5px 20px;
    	font-size: 16px;
	}
}

/* =============================================================
 popUp
============================================================= */

#popUp{
    color: #333;
}

.popUpBg{
    padding: 30px;
    background-color: #fff;
    border-radius: 5px;
}

#popUp #container{
    background: url("../../images/bg_container.png") repeat top left / 600px;
}

.popUpArea{
    width: 960px;
}

.popUpArea .pageTtl{
    margin-bottom: 40px;
    padding: 10px;
    border-radius: 5px;
    background-color: #333;
    color: #fff;
    font-size: 24px;
    text-align: center;
}

.popUpArea .popUpTtl{
    margin-bottom: 20px;
    padding-bottom: 2px;
    border-bottom: 1px solid #c2b3a7;
    font-size: 20px;
}

.popUpArea .btn{
    position: relative;
    display: inline-block;
    min-width: 200px;
    padding: 8px 40px 10px;
    border-radius: 30px;
    box-sizing: border-box;
    background-color: #fe9925;
    color: #fff;
    font-size: 16px;
    text-align: center;
    transition: opacity .3s;
}

.popUpArea .btn:hover{
    opacity: .8;
}

@media only screen and (max-width:640px){
    .popUpBg{
        padding: 20px;
    }

    .popUpArea{
        width: 100%;
    }

    .popUpArea .pageTtl{
        margin-bottom: 30px;
        font-size: 18px;
    }

    .popUpArea .popUpTtl{
        font-size: 18px;
    }
}

/* =============================================================
movie
============================================================= */
.youtubeWrap{
    width:640px;
    margin: 0 auto;
}

.youtubeWrap{width: 100%;}

.youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}


@media only screen and (max-width:640px){
    .youtubeWrap{width: 100%;}
}

/* lightbox css
------------------------------------------------------- */
#imagelightbox{
    cursor: pointer;
    position: fixed;
    z-index: 10000;
    -ms-touch-action: none;
    touch-action: none;
    -webkit-box-shadow: 0 0 3.125em rgba( 0, 0, 0, .75 );
    box-shadow: 0 0 3.125em rgba( 0, 0, 0, .75 );
}

/* ACTIVITY INDICATION */
#imagelightbox-loading{
    width:16px;
    height:16px;
    position: fixed;
    z-index: 10003;
    top: 50%;
    left: 50%;
    margin: -8px 0 0 -8px;
}

#imagelightbox-loading div{
    -webkit-animation: imagelightbox-loading .5s ease infinite;
    animation: imagelightbox-loading .5s ease infinite;
}

@-webkit-keyframes imagelightbox-loading{
    from { opacity: .5;    -webkit-transform: scale( 1 ); }
    to     { opacity: .5;    -webkit-transform: scale( 1 ); }
}
@keyframes imagelightbox-loading{
    from { opacity: .5;    transform: scale( 1 ); }
    to     { opacity: .5;    transform: scale( 1 ); }
}

#imagelightbox-loading .loader{
    width: 32px;
    height: 32px;
    background: url(../../images/loader.gif) no-repeat;
    background-size: 22px;
    opacity: .9;
}

/* OVERLAY */
#imagelightbox-overlay{
    background-color: #333;
    background-color: rgba( 0, 0, 0, .7 );
    position: fixed;
    z-index: 9998;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

/* "CLOSE" BUTTON */
#imagelightbox-close{
    display:block;
    width:35px;
    height:35px;
    line-height:35px;
    position: fixed;
    border-radius:18px;
    border:none;
    background-color:#333;
    background-color:rgba(0,0,0,.5 );
    z-index: 10002;
    top:10px;
    right:10px;
    text-align:center;
    font-size:28px;
    color:#fff;
}

#imagelightbox-close:hover{cursor:pointer;}

/* CAPTION */
#imagelightbox-caption{
    position: fixed;
    padding:8px 10px;
    background-color:#333;
    z-index: 10001;
    left: 0;
    right: 0;
    bottom: 0;
    text-align: center;
    color: #fff;
}

/* ARROWS */
.imagelightbox-arrow{
    display: none;
    position: fixed;
    width:35px;
    height:60px;
    margin-top:-30px;
    border:none;
    border-radius:3px;
    background-color:#333;
    background-color:rgba(0,0,0,.5 );
    vertical-align: middle;
    z-index: 10001;
    top: 50%;
}

.imagelightbox-arrow:hover,
.imagelightbox-arrow:focus{
    background-color:#000;
    background-color: rgba( 0, 0, 0, .75 );
}

.imagelightbox-arrow-left{left:0;}
.imagelightbox-arrow-right{right:0;}
.imagelightbox-arrow:before{
    width:0;
    height:0;
    border:1em solid transparent;
    content:'';
    display: inline-block;
    margin-bottom: -2px;
}
.imagelightbox-arrow-left:before{
    border-left: none;
    border-right-color: #fff;
    margin-left: -5px;
}
.imagelightbox-arrow-right:before{
    border-right: none;
    border-left-color: #fff;
    margin-right: -5px;
}

#imagelightbox-loading,
#imagelightbox-overlay,
#imagelightbox-close,
#imagelightbox-caption,
#imagelightbox-nav,
.imagelightbox-arrow{
    -webkit-animation: fade-in .25s linear;
    animation: fade-in .25s linear;
}
@-webkit-keyframes fade-in{
    from{opacity:0;}
    to{opacity: 1;}
}
@keyframes fade-in{
    from{opacity:0;}
    to{opacity:1;}
}

@media only screen and (min-width:640px){
    #container{width:100%;}

    #imagelightbox-close{
        top:35px;
        right:35px;
    }

    .imagelightbox-arrow{
        width:50px;
        height:100px;
        margin-top:-50px;
    }
    .imagelightbox-arrow-left{left:40px;}
    .imagelightbox-arrow-right{right:40px;}
}


/* =============================================================
 video
============================================================= */
.articleArea .wp-video,
.articleArea .movieWrap{
    position:relative;
    width:100% !important;
    padding-top:56.25%;
}

.articleArea .wp-video video,
.articleArea .movieWrap iframe{
    position:absolute;
    top:0;
    left:0;
    width:100% !important;
    height:auto;
}

.articleArea .movieWrap iframe{
    height:100% !important;
}

