/* 日本本社と海外窓口を分け、指定所在地のアクセスマップを表示する。 */
.p-company-page address { font-style: normal; }
.p-company-message { padding-block: 96px; background: linear-gradient(90deg, #f4f8fc, #eef7f3); }
.p-company-message .l-inner { display: flex; flex-direction: column; gap: 32px; align-items: flex-start; }
.p-company-message h1 { color: var(--color-main); font-size: 32px; font-weight: 500; line-height: 48px; }
.p-company-message__company { color: var(--color-main); font-size: 24px; font-weight: 500; line-height: 36px; }
.p-company-message__body { display: flex; flex-direction: column; gap: 32px; width: min(100%, 960px); font-size: 16px; line-height: 32px; }
.p-company-message__rule { display: block; width: 64px; height: 2px; background: var(--color-accent); }
.p-company-message__closing { color: var(--color-main); font-size: 48px; font-weight: 500; line-height: 72px; letter-spacing: 1.5px; }
.p-company-outline__status { color: var(--color-muted); font-size: 14px; line-height: 26px; }
.p-company-outline__table { overflow: hidden; border: 1px solid #1b5fa829; border-radius: 8px; }
.p-company-outline__row { display: grid; grid-template-columns: 176px minmax(0, 1fr); gap: 24px; padding: 24px; font-size: 16px; line-height: 32px; }
.p-company-outline__row:nth-child(odd) { background: var(--color-mist); }
.p-company-outline__row dt { color: var(--color-main); font-weight: 500; }
.p-company-access, .p-company-agency { background: var(--color-mist); }
.p-company-access__body { display: grid; grid-template-columns: minmax(0, 480fr) minmax(0, 672fr); gap: 48px; }
.p-company-access__info { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; font-size: 16px; line-height: 32px; }
.p-company-access__info h3 { color: var(--color-main); font-size: 20px; font-weight: 500; }
.p-company-access__info > p { color: var(--color-main); font-weight: 500; }
.p-company-access__map-link { color: var(--color-support); font-size: 14px; }
/* 地図の表示領域を先に確保し、遅延読み込み時のレイアウト移動を防ぐ。 */
.p-company-access__map { min-width: 0; overflow: hidden; border: 1px solid #1b5fa82e; border-radius: 8px; background: #fff; }
.p-company-access__map iframe { display: block; width: 100%; height: 360px; border: 0; }
.p-company-overseas__card { display: flex; flex-direction: column; gap: 24px; padding: 32px; border: 1px solid #1b5fa82e; border-radius: 8px; background: #fff; box-shadow: 0 8px 32px #0a2e520b; }
.p-company-overseas__card h3 { color: var(--color-main); font-size: 22px; font-weight: 500; line-height: 36px; }
.p-company-overseas__subtitle { color: var(--color-support); font-family: var(--font-en); font-size: 14px; line-height: 24px; }
.p-company-overseas__company { color: var(--color-main); font-family: var(--font-en); font-size: 24px; line-height: 38px; }
.p-company-overseas__information { display: grid; grid-template-columns: minmax(0, 664fr) minmax(0, 424fr); gap: 48px; font-family: var(--font-en); font-size: 16px; line-height: 28px; }
.p-company-overseas__label { margin-bottom: 8px; color: var(--color-support); font-family: var(--font-en); font-size: 12px; line-height: 20px; }
.p-company-overseas__channels { display: flex; flex-direction: column; gap: 16px; }
.p-company-overseas__channels a[href^="mailto"] { color: var(--color-support); }
.p-company-agency__badge { color: var(--color-support); font-size: 20px; font-weight: 500; line-height: 32px; }
.p-company-agency h3 { color: var(--color-main); font-size: 24px; font-weight: 500; line-height: 38px; }
.p-company-agency__body { font-size: 16px; line-height: 30px; }
@media (max-width: 767px) {
  .p-company-message { padding-block: 64px; }
  .p-company-message h1 { font-size: 28px; line-height: 44px; }
  .p-company-message__company { font-size: 20px; line-height: 32px; }
  .p-company-message__closing { font-size: 30px; line-height: 48px; letter-spacing: 0; }
  .p-company-message__body { font-size: 15px; line-height: 30px; }
  .p-company-outline__row { grid-template-columns: 1fr; gap: 8px; padding: 24px; font-size: 15px; line-height: 30px; }
  .p-company-access__body, .p-company-overseas__information { grid-template-columns: 1fr; gap: 32px; }
  .p-company-access__map iframe { height: 320px; }
  .p-company-overseas__card { padding: 24px; }
  .p-company-overseas__company { font-size: 20px; line-height: 32px; }
}
