/* ---------------------------
共通スタイル
--------------------------- */
.sp-none {
  @media screen and (max-width: 991px) {
    display: none !important;
  }
}
.pc-none {
  @media screen and (min-width: 992px) {
    display: none !important;
  }
  @media screen and (max-width: 991px) {
    display: block;
  }
}

/* ---------------------------
フッター上余白
--------------------------- */
footer {
  margin-top: 80px;
}

/* ---------------------------
コンテンツ幅
--------------------------- */
.contents__fit {
  padding-inline: 15px !important;
}
.contents-width {
  padding-inline: 15px !important;
  width: 100%;
  margin-inline: auto;
  &.contents-width--middle {
    max-width: 1170px;
  }
  &.contents-width--small {
    max-width: 670px;
  }
}

/* ---------------------------
下層h1タイトル
--------------------------- */
.heading-bg {
  position: relative;
  @media screen and (max-width: 991px) {
    height: 160px !important;
  }
  &:before {
    background-color: initial; /* 打ち消し用 */ 
  }
  &.heading-bg--vision {
    background-image:url(../images/vision/vision_title_bg.png);
  }
  &.heading-bg--occupation {
    background-image:url(../images/occupation/occupation_title_bg.png);
  }
  &.heading-bg--evaluation {
    background-image:url(../images/evaluation_main.jpg);
  }
  &.heading-bg--welfare {
    background-image:url(../images/welfare/welfare_main.jpg);
  }
  &.heading-bg--blog {
    background-image:url(../images/blog_main.jpg);
  }
  &.heading-bg--recruitment {
    background-image:url(../images/requirement/requirement_main.jpg);
  }
  &.heading-bg--faq {
    background-image:url(../images/faq_main.jpg);
  }
  &.heading-bg--message {
    background-image:url(../images/message_main.jpg);
  }
  &.heading-bg--evaluation, &.heading-bg--welfare, &.heading-bg--blog, &.heading-bg--recruitment, &.heading-bg--faq, &.heading-bg--message {
    &:before {
      content: "";
      position: absolute;
      display: block;
      width: 100%;
      height: 100%;
      left: 0;
      top: 0;
      background-color: rgba(0, 0, 0, 0.1);
    }
  }
  .heading-bg__in {
    .heading-bg--occupation & {
      height: 100% !important; /* 打ち消し用 */ 
      top: 0;
    }
    @media screen and (max-width: 991px) {
      position: absolute;
      width: 100%;
      top: 60px;
      .heading-bgg--sub-text & {
        height: auto !important; /* 打ち消し用 */ 
      }
      .heading-bg--occupation &, .heading-bg--welfare &, .heading-bg--blog &, .heading-bg--recruitment &, .heading-bg--faq &, .heading-bg--message & {
        top: 0;
      }
    }
  }
  .heading-bg__text {
    @media screen and (max-width: 991px) {
      /* 打ち消し用のスタイル ここから */
      margin-top: 0;
      padding: 0;
      margin: 0;
      position: static;
      transform: initial;
      /* 打ち消し用のスタイル ここまで */
    }
  }
  .page-main-text {
    margin-bottom: 0; /* 打ち消し用 */ 
    max-width: 1140px;
    position: absolute;
    width: 100%;
    bottom: -36px;
    right: 0;
    left: 0;
    margin-inline: auto;
    font-size: 2.4rem;
    line-height: 1.2;
    padding: 30px 16px;
    font-style: italic;
    font-weight: bold;
    text-align: center;
    color: #fff;
    background: url(../images/h1_bg.svg) center center no-repeat;
    background-size: 100% 100%;
    @media screen and (max-width: 991px) {
      position: static;
      font-size: 1.6rem;
      padding: 20px 16px;
      margin-top: 20px;
    }
  }
}

