@charset 'utf-8';
body {
    font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
    font-weight: 500;
    font-size: 16px;
    color: #1c2438;
    font-feature-settings: "palt";
}

.pc {
    display: block !important;
}

.sp {
    display: none !important;
}

@media screen and (max-width:960px) {
    .pc {
        display: none !important;
    }
    .sp {
        display: block !important;
    }
}

.wrapper {
    width: 100%;
    max-width: 2560px;
    margin: 0 auto;
}

.btn {
    display: inline-block;
    padding: 1em;
    text-align: center;
    border-radius: 5px;
    background: #f4f5f7;
    color: #1c2438;
}

section.kv.cm {
    z-index: 0;
    position: relative;
    overflow: hidden;
    height: 100%;
    margin-top: 95px;
    background: rgb(224, 224, 224);
    background: linear-gradient(0deg, rgba(224, 224, 224, 1) 10%, rgba(255, 255, 255, 1) 50%, rgba(224, 224, 224, 1) 90%);
    padding: 140px 40px;
}

.kv .box {
    max-height: 800px;
    width: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 1300px;
    gap: 60px;
    margin: 0 auto;
}

.kv .box figure.main_hero {
    position: relative;
    overflow: hidden;
    max-width: 1920px;
    top: 0;
    left: 0;
    width: 100%;
    display: block;
    margin: 0 auto;
}

.kv .box figure.main_hero img {
    width: 100%;
}

.catchcopy-area {
    position: relative;
}

.catchcopy-area h2 {
    font-size: 4rem;
    margin-bottom: 40px;
}
.catchcopy-area h2 span {
    display: inline-block;
    padding: 0.14em 0;
    position: relative;
    overflow: hidden;
}
.animated::after {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
}
.slick-slider,
.slick-track {
    position: relative;
}
.slick-slider::before {
    content: "";
    background-image: url(../img/app-image-frame.png);
    display: block;
    position: absolute;
    z-index: 1;
    top: -5px;
    left: 50%;
    transform: translateX(-50%);
    height: 100%;
    width: 30%;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: auto 100%;
    cursor: inherit;
    pointer-events: none;
}
.slick-initialized .slick-slide {
    margin: 30px;
}
li.slick-slide.slick-current.slick-active.slick-center {
    border-radius: 40px;
    overflow: hidden;
}

@-webkit-keyframes catchcopy {
    from {
        -webkit-animation-timing-function: linear;
        opacity: 1.0;
        width: 0;
    } to {
        -webkit-animation-timing-function: linear;
        opacity: 1.0;
        width: 100%;
    } 20% {
        -webkit-animation-timing-function: linear;
        opacity: 1.0;
        width: 10%;
    } 80% {
        -webkit-animation-timing-function: linear;
        opacity: 1.0;
        width: 90%;
    }
}

@keyframes catchcopy {
    from {
        animation-timing-function: linear;
        opacity: 1.0;
        width: 0;
    } to {
        animation-timing-function: linear;
        opacity: 1.0;
        width: 100%;
    } 20% {
        animation-timing-function: linear;
        opacity: 1.0;
        width: 10%;
    } 80% {
        animation-timing-function: linear;
        opacity: 1.0;
        width: 90%;
    }
}

.catchcopy::after {
    -webkit-animation-name: catchcopy;
    animation-name: catchcopy;
    -webkit-transform-origin: left center;
    transform-origin: left center;
}
.catchcopy-area h2 span::after {
    content: "";
    width: 0%;
    background: #FFC107;
    position: absolute;
    bottom: 0;
    height: 0.5em;
    left: 0;
    z-index: -1;
}
.catchcopy.copy-1::after { animation-delay: 3s; }
.catchcopy.copy-2::after { animation-delay: 3.5s; }
.catchcopy.copy-3::after { animation-delay: 4s; }


.catchcopy-area p.fadein.show {
    font-size: 1.25rem;
    line-height: 1.7;
    margin-bottom: 40px;
}

