@charset "UTF-8";
html {
    overflow-x: hidden;
}
body {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    color: #353535;
    overflow-x: hidden;
}

img {
    width: 100%;
    display: block;
}

a {
    text-decoration: none;
    color: #353535;
    display: inline-block;
}

/* ///////////////////////////////////////////////
kv
//////////////////////////////////////////////// */
.kv {
    background: url(../img/bg-kv.jpg) no-repeat top left / cover;
    height: min(43.79vw,613px);
    position: relative;
    border-top: 7px solid #102e4f;
}
.kv-txt-wrap {
    position: absolute;
    top: min(7.79vw,109px);
    left: 50%;
    transform: translateX(-99%);
    -webkit-transform: translateX(-99%);
    -ms-transform: translateX(-99%);
    width: min(43.75vw,630px);
    z-index: 2;
    filter: drop-shadow(-6px -5px 14px rgba(255, 255, 255, 1));
}
.kv-txt-img-1 {
    width: min(62.86vw,880px);
    filter: drop-shadow(6px 5px 3px rgba(255, 255, 255, 1));
}

.kv-img {
    position: absolute;
    top: min(2.86vw,40px);
    left: 50%;
    transform: translateX(36%);
    -webkit-transform: translateX(36%);
    -ms-transform: translateX(36%);
    width: min(33vw,462px);
    z-index: 1;
}

.kv-logo {
    position: absolute;
    top: -7px;
    left: 50%;
    transform: translateX(-256%);
    -webkit-transform: translateX(-256%);
    -ms-transform: translateX(-256%);
    width: min(17.07vw,239px);
    height: min(3.71vw,52px);
    background: #102e4f;
    border-radius: min(0.71vw,10px);
}
.kv-logo img {
    width: 88%;
    margin: min(0.71vw,10px) auto 0;
}

@media screen and (max-width:768px) { 
    .kv {
        background: url(../img/bg-kv.jpg) no-repeat top right / cover;
        height: 120vw;
    }
    .kv-txt-img-1 {
        width: 92vw;
        filter: drop-shadow(0px 0px 20px rgba(255, 255, 255, 1));
        
    }
    .kv-txt-wrap {
        top: 69vw;
        transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        width: 90vw;
        z-index: 1;
        filter: initial;
    }
    .kv-img {
        top: 14vw;
        left: 50%;
        width: 45vw;
        transform: translateX(6.7%);
        -webkit-transform: translateX(6.7%);
        -ms-transform: translateX(6.7%);
    }
    .kv-logo {
        position: absolute;
        top: -7px;
        left: 0;
        transform: initial;
        -webkit-transform: initial;
        -ms-transform: initial;
        width: 52vw;
        height: 11vw;
        border-radius: 1.6vw;
    }
    .kv-logo img {
        margin: 2.4vw auto 0;
    }
    
}

/* ///////////////////////////////////////////////
case
//////////////////////////////////////////////// */
.case {
    background: url(../img/bg-case.jpg) no-repeat top center / cover;
    padding: min(4.86vw,68px) 0;
}
.case-inner {
    width: max-content;
    margin: 0 auto;
}
.case h2 {
    font-size: min(3.29vw,46px);
    font-weight: 900;
    text-align: center;
    letter-spacing: -0.02em;
    line-height: 0.891;
    position: relative;
    width: max-content;
    margin: 0 auto;
}
.case-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: min(2.29vw,32px);
    position: relative;
    width: min(74vw,1036px);
}
.case-card-img-wrap {
    position: relative;
    margin: min(4.29vw,60px) 0 min(1.14vw,16px) 0;
}
.case-card-title {
    position: absolute;
    bottom: min(0.5vw,7px);
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    font-size: min(1.64vw,23px);
    font-weight: 700;
    letter-spacing: -0.1em;
    color: #fff;      
    width: max-content; 
    font-style: italic;
}
.case-txt-wrap {
    display: flex;
    align-items: center;
    gap: min(0.5vw,7px);
}
.case-txt-wrap img {
    width: min(1.71vw,24px);
}
.case-txt-wrap p {
    font-size: min(1.29vw,18px);
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.8888;
}

