@charset "UTF-8";
/*---------------------------
layout
---------------------------*/
:root{
  --main-color:#FD9539;
  --accent-color:#F45D25;
  --deep-color:#FF9300;
  --white-color:#fff;
  --black-color:#000;
  --gray-color:#F0F0F0;
  --width-ratio: 1px / 1;
  --font-sans: "Noto Sans JP", sans-serif;
  --font-serif: "Noto Serif JP", serif;
  --font-ma: "Montserrat Alternates", sans-serif;
  --max-width: 1240px;
  --vw: 100vw;
  --side-padding: 30px;  /* 左右の最小余白 */
}

html {
  font-size: 62.5%;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
}


@media screen and (max-width: 728px) {
  html {
    font-size: 62.5%;
    overflow-x: hidden;
  }
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.5rem;
  color:#000;
}
@media screen and (max-width: 728px) {
  body {
    overflow-x: hidden;
  }
}
ul, li {
  list-style: none;
  margin: 0;
  padding: 0;
}

a {
  text-decoration: none;
  cursor: pointer;
}

a img:hover,
a:hover {
  opacity: 0.8;
}

img {
  width: 100%;
  height: auto;
}


/*---------------------------
object-utility
---------------------------*/
/*---------    ---------*/
.u-sans {
  font-family:var(--font-sans);
}

.u-serif {
  font-family:var(--font-serif);
}
.u-ma{
  font-family:var(--font-ma);
}
.u-wrap{
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 0 min(17.708vw, 34rem);
}
@media screen and (max-width: 1240px) {
  .u-wrap {
    padding: 0 min(17.708vw, 34rem);
  }
}
@media screen and (max-width: 768px) {
  .u-wrap {
    max-width: 100%;
    margin: 0 auto;
    padding:0 5.333vw;
  }
}


.u-flex {
  display: flex;
  flex-wrap: wrap;
}

.u-pc {
  display: block;
}
@media screen and (max-width: 768px) {
  .u-pc {
    display: none;
  }
}

.u-sp {
  display: none;
}
@media screen and (max-width: 768px) {
  .u-sp {
    display: block;
  }
}

.u-po-re {
  position: relative;
}

.u-jcc {
  justify-content: center;
}

.u-aic {
  align-items: center;
}

.u-jcsb {
  justify-content: space-between;
}

.u-jcsa {
  justify-content: space-around;
}

.u-jcfe {
  justify-content: flex-end;
}

.u-tac {
  text-align: center;
}

.u-tar {
  text-align: right;
}

.u-bold {
  font-weight: bold;
}

.u-text__tiny {
  font-size: 1.2rem;
}

/*---------------------------
object-component
---------------------------*/
.c-ttl {
  font-size: min(2.604vw, 5rem);  /* 50px */
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.02em;
}

.c-ttl__en {
  font-size: clamp(10px, 0.99vw, 1.9rem);  /* すでに変換済み */
  line-height: 1;
  font-weight: 500;
  color: var(--main-color);
  font-family: var(--font-ma);
  display: flex;
  align-items: center;
  margin-bottom: min(1.927vw, 3.7rem);  /* すでに変換済み */
}

.c-ttl__en::before {
  content: "";
  display: block;
  width: min(0.521vw, 1rem);  /* すでに変換済み */
  height: min(0.521vw, 1rem);  /* すでに変換済み */
  background-color: var(--main-color);
  border-radius: 50%;
  margin-right: min(0.573vw, 1.1rem);  /* すでに変換済み */
}

.c-text {
  font-size: clamp(10px, 0.729vw, 1.4rem);  /* 14px */
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.02em;
}

.c-3col {
  gap: min(1.823vw, 3.5rem);  /* 35px */
}

.c-3col__box {
  width: min(19.375vw, 37.2rem);  /* 372px */
  min-height: min(12.5vw, 24rem);  /* 240px */
  position: relative;
  overflow: hidden;
  z-index: 0;
  border-radius: 0 min(2.604vw, 5rem) 0 min(2.604vw, 5rem);  /* 50px */
  padding: min(2.49vw, 4.78rem) min(2.396vw, 4.6rem) min(2.281vw, 4.38rem) min(2.083vw, 4rem);  /* 47.8px 46px 43.8px 40px */
}

