@charset "utf-8";

.loading {
    background-color: #FFFAC9;
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;

    .loading-image {
        position: absolute;
        opacity: 0;
        transition: opacity 0.6s cubic-bezier(0.65, 0, 0.35, 1);

        img {
            width: 100%;
            height: auto;
        }
    }

    .loading-image.first {
        width: 261rem;
        top: 176rem;
        right: 476rem;

        @media (max-width: 1023px) {
            width: 141rem;
            top: 101rem;
            right: 82rem;
        }
    }

    .loading-image.first.active {
        opacity: 1;
        z-index: 1;
    }

    .loading-image.second {
        width: 428rem;
        left: 332rem;
        bottom: 137rem;
        top: 319rem;

        @media (max-width: 1023px) {
            width: 208rem;
            top: 300rem;
            left: 29rem;
        }
    }

    .loading-image.second.active {
        opacity: 1;
        z-index: 1;
        animation: bling cubic-bezier(0.65, 0, 0.35, 1) 1.2s;
        animation-delay: 1s;
        animation-fill-mode: forwards;
    }

    .loading-image.third {
        width: 804rem;
        bottom: 137rem;
        left: 0;
        right: 0;
        margin: auto;
        transform: translateY(100px);
        transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1);

        @media (max-width: 1023px) {
            width: 314rem;
            top: 396rem;
        }
    }

    .loading-image.third.active {
        opacity: 1;
        z-index: 1;
        transform: translateY(0);
    }

    .loading-image.comment {
        width: 969rem;
        top: 174rem;
        transform: translateY(100px);
        opacity: 0;
        transition: transform 0.4s cubic-bezier(0.17, 0.88, 0.30, 1.28),
            opacity 0.4s cubic-bezier(0.65, 0, 0.35, 1);

        @media (max-width: 1023px) {
            width: 100%;
            top: 242rem;
        }
    }

    .loading-image.comment.active {
        opacity: 1;
        transform: translateY(0);
    }

    .loading-image.active {
        opacity: 1;
        z-index: 1;
    }
}

@keyframes bling {
    0% {
        opacity: 0;
        transform: translateY(100px);
    }

    60% {
        opacity: 1;
        transform: translateY(-10px);
    }

    80% {
        transform: translateY(5px);
    }

    100% {
        transform: translateY(0);
    }
}






