@charset "UTF-8";
/*----------------------------------------

            $[ip-varieties]

----------------------------------------*/

/* IP */

.IPmainJP {
    background-color: #EFEEEA;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 500;
    font-style: normal;
}

.IPmainEN {
    background-color: #EFEEEA;
    font-family: "Nunito Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: <weight>;
    font-style: normal;
    letter-spacing: normal;
}

@media screen and (min-width: 641px) {
    .br-sp {
        display: none;
    }
}




/* KV */

.IP_kv_bg {
    width: 100%;
}

@media screen and (min-width: 641px) {
    .IP_kv_bg_sp {
        display: none;
    }
}

@media screen and (max-width:640px) {
    .IP_kv_bg {
        display: none;
    }
}

@media screen and (max-width:640px) {
    .sec01 {
        padding-left: 20px;
        padding-right: 20px;
    }

    .sec03 {
        padding-left: 20px;
        padding-right: 20px;
    }

    .sec04 {
        padding-left: 20px;
        padding-right: 20px;
    }

    .sec05 {
        padding-left: 20px;
        padding-right: 20px;
    }

    .sec06 {
        padding-left: 20px;
        padding-right: 20px;
    }
}

.reverse {
    flex-direction: row-reverse;
}







.kv_button-container {
    max-width: 1128px;
    margin: auto;
}

.kv_button-pc {
    display: flex;
    justify-content: space-between;
}

.kv_button-pc_box {
    width: 49%;
}



@media screen and (min-width: 641px) {
    .kv_button-sp {
        display: none;
    }
}

@media screen and (max-width:640px) {
    .kv_button-pc {
        display: none;
    }

    .kv_button-sp {
        padding: 0px 20px;
        display: flex;
        justify-content: space-between;
    }

    .kv_button-sp_box {
        width: 49%;
    }
}











@media screen and (max-width:640px) {

    .IPkv_tag_jp_on p::before {
        top: 105%;
    }

    .IPkv_tag_jp_on {
        height: auto;
    }

    .IPkv_tag_jp_on p {
        font-size: 13px;
        padding: 2px 20px;
    }

    .IPkv_tag_jp_on h2 {
        font-size: 20px;
        line-height: 30px;
    }

    .IPkv_tag_en_off {
        padding: 10px;
    }

    .IPkv_tag_en_off p {
        font-size: 12px;
        line-height: 15px;
        padding: 10px 10px;
    }

    .IPkv_tag_en_off h2 {
        font-size: 20px;
        line-height: 22px;
        display: inline-block;
    }

    .IPkv_tag_en_off img {
        width: 25px;
    }

}






/* sec01 */

.sec01 {
    max-width: 1128px;
    margin: 0 auto;
}

.sec01_container {
    background-color: #fff;
    border-radius: 30px;
    display: block;
}

.sec01_box {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    padding: 0px 40px;
}

@media screen and (max-width:640px) {
    .sec01_box {
        padding: 0px 29px;
    }
}

.sec01_box h2 {
    display: inline-block;
    margin-top: 70px;
    margin-bottom: 45px;
    font-size: 30px;
    line-height: 50px;
}

@media screen and (max-width:640px) {
    .sec01_box h2 {
        display: inline-block;
        margin-top: 50px;
        margin-bottom: 20px;
        font-size: 20px;
        line-height: 40px;
    }
}

.sec01_box h2 span {
    color: #41A62C;
    font-size: 40px;
}

@media screen and (max-width:640px) {

    .sec01_box h2 span {
        font-size: 20px;
    }

}

.sec01_box p {
    font-size: 18px;
    line-height: 40px;
    text-align: justify;
}


@media screen and (max-width:640px) {
    .sec01_box p {
        font-size: 13px;
        line-height: 25px;
    }
}

.sec01_flexbox {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding-bottom: 70px;
}

@media screen and (max-width:640px) {
    .sec01_flexbox {
        display: flex;
        justify-content: flex-end;
        align-items: left;
        padding-bottom: 0px;
    }
}

.sec01_item img {
    padding-left: 70px;
}

.sec01_item h3 {
    font-size: 15px;
    text-align: left;
}

.sec01_item span {
    font-size: 25px;
    display: block;
    text-align: left;
}

@media screen and (max-width:640px) {
    .sec01_item img {
        padding-left: 20px;
        width: 150px;
    }

    .sec01_flexbox {
        position: relative;
        top: -30px;
    }

    .sec01_item h3 {
        font-size: 13px;
        line-height: 18px;
    }

    .sec01_item span {
        font-size: 20px;
        display: block;
        text-align: left;
    }

    .sec01_item_en h3 {
        font-size: 12px;
        line-height: 18px;
        margin-bottom: 5px;
    }

    .sec01_item_en span {
        line-height: 26px;
    }


}



