body.request__page {
    background-color: #fff;
}

body.request__page header {
    /* position: absolute; */
    top: 0;
    left: 0;

}

body.request__page header>div {
    background-color: unset;

}

body.request__page header .header-container {
    border-radius: 8px;
    background-color: #fffc;
    padding: 1rem 2rem;
    box-shadow: 0px 4px 4px #0002;
}

@media screen and (max-width:1040px) {
    body.request__page header>div {
        padding: 0;
    }

    body.request__page header .header-container {
        padding: 1.25rem;
        border-radius: 0;
    }

}

.request__page main {
    display: flex;
    flex-direction: column;
    gap: 6rem;
}

@media screen and (max-width:768px) {
    .request__page main {
        gap: 4rem;
    }
}

/* --------------- */
/* メインビジュアル */
/* --------------- */

.main-visual {
    width: 100%;
    height: 100svh;
    /* background-color: #ccc; */
    overflow: hidden;
}

.ellipse-mask {
    width: 125svh;
    aspect-ratio: 10 / 8;
    border-radius: 50%;
    overflow: hidden;
    transform: rotate(-30deg);
    position: absolute;
    right: -10rem;
    top: -10rem;
}

.ellipse-mask img {
    width: 120%;
    height: 108%;
    object-fit: cover;
    transform: rotate(30deg);
    transform-origin: center;
    position: absolute;
    top: 0;
    left: 0;
}

.main-visual-content {
    max-width: 1200px;
    width: 100%;
    height: 100%;
    position: relative;
    margin: 0 auto;
}

.recruit__top-text {
    position: absolute;
    bottom: 2rem;
    left: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    font-weight: bold;
    mix-blend-mode: difference;
    color: #fff;
}

.recruit__top-text span {
    font-size: 1.5rem;
    letter-spacing: 4px;
}

.recruit__top-text h2 {
    font-size: 4rem;
    line-height: 1;
}

.recruit__top-text div {
    padding: 1rem 2rem;
    border: 1px solid #fff;
    font-size: 1.25rem;
    width: fit-content;
    line-height: 1;
}

.recruit__label {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    font-weight: bold;
    line-height: 1;
}

.recruit__label span {
    font-size: 4.5rem;
}

.recruit__label h3 {
    font-size: 1.5rem;
}

@media screen and (max-width : 960px) {
    .main-visual {
        height: 960px;
    }

    .ellipse-mask {
        right: -25rem;
        top: -10rem;
    }

    .recruit__top-text span {
        font-size: 1.125rem;
    }

    .recruit__top-text h2 {
        font-size: 3rem;
    }

    .recruit__top-text div {
        padding: .75rem 1.5rem;
        font-size: 0.875rem;
    }

}

@media screen and (max-width : 768px) {
    .main-visual {
        height: 157.5vw;
    }

    .ellipse-mask {
        right: -30%;
        top: 0rem;
    }

    .ellipse-mask {
        width: 130%;
    }

    .recruit__top-text {
        bottom: unset;
        top: 68%;
    }

    .recruit__top-text span {
        font-size: 4vw;
    }

    .recruit__top-text h2 {
        font-size: 6vw;
    }

    .recruit__top-text div {
        font-size: 4vw;
    }
}

/* --------------- */
/* ABOUT */
/* --------------- */

.about .container {
    position: relative;
    padding-top: 4rem;
}

.about__text {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    width: 52.5%;
    padding: 4rem;
    background-color: #ECECEC;
    z-index: 0;
}

