/*採用情報見出し画像表示(6枚)
---------------------------------------------------------------------------*/

.recruit_hero{
    position:relative;
    height:calc(100vh - 100px);
    min-height:680px;
    overflow:hidden;
    background:#0b1830;
}

.recruit_hero::before{
    content:"";
    position:absolute;
    inset:-20%;
    background:radial-gradient(circle at 70% 30%,rgba(255,255,255,.12),transparent 60%);
    z-index:2;
    pointer-events:none;
}

.recruit_hero__background{
    position:absolute;
    inset:0;
    overflow:hidden;
    z-index:1;
}

.recruit_hero__grid{
    position:absolute;
    top:50%;
    left:50%;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    grid-template-rows:repeat(2,1fr);
    width:120%;
    height:120%;
    gap:0;
    transform:translate(-50%,-50%) rotate(-3deg) scale(1);
    transform-origin:center center;
}

.recruit_hero__item{
    position:relative;
    overflow:hidden;
    background:#0b1830;
    outline:1px solid #0b1830;
}

.recruit_hero__item::after{
    content:"";
    position:absolute;
    inset:0;
    background:#0b1830;
    mix-blend-mode:overlay;
    opacity:.2;
}

.recruit_hero__item img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    filter:brightness(.72) saturate(.90) contrast(1.05);
    transform:scale(1);
    transition:transform .6s ease,filter .4s ease;
}

.recruit_hero__item:hover img{
    transform:scale(1.04);
    filter:brightness(.82) saturate(1) contrast(1.08);
}

.recruit_hero__overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(11,24,48,.72) 0%,rgba(11,24,48,.40) 45%,rgba(11,24,48,.55) 100%);
    z-index:2;
}

.recruit_hero__inner{
    position:relative;
    z-index:5;
    max-width:1200px;
    width:100%;
    height:100%;
    margin:0 auto;
    display:flex;
    align-items:center;
    padding:0 20px;
}

.recruit_hero__content{
    width:100%;
    max-width:560px;
    color:#fff;
}

.recruit_hero__sub{
    margin-bottom:14px;
    font-size:13px;
    font-weight:700;
    letter-spacing:.3em;
    color:#fff;
}

.recruit_hero__title{
    margin-bottom:22px;
    font-size:clamp(34px,3.8vw,52px);
    line-height:1.4;
    font-weight:700;
    color:#fff;
    text-shadow:0 2px 10px rgba(0,0,0,.25);
    white-space:nowrap;
}

.recruit_hero__lead{
    max-width:540px;
    margin-bottom:0;
    font-size:15px;
    line-height:1.9;
    color:rgba(255,255,255,.92);
}

.recruit_hero__buttons{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
}


/* =========================
   Button
========================= */

.btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    width:320px;
    height:52px;
    background:#005bac;
    color:#fff;
    font-size:18px;
    font-weight:500;
    letter-spacing:.15em;
    line-height:1;
    margin-top:35px;
    transition:.3s ease;
    overflow:hidden;
}

.arrow{
    position:relative;
    display:inline-block;
    width:55px;
    height:1.5px;
    background:#fff;
    transition:transform .4s ease;
    flex-shrink:0;
}

.arrow::before{
    content:"";
    position:absolute;
    right:-3px;
    top:50%;
    width:8px;
    height:8px;
    background:#fff;
    clip-path:polygon(0 0,100% 100%,0 100%);
    transform:translateY(-89%);
}


/* =========================
   PC Hover Only
========================= */

@media (hover:hover) and (pointer:fine){

    .btn:hover .arrow{
        transform:translateX(8px);
    }

}


/* =========================
   Large PC
========================= */

@media screen and (min-width:1600px){

    .recruit_hero__grid{
        width:110%;
        height:110%;
    }

}


/* =========================
   Small PC
========================= */

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

    .recruit_hero{
        height:calc(100vh - 90px);
        min-height:620px;
    }

    .recruit_hero__grid{
        width:130%;
        height:120%;
        transform:translate(-50%,-50%) rotate(-2.5deg) scale(1);
    }

    .recruit_hero__content{
        max-width:500px;
    }

    .recruit_hero__sub{
        font-size:12px;
        margin-bottom:12px;
    }

    .recruit_hero__title{
        font-size:38px;
        line-height:1.4;
        margin-bottom:18px;
    }

    .recruit_hero__lead{
        font-size:14px;
        line-height:1.9;
    }

    .btn{
        width:180px;
        height:45px;
        font-size:12px;
        gap:16px;
        margin-top:30px;
    }

    .arrow{
        width:42px;
    }

    .arrow::before{
        width:7px;
        height:7px;
    }

}


/* =========================
   Tablet
========================= */

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

    .recruit_hero{
        height:620px;
        min-height:620px;
    }

    .recruit_hero__grid{
        grid-template-columns:repeat(2,1fr);
        grid-template-rows:repeat(3,1fr);
        width:145%;
        height:120%;
        transform:translate(-50%,-50%) rotate(-2deg) scale(1);
    }

    .recruit_hero__overlay{
        background:linear-gradient(180deg,rgba(11,24,48,.78),rgba(11,24,48,.58));
    }

    .recruit_hero__inner{
        justify-content:center;
        text-align:center;
        padding:0 24px;
    }

    .recruit_hero__content{
        max-width:100%;
        width:100%;
    }

    .recruit_hero__buttons{
        justify-content:center;
        width:100%;
    }

    .btn{
        width:280px;
        max-width:calc(100vw - 48px);
        height:42px;
        margin:25px auto 0;
        padding:0;
        gap:14px;
        font-size:11px;
    }

    .arrow{
        position:relative;
        right:auto;
        top:auto;
        width:32px;
        height:1.5px;
        transform:none;
    }

    .arrow::before{
        width:9px;
        height:9px;
    }

    .btn:hover .arrow{
        transform:none;
    }

}


/* =========================
   Small Smartphone
========================= */

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

    .recruit_hero{
        height:560px;
        min-height:560px;
    }

    .recruit_hero__grid{
        width:165%;
        height:115%;
    }

    .recruit_hero__inner{
        padding:0 20px;
    }

    .recruit_hero__sub{
        font-size:11px;
        letter-spacing:.2em;
        margin-bottom:10px;
    }

    .recruit_hero__title{
        font-size:23px;
        line-height:1.5;
        margin-bottom:14px;
    }

    .recruit_hero__lead{
        font-size:13px;
        line-height:1.8;
    }

    .recruit_hero__buttons{
        justify-content:center;
        gap:10px;
    }

    .btn{
        width:250px;
        max-width:calc(100vw - 40px);
        height:40px;
        margin:20px auto 0;
        padding:0;
        gap:12px;
        font-size:12px;
    }

    .arrow{
        width:28px;
    }

    .arrow::before{
        width:8px;
        height:8px;
    }

}

/*タカハシテクノを知る(メインページ)
---------------------------------------------------------------------------*/

.recruit_numbers{
    position:relative;
    padding:100px 20px;
    background:#f4f6f8;
    overflow:hidden;
}

.recruit_numbers::before,
.recruit_numbers::after{
    content:"";
    position:absolute;
    pointer-events:none;
    z-index:0;
}

.recruit_numbers::before{
    top:-120px;
    left:-80px;
    width:280px;
    height:280px;
    background:rgba(0,91,172,.07);
    clip-path:polygon(50% 0,100% 100%,0 100%);
    transform:rotate(-18deg);
}

.recruit_numbers::after{
    right:-100px;
    bottom:-120px;
    width:360px;
    height:360px;
    background:rgba(0,91,172,.055);
    clip-path:polygon(50% 0,100% 100%,0 100%);
    transform:rotate(22deg);
}

.recruit_numbers__inner{
    position:relative;
    z-index:2;
    max-width:1200px;
    margin:0 auto;
}

.recruit_numbers__heading{
    margin-bottom:55px;
    text-align:center;
}

.recruit_numbers__sub{
    margin-bottom:12px;
    color:#005bac;
    font-size:13px;
    font-weight:700;
    letter-spacing:.3em;
}

.recruit_numbers__title{
    margin:0;
    color:#222;
    font-size:36px;
    font-weight:700;
    line-height:1.4;
}

