@charset "UTF-8";
/* common
----------------------------------------------------------- */
body {
  background: #faf5f0;
  font-family: "Zen Old Mincho", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 17px;
  font-size: 1.7rem;
  color: #4c3e39;
  overflow: hidden;
  animation: fadeIn 2s ease 0s 1 normal; }

#wrapper {
  width: auto;
  margin: 0 auto; }

@media screen and (min-width: 769px) {
  .sp {
    display: none; } }

@keyframes fadeIn {
  0% {
    opacity: 0; }
  20% {
    opacity: 0; }
  100% {
    opacity: 1; } }
p {
  line-height: 2.2;
  letter-spacing: .05em; }

a {
  color: #4c3e39;
  text-decoration: none;
  transition: all .3s; }

a.tdu:hover {
  text-decoration: underline; }

.ja {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-style: normal;
  line-height: 1.0; }

.en, .num {
  font-family: "Sansita", sans-serif;
  line-height: 1.0;
  font-style: normal;
  font-optical-sizing: auto; }

::-moz-selection {
  background: #ef863c;
  color: #fff; }

::selection {
  background: #ef863c;
  color: #fff; }

@media screen and (min-width: 769px) {
  a[href^="tel:"] {
    pointer-events: none; } }
table {
  border-collapse: collapse;
  width: 100%; }

th {
  font-weight: 700; }

.js-fade_up {
  opacity: 0;
  transform: translateY(120px);
  transition: opacity 1.8s ease-in-out, transform 1.8s cubic-bezier(0.25, 1, 0.5, 1); }

.js-fade_up.is-show {
  transform: translate(0, 0);
  opacity: 1;
  transition-delay: .2s; }

/* header
----------------------------------------------------------- */
.head__wrap {
  width: 100%;
  position: relative;
  margin: 0 auto;
  padding: 0;
  padding-bottom: 42vw;
  transition: all .3s;
  z-index: 10; }

.head__inner {
  width: 100%;
  position: relative;
  display: flex;
  justify-content: space-between;
  z-index: 2; }

.head__logo {
  width: 120px;
  padding: calc((40 / 1920) * 100vw) 0 0 calc((80 / 1920) * 100vw);
  transition: all .3s;
  text-align: center; }
  .head__logo .logo {
    width: clamp(70px, 7.5vw, 120px); }
  .head__logo a {
    display: block;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center; }
  .head__logo img {
    max-width: 100%; }
  .head__logo strong {
    background: #fff;
    color: #79655e;
    font-size: 16px;
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    margin: 14px auto 0;
    padding: .4em 1em;
    padding-right: .8em;
    display: block;
    white-space: nowrap;
    inline-size: fit-content;
    text-align: center; }

@media screen and (min-width: 769px) and (max-width: 1280px) {
  .head__logo {
    margin-right: 20px; }
    .head__logo strong {
      font-size: 12px;
      font-size: 1.2rem;
      margin: 10px auto 0;
      padding: .4em .7em;
      padding-right: .5em; } }
.head__nav {
  width: auto;
  padding-top: 30px; }

.fat-nav__wrapper {
  display: flex;
  justify-content: flex-end;
  align-items: center; }

#global-nav {
  margin-right: calc((20 / 1920) * 100vw); }
  #global-nav .menu {
    display: flex;
    align-items: center;
    padding-top: 1em; }
    #global-nav .menu > li {
      position: relative; }
      #global-nav .menu > li a {
        font-size: clamp(15px, 0.9375vw, 18px);
        font-weight: 700;
        color: #fff;
        display: block;
        text-align: center;
        padding-right: calc((30 / 1920) * 100vw);
        padding-left: calc((30 / 1920) * 100vw);
        letter-spacing: 0.1em;
        position: relative;
        white-space: nowrap; }
        #global-nav .menu > li a:hover {
          color: #ef863c;
          text-decoration: none; }
        #global-nav .menu > li a span {
          color: #f5b98e;
          font-family: "Sansita", sans-serif;
          font-optical-sizing: auto;
          font-weight: 400;
          font-style: normal;
          line-height: 1.0;
          font-size: clamp(10px, 0.7291666667vw, 14px);
          letter-spacing: .1em;
          margin-top: .8em;
          display: block; }
        #global-nav .menu > li a::before {
          content: '';
          position: absolute;
          background: url("../images/common/dot_line.svg") right center;
          width: 2px;
          height: 14px;
          top: 4px;
          right: 0; }

