@charset "UTF-8";

:root {
  /* 色管理用の変数 */
  --color-text-primary: #000;
  --color-white: #fff;
  --color-primary: #327d64;
  --color-bg01: rgb(233, 246, 242, 0.8);
  --color-bg02: rgb(255, 255, 255, 0.8);
}

:root {
  /* コンテンツ幅管理用の変数 */
  --content-width-sm: 1000px;
  --content-width: 1080px;
  --content-width-lg: 1320px;
}

:root {
  /* z-index管理用の変数 */
  --z-index-back: -1;
  --z-index-default: 1;
  --z-index-header: 100;
  --z-index-menu: 150;
  --z-index-modal: 200;
}

:root {
  /* font-family */
  --font-serif: "游明朝", "Yu Mincho", YuMincho, "Noto Serif JP", serif;
  --font-sans: "游ゴシック体", "Yu Gothic", YuGothic, "游ゴシック",
    "Noto Sans JP", sans-serif;
}

/* ---------- base ---------- */
html {
  font-size: 4.102vw; /* 16px */
  scroll-behavior: smooth;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  html {
    font-size: clamp(
      16px,
      1.111vw,
      /* PC基準: 16px ÷ 1440 × 100 = 1.111vw */ 16px
    );
  }
}
@media screen and (min-width: 1440px) {
  html {
    font-size: 16px;
  }
}

body {
  color: var(--color-text-primary);
  background: var(--color-white);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: normal;
}

/* クリックした際の青い枠線を削除 */
*:focus {
  outline: none;
}

/* タップした際の青い四角を削除 */
button {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  cursor: pointer;
}

/* ---------- utility ---------- */
.u_pc-none {
  display: block;
}
@media screen and (min-width: 768px) {
  .u_pc-none {
    display: none;
  }
}

.u_sp-none {
  display: none;
}
@media screen and (min-width: 768px) {
  .u_sp-none {
    display: block;
  }
}

.u_fadein-up {
  opacity: 0;
  animation-name: fadein;
  animation-duration: 0.6s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
}
@keyframes fadein {
  0% {
    opacity: 0;
    transform: translateY(30%);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.u_fadein-text {
  opacity: 0;
  animation-name: fadein-text;
  animation-duration: 1s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
}
@keyframes fadein-text {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.u_fade-up.active {
  opacity: 1;
  transform: translateY(0);
}

.u_fade-up {
  opacity: 0;
  transform: translateY(1.389vw);
  transition: opacity 0.6s ease, transform 0.6s ease;
  will-change: opacity, transform;
}

/* ---------- layout ---------- */

.l_container-sm,
.l_container,
.l_container-lg {
  width: 100%;
  padding: 0 4.1vw; /* 16px → 4.1vw */
  margin: 0 auto;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_container-sm,
  .l_container,
  .l_container-lg {
    padding: 0 clamp(16px, 1.389vw, 20px); /* PC基準: 20px ÷ 1440 × 100 = 1.389vw */
  }
}
@media screen and (min-width: 1440px) {
  .l_container-sm,
  .l_container,
  .l_container-lg {
    padding: 0;
  }
}

.l_container-sm {
  max-width: calc(var(--content-width-sm) + 40px);
}

.l_container {
  max-width: calc(var(--content-width) + 40px);
}

.l_container-lg {
  max-width: calc(var(--content-width-lg) + 40px);
}

.l_contents {
  padding: 20.51vw 0; /* 80px → 20.51vw */
}

@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_contents {
    padding: clamp(80px, 11.111vw, 160px) 0; /* PC基準: 160px ÷ 1440 × 100 = 11.111vw */
  }
}
@media screen and (min-width: 1440px) {
  .l_contents {
    padding: 160px 0;
  }
}

.l_header {
  width: 100vw;
  height: 16.41vw; /* 64px → 16.41vw */
  padding: 0 0 0 4.1vw; /* 16px → 4.1vw */
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--z-index-header);
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgb(255, 255, 255, 0.5);
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_header {
    height: clamp(
      64px,
      7.639vw,
      /* PC基準: 110px ÷ 1440 × 100 = 7.639vw */ 110px
    );
    padding: 0 0 0 clamp(16px, 2.778vw, 40px); /* PC基準: 40px ÷ 1440 × 100 = 2.778vw */
  }
}
@media screen and (min-width: 1440px) {
  .l_header {
    height: 110px;
    padding: 0 0 0 40px;
  }
}

.l_header-logo {
  width: 61.538vw; /* 240px / 390px * 100 */
  height: 7.948vw; /* 31px / 390px * 100 */
  flex-shrink: 0;
  position: relative;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_header-logo {
    width: clamp(
      240px,
      25.139vw,
      /* PC基準: 362px ÷ 1440 × 100 = 25.139vw */ 362px
    );
    height: clamp(
      31px,
      2.986vw,
      /* PC基準: 43px ÷ 1440 × 100 = 2.986vw */ 43px
    );
  }
}
@media screen and (min-width: 1440px) {
  .l_header-logo {
    width: 362px;
    height: 43px;
  }
}

.l_header-logo::after {
  content: "";
  width: 100%;
  height: 3px;
  background: var(--color-primary);
  position: absolute;
  bottom: -4.61vw; /* -18px / 390px */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_header-logo::after {
    bottom: clamp(
      /* PC基準: -35px ÷ 1440 × 100 = -2.431vw */ -35px,
      -2.431vw,
      -18px
    );
  }
}
@media screen and (min-width: 1440px) {
  .l_header-logo::after {
    bottom: -35px;
  }
}

.l_header-logo_link {
  display: block;
  width: 100%;
  height: 100%;
  transition: 0.3s;
  text-decoration: none;
}

.l_header-logo_link:hover {
  transform: scale(1.05);
}

.l_header-logo_icon {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.l_header-nav {
  display: none;
}
@media screen and (min-width: 768px) {
  .l_header-nav {
    display: block;
    position: static;
    width: 100%;
    height: 100%;
    background: none;
    overflow: visible;
    box-sizing: content-box;
  }
}

.l_header-nav_sp {
  display: none;
}

.l_header-nav_sp.is-active {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100vw;
  height: 100vh;
  padding: 20.51vw 8.2vw; /* 80px / 390px * 100 = 20.51vw */
  background: var(--color-white);
  z-index: var(--z-index-menu);
  box-sizing: border-box;
}

@media screen and (min-width: 768px) {
  .l_header-nav_sp,
  .l_header-nav_sp.is-active {
    display: none !important;
  }
}

.l_header-nav_list {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  height: 100%;
  gap: 4.1vw; /* 16px / 390px * 100 */
}
@media screen and (min-width: 768px) {
  .l_header-nav_list {
    flex-direction: row;
    gap: 0;
    justify-content: flex-end;
    height: auto;
  }
}

.l_header-nav_item {
  width: auto;
  height: auto;
}
@media screen and (min-width: 768px) {
  .l_header-nav_item {
    height: 100%;
  }
}

.l_header-nav_link {
  font-size: 3.85vw; /* 15px → 3.85vw */
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  transition: 0.3s;
  text-decoration: none;
  padding: 5.13vw 5.13vw; /* 20px / 390px * 100 = 5.13vw */
}

.l_header-nav_link:hover {
  transform: translateY(-1px);
  opacity: 0.8;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_header-nav_link {
    font-size: clamp(
      12px,
      1.042vw,
      15px
    ); /* PC基準: 15px ÷ 1440 × 100 = 1.042vw */
    padding: 0 clamp(15px, 1.388vw, 20px);
  }
}
@media screen and (min-width: 1440px) {
  .l_header-nav_link {
    font-size: 15px;
    padding: 0 20px;
  }
}

.l_header-nav_link__top {
  color: var(--color-white);
}

/* mv下でヘッダーナビを黒に */
.l_header-nav_link__top.is-black {
  color: var(--color-text-primary);
}

/* ハンバーガーメニューが開いているときは黒に */
.js_navigation.is-active .l_header-nav_link__top {
  color: var(--color-text-primary);
}

.l_header-nav_btn__sdgs {
  width: 80px; /* 80px / 390px * 100 */
  background: var(--color-white);
  display: flex;
  justify-content: center;
  align-items: center;
  transition: 0.3s;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_header-nav_btn__sdgs {
    width: clamp(54px, 5.556vw, 80px); /* PC基準: 80px ÷ 1440 × 100 = 5.556vw */
  }
}
@media screen and (min-width: 1440px) {
  .l_header-nav_btn__sdgs {
    width: 80px;
  }
}

.l_header-nav_btn__sdgs .l_header-nav_link {
  padding: 10px;
}

.l_header-nav_btn__sdgs:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.l_header-nav_btn__sdgs .l_header-nav_link {
  display: block;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_header-nav_btn__sdgs {
    width: clamp(
      65px,
      6.944vw,
      100px
    ); /* PC基準: 100px ÷ 1440 × 100 = 6.944vw */
    height: clamp(
      71px,
      7.569vw,
      109px
    ); /* PC基準: 109px ÷ 1440 × 100 = 7.569vw */
    display: flex;
  }
}
@media screen and (min-width: 1440px) {
  .l_header-nav_btn__sdgs {
    width: 100px;
    height: 109px;
    display: flex;
  }
}

.l_header-sdgs_icon {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.l_header-nav_btn__contact {
  width: 20.51vw; /* 80px / 390px * 100 */
  height: 12.82vw; /* 50px / 390px * 100 */
  background: var(--color-primary);
  display: flex;
  justify-content: center;
  align-items: center;
  transition: 0.3s;
}

.l_header-nav_btn__contact .l_header-nav_link {
  display: block;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_header-nav_btn__contact {
    width: clamp(80px, 5.556vw, 80px); /* PC基準: 80px ÷ 1440 × 100 = 5.556vw */
    height: clamp(
      71px,
      7.569vw,
      109px
    ); /* PC基準: 109px ÷ 1440 × 100 = 7.569vw */
    margin-left: 0;
  }
}
@media screen and (min-width: 1440px) {
  .l_header-nav_btn__contact {
    width: 80px;
    height: 109px;
    margin-left: 0;
  }
}

.l_header-contact_icon {
  width: 21px;
  height: 16.35px;
  object-fit: contain;
}

.l_header-sdgs {
  width: 16.41vw; /* 64px / 390px * 100 */
  height: 11.28vw; /* 44px / 390px * 100 */
  background: var(--color-white);
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 16.15vw; /* 63px / 390px * 100 */
  right: 0;
}
@media screen and (min-width: 768px) {
  .l_header-sdgs {
    display: none;
  }
}

.l_header-sdgs_link {
  width: 12.82vw; /* 50px / 390px * 100 */
  height: 6.66vw; /* 26px / 390px * 100 */
  display: block;
}



.l_header-ham_list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  gap: 4.1vw 6.15vw; /* 16px / 24px */
  padding: 0 8.2vw; /* 48px / 18px */
}

.l_header-ham_item {
  width: calc((100% - 6.15vw) / 2);
  font-size: 3.85vw; /* 15px → 3.85vw */
  font-weight: 700;
  white-space: nowrap;
}

.l_header-ham_link {
  display: flex;
  align-items: center;
  justify-self: flex-start;
  text-decoration: none;
  width: 100%;
  height: 100%;
  padding: 1.28vw 0; /* 5px / 390px * 100 */
  transition: 0.3s;
}

.l_header-ham_link:hover {
  transform: translateY(-1px);
  opacity: 0.8;
}

.l_header-ham_sub-list {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 7.69vw; /* 30px / 390px * 100 */
  margin-top: 12.82vw; /* 50px / 390px * 100 */
}

.l_header-ham_sub-item {
  font-size: 3.08vw; /* 12px → 3.08vw */
  color: #666666;
  white-space: nowrap;
}

.l_header-ham-sdgs {
  width: 47.17vw; /* 184px / 390px */
  height: 10.77vw; /* 42px / 390px */
  border: 1px solid #e2e2e2;
  background: var(--color-white);
  margin: 12.82vw auto 0; /* 50px / 390px */
}

.l_header-ham-sdgs_link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}

.l_header-ham-sdgs_logo {
  width: 36.92vw; /* 144px / 390px */
  height: 4.61vw; /* 18px / 390px */
  object-fit: contain;
}

.l_footer {
  width: 100%;
  height: auto;
  background: var(--color-white);
  padding: 7.69vw 15.38vw 5.12vw 7.69vw; /* 30px / 60px / 20px / 30px */
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-direction: column;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_footer {
    padding: clamp(42px, 5.556vw, 80px) clamp(21px, 2.778vw, 40px)
      clamp(12px, 1.667vw, 24px) clamp(21px, 2.778vw, 40px); /* PC基準: 80px 40px 24px 40px ÷ 1440 × 100 */
  }
}
@media screen and (min-width: 1440px) {
  .l_footer {
    padding: 80px 40px 24px 40px;
  }
}

.l_footer-nav {
  position: absolute;
  top: 9.23vw; /* 36px / 390px * 100 */
  right: 6.15vw; /* 24px / 390px * 100 */
  writing-mode: vertical-rl;
  font-size: 3.08vw; /* 12px → 3.08vw */
  font-family: "Barlow", sans-serif;
  font-weight: 700;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 768px) {
  .l_footer-nav {
    top: 36px;
    right: 24px;
    font-size: 12px;
  }
}

.l_footer-nav::before {
  content: "";
  width: 1px;
  height: 7.69vw; /* 30px / 390px * 100 */
  background: var(--color-text-primary);
  position: absolute;
  top: -9.23vw; /* -36px / 390px * 100 */
  right: 2.82vw; /* 11px / 390px * 100 */
}
@media screen and (min-width: 768px) {
  .l_footer-nav::before {
    height: 30px;
    top: -36px;
    right: 11px;
  }
}

.l_footer_sp {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  margin-left: 8.21vw; /* 32px / 390px * 100 */
}
@media screen and (min-width: 768px) {
  .l_footer_sp {
    display: none;
  }
}

.l_footer_list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  gap: 4.1vw 6.15vw; /* 16px / 24px */
  padding: 0 12.31vw 0 4.61vw; /* 48px / 18px */
  margin-top: 7.69vw; /* 30px / 390px */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_footer_list {
    flex-wrap: nowrap;
    gap: clamp(20px, 2.778vw, 40px); /* PC基準: 40px ÷ 1440 × 100 = 2.778vw */
    margin-top: 0;
    padding: 0 clamp(30px, 2.778vw, 40px) 0 0; /* PC基準: 40px ÷ 1440 × 100 = 2.778vw */
  }
}
@media screen and (min-width: 1440px) {
  .l_footer_list {
    flex-wrap: nowrap;
    gap: 40px;
    margin-top: 0;
    padding: 0 40px 0 0;
  }
}

.l_footer_item {
  width: calc((100% - 6.15vw) / 2);
  font-size: 3.85vw; /* 15px → 3.85vw */
  font-weight: 700;
  white-space: nowrap;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_footer_item {
    width: 100%;
    font-size: clamp(
      8px,
      1.042vw,
      15px
    ); /* PC基準: 15px ÷ 1440 × 100 = 1.042vw */
  }
}
@media screen and (min-width: 1440px) {
  .l_footer_item {
    width: 100%;
    font-size: 15px;
  }
}

.l_footer_link {
  display: flex;
  align-items: center;
  justify-self: flex-start;
  text-decoration: none;
  width: 100%;
  height: 100%;
  padding: 1.28vw 0; /* 5px / 390px * 100 */
  transition: 0.3s;
}

.l_footer_link:hover {
  transform: translateY(-1px);
  opacity: 0.8;
}

.l_footer_sub-list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 7.69vw; /* 30px / 390px * 100 */
  margin-top: 12.82vw; /* 50px / 390px * 100 */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .l_footer_sub-list {
    margin-top: clamp(
      15px,
      2.083vw,
      30px
    ); /* PC基準: 30px ÷ 1440 × 100 = 2.083vw */
    margin-right: clamp(
      21px,
      2.778vw,
      40px
    ); /* PC基準: 40px ÷ 1440 × 100 = 2.778vw */
    gap: clamp(15px, 2.083vw, 30px); /* PC基準: 30px ÷ 1440 × 100 = 2.083vw */
  }
}
@media screen and (min-width: 1440px) {
  .l_footer_sub-list {
    margin-top: 30px;
    margin-right: 40px;
    gap: 30px;
  }
}

.l_footer_sub-item {
  font-size: 3.08vw; /* 12px → 3.08vw */
  color: #666666;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .l_footer_sub-item {
    font-size: 12px;
  }
}

.l_footer_company {
  margin: 12.82vw auto 0; /* 50px / 390px * 100 */
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 5.12vw; /* 20px / 390px * 100 */
}
@media screen and (min-width: 768px) {
  .l_footer_company {
    justify-content: space-between;
    align-items: flex-start;
    gap: 30px;
    margin: 0;
  }
}

