#concept {
    margin-bottom: 0;
    background-color: #F7F7F7;
    
    #sec-title {
        position: relative;
        background-color: #FFF9F3;

        .title-container {
            width: 100%;
            height: 100%;

            .title-text {
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                padding: 40px 0;
                gap: 20px;

                & h1 {
                    text-transform: uppercase;
                    font-family: 'Bayon', sans-serif;
                    font-size: 50px;
                }

                & p {
                    font-size: 16px;
                    line-height: 1.75;
                    margin: 0 20px;
                    text-align: center;
                }
            }
        }
    }
    
    #sec-mission {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 100px 20px;
        border-left: 15px solid #FFB861;
        border-right: 15px solid #FFB861;

        &::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-image: url('../img/logo.svg');
            background-repeat: no-repeat;
            background-position: center;
            background-size: contain;
            opacity: 0.2;
            z-index: 0;
        }
        
        .title {
            position: relative;
            z-index: 1;
            font-size: 40px;
            margin-bottom: 10px;
            text-transform: uppercase;
            font-family: 'Bayon', sans-serif;
        }

        .desc {
            position: relative;
            z-index: 1;
            font-size: 20px;
            color: gray;
            margin-bottom: 80px;
        }

        .text-en {
            position: relative;
            z-index: 1;
            font-size: 30px;
            margin-bottom: 50px;
        }

        .text-ja {
            position: relative;
            z-index: 1;
            font-size: 26px;
            margin-bottom: 40px;
        }
    }

    #sec-vision {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        max-width: 900px;
        margin: 0 auto;
        padding: 80px 20px;

        .header {
            /* width: 50%; */
            min-width: 300px;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;

            .title {
                position: relative;
                z-index: 1;
                font-size: 40px;
                margin-bottom: 10px;
                text-transform: uppercase;
                font-family: 'Bayon', sans-serif;
            }

            .desc {
                position: relative;
                z-index: 1;
                font-size: 16px;
                color: gray;
            }
        }

        .content {
            /* width: 50%; */
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;

            .vision-containers {
                display: flex;
                flex-direction: column;
                gap: 30px;

                .vision-container {
                    display: flex;
                    flex-direction: row;
                    align-items: center;
                    background-color: white;
                    padding: 20px;
                    padding-right: 25px;
                    border-radius: 0 999px 999px 0;

                    .index {
                        font-family: 'Bayon', sans-serif;
                        font-size: 30px;
                        color: #FF9E59;
                        min-width: 35px;
                        margin-right: 20px;
                    }

                    .text {
                        font-size: 16px;
                        line-height: 1.5;
                    }
                }
            }
        }
    }

    #sec-value {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        max-width: 900px;
        margin: 0 auto;
        padding: 60px 20px 100px;

        .title {
            position: relative;
            z-index: 1;
            font-size: 50px;
            margin-bottom: 10px;
            text-transform: uppercase;
            font-family: 'Bayon', sans-serif;
        }

        .desc {
            position: relative;
            z-index: 1;
            font-size: 20px;
            color: gray;
            margin-bottom: 80px;
        }

        .value-containers {
            display: flex;
            flex-direction: column;
            margin-bottom: 60px;
            gap: 30px;

            .value-container {
                display: flex;
                flex-direction: row;
                align-items: center;
                gap: 20px;
                
                .header {
                    width: 100px;
                    text-align: center;
                    font-size: 30px;
                    font-family: 'Bayon', sans-serif;
                    color: #F26900;
                }

                .text {
                    font-size: 18px;
                    line-height: 1.5;
                }
            }
        }

        .value-circle-containers {
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: center;
            gap: 40px;

            .value-circle-container {
                position: relative;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                width: 180px;
                height: 180px;
                border-radius: 50%;
                background-color: #F26900;
                color: white;
                text-align: center;
                cursor: pointer;
                transition: all 0.3s ease;
                overflow: hidden;

                &:hover {
                    opacity: 0.9;
                    transform: scale(1.05);
                }

                .header {
                    font-size: 30px;
                    padding-bottom: 20px;
                    font-family: 'Bayon', sans-serif;
                    transition: opacity 0.3s ease, font-size 0.3s ease;
                }

                .plus {
                    position: absolute;
                    bottom: 20%;
                    font-size: 30px;
                    transition: opacity 0.3s ease, font-size 0.3s ease;
                }

                .text {
                    font-size: 18px;
                    line-height: 1.5;
                    opacity: 0;
                    max-height: 0;
                    overflow: hidden;
                    transition: opacity 0.3s ease, max-height 0.3s ease;
                    margin: 0;
                    padding: 0;
                }

                &.active {
                    .header {
                        /* opacity: 0; */
                        font-size: 20px;
                    }

                    .plus {
                        display: none;
                    }

                    .text {
                        opacity: 1;
                        max-height: 500px;
                        padding: 10px;
                    }
                }
            }
        }
    }
}