.about__image {
    width: 52.5%;
    margin: 0 0 0 auto;
    height: 66svh;
    background-image: url("../img/recruit/about_ctn_pc.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    margin-top: -34rem;
}

@media screen and (max-width : 960px) {
    .about .container {
        display: flex;
        flex-direction: column;
        padding-top: 0;
    }

    .about__text {
        width: 100%;
        order: 2;
    }

    .about__text p {
        font-size: 0.875rem;
    }

    .about__image {
        width: 100%;
        margin: 0;
        order: 1;
        height: unset;
        background-image: url("../img/recruit/about_ctn_sp.png");
        aspect-ratio: 1 / 1;
    }
}


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

    .about__text {
        padding: 2rem 1.25rem;
    }

    .about .recruit__label span {
        font-size: 2rem;
    }

    .about .recruit__label h3 {
        font-size: 1rem;
    }
}

/* --------------- */
/* MESSAGE */
/* --------------- */

section.message .container {
    display: flex;
    flex-direction: row;
    gap: 3rem;
    align-items: center;
}

.message__image {
    width: 30%;
}

.message__image img {
    width: 100%;
}

.message__text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.message__text-inner {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.message__text-inner div:nth-child(1) {
    font-size: 2rem;
}

.message__text-inner div:nth-child(3) {
    font-size: 2.125rem;
    font-weight: bold;
}

.message__text-inner div:nth-child(4) {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    align-items: center;
    justify-content: right;
    font-weight: bold;
}

.message__text-inner div:nth-child(4) span {
    font-size: 2rem;
}

@media screen and (max-width : 960px) {
    .message__text-inner div:nth-child(3) {
        font-size: 1.5rem;
    }
}

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

    .message .recruit__label span {
        font-size: 2rem;
    }

    .message .recruit__label h3 {
        font-size: 1rem;
    }

    section.message .container {
        flex-direction: column;
    }

    .message__image {
        width: 100%;
    }

    .message__text-inner div:nth-child(1) {
        font-size: 1.25rem;
    }

    .message__text-inner div:nth-child(2) {
        font-size: 0.875rem;
    }

    .message__text-inner div:nth-child(3) {
        font-size: 17px;
    }

    .message__text-inner div:nth-child(4) span {
        font-size: 1.5rem;
    }
}

/* --------------- */
/* CULTURE */
/* --------------- */

