/* 本文はPCを基本とし、狭い画面で変更する指定を後に置きます。
   Service：1330px／About・Member・Recruit：1110px／Environment：850pxです。
   1330px以上の比例拡大はCSSのvwで行います。*/


/* ==========================================================
  ==========================================================
  
  【 01. 見た目の設定 】
  レイアウト・文字・色・余白・画像など
  
  ==========================================================
  ========================================================== */


/* ========================================
   ページ全体で使う基本設定
======================================== */

body {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: #333;
  background-color: #fff;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  text-decoration: none;
  color: inherit;
}


/* ========================================
   共通 カードの角丸
======================================== */

.service_card,
.member_link,
.environment_card,
.recruit_wrap_card img {
  border-radius: 20px;
}

@media (max-width: 1329px) {
  .service_card {
    border-radius: 15px;
  }
}

@media (max-width: 1109px) {
  .member_link,
  .environment_card,
  .recruit_wrap_card img {
    border-radius: 15px;
  }
}

/* ========================================
   コンテンツの左右の余白
======================================== */

:root {
  --content-space: 160px;
}

@media (max-width: 1329px) {
  :root {
    --content-space: 100px;
  }
}

@media (max-width: 1109px) {
  :root {
    --content-space: 60px;
  }
}

@media (max-width: 849px) {
  :root {
    --content-space: 24px;
  }
}

/* ========================================
   ヘッダー
   PC：上限なし～1110px
   TB：1109px～850px
   SP：849px～下限なし
======================================== */

  .header {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 100%;
    height: 80px;
    margin: 0 auto;
    padding: 0 1.6vw;
    background-color: #fff;
  }

  .header_logo {
    flex-shrink: 0;
    width: 246px;
    height: auto;
  }

  .nav {
    margin-left: auto;
  }

  .nav ul {
    display: flex;
    gap: 25px;
    font-size: 18px;
    list-style: none;
  }

  .nav a {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-weight: 700;
    transition: color 0.3s;
  }

  /* ナビゲーション：マウスを載せるとボタンと同じオレンジ */
  .nav a:hover,
  .nav a:focus-visible {
    color: #ff5b2a;
  }

  .nav span {
    display: block;
    font-size: 12px;
    font-weight: 700;
  }

  .header_button {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: 35px;
  }

  .header_button a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 147px;
    height: 60px;
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    background-color: #ff5b2a;
    border-radius: 8px;
    transition: opacity 0.3s;
  }

  .header_button a [href="#entry"] {
    font-size: 23px;
  }

  .header_button span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin: 0 0 0 8px;
    font-size: 15px;
    color: #ff5b2a;
    background-color: #fff;
    border-radius: 4px;
    position: relative;
    top: 1px;
  }

  .header_button a :hover {
    opacity: 0.8;
  }

  .hamburger {
    display: none;
  }

@media (max-width: 1109px) {

  html.menu_open,
  html.menu_open body {
    overflow: hidden;
  }

  .menu_open .hamburger {
    position: fixed;
    top: 18px;
    right: 16px;
    z-index: 101;
    width: 44px;
    height: 44px;
    padding: 0;
    cursor: pointer;
  }

  .menu_open .hamburger span {
    position: absolute;
    top: 21px;
    left: 9px;
    width: 26px;
    height: 2px;
  }

  .menu_open .hamburger span:nth-child(1) {
    transform: rotate(45deg);
  }

  .menu_open .hamburger span:nth-child(2) {
    opacity: 0;
  }

  .menu_open .hamburger span:nth-child(3) {
    transform: rotate(-45deg);
  }

  .menu_open .fixed_buttons {
    display: none;
  }
}

@media (max-width: 1109px) and (min-width: 850px) {
  .header {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 100%;
    height: 80px;
    margin: 0 auto;
    padding: 0 1.6vw;
    background-color: #fff;
  }

  .header_logo {
    flex-shrink: 0;
    width: 200px;
    height: auto;
  }

  .nav {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    display: none;
    width: 100%;
    height: 100dvh;
    overflow-y: auto;
    padding: 120px 24px 40px;
    background-color: rgba(255, 255, 255, 0.8);
  }

  .nav ul {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    list-style: none;
  }

  .nav a {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-weight: 700;
    font-size: 24px;
  }

  .nav span {
    font-size: 18px;
  }

  .nav.is-active {
    display: block;
  }

  .header_button {
    display: none;
  }

  .hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 26px;
    height: 18px;
    margin-left: auto;
    background: none;
    border: none;
  }

  .hamburger span {
    width: 100%;
    height: 2px;
    background-color: #1c1c1c;
    border-radius: 2px;
  }
}

@media (max-width: 849px) {
  .header {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 100%;
    height: 80px;
    margin: 0 auto;
    padding: 0 2.4vw;
    background-color: #fff;
  }

  .header_logo {
    flex-shrink: 0;
    width: 200px;
    height: auto;
  }

  .nav {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    display: none;
    width: 100%;
    height: 100dvh;
    overflow-y: auto;
    padding: 120px 24px 40px;
    background-color: rgba(255, 255, 255, 0.95);
  }

  .nav ul {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    list-style: none;
  }

  .nav a {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-weight: 700;
    font-size: 24px;
  }

  .nav span {
    font-size: 18px;
  }

  .nav.is-active {
    display: block;
  }

  .header_button {
    display: none;
  }

  .hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 26px;
    height: 18px;
    margin-left: auto;
    background: none;
    border: none;
  }

  .hamburger span {
    width: 100%;
    height: 2px;
    background-color: #1c1c1c;
    border-radius: 2px;
  }
}

/* ========================================
   ファーストビュー
   PC：上限なし～1110px
   TB：1109px～850px
   SP：849px～下限なし
======================================== */

  .fv {
    width: 100%;
    height: auto;
    background-color: #fff;
  }

  .fv_inner {
    display: flex;
    gap: 1.6vw;
    width: 100%;
    max-width: 100%;
    height: 100%;
    margin: 0 auto;
  }

  .fv_mainvisual_wrap {
    position: relative;
    width: calc(80% - 1.6vw);
    padding-bottom: 1.6vw;
    padding-left: 1.6vw;
  }

  .fv_mainvisual {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
  }

  .fv_title_img {
    position: absolute;
    bottom: 35%;
    left: 6%;
    z-index: 10;
    width: 35%;
  }

  .fv_gallery_wrap {
    width: 20%;
    height: 100%;
    padding-right: 1.6vw;
    padding-bottom: 1.6vw;
    overflow: hidden;
  }

  .fv_gallery_track {
    display: flex;
    flex-direction: column;
    gap: 1.2vw;
    height: 100%;
  }

  .fv_subvisual {
    width: 100%;
    height: calc((100% - 2.4vw) / 3);
    object-fit: cover;
    border-radius: 15px;
  }

@media (max-width: 1109px) and (min-width: 850px) {
  .fv {
    width: 100%;
    height: auto;
    padding-bottom: 1.6vw;
    background-color: #fff;
  }

  .fv_inner {
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
  }

  .fv_mainvisual_wrap {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    margin: 0 auto;
    padding: 0 1.6vw;
  }

  .fv_mainvisual {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 15px;
  }

  .fv_title_img {
    position: absolute;
    bottom: 30%;
    left: 6%;
    z-index: 10;
    width: 35%;
  }

  .fv_gallery_wrap {
    width: 100%;
    height: auto;
    padding: 0 1.6vw;
  }

  .fv_gallery_track {
    display: flex;
    flex-direction: row;
    gap: 1.2vw;
    width: 100%;
  }

  .fv_subvisual {
    width: calc((100% - 2.4vw) / 3);
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 15px;
  }
}

