/* リセット */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}


/* * {
  outline: 1px solid red;
} */

body {
  /* font-family: 'Yu Mincho', 'Noto Serif JP', serif; */
  /* font-family: 'YakuHanMP_Noto', "Lora", "BIZ UDMincho", serif; */
  font-family: "shippori-mincho", sans-serif;
  background-color: #ffffff;
  color: #555;
  line-height: 1.8;
  overflow-x: hidden;
}

html {
  scroll-behavior: smooth;
}

.parallax_item {
  will-change: transform; /* パフォーマンス向上 */
  /* transition は必須じゃない。自然にしたいならON */
  transition: transform 0.05s linear;
}

.parallax_item_wrap{
background-color: #b9f3ff;
height: 600px;
width: fit-content;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
}
  .parallax_item_wrap .img_box{
  height: 369px;
  width: 590px;
  position: relative;
  z-index: 1;
  }
    .parallax_item_wrap .img_box img{
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: 50% 50%;
    }
  .parallax_item_wrap span.top{
  position: absolute;
  width: 100%;
  background-color: #ffb0b0;
  z-index: 2;
  height: 500px;
  top: -239px;
  background-color: #fff;
  }
  .parallax_item_wrap span.bottom{
  position: absolute;
  width: 100%;
  height: 500px;
  background-color: #ffb0b0;
  z-index: 2;
  height: 500px;
  bottom: -486px;
  background-color: #fff;
  }



a{
  color: inherit;
  text-decoration: none;
}

/* ピンクのライン */
.line-draw {
  width: 100%;
  height: 100px;
  position: fixed;
  top: 40%;
  left: 0;
  z-index: 998;
  transition: opacity 1s ease;
}

.line-draw path {
  stroke: #e8a7ba;
  stroke-width: 3;
  fill: none;
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  animation: drawLine 2s ease forwards;
}

@keyframes drawLine {
  to {
    stroke-dashoffset: 0;
  }
}

.line-draw.fade-out {
  opacity: 0;
}

/* お問い合わせボタン */
.contact-button {
  position: fixed;
  top: 1px;
  right: 5px;
  background: #e8a7ba;
  color: white;
  padding: 10px 20px;
  font-size: 0.95rem;
  border-radius: 4px;
  text-decoration: none;
  z-index: 1000;
  transition: opacity 0.6s ease;
  opacity: 0;
}

/* メイン構成 */
.main-visual {
  display: flex;
  position: relative;
  transition: transform 1s ease;

  height: 100vh;
  width: 100vw;
  overflow: hidden;
}

.white-space {
  width: 10%;
  background-color: #ffffff;
}

.photo-area {
  position: relative;
  width: 0%;
  height: 100vh;
  overflow: visible;
  transition: width 1.2s ease;
}

.photo-area.expand {
  width: 52%;
}
/* .photo-area.expand img{
  width: %;
} */

.main-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1s ease;
}

.main-photo.visible {
  opacity: 1;
}

.logo-box {
  position: absolute;
  bottom: -2%;
  left: -50px;
  width: 400px;
  height: auto;
  transition: opacity 0.6s ease;
  opacity: 0;
}

.text-area {
  width: 44%;
  background-color: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding-left: 5%;
  padding-right: 5%;
  transition: transform 1.2s ease;
}

/* .text-area.shift {
  transform: translateX(30px);
} */

.copy-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.6s ease;
}

.copy-wrapper.visible {
  opacity: 1;
  animation: fadeInCopy 0.8s ease forwards;
}

