/* =========================================================
   私たちについて / お問い合わせ / 送信完了 / プライバシーポリシー
   site.css の部品で足りない分だけを足す
   ========================================================= */

/* ---------- about: ミッション ---------- */
.mission .section-head { margin-bottom: 0; }
.mission .section-title span { display: block; }
.mission .prose p:last-child { margin-bottom: 0; }

/* ---------- about: 代表メッセージ ---------- */
.ceo-message { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.ceo-message-head .section-title { margin-bottom: 28px; }
.ceo-sign { margin: 0; padding-top: 20px; border-top: 1px solid var(--line); line-height: 1.6; }
.ceo-sign-role { display: block; font-size: 13px; color: var(--muted); letter-spacing: .06em; }
.ceo-sign-name { display: block; font-size: 22px; font-weight: 700; letter-spacing: .12em; margin-top: 4px; }
.ceo-message-body p { font-size: 16px; line-height: 2.1; color: var(--ink); }
.ceo-message-body p:last-child { margin-bottom: 0; }

/* ---------- about: 私たちの特徴 ---------- */
.strengths-intro { align-items: center; margin-bottom: 48px; }
.strengths-intro .section-head { margin-bottom: 0; }
/* 見出しを語句の切れ目で折り返す(行の途中で「毎日/つくっている」と割れないように) */
.phrase-title span { display: inline-block; }
.strengths-photo img { aspect-ratio: 4 / 3; object-position: 78% center; }

/* ---------- about: 会社概要(項目と内容の表。スマホでも横スクロールさせない) ---------- */
.table-wrap--kv { overflow: visible; }
.table--kv { min-width: 0; }
.table--kv tbody th { width: 200px; background: var(--beige); color: var(--ink); font-size: 14px; }
.table--kv td { color: var(--ink); }
.table--kv tbody tr:last-child th, .table--kv tbody tr:last-child td { border-bottom: 0; }
.kv-list { list-style: disc; padding-left: 1.3em; margin: 0; }
.kv-list li { margin: 0 0 2px; }

/* ---------- about: その他の事業 ---------- */
.other-card { display: flex; flex-direction: column; }
.other-card .card-text { flex: 1; }
.other-card .text-link { align-self: flex-start; }

/* ---------- お問い合わせ ---------- */
.contact-layout { gap: 64px; }
.contact-main { min-width: 0; }
.form-actions { display: grid; gap: 4px; justify-items: start; margin-top: 8px; }
.form-actions .btn { min-width: 240px; }
.form-check a { font-weight: 700; }
.contact-aside { position: sticky; top: calc(var(--header-h) + 24px); }
.contact-aside-block + .contact-aside-block { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line-strong); }
.contact-aside-meta { display: inline-block; margin: -4px 0 16px; font-size: 13px; font-weight: 700; color: var(--green); }
.contact-aside .check-list li { font-size: 14.5px; line-height: 1.8; }
.contact-aside-mail { margin: 0 0 4px; font-size: 18px; font-weight: 700; }
.contact-aside-mail a { color: var(--ink); }
.contact-aside-mail a:hover { color: var(--green); }
.contact-aside-text { margin: 0; font-size: 14px; color: var(--ink-2); }

/* ---------- 送信完了 ---------- */
.thanks-callout { border-left: 4px solid var(--green); }
.thanks-callout-title { font-size: 17px; font-weight: 900; margin: 0 0 10px; }
.thanks-callout p:last-child { margin-bottom: 0; }

/* ---------- プライバシーポリシー ---------- */
.policy { max-width: none; }
.policy h2 {
  display: flex; align-items: baseline; gap: 14px;
  font-size: 20px; font-weight: 900; margin: 48px 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--line);
}
.policy h2 .num { font-size: 24px; }
.policy-table { width: 100%; margin: 0 0 16px; border: 1px solid var(--line); font-size: 14.5px; }
.policy-date { margin-top: 48px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 14px; }

@media (max-width: 860px) {
  .contact-layout { gap: 40px; }
  .contact-aside { position: static; padding: 24px 20px; }
  .ceo-message { grid-template-columns: 1fr; gap: 24px; }
  .strengths-intro { margin-bottom: 32px; }
  .policy h2 { font-size: 18px; margin-top: 40px; }
}

@media (max-width: 560px) {
  .table--kv, .table--kv tbody, .table--kv tr, .table--kv th, .table--kv td { display: block; width: 100%; }
  .table--kv tbody th { width: 100%; padding: 10px 16px; border-bottom: 0; }
  .table--kv td { padding: 12px 16px 18px; }
  .table--kv tbody tr:last-child th { border-bottom: 0; }
  .form-actions .btn { width: 100%; }
}

/* contact.php からのエラー戻りで site.js が枠にフォーカスを移す。読み上げ用なので枠線は出さない */
.form-error:focus { outline: none; }