.recruit_numbers__lead{
    margin-top:15px;
    color:#666;
    font-size:14px;
    line-height:1.8;
}

.recruit_numbers__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}

.recruit_numbers__card{
    position:relative;
    min-width:0;
    padding:30px;
    background:#fff;
    overflow:hidden;
}

.recruit_numbers__label{
    position:relative;
    margin:0 0 25px;
    padding-bottom:12px;
    text-align:center;
    color:#222;
    font-size:20px;
    font-weight:700;
    line-height:1.4;
    white-space:nowrap;
}

.recruit_numbers__label::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:0;
    width:45px;
    height:2px;
    background:#005bac;
    transform:translateX(-50%);
}

.recruit_numbers__data{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:center;
    gap:20px;
}

.recruit_numbers__image{
    width:100%;
    aspect-ratio:4 / 3;
    overflow:hidden;
}

.recruit_numbers__image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
}

.recruit_numbers__value{
    min-width:0;
    margin:0;
    text-align:center;
    color:#005bac;
    font-size:42px;
    font-weight:700;
    line-height:1;
    white-space:nowrap;
}

.recruit_numbers__value span{
    margin-left:4px;
    font-size:18px;
    font-weight:500;
}

.recruit_numbers__value_number{
    min-width:0;
    margin:0;
    text-align:center;
    color:#005bac;
    font-size:45px;
    font-weight:700;
    line-height:1;
    white-space:nowrap;
}

.recruit_numbers__value_number span{
    margin-left:4px;
    font-size:18px;
    font-weight:500;
}

.recruit_numbers__value_number .is-female{
    color:#d9534f;
}

.recruit_numbers__value_number .is-female-value{
    margin-left:0;
    color:#d9534f;
    font-size:inherit;
    font-weight:inherit;
}

/* カード下部の説明文 */
.recruit_numbers__note{
    width:fit-content;
    margin:22px auto 0;
    color:#666;
    font-size:13px;
    font-weight:400;
    line-height:1.8;
    text-align:left;
}

.recruit_numbers__button{
    position:relative;
    z-index:2;
    display:flex;
    justify-content:center;
    margin-top:45px;
}


/* ==================================================
   1200px以下
   3カラムを維持しながら縮小
================================================== */

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

    .recruit_numbers{
        padding-left:30px;
        padding-right:30px;
    }

    .recruit_numbers__grid{
        gap:18px;
    }

    .recruit_numbers__card{
        padding:24px 20px;
    }

    .recruit_numbers__label{
        margin-bottom:20px;
        font-size:18px;
    }

    .recruit_numbers__data{
        gap:12px;
    }

    .recruit_numbers__value,
    .recruit_numbers__value_number{
        font-size:34px;
    }

    .recruit_numbers__value span,
    .recruit_numbers__value_number span{
        font-size:16px;
    }

    .recruit_numbers__note{
        margin-top:18px;
        font-size:12px;
        text-align:left;
    }

}


/* ==================================================
   1000px以下
   さらにカード内部を縮小
================================================== */

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

    .recruit_numbers__grid{
        gap:14px;
    }

    .recruit_numbers__card{
        padding:20px 15px;
    }

    .recruit_numbers__label{
        margin-bottom:17px;
        padding-bottom:9px;
        font-size:16px;
    }

    .recruit_numbers__label::after{
        width:35px;
        height:2px;
    }

    .recruit_numbers__data{
        gap:8px;
    }

    .recruit_numbers__value{
        font-size:29px;
    }

    .recruit_numbers__value_number{
        font-size:32px;
    }

    .recruit_numbers__value span,
    .recruit_numbers__value_number span{
        font-size:14px;
    }

    .recruit_numbers__note{
        margin-top:16px;
        font-size:12px;
        line-height:1.7;
        text-align:left;
    }

}


/* ==================================================
   850px以下
   768pxまで3カラムを維持
================================================== */

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

    .recruit_numbers{
        padding-left:20px;
        padding-right:20px;
    }

    .recruit_numbers__grid{
        gap:10px;
    }

    .recruit_numbers__card{
        padding:17px 10px;
    }

    .recruit_numbers__label{
        margin-bottom:14px;
        font-size:15px;
    }

    .recruit_numbers__data{
        gap:5px;
    }

    .recruit_numbers__value{
        font-size:25px;
    }

    .recruit_numbers__value_number{
        font-size:27px;
    }

    .recruit_numbers__value span,
    .recruit_numbers__value_number span{
        margin-left:2px;
        font-size:12px;
    }

    .recruit_numbers__note{
        margin-top:14px;
        font-size:11px;
        line-height:1.7;
        text-align:left;
    }

}


/* ==================================================
   768px以下
   1カラム
================================================== */

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

    .recruit_numbers{
        padding:75px 20px;
    }

    .recruit_numbers::before{
        top:-90px;
        left:-100px;
        width:220px;
        height:220px;
    }

    .recruit_numbers::after{
        right:-120px;
        bottom:-100px;
        width:280px;
        height:280px;
    }

    .recruit_numbers__heading{
        margin-bottom:40px;
    }

    .recruit_numbers__sub{
        font-size:12px;
    }

    .recruit_numbers__title{
        font-size:28px;
    }

    .recruit_numbers__lead{
        font-size:14px;
    }

    .recruit_numbers__grid{
        grid-template-columns:1fr;
        gap:18px;
    }

    .recruit_numbers__card{
        padding:25px 20px;
    }

    .recruit_numbers__label{
        margin-bottom:20px;
        padding-bottom:10px;
        font-size:18px;
    }

    .recruit_numbers__label::after{
        width:38px;
    }

    .recruit_numbers__data{
        grid-template-columns:minmax(0,1fr) minmax(0,1fr);
        gap:20px;
    }

    .recruit_numbers__value{
        font-size:34px;
    }

    .recruit_numbers__value_number{
        font-size:36px;
    }

    .recruit_numbers__value span,
    .recruit_numbers__value_number span{
        font-size:16px;
    }

    .recruit_numbers__note{
        margin-top:20px;
        font-size:13px;
        line-height:1.8;
        text-align:left;
    }

}


/* ==================================================
   480px以下
================================================== */

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

    .recruit_numbers{
        padding:65px 16px;
    }

    .recruit_numbers::before{
        top:-70px;
        left:-100px;
        width:180px;
        height:180px;
        transform:rotate(-22deg);
    }

    .recruit_numbers::after{
        right:-100px;
        bottom:-70px;
        width:220px;
        height:220px;
        transform:rotate(25deg);
    }

    .recruit_numbers__sub{
        font-size:11px;
    }

    .recruit_numbers__title{
        font-size:24px;
    }

    .recruit_numbers__lead{
        font-size:13px;
    }

    .recruit_numbers__card{
        padding:22px 16px;
    }

    .recruit_numbers__label{
        font-size:17px;
    }

    .recruit_numbers__data{
        gap:14px;
    }

    .recruit_numbers__value{
        font-size:29px;
    }

    .recruit_numbers__value_number{
        font-size:31px;
    }

    .recruit_numbers__value span,
    .recruit_numbers__value_number span{
        font-size:15px;
    }

    .recruit_numbers__note{
        margin-top:18px;
        font-size:12px;
        line-height:1.8;
        text-align:left;
    }

}

/*社員インタビュー(メインページ)
---------------------------------------------------------------------------*/

.recruit_interview{
    position:relative;
    padding:110px 20px;
    background:#fff;
    overflow:hidden;
}

.recruit_interview__inner{
    max-width:1400px;
    margin:0 auto;
}

.recruit_interview__heading{
    margin-bottom:60px;
    text-align:center;
}

.recruit_interview__sub{
    margin-bottom:12px;
    color:#005bac;
    font-size:13px;
    font-weight:700;
    letter-spacing:.3em;
}

.recruit_interview__title{
    margin:0;
    color:#222;
    font-size:36px;
    font-weight:700;
    line-height:1.4;
}

.recruit_interview__lead{
    margin-top:15px;
    color:#666;
    font-size:14px;
    line-height:1.8;
}

.recruit_interview__slider{
    position:relative;
    display:flex;
    align-items:center;
}

.recruit_interview__viewport{
    width:100%;
    overflow:hidden;
}