.head__contact {
  padding-left: 30px;
  padding-right: 10px; }

.btn--contact {
  font-size: 20px;
  font-size: 2rem;
  letter-spacing: 0.1em;
  color: #fff;
  background: #ef863c;
  width: 340px;
  height: 80px;
  padding: 15px 17px 15px 86px;
  border-radius: calc(1px / 0);
  display: block;
  text-align: center;
  position: relative;
  font-weight: 700;
  display: flex;
  align-items: center; }
  .btn--contact::before {
    content: '';
    position: absolute;
    background: url("../images/common/icon_mail.svg") left center no-repeat;
    background-size: cover;
    width: 50px;
    height: 50px;
    top: calc(50% - (50px / 2));
    left: 17px; }
  .btn--contact:hover {
    filter: contrast(120%); }

@media screen and (min-width: 769px) and (max-width: 1280px) {
  .btn--contact {
    font-size: 16px;
    font-size: 1.6rem;
    width: auto;
    height: 60px;
    padding: 8px 20px 8px 72px;
    inline-size: fit-content; }
    .btn--contact::before {
      width: 40px;
      height: 40px;
      top: calc(50% - (40px / 2));
      left: 17px; } }
@media screen and (min-width: 769px) {
  .head__inner.fixed {
    position: fixed;
    top: 0;
    left: 0;
    background: #faf5f0;
    z-index: 99999 !important; }
    .head__inner.fixed .head__logo {
      width: 220px;
      padding: 12px 0 0 20px;
      text-align: left; }
      .head__inner.fixed .head__logo .logo {
        width: 100%; }
      .head__inner.fixed .head__logo a {
        flex-direction: row;
        justify-content: flex-start; }
      .head__inner.fixed .head__logo img {
        max-width: inherit;
        width: 50px; }
      .head__inner.fixed .head__logo strong {
        font-size: 12px;
        font-size: 1.2rem;
        margin: 16px auto 0; }
    .head__inner.fixed .head__nav {
      padding-top: 12px;
      padding-bottom: 12px; }
    .head__inner.fixed #global-nav .menu {
      padding-top: 0; }
      .head__inner.fixed #global-nav .menu > li a {
        color: #4c3e39; }
        .head__inner.fixed #global-nav .menu > li a:hover {
          color: #ef863c; }
        .head__inner.fixed #global-nav .menu > li a span {
          color: #f5b98e; }
        .head__inner.fixed #global-nav .menu > li a::before {
          content: '';
          position: absolute;
          background: url("../images/common/dot_line_bk.svg") right center;
          width: 2px;
          height: 14px;
          top: 4px;
          right: 0; } }
@media screen and (min-width: 769px) {
  #global-nav {
    display: block !important; } }
/* visual
----------------------------------------------------------- */
.tp__visual {
  width: 100%;
  position: relative;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1; }

.tp__visual__inner {
  position: relative;
  width: calc((1460 / 1920) * 100vw);
  height: 100%;
  margin-left: auto;
  text-align: right; }

.tp__slide__copy {
  position: absolute;
  top: 29vw;
  left: -17vw;
  z-index: 99999; }
  .tp__slide__copy img {
    width: calc((1000 / 1920) * 100vw); }

.slider {
  z-index: 9999; }

.tp__slide__cta {
  width: clamp(180px, 13.125vw, 252px);
  position: absolute;
  top: 36vw;
  right: 2vw;
  z-index: 1;
  pointer-events: auto; }
  .tp__slide__cta a {
    display: block;
    pointer-events: auto; }
    .tp__slide__cta a:hover {
      filter: contrast(120%); }

.parts__circle--01 {
  position: absolute;
  top: 270px;
  left: 0; }

@media screen and (min-width: 769px) and (max-width: 1580px) {
  .parts__circle--01 {
    transition: all .3s;
    top: 100px; } }
/* .tp__about
----------------------------------------------------------- */
.tp__about {
  width: 100%;
  position: relative;
  padding-bottom: calc((320 / 1920) * 100vw);
  position: relative;
  z-index: 4; }

.tp__about__inner {
  position: relative;
  padding-left: calc((260 / 1920) * 100vw);
  padding-right: calc((360 / 1920) * 100vw);
  display: flex;
  flex-direction: row;
  justify-content: space-between; }

