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 .text-content {
    width: 70%;
}

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

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

.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) * -0.8);
    left: calc(-1 * (50vw - 50%));
}

section#origin {
    padding-block: clamp(8rem, 10vw, 12rem);
}

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

#origin::before {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(3px);
    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 figcaption {
    width: 55%;
    padding-inline: min(3vw, 2rem);
}

#features h3 span {
    display: block;
}

#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);
}

#message .name {
    text-align: end;
    margin-top: 5px;
}

@media screen and (max-width: 992px) {
    #concept h2::before {
        right: 0;
        margin-inline: auto;
    }

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

    #concept .content-1 .text-content {
        width: 100%;
    }

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

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

    .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;
    }

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

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

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