.recruit_interview__track{
    display:flex;
    align-items:stretch;
    gap:24px;
    transition:transform .7s cubic-bezier(.22,.61,.36,1);
    will-change:transform;
}

.recruit_interview__card{
    flex:0 0 calc((100% - 48px) / 3);
    min-width:0;
    transition:
        transform .7s ease,
        opacity .7s ease;
}

.recruit_interview__link{
    display:block;
    height:100%;
    background:#fff;
    color:#222;
    text-decoration:none;
    box-shadow:0 8px 30px rgba(0,0,0,.08);
    transition:
        box-shadow .4s ease,
        transform .4s ease;
}

.recruit_interview__image{
    width:100%;
    aspect-ratio:4 / 3;
    overflow:hidden;
    background:#e9edf1;
}

.recruit_interview__image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s ease;
}

.recruit_interview__body{
    padding:25px 28px 30px;
}

.recruit_interview__department{
    display:inline-block;
    margin:0 0 15px;
    padding:5px 13px;
    border:1px solid #005bac;
    color:#005bac;
    font-size:12px;
    font-weight:700;
    line-height:1;
}

.recruit_interview__name{
    margin:0;
    color:#222;
    font-size:27px;
    font-weight:700;
    line-height:1.3;
}

.recruit_interview__years{
    margin:8px 0 18px;
    color:#555;
    font-size:13px;
}

.recruit_interview__years strong{
    color:#005bac;
    font-size:23px;
}

.recruit_interview__message{
    margin:0;
    color:#555;
    font-size:14px;
    line-height:1.9;
}

.recruit_interview__arrow{
    position:absolute;
    top:50%;
    z-index:10;
    display:flex;
    align-items:center;
    justify-content:center;
    width:52px;
    height:52px;
    padding:0;
    border:1px solid #d5dce3;
    border-radius:50%;
    background:#fff;
    cursor:pointer;
    transform:translateY(-50%);
    transition:
        background .3s ease,
        border-color .3s ease;
}

.recruit_interview__arrow--prev{
    left:-26px;
}

.recruit_interview__arrow--next{
    right:-26px;
}

.recruit_interview__arrow span{
    position:relative;
    display:block;
    width:12px;
    height:12px;
    border-top:1.5px solid #222;
    border-right:1.5px solid #222;
}

.recruit_interview__arrow--prev span{
    transform:rotate(-135deg);
    left:3px;
}

.recruit_interview__arrow--next span{
    transform:rotate(45deg);
    right:3px;
}

/* ==================================================
   PC Hover
================================================== */

@media (hover:hover) and (pointer:fine){

    .recruit_interview__link:hover{
        transform:translateY(-5px);
        box-shadow:0 14px 38px rgba(0,0,0,.12);
    }

    .recruit_interview__link:hover .recruit_interview__image img{
        transform:scale(1.04);
    }

    .recruit_interview__arrow:hover{
        background:#005bac;
        border-color:#005bac;
    }

    .recruit_interview__arrow:hover span{
        border-color:#fff;
    }

}


/* ==================================================
   1200px以下
================================================== */

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

    .recruit_interview{
        padding-left:50px;
        padding-right:50px;
    }

    .recruit_interview__track{
        gap:18px;
    }

    .recruit_interview__card{
        flex-basis:calc((100% - 36px) / 3);
    }

    .recruit_interview__body{
        padding:22px 20px 25px;
    }

    .recruit_interview__name{
        font-size:24px;
    }

    .recruit_interview__message{
        font-size:13px;
    }

    .recruit_interview__arrow--prev{
        left:-25px;
    }

    .recruit_interview__arrow--next{
        right:-25px;
    }

}


/* ==================================================
   1024px以下
================================================== */

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

    .recruit_interview{
        padding-left:40px;
        padding-right:40px;
    }

    .recruit_interview__card{
        flex-basis:calc((100% - 24px) / 3);
    }

    .recruit_interview__track{
        gap:12px;
    }

    .recruit_interview__body{
        padding:20px 16px 22px;
    }

    .recruit_interview__department{
        font-size:11px;
    }

    .recruit_interview__name{
        font-size:21px;
    }

    .recruit_interview__years{
        font-size:12px;
    }

    .recruit_interview__years strong{
        font-size:20px;
    }

    .recruit_interview__message{
        font-size:12px;
        line-height:1.7;
    }

    .recruit_interview__arrow{
        width:46px;
        height:46px;
    }

    .recruit_interview__arrow--prev{
        left:-23px;
    }

    .recruit_interview__arrow--next{
        right:-23px;
    }

}


/* ==================================================
   768px以下
================================================== */

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

    .recruit_interview{
        padding:80px 0;
    }

    .recruit_interview__heading{
        padding:0 20px;
        margin-bottom:40px;
    }

    .recruit_interview__sub{
        font-size:12px;
    }

    .recruit_interview__title{
        font-size:28px;
    }

    .recruit_interview__lead{
        font-size:13px;
    }

    .recruit_interview__viewport{
        overflow:hidden;
        padding:0 12%;
    }

    .recruit_interview__track{
        gap:16px;
    }

    .recruit_interview__card{
        flex:0 0 100%;
    }

    .recruit_interview__body{
        padding:22px 22px 25px;
    }

    .recruit_interview__department{
        margin-bottom:13px;
    }

    .recruit_interview__name{
        font-size:23px;
    }

    .recruit_interview__message{
        font-size:13px;
        line-height:1.8;
    }

    .recruit_interview__arrow{
        width:42px;
        height:42px;
    }

    .recruit_interview__arrow--prev{
        left:18px;
    }

    .recruit_interview__arrow--next{
        right:18px;
    }

}


/* ==================================================
   480px以下
================================================== */

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

    .recruit_interview{
        padding:65px 0;
    }

    .recruit_interview__heading{
        padding:0 16px;
        margin-bottom:35px;
    }

    .recruit_interview__sub{
        font-size:11px;
    }

    .recruit_interview__title{
        font-size:24px;
    }

    .recruit_interview__lead{
        font-size:12px;
    }

    .recruit_interview__viewport{
        padding:0 9%;
    }

    .recruit_interview__track{
        gap:12px;
    }

    .recruit_interview__body{
        padding:20px 18px 22px;
    }

    .recruit_interview__department{
        padding:5px 11px;
        font-size:10px;
    }

    .recruit_interview__name{
        font-size:21px;
    }

    .recruit_interview__years{
        margin:7px 0 15px;
        font-size:11px;
    }

    .recruit_interview__years strong{
        font-size:19px;
    }

    .recruit_interview__message{
        font-size:12px;
    }

    .recruit_interview__arrow{
        width:38px;
        height:38px;
    }

    .recruit_interview__arrow--prev{
        left:8px;
    }

    .recruit_interview__arrow--next{
        right:8px;
    }

}

/*仕事を知る(個人ページ)
---------------------------------------------------------------------------*/

.recruit_interview_detail{
    position:relative;
    color:#222;
    background:#fff;
}

.recruit_interview_detail__inner{
    width:100%;
    max-width:1200px;
    margin:0 auto;
}

.recruit_interview_detail__hero{
    position:relative;
    overflow:hidden;
    padding:110px 20px 90px;
    background:#fff;
}

.recruit_interview_detail__hero::before{
    content:"";
    position:absolute;
    top:-170px;
    right:-110px;
    width:420px;
    height:420px;
    border:1px solid rgba(0,75,141,.08);
    transform:rotate(30deg);
    pointer-events:none;
}

.recruit_interview_detail__hero::after{
    content:"";
    position:absolute;
    bottom:-170px;
    left:-120px;
    width:400px;
    height:400px;
    background:rgba(0,91,172,.025);
    clip-path:polygon(50% 0,100% 100%,0 100%);
    transform:rotate(-18deg);
    pointer-events:none;
}

.recruit_interview_detail__sub{
    position:relative;
    z-index:2;
    margin:0 0 45px;
    color:#005bac;
    font-size:13px;
    font-weight:700;
    letter-spacing:.3em;
    text-align:center;
}

.recruit_interview_detail__profile{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
    gap:70px;
    align-items:end;
}

.recruit_interview_detail__image{
    width:100%;
    overflow:hidden;
    aspect-ratio:4 / 3;
    background:#e4e9ee;
}