.tp__about__ttl {
  position: relative;
  top: -5vw;
  top: 7vw;
  left: 0;
  z-index: 1;
  margin: 0; }
  .tp__about__ttl span {
    font-family: "Sansita", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    line-height: 1.0;
    font-size: clamp(150px, calc(220 / 1500 * 100vw), 220px);
    opacity: 0.5;
    filter: alpha(opacity=50);
    color: #fff;
    font-weight: 700;
    display: block;
    white-space: nowrap; }

.tp__about__detail {
  z-index: 2;
  position: relative;
  padding-top: calc((500 / 1920) * 100vw);
  margin-left: -510px;
  text-align: right; }

@media screen and (max-width: 1500px) {
  .tp__about__detail {
    margin-left: calc(((510 / 1400) * 100vw) * -1); } }
.tp__about__txt p {
  font-size: clamp(16px, calc(20 / 1500 * 100vw), 20px);
  font-weight: 700;
  letter-spacing: 3;
  text-align: left;
  margin-bottom: 2em; }

.tp__about__btn {
  margin-top: 4.6875vw; }

/*ボタン*/
.btn--wt {
  display: inline-flex;
  align-items: center;
  border: 1px solid #e7d9cc;
  background-color: transparent;
  border-radius: calc(1px / 0);
  padding: 5px;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease; }
  .btn--wt::before {
    content: "";
    position: absolute;
    top: 5px;
    left: 5px;
    right: 5px;
    bottom: 5px;
    background-color: #fff;
    border-radius: calc(1px / 0);
    z-index: 1;
    transition: background-color 0.3s ease; }
  .btn--wt span {
    padding: 26px 48px;
    position: relative;
    font-size: 18px;
    font-size: 1.8rem;
    font-weight: 700;
    z-index: 2;
    margin-right: 28px;
    white-space: nowrap; }
  .btn--wt::after {
    content: "";
    display: inline-block;
    background: url("../images/common/icon_arrow_or.svg") no-repeat center center;
    background-size: contain;
    width: 14px;
    height: 8px;
    position: absolute;
    right: 34px;
    z-index: 2;
    transition: transform 0.3s ease; }
  .btn--wt:hover::before {
    background-color: rgba(245, 185, 142, 0.1); }
  .btn--wt:hover::after {
    transform: translateX(5px); }

.parts__circle--02 {
  position: absolute;
  top: calc((120 / 1920) * 100vw);
  right: 0;
  z-index: 0; }

.parts__circle--03 {
  position: absolute;
  bottom: calc(((100 / 1920) * 100vw) * -1);
  left: 0;
  z-index: 0; }

.parts__olive--01 {
  width: calc((417 / 1920) * 100vw);
  position: absolute;
  top: calc((620 / 1920) * 100vw);
  left: 0; }