.l_footer-logo {
  width: auto;
  height: auto;
  line-height: 0;
}

.l_footer-logo_link {
  display: block;
}

.l_footer-logo_icon {
  width: 61.53vw; /* 240px / 390px * 100 */
  height: 7.69vw; /* 30px / 390px * 100 */
  flex-shrink: 0;
  object-fit: contain;
}
@media screen and (min-width: 768px) {
  .l_footer-logo_icon {
    width: 362px;
    height: auto;
  }
}

.l_footer-address {
  font-size: 3.33vw; /* 13px → 3.33vw */
  color: #111111;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .l_footer-address {
    font-size: 14px;
  }
}

.notlink {
  text-decoration: none;
  color: inherit;
}

.l_footer-btn {
  width: 55.64vw; /* 217px / 390px */
  height: 12.82vw; /* 50px / 390px */
  border: 1px solid #eac1c3;
  border-radius: 25.64vw; /* 100px / 390px */
  padding: 3.59vw 6.66vw; /* 14px / 26px */
  background: transparent;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all 0.3s;
  flex-shrink: 0;
}
.l_footer-btn:hover {
  background-color: rgb(234, 193, 195, 0.1);
  transform: translateY(-1px);
}
@media screen and (min-width: 768px) {
  .l_footer-btn {
    width: 217px;
    height: 50px;
    border-radius: 100px;
    padding: 14px 26px;
  }
}

.l_footer-btn_txt {
  font-size: 0.75rem; /* 12px / 16px */
  color: #583f3f;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .l_footer-btn_txt {
    font-size: 12px;
  }
}

.l_footer-btn_icon {
  width: 3.07vw; /* 12px / 390px */
  height: 3.59vw; /* 14px / 390px */
  margin-left: 2.05vw; /* 8px / 390px */
  vertical-align: middle;
  flex-shrink: 0;
}
@media screen and (min-width: 768px) {
  .l_footer-btn_icon {
    width: 12px;
    height: 14px;
    margin-left: 8px;
    vertical-align: middle;
    flex-shrink: 0;
  }
}

.l_footer-sdgs {
  width: 47.17vw; /* 184px / 390px */
  height: 10.77vw; /* 42px / 390px */
  border: 1px solid #e2e2e2;
  background: var(--color-white);
  margin: 12.82vw auto 0; /* 50px / 390px */
}
@media screen and (min-width: 768px) {
  .l_footer-sdgs {
    width: 184px;
    height: 42px;
    margin: 100px 40px 0 0;
  }
}

.l_footer-sdgs_link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}

.l_footer-sdgs_logo {
  width: 36.92vw; /* 144px / 390px */
  height: 4.61vw; /* 18px / 390px */
  object-fit: contain;
}
@media screen and (min-width: 768px) {
  .l_footer-sdgs_logo {
    width: 144px;
    height: 18px;
  }
}

.l_footer-copyright {
  margin: 12.82vw auto 0; /* 50px / 390px */
  height: auto;
}
@media screen and (min-width: 768px) {
  .l_footer-copyright {
    margin: 0;
    margin-top: 73px;
  }
}

.l_footer-copyright_txt {
  font-size: 0.75rem; /* 12px / 16px */
  color: #888888;
  letter-spacing: 0.1em;
  font-family: var(--font-sans);
}
@media screen and (min-width: 768px) {
  .l_footer-copyright_txt {
    font-size: 12px;
  }
}

.l_footer_pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .l_footer_pc {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
  }
}

.l_footer-left {
  width: 50%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-direction: column;
}

.l_footer-right {
  width: 50%;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-direction: column;
}

/* ---------- module ---------- */
.m_hamburger {
  width: 16.41vw; /* 64px / 390px */
  height: 16.15vw; /* 63px / 390px */
  padding: 3.97vw 0; /* 15.5px / 390px */
  background: var(--color-primary);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  transition: 0.3s;
  border: none;
  outline: none;
  position: relative;
  z-index: calc(var(--z-index-menu) + 1);
}

.m_hamburger:hover {
  transform: translateY(-1px);
}
@media screen and (min-width: 768px) {
  .m_hamburger {
    display: none;
  }
}

.m_hamburger-box {
  width: 7.69vw; /* 30px / 390px * 100 */
  height: 3.85vw; /* 15px / 390px * 100 */
  position: relative;
  z-index: var(--z-index-menu);
}
@media screen and (min-width: 768px) {
  .m_hamburger-box {
    display: none;
  }
}

.m_hamburger-bar {
  height: 1px;
  position: absolute;
  background: var(--color-white);
  left: 0;
  transition: 0.3s;
}

.m_hamburger-bar:first-child {
  width: 7.69vw; /* 30px / 390px */
  top: 0;
}

.m_hamburger-bar:nth-child(2) {
  width: 5.13vw; /* 20px / 390px */
  top: 50%;
  transform: translateY(-50%);
}

.m_hamburger-bar:last-child {
  width: 3.47vw; /* 13.53px / 390px */
  bottom: 0;
}

.m_hamburger-text {
  font-size: 2.74vw; /* 10.67px / 390px */
  color: var(--color-white);
  font-family: "Poppins", sans-serif;
  letter-spacing: 0.04em;
  margin-bottom: -8px;
  position: relative;
}
@media screen and (min-width: 768px) {
  .m_hamburger-text {
    font-size: 14px;
  }
}

