@charset "UTF-8";
/*
*{
    outline: 1px solid red !important;
}*/
html{
    scroll-behavior: smooth;
    transition: all 0.5s;
}
html:has(.c-nav.open){
    overflow: hidden;
}

/*google-font*/
body{
    -webkit-tap-highlight-color: transparent;
}

.br-sp { display:none; }
.br-pc { display:block; }

p+p{
    margin-top: 20px;
}

.c-deco::before,
.c-deco::after{
    position: absolute;
    content: '';
    display: block;
}
.c-anchor{
    scroll-margin-top: 90px;
}
.c-pd{
    padding-top: 100px;
    padding-bottom: 100px;
}

.c-bg--pink{
    background-color: #ffefed;
}

.is-reverse{
    flex-direction: row-reverse;
}

/*共通パーツ*/
.cmn_btn{
    box-sizing: border-box;
    display: inline-block;
    position: relative;
    min-width: 250px;
    padding: 10px 135px 10px 20px;
    border: 1px solid #242423;
    border-radius: 5px;
    font-size: 16px;
}

.cmn_btn::before{
    width: 22px;
    height: 22px;
    border-radius: 11px;
    background: url(../img/cmn/black_arr.svg) no-repeat;
    background-size: 22px;
    top: 50%;
    transform: translateY(-50%);
    right: 20px;
}
.cmn_btn::after{
    background: url(../img/cmn/black_arr.svg) no-repeat;
    background-size: 22px;
}


.c-tile-btn_list{
    display: flex;
    gap: 35px;
}
.c-tile_item{
    box-sizing: border-box;
    width: calc((100% - 70px) / 3);
    border-radius: 20px;
    overflow: hidden;
    text-align: center;
    box-shadow: 0 0 10px 0 rgb(0, 0, 0, 0.16) ;
}
.c-tile_item-img{
    height: 230px;
    overflow: hidden;
    object-position: center;
}
.c-tile_item-img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.c-tile_item-name{
    display: block;
    padding: 20px;
}


.c-btn-list-btn_list-flex{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    margin-top: 25px;
}


.header_outer{
    box-sizing: border-box;
    position: fixed;
    width: 100%;
    height: 90px;
    top: 0;
    z-index: 9999999;
}
.header_frame-lr{
    position: fixed;
    display: inline-block;
    width: 24px;
    height: 100vh;
    background-color: #ffd8d1;
    top: 0;
}
.header_frame-lr:nth-child(2){
    right: 0;
}
.header_frame-bottom{
    position: fixed;
    display: inline-block;
    width: 100%;
    height: 24px;
    background-color: #ffd8d1;
    bottom: 0;
}
/*ピンク枠の角丸*/
.header_frame-lr:nth-child(1)::before{
    width: 30px;
    height: 30px;
    background: url(../img/cmn/frame_corner.svg) no-repeat;
    background-size: 30px;
    top: 90px;
    transform: rotate(270deg);
    left: 24px;
}
.header_frame-lr:nth-child(2)::before{
    width: 30px;
    height: 30px;
    background: url(../img/cmn/frame_corner.svg) no-repeat;
    background-size: 30px;
    top: 90px;
    right: 24px;
}
.header_frame-bottom::before{
    width: 30px;
    height: 30px;
    background: url(../img/cmn/frame_corner.svg) no-repeat;
    background-size: 30px;
    top: -30px;
    transform: rotate(180deg);
    left: 24px;
}
.header_frame-bottom::after{
    width: 30px;
    height: 30px;
    background: url(../img/cmn/frame_corner.svg) no-repeat;
    background-size: 30px;
    top: -30px;transform: rotate(90deg);
    right: 24px;
}

.header_inner{
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    background-color: #FFD8D1;
    padding: 0 76px;
    
}

.nav_right{
    display: flex;
    gap: 30px;
    height: 50px;
}
.job_posting_box{
    box-sizing: border-box;
    border: 2px solid #ff4b4b;
    border-radius: 4px;
    overflow: hidden;
}
.job_posting_box h2{
    display: flex;
    align-items: center;
    height: 100%;
    background-color: #ff4b4b;
    color: #ffffff;
    padding: 0 20px;

}
.job_posting_list{
    display: flex;
    height: 100%;
}
.job_posting_item{
    padding: 0 52px 0 20px;
    background-color: #ffffff;
}
.job_posting_item+.job_posting_item{
    border-left: 2px solid #ff4b4b;
}
.job_posting_link{
    position: relative;
    display: flex;
    height: 100%;
    align-items: center;
    color: #ff4b4b;
}
.job_posting_link::before{
    width: 22px;
    height: 22px;
    border-radius: 11px;
    background: url(../img/cmn/pink_arr.svg) no-repeat;
    background-size: 22px;
    top: 50%;
    transform: translateY(-50%);
    right: -32px;
}

.nav_btn{
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
    gap: 25px;
    z-index: 99999999;
}