/* tp__workplace
----------------------------------------------------------- */
.tp__workplace {
  width: 100%;
  margin: 0 auto;
  padding-bottom: calc((360 / 1920) * 100vw);
  display: flex;
  z-index: 5;
  position: relative;
  background: #f5ede7; }
  .tp__workplace::after {
    content: '';
    position: absolute;
    background: url("../images/common/shape_ribbon.svg") no-repeat top left;
    background-size: cover;
    width: 100vw;
    height: calc((756 / 1920) * 100vw);
    top: 9vw;
    left: 0;
    z-index: -1; }

.tp__workplace::before {
  content: "";
  position: absolute;
  background: linear-gradient(to bottom, rgba(245, 237, 231, 0) 0%, #f5ede7 100%);
  width: 100%;
  height: calc((250 / 1920) * 100vw);
  top: calc(((250 / 1920) * 100vw) * -1);
  left: 0; }

.tp__workpl__inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  position: relative; }

.tp__workpl__img {
  width: clamp(400px, calc(840 / 1920 * 100vw), 840px);
  position: relative; }

.tp__workpl__img--01 {
  position: absolute;
  top: calc(((260 / 1920) * 100vw) * -1);
  left: calc((180 / 1920) * 100vw);
  width: calc((320 / 1920) * 100vw);
  z-index: 2;
  box-shadow: 0px 0px 40px 20px white; }

.tp__workpl__img--02 img {
  width: 100%;
  height: auto;
  z-index: 1;
  box-shadow: 0px 0px 40px 20px white; }

.tp__workpl__en {
  position: absolute;
  bottom: -65px;
  left: 20px;
  font-size: clamp(80px, calc(180 / 1800 * 100vw), 180px);
  font-weight: 700;
  letter-spacing: .02em;
  z-index: 3;
  color: #000;
  background: linear-gradient(to right, rgba(198, 237, 170, 0.7) 0%, rgba(255, 198, 150, 0.7) 50%, rgba(238, 198, 196, 0.7) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-fill-color: transparent; }

.tp__workpl__detail {
  flex: 1;
  padding-left: calc((120 / 1920) * 100vw);
  padding-right: calc((410 / 1920) * 100vw);
  position: relative; }

.tp__ttl .en {
  font-size: clamp(14px, calc(20 / 1500 * 100vw), 20px);
  color: #a0908a;
  background: url("../images/common/shape_ttl.svg") no-repeat left center;
  padding-left: 1.2em;
  letter-spacing: .05em; }
.tp__ttl .ja {
  font-size: clamp(24px, calc(50 / 1600 * 100vw), 50px);
  color: #79655e;
  font-weight: 700;
  letter-spacing: .2em;
  margin-top: .6em;
  white-space: nowrap; }
  .tp__ttl .ja span {
    color: #ef863c;
    font-weight: 700; }

.tp__workpl__copy {
  color: #79655e;
  font-size: calc((30 / 1920) * 100vw);
  font-size: clamp(18px, calc((30 / 1920) * 100vw), 30px);
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: .1em;
  margin-top: 6vw; }

@media screen and (max-width: 1500px) {
  .tp__workpl__copy {
    margin-top: 3vw; } }
.tp__workpl__txt {
  margin-top: 2em; }
  .tp__workpl__txt p {
    font-size: clamp(15px, 2vw, 17px);
    line-height: 2.0; }

.tp__workpl__btn {
  margin-top: 4em;
  text-align: right; }

.tp__workpl__img--03 {
  position: absolute;
  top: 0;
  right: 0;
  width: calc((320 / 1920) * 100vw);
  height: auto;
  z-index: 1;
  box-shadow: 0px 0px 40px 20px white; }

.parts__olive--02 {
  width: calc((231 / 1920) * 100vw);
  position: absolute;
  bottom: calc((180 / 1920) * 100vw);
  right: 0; }

/* tp__interview
----------------------------------------------------------- */
.tp__interview {
  width: 100%;
  position: relative;
  background: #f5ede7;
  padding-top: calc((160 / 1920) * 100vw);
  padding-bottom: calc((230 / 1920) * 100vw); }
  .tp__interview::after {
    content: '';
    position: absolute;
    background: url("../images/tp_interview_bg.jpg") no-repeat top left;
    background-size: cover;
    width: calc((1760 / 1920) * 100vw);
    height: calc((610 / 1920) * 100vw);
    top: 0;
    left: 0; }

.tp__interv__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1200px);
  margin: 0 auto; }

.tp__interv__ttl {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  position: relative;
  z-index: 1; }
  .tp__interv__ttl .tp__interv__btn {
    position: relative;
    top: 18px; }

@media screen and (max-width: 1500px) {
  .tp__interv__ttl {
    padding-right: 8vw; }
    .tp__interv__ttl .tp__interv__btn {
      position: relative;
      top: 18px; } }
.tp__interview-wrapper {
  position: relative;
  width: 100%;
  z-index: 2; }

.tp__interv__list {
  width: 100%;
  margin-top: 100px;
  position: relative;
  z-index: 1; }
  .tp__interv__list ul {
    width: 100% !important;
    display: flex;
    justify-content: space-between;
    padding: 0;
    margin: 0;
    transition: transform 0.3s ease;
    will-change: transform; }
  .tp__interv__list li {
    margin-right: 90px;
    width: 340px !important; }
  .tp__interv__list a {
    display: block;
    transition: all .3s; }
    .tp__interv__list a:hover {
      filter: saturate(105%) contrast(110%); }
      .tp__interv__list a:hover figure {
        opacity: 0.7;
        filter: alpha(opacity=70); }
  .tp__interv__list figure {
    width: 330px;
    height: 470px;
    border: 1px solid #e3d2c3;
    padding: 5px;
    background: #fff;
    border-radius: calc(1px / 0);
    transition: all .3s;
    position: relative; }
    .tp__interv__list figure img {
      width: 100%;
      height: 100%;
      object-position: 50% 50%;
      object-fit: cover;
      border-radius: calc(1px / 0); }
  .tp__interv__list .comment {
    font-size: 18px;
    font-size: 1.8rem;
    line-height: 1.7;
    position: relative;
    padding-top: 1.7em; }
    .tp__interv__list .comment::before {
      content: '';
      position: absolute;
      background: url("../images/common/shape_comment.svg") no-repeat top left;
      background-size: cover;
      width: 21px;
      height: 19px;
      top: 0;
      left: -1.4em; }
  .tp__interv__list .job {
    font-size: 18px;
    font-size: 1.8rem;
    text-align: center;
    color: #fff;
    background: #ef863c;
    border-radius: calc(1px / 0);
    padding: .1em 1.6em;
    margin-top: 1.4em;
    inline-size: fit-content;
    margin-inline: auto; }