@media (max-width: 849px) {
  .fv {
    width: 100%;
    height: auto;
    padding-bottom: 1.6vw;
    background-color: #fff;
  }

  .fv_inner {
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
  }

  .fv_mainvisual_wrap {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 343 / 380;
    padding: 0 2.4vw;
  }

  .fv_mainvisual {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 82% 18%;
    border-radius: 15px;
  }

  .fv_title_img {
    position: absolute;
    bottom: 6%;
    left: 7%;
    z-index: 10;
    width: 35%;
  }

  .fv_gallery_wrap {
    width: 100%;
    height: auto;
    padding: 0 2.4vw;
  }

  .fv_gallery_track {
    display: flex;
    flex-direction: row;
    gap: 1.2vw;
    width: 100%;
  }

  .fv_subvisual {
    flex-shrink: 0;
    width: calc((100% - 2.4vw) / 3);
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 15px;
  }
}

/* ========================================
   私たちについて
   比例拡大：上限なし～1330px
   PC：上限なし～1110px
   TB：1109px～850px
   SP：849px～下限なし
======================================== */

.about_service_wrap {
  background-image: url("../../images/02_about/watercolor.png");
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}

.about {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 170px 12.03vw 85px;
  background-color: transparent;
}

.about_whitebackground {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0 auto;
  padding: 2.03vw 7.52vw 3.38vw;
  background-color: #fff;
  border: 0.3vw solid #FFD0C2;
  border-radius: 2.26vw;
}

.about_inner {
  display: flex;
  align-items: center;
  gap: 3.61vw;
}

.about_wrap_text,
.about_wrap_images {
  width: calc((100% - 3.61vw) / 2);
}

.about_title_en {
  font-size: 5.11vw;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  color: #ff8b68;
}

.about_title_jp {
  display: block;
  font-size: 2.11vw;
  font-weight: 700;
  line-height: 1.5;
  color: #ff8b68;
}

.about_sentence {
  display: block;
  font-size: 1.2vw;
  font-weight: 700;
  line-height: 1.5;
  margin-top: 3.01vw;
}

.about_message {
  margin-top: 3.01vw;
  font-size: 2.11vw;
  font-weight: 700;
}

.about_button {
  margin-top: 3.01vw;
}

.about_button a {
  font-size: 1.2vw;
  display: inline-block;
  padding: 1.05vw 1.8vw;
  font-weight: 700;
  color: #fff;
  background-color: #9D6452;
  border-radius: 0.75vw;
}

.about_wrap_images {
  position: relative;
  padding-top: 8.27vw;
}

.about_bird {
  /* 1330px以上：鳥の画像サイズ */
  position: absolute;
  top: 9.77vw;
  right: 0;
  z-index: 3;
  width: 70%;
  transform: translate(3.01vw, -70%);
}

.about_baby {
  /* 1330px以上：写真のサイズ */
  position: relative;
  z-index: 2;
  width: 80%;
  transform: translate(0, 0);
}

.about_family {
  /* 1330px以上：写真のサイズ */
  position: relative;
  z-index: 1;
  width: 80%;
  margin-top: 0.9vw;
  margin-left: auto;
  transform: translate(0, 0);
}

@media (max-width: 1329px) and (min-width: 1110px) {
  .about {
    padding: 170px var(--content-space) 85px;
  }

  .about_whitebackground {
    padding: 27px 100px 45px;
    border: 4px solid #FFD0C2;
    border-radius: 30px;
  }

  .about_inner {
    gap: 48px;
  }

  .about_wrap_text,
  .about_wrap_images {
    width: calc((100% - 48px) / 2);
  }

  .about_title_en {
    font-size: 68px;
  }

  .about_title_jp {
    font-size: 28px;
  }

  .about_sentence {
    font-size: 16px;
    margin-top: 40px;
  }

  .about_message {
    margin-top: 40px;
    font-size: 26px;
  }

  .about_button {
    margin-top: 40px;
  }

  .about_button a {
    font-size: 16px;
    padding: 14px 24px;
    border-radius: 10px;
  }

  .about_wrap_images {
    padding-top: 110px;
  }

  .about_bird {
    /* 1329px～1110px：鳥の画像サイズ */
    width: 60%;
    top: 130px;
    transform: translate(-15px, -70%);
  }

  .about_baby {
    /* 1329px～1110px：赤ちゃんの写真サイズ */
    width: 70%;
    transform: translate(0px, 0px);
  }

  .about_family {
    /* 1329px～1110px：家族の写真サイズ */
    width: 70%;
    margin-top: 12px;
    transform: translate(0px, 0px);
  }
}

@media (max-width: 1109px) {
  .about_wrap_text,
  .about_wrap_images {
    width: auto;
  }
}

@media (max-width: 1109px) and (min-width: 850px) {
  .about {
    /* FV側と分担しないため、上は140pxを確保します。 */
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 140px var(--content-space) 70px;
    background-color: transparent;
  }

  .about_whitebackground {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 30px 40px 60px;
    background-color: #fff;
    border: 4px solid #FFD0C2;
    border-radius: 30px;
  }

  .about_inner {
    display: flex;
    align-items: center;
    gap: 34px;
  }

  .about_wrap_text {
    display: block;
    flex: 6;
    min-width: 0;
  }

  .about_title_en {
    font-size: 56px;
    margin: 0;
    text-align: left;
  }

  .about_title_jp {
    font-size: 24px;
  }

  .about_body {
    display: block;
    margin: 0;
    padding: 0;
  }

  .about_sentence {
    font-size: 16px;
    margin: 24px 0 0;
    padding: 0;
    font-weight: 700;
    line-height: 1.7;
    text-align: left;
  }

  .about_message {
    margin: 24px 0 0;
    padding: 0;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    text-align: left;
  }

  .about_button {
    position: relative;
    margin: 24px 0 0;
    text-align: left;
    transform: translate(0px, 0px);
  }

  .about_button a {
    display: inline-block;
    box-sizing: border-box;
    max-width: 100%;
    padding: 14px 24px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.7;
    color: #fff;
    background-color: #a56854;
    border-radius: 6px;
  }

  .about_wrap_images {
    position: relative;
    flex: 4;
    min-width: 0;
    padding-top: 48px;
    transform: translate(0px, 25px);
  }

  .about_bird {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 3;
    width: 70%;
    transform: translate(30px, -35%);
  }

  .about_baby {
    position: relative;
    z-index: 2;
    width: 76%;
    margin: 0;
    border-radius: 6px;
    transform: translate(0px, 0px);
  }

  .about_family {
    position: relative;
    z-index: 1;
    width: 76%;
    margin: 12px 0 0 auto;
    border-radius: 6px;
    transform: translate(0px, 0px);
  }
}