.c-3col__box-blur {
  position: absolute;
  inset: min(-0.521vw, -1rem);  /* -10px */
  background-color: #fff;
  filter: blur(min(0.26vw, 0.5rem)) brightness(110%);  /* 5px */
  opacity: 0.57;
  z-index: -1;
}

.c-3col__box-contents {
  position: relative;
}

.c-3col__box-ttl {
  font-size: clamp(10px, 0.938vw, 1.8rem);  /* 18px */
  line-height: 1.6666;
  font-weight: bold;
  letter-spacing: 0.02em;
  display: flex;
  align-items: flex-end;
  margin-bottom: min(0.75vw, 1.44rem);  /* 14.4px */
}

.c-3col__box-ttl-en {
  color: var(--main-color);
  font-family: var(--font-ma);
  font-size: clamp(10px, 0.729vw, 1.4rem);  /* 14px */
  font-weight: 500;
  letter-spacing: 0;
  margin-left: min(0.938vw, 1.8rem);  /* 18px */
}

.c-3col__box-text {
}

.c-btn {
  display: flex;
  align-items: center;
  gap: min(0.74vw, 1.42rem);  /* 14.2px */
}

.c-btn__more {
  color: #fff;
  font-family: var(--font-ma);
  font-size: clamp(10px, 0.833vw, 1.6rem);  /* 16px */
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: min(0.896vw, 1.72rem);  /* 17.2px */
}

.c-btn__more::after {
  content: "";
  background-image: url(../img/top/arrow01.svg);
  background-size: 100% 100%;
  display: block;
  width: min(2.581vw, 4.955rem);  /* 49.55px */
  height: min(2.581vw, 4.955rem);  /* 49.55px */
}

.c-btn__text {
  color: #fff;
  font-family: var(--font-ma);
  font-size: clamp(10px, 0.938vw, 1.8rem);  /* 18px */
  font-weight: bold;
}

.c-link {
  text-decoration: underline;
}

    @media screen and (max-width: 768px){
      .c-ttl {
        font-size: 6.933vw;  /* 50px */
        font-weight: 800;
        line-height: 1.6;
        letter-spacing: 0.02em;
      }

      .c-ttl__en {
        font-size: 4.267vw;  /* すでに変換済み */
        line-height: 1;
        font-weight: 500;
        color: var(--main-color);
        font-family: var(--font-ma);
        display: flex;
        align-items: center;
        margin-bottom:5.6vw;  /* すでに変換済み */
      }

      .c-ttl__en::before {
        content: "";
        display: block;
        width: 1.067vw;  /* すでに変換済み */
        height: 1.067vw;  /* すでに変換済み */
        background-color: var(--main-color);
        border-radius: 50%;
        margin-right: 1.333vw;  /* すでに変換済み */
      }

      .c-text {
        font-size: 3.467vw;  /* 14px */
        font-weight: 500;
        line-height: 2;
        letter-spacing: 0.02em;
      }

      .c-3col {
        gap: 5.547vw;  /* 35px */
      }

      .c-3col__box {
        width: 100%;  /* 372px */
        height: 55.517vw;  /* 240px */
        min-height:auto;
        position: relative;
        overflow: hidden;
        z-index: 0;
        border-radius: 0 10.667vw 0 10.667vw;  /* 50px */
        padding: 7.893vw 10.96vw 10.427vw 9.52vw;  /* 47.8px 46px 43.8px 40px */
      }

      .c-3col__box-blur {
        position: absolute;
        inset: -2.667vw;  /* -10px */
        background-color: #fff;
        filter: blur(5px) brightness(110%);  /* 5px */
        opacity: 0.57;
        z-index: -1;
      }

      .c-3col__box-contents {
        position: relative;
      }

      .c-3col__box-ttl {
        font-size: 4.267vw;  /* 18px */
        line-height: 1.6666;
        font-weight: bold;
        letter-spacing: 0.02em;
        display: flex;
        align-items: flex-end;
        margin-bottom: 3.76vw;  /* 14.4px */
      }

      .c-3col__box-ttl-en {
        color: var(--main-color);
        font-family: var(--font-ma);
        font-size: 3.467vw;  /* 14px */
        font-weight: 500;
        letter-spacing: 0;
        margin-left: 2.72vw;  /* 18px */
      }

      .c-3col__box-text {
      }

      .c-btn {
        display: flex;
        align-items: center;
        gap: 2.293vw;  /* 14.2px */
        justify-content: center;
      }

      .c-btn__more {
        color: #fff;
        font-family: var(--font-ma);
        font-size: 3.2vw;  /* 16px */
        font-weight: 500;
        display: flex;
        align-items: center;
        gap: 2.693vw;  /* 17.2px */
      }

      .c-btn__more::after {
        content: "";
        background-image: url(../img/top/arrow01.svg);
        background-size: 100% 100%;
        display: block;
        width: 10.76vw;  /* 49.55px */
        height: 10.76vw;  /* 49.55px */
      }

      .c-btn__text {
        color: #fff;
        font-family: var(--font-ma);
        font-size: 3.467vw;  /* 18px */
        font-weight: bold;
      }

      .c-link {
        text-decoration: underline;
      }

    }