/* sec02 */

.sec02 {
    max-width: 1128px;
    margin: 0 auto;
}

.sec02_flexbox {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1040px;
    margin: 0 auto 40px;
    padding: 0px 20px;
}

@media screen and (max-width:640px) {
    .sec02_flexbox {
        display: block;
    }
}


@media screen and (max-width:640px) {
    .sec02_item {
        width: 75%;
        display: block;
        margin: auto;
        position: relative;
        top: 15px;
        text-align: center;
    }
}

.sec02_item img {
    width: 80%;
    height: auto;
    margin: 0 auto;
}

@media screen and (max-width:640px) {
    .sec02_item img {
        width: 70%;
        margin: 0 auto 30px;
    }
}

.sec02_item_txt {
    padding-top: 40px;
}

@media screen and (max-width:640px) {
    .sec02_item_txt {
        padding-top: 0px;
    }
}

.sec02_item_txt h3 {
    font-size: 29px;
}

@media screen and (max-width:640px) {
    .sec02_item_txt h3 {
        font-size: 20px;
    }
}

.sec02_item_txt h3 span {
    color: #41A62C;
    background-color: #fff;
    border-radius: 10px;
    padding: 3px 10px;
    margin-right: 7px;
}

.sec02_item_txt p {
    font-size: 17px;
    line-height: 40px;
}

@media screen and (max-width:640px) {
    .sec02_item_txt p {
        font-size: 15px;
        line-height: 30px;
    }
}

.sec02_ul {
    font-weight: bold;
}

.sec02_ul li::before {
    content: url('../images/ip/sec02_li.png');
    display: inline-block;
    position: relative;
    top: 6px;
    margin-right: 5px;
}

@media screen and (max-width:640px) {
    .sec02_ul li {
        letter-spacing: 0px;
    }
}






/* sec03 */

.sec03 {
    max-width: 1088px;
    margin: 0 auto;
    background-color: #CEE7E6;
    border-radius: 60px;
    display: block;
    text-align: center;
    padding-left: 40px;
    padding-right: 40px;
}

@media screen and (max-width:640px) {
    .sec03 {
        border-radius: 30px;
        margin-left: 20px;
        margin-right: 20px;
    }
}


.sec03 h2 {
    font-size: 30px;
    display: inline-block;
    border-bottom: 2px solid #40220F;
    margin-bottom: 70px;
}

@media screen and (max-width:640px) {
    .sec03 h2 {
        font-size: 23px;
        display: inline-block;
        border-bottom: 2px solid #40220F;
        margin-bottom: 30px;
    }

    .sec03_en h2 {
        font-size: 21px;
    }
}

.sec03_flexbox {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1040px;
    margin: 0 auto 40px;
}

@media screen and (max-width:640px) {
    .sec03_flexbox {
        display: block;
    }
}

.sec03_flexbox.japan {
    border-top: solid 1px #fff;
    margin-top: 60px;
    padding-top: 60px;
    flex-direction: row-reverse;
}

@media screen and (max-width:640px) {
    .sec03_flexbox.japan {
        margin-top: 30px;
        padding-top: 30px;
    }
}


.sec03_item {
    width: 40%;
}

@media screen and (max-width:640px) {
    .sec03_item {
        width: 75%;
        display: block;
        margin: auto;
        position: relative;
        top: 15px;
        text-align: center;
    }
}

.sec03_item img {
    width: 80%;
    height: auto;
    margin: 0 auto;
}

@media screen and (max-width:640px) {
    .sec03_item img {
        width: 90%;
        margin: 0 auto 30px;
    }
}

.sec03_ul {
    display: block;
    width: 55%;
    text-align: left;
}


@media screen and (max-width:640px) {
    .sec03_ul {
        width: 100%;
        margin-top: 20px;
    }
}

.japan .sec03_ul {
    padding-left: 10%;
}

.sec03_en .japan .sec03_ul {
    padding-left: 5%;
}

@media screen and (max-width:640px) {
    .japan .sec03_ul {
        padding-left: 0;
    }
}

.sec03_ul li {
    position: relative;
    margin: 0 0 5px;
    padding: 0 0 0 30px;
    font-weight: bold;
    line-height: 1.5em;
}

@media screen and (max-width:640px) {
    .sec03_ul li {
        padding: 0 0 0 20px;
    }
}

.sec03_ul li::before {
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    position: absolute;
    left: 0;
    top: 0;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: top left;
}

@media screen and (max-width:640px) {
    .sec03_ul li::before {
        width: 15px;
        height: 15px;
    }
}

.world .sec03_ul li::before {
    background-image: url('../images/ip/sec03_world_li.png');
}