@keyframes fadeInCopy {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.catch-copy {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: 81px;
  line-height: 1.3;
  letter-spacing: 16px;
  font-weight: normal;
  color: #555;
  /* text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); */
  margin-bottom: 40px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.catch-copy p {
  opacity: 0;
  transform: translateY(30px);
  animation: slideUpFade 0.8s forwards;
}

.catch-copy p:nth-child(1) { animation-delay: 0.6s; }
.catch-copy p:nth-child(2) { animation-delay: 0.9s; }
.catch-copy p:nth-child(3) { animation-delay: 1.2s; }

@keyframes slideUpFade {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ナビゲーション（追従） */
.nav-menu {
  position: fixed;
  right: 60px;
  bottom: 20px;
  opacity: 0;
  transition: opacity 0.6s ease;
  z-index: 500;
  background: rgba(255, 255, 255, 0.9);
  padding: 12px 16px;
  border-radius: 8px;
  box-shadow: 0 0 12px rgba(0,0,0,0.05);
  max-width: 90vw;
  overflow-x: auto;
}

.nav-menu.visible {
  opacity: 1;
}

.nav-menu ul {
  display: flex;
  flex-direction: row; /* 横並びに変更 */
  gap: 16px;
  list-style: none;
  font-size: 13px;
  margin: 0;
  padding: 0;
  align-items: center;
  justify-content: flex-end;
}

.nav-menu a {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.nav-menu .arrow {
  color: #e8a7ba;
}

.nav-menu .label {
  color: #555;
}

.nav-menu a:hover .label {
  opacity: 0.7;
}

.top_white_bg{
  background-color: #fff;
  height: 300px;
}

/* セクション共通 */
.section {
  min-height: 100vh;
  padding: 80px 30px;
  background-color: #ffffff; /* 白をデフォルト背景に統一 */
}

/* 色付きセクションのみ個別指定 */
.concept-section {
  background-color: #f8f6f2;
  padding-top: 0;
}

.rehabilitation {
  background-color: #fffaf2;
}

/* フェード用 */
.hidden {
  opacity: 0;
  transition: opacity 0.6s ease;
}

.visible {
  opacity: 1;
  transition: opacity 0.6s ease;
}

body, .main-visual, .text-area {
  overflow: visible;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* メインビジュアルアニメーション中、横スクロールが発生するのを防止 */
.main-visual {
  height: 100vh;
  width: 100vw;
  overflow: hidden;
}

/* -----------------------------
  【リハビリセクション全体】
  セクション全体の横並びレイアウト
----------------------------- */
.concept-container {
  display: flex; /* 左右に並べる */
  justify-content: center;
  align-items: flex-start;
  gap: 60px; /* 左右の間隔 */
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 20px; /* 上下左右の余白 */
  position: relative; /* 子要素のposition調整用に必要 */
}

/* -----------------------------
  【左カラム：写真エリア】
  上下2枚の写真を縦に並べる
----------------------------- */
.concept-images {
  flex: 1; /* 横幅比率（右よりやや小さく） */
  display: flex;
  flex-direction: column;
  gap: 24px; /* 写真間の縦間隔 */
  align-items: flex-start; /* 左揃え */
  margin-top: -40px; /* セクション全体より少し上へ */
}

/* ▶ 上の写真（大きめ・完全左寄せ） */
.concept-images img:first-child {
  width: 500px; /* 写真の横幅 */
  height: auto;
  /* border-radius: 10px; */
  object-fit: cover;
  /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); */
  margin-left: -320px; /* 画面左端に合わせるためマイナス指定 */
  margin-top: 150px; /* 写真の縦位置（必要に応じて微調整） */
}

/* ▶ 下の写真（小さめ） */
.concept-images img:last-child {
  width: 350px;
  height: auto;
  /* border-radius: 10px; */
  object-fit: cover;
  /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); */
  margin-left: -120px; /* 少しだけ中央寄り */
  margin-top: 150px; /* 上との間隔（大きすぎると間延び） */
}

/* -----------------------------
  【右カラム：テキストエリア】
----------------------------- */
.concept-text {
  flex: 1.6; /* 写真より広めの横幅 */
  position: relative;
  color: #333;
  padding-top: 40px;
}

/* ▶ キャッチコピー（「着るから〜」） */
.concept-text h2 {
  /* font-family: 'Yu Mincho', 'Noto Serif JP', serif; */
  font-family: "shippori-mincho", sans-serif;
  font-size: 65px;
  font-weight: normal;
  line-height: 1.5;
  letter-spacing: 0.01em;
  max-width: 480px;
    margin-top: 33px;
    margin-bottom: 37px;
  color: #555;
  position: relative;
  z-index: 2;
  word-break: keep-all; /* ← これがポイント！ */
}



/* ▶ 本文（リハビリの背景説明） */
.concept-text p {
  font-size: 17px;
  line-height: 2.1;
  color: #333;
  margin-bottom: 1.5em;
  position: relative;
  z-index: 2; /* 顔写真より前に出す */
}

/* -----------------------------
  【右上に配置される顔写真】
  少しかぶるようにして演出
----------------------------- */
.face-image {
  position: absolute;
  top: -40px;        /* 上に浮かせてキャッチコピーにかぶせる */
  /* right: -360px;      */
  /* 完全に画面右端に寄せる */
  width: 590px;      /* 写真サイズ（元画像に合わせて調整可） */
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  z-index: 1;        /* テキストの背後に回るようにする */
}

/* ▶ 顔写真そのものの設定 */
.face-image img {
  width: 100%;
  height: auto;
  display: block;
}
.corner-image {
  position: absolute;
  bottom: -300px;
  right: 0px;
  width: 400px;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  z-index: 1;
}

.corner-image img {
  width: 100%;
  height: auto;
  display: block;
}


/* ▶ アニメーション：フェード＋スライドアップ */
/* 初期状態 */
.animate-fade-up {
  opacity: 0;
  transform: translateY(40px);
}

/* JSで .visible がついたら発火 */
.animate-fade-up.visible {
  animation: fadeUp 3.2s ease-out forwards;
}

@keyframes fadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* 初期は白背景 */
.concept-section {
  background-color: #fff;
  transition: background-color 1.9s ease-in-out; /* ←ここポイント */
}

/* スクロールで発火したら背景色変更 */
.concept-section.bg-activated {
  background-color: #f6f6f1;
}

/* 初期は白背景 */
.concept-section,
.principle-section {
  background-color: #fff;
  transition: background-color 1.9s ease-in-out;
}

/* スクロールで発火：背景色変更 */
.concept-section.bg-activated,
.principle-section.bg-activated {
  background-color: #f6f6f1;
}





/*               行動指針セクション全体            */
/* 行動指針セクション全体 */
.principle-section {
  padding-top: 120px;
}

.principle-section {
  background-color: #f6f6f1;
  padding: 100px 0px;
  /* font-family: 'Yu Mincho', 'Noto Serif JP', serif; */
  font-family: "shippori-mincho", sans-serif;
  color: #555;
}

.principle-wrapper {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 60px;
}

/* ─────────────────────────────── */
/* ▼ 上段レイアウト（今日存〜の文字と右上写真） */
/* ─────────────────────────────── */
.principle-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  align-items: center;
}

.principle-words {
  font-size: 40px;
  line-height: 2.4;
  color: #555;
  /* text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); */
  display: flex;
  flex-direction: column;
  row-gap: 10px;
}

.principle-words .kanji {
  font-size: 80px;
  letter-spacing: 8px;
  /* font-weight: bold; */
  color: #555;
  margin-right: 10px;
  /* text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); */
  display: inline-block;
  line-height: 150%;
}

/* ▼ 右上の写真（100%表示ベースで調整） */
.principle-photo-right {
  width: 400px;         /* 写真枠の幅 */
  height: 400px;        /* 写真枠の高さ */
  overflow: hidden;
  position: relative;   /* imgの基準位置 */
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.principle-photo-right img {
  width: 100%;          /* 拡大せず画像全体を表示 */
  height: 100%;         /* 縦も枠に合わせてフィット */
  object-fit: cover;    /* 枠に合わせて拡大・切り取り */
  object-position: center center; /* 中央基準に表示 */
  transition: 0.3s ease;
}

/* ─────────────────────────────── */
/* ▼ メッセージ文（中央の3行） */
/* ─────────────────────────────── */
.principle-message {
  text-align: center;
  font-size: 33px;
  line-height: 2.7;
  color: #555;

  margin-top: 350px;
}

/* ─────────────────────────────── */
/* ▼ 下段レイアウト（左写真＋行動指針テキスト） */
/* ─────────────────────────────── */
.principle-bottom {
  display: flex;
  gap: 80px;
  align-items: flex-start;
  flex-wrap: wrap;
}

/* ▼ 左下の写真（100%表示ベースで調整＋角丸表示） */
.principle-photo-left {
  width: 800px;
  height: auto;
  margin-top: -30px;
  margin-left: -300px;
  border-radius: 10px;
  overflow: hidden; /* ← これが角丸の必須条件！ */
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.principle-photo-left img {
  width: 100%;
  height: auto;
  display: block;
}



/* ─────────────────────────────── */
/* ▼ 行動指針テキスト部分 */
/* ─────────────────────────────── */
.principle-policy {
  flex: 1;
}

.principle-policy h2 {
  font-size: 15px;
  font-weight: normal;
  color: #e8a7ba;
  margin-bottom: 24px;
  line-height: 1.5;
  letter-spacing: 2px;
}

.principle-policy h2 span {
  font-size: 48px;
  color: #555;
  letter-spacing: 3px;
  display: block;
  margin-top: 2px;
}

.principle-policy ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

.principle-policy li {
  font-size: 17px;
  line-height: 180%;
  margin-bottom: 50px;
}

.principle-policy li strong{
margin-bottom: 15px;
display: block;
font-size: 22px;
font-weight: normal;
}








/* 最外側のセクション全体の背景色 */




.feature-section {
  background-color: #ffffff; /* ← 修正：#f6f6f1 → #ffffff（白） */
  padding: 100px 0;
  /* font-family: 'Yu Mincho', 'Noto Serif JP', serif; */
  font-family: "shippori-mincho", sans-serif;
  color: #333;
}

/* 中央コンテンツ枠だけ白背景にして両端との色分離を実現  */
.feature-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: 40px;
  background-color: transparent; /* ✅中央の白を削除して一体化 */
  padding: 60px 30px;
  border-radius: 0;
  box-shadow: none;
}


/* 縦書きタイトル */
.feature-title {
  writing-mode: vertical-rl;
  font-size: 48px;
  /* font-weight: bold; */
  color: #555;
  line-height: 1.8;
  white-space: nowrap;
  padding-top: 30px; /* 元のスタイルに加えて調整 */
  letter-spacing: 5px;
}

/* コンテンツ本体 */
.feature-content {
  display: flex;
  flex-direction: column;
  gap: 60px;
  flex: 1;
}

.feature-block {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}

.feature-text {
  flex: 1;
  min-width: 300px;
}

.feature-text h3 {
  font-size: 32px;
  font-weight: normal;
  color: #555;
  margin-top: 200px;
  margin-left: 100px; /* ← 右にずらす */
}

.feature-text h4 {
  font-size: 32px;
  font-weight: normal;
  color: #555;
  margin-left: 100px; /* ← 右にずらす */
  margin-top: 50px
}

.feature-text p {
  font-size: 18px;
  line-height: 2;
  margin-left: 100px; /* ← 右にずらす */
   margin-top: 30px;
}

.feature-image {
  flex-shrink: 0;
  width: 400px;
 transform: translateY(170px);
}

.feature-image img {
  width: 100%;
  height: auto;
  border-radius: 5px;
}
/* .feature-block:last-of-type .feature-image img {
  transform: translateX(200px);
} */


/* ▼ 修正追加：メニューからのスクロール時ずれ防止 */
:target::before {
  content: "";
  display: block;
  height: 100px;
  margin-top: -100px;
}




/* ▽ 今後の流れセクション */
.kongononagare-section {
  background-color: #ffffff;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 100px 80px;
  gap: 40px;
  position: relative;
}

/* ▽ 左上の写真ブロック */
.photo-area {
  flex-shrink: 0;
  width: 400px;
  transform: translateY(0);
  position: relative;
}
.kongononagare-section .photo-area img{
width: 100%;
}

/* ▽ 左上写真本体 */
.photo-img {
  width: 150%;
  height: auto;
  border-radius: 5px;
}

/* ▽ 縦書き見出し */
.vertical-text {
  position: absolute;
  top: 250px;
  left: 454px;
  writing-mode: vertical-rl;
  font-size: 50px;
  line-height: 1.2;
  color: #555;
  z-index: 2;
  letter-spacing: 9px;
  height: 300px;
}

/* ▽ テキストエリア */
.text-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 32px;
  align-items: flex-start;
  z-index: 3;
  background-color: unset;
}

/* ▽ 各ステップ全体 */
.step {
  display: flex;
  align-items: flex-start;
  gap: 35px;
}

/* ▽ 各番号共通 */
.step-num {
  font-size: 37px;
  font-weight: bold;
  color: #e8a7ba;
  width: 40px;
  letter-spacing: 4px;
  display: block;
}
.step .text-block{
margin-top: 7px;
}

/* ▽ 番号個別調整 */
.step-num-01, .step-num-02, .step-num-03,
.step-num-04, .step-num-05, .step-num-06 {
  transform: translate(0, 0);
}

/* ▽ 見出し共通 */
.text-h1 {
  font-size: 20px;
  /* font-weight: bold; */
  color: #555;
  margin-bottom: 4px;
}

/* ▽ 本文共通 */
.text-h2 {
  font-size: 14px;
  color: #555;
  line-height: 1.8;
}

/* ▽ テキスト個別調整 */
.text-h1-01, .text-h1-02, .text-h1-03,
.text-h1-04, .text-h1-05, .text-h1-06 {
  transform: translate(0, 0);
  font-size: 30px;
  letter-spacing: 4px;
}
.text-h2-01, .text-h2-02, .text-h2-03,
.text-h2-04, .text-h2-05, .text-h2-06 {
  transform: translate(0, 0);
  font-size: 19px;
  letter-spacing: 2px;
}

/* ▽ 右下の写真 */
.photo-bottom-right {
  position: absolute;
  bottom: -100px;
  right: 40px;
  width: 400px;
  border-radius: 5px;
}

.kongononagare-section .text-area{
padding-left: 7vw;
}

.media-section {
background-color: #ffffff;
padding: 60px 20px;
padding-top: 140px;
}
.media-inner {
max-width: 1200px;
margin: 0 auto;
text-align: center;
}
.media-image {
width: 100%;
max-width: 1100px;
height: auto;
margin-bottom: 50px;
border-radius: 16px;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
position: relative;
z-index: 1;
}
.media-video iframe {
width: 100%;
max-width: 1100px;
height: 620px;
border-radius: 16px;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.sns-section {
background-color: #ffffff;
padding: 100px 30px;
text-align: center;
}
.sns-section .section-title {
font-size: 32px;
margin-bottom: 40px;
color: #333;
}
.sns-wrapper {
display: flex;
justify-content: center;
gap: 60px;
flex-wrap: wrap;
}
.sns-card.visible {
opacity: 1;
transform: translateY(0);
transition: opacity 0.8s ease, transform 0.8s ease;
}
.sns-card .icon img {
width: 64px;
height: 64px;
margin-bottom: 20px;
}
.sns-card {
background: #fff;
border-radius: 16px;
padding: 30px 20px;
width: 220px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
transition: transform 0.4s ease, box-shadow 0.4s ease;
opacity: 0;
transform: translateY(60px);
/* text-decoration: underline #555; */
text-decoration: none;
}
.sns-card .label {
font-size: 20px;
font-weight: bold;
color: #555;
/* text-decoration: underline #555; */

/* 下線を擬似要素で作成 */
text-decoration: none;
display: flex;
flex-direction: column;
width: fit-content;
margin-left: auto;
margin-right: auto;
height: 25px;
justify-content: center;
position: relative;
}
.sns-card .label::after{
position: absolute;
bottom: 0;
content: '';
height: 1px;
width: 100%;
font-size: 20px;
font-weight: bold;
background-color: #555;
/* text-decoration: underline #555; */
text-decoration: none;
}







/* ▽ 事業所概要セクション */
.office-overview-section {
  width: 100%;
  background-image: url("https://i.imgur.com/HbCcl00.jpeg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
  padding: 100px 20px;        /* 上下余白調整 */
  margin-top: 100px;          /* 上セクションと被らない距離 */
  box-sizing: border-box;
}

.office-content {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  align-items: flex-start;
}

.office-info {
  flex: 1;
  min-width: 300px;
}

.office-title {
  font-size: 40px;
  font-weight: bold;
  margin-bottom: 30px;
  letter-spacing: 10px;
}

.office-table {
  font-size: 18px;
  margin-bottom: 40px;
  border-spacing: 10px;
  letter-spacing: 1px;
}

.office-table td:first-child {
  width: 130px;
}

.access h3 {
  font-size: 30px;
  margin-bottom: 10px;
}

.access p {
  line-height: 1.8;
  font-size: 18px;
  margin-bottom: 25px;
  letter-spacing: 3px;
}

.map-button {
  display: inline-block;
  padding: 12px 24px;
  border: 2px solid #fff;
  border-radius: 4px;
  color: #fff;
  text-decoration: none;
  font-size: 18px;
  transition: background-color 0.3s, color 0.3s;
}

.map-button:hover {
  background-color: #fff;
  color: #0074a2;
}

.office-map {
  flex: 1;
  min-width: 300px;
  text-align: center;
}

.office-map img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}
/* ▽ 右下の写真（他セクションとの重なり防止） */
.photo-bottom-right {
  position: absolute;
  bottom: -100px;
  right: 40px;
  width: 400px;
  border-radius: 5px;
  z-index: 1; /* 背面にはみ出す画像に z-index を追加 */
}

/* ▼ 今後の流れセクション：下に十分な余白を追加（写真が被らないように） */
.kongononagare-section {
  background-color: #ffffff;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 100px 80px 220px; /* ←下にextra padding追加（元:100px） */
  gap: 40px;
  position: relative;
}

/* ▼ 右下の写真：位置はそのまま。下に余白を空ける形で調整 */
.photo-bottom-right {
  position: absolute;
  bottom: -100px;
  right: 40px;
  width: 400px;
  border-radius: 5px;
  z-index: 2;
}
/* ▼ 今後の流れセクション：下に十分な余白を追加（写真が被らないように） */
.kongononagare-section {
  background-color: #ffffff;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 100px 80px 220px; /* ←下にextra padding追加（元:100px） */
  gap: 40px;
  position: relative;
  padding-bottom: 400px;
}

/* ▼ 右下の写真：位置はそのまま。下に余白を空ける形で調整 */
.photo-bottom-right {
  position: absolute;
  bottom: 80px;
  right: 0px;
  width: 450px;
  border-radius: 5px 0 0 5px;
  z-index: 2;
}

/* ▼ 事業所概要セクション：前後のmarginをリセットして滑らかに接続 */
.office-overview-section {
  background-image: url("./img/10.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
  padding: 200px 40px;
  margin-top: 0;
  position: relative;
  z-index: 1;
  overflow: hidden;
  isolation: isolate; /* ←追加：子要素のz-indexを分離する */
}


/* ▼ 代表挨拶セクション */
.representative-message-section {
  position: relative; /* 背景との重なり防止 */
  z-index: 2; /* 明示的に最前面へ */
  width: 100%;
  background-color: #ffffff;
  padding: 80px 20px;
  text-align: center;
}

/* 代表挨拶の画像 */
.representative-message-image {
  max-width: 900px;
  width: 100%;
  height: auto;
  margin: 0 auto 40px auto;
  display: block;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  border-radius: 8px;
}

/* 挨拶テキスト本体 */
.representative-message-text {
  max-width: 900px;
  margin: 0 auto;
  font-size: 16px;
  color: #333;
  text-align: left;
  margin-top: 76px;
  line-height: 252%;
  letter-spacing: 1px;
}

/* 署名部分 */
.representative-message-text .signature {
  margin-top: 40px;
  text-align: right;
  font-weight: normal;
  font-size: 22px;
  /* font-family: 'Yuji Syuku', serif; */
  font-family: "shippori-mincho", sans-serif;
  color: #333;
  letter-spacing: 0.05em;
}

/* ▼ お問い合わせセクション */
.contact-section {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #ffffff;
  padding: 100px 40px;
  flex-wrap: wrap;
  gap: 40px;
}

.contact-left {
  flex: 1;
  min-width: 280px;
}


.contact-left h2 {
  font-size: 28px;
  margin-bottom: 40px;
  color: #333;
}

.contact-item {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}

.contact-icon {
  width: 48px;
  height: 48px;
  background-color: #e6f1ee;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  margin-right: 20px;
  color: #3a7d70;
}

.contact-text {
  font-size: 24px;
  color: #3a7d70;
  word-break: break-word;
}

.contact-right {
  flex: 1;
  min-width: 300px;
  display: flex;
  justify-content: flex-end; /* ← 画像の位置を右寄せ/中央/左寄せに変更可 */
  align-items: flex-start;    /* ← 上揃え/中央/下揃えに調整可能 */
  padding: 0 20px;
}

.contact-image {
  max-width: 100%;
  width: 500px;       /* ← 好きな幅に変更可能（例: 300px, 50%など） */
  height: auto;
    margin-left: -200px;  /* ← 左に40pxずらす */
  object-fit: contain;
}
























/* Hamburger Menu  */ /* Hamburger Menu  */ /* Hamburger Menu  */ /* Hamburger Menu  */ /* Hamburger Menu  */
/* Hamburger Menu  */ /* Hamburger Menu  */ /* Hamburger Menu  */ /* Hamburger Menu  */ /* Hamburger Menu  */
.menu {
position: absolute;
clear: both;
display: flex;
overflow: auto;
-webkit-overflow-scrolling: touch; /* スクロールの滑らかさを向上 (モバイル対応) */
transition: 0.3s cubic-bezier(0.4, 0.0, 0.2, 1) 0.3008s; 
}
.menu_btn:checked ~ .menu {
transition: 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
}
.menu_btn { 
display: none;
}
.menu_icon { 
display: inline-block;
position: relative;
cursor: pointer;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
display: flex;
align-items: center;
z-index: 9999;
justify-content: flex-end;
width: fit-content;
height: fit-content;
}
.navicon { 
display: block;
position: relative;
transition: 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
border-radius: 9px;
}
.navicon:before,
.navicon:after {
content: "";
transition: 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
}
.navicon:before {
}
.navicon:after {
}
.menu_btn:checked ~ .menu_icon .navicon:before {
}
.menu_btn:checked ~ .menu_icon .navicon:after {
}
.menu_btn:checked ~ .menu_icon .navicon {
transition: 0.2192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
}
.menu_btn:checked ~ .menu_icon:not(.steps) .navicon:before {
}
.menu_btn:checked ~ .menu_icon:not(.steps) .navicon:after {
}

/* Hamburger Menu Animation End */
.menu_buttons{
list-style: none;
display: flex;
flex-direction: column;
height: 100vh;
}    

/* // ==== ハンバーガーメニューのラッパー ====== */
.menu_icon { 
padding: 55px 33px 35px 16px;
margin: 0px 0px;
}

/* // ==== ハンバーガーメニューのアイコン（棒） ====== */
.navicon { 
background-color: #000000;
height: 1px;
width: 48px;
/* box-shadow: 0px 0px 0px 0.4px #e2e2e2; */
}
.navicon:before,
.navicon:after {
background-color: #000000;
content: "";
display: block;
position: absolute;
/* box-shadow: 0px 0px 0px 0.4px #e2e2e2; */
}
.navicon:before {
top: 12px;
height: 1px;
width: 48px;    
}
.navicon:after {
bottom: 12px;
height: 1px;
width: 48px;
}

/* // ==== チェックが入った時 ======
// 棒が傾いて × になる */
.menu_btn:checked ~ .menu_icon .navicon:before {
transform: rotate(-45deg);
}
.menu_btn:checked ~ .menu_icon .navicon:after {
transform: rotate(45deg);
}
/* // 真ん中の棒は非表示 */
.menu_btn:checked ~ .menu_icon .navicon {
background: rgba(0, 0, 0, 0);
box-shadow: none;
}
.menu_btn:checked ~ .menu_icon:not(.steps) .navicon:before {
box-shadow: none;
top: 0;
background-color: #000;
width: 62px;
}
.menu_btn:checked ~ .menu_icon:not(.steps) .navicon:after {
box-shadow: none;
bottom: 0;
background-color: #000;
width: 62px;
}

/* // ==== チェック時の開閉 ====== */
.menu {
transform: translateX(100%); 
}
.menu_btn:checked ~ .menu {
transform: translateX(0); 
right: 0; 
transform-origin: top;
}

/* // ==== チェック時に出てくるメニューのラッパー ====== */
.menu {
top: 0;
right: 0;
width: 75%; 
height: 100vh;
overflow: hidden;
padding: 120px 28px 120px;
background-color: #ffffffeb;
transform-origin: top;
flex-direction: column;
}

.menu_logo{
position: absolute;
bottom: 20px;
left: 20px;
top: 15px;
width: 74px;
height: 74px;
}
.menu_logo img{
width: 100%;
height: 100%;
object-fit: cover;
}

header {
top: 0;
position: fixed;
z-index: 999;
height: 73px;
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
padding-left: 30px;
padding-right: 0px;
}

header.sp h1{

} 
header.sp h1 a{
width: 120px;
display: block;
} 
header.sp h1 a img{
width: 100%;
object-fit: cover;
} 
header .menu_btn{

}
header .menu{

}
header .menu_buttons{

}
header .menu_buttons a{
padding: 15px 0;
border-top: solid 1px #c6c6c6;
color: #565656;
font-size: 18px;
text-decoration: none;
letter-spacing: 1px;
position: relative;
display: flex;
align-items: center;
}
header .menu_buttons a span{
color: #e8a7ba;
margin-right: 10px;
}

header .menu_buttons a:last-of-type{
border-bottom: solid 1px #c6c6c6;
}
/* header .menu_buttons a::before{
content: '';
height: 1px;
width: 11px;
background-color: #565656;
margin-right: 9px;
} */

.main-photo-sp{
object-fit: cover;
object-position: 96% 50%;
}

header.color_change .menu_icon .navicon{
background-color: #fff;
}
header.color_change .menu_icon .navicon::before{
background-color: #fff;
}
header.color_change .menu_icon .navicon::after{
background-color: #fff;
}










/* ========== パララックス共通 ========== */
.parallax_item {
  will-change: transform; /* パフォーマンス向上 */
  /* transition は必須じゃない。自然にしたいならON */
  transition: transform 0.05s linear;
}

.parallax_item_wrap{
background-color: #b9f3ff;
background-color: #fff;
height: 600px;
width: fit-content;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
z-index: 0;
}
  .parallax_item_wrap .img_box{
  position: relative;
  z-index: 1;
  }
    .parallax_item_wrap .img_box img{
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: 50% 50%;
    }
  .parallax_item_wrap span.top{
  position: absolute;
  width: 102%;
  background-color: #ffecec;
  z-index: 2;
  height: 500px;
  top: -239px;
  left: -1%;
  }
  .parallax_item_wrap span.bottom{
  position: absolute;
  width: 102%;
  height: 500px;
  background-color: #ffecec;
  z-index: 2;
  height: 500px;
  bottom: -486px;
  left: -1%;
  }
/* ========== パララックス共通 end ========== */

.parallax_item_wrap.num_01{

}
.parallax_item_wrap.num_01 .img_box{
height: 369px;
width: 590px;
}
.parallax_item_wrap.num_01 span.top{
top: -239px;
background-color: #fff;
transition: background-color 3.0s ease;
}
.parallax_item_wrap.num_01 span.bottom{
height: 500px;
bottom: -435px;
background-color: #fff;
transition: background-color 3.0s ease;
}
.concept-section.bg-activated .parallax_item_wrap.num_01 .top,
.concept-section.bg-activated .parallax_item_wrap.num_01 .bottom {
background-color: #f6f6f1;
}



.parallax_item.num_s01{
  margin-top: 95px;
  margin-bottom: -95px;
  z-index: 0;
}

.parallax_item.num_s02{
  margin-top: 435px;
  margin-bottom: -435px;
  z-index: 0;
}

.parallax_item.num_s03{
  margin-top: 100px;
  margin-bottom: -100px;
  z-index: 0;
}

.parallax_item.num_s04{
  margin-top: 400px;
  margin-bottom: -400px;
  z-index: 0;
}

.parallax_item.num_s05{
  margin-top: 379px;
  margin-bottom: -379px;
}



.parallax_item_wrap.num_02{
margin-left: auto;
margin-top: -140px;
}
  .parallax_item_wrap.num_02 .img_box{
  height: 369px;
  width: 529px;
  }
    .parallax_item_wrap.num_02 span.top{
    height: 500px;
    top: -192px;
    background-color: #f6f6f1;
    }
    .parallax_item_wrap.num_02 span.bottom{
    height: 500px;
    bottom: -470px;
    background-color: #f6f6f1;
    }


.parallax_item_wrap.num_03{
margin-left: auto;
margin-top: 24px;
}
  .parallax_item_wrap.num_03 .img_box{
  height: 500px;
  width: 445px;
  }
    .parallax_item_wrap.num_03 span.top{
    height: 500px;
    top: -299px;
    background-color: #f6f6f1;
    }
    .parallax_item_wrap.num_03 span.bottom{
    height: 500px;
    bottom: -542px;
    background-color: #f6f6f1;
    }

.parallax_item_wrap.num_04{
margin-left: -16vw;
margin-top: -119px;
height: 800px;
}
  .parallax_item_wrap.num_04 .img_box{
  height: 700px;
  width: 735px;
  }
    .parallax_item_wrap.num_04 span.top{
    height: 500px;
    top: -217px;
    background-color: #f6f6f1;
    }
    .parallax_item_wrap.num_04 span.bottom{
    height: 500px;
    bottom: -635px;
    background-color: #f6f6f1;
    }

.parallax_item_wrap.num_05{
margin-left: 0;
margin-top: -119px;
height: 800px;
}
  .parallax_item_wrap.num_05 .img_box{
  height: 700px;
  width: 400px;
  }
    .parallax_item_wrap.num_05 span.top{
    height: 500px;
    top: -80px;
    }
    .parallax_item_wrap.num_05 span.bottom{
    height: 500px;
    bottom: -706px;
    }

.parallax_item_wrap.num_06{
position: absolute;
margin-left: 0;
margin-top: -119px;
height: 600px;
position: absolute;
bottom: -100px;
right: 0px;
}
  .parallax_item_wrap.num_06 .img_box{
  height: 400px;
  width: 450px;
  }
    .parallax_item_wrap.num_06 span.top{
    height: 300px;
    top: 65px;
    }
    .parallax_item_wrap.num_06 span.bottom{
    height: 300px;
    bottom: -400px;
    }


.parallax_item_wrap.num_05 span.top,
.parallax_item_wrap.num_05 span.bottom,
.parallax_item_wrap.num_06 span.top,
.parallax_item_wrap.num_06 span.bottom
{
  background-color: #fff;
}












.sp {
display: none;
}
@media (max-width: 600px) {
  .sp{
  display: flex;
  }
  .pc {
  display: none;
  }
  .main-visual .text-area {
    position: absolute;
    padding-left: 0;
    padding-right: 0;
    bottom: 0;
    right: 26px;
  }
  .catch-copy {
    color: #fff;
    text-shadow: 1px 1px 3px rgb(255 255 255 / 20%);
    margin-bottom: 40px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 11vw;
    height: fit-content;
    margin-bottom: 0;
  }
  .catch-copy p:first-of-type{
    margin-bottom: 88px;
  }
  .catch-copy p:nth-of-type(2){
    margin-bottom: 78px;
  }
  .catch-copy p:last-of-type{
    margin-bottom: 16px;
    margin-top: auto;
  }
  .logo-box {
    position: absolute;
    bottom: 16px;
    left: -2px;
    width: 162px;
  }
  .section {
    min-height: unset;
    padding: 80px 7%;
    background-color: #ffffff;
    overflow: hidden;
    padding-top: 141px;
  }
  :target::before {
    display: none;
  }
  .top_white_bg{
    display: none;
  }
  .visually-hidden{
    display: none;
  }
  .concept-images{
  margin-left: 0%;
  margin-top: 0;
  position: absolute;
  bottom: 0;
  gap: 54px;
  flex-direction: column-reverse;
  }
  .concept-images img:first-child{
    margin: 0;
    height: 265px;
    width: auto;
    margin-left: -16%;
    opacity: 0.9;
    display: none;
  }
  .concept-container {
    flex-direction: column;
    padding: 0;
    margin-left: -8%;
    margin-right: -8%;
    overflow: hidden;
    position: relative;
    padding-bottom: 0px;
  }
  .face-image {
    position: absolute;
    top: 0px;
    width: 85vw;
    height: 143px;
  }
  .concept-text h2 {
    max-width: 300px;
    font-size: 30px;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    margin-top: -59px;
  }
  .concept-text h2::first-letter{
    margin-left: -20px;
  }
  .concept-text {
    padding-top: 40px;
    padding-left: 7%;
    padding-right: 7%;
    max-width: 100%;
  }
  .concept-images img:last-child {
    width: 80vw;
    height: auto;
    /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); */
    box-shadow: none;
    margin-left: -2vw;
    margin-top: 0px;
    margin-right: auto;
  }
  .corner-image {
    display: none;
  }
  .photo-area.expand {
    width: 100%;
  }
  .principle-words .kanji {
    font-size: 40px;
    margin-right: 0;
  }
  .principle-words {
    color: #555;
    /* text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); */
    flex-direction: column;
    row-gap: 37px;
    text-align: center;
    padding-left: 7px;
    letter-spacing: 3px;
    font-size: 17px;
    line-height: 190%;
  }
  .principle-section .principle-section{
    padding: 0;
    margin-left: -9%;
    margin-right: -9%;
  }
  .principle-top {
    flex-wrap: nowrap;
    padding-left: 7%;
    padding-top: 17px;
  }
  .principle-photo-right {
    width: 48vw;
    height: 237px;
    margin-right: 0%;
    border-radius: 15px 0 0 15px;
    margin-top: -28px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  }
  .concept-text p {
    font-size: 14px;
    letter-spacing: 1px;
    line-height: 191%;
  }
  .principle-message {
    text-align: center;
    font-size: 22px;
    line-height: 201%;
    padding-left: 12%;
    padding-right: 12%;
    padding-top: 50px;
    padding-bottom: 86px;
    color: #555;
    margin-top: 21px;
  }
  .principle-bottom {
    gap: 43px;
    align-items: flex-start;
    flex-wrap: wrap;
    flex-direction: column;
  }
  .principle-photo-left {
    width: 100%;
    height: auto;
    height: 211px;
    border-radius: 0;
    margin-top: 0px;
    margin-left: 0px;
    overflow: hidden;
    box-shadow: none;
  }
  .principle-photo-left img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
  }
  .principle-policy {
    flex: 1;
    padding: 0 7%;
    z-index: 1;
  }
  .principle-policy h2 {
    font-size: 13px;
    margin-bottom: 24px;
  }
  .principle-policy h2 span {
    font-size: 24px;
    margin-top: 0px;
  }
  .principle-policy li strong {
    margin-bottom: 15px;
    font-size: 20px;
    letter-spacing: 2px;
    font-weight: normal;
  }
  .principle-policy li {
    font-size: 15px;
  }
  .feature-title {
    writing-mode: horizontal-tb;
    font-size: 26px;
    letter-spacing: 2px;
    white-space: nowrap;
    padding-top: 30px;
  }
  .feature-inner {
    flex-direction: column;
    align-items: flex-start;
    padding: 0;
    gap: 35px
  }
  .feature-text {
    min-width: unset;
    width: 100%;
  }
  .feature-block {
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .feature-text h3 {
    font-size: 21px;
    letter-spacing: 1px;
    line-height: 159%;
    color: #555;
    margin-top: 0;
    margin-left: 0;
  }
  .feature-text p {
    margin-left: 0px;
    font-size: 14px;
    letter-spacing: 1px;
    width: 100%;
    line-height: 200%;
    margin-top: 41px;
  }
  .feature-image {
    width: 100%;
    height: 157px;
    transform: translateY(0px);
    overflow: hidden;
    border-radius: 5px;
  }
  .feature-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    object-position: 50% 34%;
  }
  .feature-text h4 {
    margin-left: 0px;
    font-size: 21px;
    letter-spacing: 1px;
    line-height: 159%;
    color: #555;
    margin-top: 0;
    margin-left: 0;
  }
  .feature-image.car img{
    object-position: 50% 80%;
  }
  .feature-image.car{
    margin-top: -23px;
  }
  .vertical-text {
    position: relative;
    top: unset;
    left: unset;
    writing-mode: vertical-rl;
    font-size: 32px;
    line-height: 140%;
    margin-right: 0;
    height: 233px;
    margin-bottom: 0px;
  }
  .kongononagare-section .photo-area img {
    width: 63%;
  }
  .kongononagare-section .photo-area {
    height: fit-content;
    flex-direction: row;
    flex-direction: row-reverse;
    width: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
  }
  .kongononagare-section .text-area {
    padding-left: 0px;
    width: 100%;
  }
  .step-num {
    font-size: 26px;
    font-weight: bold;
    width: 40px;
    letter-spacing: 3px;
  }
  .text-h1-01, .text-h1-02, .text-h1-03, .text-h1-04, .text-h1-05, .text-h1-06 {
    font-size: 23px;
    letter-spacing: 3px;
  }
  .step {
    gap: 18px;
  }
  .step .text-block {
    margin-top: 3px;
  }
  .text-h2-01, .text-h2-02, .text-h2-03, .text-h2-04, .text-h2-05, .text-h2-06 {
    font-size: 15px;
    letter-spacing: 1px;
  }
  .kongononagare-section {
    flex-direction: column;
    padding: 100px 0px 205px;
    gap: 0;
  }
  .photo-bottom-right {
    bottom: 0;
    right: unset;
    left: -9%;
    width: 316px;
    border-radius: 0px 5px 5px 0;
    z-index: 2;
  }
  .media-section {
    padding: 180px 0px 60px;
  }
  .media-video iframe {
    width: 100%;
    height: 209px;
    border-radius: 15px;
  }
  .sns-section {
    padding: 0;
    padding-bottom: 100px;
  }
  .sns-wrapper {
    justify-content: center;
    gap: 15px;
    flex-wrap: nowrap;
  }
  .sns-section .section-title {
    font-size: 26px;
    letter-spacing: 3px;
    margin-bottom: 20px;
  }
  .sns-card .icon img {
    width: 37px;
    height: 37px;
    margin-bottom: 0px;
  }
  .sns-card .label {
    font-size: 12px;
    letter-spacing: 1px;
    height: 16px;
    margin-top: 2px;
  }
  .sns-card {
    border-radius: 16px;
    padding: 31px 14px;
    width: 133px;
  }
  .office-overview-section {
    margin-top: 0;
    position: relative;
    z-index: 1;
    overflow: hidden;
    isolation: isolate;
    padding: 50px 7%;
    margin-left: -8%;
    width: 100vw;
    margin-right: -8%;
    background-image: url(./img/10-sp.webp);
    padding-bottom: 84px;
  }
  .map-button {
    padding: 12px 24px;
    border: 2px solid #fff;
    border-radius: 4px;
    color: #fff;
    font-size: 18px;
    position: absolute;
    bottom: 50px;
    left: calc(50% - 103px);
  }
  .office-title {
    text-shadow: #0000003d 1px 1px 3px;
    font-size: 26px;
    font-weight: bold;
    margin-bottom: 14px;
    letter-spacing: 4px;
  }
  .office-table {
    border-collapse: collapse;
  }
  .office-table tbody tr{
    width: 100%;
    display: block;
    margin-bottom: 2px;
  }
  .office-table tbody tr td{
    text-shadow: #0000005b 1px 1px 3px;
  }
  .office-info {
    flex: 1;
    min-width: unset;
  }
  .access h3 {
    font-size: 26px;
    margin-bottom: 10px;
    text-shadow: #0000005b 1px 1px 3px;
  }
  .access p {
    line-height: 179%;
    font-size: 16px;
    margin-bottom: 0;
    letter-spacing: 2px;
    text-shadow: #0000005b 1px 1px 3px;
  }
  .office-table {
    font-size: 16px;
    margin-bottom: 40px;
  }
  .office-content {
    max-width: unset;
    margin: 0 auto;
    flex-wrap: nowrap;
    flex-direction: column;
    gap: 0px;
    align-items: flex-start;
  }
  .office-map {
    min-width: unset;
    width: 100%;
    margin-top: 0px;
  }
  .representative-message-section {
    padding: 80px 0px;
    text-align: center;
  }
  .representative-message-image {
    max-width: unset;
    width: 100%;
    height: auto;
    margin: 0 auto 0 auto;
  }
  .representative-message-text {
    max-width: unset;
    margin: 0 auto;
    font-size: 14px;
    margin-top: 38px;
    line-height: 221%;
    letter-spacing: 1px;
  }
  .representative-message-text .signature {
    margin-top: 28px;
    font-size: 18px;
    letter-spacing: 0.5px;
  }
  .contact-section {
    padding: 100px 0 0;
    flex-wrap: nowrap;
    gap: 6px;
    flex-direction: column;
    align-items: flex-start;
  }
  .contact-left h2 {
    font-size: 26px;
    letter-spacing: 1px;
    margin-bottom: 22px;
  }
  .contact-icon {
    width: 41px;
    height: 41px;
    font-size: 14px;
    margin-right: 17px;
    color: #3a7d70;
  }
  .contact-item.sp{
    text-decoration: none;
    margin-bottom: 12px;
  }
  .contact-item.sp .contact-text {
    font-size: 21px;
    letter-spacing: 1px;
    color: #3a7d70;
    word-break: break-word;
    text-decoration: underline 1px;
  }
  .contact-image {
    max-width: unset;
    width: 228px;
    height: auto;
    margin-left: 0;
    margin-right: auto;
  }
  .contact-right {
    padding: 0px;
  }
  .principle-section {
    padding-bottom: 0;
  }
  .parallax_item_wrap.num_01 span.top {
    top: -25px;
    /* background-color: #fff; */
    transition: background-color 3.0s ease;
  }
  .kongononagare-section_top_box{
    display: flex;
    justify-content: space-between;
    z-index: 0;
  }
  .parallax_item_wrap{
  height: 500px;
  }
  .parallax_item_wrap span.top{
  height: 200px;
  top: -139px;
  left: -1%;
  }
  .parallax_item_wrap span.bottom{
  height: 200px;
  bottom: -586px;
  left: -1%;
  }
  .parallax_item_wrap.num_01 .img_box {
    height: 251px;
    width: 100%;
  }
  .parallax_item_wrap.num_03 .img_box {
    height: 364px;
    width: 48vw;
  }
    .parallax_item_wrap.num_02 .img_box {
    height: 218px;
    width: 100%;
  }
  .parallax_item_wrap.num_04 .img_box {
    height: 300px;
    width: 100%;
  }
    .parallax_item_wrap.num_04 {
    margin-left: 0;
    margin-top: -103px;
    margin-bottom: -103px;
    height: 500px;
    z-index: 0;
  }
  .parallax_item_wrap.num_05 {
    margin-left: 0;
    margin-top: -119px;
    height: 500px;
  }
  .parallax_item_wrap.num_05 .img_box {
    height: 500px;
    width: 100%;
  }
  .parallax_item_wrap.num_05 {
    margin-left: 0;
    margin-top: -119px;
    margin-bottom: -119px;
    height: 600px;
    width: 60%;
    z-index: 0;
  }
  .parallax_item_wrap.num_06 {
    margin-top: -119px;
    height: 387px;
    bottom: -130px;
    right: unset;
    left: -9%;
    z-index: 0;
  }
  .parallax_item_wrap.num_06 .img_box {
    height: 223px;
    width: 316px;
  }
  .parallax_item_wrap.num_01 span.bottom {
    bottom: -384px;
  }
  .concept-section{
    padding-top: 0;
  }
  .parallax_item_wrap.num_01 {
    margin-top: -100px;
  }
  .parallax_item_wrap.num_02 {
    margin-left: 0;
    margin-top: -230px;
    width: 89%;
    z-index: 0;
    margin-left: -8vw;
    margin-bottom: -100px;
  }
  .parallax_item_wrap.num_02 span.top {
    top: -261px;
  }
  .parallax_item_wrap.num_02 span.bottom {
    bottom: -405px;
  }
  .sp_parallax_off.top,
  .sp_parallax_off.bottom{
    display: none;
  }
  .parallax_item_wrap.num_03 {
    margin-left: 0;
    margin-top: 0;
    height: fit-content;
    border-radius: 15px 0 0 15px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  }
  .parallax_item_wrap.num_04 span.top {
    top: -256px;
    background-color: #fff;
  }
  .parallax_item_wrap.num_04 span.bottom {
    bottom: -496px;
    background-color: #fff;
  }
  .parallax_item.num_s01 {
    margin-top: 0;
    margin-bottom: 0;
  }
  .parallax_item.num_s02 {
    margin-top: 0;
    margin-bottom: 0;
  }
  .parallax_item.num_s03 {
    margin-top: 0;
    margin-bottom: 0;
  }
  .parallax_item.num_s04 {
    margin-top: 0;
    margin-bottom: 0;
  }
  .parallax_item.num_s05 {
    margin-top: 30px;
    margin-bottom: 0;
    z-index: 1;
  }
  .parallax_item_wrap.num_05 span.top {
    height: 500px;
    top: -290px;
  }
  .parallax_item_wrap.num_05 span.bottom {
    height: 500px;
    bottom: -563px;
  }
  .kongononagare-section .text-area {
    margin-top: 0;
  }
  .parallax_item_wrap.num_06 span.top {
    top: 457px;
  }
  .parallax_item_wrap.num_06 span.bottom {
    bottom: -868px;
  }










  /* .concept-container {
    overflow: visible;
  }
  .section {
    overflow: visible;
  } */
}
