@charset "UTF-8";

/* ******
KV
****** */
.p-job-kv {
    width: calc(1022 / 1280 * 100vw);
    height: calc(617 / 1280 * 100vw);
    position: relative;
    margin: 0 calc(106 / 1280 * 100vw) calc(20 / 1280 * 100vw) calc(152 / 1280 * 100vw);
}
.p-job-kv__bg {
    width: calc(530 / 1280 * 100vw);
    height: calc(569 / 1280 * 100vw);
    position: absolute;
    top: calc(48 / 1280 * 100vw);
    left: 50%;
    transform: translateX(-50%);
    background-image: url('../img/job/job-bg.webp');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}
.p-job-kv__contents {
    width: 100%;
    height: 100%;
}
.p-job-kv__title-area {
    position: absolute;
    top: calc(92 / 1280 * 100vw);
    left: 0;
}
.p-job-kv__title {
    font-size: calc(80 / 1280 * 100vw);
    font-weight: 300;
    color: var(--color-primary);
    letter-spacing: -0.05em;
}
.p-job-kv__title-text {
    font-weight: 700;
    color: var(--color-primary);
}
.p-job-kv__title-contents {
    width: calc(689 / 1280 * 100vw);
    height: calc(135 / 1280 * 100vw);
    position: absolute;
    top: calc(271 / 1280 * 100vw);
    left: 50%;
    transform: translateX(-50%);
    background-color: var(--color-primary);
    padding: calc(17 / 1280 * 100vw) calc(23 / 1280 * 100vw);
}
.p-job-kv__title-contents-title {
    font-size: calc(30 / 1280 * 100vw);
    font-weight: 300;
    color: #fff;
    letter-spacing: 0.1em;
    line-height: 1.6;
}
.p-job-kv__title-contents-text {
    color: #fff;
    letter-spacing: 0.05em;
    line-height: 1.4;
    font-weight: 700;
}
.p-job-kv__list-area {
    position: absolute;
    bottom: calc(27 / 1280 * 100vw);
    left: 50%;
    transform: translateX(-50%);
    width: calc(669 / 1280 * 100vw);
}
.p-job-kv__list-title {
    font-size: calc(18 / 1280 * 100vw);
    color: var(--color-primary);
    letter-spacing: 0.05em;
    line-height: 1.6;
    margin-bottom: calc(22 / 1280 * 100vw);
    text-align: center;
}
.p-job-kv__list-text {
    font-size: calc(18 / 1280 * 100vw);
    letter-spacing: 0.07em;
    line-height: 1.6;
}
.p-job-kv__list-text-title {
    font-weight: 700;
}
/* ******
job-list
****** */
.p-job-list__container {
    width: calc(950 / 1280 * 100vw);
    margin: 0 auto calc(154 / 1280 * 100vw);
}
.p-job-list__item {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    gap: calc(42 / 1280 * 100vw) calc(16 / 1280 * 100vw);
}
.p-job-list__list {
    width: calc(305 / 1280 * 100vw);
    height: 100%;
}
.p-job-list__list-link {
    display: block;
}
.p-job-list__list-job {
    margin-bottom: calc(6 / 1280 * 100vw);
}
.p-job-list__list-ja {
    color: var(--color-primary);
    font-weight: 700;
    font-size: calc(20 / 1280 * 100vw);
    margin-right: calc(11 / 1280 * 100vw);
    position: relative;
}
.p-job-list__list-ja::after {
    content: "|";
    position: absolute;
    top: calc(5 / 1280 * 100vw);
    right: calc(-6 / 1280 * 100vw);
    color: var(--color-primary);
}
.p-job-list__list-en {
    color: var(--color-primary);
    font-size: calc(20 / 1280 * 100vw);
    font-weight: 300;
}
.p-job-list__list-title-area {
    background-color: var(--color-primary);
    clip-path: polygon(
        0% 0%,
        calc(100% - 60px) 0%,
        100% 60px,
        100% 100%,
        0% 100%
    );
    padding: calc(24 / 1280 * 100vw) calc(20 / 1280 * 100vw);
    margin-bottom: calc(3 / 1280 * 100vw);
}
.p-job-list__list-job-title {
    font-size: calc(22 / 1280 * 100vw);
    color: #fff;
    font-weight: 300;
    letter-spacing: 0.05em;
    line-height: 1.6;
}
.p-job-list__list-job-title-text {
    font-weight: 700;
    color: #fff;
}
.p-job-list__list-job-img {
    position: relative;
    overflow: hidden;
    display: block;
    width: 100%;
}
.p-job-list__list-job-img::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    transform: translateX(-101%);
    transition: transform 0.3s ease;
    z-index: 1;
}
.p-job-list__list-link:hover .p-job-list__list-job-img::before {
    transform: translateX(0);
}
.p-job-list__view-more {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    font-weight: bold;
    opacity: 0;
    transition: opacity 0.3s ease 0.1s;
    z-index: 2;
    pointer-events: none;
}
.p-job-list__list-link:hover .p-job-list__view-more {
    opacity: 1;
}
@media screen and (max-width: 767px) {
    .p-job-kv {
        width: 100%;
        height: calc(590 / 390 * 100vw);
        margin: 0 auto calc(55 / 390 * 100vw);
        padding: 0 calc(15 / 390 * 100vw);
    }
    .p-job-kv__bg {
        width: calc(360 / 390 * 100vw);
        height: calc(380 / 390 * 100vw);
        top: calc(48 / 390 * 100vw);
    }
    .p-job-kv__title-area {
        top: calc(53 / 390 * 100vw);
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
        padding: 0 calc(25 / 390 * 100vw) 0 calc(28 / 390 * 100vw);
    }
    .p-job-kv__title {
        font-size: calc(59 / 390 * 100vw);
        line-height: 1.1;
    }
    .p-job-kv__title-contents {
        width: calc(313 / 390 * 100vw);
        height: calc(126 / 390 * 100vw);
        top: calc(235 / 390 * 100vw);
        padding: calc(15 / 390 * 100vw) calc(15 / 390 * 100vw);
    }
    .p-job-kv__title-contents-title {
        font-size: calc(20 / 390 * 100vw);
    }
    .p-job-kv__list-area {
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
        padding: 0 calc(41 / 390 * 100vw);
    }
    .p-job-kv__list-title {
        font-size: calc(18 / 390 * 100vw);
        margin-bottom: calc(13 / 390 * 100vw);
    }
    .p-job-kv__list-text {
        font-size: calc(18 / 390 * 100vw);
    }
    /* ******
    job-list
    ****** */
    .p-job-list__container {
        width: 100%;
        margin: 0 auto calc(82 / 390 * 100vw);
        padding: 0 calc(43 / 390 * 100vw);
    }
    .p-job-list__item {
        width: 100%;
        gap: calc(27 / 390 * 100vw);
    }
    .p-job-list__list {
        width: 100%;
    }
    .p-job-list__list-job {
        margin-bottom: calc(5 / 390 * 100vw);
    }
    .p-job-list__list-ja {
        font-size: calc(18 / 390 * 100vw);
        margin-right: calc(11 / 390 * 100vw);
    }
    .p-job-list__list-ja::after {
        top: calc(5 / 390 * 100vw);
        right: calc(-6 / 390 * 100vw);
    }
    .p-job-list__list-en {
        font-size: calc(18 / 390 * 100vw);
        font-weight: 300;
    }
    .p-job-list__list-title-area {
        clip-path: polygon(
            0% 0%,
            calc(100% - 60px) 0%,
            100% 60px,
            100% 100%,
            0% 100%
        );
        padding: calc(22 / 390 * 100vw) calc(33 / 390 * 100vw);
        margin-bottom: calc(3 / 390 * 100vw);
    }
    .p-job-list__list-job-title {
        font-size: calc(20 / 390 * 100vw);
    }
}
@media screen and (min-width: 1281px) {
    .p-job-kv {
        width: 1022px;
        height: 617px;
        margin: 0 auto 20px;
    }
    .p-job-kv__bg {
        width: 530px;
        height: 569px;
        top: 48px;
    }
    .p-job-kv__title-area {
        top: 92px;
        left: 50%;
        transform: translateX(-50%);
        white-space: nowrap;
    }
    .p-job-kv__title {
        font-size: 80px;
    }
    .p-job-kv__title-contents {
        width: 689px;
        height: 135px;
        top: 271px;
        padding: 17px 23px;
    }
    .p-job-kv__title-contents-title {
        font-size: 30px;
    }
    .p-job-kv__list-area {
        bottom: 27px;
        width: 669px;
    }
    .p-job-kv__list-title {
        font-size: 18px;
        margin-bottom: 22px;
    }
    .p-job-kv__list-text {
        font-size: 18px;
    }
    /* ******
    job-list
    ****** */
    .p-job-list__container {
        width: 950px;
        margin: 0 auto 154px;
    }
    .p-job-list__item {
        gap: 42px 16px;
    }
    .p-job-list__list {
        width: 305px;
    }
    .p-job-list__list-job {
        margin-bottom: 6px;
    }
    .p-job-list__list-ja {
        font-size: 20px;
        margin-right: 11px;
    }
    .p-job-list__list-ja::after {
        top: 5px;
        right: -6px;
    }
    .p-job-list__list-en {
        font-size: 20px;
    }
    .p-job-list__list-title-area {
        padding: 24px 20px;
        margin-bottom: 3px;
    }
    .p-job-list__list-job-title {
        font-size: 22px;
    }
}