@charset "UTF-8";
/* トップページスタイル */
:root {
    --primary-main: #009B70;
    --primary-sub1: #DFEADD;
    --primary-sub2: #E4F1E2;
    --primary-sub3: #F2F8F1;
    --grayscale-main: #333333;
    --grayscale-sub1: #666666;
    --grayscale-sub2: #D7D7D7;
    --grayscale-sub3: #ffffff;
    --accent-color: #E64C20;
    --bg-base: #F2F8F1;
    --bg-gradient: linear-gradient(90deg, #f2f8f199, #93b38e33);
    --bg-gradient-reverse: linear-gradient(-90deg, #f2f8f199, #93b38e33);
    --container-narrow: 970px;
    --container-wide: 1210px;
    --container-padding: 16px;
}
/*--------------------------------
 全体
---------------------------------*/
/*--------------------------------
 レイアウト
---------------------------------*/
/*--------------------------------
 main-visual
---------------------------------*/
.t-mv {
    width: 100vw;
    height: calc(100vh - 100px);
    position: relative;
    background-image: url("../images/mv-bg.webp");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center 90px;
}
@media screen and (max-width: 1100px) {
    .t-mv {
        /* 1100px以下 */
        height: calc(80vh - 100px);
    }
}
.t-mv .catch-copy {
    /* font-size: 65px; */
    /* font-size: clamp(3.125rem, 1.284rem + 2.95vw, 3.938rem);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 5.2px;
    background: linear-gradient(0deg, #333333 10%, #009b70 100%);
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-fill-color: transparent;
    position: absolute;
    top: 10%;
    left: 5%;
    z-index: 1; */
}
.catch-copy {
    position: absolute;
    top: 10%;
    left: 5%;
    z-index: 1;
    font-size: clamp(3.125rem, 1.992rem + 1.81vw, 3.625rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 5.2px;
}
.catch-copy span {
    display: block;
    background: linear-gradient(
        to top,
        #0f6b46 0%,
        #1f8f63 50%,
        #2fb27f 100%
    );
    background-size: 100% 100%;
    background-repeat: no-repeat;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
/* 円形アニメーション */
.circle-anime {
    width: 180px;
    height: 180px;
    font-size: 6.5px;
    font-weight: 700;
    position: absolute;
    top: 12%;
    right: 12%;
    z-index: 1;
}
.circle-anime svg {
    overflow: visible;
}
.circle-anime path {
    fill: none;
}
.circle-anime text {
    fill: var(--primary-main);
}
.center-dot {
    fill: var(--primary-main);
}
/* mvスライダー */
.t-mv-slide {
    position: absolute;
    bottom: 1%;
    height: 70dvh;
    display: flex;
    align-items: center;
}
@media screen and (max-width: 1100px) {
    .t-mv-slide {
        height: 60dvh;
    }
}
.t-mv-slide .slide-item {
    margin: 0 1.4vw;
}
.t-mv-slide .slide-item img {
    width: 100%;
    height: auto;
    object-fit: cover;
}
.t-mv-slide .slide-item .item1 {
    margin-top: 9vw;
    /* width: 30vw; */
    max-width: 400px;
}
.t-mv-slide .slide-item .item2 {
    margin-top: 12.5vw;
    /* width: 25vw; */
    max-width: 500px
}
.t-mv-slide .slide-item .item3 {
    margin-top: 6vw;
    /* width: 23vw; */
    max-width: 400px;
}
.t-mv-slide .slide-item .item4 {
    margin-top: 12.5vw;
    /* width: 25vw; */
    max-width: 400px;
}
.t-mv-slide .slide-item .item5 {
    margin-top: 7vw;
    /* width: 25vw; */
    max-width: 400px;
}
.t-mv-slide .slide-item .item6 {
    margin-top: 9.72vw;
    /* width: 23vw; */
    max-width: 400px;
}
@media screen and (max-width: 1100px) {
    .t-mv-slide .slide-item {
        margin: 0 2.5vw;
    }
    .t-mv-slide .slide-item .item1 {
        margin-top: 12vw;
        max-width: 380px;
    }
    .t-mv-slide .slide-item .item2 {
        margin-top: 18vw;
        max-width: 380px
    }
    .t-mv-slide .slide-item .item3 {
        margin-top: 13vw;
        max-width: 300px;
    }
    .t-mv-slide .slide-item .item4 {
        margin-top: 19vw;
        max-width: 340px;
    }
    .t-mv-slide .slide-item .item5 {
        margin-top: 11vw;
        max-width: 300px;
    }
    .t-mv-slide .slide-item .item6 {
        margin-top: 16vw;
        max-width: 320px;
    }
}
/*--------------------------------
 message
---------------------------------*/
.t-message {
    background: var(--bg-base);
    background-image: var(--bg-gradient);
    padding: 200px 0 0px 0;
    position: relative;
}
.t-message::before {
    position: absolute;
    content: "Message";
    color: var(--grayscale-sub3);
    /* 999-1440  font-size: 170-240px; */
    font-size: clamp(10.625rem, 0.714rem + 15.87vw, 15rem);
    font-weight: 700;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    letter-spacing: 2px;
    top: 13%;
    right: 1%;
    z-index: 1;
}
.t-message::after {
    content: "";
    position: absolute;
    bottom: -300px;
    left: 0;
    width: 100%;
    height: 1000px;
    background-image: url("../images/index/message-bg.webp");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center bottom;
    z-index: 0;
}
.t-message .flex {
    /* column-gap: 150px; */
    column-gap: 6vw;
    position: relative;
    z-index: 1;
}
.t-message .main-title {
    width: 50%;
}
.t-message .img-over {
    /* width: 60vw; */
    margin-left: calc(100% - 45vw);
}
.t-message .img-over img {
    /* width: 36vw; */
    width: 100%;
    height: auto;
    max-width: 800px;
    object-fit: cover;
    /* aspect-ratio: 10 / 13; */
    /* aspect-ratio: 53 / 65; */
    aspect-ratio: 9 / 10;
}
.t-message .c-heading {
    margin-bottom: 9vw;
}
.t-message .main-text {
    margin-top: 58px;
    width: 50%;
}
.t-message .main-text .img-right {
    /* width: 100%;
    margin-left: auto; */
    text-align: right;
}
.t-message .main-text .img-right img {
    width: 25vw;
}
.t-message .main-text h3 {
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 64px;
}
.t-message .main-text .p-text.last {
    margin-bottom: 98px;
    margin-bottom: 6.8vw;
}
.t-message .main-text p:nth-last-child(2) {
    /* margin-bottom: 98px; */
    /* margin-bottom: 200px; */
    margin-bottom: 10vw;
}
/*--------------------------------
 aboutus
---------------------------------*/
.t-about {
    background: var(--bg-base);
    background-image: var(--bg-gradient);
    padding-top: 100px;
    /* padding-bottom: 700px; */
    /* position: relative; */
}
/* @media screen and (max-width: 1190px) {
    .t-about {
        padding-top: 400px;
    }
}
@media screen and (max-width: 1037px) {
    .t-about {
        padding-top: 450px;
    }
} */
.t-about .t-about-main {
    background: var(--grayscale-sub3);
    padding: 124px 78px;
    border-radius: 0px 30px 30px 0px;
    width: 90vw;
    margin-left: calc(50% - 50vw);
    position: relative;
    z-index: 1;
    /* position: absolute;
    z-index: 2; */
    /* margin-top: -300px; */
}
.t-about .flex {
    /* column-gap: 90px; */
    column-gap: 6.25vw;
}
@media screen and (max-width: 1100px) {
    .t-about .flex {
        flex-direction: column;
        row-gap: 2vw;
    }
    .c-btn-list li:last-child {
    margin-bottom: 0;
}
}
.c-btn-list li {
    margin-bottom: 50px;
}
.c-btn-list li .c-btn01 {
    width: 425px;
}
/*--------------------------------
 contents-slider
---------------------------------*/
.t-contents-slider {
    position: relative;
    padding: 100px 0;
    background: var(--bg-base);
    background-image:var(--bg-gradient);
}
.t-contents-slider::after {
    content: "";
    position: absolute;
    inset: 0;
    background: #fff;
    clip-path: inset(55% 0 0 0);
    /* 下半分を白で覆う */
    z-index: 0;
}
.t-contents-slide {
    position: relative;
    z-index: 1;
}
.t-contents-slide .slide-item {
    margin: 0 8px;
}
/*--------------------------------
 traditional
---------------------------------*/
.t-traditional {
    padding: 120px 0 220px 0;
}
.t-traditional-btn {
    margin-bottom: 95px;
}
.t-traditional .flex {
    column-gap: 88px;
    column-gap: 6.11vw;
}
.t-traditional-img {
    /* width: 50%; */
    width: 50vw;
    margin-left: calc(50% - 50vw);
}
@media screen and (max-width: 1440px){
.t-traditional-img img {
    object-fit: cover;
}
}
.t-traditional-img img {
    width: 100%;
    object-fit: contain;
    max-height: 735px;
    aspect-ratio: 1 / 2;
}
.t-traditional-text {
    width: 50%;
}
.t-traditional-text .p-text {
    margin-bottom: 72px;
}
.thumbnail .thumbnail-img img {
    width: 180px;
    height: 180px;
    object-fit: cover;
        aspect-ratio: 1 / 1;
}
@media screen and (max-width: 1450px){
.thumbnail .thumbnail-img img {
    width: 170px;
    height: 170px;
}
}
@media screen and (max-width: 1260px){
.thumbnail .thumbnail-img img {
    width: 160px;
    height: 160px;
}
.t-traditional .flex {
    column-gap: 4vw;
}
}
@media screen and (max-width: 1080px){
.thumbnail .thumbnail-img img {
    width: 150px;
    height: 150px;
}
}
.thumbnail-area {
    position: relative;
}
.thumbnail {
    padding-bottom: 43px;
}
.arrows {
    position: absolute;
    margin: 24px 0;
    right: 35px;
    bottom: -12px;
}
.slick-prev {
    left: -77px;
}
.slick-next {}
/* 共通ボタンスタイル */
.slick-prev,
.slick-next {
    width: 45px;
    height: 25px;
    border-radius: 19px;
    border: 1px solid var(--primary-main);
    background-color: var(--grayscale-sub3);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    transition: .3s all;
}
.slick-prev::before,
.slick-next::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 1px solid var(--primary-main);
    border-right: 1px solid var(--primary-main);
}
.slick-prev::before {
    transform: rotate(-135deg);
}
.slick-prev::after {
    content: '';
    position: absolute;
    width: 12px;
    height: 1px;
    background-color: var(--primary-main);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(0deg);
}
.slick-next::before {
    transform: rotate(45deg);
}
.slick-next::after {
    content: '';
    position: absolute;
    width: 12px;
    height: 1px;
    background-color: var(--primary-main);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(0deg);
}
@media screen and (min-width: 600px) {
    .slick-prev:hover,
    .slick-next:hover {
        background-color: var(--primary-main);
    }
    .slick-prev:hover::before,
    .slick-next:hover::before {
        border-top: 1px solid var(--grayscale-sub3);
        border-right: 1px solid var(--grayscale-sub3);
    }
    .slick-prev:hover::after {
        background-color: var(--grayscale-sub3);
    }
    .slick-next:hover::after {
        background-color: var(--grayscale-sub3);
    }
}
/*--------------------------------
 our job
---------------------------------*/
.t-ourjob {
    background: var(--bg-base);
    background-image: var(--bg-gradient-reverse);
    padding: 128px 0 300px 0;
    position: relative;
    overflow: hidden;
}
.t-ourjob::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 0;
    border-right: 100vw solid transparent;
    /* 横幅いっぱいの透明三角形_90度の位置を指定する */
    border-bottom: 180px solid var(--grayscale-sub3);
    /* 三角形の色 */
    z-index: 1;
}
.t-ourjob-entext {
    width: 16.67%;
    height: 100%;
    /* position: relative; */
}
.t-ourjob-entext::before {
    position: absolute;
    content: "Our Job Our Job";
    color: var(--grayscale-sub3);
    /* font-size: 240px; */
    /* viewport_1000px-1440px */
    font-size: clamp(13.188rem, 9.068rem + 6.59vw, 15rem);
    font-weight: 700;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    letter-spacing: 2px;
    top: -100px;
    /* left: 0; */
    /* viewport_1000px-2000px */
    left: clamp(-1.125rem, -4.75rem + 5.8vw, 2.5rem);
    z-index: 0;
    pointer-events: none;
    transform-origin: left top;
}
.t-ourjob .c-heading {
    width: 83.33%;
    margin-left: auto;
}
.t-ourjob-contents {
    background: var(--grayscale-sub3);
    border-radius: 30px 0 0 30px;
    width: 83.33%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: start;
    margin-left: auto;
    justify-items: center;
}
.t-ourjob-item:nth-of-type(odd) {
    border-right: 1px solid var(--grayscale-sub2);
}
.t-ourjob-item:nth-of-type(1),
.t-ourjob-item:nth-of-type(2) {
    border-bottom: 1px solid var(--grayscale-sub2);
}
.t-ourjob-item a {
    display: block;
    padding: 5.83vw 2.64vw;
}
.t-ourjob-item-img {
    position: relative;
    margin-bottom: 49px;
}
.t-ourjob-item-img .img-wrap {
    aspect-ratio: 13 / 8;
    overflow: hidden;
    border-radius: 20px;
    height: 100%;
    position: relative;
}
.t-ourjob-item-img .img-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 155, 112, 0.4);
    /* ← 色＆透明度。自由に変更可 */
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
}
.t-ourjob-item-img img {
    /* width: 520px;
    height: 320px; */
    /* min-width: 520px; */
    width: 100%;
    height: 100%;
    aspect-ratio: 13 / 8;
    border-radius: 20px;
    object-fit: cover;
    transition: transform 0.5s ease;
}
@media screen and (min-width: 600px) {
    .t-ourjob-item:hover .t-ourjob-item-img img {
        transform: scale(1.08);
    }
    .t-ourjob-item:hover .t-ourjob-item-img .img-wrap::after {
        opacity: 1;
    }
}
@media screen and (min-width: 1440px) {
    .t-ourjob-item-img img {
        min-width: 520px;
    }
}
.t-ourjob-item-img figcaption {
    position: absolute;
    background: var(--grayscale-sub3);
    bottom: -1px;
    left: 0;
    padding-top: 30px;
    width: 50%;
    max-width: 260px;
    border-radius: 0 10px 0 0;
}
.t-ourjob-item .p-text {
    margin-bottom: 39px;
}
.t-ourjob-item .c-btn01 {
    display: block;
    margin-left: auto;
}
/*--------------------------------
 welfare
---------------------------------*/
.c-heading.center {
    align-items: center;
}
.t-welfare {
    padding-top: 120px;
    padding-bottom: 180px;
    position: relative;
    z-index: 1;
}
.t-welfare::after {
    position: absolute;
    content: "";
    background-image: url(../images/mv-bg.webp);
    transform: scaleX(-1);
    bottom: -20%;
    left: 0;
    width: 100vw;
    height: 900px;
    z-index: -1;
}
.t-welfare .p-text {
    text-align: center;
    margin-bottom: 5vw;
}
.card-container {
    display: flex;
    flex-wrap: wrap;
    gap: 2.4rem;
    list-style: none;
    padding: 0;
    margin: 0;
    margin-bottom: 5vw;
}
@media screen and (max-width: 1200px){
.card-container {
    gap: 1.5rem;
}
}
.card-container>li {
    flex: 1 1 calc(33.333% - 2rem);
    display: flex;
}
.card-container .card {
    background: var(--grayscale-sub3);
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    flex: 1;
    border: 1px solid var(--grayscale-sub2);
    border-radius: 10px;
    padding: 3.19vw 2.77vw;
    /* gap: 1em; */
}
.card-container .card img {
    margin-bottom: 2.29vw;
}
@media screen and (max-width: 1050px){
.card-container .card img {
    width: 120px;
}
}
.card-container .card h3 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 2.91vw;
}
.card-container .card p {
    line-height: 2;
}
.t-welfare .c-btn01 {
    display: block;
    margin: 0 auto;
}
/*--------------------------------
 careers
---------------------------------*/
.t-careers {
    position: relative;
}
.t-careers::before {
    content: "";
    position: absolute;
    background: var(--bg-base);
    top: 0;
    left: 50%;
    width: 100vw;
    height: 500px;
    transform: translateX(-50%) skewY(6deg);
    transform-origin: 0 0;
    z-index: -1;
}
.t-carrers-container {
    background: var(--grayscale-sub3);
    border-radius: 30px;
    width: 83.33vw;
    max-width: 1210px;
    margin: auto;
    padding: 8.88vw 5.76vw;
    box-shadow: 0px 17px 39px 0px rgba(228, 241, 226, 0.5);
    position: relative;
    z-index: 1;
    min-width: 0;
}
.t-careers .p-text {
    margin-bottom: 72px;
}
.t-careers .flex {
    column-gap: 121px;
    min-width: 0;
}
@media screen and (max-width: 1300px){
.t-careers .flex {
    column-gap: 5vw;
}
.t-carrers-container {
    width: 100%;
}
.t-careers .circle-anime {
    top: -14%;
}
}
.t-carrers-text {
    flex: 1 1 auto;
}
.t-carrers-img {
    flex: 0 0 auto;
    position: relative;
}
.t-carrers-img img {
    aspect-ratio: 1 / 1;
    width: 100%;
    max-width: 458px;
    border-radius: 15px;
    object-fit: cover;
}
.t-careers .circle-anime {
    top: -21%;
    right: 13%;
}