.p-under__mv {
  margin-bottom: min(8.021vw, 15.4rem); /* 154px */
}

.p-under__mv-bg {
  position: relative;
}

.p-under__mv-bg::before {
  content: "";
  display: block;
  width: 84.06%;
  max-width: min(60.6vw, 116.35rem); /* 1163.5px */
  height: 100%;
  border-radius: 0 0 min(78.125vw, 150rem) 0; /* 1500px */
  background-color: var(--main-color);
  position: absolute;
  top: 0;
  left: 0;
}

.p-under__mv-wrap {
  padding-top: min(9.948vw, 19.1rem); /* 191px */
  padding-bottom: min(8.854vw, 17rem); /* 170px */
  position: relative;
}

.p-under__mv-ttl-en {
  font-size: clamp(10px, 4.167vw, 8rem); /* 80px */
  font-family: var(--font-ma);
  font-weight: bold;
  letter-spacing: 0.02em;
  margin-bottom: min(0.573vw, 1.1rem); /* 11px */
  color: #fff;
  line-height: min(5.052vw, 9.7rem);
}

.p-under__mv-ttl {
  font-size: clamp(10px, 0.833vw, 1.6rem); /* 16px */
  font-weight: bold;
  line-height: min(1.25vw, 2.4rem);
  letter-spacing: 0.02em;
  display: flex;
  align-items: center;
}

.p-under__mv-ttl::before {
  content: "";
  width: min(0.521vw, 1rem); /* 10px */
  height: min(0.521vw, 1rem); /* 10px */
  background-color: #fff;
  display: block;
  border-radius: 50%;
  margin-right: min(0.729vw, 1.4rem); /* 14px */
}

.p-under__mv-img {
  position: absolute;
  z-index: 1;
  top: min(10.911vw, 20.95rem); /* 209.5px */
  right: 0;
  width: min(51.626vw, 99.121rem); /* 991.21px */
}
    @media screen and (max-width: 768px){
      .p-under__mv {
        margin-bottom: 72.267vw; /* 154px */
      }
      .p-under__mv-none{
        margin-bottom: 21.6vw;
      }

      .p-under__mv-bg {
        position: relative;
      }

      .p-under__mv-bg::before {
        content: "";
        display: block;
        width: 91.346%;
        max-width: 91.347vw; /* 1163.5px */
        height: 100%;
        border-radius: 0 0 53.333vw 0; /* 1500px */
        background-color: var(--main-color);
        position: absolute;
        top: 0;
        left: 0;
      }

      .p-under__mv-wrap {
        padding:0 10.133vw;
        padding-top: 25.333vw;
        padding-bottom: 22.4vw;
        position: relative;
      }

      .p-under__mv-ttl-en {
        font-size: 9.333vw; /* 80px */
        line-height:11.467vw;
        font-family: var(--font-ma);
        font-weight: bold;
        letter-spacing: 0.02em;
        margin-bottom: 1.067vw; /* 11px */
        color: #fff;
      }

      .p-under__mv-ttl {
        font-size: 3.467vw; /* 16px */
        line-height:5.067vw;
        font-weight: bold;
        letter-spacing: 0.02em;
        display: flex;
        align-items: center;
      }

      .p-under__mv-ttl::before {
        content: "";
        width: 1.333vw;
        height: 1.333vw;
        background-color: #fff;
        display: block;
        border-radius: 50%;
        margin-left: 0.8vw;
        margin-right: 1.867vw;
      }

      .p-under__mv-img {
        position: absolute;
        z-index: 1;
        top: 53.733vw;
        right: 0;
        width: 90.667vw;
      }
    }

