@charset "utf-8";
/* CSS Document */


/* kv
   ================================================================== */
.kv{
	padding: 6vw 0 0;
}

.kv img{
    width: 100%;
}

.kv .main{
	margin: 0 auto;
    line-height: 0;
}

.kv .photo{
	margin: -3vw auto 0;
}

.kv .products{
	margin: -8vw auto 0;
    line-height: 0;
}

.kv .apply{
	margin: 2vw auto 0;
    line-height: 0;
}

.kv .apply .note{
	margin: 1vw 0 0 -3vw;
    font-size: 3.2vw;
}


/* color_bg01
   ================================================================== */
.color_bg01{
	padding: 18vw 0 32vw;
    background: #FCF2ED;
    position: relative;
}

.color_bg01:before{
	content: "";
	background-image: url("../images/common/cloud_bottom.svg");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100%;
	width: 100%;
	height: 12vw;
	position: absolute;
	top: 0;
	left: 0;
}


/* campaign_links
   ================================================================== */
.campaign_links .list{
	display: flex;
    justify-content: space-between;
}

.campaign_links .list > li{
	width: 48%;
    line-height: 0;
}

.campaign_links .list > li a{
	display: block;
    line-height: 0;
}


/* campaign_block
   ================================================================== */
.campaign_block .cam_number{
	margin: 0 auto;
    width: 45vw;
    line-height: 0;
}

.campaign_block .cam_ttl{
    margin: 3vw 0 8vw;
    font-size: 8vw;
	font-family: 'Zen Maru Gothic';
    text-align: center;
}

.campaign_block .cam_ttl span{
	font-family: inherit;
}

.campaign_block .cam_ttl .letter_0{
	letter-spacing: 0;
}

.campaign_block .cam_ttl .mal_minus{
	margin-left:  -3vw;
}

.campaign_block .txt{
	font-size: 4.7vw;
}


/* campaign1
   ================================================================== */
.campaign1{
    margin: -11vw 0 0;
	padding: 20vw 0 15vw;
    background-image: url("../images/campaign/item01.svg"),url("../images/campaign/item02.svg");
	background-repeat: no-repeat;
	background-position: center top,center bottom;
	background-size: 113%,110%;
}

.campaign1 .txt + .txt{
	margin: 6vw 0 0;
}


/* musubie_block
   ================================================================== */
.musubie_block{
    padding: 6vw 0 0;
}


/* campaign2
   ================================================================== */
.campaign2{
    margin: 35vw 0 36vw;
	padding: 6vw 0 3vw;
    position: relative;
    background: #fff;
}

.campaign2:before{
	content: "";
	background-image: url("../images/campaign/campaign2_top.svg");
	background-repeat: no-repeat;
	background-position: center top;
	background-size: 100%;
	width: 104%;
	height: 40vw;
	position: absolute;
	bottom: 100%;
	left: -2vw;
}

.campaign2:after{
	content: "";
	background-image: url("../images/campaign/campaign2_bottom.svg");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100%;
	width: 100%;
	height: 23vw;
	position: absolute;
	top: 100%;
	left: 0;
}

.campaign2 .lottery{
	margin: 8vw 0 0;
    font-size: 5vw;
    font-weight: 700;
    letter-spacing: 0.1em;
    font-family: 'Zen Maru Gothic';
    text-align: center;
}

.campaign2 .lottery .siz_l{
    font-size: 7vw;
    font-family: inherit;
}

.campaign2 .period{
    margin: 10vw 0 0;
    padding: 8vw 0;
    background-image: url("../images/campaign/period_border.svg"),url("../images/campaign/period_border.svg");
	background-repeat: no-repeat;
	background-position: center top,center bottom;
	background-size: 100%;
    text-align: center;
}

.campaign2 .period .period_ttl{
    font-size: 5vw;
    font-weight: 700;
    color: #00A2A2;
    font-family: 'Zen Maru Gothic';
}

.campaign2 .period .period_ttl + p{
    margin: 2vw -3vw 0;
    font-size: 3.9vw;
    letter-spacing: 0.1em;
    font-weight: 700;
    font-family: 'Zen Maru Gothic';
}

.campaign2 .period .period_ttl + p .siz_l{
    font-size: 5.2vw;
    font-weight: inherit;
    font-family: inherit;
}


/* target_products
   ================================================================== */
.target_products{
    margin: 6vw 0;
}

.target_products .box{
	padding: 5vw 5vw;
    background: #BDD8A3;
    position: relative;
}