@media (max-width: 849px) {
  .about {
    /* FV側と分担しないため、上は100pxを確保します。 */
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 100px var(--content-space) 50px;
    background-color: transparent;
  }

  .about_whitebackground {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 40px 0;
    background-color: #fff;
    border-radius: 20px;
    box-shadow: inset 0 0 0 3px #FFD0C2;
    border: 0;
  }

  .about_inner {
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: none;
    margin: 0 auto;
    align-items: stretch;
  }

  .about_wrap_text {
    display: contents;
  }

  .about_title_en {
    font-size: 48px;
    order: 1;
    margin: 0 0 32px;
    text-align: center;
  }

  .about_title_jp {
    font-size: 22px;
  }

  .about_body {
    order: 3;
    display: flex;
    flex-direction: column;
    gap: 24px;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: -16px 0;
    padding: 19px 23px;
    align-self: center;
    background-color: transparent;
  }

  .about_sentence {
    font-size: 16px;
    margin: 0;
    padding: 0;
    font-weight: 700;
    line-height: 1.7;
    text-align: left;
  }

  .about_message {
    margin: 0;
    padding: 0;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    text-align: left;
  }

  .about_button {
    order: 4;
    position: relative;
    margin: 8px 16px 24px;
    text-align: center;
    transform: translate(0px, 20px);
  }

  .about_button a {
    display: inline-block;
    box-sizing: border-box;
    max-width: 100%;
    padding: 14px 24px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.7;
    color: #fff;
    background-color: #a56854;
    border-radius: 6px;
  }

  .about_wrap_images {
    order: 2;
    max-width: 420px;
    align-self: center;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 10px;
    margin-bottom: 16px;
    width: 100%;
    padding-top: 0;
  }

  .about_bird {
    position: absolute;
    top: -2%;
    right: -5%;
    z-index: 3;
    width: 50%;
    transform: translate(-20px, -55%);
  }

  .about_baby {
    position: relative;
    align-self: flex-start;
    width: 75%;
    margin: 0;
    border-radius: 6px;
    transform: translate(16px, 10px);
  }

  .about_family {
    position: relative;
    align-self: flex-end;
    width: 75%;
    margin: 0 4% 0 0;
    border-radius: 6px;
    transform: translate(0px, 0px);
  }
}

/* ========================================
   事業内容
   PC：上限なし～1330px
   TB：1329px～960px
   SP：959px～下限なし
======================================== */

.service {
  width: 100%;
  padding: 85px 12.03vw 170px;
  background-color: transparent;
}

.service_inner {
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: none;
  margin: 0 auto;
}

.service_wrap_text {
  width: 30%;
  flex-shrink: 0;
  align-self: center;
  text-align: left;
}

.service_title_en {
  font-size: 5.11vw;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  color: #ff8b68;
}

.service_title_jp {
  display: block;
  font-size: 2.11vw;
  font-weight: 700;
  line-height: 1.5;
  color: #ff8b68;
}

.service_sentence_left {
  display: block;
  font-size: 1.2vw;
  font-weight: 500;
  line-height: 1.5;
  margin-top: 1.8vw;
  text-align: left;
}

.service_wrap_card {
  display: flex;
  flex-direction: column;
  gap: 1.8vw;
  width: 65%;
  min-width: 0;
}

.service_wrap_card img {
  width: 45%;
  flex-shrink: 0;
  height: auto;
  aspect-ratio: 3 / 2;
  align-self: center;
  object-fit: cover;
}

.service_card {
  display: flex;
  background-color: #fff;
  border: 0.3vw solid #FAC6AA;
  overflow: hidden;
  position: relative;
}

.service_card_text {
  flex: 1;
  min-width: 0;
  padding-bottom: 4.51vw;
}

.service_title {
  font-size: 1.7vw;
  font-weight: 700;
  padding: 1.7vw 2.26vw 0 2.26vw;
}

.service_sentence_right {
  display: block;
  font-size: 1.0vw;
  font-weight: 500;
  line-height: 1.5;
  padding: 0.9vw 2.26vw 0 2.26vw;
}

.service_button_wrap {
  position: absolute;
  top: auto;
  left: auto;
  right: 0.9vw;
  bottom: 0.8vw;
  margin: 0;
  padding: 0;
  line-height: 0;
}

.service_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 4.21vw;
  height: 3vw;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background-color: #fac6aa;
  color: #333;
  font-size: 1.95vw;
  font-weight: 500;
  line-height: 1;
}

@media (max-width: 1329px) and (min-width: 1110px) {
  .service {
    width: 100%;
    padding-left: var(--content-space);
    padding-right: var(--content-space);
    background-color: transparent;
    padding-top: 85px;
    padding-bottom: 170px;
  }

  .service_inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
    width: 100%;
    max-width: none;
    margin: 0 auto;
  }

  .service_wrap_text {
    width: 100%;
    text-align: center;
  }

  .service_title_en {
    font-size: 68px;
  }

  .service_title_jp {
    font-size: 28px;
  }

  .service_sentence_left {
    margin-top: 24px;
    padding: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: center;
  }

  .service_wrap_card {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    min-width: 0;
  }

  .service_wrap_card img {
    flex-shrink: 0;
    height: auto;
    aspect-ratio: 3 / 2;
    align-self: center;
    object-fit: cover;
    object-position: center;
    width: 40%;
  }

  .service_card {
    position: relative;
    display: flex;
    background-color: #fff;
    border: 4px solid #FAC6AA;
    overflow: hidden;
  }

  .service_card_text {
    display: flex;
    flex-direction: column;
    position: static;
    flex: 1;
    min-width: 0;
    padding: 32px 50px 60px 50px;
  }

  .service_title {
    margin: 0;
    padding: 0 0 0 0;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.5;
  }

  .service_sentence_right {
    /* 本文だけの余白。値の順番は上・右・下・左です。 */
    margin-top: 16px;
    padding: 0 0 0 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
  }

  .service_button_wrap {
    right: 10px;
    bottom: 10px;
  }

  .service_button {
    width: 56px;
    height: 40px;
    border-radius: 8px;
    font-size: 26px;
  }
}

@media (max-width: 1109px) and (min-width: 960px) {
  .service {
    /* Memberの前は、下に140pxを全量確保します。 */
    width: 100%;
    padding-left: var(--content-space);
    padding-right: var(--content-space);
    background-color: transparent;
    padding-top: 70px;
    padding-bottom: 140px;
  }

  .service_inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
    width: 100%;
    max-width: none;
    margin: 0 auto;
  }

  .service_wrap_text {
    width: 100%;
    text-align: center;
  }

  .service_title_en {
    font-size: 56px;
  }

  .service_title_jp {
    font-size: 24px;
  }

  .service_sentence_left {
    margin-top: 24px;
    padding: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: center;
  }

  .service_wrap_card {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    min-width: 0;
  }

  .service_wrap_card img {
    flex-shrink: 0;
    height: auto;
    aspect-ratio: 3 / 2;
    align-self: center;
    object-fit: cover;
    object-position: center;
    width: 40%;
  }

  .service_card {
    position: relative;
    display: flex;
    background-color: #fff;
    border: 4px solid #FAC6AA;
    overflow: hidden;
  }

  .service_card_text {
    display: flex;
    flex-direction: column;
    position: static;
    flex: 1;
    min-width: 0;
    padding: 32px 50px 60px 50px;
  }

  .service_title {
    margin: 0;
    padding: 0 0 0 0;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.5;
  }

  .service_sentence_right {
    margin-top: 16px;
    padding: 0 0 0 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
  }

  .service_button_wrap {
    right: 10px;
    bottom: 10px;
  }

  .service_button {
    width: 56px;
    height: 40px;
    border-radius: 8px;
    font-size: 26px;
  }
}

@media (max-width: 959px) and (min-width: 850px) {
  .service {
    /* Memberの前は、下に140pxを全量確保します。 */
    padding-top: 70px;
    padding-bottom: 140px;
    width: 100%;
    padding-left: var(--content-space);
    padding-right: var(--content-space);
    background-color: transparent;
  }

  .service_inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 100%;
    max-width: none;
    margin: 0 auto;
  }

  .service_wrap_text {
    width: 100%;
    text-align: center;
  }

  .service_title_en {
    font-size: 56px;
  }

  .service_title_jp {
    font-size: 24px;
  }

  .service_sentence_left {
    margin-top: 24px;
    padding: 0 23px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: left;
  }

  .service_wrap_card img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: center;
  }

  .service_wrap_card {
    display: flex;
    gap: 24px;
    width: 100%;
    min-width: 0;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
  }

  .service_card {
    /* 2枚のカードの間に24pxの隙間 */
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border: 3px solid #FAC6AA;
    overflow: hidden;
    width: calc((100% - 24px) / 2);
    min-width: 0;
  }

  .service_card_text {
    padding: 20px 20px 60px 20px;
    display: flex;
    flex-direction: column;
    position: static;
  }

  .service_title {
    margin: 0;
    padding: 0 0 0 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.5;
    text-align: left;
  }

  .service_sentence_right {
    margin-top: 16px;
    padding: 0 0 0 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: left;
  }

  .service_button_wrap {
    right: 10px;
    bottom: 10px;
  }

  .service_button {
    width: 56px;
    height: 40px;
    font-size: 26px;
    border-radius: 6px;
  }
}