.p-under__recruitment {
  position: relative;
  margin-bottom: min(13.224vw, 25.39rem);  /* 253.9px */
}

.p-under__recruitment-bg {
  position: relative;
}

.p-under__recruitment-bg::before {
  content: "";
  display: block;
  width: 84.06%;
  max-width: min(84.063vw, 161.4rem);
  height: 100%;
  border-radius: 0 min(10.417vw, 20rem) 0 0; /* 200px - 変換済み */
  background-color: #F45D25;
  position: absolute;
  top: 0;
  left: 0;
}

.p-under__recruitment-wrap {
  position: relative;
  padding-top: min(4.531vw, 8.7rem);    /* 87px */
  padding-bottom: min(13.047vw, 25.05rem);/* 250.5px */
}

.p-under__recruitment .c-ttl__en {
  color: #fff;
  margin-bottom: min(1.458vw, 2.8rem);  /* 28px (元のコードの typo を修正) */
  height: min(1.198vw, 2.3rem);
}

.p-under__recruitment .c-ttl {
  color: #fff;
  margin-bottom: min(1.875vw, 3.6rem);  /* 36px */
  height: min(3.75vw, 7.2rem);
}

.p-under__recruitment .c-text {
  color: #fff;
  margin-bottom: min(2.5vw, 4.8rem);    /* 48px */
}

.p-under__recruitment .c-btn__more::after {
  background-image: url(../img/top/arrow06.svg);
}

.p-under__recruitment-slide-area {
  position: absolute;
  left: min(17.708vw, 34rem);         /* 340px - 変換済み */
  bottom: max(-8.073vw, -15.5rem);      /* -155px */
}

.p-under__recruitment .c-ttl__en::before{
  background-color:#fff;
}
    @media screen and (max-width: 768px){
      .p-under__recruitment {
        position: relative;
        margin-bottom: 33.067vw;  /* 253.9px */
      }

      .p-under__recruitment-bg {
        position: relative;
      }

      .p-under__recruitment-bg::before {
        content: "";
        display: block;
        width: 100%;
        max-width: 100%;
        height: 100%;
        border-radius: 0 26.667vw 0 0;
        background-color: #F45D25;
        position: absolute;
        top: 0;
        left: 0;
      }

      .p-under__recruitment-wrap {
        position: relative;
        padding:16.4vw 11.2vw 31.947vw 10.4vw;
      }

      .p-under__recruitment .c-ttl__en {
        color: #fff;
        margin-bottom: 4.533vw;
        height:5.067vw;
      }

      .p-under__recruitment .c-ttl {
        color: #fff;
        margin-bottom: 4.267vw;
        line-height:1.5833;
        height:auto;
      }

      .p-under__recruitment .c-text {
        color: #fff;
        margin-bottom:6.907vw;
      }
      .p-under__recruitment .btn-circle{
        display: inline-flex;
      }

      .p-under__recruitment .c-btn__more::after {
        background-image: url(../img/top/arrow06.svg);
      }

      .p-under__recruitment-slide-area {
        position: absolute;
        left: 10.4vw;
        bottom: -15.2vw;
      }

      .p-under .p-top__bg05{
        padding-top:18.773vw;
        padding-bottom:23.333vw;
      }

      .p-under .p-top__contact-wrap{
        padding-left:11.2vw;
        padding-right:6.96vw;
      }
    }

/* パンくずリスト全体のコンテナ */
.c-breadcrumb-container {
  /* 配置 */
  position: absolute;
  top: min(3.958vw, 7.6rem);     /* 76px */
  left: min(12.5vw, 24rem);
  top: 7.6rem;

  /* テキストと表示のスタイル */
  font-size: clamp(10px, 0.625vw, 1.2rem);  /* 12px */
  color: #fff;
  font-weight: 400;

  /* Flexbox関連 */
  display: flex;
  flex-wrap: wrap;
  align-items: center;

  /* リセット */
  margin: 0;
  padding: 0;
  z-index: 10;
}