.recruit_interview_detail__image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.recruit_interview_detail__profile-info{
    padding-bottom:20px;
}

.recruit_interview_detail__department{
    display:inline-block;
    margin:0 0 18px;
    padding:7px 14px;
    background:#005bac;
    color:#fff;
    font-size:11px;
    font-weight:700;
    letter-spacing:.08em;
}

.recruit_interview_detail__name{
    margin:0 0 8px;
    color:#222;
    font-size:54px;
    line-height:1.1;
    font-weight:700;
    letter-spacing:.05em;
}

.recruit_interview_detail__years{
    margin:0;
    color:#666;
    font-size:14px;
}

.recruit_interview_detail__years strong{
    margin-right:4px;
    color:#005bac;
    font-size:27px;
}

.recruit_interview_detail__content{
    padding:100px 20px 120px;
}

.recruit_interview_detail__heading{
    margin-bottom:55px;
}

.recruit_interview_detail__heading-en{
    margin:0 0 10px;
    color:#005bac;
    font-size:11px;
    font-weight:700;
    letter-spacing:.25em;
}

.recruit_interview_detail__heading h2{
    margin:0;
    color:#222;
    font-size:34px;
    line-height:1.4;
    font-weight:700;
}

.recruit_interview_detail__qa{
    border-top:1px solid #d9dde2;
}

.recruit_interview_detail__qa-item{
    padding:40px 0;
    border-bottom:1px solid #d9dde2;
}

.recruit_interview_detail__qa-question{
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    gap:18px;
    align-items:start;
    margin-bottom:25px;
}

.recruit_interview_detail__qa-question span,
.recruit_interview_detail__qa-answer span{
    display:flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    font-size:14px;
    font-weight:700;
}

.recruit_interview_detail__qa-question span{
    background:#005bac;
    color:#fff;
}

.recruit_interview_detail__qa-question h3{
    margin:0;
    padding-top:5px;
    color:#222;
    font-size:22px;
    line-height:1.6;
    font-weight:700;
}

.recruit_interview_detail__qa-answer{
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    gap:18px;
    align-items:start;
}

.recruit_interview_detail__qa-answer span{
    border:1px solid #005bac;
    background:#fff;
    color:#005bac;
}

.recruit_interview_detail__qa-answer p{
    margin:3px 0 0;
    color:#555;
    font-size:15px;
    line-height:2;
}

/* ==================================================
   1024px以下
================================================== */

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

    .recruit_interview_detail__hero{
        padding:90px 20px 75px;
    }

    .recruit_interview_detail__profile{
        gap:45px;
    }

    .recruit_interview_detail__name{
        font-size:44px;
    }

    .recruit_interview_detail__content{
        padding:80px 20px 100px;
    }

    .recruit_interview_detail__heading h2{
        font-size:31px;
    }

}

/* ==================================================
   768px以下
================================================== */

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

    .recruit_interview_detail__hero{
        padding:70px 20px 60px;
    }

    .recruit_interview_detail__sub{
        margin-bottom:30px;
        font-size:11px;
    }

    .recruit_interview_detail__profile{
        display:flex;
        flex-direction:column;
        gap:25px;
        align-items:stretch;
    }

    .recruit_interview_detail__image{
        width:100%;
        aspect-ratio:4 / 3;
    }

    .recruit_interview_detail__profile-info{
        padding:0;
        text-align:center;
    }

    .recruit_interview_detail__department{
        margin-bottom:12px;
        font-size:10px;
    }

    .recruit_interview_detail__name{
        margin-bottom:7px;
        font-size:38px;
    }

    .recruit_interview_detail__years{
        font-size:13px;
    }

    .recruit_interview_detail__years strong{
        font-size:23px;
    }

    .recruit_interview_detail__content{
        padding:70px 20px 80px;
    }

    .recruit_interview_detail__heading{
        margin-bottom:35px;
        text-align:center;
    }

    .recruit_interview_detail__heading h2{
        font-size:28px;
    }

    .recruit_interview_detail__qa-item{
        padding:30px 0;
    }

    .recruit_interview_detail__qa-question{
        grid-template-columns:40px minmax(0,1fr);
        gap:13px;
        margin-bottom:20px;
    }

    .recruit_interview_detail__qa-question span,
    .recruit_interview_detail__qa-answer span{
        width:34px;
        height:34px;
        font-size:12px;
    }

    .recruit_interview_detail__qa-question h3{
        padding-top:3px;
        font-size:18px;
        line-height:1.6;
    }

    .recruit_interview_detail__qa-answer{
        grid-template-columns:40px minmax(0,1fr);
        gap:13px;
    }

    .recruit_interview_detail__qa-answer p{
        margin:1px 0 0;
        font-size:14px;
        line-height:1.9;
    }

}

/* ==================================================
   480px以下
================================================== */

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

    .recruit_interview_detail__hero{
        padding:60px 16px 50px;
    }

    .recruit_interview_detail__hero::before{
        width:250px;
        height:250px;
        right:-100px;
    }

    .recruit_interview_detail__hero::after{
        width:260px;
        height:260px;
        left:-100px;
    }

    .recruit_interview_detail__sub{
        margin-bottom:25px;
        font-size:10px;
    }

    .recruit_interview_detail__profile{
        gap:20px;
    }

    .recruit_interview_detail__name{
        font-size:32px;
    }

    .recruit_interview_detail__years{
        font-size:12px;
    }

    .recruit_interview_detail__years strong{
        font-size:21px;
    }

    .recruit_interview_detail__content{
        padding:60px 16px 70px;
    }

    .recruit_interview_detail__heading{
        margin-bottom:30px;
    }

    .recruit_interview_detail__heading-en{
        font-size:10px;
    }

    .recruit_interview_detail__heading h2{
        font-size:25px;
    }

    .recruit_interview_detail__qa-item{
        padding:25px 0;
    }

    .recruit_interview_detail__qa-question{
        grid-template-columns:34px minmax(0,1fr);
        gap:10px;
        margin-bottom:17px;
    }

    .recruit_interview_detail__qa-question span,
    .recruit_interview_detail__qa-answer span{
        width:32px;
        height:32px;
        font-size:11px;
    }

    .recruit_interview_detail__qa-question h3{
        padding-top:2px;
        font-size:16px;
        line-height:1.6;
    }

    .recruit_interview_detail__qa-answer{
        grid-template-columns:34px minmax(0,1fr);
        gap:10px;
    }

    .recruit_interview_detail__qa-answer p{
        margin:1px 0 0;
        font-size:13px;
        line-height:1.8;
    }

}

/*1日の仕事の流れ(メインページ)
---------------------------------------------------------------------------*/

.recruit_work{
    position:relative;
    overflow:hidden;
    padding:110px 20px;
    background:#f4f6f8;
    color:#222;
}

/* ==================================================
   背景三角形
================================================== */

.recruit_work::before{
    content:"";
    position:absolute;
    top:-150px;
    right:-80px;
    width:360px;
    height:360px;
    background:rgba(0,75,141,.035);
    clip-path:polygon(50% 0,100% 100%,0 100%);
    transform:rotate(18deg);
    pointer-events:none;
}

.recruit_work::after{
    content:"";
    position:absolute;
    bottom:-130px;
    left:-100px;
    width:320px;
    height:320px;
    border:1px solid rgba(0,75,141,.08);
    clip-path:polygon(50% 0,100% 100%,0 100%);
    transform:rotate(-22deg);
    pointer-events:none;
}

/* ==================================================
   コンテンツ
================================================== */

.recruit_work__inner{
    position:relative;
    z-index:2;
    max-width:1200px;
    margin:0 auto;
}

/* ==================================================
   追加装飾
================================================== */

.recruit_work__inner::before{
    content:"";
    position:absolute;
    top:80px;
    left:-90px;
    width:110px;
    height:110px;
    border:1px solid rgba(0,75,141,.09);
    clip-path:polygon(50% 0,100% 100%,0 100%);
    transform:rotate(35deg);
    pointer-events:none;
}

.recruit_work__inner::after{
    content:"";
    position:absolute;
    top:20px;
    right:80px;
    width:70px;
    height:70px;
    background:rgba(0,110,182,.035);
    clip-path:polygon(50% 0,100% 100%,0 100%);
    transform:rotate(-12deg);
    pointer-events:none;
}