@media screen and (max-width:768px) { 
    .case {
        background: url(../img/bg-case-sp.jpg) no-repeat top center / cover;
        padding: 15vw 0;
    }
    .case h2 {
        font-size: 7vw;
        line-height: 1.4;
    }
    .case-inner {
        width: 90vw;
        margin: 0 auto;
    }
    .case-txt-wrap p {
        font-size: 6vw;
    }
    .case-txt-wrap img {
        width: 6vw;
    }
    .case-img {
        left: -25vw;
        width: 36vw;
    }
    .case-wrap {
        display: grid;
        grid-template-columns: 1fr;
        margin: 6vw auto 0;
        gap: 6vw;
    }
    .case-card-title {
        bottom: 2vw;
        font-size: 7vw;
    }

}
/* ///////////////////////////////////////////////
contact
//////////////////////////////////////////////// */
.contact {
    background: 
        url(../img/bg-contact-top.png) no-repeat top center / cover,
        url(../img/bg-contact.jpg) no-repeat bottom center / cover;
    background-size: 100% min(19.07vw,267px),100% min(64.29vw,900px);
    height: min(79.71vw,1116px);
}
.contact h2 {
    color: #FFF;
    font-size: min(4.09vw,57.25px);
    line-height: 1.457;
    letter-spacing: -0.02em;
    text-align: left;
    text-shadow: 2px 2px 10px #000;
    padding-top: min(2vw,28px);
    width: max-content;
    margin: 0 auto;
    transform: rotate(-3.71deg);    
}
.contact h2 span {
    font-size: min(5.16vw,72.18px);
    color: #2160a7;
    text-shadow: initial;
    position: relative;
    z-index: 1;
}
.contact h2 span::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);  
    -ms-transform: translate(-50%, -50%);
    background: #fff600;
    width: 100%;
    height: 76%;
    z-index: -1;
}
.contact-tel-wrap {
    background: #fff;
    width: min(71.43vw,1000px);
    height: min(20.64vw,289px);
    margin: min(8.71vw,122px) auto 0;
    position: relative;
}
.contact-tel-wrap-title {
    width: max-content;
    margin: 0 auto;
    font-size: min(2.86vw,40px);
    letter-spacing: -0.02em;
    line-height: 1;
    font-weight: 700;
    padding-top: min(3.5vw,49px);
}
.icon-tel {
    width: min(10vw,140px);
}
.tel-no {
    font-size: min(7.14vw,100px);
    font-weight: 900;
    letter-spacing: -0.02em;
    color: #2160a7;
    position: relative;
    top: max(-0.6vw,-8.4px);
}
.tel-wrap {
    display: flex;
    align-items: center;
    width: max-content;
    margin: 0 auto;
    gap: min(0.93vw,13px);
    padding-right: min(3vw,42px);
    margin-top: min(0.6vw,8.4px);
}
.tel-txt {
    font-size: min(2.21vw,31px);
    text-align: center;
    font-weight: 500;
    margin: max(-1vw,-14px) auto 0;
    letter-spacing: 0.075em;
}
.line-wrap {
    background: #184679;
    width: min(62.86vw,880px);
    height: min(12.14vw,170px);
    margin: min(6.43vw,90px) auto 0;
    border-top: min(0.36vw,5px) solid #03c253;
    position: relative;
}
.line-wrap a {
    display: block;
}
.line-txt {
    font-size: min(2.36vw,33px);
    font-weight: 500;
    line-height: 1.2727;
    letter-spacing: -0.02em;
    color: #fff;
    padding: min(2.97vw, 41.58px) 0 0 min(7.36vw, 103px);
}
.line-img {
    position: absolute;
    top: max(-4.93vw,-69px);
    right: min(8.64vw,121px);
    width: min(17.71vw,248px);
}
.contact-bottom-wrap {
    display: flex;
    align-items: center;
    width: min(71.43vw,1000px);
    margin: min(4.93vw,69px) auto 0;
    gap: min(2.86vw,40px);
}
.contact-bottom-wrap-left {
    color: #fff600;
    font-size: min(2.57vw,36px);
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1.305;
    font-style: italic;
    position: relative;
}
.contact-bottom-wrap-left-icon {
    position: absolute;
    top: max(-3.3vw,-46.2px);
    left: max(-3.6vw,-50.4px);
    width: min(4.09vw,57.25px);
}
.contact-bottom-wrap-left span {
    font-size: min(2.93vw,41px);
}
.contact-bottom-wrap-right {
    position: relative;
    color: #fff;
    font-size: min(1.29vw,18px);
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.8888;
}
.contact-bottom-wrap-right::before {
    content: "";
    position: absolute;
    top: 0;
    left: max(-1vw,-14px);
    background: #fff600;
    width: min(0.14vw,2px);
    height: 100%;
}
.contact-tel-wrap-deco {
    position: absolute;
    top: max(-2.86vw,-40px);
    left: max(-1vw,-14px);
    width: min(12.07vw,169px);
}
@media screen and (max-width:768px) { 
    .contact {
        background:
            url(../img/bg-contact-top.png) no-repeat top center / cover,
            url(../img/bg-contact.jpg) no-repeat bottom center / cover;
        background-size: 100% 42vw, cover;
        height: initial;
        padding-bottom: 15vw;
    }
    .contact h2 {
        font-size: 7vw;
    }
    .contact h2 span {
        font-size: 7.4vw;
    }
    .contact-tel-wrap {
        width: 90vw;
        height: 40vw;
        margin: 30vw auto 0;
    }
    .contact-tel-wrap-title {
        font-size: 5vw;
        padding-top: 7vw;
    }
    .tel-no {
        font-size: 10vw;
        top: max(-0.6vw,-2.946px);
    }
    .icon-tel {
        width: 15vw;
    }
    .tel-txt {
        font-size: 4vw;
    }
    .line-wrap {
        width: 90vw;
        height: initial;
        border-top: 2vw solid #03c253;
    }
    .line-txt {
        font-size: 6vw;
        padding: 8vw 0 0 0;
        margin: 0 auto;
        width: max-content;
    }
    .line-img {
        position: initial;
        width: 80vw;
        margin: 8vw auto;
    }
    .contact-bottom-wrap {
        flex-direction: column;
    }
    .contact-bottom-wrap-left {
        font-size: 7vw;
    }
    .contact-bottom-wrap-left span {
        font-size: 8.5vw;
    }
    .contact-bottom-wrap-left-icon {
        top: -6vw;
        left: -8vw;
        width: 9vw;
    }
    .contact-bottom-wrap {
        margin: 18vw auto 0;
        width: 90vw;
    }
    .contact-bottom-wrap-right {
        font-size: 6vw;
    }
    .contact-bottom-wrap-right::before {
        top: -1vw;
        left: 0;
        width: 100%;
        height: 0.3vw;
    }
    .contact-tel-wrap-deco {
        top: -18vw;
        left: -4vw;
        width: 24vw;
    }
}
/* ///////////////////////////////////////////////
service
//////////////////////////////////////////////// */
.service {
    background: #ebf6ff;
    padding: min(6.79vw,95px) 0 min(6.93vw,97px) 0;
}
.service-title-top {
    width: min(46.36vw,649px);
    height: min(4.29vw,60px);
    background: #2160a7;
    clip-path: polygon(3% 0, 100% 0%, 97% 100%, 0% 100%);
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    font-size: min(2.57vw,36px);
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.02em;
    line-height: 1;
}
.service h2 {
    font-size: min(4.29vw,60px);
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1;
    margin: min(2vw,28px) auto 0;
    width: max-content;
    font-style: italic;
}
.service-card-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: min(2.71vw,38px) min(3.57vw,50px);
    width: min(71.43vw,1000px);
    margin: min(4.86vw,68px) auto 0;
}
.service-card {
    width: min(21.43vw,300px);
    height: min(22.07vw,309px);
}
.service-card-img-wrap {
    position: relative;
    width: min(21.43vw,300px);
    height: min(13.14vw,184px);
}
.service-card-img-wrap p {
    background: #2160a7;
    color: #fff600;
    font-size: min(2.07vw,29px);
    letter-spacing: 0.025em;
    position: absolute;
    top: min(0.71vw,10px);
    left: 0;
    clip-path: polygon(0% 0, 100% 0%, 90% 100%, 0% 100%);
    font-style: italic;
    line-height: 1;
    padding: min(0.5vw,7px) min(1.29vw,18px) min(0.43vw,6px) min(0.79vw,11px);
}
.service-card-txt-wrap {
    background: #2160a7;
    color: #fff;
    padding: min(0.79vw,11px) min(2.93vw,41px) min(0.86vw,12px) min(2.57vw,36px);
}
.service-card-txt-wrap.margin {
    padding: min(0.79vw, 11px) min(2.93vw, 41px) min(0.86vw, 12px) min(1.65vw, 23px);
}
.service-card-txt-wrap.margin .service-card-price-wrap {
    position: relative;
    left: 1vw;
}
.service-card-txt-title {
    font-size: min(2.14vw,30px);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1;
    text-align: center;
    font-style: italic;
    white-space: nowrap;
}
.service-card-txt-title span {
    font-size: min(1.71vw,24px);
}
.service-card-price-wrap {
    display: flex;
    align-items: center;
    margin: min(1.07vw,15px) auto 0;
    gap: min(0.39vw,11px);
}
.service-card-price-title {
    font-size: min(1.29vw,18px);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #2160a7;
    width: min(5.29vw,74px);
    height: min(3.86vw,54px);
    display: flex;
    justify-content: center;
    align-items: center;
    background: #fff;
}
.service-card-price-1 {
    font-size: min(2.14vw,30px);
    letter-spacing: -0.02em;
    font-weight: 700;
    line-height: 1;
    padding-bottom: min(0.4vw,5.6px);
    padding-left: min(0.9vw, 12.753px);
}
.service-card-price-1 span {
    font-size: min(1.43vw,20px);
}
.service-card-price-2 {
    font-size: min(1.29vw,18px);
    font-weight: 500;
    letter-spacing: -0.02em;
    white-space: nowrap;
    line-height: 1;
}

