
/* 健康経営優良法人サポートパック用CSS */




/* ============================================================
メインビジュアル
============================================================ */

.main_visual{
    display: flex;
    flex-direction: column-reverse;
    gap: 16px;
    margin-bottom: 40px;
    .main_visual__desc{
        padding: 0 16px;
        display: flex;
        flex-direction: column;
        align-items: center;
        .main_heading_attachment{
            font-size: 16px;
            font-weight: bold;
            line-height: 1.2;
            color: #45B035;
            text-align: center;
        }
        .main_heading{
            display: grid;
            grid-template-columns: 1fr;
            grid-template-rows: repeat(3, auto);
            place-content: center; 
            margin-top: 16px;
            img{
                width: 180px;
                margin: 0 auto 12px;
            }
            span{
                font-size: 28px;
                line-height: 1.15;
                text-align: center;
                font-weight: bold;
                &:not(:last-child){
                    margin-bottom: 8px;
                }
            }
        }
        .main_heading_sub{
            font-size: 18px;
            font-weight: bold;
            text-align: center;
            color: #123987;
            line-height: 1.5;
            margin-top: 16px;
        }
        .main_text{
            font-size: 14px;
            line-height: 1.5;
            margin-top: 10px;
        }
        .main_point_list{
            display: flex;
            justify-content: center;
            gap: 8px;
            margin-top: 24px;
            .point_item{
                width: 33.333%;

            }
        }
    }
    .main_visual__img{
        img{
            width: 100%;
        }
    }
}

/* PC */
@media screen and (min-width: 920px){
    .main_visual{
        flex-direction: row;
        align-items: center;
        gap:20px;
        margin-bottom: 64px;
        position: relative;
        margin-top: 16px;
        .main_visual__desc{
            padding: 0;
            position: relative;
            z-index: 1;
            margin-left: clamp(80px, 7vw, 156px);
            display: block;
            .main_heading_attachment{
                font-size: clamp(15px, 1.7vw, 28px);
                text-align: left;
            }
            .main_heading{
                margin-top: 16px;
                img{
                    width:clamp(150px, 13.8vw, 212px);
                    margin: 0 0 8px 0;
                }
                span{
                    font-size: clamp(25px, 3vw, 44px);
                    text-align: left;
                    &:not(:last-child){
                        margin-bottom: 0;
                    }
                }
            }
            .main_heading_sub{
                font-size: clamp(15px, 1.5vw, 24px);
                text-align: left;
                margin-top: 24px;
            }
            .main_text{
                font-size: clamp(14px, 1.2vw, 16px);
                margin-top: 16px;
            }
            .main_point_list{
                gap: 16px;
                justify-content: flex-start;
                .point_item{
                    width: clamp(100px, 11vw, 160px);
                    img{

                    }
                }
            }
        }
        .main_visual__img{
            width: 58%;
            /* margin-left: 50px; */
            margin-left: auto;
        }
        .main_point_list{
            .point_item{
                width: 33.333%;
                
            }
        }
        
        
    }
}




/* ============================================================
case_section
============================================================ */
.case_section{
    margin-top: 64px;
    .case_sub_heading{
        font-size: 18px;
        font-weight: bold;
        line-height: 1.5;
        text-align: center;
    }
    .logo_marks {
        .logo_list{
            padding: 32px 0 64px;
            gap: 32px 48px;
            li{
                img{
                    width: auto;
                    height: 31px;
                }
            }
        }
    }

}
/* PC */
@media screen and (min-width: 768px){
    .case_section{
        margin-top: 120px;
        .case_sub_heading{
            font-size: 24px;
        }
        .logo_marks {
            .logo_list {
                padding: 32px 0 64px;
                gap: 48px 64px;
                li{
                    img {
                        width: auto;
                        height: 40px;
                    }
                } 
            }
        }
    }
}