/* ---------------------------
タイトル
--------------------------- */
.long {
  margin: 60px auto 30px;
  font-size: 2.4rem;
  background: url(../images/h3_long_bg.svg) top center no-repeat;
  max-width: 640px;
  line-height: 1.2;
  width: 100%;
  padding: 25px 25px 40px;
  &.long--line01 {
    min-height: 122px;
    display: flex;
    align-items: center;
    justify-content: center;
    @media screen and (max-width: 991px) {
      min-height: 90px;
    }
  }
  @media screen and (min-width: 992px) {
    background-size: 100% 122px !important; /* 打ち消し用 */ 
  }
  @media screen and (max-width: 991px) {
    font-size: 1.6rem !important; /* 打ち消し用 */ 
    margin: 40px auto 20px;
    padding: 20px 16px 30px;
    background-size: 100%;
    max-width: 100%;
  }
  .long__sub {
    display: block;
    font-weight: normal;
    padding-bottom: 0;
    @media screen and (max-width: 991px) {
      font-size: 1.6rem;
    }
  }
}

.heading-triangle {
  /* margin: 100px 0 30px 0; */
  margin-bottom: 30px;
  position: relative;
  font-size: 2.4rem;
  font-style: italic;
  font-weight: bold;
  text-align: center;
  color: #01bff9;
  line-height: 1.2;
  &:before {
    transform: initial; /* 打ち消し用 */ 
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin-block: auto;
    margin-inline: auto;
    background: url(../images/vision/h2_bg01.png) center center no-repeat;
    width: 134px;
    height: 155px;
    background-size: 100%;
    z-index: 0;
  }
  @media screen and (max-width: 991px) {
    font-size: 1.6rem;
    margin-bottom: 20px;
    &:before {
      width: 100px;
      height: 116px;
    }
  }
  &.heading-triangle--h1-bottom {
    margin-top: 70px;
    @media screen and (max-width: 991px) {
      margin-top: 40px;
    }
  }
  .heading-triangle__text {
    position: relative;
    z-index: 1;
  }
}

.heading-bold {
  font-size: 1.6rem;
  line-height: 1.2;
  margin-bottom: 10px;
  @media screen and (max-width: 991px) {
    font-size: 1.4rem;
  }
}

/* ---------------------------
テキスト
--------------------------- */
.section-main-text {
  margin-bottom: 0; /* 打ち消し用 */ 
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: bold;
  text-align: center;
  @media screen and (max-width: 991px) {
    font-size: 1.2rem;
  }
}

.normal-text__center {
  margin-bottom: 0; /* 打ち消し用 */ 
  text-align: center;
  line-height: 1.5;
  font-size: 1.4rem;
  @media screen and (max-width: 991px) {
    font-size: 1.2rem;
  }
}

