@charset "utf-8";
main #client {
    width: 100%;
    max-width: 750pt;
    margin: auto;
    padding: 70px 0
}

main #client h2 {
    margin-bottom: 75px;
    font-size: 28px;
    line-height: 1.7;
    text-align: center
}

main #client ul {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    padding: 0
}

main #client li,
main #client ul {
    display: -webkit-flex;
    display: flex
}

main #client li {
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    -webkit-flex-basis: 14.2%;
    flex-basis: 14.2%;
    max-width: 14.2%;
    list-style: none;
    padding: 25px 5px;
    text-align: center
}

main #client li img {
    width: 100%;
    max-width: 90pt
}

main #service {
    padding: 145px 35px 60px;
    background: url(../images/top/service_bg.jpg)repeat-y left top / 100% auto
}

main #service h2 {
    margin-bottom: 5pc;
    font-size: 42px;
    font-weight: 400;
    text-align: center
}

main #service .inner {
    position: relative;
    width: 100%;
    max-width: 966pt;
    margin: 0 auto 75pt;
    padding: 50px 5pc 0;
    background: #fff;
    border: 2px solid #d2dff1;
    border-radius: 40px
}

main #service .inner .subtit {
    position: absolute;
    left: 0;
    color: #e5e5e5;
    font-size: 72px;
    transform: rotate(-90deg);
    transform-origin: 0 0
}

main #service .inner h3 {
    margin-bottom: 50px;
    font-size: 36px;
    font-weight: 400;
    text-align: center
}

main #service .inner h3 span {
    display: block;
    font-size: 60px
}

main #service .inner .inbox {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between
}

main #service .inner .inbox .img,
main #service .inner .inbox .text_l,
main #service .inner .inbox .text_r {
    -webkit-flex-basis: 50%;
    flex-basis: 50%;
    max-width: 50%;
    margin-bottom: 5pc
}

main #service .inner .inbox .img img {
    width: 100%;
    max-width: 35pc
}

main #service .inner .inbox .text_l {
    padding-right: 50px
}

main #service .inner .inbox .text_r {
    padding-left: 50px
}

main #service .inner .inbox h4 {
    display: inline-block;
    margin-bottom: 15px;
    padding: 8px 25px;
    color: #fff;
    font-size: 1pc
}

main #service .inner .inbox h5 {
    margin-bottom: 30px;
    font-size: 30px
}

main #service .inner .inbox p {
    margin-bottom: 50px;
    line-height: 2
}

main #service .manegement .subtit {
    top: 580px
}

main #service .manegement h3 {
    color: #034fc0
}

main #service .manegement h4 {
    background: #034fc0
}

main #service .manegement h5 {
    margin-bottom: 5pc;
    text-align: center
}

main #service .manegement h5 img {
    width: 100%;
    max-width: 394px
}

main #service .cloud .subtit {
    top: 300px
}

main #service .cloud h3 {
    color: #c00
}

main #service .cloud h4 {
    background: #c00
}

main #service .cloud .text_r h5 img {
    width: 100%;
    max-width: 196px
}

main #service .cloud .text_l h5 img {
    width: 100%;
    max-width: 200px
}

main #service .production {
    margin-bottom: 10px
}

main #service .production .subtit {
    top: 520px
}

main #service .production h3 {
    color: #00aac3
}

main #service .production h4 {
    background: #00aac3
}

main #service .production .text_r h5 img {
    width: 100%;
    max-width: 280px
}

main #service .production .text_l h5 img {
    width: 100%;
    max-width: 335px
}

main #service .note {
    width: 100%;
    max-width: 966pt;
    margin: 0 auto 75pt;
    padding: 0 40px
}

main #service .partner .subtit {
    top: 25pc
}

main #service .partner h3 {
    color: #f24fab
}

main #service .partner h4 {
    background: #f24fab
}

main #service .contents .subtit {
    top: 440px
}

main #service .contents h3 {
    color: #008917
}

main #service .contents h4 {
    background: #008917
}

main #service .contents .text_r h5 img {
    width: 100%;
    max-width: 181px
}

main #service .contents .text_l h5 img {
    width: 100%;
    max-width: 184px
}

main #press {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    width: 100%;
    max-width: 1120vw;
    margin: 75pt auto;
    padding: 0 3vw
}

main #press h2 {
    font-size: 42px;
    -webkit-flex-basis: 30%;
    flex-basis: 30%;
    max-width: 30%
}