@media (max-width: 849px) and (min-width: 600px) {
  .service {
    /* Memberの前は、下に140pxを全量確保します。 */
    /* Memberの前は、下に100pxを全量確保します。 */
    width: 100%;
    padding-left: var(--content-space);
    padding-right: var(--content-space);
    background-color: transparent;
    padding-top: 50px;
    padding-bottom: 100px;
  }

  .service_inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 100%;
    max-width: none;
    margin: 0 auto;
  }

  .service_wrap_text {
    width: 100%;
    text-align: center;
  }

  .service_title_en {
    font-size: 48px;
  }

  .service_title_jp {
    font-size: 22px;
  }

  .service_sentence_left {
    margin-top: 24px;
    padding: 0 23px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: left;
  }

  .service_wrap_card img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: center;
  }

  .service_wrap_card {
    display: flex;
    gap: 24px;
    width: 100%;
    min-width: 0;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
  }

  .service_card {
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border: 3px solid #FAC6AA;
    overflow: hidden;
    width: calc((100% - 24px) / 2);
    min-width: 0;
  }

  .service_card_text {
    padding: 20px 20px 60px 20px;
    display: flex;
    flex-direction: column;
    position: static;
  }

  .service_title {
    margin: 0;
    padding: 0 0 0 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.5;
    text-align: left;
  }

  .service_sentence_right {
    margin-top: 16px;
    padding: 0 0 0 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: left;
  }

  .service_button_wrap {
    right: 10px;
    bottom: 10px;
  }

  .service_button {
    width: 56px;
    height: 40px;
    font-size: 26px;
    border-radius: 6px;
  }
}


@media (max-width: 599px) {
  .service {
    width: 100%;
    padding-left: var(--content-space);
    padding-right: var(--content-space);
    background-color: transparent;
    padding-top: 50px;
    padding-bottom: 100px;
  }

  .service_inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 100%;
    max-width: none;
    margin: 0 auto;
  }

  .service_wrap_text {
    width: 100%;
    text-align: center;
  }

  .service_title_en {
    font-size: 48px;
  }

  .service_title_jp {
    font-size: 22px;
  }

  .service_sentence_left {
    margin-top: 24px;
    padding: 0 23px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: left;
  }

  .service_wrap_card img {
    display: block;
    height: auto;
    width: 100%;
    aspect-ratio: auto;
  }

  .service_wrap_card {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    min-width: 0;
  }

  .service_card {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border: 3px solid #FAC6AA;
    overflow: hidden;
  }

  .service_card_text {
    padding: 20px 20px 60px 20px;
    display: flex;
    flex-direction: column;
    position: static;
  }

  .service_title {
    margin: 0;
    padding: 0 0 0 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.5;
    text-align: left;
  }

  .service_sentence_right {
    margin-top: 16px;
    padding: 0 0 0 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    text-align: left;
  }

  .service_button_wrap {
    right: 10px;
    bottom: 10px;
  }

  .service_button {
    width: 56px;
    height: 40px;
    font-size: 26px;
    border-radius: 6px;
  }
}

/* ========================================
   メンバー紹介
   比例拡大：上限なし～1330px
   PC：上限なし～1110px
   TB：1109px～850px
   SP：849px～下限なし
======================================== */

.member_photo_placeholder {
  background-color: #e6e6e6;
}

.member_wrap_card img,
.member_photo_placeholder {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center;
  flex-shrink: 0;
  aspect-ratio: 9 / 9;
}

.member,
.member * {
  box-sizing: border-box;
}

.member {
  width: 100%;
  background-color: #FCF9F6;
}

.member_background {
  padding: 5.26vw 12.03vw 8.27vw;
  background-color: #fac6aa;
  border-radius: 0 0 6.02vw 0;
}

.member_inner {
  width: 100%;
  margin: 0 auto;
}

.member_wrap_text {
  text-align: center;
  margin-bottom: 3.61vw;
}

.member_title_en {
  font-size: 5.11vw;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  color: #ff8b68;
}

.member_title_en,
.member_title_jp {
  margin: 0;
  color: #fff;
}

.member_title_jp {
  display: block;
  font-size: 2.11vw;
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  margin: 0;
}

.member_sentence {
  display: block;
  font-size: 1.2vw;
  font-weight: 500;
  line-height: 1.5;
  margin: 1.8vw 0 0;
  color: #fff;
}

.member_slider {
  position: relative;
}

.member_prev,
.member_next,
.member_slide_status {
  display: none;
}

.member_wrap_card {
  display: flex;
  flex-wrap: wrap;
  gap: 1.8vw;
}

.member_card {
  display: flex;
  width: calc((100% - 5.41vw) / 4);
  min-width: 0;
}

.member_link {
  display: flex;
  flex-direction: column;
  width: 100%;
  color: #333;
  text-decoration: none;
  background-color: #fff;
  overflow: hidden;
  position: relative;
}

.member_link:focus-visible {
  outline: 0.23vw solid #a56854;
  outline-offset: 0.3vw;
}

.member_wrap_card .member_01 {
  object-position: 50% 50%;
}

.member_text {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.5vw 0.5vw 0.75vw;
  padding-bottom: 4.51vw;
}

.member_icon {
  align-self: flex-start;
  border: 0.15vw solid #333;
  border-radius: 0.45vw;
  padding: 0.15vw 0.45vw;
  margin: 0 0.75vw;
  font-size: 1.2vw;
  font-weight: 700;
}

.member_title {
  margin: 1.50vw 0.75vw 0.75vw;
  font-size: 1.35vw;
  font-weight: 700;
  line-height: 1.6;
}

.member_name {
  display: block;
  font-size: 1.2vw;
  font-weight: 500;
  margin: auto 0.75vw 0;
}

.member_job {
  min-height: 3.2em;
  display: block;
  font-size: 1.05vw;
  line-height: 1.6;
  font-weight: 500;
  margin: 0 0.75vw 0.6vw;
}

.member_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 4.21vw;
  height: 3vw;
  border: 0;
  border-radius: 10px;
  background-color: #fac6aa;
  color: #333;
  font-size: 1.95vw;
  font-weight: 500;
  position: absolute;
  top: auto;
  left: auto;
  right: 0.9vw;
  bottom: 0.8vw;
  margin: 0;
  padding: 0;
  line-height: 1;
}

.member_wrap_card .member_02 {
  object-position: 30% 50%;
}

.member_wrap_card .member_03 {
  object-position: 100% 50%;
}

.member_wrap_card .member_04 {
  object-position: 35% 50%;
}

/* 1329px～1110px：この幅の調整はここにまとめています。 */

