@charset "UTF-8";


/* first-view animation */

.first-view {
    height: 100vh;
}

.first-view-text {
    position: absolute;
    z-index: 3;
    top: 30%;
    right: 7.5vw;
    background-color: #fcfcfc8e;
    padding: 10px;
}

.first-view-text-main {
    font-size: clamp(50px, 3vw, 70px);
    font-weight: 700;
    background: linear-gradient(45deg, #0DAFB6, #149AC5);
    background: -webkit-linear-gradient(125deg, #0DAFB6, #149AC5);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    letter-spacing: 1.5px;
    white-space: pre;
    line-height: 1.2em;
}

.first-view-text-main span {
    font-size: 1.05em;
    background: linear-gradient(45deg, #03CED8, #18B2E3);
    background: -webkit-linear-gradient(125deg, #03CED8, #18B2E3);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.first-view-text-sub {
    font-weight: 500;
    color: #59D0F8;
    text-align: center;
    margin-top: clamp(4.5px, 1.3vw, 18px);
    font-size: clamp(25px, 1.5vw, 35px);
}

/* service */
.service {
    padding: 70px 5vw;
    background: linear-gradient(180deg, #f9ffff, #eefcff);
}

.service-inner {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.content-subTitle {
    margin-bottom: 100px;
}

.service-contents {
    display: grid;
    grid-auto-flow: column;
    height: 50vw;
    min-height: 450px;
    max-height: 600px;
    grid-template-columns: repeat(3, 30%);
    grid-template-rows: 1fr 3.5fr 0.7fr 2.5fr 2fr;
    column-gap: 5%;
    row-gap: 5%;
    align-items: start;
    position: relative;
}

.content-inner-title {
    text-align: center;
    line-height: 1.1em;
    font-size: clamp(20px, 1vw, 28px);
    color: #565252;
    font-weight: 500;
}

.content-inner-title span {
    color: #3BACD0;
    font-size: 0.6em;
    font-weight: 500;

}

.service-contents img {
    width: 12vw;
    max-width: 150px;
    min-width: 110px;
    height: auto;
    display: block;
    margin: 0 auto;
    padding: 5% 0 15%;
}

.service-main-text {
    font-weight: 500;
    font-size: clamp(13px, 1.5vw, 16px);
    line-height: 150%;
    color: #565252;
}

.service-sub-text {
    font-size: clamp(12px, 1.2vw, 15px);
    line-height: 150%;
    color: #4f4f4f;
}

.service-tool {
    font-size: clamp(13px, 1vw, 16px);
    color: #969696;
}

.service-tool span {
    font-weight: 500;
    font-size: 0.8em;
    color: #5b5b5b;
}


.border_01,
.border_02 {
    position: absolute;
    top: 0;
    background-size: 1.5px 10px;
    background-image: linear-gradient(to bottom, #dbdbdb 5px, transparent 5px);
    background-repeat: repeat-y;
    width: 2px;
    height: 100%;
}

.border_01 {
    left: 32.5%;
}

.border_02 {
    right: 32.5%;
}

.service-btn {
    margin: 8% auto 0;
}


/* works */
.works {
    padding: 70px 5vw 120px;
    background: linear-gradient(180deg, #fcfcfc, #e7fcff);
}

.works-inner {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.works-content {
    width: 100%;
    position: relative;
}


.works-img {
    width: 100%;
}

.works-img-res {
    display: none;
}

.works-img-flame {
    display: none;
}

.works-text {
    width: 25vw;
    max-width: 350px;
    position: absolute;
    top: 44%;
}

.works-text {
    left: 7%;
}

.works-inner dt {
    font-weight: 500;
    font-size: clamp(13px, 1.7vw, 22px);
    margin-bottom: 11%;
    padding: 0 1vw;
}

.works-text dt {
    color: #187A99;
}

.works-inner dd {
    font-size: clamp(12px, 1.5vw, 19px);
    line-height: 165%;
    color: #606060;
}

.works-btn {
    margin: 8% auto 0;
}


/* レスポンシブデザイン */
@media (max-width: 759px) {

    .first-view-text {
        left: 50%;
        transform: translateX(-50%);
        width: fit-content;
    }

    .first-view-text-main {
        font-size: clamp(18px, 6vw, 35px);
        letter-spacing: 1.5px;
        white-space: pre;
        line-height: 1.2em;
    }

    .first-view-text-sub {
        font-weight: 500;
        color: #59D0F8;
        text-align: center;
        margin-top: 1.5vw;
        font-size: clamp(12px, 3.5vw, 20px);
        text-align: unset;
        padding: 0.3vw 0 0 6vw;
    }

    /* service */
    .service {
        padding: 100px 0;
    }


    .service-contents {
        height: 330vw;
        min-height: 1300px;
        max-height: 1900px;
        width: 100%;
        max-width: 500px;
        grid-template-columns: 1fr;
        grid-template-rows: repeat(3, 1fr 1.5fr 1fr 1fr 1fr);
        column-gap: 0;
        row-gap: 4vw;
        margin: 0 auto;
        background-color: #f3fcfd;
        padding: 0 7vw;
    }

    .service-contents img {
        width: 27vw;
        max-width: 170px;
        min-width: 100px;
        height: auto;
        display: block;
        padding: 2% 0 10%;
    }

    .content-inner-title {
        font-size: clamp(18px, 5vw, 26px);
        line-height: 1em;
        padding-top: 15%;
    }

    .service-main-text {
        font-size: clamp(12px, 3vw, 15px);
    }

    .service-sub-text {
        font-size: clamp(11px, 2.5vw, 13px);
        line-height: 200%;
    }

    .service-tool {
        font-size: clamp(11px, 2.5vw, 15px);
    }

    .service-tool:not(:nth-of-type(9)) {
        padding-bottom: 20%;
        background-size: 10px 1.5px;
        background-position: bottom;
        background-image: linear-gradient(to right, #dbdbdb 5px, transparent 5px);
        background-repeat: repeat-x;
        width: 100%;
        height: 2px;
    }

    .border_01,
    .border_02 {
        display: none;
    }

    .service-btn {
        margin-top: 15%;
    }

    /* works */
    .works {
        padding: 100px 5vw 100px;
    }

    .works-inner {
        overflow: hidden;
    }

    .works-img:not(.works-img-res) {
        display: none;
    }

    .works-img-res {
        display: block;
        width: 600px;
        position: absolute;
        left: 50%;
        top: 0;
        transform: translate(-50%);
    }

    .works-content {
        height: 660px;
    }

    .works-img-res {
        position: absolute;
        top: 0;
    }

    .works-text {
        position: absolute;
        top: 370px;
        left: 50%;
        transform: translate(-50%);
        width: 180px;
    }

    .works-img-flame {
        display: block;
        position: absolute;
        bottom: 400px;
        left: 50%;
        transform: translateX(-50%);
        width: clamp(300px, 70vw, 400px);
        height: auto;
    }

    .works-btn {
        margin: 0 auto;
    }


}