body {
    height: 100svh;
}

.left-page {
    background-color: rgb(0, 0, 0);
    position: absolute;
    width: calc(50svw - 4.5rem - 4.5rem);
    height: calc(100svh - 4.5rem - 4.5rem);
    margin: 0 0 0 4.5rem;
    overflow-y: scroll;
}

.right-page {
    border-bottom: 1px solid white;
    background-color: rgb(0, 0, 0);
    position: absolute;
    width: calc(50svw - 4.5rem - 4.5rem);
    height: calc(100svh - 4.5rem - 4.5rem - 1.25rem);
    right: 4.5rem;
    padding-bottom: 1.25rem;
}

.graph {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: 2rem;

    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.service-scope {
    display: block;
    flex: 0 0 calc((100% - 2rem) / 2);
    width: calc((100% - 2rem) / 2);
    min-width: 0;
    height: auto;
    align-self: flex-start;
}

.service-title {
    display: grid;
    grid-template-columns: 1fr 9fr;
    column-gap: 2rem;
}

.service-info {
    margin-bottom: 4rem;
}

.term {
    display: flex;
    align-items: flex-start;
}

.terms .hyphen {
    flex-shrink: 0;
}

.terms .hyphen-content {
    flex: 1;
    min-width: 0;
}










@media (max-width: 1000px) {
    body {
        height: inherit;
    }

    .left-page {
        position: static;
        width: calc(100svw - 18rem);
        height: auto;
        overflow-y: inherit;
        text-align: left;
        margin: 1.5rem 9rem 4rem;
        border-bottom: none;
    }

    .right-page {
        border-top: solid 1px white;
        border-bottom: inherit;
        position: static;
        width: calc(100svw - 9rem);
        height: auto;
        margin: 0 4.5rem 10rem;
        padding: 0.65rem 0 0;
    }

    .terms {
        width: calc(100svw - 9rem - 7.5rem);
        margin-left: 3.5rem;
    }

}





@media (min-width: 721px) and (max-width: 1000px) {

}





@media (max-width: 720px) {
    body {
        height: inherit;
    }

    .left-page {
        position: static;
        width: calc(70svw - 2rem);
        height: auto;
        overflow-y: inherit;
        margin: 1.5rem 0 2.5rem;
        margin-left: calc(15svw + 1rem);
        border-bottom: none;
    }

    .right-page {
        position: static;
        width: calc(100svw - 2rem);
        height: auto;
        margin: 0 1rem 10rem;
    }

    .service-info {
        word-break: break-all;
        margin-bottom: 2.5rem;
    }

    .terms {
        width: 70vw;
        margin-left: calc(15vw - 1rem);
    }

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

}





@media (max-width: 500px) {

}





@media (min-width: 1600px) {

}