.tp__interv__en {
  writing-mode: vertical-lr;
  position: absolute;
  right: 0;
  top: calc(((80 / 1920) * 100vw) * -1);
  z-index: 5; }

.tp__interv__en p {
  font-size: calc((180 / 1920) * 100vw);
  font-weight: 700;
  color: #fff;
  opacity: 0.7;
  filter: alpha(opacity=70);
  margin: 0;
  padding: 0; }

@media screen and (max-width: 1500px) {
  .tp__interv__en p {
    font-size: 80px; } }
/*前へ・次へボタン*/
.slide-arrow {
  position: absolute;
  top: calc(50% - 110px);
  z-index: 10;
  width: 80px;
  height: 80px;
  cursor: pointer;
  transition: all .3s;
  box-shadow: 0px 0px 20px 5px white;
  border-radius: calc(1px / 0);
  z-index: 999; }
  .slide-arrow:hover {
    filter: brightness(130%); }

.prev-arrow {
  background: url("../images/icon_brown_l.png") no-repeat;
  left: -60px; }

.next-arrow {
  background: url("../images/icon_brown_r.png") no-repeat;
  right: -60px; }

@media screen and (max-width: 1500px) {
  .slide-arrow {
    width: 60px;
    height: 60px; }

  .prev-arrow {
    background: url("../images/icon_brown_l.png") no-repeat;
    left: -20px; }

  .next-arrow {
    background: url("../images/icon_brown_r.png") no-repeat;
    right: -20px; } }
/* tp__jobs
----------------------------------------------------------- */
.tp__jobs {
  width: 100%;
  background: #f5ede7;
  position: relative;
  padding-top: calc((60 / 1920) * 100vw);
  padding-bottom: calc((220 / 1920) * 100vw); }
  .tp__jobs::after {
    content: '';
    position: absolute;
    background: #faf5f0;
    width: calc((1600 / 1920) * 100vw);
    height: 100%;
    right: 0;
    top: 0; }

.tp__jobs__inner {
  position: relative;
  z-index: 1; }

.ttl__grad {
  text-align: center;
  position: relative;
  padding-bottom: calc((50 / 1920) * 100vw); }
  .ttl__grad .ja {
    font-size: clamp(30px, calc((50 / 1920) * 100vw), 50px);
    color: #79655e;
    font-weight: 700;
    letter-spacing: .2em;
    position: relative;
    top: calc((180 / 1920) * 100vw); }
  .ttl__grad .en {
    font-size: clamp(8px, calc((180 / 1920) * 100vw), 180px);
    color: #fff;
    font-weight: 700; }
  .ttl__grad::before {
    content: '';
    position: absolute;
    background: url("../images/common/shape_ttl.svg") no-repeat center center;
    width: 13px;
    height: 13px;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%); }
  .ttl__grad::after {
    content: '';
    position: absolute;
    background: url("../images/common/circle_orange.png") no-repeat center center;
    background-size: cover;
    width: 601px;
    height: 601px;
    bottom: -370px;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1; }

.tp__jobs__list {
  width: 95%;
  margin: calc((80 / 1920) * 100vw) auto 0; }
  .tp__jobs__list ul {
    display: flex;
    justify-content: space-between; }
  .tp__jobs__list li {
    width: 33.3%;
    text-align: center;
    position: relative; }
  .tp__jobs__list figure {
    transition: all .3s; }
  .tp__jobs__list a {
    display: block;
    height: 100%;
    padding: 80px 70px 130px;
    position: relative;
    transition: all .4s; }
    .tp__jobs__list a:hover figure {
      transform: scale(1.08, 1.08); }
    .tp__jobs__list a:hover .tp__jobs__en {
      letter-spacing: .1em; }