/* ==================================================
   見出し
================================================== */

.recruit_work__heading{
    position:relative;
    z-index:3;
    margin-bottom:70px;
    text-align:center;
}

.recruit_work__sub{
    margin:0 0 16px;
    color:#004b8d;
    font-size:13px;
    font-weight:700;
    letter-spacing:.3em;
}

.recruit_work__title{
    margin:0 0 18px;
    color:#222;
    font-size:clamp(32px,4vw,48px);
    line-height:1.3;
    font-weight:700;
    letter-spacing:.08em;
}

.recruit_work__lead{
    margin:0;
    color:#555;
    font-size:15px;
    line-height:2;
}

/* ==================================================
   職種
================================================== */

.recruit_work__job{
    position:relative;
    z-index:3;
    padding:55px 60px 50px;
    background:#fff;
    box-shadow:0 10px 35px rgba(0,0,0,.05);
}

/* ==================================================
   職種見出し
================================================== */

.recruit_work__job-heading{
    margin-bottom:55px;
    text-align:center;
}

.recruit_work__job-en{
    margin:0 0 10px;
    color:#004b8d;
    font-size:11px;
    font-weight:700;
    letter-spacing:.25em;
}

.recruit_work__job-title{
    margin:0 0 14px;
    color:#222;
    font-size:30px;
    line-height:1.4;
    font-weight:700;
    letter-spacing:.06em;
}

.recruit_work__job-text{
    margin:0;
    color:#555;
    font-size:14px;
    line-height:1.8;
}

/* ==================================================
   仕事の流れ
================================================== */

.recruit_work__flow{
    position:relative;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    margin:0 auto;
}

/* 横ライン */

.recruit_work__flow::before{
    content:"";
    position:absolute;
    top:43px;
    left:12.5%;
    right:12.5%;
    height:1px;
    background:#cfd5db;
}

/* ==================================================
   ステップ
================================================== */

.recruit_work__step{
    position:relative;
    min-width:0;
    text-align:center;
}

/* ==================================================
   時間
================================================== */

.recruit_work__time{
    position:relative;
    z-index:2;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:32px;
    padding:0 14px;
    background:#004b8d;
    color:#fff;
    font-size:13px;
    font-weight:700;
    letter-spacing:.04em;
}

/* ==================================================
   ドット
================================================== */

.recruit_work__dot{
    position:relative;
    z-index:3;
    width:10px;
    height:10px;
    margin:7px auto 25px;
    border:2px solid #004b8d;
    background:#fff;
    transform:rotate(45deg);
}

/* ==================================================
   内容
================================================== */

.recruit_work__step-content{
    padding:0 15px;
}

.recruit_work__step-content h4{
    margin:0 0 12px;
    color:#222;
    font-size:17px;
    line-height:1.5;
    font-weight:700;
}

.recruit_work__step-content p{
    margin:0;
    color:#666;
    font-size:13px;
    line-height:1.8;
}

/* ==================================================
   詳細ボタン
================================================== */

.recruit_work__button-wrap{
    display:flex;
    justify-content:center;
    margin-top:50px;
}

.recruit_work__button{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:28px;
    width:300px;
    height:52px;
    border:1px solid #004b8d;
    background:#fff;
    color:#004b8d;
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    letter-spacing:.08em;
    transition:.3s ease;
}

.recruit_work__arrow{
    display:inline-block;
    font-size:18px;
    line-height:1;
    transition:transform .35s ease;
}

/* ==================================================
   PC Hover
================================================== */

@media (hover:hover) and (pointer:fine){

    .recruit_work__button:hover{
        background:#004b8d;
        color:#fff;
    }

    .recruit_work__button:hover .recruit_work__arrow{
        transform:translateX(7px);
    }

}

/* ==================================================
   小型PC
================================================== */

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

    .recruit_work{
        padding:90px 20px;
    }

    .recruit_work::before{
        width:280px;
        height:280px;
        right:-100px;
    }

    .recruit_work::after{
        width:250px;
        height:250px;
        left:-100px;
    }

    .recruit_work__job{
        padding:50px 35px 45px;
    }

    .recruit_work__flow::before{
        left:10%;
        right:10%;
    }

    .recruit_work__step-content{
        padding:0 8px;
    }

    .recruit_work__step-content h4{
        font-size:15px;
    }

    .recruit_work__step-content p{
        font-size:12px;
    }

}

/* ==================================================
   タブレット
================================================== */

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

    .recruit_work{
        padding:75px 20px;
    }

    .recruit_work::before{
        top:-80px;
        right:-120px;
        width:220px;
        height:220px;
    }

    .recruit_work::after{
        bottom:-90px;
        left:-110px;
        width:220px;
        height:220px;
    }

    .recruit_work__inner::before{
        left:-50px;
        width:80px;
        height:80px;
    }

    .recruit_work__inner::after{
        right:20px;
        width:55px;
        height:55px;
    }

    .recruit_work__heading{
        margin-bottom:50px;
    }

    .recruit_work__title{
        font-size:32px;
    }

    .recruit_work__lead{
        font-size:14px;
    }

    .recruit_work__job{
        padding:40px 24px;
    }

    .recruit_work__job-heading{
        margin-bottom:40px;
    }

    .recruit_work__job-title{
        font-size:27px;
    }

    .recruit_work__flow{
        grid-template-columns:1fr 1fr;
        row-gap:40px;
    }

    .recruit_work__flow::before{
        display:none;
    }

    .recruit_work__step-content{
        padding:0 10px;
    }

    .recruit_work__button-wrap{
        margin-top:40px;
    }

}

/* ==================================================
   スマホ
================================================== */

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

    .recruit_work{
        padding:65px 16px;
    }

    .recruit_work::before{
        top:-70px;
        right:-120px;
        width:190px;
        height:190px;
    }

    .recruit_work::after{
        bottom:-70px;
        left:-100px;
        width:180px;
        height:180px;
    }

    .recruit_work__inner::before{
        display:none;
    }

    .recruit_work__inner::after{
        top:0;
        right:10px;
        width:45px;
        height:45px;
    }

    .recruit_work__heading{
        margin-bottom:40px;
    }

    .recruit_work__sub{
        font-size:11px;
    }

    .recruit_work__title{
        font-size:28px;
    }

    .recruit_work__lead{
        font-size:13px;
        line-height:1.8;
    }

    .recruit_work__job{
        padding:35px 18px;
    }

    .recruit_work__job-heading{
        margin-bottom:35px;
    }

    .recruit_work__job-en{
        font-size:10px;
    }

    .recruit_work__job-title{
        font-size:24px;
    }

    .recruit_work__job-text{
        font-size:13px;
    }

    .recruit_work__flow{
        grid-template-columns:1fr;
        row-gap:28px;
    }

    .recruit_work__step{
        display:grid;
        grid-template-columns:70px 1fr;
        column-gap:15px;
        text-align:left;
        align-items:start;
    }

    .recruit_work__time{
        grid-column:1;
        grid-row:1;
        width:70px;
        height:30px;
        padding:0;
        font-size:12px;
    }

    .recruit_work__dot{
        display:none;
    }

    .recruit_work__step-content{
        grid-column:2;
        grid-row:1;
        padding:0;
    }

    .recruit_work__step-content h4{
        margin:0 0 6px;
        font-size:15px;
    }

    .recruit_work__step-content p{
        font-size:12px;
        line-height:1.7;
    }

    .recruit_work__button-wrap{
        margin-top:35px;
    }

    .recruit_work__button{
        width:100%;
        height:48px;
        font-size:12px;
        gap:20px;
    }

}

/*1日の仕事の流れ(詳細ページ)
---------------------------------------------------------------------------*/

/* =========================
   1日の仕事の流れ
========================= */

.recruit_schedule{
    width:100%;
    max-width:1100px;
    margin:0 auto;
}

.recruit_schedule__title{
    margin:0 0 55px;
    color:#222;
    font-size:30px;
    font-weight:700;
    line-height:1.5;
    text-align:center;
}

.recruit_schedule__list{
    width:100%;
}

.recruit_schedule__item{
    display:grid;
    grid-template-columns:130px minmax(0,1fr);
    gap:45px;
    align-items:start;
    margin:0;
    padding:0 0 45px;
}

