/* Recruit：採用情報ページ */
.recruit-page {
    color: #fff;
    background: #020a22;
    font-family: Arial, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif
}

.recruit-page * {
    box-sizing: border-box
}

.recruit-hero {
    position: relative
}

.recruit-hero-art {
    display: block;
    width: 100%;
    height: auto
}

.recruit-hero-copy {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap
}

.recruit-body {
    background: url("images/recruit/background.jpg") center top / 100% auto repeat-y;
    padding: clamp(75px, 7vw, 134px) 0 clamp(90px, 8vw, 154px)
}

.recruit-message {
    width: 90%;
    max-width: 1500px;
    margin: auto;
    text-align: center
}

.recruit-message h2 {
    font-size: clamp(23px, 2vw, 38px);
    font-weight: 600;
    letter-spacing: .045em;
    line-height: 1.65;
    margin: 0 0 34px
}

.recruit-message-sub {
    font-size: clamp(18px, 1.4vw, 27px);
    margin: 0 0 55px
}

.recruit-message-text {
    font-size: clamp(15px, 1.05vw, 20px);
    line-height: 1.9
}

.recruit-message-text p {
    margin: 0 0 36px
}

.recruit-message-text p:last-child {
    margin-bottom: 0
}

.recruit-requirements {
    width: 60%;
    max-width: 1140px;
    margin: 80px auto 0
}

.recruit-panel {
    border: 1px solid #b1bbc9;
    border-radius: 6px;
    background: rgba(189, 197, 207, .13);
    overflow: hidden;
    margin-bottom: 65px
}

.recruit-panel>h2 {
    background: rgba(189, 198, 210, .44);
    border-bottom: 1px solid #b1bbc9;
    text-align: center;
    letter-spacing: .13em;
    font-size: clamp(19px, 1.4vw, 27px);
    font-weight: 500;
    margin: 0;
    padding: 16px 25px;
    line-height: 1.35
}

.recruit-jobs {
    list-style: none;
    margin: 0;
    padding: 45px 15%;
    font-size: clamp(15px, 1.05vw, 20px);
    line-height: 1.6
}

.recruit-jobs li+li {
    margin-top: 32px
}

.recruit-jobs h3 {
    font-size: inherit;
    margin: 0 0 6px;
    font-weight: 600
}

.recruit-jobs h3::before {
    content: "・"
}

.recruit-jobs p {
    margin: 0
}

.recruit-conditions {
    margin: 0;
    padding: 55px 12%;
    font-size: clamp(14px, .96vw, 18px);
    line-height: 1.8
}

.recruit-conditions>div {
    display: grid;
    grid-template-columns: 145px minmax(0, 1fr);
    align-items: start;
    gap: 24px;
    margin-bottom: 55px
}

.recruit-conditions>div:last-child {
    margin-bottom: 0
}

.recruit-conditions dt {
    border: 1px solid #c2c8d2;
    border-radius: 50px;
    background: rgba(200, 211, 229, .3);
    padding: 3px 10px;
    text-align: center;
    font-size: 16px;
    line-height: 1.6
}

.recruit-conditions dd {
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere
}

.recruit-benefits {
    list-style: none;
    margin: 0;
    padding: 0
}

.recruit-benefits li {
    padding-left: 1em;
    position: relative
}

.recruit-benefits li::before {
    content: "・";
    position: absolute;
    left: 0
}

.recruit-benefits-columns {
    columns: 2;
    column-gap: 20px
}

.recruit-benefits-columns li {
    break-inside: avoid
}

.recruit-mobile-break {
    display: none
}

.recruit-join {
    position: relative;
    width: 90%;
    max-width: 1400px;
    margin: 135px auto 0;
    text-align: center;
    padding-top: 35px
}

.recruit-join-en {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    line-height: 1;
    font-size: clamp(80px, 8.5vw, 163px);
    font-weight: 700;
    color: rgba(177, 189, 216, .25);
    margin: 0;
    pointer-events: none
}

.recruit-join h2 {
    position: relative;
    font-size: clamp(24px, 2.1vw, 40px);
    font-weight: 600;
    line-height: 1.5;
    margin: 45px 0 30px
}