.japan .sec03_ul li::before {
    background-image: url('../images/ip/sec03_japan_li.png');
}

.sec03_ul li span {
    display: inline-block;
    font-size: 12px;
}

@media screen and (max-width:640px) {

    .sec03_ul li span {
        font-size: 10px;

    }
}





/* sec04 */

.sec04 {
    max-width: 1088px;
    display: block;
    margin: 0 auto;
    text-align: center;
}

.sec04_flexbox {
    display: flex;
    max-width: 930px;
    margin: 0 auto;
    justify-content: space-between;
}

@media screen and (max-width:640px) {
    .sec04_flexbox {
        display: block;
    }
}

.sec04 h2 {
    font-size: 30px;
    display: inline-block;
    border-bottom: 2px solid #40220F;
    margin-bottom: 40px;
}

@media screen and (max-width:640px) {
    .sec04 h2 {
        font-size: 23px;
        margin-bottom: 30px;
    }

    .sec04_en h2 {
        font-size: 21px;
    }
}

.sec04_container {
    background-color: #ffffff;
    border-radius: 20px;
    padding-top: 60px;
}

@media screen and (max-width:640px) {
    .sec04_container {
        padding-top: 30px;
    }
}

.sec04_box {
    max-width: 900px;
    display: block;
    margin: 0 auto;
    text-align: center;
    padding-left: 20px;
    padding-right: 20px;
}

@media screen and (max-width:640px) {
    .sec04_box {
        padding-left: 20px;
        padding-right: 20px;
        display: block;
        margin: 0 auto;
        text-align: center;
    }
}

.sec04_container h3 {
    background-color: #FFCC00;
    margin-bottom: 40px;
    border-radius: 5px;
}

@media screen and (max-width:640px) {
    .sec04_container h3 {
        background-color: #FFCC00;
        margin-bottom: 30px;
        border-radius: 5px;
    }
}

.sec04_item {
    max-width: 170px;
}

@media screen and (max-width:640px) {
    .sec04_item {
        display: block;
        margin: 0 auto;
        text-align: center;
    }
}



.sec04_item img {
    margin-bottom: 25px;
    display: block;
    align-items: right;
}

@media screen and (max-width:640px) {
    .sec04_item img {
        margin-bottom: 15px;
        display: block;
        align-items: right;
    }
}


.sec04_item p {
    font-size: 19px;
    line-height: 25px;
}

.sec04_item p span {
    font-size: 15px;
}

.sec04_item_txt {
    max-width: 630px;
}

.sec04_item_txt h4 {
    font-size: 20px;
    margin-bottom: 25px;
}

.sec04_item_txt p {
    font-size: 15px;
    font-weight: 500;
    text-align: justify;
}

.sec04_item_txt a span {
    display: inline-block;
    border-bottom: 1px solid #40220F;
}

.sec04_item_txt img {
    width: 30px;
}

@media screen and (max-width:640px) {
    .sec04_item_txt h4 {
        font-size: 16px;
        line-height: 30px;
    }

    .sec04_item_txt {
        position: relative;
        top: -20px;
    }

    .sec04_item_txt p {
        font-size: 13px;
        line-height: 25px;
    }
}

.sec04_item_txt a {
    font-size: 15px;
    margin-bottom: 25px;
    display: block;
    text-align: right;
    position: relative;
    top: -20px;
}

@media screen and (max-width:640px) {
    .sec04_item_txt a {
        top: -40px;
    }
}


/* sec05 */

.sec05 {
    display: block;
    margin: 0 auto;
    text-align: center;
}

.sec05_title {
    width: 450px;
    margin: 0 auto;
    text-align: center;
    position: absolute;
    top: 11%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
}

.sec05_title_en {
    width: 530px;
    top: 9%;
}

@media screen and (max-width:640px) {
    .sec05_title {
        width: 190px;
        position: absolute;
        top: 6%;
    }

    .sec05_title_en {
        width: 260px;
        top: 4%;
    }
}

.sec05_title h2 {
    font-size: 30px;
    border-bottom: 2px solid #40220F;
    margin-bottom: 60px;
    position: relative;
    top: -20px;
}

.sec05_title_en h2 {
    top: 0px;
}

.sec05_title p {
    width: 81%;
    position: relative;
    font-size: 20px;
    background-color: #41A62C;
    border-radius: 10px;
    color: #ffffff;
    display: inline-block;
    padding: 5px 20px;
}

.sec05_title p::before {
    position: absolute;
    top: 110%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    width: 17px;
    height: 10px;
    background-color: #41A62C;
    clip-path: polygon(0 0%, 100% 0, 50% 100%);
    content: '';
}