.recruit_schedule__time{
    padding-top:24px;
    text-align:right;
}

.recruit_schedule__time span{
    display:inline-block;
    color:#005bac;
    font-size:26px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:.02em;
    white-space:nowrap;
}

.recruit_schedule__body{
    min-width:0;
}

.recruit_schedule__card{
    overflow:hidden;
    background:#fff;
    border:1px solid #dfe4e8;
    box-sizing:border-box;
}

.recruit_schedule__card img{
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:16 / 7;
    object-fit:cover;
}

.recruit_schedule__card_text{
    padding:25px 30px 27px;
}

.recruit_schedule__card h3{
    margin:0 0 10px;
    color:#222;
    font-size:21px;
    font-weight:700;
    line-height:1.5;
}

.recruit_schedule__card p{
    margin:0;
    color:#666;
    font-size:14px;
    line-height:1.9;
}

/* 画像がないカード */

.recruit_schedule__card:not(:has(img)){
    padding:25px 30px 27px;
}

.recruit_schedule__card:not(:has(img)) h3{
    margin-bottom:8px;
}

/* =========================
   休憩
========================= */

.recruit_schedule__break{
    display:flex;
    align-items:center;
    gap:25px;
    margin:0 0 45px 175px;
    padding:15px 25px;
    background:#f4f6f8;
    border-top:1px solid #e1e5e8;
    border-bottom:1px solid #e1e5e8;
    box-sizing:border-box;
}

.recruit_schedule__break_label{
    color:#555;
    font-size:13px;
    font-weight:700;
    line-height:1.5;
    letter-spacing:.08em;
}

.recruit_schedule__break_time{
    color:#666;
    font-size:14px;
    font-weight:600;
    line-height:1.5;
}

/* =========================
   最後の項目
========================= */

.recruit_schedule__item--last{
    padding-bottom:0;
}

/* =========================
   1024px以下
========================= */

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

    .recruit_schedule{
        max-width:760px;
    }

    .recruit_schedule__title{
        margin-bottom:45px;
        font-size:28px;
    }

    .recruit_schedule__item{
        grid-template-columns:105px minmax(0,1fr);
        gap:30px;
        padding-bottom:40px;
    }

    .recruit_schedule__time{
        padding-top:20px;
    }

    .recruit_schedule__time span{
        font-size:23px;
    }

    .recruit_schedule__card img{
        aspect-ratio:16 / 8;
    }

    .recruit_schedule__card_text{
        padding:22px 25px 24px;
    }

    .recruit_schedule__card h3{
        font-size:20px;
    }

    .recruit_schedule__card p{
        font-size:14px;
        line-height:1.85;
    }

    .recruit_schedule__card:not(:has(img)){
        padding:22px 25px 24px;
    }

    .recruit_schedule__break{
        margin:0 0 40px 135px;
    }
}

/* =========================
   768px以下
========================= */

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

    .recruit_schedule{
        max-width:none;
    }

    .recruit_schedule__title{
        margin-bottom:38px;
        font-size:24px;
    }

    .recruit_schedule__item{
        display:block;
        padding-bottom:35px;
    }

    .recruit_schedule__time{
        padding:0;
        margin:0 0 10px;
        text-align:left;
    }

    .recruit_schedule__time span{
        font-size:22px;
    }

    .recruit_schedule__card{
        width:100%;
    }

    .recruit_schedule__card img{
        aspect-ratio:16 / 9;
    }

    .recruit_schedule__card_text{
        padding:20px 20px 22px;
    }

    .recruit_schedule__card h3{
        margin-bottom:8px;
        font-size:18px;
    }

    .recruit_schedule__card p{
        font-size:13px;
        line-height:1.85;
    }

    .recruit_schedule__card:not(:has(img)){
        padding:20px 20px 22px;
    }

    .recruit_schedule__break{
        display:block;
        margin:0 0 35px;
        padding:14px 18px;
    }

    .recruit_schedule__break_label{
        margin-bottom:3px;
        font-size:11px;
    }

    .recruit_schedule__break_time{
        font-size:14px;
    }
}

/* =========================
   480px以下
========================= */

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

    .recruit_schedule__title{
        margin-bottom:32px;
        font-size:21px;
    }

    .recruit_schedule__item{
        padding-bottom:30px;
    }

    .recruit_schedule__time{
        margin-bottom:8px;
    }

    .recruit_schedule__time span{
        font-size:20px;
    }

    .recruit_schedule__card_text{
        padding:17px 16px 19px;
    }

    .recruit_schedule__card h3{
        font-size:17px;
    }

    .recruit_schedule__card p{
        font-size:12px;
        line-height:1.8;
    }

    .recruit_schedule__card:not(:has(img)){
        padding:17px 16px 19px;
    }

    .recruit_schedule__break{
        margin-bottom:30px;
        padding:13px 15px;
    }

    .recruit_schedule__break_label{
        font-size:10px;
    }

    .recruit_schedule__break_time{
        font-size:13px;
    }
}

/*募集要項CTA(メインページ)
---------------------------------------------------------------------------*/

.recruit_cta{
    position:relative;
    overflow:hidden;
    padding:120px 20px 120px;
    background:#f4f6f8;
    color:#222;
}

.recruit_cta::before{
    content:"";
    position:absolute;
    top:-180px;
    right:-120px;
    width:500px;
    height:500px;
    border:1px solid rgba(0,75,141,.10);
    transform:rotate(32deg);
    pointer-events:none;
}

.recruit_cta::after{
    content:"";
    position:absolute;
    bottom:-220px;
    left:-140px;
    width:520px;
    height:520px;
    border:1px solid rgba(0,75,141,.08);
    transform:rotate(-25deg);
    pointer-events:none;
}

/* ==================================================
   Inner
================================================== */

.recruit_cta__inner{
    position:relative;
    z-index:2;
    max-width:1200px;
    margin:0 auto;
}

/* ==================================================
   Decorative Triangle
================================================== */

.recruit_cta__inner::before{
    content:"";
    position:absolute;
    top:20px;
    right:-20px;
    width:190px;
    height:190px;
    background:rgba(0,75,141,.035);
    clip-path:polygon(50% 0,100% 100%,0 100%);
    transform:rotate(18deg);
    pointer-events:none;
}

.recruit_cta__inner::after{
    content:"";
    position:absolute;
    bottom:0;
    left:15px;
    width:90px;
    height:90px;
    border:1px solid rgba(0,75,141,.12);
    clip-path:polygon(50% 0,100% 100%,0 100%);
    transform:rotate(-18deg);
    pointer-events:none;
}

/* ==================================================
   Heading
================================================== */

.recruit_cta__heading{
    position:relative;
    z-index:3;
    margin-bottom:65px;
    text-align:center;
}

.recruit_cta__sub{
    position:relative;
    display:inline-block;
    margin:0 0 18px;
    color:#004b8d;
    font-size:13px;
    font-weight:700;
    letter-spacing:.3em;
}

.recruit_cta__sub::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-11px;
    width:35px;
    height:1px;
    background:#004b8d;
    transform:translateX(-50%);
}

.recruit_cta__title{
    margin:0 0 18px;
    color:#222;
    font-size:clamp(32px,4vw,48px);
    line-height:1.3;
    font-weight:700;
    letter-spacing:.08em;
}

.recruit_cta__lead{
    margin:0;
    color:#555;
    font-size:16px;
    line-height:2;
}

/* ==================================================
   CTA Grid
================================================== */

.recruit_cta__grid{
    position:relative;
    z-index:3;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:2px;
    background:#0b1830;
}

/* ==================================================
   CTA Item
================================================== */

.recruit_cta__item{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:270px;
    padding:45px 50px;
    overflow:hidden;
    background:#0b1830;
    color:#fff;
    text-decoration:none;
    transition:
        background .4s ease,
        transform .4s ease;
}

/* 三角形 */

.recruit_cta__item::before{
    content:"";
    position:absolute;
    top:-80px;
    right:-65px;
    width:220px;
    height:220px;
    background:rgba(255,255,255,.045);
    clip-path:polygon(50% 0,100% 100%,0 100%);
    transform:rotate(20deg);
    transition:transform .5s ease;
}

/* 斜線 */