.nav_btn-text{
    color: #242423;
    font-size: 33px;
    font-family: "Roboto", sans-serif !important;
    font-weight: 400;
}
.nav_btn.open .nav_btn-text{
    color: #ff4b4b;
}

.nav_bar_box{
    margin-top: -1px;
}
.nav_bar{
    display: block;
    background: #242423;
    width: 56px;
    height: 3px;
    border-radius: 50rem;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}
.nav_btn .nav_bar:first-child{
    margin-bottom: 12px;
}

.nav_btn.open .nav_bar{
    background-color: #ff4b4b;
}
.nav_btn.open .nav_bar:first-child{
    transform: rotate(30deg);
    margin: auto;
}
.nav_btn.open .nav_bar:last-child{
    position: relative;
    transform: rotate(-30deg);
    bottom: 2px;
}

/*アコーディオンメニュー*/
.c-nav{
    position: fixed;
    right: -100%;
    top: 0;
    background: #ffd8d1;
    width: 100%;
    height: 100vh;
    z-index: 9999999;
    -webkit-transition: 0.8s;
    transition: 0.8s;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 90px 0 50px 0;
    overflow-y: scroll;
}
.c-nav.open{
    right: 0;
}

.c-nav_inner{
    box-sizing: border-box;
    max-width: 1040px;
    height: auto;
    margin: auto;
    padding: 0 20px;
}

.c-nav_title{
    font-size: 70px;
    line-height: 70px;
    margin-bottom: 30px;
}

.c-nav_grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 1fr 1fr;
    column-gap: 35px;
    row-gap: 24px;
}

.c-nav-main-group{
    box-sizing: border-box;
    position: relative;
    width: 100%;
    height: 100%;
    padding: 25px;
    background: #ffffff;
    border-radius: 20px;
} 

.c-nav-main-group h3{
    font-size: 20px;
}

.c-nav_link::before{
    width: 30px;
    height: 30px;
    border-radius: 11px;
    background: url(../img/cmn/black_arr.svg) no-repeat;
    background-size: 30px;
    top: 50%;
    transform: translateY(-50%);
    right: 20px;
}

.c-nav-sub_link{
    display: block;
    width: 100%;
    color: #ff4b4b;
}

.c-nav-full-link-only{
    padding: unset;
    background-color: #FFFBC9;
}
.c-nav-full-link-only h3{
    height: 100%;
}
.c-nav-full-link-only .c-nav_link{
    box-sizing: border-box;
    display: flex;
    width: 100%;
    height: 100%;
    padding: 20px;
    align-items: center;
}

/* 横並びdl */
.c-feature_list_item{
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 40px 20px;
    border-top: 1px solid rgb(46, 46, 46, 0.3);
}
.c-feature_list_item:last-child{
    border-bottom: 1px solid rgb(46, 46, 46, 0.3);
}
.c-feature_list_text{
    width: 740px;
    font-weight: normal;
    line-height: 1.5;
}

.c-feature_list_text li+li{
    margin-top: 10px;
}


/*----------------------------------------

TOP

-----------------------------------------*/

/*TOP 共通*/
.top-title{
    position: relative;
    margin-bottom: 70px;
    font-size: 30px;
    z-index: 1;
}
.top-title::before{
    content: attr(data-eng);
    font-size: 100px;
    line-height: 85px;
    color: #ffffff;
    opacity: 0.5;
    top: -12px;
    z-index: -1;
}

/*mv*/
.mv-top_outer{
    position: relative;
    margin-top: 150px;
    width: 100%;
    box-sizing: border-box;
}
.mv-top_inner{
    box-sizing: border-box;
    display: flex;
    width: 100%;
    max-width: 1400px;
    gap: 50px;
    justify-content: space-between;
    align-items: center;
    margin: 0 auto;
    padding: 0 100px;
}

.mv-top_flex-left{
    width: 45%;
    flex-shrink: 0;
}

.mv-top_lead{
    margin-bottom: 50px;
}

.mv-top_text{
    margin-bottom: 50px;
    font-size: 20px;
}

.top-section_outer{
    box-sizing: border-box;
    width: 100%;
}

.top-section_inner{
    box-sizing: border-box;
    max-width: 1040px;
    height: auto;
    margin: auto;
    padding: 0 20px;
}

/* cta*/
.cta_outer{
    background-image: url(../img/top/cta_bg.jpg);
    background-size: cover;
    background-position: center;
}

.mv-top_outer + .cta_outer{
    margin-top: 70px;
}

.cta_text{
    text-align: center;
    font-size: 24px;
    margin-bottom: 25px;
    line-height: 1.5;
}
.cta_text span{
    display: block;
    font-size: 1rem;
}