/* ============================================================
problem_section
============================================================ */
.problem_section{
    .problem_content{
        display: flex;
        flex-direction: column;
        gap: 48px;
        .problem_content__item{
            display: flex;
            flex-direction: column;
            gap: 48px;

            .problem_content__item__top{
                background-color: #fff;
                border-radius: 8px;
                position: relative;
                padding: 50px 32px 32px;
                .label_box{
                    position: absolute;
                    left: 0;
                    top: 0;
                    display: flex;
                    align-items: center;
                    gap: 12px;
                    
                    .label_box__number{
                        width: 90px;
                        height: 36px;
                        display: grid;
                        place-content: center;
                        background-color: #123987;
                        border-top-left-radius: 8px;
                        border-bottom-right-radius: 8px;
                        color: #fff;
                        font-weight: bold;
                        text-align: center;
                        line-height: 1;
                        font-size: 18px;

                    }
                    .label_box__text{
                        font-size: 21px;
                        font-weight: bold;
                        color: #123987;
                        line-height: 1;
                    }
                }
                .problem_content__item__top__image{
                    width: 160px;
                    margin: 0 auto 24px;
                }
                .problem_content__item__top__heading{
                    font-weight: bold;
                    font-size: 21px;
                    text-align: center;
                    line-height: 1.2;
                }
                p{
                    font-size: 14px;
                    line-height: 1.6;
                    margin-top: 8px;
                }
            }
            .problem_content__item__bottom{
                position: relative;
                background-color: #fff;
                border-radius: 8px;
                border: 2px solid #45B035;
                padding: 32px;
                &:before{
                    position: absolute;
                    left: 50%;
                    top: -28px;
                    transform: translateX(-50%);
                    content: "";
                    background-image: url(/offken/kenkoukeiei_support_pack/images/renewal2026/green_under_arrow.svg);
                    background-size: contain;
                    background-repeat: no-repeat;
                    width: 22px;
                    height: 12px;
                }
                h4{
                    color: #45B035;
                    font-weight: bold;
                    font-size: 21px;
                    text-align: center;
                    line-height: 1.2;
                }
                p{
                    font-size: 16px;
                    line-height: 1.5;
                    margin-top: 16px;
                }
            }
        }
    }
}
/* PC */
@media screen and (min-width: 768px){
    .problem_section{
        .problem_content{
            flex-direction: row;
            gap: 24px;
            .problem_content__item{
                gap: 48px;
                width: 33.333%;

                .problem_content__item__top{
                    
                    padding: 64px 24px 32px;
                    .label_box{
                        
                        
                        .label_box__number{
                            width: 106px;
                            height: 40px;
                            font-size: 20px;

                        }
                        .label_box__text{
                            font-size: 24px;
                        }
                    }
                    .problem_content__item__top__image{
                        max-width: 170px;
                        width: auto;
                    }
                    .problem_content__item__top__heading{
                        font-size: 21px;
                        line-height: 1.4;
                    }
                    p{
                        font-size: 16px;
                        margin-top: 16px;
                    }
                }
                .problem_content__item__bottom{
                    
                    padding:32px 24px;
                    &:before{
                        top: -32px;
                        width: 34px;
                        height: 19px;

                    }
                    h4{
                        font-size: 21px;
                        line-height: 1.4;
                    }
                    p{
                        line-height: 1.6;
                        margin-top: 16px;
                    }
                }
            }
        }
    }
}

/* ============================================================
style_section
============================================================ */
.style_section{
    .style_content{
        display: flex;
        flex-direction: column;
        gap: 40px;
        .style_content__desc{
            p{
                font-size: 16px;
                line-height: 1.6;
                &:not(:last-child){
                    margin-bottom: 16px;
                }
            }
        }
    }
}
/* PC */
@media screen and (min-width: 768px){
    .style_section{
        .style_content{
            flex-direction: row;
            align-items: center;
            gap: 80px;
            .style_content__desc{
                p{
                    font-size: 20px;
                    line-height: 1.6;
                    &:not(:last-child){
                        margin-bottom: 16px;
                    }
                }
            }
            .style_content__img{
                width: 500px;
                flex-shrink: 0;
            }
        }
    }
}

