@charset "utf-8";
/* CSS Document */


/* kv
   ================================================================== */
.kv{
    height: 95vh;
    background-image: url("../images/webp/kv_photo.webp");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
    overflow: hidden;
}

.kv .catch{
    width: 51vw;
    height: 51vw;
    background: #98b516;
    border-radius: 300px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 10vw;
    left: -1vw;
}

.kv .catch .inbox{
    display: block;
    text-align: center;
    color: #fff;
    line-height: 160%;
    font-size: 5vw;
}

.kv .catch .siz_l{
    font-size: 6vw;
}

.kv .catch .inbox span{
    color: inherit;
    line-height: inherit;
    display: inline-block;
}

.kv .title{
    margin: auto;
    position: absolute;
    bottom: 36vw;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
}

.kv .title > span{
    font-size: 13vw;
    line-height: 120%;
    letter-spacing: 0.1em;
    font-weight: 600;
    display: block;
    color: #fff;
    position: relative;
}

.kv .title .eng{
    position: absolute;
    top: 76%;
    right: -6vw;
    width: 59vw;
}


/* explanation
   ================================================================== */
.explanation{
    padding: 15vw 0;
}

.explanation .limit{
    margin: 6vw auto 10vw;
    width: 80vw;
    display: flex;
    justify-content: center;
    align-items: center;
}

.explanation .limit span{
    display: block;
    line-height: 100%;
    font-weight: 400;
}

.explanation .limit .left{
    padding: 1vw .5vw 0 0;
    width: 8vw;
    height: 17vw;
    font-size: 5vw;
    letter-spacing: 0.3em;
    color: #fff;
    background: #d86d0e;
    display: flex;
    justify-content: center;
    align-items: center;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    border-radius: 50px;
    box-sizing: border-box;
}

.explanation .limit .right{
    padding: 0 0 0 2vw;
    width: calc(100% - 8vw);
    display: flex;
    justify-content: center;
    align-items: flex-start;
    box-sizing: border-box;
}

.explanation .limit .number{
    padding: 3.5vw 0 0;
    width: 36vw;
    font-size: 42vw;
    line-height: 0;
    color: #d86d0e;
    font-family: "Cormorant";
    font-weight: 500;
}

.explanation .limit .number_right{
    padding: 0 0 0 1vw;
    width: calc(100% - 30vw);
    box-sizing: border-box;
}

.explanation .limit .yen{
    font-size: 10vw;
    color: #d86d0e;
}

.explanation .limit .txt{
    margin: 2vw 0 0;
    font-size: 5vw;
    white-space: nowrap;
}


/* campaign_block
   ================================================================== */
