/* =====================================
   Recruit Page
===================================== */

.recruit-new{
    background:#ffffff;
    padding-bottom:60px;
}

.recruit-container{
    max-width:1000px;
    margin:0 auto;
    padding:0 20px;
}

/* -------------------------------------
   Header
------------------------------------- */

.recruit-new .page-head{
    padding:60px 0;
    text-align:center;
}

.recruit-new .page-head__en{
    font-size:14px;
    letter-spacing:3px;
    color:#2ca9e1;
    font-weight:bold;
}

.recruit-new .page-head__ja{
    font-size:42px;
    margin:10px 0 30px;
    color:#222;
}

.recruit-new .page-head__lead{
    line-height:2;
    font-size:16px;
    color:#555;
}

/* -------------------------------------
   Policy
------------------------------------- */

.recruit-new .policy{
    padding:64px 0;
    background:#edf3f5;
}

.recruit-new .policy p{
    line-height:2;
    margin-bottom:20px;
}

/* -------------------------------------
   Section
------------------------------------- */

.recruit-new .block{
    padding:80px 0;
}

.recruit-new .section-head{
    text-align:center;
    color:#2ca9e1;
    font-size:14px;
    font-weight:bold;
    letter-spacing:2px;
}

.recruit-new .section-title{
    text-align:center;
    font-size:32px;
    margin:10px 0 50px;
    color:#222;
}

/* -------------------------------------
   Position List
------------------------------------- */

.recruit-new .positions-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px;
}

.recruit-new .position-card{
    display:block;
    text-decoration:none;
    background:#fff;
    border:1px solid #dadbdb;
    border-top:4px solid #2ca9e1;
    border-radius:0;
    padding:30px;
    color:#474a4d;
}

.recruit-new .position-card:hover{
    border-color:#2ca9e1;
}

.recruit-new .position-card__tag{
    display:inline-block;
    font-size:11px;
    padding:3px 12px;
    background:#2ca9e1;
    color:#fff;
    border-radius:0;
    margin-bottom:14px;
}

.recruit-new .position-card__title{
    font-size:17px;
    font-weight:700;
    margin:0 0 12px;
}

.recruit-new .position-card__sub{
    font-size:13px;
    line-height:1.8;
    margin:0 0 18px;
}

.recruit-new .position-card__salary{
    font-size:13px;
    color:#1f86b3;
    font-weight:700;
    padding-top:10px;
    border-top:1px dashed #dadbdb;
}

/* -------------------------------------
   Detail
------------------------------------- */

.recruit-new .position-detail{
    padding:90px 0;
    border-top:1px solid #eee;
}

.recruit-new .position-detail__num{
    color:#f19069;
    font-size:12px;
    font-weight:700;
    letter-spacing:0.25em;
    margin-bottom:8px;
}

.recruit-new .position-detail__title{
    font-size:26px;
    margin:0 0 16px;
    color:#2a2c2e;
    padding-left:14px;
    border-left:3px solid #2ca9e1;
}

.recruit-new .position-detail__sub{
    font-size:14px;
    color:#474a4d;
    margin:0 0 32px;
    padding-left:17px;
}

.recruit-new .position-detail__lead{
    background:#e9f6fc;
    padding:24px 26px;
    margin:0 0 36px;
    font-size:15px;
    border-left:3px solid #2ca9e1;
    border-radius:0;
    line-height:1.8;
}

.recruit-new .subhead{
    font-size:16px;
    font-weight:700;
    color:#2a2c2e;
    margin:32px 0 16px;
    padding:0 0 8px 14px;
    border-left:3px solid #2ca9e1;
    border-bottom:1px solid #dadbdb;
}

.recruit-new .position-detail ul{
    list-style-type: disc;
    padding-left: 20px;
}

.recruit-new .position-detail li{
    list-style-type: disc;
    line-height: 1.8;
    margin-bottom: 10px;
}

/* -------------------------------------
   Table
------------------------------------- */

.recruit-new .spec{
    width:100%;
    border-collapse:collapse;
    margin-top:20px;
}

.recruit-new .spec th{
    width:220px;
    background:#f7f9fc;
    padding:15px;
    border-top:1px solid #ddd;
    border-bottom:1px solid #ddd;
    border-left:none;
    border-right:none;
    text-align:left;
}

.recruit-new .spec td{
    padding:15px;
    border-top:1px solid #ddd;
    border-bottom:1px solid #ddd;
    border-left:none;
    border-right:none;
    line-height:1.8;
}

.recruit-new .note{
    color:#474a4d;
    font-size:13.5px;
    background:#fef4f0;
    padding:16px 20px;
    margin-top:18px;
    border-left:3px solid #f19069;
    line-height:1.8;
}

/* -------------------------------------
   Benefits
------------------------------------- */

.recruit-new .benefits-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:15px;
    list-style:none;
    padding:0;
}

.recruit-new .benefits-grid li{
    background:#f7f9fc;
    padding:20px;
    border-left:3px solid #2ca9e1;
    border-radius:0;
}

/* -------------------------------------
   Flow
------------------------------------- */

.recruit-new .flow{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
}

.recruit-new .flow__step{
    border:1px solid #dadbdb;
    border-top:3px solid #2ca9e1;
    padding:20px 18px;
    border-radius:0;
    background:#fff;
}

.recruit-new .flow__num{
    font-size:11px;
    color:#f19069;
    font-weight:700;
    letter-spacing:0.2em;
    margin-bottom:4px;
}

.recruit-new .flow__label{
    font-size:14px;
    font-weight:700;
    color:#2a2c2e;
    margin-bottom:8px;
}

.recruit-new .flow__desc{
    font-size:12.5px;
    line-height:1.7;
    color:#474a4d;
}

/* -------------------------------------
   CTA
------------------------------------- */

.recruit-new .cta{
    padding:100px 0;
    background:#2ca9e1;
    text-align:center;
    color:#fff;
}

.recruit-new .cta h2{
    font-size:24px;
    font-weight:700;
    color:#ffffff;
    margin:0 0 14px;
}

.recruit-new .cta p{
    line-height:2;
    margin-bottom:35px;
    color:rgba(255,255,255,0.95);
}

.recruit-new .cta__button{
    display:inline-block;
    background:#fff;
    color:#2ca9e1;
    padding:18px 50px;
    border-radius:999px;
    text-decoration:none;
    font-weight:bold;
    transition:all .2s;
}

.recruit-new .cta__button:hover{
    transform:translateY(-2px);
    box-shadow:0 6px 16px rgba(0,0,0,.2);
}

/* -------------------------------------
   Responsive
------------------------------------- */

@media screen and (max-width: 768px){

    .recruit-new .page-head{
        padding:40px 0;
    }

    .recruit-new .page-head__ja{
        font-size:28px;
    }

    .recruit-new .section-title{
        font-size:26px;
    }

    .recruit-new .position-detail__title{
        font-size:28px;
    }

    .recruit-new .positions-list{
        grid-template-columns:1fr;
    }

    .recruit-new .benefits-grid{
        grid-template-columns:1fr;
    }

    .recruit-new .spec th,
    .recruit-new .spec td{
        display:block;
        width:100%;
        box-sizing:border-box;
    }

    .recruit-new .spec th{
        border-bottom:none;
    }

    .recruit-new .flow{
        grid-template-columns:repeat(2,1fr);
    }

    .recruit-new .cta h2{
        font-size:28px;
    }
}