.tp__jobs__cate {
  display: flex;
  align-items: center;
  padding-left: 10px;
  margin-bottom: 40px; }
  .tp__jobs__cate .num {
    color: #fff;
    font-weight: 700;
    font-size: 17px;
    font-size: 1.7rem;
    background: url("../images/common/dot_line.svg") no-repeat center right;
    padding-right: 1em;
    margin-right: 1.5em; }
  .tp__jobs__cate .ja {
    color: #fff;
    font-size: clamp(32px, calc((40 / 1920) * 100vw), 40px);
    letter-spacing: .2em;
    position: relative;
    top: -3px; }

.tp__jobs__txt {
  margin-top: 2em; }
  .tp__jobs__txt p {
    color: #fff;
    text-align: left;
    font-weight: 700;
    line-height: 2.0; }

.tp__jobs__list li .btn--more {
  position: absolute;
  bottom: 45px;
  right: 80px; }

.btn--more {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-bottom: .8em;
  width: fit-content;
  block-size: fit-content; }
  .btn--more p {
    display: flex;
    align-items: center;
    font-size: 18px;
    font-size: 1.8rem;
    margin: 0; }
    .btn--more p span {
      padding-left: 1rem;
      display: inline-block;
      color: #fff;
      font-family: "Sansita", sans-serif;
      font-optical-sizing: auto;
      font-weight: 400;
      font-style: normal;
      line-height: 1.0; }
  .btn--more::after {
    content: "";
    display: inline-block;
    background: url("../images/common/icon_arrow_w.svg") no-repeat center right;
    background-size: contain;
    width: 14px;
    height: 8px;
    padding-left: 3em; }
  .btn--more::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #fff; }

.btn--more:hover p {
  transition: color 0.3s ease; }

.btn--more:hover::after {
  transform: translateX(5px);
  transition: transform 0.3s ease; }

.tp__jobs__en {
  font-size: clamp(40px, calc((110 / 1920) * 100vw), 110px);
  font-family: "Sansita", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  line-height: 1.0;
  font-weight: 700;
  line-height: .9;
  color: #fad6b2;
  opacity: 0.5;
  filter: alpha(opacity=50);
  position: absolute;
  top: calc((74 / 1920) * 100vw);
  right: calc((10 / 1920) * 100vw);
  writing-mode: vertical-rl;
  text-align: left;
  z-index: 1;
  transition: all .5s; }