.target_products .box:before,
.target_products .box:after{
	content: "";
	background-image: url("../images/campaign/target_bg_top.svg");
	background-repeat: no-repeat;
	background-position: center top;
	background-size: 100%;
	width: 100%;
	height: 6vw;
	position: absolute;
	bottom: 100%;
	left: 0;
}

.target_products .box:after{
	content: "";
	background-image: url("../images/campaign/target_bg_bottom.svg");
	background-position: center bottom;
	bottom: auto;
    top: 100%;
}

.target_products .box .target_ttl{
	margin: 0 auto;
    width: 70vw;
    line-height: 0;
}

.target_products .box .photo{
	margin: 3vw auto 4vw;
}


/* prize_block
   ================================================================== */
.prize_block{
    padding: 1px 0 45vw;
    background: #F2DF90;
    position: relative;
    z-index: 1;
}

.prize_block .top_title{
    margin: -27vw -5vw 0;
    line-height: 0;
}

.prize_block .top_title img{
    width: 100%;
}

.prize_block .list{
    margin: 15vw -2vw 0;
}

.prize_block .list > li + li{
    margin: 16vw 0 0;
}

.prize_block .list > li{
    padding: 1px 5vw 10vw;
    background: #fff;
    border-radius: 100px 100px 20px 20px;
}

.prize_block .list_title{
    margin: -12vw -3vw 0;
    padding: 0 0 3vw;
    height: 30vw;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    background-image: url("../images/prize/list_title_balloon.svg");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 100%;
}

.prize_block .list_title span{
    font-family: 'Zen Maru Gothic';
}

.prize_block .list_title > span{
    font-size: 6vw;
    line-height: 130%;
}

.prize_block .list_title .siz_l{
    font-size: 8vw;
}

/* award_list */
.prize_block .award_list{
    margin: -3vw 0 0;
}

