.brand-container {

    --green-1: #7DB62D;
    --green-2: #94C74D;
    --green-3: #ECF7DE;

    --orange-1: #ED6C31;
    --orange-2: #ED7D49;
    --orange-3: #FFEAE0;

    --yellow-1: #CDAB00;
    --yellow-2: #EEC90D;
    --yellow-3: #FFF7D2;

    #section01 {
        --color-accent-1: var(--green-1);
        --color-accent-2: var(--green-2);
        --color-accent-3: var(--green-3);
    }

    #section02 {
        --color-accent-1: var(--orange-1);
        --color-accent-2: var(--orange-2);
        --color-accent-3: var(--orange-3);
    }

    #section03 {
        --color-accent-1: var(--yellow-1);
        --color-accent-2: var(--yellow-2);
        --color-accent-3: var(--yellow-3);
    }

    margin-bottom: 5rem;

    .lead-text {
        padding-inline: 15px;
        margin-block: 5.6rem;
        text-align: center;
        line-height: 1.9;
        font-size: 18px;
    }

    .page-link {
        display: flex;
        justify-content: center;
        gap: 10px 20px;

        li {
            flex: 1;
        }

        a {
            position: relative;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 60px;
            height: 100%;
            padding: 8px 40px;
            background-color: var(--color-accent-2);
            color: #fff;
            text-align: center;
            line-height: 1.4;
            font-size: 14px;
            font-weight: 700;

            &::after {
                content: "";
                position: absolute;
                inset-block: 0;
                right: 20px;
                margin: auto;
                width: 8px;
                height: 8px;
                background: currentColor;
                clip-path: polygon(6px 0, 8px 0, 8px 8px, 0 8px, 0 6px, 6px 6px);
                transform: translateY(-25%) rotate(45deg);
            }

            span {
                word-break: keep-all;
                overflow-wrap: anywhere;
            }

            &[href="#section01"] { background-color: var(--green-2); }
            &[href="#section02"] { background-color: var(--orange-2); }
            &[href="#section03"] { background-color: var(--yellow-2); }
        }
    }

    .section {
        position: relative;
        padding: 48px 30px;
        margin-top: 8rem;
        background-color: var(--color-accent-3);
    }

    .heading {
        position: absolute;
        top: 0;
        inset-inline: 0;
        translate: 0 -50%;
        padding: 8px 8px 4px;
        max-width: 440px;
        margin: auto;
        background-color: var(--color-accent-2);
        color: #fff;
        text-align: center;
        line-height: 1.9;
        font-size: 24px;
        font-weight: 700;
    }

    .box {
        border-radius: 8px;
        padding: 40px;
        background-color: #fff;
        line-height: 2;
        font-size: 15px;

        & + * {
            margin-top: 4rem;
        }

        & > * + * {
            margin-top: 2.4rem;
        }

        .accent {
            color: var(--color-accent-1);
            font-weight: 700;
        }
    }

    .box-heading {
        color: var(--color-accent-1);
        text-align: center;
        line-height: 1.8;
        font-size: 22px;
        font-weight: 600;
    }

    .box-sub-heading {
        color: var(--color-accent-1);
        line-height: 1.6;
        font-size: 18px;
        font-weight: 700;
    }

    .detail-btn {
        position: relative;
        margin-inline: auto;
        padding: 8px 40px 6px;
        width: 100%;
        max-width: 260px;
        min-height: 45px;
        display: flex;
        justify-content: center;
        align-items: center;
        background: var(--color-accent-2);
        color: #fff;
        text-align: center;
        line-height: 1.4;
        font-size: 15px;
        font-weight: 700;

        &::after {
            content: "";
            position: absolute;
            inset-block: 0;
            right: 20px;
            margin: auto;
            width: 8px;
            height: 8px;
            background: currentColor;
            clip-path: polygon(6px 0, 8px 0, 8px 8px, 0 8px, 0 6px, 6px 6px);
            rotate: -45deg;
        }

        &.wide {
            padding-block: 16px 14px;
            max-width: 340px;
            min-height: 57px;
            font-size: 18px;
        }
    }

    .sub-section {
        margin-block: 4rem;
    }

    .section-sub-heading {
        padding: 16px 30px;
        margin: 4rem auto 2rem;
        max-width: 622px;
        background: var(--color-accent-2);
        color: #fff;
        text-align: center;
        line-height: 1.5;
        font-size: 20px;
        font-weight: 700;
    }

    .item-detail-list {
        & > * + * {
            margin-top: 2rem;
        }

        & + * {
            margin-top: 4rem;
        }

        .box {
            display: grid;
            grid-template-columns: 260px 1fr;
            grid-template-rows: repeat(4, auto);
            column-gap: 43px;

            &:not(:has(.label)) {
                grid-template-rows: repeat(3, auto);
            }

             .label {
                margin-bottom: 24px;
                border: 2px solid currentColor;
                border-radius: 4px;
                padding: 8px 8px 6px;
                color: var(--color-accent-1);
                text-align: center;
                line-height: 1.4;
                font-size: 15px;
                font-weight: 600;
            }

            .photo {
                grid-row: 1/-1;
                align-self: center;
            }

            .name {
                color: var(--color-accent-1);
                text-align: center;
                line-height: 1.8;
                font-size: 18px;
                font-weight: 600;
            }

            .summary {
                line-height: 2;
                font-size: 15px;
            }

            .link {
                position: relative;
                margin: 2.4rem auto 0;
                padding: 8px 40px 6px;
                width: 100%;
                max-width: 260px;
                min-height: 45px;
                display: flex;
                justify-content: center;
                align-items: center;
                background: var(--color-accent-2);
                color: #fff;
                text-align: center;
                line-height: 1.4;
                font-size: 15px;
                font-weight: 700;

                &::after {
                    content: "";
                    position: absolute;
                    inset-block: 0;
                    right: 20px;
                    margin: auto;
                    width: 8px;
                    height: 8px;
                    background: currentColor;
                    clip-path: polygon(6px 0, 8px 0, 8px 8px, 0 8px, 0 6px, 6px 6px);
                    rotate: -45deg;
                }
            }
        }
    }

    .voice {
        margin-top: 2.4rem;
        border: 1px solid var(--color-accent-2);
        border-radius: 20px;
        padding: 20px;
        line-height: 2;
        font-size: 15px;

        :is(h3, h4, h5, h6) {
            margin-bottom: 0.8rem;
            color: var(--color-accent-1);
            line-height: 1.6;
            font-size: 18px;
            font-weight: 700;
        }
    }

    @media screen and (max-width: 767px) {

        margin-bottom: 2.5rem;

        .free-contents {
            width: 100%;
        }

        .lead-text {
            margin-block: 5.2rem;
        }

        .page-link {
            flex-direction: column;
            padding-inline: 16px;
        }

        .page-link a {
            font-size: 16px;
        }

        .section {
            padding-inline: 16px;
        }

        .heading {
            padding: 16px 20px;
            max-width: calc(100% - 32px);
            font-size: 20px;
        }

        .section-sub-heading {
            padding-inline: 20px;
        }

        .item-detail-list {
            .box {
                grid-template-columns: 1fr;
                padding-inline: 16px;

                & > * + * {
                    margin-top: 1.6rem;
                }

                .label {
                    margin-bottom: 0;
                    font-size: 16px;
                }

                .photo {
                    grid-row: auto;
                }
            }
        }
    }

    @media screen and (min-width: 768px) {
        .section + .section {
            margin-top: 13rem;
        }
    }
}