@charset "utf-8";

/* -----------------------------------------------------------
    キャスト・スタッフ共通
----------------------------------------------------------- */

:root {
    --page-title-height: 1000px;
}

@media screen and (max-width: 768px) {
    :root {
        --page-title-height: auto;
    }

    .bread-h1-wrap {
        top: 65vw;
    }
}

/*-------------------------------------
    page-title-area
-------------------------------------*/
.page-title-area::before {
    background: linear-gradient(0deg, rgba(151, 197, 187, 0) 0%, rgba(151, 197, 187, .4) 100%);
}


.page-title-area::after {
    display: none;
}

.page-title-area .page-title-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    --txt-width: clamp(600px, 45%, 800px);
    --gap: clamp(80px, 8vw, 150px);
}

.page-title-area .page-title-txt {
    width: var(--txt-width);
}

.page-title-area .bg-wrap {
    width: calc(100% - calc(var(--txt-width) + var(--gap)));
    border-radius: clamp(100px, 10vw, 200px) 0 clamp(50px, 5vw, 100px) 0;
    overflow: hidden;
}

.page-title-area .bg-wrap img {
    width: 100%;
}

.page-title-inner .en img {
    width: 100%;
}

.page-title-inner .ja {
    padding-left: 80px;
    margin-top: 30px;
}

@media screen and (max-width: 768px) {
    .page-title-area .page-title-inner {
        --txt-width: 100%;
        --gap: 5vw;
        flex-wrap: wrap;
        flex-direction: column-reverse;
        padding: 7vw 0;
    }

    .page-title-area .bg-wrap {
        width: 60vw;
        margin: 0 0 0 auto;
        border-radius: 15vw 0 10vw 0;
    }

    .page-title-area .page-title-txt {
        margin-top: -20vw;
        margin-right: auto;
        width: 90vw;
    }

    .page-title-inner .ja {
        padding-left: 10vw;
        margin-top: 5vw;
    }

}

/*-------------------------------------
    catch-area
-------------------------------------*/
.catch-area {
    padding: 100px 0;
}

.catch-area .inner {
    display: flex;
    gap: clamp(50px, 5vw, 100px);
    align-items: flex-end;
    justify-content: space-between;
}

.catch-area .catch-txt {
    flex-shrink: 0;
    margin-bottom: 70px;
}

.catch-area .catch-txt .catch {
    font-size: clamp(3.0rem, 2.5cqw, 4.2rem);
    margin: 0;
}

@media screen and (max-width: 768px) {
    .catch-area {
        padding: 5vw 0 10vw;
    }

    .catch-area .inner {
        gap: 0;
        flex-wrap: wrap;
    }

    .catch-area .catch-txt {
        flex-shrink: initial;
        margin-bottom: 5vw;
        width: 100%;
    }

    .catch-area .catch-txt .sub-catch {
        font-size: clamp(1.5rem, 4.3cqw, 1.8rem);
    }

    .catch-area .catch-txt .catch {
        font-size: clamp(2.0rem, 6.2cqw, 3.0rem);
        margin: 0;
    }
}