@media (max-width: 1329px) and (min-width: 1110px) {
  .member_background {
    padding: 70px var(--content-space) 110px;
    border-radius: 0 0 80px 0;
  }

  .member_wrap_text {
    margin-bottom: 48px;
  }

  .member_title_en {
    font-size: 68px;
  }

  .member_title_jp {
    font-size: 28px;
  }

  .member_sentence {
    margin: 24px 0 0;
    font-size: 16px;
  }

  .member_wrap_card {
    gap: 24px;
  }

  .member_card {
    width: calc((100% - 72px) / 4);
  }

  .member_link:focus-visible {
    outline: 3px solid #a56854;
    outline-offset: 4px;
  }

  .member_text {
    padding: 20px 10px 60px 10px;
  }

  .member_icon {
    border: 2px solid #333;
    border-radius: 6px;
    padding: 2px 6px;
    margin: 0 10px;
    font-size: 16px;
  }

  .member_title {
    margin: 14px 10px 10px;
    font-size: 18px;
  }

  .member_name {
    font-size: 16px;
    margin: auto 10px 0;
  }

  .member_job {
    font-size: 14px;
    margin: 0 10px 8px;
  }

  .member_button {
    width: 56px;
    height: 40px;
    border-radius: 10px;
    font-size: 26px;
    right: 10px;
    bottom: 10px;
  }
}

/* 1109px～850px：この幅の調整はここにまとめています。 */

@media (max-width: 1109px) and (min-width: 850px) {
  .member_background {
    padding: 75px var(--content-space) 85px;
    border-radius: 0 0 50px 0;
  }

  .member_inner {
    max-width: none;
  }

  .member_wrap_text {
    margin-bottom: 48px;
  }

  .member_title_en {
    font-size: 56px;
  }

  .member_title_jp {
    font-size: 24px;
  }

  .member_sentence {
    margin: 24px 0 0;
    font-size: 16px;
  }

  .member_wrap_card {
    gap: 24px;
  }

  .member_card {
    width: calc((100% - 24px) / 2);
  }

  .member_link:focus-visible {
    outline: 3px solid #a56854;
    outline-offset: 4px;
  }

  .member_wrap_card .member_01 {
    object-position: 50% 50%;
  }

  .member_text {
    padding: 20px 20px 60px 20px;
  }

  .member_icon {
    border: 2px solid #333;
    border-radius: 6px;
    padding: 2px 6px;
    margin: 0 10px;
    font-size: 16px;
  }

  .member_title {
    margin: 14px 10px 10px;
    font-size: 18px;
  }

  .member_name {
    font-size: 16px;
    margin: auto 10px 0;
  }

  .member_job {
    font-size: 14px;
    margin: 0 10px 8px;
  }

  .member_button {
    width: 56px;
    height: 40px;
    font-size: 26px;
    right: 10px;
    bottom: 10px;
    border-radius: 8px;
  }

  .member_wrap_card .member_02 {
    object-position: 50% 50%;
  }

  .member_wrap_card .member_03 {
    object-position: 50% 50%;
  }

  .member_wrap_card .member_04 {
    object-position: 50% 50%;
  }
}

/* 849px以下：この幅の調整はここにまとめています。 */

@media (max-width: 849px) {
  .member_background {
    padding: 48px var(--content-space) 48px;
    border-radius: 0 0 30px 0;
  }

  .member_inner {
    max-width: none;
  }

  .member_wrap_text {
    margin-bottom: 32px;
    width: 100%;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    padding: 0;
  }

  .member_title_en {
    font-size: 48px;
  }

  .member_title_jp {
    font-size: 22px;
  }

  .member_sentence {
    margin: 24px 0 0 0;
    font-size: 16px;
    text-align: center;
  }

  .member_slider {
    width: 100%;
  }

  .member_slider.is_ready .member_prev,
  .member_slider.is_ready .member_next {
    display: none;
  }

  .member_wrap_card {
    gap: 24px;
  }

  .member_wrap_card.slick-initialized {
    display: block;
  }

  .member_wrap_card .slick-track {
    display: flex;
    align-items: stretch;
  }

  .member_wrap_card .slick-slide {
    display: flex;
    height: auto;
    margin: 0 8px;
    opacity: 0.35;
    transition: opacity 0.35s;
  }

  .member_wrap_card .slick-center {
    opacity: 1;
  }

  .member_wrap_card .slick-dots {
    display: flex;
    justify-content: center;
    gap: 4px;
    position: static;
    width: 100%;
    margin: 20px 0 0;
    padding: 0;
    list-style: none;
  }

  .member_wrap_card .slick-dots li {
    margin: 0;
    padding: 0;
  }

  .member_wrap_card .slick-dots button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 0;
    cursor: pointer;
  }

  .member_wrap_card .slick-dots button::before {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #aaa;
  }

  .member_wrap_card .slick-dots .slick-active button::before {
    background: #222;
  }

  .member_wrap_card .slick-dots button:focus-visible {
    outline: 2px solid #333;
    border-radius: 6px;
  }

  .member_wrap_card img {
    aspect-ratio: 9 / 7;
  }

  .member_card {
    width: 100%;
  }

  .member_link:focus-visible {
    outline: 3px solid #a56854;
    outline-offset: 4px;
  }

  .member_wrap_card .member_01 {
    object-position: 50% 50%;
  }

  .member_text {
    padding: 20px 20px 60px 20px;
  }

  .member_icon {
    border: 2px solid #333;
    border-radius: 6px;
    padding: 2px 6px;
    margin: 0 10px;
    font-size: 16px;
  }

  .member_title {
    margin: 14px 10px 10px;
    font-size: 18px;
  }

  .member_name {
    font-size: 16px;
    margin: auto 10px 0;
  }

  .member_job {
    font-size: 14px;
    margin: 0 10px 8px;
  }

  .member_button {
    width: 56px;
    height: 40px;
    font-size: 26px;
    right: 10px;
    bottom: 10px;
    border-radius: 6px;
  }

  .member_wrap_card .member_02 {
    object-position: 30% 50%;
  }

  .member_wrap_card .member_03 {
    object-position: 85% 50%;
  }

  .member_wrap_card .member_04 {
    object-position: 35% 50%;
  }

  .member_slider.is_ready .member_slide_status {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .member_wrap_card .slick-slide {
    transition: none;
  }
}

/* ========================================
   働く環境
   比例拡大：上限なし～1330px
   横並び：上限なし～850px
   2列＋1枚中央：849px～600px
   縦並び：599px～下限なし
======================================== */

.environment {
  padding: 170px 12.03vw 85px;
  background-color: #FCF9F6;
}

.environment_inner {
  width: 100%;
  max-width: none;
  margin: 0 auto;
}

.environment_wrap_text {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  text-align: center;
}

.environment_title_en {
  font-size: 5.11vw;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  color: #ff8b68;
}

.environment_title_jp {
  display: block;
  font-size: 2.11vw;
  font-weight: 700;
  line-height: 1.5;
  color: #ff8b68;
}

.environment_sentence {
  display: block;
  font-size: 1.2vw;
  font-weight: 500;
  line-height: 1.5;
  margin: 1.8vw 0 0;
}

.environment_wrap_card {
  display: flex;
  gap: 1.2vw;
  width: 100%;
  max-width: none;
  height: 20.3vw;
  margin: 3.76vw auto 0;
}

.environment_card {
  width: calc((100% - 2.41vw) / 3);
  text-align: center;
  background-color: #fff;
  border: 0.3vw solid #fac6aa;
  padding: 1.2vw;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.9vw;
}

.environment_card img {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 12.03vw;
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
  flex-shrink: 0;
}

.environment_card .environment_flextime {
  position: relative;
  transform: scale(0.9);
}

.environment_card_title {
  font-size: 1.2vw;
  font-weight: 500;
}

.environment_card .environment_daycare {
  position: relative;
  bottom: 0;
}

.environment_card .environment_remote {
  position: relative;
  transform: scale(1.1);
}

.environment_button {
  margin-top: 3.01vw;
  text-align: center;
}