.campaign_block{
    padding: 15vw 0;
    background-image: url("../images/webp/campaign_bg.webp");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.campaign_block .list{
    margin: 10vw auto 0;
}

.campaign_block .list > li{
    margin: 6vw auto 0;
    padding: 8vw 4vw;
    background: #fff;
    position: relative;
}

.campaign_block .list > li::before{
    content: "";
    background-image: url("../images/webp/campaign_check.webp");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 10vw;
    height: 10vw;
    position: absolute;
    top: -3vw;
    left: -3vw;
}

.campaign_block .list h3{
    font-size: 5vw;
    font-weight: 600;
    color: #4a2c1b;
}

.campaign_block .list p{
    margin: .5vw 0 0;
    font-size: 6.5vw;
}

.campaign_block .list p .siz_s{
    font-size: 4vw;
    display: inline-block;
}

.campaign_block .list .icon{
    width: 20vw;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 2vw;
    margin: auto;
}


/* merit_block
   ================================================================== */
.merit_block{
    padding: 15vw 0;
}

.merit_block .list{
    margin: 7vw auto 10vw;
}

.merit_block .list > li{
    margin: 6vw auto 0;
    position: relative;
}

.merit_block .list h3{
    padding: 0 2vw 0 12vw;
    height: 20vw;
    background: #86a303;
    position: relative;
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

.merit_block .list h3 > span{
    font-size: 5vw;
    line-height: 150%;
    font-weight: 400;
    color: #fff;
}

.merit_block .list h3::before{
    content: "";
    background-image: url("../images/webp/merit_check.webp");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 6vw;
    height: 6vw;
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    left: 3vw;
}

.merit_block .list .text_box{
    padding: 5vw 4vw;
    background: #f4f4f4;
}

.merit_block .list p.note{
    font-size: 3.1vw;
}


/* step_block
   ================================================================== */
.step_block{
    padding: 15vw 0;
    background: #f4f4f4;
}

.step_block .intro_icon{
    margin: 7vw auto 0;
    padding: 0 3vw;
    line-height: 0;
}

.step_block .list{
    margin: 7vw auto 0;
}

.step_block .list > li{
    margin: 6vw auto 0;
    padding: 3vw 0 0;
    position: relative;
    overflow: hidden;
}

.step_block .list .bg_box{
    padding: 3vw 2vw 12vw 5vw;
    background: #fff;
}

.step_block .list .title{
    margin: -27vw auto 0;
    padding: 0 0 4.5vw;
    width: 40vw;
    height: 40vw;
    background: #f4f4f4;
    border-radius: 300px;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    text-align: center;
    box-sizing: border-box;
}

.step_block .list .title span{
    display: block;
    line-height: 150%;
    font-family: "Cormorant";
    color: #4a2c1b;
    font-weight: 700;
}

.step_block .list .title .txt{
    font-size: 5vw;
}

.step_block .list .title .number{
    margin: 1vw auto 0;
    width: 13vw;
    line-height: 0;
}

.step_block .list .box{
    padding: 6vw 0 0;
}

.step_block .list .box .icon{
    line-height: 0;
}

.step_block .list .box p{
    margin: 5vw auto 0;
}

.step_block .list .anime_btn{
    margin: 6vw auto 0;
}


/* present_block
   ================================================================== */
.present_block{
    padding: 15vw 0;
}

.present_block .top_txt{
    margin: 5vw auto 0;
    padding: 0 2vw;
}

.present_block .list{
    margin: 12vw auto 0;
}

.present_block .list > li{
    margin: 18vw auto 0;
    padding: 10vw 3vw 12vw;
    background: #f4f4f4;
    position: relative;
}

.present_block .list > li:first-child{
    margin-top: 0;
}

.present_block .list .if_title{
    width: 70vw;
    height: 10vw;
    font-size: 5vw;
    top: -5vw;
    margin: auto;
    font-weight: 400;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #4a2c1b;
    color: #fff;
    border-radius: 300px;
    text-align: center;
    box-sizing: border-box;
    position: absolute;
    left: 0;
    right: 0;
}

.present_block .list .title{
    margin: 0 0 0;
    font-size: 6.8vw;
    text-align: center;
    font-weight: 400;
}

.present_block .list .box{
    padding: 6vw 0 0;
}

.present_block .list .icon{
    margin: 0 auto;
    line-height: 0;
}

.present_block .list .card{
    margin: 7vw auto 0;
    width: 40vw;
    line-height: 0;
}

.present_block .list .photo{
    margin: 7vw auto 0;
    width: 70vw;
}

.present_block .list p{
    margin: 5vw auto 0;
    font-size: 5vw;
    text-align: center;
}

.present_block .list p .siz_l{
    font-size: 10vw;
    color: #d86d0e;
    font-weight: 700;
}


/* bottom_note
   ================================================================== */
.bottom_note{
    margin: 6vw 0 0;
}


/* contact_block
   ================================================================== */
.contact_block{
	margin: 0 0 0;
}

.contact_block .inner{
	padding: 0;
}

.contact_block .bg_box{
	padding: 10vw 4vw 13vw;
    background: #f4f4f4;
}

.contact_block .bottom_box{
	padding: 10vw 4vw 15vw;
}

/* form */
.contact form{
	margin-top: -90px;
    padding-top: 90px;
}

.conf_text{
    margin: 10vw 0 0;
	font-size: 4vw;
    color: #e32281;
    text-align: center;
    font-weight: 700;
	line-height: 150%;
}

.req{
    margin: 0 0 0 3vw;
    padding: 1vw 2vw 1.5vw;
    font-size: 3.6vw;
    font-weight: 400;
    line-height: 1;
	color: #fff;
    background: #e32281;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    vertical-align: text-bottom;
}

.contact_block .list{
    margin: 10vw auto 0;
}

.contact_block .list > li{
    margin: 15vw auto 0;
    background :#fff;
}

.contact_block .list > li:first-child{
    margin-top: 0;
}

.contact_block .list h3{
    height: 14vw;
    font-size: 5vw;
    color: #fff;
    background: #8bb600;
    font-weight: 400;
    display: flex;
    justify-content: center;
    align-items: center;
}

.contact_block .list .friends h3{
    background: #dcae00;
}

.contact_block .entry_list{
    margin: 0 auto 0;
    padding: 0 3vw;
    background: #fff;
}

.contact_block .entry_list > li{
    padding: 9vw 0;
    border-bottom: 1px solid #ccc;
}

.contact_block .entry_list > li:last-child{
    border-bottom: none;
}

.contact_block .entry_list h4{
    padding: 0 0 5vw;
    font-size: 4.6vw;
    font-weight: 400;
}

.contact_block output,
.contact_block input,
.contact_block select,
.contact_block textarea{
	margin: 0;
	font-size: 16px;
    line-height: 170%;
    letter-spacing: 0.1em;
	padding: 15px;
	box-sizing: border-box;
	width: 100%;
    background-color: #f4f4f4;
	border: 1px solid #f4f4f4;
	vertical-align: middle;
    font-family: "Noto Serif JP";
}

/* 確認画面の入力文字背景 */
.contact_block output{
    display: block;
    background: rgba(246,172,43,.1);
    border-color: rgba(246,172,43,.1);
}

.contact_block select{
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: url("../images/webp/select_arrow.webp");
	background-repeat: no-repeat;
	background-size: 10px 8px;
	background-position: right 16px center;
}

input:focus,
select:focus,
textarea:focus{
    outline: none;
}

textarea::-webkit-input-placeholder,
select::-webkit-input-placeholder,
input::-webkit-input-placeholder{
    color: #ccc;
    font-family: "Noto Serif JP";
}

textarea::-moz-placeholder,
textarea::-moz-placeholder,
select::-moz-placeholder{
    color: #ccc; opacity: 1;
    font-family: "Noto Serif JP";
}

textarea:-ms-input-placeholder,
select:-ms-input-placeholder,
input:-ms-input-placeholder{
    color: #ccc;
    font-family: "Noto Serif JP";
}

.contact_block textarea{
    height: 50vw;
	line-height: 150%;
}

/* ラジオボタン */
.contact_block .radio_input{
    padding: 0;
}

.radio_input label{
    margin: 0 auto;
	display: inline-flex;
    align-items: center;
    cursor: pointer;
}

input[type='checkbox'] ,
input[type='radio'] {
    appearance: none;
    outline: none;
    display: block;
    position: relative;
    text-align: center;
    cursor: pointer;
    width: 18px;
    height: 18px;
	margin: 0 10px 0 0;
    font-size: 0;
    padding: 0 !important;
    border: none;
    background: none;
}

input[type='checkbox']::before ,
input[type='radio']::before {
    display: block;
    position: absolute;
    content: '';
    width: 18px;
    height: 18px;
    background: #fff;
    border: solid 1px #ddd;
    border-radius: 100%;
}

input[type='checkbox']:checked::before ,
input[type='radio']:checked::before {
    border-color: #77532f;
}

input[type='checkbox']::after ,
input[type='radio']::after {
    display: block;
    content: '';
    position: absolute;
    left: 5px;
    top: 5px;
    width: 10px;
    height: 10px;
    background: #77532f;
    border-radius: 100%;
    opacity: 0;
}

input[type='checkbox']:checked::after ,
input[type='radio']:checked::after {
    opacity: 1;
}

/* 四角ボタン */
.square input[type='checkbox']::before ,
.square input[type='radio']::before {
    border-radius: 0;
}

.square input[type='checkbox']::after ,
.square input[type='radio']::after {
    border-radius: 0;
}

/* privacy_text_block */
.contact_block .privacy_text_block{
	text-align: center;
}

.contact_block .privacy_text_block h4{
    font-size: 3.8vw;
    line-height: 200%;
	font-weight: 400;
}

.contact_block .privacy_text_block h4 a{
    font-size: inherit;
    line-height: inherit;
	font-weight: inherit;
}

.contact_block .privacy_text_block .radio_input{
    margin: 5vw 0 0;
}

.contact_block .privacy_text_block label{
    font-size: 16px;
	font-weight: 400;
}

.contact_block .privacy_text_block .link_text{
	text-decoration: underline;
}

/* ボタン */
.zas_btn_area{
	margin: auto;
	text-align: center;
	padding: 30px 0 40px;
	font-size: 0;
	box-sizing: border-box;
}

.zas_btn_area .form_btn{
	text-align: center;
	line-height: 0;
}

.zas_btn_area .form_btn button{
	width: 80vw;
    height: 22vw;
    max-width: 100%;
	font-size: 5vw;
    line-height: 130%;
    font-weight: 500;
	color: #fff;
	display: inline-flex;
    justify-content: center;
    align-items: center;
	background: #d86d0e;
	position: relative;
    text-align: center;
    border: none;
    font-family: "Noto Serif JP";
    cursor: pointer;
}

.zas_btn_area .form_btn button::before{
    content: "";
    background-image: url("../images/webp/btn_arrow.webp");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 6vw;
    height: 5vw;
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    right: 3vw;
}

.zas_btn_area .zas_btn02{
	margin: 5vw 0 0;
}

.zas_btn_area .zas_btn02 button{
	color: #333;
	background: #ccc;
}

.zas_btn_area .zas_btn02 button::before{
    background-image: url("../images/webp/btn_back_arrow.webp");
    right: auto;
    left: 3vw;
}


/* thanks
   ================================================================== */
.thanks{
    padding: 25vw 4vw;
}

.thanks p{
    margin: 8vw 0 0;
}

.thanks .go_top_btn{
	margin: 10vw 0 0;
	text-align: center;
}


@media screen and (min-width : 750px){    
  

    /* kv
       ================================================================== */
    .kv{
        height: 1334px;
    }

    .kv .catch{
        width: 350px;
        height: 350px;
        top: 93px;
        left: -15px;
    }

    .kv .catch .inbox{
        font-size: 34px;
        line-height: 50px;
    }

    .kv .catch .siz_l{
        font-size: 40px;
        line-height: 60px
    }

    .kv .title{
        bottom: 200px;
    }

    .kv .title > span{
        font-size: 100px;
        line-height: 120px;
        letter-spacing: 0.05em;
    }

    .kv .title .eng{
        top: 150px;
        right: -60px;
        width: 477px;
    }
    

    /* explanation
       ================================================================== */
    .explanation{
        padding: 100px 0;
    }

    .explanation .limit{
        margin: 40px auto 60px;
        width: 600px;
    }

    .explanation .limit .left{
        padding: 10px 3px 0 0;
        width: 60px;
        height: 130px;
        font-size: 40px;
        letter-spacing: 0.3em;
    }

    .explanation .limit .right{
        padding: 0 0 0 20px;
        width: calc(100% - 60px);
    }

    .explanation .limit .number{
        padding: 28px 0 0;
        width: 220px;
        font-size: 270px;
    }

    .explanation .limit .number_right{
        padding: 0 0 0 10px;
        width: calc(100% - 220px);
    }

    .explanation .limit .yen{
        font-size: 75px;
    }

    .explanation .limit .txt{
        margin: 5px 0 0;
        font-size: 43px;
        white-space: nowrap;
    }


    /* campaign_block
       ================================================================== */
    .campaign_block{
        padding: 80px 0 100px;
    }

    .campaign_block .list{
        margin: 65px auto 0;
    }

    .campaign_block .list > li{
        margin: 40px auto 0;
        padding: 65px 40px;
    }

    .campaign_block .list > li::before{
        width: 70px;
        height: 70px;
        top: -20px;
        left: -20px;
    }

    .campaign_block .list h3{
        font-size: 34px;
    }

    .campaign_block .list p{
        margin: 5px 0 0;
        font-size: 46px;
    }

    .campaign_block .list p .siz_s{
        font-size: 30px;
    }

    .campaign_block .list .icon{
        width: 130px;
        right: 20px;
    }


    /* merit_block
       ================================================================== */
    .merit_block{
        padding: 100px 0;
    }

    .merit_block .list{
        margin: 50px auto 70px;
    }

    .merit_block .list > li{
        margin: 50px auto 0;
    }

    .merit_block .list h3{
        padding: 0 10px 0 110px;
        height: 170px;
    }

    .merit_block .list h3 > span{
        font-size: 40px;
        line-height: 60px;
    }

    .merit_block .list h3::before{
        width: 50px;
        height: 50px;
        left: 38px;
    }

    .merit_block .list .text_box{
        padding: 50px 25px 40px 35px;
    }

    .merit_block .list p.note{
        font-size: 24px;
        line-height: 44px;
    }


    /* step_block
       ================================================================== */
    .step_block{
        padding: 45px 0 100px;
    }

    .step_block .intro_icon{
        margin: 50px auto 0;
        padding: 0 35px;
    }

    .step_block .list{
        margin: 70px auto 0;
    }

    .step_block .list > li{
        margin: 35px auto 0;
        padding: 25px 0 0;
    }

    .step_block .list .bg_box{
        padding: 25px 25px 80px 35px;
    }

    .step_block .list .title{
        margin: -160px auto 0;
        padding: 0 0 32px;
        width: 240px;
        height: 240px;
    }

    .step_block .list .title .txt{
        font-size: 30px;
    }

    .step_block .list .title .number{
        margin: 14px auto 0;
        width: 70px;
    }

    .step_block .list .box{
        padding: 45px 0 0;
    }

    .step_block .list .box p{
        margin: 40px auto 0;
    }

    .step_block .list .anime_btn{
        margin: 40px auto 0;
    }


    /* present_block
       ================================================================== */
    .present_block{
        padding: 100px 0;
    }

    .present_block .top_txt{
        margin: 35px auto 0;
        padding: 0;
    }

    .present_block .list{
        margin: 75px auto 0;
    }

    .present_block .list > li{
        margin: 135px auto 0;
        padding: 65px 35px 90px;
    }

    .present_block .list .if_title{
        width: 500px;
        height: 60px;
        font-size: 34px;
        top: -30px;
    }

    .present_block .list .title{
        font-size: 50px;
        line-height: 70px;
    }

    .present_block .list .box{
        padding: 40px 0 0;
    }

    .present_block .list .icon{
        margin: 0 auto;
    }

    .present_block .list .card{
        margin: 44px auto 0;
        width: 285px;
    }

    .present_block .list .photo{
        margin: 44px auto 0;
        width: 500px;
    }

    .present_block .list p{
        margin: 40px auto 0;
        font-size: 40px;
    }

    .present_block .list p .siz_l{
        font-size: 70px;
    }


    /* bottom_note
       ================================================================== */
    .bottom_note{
        margin: 45px 0 0;
    }


    /* contact_block
       ================================================================== */
    .contact_block{
        margin: 0 0 0;
    }

    .contact_block .bg_box{
        padding: 100px 40px 90px;
    }

    .contact_block .bottom_box{
        padding: 80px 40px 110px;
    }

    /* form */
    .conf_text{
        margin: 85px 0 0;
        font-size: 32px;
    }

    .req{
        margin: 0 0 0 20px;
        padding: 5px 17px 6px;
        font-size: 24px;
    }

    .contact_block .list{
        margin: 85px auto 0;
    }

    .contact_block .list > li{
        margin: 90px auto 0;
    }

    .contact_block .list h3{
        height: 80px;
        font-size: 32px;
    }

    .contact_block .entry_list{
        margin: 0 auto 0;
        padding: 0 35px;
    }

    .contact_block .entry_list > li{
        padding: 60px 0;
    }

    .contact_block .entry_list h4{
        padding: 0 0 37px;
        font-size: 32px;
    }

    .contact_block output,
    .contact_block input,
    .contact_block select,
    .contact_block textarea{
        margin: 0;
        padding: 35px;
        font-size: 28px;
    }

    .contact_block select{
        background-size: 20px 18px;
        background-position: right 20px center;
    }

    .contact_block textarea{
        height: 240px;
    }

    /* ラジオボタン */
    input[type='checkbox'] ,
    input[type='radio'] {
        width: 38px;
        height: 38px;
        margin: 0 20px 0 0;
    }

    input[type='checkbox']::before ,
    input[type='radio']::before {
        width: 38px;
        height: 38px;
    }

    input[type='checkbox']::after ,
    input[type='radio']::after {
        left: 8px;
        top: 8px;
        width: 24px;
        height: 24px;
    }

    /* privacy_text_block */
    .contact_block .privacy_text_block h4{
        font-size: 28px;
        line-height: 70px;
    }

    .contact_block .privacy_text_block .radio_input{
        margin: 40px 0 0;
    }

    .contact_block .privacy_text_block label{
        font-size: 28px;
    }

    .contact_block .privacy_text_block .link_text:hover{
        opacity: .6;
    }

    /* ボタン */
    .zas_btn_area{
        padding: 55px 0 35px;
    }

    .zas_btn_area .form_btn button{
        width: 500px;
        height: 120px;
        font-size: 30px;
        transition: .3s;
    }

    .zas_btn_area .form_btn button:hover{
        opacity: .5;
    }

    .zas_btn_area .form_btn button::before{
        width: 30px;
        height: 30px;
        right: 30px;
    }

    .zas_btn_area .zas_btn02{
        margin: 30px 0 0;
    }

    .zas_btn_area .zas_btn02 button::before{
        right: auto;
        left: 30px;
    }


    /* thanks
       ================================================================== */
    .thanks{
        padding: 100px 40px;
    }

    .thanks p{
        margin: 40px 0 0;
        font-size: 32px;
    }

    .thanks .go_top_btn{
        margin: 60px 0 0;
    }

    
}