/* ============================================================
feature_section
============================================================ */
.feature_section{
    &.--bg{
        --bg--color:#E0F2DE;
    }
    .feature_content{
        .feature_content__block{
            background-color: #fff;
            padding: 40px 20px;
            border-radius: 8px;
            &:not(:last-child){
                margin-bottom: 42px;
            }
            .feature_content__block__intro{
                display: flex;
                flex-direction: column-reverse;
                gap: 24px;
                .feature_content__block__intro__desc{
                    h3{
                        color: #45B035;
                        font-weight: bold;
                        line-height: 1.3;
                        font-size: 18px;
                        text-align: center;
                    }
                    p{
                        font-size: 14px;
                        line-height: 1.6;
                        margin-top: 16px;
                    }
                }
            }
            .recommend_box{
                margin-top: 42px;
                padding: 40px 20px;
                border-radius: 8px;
                background-color: #F5F5F5;
                position: relative;
                &::before{
                    position: absolute;
                    content: "";
                    left: 50%;
                    bottom: -20px;
                    transform: translateX(-50%);
                    width: 0;
                    height: 0;
                    border-style: solid;
                    border-width: 20px 10px 0px 10px;
                    border-color: #F5F5F5 transparent transparent transparent;
                }
                .circle_heading{
                    background-color: #123987;
                    border-radius: 50%;
                    width: 112px;
                    height: 112px;
                    color: #fff;
                    font-size: 14px;
                    font-weight: bold;
                    text-align: center;
                    display: grid;
                    place-content: center;
                    margin: 0 auto 24px;
                    span{
                        font-size: 21px;
                        line-height: 1;
                    }
                }
                .recommend_box__list__wrapper{
                    display: flex;
                    flex-direction: column;
                    gap: 24px;
                    width: fit-content;
                    margin: auto;
                }
                .recommend_box__list{
                    display: flex;
                    flex-direction: column;
                    
                    h4{
                        font-size: 16px;
                        font-weight: bold;
                        line-height: 1.2;
                        margin-bottom: 16px;

                    }
                    .check_text{
                        --check-text-size: 14px;
                        --check-text-height: 1.4;
                        --check-text-padding-left: 22px;
                        --check-icon-size: 18px;
                        --check-icon-margin-top: 1px;
                        &:before{
                            background-image: url(/images/common/icon_checkbox_dark-blue.svg);
                        }
                        &:not(:last-child){
                            margin-bottom: 6px;
                        }
                    }
                }
            }
            .app_desc{
                display: flex;
                flex-direction: column;
                margin-top: 50px;
                .app_desc__img{
                    width: 240px;
                    margin: 0 auto 40px;
                    order: 1;
                }
                .app_desc__block{
                    display: flex;
                    flex-direction: column;
                    gap: 24px;
                    order: 2;
                    &:not(:last-child){
                        margin-bottom: 24px;
                    }
                    .app_desc_box{
                        padding: 24px;
                        background-color: #FDFEE3;

                        h4{
                            color: #45B035;
                            font-weight: bold;
                            font-size: 16px;
                        }
                        p{
                            margin-top: 8px;
                            font-size: 14px;
                            line-height: 1.5;
                        }

                    }
                }
            }
            .price_plan{
                margin-top: 40px;
                .plan_card__wrapper{
                    display: flex;
                    flex-direction: column;
                    gap: 16px;
                }
                .plan_card{
                    border: 2px solid #D9D9D9;
                    border-radius: 8px;
                    padding: 40px 20px;

                    .plan_card__title{
                        font-size: 21px;
                        font-weight: bold;
                        text-align: center;

                    }
                    .plan_card__price{
                        margin-top: 8px;
                        font-size: 14px;
                        text-align: center;
                        span{
                            font-size: 24px;
                            font-weight: bold;
                            line-height: 1;
                            padding: 0 4px;
                            &.--green{
                                color: #44AE35;
                            }
                            &.--blue{
                                color: #123987;
                            }
                        }
                    }
                    .plan_card__body{
                        margin-top: 24px;
                        padding-top: 24px;
                        border-top: 2px solid #D9D9D9;
                        h5{
                            font-weight: bold;
                            font-size: 14px;
                            margin-bottom: 8px;
                        }
                        .plan_card__list{
                            display: flex;
                            flex-direction: column;
                            gap: 4px;
                            margin-bottom: 12px;
                            .plan_card__item{
                                display: flex;
                                align-items: center;
                                .plan_card__name{
                                    font-size: 14px;
                                    width: 100px;
                                    background-color: #fff;
                                }
                                .plan_card__dot{
                                    flex: 1;
                                    background-image: radial-gradient(circle, #333 1.5px, transparent 2.5px);
                                    background-size: 12px 12px;
                                    background-repeat: repeat-x;
                                    background-position: left center;
                                    height: 8px;
                                }
                                .plan_card__value{
                                    font-size: 14px;
                                    width: 80px;
                                    background-color:#fff;
                                    text-align: right;
                                    span{
                                        font-weight: bold;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            .price_plan__notes{
                font-size: 11px;
                display: block;
                margin-top: 16px;
            }
        }
    }
}
/* PC */
@media screen and (min-width: 768px){
    .feature_section{
        .feature_content{
            .feature_content__block{
                padding: 48px 40px;
                overflow: hidden;
                .feature_content__block__intro{
                    display: flex;
                    align-items: center;
                    flex-direction: row;
                    gap: 40px;
                    .feature_content__block__intro__desc{
                        h3{
                            font-size: 24px;
                            text-align: left;
                        }
                        p{
                            font-size: 16px;
                        }
                    }
                    .feature_content__block__intro__img{
                        flex-shrink: 0;
                        width: 400px;
                    }
                }
                .recommend_box{
                    padding: 42px 32px;
                    display: flex;
                    align-items: center;
                    &::before{
                        border-width: 20px 14px 0px 14px;
                    }
                    .circle_heading{
                        width: 162px;
                        height: 162px;
                        font-size: 20px;
                        margin: 0 40px 0 0;
                        flex-shrink: 0;
                        span{
                            font-size: 28px;
                        }
                    }
                    .recommend_box__list__wrapper{
                        flex-direction: row;
                        gap: 32px;
                        width: auto;
                        margin: 0;
                    }
                    .recommend_box__list{
                        h4{
                            font-size: 20px;

                        }
                        .check_text{
                            --check-text-size: 16px;
                            --check-text-padding-left: 26px;
                            --check-icon-size: 22px;
                            --check-icon-margin-top: 1px;
                        }
                    }
                }
                .app_desc{
                    display: flex;
                    flex-direction: row;
                    gap: 24px;
                    .app_desc__img{
                        width: 329px;
                        margin: auto;
                        flex-shrink: 0;
                        order: inherit;
                        width: 34.274%
                    }
                    .app_desc__block{
                        order: inherit;
                        width: 30%;
                        &:not(:last-child){
                            margin-bottom: 0;
                        }
                        .app_desc_box{
                            h4{
                                font-size: 20px;
                            }
                            p{
                                margin-top: 16px;
                                font-size: 16px;
                            }

                        }
                    }
                }
                .price_plan{
                    display: flex;
                    flex-direction: column;
                    margin: 40px auto 0;
                    .plan_card__wrapper{
                        flex-direction: row;
                        justify-content: center;
                        gap: 24px;
                    }
                    .plan_card{
                        padding: 62px 42px 50px;
                        width: 400px;
                        

                        .plan_card__title{
                            font-size: 24px;
                        }
                        .plan_card__price{
                            margin-top: 8px;
                            font-size: 16px;
                            span{
                                font-size: 32px;
                                padding: 0 4px;
                            }
                        }
                        .plan_card__body{
                            margin-top: 32px;
                            padding-top: 32px;
                            h5{
                                font-size: 16px;
                                margin-bottom: 16px;
                            }
                            .plan_card__list{
                                gap: 4px;
                                .plan_card__item{
                                    .plan_card__name{
                                        font-size: 16px;
                                        width: 115px;
                                    }
                                    .plan_card__value{
                                        font-size: 16px;
                                        width: 90px;
                                        
                                    }
                                    
                                }
                            }
                        }
                    }
                }
                .price_plan__notes{
                    margin: 16px auto 0;
                    width: 824px;
                }
            }
        }
    }
}



/* ============================================================
flow_section
============================================================ */
.flow_section{
    .introduction_flow__item{
        padding: 56px 8px 48x;
        p{
            font-weight: bold;
            font-size: 18px;
            text-align: center;
        }
        .introduction_img{
            margin-bottom: 16px;
        }
    }
}
/* PC */
@media screen and (min-width: 768px){
    .flow_section{
        .introduction_flow__item{
            padding: 56px 8px 40px;
            p{
                font-size: 16px;
                
            }
        }
    }
}

/* ============================================================
voice_section
============================================================ */
.voice_section{
    &.--bg{
        --bg--color: #F3FFF2;
    }
    .voice_content{
        display: flex;
        flex-direction: column;
        gap: 24px;
        .voice_content__item{
            width: 100%;
            background-color: #fff;
            border-radius: 8px;
            padding: 40px 32px;

            .voice_content__item__img{
                width: 140px;
                margin: 0 auto 24px;
            }
            .voice_content__item__desc{
                h3{
                    font-size: 18px;
                    font-weight: bold;
                    text-align: center;
                    line-height: 1.4;
                    color: #123987;
                }
                p{
                    font-size: 14px;
                    line-height: 1.5;
                    margin-top: 16px;
                }
            }
        }
        
    }
    .cases_archive{
        margin-top: 48px;
    }
}
/* PC */
@media screen and (min-width: 768px){
    .voice_section{
        .voice_content{
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 32px;
            .voice_content__item{
                padding: 40px;
                display: flex;
                gap: 24px;

                .voice_content__item__img{
                    width: 120px;
                    margin: 0;
                    flex-shrink: 0;
                }
                .voice_content__item__desc{
                    h3{
                        font-size: 20px;
                        text-align: left;
                    }
                    p{
                        font-size: 16px;
                    }
                }
            }
        }
        .cases_archive{
            margin-top: 56px;
        }
    }
}

/* ============================================================
staff_section
============================================================ */
.staff_section{
    .btn_wrapper{
        margin-top: 64px;
    }
}
/* PC */
@media screen and (min-width: 768px){
    
    .staff_section{
        .btn_wrapper{
            margin-top: 80px;
        }
    }
}

/* ============================================================
sticky_btn
============================================================ */

.sticky_btn{
    position: fixed;
    right: 0;
    bottom: 80px;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: all .65s;
    &.isActive {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
    img{
        width: 120px;
        height: 60px;
        margin-left: auto;
    }
}
/* PC */
@media screen and (min-width: 768px){
    .sticky_btn{
        right: 0;
        bottom: auto;
        bottom: 100px;
        img{
            width: 240px;
            height: 120px;
        }
    }
}