/*-------------------------------------
    feature-area
-------------------------------------*/
.feature-area {
    --wave-height: 20%;
    position: relative;
    /*beforeの要素(width:100%・aspect-ratio:1600/310)の高さ分margin-topを作る(310/1600=19.375%)*/
    /* padding: var(--wave-height) 0 clamp(300px, 30vw, 500px); */
    padding: 120px 0;
    background: linear-gradient(0deg, #f8f4ea, #f8f4ea, #f7f4ea, #f7f4ea, #f7f5eb, #f7f5eb, #f6f5eb, #f6f5eb);
    border-radius: clamp(100px, 10vw, 200px) clamp(100px, 10vw, 200px) 0 0;
}


.feature-area .feature-bg {
    position: absolute;
    background: url(../../img/webp/bg-zara.webp) center/auto, repeat-y;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    mix-blend-mode: plus-lighter;
}


.feature-area .section-title .en {
    color: var(--gold);
}

.feature-area .feature-block-wrap {
    display: flex;
    flex-direction: column;
    gap: 100px;
    margin-top: 100px;
}

.feature-area .feature-block {
    --gap: clamp(70px, 6vw, 120px);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 var(--gap);
    justify-content: center;
}

.feature-area .feature-block .feature-img {
    width: 45%;
    border-radius: 5vw 0 2vw 0;
    overflow: hidden;
}

.feature-area .feature-block .feature-txt {
    width: calc(55% - var(--gap));
    container-type: inline-size;
    position: relative;
    z-index: 1;
    padding: 50px 0;
}

.feature-area .feature-block .feature-num {
    color: #fff;
    font-family: var(--en);
    font-size: clamp(3.0rem, 18cqw, 15.0rem);
    position: absolute;
    top: clamp(-50px, -1.5vw, -30px);
    left: -40px;
    z-index: -1;
}

.feature-area .comparison-table-wrap {
    width: 100%;
    margin-top: 60px;
    padding: clamp(40px, 3vw, 70px);
    border-radius: 40px;
    background: rgba(255, 255, 255, .5);
}

.feature-area .comparison-table {
    border-collapse: collapse;
    width: 100%;
    container-type: inline-size;
}

.feature-area .comparison-table thead th {
    border-bottom: 1px solid var(--gold);
    padding: 20px 10px;
    text-align: center;
    line-height: 1.5;
    font-family: var(--serif);
    color: var(--gold);
    font-weight: 500;
    font-size: clamp(1.5rem, 1.1vw, 2.0rem);
}

.feature-area .comparison-table tbody td,
.feature-area .comparison-table tbody th {
    padding: 20px 10px;
    text-align: center;
    border-bottom: 1px solid #ECE0CF;
    font-size: clamp(1.3rem, 1.1vw, 1.6rem);
    line-height: 1.5;
    /* font-family: var(--serif); */
    font-weight: 500;
}

.feature-area .comparison-table tbody th {
    color: #888;
}

.feature-area .comparison-table-sp {
    display: none;
}

.feature-area .feature-figure {
    margin-top: 100px;
}

.feature-area .feature-figure .h4-title {
    margin-bottom: 0;
}

.feature-area .feature-figure .career-figure {
    margin-top: -80px;
}

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

    /*beginner*/
    .feature-area .for-cast-block.beginner .btn-more a:hover {
        color: var(--main);
        border-color: var(--main);
    }

    .feature-area .feature-block:nth-child(even) {
        flex-direction: row-reverse;
    }
}

@media screen and (max-width: 768px) {
    .feature-area {
        padding: 10vw 0;
        border-radius: 15vw 15vw 0 0;
    }


    .feature-area .feature-block-wrap {
        gap: 15vw;
        margin-top: 10vw;
    }

    .feature-area .feature-block {
        --gap: 5vw;
        gap: var(--gap);
        display: block;
    }

    .feature-area .feature-block .feature-img {
        width: 100%;
        height: 50vw;
        border-radius: 10vw 0 5vw 0;
    }

    .feature-area .feature-block .feature-txt {
        width: 100%;
        padding: 10vw 0 0;
    }

    .feature-area .feature-block .feature-num {
        font-size: clamp(7.0rem, 25cqw, 12.0rem);
        position: absolute;
        top: -2vw;
        left: -3vw;
    }

    .feature-area .feature-figure {
        margin-top: 5vw;
    }

    .feature-area .feature-figure .sp-img-wrap {
        width: 100%;
        overflow-x: scroll;
        display: block;
    }

    .feature-area .feature-figure .career-figure {
        margin-top: 0;
        width: 1200px;
    }

}

/*-------------------------------------
    business-area
-------------------------------------*/
.business-area {
    padding: 100px 0;
}

.business-area .inner {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    align-items: center;
}

.business-area .business-txt {
    width: 55%;
    padding: 0 5%;
}

.business-area .business-img {
    width: 45%;
    border-radius: clamp(100px, 10vw, 200px) 0 0 0;
    overflow: hidden;
}

.business-area .business-contents-wrap {
    width: var(--inner-wide);
    margin: 80px auto 0;
}

/*business-transition-box-wrap*/
.business-area .business-transition-box-wrap {
    display: flex;
    --gap: clamp(50px, 5vw, 100px);
    gap: var(--gap);
}

.business-area .business-transition-box {
    border: 1px solid var(--main);
    padding: clamp(30px, 3vw, 60px);
    background-color: var(--sub);
    border-radius: 30px;
    text-align: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-content: flex-start;
    position: relative;
}

.business-area .business-transition-box.is-before::after {
    content: "";
    display: inline-block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: calc(100% + var(--gap)/ 4);
    background: url(../../img/arrow-black.svg) no-repeat center/contain;
    width: calc(var(--gap) / 2);
    height: auto;
    aspect-ratio: 31/7;
}

