@charset "UTF-8";

/* Setting
****************************************************************************/


/* Common
****************************************************************************/
html.scroll {
    scroll-behavior: smooth;
    scroll-padding-top: 15rem;
}

@media screen and (min-width: 1440px) {
    html.scroll {
        scroll-padding-top: 150px;
    }
}

@media screen and (max-width: 768px) {
    html.scroll {
        scroll-padding-top: 4em;
    }
}

main.lp {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: initial;
    line-height: 1.6;
    overflow-x: hidden;
}

main.lp * {
    box-sizing: initial;
}

main.lp a {
    text-decoration: underline;
}

@media only screen and (max-width: 768px) {
    main.lp {
        min-width: 0;
        font-size: 3.46667vw;
        line-height: 1.5;
    }
}

main.lp span.ib {
    display: inline-block;
    text-indent: 0;
}

.container {
    color: #000;
    width: 100%;
}

.container h4 {
    color: #000;
}

@media only screen and (max-width: 640px) {
    .container {
        min-width: auto;
    }
}

.container img {
    width: 100%;
}

.container a {
    transition-duration: 0.2s;
    /* color: #FFF; */
}

#campaign a{
    transition-duration: 0.2s;
    color: #00D4E7;
}

@media print,
only screen and (min-width: 641px) {
    .container a:hover {
        opacity: 0.7;
    }
}

.container h1,
.container h2,
.container h3,
.container h4,
.container h5 {
    margin: 0 auto;
}


.container .inner {
    max-width: 800px;
    width: 100%;
    margin: 0 auto;
}

.container .res-pc {
    display: inline !important;
}

@media only screen and (max-width: 768px) {
    .container .res-pc {
        display: none !important;
    }
}

.container .res-sp {
    display: none !important;
}

@media only screen and (max-width: 768px) {
    .container .res-sp {
        display: inline !important;
    }
}

.container .imgtxt {
    display: block;
    height: 0;
    overflow: hidden;
    background: no-repeat center top;
    background-size: cover;
    margin-left: auto;
    margin-right: auto;
}

.container section {
    box-sizing: border-box;
}

@media only screen and (max-width: 640px) {
    .container section {
        width: 100%;
    }
}

.container h1,
.container h2,
.container h3 {
    font-weight: normal;
    line-height: 1.6;
    letter-spacing: 0;
}

.container h4 {
    font-weight: bold;
    font-size: 22px;
    letter-spacing: 0;
    line-height: 1;
}

.container small {
    font-size: 85%;
}

@media only screen and (max-width: 640px) {

    .container h1,
    .container h2,
    .container h3 {
        line-height: 1.5;
    }
}

.container h2.sec-title {
    text-align: center;
}

.container h2.sec-title img {
    width: 100%;
}

@media only screen and (max-width: 640px) {
    h2.sec-title:not(.d-pt-sec-title) {
        font-size: 4.8vw;
    }
}

.mt20 {
    margin-top: 20px !important;
}

.inline {
    display: inline !important;
}

/* Main visual
****************************************************************************/

@media print,
only screen and (min-width: 641px) {

    #mv {
        max-width: 1153px;
        margin: auto;
    }

    #mv h1 {
        padding-top: 46.15%;
        background-image: url(../images/mv-pc.webp);
        backface-visibility: hidden;
        width: 100%;
    }
}

@media only screen and (max-width: 640px) {
    #mv h1 {
        padding-top: 157%;
        background-image: url(../images/mv-sp.webp);
        background-size: cover;
        backface-visibility: hidden;
        /* max-width: 95%; */
    }

}


/* campaign
****************************************************************************/

#campaign {
    overflow: hidden;
    padding: 65px 0;
}

#campaign .inner {
    max-width: 1000px;
}


#campaign.conversion h2 strong.h2_color {
    color: #00D4E7;
    font-size: 1.3em;
}

#campaign.conversion h2 span.h2_color {
    color: #00D4E7;
}

#campaign.conversion h2 {
    margin-bottom: 1.5em;
}

#campaign p {
    font-size: 18px;
}

#campaign .link_wrap>a {
    width: 400px;
    max-width: 400px;
}

@media only screen and (max-width: 640px) {
    #campaign .link_wrap>a {
        width: 100%;
        margin: 1em auto !important;
    }
}

.btn_notice {
    text-align: center;
    font-size: 19px;
}

hr.line {
    border: 1px solid #00D4E7;
    margin: 1em auto 0;
}


@media only screen and (max-width: 768px) {
    #campaign {
        padding: 7vw 0;
    }
}

#campaign p.note {
    font-size: 17px;
    margin: auto;
    width: 800px;
    text-align: center;
    font-weight: 500;
}

#campaign p.note:before {
    content: "※";
}

#campaign p.note.ast:before {
    content: "＊";
}

@media only screen and (max-width: 768px) {
    #campaign p.note {
        width: 100%;
        font-size: 3.029vw;
    }
}





/* conversion
****************************************************************************/

.conversion {
    padding: 65px 0;
    background-size: cover;
    text-align: center;
}

@media only screen and (max-width: 640px) {
    .conversion {
        padding: 7.2vw 0 11.2vw
    }
}

.conversion h2,
.contact h2 {
    position: relative;
    font-size: 29px;
    font-weight: bold;
    text-align: center;
}

@media only screen and (max-width: 768px) {

    .conversion h2,
    .contact h2 {
        font-size: 4.5vw;
    }
}


/* links
**************************************************************************** */
#links {
    background: #EEF0EE;
    padding: 80px 0;
}

@media only screen and (max-width: 768px) {
    #links {
        padding: 8vw 0;
    }
}

#links .links_head {
    color:#5B7E6F;
    font-weight: bold;
    font-size: 29px;
    text-align: center;
}

@media only screen and (max-width: 768px) {
    #links .links_head {
        font-size: 4.5vw;
    }
}

#links .arrow {
    width: 100px;
    margin: 20px auto 40px;
}

@media only screen and (max-width: 768px) {
    #links .arrow {
        width: 20vw;
        margin: 6vw auto;
    }
}

#links .links_wrap {
    display: flex;
    flex-wrap: wrap;
    gap:2%;
}

@media only screen and (max-width: 768px) {
    #links .links_wrap {
        flex-direction: column;
        gap:3vw;
        align-items: center;
    }
}

#links .links_wrap>div {
    flex-basis: 32%;
    margin-bottom: 2%;
}

@media only screen and (max-width: 768px) {
    #links .links_wrap>div {
        width: 85%;
    }
}

#links .note {
    width: fit-content;
    margin: 30px auto 0;
    text-align: center;
    font-size: 0.8em;
}

@media only screen and (max-width: 768px) {
    #links .note {
        width: 85%;
        margin: 3vw auto 0;
        font-size: unset;
    }
}