/* common */


body {
    color: rgb(86, 84, 84);
    font-size: 16px;
    font-family: sans-serif;
}

.lightblue {
    color: #21B0FF;
}

li.border {
    border: 1px solid #103D89;
    text-align: center;
}

.inner {
    max-width: 1280px;
    width: 90%;
    margin: auto;
}

.fs14 {
    font-size: 14px;
}

.flex {
    display: flex;
}

.grid {
    display: grid;
}

@media screen and (max-width: 767px) {
    .flex {
        flex-wrap: wrap;
    }

    .sp-hidden {
        display: none;
    }
}

/* animation */
.leftposition {
    position: absolute;
    top: -71px;
    left: 0;

}

.rightposition {
    position: absolute;
    top: -97px;
    right: 129px;

}

.bottomposition {
    position: absolute;
    top: 133px;
    right: 3px;

}



/* animation */

/* header */
header {
    position: fixed;
    width: 100%;
    z-index: 90;
    height: auto;
    background-color: #FFF;
    top: 0;
    padding-bottom: 20px
}



.header__inner {
    max-width: 1280px;
    width: 90%;
    margin: 31px auto auto;
    justify-content: space-between;
    align-items: center;
    font-weight: 400;
    line-height: 17px;
}

.header__gnav-list {
    align-items: center;
}

.header__gnav-list--item {
    margin-right: 60px;

}

.header__gnav-list--item.border {
    height: 34px;
    line-height: 34px;
    width: 154px;
    margin-right: 0;
    background-color: #FFF;
    text-align: center;
}

.header__gnav-list--item.border a {
    display: block;
    color: #002576;
}

.reference:hover,
.about ul.button li:last-child:hover {
    background-color: #002576;
    transition: 0.3s;

}

.reference:hover a,
.about ul.button li:last-child:hover a {
    color: #FFF;
        transition: 0.3s;
}

.header__logo {
    float: left;
    z-index: 90;
}

.hamburger-menu {
    display: none;
}

@media screen and (max-width: 767px) {
    header {
        padding-bottom: 10px;
    }

    .header__inner {
        margin-top: 15px;
    }

    .hamburger-menu {
        display: block;
    }

    .fixed {
        height: 100%;
        overflow: hidden;
    }

    .menu-btn {
        top: 0;
        right: 0;
        display: flex;
        height: 60px;
        width: 60px;
        position: relative;
        justify-content: center;
        align-items: center;
        z-index: 90;
        background-color: transparent;
    }

    .menu-btn span,
    .menu-btn span:before,
    .menu-btn span:after {
        content: '';
        display: block;
        height: 3px;
        width: 25px;
        border-radius: 3px;
        background-color: #333;
        position: absolute;
    }

    .menu-btn span:before {
        bottom: 8px;
    }

    .menu-btn span:after {
        top: 8px;
    }

    .menu-check:checked~.menu-btn span {
        background-color: rgba(255, 255, 255, 0);
        /*メニューオープン時は真ん中の線を透明にする*/
    }

    .menu-check:checked~.menu-btn span::before {
        bottom: 0;
        transform: rotate(45deg);
    }

    .menu-check:checked~.menu-btn span::after {
        top: 0;
        transform: rotate(-45deg);
    }


    .menu-check {
        display: none;
    }

    .menu-content {
        width: 100%;
        height: 100%;
        position: fixed;
        top: 0;
        left: 100%;
        /*leftの値を変更してメニューを画面外へ*/
        z-index: 80;
        background-color: #FFF;
        transition: all 0.5s;
        /*アニメーション設定*/
    }

    .menu-check:checked~.menu-content {
        left: 0;
        /*メニューを画面内へ*/
    }

    .menu-content ul {
        padding: 100px 10px 0;
    }

    .menu-content ul li {
        list-style: none;
        margin-bottom: 20px;
    }

    .menu-content ul li a {
        display: block;
        width: 100%;
        font-size: 16px;
        box-sizing: border-box;
        color: #103D89;
        text-decoration: none;
        padding: 9px 15px 10px 0;
        position: relative;
    }



    body {
        overflow-x: hidden;
    }


}

main {
    margin-top: calc(142px + 67px);
}

/* about */
.about::before {
    content: "";
    position: absolute;
    background-image: url(../img/ellipse1.png);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    width: 511px;
    height: 679px;
    top: -380px;
    left: -30px;
    z-index: 100;
}



.about .inner,
.about {
    position: relative;
}

h1 {
    font-family: 'Arial';
        color: rgb(35, 35, 35);
    font-style: normal;
    font-weight: 700;
    font-size: 64px;
    line-height: 74px;
    text-align: center;
    margin-bottom: 23px;

}

.about p {
    width: 67%;
    margin: auto;

    font-style: normal;
    font-weight: 400;

    line-height: 19px;
    margin-bottom: 17px;
}

.about ul.button {
    justify-content: center;
    height: 34px;
    line-height: 34px;
    text-align: center;
    margin-bottom: 64px;
}

.about ul.button li a {
    display: block;
    font-style: normal;
    font-weight: 700;
}

.about ul.button li:first-child {
    margin-right: 17px;
    color: #FFF;
    background-color: #103D89;
    width: 120px;
}



.about ul.button li:last-child {
    width: auto;
    color: #103D89;
    position: relative;
    text-align: left;

}

.about ul.button li:last-child a {
    padding-left: 10px;
    padding-right: 38px;
    font-style: normal;
    font-weight: 400;
}



.about ul.button li:last-child::after {
    content: "";
    position: absolute;
    background-image: url(../img/icon_link.png);
    width: 16px;
    height: 16px;
    right: 8px;
    top: 0;
    bottom: 0;
    margin: auto;
        transition: 0.3s;
}