.business-area .business-transition-box.is-before {
    --main: #AAAAAA;
    --sub: #FBFBFB;
}

.business-area .business-transition-box.is-after {
    --main: #C9A267;
    --sub: #FCFAF3;
}


.business-area .business-transition-box-title {
    color: var(--main);
    font-size: clamp(2.5rem, 1.6vw, 4.5rem);
    width: 100%;
}

.business-area .business-transition-box-catch {
    font-size: clamp(2.0rem, 1.1vw, 3.6rem);
    font-family: var(--serif);
    line-height: 1.5;
    width: 100%;
    margin-top: 20px;
}

.business-area .business-transition-box .disc-list {
    margin-inline: auto;
    max-inline-size: fit-content;
    text-align: left;
}

/*business-icon-list-wrap*/
.business-area .icon-list {
    --gap: clamp(15px, 1vw, 30px);
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
    margin-top: 50px;
}

.business-area .icon-item {
    width: calc((100% - var(--gap)* 4) / 5);
    background-color: #F8F8F8;
    border-radius: 20px;
    padding: 30px 20px;
}

.business-area .reason-icon {
    width: auto;
    height: 60px;
    margin: 0 auto;
    text-align: center;
}

.business-area .reason-icon img {
    height: 100%;
}

.business-comparison-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.business-comparison-table {
    width: 100%;
    min-width: 1100px;
    border-collapse: collapse;
    table-layout: fixed;
}

.business-comparison-table th,
.business-comparison-table td {
    padding: 15px;
    border: 1px solid #ccc;
    vertical-align: center;
    text-align: left;
    line-height: 1.6;
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--ash-gray);
}

.business-comparison-table thead th {
    text-align: center;
    font-weight: 600;
    background-color: var(--dark-green);
    color: #fff;
}

.business-comparison-table thead th:first-child,
.business-comparison-table tbody th {
    width: 180px;
}

.business-comparison-table tbody th {
    font-weight: 600;
}

.business-comparison-table tbody tr.is-featured th,
.business-comparison-table tbody tr.is-featured td {
    border-top: 3px solid var(--gold);
    border-bottom: 3px solid var(--gold);
    background-color: rgba(197, 163, 88, .08);
}

.business-comparison-table tbody tr.is-featured th:first-child {
    border-left: 3px solid var(--gold);
}

.business-comparison-table tbody tr.is-featured td:last-child {
    border-right: 3px solid var(--gold);
}

.business-comparison-table strong {
    display: inline-block;
    margin-bottom: 12px;
    letter-spacing: .08em;
    font-size: 120%;
    color: var(--gold);
}

@media screen and (max-width: 768px) {
    .business-comparison-table-wrap {
        margin-right: -5vw;
        width: calc(100% + 5vw);
    }

    .business-comparison-table th,
    .business-comparison-table td {
        padding: 15px 10px;
        font-size: 1.6rem;
    }
}

.business-area .icon-txt {
    text-align: center;
    font-weight: bold;
    line-height: 1.5;
    margin-top: 20px;
}


@media screen and (max-width: 768px) {
    .business-area {
        padding: 10vw 0;
    }

    .business-area .inner {
        position: relative;
    }

    .business-area .business-txt {
        width: 100%;
        padding: 0;
        display: contents;
    }

    .business-area .business-img {
        /* position: absolute;
        top: -5vw;
        right: 0; */
        z-index: -1;
        width: 100%;
        border-radius: 20vw 0 5vw 0;
        height: 50vw;
        order: 4;
        margin-bottom: 5vw;
    }

    .business-area .section-title .jp,
    .business-area .business-sub-catch,
    .business-area .business-catch {
        text-shadow: var(--text-shadow-white);
    }

    .business-area .section-title {
        order: 1;
    }

    .business-area .business-sub-catch {
        order: 2;
    }

    .business-area .business-catch {
        font-size: clamp(2.1rem, 6cqw, 3.0rem);
        order: 3;
    }

    .business-area .basic-txt {
        order: 5;
    }

    .business-area .business-contents-wrap {
        margin: 8vw auto 0;
        order: 6;
    }

    .business-area .business-transition-box-wrap {
        --gap: 10vw;
        flex-direction: column;
    }

    .business-area .business-transition-box {
        padding: 5vw;
        border-radius: 5vw;
        gap: 0 5vw;
        flex-direction: column;
        align-items: center;
    }

    .business-area .business-transition-box.is-before::after {
        top: 103%;
        transform: translateX(-50%) rotate(90deg);
        left: 50%;
        width: calc(var(--gap) / 1.2);
    }

    .business-area .business-transition-box .disc-list {
        margin-inline: 0;
        max-inline-size: initial;
        width: 100%;
    }

    .business-area .icon-list {
        --gap: 5vw;
        margin-top: 5vw;
    }

    .business-area .icon-item {
        width: 100%;
        border-radius: 2vw;
        padding: 5vw;
        display: flex;
        align-items: center;
        gap: 5vw;
    }

    .business-area .reason-icon {
        width: 12vw;
        height: auto;
        margin: 0;
    }

    .business-area .reason-icon img {
        width: 100%;
    }

    .business-area .icon-txt {
        margin: 0;
        text-align: left;
    }
}