.fv {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
    min-height: 825rem;
    position: relative;

    .column {
        display: flex;
        justify-content: space-between;

        .text {
            margin-top: 47rem;
            max-width: 543rem;
            width: 100%;
        }

        .catch {
            display: flex;
            flex-direction: column;
            gap: 32rem;
            margin-bottom: 100rem;

            .in-text {
                display: flex;
                font-weight: 600;
                font-size: 32rem;
                letter-spacing: 0.08em;
                color: #313131;
                align-items: center;

                .bg-line {
                    background-image: linear-gradient(to top,
                            #d8effa 16rem,
                            transparent 16rem,
                            transparent 100%);
                    background-repeat: no-repeat;
                    background-size: 0% 100%;
                }

                .bg-line.active {
                    animation: animatedBackground 2s ease 0.5s forwards;
                }

                h1 {
                    font-weight: 600;
                    font-size: 32rem;
                    letter-spacing: 0.08em;
                }

                .c-blue {
                    font-weight: 600;
                    letter-spacing: 0.08em;
                    font-size: 42rem;
                    color: #01a0ea;
                }
            }
        }

        .menu-list {
            display: flex;
            flex-direction: column;
            gap: 16rem;
            align-items: flex-start;

            a {
                display: flex;
                padding: 24rem 26rem;
                border: 1rem solid #e6006d;
                background-color: #FFF;
                align-items: center;
                font-weight: 500;
                font-size: 24rem;
                letter-spacing: 0.08em;
                color: #e6006d;
                gap: 40rem;
                border-radius: 7rem;

                p {
                    position: relative;
                    z-index: 10;
                }

                img {
                    width: 26rem;
                    height: auto;
                }
            }

            a:hover {
                border: none;
                background:
                    repeating-linear-gradient(to right, #e6006d 0 8px, transparent 8px 16px) top,
                    repeating-linear-gradient(to right, #e6006d 0 8px, transparent 8px 16px) bottom,
                    repeating-linear-gradient(to bottom, #e6006d 0 8px, transparent 8px 16px) left,
                    repeating-linear-gradient(to bottom, #e6006d 0 8px, transparent 8px 16px) right,
                    #fff;
                background-size:
                    16px 1px, 16px 1px, 1px 16px, 1px 16px;
                background-repeat:
                    repeat-x, repeat-x, repeat-y, repeat-y;
                background-position:
                    top left, bottom left, top left, top right;
                border-radius: 8px;

                p::after {
                    content: "";
                    background-image: linear-gradient(to top, #FFFAC9 16rem, transparent 16rem, transparent 100%);
                    background-repeat: no-repeat;
                    background-size: 100% 100%;
                    width: 100%;
                    height: 100%;
                    z-index: -1;
                    position: absolute;
                    bottom: 0;
                    left: 0;
                }
            }


        }

        .img {
            max-width: 593rem;
            width: 100%;
            position: relative;


        }

        .img::after {
            content: "";
            background: url(/system_panel/uploads/images/mv-circle.png) no-repeat center/contain;
            width: 771rem;
            height: 771rem;
            position: absolute;
            left: -120rem;
            top: -88rem;
            z-index: 10;
        }

        .fv-swiper {
            margin: 0;
            margin-right: 13rem;

            .swiper-slide {
                position: relative;
                width: 593rem;
                height: 593rem;

                img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    border-radius: 50%;
                }
            }
        }
    }
}

.fv.fade-in {
    opacity: 1;
    transform: translateY(0);
}


.fv::after {
    content: "";
    width: 100%;
    height: 444rem;
    position: absolute;
    bottom: 0;
    left: 0;
    background: url(/system_panel/uploads/images/fv-bg.png) no-repeat top/cover;
    z-index: -1;
}


@media (max-width: 1023px) {
    .fv {
        .column {
            flex-direction: column;

            .text {
                display: flex;
                flex-direction: column;
                gap: 200rem;
            }

            .img {
                position: absolute;
                right: 23rem;
                top: 210rem;
                max-width: 211rem;

                .fv-swiper {
                    .swiper-slide {
                        width: 211rem;
                        height: 210rem;
                    }
                }
            }

            .img::after {
                width: 271rem;
                height: 259rem;
                top: -32rem;
                left: -44rem;
            }

            .catch {
                gap: 8rem;

                .in-text {
                    align-items: flex-end;
                    font-size: 20rem;

                    h1 {
                        font-size: 20rem;
                    }

                    .c-blue {
                        font-size: 30rem;
                    }

                }

                .in-text:last-child {
                    margin-top: 16rem;
                }
            }

            .menu-list {
                gap: 6rem;

                a {
                    font-size: 14rem;
                    padding: 12rem;
                }
            }
        }
    }
}

.t_news {
    position: absolute;
    right: 0;
    bottom: -31rem;
    max-width: 926rem;
    width: 100%;
    height: 100rem;
    display: flex;
    justify-content: flex-end;

    .title {
        background-color: #01A0EA;
        max-width: 180rem;
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 10px 0 0 10px;

        h2 {
            font-family: var(--font-main);
            font-weight: 600;
            font-size: max(16px, 18rem);
            letter-spacing: 0.08em;
            text-align: center;
            color: #fff;
        }
    }

    .content {
        background-color: #0368B4;
        width: 100%;
        display: flex;
        align-items: center;
        padding-left: 56rem;

        .newsItemText, .newsItemTit {
            display: flex;
            flex-direction: column;
            gap: 4px;
            font-family: var(--font-main);
            font-weight: 600;
            font-size: 13px;
            letter-spacing: 0.08em;
            color: #fff;
        }

        .webgene-blog {
            width: 100%;
        }

        .newsItem {
            position: relative;

            a {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
            }

            img {
                position: absolute;
                top: 0;
                bottom: 0;
                right: 40rem;
                margin: auto;
                width: 24rem;
                height: auto;
            }
        }
    }
}

.t_news::after {
    content: "";
    position: absolute;
    bottom: calc(100% - 7px);
    right: 128px;
    background: url(/system_panel/uploads/images/dog01.png) no-repeat center/contain;
    width: 160rem;
    height: 160rem;
}

@media (max-width: 1023px) {
    .t_news::after {
        bottom: calc(100% - 7px);
        right: 16rem;
        width: 67rem;
        height: 67rem;
    }

    .t_news {
        bottom: 0;
        height: 65rem;

        .title {
            max-width: 83rem;

            h2 {
                font-size: 12rem;
            }
        }

        .content {
            padding-left: 16rem;

            .newsItemText, .newsItemTit {
                gap: 4px;
                font-size: 10rem;
            }


            .newsItem {

                img {
                    right: 10rem;
                    width: 15rem;
                }
            }
        }
    }
}

.t_about {
    .w1344 {
        display: flex;
        gap: 112rem;
        padding: 121rem 0 40rem;
        align-items: flex-start;

        .img {
            max-width: 617rem;
            width: 100%;
            position: relative;

            .pin {
                max-width: 97rem;
                width: 100%;
                position: absolute;
                bottom: 62rem;
                left: 237rem;

                img {
                    width: 100%;
                    height: auto;
                }
            }

            img {
                width: 100%;
                height: auto;
            }
        }

        .sec-title {
            margin-bottom: 80rem;

            .catch {
                margin-top: 80rem;
                margin-bottom: 40rem;
            }
        }

        .secbtn {
            margin-top: 80rem;
            max-width: 300px;
            height: 64px;
        }
    }
}

@media (max-width: 1023px) {
    .t_about {
        .w1344 {
            padding: 80rem 0;
            flex-direction: column;
            gap: 56rem;
            align-items: center;

            .sec-title {
                align-items: center;
                margin-bottom: 40rem;

                .catch {
                    margin-top: 40rem;
                    text-align: center;
                }

                .desc {
                    text-align: center;
                }
            }

            .img {
                max-width: 358rem;

                .pin {
                    max-width: 74rem;
                    bottom: 52rem;
                    left: 126rem;
                }
            }

            .secbtn {
                margin-top: 40rem;
                max-width: 300rem;
                height: 64rem;
            }
        }
    }
}

.t_service {
    background: url(/system_panel/uploads/images/yellow-bg.jpg) no-repeat top/100% auto, #FFFAC9;
    position: relative;


    .w1344 {
        padding: 120rem 0 83rem;

        .sec-title {
            align-items: center;
            margin-bottom: 80rem;

            .catch {
                margin-top: 80rem;
                text-align: center;
            }
        }

        .listitem {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            grid-template-rows: auto;
            gap: 40rem;

            .item {
                border-radius: 20px;
                background: #fff;
                border: 2px solid #0368b4;
                display: flex;
                flex-direction: column;
                align-items: center;
                gap: 24rem;
                padding: 32rem 0 92rem;
                position: relative;

                a {
                    position: absolute;
                    width: 100%;
                    height: 100%;
                    top: 0;
                    left: 0;
                }


                .img {
                    max-width: 160rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                .item-ttl {
                    font-family: var(--font-main);
                    font-weight: 600;
                    letter-spacing: 0.08em;
                    color: #0368b4;
                    display: flex;
                    align-items: flex-end;
                    justify-content: center;

                    .main {
                        font-size: 32rem;
                    }

                    .sub {
                        font-size: max(16px, 20rem);
                    }
                }

                .desc {
                    font-family: var(--font-main);
                    font-weight: 400;
                    font-size: max(16px, 18rem);
                    letter-spacing: 0.08em;
                    line-height: calc((38 / 18) * 1em);
                    text-align: center;
                    color: #313131;
                }
            }



            .item:hover {
                border: none;
                background:
                    repeating-linear-gradient(to right, #0368b4 0 8px, transparent 8px 16px) top,
                    repeating-linear-gradient(to right, #0368b4 0 8px, transparent 8px 16px) bottom,
                    repeating-linear-gradient(to bottom, #0368b4 0 8px, transparent 8px 16px) left,
                    repeating-linear-gradient(to bottom, #0368b4 0 8px, transparent 8px 16px) right,
                    #fff;
                background-size:
                    16px 2px, 16px 2px, 2px 16px, 2px 16px;
                background-repeat:
                    repeat-x, repeat-x, repeat-y, repeat-y;
                background-position:
                    top left, bottom left, top left, top right;
                border-radius: 8px;

                .item-ttl {
                    background-image: linear-gradient(to top,
                            #FFFAC9 16rem,
                            transparent 16rem,
                            transparent 100%);
                    background-repeat: no-repeat;
                    background-size: 100% 100%;
                }
            }

            .item:hover::after {
                background-image: url(/system_panel/uploads/images/h_arrow-b.png);
            }

            .item::after {
                content: "";
                position: absolute;
                background: url(/system_panel/uploads/images/arrow-b.png) no-repeat center/100% auto;
                width: 46rem;
                height: 46rem;
                right: 20rem;
                bottom: 20rem;
            }
        }
    }
}

.t_service::after {
    content: "";
    background: url(/system_panel/uploads/images/dog02.png) no-repeat center/contain;
    position: absolute;
    width: 345rem;
    height: 170rem;
    top: 60rem;
    right: 240rem;
}

@media (max-width: 1023px) {
    .t_service::after {
        width: 155rem;
        height: 78rem;
        top: 21rem;
        right: 16rem;
    }

    .t_service {
        background: url(/system_panel/uploads/images/yellow-bottombg_sp.jpg) no-repeat bottom/100% auto, url(/system_panel/uploads/images/yellow-bg_sp.jpg) no-repeat top/100% auto, #FFFAC9;

        .w1344 {
            padding: 123rem 0 73rem;

            .sec-title {
                margin-bottom: 56rem;

                .catch {
                    margin-top: 40rem;
                }
            }

            .listitem {
                grid-template-columns: 1fr;
                grid-template-rows: auto;
                gap: 16rem;

                .item {
                    padding: 22rem 0 66rem;
                    gap: 16rem;

                    .img {
                        max-width: 120rem;
                    }

                    .item-ttl {
                        .main {
                            font-size: 24rem;
                        }

                        .sub {
                            font-size: 14rem;
                        }


                    }

                    .desc {
                        font-size: 14rem;
                        line-height: 27rem;
                    }
                }

                .item::after {
                    width: 34rem;
                    height: 34rem;
                    right: 16rem;
                    bottom: 16rem;
                }
            }
        }
    }
}

.t_voice {
    background: url(/system_panel/uploads/images/blue-bg.jpg) no-repeat bottom/100% auto, #D8EFFA;
    overflow: hidden;

    .w1344 {
        padding: 80rem 0 44rem;
        display: flex;
        gap: 120rem;
        align-items: center;

        .sec-title {
            align-items: center;
        }

        .voicelist {
            max-width: 1298rem;
            width: 100%;
            overflow: visible;
        }

        .voice-swiper {
            padding-top: 42rem;

            .swiper-slide {
                width: 360rem;
                border-radius: 20px;
                background: #fff;
                border: 2px solid #0368b4;
                padding: 32rem 35rem 64rem;

                .img {
                    width: 114rem;
                    height: auto;
                    position: absolute;
                    top: -34rem;
                    right: 42rem;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                .cat {
                    font-family: var(--font-main);
                    font-weight: 500;
                    font-size: max(16px, 18rem);
                    text-align: left;
                    color: #313131;
                    padding-bottom: 16rem;
                    border-width: 80%;
                    position: relative;
                    display: inline-block;
                    margin-bottom: 32rem;
                }

                .cat::after {
                    content: "";
                    position: absolute;
                    left: 0;
                    bottom: 0;
                    width: 40rem;
                    height: 2px;
                    border-bottom: 2px dashed #0368B4;
                }

                .voice-ttl {
                    margin-bottom: 32rem;

                    h3 {
                        font-family: var(--font-main);
                        font-weight: 600;
                        font-size: max(16px, 22rem);
                        letter-spacing: 0.08em;
                        line-height: calc((32 / 22) * 1em);
                        text-align: left;
                        color: #0368b4;
                    }
                }

                .desc {
                    font-family: var(--font-main);
                    font-weight: normal;
                    font-size: max(14px, 16rem);
                    line-height: calc((32 / 16) * 1em);
                    text-align: left;
                    color: #313131;

                }
            }
        }
    }
}

@media (max-width: 1023px) {
    .t_voice {
        margin-top: -32rem;

        .w1344 {
            padding: 118rem 0 64rem;
            flex-direction: column;
            gap: 40rem;
            max-width: none;
            width: 100%;

            .voicelist {
                margin-left: 16rem;
                width: auto;
                max-width: 100%;
            }

            .voice-swiper {
                padding-top: 36rem;

                .swiper-slide {
                    width: 307rem;

                    .img {
                        width: 97rem;
                        top: -36rem;
                        right: 29rem;
                    }

                    .cat {
                        font-size: 14rem;
                    }

                    .voice-ttl {
                        h3 {
                            font-size: 22rem;
                            line-height: 32rem;
                        }
                    }
                }
            }
        }
    }
}

.t_access {
    .w1344 {
        padding: 80rem 0 40rem;

        .sec-title {
            margin-bottom: 40rem;
            align-items: center;
        }

        .content {
            display: flex;
            flex-direction: column;
            gap: 40rem;

            .map {
                position: relative;
                border-radius: 20px;
            }

            .map::before {
                content: "";
                background: url(/system_panel/uploads/images/dog03.png) no-repeat center/100% auto;
                width: 140rem;
                height: 140rem;
                position: absolute;
                left: 32rem;
                bottom: 100%;
            }

            .map::after {
                content: "";
                background: url(/system_panel/uploads/images/dog04.png) no-repeat center/100% auto;
                width: 112rem;
                height: 152rem;
                position: absolute;
                right: -53rem;
                bottom: -22rem;
            }

            iframe {
                border-radius: 20px;
                border: none;
                width: 100%;
                height: 480rem;
            }

            .column {
                display: flex;
                gap: 73rem;
                justify-content: space-between;

                .text {
                    flex: 1;

                    .item {
                        display: grid;
                        grid-template-columns: 30% auto;
                        grid-template-rows: auto;
                        align-items: center;
                        padding-bottom: 24rem;
                        margin-bottom: 24rem;
                        border-bottom: 1px solid #D9D9D9;

                        .ttl {
                            font-family: var(--font-main);
                            font-weight: 600;
                            font-size: max(16px, 18rem);
                            line-height: calc((38 / 16) * 1em);
                            text-align: left;
                            color: #313131;
                            padding-left: 24rem;
                            position: relative;
                            margin-bottom: auto;
                        }

                        .ttl::after {
                            content: "";
                            position: absolute;
                            width: 8px;
                            height: 8px;
                            background-color: #e6006d;
                            border-radius: 50px;
                            top: 0;
                            bottom: 0;
                            left: 0;
                            margin: auto;
                        }

                        .detail {
                            font-family: var(--font-main);
                            font-weight: 400;
                            font-size: max(14px, 16rem);
                            line-height: calc((32 / 16) * 1em);
                            text-align: left;
                            color: #313131;

                        }
                    }

                    .item:last-child {
                        margin-bottom: 0;
                    }

                    .secbtn {
                        max-width: 300px;
                        height: 64px;
                        margin-top: 80rem;
                    }
                }

                .img {
                    max-width: 640rem;
                    width: 100%;

                    img {
                        width: 100%;
                        height: auto;
                    }

                }
            }
        }
    }
}

@media (max-width: 1023px) {
    .t_access {
        .w1344 {
            padding: 42rem 0 40rem;

            .content {
                gap: 16rem;

                .map::before, .map::after {
                    content: none;
                }

                iframe {
                    height: 240rem;
                }

                .column {
                    flex-direction: column-reverse;
                    gap: 24rem;

                    .text {
                        .item {
                            grid-template-columns: 1fr;
                            grid-template-rows: auto;
                            padding-bottom: 16rem;
                            margin-bottom: 16rem;

                            .ttl {
                                font-size: 16rem;
                            }

                            .detail {
                                font-size: 14rem;
                                line-height: 24rem;
                            }
                        }

                        .secbtn {
                            margin: 0 auto;
                            max-width: 309rem;
                            height: 64rem;
                            margin-top: 40rem;
                        }
                    }
                }
            }
        }
    }
}

.t_ig {
    background: url(/system_panel/uploads/images/bluesec-bottom.jpg) no-repeat bottom/100% auto, url(/system_panel/uploads/images/blue-topbg.jpg) no-repeat top/100% auto, #D8EFFA;

    .w1180 {
        max-width: 1180rem;
        width: 90%;
        margin: 0 auto;
        display: flex;
        padding: 156rem 0 104rem;
        gap: 120rem;
        align-items: center;

        .sec-title {
            align-items: center;
            margin-bottom: 48rem;
        }

        .secbtn {
            max-width: 220px;
            height: 48px;
            margin: 0 auto;

            p {
                font-size: 14px;
            }
        }
    }
}

@media (max-width: 1023px) {
    .t_ig {
        background: url(/system_panel/uploads/images/blue-bg_sp.jpg) no-repeat bottom/100% auto, url(/system_panel/uploads/images/blue-topbg_sp.jpg) no-repeat top/100% auto, #D8EFFA;

        .w1180 {
            padding: 153rem 0 96rem;
            flex-direction: column;
            gap: 55rem;

            .sec-title {
                margin-bottom: 40rem;
            }

            .secbtn {
                max-width: 220rem;
                height: 48rem;

                p {
                    font-size: 14rem;
                }
            }
        }
    }
}


.gjs-dashed {
    .loading {
        background-color: #FFFAC9 !important;
        height: 100% !important;
        opacity: 1 !important;
        position: relative;
        visibility: visible !important;

        .loading-image {
            opacity: 1 !important;
        }
    }

    .main-content {
        display: block !important;
    }

    .fv {
        opacity: 1 !important;
    }

    .t_service {
        .w1344 {
            .listitem {
                .item {
                    a {
                        z-index: -1 !important;
                    }
                }
            }
        }
    }
}