@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;
}
/*--------------------------------
 全体
---------------------------------*/
body {
    font-size: 14px;
    letter-spacing: 0.05em;
}
/*--------------------------------
 table
---------------------------------*/
/*--------------------------------
 CTA
---------------------------------*/
.double-content {
    /* 375-600 55-78px; */
    font-size: clamp(3.438rem, 1.042rem + 10.22vw, 4.875rem);
}
.c-cta {
    padding: 23vw 0 10vw;
}
.c-cta-btn {
    margin-left: 0;
    margin: 0 auto;
    width: 100%;
    padding-top: 30px;
    padding-bottom: 30px;
    padding-bottom: 30px;
    padding-left: 24px;
}
.text-flowing {
    top: -15px;
}
.c-cta::before {
    background-size: auto 80%;
    background-position: right calc(100% - -14px);
}
/*--------------------------------
 footer
---------------------------------*/
footer {
    padding: 15vw 0;
}
footer .logo {
    /* 375-600 180-250px; */
    width: clamp(11.25rem, 3.958rem + 31.11vw, 15.625rem);
}
.c-footer-nav {
    width: auto;
}
.c-footer-nav {
    flex-direction: column;
    row-gap: 0.2rem;
}
footer .c-footer-main {
    padding-bottom: 8vw;
}
.c-footer-under {
    margin-bottom: 8vw;
}
.c-footer-under small {
    font-size: 10px;
}
.page-top {
    right: 8px;
    bottom: 8px;
}
.page-top__link {
    width: 40px;
    height: 40px;
}
/*--------------------------------
 レイアウト
---------------------------------*/
.p-text {
    margin-bottom: 28px;
    line-height: 2;
}
/*--------------------------------
 見出し
---------------------------------*/
.c-heading {
    /* 375-600 10-14px; */
    row-gap: clamp(0.625rem, 0.208rem + 1.78vw, 0.875rem);
    /* 375-600  24-30px; */
    margin-bottom: clamp(1.5rem, 0.875rem + 2.67vw, 1.875rem);
}
.c-heading .main {
    /* 375-600 24-36px; */
    font-size: clamp(1.5rem, 0.25rem + 5.33vw, 2.25rem);
}
.c-heading .sub {
    /* 200-600 15-18px; */
    font-size: clamp(0.938rem, 0.625rem + 1.33vw, 1.125rem);
}
/* 文字の前に縦ライン */
.c-heading-line {
    font-size: 18px;
    padding: .2em 0em .2em 1.4em;
}
.c-heading-line::before {
    left: 0%;
    top: 5%;
    bottom: 10%;
    width: .3em;
}
.t-ourjob-item-img figcaption {
    border-radius: 0 5px 0 0;
}
/*--------------------------------
 header
---------------------------------*/
header {
    padding: 1em;
    height: 60px;
}
header .logo {
    max-width: 213px;
    position: fixed;
    z-index: 101;
}
/*--------------------------------
  ハンバーガーメニュー
---------------------------------*/
.menu_btn {
    width: 48px;
    height: 48px;
    top: 1%;
}
.menu_btn span {
    width: 23px;
}
.menu_btn span:nth-of-type(1) {
    top: 17px;
}
.menu_btn span:nth-of-type(2) {
    top: 24px;
}
.menu_btn span:nth-of-type(3) {
    left: 17px;
    width: 16px;
}
.menu_btn::after,
.menu_btn.active::after {
    content: none;
}
.menu_btn.active span:nth-of-type(1) {
    width: 30px;
}
.menu_btn.active span:nth-of-type(3) {
    left: 9px;
}
#navi-full {
    top: 0%;
    border-radius: 0;
    width: 100vw;
    height: 100dvh;
}
.open #navi-full {
    right: 0;
}
/*--------------------------------
 トップページ
---------------------------------*/
.t-mv .catch-copy {
    /* 250-600  font-size: 18-36px; */
    font-size: clamp(1.125rem, 0.321rem + 5.14vw, 2.25rem);
    /* 250-600  letter-spacing: 2-5.2px; */
    letter-spacing: clamp(0.125rem, -0.018rem + 0.91vw, 0.325rem);
}
.circle-anime {
    width: 110px;
    height: 110px;
    top: 28%;
    right: 16%;
}
@media screen and (max-width: 330px) {
    .circle-anime {
        width: 90px;
        height: 90px;
        top: 23%;
        right: 21%;
    }
}
.t-mv-slide .slide-item {
    margin: 0 2.5vw;
}
.t-mv-slide .slide-item .item1 {
    margin-top: 15vw;
    /* 250-600  width: 250-350px; */
    max-width: clamp(15.625rem, 11.161rem + 28.57vw, 21.875rem);
}
.t-mv-slide .slide-item .item2 {
    margin-top: 18vw;
    /* 250-600  width: 200-380px; */
    width: clamp(12.5rem, 4.464rem + 51.43vw, 23.75rem);
}
.t-mv-slide .slide-item .item3 {
    margin-top: 13vw;
    /* 250-600  width: 230-300px; */
    width: clamp(14.375rem, 11.25rem + 20vw, 18.75rem);
}
.t-mv-slide .slide-item .item4 {
    margin-top: 19vw;
    /* 250-600  width: 200-340px; */
    width: clamp(12.5rem, 6.25rem + 40vw, 21.25rem);
}
.t-mv-slide .slide-item .item5 {
    margin-top: 11vw;
    /* 250-600  width: 230-300px; */
    width: clamp(14.375rem, 11.25rem + 20vw, 18.75rem);
}
.t-mv-slide .slide-item .item6 {
    margin-top: 16vw;
    /* 250-600  width: 200-320px; */
    width: clamp(12.5rem, 7.143rem + 34.29vw, 20rem);
}
.t-message {
    padding-top: 150px;
    /* 250-600  90-150px; */
    padding-top: clamp(5.625rem, 3.755rem + 14.96vw, 9.375rem);
}
.t-message .main-text h3 {
    /* 375-600  18-26px; */
    font-size: clamp(1.125rem, 0.292rem + 3.56vw, 1.625rem);
    /* 375-600  24-46px; */
    margin-bottom: clamp(1.5rem, -0.792rem + 9.78vw, 2.875rem);
}
.t-message .main-text {
    /* 375-600  38-58px; */
    margin-top: clamp(2.375rem, 0.292rem + 8.89vw, 3.625rem);
}
.t-message .main-text .p-text.last {
    margin-bottom: 15vw;
}
.t-about .t-about-main {
    margin-left: auto;
    margin: 0 auto;
    border-radius: 20px;
    padding: 13vw 6vw;
}
.c-btn-list li .c-btn01 {
    width: 254px;
}
.t-contents-slider {
    padding: 80px 0 20px;
}
/* .t-contents-slide .slide-item {
    width: auto;
    height: 300px;
}
.t-contents-slide .slide-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
@media screen and (max-width: 400px) {
    .t-contents-slide .slide-item {
        width: auto;
        height: 200px;
    }
} */
.t-traditional {
    padding: 80px 0 100px 0;
}
.t-traditional-text .p-text,
.t-traditional-btn {
    margin-bottom: 15vw;
}
.t-ourjob {
    padding-top: 80px;
}
.t-ourjob .c-heading {
    width: 95%;
}
.t-ourjob-contents {
    border-radius: 20px;
}
.t-ourjob-item-img .img-wrap {
    border-radius: 10px;
}
.t-ourjob-item-img {
    margin-bottom: 28px;
}
.t-ourjob-item .p-text {
    margin-bottom: 28px;
}
.t-ourjob::after {
    border-bottom: 50px solid var(--grayscale-sub3);
}
.t-ourjob {
    padding-bottom: 120px;
}
.t-welfare {
    padding-top: 80px;
}
.t-welfare .p-text {
    margin-bottom: 8vw;
}
.card-container {
    grid-template-columns: repeat(1, 1fr);
}
.card-container>li:nth-of-type(1),
.card-container>li:nth-of-type(2),
.card-container>li:nth-of-type(3) {
    grid-area: auto;
}
.card-container .card h3 {
    /* 375-600   18-22px; */
    font-size: clamp(1.125rem, 0.708rem + 1.78vw, 1.375rem);
    margin-bottom: 6vw;
}
.card-container .card p {
    line-height: 1.8;
}
.card-container .card img {
    margin-bottom: 5vw;
}
@media screen and (max-width: 380px) {
    .card-container .card img {
        width: 80px;
    }
    .card-container .card {
        padding: 8vw 4vw;
    }
}
.card-container {
    margin-bottom: 14vw;
}
.t-carrers-container {
    padding: 16vw 6vw;
}
.t-careers .p-text {
    margin-bottom: 15vw;
}
/*--------------------------------
 下層_共通_main-visual
---------------------------------*/
.l-heading {
    row-gap: 6px;
    /* 375-600  18-24*/
    margin-bottom: clamp(1.125rem, 0.5rem + 2.67vw, 1.5rem);
    /* 375-600  30-50*/
    margin-top: clamp(3.125rem, 1.237rem + 5.03vw, 4.375rem);
}
.l-heading .main {
    /* 375-600  14-18*/
    font-size: clamp(0.875rem, 0.458rem + 1.78vw, 1.125rem);
}
.l-heading .sub {
    /* 375-600  34-55*/
    font-size: clamp(2.125rem, -0.063rem + 9.33vw, 3.438rem);
}
/* パンくずリスト */
.breadcrumb {
    /* 375-600  32-48*/
    margin-bottom: clamp(2rem, 0.333rem + 7.11vw, 3rem);
}
.breadcrumb__list li {
    font-size: 12px;
}
.l-mv-img {
    width: auto;
    margin-right: 0;
    border-radius: 10px;
    aspect-ratio: 4 / 3;
}
.l-mv-img img {
    border-radius: 10px;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
/* アンカーリンクボタン */
.anchor-list {
    grid-template-columns: repeat(1, 1fr);
    gap: 9vw;
}
@media screen and (max-width: 400px) {
    .anchor-list {
        gap: 12vw;
    }
}
.c-btn-anchor {
    width: 100%;
}
/*--------------------------------
 下層共通
---------------------------------*/
.l-section-first {
    padding-top: 15vw;
}
/*--------------------------------
 白背景ボックス
---------------------------------*/
.box {
    padding: 15vw 8.88vw;
}
/*--------------------------------
 下層_共通_table
---------------------------------*/
/*--------------------------------
 下層_aboutページ
---------------------------------*/
.l-about-message .p-text:last-of-type {
    /* 375-600  38-48*/
    margin-bottom: clamp(2.375rem, 1.333rem + 4.44vw, 3rem);
}
.david .company {
    font-size: 12px;
    line-height: 2;
}
.david .name {
    font-size: 18px;
}
.david .name>span {
    font-size: 14px;
}
.l-about-message .flex {
    flex-direction: column;
    row-gap: 5vw;
}
.l-about-message-img {
    max-width: none;
}
.l-about-message {
    padding-bottom: 300px;
}
.l-about-about .p-text:last-of-type {
    /* 375-600  40-72*/
    margin-bottom: clamp(2.5rem, -0.833rem + 14.22vw, 4.5rem);
}
.l-about-about {
    padding-bottom: 90px;
}
/*--------------------------------
 下層_entryページ
---------------------------------*/
.l-entry-flow .p-text {
    margin-bottom: 28px;
}
.flow-item:not(:last-child) {
    margin-bottom: 58px;
}
.flow-item:not(:last-child)::after {
    border: 12px solid transparent;
    border-top-color: var(--primary-main);
    bottom: -47px;
}
.flow-content {
    flex-direction: column;
    row-gap: 1em;
}
.flow-step {
    font-size: 20px;
}
.flow-title {
    width: auto;
    font-size: 16px;
}
.flow-item {
    padding: 5vw 4vw;
}
.l-entry-flow {
        /* 375-600  100-180*/
    padding-bottom: 90px;
}
.l-entry-form {
    padding-top: 90px;
}
.timeline-003 {
    width: 100%;
    margin: 38px auto;
    font-size: 12px;
}
.timeline-003 li::before {
    width: 21px;
    height: 21px;
    margin-bottom: 9px;
}
.timeline-003 li:not(:last-child)::after {
    top: 9px;
}
/* form */
.form__item {
    padding: 22px 0.4em;
}
.form .form__require,
.form .form__any {
    font-size: 10px;
    padding: 4px 6px;
}
.form__select {
    font-size: 14px;
}
.form__content .form__select {
    width: 50px;
}
::placeholder {
font-size:14px;
}
@media screen and (max-width: 390px) {
.form__content {
    flex-direction: column;
    row-gap: 0.5em;
    width: 100%;
}
.form__content .form__select {
    width: 100%;
}
.form__flex {
    width: 100%;
}
::placeholder {
    font-size: 13px;
}
}
.form__item.last {
    margin-bottom: 20px;
}
.form__btn .c-cta-btn {
    padding: 22px 24px;
    font-size: 16px;
}
/* 確認ページ */
.sendmail-section {
    padding: 90px 0;
}
/*--------------------------------
 our job
---------------------------------*/
.job-list>img {
   margin-bottom: 20px;
   aspect-ratio: 5 / 3;
}
.job-list>h3 {
    /* 375-600 22-28px */
    font-size: clamp(1.375rem, 0.75rem + 2.67vw, 1.75rem);
    margin-bottom: 12px;
}
.job-list>.p-text {
    /* 375-600 20-30px */
margin-bottom: clamp(1.25rem, 0.208rem + 4.44vw, 1.875rem);
}
.placement-boxes {
    grid-template-columns: repeat(1, 1fr);
    gap: 18px;
}
.placement-boxes h4 {
    text-align: center;
}
.l-box-small {
    padding: 6vw 8vw;
}
.l-box>h4 {
    font-size: 18px;
    margin-bottom: 16px;
    line-height: 1.5;
}
.job-list {
    margin-bottom: 80px;
}
.l-job-placement {
    padding-bottom: 90px;
}
.l-job-alignment, .l-job-job {
    padding: 90px 0;
}
.tab {
    font-size: 14px;
}
@media screen and (max-width: 540px) {
.tab-container {
    flex-direction: column;
}
.tab {
    width: 100%;
}
}
/*--------------------------------
 welfare
---------------------------------*/
.l-welfare .l-box-medium {
    padding: 6vw 8vw;
}
.l-box-medium .p-text {
    margin-bottom: 28px;
}
.l-welfare-growth ,
.l-welfare-comfort,
.l-welfare-benefit {
    padding: 90px 0;
}
.l-box-medium {
    margin-bottom: 30px;
}
/* .welfare-flex {
    gap: 10px;
} */
.welfare-flex img{
    width: 60%;
}
.l-welfare-growth .welfare-flex img {
    width: 43%;
}