.recruit-join>p:not(.recruit-join-en) {
    position: relative;
    font-size: clamp(14px, 1vw, 19px);
    line-height: 1.8
}

.recruit-entry {
    display: block;
    width: 340px;
    max-width: 85%;
    margin: 55px auto 0;
    transition: transform .3s, filter .3s
}

.recruit-entry img {
    display: block;
    width: 100%;
    height: auto
}

.recruit-entry:hover {
    transform: translateY(-5px);
    filter: brightness(1.1)
}

.recruit-entry-note {
    margin-top: 20px
}

.recruit-entry-note a {
    color: inherit
}

.recruit-page a:focus-visible {
    outline: 3px solid #67d1ff;
    outline-offset: 6px
}

@media(max-width:1200px) {
    .recruit-requirements {
        width: 78%
    }

    .recruit-jobs {
        padding: 35px 8%
    }

    .recruit-conditions {
        padding: 40px 7%
    }

    .recruit-conditions>div {
        grid-template-columns: 115px minmax(0, 1fr);
        gap: 20px
    }

    .recruit-benefits-columns {
        columns: 1
    }
}

@media(max-width:767px) {
    .recruit-hero {
        min-height: 445px;
        overflow: hidden;
        background: #05132c
    }

    .recruit-hero-art {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: right center;
        opacity: .4
    }

    .recruit-hero-copy {
        position: relative;
        clip-path: none;
        overflow: visible;
        white-space: normal;
        width: auto;
        height: auto;
        margin: 0;
        padding: 145px 6% 65px
    }

    .recruit-hero-copy p {
        font-size: 16px;
        line-height: 1.8;
        margin: 0 0 25px
    }

    .recruit-hero-copy h1 {
        font-size: clamp(60px, 15vw, 95px);
        line-height: 1.05;
        font-style: italic;
        margin: 0
    }

    .recruit-hero-copy h1 span {
        display: block;
        font-size: 28px;
        font-style: normal;
        margin-top: 26px
    }

    .recruit-body {
        background-size: auto 1800px
    }

    .recruit-message {
        width: 88%
    }

    .recruit-message h2 {
        font-size: 20px;
        margin-bottom: 24px
    }

    .recruit-message-sub {
        font-size: 17px;
        margin-bottom: 35px
    }

    .recruit-message-text {
        text-align: left;
        font-size: 15px;
        line-height: 2
    }

    .recruit-message-text br {
        display: none
    }

    .recruit-requirements {
        width: 90%;
        margin-top: 50px
    }

    .recruit-panel {
        margin-bottom: 35px
    }

    .recruit-panel>h2 {
        padding: 12px 18px;
        font-size: 22px
    }

    .recruit-jobs {
        padding: 28px 7%;
        font-size: 15px
    }

    .recruit-conditions {
        padding: 28px 7%;
        font-size: 15px
    }

    .recruit-conditions>div {
        grid-template-columns: 1fr;
        gap: 15px;
        margin-bottom: 30px
    }

    .recruit-conditions dt {
        width: 120px
    }

    .recruit-mobile-break {
        display: block
    }

    .recruit-join {
        margin-top: 70px;
        padding-top: 20px
    }

    .recruit-join h2 {
        font-size: 24px;
        margin-top: 32px
    }

    .recruit-join-en {
        font-size: 90px
    }

    .recruit-entry {
        margin-top: 30px
    }

    .recruit-entry-note {
        font-size: 13px !important
    }
}

@media(prefers-reduced-motion:reduce) {
    .recruit-entry {
        transition: none
    }

    .recruit-entry:hover {
        transform: none
    }
}

.company-flow-heading {
    text-align: center
}

.company-plug {
    display: block;
    margin: auto;
    background: url("images/top/top2.webp") left center / auto 100% no-repeat
}

.company-steps {
    display: grid;
    list-style: none;
    padding: 0;
    margin: 0
}

.company-steps h3 {
    text-align: center
}

