section#concept {
    padding-top: clamp(8rem, 10vw, 14rem);
}

#concept h2 {
    margin-bottom: 1em;
}

#concept img {
    box-shadow: var(--shadow);
}

.content-1 {
    gap: 4rem;
}

.content-1 img {
    width: 30%;
}

.content-1 .text-content {
    width: 70%;
}

.content-2 {
    padding-top: min(10vw, 12rem);
}

.content-2 .img-2 {
    width: 25%;
    transform: translateY(-15rem);
}

.content-2 .img-3 {
    width: 50%;
}

.content-2.before::before {
    height: min(155%, 64rem);
    width: calc(50vw - 50% + 7%);
    bottom: calc(var(--padding-block) * -.8);
    left: calc(-1 * (50vw - 50%));
}

#concept .content-1.before::before {
    width: calc((50vw - 50%) + 40%);
    height: 150%;
    top: 4rem;
    right: calc(-1 * (50vw - 50%));
}

#origin {
    background-image: url(/assets/img/common/bg_01.png);
    background-size: cover;
    background-position: center;
    position: relative;
    z-index: -10;
}

#origin::before {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: #fff;
    opacity: .4;
    z-index: -1;
}

#features h2 {
    margin-bottom: 2.5em;
}

#features li {
    background-color: rgba(255, 255, 255, 0.5);
    box-shadow: var(--shadow);
}

#features li:nth-child(n + 2) {
    margin-top: 8rem;
}

#features figure {
    row-gap: 2rem;
}

#features img {
    width: 45%;
}

#features h3 span {
    display: block;
}


#features figcaption {
    width: 55%;
    padding-inline: min(3vw, 2rem);
}

#features .before::before {
    width: calc((50vw - 50%) + 90%);
    height: 100%;
    bottom: -8rem;
    right: calc(-1 * (50vw - 50%));
}

section#message {
    padding-bottom: clamp(4rem, 8vw, 14rem);
}


#message .flex {
    gap: 4rem;
}

#message .img-wrap {
    width: 40%;
}

#message .text-content {
    width: 60%;
}

#message .before::before {
    width: 100%;
    height: 100%;
    top: min(3vw, 3rem);
    right: min(3vw, 3rem);
}

@media screen and (max-width:992px) {
    #concept .content-1 .text-content {
        width: 100%;
    }

    #concept .content-1 img {
        width: 70%;
        margin-left: auto;
    }

    #concept .content-1 {
        text-align: center;
        padding-bottom: min(7vw, 8rem);
        margin-left: auto;
    }

    #concept h2::before {
        right: 0;
        margin-inline: auto;
    }
    
    
    .content-2 {
        padding-top: 0;
    }
    
    .content-2 .img-2 {
        width: 25%;
        transform: translateY(0rem);
    }
    
    .content-2 .img-3 {
        width: 50%;
        transform: translateY(5rem);
    }
    
    .content-2.before::before {
        width: 45%;
        height: 250%;
        z-index: -1;
    }

    #concept .content-1.before::before {
        display: none;
    }

    #features .flex>*,
    #message .flex.flex-column-sp>* {
        width: 100%;
    }

    #features figcaption {
        padding-bottom: 3rem;
    }

#features .before::before {
    height: 101%;
    left: calc(-1 * (50vw - 50%));
}

}