.cta_list{
    display: flex;
    gap: 60px;
}
.cta_box{
    box-sizing: border-box;
    width: calc((100% - 60px) / 2);
}
.cta_link{
    display: flex;
    width: 100%;
    padding: 50px 0;
    justify-content: center;
    align-items: center;
    background-color: #FF8383;
    background-blend-mode: multiply;
    background-size: cover;
    background-position: center;
    border-radius: 20px;
    font-size: 24px;
    color: #ffffff;
}
.cta_box-ng .cta_link{
    background-image: url('../img/top/ng_bk.jpg');
}
.cta_box-mc .cta_link{
    background-image: url('../img/top/mc_bk.jpg');
}
.cta_link::after{
    position: relative;
    width: 30px;
    height: 30px;
    background-image: url('../img/cmn/white_arr.svg');
    background-size: 30px;
    margin-left: 10px;
}
.cta-icon_box{
    display: flex;
    flex-wrap: wrap;
    justify-content: end;
    gap: 10px;
    margin-top: 10px;
    padding: 0 10px;
}
.cta-icon_box img{
    max-height: 60px;
    object-fit: contain;
}
/* .top-aboutus*/
.top-about{
    background-image: url('../img/top/about_bg.jpg');
    background-size: cover;
    padding-top: 415px;
}
.top-about_title{
    position: relative;
    font-size: 100px;
    text-align: right;
    color: #ffffff;
    opacity: 0.9;
    line-height: 87px;
    bottom: -9px;
    right: 45px;
}
.top-about_textbox{
    box-sizing: border-box;
    padding: 50px;
    background-color: #ffffff;
    opacity: 0.9;
    border-radius: 20px;
    text-align: justify;
    font-size: 20px;
}

/* .top-business*/
.top-business_title{
    text-align: center;
}
.top-title.top-business_title::before{
    color: #ffd8d1;
    left: 50%;
    transform: translateX(-50%);
}

/* top-reason*/
.top-reason{
    background-image: url(../img/top/reason_bg.jpg);
    background-size: cover;
    background-position: center;
}
.top-reason_list{
    width: 52%;
    max-width: 520px;
}
.top-reason_item+.top-reason_item{
    margin-top: 50px;
}
.top-reason_link{
    margin-top: 25px;
    min-width: 317px;
}

/*top-other*/
.top-other_title{
    text-align: center;
    margin-bottom: unset !important;
}
.top-other_title::before{
    left: 50%;
    transform: translateX(-50%);        
}
.top-other-banner_box{
    display: flex;
    gap: 25px;
    margin-bottom: 25px;
}
.top-other-banner{
    box-sizing: border-box;
    background-color: aliceblue;
    width: 50%;
    box-shadow: 0 0 10px 0 rgb(0, 0, 0, 0.16);
    overflow: hidden;
    border-radius: 20px;
}
.top-other-banner__inner{
    box-sizing: border-box;
    display: flex;
    height: 150px;
    align-items: center;
    justify-content: center;
}


.top-other-banner__content--graph{
    background-color: #FFD8D1;
    background-image: url(../img/top/other_img01.jpg);
    background-blend-mode: multiply;
    background-position: center;
}
.top-other-banner__content--faq{
    background-color: #D1F3FF;
    background-image: url(../img/top/other_img02.jpg);
    background-blend-mode: multiply;
}


.top-other .cmn_btn{
    max-width: 250px;
    padding-right: 100px;
}
.top-other .c-tile_item-img{
    height: 150px;
}

/*----------------------------------------

下層共通デザイン

----------------------------------------*/
.page-mv_outer{
    position: relative;
    display: flex;
    height: 330px;
    background: url(../img/cmn/page-mv_bg.jpg) no-repeat;
    background-size: cover;
    background-position: center;
    margin-top: 90px;
    align-items: center;
}
.page-mv_inner,
.breadcrumbs_inner,
.page-section_inner{
    box-sizing: border-box;
    max-width: 1040px;
    width: 100%;
    height: auto;
    margin: 0 auto;
    padding: 0 20px;
}
.page-mv_title{
    box-sizing: border-box;
    position: relative;
    width: 100%;
    margin: 0 auto;
    padding: 0 20px;
    color: #ff4b4b;
    font-size: 50px;
    font-weight: 700;
}
.page-mv_title span{
    position: absolute;
    color: #242423;
    font-size: 20px;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
}

.breadcrumbs_outer{
    box-sizing: border-box;
    width: 100%;
    padding: 5px 0;
    background-color: #ff4b4b;
    color: #ffffff;
}
.breadcrumbs_inner a{
    color: #ffffff;
}

.page_title{
    font-size: 30px;
    text-align: center;
    color: #ff4b4b;
    margin-bottom: 50px;
}
.page-lead_text{
    text-align: center;
    margin-bottom: 50px;
}

.section_title{
    font-size: 30px;
    margin-bottom: 35px;
}
.section_title span{
    display: block;
    font-size: 20px;
    color: #ff4b4b;
    margin-bottom: 35px;
}


/*----------------------------------------

top-message

----------------------------------------*/