main #press div {
    -webkit-flex-basis: 70%;
    flex-basis: 70%;
    max-width: 70%
}

main #press ul {
    margin: 0 5pc 50px 0;
    padding: 0
}

main #press li {
    list-style: none;
    padding: 10px 0;
    border-bottom: 1px solid #d2d2d2
}

main #press li a {
    display: -webkit-flex;
    display: flex
}

main #press li a:hover {
    text-decoration: none
}

main #press li a .day {
    -webkit-flex-basis: 110px;
    flex-basis: 110px;
    max-width: 110px;
    color: #ee741b
}

main #press li a .tit {
    -webkit-flex: 1;
    flex: 1;
    color: #000
}

main #press li a:hover .tit {
    color: #ee741b
}

main #press .list {
    text-align: right
}

@media screen and (min-width:769px) and (max-width:970px) {
    main #client li {
        -webkit-flex-basis: 20%;
        flex-basis: 20%;
        max-width: 20%
    }
    main #service .inner {
        padding: 50px 5vw 0 5pc
    }
    main #service .inner .inbox .text_r {
        padding-left: 4vw
    }
    main #service .inner .inbox .text_l {
        padding-right: 4vw
    }
}

@media screen and (max-width:768px) {
    main .mv .inner {
        display: block
    }
    main .mv .video {
        max-width: 100%
    }
    main .mv video {
        width: 100%;
        height: auto;
        vertical-align: bottom
    }
    main .mv .img {
        display: -webkit-flex;
        display: flex;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
        max-width: 100%
    }
    main .mv .img img {
        -webkit-flex-basis: 50%;
        flex-basis: 50%;
        max-width: 50%
    }
    main .mv .text {
        width: 80%;
        height: 80%;
        padding: 5vw 3vw
    }
    main .mv .text p {
        width: 100%;
        margin: 0
    }
    main .mv .text img {
        max-width: 100%
    }
    main #about {
        background: url(../images/top/about_bg_sp.webp)no-repeat bottom center / 100% auto
    }
    main #about .inner {
        max-width: 100%;
        min-height: 80vw
    }
    main #about .inner h2 {
        position: absolute;
        top: 70vw;
        left: 0;
        display: inline-block;
        width: 70vw;
        color: #ee741b;
        font-size: 10vw;
        text-align: center
    }
    main #about .inner .text {
        padding: 45px 0 0 15vw
    }
    main #about .inner .text h3 {
        margin-bottom: 5vw;
        padding: 0 3vw;
        font-size: 5vw;
        text-align: center
    }
    main #about .inner .text p {
        padding: 0 3vw;
        font-size: 3vw;
        line-height: 2
    }
    main #client {
        width: 100%;
        max-width: 750pt;
        margin: auto;
        padding: 10vw 0
    }
    main #client h2 {
        margin-bottom: 5vw;
        font-size: 5vw
    }
    main #client ul {
        padding: 0 1vw
    }
    main #client li {
        -webkit-flex-basis: 20%;
        flex-basis: 20%;
        max-width: 20%;
        padding: 3vw 1vw
    }
    main #service {
        padding: 10vw 3vw 5vw;
        background: url(../images/top/service_bg_sp.jpg)repeat-y left top / 100% auto
    }
    main #service h2 {
        margin-bottom: 5vw;
        font-size: 8vw
    }
    main #service .inner {
        margin: 0 auto 10vw;
        padding: 8vw 5vw;
        border-radius: 8vw
    }
    main #service .inner .subtit {
        position: static;
        margin-bottom: 0;
        font-size: 10vw;
        text-align: center;
        line-height: 1;
        transform: none
    }
    main #service .inner h3 {
        margin-bottom: 5vw;
        font-size: 5vw
    }
    main #service .inner h3 span {
        font-size: 15vw;
        line-height: 1
    }
    main #service .inner .inbox {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap
    }
    main #service .inner .inbox .img,
    main #service .inner .inbox .text_l,
    main #service .inner .inbox .text_r {
        -webkit-flex-basis: 100%;
        flex-basis: 100%;
        max-width: 100%;
        margin-bottom: 5vw
    }
    main #service .inner .inbox .img {
        text-align: center;
        -webkit-order: 1;
        order: 1
    }
    main #service .inner .inbox .text_l {
        padding-right: 0;
        -webkit-order: 2;
        order: 2;
        margin-bottom: 0
    }
    main #service .inner .inbox .text_r {
        padding-left: 0;
        -webkit-order: 2;
        order: 2;
        margin-bottom: 8vw
    }
    main #service .inner .inbox h4 {
        display: block;
        margin-bottom: 5vw;
        padding: 1vw;
        color: #fff;
        font-size: 4vw;
        text-align: center
    }
    main #service .inner .inbox h5 {
        margin-bottom: 3vw;
        font-size: 5vw;
        text-align: center
    }
    main #service .inner .inbox p {
        margin-bottom: 3vw
    }
    main #service .manegement h5 {
        margin: 5vw 0 10vw
    }
    main #service .production {
        margin-bottom: 10px
    }
    main #service .note {
        margin: 0 auto 8vw;
        padding: 0 3vw
    }
    main #service .partner .text_r {
        margin-bottom: 0!important
    }
    main #press {
        display: block;
        margin: 10vw auto;
        padding: 0 3vw
    }
    main #press h2 {
        max-width: 100%;
        font-size: 8vw;
        text-align: center
    }
    main #press div {
        max-width: 100%
    }
    main #press ul {
        margin: 0 0 5vw;
        padding: 0
    }
    main #press li {
        padding: 3vw 0
    }
    main #press li a {
        display: -webkit-flex;
        display: flex
    }
    main #press li a:hover {
        text-decoration: none
    }
    main #press li a .day {
        -webkit-flex-basis: 7em;
        flex-basis: 7em;
        max-width: 7em
    }
}

