    :root {
      --primary-blue: #2459C7;
      --primary-blue-dark: #1B4AA9;
      --accent-yellow: #F5C400;
      --accent-yellow-dark: #D8AA00;
      --bg-light: #F7FBFF;
      --bg-soft: #EEF6FF;
      --text-main: #17212B;
      --text-sub: #5D6B7A;
      --line: #DFE8F4;
      --white: #FFFFFF;
      --shadow: 0 12px 36px rgba(36, 89, 199, .08);
      --shadow-soft: 0 8px 24px rgba(19, 40, 73, .08);
      --radius: 22px;
      --radius-sm: 14px;
      --container: 1180px;
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      font-family: 'Noto Sans JP', sans-serif;
      color: var(--text-main);
      background: linear-gradient(180deg, #fbfdff 0%, #f4f9ff 100%);
      line-height: 1.75;
    }
    img { max-width: 100%; display: block; }
    a { color: var(--primary-blue); text-decoration: none; }
    .container { width: min(var(--container), calc(100% - 32px)); margin: 0 auto; }
    .section { padding: 88px 0; }
    .section-title {
      margin: 0 0 18px;
      font-size: clamp(28px, 4vw, 40px);
      line-height: 1.25;
      font-weight: 800;
      text-align: center;
      letter-spacing: .02em;
    }
    .section-lead {
      max-width: 760px;
      margin: 0 auto 44px;
      text-align: center;
      color: var(--text-sub);
      font-size: 15px;
    }

    .header {
      position: sticky;
      top: 0;
      z-index: 1000;
      background: rgba(255,255,255,.92);
      backdrop-filter: blur(14px);
      border-bottom: 1px solid rgba(223,232,244,.8);
    }
    .header-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
      min-height: 84px;
    }
    .logo-wrap img { height: 62px; width: auto; }
    .nav {
      display: flex;
      align-items: center;
      gap: 14px;
    }
    .nav-list {
      list-style: none;
      display: flex;
      gap: 6px;
      margin: 0;
      padding: 0;
    }
    .nav-list a {
      display: inline-block;
      padding: 10px 14px;
      color: var(--text-main);
      font-weight: 500;
      border-radius: 999px;
    }
    .nav-list a:hover { background: var(--bg-soft); color: var(--primary-blue); }
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      min-height: 48px;
      padding: 0 22px;
      border-radius: 999px;
      font-weight: 700;
      transition: .25s ease;
      border: 2px solid transparent;
    }
    .btn:hover { transform: translateY(-2px); }
    .btn-primary {
      background: var(--accent-yellow);
      color: #1b1b1b;
      box-shadow: 0 10px 24px rgba(245,196,0,.25);
    }
    .btn-primary:hover { background: #ffd227; }
    .btn-secondary {
      background: var(--primary-blue);
      color: #fff;
      box-shadow: 0 10px 24px rgba(36,89,199,.22);
    }
    .btn-secondary:hover { background: var(--primary-blue-dark); }
    .btn-outline {
      background: transparent;
      color: var(--primary-blue);
      border-color: var(--primary-blue);
    }
    .btn-outline:hover { background: var(--primary-blue); color: #fff; }
    .menu-btn {
      display: none;
      width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 14px; background: #fff;
      align-items: center; justify-content: center; flex-direction: column; gap: 5px; cursor: pointer;
    }
    .menu-btn span { width: 20px; height: 2px; background: var(--text-main); border-radius: 2px; }

    .hero {
      position: relative;
      overflow: hidden;
      padding: 88px 0 72px;
      background:
        radial-gradient(circle at 82% 12%, rgba(36,89,199,.18) 0, rgba(36,89,199,0) 24%),
        radial-gradient(circle at 12% 85%, rgba(245,196,0,.18) 0, rgba(245,196,0,0) 26%),
        linear-gradient(180deg, #f7fbff 0%, #eef6ff 100%);
    }
    .hero::before, .hero::after {
      content: ""; position: absolute; border-radius: 50%; pointer-events: none;
    }
    .hero::before {
      width: 520px; height: 520px; right: -140px; top: -160px;
      background: radial-gradient(circle, rgba(36,89,199,.16), rgba(36,89,199,0) 72%);
    }
    .hero::after {
      width: 360px; height: 360px; left: -120px; bottom: -120px;
      background: radial-gradient(circle, rgba(245,196,0,.20), rgba(245,196,0,0) 72%);
    }
    .hero-inner { position: relative; z-index: 1; text-align: center; }
    .hero-logo {
      margin: 0 auto 20px;
      width: min(520px, 92%);
      background: rgba(255,255,255,.8);
      border: 1px solid rgba(255,255,255,.9);
      box-shadow: var(--shadow);
      border-radius: 28px;
      padding: 18px 24px;
    }
    .eyebrow {
      display: inline-block;
      margin-bottom: 18px;
      padding: 8px 14px;
      background: rgba(36,89,199,.08);
      color: var(--primary-blue);
      border-radius: 999px;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: .06em;
    }
    .hero h1 {
      margin: 0;
      font-size: clamp(34px, 5vw, 58px);
      line-height: 1.22;
      font-weight: 800;
      letter-spacing: .02em;
    }
    .hero p {
      max-width: 860px;
      margin: 22px auto 0;
      font-size: clamp(15px, 2vw, 18px);
      color: var(--text-sub);
    }
    .hero-actions {
      display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; margin-top: 34px;
    }
    .hero-actions .btn-white { border-color: var(--primary-blue); }
    .hero-panel {
      margin-top: 40px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
    }
    .hero-card {
      background: rgba(255,255,255,.88);
      border: 1px solid rgba(255,255,255,.95);
      box-shadow: var(--shadow-soft);
      border-radius: 22px;
      padding: 22px;
      text-align: left;
    }
    .hero-card strong { display: block; font-size: 18px; margin-bottom: 6px; }
    .hero-card p { margin: 0; font-size: 14px; max-width: none; }

    .news-section { background: #fff; }
    .news-list { display: grid; gap: 18px; }
    .news-item {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 24px;
      box-shadow: var(--shadow-soft);
    }
    .badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
    .badge {
      display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: 999px;
      font-size: 12px; font-weight: 800; letter-spacing: .04em;
    }
    .badge.new { background: var(--primary-blue); color: #fff; }
    .badge.important { background: #ff7171; color: #fff; }
    .news-date { color: var(--text-sub); font-weight: 700; margin-right: 12px; }
    .center { text-align: center; margin-top: 30px; }

    .features {
      background: linear-gradient(180deg, #f5faff 0%, #ffffff 100%);
    }
    .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
    .card {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow-soft);
      padding: 30px 26px;
      transition: .25s ease;
    }
    /* .card:hover は削除（活動カードはクリック不可のため） */
    .icon {
      width: 58px; height: 58px; border-radius: 18px; display: grid; place-items: center; margin-bottom: 18px;
      background: linear-gradient(135deg, rgba(36,89,199,.12), rgba(245,196,0,.18));
      color: var(--primary-blue);
      font-size: 26px; font-weight: 800;
    }
    .card h3 { margin: 0 0 10px; font-size: 22px; line-height: 1.35; }
    .card p { margin: 0; color: var(--text-sub); font-size: 15px; }

    .members {
      background: var(--bg-soft);
    }
    .panel {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 28px;
      box-shadow: var(--shadow);
      padding: 28px;
    }
    .iframe-box {
      border-radius: 18px;
      overflow: hidden;
      border: 1px solid var(--line);
      min-height: 520px;
      background: #fff;
    }
    .iframe-box iframe { width: 100%; height: 520px; border: 0; }
    .panel-note { margin: 16px 0 0; color: var(--text-sub); text-align: center; }

    .public { background: #fff; }
    .info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
    .info-card {
      background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 28px;
      box-shadow: var(--shadow-soft);
    }
    .info-card h3 { margin: 0 0 16px; color: var(--primary-blue); font-size: 22px; }
    .info-card ul { list-style: none; padding: 0; margin: 0; }
    .info-card li + li { margin-top: 10px; }
    .info-card a {
      display: block;
      padding: 10px 12px;
      background: rgba(255,255,255,.72);
      border: 1px solid rgba(223,232,244,.9);
      border-radius: 12px;
      color: var(--text-main);
      font-weight: 500;
    }
    .info-card a:hover { background: #fff; color: var(--primary-blue); }

    .contact {
      background: linear-gradient(135deg, #2459C7 0%, #1B4AA9 100%);
      color: #fff;
    }
    .contact-box {
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.14);
      border-radius: 30px;
      padding: 34px;
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 28px;
      align-items: center;
    }
    .contact h2 { margin: 0 0 12px; font-size: clamp(28px, 4vw, 40px); }
    .contact p { margin: 0; color: rgba(255,255,255,.86); }
    .contact-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
    .btn-white { background: #fff; color: var(--primary-blue); }
    .btn-white:hover { background: #f5f8ff; }
    .btn-ghost { border-color: rgba(255,255,255,.6); color: #fff; }
    .btn-ghost:hover { background: rgba(255,255,255,.14); }

    .footer {
      background: #11253F;
      color: rgba(255,255,255,.86);
      padding: 42px 0 18px;
    }
    .footer-grid {
      display: grid;
      grid-template-columns: 1.4fr .8fr;
      gap: 28px;
      align-items: start;
    }
    .footer h3 { margin: 0 0 14px; font-size: 22px; color: #fff; }
    .footer p { margin: 0; }
    .footer ul { list-style: none; margin: 0; padding: 0; }
    .footer li + li { margin-top: 10px; }
    .footer a { color: rgba(255,255,255,.86); }
    .footer a:hover { color: #fff; }
    .footer-bottom {
      margin-top: 24px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.12); font-size: 13px; text-align: center;
    }

    .back-top {
      position: fixed; right: 22px; bottom: 22px; width: 52px; height: 52px; border: 0; border-radius: 50%;
      background: var(--primary-blue); color: #fff; font-size: 20px; box-shadow: var(--shadow); cursor: pointer;
      opacity: 0; visibility: hidden; transition: .25s ease; z-index: 999;
    }
    .back-top.show { opacity: 1; visibility: visible; }


    .support-info {
      background: #ffffff;
    }
    .info-tabs {
      border-radius: 18px;
      overflow: hidden;
      border: 1px solid var(--line);
      box-shadow: var(--shadow-soft);
      background: #fff;
    }
    .tab-header {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
    }
    .tab-btn {
      appearance: none;
      border: 0;
      padding: 16px 14px;
      background: #dfeafb;
      color: var(--text-main);
      text-align: center;
      font-weight: 700;
      font-size: 15px;
      cursor: pointer;
      transition: .2s ease;
      border-right: 1px solid rgba(255,255,255,.65);
    }
    .tab-btn:last-child { border-right: 0; }
    .tab-btn:hover { background: #cfe0fb; }
    .tab-btn.active {
      background: var(--primary-blue);
      color: #fff;
    }
    .tab-panels {
      background: #f7fbff;
      padding: 22px;
    }
    .tab-panel {
      display: none;
    }
    .tab-panel.active {
      display: block;
    }
    .support-intro {
      margin: 0 0 18px;
      color: var(--text-sub);
      font-size: 15px;
    }
    .support-list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: grid;
      gap: 14px;
    }
    .support-list li {
      padding: 16px 18px;
      background: #fff;
      border-radius: 14px;
      border: 1px solid var(--line);
      box-shadow: 0 6px 18px rgba(19, 40, 73, .05);
    }
    .support-list li strong {
      display: inline-block;
      margin-bottom: 4px;
      font-size: 16px;
    }
    .support-list li .tel {
      color: var(--primary-blue);
      font-weight: 700;
    }


    .kic-news-section {
      background: linear-gradient(180deg, #f7fbff 0%, #ffffff 100%);
    }
    .kic-news-box {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 28px;
      box-shadow: var(--shadow);
      padding: 28px;
    }
    .kic-news-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }
    .kic-year-card {
      background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
      border: 1px solid var(--line);
      border-radius: 20px;
      padding: 22px 20px;
      box-shadow: var(--shadow-soft);
    }
    .kic-year-card h3 {
      margin: 0 0 14px;
      font-size: 22px;
      color: var(--primary-blue);
    }
    .kic-links {
      list-style: none;
      padding: 0;
      margin: 0;
      display: grid;
      gap: 10px;
    }
    .kic-links a {
      display: block;
      padding: 10px 12px;
      border-radius: 12px;
      background: rgba(255,255,255,.78);
      border: 1px solid rgba(223,232,244,.9);
      color: var(--text-main);
      font-weight: 500;
    }
    .kic-links a:hover {
      background: #fff;
      color: var(--primary-blue);
    }
    .kic-news-note {
      margin: 20px 0 0;
      color: var(--text-sub);
      text-align: center;
      font-size: 14px;
    }


    .image-banner-section {
      background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
      padding: 14px 0 36px;
    }
    .image-banner-wrap {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 28px;
      box-shadow: var(--shadow);
      padding: 18px;
    }
    .image-banner-link {
      display: block;
      overflow: hidden;
      border-radius: 20px;
      position: relative;
      box-shadow: var(--shadow-soft);
    }
    .image-banner-link img {
      width: 100%;
      height: auto;
      display: block;
      transition: transform .35s ease;
    }
    .image-banner-link:hover img {
      transform: scale(1.02);
    }
    .image-banner-caption {
      margin-top: 14px;
      text-align: center;
      color: var(--text-sub);
      font-size: 14px;
    }

    @media (max-width: 980px) {
      .nav-list, .nav .btn { display: none; }
      .menu-btn { display: inline-flex; }
      .nav.open {
        position: absolute; left: 16px; right: 16px; top: calc(100% + 10px); background: #fff; border: 1px solid var(--line);
        border-radius: 22px; box-shadow: var(--shadow); padding: 16px; display: block;
      }
      .nav.open .nav-list { display: flex; flex-direction: column; gap: 8px; }
      .nav.open .nav-list a { display: block; padding: 12px 14px; background: var(--bg-soft); }
      .nav.open .btn { display: inline-flex; margin-top: 14px; width: 100%; }
      .hero-panel, .grid-3, .info-grid, .contact-box, .footer-grid, .kic-news-grid { grid-template-columns: 1fr; }
      .contact-actions { justify-content: flex-start; }

      .tab-header { grid-template-columns: 1fr; }
      .tab-btn { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.65); }
      .tab-btn:last-child { border-bottom: 0; }
    }

    @media (max-width: 640px) {
      .section { padding: 68px 0; }
      .header-inner { min-height: 78px; }
      .logo-wrap img { height: 54px; }
      .hero { padding-top: 62px; }
      .hero-logo { padding: 14px 16px; border-radius: 20px; }
      .hero-actions .btn, .contact-actions .btn { width: 100%; }
      .news-item, .card, .info-card, .panel, .contact-box { padding: 22px 18px; }
      .iframe-box, .iframe-box iframe { min-height: 380px; height: 380px; }
      .back-top { width: 46px; height: 46px; right: 16px; bottom: 16px; }
    }

/* =========================================
   WordPress化で追加した箇所（メンバーズニュース：iframe解除に伴う置き換え／新着一覧ページ）
   ここより上は現行サイトのCSSをそのまま移植したもの。変更禁止
   ======================================= */
.members-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  padding: 4px 0 12px;
}
.members-card {
  flex: 0 1 210px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  color: var(--text-main);
  text-decoration: none;
  transition: box-shadow .2s ease, transform .2s ease;
}
a.members-card:hover {
  box-shadow: var(--shadow-soft);
  transform: translateY(-2px);
}
.members-thumb img {
  width: 100%;
  height: 120px;
  object-fit: contain;
  border-radius: 8px;
  background: var(--bg-light);
}
.members-title {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

/* 新着情報一覧（home.php）のページネーション */
.page-news-list { padding-top: 140px; }
.news-pagination { margin-top: 28px; text-align: center; }
.news-pagination .nav-links { display: inline-flex; gap: 8px; align-items: center; }
.news-pagination .page-numbers {
  display: inline-block;
  min-width: 38px;
  padding: 8px 12px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--text-main);
  text-decoration: none;
  font-weight: 500;
}
.news-pagination .page-numbers.current {
  background: var(--primary-blue);
  border-color: var(--primary-blue);
  color: var(--white);
}
.news-pagination a.page-numbers:hover { border-color: var(--primary-blue); color: var(--primary-blue); }
.members-desc {
  font-size: 12px;
  color: var(--text-sub);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* =========================================
   下層ページ共通スタイル（旧t_*.html群の<style>から下層固有分のみ移植）
   ヘッダー/フッター等の重複定義はテーマ既存分を使うため除外
   ======================================= */
.page-hero {
  position:relative; overflow:hidden; padding:68px 0 42px;
  background: radial-gradient(circle at 84% 12%, rgba(36,89,199,.16) 0, rgba(36,89,199,0) 24%),
              radial-gradient(circle at 10% 86%, rgba(245,196,0,.18) 0, rgba(245,196,0,0) 24%),
              linear-gradient(180deg, #f7fbff 0%, #eef6ff 100%);
}
.page-hero::before { content:""; position:absolute; right:-120px; top:-120px; width:360px; height:360px; border-radius:50%; background:radial-gradient(circle, rgba(36,89,199,.14), rgba(36,89,199,0) 72%); }
.breadcrumb { display:flex; flex-wrap:wrap; gap:10px; align-items:center; color:var(--text-sub); font-size:14px; }
.breadcrumb span.sep { opacity:.45; }
.page-eyebrow { display:inline-block; margin:20px 0 14px; padding:8px 14px; background:rgba(36,89,199,.08); color:var(--primary-blue); border-radius:999px; font-size:13px; font-weight:700; letter-spacing:.06em; }
.page-title { margin:0; font-size:clamp(30px, 5vw, 52px); line-height:1.22; font-weight:800; }
.page-lead { max-width:820px; margin:18px 0 0; color:var(--text-sub); font-size:16px; }
.content-wrap { padding: 40px 0 88px; }
.content-grid { display:grid; grid-template-columns: 280px minmax(0, 1fr); gap:28px; align-items:start; }
.content-grid.no-side { grid-template-columns: minmax(0, 1fr); }
.side-card, .content-card, .section-card { background:#fff; border:1px solid var(--line); border-radius:26px; box-shadow: var(--shadow-soft); }
.side-card { position:sticky; top:108px; padding:24px; }
.side-title { margin:0 0 14px; font-size:16px; font-weight:800; color:var(--primary-blue); }
.side-nav { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.side-nav a { display:block; padding:12px 14px; border-radius:14px; background:#f8fbff; color:var(--text-main); font-weight:600; }
.side-nav a:hover { background:var(--bg-soft); color:var(--primary-blue); text-decoration:none; }
.content-card { padding: 34px; }
.section-card { padding: 28px; margin-top:22px; }
.article { font-size:16px; color:var(--text-main); }
.article > *:first-child { margin-top:0; }
.article p { margin:0 0 1em; }
.article .kname { margin-top: 18px; font-weight:700; color:var(--primary-blue-dark); }
.section-heading { margin:0 0 18px; padding-bottom:12px; border-bottom:1px solid var(--line); font-size:24px; line-height:1.4; font-weight:800; }
.sub-heading { margin:0 0 12px; font-size:20px; font-weight:800; color:var(--primary-blue-dark); }
.note { margin-top:16px; color:var(--text-sub); font-size:14px; }
.table-scroll { overflow:auto; border-radius:18px; border:1px solid var(--line); }
.article table { width:100% !important; border-collapse:collapse; min-width:560px; background:#fff; }
.article th, .article td { border:1px solid var(--line); padding:12px 14px; vertical-align:top; font-size:15px; }
.article th { background:#f3f8ff; font-weight:800; }
.article tr:nth-child(even) td { background:#fcfdff; }
.article ul { padding-left: 1.2em; }
.article li { margin-bottom: .45em; }
.article .image-panel { background:#fff; border:1px solid var(--line); border-radius:20px; padding:18px; box-shadow:var(--shadow-soft); }
.article .image-panel img { margin:0 auto; border-radius:12px; }
.year-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:14px; }
.year-card { border:1px solid var(--line); border-radius:18px; padding:18px; background:linear-gradient(180deg, #ffffff 0%, #f9fbff 100%); }
.year-card strong { display:block; font-size:18px; margin-bottom:6px; }
.panel-grid { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:18px; }
.info-box { background:linear-gradient(180deg,#fff 0%,#f8fbff 100%); border:1px solid var(--line); border-radius:20px; padding:22px; }
.info-box h3 { margin:0 0 10px; font-size:18px; color:var(--primary-blue-dark); }
.info-box p:last-child { margin-bottom:0; }
.kpi-grid { display:grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap:14px; margin-top:18px; }
.kpi-card { border:1px solid var(--line); border-radius:18px; padding:18px; background:linear-gradient(180deg, #ffffff 0%, #f9fbff 100%); }
.kpi-card strong { display:block; font-size:30px; line-height:1.2; color:var(--primary-blue); }
.kpi-card span { color:var(--text-sub); font-size:14px; }
.contact-card { display:grid; grid-template-columns: 1.05fr .95fr; gap:18px; align-items:stretch; }
.map-frame { width:100%; min-height:420px; border:0; border-radius:22px; }
.cta-box { margin-top:22px; display:flex; flex-wrap:wrap; gap:12px; }

/* ドロップダウンメニュー（WordPressメニュー管理対応） */
.nav-list li { position: relative; }
.nav-list .sub-menu { list-style: none; margin: 0; }
.nav-list .menu-item-has-children > a::after { content: "▾"; margin-left: 6px; font-size: 11px; opacity: .55; }
@media (min-width: 1201px) {
  .nav-list .sub-menu {
    padding: 10px;
    position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%);
    min-width: 220px; background: #fff; border: 1px solid var(--line);
    border-radius: 16px; box-shadow: var(--shadow);
    display: none; z-index: 1002;
  }
  /* 親とメニューの8pxの隙間を透明領域でつなぎ、カーソルを下ろしても閉じないようにする */
  .nav-list .sub-menu::before { content: ""; position: absolute; top: -12px; left: 0; right: 0; height: 12px; }
  .nav-list li:hover > .sub-menu, .nav-list li:focus-within > .sub-menu { display: grid; gap: 4px; }
  .nav-list .sub-menu a { display: block; padding: 10px 14px; border-radius: 10px; white-space: nowrap; }
  .nav-list .sub-menu a:hover { background: var(--bg-soft); color: var(--primary-blue); text-decoration: none; }
}

/* フッター: ヘッダーと同じ親子関係のサイトマップ */
.footer-sitemap { margin-bottom: 40px; }
.footer-sitemap-list { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.footer-sitemap-list > li { margin-bottom: 18px; }
.footer-sitemap-list > li > a { color: #fff; font-weight: 700; font-size: 15px; }
.footer-sitemap-list > li.menu-item-has-children > a {
  display: block; padding-bottom: 8px; margin-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.22);
}
.footer-sitemap-list > li.menu-item-has-children > a[href="#"] { pointer-events: none; cursor: default; }
.footer-sitemap-list .sub-menu {
  list-style: none; margin: 0; padding: 0 0 0 16px;
  display: flex; flex-wrap: wrap; gap: 8px 32px;
}
.footer-sitemap-list .sub-menu li + li { margin-top: 0; }
.footer-sitemap-list .sub-menu a { opacity: .9; font-weight: 500; }
.footer-sitemap-list .sub-menu a:hover, .footer-sitemap-list > li > a:hover { opacity: 1; text-decoration: underline; }
.footer-sitemap-extra > li { margin-top: 0; margin-bottom: 18px; }
.footer-sitemap-extra > li:last-child { margin-bottom: 0; }

@media (max-width: 980px) {
  /* minmax(0,1fr) にする: 素の 1fr は最小幅が中身に引っ張られ、
     幅の広い表があるとスマホでページ全体が横にはみ出す */
  .content-grid, .contact-card, .panel-grid, .kpi-grid { grid-template-columns: minmax(0, 1fr); }
  .side-card { position: static; }
  .nav-list .sub-menu { position: static; transform: none; display: block; border: 0; box-shadow: none; padding: 0 0 0 16px; min-width: 0; }
}
@media (max-width: 720px) {
  .page-hero { padding:52px 0 30px; }
  .content-wrap { padding:26px 0 68px; }
  .content-card, .section-card, .side-card { padding:18px; border-radius:20px; }
  .page-title { font-size: clamp(28px, 8vw, 38px); }
  .page-lead, .article, .article p, .article li { font-size: 15px; }
  .article th, .article td { padding: 10px 12px; font-size: 14px; }
  .article table { min-width:480px; }
  .breadcrumb { gap: 6px; font-size: 12px; }
  .cta-box { flex-direction: column; }
  .cta-box .btn { width: 100%; }
  .map-frame { min-height: 300px; }
}

/* 会員企業検索ページ（/member/・新規） */
.member-filter { background:#fff; border:1px solid var(--line); border-radius:22px; padding:20px; box-shadow:var(--shadow-soft); margin-bottom:20px; }
.member-class-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.class-tab { padding:8px 18px; border-radius:999px; background:#f3f8ff; color:var(--text-main); font-weight:700; font-size:14px; }
.class-tab:hover { text-decoration:none; color:var(--primary-blue); }
.class-tab.active { background:var(--primary-blue); color:#fff; }
.member-filter-row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.member-filter-row select, .member-filter-row input[type=text] {
  padding:12px 14px; border:1px solid var(--line); border-radius:12px; font-size:15px;
  font-family:inherit; background:#fff; color:var(--text-main); min-width:220px;
}
.member-filter-row input[type=text] { flex:1; min-width:180px; }
.member-filter-row .btn { min-height:44px; }
.member-reset { font-size:14px; color:var(--text-sub); text-decoration:underline; }
.member-count { color:var(--text-sub); margin:0 0 14px; }
.member-count strong { color:var(--primary-blue); font-size:20px; }
.member-list { display:grid; gap:14px; }
.member-card-item { background:#fff; border:1px solid var(--line); border-radius:20px; padding:22px; box-shadow:var(--shadow-soft); }
.member-card-head { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:flex-start; margin-bottom:10px; }
.member-name { margin:0; font-size:20px; font-weight:800; }
.member-tags { display:flex; gap:6px; flex-wrap:wrap; }
.member-tag { font-size:12px; font-weight:700; padding:4px 10px; border-radius:999px; background:rgba(36,89,199,.08); color:var(--primary-blue); }
.member-tag:hover { background:var(--primary-blue); color:#fff; text-decoration:none; }
.member-detail { margin:0; display:grid; gap:6px; }
.member-detail div { display:grid; grid-template-columns:90px minmax(0,1fr); gap:10px; }
.member-detail dt { color:var(--text-sub); font-size:13px; font-weight:700; padding-top:2px; }
.member-detail dd { margin:0; font-size:15px; }
.member-link { display:inline-block; margin-top:12px; font-weight:700; }
.member-none { padding:40px 0; text-align:center; color:var(--text-sub); }
@media (max-width: 720px) {
  .member-filter-row select, .member-filter-row input[type=text], .member-filter-row .btn { width:100%; }
  .member-detail div { grid-template-columns:1fr; gap:0; }
}

/* お問い合わせフォーム（旧req移植・新規） */
.req-form table { width:100%; border-collapse:collapse; background:#fff; }
.req-form th { width:180px; background:#f3f8ff; text-align:left; font-weight:700; }
.req-form th, .req-form td { border:1px solid var(--line); padding:14px; vertical-align:top; font-size:15px; }
.req-form input[type=text], .req-form input[type=tel], .req-form input[type=email], .req-form textarea {
  width:100%; max-width:480px; padding:10px 12px; border:1px solid var(--line); border-radius:10px;
  font-size:15px; font-family:inherit; color:var(--text-main);
}
.req-form textarea { max-width:100%; }
/* 「2,000円／月 [3] 月 ＝ [6000] 円」のように短い入力欄と注記を1行に並べる欄用 */
.req-form input.req-short { width:auto; max-width:100%; display:inline-block; vertical-align:middle; }
.req-form td .note { display:inline-block; margin-top:0; vertical-align:middle; }
.req-form td .note + .note, .req-form td br + .note { margin-top:6px; }
.req-form select {
  padding:10px 12px; border:1px solid var(--line); border-radius:10px;
  font-size:15px; font-family:inherit; color:var(--text-main); background:#fff; max-width:100%;
}
.req-required { display:inline-block; margin-left:6px; padding:1px 8px; border-radius:999px; background:#ff7171; color:#fff; font-size:11px; font-weight:700; }
.req-errors { margin-bottom:16px; padding:14px 18px; border:1px solid #ffb4b4; background:#fff5f5; border-radius:14px; color:#c53030; }
.req-errors p { margin:0; }
.req-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; }
@media (max-width:720px){ .req-form th { width:110px; } }

/* ページ内リンクの着地位置: 固定ヘッダー(84px)に見出しが隠れないようにする
   JSが無効な環境やブラウザ標準のジャンプでも正しい位置で止まる */
.article h2, .article h3, [id] { scroll-margin-top: 96px; }

/* ヘッダーロゴ: 公式シンボルマーク（正方形）＋法人名テキスト
   1〜521行の移植CSSにある .logo-wrap img { height:62px } をここで上書きする */
.logo-wrap { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.logo-wrap:hover { text-decoration: none; }
.logo-symbol { height: 62px; width: 62px; flex: none; }
.logo-text { display: flex; flex-direction: column; line-height: 1.25; }
/* 3行とも元ロゴ(6-logo.png)と同じ青。元画像の実測色は #1446C3 でほぼ同色 */
.logo-corp { font-size: 11px; font-weight: 700; color: var(--primary-blue); letter-spacing: .04em; }
.logo-name { font-size: 22px; font-weight: 800; color: var(--primary-blue); letter-spacing: .01em; white-space: nowrap; }
.logo-en { font-size: 10px; font-weight: 700; color: var(--primary-blue); letter-spacing: .04em; white-space: nowrap; }
@media (max-width: 640px) {
  .logo-symbol { height: 54px; width: 54px; }
  .logo-corp { font-size: 10px; }
  .logo-name { font-size: 18px; }
  .logo-en { font-size: 9px; }
}

/* KICバックナンバー一覧(/kic-news/)は年カードを複数列で */
.kic-archive-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
@media (max-width: 980px) { .kic-archive-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 600px) { .kic-archive-grid { grid-template-columns: 1fr; } }

/* 会報誌(トップ直近6号 / アーカイブ全号)。KICニュースと同じ白カード内に表紙を並べる */
.kaihou-section { background: var(--bg-soft); }
.kaihou-box {
  margin-top: 28px; padding: 28px; background: #fff; border: 1px solid var(--line);
  border-radius: 28px; box-shadow: var(--shadow-soft);
}
.kaihou-grid { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 18px; }
.kaihou-card { display: flex; flex-direction: column; gap: 8px; color: var(--text-main); text-decoration: none; }
a.kaihou-card { transition: transform .2s ease; }
a.kaihou-card:hover { transform: translateY(-3px); text-decoration: none; }
.kaihou-cover {
  display: block; aspect-ratio: 210 / 297; background: var(--bg-soft);
  border: 1px solid var(--line); border-radius: 8px; overflow: hidden;
  box-shadow: 0 2px 8px rgba(23,33,43,.08); transition: box-shadow .2s ease;
}
a.kaihou-card:hover .kaihou-cover { box-shadow: 0 8px 22px rgba(36,89,199,.22); }
.kaihou-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* 表紙画像が無い号のプレースホルダ（空枠に見えないよう号数と発行月を出す） */
.kaihou-cover--empty { display: flex; align-items: center; justify-content: center; border-style: dashed; }
.kaihou-cover-alt { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px; text-align: center; }
.kaihou-cover-alt strong { font-size: 20px; font-weight: 800; color: var(--primary-blue); line-height: 1.2; }
.kaihou-cover-alt em { font-size: 12px; font-style: normal; color: var(--text-main); }
.kaihou-cover-alt span { font-size: 10px; color: var(--text-sub); margin-top: 4px; }
.kaihou-label { font-size: 12px; font-weight: 700; line-height: 1.5; text-align: center; }
@media (max-width: 1080px) { .kaihou-grid { grid-template-columns: repeat(4, minmax(0,1fr)); } }
@media (max-width: 720px) { .kaihou-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; } .kaihou-box { padding: 18px; } }
@media (max-width: 480px) { .kaihou-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }

/* 会報誌アーカイブ(/kaihou/)は全号なので1行あたりを増やす */
.kaihou-archive-grid { grid-template-columns: repeat(6, minmax(0,1fr)); }
@media (max-width: 1080px) { .kaihou-archive-grid { grid-template-columns: repeat(4, minmax(0,1fr)); } }
@media (max-width: 720px) { .kaihou-archive-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 480px) { .kaihou-archive-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }

/* あゆみアーカイブ(/ayumiitiran/) */
.ayumi-year-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
a.ayumi-year-card { display:block; color:var(--text-main); transition: box-shadow .2s ease, transform .2s ease; }
a.ayumi-year-card:hover { box-shadow: var(--shadow-soft); transform: translateY(-2px); text-decoration:none; }
.ayumi-year-card strong { font-size:16px; }
.ayumi-kind { display:block; margin-top:6px; font-size:13px; color:var(--primary-blue); font-weight:700; }
@media (max-width: 720px) { .ayumi-year-grid { grid-template-columns: 1fr; } }

.kic-news-note { text-align: center; }

/* ヘッダー項目増(KICニュース/アクセス/お問い合わせボタン)対応:
   折返し禁止+余白圧縮。1200px以下はハンバーガーに切替 */
.nav-list a, .nav .btn { white-space: nowrap; }
.nav { gap: 10px; }
.nav-list { gap: 2px; }
.nav-list a { padding: 10px 11px; }
.nav .btn { padding: 0 16px; }
@media (max-width: 1200px) {
  .nav-list, .nav .btn { display: none; }
  .menu-btn { display: inline-flex; }
  .nav.open {
    position: absolute; left: 16px; right: 16px; top: calc(100% + 10px); background: #fff; border: 1px solid var(--line);
    border-radius: 22px; box-shadow: var(--shadow); padding: 16px; display: block;
  }
  .nav.open .nav-list { display: flex; flex-direction: column; gap: 8px; }
  .nav.open .nav-list a { display: block; padding: 12px 14px; background: var(--bg-soft); white-space: normal; }
  .nav.open .btn { display: inline-flex; margin-top: 14px; width: 100%; }
  .nav-list .sub-menu { position: static; transform: none; display: block; border: 0; box-shadow: none; padding: 0 0 0 16px; min-width: 0; }
}

/* 公益法人情報公開: 2カード + 総会資料(全幅・書類リスト) */
.info-grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.soukai-panel { margin-top: 22px; }
.soukai-links { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.info-card .soukai-links li { margin-top: 0;}
.soukai-links a {
  display: block; padding: 10px 12px;
  background: rgba(255,255,255,.72); border: 1px solid rgba(223,232,244,.9);
  border-radius: 12px; color: var(--text-main); font-weight: 500;
}
.soukai-links a:hover { background: #fff; color: var(--primary-blue); }
.soukai-panel .kic-news-note { margin: 16px 0 0; }

/* お問い合わせボックス: ボタン2行(PCは同幅で整列) */
.contact-actions-stack { flex-direction: column; align-items: flex-end; gap: 12px; }
.contact-actions-row { display: grid; grid-template-columns: repeat(2, 230px); gap: 12px; }
@media (max-width: 980px) {
  .info-grid-2 { grid-template-columns: 1fr; }
  .soukai-links { grid-template-columns: 1fr; }
  .contact-actions-stack { align-items: stretch; }
  .contact-actions-row { grid-template-columns: 1fr; }
}

/* モバイル開時メニュー: 親をタップでアコーディオン開閉 */
@media (max-width: 1200px) {
  .nav.open .nav-list { display: flex; flex-direction: column; gap: 8px; }
  .nav.open .nav-list > li > a {
    display: block; padding: 13px 16px; background: var(--bg-soft);
    border-radius: 12px; font-weight: 600;
  }
  /* 親(倶楽部について等): タップで開閉。右端の▾が開閉状態を示す */
  .nav.open .nav-list > li.menu-item-has-children > a {
    display: flex; align-items: center; justify-content: space-between;
  }
  .nav.open .nav-list > li.menu-item-has-children > a::after {
    content: "▾"; margin: 0; font-size: 13px; opacity: .55;
    transition: transform .2s ease;
  }
  .nav.open .nav-list > li.menu-item-has-children.sub-open > a::after { transform: rotate(180deg); }
  .nav.open .nav-list > li.menu-item-has-children.sub-open > a { color: var(--primary-blue); }
  /* 子項目: タップで展開。白い行でインデント */
  .nav.open .nav-list .sub-menu { display: none; position: static; transform: none; padding: 6px 0 0 10px; margin: 0; border: 0; box-shadow: none; min-width: 0; }
  .nav.open .nav-list li.sub-open > .sub-menu { display: block; }
  .nav.open .nav-list .sub-menu li + li { margin-top: 6px; }
  .nav.open .nav-list .sub-menu a {
    display: block; padding: 12px 14px; background: #fff;
    border: 1px solid var(--line); border-radius: 12px; font-weight: 500;
  }
  .nav.open .nav-list .sub-menu a:hover { background: var(--bg-soft); color: var(--primary-blue); }
}