/* 各項目 (プラグインが出力するspan) */
.c-breadcrumb-container span {
  display: flex;
  align-items: center;
  letter-spacing: 0.03em; /* 追加 */
}

/* 区切り文字 (プラグイン設定画面で変更可能) */
.bcn-separator {
  margin: 0 min(0.677vw, 1.3rem); /* 13px */
  color: #fff;
}

/* リンクのスタイル */
.c-breadcrumb-container a {
  color: #fff;
  text-decoration: none;
  transition: text-decoration 0.2s ease;
}
.c-breadcrumb-container a:hover {
  text-decoration: underline;
}

/* 現在のページのスタイル (リンクではない最後の項目) */
.c-breadcrumb-container .current-item {
}
.p-under__ttl-en{
  font-size: 1.9rem;
  font-weight: 500;
  color: var(--main-color);
  font-family: var(--font-ma);
  margin-bottom: 1.29rem;
  height: min(1.198vw, 2.3rem);
  height:auto;
}
    @media screen and (max-width: 768px){
      .c-breadcrumb-container {
        /* 配置 */
        position: absolute;
        top: 13.333vw;     /* 76px */
        left: 5.333vw;       /* 240px */

        /* テキストと表示のスタイル */
        font-size: 3.2vw;  /* 12px */
        color: #fff;
        font-weight: 400;

        /* Flexbox関連 */
        display: flex;
        flex-wrap: wrap;
        align-items: center;

        /* リセット */
        margin: 0;
        padding: 0;
        z-index: 5;
      }

      /* 各項目 (プラグインが出力するspan) */
      .c-breadcrumb-container span {
        display: flex;
        align-items: center;
      }

      /* 区切り文字 (プラグイン設定画面で変更可能) */
      .bcn-separator {
        margin: 0 3.467vw; /* 13px */
        color: #fff;
      }

      /* リンクのスタイル */
      .c-breadcrumb-container a {
        color: #fff;
        text-decoration: none;
        transition: text-decoration 0.2s ease;
      }
      .c-breadcrumb-container a:hover {
        text-decoration: underline;
      }

      /* 現在のページのスタイル (リンクではない最後の項目) */
      .c-breadcrumb-container .current-item {
      }
      .p-under__ttl-en{
        font-size: 5.067vw;
        font-weight: 500;
        color: var(--main-color);
        font-family: var(--font-ma);
        margin-bottom: 3.44vw;
        height: auto;
      }
    }

.box-container {
  aspect-ratio: 45 / 50;
}

canvas#canvas {
  max-width: 360px;
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 768px) {
  canvas#canvas {
    max-width: 280px;
  }
}

@media (min-width: 1920px) {
  .c-ttl { font-size: 50px; } /* min(2.604vw, 5rem) → 2.604vw*1920=49.97px, 5rem=50px */
  .c-ttl__en { font-size: 19px; } /* clamp(10px, 0.99vw, 1.9rem) → 0.99vw*1920=18.81px */
  .c-text { font-size: 14px; } /* clamp(10px, 0.729vw, 1.4rem) → 0.729vw*1920=13.97px */
  .c-3col__box-ttl { font-size: 18px; } /* clamp(10px, 0.938vw, 1.8rem) → 0.938vw*1920=17.98px */
  .c-3col__box-ttl-en { font-size: 14px; } /* clamp(10px, 0.729vw, 1.4rem) → 0.729vw*1920=13.97px */
  .c-btn__more { font-size: 16px; } /* clamp(10px, 0.833vw, 1.6rem) → 0.833vw*1920=15.94px */
  .c-btn__text { font-size: 18px; } /* clamp(10px, 0.9vw, 1.8rem) → 0.9vw*1920=17.28px */
  .p-under__mv-ttl-en { font-size: 80px; } /* clamp(10px, 4.167vw, 8rem) → 4.167vw*1920=80px */
  .p-under__mv-ttl { font-size: 16px; } /* clamp(10px, 0.833vw, 1.6rem) → 0.833vw*1920=16px */
  .c-breadcrumb-container { font-size: 12px; } /* clamp(10px, 0.625vw, 1.2rem) → 0.625vw*1920=12px */
}
