:root {
    --color-white: #fff;
    --color-text: #333;
    --color-ex: #498ecc;
    --color-pro: #7dcdd8;
    --color-gray1: #fafafa;
    --color-gray2: #eee;
    --color-gray3: #666;
    --color-blue1: #253f8b;
    --color-blue2: #222851;
    --color-green1: #00d58d;
    --color-orange1: #ffcc00;
    --gradation: linear-gradient(350deg,rgba(37, 63, 139, 1) 0%, rgba(33, 36, 72, 1) 100%);
}

/* リセット用CSS ここから */
ol {
    list-style: none;
}
#Wrapper {
    background: var(--color-blue1);
}
#Container {
    padding-top: 55px;
}
.header-row {
    background: var(--color-white);
}
.arrow {
    padding: unset;
}
main {
    letter-spacing: normal;
    p, h3 {
        margin: unset;
    }
}
/* ここまで */

#sub_nav {
    background: #000;
    display: flex;
    justify-content: center;
    min-width: 1100px;
    ul {
        width: 1100px;
        height: 60px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        li {
            width: 23%;
            height: 50px;
            a {
                color: var(--color-white);
                font-size: 16px;
                width: 100%;
                height: 100%;
                display: flex;
                justify-content: center;
                align-items: center;
                border-radius: 10px;
                &:hover {
                    background: #464646;
                }
            }
        }
    }
}

