/* message ページ固有CSS（静的message/index.htmlのインライン<style>から抽出） */
/* ===== 上部の帯（バナー） ===== */
  .pbanner {
    position: relative; padding: clamp(150px,18vw,230px) 0 clamp(48px,6vw,80px);
    background: linear-gradient(120deg, #2e9e5b 0%, #27884d 60%, #1f7d57 100%);
    color: #fff; overflow: hidden;
  }
  .pbanner::after {
    content: ""; position: absolute; right: -120px; top: -120px; width: 460px; height: 460px;
    border-radius: 50%; background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.14), transparent 70%);
    pointer-events: none;
  }
  .pbanner__inner { width: min(1180px, 100% - 48px); margin-inline: auto; position: relative; z-index: 1; }
  .pbanner__en { font-family: var(--en); font-weight: 300; font-size: clamp(34px,5vw,58px); line-height: 1; letter-spacing: .04em; }
  .pbanner__jp { margin-top: 14px; font-size: clamp(16px,2vw,22px); font-weight: 500; letter-spacing: .06em; }

  /* ===== パンくず ===== */
  .crumb { width: min(1180px, 100% - 48px); margin: 22px auto 0; font-size: 13px; color: #78857e; }
  .crumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; list-style: none; }
  .crumb a { color: #78857e; transition: color .2s; }
  .crumb a:hover { color: var(--green); }
  .crumb li:not(:last-child)::after { content: "›"; margin-left: 8px; color: #b8c2bc; }
  .crumb [aria-current="page"] { color: var(--ink); }

  /* ===== 代表挨拶（メッセージ＋写真） ===== */
  .message { position: relative; width: min(1180px, 100% - 48px); margin: clamp(48px,6vw,90px) auto clamp(64px,8vw,110px); overflow: hidden; }
  .message__deco { position: absolute; right: -70px; top: -40px; width: clamp(200px,26vw,360px); opacity: .05; pointer-events: none; z-index: 0; }
  .message__grid {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: minmax(300px,420px) 1fr;
    gap: clamp(36px,5vw,80px); align-items: start;
  }
  /* 写真 */
  .message__figure { position: relative; }
  .message__photo {
    position: relative; width: 100%; aspect-ratio: 4 / 5; overflow: hidden;
    border-radius: 4px; background: #eef3ef;
  }
  .message__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
  /* 写真未支給時の NO IMAGE プレースホルダ */
  .message__noimg {
    width: 100%; height: 100%; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 12px;
    background: #eef3ef; color: #a7b3ab;
  }
  .message__noimg svg { width: clamp(40px,6vw,56px); height: clamp(40px,6vw,56px); opacity: .7; }
  .message__noimg span { font-family: var(--en); font-size: 13px; letter-spacing: .2em; }
  /* コーナーの飾り（TOPカードと同じ意匠） */
  .message__brackets span { position: absolute; width: 18px; height: 18px; border: 1px solid rgba(46,158,91,.55); z-index: 2; }
  .message__brackets span:nth-child(1){ top:-8px; left:-8px; border-right:0; border-bottom:0; }
  .message__brackets span:nth-child(2){ top:-8px; right:-8px; border-left:0; border-bottom:0; }
  .message__brackets span:nth-child(3){ bottom:-8px; left:-8px; border-right:0; border-top:0; }
  .message__brackets span:nth-child(4){ bottom:-8px; right:-8px; border-left:0; border-top:0; }
  .message__nameplate { margin-top: clamp(30px,4vw,46px); text-align: right; }
  .message__role { font-size: 13px; letter-spacing: .08em; color: #5f6d66; }
  .message__name { margin: 4px 0 0; font-size: clamp(22px,2.4vw,28px); font-weight: 600; letter-spacing: .04em; color: var(--ink); }
  .message__name-en { display: block; margin-top: 4px; font-family: var(--en); font-size: 12px; font-weight: 400; letter-spacing: .14em; color: #9aa79f; }

  /* 本文 */
  .message__body { padding-top: 6px; }
  .message__en { font-family: var(--en); font-weight: 300; font-size: clamp(13px,1.4vw,15px); letter-spacing: .22em; color: var(--green); }
  .message__lead {
    margin: 14px 0 clamp(24px,3vw,34px); font-family: var(--serif); font-weight: 600;
    font-size: clamp(24px,3.2vw,38px); line-height: 1.55; letter-spacing: .02em; color: var(--ink);
  }
  .message__text { margin: 0 0 1.4em; font-size: clamp(15px,1.05vw,16.5px); line-height: 2.1; color: #37453e; }
  .message__text:last-child { margin-bottom: 0; }

  /* ===== レスポンシブ ===== */
  @media (max-width: 860px) {
    .message__grid { grid-template-columns: 1fr; gap: clamp(28px,6vw,40px); }
    .message__figure { max-width: 380px; margin-inline: auto; }
    .message__brackets span { width: 14px; height: 14px; }
  }

  /* ===== 役員紹介 ===== */
  .officers { position: relative; width: min(1180px, 100% - 48px); margin: clamp(56px,7vw,96px) auto clamp(64px,8vw,110px); }
  .officers__head { margin-bottom: clamp(28px,3.5vw,46px); }
  .officers__en { font-family: var(--en); font-weight: 300; font-size: clamp(24px,3vw,34px); line-height: 1; letter-spacing: .04em; color: var(--green); }
  .officers__jp { margin-top: 8px; font-size: clamp(20px,2.2vw,25px); font-weight: 600; letter-spacing: .06em; color: var(--ink); }
  .officers__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 clamp(28px,3.5vw,56px); }
  .ocard { padding: clamp(18px,2vw,24px) 0; border-top: 1px solid #dde7e0; }
  .ocard__role { font-size: 13px; font-weight: 600; letter-spacing: .06em; color: var(--green); }
  .ocard__name { margin-top: 6px; font-size: clamp(18px,1.5vw,21px); font-weight: 600; letter-spacing: .04em; color: var(--ink); }
  .ocard__name-en { display: block; margin-top: 3px; font-family: var(--en); font-size: 12px; font-weight: 400; letter-spacing: .12em; color: #9aa79f; }
  @media (max-width: 860px) { .officers__grid { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 460px) { .officers__grid { grid-template-columns: 1fr; } }