.prize_block .award_list > li{
    margin: 15vw 0 0;
    padding: 1.5vw;
    background: linear-gradient(to bottom,#FF5820,#F5D032);
    border-radius: 15px;
    position: relative;
}

.prize_block .award_list > li.b_award{
    background: linear-gradient(to bottom,#00A2A2,#CEECFF);
}

.prize_block .award_list > li.c_award{
    background: linear-gradient(to bottom,#73CB27,#B7FFF9);
}

.prize_block .award_list > li.d_award{
    background: linear-gradient(to bottom,#B879E6,#96CBFF);
}

.prize_block .award_list > li:before{
	content: "";
	background-image: url("../images/prize/box_item01.svg");
	background-repeat: no-repeat;
	background-position: center top;
	background-size: 100%;
	width: 29vw;
	height: 29vw;
	position: absolute;
	top: -2vw;
	right: 0;
}

.prize_block .award_list > li:after{
	content: "";
	background-image: url("../images/prize/box_item02.svg");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100%;
	width: 23vw;
	height: 23vw;
	position: absolute;
	bottom: 0;
	left: 0;
}

.prize_block .award_list .inbox{
    padding: 1px 3vw 13vw;
    background: #fff;
    border-radius: 10px;
}

.prize_block .award{
    margin: -12vw auto 0;
    width: 23vw;
    line-height: 0;
}

.prize_block .award_ttl{
    margin: 5vw 0 0;
    text-align: center;
}

.prize_block .award_ttl > span{
    display: block;
}

.prize_block .award_ttl > span > span{
    font-size: 7vw;
    letter-spacing: 0.1em;
    font-family: 'Zen Maru Gothic';
    background-image: url("../images/prize/award_ttl_border.svg");
	background-repeat: repeat-x;
	background-position: left bottom;
	background-size: 300px;
    display: inline-block;
    line-height: 180%;
}

.prize_block .award_ttl > span .siz_l{
    font-size: 1.28em;
    font-family: inherit;
}

.prize_block .limit{
    margin: 5vw 0 0;
    text-align: center;
}

.prize_block .limit > span{
    padding: 1vw 2vw 2vw;
    display: inline-flex;
    justify-content: center;
    align-items: baseline;
    background: #713217;
}

.prize_block .limit span{
    font-size: 5vw;
    line-height: 100%;
    font-weight: 700;
    letter-spacing: 0.1em;
    font-family: 'Zen Maru Gothic';
    color: #fff;
}

.prize_block .limit .siz_l{
    font-size: 1.2em;
}

.prize_block .photo{
    margin: 3vw auto 3vw;
}

.prize_block .note{
    margin: 1vw 0 0;
}


/* dot_list
   ================================================================== */
.dot_list > li{
    padding: 0 0 0 5vw;
    position: relative;
}

.dot_list > li:before{
	content: "";
	background: #00A2A2;
	width: 3vw;
	height: 3vw;
	position: absolute;
	top: 1.8vw;
	left: 0;
    border-radius: 100px;
}


/* how_to_apply
   ================================================================== */
.how_to_apply{
    margin: 0 0 0;
	padding: 0 0 0;
    position: relative;
    z-index: 1;
    background: #fff;
}

.how_to_apply:before{
	content: "";
	background-image: url("../images/how_to_apply/top.svg");
	background-repeat: no-repeat;
	background-position: center top;
	background-size: 100%;
	width: 100%;
	height: 40vw;
	position: absolute;
	bottom: 100%;
	left: 0;
}

.how_to_apply .top_title{
	padding: 0 0 4vw;
    font-size: 9vw;
    background-image: url("../images/how_to_apply/top_title_border.svg");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 30vw;
    text-align: center;
    font-weight: 700;
    letter-spacing: 0.1em;
    font-family: 'Zen Maru Gothic';
}

.how_to_apply .step{
	margin: -6vw 3vw 0;
}

.how_to_apply .step > li{
	margin: 16vw 0 0;
    padding: 10vw 0;
    background-image: url("../images/how_to_apply/frame_top.svg"),url("../images/how_to_apply/frame_bottom.svg");
	background-repeat: no-repeat;
	background-position: center top,center bottom;
	background-size: 100%,100%;
}

.how_to_apply .step .step_top{
	display: flex;
}

.how_to_apply .step .step_top .step_ttl{
	width: 20vw;
    line-height: 0;
}

.how_to_apply .step .step_top .txt{
    padding: 0 0 0 3vw;
	width: calc(100% - 20vw);
    box-sizing: border-box;
}

.how_to_apply .step .photo{
    margin: 5vw auto 0;
    width: 50vw;
}

.how_to_apply .step .list_box{
    margin: 5vw auto 0;
    padding: 4vw 5vw;
    display: flex;
    justify-content: space-between;
    background: #FCF2ED;
    border-radius: 10px;
}

/* note_block */
.note_block{
    margin: 15vw 0 0;
}

.note_block .note_ttl{
    margin: 0 0 8vw;
    text-align: center;
}

.note_block .note_ttl > span{
    padding: 0 2vw;
    font-size: 7.2vw;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #00A2A2;
    font-family: 'Zen Maru Gothic';
    display: inline-block;
    position: relative;
}

.note_block .note_ttl > span:before,
.note_block .note_ttl > span:after{
	content: "";
	background: #00A2A2;
	width: 12vw;
	height: .5vw;
	position: absolute;
	top: 50%;
	left: 100%;
}

.note_block .note_ttl > span:after{
	left: auto;
	right: 100%;
}

.note_block .dot_list,
.note_block p{
    margin: 4vw 0 0;
}


/* links_block
   ================================================================== */
.links_block{
    padding: 1px 0 15vw;
}

.links_block .anime_btn{
    margin-top: 10vw;
}

.links_block .contact_ttl{
    margin-top: 10vw;
    font-size: 6vw;
    text-align: center;
    letter-spacing: 0.1em;
}

.links_block .contact_ttl + .anime_btn{
    margin-top: 6vw;
}


/* terms
   ================================================================== */
.terms{
    padding: 15vw 0 0;
}

.terms .slidetoggle_menu{
    border: 2px solid #713217;
    border-radius: 15px;
}

.terms .slidetoggle_menu dt{
    padding: 5vw 0;
    text-align: center;
    cursor: pointer;
}

.terms .slidetoggle_menu dt .title{
    padding: 0 12vw 0 0;
    font-size: 6vw;
    letter-spacing: 0.1em;
    font-weight: 700;
    display: inline-block;
    position: relative;
}

.terms .slidetoggle_menu dt .title:before{
	content: "";
	background-image: url("../images/common/icon_plus.svg");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 100%;
	width: 8vw;
	height: 8vw;
	position: absolute;
	top: .8vw;
	right: 0;
}

.terms .slidetoggle_menu dt.active .title:before{
	background-image: url("../images/common/icon_minus.svg");
}

.terms .slidetoggle_menu dd{
    padding: 0 5vw;
    display: none;
}

.terms .slidetoggle_menu dd .box{
    padding: 6vw 0 12vw;
	border-top: 2px dashed #713217;
}

/* list */
.terms .slidetoggle_menu .list > li{
    margin: 12vw 0 0;
}

.terms .slidetoggle_menu .list_ttl{
    margin-bottom: 5vw;
    font-size: 6vw;
    letter-spacing: 0.1em;
    font-weight: 700;
    text-align: center;
}

/* about_list */
.terms .slidetoggle_menu .about_list > li + li{
    margin: 6vw 0 0;
}

.terms .slidetoggle_menu .about_ttl{
    margin-bottom: 5vw;
    font-size: 4vw;
    font-weight: 700;
}

.terms .slidetoggle_menu * + p{
    margin-top: 5vw;
}


/* txt_list
   ================================================================== */
.txt_list > li{
    padding: 0 0 0 4vw;
    position: relative;
}

.txt_list > li:before{
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
}

.txt_list.rod > li:before{
	content: "—";
}


@media screen and (min-width : 785px){    


    /* kv
       ================================================================== */
    .kv{
        padding: 60px 0 0;
    }

    .kv .main{
        margin: 0 auto;
    }

    .kv .photo{
        margin: -24px auto 0 10px;
    }

    .kv .products{
        margin: -55px auto 0;
    }

    .kv .apply{
        margin: 28px auto 0;
    }

    .kv .apply .note{
        margin: 10px 0 0 -20px;
        font-size: 24px;
    }


    /* color_bg01
       ================================================================== */
    .color_bg01{
        padding: 100px 0 250px;
    }

    .color_bg01:before{
        height: 90px;
    }
    

    /* campaign_links
       ================================================================== */
    .campaign_links .list > li{
        width: 334px;
    }


    /* campaign_block
       ================================================================== */
    .campaign_block .cam_number{
        margin: 0 auto;
        width: 300px;
    }

    .campaign_block .cam_ttl{
        margin: 20px 0 100px;
        font-size: 64px;
        line-height: 92px;
    }

    .campaign_block .cam_ttl .letter_0{
        letter-spacing: 0;
    }

    .campaign_block .cam_ttl .mal_minus{
        margin-left:  -30px;
    }

    .campaign_block .txt{
        font-size: 36px;
        line-height: 56px;
    }


    /* campaign1
       ================================================================== */
    .campaign1{
        margin: -90px 0 0;
        padding: 185px 0 100px;
    }

    .campaign1 .txt + .txt{
        margin: 40px 0 0;
    }


    /* musubie_block
       ================================================================== */
    .musubie_block{
        padding: 40px 0 0;
    }


    /* campaign2
       ================================================================== */
    .campaign2{
        margin: 280px 0 260px;
        padding: 40px 0 0;
    }

    .campaign2:before{
        width: calc(100% + 20px);
        height: 300px;
        left: -10px;
    }

    .campaign2:after{
        height: 180px;
    }

    .campaign2 .lottery{
        margin: 40px 0 0;
        font-size: 36px;
    }

    .campaign2 .lottery .siz_l{
        font-size: 52px;
    }

    .campaign2 .period{
        margin: 80px 0 0;
        padding: 40px 0;
    }

    .campaign2 .period .period_ttl{
        font-size: 36px;
    }

    .campaign2 .period .period_ttl + p{
        margin: 20px -10px 0;
        font-size: 28px;
    }

    .campaign2 .period .period_ttl + p .siz_l{
        font-size: 36px;
    }


    /* target_products
       ================================================================== */
    .target_products{
        margin: 50px 0;
    }

    .target_products .box{
        padding: 50px 40px;
    }

    .target_products .box:before,
    .target_products .box:after{
        height: 50px;
    }

    .target_products .box .target_ttl{
        margin: 0 auto;
        width: 520px;
    }

    .target_products .box .photo{
        margin: 30px auto 30px;
    }


    /* prize_block
       ================================================================== */
    .prize_block{
        padding: 1px 0 315px;
    }

    .prize_block .top_title{
        margin: -212px -40px 0;
    }

    .prize_block .list{
        margin: 150px -20px 0;
    }

    .prize_block .list > li + li{
        margin: 140px 0 0;
    }

    .prize_block .list > li{
        padding: 1px 35px 100px;
        border-radius: 100px 100px 20px 20px;
    }

    .prize_block .list_title{
        margin: -100px -15px 0;
        padding: 0 0 20px;
        height: 220px;
    }

    .prize_block .list_title > span{
        font-size: 56px;
        line-height: 72px;
    }

    .prize_block .list_title .siz_l{
        font-size: 72px;
    }

    /* award_list */
    .prize_block .award_list{
        margin: -40px 0 0;
    }

    .prize_block .award_list > li{
        margin: 145px 0 0;
        padding: 10px;
        border-radius: 20px;
    }

    .prize_block .award_list > li:before{
        width: 220px;
        height: 200px;
        top: -20px;
    }

    .prize_block .award_list > li:after{
        width: 164px;
        height: 128px;
    }

    .prize_block .award_list .inbox{
        padding: 1px 28px 100px;
        border-radius: 15px;
    }

    .prize_block .award{
        margin: -100px auto 0;
        width: 200px;
    }

    .prize_block .award_ttl{
        margin: 50px 0 0;
    }

    .prize_block .award_ttl > span > span{
        font-size: 56px;
        line-height: 100px;
        background-size: 400px;
    }

    .prize_block .award_ttl > span .siz_l{
        font-size: 1.28em;
        font-family: inherit;
    }

    .prize_block .limit{
        margin: 40px 0 0;
    }

    .prize_block .limit > span{
        padding: 5px 10px 15px;
    }

    .prize_block .limit span{
        font-size: 36px;
    }

    .prize_block .photo{
        margin: 40px auto 30px;
    }

    .prize_block .note{
        margin: 10px 0 0;
    }


    /* dot_list
       ================================================================== */
    .dot_list > li{
        padding: 0 0 0 40px;
    }

    .dot_list > li:before{
        width: 22px;
        height: 22px;
        top: 15px;
    }


    /* how_to_apply
       ================================================================== */
    .how_to_apply{
        padding: 0 0 0;
    }

    .how_to_apply:before{
        height: 290px;
    }

    .how_to_apply .top_title{
        padding: 0 0 30px;
        font-size: 64px;
        background-size: 200px;
    }

    .how_to_apply .step{
        margin: -20px 15px 0;
    }

    .how_to_apply .step > li{
        margin: 100px 0 0;
        padding: 80px 0;
    }

    .how_to_apply .step .step_top .step_ttl{
        width: 150px;
    }

    .how_to_apply .step .step_top .txt{
        padding: 0 0 0 30px;
        width: calc(100% - 150px);
    }

    .how_to_apply .step .photo{
        margin: 67px auto 0;
        width: 380px;
    }

    .how_to_apply .step .list_box{
        margin: 42px auto 0;
        padding: 24px 40px;
    }

    /* note_block */
    .note_block{
        margin: 80px 0 0;
    }

    .note_block .note_ttl{
        margin: 0 0 40px;
    }

    .note_block .note_ttl > span{
        padding: 0 25px;
        font-size: 56px;
    }

    .note_block .note_ttl > span:before,
    .note_block .note_ttl > span:after{
        width: 80px;
        height: 4px;
    }

    .note_block .dot_list,
    .note_block p{
        margin: 20px 0 0;
    }


    /* links_block
       ================================================================== */
    .links_block{
        padding: 1px 0 100px;
    }

    .links_block .anime_btn{
        margin-top: 80px;
    }

    .links_block .contact_ttl{
        margin-top: 80px;
        font-size: 36px;
    }

    .links_block .contact_ttl + .anime_btn{
        margin-top: 40px;
    }


    /* terms
       ================================================================== */
    .terms{
        padding: 80px 0 0;
    }

    .terms .slidetoggle_menu{
        border-radius: 20px;
    }

    .terms .slidetoggle_menu dt{
        padding: 40px 0;
        transition: .3s;
    }

    .terms .slidetoggle_menu dt:hover{
        opacity: .5;
    }

    .terms .slidetoggle_menu dt .title{
        padding: 0 76px 0 0;
        font-size: 36px;
    }

    .terms .slidetoggle_menu dt .title:before{
        width: 53px;
        height: 53px;
        top: 5px;
    }

    .terms .slidetoggle_menu dd{
        padding: 0 40px;
    }

    .terms .slidetoggle_menu dd .box{
        padding: 40px 0 80px;
    }

    /* list */
    .terms .slidetoggle_menu .list > li{
        margin: 80px 0 0;
    }

    .terms .slidetoggle_menu .list_ttl{
        margin-bottom: 35px;
        font-size: 36px;
    }

    /* about_list */
    .terms .slidetoggle_menu .about_list > li + li{
        margin: 40px 0 0;
    }

    .terms .slidetoggle_menu .about_ttl{
        margin-bottom: 35px;
        font-size: 28px;
        font-weight: 700;
    }

    .terms .slidetoggle_menu * + p{
        margin-top: 45px;
    }


    /* txt_list
       ================================================================== */
    .txt_list > li{
        padding: 0 0 0 30px;
    }
    

}