/* ---------------------------
ボタン群
--------------------------- */
.buttons {
  margin-bottom: 0; /* 打ち消し用 */ 
  width: fit-content;
  margin-inline: auto;
  display: flex;
  gap: 16px;
  margin-top: 40px;
  @media screen and (max-width: 991px) {
    flex-direction: column;
    gap: 10px;
    margin-top: 24px;
  }
}
.buttons--margin-none {
  margin-top: 0;
}
.button-normal {
  width: 240px;
  position: relative;
  &:hover {
    @media screen and (min-width: 992px) {
      .button-normal__link {
        padding: 25px 35px 15px 25px;
        &:after {
          right: -5px;
          bottom: -5px;
        }
      }
      .button-normal__arrow {
        right: 10px;
        top: 25px;
      }
    }
  }
  .button-normal__link {
    text-decoration: none;
    display: block;
    position: relative;
    padding: 20px 40px 20px 20px;
    text-align: center;
    line-height: 1.2;
    transition: all 0.3s ease;
    @media screen and (max-width: 991px) {
      padding: 15px 40px 15px 20px;
    }
    .button-normal--orange & {
      &:before {
        background-color: #ffddbb;
      }
      &:after {
        background: #ff850b;
      }
    }
    .button-normal--green & {
      &:before {
        background-color: #CDF1CD;
      }
      &:after {
        background-color: #59D059;
      }
    }
    .button-normal--blue & {
      &:before {
        background-color: #B3ECFD
      }
      &:after {
        background-color: #01BFFA;
      }
    }
    .button-normal--pink-bg & {
      &:before {
        background-color: #FFCCCC;
      }
      &:after {
        background-color: #fff;
      }
    }
    .button-normal--blue-bg & {
      &:before {
        background-color: #B3ECFD;
      }
      &:after {
        background-color: #fff;
      }
    }
    &:before,&:after {
      content: "";
      display: block;
      position: absolute;
      width: 100%;
      height: 100%;
      transition: all 0.3s ease;
    }
    &:before {
      right: -5px;
      bottom: -5px;
    }
    &:after {
      right: 0;
      bottom: 0;
    }
  }
  .button-normal__text {
    z-index: 1;
    position: relative;
    color: #fff;
    font-weight: bold;
    .button-normal--pink-bg & {
      color: #F27979;
    }
    .button-normal--blue-bg & {
      color: #01BFFA;
    }
  }
  .button-normal__arrow {
    position: absolute;
    width: 20px;
    height: 20px;
    right: 15px;
    top: 20px;
    background: #fff;
    z-index: 1;
    transition: all 0.3s ease;
    @media screen and (max-width: 991px) {
      top: 0;
      bottom: 0;
      margin-block: auto;
    }
    &:after {
      content: "";
      position: absolute;
      clip-path: polygon(100% 50%, 0 0, 0 100%);
      width: 5px;
      height: 5px;
      top: 0;
      bottom: 0;
      margin-block: auto;
      left: 8px;
    }
    .button-normal--orange & {
      &:after {
        background-color: #ff850b;
      }
    }
    .button-normal--green & {
      &:after {
        background-color: #59D059;
      }
    }
    .button-normal--blue & {
      &:after {
        background-color: #01BFFA;
      }
    }
    .button-normal--pink-bg & {
      background-color: #F27979;
      &:after {
        background-color: #fff;
      }
    }
    .button-normal--blue-bg & {
      background-color: #01BFFA;
      &:after {
        background-color: #fff;
      }
    }
  }
  .button-normal__speech-bubble {
    color: #fff;
    font-size: 1.2rem;
    font-weight: bold;
    line-height: 1.2;
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: max-content;
    padding-bottom: 8px;
    .button-normal__speech-bubble__text {
      margin-bottom: 0; /* 打ち消し用 */ 
      position: relative;
      line-height: 1.2;
      background: #F27979;
      padding: 10px 20px;
      text-align: center;
      @media screen and (max-width: 991px) {
        padding: 10px;
      }
      &:before {
        content: "";
        position: absolute;
        clip-path: polygon(100% 0, 0 0, 50% 100%);
        left: 0;
        right: 0;
        margin-inline: auto;
        top: 100%;
        background-color: #E54552;
        width: 8px;
        height: 8px;
      }
    }
  }
}

/* ---------------------------
画像/ボーダーボックスの２カラム
--------------------------- */
.image-box-2column {
  margin-inline: auto;
  align-items: center;
  display: flex;
  gap: 40px;
  @media screen and (min-width: 992px) {
    width: fit-content;
  }
  @media screen and (max-width: 991px) {
    flex-direction: column;
    gap: 20px;
  }
  &.image-box-2column--img-right {
    @media screen and (max-width: 991px) {
      flex-direction: column-reverse;
    }
  }
  .image-box-2column__img {
    width: 480px;
    height: auto;
    @media screen and (max-width: 991px) {
      width: 240px;
    }
  }
  .image-box-2column__box-double-line {
    border: 2px solid #01BFFA;
    padding: 60px 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
    &:before {
      position: absolute;
      content: "";
      width: 100%;
      height: 100%;
      bottom: -20px;
      right: -20px;
      border: 1px solid #01BFFA;
    }
    @media screen and (max-width: 991px) {
      width: 100%;
      padding: 20px;
    }
    @media screen and (max-width: 991px) {
      &:before {
        bottom: -10px;
        right: -10px;
      }
    }
    .image-box-2column__box-double-line__logo {
      width: auto;
      height: 44px;
      margin-bottom: 20px;
      @media screen and (max-width: 991px) {
        height: 32px;
        margin-bottom: 10px;
      }
    }
  }
}