/*-------------------------------------
    other-btn-area
-------------------------------------*/
.other-btn-area {
    padding: 120px 0;
    background-color: #F2F1EC;
    border-radius: 0 clamp(100px, 10vw, 200px) 0 0;
}

.other-btn-area .for-staff-block-wrap {
    --gap: clamp(30px, 3vw, 60px);
    display: flex;
    align-items: flex-start;
    gap: var(--gap);
}

.other-btn-area .for-staff-block {
    width: calc((100% - var(--gap)) / 2);
    position: relative;
    text-align: center;
}

.other-btn-area .for-staff-block.beginner {
    --main: #74A89E;
    --grad: linear-gradient(90deg, #74a89e, #79ada1, #7eb1a5, #84b6a8, #89bbab, #8fc0ae, #94c4b2, #9ac9b5);
    --bg-grad: linear-gradient(270deg, #edf3e3, #f0f5e7, #f2f6eb, #f5f8ef, #f7faf3, #fafcf7, #fcfdfb, #ffffff);
}

.other-btn-area .for-staff-block.experienced {
    --main: #C99E7C;
    --grad: linear-gradient(90deg, #c99e7c, #cda584, #d1ac8c, #d5b394, #d9ba9c, #ddc1a4, #e1c8ac, #e5cfb4);
    --bg-grad: linear-gradient(90deg, #f6eee8, #f7f0eb, #f9f3ef, #faf5f2, #fbf8f5, #fcfaf8, #fefdfc, #ffffff);
}

.other-btn-area .for-staff-block .deco-circle {
    position: absolute;
    height: auto;
    aspect-ratio: 1 / 1;
    animation: rotate 40s linear infinite;
}

.other-btn-area .for-staff-block.beginner .deco-circle {
    top: 40%;
    right: 90%;
    background: url(../../img/cast/deco-circle-for-beginner.svg) no-repeat center / contain;
    width: 300px;
}

.other-btn-area .for-staff-block.experienced .deco-circle {
    top: 75%;
    left: 85%;
    background: url(../../img/cast/deco-circle-for-experienced.svg) no-repeat center / contain;
    width: 400px;
}

.other-btn-area .for-staff-block .en {
    margin-top: 10px;
    color: var(--main);
    font-family: var(--en);
    font-size: clamp(3.0rem, 2.8cqw, 8.0rem);
    line-height: 1.2;
}

.other-btn-area .for-staff-block .jp {
    display: inline-block;
    margin: 0;
    padding: 3px 10px;
    color: #fff;
    background: var(--grad);
    font-size: clamp(1.4rem, 1.0cqw, 2.4rem);
    line-height: 1.5;
}

.other-btn-area .for-staff-block .for-staff-txt {
    --padding: clamp(50px, 3vw, 80px);
    padding: calc(var(--padding) * 2) var(--padding) var(--padding);
    margin-top: calc(var(--padding) * -1.5);
    background: #fff;
    border: 1px solid #fff;
    border-radius: clamp(20px, 3vw, 60px);
}

.other-btn-area .for-staff-block .for-staff-img {
    width: 70%;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    border-radius: 100px 20px 20px 20px;
    overflow: hidden;
}

.other-btn-area .for-staff-block .for-staff-catch {
    margin-top: 30px;
    margin-bottom: 0;
    font-size: clamp(2.0rem, 2cqw, 3.3rem);
}

.other-btn-area .for-staff-block .btn-more {
    margin: 30px 0 0;
}

.other-btn-area .for-staff-block .btn-more a {
    background: transparent;
}

.other-btn-area .for-staff-block.beginner .btn-more a::before {
    background: #74A99E;
}

.other-btn-area .for-staff-block.experienced .btn-more a::before {
    background: #C99E7C;
}

.staff-other-btn-wrap {
    --gap: clamp(20px, 3vw, 50px);
    display: flex;
    gap: var(--gap);
    margin-top: clamp(40px, 5vw, 90px);
}

.staff-other-btn {
    display: flex;
    align-items: center;
    width: calc((100% - var(--gap)) / 2);
    min-height: clamp(150px, 14vw, 230px);
    overflow: hidden;
    position: relative;
    background: #fff;
    border-radius: 20px;
    transition: transform .3s, opacity .3s;
}

.staff-other-btn-img {
    width: 43%;
    height: 100%;
    flex-shrink: 0;
}

.staff-other-btn-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.staff-other-btn-txt {
    flex: 1;
    min-width: 0;
    padding: 40px;
    container-type: inline-size;
}

.staff-other-btn .en {
    color: #E6E9E4;
    font-size: clamp(3.4rem, 13cqw, 6rem);
    font-family: var(--en);
    line-height: 1;
}

.staff-other-btn-name {
    margin: 0;
    font-family: var(--serif);
    line-height: 1.5;
    font-size: clamp(2.0rem, 6cqw, 2.6rem);
}

.staff-other-btn-arrow {
    display: block;
    width: 36px;
    height: 18px;
    position: absolute;
    right: 24px;
    bottom: 20px;
    background: url(../../img/arrow-black.svg) no-repeat center / contain;
}

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

    .other-btn-area .for-staff-block:hover,
    .staff-other-btn:hover {
        transform: translateY(-10px);
        opacity: .75;
    }

    .other-btn-area .for-staff-block .btn-more a:hover {
        color: #fff;
        border-color: #fff;
    }

    .other-btn-area .for-staff-block .btn-more a:hover::after {
        background: url(../../img/arrow-white.svg) no-repeat center/contain;
    }

    .other-btn-area .for-staff-block:focus-visible,
    .staff-other-btn:focus-visible {
        outline: 2px solid #555;
        outline-offset: 8px;
    }
}

@media screen and (max-width: 768px) {
    .other-btn-area {
        padding: 10vw 0;
        border-radius: 0 20vw 0 0;
    }

    .other-btn-area .for-staff-block-wrap {
        --gap: 5vw;
        flex-wrap: wrap;
    }

    .other-btn-area .for-staff-block {
        width: 100%;
    }

    .other-btn-area .for-staff-block .for-staff-img {
        width: 70%;
        margin: 0 auto;
        border-radius: 15vw 3vw 3vw 3vw;
    }

    .other-btn-area .for-staff-block .for-staff-txt {
        --padding: clamp(20px, 5vw, 40px);
        padding: calc(var(--padding) * 3) var(--padding) calc(var(--padding) * 2);
        margin-top: calc(var(--padding) * -2);
        border-radius: clamp(10px, 5vw, 30px);
    }

    .other-btn-area .for-staff-block .for-staff-catch {
        margin-top: 5vw;
    }

    .other-btn-area .for-staff-block .btn-more {
        margin: 5vw 0 0;
    }

    .other-btn-area .for-staff-block.beginner .deco-circle {
        top: 25%;
        left: 80%;
        width: 40vw;
        z-index: 1;
    }

    .other-btn-area .for-staff-block.experienced .deco-circle {
        top: 15%;
        right: 75%;
        left: initial;
        width: 50vw;
        z-index: 1;
    }

    .other-btn-area .for-staff-block .en {
        font-size: clamp(2.5rem, 10cqw, 5.0rem);
    }

    .staff-other-btn-wrap {
        display: flex;
        flex-direction: column;
        gap: 5vw;
        margin-top: 5vw;
    }

    .staff-other-btn {
        border-radius: 4vw;
        width: 100%;
        min-height: initial;
    }

    .staff-other-btn-img {
        width: 38%;
    }

    .staff-other-btn-txt {
        padding: 0 5vw;
    }

    .staff-other-btn-name {
        font-size: clamp(1.6rem, 5cqw, 2.3rem);
    }

    .staff-other-btn .en {
        color: #E6E9E4;
        font-size: clamp(2.1rem, 13.5cqw, 3rem);
        font-family: var(--en);
        line-height: 1;
    }

    .staff-other-btn-arrow {
        right: 4vw;
        bottom: 3vw;
        width: 7vw;
    }
}