/* ===== メインレイアウト ===== */
.greeting-layout {
  max-width: 1400px;
  margin: 0 auto;
  padding: 80px clamp(24px, 5vw, 80px);
}
.greeting-layout .sub-section__heading {
  text-align: center;
  margin-bottom: 100px;
}

/* ===== 挨拶イントロ（顔写真左・テキスト右） ===== */
.greeting-intro {
  margin-bottom: 80px;
}
.greeting-intro__inner {
  display: flex;
  gap: clamp(32px, 4vw, 60px);
  align-items: flex-start;
}
.greeting-intro__portrait {
  flex: 0 0 auto;
  width: clamp(180px, 22vw, 280px);
}
.greeting-intro__portrait-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  background: #e8edf2;
}
.greeting-intro__text {
  flex: 1 1 0;
  min-width: 0;
}
.greeting-intro__heading {
  font-size: clamp(22px, 2.4vw, 36px);
  font-weight: 700;
  color: #000;
  line-height: 1.45;
  margin-bottom: 32px;
}
.greeting-intro__body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 32px;
}
.greeting-intro__body p {
  font-size: clamp(14px, 1.1vw, 16px);
  line-height: 2;
  color: #333;
}
.greeting-intro__name {
  text-align: right;
  font-size: clamp(14px, 1.1vw, 16px);
  line-height: 1.8;
  color: #333;
}

/* ===== 挨拶本文 ===== */
.greeting-body {
  border-top: 2px solid #005eb8;
  padding-top: 56px;
}
.greeting-body__inner {
  display: flex;
  flex-direction: column;
  gap: 28px;
  max-width: 860px;
}
.greeting-body__inner p {
  font-size: clamp(14px, 1.2vw, 18px);
  line-height: 2;
  color: #333;
}

/* ===== バナー中央揃え・余白 ===== */
.banner__inner a {
  display: block;
  max-width: 900px;
  margin: 0 auto;
}
.banner__inner picture {
  display: block;
  margin-bottom: 100px;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 767px) {
  .greeting-intro__body p { font-size: 15px; }
  .greeting-intro__inner { flex-direction: column; align-items: center; }
  .greeting-intro__portrait { width: clamp(160px, 50vw, 240px); }
  .greeting-layout { padding: 48px 24px 64px; }
  .greeting-intro { margin-bottom: 48px; }
  .greeting-intro__heading { font-size: clamp(20px, 5.5vw, 28px); margin-bottom: 24px; }
  .greeting-body { padding-top: 40px; }
}
@media (max-width: 640px) {
  .greeting-intro__portrait { width: 60%; }
  .banner__inner { padding: 0 24px; }
  .banner__inner a { padding: 0; max-width: 100%; }
}