/* ---------------------------
ボーダーボックスの２カラム
--------------------------- */
.box-line-2column {
  display: flex;
  justify-content: center;
  gap: 45px;
  margin-top: 55px;
  @media screen and (max-width: 991px) {
    margin-top: 20px;
    flex-direction: column;
    gap: 20px;
  }
  .box-line-2column__item {
    border: 2px solid #01BFFA;
    padding: 60px 40px 20px;
    position: relative;
    &:before {
      position: absolute;
      content: "";
      width: 100%;
      height: 100%;
      bottom: -20px;
      right: -20px;
      border: 1px solid #01BFFA;
    }
    @media screen and (max-width: 991px) {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 20px;
      padding: 20px;
    }
    @media screen and (max-width: 991px) {
      &:before {
        bottom: -10px;
        right: -10px;
      }
    }
    .box-line-2column__item__image {
      @media screen and (max-width: 991px) {
        width: 176px;
      }
    }
    .box-line-2column__item__text-wrap {
      @media screen and (max-width: 991px) {
        max-width: 122px;
      }
    }
    .box-line-2column__item__name {
      margin-bottom: 0; /* 打ち消し用 */ 
      font-size: 1.6rem;
      line-height: 1.2;
      font-weight: bold;
      margin-top: 20px;
      text-align: center;
      @media screen and (max-width: 991px) {
        font-size: 1.2rem;
      }
    }
    .box-line-2column__item__main-text {
      margin-bottom: 0; /* 打ち消し用 */ 
      font-size: 2.4rem;
      line-height: 1.2;
      color: #01ACE5;
      font-weight: bold;
      margin-top: 8px;
      text-align: center;
      @media screen and (max-width: 991px) {
        margin-top: 10px;
        font-size: 1.4rem;
      }
    }
  }
}