.page-top-message .page-section_inner{
    display: flex;
    justify-content: space-between;
}
.message_box{
    width: 65%;
    text-align: justify;
}
.page-top-message .section_title{
    color: #ff4b4b;
}
.message_box span{
    display: block;
    margin: 30px 0 15px 0;
    font-size: 1.25rem;
    font-weight: 700;

}
.text_box--sig{
    margin-top: 25px;
    text-align: right;
    font-size: 20px;
}
.text_box--sig span{
    display: block;
    font-size: 13px;
}

.message_img{
    width: 30%;
}

/*----------------------------------------

work

----------------------------------------*/
.service-block,.work-info_box{
    display: flex;
    gap: 40px;
    text-align: justify;
}
.service-block+.work-info_box{
    margin-top: 50px;
}

.work-text_box,.work-img_box{
    box-sizing: border-box;
    width: calc(50% - 20px);
}


.work_title{
    display: flex;
    gap: 20px;
    align-items: center;
    font-size: 24px;
    color: #ff4b4b;
    margin-bottom: 55px;
}
.work_title span{
    display: block;
    font-size:50px;
    line-height: 1;
}
.work-img_box{
    border-radius: 20px;
    overflow: hidden;
}
.work-img_box img{
    height: 100%;
    min-height: 350px;
    object-fit: cover;
}

.work-info-card{
    box-sizing: border-box;
    display: flex;
    width: 100%;
    padding: 40px;
    border-radius: 20px;
    justify-content: center;
    align-items: center;
    gap: 50px;

}

.work-info-card h3{
    font-size: 24px;
    text-align: center;
    color: #ff4b4b;
}

.person_list li{
    position: relative;
    padding-left: 20px;
}
.person_list li::before{
    width: 13px;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background-color: #ff4b4b;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
}


/*----------------------------------------

gallery
----------------------------------------*/
.gallery_box{
}
.gallery_box+.gallery_box{
    margin-top: 100px;
}

.gallery_box .page_title{
    position: relative;
    padding-top: 20px;
    font-size: 24px;
    text-align: center;
    color: #78581b;
}

.gallery_list+.page_title{
    margin-top: 50px;
}