.pc {
    display: inline!important
}

.mb {
    display: none!important
}

@media screen and (max-width:768px) {
    .pc {
        display: none!important
    }
    .mb {
        display: inline!important
    }
}

#page-top {
    display: block !important;
    position: fixed;
    right: 33px;
    bottom: -100px;
    transform: translateY(100px);
    opacity: 0;
    z-index: 99;
}

.downmove {
    animation: optop 0.3s forwards;
}

.upmove {
    animation: bottomIcon 0.7s forwards;
}

.icon-page-top {
    display: block;
    width: 80px;
    height: 80px;
    color: orange;
    /* opacity: 0; */
    /* display: inline; */
    margin: 0;
    cursor: pointer;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
    font-size: 0.6rem;
    background-image: url("../images/top/rocket_base.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.icon-page-top-smoke {
    display: block;
    width: 80px;
    height: 80px;
    color: #333;
    /* opacity: 0; */
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
    font-size: 0.6rem;
    background-image: url("../images/top/rocket.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.shaking-plane {
    animation-name: plane;
    animation-duration: 2s;
    /* animation-iteration-count: 1; */
    animation-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
}

.text-page-top {
    position: absolute;
    bottom: -6px;
    text-align: center;
    display: inline;
    line-height: 1.5;
    width: 100%;
    font-size: 10px;
    left: 50%;
    color: #333;
    transform: translateX(-50%);
}

@keyframes plane {
    0% {
        transform: translateX(-5px);
        opacity: 0.5;
    }
    25% {
        transform: translateX(7px);
        opacity: 1;
    }
    50% {
        transform: translateX(-7px);
        opacity: 0.7;
    }
    100% {
        transform: translateX(5px);
        opacity: 0;
    }
}

@keyframes optop {
    from {
        opacity: 0;
        transform: translateY(0);
    }
    to {
        opacity: 1;
        transform: translateY(-180px);
    }
}

@keyframes bottomIcon {
    from {
        opacity: 1;
        transform: translateY(-180px);
    }
    to {
        opacity: 0;
        transform: translateY(0);
    }
}

@media only screen and (max-width: 768px) {
    #page-top {
        right: 15px;
    }
    .icon-page-top {
        width: 65px;
        height: 65px;
    }
    .text-page-top {
        position: absolute;
    }
    .downmove {
        animation: optop 0.2s forwards;
    }
    .upmove {
        animation: bottomIcon 0.7s forwards;
    }
    @keyframes plane {
        0% {
            transform: translateX(-5px);
            opacity: 0.5;
        }
        25% {
            transform: translateX(7px);
            opacity: 1;
        }
        50% {
            transform: translateX(-7px);
            opacity: 0.7;
        }
        100% {
            transform: translateX(5px);
            opacity: 0;
        }
    }
    @keyframes optop {
        from {
            opacity: 0;
            transform: translateY(0);
        }
        to {
            opacity: 1;
            transform: translateY(-150px);
        }
    }
    @keyframes bottomIcon {
        from {
            opacity: 1;
            transform: translateY(-150px);
        }
        to {
            opacity: 0;
            transform: translateY(0);
        }
    }
}