/* 会社概要：案Dのページ見出し、パンくず、会社情報。 */
.breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; padding-block: 24px; color: var(--corp-muted); font-size: 12px; border-top: 1px solid var(--corp-line); }
.breadcrumb a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
.breadcrumb__divider { width: 16px; height: 1px; background: var(--corp-line); }
.page-heading { padding-top: 64px; }
.page-heading__title { font-size: 40px; }
.page-heading__text { max-width: 36em; margin-top: 24px; color: var(--corp-muted); }
.profile { margin-top: 48px; }
.profile__table { font-size: 16px; }
.about-links { display: flex; flex-wrap: wrap; gap: 16px 32px; margin-top: 32px; }

/* 既存の下層ページも案Dと同じ左端、白地、余白に揃える。 */
.container { width: min(1088px, calc(100% - 96px)); margin-inline: auto; }
main > .page-header > .container { padding-top: 64px; border-top: 1px solid var(--corp-line); }
main > .page-header .page-header__eyebrow { margin-bottom: 16px; color: var(--corp-green); font-size: 12px; font-weight: 500; letter-spacing: .12em; line-height: 1.5; }
main > .page-header .page-header__title { max-width: 24em; font-size: 40px; }
main > .page-header + .section { margin-top: 48px; padding-bottom: 48px; }
.section--cream { background: var(--corp-white); }

.info-table { width: 100%; max-width: 760px; border-collapse: collapse; table-layout: fixed; font-size: 16px; text-align: left; }
.info-table tr { border-bottom: 1px solid var(--corp-line); }
.info-table tr:first-child { border-top: 1px solid var(--corp-line); }
.info-table th { width: 152px; padding: 24px 32px 24px 0; color: var(--corp-muted); font-weight: 400; vertical-align: top; }
.info-table td { padding-block: 24px; }
.info-table__note { display: block; margin-top: 8px; color: var(--corp-muted); font-size: 12px; }
.info-table a, .legal-doc a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; color: var(--corp-green); }
.info-table a:hover, .info-table a:focus-visible,
.legal-doc a:hover, .legal-doc a:focus-visible { color: var(--corp-green-hover); }

/* 沿革の ol のみを対象にし、代表紹介の dl.timeline と分離する。 */
ol.timeline { width: 100%; max-width: 760px; }
ol.timeline > .timeline__item { display: grid; grid-template-columns: 152px minmax(0, 1fr); gap: 32px; padding-block: 24px; border-bottom: 1px solid var(--corp-line); }
ol.timeline > .timeline__item:first-child { border-top: 1px solid var(--corp-line); }
ol.timeline .timeline__date { color: var(--corp-muted); font-size: 14px; font-weight: 400; font-variant-numeric: tabular-nums; }
ol.timeline .timeline__text { max-width: 36em; font-size: 16px; }

/* 法的文書：本文の行長を抑え、見出しと罫線で読みやすくする。 */
.legal-doc { max-width: 760px; }
.legal-doc p { max-width: 36em; margin-bottom: 16px; font-size: 16px; }
.legal-doc .legal-doc__intro { max-width: none; margin-bottom: 48px; padding-bottom: 24px; border-bottom: 1px solid var(--corp-line); color: var(--corp-muted); }
.legal-doc__heading { margin-top: 48px; margin-bottom: 16px; color: var(--corp-green); font-size: 20px; }
.legal-doc__heading:first-of-type { margin-top: 0; }
.legal-doc__list { max-width: 36em; margin-bottom: 24px; padding-left: 24px; list-style: disc; }
.legal-doc__list li { margin-bottom: 8px; }
.legal-doc__box { margin-block: 24px; padding: 24px 32px; border: 1px solid var(--corp-line); border-radius: var(--corp-radius-surface); background: var(--corp-white); }
.legal-doc__box p { margin-bottom: 8px; }
.legal-doc__box p:last-child { margin-bottom: 0; }
.legal-doc .legal-doc__date { max-width: none; margin-top: 48px; margin-bottom: 0; padding-top: 24px; border-top: 1px solid var(--corp-line); color: var(--corp-muted); font-size: 12px; }

/* お問い合わせ：HTMLや送信処理を変えず、既存クラスに適用する。 */
.form { width: 100%; max-width: 640px; }
.form__group { margin-bottom: 24px; }
.form__label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 500; }
.form__required { margin-left: 8px; color: var(--corp-green); font-size: 12px; }
.form__input, .form__textarea {
  width: 100%; min-height: 56px; padding: 12px 16px;
  border: 1px solid var(--corp-line); border-radius: var(--corp-radius-button);
  color: var(--corp-ink); background: var(--corp-white);
  font-family: "Noto Sans JP", sans-serif; font-size: 16px; line-height: 1.5;
  transition: border-color var(--corp-transition);
}
.form__input:hover, .form__input:focus-visible,
.form__textarea:hover, .form__textarea:focus-visible { border-color: var(--corp-green); }
.form__input:focus-visible, .form__textarea:focus-visible { outline: 3px solid var(--corp-focus); outline-offset: 4px; }
.form__textarea { min-height: 160px; resize: vertical; line-height: 2; }
.form__honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.form__submit { margin-top: 32px; }
.form__submit .button { min-width: 160px; justify-content: center; }
.form__note { max-width: 36em; margin-top: 16px; color: var(--corp-muted); font-size: 12px; }
.form__error-list { max-width: 640px; margin-bottom: 32px; padding: 24px 32px 24px 48px; border: 1px solid var(--corp-green); border-radius: var(--corp-radius-surface); color: var(--corp-ink); background: var(--corp-lemon); list-style: disc; font-size: 14px; }
.form__error-list li + li { margin-top: 8px; }

.thanks.section { margin-top: 64px; padding-bottom: 48px; }
.thanks__title { max-width: 24em; margin-bottom: 24px; font-size: 40px; }
.thanks__text { max-width: 36em; margin-bottom: 32px; color: var(--corp-muted); }

@media (max-width: 1040px) {
  .container { width: calc(100% - 64px); }
}
@media (max-width: 760px) {
  .container { width: calc(100% - 48px); }
  .breadcrumb { padding-block: 16px; }
  .page-heading { padding-top: 48px; }
  .page-heading__title { font-size: 32px; }
  .page-heading__text { font-size: 14px; }
  .profile { margin-top: 40px; }
  .profile__table { font-size: 14px; }
  main > .page-header > .container { padding-top: 48px; }
  main > .page-header .page-header__title { font-size: 32px; }
  main > .page-header + .section { margin-top: 40px; }
  .info-table { font-size: 14px; }
  .info-table th { width: 96px; padding-right: 16px; }
  ol.timeline > .timeline__item { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  ol.timeline .timeline__text { font-size: 14px; }
  .legal-doc p, .legal-doc__list { font-size: 14px; }
  .legal-doc__heading { font-size: 20px; }
  .legal-doc__box { padding: 24px; }
  .form__error-list { padding: 24px 24px 24px 40px; }
  .thanks.section { margin-top: 48px; }
  .thanks__title { font-size: 32px; }
  .thanks__text { font-size: 14px; }
}