@media screen and (max-width:768px) { 
    .service {
        padding: 15vw 0;
    }
    .service-title-top {
        width: 90vw;
        height: 10vw;
        font-size: 5vw;
    }
    .service h2 {
        font-size: 7vw;
        margin: 4vw auto 0;
        width: max-content;
    }
    .service-card-wrap {
        display: grid;
        grid-template-columns: 1fr;
        gap: 6vw;
        width: 90vw;
        margin: 10vw auto;
    }
    .service-card-img-wrap p {
        font-size: 7vw;
        top: 3vw;
        padding: 2vw 4vw 2vw 2vw;
    }
    .service-card-txt-title {
        font-size: 7vw;
    }
    .service-card-txt-title span {
        font-size: 5vw;
    }
    .service-card-price-wrap {
        margin: 4vw auto 0;
        gap: 2vw;
        width: max-content;
    }
    .service-card-price-title {
        font-size: 6vw;
        width: 24vw;
        height: 14vw;
    }
    .service-card-price-1 {
        font-size: 7vw;
        padding-bottom: 1vw;
        padding-left: 4vw;
    }
    .service-card-price-1 span {
        font-size: 5vw;
    }
    .service-card-price-2 {
        font-size: 5vw;
    }
    .service-card-txt-wrap {
        padding: 5vw 0;
    }
    .service-card-txt-wrap.margin {
        padding: 5vw 0;
    }
    .service-card {
        width: 100%;
        height: initial;
    }
    .service-card-img-wrap {
        width: 100%;
        height: initial;
    }
    .service-card-txt-wrap.margin .service-card-price-wrap {
        left: initial;
    }
}