section.culture .container {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.culture__image {
    width: 100%;
    height: 320px;
    background-image: url("../img/recruit/our_people.png");
    background-size: cover;
    background-position: center;
    background-repeat: none;
    position: relative;
    z-index: -1;
}

/* .culture__image:after {
    content: '';
    background-color: #fff3;
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 1;
} */

section.culture .recruit__label {
    text-shadow: 0 0 40px #fff9;
}

.culture__text {
    display: flex;
    flex-direction: column;
    gap: 2em;
    /* margin-top: -2.5rem; */
    margin-top: 2rem;
    padding: 0 2rem;
}

.culture__catch {
    font-size: 4rem;
    font-weight: bold;
    line-height: 1;
}

@media screen and (max-width : 768px) {
    .culture__text {
        margin-top: 1rem;
        padding: 0;
        gap: 1.5em;
    }

    .culture__text p {
        font-size: 0.875rem;
    }

    section.culture .recruit__label {
        text-shadow: 0 0 24px #fff9;
    }

    section.culture .recruit__label span {
        font-size: 2rem;
    }

    section.culture .recruit__label h3 {
        font-size: 1rem;
    }

    .culture__image {
        height: unset;
        aspect-ratio: 5 / 2;
    }

    .culture__catch {
        /* font-size: 6vw; */
        font-size: 1.5rem;
    }
}

/* --------------- */
/* PERSON */
/* --------------- */

section.person .container {
    display: flex;
    flex-direction: column;
    gap: 6rem;
}

.person__image {
    display: flex;
    flex-direction: row;
}

.person__image .person__image-label {
    background-color: #000;
    color: #fff;
    width: 460px;
    height: 20rem;
    display: flex;
    justify-content: center;
    align-items: center;
}

.person__image .person__image-inner {
    flex: 1;
    background-image: url("../img/recruit/person_new.png");
    background-size: cover;
    background-position: center;
    background-repeat: none;
}

.person__text {
    display: flex;
    flex-direction: row;
    gap: 4rem;
    justify-content: center;
    padding: 0 2rem;
}

.person__catch {
    font-size: 4rem;
    font-weight: bold;
    line-height: 1;
    writing-mode: vertical-rl;
}

.person__list {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.person__list>div {
    display: flex;
    flex-direction: row;
    gap: 1.5rem;
    align-items: center;
}

.person__icon {
    height: 4rem;
    width: 4rem;
    border-radius: 2rem;
    background-color: #ccc;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 12px;
    display: none;
}

.person__info {
    flex: 1;
}

.person__info>div:nth-child(1) {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    align-items: center;
}

.person__info span {
    font-size: 1.25rem;
    font-weight: bold;
}

@media screen and (max-width : 768px) {
    section.person .container {
        gap: 2rem;
    }

    .person__image {
        flex-direction: column;
    }

    .person__image .person__image-label {
        width: 100%;
        order: 2;
        height: unset;
        padding: 1rem;
        justify-content: unset;
    }

    .person__image .person__image-inner {
        order: 1;
        width: 100%;
        aspect-ratio: 5 / 2;
    }

    section.person .recruit__label {
        flex-direction: row;
        align-items: baseline;
    }

    section.person .recruit__label span {
        font-size: 2rem;
    }

    section.person .recruit__label h3 {
        font-size: 1rem;
    }

    .person__text {
        flex-direction: column;
        padding: 0;
    }

    .person__catch {
        /* font-size: 6vw; */
        font-size: 2rem;
        writing-mode: unset;
    }

    .person__info>div:nth-child(1) {
        flex-direction: column;
        gap: 0;
        align-items: unset;
    }

    .person__text {
        gap: 2rem;
    }

    .person__list {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .person__info {
        font-size: .75rem;
    }

    .person__info span {
        font-size: 18px;
    }

    .person__info p {
        font-size: .75rem;
    }
}

/* --------------- */
/* JOB DESCRIPTIONS */
/* --------------- */

.job-discriptions__image {
    width: 100%;
    height: 420px;
    background-image: url("../img/recruit/job-discriptions_new.png");
    background-size: cover;
    background-position: center;
    background-repeat: none;

}

.job-discriptions__text {
    padding: 0 3rem 3rem 3rem;
    display: flex;
    flex-direction: column;
    gap: 3rem;
    background-color: #F6F6F6;
}

.job-discriptions__text .recruit__label {
    padding: 2rem 3rem;
    background-color: #fff;
    margin: -5.75rem auto 0;
    text-align: center;
    width: fit-content;
}

.job-discriptions__list {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.job-discriptions__list p {
    text-align: center;
}

/* タブ */

.job-discriptions__list-info {
    display: flex;
    flex-direction: row;
    gap: 1.25rem;
    margin: 0 auto;
}

.job-discriptions__list-info div {
    padding: 1rem 2rem;
    background-color: #fff;
    font-weight: bold;
    font-size: 1.25rem;
    cursor: pointer;
}

.job-discriptions__list-info div.active {
    background-color: #000;
    color: #fff;
}

/* コンテンツ */
.job-dis__list-contents__inner {
    display: none;
    padding: 3rem;
    background-color: #fff;
    flex-direction: column;
    gap: 2rem;
}

.job-dis__list-contents__inner.active {
    display: flex;
}

.job-dis__list-contents__inner>div {
    display: flex;
    flex-direction: row;
    gap: 3rem;
}

.job-dis__list-contents__inner>div div:nth-child(1) {
    width: 5rem;
}

.job-dis__list-contents__inner>div div:nth-child(2) {
    flex: 1;
}

.job-dis__list-contents__inner>div:not(:last-child) {
    border-bottom: 1px solid #000;
    padding-bottom: 2rem;
}


@media screen and (max-width : 768px) {
    .job-discriptions__image {
        width: 100%;
        height: unset;
        aspect-ratio: 5 / 2;
    }

    .job-discriptions__text {
        padding: 0 0 3rem 0;

    }

    .job-discriptions__text .recruit__label {
        padding: 1.5rem 1.25rem;
        margin: 0;
        width: 100%;
        gap: 0.5rem;
    }

    .job-discriptions__text .recruit__label span {
        font-size: 1.5rem;
    }

    .job-discriptions__text .recruit__label h3 {
        font-size: 0.875rem;
    }

    .job-discriptions__list-info {
        gap: 0.75rem;
    }

    .job-discriptions__list {
        font-size: 0.75rem;
    }

    .job-discriptions__list-info div {
        padding: 0.5rem 1rem;
        font-size: 0.875rem;
    }

    .job-dis__list-contents__inner {
        padding: 1.25rem;
        width: calc(100% - 2.5rem);
        gap: 1rem;
        margin: 0 auto;
    }

    .job-dis__list-contents__inner>div:not(:last-child) {
        padding-bottom: 1rem;
    }

    .job-dis__list-contents__inner>div {
        flex-direction: column;
        gap: 1rem;
    }
}

/* --------------- */
/* OUR PEOPLE */
/* --------------- */
section.our-people .container {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.our-people__image {
    width: 100%;
    height: 303px;
    background-image: url("../img/recruit/our-people_new.png");
    background-size: cover;
    background-position: center;
    background-repeat: none;
}

.our-people_text {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.our-people_catch {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.our-people_catch p {
    font-weight: bold;
}

.our-people_catch p:nth-child(1) {
    font-size: 2rem;
}

.our-people_catch p:nth-child(2) {
    font-size: 4.5rem;
    line-height: 1;
}

.our-people_catch p:nth-child(3) {
    font-size: 1.375rem;
}

.swiper-our {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: calc(100% - 48px);
    margin: 0 auto;
}

.our-pagination {
    height: unset;
    position: unset;
    width: unset;
    flex: 1;
}

.our-button-prev,
.our-button-next {
    position: unset;
    width: 2rem;
    height: 2rem;
    border-radius: 1rem;
    background-color: #000;
    margin-top: unset;
}

.our-button-prev:after,
.our-button-next:after {
    font-size: 1rem;
    color: #fff;
    font-weight: bold;
}

.our-people-swiper {
    margin-bottom: 1rem;
    overflow: hidden;
}

.slider-our-people .swiper-slide {
    background-color: #fff;
    height: auto;
    border: 1px solid #eee;
    border-radius: 1rem;
    overflow: hidden;
}

.our-people-member-info {
    height: 100%;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.our-people-member-info>div {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.our-people-member-info>div div {
    font-size: 3rem;
    font-weight: bold;
    line-height: 1;
}

.our-people-member-info span {
    font-size: 2rem;
    font-weight: bold;
    line-height: 1;
}

@media screen and (max-width : 768px) {
    .our-people__image {
        width: 100%;
        height: unset;
    background-image: url("../img/recruit/our-people_new_sp.png");
        aspect-ratio: 2 / 1;
    }

    .our-people .recruit__label {
        padding: 0;
        margin: 0 auto;
        gap: 0.5rem;
        text-align: center;
    }

    .our-people .recruit__label span {
        font-size: 1.5rem;
    }

    .our-people .recruit__label h3 {
        font-size: 0.875rem;
    }

    .our-people_catch {
        text-align: center;
        gap: 1rem;
    }

    .our-people_catch p:nth-child(1) {
        font-size: 0.875rem;
    }

    .our-people_catch p:nth-child(2) {
        font-size: 1.5rem;
    }

    .our-people_catch p:nth-child(3) {
        font-size: 0.75rem;
    }

    .slider-our-people {
        margin: 0 -1.5rem;
    }

    .our-people-member-info {
        padding: 1rem;
        gap: 1.5rem;
    }

    .our-people-member-info>div {
        gap: 0.75rem;
    }

    .our-people-member-info>div div {
        font-size: 1.5rem;
        line-height: 1.25;
    }

    .our-people-member-info span {
        font-size: 1.125rem;
    }

    .our-people-member-info p {
        font-size: 12px;
    }
}

/* --------------- */
/* FLOW */
/* --------------- */
section.flow .container {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.flow__image {
    width: 100%;
    height: 320px;
    background-image: url("../img/recruit/flow_new.png");
    background-size: cover;
    background-position: center;
    background-repeat: none;
}

.flow__text {
    padding: 0 3rem;
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.flow_title {
    font-size: 2rem;
    text-align: center;
    font-weight: bold;
}

.flow_list {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.flow_list>div {
    display: flex;
    flex-direction: row;
    gap: 3rem;
    align-items: center;
    padding: 1.5rem 3rem;
    background-color: #eee;
}

.flow_list>div>div {
    font-size: 3rem;
    font-weight: bold;
    line-height: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 3rem;
}

.flow_list>div span {
    font-size: 1.5rem;
    font-weight: bold;
    display: inline-block;
    width: 5em;
}

.flow_list>div {
    position: relative;
}

.flow_list>div:not(:last-child):after {
    content: '';
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 0.75rem solid transparent;
    border-left: 0.75rem solid transparent;
    border-top: 1.5rem solid #eee;
    border-bottom: 0;
    position: absolute;
    bottom: -1.5rem;
    left: 3.125rem;
}


@media screen and (max-width : 768px) {
    section.flow .container {
        gap: 2rem;
    }

    .flow__image {
        width: 100%;
        height: unset;
        aspect-ratio: 5 / 2;
    }

    .flow .recruit__label {
        padding: 0;
        margin: 0 auto;
        gap: 0.5rem;
        text-align: center;
    }

    .flow .recruit__label span {
        font-size: 1.5rem;
    }

    .flow .recruit__label h3 {
        font-size: 0.875rem;
    }

    .flow__text {
        padding: 0;
        gap: 2rem;
    }

    .flow_title {
        font-size: 1.5rem;
    }

    .flow_list>div {
        flex-direction: column;
        gap: 1rem;
        align-items: unset;
        padding: 1.5rem 1.5rem;
    }

    .flow_list>div>div {
        font-size: 2rem;
        flex-direction: row;
        align-items: baseline;
        gap: .5rem;
    }

    .flow_list>div>div span,
    .flow_list p {
        font-size: 14px;
    }

    .flow_list>div:after {
        left: 1.5rem;
    }
}

/* --------------- */
/* ENTRY */
/* --------------- */

section.entry {
    padding: 128px 0;
    background: linear-gradient(to right, #CC151B, #E00007, #9C0005);
    text-align: center;
    color: #fff;
}

section.entry .container {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

section.entry .container .recruit__button {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

section.entry .container .recruit__button a {
    display: inline-block;
    padding: 1rem;
    font-size: 1.75rem;
    font-weight: bold;
    background-color: #000;
    max-width: 420px;
    color: #fff;
    line-height: 1;
    margin: 0 auto;
    width: stretch;
}

@media screen and (max-width : 768px) {
    section.entry {
        padding: 64px 0;
    }

    section.entry .recruit__label {
        padding: 0;
        margin: 0 auto;
        gap: 0.5rem;
        text-align: center;
    }

    section.entry .recruit__label span {
        font-size: 1.5rem;
    }

    section.entry .recruit__label h3 {
        font-size: 0.875rem;
    }

    .recruit__button p {
        font-size: 14px;
    }

    section.entry .container .recruit__button a {
        font-size: 1.25rem;
        width: calc(100% - 2.5rem);
    }
}

.our-pagination .swiper-pagination-bullet-active {
    background: #E00;
}