@charset "UTF-8";


.hero {
    height: 100vh;
    background: 
    url(/img/series/bg-hero.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
    /* overflow: hidden; */
}

.hero.index {
    overflow: hidden;
}

.hero.index::before {
    top: 10%;
}

.hero_ttl.-top {
    position: absolute;
    bottom: 22%;
    left: 7%;
    font-size: 181px;
    line-height: 180px;
    font-family: 'Special Gothic Expanded One', sans-serif;
    color: #fff;
    justify-content: left;
}

.hero_ttl.-top.-small {
    font-size: 147px;
    bottom: 9%;
    left: 23%;
}

.hero_ttl .char-text {
    color: #fff;
}

.pnkz {
    position: absolute;
    right: 5%;
    top: 18%;
}

.pnkz a,
.pnkz p {
    color: #fff;
}

.pnkz span {
    background: #fff;
}

/* point */

.point {
    background: #000;
    position: relative;
    padding-bottom: 70px;
}

.point::before {
    content: '';
    background: url(/img/series/img-pattern01.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 984px;
    height: 1448px;
    position: absolute;
    top: -80%;
    left: 0;
    z-index: 1;
}

.point_wrapper {
    position: relative;
    padding: 45px 0;
    z-index: 10;
}

.point_label {
    font-size: 34px;
    font-family: 'Special Gothic Expanded One', sans-serif;
    position: absolute;
    top: 110px;
    left: 0;
    transform: rotate(90deg);
    color: #fff;
    opacity: .25;
    z-index: 10;
}

.point_cnt {
    padding-left: 10%;
}

.point_ttl {
    font-size: 40px;
    color: #fff;
}

.point_intro {
    font-size: 20px;
    color: #fff;
}

.point_txt {
    color: #fff;
    width: 49%;
    margin: 0 0 0 auto;
}

/* product */

.product {
    background: #000;
    position: relative;
}

.product::before {
    content: '';

}

svg {
    width: 100%;
    height: auto;
    position: absolute;
    top: -13.5%;
    right: 50%;
    transform: translateX(50%);
}

.case_svg {
    position: unset;
    transform: unset;
    margin: 0 auto 20px;
}

.outline-text,
.outline-text2 {
    font-size: 104px;
    stroke: #fff;
    stroke-width: 1;
    fill: none;
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    /* アニメーションクラスが付くまでアニメーションしない */
}

.outline-text2 {
    stroke: #0E3CB4;
    font-size: 155px;
}
  
.outline-text.animate,
.outline-text2.animate {
    animation: draw 4s ease forwards;
}
  
@keyframes draw {
    to {
      stroke-dashoffset: 0;
    }
}

.product::before {
    content: '';
    background: url(/img/series/img-pattern02.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 984px;
    height: 1448px;
    position: absolute;
    top: -40%;
    right: 0;
}

.product_wrapper {
    display: flex;
    justify-content: space-between;
    align-items: start;
    flex-wrap: wrap;
    gap: 50px 20px;
    position: relative;
    z-index: 10;
}

.product_cnt {
    width: 32%;
}

.product_cnt img {
    margin-bottom: 15px;
}

.product_name {
    font-family: 'Special Gothic Expanded One', sans-serif;
    font-size: 35px;
    line-height: 40px;
    margin-bottom: 10px;
    color: #fff;
    font-weight: bold;
}

.product_txt {
    margin-bottom: 20px;
    color: #fff;
}

.product_cnt .cmn_btn {
    background: #414141;
}

.product_cnt .cmn_btn:hover {
    opacity: 0.7;
}

.product_label {
    color: #F2F1F0;
    opacity: .13;
    font-size: 11.5vw;
    width: 100%;
    text-align: center;
    font-family: 'Special Gothic Expanded One', sans-serif;
}

.scroll {
    width: 100%;
    overflow: hidden;
    position: absolute;
    bottom: -5.5%;
    transform: translateX(50%);
    right: 50%;
}

.scroll_wrapper {
    display: flex;
    gap: 20px;
    width: max-content;
}

.product_label {
    animation: l-scroll infinite linear 20s;
}

@keyframes l-scroll {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-100%);
    }
}


/* performance */

.performance {
    position: relative;
    z-index: 10;
    padding: 50px 0 170px;
}

.performance::before {
    content: '';
    background: url(/img/series/bg-performance01.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 422px;
    height: 484px;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

.performance::after {
    content: '';
    background: url(/img/series/bg-performance02.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 989px;
    height: 849px;
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
}

.performance_label {
    font-size: 151px;
    line-height: 140px;
    color: #0E3CB4;
    font-family: 'Special Gothic Expanded One', sans-serif;
    text-align: center;
    margin-bottom: 90px;
}

.performance .char-text {
    font-size: 131px;
}

.hero_txt {
    overflow: hidden;
}

.container {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 10;
}

.text {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 5vw;
    font-weight: 700;
    gap: 5px;
}

.text.is-active {
    --x: 0;
}

.char {
    overflow: hidden;
}

.char-text {
    display: inline-block;
    transform: translateX(var(--x, -150%));
    transition: transform 0.6s cubic-bezier(0.77, 0, 0.175, 1);
    transition-delay: calc(0.05s * var(--char-index));
    font-family: 'Special Gothic Expanded One', serif;
    font-size: 151px;
    color: #0E3CB4;
}

.visuallyHidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.whitespace {
    width: 1ch;
}

.performance_cnt_ttl {
    font-size: 40px;
    line-height: 60px;
    margin-bottom: 20px;
}

.performance_wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
}

.performance_cnt {
    width: 50%;
}

.performance_img {
    padding-left: 5%;
}

/* system */

.system {
    background: #F2F1F0;
    position: relative;
    z-index: 10;
    overflow: hidden;
    padding: 150px 0 120px;
}

.system_wrapper {
    display: flex;
    align-items: center;
    gap: 90px;
    margin-bottom: 100px;
}

.system_body .system_wrapper:last-child,
.system_body .system_wrapper:last-child .system_txt {
    margin-bottom: 0;
}

.system_cnt {
    position: relative;
    width: 44%;
}

.system_cnt_row {
    position: relative;
    z-index: 10;
}

.label_system {
    position: absolute;
    top: -160px;
    right: -90px;
    block-size: unset;
    max-block-size: unset;
    max-inline-size: unset;
}

.system_ttl {
    font-size: 30px;
    color: #0E3CB4;
    margin-bottom: 20px;
}

.system_txt {
    margin-bottom: 30px;
    max-width: 500px;
}

.system_txt p {
    padding-left: 1em;
    position: relative;
}

.system_txt p::before {
    content: '';
    width: 5px;
    height: 5px;
    background: #000;
    border-radius: 50%;
    position: absolute;
    left: 0;
    top: 13px;
}


/* case */

.case {
    position: relative;
    padding-top: 50px;
}

.case::before {
    content: '';
    background: url(/img/series/bg-case01.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 989px;
    height: 497px;
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
}

.case::after {
    content: '';
    background: url(/img/series/bg-case02.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 422px;
    height: 484px;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1;
}

.case_intro {
    font-size: 30px;
    color: #0E3CB4;
    margin-bottom: 50px;
    text-align: center;
}

.case_wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 50px 35px;
    flex-wrap: wrap;
}

.case_img {
    margin-bottom: 10px;
}

.case_cnt p {
    color: #0E3CB4;
    font-size: 25px;
    font-weight: 500;
    text-align: center;
}


/* line */

.line {
    background: url(/img/series/bg-line.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.line_wrapper {
    display: flex;
    gap: 40px;
}

.line_cnt_ttl.-en {
    font-size: 120px;
    line-height: 100px;
    font-family: 'Special Gothic Expanded One', sans-serif;
    color: #fff;
}

.line_cnt_ttl.-ja {
    font-size: 40px;
    color: #fff;
    margin-bottom: 65px;
}

.line_cnt_list {
    margin-bottom: 20px;
}

.line_cnt_list li {
    font-size: 18px;
    padding-left: 13px;
    color: #fff;
    position: relative;
}

.line_cnt_list li::before {
    content: '';
    width: 5px;
    height: 5px;
    background: #0E3CB4;
    position: absolute;
    left: 0;
    top: 15px;
}

.line .cmn_btn {
    background: #0E3CB4;
}

.line .cmn_btn:hover {
    opacity: 0.7;
}


@media screen and (max-width: 1024px) {
    
    
    .hero {
        background: url(/img/series/bg-hero_sp.png);
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
    }

    .hero::before {
        width: 100%;
    }

    .hero_ttl.-top .char-text {
        font-size: 80px;
    }

    .hero_ttl.-top.-small {
        bottom: 13%;
        left: 18%;
    }

    .hero_ttl.-top.-small .char-text {
        font-size: 60px;
    }
    
    .char {
        line-height: 30px;
    }

    .char-text {
        font-size: 60px;
        line-height: 60px;
    }


    /* point */

    .point::before {
        width: 100%;
        height: 588px;
        top: -30%;
    }

    .point_wrapper {
        padding: 30px 0;
    }

    .point_cnt {
        padding: 0;
        margin-bottom: 20px;
    }

    .point_ttl {
        font-size: 28px;
        line-height: 40px;
        margin-bottom: 10px;
    }

    .point_label {
        top: 90px;
        left: unset;
        right: -60px;
    }

    .point_txt {
        width: 100%;
    }

    .case svg {
        top: -3%;
    }

    /* product */

    .product::before {
        width: 100%;
        height: 888px;
        top: -14%;
    }

    .product {
        padding: 0 0 140px;
    }

    .product_wrapper {
        flex-flow: column;
    }

    .product_cnt {
        width: 100%;
    }

    .product_name {
        font-size: 29px;
    }

    .product_label {
        font-size: 100px;
        line-height: 100px;
    }

    .scroll {
        bottom: -0.5%;
    }

    .product svg {
        top: -2.5%;
    }



    /* performance */

    .performance {
        padding: 50px 0;
    }

    .container.performance_container {
        margin-bottom: 30px;
    }

    .performance .text {
        flex-wrap: wrap;
        gap: 3px;
    }

    .performance .char-text {
        font-size: 60px;
        line-height: 50px;
    }

    .performance_wrapper {
        flex-flow: column-reverse;
    }

    .performance_img {
        padding: 0;
    }

    .performance_cnt {
        width: 100%;
    }

    .performance_cnt_ttl {
        font-size: 28px;
        line-height: 40px;
    }

    .performance_img {
        margin-bottom: 30px;
    }

    .performance::before {
        width: 223px;
        height: 256px;
    }

    .performance::after {
        width: 246px;
        height: 312px;
        top: unset;
        bottom: -110px;
    }


    /* system */

    .system {
        padding: 50px 0;
    }

    .system_wrapper {
        flex-flow: column;
        gap: 20px;
        margin-bottom: 50px;
    }

    .system_body .system_wrapper:nth-child(2) {
        flex-flow: column-reverse;
    }

    .system_cnt {
        width: 100%;
    }

    .system_ttl {
        font-size: 28px;
        line-height: 40px;
    }

    .label_system {
        width: 317px;
        top: -20px;
        right: -30px;
    }

    .system_img {
        text-align: center;
    }
    


    /* case */
    
    .case::before {
        width: 100%;
        height: 375px;
    }

    .case::after {
        width: 256px;
        height: 294px;
    }

    .case_intro {
        font-size: 18px;
    }

    .case_wrapper {
        gap: 30px;
    }

    .case_cnt {
        width: 45%;
    }

    .case_cnt p {
        font-size: 16px;
    }
    
    .line {
        background: url(/img/series/bg-line_sp.png) #00032A;
        background-size: contain;
        background-position: center top;
        background-repeat: no-repeat;
        padding-top: 250px;
    }

    .line_cnt_ttl.-en {
        font-size: 57px;
        line-height: 70px;
        text-align: center;
    }

    .line_cnt_ttl.-ja {
        font-size: 19px;
        text-align: center;
        margin-bottom: 30px;
    }

    .line .cmn_btn {
        margin: 0 auto;
    }

    .case_svg {
        margin-bottom: 0;
    }

    .outline-text2.animate {
        animation: draw 2.5s ease forwards;
    }

    .outline-text2 {
        font-size: 217px;
        transform: translate(-100px, 30px);
    }


    
}