/* ///////////////////////////////////////////////
point
//////////////////////////////////////////////// */
.point {
    background: url(../img/bg-point.png) repeat top center / contain;
    background-color: #fff;
    padding: min(6.36vw,89px) 0 min(8.57vw,120px);
}
.point h2 {
    font-size: min(4.29vw,60px);
    font-weight: 900;
    letter-spacing: -0.02em;
    margin: 0 auto;
    width: max-content;
    text-align: center;
    line-height: 1;
    font-style: italic;
}
.point h2 .color {
    position: relative;
    color: #fff600;
}
.point h2 .color::after {
    content: "";
    position: absolute;
    top: max(-0.5vw,-7px);
    left: 0;
    width: 107%;
    height: 100%;
    background: #2160a7;
    z-index: -1;

}
.point h2 .no {
    font-size: min(6.43vw,90px);
}
.point-title {
    width: min(32.64vw,470px);
}
.point-card-wrap {
    width: min(71.43vw,1000px);
    margin: min(5.36vw,75px) auto 0;
    display: flex;
    flex-direction: column;
    gap: min(5.14vw, 72px);
}
.point-card {
    border-radius: min(1.43vw,20px);
    background-color: #fff;
    box-shadow: 0px 0px 13.12px 2.88px rgba(19, 56, 97, 0.17);
    position: relative;
}
.point-card-title-1 {
    clip-path: polygon(10% 0, 100% 0%, 90% 100%, 0% 100%);
    width: min(12.29vw,172px);
    height: min(4.14vw,58px);
    background: #2160a7;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    font-size: min(2.14vw,30px);
    font-weight: 500;
    color: #fff;
    letter-spacing: -0.02em;
    line-height: 1;
    position: absolute;
    top: max(-1.21vw,-17px);
    left: min(4.07vw,57px);
}
.point-card-title-2 {
    font-size: min(2.86vw,40px);
    font-weight: 900;
    letter-spacing: -0.02em;
    color: #2160a7;
    font-style: italic;
    padding: min(4.29vw,60px) min(3vw,42vw) min(1.79vw,25px) min(3.57vw,50px);
    background: #ebf6ff;
    line-height: 1.5;
    border-radius: min(1.43vw, 20px) min(1.43vw, 20px) 0 0;
}
.point-card-title-2.margin-1 {
    padding-left: min(4.21vw,59px);
}
.point-card-txt-wrap {
    background: #fff;
    padding: min(1.5vw,21px) min(3.14vw,44px) min(1.86vw,26px) min(3.93vw,55px);
    display: flex;
    align-items: center;
    gap: min(2vw,28px);
    border-radius: 0 0 min(1.43vw, 20px) min(1.43vw, 20px);
}
.point-card-txt-wrap p {
    width: min(41.43vw,580px);
    font-size: min(1.29vw,18px);
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.8888;
}
.point-card-txt-wrap img {
    width: min(25.71vw,360px);
}