.m_section_text-wrap {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  gap: 10.26vw; /* 40px / 390px */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_section_text-wrap {
    gap: clamp(30px, 2.778vw, 40px); /* PC基準: 40px ÷ 1440 × 100 = 2.778vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_section_text-wrap {
    gap: 40px;
  }
}

.m_section_title-box {
  width: 100%;
  height: auto;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
  position: relative;
  gap: 5.12vw; /* 20px / 390px */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_section_title-box {
    align-items: flex-end;
    flex-direction: row;
    gap: clamp(10px, 1.389vw, 20px); /* PC基準: 20px ÷ 1440 × 100 = 1.389vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_section_title-box {
    align-items: flex-end;
    flex-direction: row;
    gap: 20px;
  }
}

.m_section_title {
  font-size: 3.59vw;
  letter-spacing: 0.2em;
  color: #999999;
}
@media screen and (min-width: 768px) {
  .m_section_title {
    font-size: 14px;
    margin-top: 20px;
  }
}

.m_section_title-en::before {
  content: "";
  display: block;
  position: absolute;
  left: -100vw;
  /* 画面の左端まで伸ばす */
  right: 100%;
  /* タイトルの左端まで */
  top: 7.69vw; /* 30px / 390px */
  border-top: 1px solid #999999;
  margin-right: 2.05vw; /* 8px / 390px */
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .m_section_title-en::before {
    top: 50%;
    transform: translateY(-50%);
  }
}

.m_section_title-en {
  color: #999999;
  font-size: 11.54vw;
  font-family: "Barlow", sans-serif;
  font-weight: 300;
  white-space: nowrap;
  line-height: 1;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_section_title-en {
    font-size: clamp(
      35px,
      3.125vw,
      45px
    ); /* PC基準: 45px ÷ 1440 × 100 = 3.125vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_section_title-en {
    font-size: 45px;
  }
}

.m_section_title-en__white {
  color: var(--color-white);
}

.m_section_subtitle {
  width: 100%;
  font-size: 7.69vw;
  font-family: var(--font-serif);
  font-weight: 600;
  line-height: 1.4;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_section_subtitle {
    font-size: clamp(
      30px,
      3.611vw,
      52px
    ); /* PC基準: 52px ÷ 1440 × 100 = 3.611vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_section_subtitle {
    font-size: 52px;
  }
}

.m_section_text {
  font-size: 3.85vw;
  text-align: left;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_section_text {
    font-size: clamp(
      15px,
      1.111vw,
      16px
    ); /* PC基準: 16px ÷ 1440 × 100 = 1.111vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_section_text {
    font-size: 16px;
  }
}

.m_btn_wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  width: auto;
  height: 13.59vw;
  text-align: center;
  background: #d6f0e7;
  border-radius: 25.64vw;
  padding: 3.59vw 13.59vw 3.59vw 7.69vw; /* 14px 53px 14px 30px */
  position: relative;
  margin: 0 auto;
  cursor: pointer;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_btn_wrap {
    border-radius: 100px;
    height: clamp(
      53px,
      4.792vw,
      69px
    ); /* PC基準: 69px ÷ 1440 × 100 = 4.792vw */
    padding: clamp(14px, 1.389vw, 20px) clamp(53px, 4.167vw, 60px)
      clamp(14px, 1.389vw, 20px) clamp(30px, 2.083vw, 30px);
    /* PC基準: 20px ÷ 1440 × 100 = 1.389vw, 60px ÷ 1440 × 100 = 4.167vw, 30px ÷ 1440 × 100 = 2.083vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_btn_wrap {
    border-radius: 100px;
    height: 69px;
    padding: 20px 60px 20px 30px;
  }
}

.m_btn_wrap__white {
  background: var(--color-white);
}

.m_btn_wrap::after {
  content: "";
  width: 1.79vw; /* 7px */
  height: 1.79vw; /* 7px */
  background: var(--color-primary);
  display: block;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 5.9vw; /* 23px */
  transform: translateY(-50%);
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_btn_wrap::after {
    width: clamp(7px, 0.625vw, 9px); /* PC基準: 9px ÷ 1440 × 100 = 0.625vw */
    height: clamp(7px, 0.625vw, 9px); /* PC基準: 9px ÷ 1440 × 100 = 0.625vw */
    right: clamp(23px, 2.083vw, 30px); /* PC基準: 30px ÷ 1440 × 100 = 2.083vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_btn_wrap::after {
    width: 9px;
    height: 9px;
    right: 30px;
  }
}

.m_btn_wrap:hover {
  opacity: 0.6;
  transition: 0.3s;
}

.m_btn_wrap:hover {
  transform: translateY(-2px);
}

.m_btn_txt {
  font-size: 3.59vw; /* 14px */
  white-space: nowrap;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_btn_txt {
    font-size: clamp(
      14px,
      1.111vw,
      16px
    ); /* PC基準: 16px ÷ 1440 × 100 = 1.111vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_btn_txt {
    font-size: 16px;
  }
}

.m_bg {
  background: url("/assets/img/bg_sp.png") no-repeat center -12.31vw / cover;
  border-bottom: 40px solid transparent;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_bg {
    background: url("/assets/img/bg_pc.png") no-repeat center
      clamp(-48px, 7.639vw, 110px) / cover;
    /* PC基準: 110px ÷ 1440 × 100 = 7.639vw */
    border-bottom: clamp(40px, 5.556vw, 80px) solid transparent;
    /* PC基準: 80px ÷ 1440 × 100 = 5.556vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_bg {
    background: url("/assets/img/bg_pc.png") no-repeat center 110px / cover;
    border-bottom: 80px solid transparent;
  }
}

.m_title_container {
  width: 100%;
  max-width: 1280px;
  height: auto;
  padding: 37.18vw 4.1vw 10.26vw 4.1vw; /* 145px 16px 40px 16px → vw換算 */
  display: flex;
  justify-content: center;
  flex-direction: column;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_title_container {
    padding: clamp(145px, 21.528vw, 310px) clamp(16px, 1.389vw, 20px)
      clamp(40px, 11.111vw, 160px);
    /* PC基準: 310px ÷ 1440 × 100 = 21.528vw, 20px ÷ 1440 × 100 = 1.389vw, 160px ÷ 1440 × 100 = 11.111vw */
    justify-content: space-between;
  }
}
@media screen and (min-width: 1440px) {
  .m_title_container {
    padding: 310px 20px 160px;
    justify-content: space-between;
  }
}

.m_title {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .m_title {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
  }
}

.m_title-wrap {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
  gap: 5.13vw; /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_title-wrap {
    flex-direction: row;
    align-items: flex-end;
    gap: clamp(20px, 2.083vw, 30px); /* PC基準: 30px ÷ 1440 × 100 = 2.083vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_title-wrap {
    flex-direction: row;
    align-items: flex-end;
    gap: 30px;
  }
}

.m_title-text {
  font-size: 11.28vw; /* 44px → 11.28vw */
  font-family: "Barlow", sans-serif;
  font-weight: 500;
  line-height: 1;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_title-text {
    font-size: clamp(
      44px,
      4.861vw,
      70px
    ); /* PC基準: 70px ÷ 1440 × 100 = 4.861vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_title-text {
    font-size: 70px;
  }
}

.m_title-subtext {
  font-size: 3.59vw; /* 14px → 3.59vw */
  font-family: var(--font-serif);
  font-weight: 600;
  white-space: nowrap;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_title-subtext {
    font-size: clamp(
      14px,
      1.111vw,
      16px
    ); /* PC基準: 16px ÷ 1440 × 100 = 1.111vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_title-subtext {
    font-size: 16px;
  }
}

.m_title-brackets {
  font-size: 4.1vw; /* 16px → 4.10vw */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_title-brackets {
    font-size: clamp(
      16px,
      1.25vw,
      18px
    ); /* PC基準: 18px ÷ 1440 × 100 = 1.25vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_title-brackets {
    font-size: 18px;
  }
}

.m_breadcrumb {
  width: 100%;
  height: auto;
}

.m_breadcrumb_list {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-left: 7.69vw; /* 30px → 7.69vw */
  gap: 2.56vw; /* 10px → 2.56vw */
  margin-top: 10.26vw; /* 40px → 10.26vw */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_breadcrumb_list {
    padding-left: clamp(
      30px,
      2.083vw,
      30px
    ); /* PC基準: 30px ÷ 1440 × 100 = 2.083vw */
    gap: clamp(10px, 1.042vw, 15px); /* PC基準: 15px ÷ 1440 × 100 = 1.042vw */
    margin-top: clamp(
      40px,
      4.167vw,
      60px
    ); /* PC基準: 60px ÷ 1440 × 100 = 4.167vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_breadcrumb_list {
    padding-left: 30px;
    gap: 15px;
    margin-top: 60px;
  }
}

.m_breadcrumb_item {
  font-size: 2.82vw; /* 11px → 2.82vw */
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_breadcrumb_item {
    font-size: clamp(
      11px,
      0.833vw,
      12px
    ); /* PC基準: 12px ÷ 1440 × 100 = 0.833vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_breadcrumb_item {
    font-size: 12px;
  }
}

.m_breadcrumb_item:first-child::before {
  content: "";
  display: inline-block;
  width: 3.33vw; /* 13px → 3.33vw */
  height: 3.08vw; /* 12px → 3.08vw */
  flex-shrink: 0;
  margin-right: 1.54vw; /* 6px → 1.54vw */
  background: url("/assets/img/home-icon.png") no-repeat center/ contain;
}
@media screen and (min-width: 768px) {
  .m_breadcrumb_item:first-child::before {
    width: 13px;
    height: 12px;
    margin-right: 6px;
  }
}

.m_breadcrumb_item:not(:last-child)::after {
  content: ">";
  margin-left: 2.56vw; /* 10px → 2.56vw */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_breadcrumb_item:not(:last-child)::after {
    margin-left: clamp(
      10px,
      1.042vw,
      15px
    ); /* PC基準: 15px ÷ 1440 × 100 = 1.042vw */
  }
}
@media screen and (min-width: 1440px) {
  .m_breadcrumb_item:not(:last-child)::after {
    margin-left: 15px;
  }
}

.m_title_img-wrap {
  margin-top: 2.56vw; /* 10px → 2.56vw */
  width: 100%;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .m_title_img-wrap {
    margin-top: clamp(
      10px,
      4.167vw,
      60px
    ); /* PC基準: 60px ÷ 1440 × 100 = 4.167vw */
    width: 100%;
    max-width: 1280px;
  }
}
@media screen and (min-width: 1440px) {
  .m_title_img-wrap {
    margin-top: 60px;
    width: 100%;
    max-width: 1280px;
  }
}

/* ---------- top ---------- */
.l_main {
  background: url("/assets/img/sp_top.jpg") no-repeat center/ cover;
}

.top_bg {
  background: url("/assets/img/top_bg_sp.png") no-repeat center -12.31vw / cover;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_bg {
    background: url("/assets/img/top_bg_pc.png") no-repeat center
      clamp(-48px, -7.431vw, -107px) / cover; /* PC基準: -107px ÷ 1440 × 100 = -7.431vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_bg {
    background: url("/assets/img/top_bg_pc.png") no-repeat center -107px / cover;
  }
}

/* ---------- top_mv ---------- */
.top_mv {
  width: 100%;
  height: 100vh;
  max-height: 170.77vw; /* 666px */
  position: relative;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_mv {
    max-height: clamp(
      666px,
      60vw,
      /* PC基準: 864px ÷ 1440 × 100 = 60vw */ 864px
    );
  }
}
@media screen and (min-width: 1440px) {
  .top_mv {
    max-height: 864px;
  }
}

.top_mv_cc {
  background: url("/assets/img/catchcopy-bg.png") no-repeat center/ 76.92vw auto;
  width: 76.92vw; /* 300px */
  height: 70vw; /* 273px */
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: var(--z-index-default);
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_mv_cc {
    width: clamp(
      300px,
      41.667vw,
      /* PC基準: 600px ÷ 1440 × 100 = 41.667vw */ 600px
    );
    height: clamp(
      273px,
      37.917vw,
      /* PC基準: 546px ÷ 1440 × 100 = 37.917vw */ 546px
    );
    background-size: clamp(300px, 41.667vw, 600px) auto;
  }
}
@media screen and (min-width: 1440px) {
  .top_mv_cc {
    width: 600px;
    height: 546px;
    background-size: 600px auto;
  }
}

.top_mv_cc_txt {
  font-size: 8.97vw; /* 35px */
  font-family: "Barlow", sans-serif;
  color: var(--color-white);
  font-weight: 800;
  text-align: center;
  line-height: 1;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_mv_cc_txt {
    font-size: clamp(
      35px,
      4.861vw,
      /* PC基準: 70px ÷ 1440 × 100 = 4.861vw */ 70px
    );
  }
}
@media screen and (min-width: 1440px) {
  .top_mv_cc_txt {
    font-size: 70px;
  }
}

.top_mv_cc_subtxt {
  font-size: 4.87vw; /* 19px */
  font-family: var(--font-serif);
  color: var(--color-white);
  font-weight: 600;
  text-align: center;
  margin-top: 2.95vw; /* 11.5px */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_mv_cc_subtxt {
    font-size: clamp(
      19px,
      2.639vw,
      /* PC基準: 38px ÷ 1440 × 100 = 2.639vw */ 38px
    );
    margin-top: clamp(
      11.5px,
      1.597vw,
      /* PC基準: 23px ÷ 1440 × 100 = 1.597vw */ 23px
    );
  }
}
@media screen and (min-width: 1440px) {
  .top_mv_cc_subtxt {
    font-size: 38px;
    margin-top: 23px;
  }
}

.top_mv-bg {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
  z-index: 0;
}

.slider-container {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}
@media screen and (min-width: 768px) {
  .slider-container {
    flex-direction: row;
  }
}

.top_mv_left-slide,
.top_mv_right-slide {
  width: 100%;
  height: 50%;
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .top_mv_left-slide,
  .top_mv_right-slide {
    width: 50%;
    height: 100%;
  }
}

.top_mv_img-wrapper {
  position: absolute;
  width: 100%;
  height: 100%;
  clip-path: inset(0 0 0 0);
  z-index: 1;
}

.top_mv_img-wrapper::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  mix-blend-mode: multiply;
}

/* mv_img01用カラーオーバーレイ */
.top_mv_img-wrapper.slide1::after {
  background-color: rgba(188, 205, 237, 0.5); /* #BCCDED 50%透明度 */
}

/* mv_img02用カラーオーバーレイ */
.top_mv_img-wrapper.slide2::after {
  background-color: rgba(187, 196, 185, 0.5); /* #BBC4B9 50%透明度 */
}

/* mv_img03用カラーオーバーレイ */
.top_mv_img-wrapper.slide3::after {
  background-color: rgba(233, 191, 161, 0.5); /* #E9BFA1 50%透明度 */
}

.top_mv_img-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.top_mv_img-wrapper.show {
  z-index: 2;
  clip-path: inset(0 0 0 0);
  transition: transform 8s cubic-bezier(0.77, 0, 0.2, 1),
    clip-path 1.2s cubic-bezier(0.77, 0, 0.2, 1);
  transform: scale(1.1);
}

@media screen and (min-width: 768px) {
  .top_mv_right-slide .top_mv_img-wrapper.show {
    clip-path: inset(100% 0 0 0); /* 上から下に登場 */
    animation: mvShowDown 1.2s cubic-bezier(0.77, 0, 0.2, 1) forwards;
  }
  .top_mv_left-slide .top_mv_img-wrapper.show {
    clip-path: inset(0 0 100% 0); /* 下から上に登場 */
    animation: mvShowUp 1.2s cubic-bezier(0.77, 0, 0.2, 1) forwards;
  }
}

@media screen and (max-width: 1019px) {
  .top_mv_left-slide .top_mv_img-wrapper.show {
    clip-path: inset(0 100% 0 0); /* 左から右に登場 */
    animation: mvShowLeft 1.2s cubic-bezier(0.77, 0, 0.2, 1) forwards;
  }
  .top_mv_right-slide .top_mv_img-wrapper.show {
    clip-path: inset(0 0 0 100%); /* 右から左に登場 */
    animation: mvShowRight 1.2s cubic-bezier(0.77, 0, 0.2, 1) forwards;
  }
}

@keyframes mvShowDown {
  from {
    clip-path: inset(100% 0 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
@keyframes mvShowUp {
  from {
    clip-path: inset(0 0 100% 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
@keyframes mvShowLeft {
  from {
    clip-path: inset(0 100% 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
@keyframes mvShowRight {
  from {
    clip-path: inset(0 0 0 100%);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}

.top_mv_img-wrapper.hidden {
  transform: scale(1);
  transition: transform 8s ease-in-out;
}

.top_mv_img-wrapper.leave {
  transition: clip-path 2.6s cubic-bezier(0.77, 0, 0.2, 1),
    transform 1s ease-in-out;
  z-index: 2;
  transform: scale(1.1);
}

/* PC: 上下方向の分割効果 */
@media screen and (min-width: 768px) {
  .top_mv_right-slide .top_mv_img-wrapper.leave {
    clip-path: inset(0 0 100% 0); /* 上から下に消える */
  }

  .top_mv_left-slide .top_mv_img-wrapper.leave {
    clip-path: inset(100% 0 0 0); /* 下から上に消える */
  }
}

/* SP: 左右方向の分割効果 */
@media screen and (max-width: 1019px) {
  .top_mv_left-slide .top_mv_img-wrapper.leave {
    clip-path: inset(0 0 0 100%); /* 左から右に消える */
  }

  .top_mv_right-slide .top_mv_img-wrapper.leave {
    clip-path: inset(0 100% 0 0); /* 右から左に消える */
  }
}

.top_mv_img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.animation {
  stroke-dasharray: 629;
  stroke-dashoffset: 629;
  animation: circle 5s ease-in-out infinite;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
}

@keyframes circle {
  0% {
    stroke-dashoffset: 629;
  }
  50% {
    stroke-dashoffset: 0;
  }
  100% {
    stroke-dashoffset: 629;
  }
}

.block-wrapper {
  position: relative;
  max-width: 1360px;
}

.block {
  max-width: 140px;
  width: auto;
  position: absolute;
  bottom: clamp(
    60px,
    6.458vw,
    93px
  ); /* SP: 60px, PC基準: 93px ÷ 1440 × 100 = 6.458vw */
  right: clamp(
    20px,
    2.778vw,
    40px
  ); /* SP: 20px, PC基準: 40px ÷ 1440 × 100 = 2.778vw */
}

.circle-wrapper-sp {
  width: clamp(
    70px,
    9.722vw,
    140px
  ); /* SP: 70px, PC基準: 140px ÷ 1440 × 100 = 9.722vw */
  height: clamp(
    70px,
    9.722vw,
    140px
  ); /* SP: 70px, PC基準: 140px ÷ 1440 × 100 = 9.722vw */
}

/* ---------- top_aboutus ---------- */
.top_aboutus {
  width: 100%;
  height: auto;
}

.top_aboutus_title-box {
  flex-direction: row;
  align-items: flex-end;
  margin-top: -78.46vw;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_aboutus_title-box {
    flex-direction: row;
    align-items: flex-end;
    margin-top: clamp(-355px, -20.833vw, -220px);
    margin-left: clamp(-80px, -2.083vw, -60px);
  }
}
@media screen and (min-width: 1440px) {
  .top_aboutus_title-box {
    flex-direction: row;
    align-items: flex-end;
    margin-top: -355px;
    margin-left: -80px;
  }
}

.top_aboutus_title-en {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  margin-top: 2.56vw;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_aboutus_title-en {
    margin-top: clamp(4px, 0.7vw, 10px);
  }
}
@media screen and (min-width: 1440px) {
  .top_aboutus_title-en {
    margin-top: 10px;
  }
}

.top_aboutus_line-box {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_aboutus_line-box {
    margin-bottom: clamp(80px, 10vw, 200px);
  }
}
@media screen and (min-width: 1440px) {
  .top_aboutus_line-box {
    margin-bottom: 200px;
  }
}


.top_aboutus_line__scroll-text {
  font-size: 15px;
  color: var(--color-white);
  font-weight: 700;
  font-family: "barlow", sans-serif;
  letter-spacing: 0.04em;
  width: 30px;
  writing-mode: vertical-rl;
}

.top_aboutus_line__scroll {
  width: 1px;
  height: 12.82vw;
  background: var(--color-white);
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_aboutus_line__scroll {
    width: 1px;
    height: clamp(
      26px,
      3.472vw,
      /* PC基準: 50px ÷ 1440 × 100 = 3.472vw */ 50px
    );
  }
}
@media screen and (min-width: 1440px) {
  .top_aboutus_line__scroll {
    width: 1px;
    height: 50px;
  }
}

.top_aboutus_line {
  width: 0.26vw;
  height: 76.41vw;
  background: #999;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_aboutus_line {
    width: 1px;
    height: clamp(
      159px,
      20.833vw,
      /* PC基準: 300px ÷ 1440 × 100 = 20.833vw */ 300px
    );
  }
}
@media screen and (min-width: 1440px) {
  .top_aboutus_line {
    width: 1px;
    height: 194px;
  }
}

.top_aboutus .m_section_title-en::before {
  display: none;
}

.top_aboutus_title {
  margin-bottom: 32.82vw;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_aboutus_title {
    margin-bottom: clamp(182px, 27.75vw, 342px);
    margin-left: 16px;
  }
}
@media screen and (min-width: 1440px) {
  .top_aboutus_title {
    margin-bottom: 342px;
    margin-left: 20px;
  }
}

.top_aboutus_text-wrap {
  margin-top: -21.54vw;
  padding-left: 16.41vw;
  margin-bottom: 10.26vw;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_aboutus_text-wrap {
    padding-left: 0;
    margin-top: clamp(-280px, -19.444vw, -198px);
    margin-bottom: clamp(40px, 5.556vw, 40px);
  }
}
@media screen and (min-width: 1440px) {
  .top_aboutus_text-wrap {
    padding-left: 0;
    margin-top: -278px;
    margin-bottom: 40px;
  }
}

.top_aboutus_contents {
  padding-top: 8.21vw;
  padding-bottom: 0;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_aboutus_contents {
    padding-top: clamp(
      32px,
      5.556vw,
      /* PC基準: 80px ÷ 1440 × 100 = 5.556vw */ 80px
    );
    padding-bottom: clamp(
      0px,
      5.556vw,
      /* PC基準: 80px ÷ 1440 × 100 = 5.556vw */ 80px
    );
  }
}
@media screen and (min-width: 1440px) {
  .top_aboutus_contents {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}

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

.top_aboutus_img-wrap {
  width: 79.49vw;
  height: 76.92vw;
  position: absolute;
  top: -16.41vw;
  right: -4.1vw;
  z-index: 1;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_aboutus_img-wrap {
    width: 44.65vw;
    max-width: clamp(
      342px,
      44.653vw,
      643px
    ); /* PC基準: 643px ÷ 1440 × 100 = 44.653vw */
    height: 60vw;
    max-height: clamp(
      460px,
      60vw,
      864px
    ); /* PC基準: 864px ÷ 1440 × 100 = 60.0vw */
    top: clamp(
      -137px,
      -9.514vw,
      -72px
    ); /* PC基準: -137px ÷ 1440 × 100 = -9.514vw */
    right: 0;
  }
}
@media screen and (min-width: 1440px) {
  .top_aboutus_img-wrap {
    width: 44.65vw;
    max-width: 643px;
    height: 60vw;
    max-height: 864px;
    top: -137px;
    right: 0;
  }
}

.top_aboutus_wrap {
  background: var(--color-bg02);
  backdrop-filter: blur(10px);
  padding: 70.26vw 4.1vw 20.51vw 4.1vw; /* 274px 16px 80px 16px (306px-32px=274px) */
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  border-radius: 20px;
  width: 100%;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_aboutus_wrap {
    padding: clamp(90px, 11.806vw, 170px) clamp(70px, 9.167vw, 132px)
      clamp(90px, 11.736vw, 169px) clamp(65px, 8.333vw, 120px); /* PC基準: 170px=11.806vw, 132px=9.167vw, 169px=11.736vw, 120px=8.333vw */
    width: clamp(420px, 54.65vw, 787px);
    height: clamp(630px, 55.56vw, 800px);
  }
}
@media screen and (min-width: 1440px) {
  .top_aboutus_wrap {
    padding: 170px 132px 169px 120px;
    width: 54.65vw;
    max-width: 787px;
    height: 55.56vw;
    max-height: 800px;
  }
}

.top_aboutus_subtitle {
  white-space: nowrap;
}

@media screen and (min-width: 768px) {
  .top_aboutus-btn_wrap {
    margin-left: 0;
  }
}

/* ---------- top_business ---------- */
.top_business {
  width: 100%;
  height: auto;
  position: relative;
  overflow: hidden;
}

@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_business_contents {
    padding-top: clamp(
      40px,
      5.625vw,
      81px
    ); /* PC基準: 81px ÷ 1440 × 100 = 5.625vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_business_contents {
    padding-top: 81px;
  }
}

.top_business_container {
  position: relative;
}
@media screen and (min-width: 1440px)
 {
  .top_business_container {
    padding: 0 120px;
  } 
}

@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_business_title-box {
    margin-left: clamp(48px, 6.25vw, 90px);
  }
}

.top_business_subtitle {
  position: absolute;
  z-index: 3;
  top: 26.15vw; /* 102px相当（SP） */
  left: 8.21vw; /* 32px相当（SP） */
  margin: 0;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_business_subtitle {
    top: clamp(
      102px,
      9.792vw,
      141px
    ); /* PC基準: 141px ÷ 1440 × 100 = 9.792vw */
    left: clamp(16px, 1.389vw, 20px); /* PC基準: 20px ÷ 1440 × 100 = 1.389vw */
    margin-left: clamp(48px, 6.25vw, 90px);
  }
}
@media screen and (min-width: 1440px) {
  .top_business_subtitle {
    top: 141px;
    left: 16px;
    margin-left: 0;
    padding: 0 120px;
  }
}

.swiper1 {
  margin-top: 8.21vw; /* 32px */
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  position: relative;
  left: 50%;
  right: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width: 768px) {
  .swiper1 {
    margin-top: 55px;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    position: relative;
    left: 50%;
    right: 50%;
    transform: translateX(-50%);
  }
}

.swiper1 .swiper-slide {
  border-radius: 10px !important;
  opacity: 0.2 !important; /* 左右のスライドを薄くする */
  transform: scale(0.75) !important; /* 左右のスライドを小さくする */
  transition: all 0.7s ease !important;
}

.swiper1 .swiper-slide-active {
  opacity: 1 !important; /* 中央のスライドは薄くしない */
  transform: scale(1) !important; /* 中央のスライドは小さくしない */
  z-index: 1 !important; /* 中央のスライドを一番上にする */
}

/* 汎用的なセレクターも追加 */
.swiper .swiper-slide {
  border-radius: 10px !important;
  opacity: 0.2 !important;
  transform: scale(0.75) !important;
  transition: all 0.7s ease !important;
}

.swiper .swiper-slide-active {
  opacity: 1 !important;
  transform: scale(1) !important;
  z-index: 1 !important;
}

.swiper-slide .top_business_img {
  max-width: 100%;
  object-fit: cover;
}

.top_business_arrow {
  width: 23.59vw; /* 92px */
  height: 9.23vw; /* 36px */
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5.13vw; /* 20px */
  margin: 2.56vw auto 5.13vw; /* 10px auto 20px */
}
@media screen and (min-width: 768px) {
  .top_business_arrow {
    width: 92px;
    height: 36px;
    gap: 20px;
    margin: 20px auto 140px;
  }
}

/* Swiperナビゲーションボタンのデフォルトスタイルを上書き */
.top_business_arrow .swiper-button-prev,
.top_business_arrow .swiper-button-next {
  width: 9.23vw; /* 36px */
  height: 9.23vw; /* 36px */
  border: 1px solid #b1b1b1;
  border-radius: 50%;
  color: #b0b0b0;
  position: static;
  margin: 0;
  transform: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.top_business_arrow .swiper-button-prev:after,
.top_business_arrow .swiper-button-next:after {
  content: none !important;
}

/* Swiperのデフォルト位置を完全に無効化 */
.swiper1 .swiper-button-prev,
.swiper1 .swiper-button-next {
  position: static !important;
  margin: 0 !important;
  margin-top: 0 !important;
  transform: none !important;
  top: auto !important;
  bottom: auto !important;
  left: auto !important;
  right: auto !important;
}

.top_business_arrow #prevBtn,
.top_business_arrow #nextBtn {
  position: static !important;
  margin: 0 !important;
  margin-top: 0 !important;
  transform: none !important;
  top: auto !important;
  bottom: auto !important;
  left: auto !important;
  right: auto !important;
}

@media screen and (min-width: 768px) {
  .top_business_arrow .swiper-button-prev,
  .top_business_arrow .swiper-button-next {
    width: 36px;
    height: 36px;
  }
}

@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_business_text-wrap {
    width: clamp(
      220px,
      20.208vw,
      291px
    ); /* PC基準: 291px ÷ 1440 × 100 = 20.208vw */
    height: auto;
    position: absolute;
    bottom: 0;
    right: 5.13vw; /* 20px */
    z-index: 10;
  }
  .top_business-btn_wrap {
    margin-left: 0;
  }
}
@media screen and (min-width: 1440px) {
  .top_business_text-wrap {
    width: 291px;
    height: auto;
    position: absolute;
    bottom: 0;
    right: calc(120px + ( -140 * (100vw - 1440px) / 1020 )); /* 120px + ( -140 * (画面幅 - 1440px) / 1020 ) */
    z-index: 10;
  }
}

/* ---------- top_works ---------- */
.top_works_contents {
  padding: 0;
}

.top_works_container {
  background: rgb(34, 55, 48);
  opacity: 0.9;
  padding: 20.51vw 4.1vw 11.03vw; /* 80px 16px 43px */
  border-radius: 5.13vw;
  display: flex;
  flex-direction: column;
  position: relative;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_works_container {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    border-radius: 20px;
    gap: clamp(10px, 1.319vw, 19px); /* PC基準: 19px ÷ 1440 × 100 = 1.319vw */
    padding: clamp(48px, 6.25vw, 90px) 0 clamp(48px, 6.25vw, 90px)
      clamp(63px, 8.333vw, 120px); /* PC基準: 90px=6.25vw, 120px=8.333vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_works_container {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    border-radius: 20px;
    gap: 19px;
    padding: 90px 0 90px 120px;
  }
}

.top_works_title {
  color: var(--color-white);
}

.top_works_title::before {
  width: 6.15vw; /* 24px */
  left: -8.21vw; /* -32px */
  background: linear-gradient(
    to right,
    #999999 0%,
    #999999 33%,
    #fff 33%,
    #fff 100%
  );
}

.top_works_subtitle {
  width: 100%;
  background: linear-gradient(to right, #93d5be 0%, #9bb6fa 50%, #06bc75 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.top_works_text {
  color: #d6f0e7;
}

.top_works_img-wrap {
  width: calc(100vw - 8.21vw);
  margin: 7.69vw calc(50% - 50vw + 4.1vw) 0;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_works_img-wrap {
    width: clamp(
      350px,
      45.903vw,
      661px
    ); /* PC基準: 661px ÷ 1440 × 100 = 45.903vw */
    flex-shrink: 0;
    margin: clamp(-10px, -6.25vw, -90px) 0; /* PC基準: -90px ÷ 1440 × 100 = -6.25vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_works_img-wrap {
    width: 661px;
    flex-shrink: 0;
    margin: -90px 0;
  }
}

.top_works-btn_wrap {
  position: absolute;
  bottom: 11.03vw; /* 43px */
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_works-btn_wrap {
    bottom: clamp(
      52px,
      7.361vw,
      106px
    ); /* PC基準: 106px ÷ 1440 × 100 = 7.361vw */
    left: auto;
    right: clamp(
      40px,
      8.333vw,
      120px
    ); /* PC基準: 120px ÷ 1440 × 100 = 8.333vw */
    transform: translateX(0);
  }
}
@media screen and (min-width: 1440px) {
  .top_works-btn_wrap {
    bottom: 106px;
    left: auto;
    right: 120px;
    transform: translateX(0);
  }
}

/* ---------- top_recruit ---------- */
.top_recruit {
  width: 100%;
  overflow: hidden;
}
@media screen and (min-width: 1441px) {
  .top_recruit {
    overflow: visible;
  }
}

.top_recruit_contents {
  padding-bottom: 0;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_recruit_contents {
    padding-top: clamp(
      120px,
      16.875vw,
      243px
    ); /* PC基準: 243px ÷ 1440 × 100 = 16.875vw */
    padding-bottom: clamp(
      75px,
      9.792vw,
      141px
    ); /* PC基準: 141px ÷ 1440 × 100 = 9.792vw */
    max-width: clamp(
      768px,
      100vw,
      1440px
    ); /* PC基準: 1440px ÷ 1440 × 100 = 100vw */
    margin: 0 auto;
    height: auto;
    position: relative;
  }
}
@media screen and (min-width: 1440px) {
  .top_recruit_contents {
    padding-top: 243px;
    padding-bottom: 141px;
    max-width: 1440px;
    margin: 0 auto;
    height: auto;
    position: relative;
  }
}

@media screen and (min-width: 768px) {
  .top_recruit_title-box {
    flex-direction: row;
    justify-content: center;
    z-index: 2;
    position: relative;
    margin-left: -96px;
  }
  .top_recruit_title-box .m_section_title-en {
    position: relative;
  }
}

.top_recruit_subtitle {
  white-space: nowrap;
}

.top_recruit_img-wrap {
  width: 100%;
  height: 87.18vw; /* 340px */
  position: relative;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_recruit_img-wrap {
    position: absolute;
    height: clamp(
      340px,
      64.583vw,
      930px
    ); /* PC基準: 930px ÷ 1440 × 100 = 64.583vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_recruit_img-wrap {
    position: absolute;
    height: 930px;
  }
}

.top_recruit_img-left {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_recruit_img-left {
    position: absolute;
    height: clamp(
      495px,
      64.583vw,
      930px
    ); /* PC基準: 930px ÷ 1440 × 100 = 64.583vw */
    left: 0;
    top: 0;
  }
}
@media screen and (min-width: 1440px) {
  .top_recruit_img-left {
    position: absolute;
    height: 930px;
    left: 0;
    top: 0;
  }
}

.top_recruit_img-left .top_recruit_img:first-child {
  width: 30.59vw;
  height: 30.59vw;
  position: absolute;
  top: 36.92vw; /* 144px */
  left: -0.26vw;
  object-fit: cover;
}

@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_recruit_img-left .top_recruit_img:nth-child(2) {
    position: absolute;
    width: clamp(
      182px,
      23.819vw,
      343px
    ); /* PC基準: 343px ÷ 1440 × 100 = 23.819vw */
    height: clamp(
      182px,
      23.819vw,
      343px
    ); /* PC基準: 343px ÷ 1440 × 100 = 23.819vw */
    top: clamp(60px, 7.917vw, 114px); /* PC基準: 114px ÷ 1440 × 100 = 7.917vw */
    left: clamp(
      -63px,
      -8.333vw,
      -120px
    ); /* PC基準: -120px ÷ 1440 × 100 = -8.333vw */
    object-fit: cover;
  }
}
@media screen and (min-width: 1440px) {
  .top_recruit_img-left .top_recruit_img:nth-child(2) {
    position: absolute;
    width: 343px;
    height: 343px;
    top: 114px;
    left: -120px;
    object-fit: cover;
  }
}

.top_recruit_img-left .top_recruit_img:nth-child(3) {
  width: 27.28vw;
  height: auto;
  position: absolute;
  top: 20.51vw;
  left: 24.71vw;
  object-fit: cover;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_recruit_img-left .top_recruit_img:nth-child(3) {
    width: clamp(
      163px,
      21.25vw,
      306px
    ); /* PC基準: 306px ÷ 1440 × 100 = 21.25vw */
    top: clamp(
      -33px,
      -4.306vw,
      -62px
    ); /* PC基準: -62px ÷ 1440 × 100 = -4.306vw */
    left: clamp(
      69px,
      9.028vw,
      130px
    ); /* PC基準: 130px ÷ 1440 × 100 = 9.028vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_recruit_img-left .top_recruit_img:nth-child(3) {
    width: 306px;
    top: -62px;
    left: 130px;
  }
}

.top_recruit_img-left .top_recruit_img:last-child {
  width: 28.54vw;
  height: auto;
  position: absolute;
  bottom: 0;
  left: 22.12vw;
  object-fit: cover;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_recruit_img-left .top_recruit_img:last-child {
    width: clamp(
      170px,
      22.222vw,
      320px
    ); /* PC基準: 320px ÷ 1440 × 100 = 22.222vw */
    top: clamp(
      228px,
      29.722vw,
      428px
    ); /* PC基準: 428px ÷ 1440 × 100 = 29.722vw */
    left: clamp(
      75px,
      9.792vw,
      141px
    ); /* PC基準: 141px ÷ 1440 × 100 = 9.792vw */
    bottom: auto; /* topに変更するためbottomを無効化 */
  }
}
@media screen and (min-width: 1440px) {
  .top_recruit_img-left .top_recruit_img:last-child {
    width: 320px;
    top: 428px;
    left: 141px;
    bottom: auto; /* topに変更するためbottomを無効化 */
  }
}

.top_recruit_img-right {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_recruit_img-right {
    position: absolute;
    height: clamp(
      495px,
      64.583vw,
      930px
    ); /* PC基準: 930px ÷ 1440 × 100 = 64.583vw */
    right: 0;
    top: 0;
  }
}
@media screen and (min-width: 1440px) {
  .top_recruit_img-right {
    position: absolute;
    height: 930px;
    right: 0;
    top: 0;
  }
}

.top_recruit_img-right .top_recruit_img:first-child {
  width: 28.54vw;
  height: auto;
  position: absolute;
  top: 0;
  right: 16.06vw;
  object-fit: cover;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_recruit_img-right .top_recruit_img:first-child {
    width: clamp(
      170px,
      22.222vw,
      320px
    ); /* PC基準: 320px ÷ 1440 × 100 = 22.222vw */
    top: clamp(
      -121px,
      -15.833vw,
      -228px
    ); /* PC基準: -228px ÷ 1440 × 100 = -15.833vw */
    right: clamp(
      78px,
      10.208vw,
      147px
    ); /* PC基準: 147px ÷ 1440 × 100 = 10.208vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_recruit_img-right .top_recruit_img:first-child {
    width: 320px;
    top: -228px;
    right: 147px;
  }
}

.top_recruit_img-right .top_recruit_img:nth-child(2) {
  width: 35.69vw;
  height: auto;
  position: absolute;
  top: 36.92vw;
  right: 0;
  object-fit: cover;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_recruit_img-right .top_recruit_img:nth-child(2) {
    width: clamp(
      213px,
      27.778vw,
      400px
    ); /* PC基準: 400px ÷ 1440 × 100 = 27.778vw */
    top: clamp(60px, 7.917vw, 114px); /* PC基準: 114px ÷ 1440 × 100 = 7.917vw */
    right: 0;
  }
}
@media screen and (min-width: 1440px) {
  .top_recruit_img-right .top_recruit_img:nth-child(2) {
    width: 400px;
    top: 114px;
    right: 0;
  }
}

.top_recruit_img-right .top_recruit_img:last-child {
  width: 22.33vw;
  height: auto;
  position: absolute;
  bottom: 2.66vw;
  right: 23.82vw;
  object-fit: cover;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_recruit_img-right .top_recruit_img:last-child {
    width: clamp(
      133px,
      17.361vw,
      250px
    ); /* PC基準: 250px ÷ 1440 × 100 = 17.361vw */
    top: clamp(
      214px,
      27.917vw,
      402px
    ); /* PC基準: 402px ÷ 1440 × 100 = 27.917vw */
    right: clamp(
      124px,
      16.25vw,
      234px
    ); /* PC基準: 234px ÷ 1440 × 100 = 16.25vw */
    bottom: auto; /* topに変更するためbottomを無効化 */
  }
}
@media screen and (min-width: 1440px) {
  .top_recruit_img-right .top_recruit_img:last-child {
    width: 250px;
    top: 402px;
    right: 234px;
    bottom: auto; /* topに変更するためbottomを無効化 */
  }
}

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

.top_recruit_text-wrap {
  gap: 7.69vw; /* 30px */
  padding: 10.26vw 4.1vw 12.82vw 3.85vw; /* 40px 16px 50px 15px */
  background: var(--color-bg02);
  backdrop-filter: blur(10px);
  border-radius: 20px;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_recruit_text-wrap {
    padding: clamp(120px, 12.639vw, 182px) clamp(75px, 9.583vw, 138px)
      clamp(48px, 6.25vw, 90px) clamp(48px, 6.25vw, 90px); /* PC基準: 182px ÷ 1440 × 100 = 12.639vw, 138px ÷ 1440 × 100 = 9.583vw, 90px ÷ 1440 × 100 = 6.25vw */
    gap: clamp(20px, 2.778vw, 40px); /* PC基準: 40px ÷ 1440 × 100 = 2.778vw */
    width: clamp(
      450px,
      41.944vw,
      604px
    ); /* PC基準: 604px ÷ 1440 × 100 = 41.944vw */
    margin: clamp(-65px, -8.472vw, -122px) auto 0; /* PC基準: -122px ÷ 1440 × 100 = -8.472vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_recruit_text-wrap {
    padding: 182px 138px 90px 90px;
    gap: 40px;
    width: 604px;
    margin: -122px auto 0;
  }
}

.top_recruit_text {
  letter-spacing: -0.01em;
}

.top_recruit-btn_wrap {
  margin: 0 auto 0 0;
}

/* ---------- top_contact ---------- */
.top_contact_contents {
  position: relative;
  width: 100%;
  height: auto;
  overflow: hidden;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_contact_contents {
    padding-bottom: clamp(
      36px,
      4.792vw,
      69px
    ); /* PC基準: 69px ÷ 1440 × 100 = 4.792vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_contact_contents {
    padding-bottom: 69px;
  }
}

.top_contact_contents::after {
  content: "";
  width: 100%;
  height: calc(100% - 28.97vw); /* 113px / 390px */
  position: absolute;
  top: 28.97vw;
  left: 0;
  background: url("/assets/img/contact_bg_sp.png") no-repeat center/ cover;
  opacity: 0.5;
  z-index: 1;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_contact_contents::after {
    height: calc(
      100% - clamp(118px, 15.486vw, 223px)
    ); /* PC基準: 223px ÷ 1440 × 100 = 15.486vw */
    top: clamp(
      118px,
      15.486vw,
      223px
    ); /* PC基準: 223px ÷ 1440 × 100 = 15.486vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_contact_contents::after {
    height: calc(100% - 223px);
    top: 223px;
  }
}

.top_contact_contents::before {
  content: "";
  width: 100%;
  height: calc(100% - 28.97vw); /* 113px / 390px */
  position: absolute;
  top: 28.97vw;
  left: 0;
  background: #6e776b;
  z-index: 1;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_contact_contents::before {
    height: calc(
      100% - clamp(118px, 15.486vw, 223px)
    ); /* PC基準: 223px ÷ 1440 × 100 = 15.486vw */
    top: clamp(
      118px,
      15.486vw,
      223px
    ); /* PC基準: 223px ÷ 1440 × 100 = 15.486vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_contact_contents::before {
    height: calc(100% - 223px);
    top: 223px;
  }
}

.top_contact_text-loop {
  margin-top: -7.18vw; /* -28px */
  display: flex;
  animation: loop-text 10s linear infinite;
  position: relative;
  z-index: 2;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_contact_text-loop {
    margin-top: clamp(
      -50px,
      -3.472vw,
      -26px
    ); /* PC基準: -50px ÷ 1440 × 100 = -3.472vw */
  }
}
@media screen and (min-width: 1440px) {
  .top_contact_text-loop {
    margin-top: -50px;
  }
}

.top_contact_loop-item {
  display: inline-block;
  font-size: 15.38vw; /* 60px */
  font-family: "Barlow", sans-serif;
  font-weight: 500;
  background: linear-gradient(#000 0%, #000 56%, #556b63 56%, #556b63 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
@keyframes loop-text {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_contact_loop-item {
    font-size: clamp(
      58.7px,
      7.639vw,
      110px
    ); /* 既存のclamp関数をそのまま使用 */
  }
}
@media screen and (min-width: 1440px) {
  .top_contact_loop-item {
    font-size: 110px; /* clampの最大値を使用 */
  }
}

.top_contact_container {
  position: relative;
  z-index: 2;
}

.top_contact_title-box {
  align-items: center;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .top_contact_title-box {
    flex-direction: column;
  }
}

.top_contact_title-box::before {
  display: none;
}

.top_contact_title {
  color: var(--color-white);
  margin-top: 0;
}

.top_contact_link-wrap {
  margin: 10.26vw auto 20.51vw; /* 40px auto 80px */
  width: 100%;
  height: auto;
  text-align: center;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_contact_link-wrap {
    margin: clamp(21.3px, 2.778vw, 40px) auto clamp(40px, 5.556vw, 80px); /* PC基準: 80px ÷ 1440 × 100 = 5.556vw */
    width: 100%;
  }
}
@media screen and (min-width: 1440px) {
  .top_contact_link-wrap {
    margin: 40px auto 80px; /* clampの最大値を使用 */
    width: 100%;
  }
}

.top_contact_link {
  display: block;
  transition: 0.3s;
  text-decoration: none;
}

.top_contact_link:hover {
  transform: translateY(-3px) scale(1.02);
  filter: drop-shadow(0 6px 20px rgba(255, 255, 255, 0.1));
}

.top_contact_link-text {
  font-size: 12.82vw; /* 50px */
  font-family: "Barlow", sans-serif;
  font-weight: 700;
  color: var(--color-white);
  letter-spacing: 0.05em;
  line-height: 1;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .top_contact_link-text {
    font-size: clamp(37.3px, 4.861vw, 70px); /* 既存のclamp関数をそのまま使用 */
  }
}
@media screen and (min-width: 1440px) {
  .top_contact_link-text {
    font-size: 70px; /* clampの最大値を使用 */
  }
}

.top_contact_text {
  text-align: center;
  color: var(--color-white);
  margin: 0 auto;
}

/* ---------- company ---------- */
.company_bg {
  border-bottom: none;
}

.company_title_container {
  padding-bottom: 0;
}

@media screen and (min-width: 768px) {
  .company_contents {
    padding-top: clamp(80px, 11.111vw, 160px);
    min-height: clamp(800px, 72.91vw, 1050px);
  }
}

.company_message_content {
  margin-top: 10.26vw; /* 40px */
  display: flex;
  justify-content: center;
  align-items: flex-end;
  flex-direction: column;
  background: var(--color-bg02);
  border-radius: 20px;
  padding: 0 4.1vw 20.51vw 4.1vw; /* 0 16px 80px 16px */
}
@media screen and (min-width: 768px) {
  .company_message_content {
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    background: transparent;
    padding: 0;
    margin-top: 103px;
  }
}

.company_message-img_wrap {
  width: calc(100vw - 8.21vw);
  margin: 0 calc(50% - 50vw + 4.1vw) 0;
  height: auto;
  border-radius: 20px;
}
@media screen and (min-width: 768px) {
  .company_message-img_wrap {
    width: clamp(
      350px,
      31.25vw,
      450px
    ); /* PC基準: 450px ÷ 1440 × 100 = 31.25vw */
    max-height: 550px;
    margin: -63px 0 0 0;
    flex-shrink: 0;
    z-index: 2;
  }
}

.company_message-img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.company_message-text_wrap {
  margin-top: 10.26vw; /* 40px */
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  gap: 7.69vw; /* 30px */
}
@media screen and (min-width: 768px) {
  .company_message-text_wrap {
    padding: clamp(40px, 8.3vw, 120px);
    width: clamp(
      430px,
      49.305vw,
      710px
    ); /* PC基準: 710px ÷ 1440 × 100 = 49.305vw */
    max-height: 595px;
    margin-top: 0;
    margin-left: -40px;
    gap: 40px;
    background: var(--color-bg02);
    border-radius: 20px;
    flex-shrink: 0;
    z-index: 1;
  }
}

.company_message-subtitle {
  font-size: 6.67vw; /* 26px */
}
@media screen and (min-width: 768px) {
  .company_message-subtitle {
    font-size: clamp(
      26px,
      2.778vw,
      40px
    ); /* PC基準: 40px ÷ 1440 × 100 = 2.778vw */
  }
}

.company_message-text {
  font-size: 3.82avw; /* 15px */
}
@media screen and (min-width: 768px) {
  .company_message-text {
    font-size: clamp(
      15px,
      1.1vw,
      16px
    ); /* PC基準: 16px ÷ 1440 × 100 = 1.111vw */
  }
}

.company_message-ceo_wrap {
  margin-top: 7.69vw; /* 30px */
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  flex-direction: column;
  gap: 2.18vw;
}
@media screen and (min-width: 768px) {
  .company_message-ceo_wrap {
    margin-top: 40px;
    gap: 14px;
  }
}

.company_message-ceo_wrap.u_sp-none {
  display: none;
}
.company_message-ceo_wrap.u_pc-none {
  display: flex;
}
@media screen and (min-width: 768px) {
  .company_message-ceo_wrap.u_sp-none {
    display: flex;
  }
  .company_message-ceo_wrap.u_pc-none {
    display: none;
  }
}

.company_ceo {
  font-size: 3.59vw; /* 14px */
}
@media screen and (min-width: 768px) {
  .company_ceo {
    font-size: clamp(
      14px,
      0.972vw,
      16px
    ); /* PC基準: 16px ÷ 1440 × 100 = 1.111vw */
  }
}

.company_ceo_name {
  display: flex;
  align-items: center;
  gap: 3.59vw; /* 14px */
}
@media screen and (min-width: 768px) {
  .company_ceo_name {
    gap: 20px;
  }
}

.company_ceo-name_img {
  width: 115px;
  height: auto;
}
@media screen and (min-width: 768px) {
  .company_ceo-name_img {
    width: 142px;
  }
}

.company_profile {
  background: var(--color-bg02);
}

.company_table {
  margin-top: 15.38vw; /* 60px */
  width: 100%;
}
@media screen and (min-width: 768px) {
  .company_table {
    margin-top: 60px;
  }
}

.company_table tr {
  width: 100%;
}

.company_table th {
  border-bottom: 1px solid var(--color-primary);
  padding: 5.13vw 0; /* 20px 0 */
  text-align: left;
  width: 20.51vw; /* 80px */
  font-size: 3.33vw; /* 13px */
  height: auto;
}
@media screen and (min-width: 768px) {
  .company_table th {
    width: 237px;
    font-size: 16px;
    padding: 24px 0;
  }
}

.company_table tr:first-child th {
  border-top: 1px solid var(--color-primary);
}

.company_table td {
  padding: 5.13vw 0 5.13vw 2.56vw; /* 20px 0 20px 10px */
  border-bottom: 1px solid #d2d2d2;
  font-size: 3.33vw; /* 13px */
  height: auto;
}
@media screen and (min-width: 768px) {
  .company_table td {
    font-size: 16px;
    padding: 24px 58px 24px 10px;
  }
}

.company_table tr:first-child td {
  border-top: 1px solid #d2d2d2;
}

.company_table p:not(:first-child) {
  margin-top: 7.69vw; /* 30px */
}
@media screen and (min-width: 768px) {
  .company_table p:not(:first-child) {
    margin-top: 30px;
  }
}

.company_history {
  background: var(--color-bg01);
}

.company_access {
  background: var(--color-bg02);
}

.company_access-map {
  margin-top: 7.69vw; /* 30px */
  width: 100%;
  height: 64.1vw; /* 250px */
}
@media screen and (min-width: 768px) {
  .company_access-map {
    margin-top: 60px;
    height: 520px;
  }
}

.company_access-iframe {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
}

.company_access_box {
  margin-top: 5.13vw; /* 20px */
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
  gap: 7.69vw; /* 30px */
}
@media screen and (min-width: 768px) {
  .company_access_box {
    margin-top: 30px;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}

.company_access_text {
  font-size: 3.72vw; /* 14px */
}
@media screen and (min-width: 768px) {
  .company_access_text {
    font-size: 16px;
  }
}

.company_access .company_access-btn_wrap::after {
  background: url("/assets/img/link_icon.png") no-repeat center/ contain !important;
  border-radius: 0;
  width: 3.33vw; /* 13px */
  height: 3.33vw; /* 13px */
}
@media screen and (min-width: 768px) {
  .company_access .company_access-btn_wrap::after {
    width: 13px;
    height: 13px;
  }
  .company_access .company_access-btn_wrap {
    margin: 0;
  }
}

/* ---------- business ---------- */
.business_bg {
  border-bottom: none;
}

.business_anchor_link {
  width: 100%;
  height: auto;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2.56vw; /* 10px */
  flex-wrap: wrap;
}
@media screen and (min-width: 768px) {
  .business_anchor_link {
    gap: 20px;
  }
}

.business_anchor_wrap {
  width: auto;
  padding: 2.56vw 7.44vw 2.56vw 2.56vw;
  background: var(--color-white);
  border-radius: 2.56vw; /* 10px */
  position: relative;
}
@media screen and (min-width: 768px) {
  .business_anchor_wrap {
    padding: 14px 47px 14px 20px;
    border-radius: 10px;
  }
}

.business_anchor_wrap::after {
  content: "";
  width: 3.33vw; /* 13px */
  height: 2.05vw; /* 8px */
  background: url("/assets/img/anchor_icon.png") no-repeat center/cover;
  position: absolute;
  top: 50%;
  right: 2.56vw;
  transform: translateY(-50%);
}
@media screen and (min-width: 768px) {
  .business_anchor_wrap::after {
    width: 17px;
    height: 11px;
    right: 20px;
  }
}

.business_anchor_link_item {
  font-size: 3.07vw; /* 12px */
  white-space: nowrap;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
@media screen and (min-width: 768px) {
  .business_anchor_link_item {
    font-size: 16px;
  }
}

.business_features_container {
  display: flex;
  flex-direction: column;
  gap: 10.26vw; /* 40px */
}
@media screen and (min-width: 768px) {
  .business_features_container {
    gap: 60px;
  }
}
@media screen and (min-width: 1440px) {
  .business_features_container,
  .business_safety_container,
  .business_quality_container {
    padding: 0 120px;
  }
}

.business_features_list {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) {
  .business_features_list {
    gap: clamp(21px, 2.08vw, 30px);
  }
}

.business_features_item {
  width: 100%;
  padding: clamp(10.26vw, 10.26vw, 40px) clamp(4.1vw, 4.1vw, 16px); /* 40px 16px → vw */
  border-radius: 20px;
  background: var(--color-bg02);
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-direction: column;
  gap: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) {
  .business_features_item {
    padding: clamp(42px, 4.17vw, 50px);
    gap: clamp(28px, 2.78vw, 40px);
  }
}

.business_features-num_wrap {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) {
  .business_features-num_wrap {
    gap: clamp(14px, 1.39vw, 20px);
  }
}

.business_features-num_text {
  font-size: clamp(7.69vw, 7.69vw, 30px); /* 30px → 7.69vw */
  font-family: "barlow", sans-serif;
  font-weight: 200;
  color: #999;
}
@media screen and (min-width: 768px) {
  .business_features-num_text {
    font-size: clamp(21px, 2.08vw, 30px);
  }
}

.business_features-num {
  font-size: clamp(10.26vw, 10.26vw, 40px); /* 40px → 10.26vw */
  font-weight: 300;
  margin-left: clamp(1.54vw, 1.54vw, 6px); /* 6px → 1.54vw */
}
@media screen and (min-width: 768px) {
  .business_features-num {
    font-size: clamp(28px, 2.78vw, 40px);
    margin-left: clamp(4.2px, 0.42vw, 6px);
  }
}

.business_features_line {
  width: 100%;
  height: 1px;
  background: #999;
}
@media screen and (min-width: 768px) {
  .business_features_line {
    width: 100%;
    height: 1px;
    background: #999;
  }
}

.business_features_box {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-direction: column;
  gap: clamp(7.69vw, 7.69vw, 30px); /* 30px → 7.69vw */
}
@media screen and (min-width: 768px) {
  .business_features_box {
    flex-direction: row;
    align-items: center;
    gap: clamp(49px, 4.86vw, 70px);
  }
  .business_features_box__reverse {
    flex-direction: row-reverse;
  }
}

.business_features-img_wrap {
  width: 100%;
  height: auto;
  border-radius: 10px;
}
@media screen and (min-width: 768px) {
  .business_features-img_wrap {
    width: clamp(292px, 29.17vw, 420px);
    flex-shrink: 0;
  }
}

.business_features_img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .business_features_img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }
}

.business_features-text_wrap {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  gap: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) {
  .business_features-text_wrap {
    width: calc(100% - clamp(292px, 29.17vw, 420px));
    gap: clamp(21px, 2.08vw, 30px);
  }
}

.business_features-title {
  font-size: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
  font-family: var(--font-serif);
  font-weight: 600;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .business_features-title {
    font-size: clamp(18.1px, 1.81vw, 26px);
  }
}

.business_features-text {
  font-size: clamp(3.59vw, 3.59vw, 14px); /* 14px → 3.59vw */
  text-align: left;
}
@media screen and (min-width: 768px) {
  .business_features-text {
    font-size: clamp(11.1px, 1.11vw, 16px);
  }
}

.business_features-text ul {
  margin-left: 6.41vw; /* 25px */
  list-style: square;
  list-style-type: disc;
}
@media screen and (min-width: 768px) {
  .business_features-text ul {
    margin-left: 27px;
  }
}

/* safety */
@media screen and (min-width: 768px) {
  .business_safety {
    background: var(--color-bg02);
  }
}

.safety_item_title {
  font-size: 6.67vw; /* clamp(26px, 1.6vw, 30px) → 26px base */
  font-family: var(--font-serif);
  font-weight: 600;
  text-align: center;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .safety_item_title {
    font-size: clamp(26px, 1.6vw, 30px);
  }
}
@media screen and (min-width: 1440px) {
  .safety_item_title {
    font-size: 30px;
  }
}

.safety_item_txt {
  font-size: 3.85vw; /* clamp(15px, 0.8vw, 16px) → 15px base */
  margin-top: 7.69vw; /* clamp(30px, 2.1vw, 40px) → 30px base */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .safety_item_txt {
    font-size: clamp(15px, 1.1vw, 16px);
    margin-top: clamp(30px, 2.7vw, 40px);
  }
}
@media screen and (min-width: 1440px) {
  .safety_item_txt {
    font-size: 16px;
    margin-top: 40px;
  }
}

/* safety_attempt */
.safety_attempt {
  padding: 10.26vw 0; /* clamp(40px, 3.1vw, 60px) → 40px base */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .safety_attempt {
    padding: clamp(40px, 4.16vw, 60px) 0;
  }
}
@media screen and (min-width: 768px) {
  .safety_attempt {
    padding: 60px 0;
  }
}

@media screen and (min-width: 768px) {
  .attempt_item_list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 2.1vw; /* clamp(10px, 1vw, 20px) → 10px base、PC: 20px */
  }
}

.attempt_item {
  display: flex;
  align-items: stretch;
  margin-bottom: 10px; /* pcでは存在しないので、px指定しています */
}
@media screen and (min-width: 768px) {
  .attempt_item {
    margin-bottom: 0;
  }
}

.attempt_item:last-child {
  margin-bottom: 0;
}

.attempt_item_detail {
  margin-top: 7.69vw; /* clamp(30px, 2.1vw, 40px) → 30px base */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .attempt_item_detail {
    margin-top: clamp(30px, 2.7vw, 40px);
  }
}
@media screen and (min-width: 1440px) {
  .attempt_item_detail {
    margin-top: 40px;
  }
}

.attempt_item_head-wrap {
  width: 24.62vw; /* clamp(96px, 7.3vw, 140px) → 96px base */
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary);
  border-radius: 2.56vw; /* 10px */
  padding: 6.15vw 0; /* 24px */
  text-align: center;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .attempt_item_head-wrap {
    width: clamp(96px, 7.3vw, 140px);
    border-radius: clamp(8px, 1vw, 10px);
    padding: clamp(16px, 2.1vw, 24px) 0;
  }
}
@media screen and (min-width: 1440px) {
  .attempt_item_head-wrap {
    width: 140px;
    border-radius: 10px;
    padding: 24px 0;
  }
}

.attempt_item_head {
  font-size: 3.59vw; /* clamp(14px, 1.1vw, 20px) → 14px base */
  color: var(--color-white);
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .attempt_item_head {
    font-size: clamp(14px, 1.3vw, 20px);
  }
}
@media screen and (min-width: 1440px) {
  .attempt_item_head {
    font-size: 20px;
  }
}

.attempt_item_txt-wrap {
  flex: 1;
  margin-left: 1.03vw; /* clamp(4px, 0.5vw, 10px) → 4px base */
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .attempt_item_txt-wrap {
    margin-left: 10px;
  }
}

.attempt_item_txt-wrap p {
  font-size: 3.33vw; /* clamp(13px, 0.7vw, 14px) → 13px base */
  display: flex;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .attempt_item_txt-wrap p {
    font-size: clamp(13px, 1.8vw, 14px);
  }
}
@media screen and (min-width: 1440px) {
  .attempt_item_txt-wrap p {
    font-size: 14px;
  }
}
@media screen and (min-width: 768px) {
  .attempt_item_txt-wrap p {
    font-size: 14px;
  }
}

.attempt_item_txt-wrap p span {
  margin: 0 0.51vw; /* 2px */
  font-weight: bold;
}
@media screen and (min-width: 768px) {
  .attempt_item_txt-wrap p span {
    margin: 0 2px;
  }
}

/* safety_insurance */
.safety_insurance {
  padding-top: 10.26vw; /* clamp(40px, 3.1vw, 60px) → 40px base */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .safety_insurance {
    padding-top: clamp(40px, 4.16vw, 60px);
  }
}
@media screen and (min-width: 1440px) {
  .safety_insurance {
    padding-top: 60px;
  }
}

.insurance_item_detail {
  margin-top: 7.69vw; /* clamp(30px, 2.1vw, 40px) → 30px base */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .insurance_item_detail {
    margin-top: clamp(30px, 2.7vw, 40px);
  }
}
@media screen and (min-width: 1440px) {
  .insurance_item_detail {
    margin-top: 40px;
  }
}

.insuranse_item {
  border-radius: 5.13vw; /* 20px */
  text-align: center;
  padding-top: 12.82vw; /* clamp(50px, 2.6vw, 50px) → 50px base */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .insuranse_item {
    border-radius: 20px;
    padding-top: clamp(40px, 4.16vw, 60px);
  }
}
@media screen and (min-width: 1440px) {
  .insuranse_item {
    border-radius: 20px;
    padding-top: 50px;
  }
}

.insuranse_item_cl {
  background: #e9f6f2 80%;
  border: 1px solid var(--color-primary);
}

.insuranse_item_pl {
  margin-top: 4.1vw; /* 16px */
  background: #f6f6e9 80%;
  border: 1px solid #aeae6b;
}
@media screen and (min-width: 768px) {
  .insuranse_item_pl {
    margin-top: 0;
  }
}

.insuranse_item_title {
  font-size: 6.15vw; /* clamp(24px, 1.6vw, 30px) → 24px base */
  font-weight: 600;
  font-family: var(--font-serif);
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .insuranse_item_title {
    font-size: clamp(20px, 1.6vw, 30px);
  }
}
@media screen and (min-width: 1440px) {
  .insuranse_item_title {
    font-size: 30px;
  }
}

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

.insurance_contents-box {
  background: var(--color-white);
  margin: 7.69vw 4.1vw 4.1vw; /* 30px clamp(16px, 1.6vw, 30px) clamp(16px, 1.6vw, 30px) → 30px 16px 16px */
  padding: 5.13vw; /* clamp(20px, 1vw, 20px) → 20px */
  border-radius: 2.56vw; /* 10px */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .insurance_contents-box {
    margin: clamp(20px, 2.7vw, 30px) clamp(20px, 2.7vw, 30px)
      clamp(20px, 2.7vw, 30px);
    padding: clamp(10px, 1vw, 20px);
    border-radius: 10px;
  }
}
@media screen and (min-width: 768px) {
  .insurance_contents-box {
    margin: 30px 30px 30px;
    padding: 20px;
    border-radius: 10px;
  }
}

.insurance_contents {
  font-size: 4.36vw; /* clamp(17px, 0.9vw, 18px) → 17px base */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .insurance_contents {
    font-size: clamp(17px, 1.04vw, 18px);
  }
}
@media screen and (min-width: 1440px) {
  .insurance_contents {
    font-size: 18px;
  }
}

.insurance_item_cl .cl,
.insurance_contents-box .cl {
  color: var(--color-primary);
}

.insuranse_item_pl .pl,
.insurance_contents-box .pl {
  color: #ac5555;
}

.insuranse_item_head {
  display: inline-block;
  padding: 1.28vw 7.69vw; /* clamp(5px, 0.3vw, 5px) clamp(30px, 1.6vw, 30px) → 5px 30px */
  border-radius: 25.64vw; /* 100px */
  font-size: 3.59vw; /* clamp(14px, 0.7vw, 14px) → 14px */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .insuranse_item_head {
    padding: clamp(2px, 0.3vw, 5px) clamp(10px, 1.6vw, 30px);
    border-radius: 100px;
    font-size: clamp(13px, 1.04vw, 14px);
  }
}
@media screen and (min-width: 1440px) {
  .insuranse_item_head {
    padding: 5px 30px;
    border-radius: 100px;
    font-size: 14px;
  }
}

.insuranse_item_head.cl {
  background: var(--color-primary);
  color: var(--color-white);
}

.insuranse_item_head.pl {
  background: #ac5555;
  color: var(--color-white);
}

.insurance_contents_txt {
  font-size: 3.85vw; /* clamp(15px, 0.8vw, 16px) → 15px base */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .insurance_contents_txt {
    font-size: clamp(14px, 1.04vw, 16px);
  }
}
@media screen and (min-width: 1440px) {
  .insurance_contents_txt {
    font-size: 16px;
  }
}

@media screen and (min-width: 768px) {
  .insurance_item_detail {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
  }
}

/* quality */
.quality_item_ttl {
  text-align: center;
  font-size: 6.67vw; /* clamp(26px, 1.6vw, 30px) → 26px base */
  margin: 7.69vw 0; /* clamp(30px, 1vw, 20px) → 30px base */
  font-family: var(--font-serif);
  font-weight: 600;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .quality_item_ttl {
    font-size: clamp(26px, 1.6vw, 30px);
    margin: clamp(20px, 1vw, 30px) 0;
  }
}
@media screen and (min-width: 1440px) {
  .quality_item_ttl {
    font-size: 30px;
    margin: 20px 0;
  }
}

.quality_flow_step {
  position: relative;
}

.flow_arrow {
  display: block;
  width: 0;
  height: 0;
  margin: 2.56vw auto; /* 10px */
  border-left: 5.13vw solid transparent; /* 20px */
  border-right: 5.13vw solid transparent; /* 20px */
  border-top: 5.13vw solid var(--color-primary); /* 20px */
}
@media screen and (min-width: 768px) {
  .flow_arrow {
    margin: 10px auto;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 20px solid var(--color-primary);
  }
}

.quality_flow_box {
  background: #fff;
  border-radius: 20px;
  padding: 5.13vw 4.1vw; /* 20px 16px */
  display: grid;
  gap: 3.08vw; /* 12px */
}
@media screen and (min-width: 768px) {
  .quality_flow_box {
    padding: 20px 16px;
    gap: 12px;
  }
}

.row1 {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2.05vw; /* 8px */
}
@media screen and (min-width: 768px) {
  .row1 {
    gap: 8px;
  }
}

.row2 {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2.05vw; /* 8px */
  min-width: 0;
}
@media screen and (min-width: 768px) {
  .row2 {
    gap: 8px;
  }
}

@media screen and (min-width: 768px) {
  .quality_flow_box {
    grid-template-columns: 180fr 160fr 510fr 140fr;
    gap: 12px;
  }

  .row1,
  .row2 {
    display: contents;
  }
}

.quality_flow_label {
  width: 33.33vw; /* 130px */
  background: #2d6950;
  color: #fff;
  font-weight: bold;
  padding: 2.56vw; /* 10px */
  border-radius: 2.56vw; /* 10px */
  text-align: center;
  font-size: 3.59vw; /* clamp(14px, 1vw, 20px) → 14px base */
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .quality_flow_label {
    width: clamp(140px, 16.66vw, 180px);
    padding: 10px;
    border-radius: 10px;
    font-size: clamp(16px, 1vw, 20px);
  }
}
@media screen and (min-width: 1440px) {
  .quality_flow_label {
    width: 180px;
    padding: 10px;
    border-radius: 10px;
    font-size: 20px;
  }
}

.quality_flow_role {
  font-weight: bold;
  text-align: left;
  font-size: 4.36vw; /* clamp(17px, 1vw, 20px) → 17px base */
  margin: auto 0;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .quality_flow_role {
    font-size: clamp(16px, 1.1vw, 20px);
  }
}
@media screen and (min-width: 1440px) {
  .quality_flow_role {
    font-size: 20px;
  }
}

.quality_flow_desc {
  background: #e6f4ef;
  border-radius: 25.64vw; /* 100px */
  padding: 1.28vw 5.13vw; /* 5px 20px */
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-size: 3.33vw; /* clamp(13px, 0.8vw, 15px) → 13px base */
  min-width: 0;
  margin: auto 0;
}
@media screen and (min-width: 768px) {
  .quality_flow_desc {
    border-radius: 100px;
    padding: 5px 20px;
    font-size: 15px;
  }
}

.quality_flow_person {
  width: 31.54vw; /* 123px */
  border-radius: 2.05vw; /* 8px */
  padding: 2.05vw; /* 8px */
  text-align: center;
  font-size: 2.82vw; /* clamp(11px, 0.7vw, 13px) → 11px base */
  background: #d6e4f9;
  margin: auto 0;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .quality_flow_person {
    width: clamp(120px, 16.66vw, 140px);
    border-radius: 8px;
    padding: 8px;
    font-size: clamp(11px, 0.7vw, 13px);
  }
}
@media screen and (min-width: 1440px) {
  .quality_flow_person {
    width: 140px;
    border-radius: 8px;
    padding: 8px;
    font-size: 13px;
  }
}

.flow_person-yellow {
  background: #f9f3c5;
}

.flow_person-pink {
  background: #f9d6d6;
}

/* ---------- works ---------- */
.works_bg {
  border-bottom: none;
}

@media screen and (min-width: 768px) {
  .works_contents {
    padding-top: 52px;
  }
}

.works_title {
  text-align: center;
}

.works_title::after {
  content: "Achievements";
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width: 768px) {
  .works_title::after {
    top: -52px;
  }
}

.works_title::before {
  display: none;
}

.works_subtitle {
  font-size: 6.67vw; /* 26px */
  text-align: center;
  margin-top: 10.26vw; /* 40px */
}
@media screen and (min-width: 768px) {
  .works_subtitle {
    font-size: 40px;
    margin-top: 60px;
  }
}

.works_modal {
  width: 100%;
}

.works_modal_box {
  width: 100%;
  height: auto;
  gap: 1.03vw; /* 4px */
  margin-top: 10.26vw; /* 40px */
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
@media screen and (min-width: 768px) {
  .works_modal_box {
    margin-top: 60px;
    gap: 3px;
  }
}

.works_modal_btn {
  width: calc((100% - 2.06vw) / 3); /* 8px → 2.06vw */
  height: auto;
  border-radius: 10px;
}
@media screen and (min-width: 768px) {
  .works_modal_btn {
    width: calc((100% - 2.06vw) / 3);
  }
}
@media screen and (min-width: 1024px) {
  .works_modal_btn {
    width: calc((100% - 2.06vw) / 4);
  }
}

.swiper-slide.modalInSlider {
  display: flex !important;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 100%;
  height: auto;
  gap: 2.56vw; /* 10px → 2.56vw */
  padding: 5.13vw; /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) {
  .swiper-slide.modalInSlider {
    flex-direction: row;
    gap: 40px;
    align-items: center;
    padding: 20px;
    justify-content: space-between;
  }
}

.modal_before-img_wrap {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 768px) {
  .modal_before-img_wrap {
    width: 320px;
    height: auto;
    flex-shrink: 0;
  }
}

.modal_before-img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .modal_before-img {
    max-height: 400px;
    object-fit: contain;
  }
}

.modal_text {
  font-size: 5.64vw; /* 22px → 5.64vw */
  font-weight: 600;
  font-family: "Barlow", sans-serif;
  text-align: center;
  padding-top: 2.56vw; /* 10px → 2.56vw */
  color: #999;
}
@media screen and (min-width: 768px) {
  .modal_text {
    font-size: 30px;
    padding-top: 20px;
  }
}

.modal_text_after {
  color: var(--color-primary);
}

.modal_arrow {
  width: 9.23vw; /* 36px → 9.23vw */
  height: 10.26vw; /* 40px → 10.26vw */
  margin: 0 auto;
  transform: rotate(90deg);
  margin-top: 2.18vw; /* 8.5px → 2.18vw */
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
@media screen and (min-width: 768px) {
  .modal_arrow {
    width: 60px;
    height: 60px;
    transform: rotate(0deg);
    margin: 0;
    align-self: center;
  }
}

.modal_arrow-icon {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.modal_after-img_wrap {
  width: 100%;
  height: auto;
  margin-top: 2.95vw; /* 11.5px → 2.95vw */
}
@media screen and (min-width: 768px) {
  .modal_after-img_wrap {
    margin-top: 0;
    width: 480px;
    height: auto;
    flex-shrink: 0;
  }
}

.modal_after-img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .modal_after-img {
    max-height: 400px;
    object-fit: contain;
  }
}

.modal_swiper-button-prev,
.modal_swiper-button-next {
  color: #535353 !important;
}

/* ---------- recruit_intro ---------- */
.recruit_bg {
  border-bottom: none;
}

.recruit_intro-container {
  position: relative;
  z-index: var(--z-index-default);
}

@media screen and (min-width: 768px) {
  .recruit_intro-container {
    height: clamp(336px, 50vw, 529px);
  }
}

@media screen and (min-width: 768px) {
  .recruit_intro-box {
    height: 100%;
  }
}

.recruit_copy {
  font-family: "Barlow", sans-serif;
  font-size: 12.82vw; /* 50px */
  font-weight: bold;
  color: var(--color-primary);
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .recruit_copy {
    font-size: clamp(50px, 8.21vw, 92px);
    padding-top: 100px;
  }
}

.recruit_copy-jp {
  margin-top: clamp(24px, 3.57vw, 40px);
  font-family: var(--font-serif);
  font-size: 6.41vw; /* 24px */
  font-weight: 600;
}

@media screen and (min-width: 768px) {
  .recruit_copy-jp {
    font-size: clamp(24px, 3.57vw, 40px);
    padding-left: 40px;
  }
}

.recruit_intro_img-wrapper {
  margin-top: 7.69vw; /* 30px */
}
@media screen and (min-width: 768px) {
  .recruit_intro_img-wrapper {
    margin-top: 0;
    width: 53.5%;
    /* height: 100%; */
    height: clamp(336px, 50vw, 529px);
    position: absolute;
    top: 0;
    right: 0;
    z-index: var(--z-index-back);
  }
}

@media screen and (min-width: 768px) {
  .recruit_intro_img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 85% center;
    border-radius: 20px;
  }
}

.recruit_intro_text {
  max-width: 960px;
  margin: 40px auto 0;
  font-size: 4.1vw; /* 16px */
}
@media screen and (min-width: 768px) {
  .recruit_intro_text {
    margin: 60px auto 0;
    font-size: clamp(15px, 1.43vw, 16px);
  }
}

/* ---------- recruit_gallery ---------- */

.recruit_gallery {
  margin-top: clamp(40px, 4.17vw, 60px);
}

.recruit_gallery-wrapper {
  overflow: hidden;
  width: 100%;
  height: 64.1vw; /* 250px */
  white-space: nowrap;
  position: relative;
}
@media screen and (min-width: 768px) {
  .recruit_gallery-wrapper {
    height: 592px;
  }
}

.recruit_gallery-content {
  height: 100%;
  display: inline-flex;
  align-items: flex-start;
  gap: 14.36vw; /* 56px */
  will-change: transform; /* パフォーマンス最適化 */
  transform: translateX(0);
  position: relative;
  z-index: var(--z-index-default);
  min-height: 0;
}
@media screen and (min-width: 768px) {
  .recruit_gallery-content {
    gap: 56px;
  }
}

.recruit_gallery_img {
  object-fit: cover;
  display: block;
  width: auto;
  height: auto;
  flex: 0 0 auto;
}

.recruit_gallery_img:nth-child(6n + 1) {
  height: 58%;
  transform: translateY(8%);
}

.recruit_gallery_img:nth-child(6n + 2) {
  height: 36%;
  transform: translateY(130%);
}

.recruit_gallery_img:nth-child(6n + 3) {
  height: 58%;
  transform: translateY(20%);
}

.recruit_gallery_img:nth-child(6n + 4) {
  height: 36%;
  transform: translateY(0%);
}

.recruit_gallery_img:nth-child(6n + 5) {
  height: 58%;
  transform: translateY(65%);
}

.recruit_gallery_img:nth-child(6n + 6) {
  height: 36%;
  transform: translateY(50%);
}

.recruit_gallery_text-wrapper {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  transform: translateY(-50%);
  pointer-events: none;
}

.recruit_gallery_text {
  display: flex;
  font-size: 25.64vw;
  white-space: nowrap;
  will-change: transform;
  transform: translateX(0);
  color: #e5f0e7;
}
@media screen and (min-width: 768px) {
  .recruit_gallery_text {
    font-size: 350px;
  }
}

.recruit_gallery_text span {
  display: inline-block;
}

/* ---------- recruit_requirements ---------- */

.recruit_requirements {
  background: var(--color-bg02);
}

.recruit_section_title-container {
  text-align: center;
  color: #999999;
}

.recruit_section_title {
  font-family: "Barlow", sans-serif;
  font-size: 11.54vw; /* 45px */
  font-weight: 300;
}
@media screen and (min-width: 768px) {
  .recruit_section_title {
    font-size: 45px;
  }
}

.recruit_section_title-jp {
  font-size: 3.59vw; /* 14px */
  letter-spacing: 0.2em;
}
@media screen and (min-width: 768px) {
  .recruit_section_title-jp {
    font-size: 14px;
  }
}

.recruit_require-list {
  display: grid;
  grid-template-columns: 22% 1fr;
  margin-top: 10.26vw; /* clamp(40px, 5.77vw, 60px) → 40px base */
  padding: 0;
  font-size: 3.33vw; /* clamp(13px, 1.54vw, 16px) → 13px base */
  font-family: var(--font-sans);
}
@media screen and (min-width: 768px) {
  .recruit_require-list {
    margin-top: 60px;
    font-size: 16px;
  }
}

.recruit_require-list dt {
  border-bottom: 1px solid var(--color-primary);
  padding: 6.15vw 0; /* 24px */
}
@media screen and (min-width: 768px) {
  .recruit_require-list dt {
    padding: 24px 0;
  }
}

.recruit_require-list dt:first-of-type {
  border-top: 1px solid var(--color-primary);
}

.recruit_require-list dd {
  border-bottom: 1px solid #d2d2d2;
  padding: 6.15vw 0 6.15vw 2.56vw; /* 24px 0 24px 10px */
}
@media screen and (min-width: 768px) {
  .recruit_require-list dd {
    padding: 24px 0;
  }
}

.recruit_require-list dd:first-of-type {
  border-top: 1px solid #d2d2d2;
}

.recruit_btn_wrap {
  margin: 10.26vw auto 0; /* clamp(40px, 5.77vw, 60px) → 40px base */
  width: fit-content;
}
@media screen and (min-width: 768px) {
  .recruit_btn_wrap {
    margin: 60px auto 0;
  }
}

/* ---------- recruit_entry ---------- */

.recruit_entry {
  background: var(--color-bg01);
}

.recruit_entry_list {
  margin-top: 10.26vw; /* clamp(40px, 5.77vw, 60px) → 40px base */
}
@media screen and (min-width: 768px) {
  .recruit_entry_list {
    margin-top: 60px;
    padding-right: 5%;
  }
}

.recruit_entry_item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 7.69vw; /* clamp(30px, 5vw, 50px) → 30px base */
  padding-bottom: 5.13vw; /* 20px */
  border-bottom: 1px solid #d2d2d2;
}
@media screen and (min-width: 768px) {
  .recruit_entry_item {
    margin-bottom: 50px;
    padding-bottom: 20px;
  }
}

.recruit_entry_item:first-child {
  padding-top: 5.13vw; /* 20px */
  border-top: 1px solid #d2d2d2;
}
@media screen and (min-width: 768px) {
  .recruit_entry_item:first-child {
    padding-top: 20px;
  }
}

.recruit_entry_num {
  background: var(--color-primary);
  border-radius: 2.05vw; /* 8px */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 7.69vw; /* clamp(30px, 4.33vw, 45px) → 30px base */
  font-family: "Barlow", sans-serif;
  line-height: 1;
  width: 16.67vw; /* clamp(65px, 12.5vw, 130px) → 65px base */
  height: 16.67vw;
}
@media screen and (min-width: 768px) {
  .recruit_entry_num {
    border-radius: 8px;
    font-size: 45px;
    width: 130px;
    height: 130px;
  }
}

.recruit_entry_num span {
  padding-left: 5%;
  display: inline;
  font-size: 2.56vw; /* clamp(10px, 1.54vw, 16px) → 10px base */
  font-weight: bold;
  letter-spacing: 0.15em;
}
@media screen and (min-width: 768px) {
  .recruit_entry_num span {
    font-size: 16px;
  }
}

.recruit_entry_text {
  padding-left: 1.54vw; /* clamp(6px, 2.88vw, 30px) → 6px base */
  padding-right: 0; /* clamp(0px, 4.8vw, 50px) → 0px base */
  width: 56.41vw; /* clamp(220px, 62.5vw, 650px) → 220px base */
}
@media screen and (min-width: 768px) {
  .recruit_entry_text {
    padding-left: 30px;
    padding-right: 50px;
    width: 650px;
  }
}

@media screen and (min-width: 1080px) {
  .recruit_entry_text {
    display: flex;
    align-items: center;
    gap: 40px;
  }
}

.recruit_entry_title {
  width: 30.77vw; /* 120px */
  font-size: 4.62vw; /* clamp(18px, 2.12vw, 22px) → 18px base */
  font-weight: bold;
  color: var(--color-primary);
}
@media screen and (min-width: 768px) {
  .recruit_entry_title {
    width: 120px;
    font-size: 22px;
  }
}

.recruit_entry_desc {
  font-size: 3.08vw; /* clamp(12px, 1.35vw, 14px) → 12px base */
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .recruit_entry_desc {
    font-size: 14px;
  }
}

.recruit_entry_img-wrapper {
  width: 16.67vw; /* clamp(65px, 12.5vw, 130px) → 65px base */
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .recruit_entry_img-wrapper {
    width: 130px;
  }
}

.recruit_entry_img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.recruit_entry_item:nth-of-type(2) .recruit_entry_img {
  width: 70%;
  height: 70%;
}

.recruit_entry_item:nth-of-type(3) .recruit_entry_img,
.recruit_entry_item:nth-of-type(4) .recruit_entry_img {
  width: 80%;
  height: 80%;
}

.recruit-entry_btn_wrap {
  background: var(--color-white);
}

/* ---------- sdgs ---------- */
.sdgs_beginning_container {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: clamp(20.51vw, 20.51vw, 80px); /* 80px → 20.51vw */
}
@media screen and (min-width: 768px) {
  .sdgs_beginning_container {
    padding: 0;
    gap: clamp(28px, 2.78vw, 40px);
  }
}
@media screen and (min-width: 1440px) {
  .sdgs_beginning_container {
    padding: 0 120px;
  }
  
}

.sdgs_intro {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: clamp(7.69vw, 7.69vw, 30px); /* 30px → 7.69vw */
}
@media screen and (min-width: 768px) {
  .sdgs_intro {
    gap: clamp(21px, 2.08vw, 30px);
  }
}

.sdgs_intro-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: clamp(2.56vw, 2.56vw, 10px); /* 10px → 2.56vw */
}
@media screen and (min-width: 768px) {
  .sdgs_intro-logo {
    flex-direction: row;
    gap: clamp(28px, 2.78vw, 40px);
  }
}

.sdgs_intro-logo_img__logo {
  width: clamp(74.36vw, 74.36vw, 290px); /* 290px → 74.36vw */
}
@media screen and (min-width: 768px) {
  .sdgs_intro-logo_img__logo {
    width: clamp(251px, 25.14vw, 362px);
  }
}

.sdgs_intro-logo_img__x {
  width: clamp(12.82vw, 12.82vw, 50px); /* 50px → 12.82vw */
}
@media screen and (min-width: 768px) {
  .sdgs_intro-logo_img__x {
    width: clamp(52px, 5.21vw, 75px);
  }
}

.sdgs_intro-logo_img__sdgs {
  width: clamp(56.92vw, 56.92vw, 222px); /* 222px → 56.92vw */
}
@media screen and (min-width: 768px) {
  .sdgs_intro-logo_img__sdgs {
    width: clamp(239px, 23.89vw, 344px);
  }
}

.sdgs_intro-lead {
  font-size: clamp(4.1vw, 4.1vw, 16px); /* 16px → 4.1vw */
  font-weight: 700;
  text-align: center;
  color: #111;
}
@media screen and (min-width: 768px) {
  .sdgs_intro-lead {
    font-size: clamp(11.1px, 1.11vw, 16px);
  }
}

.sdgs_message {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) {
  .sdgs_message {
    flex-direction: row;
    gap: clamp(49px, 4.86vw, 70px);
  }
}

.sdgs_message-img_wrap {
  width: clamp(53.85vw, 53.85vw, 210px); /* 210px → 53.85vw */
  height: auto;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .sdgs_message-img_wrap {
    width: clamp(308px, 30.83vw, 444px);
    margin: 0;
  }
}

.sdgs_message-img {
  width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}

.sdgs_message-box {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  gap: clamp(7.69vw, 7.69vw, 30px); /* 30px → 7.69vw */
}
@media screen and (min-width: 768px) {
  .sdgs_message-box {
    width: calc(100% - 444px);
    gap: clamp(28px, 2.78vw, 40px);
  }
}

.sdgs_message-heading {
  font-size: clamp(6.67vw, 6.67vw, 26px); /* 26px → 6.67vw */
  font-family: var(--font-serif);
  font-weight: 600;
  color: var(--color-primary);
  text-align: left;
}
@media screen and (min-width: 768px) {
  .sdgs_message-heading {
    font-size: clamp(26px, 2.78vw, 40px);
  }
}

.sdgs_message-text {
  font-size: clamp(3.85vw, 3.85vw, 15px); /* 15px → 3.85vw */
  color: var(--color-primary);
  text-align: left;
}
@media screen and (min-width: 768px) {
  .sdgs_message-text {
    font-size: clamp(15px, 1.25vw, 18px);
  }
}

.sdgs_about {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
  padding: clamp(15.38vw, 15.38vw, 60px) clamp(4.1vw, 4.1vw, 16px); /* 60px 16px → vw */
  background: var(--color-bg02);
  border-radius: 20px;
}
@media screen and (min-width: 768px) {
  .sdgs_about {
    padding: clamp(42px, 4.17vw, 60px);
    gap: clamp(35px, 3.47vw, 50px);
  }
}

.sdgs_about_heading {
  font-size: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
  font-family: var(--font-serif);
  font-weight: 600;
  line-height: 1.7;
}
@media screen and (min-width: 768px) {
  .sdgs_about_heading {
    font-size: clamp(20px, 1.94vw, 28px);
  }
}

.sdgs_about-text_wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column-reverse;
  gap: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) {
  .sdgs_about-text_wrap {
    flex-direction: row;
    gap: clamp(35px, 3.47vw, 50px);
  }
}

.sdgs_about-text {
  font-size: clamp(3.59vw, 3.59vw, 14px); /* 14px → 3.59vw */
}
@media screen and (min-width: 768px) {
  .sdgs_about-text {
    font-size: clamp(14px, 1.11vw, 16px);
    width: 55%;
  }
}

.sdgs_about-img_wrap {
  width: 100%;
  height: auto;
  padding: clamp(4.97vw, 4.97vw, 19.4px); /* 19.4px → 4.97vw */
  background: var(--color-white);
}
@media screen and (min-width: 768px) {
  .sdgs_about-img_wrap {
    width: 45%;
    max-width: 437px;
    padding: clamp(18px, 1.81vw, 26px);
  }
}

.sdgs_about-img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
@media screen and (min-width: 768px) {
  .sdgs_about-img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}

.sdgs_activities_container {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: clamp(10.26vw, 10.26vw, 40px); /* 40px → 10.26vw */
}
@media screen and (min-width: 768px) {
  .sdgs_activities_container {
    padding: 0;
    gap: clamp(42px, 4.17vw, 60px);
  }
}
@media screen and (min-width: 1440px) {
  .sdgs_activities_container {
    padding: 0 120px;
  }
}

.sdgs_commit {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: clamp(7.69vw, 7.69vw, 30px); /* 30px → 7.69vw */
}
@media screen and (min-width: 768px) {
  .sdgs_commit {
    gap: clamp(28px, 2.78vw, 40px);
  }
}

.sdgs_heading {
  font-size: clamp(6.15vw, 6.15vw, 24px); /* 24px → 6.15vw */
  font-family: var(--font-serif);
  font-weight: 600;
  line-height: 1.6;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .sdgs_heading {
    font-size: clamp(20px, 1.94vw, 28px);
    line-height: 2;
  }
}

.sdgs_commit-text {
  font-size: clamp(3.85vw, 3.85vw, 15px); /* 15px → 3.85vw */
  text-align: left;
}
@media screen and (min-width: 768px) {
  .sdgs_commit-text {
    font-size: clamp(15px, 1.11vw, 16px);
    text-align: center;
  }
}

.sdgs_actions_list {
  width: 100%;
}

.sdgs_box_list {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: clamp(7.69vw, 7.69vw, 30px); /* 30px → 7.69vw */
}
@media screen and (min-width: 768px) {
  .sdgs_box_list {
    gap: clamp(28px, 2.78vw, 40px);
  }
}

.sdgs_box_item {
  width: 100%;
  padding: clamp(10.26vw, 10.26vw, 40px) clamp(4.1vw, 4.1vw, 16px); /* 40px 16px → vw */
  border-radius: 20px;
  background: var(--color-bg02);
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-direction: column;
  gap: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) {
  .sdgs_box_item {
    padding: clamp(42px, 4.17vw, 50px);
    gap: clamp(28px, 2.78vw, 40px);
  }
}

.sdgs_action-num_wrap {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) {
  .sdgs_action-num_wrap {
    gap: clamp(14px, 1.39vw, 20px);
  }
}

.sdgs_action-num-text {
  font-size: clamp(7.69vw, 7.69vw, 30px); /* 30px → 7.69vw */
  font-family: "barlow", sans-serif;
  font-weight: 200;
  color: #999;
}
@media screen and (min-width: 768px) {
  .sdgs_action-num-text {
    font-size: clamp(21px, 2.08vw, 30px);
  }
}

.sdgs_action-num {
  font-size: clamp(10.26vw, 10.26vw, 40px); /* 40px → 10.26vw */
  font-weight: 300;
  margin-left: clamp(1.54vw, 1.54vw, 6px); /* 6px → 1.54vw */
}
@media screen and (min-width: 768px) {
  .sdgs_action-num {
    font-size: clamp(28px, 2.78vw, 40px);
    margin-left: clamp(4.2px, 0.42vw, 6px);
  }
}

.sdgs_action-line {
  width: 100%;
  height: 1px;
  background: #999;
}
@media screen and (min-width: 768px) {
  .sdgs_action-line {
    width: 100%;
    height: 1px;
    background: #999;
  }
}

.sdgs_action-box {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-direction: column;
  gap: clamp(7.69vw, 7.69vw, 30px); /* 30px → 7.69vw */
}
@media screen and (min-width: 768px) {
  .sdgs_action-box {
    flex-direction: row;
    align-items: flex-start;
    gap: clamp(49px, 4.86vw, 70px);
  }
  .sdgs_action-box__reverse {
    flex-direction: row-reverse;
  }
}

.sdgs_action-img_wrap {
  width: 100%;
  height: auto;
  border-radius: clamp(2.56vw, 2.56vw, 10px); /* 10px → 2.56vw */
}
@media screen and (min-width: 768px) {
  .sdgs_action-img_wrap {
    width: 45%;
    flex-shrink: 0;
  }
}

.sdgs_action-img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .sdgs_action-img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }
}

.sdgs_action-text_wrap {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  gap: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) {
  .sdgs_action-text_wrap {
    width: 55%;
    max-width: 420px;
    gap: clamp(21px, 2.08vw, 30px);
  }
}

.sdgs_action-title {
  font-size: clamp(5.13vw, 5.13vw, 20px); /* 20px → 5.13vw */
  font-family: var(--font-serif);
  font-weight: 600;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .sdgs_action-title {
    font-size: clamp(20px, 1.81vw, 26px);
  }
}

.sdgs_action-text {
  font-size: clamp(3.59vw, 3.59vw, 14px); /* 14px → 3.59vw */
  text-align: left;
}
@media screen and (min-width: 768px) {
  .sdgs_action-text {
    font-size: clamp(12px, 1.11vw, 16px);
  }
}

.sdgs_icon-list_wrap {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: clamp(1.03vw, 1.03vw, 4px); /* 4px → 1.03vw */
}

.sdgs_icon {
  width: clamp(25.64vw, 25.64vw, 100px); /* 100px → 25.64vw */
  height: clamp(25.64vw, 25.64vw, 100px); /* 100px → 25.64vw */
}
@media screen and (min-width: 768px) {
  .sdgs_icon {
    width: clamp(100px, 8.33vw, 120px);
    height: clamp(100px, 8.33vw, 120px);
  }
}

/* ---------- news ---------- */
.news_main {
  min-height: 80vh;
}

.news_contents {
  padding-top: 0;
}

.news_container {
  background: rgba(255, 255, 255, 0.8);
}
@media screen and (min-width: 768px) {
  .news_container {
    background: transparent;
  }
}

.news_list {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  padding-top: 10.26vw; /* 40px → 10.26vw */
  padding-bottom: 20.51vw; /* 80px → 20.51vw */
  background: rgba(255, 255, 255, 0.8);
}
@media screen and (min-width: 768px) {
  .news_list {
    padding: 80px;
    margin: 0 auto;
    align-items: center;
  }
}

.news_box {
  width: 100%;
  border-bottom: 1px solid #b7b7b7;
  padding: 7.69vw 12.31vw 7.69vw 0; /* 30px 48px 30px 0 → 7.69vw 12.31vw 7.69vw 0 */
  position: relative;
}
@media screen and (min-width: 768px) {
  .news_box {
    padding: 40px 110px 40px 40px;
  }
}

.news_box:first-child {
  border-top: 1px solid #b7b7b7;
}

.news_item {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: 2.05vw; /* 8px → 2.05vw */
}
@media screen and (min-width: 768px) {
  .news_item {
    gap: 10px;
  }
}

.news_date {
  font-size: 3.59vw; /* 14px → 3.59vw */
  color: #747474;
}
@media screen and (min-width: 768px) {
  .news_date {
    font-size: 16px;
  }
}

.news_item p {
  font-size: 3.59vw; /* 14px → 3.59vw */
}
@media screen and (min-width: 768px) {
  .news_item p {
    font-size: 16px;
  }
}

.news_box::after {
  content: "";
  position: absolute;
  right: 0;
  top: 14.62vw; /* 57px / 390px * 100 = 14.62vw */
  transform: rotate(0deg);
  width: 7.69vw; /* 30px → 7.69vw */
  height: 7.69vw; /* 30px → 7.69vw */
  transition: all 0.2s;
  background: url("/assets/img/news_plus_icon.png") no-repeat center/ contain;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .news_box::after {
    right: 40px;
    top: 57px;
    width: 40px;
    height: 40px;
  }
}

.news_box.active::after {
  transform: rotate(45deg);
  transition: all 0.4s;
}

.news_box dd {
  box-sizing: border-box;
  display: none;
  position: relative;
  z-index: 2;
}

.news_box.active dd {
  display: block;
}

.news_box dd p {
  font-size: 3.59vw; /* 14px → 3.59vw */
  margin-top: 12.92vw; /* 50.4px → 12.92vw */
}
@media screen and (min-width: 768px) {
  .news_box dd p {
    font-size: 16px;
    margin-top: 50.4px;
  }
}

.news_box.is-hidden {
  display: none;
}

/* 1行未満でトグル無効化（＋アイコン非表示想定） */
.news_box.no-toggle {
  cursor: default;
}
.news_box.no-toggle::after {
  display: none;
}

/* 1行未満（no-toggle）のときは内容を常に表示 */
.news_box.no-toggle dd {
  display: block !important;
}

/* SP: px→vw変換 */
.news_more {
  margin: 7.69vw auto 0; /* 30px → 7.69vw */
  width: fit-content;
  height: 6.15vw; /* 24px → 6.15vw */
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .news_more {
    margin: 40px auto 0;
    height: 40px;
  }
}

.news_more::after {
  content: "";
  width: 6.15vw; /* 24px → 6.15vw */
  height: 6.15vw; /* 24px → 6.15vw */
  flex-shrink: 0;
  margin-left: 2.56vw; /* 10px → 2.56vw */
  background: url("/assets/img/check_icon.png") no-repeat center/ contain;
  display: inline-block;
}
@media screen and (min-width: 768px) {
  .news_more::after {
    width: 24px;
    height: 24px;
    margin-left: 10px;
  }
}

.news_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  padding: 1.54vw 5.13vw; /* 6px 20px → vw */
  width: fit-content;
  height: auto;
}
@media screen and (min-width: 768px) {
  .news_btn {
    font-size: 16px;
  }
}

/* ---------- policy ---------- */
.policy_contents {
  padding-top: 0;
}

.policy_container {
  background: rgba(255, 255, 255, 0.8);
}
@media screen and (min-width: 768px) {
  .policy_container {
    background: transparent;
  }
}

.policy_list {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 7.69vw; /* 30px → 7.69vw */
  flex-direction: column;
  padding-top: 10.26vw; /* 40px → 10.26vw */
  padding-bottom: 20.51vw; /* 80px → 20.51vw */
  background: rgba(255, 255, 255, 0.8);
}
@media screen and (min-width: 768px) {
  .policy_list {
    padding: 80px;
    margin: 0 auto;
    border-radius: 20px;
    gap: 40px;
  }
}

.policy_box1 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5.13vw; /* 20px → 5.13vw */
  width: 100%;
}

.policy_box2 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3.08vw; /* 12px → 3.08vw */
}
@media screen and (min-width: 768px) {
  .policy_box2 {
    gap: 10px;
  }
}

.policy_box1 .policy_title {
  width: 100%;
  padding-bottom: 1.54vw; /* 6px → 1.54vw */
  border-bottom: 1px solid #cfcfcf;
  color: #111;
  font-size: 4.62vw; /* 18px → 4.62vw */
  font-weight: 700;
  position: relative;
}
@media screen and (min-width: 768px) {
  .policy_box1 .policy_title {
    font-size: 20px;
  }
}

.policy_box1 .policy_title::after {
  content: "";
  width: 12.31vw; /* 48px → 12.31vw */
  height: 3px;
  background: var(--color-primary);
  display: block;
  position: absolute;
  bottom: -2px;
  left: 0;
}
@media screen and (min-width: 768px) {
  .policy_box1 .policy_title::after {
    width: 60px;
  }
}

.policy_box2 .policy_title {
  color: var(--color-primary);
  font-size: 4.36vw; /* 17px → 4.36vw */
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .policy_box2 .policy_title {
    font-size: 18px;
  }
}

.policy_text {
  color: #111;
  font-size: 3.59vw; /* 14px → 3.59vw */
}
@media screen and (min-width: 768px) {
  .policy_text {
    font-size: 15px;
  }
}

.policy_contact {
  margin: 7.69vw auto; /* 30px → 7.69vw */
}

.policy_contact tr,
.policy_contact th {
  width: 100%;
  border: 1px solid #c3c4c7;
  border-collapse: collapse;
}

.policy_contact th {
  width: 26.67vw; /* 104px → 26.67vw */
  text-align: left;
  padding: 3.85vw 4.1vw; /* 15px 16px → 3.85vw 4.10vw */
  background: #eee;
  color: #111;
  font-size: 3.33vw; /* 13px → 3.33vw */
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .policy_contact th {
    width: 200px;
    padding: 15px 20px;
    font-size: 15px;
  }
}

.policy_contact td {
  padding: 3.85vw 4.1vw; /* 15px 16px → 3.85vw 4.10vw */
  color: #111;
  font-size: 3.33vw; /* 13px → 3.33vw */
}
@media screen and (min-width: 768px) {
  .policy_contact td {
    font-size: 15px;
    padding: 15px 20px;
  }
}

/* ---------- form ---------- */
.form_container {
  padding: 40px 32px 80px;
  background: transparent;
  width: 100%;
  height: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 40px;
  background: rgba(255, 255, 255, 0.8);
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .form_container {
    padding: 160px 80px;
    width: 90%;
    border-radius: 20px;
  }
}
@media screen and (min-width: 1440px) {
  .form_container {
    padding: 160px 80px;
    width: 100%;
    border-radius: 20px;
  }
}

.progressbar {
  position: relative;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 270px;
}
.progressbar li {
  position: relative;
  list-style-type: none;
  text-align: center;
  text-transform: uppercase;
  width: 33.333%;
  color: #848484;
  font-weight: bold;
  font-size: 14px;
}
.progressbar li:before {
  display: block;
  width: 11px;
  height: 11px;
  margin: 8px auto;
  content: "";
  text-align: center;
  border-radius: 50%;
  background-color: #848484;
}
.progressbar li:after {
  position: absolute;
  z-index: 1;
  top: 13px;
  left: -50%;
  width: 100%;
  height: 1px;
  content: "";
  background-color: #848484;
}
.progressbar li:first-child:after {
  content: none;
}
.progressbar li.active,
.progressbar li.complete {
  color: #327d64;
}
.progressbar li.active:before,
.progressbar li.complete:before {
  background-color: #327d64;
  box-shadow: 0 0 0 8px rgb(50, 125, 100, 0.2);
}
.progressbar li.active:after,
.progressbar li.complete:after {
  background-color: #327d64;
}

.form_instructions {
  padding: 0 16px;
}

.form_instructions-text {
  font-size: 15px;
  text-align: left;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .form_instructions-text {
    text-align: center;
  }
}

.Form {
  width: 100%;
}

.Form-Item {
  border-bottom: 1px solid #b7b7b7;
  padding-top: 40px;
  padding-bottom: 40px;
  width: 100%;
  max-width: 840px;
  display: flex;
  align-items: flex-start;
  justify-self: start;
  flex-direction: column;
}

.Form-Item:nth-child(9) {
  border-bottom: transparent;
}

.Form-Item-Label {
  width: 100%;
  max-width: 248px;
  letter-spacing: 3%;
  font-weight: bold;
  font-size: 16px;
  color: #000;
}

.Form-Item-Label.isMsg {
  margin-top: 8px;
  margin-bottom: auto;
}

.Form-Item-Label-Required {
  margin-right: 8px;
  padding: 4px 6px;
  width: 40px;
  display: inline-block;
  text-align: center;
  color: #b61024;
  font-size: 13px;
  border: 1px solid #b61024;
  white-space: nowrap;
}
.Form-Item-Label-any {
  margin-right: 8px;
  padding: 4px 6px;
  width: 40px;
  display: inline-block;
  text-align: center;
  color: #575757;
  font-size: 13px;
  border: 1px solid #575757;
  white-space: nowrap;
}

.Form-Item-Input {
  padding-left: 16px;
  padding-right: 16px;
  height: 64px;
  width: 100%;
  min-width: 280px;
  background: #eaedf2;
  font-size: 16x;
  margin-top: 16px;
}

.Form-Item-Input--birthday {
  width: 280px;
}

.Form-Item-Textarea {
  padding: 16px;
  height: 256px;
  width: 100%;
  background: #eaedf2;
  font-size: 16px;
  margin-top: 16px;
}

.form_section .m_btn_wrap {
  width: 221px;
  margin-top: 40px;
}

.selectbox {
  position: relative;
  margin-top: 16px;
}

.selectbox::before,
.selectbox::after {
  position: absolute;
  content: "";
  pointer-events: none;
}

.selectbox::before {
  right: 0;
  display: inline-block;
  width: 2.8em;
  height: 2.8em;
  content: "";
}

.selectbox::after {
  position: absolute;
  top: 50%;
  right: 30px;
  transform: translate(50%, -50%) rotate(45deg);
  width: 6px;
  height: 6px;
  border-bottom: 2px solid #327d64;
  border-right: 2px solid #327d64;
  content: "";
}

.selectbox select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 280px;
  height: 64px;
  padding: 0 16px;
  border: 1px solid #b7b7b7;
  border-radius: 2px;
  background: #fff;
  color: #000000;
  font-size: 16px;
  cursor: pointer;
}

.filelabel {
  background-color: #f2f4f6; /* 背景色 */
  color: #003d99; /* 文字色 */
  border-radius: 32px; /* 角丸 */
  padding: 17.5px 16px; /* 内側の余白 */
  display: inline-block; /* インラインブロック化 */
  width: 246px;
  height: 64px;
  text-align: center;
  margin-top: 16px;
  font-weight: 700;
  font-family: var(--font-sans);
}
.filelabel img {
  vertical-align: bottom; /* 画像の垂直方向の配置 */
  width: 14px;
  height: 14px;
  margin-right: 8px;
  margin-bottom: 8px;
}
.filelabel:hover {
  opacity: 0.5; /* 半透明 */
  border: 1px solid #327d64;
  cursor: pointer; /* マウス形状(ポインタ) */
}
#filesend {
  display: none; /* 本来のファイル選択フォームは非表示に */
}

.Form-Item-Label-Note {
  font-size: 13px;
  line-height: 1.6;
  margin-top: 16px;
  width: 100%;
}

.Form-Item-row {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .Form-Item-row {
    flex-direction: row;
    align-items: center;
    gap: 16px;
  }
}

.Form-Item-Address-LabelWrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 17.5px;
}

.Form-Item-Address-Label {
  margin-top: 16px;
}

.Form-Item-Checkbox {
  margin-top: 40px;
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  font-size: 16px;
  font-weight: bold;
  cursor: pointer;
  position: relative;
}

/* 元のチェックボックスを非表示 */
.Form-Item-Checkbox input[type="checkbox"] {
  opacity: 0;
  position: absolute;
  width: 0;
  height: 0;
}

/* カスタムチェックボックス */
.Form-Item-Checkbox-checkmark {
  width: 20px;
  height: 20px;
  border: 2px solid #999;
  border-radius: 3px;
  background-color: #fff;
  position: relative;
  margin-right: 10px;
  margin-top: 2px;
  flex-shrink: 0;
  transition: all 0.3s ease;
}

/* チェック済み状態 */
.Form-Item-Checkbox
  input[type="checkbox"]:checked
  + .Form-Item-Checkbox-checkmark {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
}

/* チェックマーク */
.Form-Item-Checkbox
  input[type="checkbox"]:checked
  + .Form-Item-Checkbox-checkmark::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 8px;
  height: 16px;
  border: solid white;
  border-width: 0 2px 2px 0;
  border-radius: 1px;
}

/* テキスト部分 */
.Form-Item-Checkbox-text {
  line-height: 1.5;
  text-align: left;
}

.Form-Item-Checkbox a {
  color: #003d99;
  border-bottom: 1px solid #003d99;
  text-decoration: none;
}

.Form-Item-Checkbox a:hover {
  color: #0056b3;
  border-bottom-color: #327d64;
}

/* ---------- js ---------- */

.js_navigation {
  display: none;
}
.js_navigation.is-active {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.5s;
}

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

.js_hamburger.is-active .m_hamburger-bar:first-child {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  background: var(--color-white);
  width: 7.69vw; /* 30px */
}

.js_hamburger.is-active .m_hamburger-bar:nth-child(2) {
  opacity: 0;
}

.js_hamburger.is-active .m_hamburger-bar:last-child {
  width: 7.69vw; /* 30px */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
  background: var(--color-white);
}

/* アクティブ時のテキスト変更 */
.js_hamburger.is-active .m_hamburger-text {
  color: transparent;
}

.js_hamburger.is-active .m_hamburger-text::before {
  content: "Close";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  color: var(--color-white);
}

/* ---------- modal ---------- */
.swiperModalButton {
  display: flex;
  flex-wrap: wrap;
}

/* モーダル */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  padding: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s;
  pointer-events: none;
  opacity: 0;
  z-index: 100;
  background-color: rgba(255, 255, 255, 0.9);
}

/* モーダルがactiveの時 */
.modal.is-active {
  opacity: 1;
  pointer-events: auto;
}

/* モーダル背景のオーバーレイ部分 */
.modal__overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  cursor: pointer;
}

/* モーダルのコンテンツ */
.modal__content {
  position: relative;
  width: 100%;
  max-width: 800px;
  padding: 5.13vw; /* 20px → 5.13vw */
}
@media screen and (min-width: 768px) {
  .modal__content {
    max-width: 1400px;
    padding: 20px;
  }
}
.modal_inner {
  filter: drop-shadow(0px 0px 4px #ddd);
  background: #fff;
  width: 90%;
  margin: 0 auto;
  border-radius: 2px;
  padding: 5.13vw 6.41vw; /* 20px 25px → 5.13vw 6.41vw */
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .modal_inner {
    width: 95%;
    max-width: 1200px;
    padding: 40px 60px;
    min-height: 500px;
  }
}

/* 閉じるボタン */
.modal__close-btn {
  position: absolute;
  right: 0;
  top: -40px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  z-index: 20;
}
.modal__close-btn:hover {
  opacity: 0.8;
}

/* 閉じるボタンのX */
.lineClose {
  display: inline-block;
  vertical-align: middle;
  color: #535353;
  line-height: 1;
  width: 2rem;
  height: 0.1rem;
  background: currentColor;
  border-radius: 0.1rem;
  position: relative;
  transform: rotate(45deg);
}
.lineClose::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: inherit;
  border-radius: inherit;
  transform: rotate(90deg);
}
p.swiperText {
  margin: 0;
  text-align: center;
}