.jobs__list--01 {
  background: url("../images/tp_job_bg01.jpg") no-repeat top left;
  background-size: cover; }
  .jobs__list--01 .tp__jobs__en {
    color: #fad6b2; }

.jobs__list--02 {
  background: url("../images/tp_job_bg02.jpg") no-repeat top left;
  background-size: cover; }
  .jobs__list--02 .tp__jobs__en {
    color: #f7e0e0; }

.jobs__list--03 {
  background: url("../images/tp_job_bg03.jpg") no-repeat top left;
  background-size: cover; }
  .jobs__list--03 .tp__jobs__en {
    color: #dceccf; }

.parts__olive--03 {
  width: calc((303 / 1920) * 100vw);
  position: absolute;
  top: calc((20 / 1920) * 100vw);
  left: calc((80 / 1920) * 100vw);
  z-index: 0; }

.parts__circle--w {
  position: absolute;
  top: calc(((180 / 1920) * 100vw) * -1);
  left: calc((40 / 1920) * 100vw);
  z-index: 0; }

/* tp__recruit
----------------------------------------------------------- */
.tp__recruit {
  width: 100%;
  position: relative;
  background: #f5ede7;
  padding-top: calc((190 / 1920) * 100vw);
  z-index: 2; }

.tp__recruit__inner {
  width: 100%;
  position: relative;
  background: #f6faf0;
  margin: 0;
  margin-top: -1px; }
  .tp__recruit__inner::after {
    content: '';
    position: absolute;
    background: url("../images/common/shape_ribbon02.svg") no-repeat top left;
    background-size: contain;
    width: 110vw;
    height: calc((660 / 1920) * 100vw);
    top: 25.5vw;
    left: calc(((100 / 1920) * 100vw) * -1); }

.tp__recruit__img {
  width: 108%; }
  .tp__recruit__img img {
    width: 100%;
    display: block;
    height: auto; }

.tp__recruit__about {
  width: min(90%, 1200px);
  margin: 0 auto;
  display: flex;
  position: relative;
  z-index: 1; }

.tp__recruit__ttl {
  position: relative;
  top: calc(((130 / 1920) * 100vw) * -1); }
  .tp__recruit__ttl .en {
    width: fit-content;
    font-size: clamp(120px, calc((180 / 1920) * 100vw), 180px);
    font-weight: 700;
    letter-spacing: .02em;
    z-index: 3;
    color: transparent;
    background: linear-gradient(to right, rgba(198, 237, 170, 0.7) 0%, rgba(198, 237, 170, 0.7) 7%, rgba(255, 198, 150, 0.7) 50%, rgba(238, 198, 196, 0.7) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-fill-color: transparent; }
  .tp__recruit__ttl .ja {
    font-size: clamp(30px, calc((50 / 1920) * 100vw), 50px);
    color: #79655e;
    font-weight: 700;
    letter-spacing: .2em;
    position: relative;
    margin-top: .7em; }

.tp__recruit__txt {
  padding-top: calc((100 / 1920) * 100vw); }

.tp__recruit__menu {
  width: min(90%, 1560px);
  margin: 80px auto 0;
  position: relative;
  z-index: 1; }
  .tp__recruit__menu ul {
    display: flex;
    justify-content: space-between;
    align-content: stretch; }
  .tp__recruit__menu li {
    width: 50%;
    text-align: center;
    padding-bottom: 60px;
    position: relative; }
    .tp__recruit__menu li::after {
      content: '';
      position: absolute;
      background: url("../images/tp_joblist_gradation.png") no-repeat bottom center;
      width: 780px;
      height: 99px;
      margin: 0 auto;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%); }

.recruit__menu--ttl {
  position: relative;
  padding-bottom: 40px;
  margin-top: -30px; }
  .recruit__menu--ttl .ja {
    font-size: clamp(18px, calc((30 / 1920) * 100vw), 30px);
    color: #fff;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .1em;
    position: relative;
    top: calc((110 / 1920) * 100vw); }
  .recruit__menu--ttl .en {
    font-size: clamp(50px, calc((100 / 1920) * 100vw), 100px);
    color: #fff;
    font-weight: 700;
    opacity: 0.2;
    filter: alpha(opacity=20); }
  .recruit__menu--ttl::before {
    content: '';
    position: absolute;
    background: url("../images/common/shape_ttl.svg") no-repeat center center;
    width: 13px;
    height: 13px;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%); }

.recruit__menu--list {
  background: url("../images/tp_recruit_bg01.jpg") no-repeat top center;
  background-size: cover; }

.recruit__menu--entry {
  background: url("../images/tp_recruit_bg02.jpg") no-repeat top center;
  background-size: cover; }

.recruit__menu--txt {
  position: relative;
  color: #fff;
  margin-top: 1em;
  font-size: clamp(14px, calc((17 / 1920) * 100vw), 17px); }

.recruit__btn--list, .recruit__btn--entry {
  margin-top: 40px;
  inline-size: fit-content;
  margin-inline: auto;
  position: relative;
  z-index: 1; }
  .recruit__btn--list .btn--contact, .recruit__btn--entry .btn--contact {
    color: #4c3e39;
    background: #fff;
    width: auto;
    height: 80px;
    padding: 15px 32px 15px 86px;
    border-radius: calc(1px / 0);
    transition: all .3s;
    width: fit-content; }
    .recruit__btn--list .btn--contact::before, .recruit__btn--entry .btn--contact::before {
      content: '';
      position: absolute;
      background: url("../images/common/icon_list.svg") no-repeat center center;
      background-size: cover;
      width: 50px;
      height: 50px;
      top: calc(50% - (50px / 2));
      left: 17px; }
    .recruit__btn--list .btn--contact:hover, .recruit__btn--entry .btn--contact:hover {
      background: #e8f4d4;
      box-shadow: 0px 0px 20px 5px rgba(255, 255, 255, 0.5); }

.recruit__btn--entry .btn--contact::before {
  content: '';
  position: absolute;
  background: url("../images/common/icon_mail_orange.svg") no-repeat center center;
  background-size: cover;
  width: 50px;
  height: 50px;
  top: calc(50% - (50px / 2));
  left: 17px; }
.recruit__btn--entry .btn--contact:hover {
  background: #efdfd4; }

.parts__olive--04 {
  width: calc((232 / 1920) * 100vw);
  position: absolute;
  top: 0;
  left: calc(((18 / 1920) * 100vw) * -1);
  z-index: 0; }

/* footer
----------------------------------------------------------- */
.ft__wrap {
  width: 100%;
  position: relative;
  padding-top: 10px;
  background: url("../images/common/footer_bg.jpg") no-repeat bottom center #faf5f0;
  background-size: cover;
  z-index: 1;
  padding-top: 80px;
  padding-bottom: 110px; }
  .ft__wrap::after {
    content: '';
    position: absolute;
    background: linear-gradient(to bottom, #f6faf0 0%, rgba(250, 245, 240, 0) 80%);
    width: 100%;
    height: 80px;
    top: 0;
    left: 0;
    z-index: 2; }

.ft__inner {
  width: min(90%, 1200px);
  margin: 0 auto; }

.ft__contact {
  display: flex;
  justify-content: space-between;
  align-items: flex-end; }

.ft__contact__logo {
  display: flex;
  align-items: flex-end; }
  .ft__contact__logo h1 {
    width: 120px;
    transition: all .3s; }
    .ft__contact__logo h1 a {
      display: block; }
    .ft__contact__logo h1 strong {
      background: #fff;
      color: #79655e;
      font-size: 16px;
      font-size: 1.6rem;
      letter-spacing: 0.1em;
      margin-top: 14px;
      padding: .4em 1em;
      display: block;
      white-space: nowrap; }

.ft__contact__info {
  padding-left: 100px; }
  .ft__contact__info .ft__ttl {
    font-size: 18px;
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 1em; }
  .ft__contact__info dd {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.8; }

.ft__link {
  padding-bottom: 1.5em; }
  .ft__link a {
    font-size: 14px;
    font-size: 1.4rem;
    width: object-fit;
    background: url("../images/common/icon_window.svg") no-repeat 100% 0;
    padding-right: 40px;
    padding-bottom: 1em;
    position: relative; }
    .ft__link a::after {
      content: '';
      position: absolute;
      width: 100%;
      height: 1px;
      background: #79655e;
      bottom: 0;
      left: 0; }
    .ft__link a:hover {
      opacity: 0.5;
      filter: alpha(opacity=50); }

.ft__menu {
  margin-top: 80px;
  display: flex;
  justify-content: space-between;
  align-items: center; }

.ft__menu__nav ul {
  display: flex;
  align-items: center;
  padding-top: 1em; }
.ft__menu__nav li {
  position: relative; }
  .ft__menu__nav li a {
    font-size: 16px;
    font-size: 1.6rem;
    font-weight: 400;
    display: block;
    text-align: center;
    padding-right: calc((30 / 1920) * 100vw);
    padding-left: calc((30 / 1920) * 100vw);
    letter-spacing: .05em;
    position: relative;
    white-space: nowrap; }
    .ft__menu__nav li a:hover {
      color: #ef863c;
      text-decoration: none; }
    .ft__menu__nav li a::before {
      content: '';
      position: absolute;
      background: url("../images/common/dot_line_bk.svg") left center;
      width: 2px;
      height: 14px;
      top: 4px;
      left: 0; }

.ft__menu__contact {
  margin-top: 20px; }
  .ft__menu__contact .btn--contact {
    font-size: 17px;
    font-size: 1.7rem;
    width: fit-content;
    height: 60px;
    padding: 15px 26px 15px 72px;
    white-space: nowrap; }
    .ft__menu__contact .btn--contact::before {
      content: '';
      position: absolute;
      background: url("../images/common/icon_mail.svg") left center no-repeat;
      background-size: 40px;
      width: 40px;
      height: 40px;
      top: calc(50% - (40px / 2));
      left: 15px; }

.ft__copyright {
  text-align: center;
  margin-top: 120px; }
  .ft__copyright p {
    font-size: 14px;
    font-size: 1.4rem; }

.parts__olive--05 {
  width: calc((245 / 1920) * 100vw);
  position: absolute;
  top: calc((80 / 1920) * 100vw);
  right: 0;
  z-index: 0; }