.recruit_cta__item::after{
    content:"";
    position:absolute;
    right:-20px;
    bottom:35px;
    width:220px;
    height:1px;
    background:rgba(255,255,255,.22);
    transform:rotate(-28deg);
    transform-origin:right center;
}

/* ==================================================
   Hover
================================================== */

@media (hover:hover) and (pointer:fine){

    .recruit_cta__item:hover{
        background:#004b8d;
        transform:translateY(-4px);
    }

    .recruit_cta__item:hover::before{
        transform:rotate(38deg) scale(1.08);
    }

    .recruit_cta__item:hover .recruit_cta__arrow{
        transform:translateX(8px);
    }

}

/* ==================================================
   Content
================================================== */

.recruit_cta__content{
    position:relative;
    z-index:2;
}

.recruit_cta__en{
    margin:0 0 14px;
    color:rgba(255,255,255,.62);
    font-size:12px;
    font-weight:700;
    letter-spacing:.25em;
}

.recruit_cta__item h3{
    margin:0 0 18px;
    color:#fff;
    font-size:32px;
    line-height:1.3;
    font-weight:700;
    letter-spacing:.08em;
}

.recruit_cta__text{
    margin:0;
    color:rgba(255,255,255,.76);
    font-size:14px;
    line-height:1.8;
}

/* ==================================================
   Arrow
================================================== */

.recruit_cta__arrow{
    position:relative;
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    width:58px;
    height:58px;
    margin-left:30px;
    border:1px solid rgba(255,255,255,.6);
    color:#fff;
    font-size:22px;
    transition:transform .4s ease;
}

/* ==================================================
   Tablet
================================================== */

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

    .recruit_cta{
        padding:95px 20px 105px;
    }

    .recruit_cta__heading{
        margin-bottom:50px;
    }

    .recruit_cta__item{
        min-height:240px;
        padding:35px 32px;
    }

    .recruit_cta__item h3{
        font-size:27px;
    }

    .recruit_cta__text{
        font-size:13px;
    }

    .recruit_cta__arrow{
        width:50px;
        height:50px;
        margin-left:20px;
    }

}

/* ==================================================
   Smartphone
================================================== */

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

    .recruit_cta{
        padding:75px 20px 80px;
    }

    .recruit_cta::before{
        top:-110px;
        right:-160px;
        width:320px;
        height:320px;
    }

    .recruit_cta::after{
        bottom:-140px;
        left:-160px;
        width:340px;
        height:340px;
    }

    .recruit_cta__inner::before{
        top:20px;
        right:-40px;
        width:120px;
        height:120px;
    }

    .recruit_cta__inner::after{
        bottom:10px;
        left:-10px;
        width:65px;
        height:65px;
    }

    .recruit_cta__heading{
        margin-bottom:38px;
    }

    .recruit_cta__sub{
        margin-bottom:15px;
        font-size:12px;
    }

    .recruit_cta__title{
        margin-bottom:14px;
        font-size:30px;
    }

    .recruit_cta__lead{
        font-size:14px;
        line-height:1.8;
    }

    .recruit_cta__grid{
        grid-template-columns:1fr;
        gap:2px;
    }

    .recruit_cta__item{
        min-height:200px;
        padding:30px 26px;
    }

    .recruit_cta__item h3{
        margin-bottom:12px;
        font-size:25px;
    }

    .recruit_cta__en{
        margin-bottom:10px;
        font-size:10px;
    }

    .recruit_cta__text{
        font-size:13px;
    }

    .recruit_cta__arrow{
        width:46px;
        height:46px;
        margin-left:15px;
        font-size:18px;
    }

}

/* ==================================================
   Small Smartphone
================================================== */

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

    .recruit_cta{
        padding:65px 16px 70px;
    }

    .recruit_cta__title{
        font-size:27px;
    }

    .recruit_cta__lead{
        font-size:13px;
    }

    .recruit_cta__item{
        min-height:180px;
        padding:26px 22px;
    }

    .recruit_cta__item h3{
        font-size:22px;
    }

    .recruit_cta__text{
        font-size:12px;
    }

    .recruit_cta__arrow{
        width:42px;
        height:42px;
        margin-left:12px;
    }

}

/*募集要項
---------------------------------------------------------------------------*/

/* ==================================================
   募集要項
================================================== */

.recruit_work{
    position:relative;
    padding:110px 20px;
    overflow:hidden;
    background:#f4f6f8;
}

.recruit_work__inner{
    position:relative;
    max-width:1200px;
    margin:0 auto;
}

.recruit_work__heading{
    margin-bottom:55px;
    text-align:center;
}

.recruit_work__sub{
    margin:0 0 12px;
    font-size:12px;
    font-weight:700;
    letter-spacing:.3em;
    color:#005bac;
}

.recruit_work__title{
    margin:0 0 18px;
    font-size:42px;
    line-height:1.3;
    font-weight:700;
    color:#222;
}

.recruit_work__lead{
    margin:0;
    font-size:15px;
    line-height:1.9;
    color:#555;
}


/* ==================================================
   職種セレクター
================================================== */

.recruit_work__tabs{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    width:100%;
    margin-bottom:60px;
    border-top:1px solid #d5dbe0;
    border-left:1px solid #d5dbe0;
    background:#fff;
}

.recruit_work__tab{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:0;
    min-height:100px;
    padding:18px 12px;
    border:0;
    border-right:1px solid #d5dbe0;
    border-bottom:1px solid #d5dbe0;
    background:#fff;
    color:#444;
    font-family:inherit;
    font-size:13px;
    font-weight:700;
    line-height:1.5;
    text-align:center;
    cursor:pointer;
    transition:
        background .3s ease,
        color .3s ease;
}

.recruit_work__tab::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:3px;
    background:#005bac;
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .3s ease;
}

.recruit_work__tab.is-active{
    background:#f8fbfe;
    color:#005bac;
}

.recruit_work__tab.is-active::before{
    transform:scaleX(1);
}

.recruit_work__tab-status{
    margin-top:7px;
    font-size:9px;
    font-weight:600;
    letter-spacing:.1em;
    color:#005bac;
}

.recruit_work__tab.is-disabled{
    background:#eceff1;
    color:#b3bac0;
    cursor:not-allowed;
}

.recruit_work__tab.is-disabled::before{
    display:none;
}

.recruit_work__tab.is-disabled .recruit_work__tab-status{
    color:#aeb5ba;
}


/* ==================================================
   職種タブ PC Hover
================================================== */

@media (hover:hover) and (pointer:fine){

    .recruit_work__tab:not(.is-disabled):hover{
        background:#f8fbfe;
        color:#005bac;
    }

    .recruit_work__tab:not(.is-disabled):hover::before{
        transform:scaleX(1);
    }

}


/* ==================================================
   職種タブ 矢印
================================================== */

.recruit_work__tab-arrow{
    display:none;
}


/* ==================================================
   パネル
================================================== */

.recruit_work__panel{
    display:none;
}

.recruit_work__panel.is-active{
    display:block;
}

.recruit_work__panel-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:70px;
    align-items:end;
    margin-bottom:50px;
}

.recruit_work__job-label{
    margin:0 0 10px;
    font-size:11px;
    font-weight:700;
    letter-spacing:.22em;
    color:#005bac;
}

.recruit_work__job-title{
    margin:0;
    font-size:32px;
    line-height:1.4;
    color:#222;
}

.recruit_work__job-lead{
    margin:0;
    font-size:15px;
    line-height:2;
    color:#555;
}


/* ==================================================
   募集情報
================================================== */

.recruit_work__info{
    border-top:1px solid #d9dde2;
    background:#fff;
}

.recruit_work__info dl{
    display:grid;
    grid-template-columns:220px minmax(0,1fr);
    margin:0;
    border-bottom:1px solid #d9dde2;
}

.recruit_work__info dt{
    display:flex;
    align-items:center;
    padding:22px 25px;
    background:#eef2f5;
    font-size:14px;
    font-weight:700;
    color:#333;
}

.recruit_work__info dd{
    display:flex;
    align-items:center;
    min-width:0;
    margin:0;
    padding:22px 25px;
    font-size:14px;
    line-height:1.8;
    color:#555;
}


/* ==================================================
   応募ボタン
================================================== */