@media (max-width: 768px) {
    #concept {
        #sec-title .title-container .title-text {
            padding: 24px 16px;
            gap: 12px;
        }

        #sec-title .title-container .title-text h1 {
            font-size: 28px;
            line-height: 1.2;
        }

        #sec-title .title-container .title-text p {
            font-size: 14px;
            margin: 0 12px;
        }

        #sec-mission {
            padding: 48px 16px;
            border-left-width: 8px;
            border-right-width: 8px;
        }

        #sec-mission .title {
            font-size: 24px;
            margin-bottom: 6px;
        }

        #sec-mission .desc {
            font-size: 14px;
            margin-bottom: 40px;
        }

        #sec-mission .text-en {
            font-size: 18px;
            margin-bottom: 24px;
            text-align: center;
            padding: 0 8px;
        }

        #sec-mission .text-ja {
            font-size: 16px;
            margin-bottom: 24px;
            text-align: center;
            padding: 0 8px;
        }

        #sec-vision {
            flex-direction: column;
            padding: 40px 16px;
            gap: 32px;
        }

        #sec-vision .header {
            min-width: auto;
            width: 100%;
        }

        #sec-vision .header .title {
            font-size: 24px;
        }

        #sec-vision .header .desc {
            font-size: 14px;
        }

        #sec-vision .content .vision-containers {
            width: 100%;
            gap: 16px;
        }

        #sec-vision .content .vision-containers .vision-container {
            padding: 14px 16px;
            padding-right: 18px;
        }

        #sec-vision .content .vision-containers .vision-container .index {
            font-size: 22px;
            min-width: 28px;
            margin-right: 12px;
        }

        #sec-vision .content .vision-containers .vision-container .text {
            font-size: 14px;
        }

        #sec-value {
            padding: 40px 16px 60px;
        }

        #sec-value .title {
            font-size: 28px;
            margin-bottom: 6px;
        }

        #sec-value .desc {
            font-size: 14px;
            margin-bottom: 40px;
        }

        #sec-value .value-containers {
            width: 100%;
            margin-bottom: 40px;
            gap: 20px;
        }

        #sec-value .value-containers .value-container {
            flex-direction: column;
            align-items: flex-start;
            gap: 8px;
        }

        #sec-value .value-containers .value-container .header {
            width: auto;
            font-size: 22px;
            text-align: left;
        }

        #sec-value .value-containers .value-container .text {
            font-size: 15px;
        }

        #sec-value .value-circle-containers {
            flex-wrap: wrap;
            justify-content: center;
            gap: 20px;
        }

        #sec-value .value-circle-containers .value-circle-container {
            width: 140px;
            height: 140px;
        }

        #sec-value .value-circle-containers .value-circle-container .header {
            font-size: 20px;
            padding-bottom: 12px;
        }

        #sec-value .value-circle-containers .value-circle-container .plus {
            font-size: 24px;
        }

        #sec-value .value-circle-containers .value-circle-container .text {
            font-size: 14px;
        }

        #sec-value .value-circle-containers .value-circle-container.active .header {
            font-size: 16px;
        }
    }
}