/* =========================================================
   協会概要（org.php）ページ固有スタイル
   共通トークン・ヘッダー・フッターは common.css を継承
   ========================================================= */

/* --- ページヒーロー --- */
.about-hero{background:linear-gradient(160deg,var(--navy-950),var(--navy-800));color:#fff;padding:64px 0 56px}
.about-hero .breadcrumbs{font-size:12px;color:#a9c2d6;margin-bottom:22px}
.about-hero .breadcrumbs a{color:#cfe0ee}.about-hero .breadcrumbs a:hover{color:#fff;text-decoration:underline}
.about-hero .kicker{color:var(--accent-editorial-on-dark)}
.about-hero h1{font-size:clamp(28px,4vw,42px);letter-spacing:.04em;margin:6px 0 18px;line-height:1.3}
.about-hero .about-lead{max-width:720px;color:#dbe7f1;font-size:15px;line-height:2;margin:0}


/* --- ページヒーローの2カラム（2026-08-29 追加：他ページと見た目をそろえる） --- */
.about-hero .hero-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:48px;align-items:center}
.about-hero .hero-text{min-width:0}
@media (max-width:900px){
  .about-hero .hero-grid{grid-template-columns:1fr;gap:28px}
}

/* --- ページ内目次（アンカーTOC） --- */
.about-toc{border-bottom:1px solid var(--line);background:var(--sky-50);position:sticky;top:88px;z-index:40}
.about-toc ul{display:flex;flex-wrap:wrap;gap:8px 4px;list-style:none;margin:0;padding:14px 0;width:var(--container);margin-inline:auto}
.about-toc a{display:inline-block;padding:8px 16px;font-size:13px;font-weight:700;color:#33475a;border-radius:999px;transition:.2s}
.about-toc a:hover{background:#fff;color:var(--blue-600);box-shadow:var(--shadow)}

/* --- セクション枠（このページ用に padding を最適化） --- */
.about-sec{padding:76px 0}
.about-sec.alt{background:var(--sky-50)}
.about-sec.dark{background:linear-gradient(160deg,var(--navy-900),var(--navy-950));color:#fff}
.about-sec .sec-head{margin-bottom:36px}
.about-sec .sec-head h2{font-size:clamp(22px,2.6vw,30px);letter-spacing:.04em;margin:6px 0 14px;color:var(--navy-900)}
.about-sec.dark .sec-head h2{color:#fff}
.about-sec .sec-copy{max-width:760px;color:var(--muted);font-size:14.5px;line-height:2;margin:0}
.about-sec.dark .sec-copy{color:#c6d7e6}

/* --- 目的＋基本情報テーブルの2カラム --- */
.about-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:44px;align-items:start}
.purpose-copy p{color:#2c3e4e;font-size:14.5px;line-height:2.05;margin:0 0 16px}
.fact-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.fact-table{width:100%;border-collapse:collapse;font-size:14px}
.fact-table caption{text-align:left;font-weight:800;color:var(--navy-900);padding:18px 22px 0;letter-spacing:.05em}
.fact-table th,.fact-table td{padding:15px 22px;vertical-align:top;border-top:1px solid var(--line);text-align:left;line-height:1.85}
.fact-table tr:first-child th,.fact-table tr:first-child td{border-top:none}
.fact-table th{width:34%;color:var(--navy-800);font-weight:700;background:var(--sky-50);white-space:nowrap}
.fact-table td small{color:#8795a0}
.fact-table a{color:var(--blue-600);font-weight:700}.fact-table a:hover{text-decoration:underline}
.fact-note{margin:14px 2px 0;font-size:12px;color:#8795a0;line-height:1.7}

/* --- 沿革タイムライン --- */
.about-timeline{position:relative;margin-top:8px;padding-left:4px}
.tl-row{display:grid;grid-template-columns:150px 1fr;gap:26px;padding:0 0 30px 26px;position:relative;border-left:2px solid var(--line)}
.tl-row:last-child{padding-bottom:0}
.tl-row::before{content:"";position:absolute;left:-9px;top:4px;width:16px;height:16px;border-radius:50%;background:var(--blue-500);box-shadow:0 0 0 5px var(--sky-100)}
.tl-year{font-weight:800;color:var(--navy-900);letter-spacing:.03em;line-height:1.4}
.tl-year small{display:block;font-size:10px;color:var(--blue-600);letter-spacing:.14em;margin-top:4px}
.tl-body h3{margin:0 0 8px;font-size:16px;color:var(--navy-900)}
.tl-body p{margin:0;color:var(--muted);font-size:14px;line-height:1.95}

/* --- 運営体制カード --- */
.org-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.org-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow)}
.org-card .oc-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:20px;font-weight:800;color:#fff;background:linear-gradient(150deg,var(--blue-600),var(--navy-800));margin-bottom:16px}
.org-card h3{margin:0 0 10px;font-size:16px;color:var(--navy-900)}
.org-card p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.9}

/* --- 会則ドキュメントカード --- */
.bylaw-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:26px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px 34px}
.bylaw-body{flex:1 1 340px}
.bylaw-body h3{margin:0 0 10px;font-size:18px;color:var(--navy-900)}
.bylaw-body p{margin:0;color:var(--muted);font-size:14px;line-height:1.95}
.bylaw-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.bylaw-actions small{color:#8795a0;font-size:12px}

/* --- 全国支部グリッド（dark） --- */
.branch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.branch-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:22px 24px}
.branch-card h3{margin:0 0 6px;font-size:16px;color:#fff;letter-spacing:.04em}
.branch-card p{margin:0;color:#a9c2d6;font-size:13px}
.branch-note{margin:22px 2px 0;font-size:12px;color:#93aac1;line-height:1.8}

/* --- お問い合わせ導線 --- */
.about-contact{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between;background:var(--sky-100);border-radius:var(--radius);padding:30px 34px}
.about-contact p{margin:0;color:var(--navy-900);font-weight:700;font-size:15px}
.about-contact .ac-actions{display:flex;gap:12px;flex-wrap:wrap}

/* --- 情報基準日 --- */
.about-basis{border-top:1px solid var(--line);padding:26px 0 0;margin-top:8px}
.about-basis address{font-style:normal;color:var(--muted);font-size:12.5px;line-height:1.9}

/* --- レスポンシブ --- */
@media (max-width:860px){
  .about-grid{grid-template-columns:1fr;gap:28px}
  .org-cards,.branch-grid{grid-template-columns:1fr}
  .tl-row{grid-template-columns:110px 1fr;gap:16px}
  .about-toc{position:static}
  .fact-table th{width:40%}
}
@media (prefers-reduced-motion:reduce){
  .about-toc a,.org-card,.about-contact .btn{transition:none}
}

/* ============================================================
   事業（現行サイト /greeting/ の記載）
   ============================================================ */
.works-grid{
  display:grid;gap:16px;margin-top:24px;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
}
.works-card{
  background:#fff;border:1px solid var(--line-200,#d7dfe7);border-radius:10px;padding:20px 22px;
}
.works-card h3{margin:0 0 8px;font-size:15px;color:var(--navy-900,#0a2e4f);}
.works-card p{margin:0;font-size:13.5px;line-height:1.95;color:var(--ink-500,#5b6b7c);}

/* ============================================================
   役員一覧（現行サイト /greeting/ の記載）
   ============================================================ */
.officer-table-wrap{margin-top:24px;overflow-x:auto;}
.officer-table{
  width:100%;border-collapse:collapse;background:#fff;font-size:14px;
  border:1px solid var(--line-200,#d7dfe7);border-radius:10px;overflow:hidden;
}
.officer-table caption{
  text-align:left;font-size:13px;color:var(--ink-500,#5b6b7c);padding:0 0 10px;
}
.officer-table th,.officer-table td{
  padding:12px 16px;text-align:left;border-bottom:1px solid var(--line-200,#d7dfe7);
  vertical-align:middle;line-height:1.7;
}
.officer-table thead th{
  background:var(--sky-50,#f6f9fc);color:var(--navy-900,#0a2e4f);
  font-size:12.5px;font-weight:700;white-space:nowrap;
}
.officer-table tbody th{
  color:var(--navy-800,#123c60);font-weight:600;white-space:nowrap;width:180px;
}
.officer-table tbody tr:last-child th,
.officer-table tbody tr:last-child td{border-bottom:0;}
.officer-table .of-name{font-weight:600;color:var(--navy-900,#0a2e4f);white-space:nowrap;}
.officer-table .of-org{color:var(--ink-500,#5b6b7c);}

@media (max-width:700px){
  .officer-table{font-size:13px;}
  .officer-table th,.officer-table td{padding:10px 12px;}
  .officer-table tbody th{width:auto;}
}
.officer-table .of-note{font-size:12.5px;color:var(--ink-500,#5b6b7c);white-space:nowrap;}
.officer-table .of-name.is-pending{color:var(--ink-500,#5b6b7c);font-weight:400;font-size:13px;}
.as-of{font-size:13px;color:var(--ink-500,#5b6b7c);}

/* ============================================================
   組織図（inc/org-chart.php）
   画像ではなく文字で組む。役員データが変われば同時に新しくなる
   ============================================================ */
.orgchart{margin-top:26px;}
.oc-top{display:flex;justify-content:center;}
.oc-node{
  background:#fff;border:1px solid var(--line-200,#d7dfe7);border-radius:10px;
  padding:14px 20px;display:flex;flex-direction:column;gap:3px;align-items:center;
  text-align:center;min-width:150px;
}
.oc-node--hq{
  background:var(--navy-900,#0a2e4f);border-color:var(--navy-900,#0a2e4f);color:#fff;
  padding:18px 34px;
}
.oc-node--hq .oc-label{font-size:17px;font-weight:700;letter-spacing:.04em;}
.oc-node--hq .oc-sub{font-size:12px;color:rgba(255,255,255,.78);}
.oc-role{font-size:11.5px;color:var(--navy-500,#4a7ba3);letter-spacing:.02em;}
.oc-name{font-size:14.5px;font-weight:700;color:var(--navy-900,#0a2e4f);}
.oc-name.is-pending{font-weight:400;font-size:12.5px;color:var(--ink-500,#5b6b7c);}
.oc-org{font-size:11.5px;color:var(--ink-500,#5b6b7c);line-height:1.5;}

/* 上下をつなぐ縦線 */
.oc-row{
  display:flex;flex-wrap:wrap;justify-content:center;gap:12px;
  position:relative;padding-top:30px;margin-top:0;
}
.oc-row::before{
  content:"";position:absolute;top:0;left:50%;width:1px;height:30px;
  background:var(--line-200,#d7dfe7);
}
.oc-row--sub .oc-node--sm{min-width:132px;padding:11px 15px;}
.oc-row--sub .oc-name{font-size:13px;}

.oc-branch-head{
  position:relative;padding-top:30px;text-align:center;margin-top:0;
}
.oc-branch-head::before{
  content:"";position:absolute;top:0;left:50%;width:1px;height:30px;
  background:var(--line-200,#d7dfe7);
}
.oc-branch-head span{
  display:inline-block;font-size:12px;letter-spacing:.1em;
  color:var(--navy-700,#12456f);background:var(--sky-100,#e7f0f7);
  padding:5px 16px;border-radius:999px;
}
.oc-row--branch{padding-top:22px;}
.oc-row--branch::before{height:22px;}
.oc-node--branch{min-width:168px;}
.oc-node--branch .oc-label{
  font-size:13.5px;font-weight:700;color:var(--navy-800,#123c60);
  padding-bottom:6px;margin-bottom:4px;border-bottom:1px solid var(--line-200,#d7dfe7);
  width:100%;
}
.oc-asof{margin:22px 0 0;text-align:center;font-size:12.5px;color:var(--ink-500,#5b6b7c);}

@media (max-width:700px){
  .oc-row{gap:9px;padding-top:22px;}
  .oc-row::before{height:22px;}
  .oc-node{min-width:44%;padding:11px 12px;}
  .oc-node--branch{min-width:44%;}
}

/* --- 会則の最新化のお願い（2026-08-29 追加。会則が改定されたらこの区画ごと削除する） --- */
.bylaw-alert{margin-top:28px;background:#fff;border:2px solid #b23b3b;border-radius:8px;padding:26px 28px 22px}
.bylaw-alert .ba-badge{display:inline-block;margin:0 0 12px;padding:6px 14px;background:#b23b3b;color:#fff;font-size:12px;font-weight:800;letter-spacing:.1em;border-radius:4px}
.bylaw-alert h3{font-family:"Noto Serif JP","Yu Mincho",serif;font-size:clamp(17px,2vw,21px);line-height:1.6;color:#8e2626;margin:0 0 14px}
.bylaw-alert h3 strong{color:#8e2626}
.bylaw-alert .ba-lead{font-size:14px;line-height:1.95;color:var(--ink);margin:0 0 20px}
.bylaw-alert .ba-list{margin:0;padding-left:0;list-style:none;counter-reset:ba}
.bylaw-alert .ba-list>li{counter-increment:ba;position:relative;padding:16px 0 16px 44px;border-top:1px solid #eddcdc}
.bylaw-alert .ba-list>li::before{content:counter(ba);position:absolute;left:0;top:16px;width:28px;height:28px;border-radius:50%;background:#b23b3b;color:#fff;font-size:13px;font-weight:800;display:grid;place-items:center}
.bylaw-alert .ba-list b{display:block;font-size:15px;color:#8e2626;margin-bottom:7px;line-height:1.6}
.bylaw-alert .ba-list p{font-size:13.5px;line-height:1.95;color:#3a4652;margin:0 0 8px}
.bylaw-alert .ba-list p:last-child{margin-bottom:0}
.bylaw-alert .ba-list strong{color:#8e2626;font-weight:700}
.bylaw-alert .ba-foot{margin:20px 0 0;padding-top:16px;border-top:1px solid #eddcdc;font-size:12.5px;line-height:1.9;color:var(--muted)}
@media (max-width:700px){
  .bylaw-alert{padding:20px 18px 18px}
  .bylaw-alert .ba-list>li{padding-left:36px}
}

.bylaw-note{margin:10px 0 0;font-size:13px;line-height:1.9;color:var(--muted)}
.bylaw-note a{color:var(--blue-600);font-weight:700}