/* Business：施工フローをデザインカンプに合わせる */
.company-flow {
    padding: clamp(50px, 3.4vw, 66px) 0 clamp(75px, 8vw, 154px);
    background: url('images/recruit/background.jpg') center 60% / cover no-repeat;
    font-family: Arial, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

.company-flow>.container {
    width: 88%;
    max-width: 1685px;
}

.company-flow-heading {
    margin-bottom: clamp(72px, 5.8vw, 112px);
}

.company-plug {
    width: clamp(76px, 5.84vw, 112px);
    height: clamp(76px, 5.84vw, 112px);
    background-size: auto 100%;
    background-position: left center;
}

.company-flow-heading h2 {
    margin-top: 24px;
    font-size: clamp(28px, 2.09vw, 40px);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .06em;
}

.company-flow-heading p {
    margin-top: 14px;
    font-size: clamp(14px, 1.05vw, 20px);
    font-weight: 400;
    line-height: 1.8;
}

.company-steps {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: clamp(22px, 1.93vw, 37px);
    align-items: stretch;
}

.company-steps>li {
    position: relative;
    min-width: 0;
    min-height: clamp(290px, 16.8vw, 323px);
    padding: clamp(40px, 2.4vw, 46px) clamp(16px, 1.15vw, 22px) 35px;
    border: 1px solid rgba(255, 255, 255, .82);
    border-radius: 17px;
    background: rgba(0, 0, 5, .84);
    overflow: visible;
}

.company-step-label {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -53%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 57%;
    max-width: 175px;
    min-height: clamp(38px, 2.5vw, 48px);
    margin: 0;
    padding: 6px 10px;
    border: 1px solid rgba(255, 255, 255, .82);
    border-radius: 0 50px 50px 0;
    background: linear-gradient(100deg, #10323e, #000);
    font-family: inherit;
    font-size: clamp(14px, 1.05vw, 20px);
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: .04em;
    white-space: nowrap;
}

.company-steps h3 {
    margin: 0 0 18px;
    font-size: clamp(18px, 1.46vw, 28px);
    font-weight: 500;
    line-height: 1.5;
    white-space: nowrap;
}

.company-steps p {
    margin: 0;
    font-size: clamp(14px, 1.05vw, 20px);
    font-weight: 400;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

/* 各カード間をつなぐグレーの矢印 */
.company-steps>li:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(-1 * clamp(22px, 1.93vw, 37px) + 7px);
    transform: translateY(-50%);
    width: calc(clamp(22px, 1.93vw, 37px) - 14px);
    height: clamp(55px, 4.5vw, 86px);
    background: #858b96;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    pointer-events: none;
}

@media (max-width: 1100px) and (min-width: 901px) {
    .company-flow>.container {
        width: 94%;
    }

    .company-steps>li {
        padding-left: 10px;
        padding-right: 10px;
    }

    .company-steps h3 {
        font-size: 16px;
    }

    .company-steps p {
        font-size: 14px;
        line-height: 1.7;
    }

    .company-step-label {
        width: 72%;
    }
}

@media (max-width: 900px) {
    .company-flow {
        padding: 50px 0 65px;
    }

    .company-flow-heading {
        margin-bottom: 65px;
    }

    .company-flow-heading h2 {
        font-size: 28px;
    }

    .company-flow-heading p {
        font-size: 13px;
    }

    .company-steps {
        grid-template-columns: 1fr;
        gap: 62px;
        max-width: 560px;
        margin: auto;
    }

    .company-steps>li {
        min-height: 0;
        padding: 38px 24px 28px;
    }

    .company-step-label {
        width: 175px;
        min-height: 42px;
        font-size: 17px;
    }

    .company-steps h3 {
        font-size: 22px;
        margin-bottom: 16px;
    }

    .company-steps p {
        font-size: 16px;
        line-height: 1.85;
    }

    .company-steps>li:not(:last-child)::after {
        top: auto;
        bottom: -30px;
        right: auto;
        left: 50%;
        transform: translateX(-50%);
        width: 45px;
        height: 18px;
        clip-path: polygon(0 0, 100% 0, 50% 100%);
    }
}

/* 募集要項の四角を本文の文字サイズに合わせる */
.recruit-conditions .recruit-square {
    display: inline-block;
    width: 1em;
    height: 1em;
    background: currentColor;
    vertical-align: -.1em;
    margin-right: .12em;
}