.kv .box .link-area.fadein.show {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.kv .box .btn {
    background: #0B3CAE;
    color: #FFFFFF;
    padding: 20px 50px;
    transition: 0.4s all ease;
    width: calc(50% - 120px);
}
@media screen and (max-width:960px) {
    section.kv.cm .box {
        /* height: calc(100vh - 240px); */
        position: relative;
        padding: 0 0;
    }
    .slick-slider::before {
        width: 100%;
        height: 100%;
    }
}

@media screen and (min-width:960px) {
    section.kv.cm .box {
        /* height: calc(100vh - 240px); */
        position: relative;
        padding: 0 0;
        /* max-height: 800px; */
    }
    .slick-initialized .slick-slide {
        margin: 10px 30px 20px;
    }
}

@media screen and (min-width:1281px) {
    .kv .box .text-block .medal-button {
        margin: 3em 0 24px;
    }
    .slick-initialized .slick-slide {
        margin: 20px 30px 55px;
    }
    .slick-slider::before { height: 97%; }
}

@media screen and (min-width:1921px) {
    .kv .box .text-block .desc {
        font-size: 42.213px;
    }
    .kv .box .text-block .catch {
        font-size: 60.85px;
    }
    .kv .box .text-block .medal-button .medal {
        width: 480px;
    }
    .slick-slider::before { height: 100%; }
}

/* .swiper-container-autoheight .swiper-slide {
    width: 100% !important;
    max-width: 1300px;
} */

section.banner.swiper-container.hide_if_en.swiper-container-initialized.swiper-container-horizontal.swiper-container-autoheight {
    padding: 40px 0;
}

/* .bx-wrapper {
	width:22vw;
	filter:drop-shadow(0 3px 10px rgba(0,0,0,.2));
}

.kv .box .text-block .ss-list .item img {
	width:100%;
	height:auto;
} */


/* .kv .box .text-block .ss-list .item.hide {
	animation-name:imghide;
	animation-duration:.5s;
	animation-timing-function:ease-out;
	animation-delay:0s;
	animation-iteration-count:1;
	animation-fill-mode:forwards;
} */

@keyframes imghide {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

.contents {
    position: relative;
    z-index: 1;
}

.contents > figure.ScrollTop {
    opacity: 0;
    position: fixed;
    z-index: 20;
    right: -100px;
    bottom: -100px;
    width: 5vw;
    max-width: 260px;
    pointer-events: none;
    transition: all 1.2s ease;
}
.contents > figure.ScrollTop.isActive {
    opacity: 0.9;
    position: fixed;
    z-index: 20;
    right: 40px;
    bottom: 40px;
    width: 25vw;
    max-width: 260px;
    pointer-events: auto;
}

.contents > figure img {
    width: 100%;
    opacity: 0.9;
}

a.fixed-r-c.ScrollTop {
    width: calc(1em + 10px);
    padding: 1em 10px;
    opacity: 0;
    position: fixed;
    writing-mode: vertical-rl;
    vertical-align: middle;
    text-align: center;
    display: inline-block;
    z-index: 20;
    right: calc(-2em + 20px);
    top: calc(50% - 5vw);
    transform: translateY(-50%);
    pointer-events: none;
    transition: opacity 0.2s ease, right 0.8s ease;
}
a.fixed-r-c.ScrollTop.isActive {
    opacity: 0.9;
    position: fixed;
    right: 0;
    padding: 1em 10px;
    pointer-events: auto;
    writing-mode: vertical-rl;
    vertical-align: middle;
    text-align: center;
    display: inline-block;
    background: #333333;
    color: #FFFFFF;
    transition: opacity 0.6s ease ;
}
a.fixed-r-c.ScrollTop.isActive:hover {
    opacity: 0.6;
}
a.fixed-r-c.ScrollTop.isActive img {
    width: 80%;
    margin-top: 0.5em;
    vertical-align: text-top;
}

.animated {
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
}

@-webkit-keyframes float-balloon {
    from {
        -webkit-animation-timing-function: linear;
        -webkit-transform: translate(0px,0px) scale(1,1) rotate(0deg) skew(0deg,0deg);
        opacity: 1.0;
    } to {
        -webkit-animation-timing-function: linear;
        -webkit-transform: translate(0px,0px) scale(1,1) rotate(0deg) skew(0deg,0deg);
        opacity: 1.0;
    } 50% {
        -webkit-animation-timing-function: linear;
        -webkit-transform: translate(0px,-20px) scale(1,1) rotate(0deg) skew(0deg,0deg);
        opacity: 1.0;
    } 
}

@keyframes float-balloon {
    from {
        animation-timing-function: linear;
        transform: translate(0px,0px) scale(1,1) rotate(0deg) skew(0deg,0deg);
        opacity: 1.0;
    } to {
        animation-timing-function: linear;
        transform: translate(0px,0px) scale(1,1) rotate(0deg) skew(0deg,0deg);
        opacity: 1.0;
    } 50% {
        animation-timing-function: linear;
        transform: translate(0px,-20px) scale(1,1) rotate(0deg) skew(0deg,0deg);
        opacity: 1.0;
    } 
}

.float-balloon {
    -webkit-animation-name: float-balloon;
    animation-name: float-balloon;
    -webkit-transform-origin: center center;
    transform-origin: center center;
}


section .img-content figure {
    display: flex;
    align-items: center;
    justify-content: center;
}

section .img-content figure img {
    width: 50%;
}

.swiper-slide img {
    width: 100%;
}

section.s01 {
    margin-top: 100px;
    margin-bottom: 120px;
}

section.s01 h2 {
    font-size: 1.5rem;
    text-align: center;
    margin-bottom: 2em;
    font-weight: 700;
    line-height: 1.7em;
}

section.s01 .wrapper {
    width: 94%;
    margin: 0 auto;
    max-width: 1920px;
}

section.s01 .item-list {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

section.s01 .item-list .item {
    width: 15.5%;
    border-radius: 10px;
    background: #F8F8F8;
    overflow: hidden;
    transform: translate(0, 20px);
    opacity: 0;
    box-shadow: 0px 0px 1px rgb(20 20 20 / 8%), 0px 1px 8px 2px rgb(20 20 20 / 8%);
}

section.s01 .item-list .item figure {
    display: block;
    padding: 20px 20px 0;
    background: #FFFFFF;
}

section.s01 .item-list .item.elem1.show {
    transform: translate(0, 0);
    opacity: 1;
    transition-property: opacity, transform;
    transition-duration: .5s;
    transition-timing-function: ease-out;
    transition-delay: 0;
}

section.s01 .item-list .item.elem2.show {
    transform: translate(0, 0);
    opacity: 1;
    transition-property: opacity, transform;
    transition-duration: .5s;
    transition-timing-function: ease-out;
    transition-delay: .1s;
}

section.s01 .item-list .item.elem3.show {
    transform: translate(0, 0);
    opacity: 1;
    transition-property: opacity, transform;
    transition-duration: .5s;
    transition-timing-function: ease-out;
    transition-delay: .2s;
}

section.s01 .item-list .item.elem4.show {
    transform: translate(0, 0);
    opacity: 1;
    transition-property: opacity, transform;
    transition-duration: .5s;
    transition-timing-function: ease-out;
    transition-delay: .3s;
}

section.s01 .item-list .item.elem5.show {
    transform: translate(0, 0);
    opacity: 1;
    transition-property: opacity, transform;
    transition-duration: .5s;
    transition-timing-function: ease-out;
    transition-delay: .4s;
}

section.s01 .item-list .item.elem6.show {
    transform: translate(0, 0);
    opacity: 1;
    transition-property: opacity, transform;
    transition-duration: .5s;
    transition-timing-function: ease-out;
    transition-delay: .5s;
}

section.s01 .item-list .item img {
    width: 100%;
    overflow: hidden;
    height: auto;
    background-color: #FFFFFF;
}

section.s01 .item-list .item .text {
    box-sizing: border-box;
    padding: 1em 1em 2em;
}

section.s01 .item-list .item .text .ttl {
    font-size: 1.2rem;
    font-weight: bold;
    margin-bottom: 0.5em;
    line-height: 1.7;
}

section.s01 .item-list .item .text .body {
    font-size: 1rem;
    line-height: 1.7;
}

section.s01 .shade {
    margin-top: .75em;
    text-align: center;
    width: 100%;
}

section.feature {
    margin-bottom: 20px;
    max-width: 1960px;
    margin-left: auto;
    margin-right: auto;
}

section.feature .box {
    box-sizing: border-box;
    width: 98%;
    margin: 0 auto;
    background: #f4f5f7;
    border-radius: 20px;
    margin-bottom: 1em;
    overflow: hidden;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    z-index: 1;
}

section.feature .box.full {
    display: block;
    text-align: center;
}

section.feature .box .inner {
    box-sizing: border-box;
    padding: 3.6em 3em 2em;
    width: 55%;
}

section.feature .box .img-content {
    box-sizing: border-box;
    width: 45%;
    overflow: hidden;
    border-radius: 20px;
}

section.feature .box.full .inner {
    width: 100%;
}

section.feature .box.full .img-content {
    width: 90%;
    margin: 4em auto 2em;
}

section.feature .box.slide .inner {
    width: 100%;
}

section.feature .box.left .inner {
    order: 1;
    padding-right: 6%;
    padding-top: 0;
}

section.feature .box.left .img-content {
    order: 2;
}

section.feature .box.right .inner {
    order: 2;
    padding-left: 6%;
}

section.feature .box.right .img-content {
    order: 1;
}

section.feature .box.full .img-content {
    width: 100%;
    margin: 4em auto;
}

section.feature .box.full .img-content img {
    width: 100%;
}

section.feature .box.left.box-cont3 .img-content {
    padding-top: 40px;
}

section.feature .box .inner .ttl {
    font-size: 2.25rem;
    font-weight: 700;
    transform: translate(0, 20px);
    opacity: 0;
}

section.feature .box .inner .body {
    font-size: 1rem;
    line-height: 1.6;
    margin: 2em 0;
    transform: translate(0, 20px);
    opacity: 0;
}

section.feature .box .icons {
    margin-top: 5em;
    overflow: hidden;
    width: 150%;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: flex-start;
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    transform: translate(0, 20px);
    opacity: 0;
}

section.feature .box.box-cont2 .body.elem2 {
    max-width: 564px;
    margin: 2em auto;
}

section.feature .box.left.box-cont3 .img-content figure img {
    width: 75%;
}

section.feature .box.box-cont4.box-cont-sp4 .img-content {
    margin: 0;
}

section.feature .box.box-cont4.box-cont-sp4 .img-content figure {
    justify-content: left;
}

section.feature .box.box-cont4.box-cont-sp4 .img-content figure img {
    width: 75%;
}

section.feature .box.box-cont5.box-cont-sp5 .inner {
    padding: 40px;
    width: 45%;
}

section.feature .box.box-cont5.box-cont-sp5 .img-content {
    width: 55%;
    position: relative;
}

section.feature .box.box-cont5.box-cont-sp5 .img-content figure img {
    width: 100%;
}

section.feature .box.box-cont6.box-cont-sp6 .img-content {
    margin: 80px 0;
}

section.feature .box.full .icons {
    width: 90%;
    margin: 0 auto;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
}

section.feature .box .icons li {
    box-sizing: border-box;
    text-align: center;
    width: 9.7vw;
    padding: 1em .5em;
    border-right: 1px solid #e0e0e0;
}

section.feature .box .icons li .wrap {
    height: 4vw;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

section.feature .box .icons li img {
    width: 4vw;
    display: inline-block;
    vertical-align: middle;
    height: auto;
}

section.feature .box .icons li:first-child {
    border-left: 1px solid #e0e0e0;
}

section.feature .box .icons li p {
    margin-top: 1.4em;
    font-size: .695vw;
    line-height: 1.4;
}

section.feature .box.slide {
    display: block;
    opacity: 1;
}

section.feature .box.slide .inner {
    position: absolute;
    bottom: 1em;
    left: 0;
    z-index: 11;
    padding: 0;
}

section.feature .box.slide .inner .ttl {
    color: #fff;
    padding-left: 2rem;
}

section.feature .box.slide .inner .body {
    color: #fff;
    padding-left: 2rem;
}

section.feature .box.slide .icons {
    width: 40vw;
    background: #fff;
    border-radius: 0 10px 10px 0;
    flex-wrap: wrap;
    margin-top: 0;
    padding: 1.5em 0;
}

section.feature .box.slide .icons li:first-child {
    border-left: none;
}

section.feature .box.slide .icons li:last-child {
    border-right: none;
}

section.bg-lightblue {
    background: #F2F5FB;
}

section.support.bg-lightblue {
    padding: 70px 20px;
    position: relative;
}

section.support .title-block .ttl {
    font-size: 1.5rem;
    line-height: 1.7rem;
    margin-bottom: 30px;
}

section.support.support-list ul {
    position: relative;
    width: 94vw;
    max-width: 1047px;
    background: #FFF;
    margin: 0 auto;
}

section.support .support-list ul {
    position: relative;
    width: 94vw;
    max-width: 1300px;
    margin: 0 auto;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between;
    /* align-items: center; */
}

section.support .support-list ul li {
    width: calc(20% - 32px);
    margin: 10px;
    text-align: center;
    line-height: 1.7;
    font-weight: normal;
    font-size: 0.9rem;
    border: 1px solid;
    color: #0B3CAE;
    background: #FFFFFF;
    padding: 10px 5px;
    border-radius: 10px;
}

section.price {
    padding: 100px 20px 120px;
    position: relative;
}

section.price .title-block .ttl {
    font-size: 1.75rem;
    margin-bottom: 80px;
}

section.price .title-block.left-title .ttl {
    text-align: left;
    margin-bottom: 24px;
}

section.price .price-list {
    max-width: 1300px;
    width: 100%;
    position: relative;
    overflow: hidden;
    margin: 0 auto;
}
section.price .price-list > p {
    font-size: 0.875em;
    font-weight: normal;
    margin-top: 1em;
    max-width: 920px;
    margin-left: auto;
    line-height: 1.7;
}
section.price .price-list .table {
    /* overflow-x: auto; */
    position: relative;
    max-width: 1300px;
}
section.price .price-list .table table {
    min-width: 1180px;
}

section.price .price-list .table ul.tbl-1 {
    min-width: 1024px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 50px;
    gap: 0.6em;
}

section.price .price-list .table ul.tbl-1 li {
    width: 100%;
    position: relative;
    overflow: hidden;
    width: calc(100% - 20px);
    border: 1px solid rgba(0, 0, 0, 0);
}

section.price .price-list .table ul.tbl-1 li.bdr-block {
    border: 1px solid #D0DDFD;
}

section.price .price-list .table ul.tbl-1 li ul.tbl-2 li {
    padding: 25px 10px;
    text-align: center;
    line-height: 1.7em;
    position: relative;
    width: calc(100% - 20px);
    font-size: 0.9rem;
    font-weight: normal;
    border: none;
}

section.price .price-list .table ul.tbl-1 li ul.tbl-2 li::after {
    content: "";
    display: block;
    border: 1px dashed;
    position: absolute;
    bottom: 0;
    left: 0;
    width: calc(100%);
}

section.price .price-list .table ul.tbl-1 li ul.tbl-2 li.th-block.blue-block {
    background: #D0DDFD;
    padding: calc(50px - 0.8em) 10px;
    font-size: 1.2rem;
    font-weight: bold;
}

section.price .price-list .table ul.tbl-1 li ul.tbl-2 li.th-block.blue-block::after,
section.price .price-list .table ul.tbl-1 li ul.tbl-2 li.lightblue-bg::after {
    display: none;
}

section.price .price-list .table ul.tbl-1 li ul.tbl-2 li.lightblue-bg {
    background: #F2F5FB;
    color: #0B3CAE;
    font-weight: bold;
}

section.price .price-list .table ul.tbl-1 li ul.tbl-2.first-th li {
    background: #E3E5E5;
    margin: 9px 10px;
    width: calc(100% - 50px);
    border-radius: 10px;
    font-size: 0.9rem;
    padding: 20px;
    font-weight: bold;
    text-align: left;
}

section.price .price-list .table ul.tbl-1 li ul.tbl-2.first-th li::after {
    display: none;
}

section.price .price-list .table ul.tbl-1 li ul.tbl-2.first-th li.th-block.blnk-block {
    display: none;
}

section.price .price-list .price-area {
    gap: 20px;
    justify-content: center;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
section.price .price-list .price-area .price-block {
    width: calc(33.33% - 40px);
    position: relative;
}
section.price .price-list .price-area .price-block h3 {
    text-align: center;
    padding: 40px 20px;
    border: 1px solid #0B3CAE;
    font-size: 1.125rem;
    font-weight: normal;
    line-height: 0;
    color: #0B3CAE;
}
section.price .price-list .price-area .price-block.main-price h3 {
    font-size: 1.5rem;
    background: #0B3CAE;
    font-weight: bold;
    color: #FFFFFF;
}
.price-area .toggle {
    display: none;
}
.price-area .Label {        /*タイトル*/
    padding: 1em;
    display: block;
    color: #fff;
    background:#019ac6;
}
.price-area .Label::before{     /*タイトル横の矢印*/
    content:"";
    width: 6px;
    height: 6px;
    border-top: 1px solid #0B3CAE;
    border-right: 1px solid #0B3CAE;
    -webkit-transform: rotate(45deg);
    position: absolute;
    top:calc( 50% - 3px );
    right: 20px;
    transform: rotate(135deg);
}
.price-area .Label,
.price-area .content {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
    transition: all 0.3s;
}
.price-area .content {      /*本文*/
    height: 0;
    margin-bottom: 0;
    padding: 0 20px;
    overflow: hidden;
    /* border: 1px solid #0B3CAE; */
}
.price-area .toggle:checked + .Label + .content {
    height: auto;
    padding: 20px;
    transition: all .3s;
    background: #F2F5FB;
    border-width: 0 1px 1px 1px;
    border-style: solid;
    border-color: #0B3CAE;
}
.price-area .toggle:checked + .Label::before {
    transform: rotate(-45deg) !important;
}
.price-area .Label {
    padding: 1em;
    display: block;
    color: #0B3CAE;
    background: #EFEFEF;
    border-top: 0px solid;
    border-right: 1px solid;
    border-left: 1px solid;
    border-bottom: 1px solid;
    display: flex;
    align-items: center;
    gap: 1em;
    font-weight: bold;
}
.price-area .Label span {
    font-size: 160%;
}
.price-area .Label span.txt-s {
    font-size: 90%;
    display: inline-block;
    width: 8em;
}
.price-area .Label span.txt-ss {
    display: inline-block;
    font-size: 100%;
    width: 3em;
    font-weight: bold;
}
section.price .price-list .price-area .price-block.main-price .Label {
    background: #0B3CAE;
    color: #FFFFFF;
    border-color: #0B3CAE;
    border-top: 1px solid #FFFFFF;
    font-weight: bold;
}
section.price .price-list .price-area .price-block.main-price .Label::before {
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
}

.price-area .content dt {
    font-size: 1.125rem;
    margin-bottom: 0.5em;
    line-height: 1;
}
.price-area .content dd {
    font-weight: normal;
    line-height: 1.7;
}
.price-area .content dd.icons {
    margin-bottom: 20px;
    gap: 10px;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
.price-area .content dd.icons img {
    width: calc(16.666% - 10px);
}

.price-list table.price-table-block tr {
    position: relative;
}
.price-list table.price-table-block tr th {
    background: #efefef;
    padding: 20px 1em;
    vertical-align: middle;
    font-size: 1.2rem;
    color: #0b3cae;
    font-weight: normal;
    width: calc(22.5vw - 2px);
    border: 1px solid #0b3cae;
                            max-width: 250px;
}
.price-list table.price-table-block tr th:first-child {
    background: #0b3cae;
    color: #FFFFFF;
    border-right: 1px solid #FFFFFF;
    font-size: 0.875rem;
}
.price-list table.price-table-block tr th.first-block:first-child {
    background: none;
    border: none;
    width: calc(10vw - 2px);
}
.price-list table.price-table-block tr.table-header th {
    text-align: center;
    padding: 30px 5px;
    border: 1px solid #0B3CAE;
    font-size: 1.125rem;
    font-weight: normal;
    line-height: 0;
    color: #0B3CAE;
    width: calc(22.5vw - 2px - 2em);
}
.price-list table.price-table-block tr.table-header th.first-block {
    border: 1px solid rgba(0, 0, 0, 0);
    width: calc(10vw - 2px);
}
.price-list table.price-table-block tr.table-header th:nth-child(2) {
    background: #0B3CAE;
    padding: 10px 5px;
    border-bottom: 1px solid #FFFFFF;
}
.price-list table.price-table-block tr.table-header th:nth-child(2) img {
    height: 60px;
}
.price-list table.price-table-block tr.table-header-price th:nth-child(2) {
    background: #0b3cae;
    color: #FFFFFF;
    border-right: 1px solid #0b3cae;
}
.price-list table.price-table-block tr.table-body-icon td {
    border: 1px solid #0b3cae;
    padding: 10px 5px;
    text-align: center;
    vertical-align: middle;
    font-weight: normal;
    font-size: 0.875rem;
    line-height: 1.7;
}
.price-list table.price-table-block tr.table-body-icon td span {
    display: inline-block;
}
.price-list table.price-table-block tr.table-body-icon td sup {
    font-size: 0.6rem;
}
.price-list table.price-table-block tr.table-body-icon td .icon-inner p {
    font-size: 0.875rem;
    margin-top: 0.5em;
}
.price-list table.price-table-block tr.table-body-icon td .icons.flex {
    display: flex;
    gap: 5px;
    justify-content: center;
    align-items: center;
}
.price-list table.price-table-block tr.table-body-icon td .icons.flex img {
    width: 40px;
}
.price-list table.price-table-block tr.table-body-icon td .icons.cross-icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.price-list table.price-table-block tr.table-body-icon td .icons.cross-icon p {
    width: 40px;
    height: 40px;
    position: relative;
    overflow: hidden;
}
.price-list table.price-table-block tr.table-body-icon td .icons.cross-icon p::before, .price-list table.price-table-block tr.table-body-icon td .icons.cross-icon p::after {
    content: "";
    width: 40px;
    height: 2px;
    display: block;
    background: #333333;
    position: absolute;
    top: calc(50% - 1px);
    left: calc(50% - 1px);
    transform: translate(-50%, -50%);
}
.price-list table.price-table-block tr.table-body-icon td .icons.cross-icon p::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.price-list table.price-table-block tr.table-body-icon td .icons.cross-icon p::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
.price-list table.price-table-block tr.table-body-icon td .txt-inner.flex {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 0.5em;
    text-align: left;
}
.price-list table.price-table-block tr.table-body-icon td .txt-inner.flex dl {
    position: relative;
    width: 12em;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.price-list table.price-table-block tr.table-body-icon td .txt-inner.flex dl dt {
    width: 6em;
    display: inline-block;
}
.price-list table.price-table-block tr.table-body-icon td .txt-inner.flex dl dd {
    display: inline-block;
    width: 6em;
}
.price-list table.price-table-block tr.table-body-icon td .txt-inner.flex > p {
    width: 5em;
    display: inline-block;
}
.price-list table.price-table-block tr th > span:first-child {
    font-size: 1.25rem;
    font-weight: bold;
}
.price-list table.price-table-block tr th > span {
    font-size: 80%;
}
.price-list table.price-table-block tr th > span.txt-ss.bld {
    text-align: center;
    vertical-align: middle;
    margin-left: 2em;
    display: inline-block;
    padding: 0.4em;
    background: #FFFFFF;
    color: #333333;
    font-weight: bold;
}
.price-list table.price-table-block tr:nth-child(2) th > span.txt-ss.bld {
    /* vertical-align: text-bottom; */
}
.price-list table.price-table-block tr th > span.txt-ss.bld span.txt-ss {
    font-size: 0.6em;
    line-height: 2;
}

section.case {
    padding: 100px 20px;
    position: relative;
}

section.case .title-block .ttl {
    font-size: 1.75rem;
    margin-bottom: 80px;
}

section.case .case-list ul {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 30px;
    max-width: 1300px;
    margin: 0 auto;
}

section.case .case-list>ul>il {
    width: calc(50% - 115px);
    background: #FFFFFF;
    display: block;
    text-align: center;
    padding: 60px 50px 320px;
    border-radius: 12px;
    box-shadow: 0 0 5px #ddd;
    position: relative;
}

section.case .case-list>ul>il figure>* {
    max-width: 50%;
    margin-bottom: 10px;
}

section.case .case-list>ul>il h3 {
    font-size: 1.5rem;
    margin-bottom: 20px;
}

section.case .case-list>ul>il h3 span {
    font-size: 0.6em;
    display: block;
    margin-top: 15px;
    color: #0B3CAE;
    font-weight: normal;
}

section.case .case-list>ul>il p {
    line-height: 1.7em;
    font-weight: normal;
    text-align: left;
}

section.case .case-list ul.app-lists {
    justify-content: flex-start;
    position: absolute;
    width: calc(100% - 115px);
    bottom: 70px;
    left: 50%;
    transform: translateX(-50%);
    gap: 30px;
}

section.case .case-list ul.app-lists li {
    border: 1px solid #D0DDFD;
    padding: 40px 20px 20px;
    border-radius: 12px;
    width: calc(50% - 58px);
    text-align: center;
}

section.case .case-list ul.app-lists li figure {
    text-align: center;
}

section.case .case-list ul.app-lists figure>* {
    width: 32px;
    margin-bottom: 40px;
}

section.case .case-list ul.app-lists li p {
    text-align: center;
    font-size: 0.9rem;
    min-height: 3rem;
}

section.technology {
    padding: 100px 20px;
    position: relative;
}

section.technology .title-block .ttl {
    font-size: 1.75rem;
    margin-bottom: 80px;
}

section.technology .technology_lists {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px 10px;
    max-width: 1300px;
    margin: 0 auto;
    align-items: center;
    background: #F5F5FC;
    padding: 60px 40px;
}

section.technology .technology_lists .tech_item {
    width: calc(33.333% - 40px);
    text-align: center;
    padding: 40px;
    border: 1px solid;
    position: relative;
    overflow: hidden;
}

section.technology .technology_lists .tech_item.tech_item_01 {
    border-color: rgba(0, 0, 0, 0);
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    text-align: left;
}

section.technology .technology_lists .tech_item.tech_item_02 {
    border-color: #4CAF50;
}

section.technology .technology_lists .tech_item.tech_item_03 {
    border-color: #FFC107;
}

section.technology .technology_lists .tech_item.tech_item_04 {
    border-color: #1976D2;
    width: calc(33.333% - 40px);
    padding: 40px 10px;
}

section.technology .technology_lists .tech_item.tech_item_07 .tech_item.tech_item_05 {
    border-color: #ea2845;
    max-width: 300px;
    margin: 0 auto 20px;
}
section.technology .technology_lists .tech_item.tech_item_07 {
    width: 100%;
    display: block;
    /* justify-content: space-between; */
    /* align-items: flex-start; */
    position: relative;
    gap: 20px;
    border: none;
    background: #FFFFFF;
    padding: 20px;
}
section.technology .technology_lists .tech_item.tech_item_07 .tech_item {
    width: calc(100% - 20px);
    padding-top: 90px;
}
section.technology .technology_lists .tech_item.tech_item_07 .tech_item.tech_item_06.fadein-item.show-block {
    padding: 0;
    border: none;
    display: flex;
    gap: 20px;
    justify-content: center;
    align-items: stretch;
    margin-bottom: 20px;
}
section.technology .technology_lists .tech_item.tech_item_07 .tech_item.tech_item_06.fadein-item.show-block .fadein-item.show-block {
    width: calc(100% - 82px);
    max-width: 300px;
}

section.technology .technology_lists .tech_item h3 {
    display: inline-block;
    position: absolute;
    top: 0;
    font-size: 1.5rem;
    text-align: center;
    width: calc(100% - 40px);
    left: 0;
    transform: none;
    padding: 20px;
    background: #CCCCCC;
    color: #FFFFFF;
}
section.technology .technology_lists .tech_item.tech_item_02 h3 {
    background: #4CAF50;
}
section.technology .technology_lists .tech_item.tech_item_03 h3 {
    background: #FFC107;
}
section.technology .technology_lists .tech_item.tech_item_04 h3 {
    background: #1976D2;
}
section.technology .technology_lists .tech_item.tech_item_05 h3 {
    background: #ea2845;
}


section.technology .technology_lists .tech_item figure {
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
}

section.technology .technology_lists .tech_item figure>* {
    height: 120px;
    position: relative;
    top: 0;
    left: 0;
    transform: none;
}

section.technology .technology_lists .tech_item.tech_item_02 figure>*,
section.technology .technology_lists .tech_item.tech_item_04 .first-cont figure>* {
    /* width: 100%; */
}

section.technology .technology_lists .tech_item h4 {
    font-size: 2rem;
    margin: 5px;
    line-height: 1.7;
}

section.technology .technology_lists .tech_item p {
    font-size: 0.9rem;
    line-height: 1.7em;
    font-weight: normal;
}
section.technology .technology_lists .tech_item.tech_item_07 p {
    height: 0;
    opacity: 0;
    transition: all 0.8s ease;
    padding: 0 20px;
    position: absolute;
    bottom: 0;
    left: 0;
    text-align: left;
}
section.technology .technology_lists .tech_item:hover > p {
    height: calc(100% - 144px);
    padding: 40px 20px;
    overflow: auto;
    background: rgb(0 10 30 / 70%);
    z-index: 4;
    width: calc(100% - 40px);
    opacity: 1;
    color: #EFEFEF;
}

section.technology .technology_lists .tech_item.tech_item_04 ul.google-cloud-platform {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 10px;
}

section.technology .technology_lists .tech_item.tech_item_04 ul.google-cloud-platform li {
    border: 1px solid #1976D2;
    width: calc(33.33% - 74px);
    padding: 40px 30px;
    position: relative;
    overflow: hidden;
}
section.technology .technology_lists .tech_item.tech_item_07 .tech_item.tech_item_04 li.first-cont {
    border-color: rgba(0, 0, 0, 0);
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 40px;
    width: calc(100% - 75px);
}
section.technology .technology_lists .tech_item.tech_item_04 ul.google-cloud-platform li:hover p {
    height: calc(100% - 40px);
    padding: 20px;
    overflow: auto;
    background: rgb(0 10 30 / 70%);
    z-index: 4;
    width: calc(100% - 40px);
    opacity: 1;
    color: #EFEFEF;
}
section.technology .technology_lists .tech_item.tech_item_04 ul.google-cloud-platform li.first-cont:hover p {
    background: none;
    color: #1c2438;
}
section.technology .technology_lists .tech_item.tech_item_07 .tech_item.tech_item_04 li.first-cont p {
    height: auto;
    opacity: 1;
    position: relative;
    text-align: left;
}

section.technology .technology_lists .tech_item.tech_item_04 ul.google-cloud-platform li h4 {
    font-size: 1.6rem;
}

section.technology .technology_lists .tech_item.tech_item_07 .arrow-block {
    position: relative;
    height: 60px;
    width: 100%;
    margin-bottom: 20px;
}

section.technology .technology_lists .tech_item.tech_item_07 .arrow-block::before,
section.technology .technology_lists .tech_item.tech_item_07 .arrow-block::after {
    content: "";
    width: 1px;
    height: 1px;
    display: block;
    border-right: 20px solid #CCC;
    border-bottom: 20px solid #CCC;
    border-top: 20px solid rgba(0,0,0,0);
    border-left: 20px solid rgba(0,0,0,0);
    position: absolute;
    top: 50%;
}
section.technology .technology_lists .tech_item.tech_item_07 .arrow-block::before {
    transform: rotate(45deg) translate(-50%, -50%);
    left: calc(50% + 10px);
    top: calc(50% - 5px);
}
section.technology .technology_lists .tech_item.tech_item_07 .arrow-block::after {
    transform: rotate(-135deg) translate(-50%, -50%);
    left: calc(50% - 60px);
    top: calc(50% - 35px);
}

section.technology .corporate-logo {
    position: relative;
    overflow: hidden;
}

section.technology .corporate-logo figure {
    max-width: 1300px;
    display: block;
    margin: 40px auto 20px;
}

section.technology .corporate-logo figure>* {
    width: 100%;
}

section.faq {
    padding: 100px 20px;
    position: relative;
}

section.faq .title-block .ttl {
    font-size: 1.75rem;
    margin-bottom: 80px;
}

section.faq dl {
    max-width: 1300px;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
}

section.faq dl dt,
section.faq dl dd {
    font-size: 1rem;
    padding-left: 2em;
    line-height: 1.7em;
    margin-bottom: 20px;
    position: relative;
}

section.faq dl dd {
    border-bottom: 1px solid;
    padding-bottom: 10px;
    margin-bottom: 40px;
    min-height: 3em;
    font-weight: normal;
}

section.faq dl dt::before,
section.faq dl dd::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    color: #0B3CAE;
    font-weight: bold;
}

section.faq dl dt::before {
    content: "Q";
}

section.faq dl dd::before {
    content: "A";
}

section.inquiry {
    padding: 80px 20px 0;
    position: relative;
    overflow: hidden;
    margin-bottom: 20px;
}

section.inquiry .box-cont {
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
    position: relative;
    gap: 40px;
}

section.inquiry .box-cont .inner {
    width: calc(50% - 80px);
    position: relative;
}

section.inquiry .box-cont .inner .ttl.elem1 {
    font-size: 1.2rem;
    text-align: center;
    margin-bottom: 30px;
}

section.inquiry .box-cont .inner.inner01 .item {
    box-shadow: 0 0 10px #cccccc;
    margin: 0 auto 20px;
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    max-width: 300px;
}

section.inquiry .box-cont .inner.inner01 .item figure img {
    width: 34px;
    margin-bottom: 20px;
}

section.inquiry .box-cont .inner.inner01 .item p.emil,
section.inquiry .box-cont .inner.inner01 .item p.tel {
    color: #999999;
    font-size: 0.9rem;
    line-height: 1.7;
    margin: 0.5em 0 1em;
}

section.inquiry .box-cont .inner.inner01 .item a {
    color: #0B3CAE;
}

p.error-text {
    font-size: 0.9rem;
    font-weight: normal;
    color: #ea2845;
    display: none;
}

p.error-text.active {
    display: block;
    position: absolute;
    bottom: 20px;
    left: 25px;
}

section.inquiry .box-cont .inner.inner02 .form-group {
    padding-bottom: 40px;
    position: relative;
}

input,
select,
textarea {
    border: 2px solid #aaa;
    border-radius: 12px;
    padding: 20px 15px;
    width: calc(100% - 34px);
}

section.inquiry .box-cont .inner.inner02 .form-group label {
    color: #999;
    font-size: 0.9rem;
    background: #FFF;
    padding: 0.5em;
    position: absolute;
    top: -1em;
    left: 20px;
}

section.inquiry .box-cont .inner.inner02 .submit-box {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

section.inquiry .box-cont .inner.inner02 .submit-box input {
    background: #0B3CAE;
    color: #FFF;
    border: none;
    border-radius: 12px;
    display: inline-block;
    width: auto;
    padding: 15px 25px;
    transition: 0.4s all ease;
}

section.inquiry .box-cont .inner.inner02 .submit-box input:hover {
    background: #CCCCCC;
    color: #666666;
}

section.contact {
    padding: 120px 20px;
}

section.contact .box.left.box-cont {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    max-width: 1300px;
    margin: 0 auto;
    gap: 40px;
}

section.contact .box.left.box-cont .inner {
    order: 2;
    width: 50%;
    text-align: center;
}

section.contact .box.left.box-cont .inner .ttl.elem1 {
    font-size: 2.25rem;
    text-align: center;
}

section.contact .box.left.box-cont .inner a.btn.btn-blue.arrow.right.mtop2em {
    background: #0B3CAE;
    color: #FFFFFF;
    padding: 20px 50px;
    transition: 0.4s all ease;
}

section.contact .box.left.box-cont .inner a.btn.btn-blue.arrow.right.mtop2em:hover {
    background: #CCCCCC;
    color: #666666;
}

section.contact .box.left.box-cont .img-content {
    order: 1;
    width: calc(50% - 40px);
}

section.contact .box.left.box-cont .img-content figure {
    display: flex;
    justify-content: center;
}

.fadein-item {
    /* 最初は非表示 */
    opacity: 0;
    visibility: hidden;
    transform: translateY(30px);
    transition: opacity 1s, visibility 1s, transform 1s;
}


/* フェードイン時に入るクラス */

.show-block {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}

.main_imgBox {
    height: 31.33vw;
    width: 100%;
    overflow: hidden;
    position: relative;
}

.main_img {
    z-index: 10;
    opacity: 0;
    width: 100%;
    height: 31.33vw;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    left: 0;
    top: 0;
    transform: scale(1.1);
    -webkit-animation: anime 34s 0s infinite;
    animation: anime 34s 0s infinite;
}

.main_img:nth-of-type(2) {
    -webkit-animation-delay: 6s;
    animation-delay: 6s;
}

.main_img:nth-of-type(3) {
    -webkit-animation-delay: 12s;
    animation-delay: 12s;
}

.main_img:nth-of-type(4) {
    -webkit-animation-delay: 18s;
    animation-delay: 18s;
}

.main_img:nth-of-type(5) {
    -webkit-animation-delay: 24s;
    animation-delay: 24s;
}

@keyframes anime {
    0% {
        opacity: 0;
    }
    6.25% {
        opacity: 1;
    }
    37.5% {
        opacity: 1;
    }
    43.75% {
        opacity: 0;
        transform: scale(1);
        z-index: 9;
    }
    100% {
        opacity: 0;
    }
}

section.feature .box.show .inner .ttl.elem1 {
    opacity: 1;
    transform: translate(0, 0);
    transition: opacity .5s ease-out 0, transform .5s ease-out 0;
}

section.feature .box.show .inner .body.elem2 {
    opacity: 1;
    transform: translate(0, 0);
    transition: opacity .5s ease-out .2s, transform .5s ease-out .2s;
}

section.feature .box.show .icons.elem3 {
    opacity: 1;
    transform: translate(0, 0);
    transition: opacity .5s ease-out .4s, transform .5s ease-out .4s;
}

section.feature .box.show .img-content video.elem4 {
    opacity: 1;
    transition: opacity .6s ease-out .6s;
}

@media screen and (min-width:1920px) {
    section.feature .box .icons li {
        width: 9.5vw;
    }
    section.feature .box .icons li p {
        font-size: .65vw;
    }
}

.title-block {
    text-align: center;
}

.title-block .ttl {
    font-size: 2.635vw;
    margin-bottom: .5em;
    font-weight: 700;
}

.title-block .body {
    font-size: 1.464vw;
    line-height: 1.4;
}

.bx-wrapper {
    box-shadow: none;
}