.sec05_title_en p {
    width: 100%;
}

.sec05_title_en p::before {
    position: absolute;
    top: 105%;
}

.sec05_flexbox_container {
    background-color: #D1D1B0;
    padding-top: 190px;
    padding-bottom: 100px;
    padding-left: 20px;
    padding-right: 20px;
}

@media screen and (max-width:640px) {

    .sec05_title h2 {
        font-size: 25px;
        line-height: 35px;
        border-bottom: 2px solid #40220F;
        margin-bottom: 50px;
        position: relative;
        top: -30px;
    }

    .sec05_title p::before {
        position: absolute;
        top: 106%;
    }

    .sec05_title p {
        width: 100%;
        line-height: 30px;
        padding: 10px 20px;
        font-size: 17px;
    }


    .sec05_en .sec05_title p {
        line-height: 24px;
    }

    .sec05_flexbox_container {
        background-color: #D1D1B0;
        padding: 160px 20px 10px 20px;
    }
}

.sec05_flexbox {
    display: flex;
    max-width: 900px;
    margin: 0 auto;
    justify-content: space-between;
}

@media screen and (max-width:640px) {
    .sec05_flexbox {
        display: block;
    }
}

.sec05_item {
    max-width: 240px;
    display: inline-block;
}

.sec05_item_en {
    max-width: 288px;
    display: inline-block;
}

.sec05_item img {
    margin-bottom: 20px;
    display: inline-block;
}

@media screen and (max-width:640px) {
    .sec05_item img {
        display: block;
        width: 150px;
        margin: 0 auto 20px;
    }
}


.sec05_item_txt {
    max-width: 556px;
    text-align: left;
    display: inline-block;
}

.sec05_item_txt h3 {
    font-size: 20px;
    margin-bottom: 15px;
    margin-top: 30px;
}

.sec05_item_txt p {
    font-size: 15px;
    line-height: 30px;
}

.sec05_item p {
    font-size: 30px;
    line-height: 40px;
    margin-top: 15px;
}

.sec05_item_en p {
    font-size: 20px;
    line-height: 30px;
    margin-top: 15px;
}

.sec05_item h4 {
    display: inline;
    font-size: 15px;
    color: #ffffff;
    background-color: #40220F;
    border-radius: 5px;
    padding: 5px 20px;
}

.sec05_item p a:hover {
    color: #41A62C;
}

.sec05_item p span {
    display: inline-block;
    margin-top: 10px;
    font-size: 15px;
    line-height: 1.5em;
    text-decoration: underline;
}

.sec05_flexbox_container h5 {
    font-size: 20px;
    display: inline-block;
    border: 2px solid #40220F;
    border-radius: 10px;
    padding: 30px 90px;
    margin-top: 30px;
    font-weight: bold;
}

@media screen and (max-width:640px) {
    .sec05_item_txt p {
        font-size: 14px;
        line-height: 25px;
    }

    .sec05_item_txt {
        position: relative;
        top: -40px;
    }

    .sec05_item_txt h3 {
        font-size: 16px;
        line-height: 31px;
        text-align: center;
    }

    .sec05_flexbox_container h5 {
        border-radius: 10px;
        padding: 20px 15px;
        margin-top: 0px;
        position: relative;
        top: -40px;
        font-size: 12px;
    }
}




/* sec06 */

.sec06 {
    display: block;
    margin: 0 auto;
    text-align: center;
    padding-bottom: 150px;
    margin-bottom: 50px;
}

@media screen and (max-width:640px) {
    .sec06 {
        padding-bottom: 70px;
    }
}

.sec06 h2 {
    display: inline-block;
    font-size: 30px;
    border-bottom: 2px solid #40220F;
    margin-bottom: 50px;
}

@media screen and (max-width:640px) {
    .sec06 h2 {
        font-size: 23px;
        margin-bottom: 30px;
    }
}

.sec06 p {
    font-size: 20px;
    margin-bottom: 45px;
}

@media screen and (max-width:640px) {
    .sec06 p {
        font-size: 20px;
        margin-bottom: 30px;
        line-height: 30px;
    }
}

.sec06_bottan {
    max-width: 530px;
    margin: auto;
}

.sec06_bottan a {
    display: block;
    padding: 40px 0;
    border: 3px solid #40220F;
    border-radius: 20px;
    color: #40220F;
    font-size: 20px;
    line-height: 30px;
    text-align: center;
    background-image: url('../images/ip/arrow_IP.png');
    background-repeat: no-repeat;
    background-size: 40px;
    background-position: 95% center;
}

.sec06_bottan a:hover {
    background-image: url('../images/ip/arrow_IP_hover.png');
    background-color: #40220F;
    color: #fff;
}