.environment_button a {
  display: inline-block;
  max-width: 100%;
  padding: 1.05vw 3.01vw;
  font-size: 1.2vw;
  font-weight: 700;
  color: #fff;
  background-color: #9D6452;
  border-radius: 0.75vw;
}

/* 1329px～1110px：この幅の調整はここにまとめています。 */

@media (max-width: 1329px) and (min-width: 1110px) {
  .environment {
    padding-top: 170px;
    padding-bottom: 85px;
    padding-left: var(--content-space);
    padding-right: var(--content-space);
  }

  .environment_title_en {
    font-size: 68px;
  }

  .environment_title_jp {
    font-size: 28px;
  }

  .environment_sentence {
    font-size: 16px;
    margin: 24px 0 0;
  }

  .environment_wrap_card {
    gap: 16px;
    height: 270px;
    margin: 50px auto 0;
  }

  .environment_card {
    width: calc((100% - 32px) / 3);
    border: 4px solid #fac6aa;
    padding: 16px;
    gap: 12px;
  }

  .environment_card img {
    height: 160px;
  }

  .environment_card_title {
    font-size: 16px;
  }

  .environment_button {
    margin-top: 40px;
  }

  .environment_button a {
    padding: 14px 40px;
    font-size: 16px;
    border-radius: 10px;
  }
}

@media (max-width: 1109px) and (min-width: 850px) {
  .environment {
    padding-left: var(--content-space);
    padding-right: var(--content-space);
    padding-top: 140px;
    padding-bottom: 70px;
  }

  .environment_title_en {
    font-size: 56px;
  }

  .environment_title_jp {
    font-size: 24px;
  }

  .environment_sentence {
    margin: 24px 0 0;
    font-size: 16px;
  }

  .environment_wrap_card {
    gap: 16px;
    height: 270px;
    margin: 50px auto 0;
  }

  .environment_card {
    width: calc((100% - 32px) / 3);
    border: 4px solid #fac6aa;
    padding: 16px;
    gap: 12px;
  }

  .environment_card img {
    height: 160px;
  }

  .environment_card_title {
    font-size: 16px;
  }

  .environment_button {
    margin-top: 40px;
  }

  .environment_button a {
    padding: 14px 40px;
    font-size: 16px;
    border-radius: 10px;
  }
}


@media (max-width: 849px) and (min-width: 600px) {
  .environment {
    padding-left: var(--content-space);
    padding-right: var(--content-space);
    padding-top: 100px;
    padding-bottom: 50px;
  }

  .environment_inner {
    width: 100%;
    max-width: none;
    margin: 0 auto;
  }

  .environment_wrap_text {
    width: 100%;
    max-width: none;
    margin: 0 auto;
    text-align: center;
  }

  .environment_title_en {
    font-size: 48px;
  }

  .environment_title_jp {
    font-size: 22px;
  }

  .environment_sentence {
    font-size: 16px;
    margin: 24px 0 0;
  }

  .environment_wrap_card {
    display: flex;
    gap: 16px;
    width: 100%;
    margin: 50px auto 0;
    height: auto;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    max-width: 516px;
  }

  .environment_card {
    /* カード間の16pxを引いて2等分します。 */
    box-sizing: border-box;
    max-width: 250px;
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    text-align: center;
    background-color: #fff;
    border: 4px solid #fac6aa;
    padding: 16px;
    width: calc((100% - 16px) / 2);
  }

  .environment_card img {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 160px;
    margin: 0 auto;
    object-fit: contain;
    object-position: center;
    flex-shrink: 0;
  }

  .environment_card .environment_flextime {
    position: relative;
    transform: scale(0.9);
  }

  .environment_card_title {
    font-size: 16px;
    font-weight: 500;
  }

  .environment_card .environment_daycare {
    position: relative;
    bottom: 0;
  }

  .environment_card .environment_remote {
    position: relative;
    transform: scale(1.1);
  }

  .environment_button {
    margin-top: 40px;
    text-align: center;
  }

  .environment_button a {
    display: inline-block;
    max-width: 100%;
    padding: 14px 24px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.7;
    color: #fff;
    background-color: #a56854;
    border-radius: 10px;
  }
}

@media (max-width: 599px) {
  .environment {
    padding-left: var(--content-space);
    padding-right: var(--content-space);
    padding-top: 100px;
    padding-bottom: 50px;
  }

  .environment_inner {
    width: 100%;
    max-width: none;
    margin: 0 auto;
  }

  .environment_wrap_text {
    width: 100%;
    max-width: none;
    margin: 0 auto;
    text-align: center;
  }

  .environment_title_en {
    font-size: 48px;
  }

  .environment_title_jp {
    font-size: 22px;
  }

  .environment_sentence {
    font-size: 16px;
    margin: 24px 0 0;
  }

  .environment_wrap_card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    width: 100%;
    margin: 50px auto 0;
    height: auto;
  }

  .environment_card {
    box-sizing: border-box;
    width: 100%;
    max-width: 250px;
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    text-align: center;
    background-color: #fff;
    border: 4px solid #fac6aa;
    padding: 16px;
  }

  .environment_card img {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 160px;
    margin: 0 auto;
    object-fit: contain;
    object-position: center;
    flex-shrink: 0;
  }

  .environment_card .environment_flextime {
    position: relative;
    transform: scale(0.9);
  }

  .environment_card_title {
    font-size: 16px;
    font-weight: 500;
  }

  .environment_card .environment_daycare {
    position: relative;
    bottom: 0;
  }

  .environment_card .environment_remote {
    position: relative;
    transform: scale(1.1);
  }

  .environment_button {
    margin-top: 40px;
    text-align: center;
  }

  .environment_button a {
    display: inline-block;
    max-width: 100%;
    padding: 14px 24px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.7;
    color: #fff;
    background-color: #a56854;
    border-radius: 10px;
  }
}

/* ========================================
   募集職種
   比例拡大：上限なし～1330px
   PC：上限なし～1110px
   TB：1109px～850px
   SP：849px～下限なし
======================================== */

.recruit {
  position: relative;
  z-index: 2;
  padding: 85px 12.03vw 85px;
  background-color: #FCF9F6;
}

.recruit::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6.02vw;
  width: 100%;
  height: 6.02vw;
  background-color: #FCF9F6;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
}

.recruit_inner {
  width: 100%;
  max-width: none;
  margin: 0 auto;
}

.recruit_wrap_text {
  text-align: center;
}

.recruit_title_en {
  font-size: 5.11vw;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  color: #ff8b68;
}

.recruit_title_jp {
  display: block;
  font-size: 2.11vw;
  font-weight: 700;
  line-height: 1.5;
  color: #ff8b68;
}

.recruit_sentence {
  font-size: 1.2vw;
  margin: 1.8vw 0 0;
  font-weight: 500;
}

.recruit_inner > .recruit_sentence {
  margin: 4.1vw 0 0;
  font-weight: 500;
  text-align: center;
}

.recruit_wrap_card_above {
  display: flex;
  margin: 3.76vw 0 0 0;
  gap: 1.2vw;
}

.recruit_wrap_card {
  width: calc((100% - 2.41vw) / 3);
  min-width: 0;
  position: relative;
}

.recruit_jobtitle {
  font-size: 1.2vw;
  position: absolute;
  right: 0;
  bottom: 1.2vw;
  background-color: #FAC6AA;
  width: 12.78vw;
  padding: 0.3vw 0.75vw;
  border-radius: 0.38vw 0 0 0.38vw;
  font-weight: 700;
  text-align: center;
}

.recruit_wrap_card_below {
  display: flex;
  justify-content: center;
  margin: 1.2vw 0 0 0;
  gap: 1.2vw;
}