/* ---------------------------
募集要項
--------------------------- */
.recruitment {
  &.recruitment--top {
    display: flex;
    gap: 8px;
    align-items: center;
    width: fit-content;
    margin-inline: auto;
    @media screen and (max-width: 991px) {
      width: 100%;
      flex-direction: column;
    }
  }
  &.recruitment--requirements {
    margin-top: 40px;
  }
  .recruitment__speech-bubble {
    position: absolute;
    @media screen and (min-width: 992px) {
      top: 0;
      bottom: 0;
      margin-block: auto;
      right: 100%;
      height: fit-content;
    }
    @media screen and (max-width: 991px) {
      top: -5px;
      left: 0;
      z-index: 1;
    }
  }
  .recruitment__speech-bubble-text {
    margin-bottom: 0; /* 打ち消し用 */ 
    background: #ff850b;
    font-weight: bold;
    color: #fff;
    margin-top: 4px;
    text-align: center;
    display: inline-block;
    line-height: 1.2;
    position: relative;
    white-space: nowrap;
    .recruitment--top & {
      padding: 10px 20px;
    }
    .recruitment--requirements & {
      padding: 12px 16px;
    }
    &:before {
      content: "";
      position: absolute;
      clip-path: polygon(100% 50%, 0 0, 0 100%);
      width: 8px;
      height: 8px;
      background: #ff850b;
      top: 0;
      bottom: 0;
      margin-block: auto;
      left: 100%;
      z-index: 1;
    }
    @media screen and (max-width: 991px) {
      font-size: 1.2rem;
      &:before {
        clip-path: polygon(100% 0, 0 0, 50% 100%);
        top: initial;
        bottom: -7px;
        left: 0;
        right: 0;
        margin-inline: auto;
      }
    }
  }
  .recruitment__box-wrap {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    justify-content: center;
    margin: 0 auto;
    max-width: 1240px;
    @media screen and (max-width: 991px) {
      flex-direction: column;
      width: 100%;
      align-items: center;
      gap: 10px;
    }
    .recruitment--requirements & {
      flex-direction: column;
      width: 100%;
    }
  }
  .recruitment-box {
    position: relative;
    @media screen and (max-width: 991px) {
      width: 100%;
      .recruitment--top & {
        max-width: 400px;
      }
    }
    &.recruitment-box--speech-bubble {
      @media screen and (max-width: 991px) {
        padding-top: 20px;
      }
    }
  }
  .recruitment-box__link {
    display: block;
    position: relative;
    cursor: pointer;
    text-decoration: none;
    .recruitment--top & {
      width: 400px;
      max-width: 400px;
      @media screen and (min-width: 992px) {
        height: 100%;
      }
      @media screen and (max-width: 991px) {
        width: 100%;
      }
    }
    &:hover {
      @media screen and (min-width: 992px) {
        .recruitment__box__arrow {
          right: 10px;
          bottom: 10px;
        }
        .recruitment__text {
          .recruitment--top & {
            padding: 30px 10px 10px 30px;
          }
          .recruitment--requirements & {
            padding: 50px 30px 30px 50px;
          }
          &:after {
            right: -10px;
            bottom: -10px;
          }
        }
        .recruitment__box-arrow {
          right: 0;
          bottom: 0;
          .recruitment__box-arrow__text {
            display: block !important;
          }
          .recruitment__box-arrow__in {
            padding: 10px 8px;
          }
        }
      }
    }
  }
  .recruitment__box-arrow {
    position: absolute;
    right: 10px;
    bottom:  10px;
    @media screen and (min-width: 992px) {
      transition: all 0.3s ease;
    }
    .recruitment__box-arrow__in {
      padding: 12px;
      transition: initial;
      background: #ff850b;
      display: flex;
      align-items: center;
      gap: 4px;
    }
    .recruitment__box-arrow__text {
      display: none;
      color: #fff;
      font-size: 10px;
      font-weight: 700;
      line-height: 1.2;
    }
    .recruitment__box-arrow__shape {
      clip-path: polygon(100% 50%, 0 0, 0 100%);
      width: 8px;
      height: 8px;
      background: #fff;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      margin: auto;
    }
  }
  .recruitment__text {
    transition: all 0.3s ease;
    display: flex;
    gap: 10px;
    flex-direction: column;
    .recruitment--top & {
      padding: 20px;
      display: flex;
      justify-content: center;
      height: 100%;
      @media screen and (min-width: 992px) {
        padding: 20px 50px;
      }
    }
    .recruitment--requirements & {
      padding: 40px;
      @media screen and (max-width: 991px) {
        padding: 30px;
      }
    }
    &:before,&:after {
      content: "";
      display: block;
      position: absolute;
      width: 100%;
      height: 100%;
      z-index: 0;
      transition: all 0.3s ease;
    }
    &:before {
      right: -10px;
      bottom: -10px;
      background: #ffddbb;
    }
    &:after {
      right: 0;
      bottom: 0;
      background: rgba(255, 255, 255, 0.9);
    }
    @media screen and (max-width: 991px) {
      &:before {
        right: -5px;
        bottom: -5px;
      }
    }
    .recruitment__text__title {
      margin: 0; /* 打ち消し用 */ 
      font-style: normal !important; /* 打ち消し用 */ 
      font-size: 2.4rem;
      line-height: 1.2;
      z-index: 1;
      font-weight: bold;
      color: #222;
      text-align: left;
      .recruitment--top & {
        text-align: center;
      }
      @media screen and (max-width: 991px) {
        font-size: 1.6rem;
      }
    }
    .recruitment__text__sub {
      margin-bottom: 0; /* 打ち消し用 */ 
      margin-left: 0; /* 打ち消し用 */ 
      font-size: 1.2rem;
      color: #E56000;
      position: relative;
      z-index: 1;
      font-weight: bold;
      line-height: 1.5;
      .recruitment--top & {
        text-align: center;
        margin-inline: auto;
      }
    }
  }
  .recruitment-box__list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    z-index: 1;
    .recruitment-box__list__item {
      color: #6B85FE;
      border: 1px solid #6B85FE;
      border-radius: 50px;
      font-size: 1.2rem;
      line-height: 1.2;
      padding: 4px 10px;
      font-weight: bold;
      @media screen and (max-width: 991px) {
        font-size: 1.0rem;
      }
    }
  }
}