.gallery_box .page_title::before{
    width: 100%;
    height: 21px;
    top: 0;
    background-image: url('../img/gallery/line.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.gallery_box .page_title::after{
    width: 100%;
    height: 21px;
    background-image: url('../img/gallery/line.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transform: scaleY(-1);
}

.gallery_list{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;

}

.gallery_list li{
    border: 4px solid #775333;
    box-shadow: 3px 3px 3px 0px rgb(0, 0, 0, 0.25);
}

.gallery_list li img{
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}
.gallery_list li p{
    display: none;
    text-align: center;
}


/*----------------------------------------

interview

----------------------------------------*/
.interview_box{
    display: flex;
    gap: 50px;
    align-items: center;
}
.interview_box+.interview_box{
    margin-top: 100px;
}

.interview-img_box{
    width: 600px;
    height: 400px;
    border-radius: 10px;
    overflow: hidden;
}
.interview-img_box img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.interview-text_box{
    width: 350px;
}
.interview-text_box h3{
    font-size: 20px;
}

.entry_btn{
    position: relative;
    box-sizing: border-box;
    display: block;
    width: 100%;
    background: #FF8383;
    color: #ffffff;
    margin-top: 20px;
    padding: 5px 20px;
    border-radius: 21px;
}
.entry_btn::before{
    width: 18px;
    height: 18px;
    border-radius: 11px;
    background: url(../img/cmn/white_arr.svg) no-repeat;
    background-size: 18px;
    top: 50%;
    transform: translateY(-50%);
    right: 20px;
}

/*----------------------------------------

interview-個別

----------------------------------------*/
.staff-profile_box{
    padding-bottom: 100px;
    border-bottom: 1px solid #707070;
}
.c-pd:has(.staff-profile_box){
    padding-bottom: unset;
}
.staff-name_text{
    display: block;
    font-size: 30px;
}
.interview_catch{
    text-align: justify;
}
.interview-section_q-box{
    text-align: justify;
}
.interview-section_q-box+.interview-section_q-box{
    margin-top: 50px;
}

.interview-section_q-box h3{
    font-size: 20px;
    margin-bottom: 25px;
    letter-spacing: 0.15em;
}
.interview-section_q-box h3 span{
    display: inline-block;
    margin-right: 15px;
    font-size: 31px;
    line-height: 1;
    color: #ff4b4b;
}
.interview-section_q-box p{
    font-weight: normal;
    font-size: 18px;
}

/*----------------------------------------

benefits

----------------------------------------*/
.page-benefits .c-feature_list_title{
    width: 200px;
}

/*----------------------------------------

career

----------------------------------------*/


.plan_box{
    position: relative;
    box-sizing: border-box;
}
.plan_box::before{
    width: 50px;
    height: 90%;
    background: #ffd8d1;
    right: 50%;
    transform: translateX(50%);
    z-index: -1;
}

.plan_box_title{
    font-size: 24px;
    margin-bottom: 50px;
    padding-bottom: 10px;
    border-bottom: 2px solid #ababab;
    text-align: center;
}

.plan_list_item{
    box-sizing: border-box;
    max-width: 750px;
    margin: auto;
    padding: 20px;
    border-radius: 20px;
    background-color: #ffefed;
}
.plan_list_item+.plan_list_item{
    margin-top: 50px;
}

.plan_list_year{
    display: inline-block;
    font-size: 20px;
}
.career_icon{
    width: 40px;
    margin-left: 5px;
}

.plan_task_item{
    box-sizing: border-box;
    margin-top: 5px;
    padding: 10px;
    background-color: #ffffff;
    border-radius: 5px;
}

.plan_task-sub_list{
    margin-left: 10px;
}
.plan_task_sub_item{
    position: relative;
    padding-left: 25px;
}
.plan_task_sub_item::before{
    position: absolute;
    width: 15px;
    height: 2px;
    background-color: #ababab;
    top: 14px;
    left: 3px;
}

.plan_box-text{
    max-width: 750px;
    margin: auto;
    margin-top: 10px;
    text-align: right;
    font-size: 14px;
}
.plan_box-text .career_icon{
    width: 35px;
    margin-left: unset;    
}



/*----------------------------------------

data

----------------------------------------*/
.data_grid{
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    row-gap: 30px;
    column-gap: 35px;
    margin-bottom: 20px;
}
.data_card{
    grid-column: span 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 40px;
    background-color: #ffefed;
    border-radius: 20px;
    text-align: center;
}

.data_card.card_span-2{
    grid-column: span 4;
}
.data_card.card_span-1-5{
    grid-column: span 3; 
}
.data_card.card_span-full{
    grid-column: span 6;
}

.data_card_title{
    margin-bottom: 15px;
    font-size: 24px;
    line-height: 1.5;
}
.data_card_value_box{
    display: flex;
    justify-content: center;
}
.data_card_value{
    line-height: 1;
}
.data_card_title--sub{
    font-size: 20px;
    margin-bottom: 10px;
    line-height: 1.5;
}
.data_card_number{
    font-size: 75px;
}
.data_card_unit{
    font-size: 35px;
}
.data_card_value_box .data_card_value{
    padding: 0 25px;
}

.data_card_value_box .data_card_value + .data_card_value{
    border-left: 2px solid rgb(46, 46, 46, 0.3);;
}

.data_card_si{
    margin-top: 10px;
}

.stat_data{
    text-align: right;
}

/*----------------------------------------

faq

----------------------------------------*/
.faq_item {
    padding: 0 20px;
}
.faq_item+.faq_item{
    margin-top: 50px;
}
.faq_item dt{
    position: relative;
    padding-left: 50px;
    font-size: 20px;
}
.faq_item dt::before{
    width: 40px;
    height: 40px;
    content: 'Q';
    text-align: center;
    font-size: 25px;
    line-height: 40px;
    color: #ffffff;
    background-color: #ff4b4b;
    border-radius: 50%;
    top: 0;
    left: 0;
}
.faq_item dd{
    position: relative;
    margin-top: 25px;
    padding-left: 50px;
    font-size: 18px;
    font-weight: normal;
}
.faq_item dd::before{
    width: 40px;
    height: 40px;
    content: 'A';
    text-align: center;
    font-size: 25px;
    line-height: 40px;
    color: #ffffff;
    background-color: #FF8383;
    border-radius: 50%;
    top: -3px;
    left: 0;
}

/*----------------------------------------

access

----------------------------------------*/
.access_box{
    display: flex;
    gap: 50px;
}
.access-img_box{
    width: 50%;
    flex-shrink: 0;
}
.access-img_box img{
    width: 100%;
}
.access-text_box span{
    display: block;
    font-size: 18px;
}


.access-map_box{
    height: 450px;
    border-radius: 20px;
    overflow: hidden;
}

/*----------------------------------------

message

----------------------------------------*/
.message-block{
    display: flex;
    gap: 50px;
    justify-content: space-between;
}
.message-block+.message-block{
    margin-top: 50px;
}

.message-block_title{
    margin-bottom: 10px;
    font-size: 24px;
}
.message-img_box{
    width: 35%;
    flex-shrink: 0;
}
.message-img_box img{
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}
.message-img_box .text_box--sig{
    margin-top: 5px;
    font-size: 16px;
}

/*----------------------------------------

footer

----------------------------------------*/
.footer_outer{
    background-color: #FF8383;
}
.footer_outer.c-pd{
    padding-bottom: unset;
}
.footer_inner{
    box-sizing: border-box;
    max-width: 1040px;
    height: auto;
    margin: auto;
    padding: 0 20px;
}

.footer-top{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
}
.footer_logo img{
    height: 46px;
}
.footer_manei-group-site_box{
    display: flex;
    gap: 55px;
    padding: 25px;
    background-color: #ffffff;
    border-radius: 10px;
    align-items: center;
}
.footer_sns_list{
    display: flex;
    gap: 20px;
    align-items: center;
}

.footer-middle{
    margin-bottom: 40px;
}

.footer_bottom-bg{
    background-color: #ffffff;
    padding: 40px 0 64px 0;
}
.footer-bottom{
    display: flex;
    justify-content: space-between;
}
.footer-bottom_copy{
    opacity: 0.2;
}
.fotter_corporate_link{
   position: relative;
   padding-right: 30px; 
}
.fotter_corporate_link::before{
    width: 20px;
    height: 20px;
    background: url(../img/cmn/black_arr.svg);
    background-size: 20px;
    top: 50%;
    transform: translateY(-50%);
    right: 0px;
}

/*----------------------------------------

404

----------------------------------------*/
.page-404 .page-section_inner{
    text-align: center;
}
.e404_ttl{
    font-size: 60px;
    color: #ff4b4b;
}
.e404_txt{
    margin-bottom: 50px;
}
.e404_list{
    display: flex;
    gap: 50px;
    justify-content: center;
}
.e404_list_item_btn{
    box-sizing: border-box;
    display: flex;
    width: 100%;
    padding: 0 50px;
    padding-bottom: 10px;
    border-bottom: 1px solid #ff4b4b;
    justify-content: center;
    align-items: center;
}
.e404_list_item_btn::after{
    position: relative;
    width: 22px;
    height: 22px;
    border-radius: 11px;
    background: url(../img/cmn/pink_arr.svg) no-repeat;
    background-size: 22px;
    margin-left: 10px;

}
/*----------------------------------------

ホバーアニメーション

-----------------------------------------*/
@media (hover: hover){
    a{
        transition: all 0.3s ease;
    }
    a:hover{
        opacity: 0.6;
    }
}

/*----------------------------------------

レスポンシブ  1024px以下
-----------------------------------------*/
@media (max-width: 1024px){
    /* header-tb */
    .job_posting_box{
        position: fixed;
        height: 60px;
        left: 50%;
        transform: translateX(-50%);
        bottom: 34px;
        box-shadow: 0 0 10px 0 rgb(0, 0, 0, 0.16);
    }


    /* cmn-tb */
    .page-mv_title span{
        right: 20px;
    }

    .page-section_inner
    {
        padding: 0 44px;
    }
    .breadcrumbs_outer{
        padding: 5px 20px;
    }
    
    .c-feature_list_item{
        flex-direction: column;
        align-items: unset;
        padding: 20px;
    }
    .c-feature_list_text{
        width: 100%;
    }

    /* top-tb */
    .mv-top_flex-left{
        width: 50%;
    }
    .mv-top_text{
        width: 90%;
    }

    .top-section_inner
    {
        padding: 0 44px;
    }

    .top-about .c-btn-list-btn_list-flex{
        flex-wrap: wrap;
        gap: 20px;
    }
    .top-about .cmn_btn{
        padding-right: 80px;
    }


    /* work-tb */
    .service-block, .work-info_box{
        gap: 20px;
    }
    .work-text_box, .work-img_box,
    .work-info-card{
        text-align: justify;
    }

    /* interview-tb */
    .interview_box{
        gap: 25px;
        justify-content: center;
    }
    .interview-img_box{
        width: 500px;
    }
    .interview-img_box img{
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    /* interview-個別-tb */


    /* benefits-tb */
    
    
    /* career-tb */
    

    /* data-tb */
    .data_grid{
        row-gap: 20px;
        column-gap: 15px;
    }
    .data_card{
        padding: 25px;
    }


    /* message-tb */
    .message-block{
        gap: 25px;
    }


    /* fotter-tb */
    .footer_inner{
        padding: 0 44px;
    }
    
    .footer-top{
        flex-direction: column;
        gap: 15px;
        align-items: normal;
        margin-bottom: 20px;
    }
    .footer_manei-group-site_box{
        box-sizing: border-box;
        width: 100%;
        justify-content: center;
    }

    .c-nav_grid{
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        column-gap: 20px;
    }

    .footer_bottom-bg{
        padding-bottom: 120px;
    }
}

/*----------------------------------------

レスポンシブ  SPサイズ

-----------------------------------------*/
@media screen and (max-width: 767px){
    .br-sp { display:block; }
    .br-pc { display:none; }
    /* header-sp */
    .header_outer{
        height: 60px;
    }

    /*フレーム*/
    .header_frame-lr{
        width: 10px;
    }
    .header_frame-bottom{
        height: 10px;
    }
    .header_frame-lr:nth-child(1)::before{
        top: 60px;
        left: 9px;
    }
    .header_frame-lr:nth-child(2)::before{
        top: 59px;
        right: 10px;
    }
    .header_frame-bottom::before{
        top: -29px;
        left: 10px;
    }
    
    .header_frame-bottom::after{
        right: 9px;
    }


    .header_inner{
        padding: 0 30px;
    }

    .header_logo{
        width: 165px;
    }

    .nav_right{
        height: unset;
    }

    .job_posting_box{
        height: 45px;
    }
    .job_posting_item{
        width: 100px;
        padding: 0 36px 0 15px;
    }
    .job_posting_link::before{
        width: 16px;
        height: 16px;
        background-size: 16px;
        right: -24px;
    }

    .nav_btn{
        gap: 8px;
    }
    .nav_btn-text{
        font-size: 20px;
    }
    .nav_bar{
        width: 20px;
        height: 2px;
    }
    .nav_btn .nav_bar:first-child{
        margin-bottom: 8px;
    }

    /* cmn-sp */
    .c-nav{
        padding-bottom: 120px;
    }
    .c-nav_grid{
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }
    .c-nav-main-group{
        border-radius: 10px;
    }
    .c-nav-sub_link{
        font-size: 1rem;
    }

    .c-pd{
        padding: 60px 0;
    }

    .c-anchor{
        scroll-margin-top: 60px;
    }

    p,.text_box{
        text-align: justify;
    }

    .cmn_btn{
        width: 100%;
        font-size: 14px;
    }
    
    .c-btn-list-btn_list-flex{
        flex-direction: column;
        gap: 10px;
    }

    .c-tile-btn_list{
        flex-wrap: wrap;
        gap: 20px;
    }
    .c-tile_item{
        border-radius: 10px;
        width: 100%;
    }
    .top-business .c-tile_item:not(:nth-child(3)){
        width: calc((100% - 20px) / 2);
        
    }
    .c-tile_item-img{
        height: 120px;
    }
    .c-tile_item-name{
        padding: 8px;
        font-size: 16px;
    }

    .page-section_inner{
        padding: 0 30px;
    }

    /*----------------
      top-sp
    -----------------*/
    .mv-top_outer{
        margin-top: 0;
    }

    .mv-top_inner{
        padding: unset;
        flex-direction: column-reverse;
    }

    .mv-top_flex-left{
        box-sizing: border-box;
        width: 100%;
        padding: 0 30px;
    }
    .mv-top_text{
        width: 100%;
        font-size: 15px;
        letter-spacing: normal;
    }

    .top-mv_pic{
        width: 100%;
        margin-top: 60px;
    }
    .top-mv_pic img{
        display: block;
        width: 100%;
    }

    .top-section_inner{
        padding: 0 30px;
    }

    .cta_list{
        flex-direction: column;
        gap: 25px;
    }
    .cta_box{
        width: 100%;
    }
    .cta-icon_box img{
        max-height: 45px;
    }

    .top-about_title{
        font-size: 45px;
        line-height: 32px;
        bottom: -1px;
        right: 22px;
    }
    .top-about_textbox{
        padding: 25px;
        font-size: unset;
        border-radius: 10px;
    }

    .top-title{
        font-size: 24px;
        text-align: center;
        margin-bottom: 50px;
    }
    
    .top-title::before{
        font-size: 50px;
        top: 7px;
        line-height: 35px;
        left: 50%;
        transform: translateX(-50%);
    }

    .top-reason{
        background-position: unset;
    }
    .top-reason_list{
        width: 100%;
    }
    .top-reason_link{
        width: 100%;
    }

    .top-other-banner_box{
        flex-direction: column;
    }
    .top-other-banner{
        width: 100%;
        border-radius: 10px;
    }

    /*----------------
      下層共通
    -----------------*/
    .page-mv_outer{
        margin-top: 60px;
    }
    .page-mv_title{
        line-height: 1;
    }
    .page-mv_title span{
        top: unset;
        bottom: -45px;
        left: 20px;
        font-size: 18px;
    }
    .section_title{
        margin-bottom: 10px;
        font-size: 24px;
    }
    .section_title span{
        margin-bottom: unset;
    }
    .page_title{
        margin-bottom: 25px;
        font-size: 25px;
    }
    .page-lead_text{
        margin-bottom: 25px;
        text-align: justify;
    }

    /* philosophy-sp */
    .philosophy-nav_list{
        flex-direction: column;
    }
    .philosophy-nav_list a{
        width: 100%;
        aspect-ratio: unset;
        padding: 20px;
        padding-bottom: 50px;
        border-radius: 20px;
    }
    .philosophy-nav_list a::before{
        width: 35px;
        height: 20px;
        background-size: 20px;
        bottom: 20px;
    }
    .philosophy-nav_list a span{
        margin-top: 10px;
    }

    .page-philosophy .section_title{
        padding-top: 30px;
    }
    .page-philosophy .section_title::before{
        font-size: 50px;
    }
    .page-philosophy .text_box{
        text-align: justify;
    }

    /* top-message-sp */
    .page-top-message .page-section_inner{
        position: relative;
        flex-direction: column;
        gap: 50px;
    }
    .message_box{
        width: 100%;
    }
    .message_box span{
        font-size: 1rem;
    }
    .message_img{
        width: 100%;
        overflow: hidden;
    }

    /* work-sp */
    .service-block, .work-info_box{
        flex-direction: column;
    }
    .service-block+.work-info_box{
        margin-top: 30px;
    }
    .work-text_box, .work-img_box,
    .work-info-card{
        width: 100%;
    }

    .work_title{
        margin-bottom: 25px;
    }
    .work_title span{
        font-size: 35px;
    }

    .work-img_box{
        height: 200px;
        border-radius: 10px;
    }
    .work-img_box img{
        min-height: 200px;
        width: 100%;
    }

    .work-info-card{
        flex-direction: column;
        padding: 20px;
        border-radius: 10px;
        gap: 10px;
    }

    .person_list li::before{
        top: 13px;
    }


    /* interview-sp */
    .interview_box{
        flex-direction: column;
    }
    .interview-img_box{
        width: 100%;
        height: 240px;
    }
    .interview-text_box{
        width: 100%;
    }

    /* interview-個別-sp */
    .staff-profile_box{
        padding-bottom: 60px;   
    }
    .staff-profile_box .interview-text_box p{
        text-align: center;
    }
    .staff-name_text{
        display: inline-block;
        margin-right: 15px;
    }

    .interview-section_q-box h3{
        letter-spacing: 0.1em;
    }

    /* gallery */
    .gallery_box{
        flex-direction: column;
        gap: 0;
    }

    .gallery_box+.gallery_box{
        margin-top: 50px;
    }
    
    .gallery_box+.gallery_box::before{
        background-image: url('../img/gallery/line-sp.svg');
    }

    .gallery_box .page_title{
        width: 100%;
        font-size: 20px;
    }
        
    .gallery_list{
        grid-template-columns: repeat(2, 1fr);
    }
    
    /* career-sp */
    .plan_box{
        border-radius: 10px;
    }
    .plan_list_item+.plan_list_item{
        margin-top: 25px;
    }

    .plan_box_title,.plan_list_year{
        font-size: 18px;
    }
    
    .plan_task_sub_item::before{
        top: 12px;
    }

    .plan_box-text{
        font-size: 13px;
    }
    .plan_box-text .career_icon{
        width: 28px;
    }

    /* data-sp */
    .page-data .page-mv_title{
        font-size: 40px;
    }
    .data_grid{
        display: flex;
        flex-direction: column;
        gap: 25px;
    }
    .data_card_title,.data_card_si,
    .data_card_title--sub{
        text-align: center;
    }
    .data_card{
        border-radius: 10px;
    }
    .data_card_value_box{
        flex-direction: column;
    }
    .data_card_value_box .data_card_value{
        padding: 20px 0;
    }
    .data_card_value_box .data_card_value + .data_card_value{
        border-top: 2px solid rgb(46, 46, 46, 0.3);
        border-left: unset;
    }

    /* faq-sp */
    .faq_item{
        padding: unset;
    }
    .faq_item dt{
        padding-left: 40px;
        font-size: 18px;
        text-align: justify;
    }
    .faq_item dd{
        padding-left: 40px;
        text-align: justify;
    }
    .faq_item dt::before,
    .faq_item dd::before{
        width: 30px;
        height: 30px;
        line-height: 30px;
        font-size: 18px;
        top: 2px;
    }

    /* access */
    .access_box{
        flex-direction: column;
    }
    .access-img_box{
        width: 100%;
    }
    .access-text_box span{
        font-size: 16px;
    }
    
    .access-map_box{
        border-radius: 10px;
    }

    /* message */
    .message-block{
        flex-direction: column;
    }
    .message-block_title{
        margin-top: 25px;
    }
    .message_text_box,.message-img_box{
        width: 100%;
    }
    .message-img_box{
        position: relative;
    }
    .message-img_box img{
        width: 100%;
    }
    .message-img_box .text_box--sig{
        position: absolute;
        bottom: -5px;
        right: 5px;
        font-size: 14px;
        color: #ffffff;
    }

    /*----------------
      fotter
    -----------------*/
    .footer_inner{
        padding: 0 30px;
    }
    .footer-top{
        gap: 30px;
    }
    .footer_manei-group-site_box{
        flex-direction: column;
        gap: 18px;
    }
    .footer-middle .c-nav-main-group:not(.c-nav-full-link-only){
        display: none;
    }
    .footer_bottom-bg{
        padding-bottom: 100px;
    }

    /*----------------
      404
    -----------------*/
    .page-404 .page-section_inner{

    }
    .e404_ttl{
        font-size: 25px;
    }
    .e404_list{
        flex-direction: column;
        gap: 50px;
    }
    
    
}