main {
    * {
        box-sizing: border-box;
    }
    picture {
        display: block;
    }
    div[id$="_area"] {
        padding: 100px 0;
        min-width: 1140px;
        & > .inner {
            width: 1140px;
            margin: 0 auto;
            padding: 0 20px;
            .sticky_wrapper {
                display: flex;
                justify-content: space-between;
                position: relative;
            }
        }
        .area_ttl {
            max-width: 210px;
            width: 19%;
            .arrow {
                font-size: 26px;
                font-weight: bold;
                text-align: center;
                width: 100%;
                padding: 0.3em;
                display: flex;
                justify-content: center;
                align-items: center;
                border-radius: 5px 40px 40px 5px;
                position: sticky;
                top: 100px;
            }
        }
        &:nth-of-type(even) {
            .area_ttl .arrow {
                background: var(--color-white);
                color: var(--color-blue1);
            }
        }
        &:nth-of-type(odd) {
            .area_ttl .arrow {
                background: var(--gradation);
                color: var(--color-white);
            }
        }
        .area_contents {
            width: 77.3%;
        }
        .cv_btn {
            &.contact a {
                &::after {
                    background: url("/view/img/functions/volume/btn_icon_contact.png") no-repeat 0 0 / contain;
                    display: block;
                    width: 26px;
                    height: 20px;
                }
            }
            &.inquiry a {
                &::after {
                    background: url("/view/img/functions/volume/btn_icon_inquiry.png") no-repeat 0 0 / contain;
                    display: block;
                    width: 18px;
                    height: 24px;
                }
            }
            a {
                background: var(--color-orange1);
                text-decoration: none;
                width: 400px;
                height: 60px;
                display: flex;
                justify-content: center;
                align-items: center;
                border-radius: 9999px;
                &:hover {
                    opacity: .9;
                }
                &::after {
                    content: "";
                    display: block;
                    position: relative;
                    left: 10px;
                }
                span {
                    color: var(--color-text);
                    font-size: 18px;
                    font-weight: bold;
                    text-align: center;
                }
            }
        }
        .txt_link {
            color: var(--color-blue1);
            text-decoration: underline;
        }
        .arrow_link {
            position: relative;
            padding-left: 1.2em;
            font-size: 16px;
            line-height: 1.6;
            &::before, &::after {
                content: "";
                display: block;
                width: .5em;
                height: .8em;
                position: absolute;
                top: .4em;
                clip-path: polygon(0 0, 20% 0, 100% 50%, 20% 100%, 0 100%, 80% 50%);
            }
            &::before {
                left: 0;
            }
            &::after {
                left: .3em;
            }
            &.white {
                &::before, &::after {
                    background: var(--color-white);
                }
                a {
                    color: var(--color-white);
                }
            }
            &.blue {
                &::before, &::after {
                    background: var(--color-blue1);
                }
                a {
                    color: var(--color-blue1);
                }
            }
            a {
                text-decoration: underline;
            }
        }
    }

    /* #fv_area */
    #fv_area {
        background: var(--color-blue2);
        padding: unset;
        position: relative;
        .txt_box {
            background: url("/view/img/functions/volume/fv_bg_txt_box.webp") no-repeat 0 0 / cover;
            padding: 50px 50px 70px 0;
            width: 670px;
            height: 600px;
            position: relative;
            z-index: 2;
            & > .inner {
                display: inline-block;
            }
            h1 {
                .sub {
                    background: var(--color-white);
                    font-size: 14px;
                    font-weight: normal;
                    margin-bottom: 6px;
                    padding: 5px 10px;
                    display: inline-block;
                }
                .main {
                    color: var(--color-white);
                    font-size: 50px;
                    font-weight: bold;
                    display: block;
                }
            }
            .os {
                color: var(--color-white);
                font-size: 14px;
                margin-bottom: 40px;
            }
            .list {
                margin-bottom: 40px;
                li {
                    color: var(--color-white);
                    font-size: 16px;
                    font-weight: bold;
                    padding-left: 26px;
                    position: relative;
                    &:not(:last-of-type) {
                        margin-bottom: 8px;
                    }
                    &::before {
                        content: "";
                        background: url("/view/img/functions/volume/fv_icon_check.webp") no-repeat 0 0 / contain;
                        display: block;
                        width: 16px;
                        height: 16px;
                        position: absolute;
                        left: 0;
                        top: 0;
                        bottom: 0;
                        margin: auto;
                    }
                }
            }
            .btn_wrapper {
                display: flex;
                flex-direction: column;
                align-items: center;
                .cv_btn:first-child {
                    margin-bottom: 20px;
                }
            }
            .note {
                color: var(--color-white);
                font-size: 11px;
                line-height: 1.3;
                position: absolute;
                bottom: 0;
                left: 0;
            }
        }
        .img {
            width: 477px;
            position: absolute;
            top: 44px;
            right: 0;
            bottom: 0;
            left: 545px;
            margin: auto;
            z-index: 2;
            @media (min-width: 1161px) {
                left: 47.5%;
            }
        }
        .bg {
            background: url("/view/img/functions/volume/fv_bg_img_box.webp") no-repeat 50% / cover;
            width: 50%;
            height: 598px;
            position: absolute;
            top: 0;
            right: 0;
            z-index: 1;
        }
    }

    /* #merit_area */
    #merit_area {
        background: url("/view/img/functions/volume/merit_bg_gradation.webp") repeat-x 0 0, var(--gradation);
        #merit_list {
            counter-reset: num;
            & > li {
                background: var(--color-gray1);
                padding: 75px 40px 45px;
                border-radius: 50px;
                position: relative;
                counter-increment: num;
                &:not(:last-of-type) {
                    margin-bottom: 65px;
                }
                .ttl {
                    color: var(--color-blue1);
                    font-size: 26px;
                    font-weight: bold;
                    text-align: center;
                    margin-bottom: 20px;
                }
                .num {
                    background: var(--color-text);
                    width: 80px;
                    height: 80px;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    position: absolute;
                    top: -40px;
                    right: 0;
                    left: 0;
                    margin: auto;
                    border-radius: 50%;
                    &::before {
                        content: counter(num, decimal-leading-zero);
                        font-family: 'Noto Sans', sans-serif;
                        color: var(--color-white);
                        font-size: 38px;
                        font-weight: 900;
                        font-style: italic;
                    }
                }
                .img_list {
                    display: flex;
                    justify-content: space-between;
                    margin-bottom: 30px;
                    li {
                        width: 32%;
                        border-radius: 10px;
                        overflow: hidden;
                    }
                }
                .highlight {
                    text-align: center;
                    margin-bottom: 30px;
                    strong {
                        background:linear-gradient(transparent 60%, var(--color-orange1) 60%);
                        font-size: 28px;
                        font-weight: bold;
                    }
                }
                .txt {
                    font-size: 16px;
                    margin-bottom: 10px;
                }
                .note_list {
                    margin-bottom: 10px;
                    li {
                        font-size: 85%;
                        padding-left: 1em;
                        position: relative;
                        &::before {
                            content: "※";
                            position: absolute;
                            left: 0;
                            top: 0;
                        }
                    }
                }
                .tabel_wrapper {
                    position: relative;
                    &::after {
                        content: "";
                        background: url("/view/img/functions/volume/price_deco_table.svg") no-repeat 0 0 / contain;
                        display: block;
                        width: 3px;
                        height: 19px;
                        position: absolute;
                        right: 0;
                        bottom: 65px;
                        left: 0;
                        margin: auto;
                    }
                    table {
                        margin-bottom: 40px;
                        width: 100%;
                        caption {
                            font-size: 20px;
                            font-weight: bold;
                            text-align: center;
                            margin-bottom: 20px;
                        }
                        th, td {
                            font-size: 18px;
                            text-align: center;
                            vertical-align: middle;
                            &:not(:last-of-type) {
                                border-right: 2px solid var(--color-gray1);
                            }
                        }
                        thead {
                            th {
                                background: var(--gradation);
                                color: var(--color-white);
                                font-weight: bold;
                                padding: 10px 5px;
                                &:nth-of-type(1) {
                                    width: 19%;
                                }
                                &:nth-of-type(2), &:nth-of-type(3) {
                                    width: 40.5%;
                                }
                                &:last-of-type {
                                    color: var(--color-orange1);
                                }
                                span {
                                    font-size: 85%;
                                }
                            }
                        }
                        tbody {
                            &:last-of-type {
                                position: relative;
                                &::before {
                                    content: "";
                                    display: block;
                                    padding-top: 40px;
                                    width: 100%;
                                    height: 1px;
                                }
                            }
                            tr {
                                border-top: 2px solid var(--color-gray1);
                                td {
                                    background: var(--color-white);
                                    padding: 15px 5px;
                                    &:last-of-type {
                                        color: #ff2525;
                                    }
                                }
                            }
                        }
                    }
                }
                & > *:last-child {
                    margin-bottom: unset;
                }
            }
        }
    }

    /* #price_area */
    #price_area {
        background: var(--color-gray2);
        .tabel_wrapper {
            display: flex;
            justify-content: space-between;
            margin-bottom: 30px;
            table {
                width: 49%;
                border-radius: 10px;
                overflow: hidden;
                /* border-collapse: separate; */
                &.ex {
                    background: var(--color-ex);
                    border: 2px solid var(--color-ex);
                }
                &.pro {
                    background: var(--color-pro);
                    border: 2px solid var(--color-pro);
                }
                thead {
                    tr {
                        th {
                            color: var(--color-white);
                            font-weight: bold;
                            text-align: center;
                        }
                        &:first-of-type {
                            th {
                                font-size: 26px;
                                padding: 15px 5px;
                            }
                            table.ex & th {
                                background: var(--color-ex);
                            }
                            table.pro & th {
                                background: var(--color-pro);
                            }
                        }
                        &:last-of-type {
                            th {
                                background: var(--color-gray3);
                                font-size: 18px;
                                padding: 10px 5px;
                                &:first-of-type {
                                    border-right: 2px solid var(--color-gray1);
                                }
                            }
                        }
                    }
                }
                tbody {
                    tr {
                        &:not(:first-of-type) {
                            border-top: 2px solid var(--color-gray2);
                        }
                        td {
                            background: var(--color-white);
                            text-align: center;
                            font-size: 16px;
                            padding: 12px 5px;
                            &:first-of-type {
                                border-right: 2px solid var(--color-gray2);
                            }
                        }
                    }
                }
            }
        }
        .list {
            margin-bottom: 40px;
            li {
                font-size: 16px;
                line-height: 1.5;
                padding-left: 15px;
                position: relative;
                &:not(:last-of-type) {
                    margin-bottom: 5px;
                }
                &::before {
                    content: "";
                    background: var(--gradation);
                    display: block;
                    width: 6px;
                    height: 6px;
                    border-radius: 50%;
                    position: absolute;
                    top: .6em;
                    left: 0;
                }
            }
        }
        .btn_wrapper {
            display: flex;
            justify-content: space-between;
            .cv_btn {
                a {
                    width: 415px;
                    filter: drop-shadow(3px 3px var(--color-blue2));
                }
            }
        }
    }

    /* #spec_area */
    #spec_area {
        background: var(--gradation);
        .list {
            background: var(--color-gray1);
            padding: 40px 40px 45px;
            border-radius: 30px;
            li {
                font-size: 16px;
                line-height: 1.5;
                padding-left: 15px;
                position: relative;
                &:not(:last-of-type) {
                    margin-bottom: 10px;
                }
                &::before {
                    content: "";
                    background: var(--gradation);
                    display: block;
                    width: 6px;
                    height: 6px;
                    border-radius: 50%;
                    position: absolute;
                    top: .6em;
                    left: 0;
                }
            }
        }
    }

    /* #track_recird_area */
    #track_recird_area {
        background: var(--color-gray2);
        & > .inner {
            width: 1200px;
            transform: translateX(30px);
        }
        .area_contents {
            width: 78.4%;
        }
        .contents_wrapper {
            background: var(--color-gray1);
            border-radius: 30px;
            padding: 40px 40px 45px;
            .main_list {
                margin-bottom: 40px;
                li {
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    &:not(:last-of-type) {
                        margin-bottom: 30px;
                    }
                    .img {
                        width: 32%;
                    }
                    .info {
                        width: 64%;
                        dt {
                            font-size: 24px;
                            font-weight: bold;
                            margin-bottom: 10px;
                            a {
                                color: var(--color-text);
                                text-decoration: none;
                            }
                        }
                        dd {
                            .txt {
                                font-size: 18px;
                            }
                            .arrow_link {
                                margin-top: 10px;
                            }
                        }
                    }
                }
            }
        }
        .sub_list {
            display: flex;
            justify-content: space-between;
            align-items: center;
            column-gap: 20px;
            margin-bottom: 40px;
            li {
                &:nth-of-type(1) {
                    flex-basis: 18%;
                }
                &:nth-of-type(2) {
                    flex-basis: 16.5%;
                }
                &:nth-of-type(3) {
                    flex-basis: 18%;
                }
                &:nth-of-type(4) {
                    flex-basis: 39%;
                }
            }
        }
        .highlight {
            background: var(--gradation);
            padding: 25px 40px;
            border-radius: 10px;
            .txt {
                color: var(--color-white);
                font-size: 22px;
                font-weight: bold;
                margin-bottom: 10px;
            }
        }
    }

    /* #qa_area */
    #qa_area {
        background: var(--gradation);
        .contents_wrapper {
            background: rgba(256, 256, 256, .1);
            padding: 40px 40px 45px;
            border-radius: 30px;
            .main_list {
                li {
                    border-radius: 10px;
                    overflow: hidden;
                    &:not(:last-of-type) {
                        margin-bottom: 20px;
                    }
                    &.close {
                        dt::after {
                            transform: rotate(0);
                        }
                    }
                    &.open {
                        dt::after {
                            transform: rotate(180deg);
                        }
                    }
                    dt, dd {
                        line-height: 1.6;
                    }
                    dt {
                        background: var(--color-gray1);
                        font-size: 18px;
                        font-weight: bold;
                        padding: 25px 40px 25px 60px;
                        position: relative;
                        user-select: none;
                        &::before {
                            content: "Q.";
                            font-family: "Roboto", sans-serif;
                            color: var(--color-blue1);
                            font-size: 1.44em;
                            width: 1em;
                            height: 1em;
                            position: absolute;
                            top: -.6em;
                            bottom: 0;
                            left: 20px;
                            margin: auto;
                        }
                        &::after {
                            content: "";
                            background: var(--color-blue1);
                            display: block;
                            width: .66em;
                            height: .38em;
                            clip-path: polygon(10% 0, 90% 0, 100% 20%, 55% 100%, 45% 100%, 0% 20%);
                            position: absolute;
                            top: 0;
                            bottom: 0;
                            right: 20px;
                            margin: auto;
                            transition: .2s;
                        }
                        &:hover {
                            cursor: pointer;
                        }
                    }
                    dd {
                        padding: 25px 20px;
                        background: var(--color-white);
                        font-size: 16px;
                        display: none;
                        table {
                            margin-top: 20px;
                            border: 2px solid var(--color-gray2);
                            caption {
                                font-size: 14px;
                                font-weight: bold;
                                text-align: left;
                                margin-bottom: 10px;
                                padding-left: 2em;
                                position: relative;
                                &::before {
                                    content: "例：";
                                    position: absolute;
                                    top: 0;
                                    left: 0;
                                }
                            }
                            tr {
                                &:not(:last-of-type) {
                                    border-bottom: 2px solid var(--color-gray2);
                                }
                                th, td {
                                    font-size: 16px;
                                    padding: 20px 15px;
                                    vertical-align: middle;
                                }
                                th {
                                    font-weight: bold;
                                    border-right: 2px solid var(--color-gray2);
                                    width: 42%;
                                }
                                td {
                                    width: 58%;
                                }
                            }
                        }
                    }
                }
            }
        }
        .cv_box {
            background: linear-gradient(170deg,rgba(117, 125, 225, 1) 15%, rgba(81, 88, 189, 1) 85%);
            border-radius: 30px;
            margin: 50px 0;
            padding: 40px 40px 45px;
            .txt {
                color: var(--color-white);
                font-size: 20px;
                font-weight: bold;
                text-align: center;
                margin-bottom: 30px;
            }
            .btn_wrapper {
                display: flex;
                justify-content: center;
                .cv_btn {
                    &:first-of-type {
                        margin-right: 20px;
                    }
                    a {
                        filter: drop-shadow(3px 3px var(--color-blue2));
                    }
                }
            }
        }
        .sns-waku {
            background: unset;
            .social_link .sns-icons a {
                color: var(--color-white);
            }
        }
    }
}