@media screen and (max-width:768px) { 
    .point {
        padding: 15vw 0;
    }
    .point h2 {
        font-size: 7vw;
        line-height: 1.6;
    }
    .point h2 .no {
        font-size: 9vw;
    }
    .point-card-wrap {
        width: 90vw;
        margin: 15vw auto 0;
        gap: 15vw;
    }
    .point-card {
        border-radius: 4vw;
    }
    .point-card-title-1 {
        width: 26vw;
        height: 8vw;
        font-size: 5vw;
        top: -4vw;
        left: 5vw;
    }
    .point-card-title-2 {
        font-size: 6vw;
        padding: 8vw 4vw 4vw;
        border-radius: 4vw 4vw 0 0;
    }
    .point-card-txt-wrap {
        background: #fff;
        padding: 6vw 4vw;
        flex-direction: column;
        gap: 4vw;
        border-radius: 0 0 4vw 4vw;
    }
    .point-card-txt-wrap p {
        width: 100%;
        font-size: 5vw;
    }
    .point-card-txt-wrap img {
        width: 100%;
        object-fit: cover;
    }
    .point-card-title-2.margin-1 {
        padding-left: 4vw;
    }
   
}
/* ///////////////////////////////////////////////
voice
//////////////////////////////////////////////// */
.voice {
    background: #ebf6ff;
    padding: min(6.79vw,95px) 0 min(7.79vw,109px) 0;
}
.voice-title-top {
    width: min(46.36vw,649px);
    height: min(4.29vw,60px);
    background: #2160a7;
    clip-path: polygon(3% 0, 100% 0%, 97% 100%, 0% 100%);
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    font-size: min(2.57vw,36px);
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.02em;
    line-height: 1;
}
.voice h2 {
    font-size: min(4.29vw,60px);
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1;
    margin: min(2vw,28px) auto 0;
    width: max-content;
    font-style: italic;
}
.voice-wrap {
    width: min(71.43vw, 1000px);
    margin: min(5.57vw, 78px) auto 0;
    display: flex;
    flex-direction: column;
    gap: min(3.14vw, 44px);
}
.voice-card {
    border-radius: min(1.43vw, 20px);
    background-color: #fff;
    box-shadow: 0px 0px 13.12px 2.88px rgba(19, 56, 97, 0.17);
    position: relative;
    padding: min(3.57vw,50px) min(4.43vw,62px) min(2.14vw,30px) 0;
}
.voice-card-txt-wrap {
    display: flex;
    gap: min(2.14vw,30px);
}
.voice-card-title {
    width: min(6.43vw,90px);
    height: min(2.93vw,41px);
    background: #ff8010;
    color: #fff;
    font-size: min(2.07vw,29px);
    font-weight: 700;
    flex-shrink: 0;
    clip-path: polygon(0% 0, 100% 0%, 90% 100%, 0% 100%);
    font-style: italic;
}
.voice-card-title span {
    margin: 0 min(0.7vw,9.8vw);
}
.voice-card-txt {
    font-size: min(1.29vw,18px);
    font-weight: 500;
    line-height: 1.888;
    letter-spacing: -0.02em;
    position: relative;
    top: max(-0.5vw, -7px);
}
.voice-card-name {
    margin: min(2.07vw,29px) 0 0 auto;
    width: max-content;
    font-size: min(1.29vw,18px);
    font-weight: 500;
    letter-spacing: -0.02em;
}
@media screen and (max-width:768px) { 
    .voice {
        padding: 15vw 0;
    }
    .voice-title-top {
        width: 90vw;
        height: 10vw;
        font-size: 5vw;
    }
    .voice h2 {
        font-size: 7vw;
        margin: 4vw auto 0;
        width: max-content;
    }
    .voice-wrap {
        width: 90vw;
        margin: 15vw auto 0;
        gap: 15vw;
    }
    .voice-card {
        border-radius: 3vw;
        padding: 4vw;
    }
    .voice-card-txt-wrap {
        flex-direction: column;
    }
    .voice-card-txt {
        font-size: 5vw;
        top: initial;
    }
    .voice-card-name {
        margin: 3vw 0 0 auto;
        font-size: 4vw;
    }
    .voice-card-title {
        width: 17vw;
        height: 7vw;
        font-size: 5vw;
        margin-left: -4vw;
    }
    .voice-card-title span {
        margin: 0 2.7vw;
    }
}
/* ///////////////////////////////////////////////
flow
//////////////////////////////////////////////// */
.flow {
    background: url(../img/bg-flow.jpg) top center / cover;
    padding: min(6.79vw,95px) 0 min(7.79vw,109px) 0;
}
.flow-title-top {
    width: min(46.36vw,649px);
    height: min(4.29vw,60px);
    background: #2160a7;
    clip-path: polygon(3% 0, 100% 0%, 97% 100%, 0% 100%);
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    font-size: min(2.57vw,36px);
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.02em;
    line-height: 1;
}
.flow h2 {
    font-size: min(4.29vw,60px);
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1;
    margin: min(2vw,28px) auto 0;
    width: max-content;
    font-style: italic;
}
.flow-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    gap: min(1.71vw,24px);
    width: min(78.57vw,1100px);
    margin: min(6.93vw,97px) auto 0;
}
.flow-card {
    width: min(14.29vw,200px);
    height: min(26.79vw,375px);
    border: min(0.14vw,2px) solid #2160a7;
    background: #FFF;
    position: relative;
}
.flow-card-img-1 {
    width: min(5.79vw,81px);
    margin: min(3.14vw,44px) min(4.43vw,62px) min(1.36vw,19px) min(3.71vw,52px);
}
.flow-card-img-2 {
    width: min(6.86vw,96px);
    margin: min(3.43vw,48px) min(4.43vw,62px) min(2.71vw,38px) min(3vw,42px);
}
.flow-card-img-3 {
    width: min(4.71vw,66px);
    margin: min(3.29vw,46px) min(4.79vw,67px) min(2.14vw,30px);
}
.flow-card-img-4 {
    width: min(6.43vw,90px);
    margin: min(3.86vw,54px) min(3.86vw,54px) min(2.36vw,33px) min(4vw,56px);
}
.flow-card-img-5 {
    width: min(5.79vw,81px);
    margin: min(3.71vw,52px) min(4.36vw,61px)min(2.71vw,38px) min(4.14vw,58px);
}
.flow-card-title {
    color: #2160a7;
    font-size: min(1.71vw,24px);
    font-weight: 700;
    letter-spacing: 0.025em;
    text-align: center;
    line-height: 1.4166;
}
.flow-card-txt {
    font-size: min(1.29vw,18px);
    font-weight: 500;
    letter-spacing: 0.025em;
    line-height: 1.4444;
    padding: min(0.79vw,11px) min(1.36vw,19px) 0 min(1.64vw,23px);
}
.flow-card-txt.margin {
    padding-top: min(1.23vw,15px);
}
.flow-card-title.line-height {
    line-height: 1;
}
.flow-card-step {
    width: min(8.93vw,125px);
    height: min(2.86vw,40px);
    background: #2160a7;
    color: #fff;
    font-size: min(2.07vw,29px);
    font-weight: 700;
    letter-spacing: 0.025em;
    line-height: 1;
    clip-path: polygon(0 0, 90% 0%, 100% 50%, 90% 100%, 0 100%, 0% 50%);
    position: absolute;
    top: max(-1.1vw,-15.4px);
    left: max(-0.1vw,-1.4px);
}
.flow-card-step span {
    margin: min(0.3vw,4.2px) min(0.2vw,2.8px) 0px min(0.8vw,10.376px);
    display: inline-block;
}
.flow-card-lspace {
    letter-spacing: -0.5em;
}
@media screen and (max-width:768px) { 
    .flow {
        padding: 15vw 0;
    }
    .flow-title-top {
        width: 90vw;
        height: 10vw;
        font-size: 5vw;
    }
    .flow h2 {
        font-size: 7vw;
        margin: 4vw auto 0;
        width: max-content;
    }
    .flow-wrap {
        grid-template-columns: 1fr;
        gap: 6vw;
        width: 90vw;
        margin: 10vw auto 0;
    }
    .flow-card {
        width: 100%;
        height: initial;
        border: min(0.26vw,2px) solid #2160a7;
    }
    .flow-card-img-1 {
        width: 14vw;
        margin: 4vw auto;
    }
    .flow-card-img-2 {
        width: 14vw;
        margin: 4vw auto;
    }
    .flow-card-img-3 {
        width: 10vw;
        margin: 4vw auto;
    }
    .flow-card-img-4 {
        width: 14vw;
        margin: 4vw auto;
    }
    .flow-card-img-5 {
        width: 14vw;
        margin: 4vw auto;
    }
    .flow-card-title {
        font-size: 6vw;
    }
    .flow-card-txt {
        font-size: 5vw;
        padding: 4vw;
    }
    .flow-card-step {
        width: 22vw;
        height: 8vw;
        font-size: 5vw;
        top: -2.1vw;
        left: -0.3vw;
    }
    .flow-card-txt.margin {
        padding-top: 4vw;
    }
    .flow-card-step span {
        margin: 1.2vw 1.9vw 0px;
    }
}