.recruit_button {
  margin-top: 3.01vw;
  text-align: center;
}

.recruit_button a {
  display: inline-block;
  max-width: 100%;
  padding: 1.05vw 3.01vw;
  font-size: 1.2vw;
  font-weight: 700;
  color: #fff;
  background-color: #9D6452;
  border-radius: 0.75vw;
}

@media (max-width: 1329px) {
  .recruit {
    padding-left: var(--content-space);
    padding-right: var(--content-space);
    padding-top: 85px;
    padding-bottom: 85px;
  }

  .recruit::after {
    bottom: -80px;
    height: 80px;
  }

  .recruit_sentence {
    font-size: 16px;
    margin: 24px 0 0;
  }

  .recruit_inner > .recruit_sentence {
    margin: 4.3vw 0 0;
  }

  .recruit_wrap_card_above {
    margin: 50px 0 0 0;
    gap: 16px;
  }

  .recruit_wrap_card {
    width: calc((100% - 32px) / 3);
  }

  .recruit_jobtitle {
    font-size: 16px;
    right: 0px;
    bottom: 16px;
    width: 170px;
    padding: 4px 10px;
    border-radius: 5px 0 0 5px;
  }

  .recruit_wrap_card_below {
    margin: 16px 0 0 0;
    gap: 16px;
  }

  .recruit_button {
    margin-top: 40px;
  }

  .recruit_button a {
    padding: 14px 40px;
    font-size: 16px;
    border-radius: 10px;
  }
}

@media (max-width: 1329px) and (min-width: 1110px) {
  .recruit_title_en {
    font-size: 68px;
  }

  .recruit_title_jp {
    font-size: 28px;
  }
}

