/* ─────────────────────────────────────────
   PAGE ABOUT — 財団概要
───────────────────────────────────────── */

/* 概要 table section */
.ab-table-section { background: #fff; padding: 40px 0 60px; }
.ab-table-inner { max-width: 960px; margin: 0 auto; padding: 0 2rem; }

/* Overview wrapper */
.ab-overview-wrap {
  display: flex;
  flex-direction: column;
  gap: 40px;
  position: relative;
  isolation: isolate;
}

/* Section title — bottom border only */
.ab-section-title-wrap {
  box-sizing: border-box;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 0 0 10px;
  gap: 10px;
  border-bottom: 3px solid rgba(0, 143, 141, 0.7);
  backdrop-filter: blur(6px);
  align-self: stretch;
  flex-grow: 0;
  z-index: 0;
}
.ab-section-title-wrap::before,
.ab-section-title-wrap::after { display: none; }
.ab-section-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 26px;
  line-height: 31px;
  letter-spacing: -0.02em;
  color: #008F8D;
  display: flex;
  align-items: center;
  white-space: nowrap;
  flex: none;
  flex-grow: 0;
}
/* Table card */
.ab-table-card {
  background: #FFFFFF;
  border: 1px solid #F3F3F3;
  border-radius: 12px;
  overflow: hidden;
}

/* Info table */
.ab-info-table { width: 100%; border-collapse: collapse; }
.ab-info-table tr {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #EAECF0;
  margin: 0; padding: 0;
}
.ab-info-table tr:last-child { border-bottom: none; }
.ab-info-table th {
  width: 308px;
  min-width: 308px;
  flex-shrink: 0;
  min-height: 72px;
  padding: 16px 24px;
  background: #F5F6F7;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700; font-size: 18px; line-height: 24px;
  color: #008F8D;
  text-align: left;
  display: flex;
  align-items: center;
  border: none;
  box-sizing: border-box;
}
.ab-info-table td {
  flex: 1;
  min-height: 72px;
  padding: 16px 24px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500; font-size: 16px; line-height: 24px;
  color: #42526B;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

/* ── Body layout: sidebar + main ── */
.ab-body-layout {
  max-width: 1200px;
  margin: 0 auto;
  padding: 33px 2rem 119px;
  display: flex;
  align-items: flex-start;
  gap: 40px;
}
.ab-main { flex: 1; min-width: 0; }

/* Neutralize standalone section spacing when nested in the layout */
.ab-body-layout .ab-table-section,
.ab-body-layout .ab-org-section {
  max-width: none;
  margin: 0;
  padding: 0;
  background: transparent;
}
.ab-body-layout .ab-table-inner { max-width: none; margin: 0; padding: 0; }
.ab-body-layout .ab-table-section { margin-bottom: 56px; }

/* Sidebar */
.ab-sidebar {
  width: 270px;
  flex: none;
  position: sticky;
  top: 24px;
}
.ab-sidebar-menu {
  display: flex;
  flex-direction: column;
  border-radius: 16px 16px 0 0;
  overflow: hidden;
}
.ab-sidebar-title {
  display: flex;
  align-items: center;
  min-height: 62px;
  padding: 20px;
  box-sizing: border-box;
  background: #008E8C;
  color: #E9ECEE;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700; font-size: 18px; line-height: 22px;
  border-bottom: 1px solid #FFFFFF;
}
.ab-sidebar-link {
  display: flex;
  align-items: center;
  min-height: 62px;
  padding: 20px;
  box-sizing: border-box;
  background: #E9ECEE;
  color: #008E8C;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700; font-size: 18px; line-height: 22px;
  border-bottom: 1px solid #FFFFFF;
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.ab-sidebar-link:last-child { border-bottom: none; }
.ab-sidebar-link:hover,
.ab-sidebar-link[aria-current="page"] {
  background: #008E8C;
  color: #FFFFFF;
}

/* 組織図 section */
.ab-org-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem 76px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}
.ab-org-section .ab-section-title-wrap { align-self: stretch; }
.ab-org-chart { width: 100%; text-align: center; }
.ab-org-chart img { display: block; max-width: 833px; width: 100%; height: auto; margin: 0 auto; }

/* Responsive */
@media (max-width: 960px) {
  .ab-body-layout { flex-direction: column; padding: 32px 2rem; gap: 24px; }
  .ab-sidebar { width: 100%; position: static; top: auto; }
}

@media (max-width: 768px) {
  .ab-info-table th { width: 140px; min-width: 140px; font-size: 14px; padding: 12px 16px; }
  .ab-info-table td { padding: 12px 16px; font-size: 14px; }
}

@media (max-width: 480px) {
  .ab-info-table tr  { flex-direction: column; }
  .ab-info-table th  { width: 100%; min-width: unset; min-height: unset; }
  .ab-info-table td  { min-height: unset; }
}