.about ul.button li:last-child:hover::after {
    filter: invert(100%);
    transition: 0.3s;
}

            .about ul.button li:first-child:hover {
            background-color: #FFF;
            border:1px solid #103D89;
            transition: 0.3s;
            }

    .about ul.button li:first-child:hover a {
        color: #103D89;
            transition: 0.3s;

    }

.about ul.point {
    flex-wrap: wrap;
    justify-content: center;
    width: 50%;
    margin: auto auto 56px;
}

.about ul.point li {
    margin-right: 9px;
}

.about ul.point li:not(:nth-child(5n)) {
    margin-bottom: 13px;
}

@media screen and (max-width:767px) {
    .about::before {
        background-position: center;
        width: 66%;
        left: -55px;
        top: -150px;
        z-index: 10;
    }

    .about p {
        width: 100%;
    }

    .about ul.button li:first-child,
    .about ul.button li:last-child {
        width: 100%;
        text-align: center;
        margin-right: 0;
    }



    .about ul.button li:first-child {
        margin-bottom: 10px;
    }



    .about ul.point {

        width: 76%;

    }
}

/* Release notes */
h2 {
    margin-bottom: 15px;
    padding-left: 32px;
    position: relative;

    font-style: normal;
    font-weight: 400;
    font-size: 18px;
    line-height: 19px;
    color: #002576;
}

h2::before {
    content: "";
    position: absolute;
    background-image: url(../img/mark.svg);
    background-size: contain;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 21px;
    height: 24px;
}

.release dl,
.release dl dt {

    font-style: normal;
    font-weight: 400;

    line-height: 17px;
}

.release dl {
    margin-left: 11px;
}

.release dl strong {
    font-weight: 700;

    line-height: 19px;
}

.release dl dd {
        color: rgb(35, 35, 35);
    border-bottom: 1px solid #000000;
    padding-bottom: 6px;
    margin-bottom: 7px;
}

.release dl dt:not(:last-child) {
    margin-bottom: 14px;
}

.release dl:last-child {
    margin-bottom: 34px;
}

.timeline {
    margin-bottom: 34px!important;
}

/* feature */
.feature {
    position: relative;
}

.feature::before {
    content: "";
    position: absolute;
    background-image: url(../img/ellipse2.png);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    width: 511px;
    height: 679px;
    right: 131px;
    top: -377px;
    z-index: 0;
}

.mb30 {
    margin-bottom: 30px;
}

.feature ul {
    margin-left: 11px;
}

h3 {
    font-style: normal;
    font-weight: 400;
    font-size: 20px;
    line-height: 24px;
    margin-bottom: 12px;
    color: rgb(35, 35, 35);
}

.feature ul p {
    font-style: normal;
    font-weight: 400;
    line-height: 19px;
    margin-right: 41px;
}

.feature ul li:not(:last-child) {
    margin-bottom: 23px;
}

.feature ul li {
    grid-template-columns: 2fr 1fr;
}

.feature ul img {
    z-index: 50;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

@media screen and (max-width: 1100px) {
    .feature ul li {
        grid-template-columns: 1fr 1fr;
    }

    .feature::before {
        width: 61%;
        right: 0;
        height: 300px;
        top: -183px;
        background-position: center;
    }


}

@media screen and (max-width: 767px) {
    .feature ul li {
        grid-template-columns: 1fr;
    }

    .feature ul li div {
        margin-bottom: 20px;
    }

    .feature ul img {
        object-fit: contain;
    }



    .feature ul p {
        margin-right: 0;
    }

}

/*footer------------------------------------*/

footer {
    font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
    margin-top: 150px;
    background-color: #e3eaf6;
    padding: 30px 0 0;
}

footer .logo {
    display: inline-block;
}

footer .logo img {
    width: 182px;
    height: 35px;
}

footer .footer-text {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    margin-right: 40px;
    margin-bottom: 30px;
}

.footer-text ul {
    text-align: right;
}

.footer-text ul li {
    display: inline-block;
    margin-left: 20px;
    border-bottom: 1px solid #999999;
    padding-bottom: 2px;
}

.footer-text .address {
    clear: both;
    padding-top: 10px;
    text-align: right;
}

footer .footer-right {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    flex-grow: 2;
}

footer .security {
    display: inline-block;
}

footer .security img {
    width: 75px;
}

footer .copyright {
    background-color: #133c80;
    color: #fff;
    line-height: 40px;
    text-align: center;
    clear: both;
}

.footer-inner {
    display: flex;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
}



@media screen and (max-width: 767px) {
    footer {
        padding-top: 0;
        margin-top: 100px;
        background-color: #e3eaf6;
        overflow: hidden;
    }

    .footer-inner {
        flex-direction: column;
        padding: 0 16px;
    }

    footer .logo {
        width: 140px;
        margin: 0 auto 20px;
        padding-top: 30px;
    }

    footer .logo img {
        width: 140px;
        height: 25px;
    }

    footer .footer-text {
        margin-top: 15px;
        margin-bottom: 15px;
        margin-right: 0;
    }

    .footer-text .address {
        padding-top: 10px;
        margin-left: 0;
        margin-right: 0;
        text-align: left;
        line-height: 20px;
        font-size: 14px;
    }

    footer .security {
        width: 75px;
        margin: 0 auto;
        margin-bottom: 20px;
    }

    footer .security img {
        width: 75px;
    }

    footer .copyright {
        background-color: #133c80;
        color: #fff;
        line-height: 40px;
        text-align: center;
        clear: both;
    }

}