@media (max-width: 1109px) {
  .recruit {
    /* 前後のセクションと70pxずつ、合計140px */
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

@media (max-width: 1109px) and (min-width: 850px) {
  .recruit_title_en {
    font-size: 56px;
  }

  .recruit_title_jp {
    font-size: 24px;
  }

  .recruit_jobtitle {
    width: 140px;
    text-align: center;
    font-size: 13px;
  }
}

@media (max-width: 849px) {

  .recruit {
    padding-left: var(--content-space);
    padding-right: var(--content-space);
    background-color: #FCF9F6;
    padding-top: 50px;
    padding-bottom: 50px;
  }

  .recruit_inner {
    width: 100%;
    max-width: none;
    margin: 0 auto;
  }

  .recruit_title_en {
    font-size: 48px;
  }

  .recruit_title_jp {
    font-size: 22px;
  }

  .recruit_inner > .recruit_sentence {
    margin: 30px 0 0;
  }

  .recruit_wrap_card_above {
    display: flex;
    flex-direction: column;
    margin-top: 50px;
    gap: 16px;
  }

  .recruit_wrap_card {
    position: relative;
    width: 100%;
  }

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

  .recruit_jobtitle {
    position: absolute;
    right: 0;
    box-sizing: border-box;
    width: 60%;
    font-size: calc((100vw - 50px) * 13 / 232);
    bottom: calc((100vw - 150px) * 20 / 232);
    background-color: #FAC6AA;
    font-weight: 700;
    text-align: center;
  }

  .recruit_wrap_card_below {
    display: flex;
    flex-direction: column;
    margin-top: 16px;
    gap: 16px;
  }
}

/* ========================================
   エントリー
   PCの比例拡大：上限なし～1330px
   PC・TB：上限なし～850px
   SP：849px～下限なし
======================================== */

.entry {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 45.11vw;
  margin: 0 auto;
}

.entry_background {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: url("../../images/07_entry/japan.png");
  background-size: cover;
  /* 左右の見せる位置：0%＝左、50%＝中央、100%＝右 */
  background-position-x: 50%;
  /* 上下の見せる位置：0%＝上、50%＝中央、100%＝下 */
  background-position-y: 80%;
  background-repeat: no-repeat;
  opacity: 0.3;
}

.entry_inner {
  top: 2vw;
  position: relative;
  z-index: 1;
  padding: 0 12.03vw 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2.26vw;
  height: 100%;
}

.entry_message {
  font-size: 2.71vw;
  font-weight: 700;
  text-align: center;
}

.entry_button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 30px 70px;
  color: #fff;
  font-size: 48px;
  font-weight: 700;
  background-color: #ff5b2a;
  border-radius: 16px;
}

.entry_button span {
  position: relative;
  top: 5px;
  left: 0px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  color: #ff5b2a;
  font-size: 30px;
  line-height: 1;
  font-weight: 700;
  background-color: #fff;
  border-radius: 6px;
}

@media (max-width: 1329px) {
  .entry {
    height: 600px;
  }

  .entry_inner {
    top: 20px;
    padding: 0 var(--content-space) 0;
    gap: 30px;
  }

  .entry_message {
    font-size: 36px;
  }

  .entry_button {
    gap: 20px;
    padding: 30px 70px;
    font-size: 48px;
    border-radius: 16px;
  }

  .entry_button span {
    /* 矢印の白い枠ごと移動：topは下へ、leftは右へ */
    /* マイナスにすると上・左へ動きます。 */
    position: relative;
    left: 0px;
    width: 48px;
    height: 48px;
    font-size: 30px;
    border-radius: 6px;
  }
}

@media (max-width: 849px) {
  .entry_inner {
    top: 20px;
    width: 100%;
    padding: 0 var(--content-space) 0;
    box-sizing: border-box;
  }

  .entry_message {
    font-size: 24px;
    font-weight: 700;
    text-align: center;
  }

  .entry_button {
    box-sizing: border-box;
    max-width: 100%;
    padding: 20px 40px;
    font-size: 36px;
    border-radius: 10px;
  }

  .entry_button span {
    position: relative;
    top: 2px;
    left: 0px;
    width: 38px;
    height: 38px;
    font-size: 30px;
    line-height: 1;
    border-radius: 6px;
  }
}

/* ========================================
   フッター
   PC・TB：上限なし～850px
   SP：849px～下限なし
======================================== */

.footer {
  width: 100%;
  padding: 30px 12.03vw;
  box-sizing: border-box;
}

.footer_inner {
  width: 100%;
  max-width: none;
  margin: 0 auto;
}

.footer_wrap {
  display: flex;
  width: 100%;
  font-weight: 700;
}

.footer_wrap_left {
  align-items: flex-start;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 16px;
  justify-content: center;
}

.footer_wrap_left img {
  width: 178px;
  height: 20px;
}

.footer_button span {
  font-size: 13px;
  font-weight: 700;
  border: solid 2px;
  border-radius: 4px;
  padding: 2px 5px;
  margin-left: 4px;
}

.footer_button {
  padding: 10px;
  border: solid 2px;
  border-radius: 10px;
}

.footer_wrap_right {
  display: flex;
  flex-direction: column;
  margin-left: auto;
  font-size: 14px;
}

.footer_wrap_right p {
  display: flex;
  flex-direction: column;
}

/* 会社情報などのリンク：マウスを載せると薄い灰色 */
.footer_policy a {
  transition: color 0.3s;
}

.footer_policy a:hover,
.footer_policy a:focus-visible {
  color: #999;
}

.copyright {
  margin-top: 10px;
}

@media (max-width: 1329px) {
  .footer {
    padding: 30px var(--content-space);
  }
}

@media (max-width: 849px) {
  .footer {
    padding: 30px var(--content-space);
  }

  .footer_wrap {
    display: block;
    width: 100%;
    font-weight: 500;
    text-align: center;
  }

  .footer_wrap_left {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 16px;
  }

  .footer_button span {
    font-size: 13px;
    font-weight: 500;
    border: solid 2px;
    border-radius: 4px;
    padding: 2px 5px;
    margin-left: 4px;
  }

  .footer_button {
    padding: 8px 10px;
    border: solid 2px;
    border-radius: 10px;
    margin-top: 2px;
    font-weight: 700;
  }

  .footer_wrap_right {
    display: flex;
    flex-direction: column;
    margin-left: auto;
    font-size: 12px;
    font-weight: 700;
  }

  .footer_wrap_right p {
    margin-top: 10px;
  }

  .copyright {
    margin-top: 8px;
  }
}

/* ==========================================================
  ==========================================================
  【 02. 動きの設定 】
  hover・フェード・スクロール・表示切替
  ==========================================================
  ========================================================== */
   
/* ========================================
   ヘッダーの追従・スクロール後の背景
   PC：上限なし～1110px／TB・SP：1109px以下は追従なし
======================================== */

.header {
  position: sticky;
  top: 0;
  z-index: 1000;
  transition: background-color 0.3s;
}

/* 0.5が背景の濃さ（不透明度50％）です。小さくすると透明に近づきます。 */
.header.is-scrolled {
  background-color: rgba(255, 255, 255, 0.8);
}

/* リンク先の見出しがヘッダーに隠れないようにします。 */
html {
  scroll-padding-top: 96px;
}

/* ========================================
   FVメイン写真をふわっと表示
   PC・TB・SP共通／最初の1回のみ
======================================== */

.fv_mainvisual {
  animation: fv-photo-reveal 3.5s ease-in-out both;
}

@keyframes fv-photo-reveal {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* FVの表示中だけスクロールを止めます。 */
html {
  scrollbar-gutter: stable;
}

html.fv_scroll_locked,
html.fv_scroll_locked body {
  overflow: hidden;
  overscroll-behavior: none;
}

/* ========================================
   見出し・説明文をふわっと表示
   PC・TB・SP共通／最初の1回のみ
======================================== */

.section_reveal {
  animation: section-fade-up 2s ease-out both;
}

@keyframes section-fade-up {
  from {
    opacity: 0;
    translate: 0 14px;
  }

  to {
    opacity: 1;
    translate: 0 0;
  }
}

/* SPは移動距離を小さくします。 */
@media (max-width: 849px) {
  .section_reveal {
    animation-name: section-fade-up-sp;
  }
}

@keyframes section-fade-up-sp {
  from {
    opacity: 0;
    translate: 0 8px;
  }

  to {
    opacity: 1;
    translate: 0 0;
  }
}

/* キーボード操作中や、動きを減らす設定ではそのまま表示します。 */
.section_reveal:focus-within {
  animation: none;
}


/* 表示位置に来るまでは待機。場所は確保するのでレイアウトは動きません。 */
.section_reveal_wait {
  opacity: 0;
}

.section_reveal_wait:focus-within {
  opacity: 1;
}

/* 動きを減らす端末設定では、最初から通常表示します。 */
@media (prefers-reduced-motion: reduce) {
  .section_reveal,
  .fv_mainvisual {
    animation: none;
  }

  .section_reveal_wait {
    opacity: 1;
  }
}
/* ========================================
   ボタン・カード：マウスを載せると少し拡大
======================================== */

@media (hover: hover) and (pointer: fine) {
  .header_button a,
  .about_button a,
  .service_card,
  .member_link,
  .environment_button a,
  .recruit_button a,
  .entry_button,
  .footer_button {
    transition: scale 0.25s ease;
  }

  .header_button a:hover,
  .about_button a:hover,
  .service_card:hover,
  .member_link:hover,
  .environment_button a:hover,
  .recruit_button a:hover,
  .entry_button:hover,
  .footer_button:hover {
    /* 1.03は元の大きさの103％です。 */
    scale: 1.03;
  }

  .header_button a {
    transition: scale 0.25s ease, opacity 0.3s;
  }
}

/* ========================================
   マウスを載せている間のボタンの色
======================================== */

/* カードにマウスを載せると、右下の矢印が濃い色になります。 */
.service_card:hover .service_button,
.member_link:hover .member_button {
  background-color: #a56854;
  color: #fff;
}

/* 「〜を見る」ボタン */
.about_button a:hover,
.environment_button a:hover,
.recruit_button a:hover {
  background-color: #ff5b2a;
  color: #fff;
}

/* ヘッダーとENTRY：ボタン全体の背景色を変更します。 */
.header_button a:hover,
.entry_button:hover {
  background-color: #a56854;
  color: #fff;
  opacity: 1;
}

/* 白い矢印枠の中は、ボタン背景と同じ茶色にします。 */
.header_button a:hover span,
.entry_button:hover span {
  background-color: #fff;
  color: #a56854;
}

/* コーポレートサイト：文字・枠・矢印を同じ薄い灰色にします。 */
.footer_button:hover,
.footer_button:focus-visible {
  color: #999;
  border-color: #999;
}

.footer_button:hover span,
.footer_button:focus-visible span {
  color: #999;
  border-color: #999;
}

/* ========================================
   TB・SP：画面下の固定ボタン
   スクロール後に表示／ENTRY以降は非表示
======================================== */

.fixed_buttons {
  display: none;
}

@media (max-width: 1109px) {
  .header {
    position: relative;
    top: auto;
  }

  .header.is-scrolled {
    background-color: #fff;
  }

  html {
    scroll-padding-top: 16px;
  }

  .fixed_buttons {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1100;
    display: flex;
    justify-content: center;
    gap: 16px;
    padding: 12px 16px;
    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
    background-color: transparent;
    transform: translateY(100%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.4s ease, opacity 0.4s ease, visibility 0s 0.4s;
  }

  .fixed_buttons.is-visible {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: transform 0.4s ease, opacity 0.4s ease, visibility 0s;
  }

  .fixed_buttons a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 180px;
    max-width: calc((100% - 16px) / 2);
    height: 60px;
    box-sizing: border-box;
    border-radius: 8px;
    background-color: #ff5b2a;
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    white-space: nowrap;
    transition: background-color 0.3s;
  }

  /* 2つ目のENTRYボタンの文字サイズ */
  .fixed_buttons a:nth-child(2) {
    font-size: 23px;
  }
  .fixed_buttons span {
    /* 矢印の白い枠ごと調整。マイナスなら上・左へ動きます。 */
    position: relative;
    top: 1px; /* プラスで下へ */
    left: 0px; /* プラスで右へ */
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 4px;
    background-color: #fff;
    color: #ff5b2a;
    font-size: 15px;
    line-height: 1;
  }

  /* ENTRY側の矢印だけ位置を調整します。 */
  .fixed_buttons a:nth-child(2) span {
    top: 1px;  /* プラスで下、マイナスで上 */
    left: 0px; /* プラスで右、マイナスで左 */
  }
  .fixed_buttons a:hover,
  .fixed_buttons a:active,
  .fixed_buttons a:focus-visible {
    background-color: #a56854;
  }

  .fixed_buttons a:hover span,
  .fixed_buttons a:active span,
  .fixed_buttons a:focus-visible span {
    color: #a56854;
  }

  /* フッターではボタンが消えるため、左右均等の余白にします。 */
  .footer {
    padding: 30px var(--content-space);
  }

  .footer_wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    text-align: center;
  }

  .footer_wrap_left {
    width: 100%;
    min-width: 0;
    align-items: center;
    text-align: center;
  }

  .footer_wrap_left img {
    max-width: 100%;
    height: auto;
  }

  .footer_wrap_right {
    margin-left: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .footer_button {
    box-sizing: border-box;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .nav {
    box-sizing: border-box;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fixed_buttons,
  .fixed_buttons.is-visible {
    transition: none;
  }
}








