/* MESSAGEだけに適用。既存の中央カラム幅と書体を継承する。 */
.message-section { position: relative; width: 100%; padding: 66px 0 58px; background: #E8F3FA; color: #4A4A4A; }
.message-decoration { position: absolute; top: 16px; right: 9%; width: 44px; height: 44px; color: #79B7DA; }
.message-heading { margin: 0 0 34px; text-align: center; color: #555; }
.message-heading-en { display: block; font: 700 36px/1.15 Arial, Helvetica, sans-serif; letter-spacing: .045em; }
.message-heading-ja { display: block; margin-top: 3px; font-size: 16px; font-weight: 600; line-height: 1.5; }
.message-copy { margin-inline: 8%; }
.message-lead { margin: 0 0 18px; font-size: 20px; font-weight: 700; line-height: 1.7; letter-spacing: 0; }
.message-lead span { display: block; }
.message-body { margin: 0; font-size: 16px; font-weight: 500; line-height: 1.95; line-break: strict; overflow-wrap: anywhere; }
.message-profile-group { position: relative; margin: 30px 8% 0; }
.message-profile-stage { position: relative; isolation: isolate; padding-bottom: 22px; }
.message-bubble { container-type: inline-size; position: relative; z-index: 1; width: 74%; margin: 0; padding: 22px 10px; border: 2px solid #69AED5; border-radius: 30px; background: #fff; color: #69AED5; font-size: 14px; font-weight: 600; line-height: 1.7; text-align: center; line-break: strict; overflow-wrap: anywhere; }
.message-bubble > span { display: block; font-size: min(clamp(11px, 3.35vw, 13px), 5.88cqi); line-height: 23.8px; white-space: nowrap; }
.message-bubble::after { content: ""; position: absolute; right: 29%; bottom: -20px; width: 28px; height: 22px; background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2222%22%20viewBox%3D%220%200%2028%2022%22%3E%3Cpath%20d%3D%22M1%201%20L25%2019%20L18%201%22%20fill%3D%22white%22%20stroke%3D%22%2369AED5%22%20stroke-width%3D%222%22%20stroke-linejoin%3D%22miter%22%2F%3E%3C%2Fsvg%3E") center / 100% 100% no-repeat; pointer-events: none; }
/* 元の表示幅の1.8倍。左右の輪郭を保ち、下半身だけカードの背面に隠す。 */
.message-person { position: absolute; z-index: 2; top: 18px; right: -21.5%; bottom: -12px; width: 79.2%; overflow: hidden; pointer-events: none; background: transparent; }
.message-profile { display: block; width: 100%; height: auto; background: transparent; }
.message-name { position: relative; z-index: 3; width: 37%; margin: 24px 0 0 29%; text-align: center; }
.message-name span { display: block; margin-bottom: 3px; color: #69AED5; font-size: 12px; font-weight: 600; line-height: 1.5; }
.message-name strong { display: block; font-size: 14px; font-weight: 600; line-height: 1.5; white-space: nowrap; }
.message-info { position: relative; z-index: 4; min-height: 108px; margin: 0; padding: 24px 20px; border-radius: 14px; background: #fff; font-size: 14px; line-height: 1.7; }
.message-info::before { content: ""; position: absolute; top: 0; left: 9%; right: 9%; height: 2px; background: #79B7DA; }
.message-info > div { display: grid; grid-template-columns: 4em minmax(0, 1fr); column-gap: 10px; }
.message-info > div + div { margin-top: 5px; }
.message-info dt { color: #69AED5; font-weight: 600; }
.message-info dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
@media (min-width: 400px) and (max-width: 900px) { .message-lead { font-size: 22px; } }
@media (max-width: 359px) {
  .message-copy, .message-profile-group { margin-inline: 6%; }
  .message-lead { font-size: 17px; }
  .message-bubble { padding-inline: 10px; font-size: 14px; }
  .message-name strong { font-size: 12px; }
  .message-person { top: 18px; }
  .message-info { padding-inline: 12px; font-size: 13px; }
  .message-info > div { column-gap: 6px; }
}
@media (prefers-reduced-motion: no-preference) {
  .message-section .sd-reveal-visible {
    animation-duration: .8s;
    animation-delay: var(--feature-reveal-delay, 0s);
  }
}