.recruit_work__button{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    width:320px;
    height:52px;
    margin:50px auto 0;
    padding:0;
    background:#005bac;
    color:#fff;
    text-decoration:none;
    font-size:14px;
    font-weight:500;
    letter-spacing:.12em;
    line-height:1;
    transition:.3s ease;
    overflow:hidden;
}

.recruit_work__button .arrow{
    position:relative;
    display:inline-block;
    width:45px;
    height:1.5px;
    margin:0;
    background:#fff;
    transition:transform .4s ease;
    flex-shrink:0;
}

.recruit_work__button .arrow::before{
    content:"";
    position:absolute;
    top:50%;
    right:-3px;
    width:8px;
    height:8px;
    background:#fff;
    clip-path:polygon(0 0,100% 100%,0 100%);
    transform:translateY(-89%);
}


/* ==================================================
   応募ボタン PC Hover
================================================== */

@media (hover:hover) and (pointer:fine){

    .recruit_work__button:hover{
        background:#004b8d;
        color:#fff;
    }

    .recruit_work__button:hover .arrow{
        transform:translateX(8px);
    }

}


/* ==================================================
   募集なし
================================================== */

.recruit_work__coming{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:280px;
    padding:40px 20px;
    border:1px solid #d9dde2;
    background:#fff;
    text-align:center;
}

.recruit_work__coming span{
    margin-bottom:12px;
    font-size:10px;
    font-weight:700;
    letter-spacing:.2em;
    color:#9aa1a8;
}

.recruit_work__coming strong{
    margin-bottom:15px;
    font-size:25px;
    color:#555;
}

.recruit_work__coming p{
    margin:0;
    font-size:13px;
    line-height:1.8;
    color:#888;
}


/* ==================================================
   1024px以下
================================================== */

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

    .recruit_work{
        padding:90px 20px;
    }

    .recruit_work__title{
        font-size:36px;
    }

    .recruit_work__tabs{
        margin-bottom:50px;
    }

    .recruit_work__tab{
        min-height:90px;
        padding:15px 7px;
        font-size:11px;
    }

    .recruit_work__tab-status{
        font-size:8px;
    }

    .recruit_work__panel-head{
        gap:40px;
    }

    .recruit_work__job-title{
        font-size:29px;
    }

    .recruit_work__info dl{
        grid-template-columns:190px minmax(0,1fr);
    }

    .recruit_work__button{
        width:300px;
    }

}


/* ==================================================
   768px以下
================================================== */

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

    .recruit_work{
        padding:75px 20px;
    }

    .recruit_work__heading{
        margin-bottom:38px;
    }

    .recruit_work__sub{
        font-size:11px;
    }

    .recruit_work__title{
        margin-bottom:15px;
        font-size:30px;
    }

    .recruit_work__lead{
        font-size:14px;
    }


    /* ==============================================
       1カラム職種セレクター
    ============================================== */

    .recruit_work__tabs{
        display:flex;
        flex-direction:column;
        width:100%;
        margin-bottom:42px;
        border:1px solid #d5dbe0;
        background:#d5dbe0;
        gap:1px;
    }

    .recruit_work__tab{
        display:grid;
        grid-template-columns:minmax(0,1fr) auto 14px;
        align-items:center;
        width:100%;
        min-height:68px;
        padding:14px 16px 14px 19px;
        border:0;
        background:#fff;
        color:#444;
        font-size:13px;
        line-height:1.4;
        text-align:left;
    }

    .recruit_work__tab::before{
        top:0;
        bottom:0;
        left:0;
        width:3px;
        height:auto;
        transform:scaleY(0);
        transform-origin:top;
    }

    .recruit_work__tab.is-active::before{
        transform:scaleY(1);
    }


    /* ==============================================
       スマホではホバー完全無効
    ============================================== */

    .recruit_work__tab:hover{
        background:#fff;
        color:#444;
    }

    .recruit_work__tab:hover::before{
        transform:scaleY(0);
    }

    .recruit_work__tab.is-active:hover{
        background:#f8fbfe;
        color:#005bac;
    }

    .recruit_work__tab.is-active:hover::before{
        transform:scaleY(1);
    }

    .recruit_work__tab.is-disabled:hover{
        background:#eceff1;
        color:#b3bac0;
    }


    /* ==============================================
       タブ内
    ============================================== */

    .recruit_work__tab-name{
        min-width:0;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }

    .recruit_work__tab-status{
        margin:0 10px 0 12px;
        font-size:8px;
        white-space:nowrap;
    }

    .recruit_work__tab-arrow{
        position:relative;
        display:block;
        width:8px;
        height:8px;
        margin:0;
        background:none;
        border-top:1px solid #005bac;
        border-right:1px solid #005bac;
        transform:rotate(45deg);
        transition:none;
    }

    .recruit_work__tab-arrow::after{
        display:none;
    }

    .recruit_work__tab.is-disabled .recruit_work__tab-arrow{
        border-color:#b8bec3;
    }


    /* ==============================================
       職種概要
    ============================================== */

    .recruit_work__panel-head{
        display:block;
        margin-bottom:38px;
    }

    .recruit_work__job-label{
        margin-bottom:8px;
        font-size:10px;
    }

    .recruit_work__job-title{
        margin-bottom:17px;
        font-size:27px;
    }

    .recruit_work__job-lead{
        font-size:14px;
        line-height:1.9;
    }


    /* ==============================================
       募集情報
    ============================================== */

    .recruit_work__info dl{
        grid-template-columns:145px minmax(0,1fr);
    }

    .recruit_work__info dt,
    .recruit_work__info dd{
        padding:14px 14px;
        font-size:13px;
    }


    /* ==============================================
       応募ボタン
    ============================================== */

    .recruit_work__button{
        width:100%;
        max-width:320px;
        height:45px;
        margin:35px auto 0;
        gap:16px;
        font-size:12px;
    }

    .recruit_work__button .arrow{
        width:38px;
    }

    .recruit_work__button .arrow::before{
        width:8px;
        height:8px;
    }


    /* ==============================================
       スマホではボタンもホバー無効
    ============================================== */

    .recruit_work__button:hover{
        background:#005bac;
        color:#fff;
    }

    .recruit_work__button:hover .arrow{
        transform:none;
    }

}


/* ==================================================
   480px以下
================================================== */

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

    .recruit_work{
        padding:60px 15px;
    }

    .recruit_work__heading{
        margin-bottom:32px;
    }

    .recruit_work__sub{
        font-size:10px;
    }

    .recruit_work__title{
        font-size:26px;
    }

    .recruit_work__lead{
        font-size:13px;
        line-height:1.8;
    }


    /* ==============================================
       1カラムセレクター
    ============================================== */

    .recruit_work__tabs{
        margin-bottom:35px;
    }

    .recruit_work__tab{
        min-height:63px;
        padding:12px 13px 12px 17px;
        grid-template-columns:minmax(0,1fr) auto 12px;
        font-size:11px;
    }

    .recruit_work__tab-status{
        margin-left:8px;
        margin-right:8px;
        font-size:7px;
    }

    .recruit_work__tab-arrow{
        width:7px;
        height:7px;
    }


    /* ==============================================
       職種概要
    ============================================== */

    .recruit_work__job-label{
        font-size:9px;
    }

    .recruit_work__job-title{
        font-size:23px;
    }

    .recruit_work__job-lead{
        font-size:13px;
    }


    /* ==============================================
       募集情報
    ============================================== */

    .recruit_work__info dl{
        grid-template-columns:100px minmax(0,1fr);
    }

    .recruit_work__info dt,
    .recruit_work__info dd{
        padding:14px 10px;
        font-size:12px;
    }

    .recruit_work__info dd{
        line-height:1.7;
    }

    .recruit_work__coming{
        min-height:220px;
        padding:25px 15px;
    }

    .recruit_work__coming strong{
        font-size:20px;
    }

    .recruit_work__coming p{
        font-size:12px;
    }


    /* ==============================================
       応募ボタン
    ============================================== */

    .recruit_work__button{
        max-width:280px;
        height:42px;
        margin-top:30px;
        font-size:11px;
        gap:14px;
    }

    .recruit_work__button .arrow{
        width:32px;
    }

    .recruit_work__button .arrow::before{
        width:8px;
        height:8px;
    }

}