/* リセット */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Yu Mincho', 'Noto Serif JP', serif;
  background-color: #ffffff;
  color: #666;
  line-height: 1.8;
  overflow-x: hidden;
}

/* ピンクのライン */
.line-draw {
  width: 100%;
  height: 100px;
  position: fixed;
  top: 40%;
  left: 0;
  z-index: 1000;
  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;
  height: 100vh;
  width: 100%;
  position: relative;
  transition: transform 1s ease;
}

.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%;
}

.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: -20%;
  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: 100px;
  line-height: 1.3;
  letter-spacing: 2px;
  font-weight: normal;
  color: #666;
  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: 20px;
  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: #666;
}

.nav-menu a:hover .label {
  opacity: 0.7;
}


/* セクション共通 */
.section {
  min-height: 100vh;
  padding: 80px 30px;
  background-color: #ffffff; /* 白をデフォルト背景に統一 */
}

/* 色付きセクションのみ個別指定 */
.concept-section {
  background-color: #f8f6f2;
}

.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;
}

/* -----------------------------
  【リハビリセクション全体】
  セクション全体の横並びレイアウト
----------------------------- */
.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-size: 4.8em;
  font-weight: normal;
  line-height: 1.5;
  letter-spacing: 0.01em;
  max-width: 480px;
  margin-top: 150px;
  margin-bottom: 1.5em;
  color: #666;
  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 30px;
  font-family: 'Yu Mincho', 'Noto Serif JP', serif;
  color: #666;
}

.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;
}

.principle-words {
  font-size: 50px;
  line-height: 2.4;
  color: #666;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}

.principle-words .kanji {
  font-size: 100px;
  font-weight: bold;
  color: #666;
  margin-right: 10px;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
  display: inline-block;
}

/* ▼ 右上の写真（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: 50px;
  line-height: 2.2;
  color: #666;
}

/* ─────────────────────────────── */
/* ▼ 下段レイアウト（左写真＋行動指針テキスト） */
/* ─────────────────────────────── */
.principle-bottom {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  flex-wrap: wrap;
}

/* ▼ 左下の写真（100%表示ベースで調整＋角丸表示） */
.principle-photo-left {
  width: 900px;
  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: 26px;
  margin-bottom: 24px;
  line-height: 1.5;
}

.principle-policy h2 span {
  font-size: 22px;
  color: #e8a7ba;
  display: block;
  margin-top: 5px;
}

.principle-policy ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

.principle-policy li {
  font-size: 16px;
  line-height: 2;
  margin-bottom: 24px;
}








/* 最外側のセクション全体の背景色 */




.feature-section {
  background-color: #ffffff; /* ← 修正：#f6f6f1 → #ffffff（白） */
  padding: 100px 0;
  font-family: 'Yu Mincho', 'Noto Serif JP', 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: 36px;
  font-weight: bold;
  color: #666;
  line-height: 1.8;
  white-space: nowrap;
  padding-top: 30px; /* 元のスタイルに加えて調整 */
}

/* コンテンツ本体 */
.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: 30px;
  color: #666;
  margin-top: 200px;
  margin-left: 100px; /* ← 右にずらす */
}

.feature-text h4 {
  font-size: 30px;
  color: #666;
  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;
}

/* ▽ 左上写真本体 */
.photo-img {
  width: 150%;
  height: auto;
  border-radius: 5px;
}

/* ▽ 縦書き見出し */
.vertical-text {
  position: absolute;
  top: 250px;
  left: 580px;
  writing-mode: vertical-rl;
  font-size: 50px;
  line-height: 1.2;
  color: #666;
}

/* ▽ テキストエリア */
.text-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

/* ▽ 各ステップ全体 */
.step {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

/* ▽ 各番号共通 */
.step-num {
  font-size: 40px;
  font-weight: bold;
  color: #e8a7ba;
  min-width: 40px;
}

/* ▽ 番号個別調整 */
.step-num-01, .step-num-02, .step-num-03,
.step-num-04, .step-num-05, .step-num-06 {
  transform: translate(0, 0);
  font-size: 44px;
}

/* ▽ 見出し共通 */
.text-h1 {
  font-size: 20px;
  font-weight: bold;
  color: #666;
  margin-bottom: 4px;
}

/* ▽ 本文共通 */
.text-h2 {
  font-size: 14px;
  color: #666;
  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: 20px;
}
.text-h2-01, .text-h2-02, .text-h2-03,
.text-h2-04, .text-h2-05, .text-h2-06 {
  transform: translate(0, 0);
  font-size: 14px;
}

/* ▽ 右下の写真 */
.photo-bottom-right {
  position: absolute;
  bottom: -100px;
  right: 40px;
  width: 400px;
  border-radius: 5px;
}


/* メディア掲載実績セクション（画像＋YouTube） */
.media-section {
  background-color: #ffffff;
  padding: 60px 20px;
}

.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);
}

.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セクション */
.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 {
  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);
}

.sns-card.visible {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.sns-card:hover {
  transform: translateY(-5px) scale(1.05);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1);
}

.sns-card .icon img {
  width: 64px;
  height: 64px;
  margin-bottom: 20px;
}

.sns-card .label {
  font-size: 20px;
  font-weight: bold;
  color: #555;
}








/* ▽ 事業所概要セクション */
.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;
}

.office-table {
  font-size: 18px;
  margin-bottom: 40px;
  border-spacing: 10px;
}

.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;
}

.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;
}

/* ▼ 右下の写真：位置はそのまま。下に余白を空ける形で調整 */
.photo-bottom-right {
  position: absolute;
  bottom: -100px;
  right: 40px;
  width: 400px;
  border-radius: 5px;
  z-index: 2;
}

/* ▼ 事業所概要セクション：前後のmarginをリセットして滑らかに接続 */
.office-overview-section {
  background-image: url("https://i.imgur.com/HbCcl00.jpeg");
  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;
  line-height: 2;
  color: #333;
  text-align: left;
}

/* 署名部分 */
.representative-message-text .signature {
  margin-top: 40px;
  text-align: right;
  font-weight: normal;
  font-size: 22px;
  font-family: 'Yuji Syuku', serif;
  color: #222;
  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;
}