/* ///////////////////////////////////////////////
faq
//////////////////////////////////////////////// */
.faq {
    background: url(../img/bg-point.png) repeat top center / contain;
    background-color: #fff;
    padding: min(9.57vw,134px) 0 min(6.64vw,93px);
}
.faq h2 {
    font-size: min(4.29vw,60px);
    font-weight: 900;
    letter-spacing: -0.02em;
    margin: 0 auto;
    width: max-content;
    text-align: center;
    line-height: 1;
    font-style: italic;
}
.faq-wrap {
    width: min(71.43vw,1000px);
    margin: min(5.29vw,74px) auto 0;
}
.faq-title-wrap {
    display: grid;
    grid-template-columns: 7.75% 1fr 6%;
    align-items: center;
    height: min(5.35vw,77px);
    position: relative;
    cursor: pointer;
    background: #ebf6ff;
    border-top: 1px solid #2160a7;
    border-left: 1px solid #2160a7;
    border-right: 1px solid #2160a7;
}
.faq-title-btn {
    position: relative;
    transition: 0.3s;
}
.faq-title-btn::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 47%;
    transform: translate(-50%, -50%) rotate(45deg);
    -webkit-transform: translate(-50%, -50%) rotate(45deg);  
    -ms-transform: translate(-50%, -50%) rotate(45deg);
    background: #c7ced5;
    height: min(1.07vw,15px);
    width: min(0.14vw,2px);
    transition: 0.3s;
}
.faq-title-btn::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 30%;
    transform: translate(-50%, -50%) rotate(-45deg);
    -webkit-transform: translate(-50%, -50%) rotate(-45deg);  
    -ms-transform: translate(-50%, -50%) rotate(-45deg);
    background: #c7ced5;
    height: min(1.07vw,15px);
    width: min(0.14vw,2px);
}
.faq-wrap.open .faq-title-btn {
    transform: scaleY(-1);
    -webkit-transform: scaleY(-1);
    -ms-transform: scaleY(-1);
}
.faq-title-q {
    color: #FFF;
    background: #2160a7;
    border-radius: 50%;
    width: min(2.86vw,40px);
    height: min(2.86vw,40px);
    font-family: "Anton", sans-serif;
    font-size: min(1.82vw,25.5px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}
.faq-title-txt {
    font-size: min(1.29vw,18px);
    font-weight: 500;
    letter-spacing: 0em;
    line-height: 1;
    display: flex;
    align-items: center;
}
.faq-title-a {
    font-family: "Anton", sans-serif;
    font-size: min(2.79vw,40.19px);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    top: max(-0.5vw,-7.685px);
    background: #fff;
    color: #2160a7;
    border: min(0.21vw,3px) solid #2160a7;
    border-radius: 50%;
    width: min(2.86vw, 40px);
    height: min(2.86vw, 40px);
    margin: 0 auto;
    font-size: min(1.82vw,25.5px);
}
.faq-answer-txt {
    font-size: min(1.29vw,18px);
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.777;
}
.faq-answer {
    display: grid;
    grid-template-columns: 7.75% 1fr;
    align-items: flex-start;
    max-height: 0;
    overflow: hidden;   
    padding: 0;
    background: #FFF;
    border-left: 1px solid #2160a7;
    border-right: 1px solid #2160a7;
    border-top: 1px solid #2160a7;
}
.faq-wrap.open .faq-answer {
    max-height: 1000px;
    transition: max-height 0.5s ease-in;
    padding: min(1.81vw,26px) 0;
    border-bottom: 1px solid #2160a7;
    border-top: none;
}
.faq .faq-wrap:nth-of-type(n + 2) {
    margin-top: min(2.43vw,34px);
}

@media screen and (max-width:768px) { 
    .faq {
        padding: 10vw 0;
    }
    .faq h2 {
        font-size: 7vw;
        margin: 4vw auto 0;
        width: max-content;
    }
    .faq-wrap {
        width: 90vw;
        margin: 10vw auto 0;
    }
    .faq-title-q {
        font-size: 5vw;
        width: 6vw;
        height: 6vw;
    }
    .faq-title-txt {
        font-size: 4vw;
        line-height: 1.4;
    }
    .faq-title-wrap {
        height: 20vw;
        grid-template-columns: 12% 1fr 8%;
    }
    .faq-answer {
        grid-template-columns: 12% 1fr 8%;
    }
    .faq-title-btn::before {
        height: 4vw;
        width: 0.2vw;
        left: 50%;
    }
    .faq-title-btn::after {
        height: 4vw;
        width: 0.2vw;
        left: 12%;
    }
    .faq-title-a {
        font-size: 5vw;
        width: 6vw;
        height: 6vw;
    }
    .faq-answer-txt {
        font-size: 4vw;
    }
}

/* ///////////////////////////////////////////////
footer
//////////////////////////////////////////////// */
.footer {
    background: #102e4f;
    height: min(2.93vw,41px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: min(7.14vw,100px);
}
footer small {
    font-size: min(1vw,14px);
    letter-spacing: 0;
    color: #fff;
    text-align: center;
    display: block;
}
@media screen and (max-width:768px) { 
    .footer {
        height: 9vw;
        padding-bottom: 22vw;
    }
    footer small {
        font-size: 4vw;
    }
}

/* ///////////////////////////////////////////////
fixed
//////////////////////////////////////////////// */
.fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: min(7.14vw,100px);
    display: flex;
}
.fixed-tel {
    background: #ff8010;
    width: 60%;
    position: relative;
}
.fixed .tel-no {
    font-size: min(4.7vw,65.86px);
    color: #fff;
    top: max(-0.6vw,-8.4px);
    line-height: 1;
}
.fixed .tel-txt {
    font-size: min(1.57vw,22px);
    margin: max(-0.7vw,-9.8px) auto 0;
    letter-spacing: 0.075em;
    color: #fff;
    padding-left: min(20.5vw,287px);
    line-height: 1;
}
.fixed .icon-tel {
    width: min(7.14vw,100px);
}
.fixed-15-img {
    position: absolute;
    bottom:0;
    left: min(6.79vw,95px);
    width: min(9vw,126px);
}
.fixed .tel-wrap {
    padding-left: min(16.43vw,230px);
    margin-top: min(0.86vw,12px);
}
.fixed-line {
    display: flex;
    align-items: center;
    gap: min(2.07vw,29px);
    padding-left: min(2vw,28px);
}
.fixed-line-link {
    background: #03c253;
    width: 40%;
    display: flex;
    align-items: center;
}
.fixed-line-txt {
    color: #fff;
    font-size: min(2.14vw,30px);
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1.1333;
}
.fixed-line-img {
    width: min(5.64vw,79px);
}
@media screen and (max-width:768px) { 
    .fixed {
        height: 22vw;
    }
    .fixed .tel-wrap {
        padding-left: 0;
    }
    .fixed .tel-no {
        font-size: 6.4vw;
        top: 0;
    }
    .fixed .icon-tel {
        width: 10vw;
    }
    .fixed .tel-txt {
        font-size: 4vw;
        margin: 1vw auto 0 14vw;
        padding-left: 0;
        line-height: 1;
    }
    .fixed-15-img {
        bottom: 0;
        left: 0;
        width: 14vw;
    }
    .fixed-line-txt {
        font-size: 4vw;
        text-align: center;
    }
    .fixed-line {
        justify-content: center;
        padding-left: 0;
    }
    .fixed-line-link {
        justify-content: center;
    }
}
/* ///////////////////////////////////////////////
common
//////////////////////////////////////////////// */
.sp {
    display: block;
}
.pc {
    display: none;
}
.pc-flex {
    display: none;
}
.dot {
    width: 12.11vw;
    margin: 0 auto;
}
.p-relative {
    position: relative;
}
a:hover,
input[type="submit"]  {
    transition: 0.3s;
}
a:hover,
input[type="submit"]:hover {
    opacity: 0.7;
}

.fadeInUp {
    -webkit-animation: fadeInUp 0.5s ease;
    animation: fadeInUp 0.5s ease;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}
  
.fade {
    opacity: 0;
}
@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@media screen and (min-width:769px) {
    .sp {
        display: none;
    }
    .pc {
        display: block;
    }
    .pc-flex {
        display: flex;
    }
    a[href^="tel:"] {
        pointer-events: none
    }
    .dot {
        width: 68px;
    }
}




