@charset "utf-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .niac-inner          - container の左右padding 40px（SP 20px）
 * .niac-topbar*        - ヘッダー上部インフォバー（ダーク帯・受付時間＋MAPリンク）
 * .niac-header*        - 1段ヘッダー（ロゴ／グローバルナビ／電話番号・内寸1640px・sticky）
 * .niac-nav*           - 中央寄せのグローバルナビ（EN上／JA下・下線アニメなし）
 * .niac-spnav*         - SPナビの配色とフッターCTA
 * .niac-btn*           - 角丸ボタン（main/ghost/teal/dark/outline ＋ サイズ別modifier）
 * .niac-btn__ico       - ボタン内の円形チェブロンアイコン
 * .niac-tlink*         - 下線＋円アイコンのテキストリンク
 * .niac-heading*       - セクション見出し（EN小ラベル＋JA大見出し）の寸法上書き
 * .niac-py-*           - 元データ固有のセクション上下padding（104/110/80-110）
 * .niac-lead           - セクションリード文（15px / lh2.1）
 * .niac-sub*           - 下層ページのh3小見出し（#166278）
 * .niac-bc*            - パンくず帯（背景＋区切り文字＞）
 * .niac-hero*          - 下層ページヒーロー（ダーク背景＋右上装飾SVG）
 * .niac-mv*            - メインビュー（CMSスライダー差し替え前提の静止画枠）
 * .niac-newsgrid       - TOP新着情報の 300px + 1fr グリッド
 * .niac-newslist*      - 日付／カテゴリ枠／タイトルの3カラム行リスト（--btn はボタン状・--btn-scroll で枠内スクロール）
 * .niac-headrow        - 見出し左＋リード右の2カラムヘッダー行
 * .niac-fieldgrid / .niac-field*  - 4つの事業分野（1px罫線グリッドカード）
 * .niac-greet*         - 代表ごあいさつ（写真320px + 本文）
 * .niac-checklist*     - 白背景＋左ボーダーのチェックリスト
 * .niac-support* / .niac-merit*   - 賛助会員募集セクション（ベタ背景＋4枚カード）
 * .niac-purpose*       - 目的ボックス（左ボーダー＋薄背景）
 * .niac-bullets        - ●＋点線区切りの箇条書き
 * .niac-table*         - 元データ寸法のテーブル（th #EDF1F2 / border #DCEAEF）
 * .niac-pdflink*       - PDFリンク（号数＋Font Awesome の file-pdf アイコン）
 * .niac-w{n}           - テーブル列幅
 * .niac-org*           - 組織図（CSS罫線のツリー）
 * .niac-mcard*         - 上ボーダー付き特典カード
 * .niac-joinbox*       - 入会お問い合わせボックス（左テキスト＋右ボタン）
 * .niac-memberlist     - 賛助会員一覧（3段組み）
 * .niac-ph*            - 写真・図版の未入稿プレースホルダー枠
 * .niac-schemefig*     - 事業スキーム図（枠付き・原寸960px上限＋キャプション）
 * .niac-pillar*        - 事業内容（左見出し320px＋右リスト）
 * .niac-tags / .niac-tag*  - 年度タグ（pill型・PDFアイコン付き。--grid でボタン幅を統一）
 * .niac-scard*         - 特設コンテンツカード
 * .niac-actrow*        - 活動内容の見出し＋リード文と写真の2カラム（写真は左カラムの高さに追従）
 * .niac-acc*           - 年度アコーディオン（details/summary・サロン開催実績）
 * .niac-blockttl       - 左ボーダー付きブロック見出し
 * .niac-stack-64       - 縦64pxギャップのブロック積み
 * .niac-doclist / .niac-doc  - PDF一覧（3列・outline罫線）
 * .niac-linkgrid / .niac-linkttl / .niac-linknote  - 関連リンク一覧（見出しは青左罫線）
 * .niac-form*          - お問い合わせフォーム（280px + 1fr の定義リスト型・選択肢注記）
 * .niac-text-15        - 15px 本文（line-height 指定なし）
 * .niac-map            - Googleマップ埋め込み枠
 * .niac-side*          - ブログサイドバー（カテゴリ／最近の記事／アーカイブ）
 * .niac-filter*        - カテゴリフィルタ（pill）
 * .niac-pager*         - ページネーション（44px角丸）
 * .niac-entry*         - お知らせ詳細（バッジ＋日付＋本文）
 * .niac-gap-28         - grid gap 28px（元データ固有値）
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * ■ 値の粒度不足
 *   - font-size: 11 / 11.5 / 12.5 / 13.5 / 14.5 / 15.5 / 16.5 / 17 / 22 / 34 / 36 / 38 / 52px が fz-* に無い
 *   - line-height: 1.55 / 1.7 / 1.9 / 1.95 / 2.1 / 2.15 / 2.3 が lh-* に無い
 *   - letter-spacing: 0.06 / 0.08 / 0.16 / 0.24 / 0.3em が ls-* に無い
 *   - 余白: 12 / 14 / 16 / 18 / 22 / 24 / 26 / 28 / 32 / 34 / 44 / 52 / 56 / 64 / 74 / 92 / 96 / 104 / 110px が
 *     spacing utility（5刻み→10刻み）に無い
 *   - gap: 12 / 14 / 16 / 22 / 24 / 26 / 28 / 32 / 44 / 64px が gap-* に無い
 *   - grid: 300px+1fr / 320px+1fr / 1fr+460px / 110px+130px+1fr など固定px混在グリッドが grid-N に無い
 *
 * ■ 指定方向不足
 *   - border-bottom-right-radius だけを指定する角丸（賛助会員カードのナンバー）
 *   - outline による 1px 罫線（gap:1px グリッドで隣接罫線を重ねる手法）
 *
 * ■ 状態不足
 *   - hover で「背景色だけ」を薄グレーに変える汎用（hover-bg-* は変数色のみ）
 *
 * ■ 構造不足
 *   - 上部インフォバー付きヘッダー（ダーク帯＋ロゴ／ナビ／電話の1段構成）が header component に無い
 *   - ヘッダーだけ内寸を広く取る（本文1200px／ヘッダー1560px）構造が container に無い
 *   - CSS罫線だけで組む組織図（縦線・横線・分岐）
 *   - 定義リスト型フォームレイアウト（ラベル列固定＋入力列可変）
 *
 * ■ 装飾パターン不足
 *   - セクション外へはみ出す装飾SVG（右上／左上・opacity 0.22〜0.24）
 *   - 円形アイコン内蔵ボタン（テキスト＋右端の丸チェブロン）
 *
 */

/* ==========================================================================
   Base 上書き
   ========================================================================== */
a { color: #166278; }
a:hover { color: #30A0BE; opacity: 1; }

/* セクション背景（共通utilityの色を本サイト用に上書き） */
.bg-section { background: #f5fafd; }

/* container の内寸を元データに合わせる（コンテンツ幅 1200px ＋ 左右padding 40px） */
.niac-inner { max-width: 1280px; padding-left: 40px; padding-right: 40px; }
/* フォームなど、行が長くなりすぎると読みにくいセクション用の狭い内寸（コンテンツ幅 960px） */
.niac-inner--narrow { max-width: 1040px; }

/* ==========================================================================
   ヘッダー上部インフォバー
   ========================================================================== */
.niac-topbar { background: #123642; color: #DDEFF4; }
.niac-topbar__inner { max-width: 1640px; height: 38px; display: flex; align-items: center; justify-content: space-between; }
.niac-topbar__name { margin: 0; font-size: 1.2rem; letter-spacing: .1em; color: #9FC7D3; }
.niac-topbar__right { display: flex; align-items: center; gap: 22px; font-size: 1.2rem; letter-spacing: .06em; }
.niac-topbar__hours { color: #9FC7D3; }
.niac-topbar__link { color: #DDEFF4; }
.niac-topbar__link:hover { color: #fff; }

/* ==========================================================================
   ヘッダー
   ========================================================================== */
.niac-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #FEFEFE;
  border-bottom: 1px solid #E3EDF0;
}
/* ロゴ／グローバルナビ／電話番号を1段に収めるため内寸を広く取る */
.niac-header__inner {
  max-width: 1640px; height: 96px; display: flex; align-items: center;
  justify-content: space-between; gap: 40px;
}
.niac-header__logo img { height: 54px; width: auto; display: block; }

.niac-header__right { display: flex; align-items: center; gap: 28px; height: auto; flex: 0 0 auto; }
.niac-header__telbox { text-align: right; }
.niac-header__tel { display: block; font-size: 2.2rem; letter-spacing: .04em; color: #123642; line-height: normal; }
.niac-header__tel-ico { margin-right: 10px; font-size: .68em; color: #30A0BE; vertical-align: .12em; transition: color .3s ease; }
.niac-header__tel:hover { color: #30A0BE; }
.niac-header__tel:hover .niac-header__tel-ico { color: #30A0BE; }
.niac-header__tel-sub { margin: 2px 0 0; font-size: 1.05rem; color: #6B8A95; letter-spacing: .06em; line-height: normal; white-space: nowrap; }

.niac-nav { display: flex; align-items: center; justify-content: center; gap: 30px; flex: 1 1 auto; }
.niac-nav__item { flex: 0 0 auto; text-align: center; }
.niac-nav .header__nav-item a { display: block; padding: 8px 0; color: #123642; transition: color .3s ease; white-space: nowrap; }
.niac-nav .header__nav-item a::after { display: none; }
.niac-nav .header__nav-item a:hover { color: #30A0BE; }
.niac-nav .header__nav-item--current a { color: #30A0BE; }
.niac-nav__en { display: block; font-size: 1.1rem; font-weight: 600; letter-spacing: .24em; color: #30A0BE; line-height: normal; }
.niac-nav__ja { display: block; font-size: 1.4rem; font-weight: 700; letter-spacing: .06em; color: inherit; margin-top: 4px; line-height: normal; }

/* 1段ヘッダーが収まらない幅（1280px以下）ではナビ・電話ブロックを隠しSPナビへ */
@media (max-width: 1280px) {
  .niac-header__right { display: none; }
  .niac-nav { display: none; }
  .niac-header__inner { height: 68px; }
  .niac-header__logo img { height: 40px; }
  .nav-toggle { display: block; } /* main.css の 1100px 切替をヘッダー構成に合わせて前倒し */
  .niac-topbar .niac-topbar__inner { padding-right: 76px; } /* fixed ハンバーガーとの重なり回避 */
}

/* SPナビ（共通componentの配色をブランドカラーに合わせる） */
.niac-spnav { background: linear-gradient(135deg, rgba(14, 59, 73, .98), rgba(18, 54, 66, .98)); }
/* SPナビは日本語のみ（ENは出力しない）。元どおり右寄せで並べる */
.niac-spnav .sp-nav__link { justify-content: flex-end; }
/* テキストと末尾の矢印（::after）の間隔 */
.niac-spnav .sp-nav__link::after { margin-left: 10px; }
.niac-spnav__tel { display: block; font-size: 2.2rem; font-weight: 700; color: #fff; letter-spacing: .04em; }
.niac-spnav__hours { margin: 6px 0 0; font-size: 1.2rem; color: rgba(255, 255, 255, .75); }

/* ==========================================================================
   ボタン / テキストリンク
   ========================================================================== */
.niac-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  padding: 16px 28px; border-radius: 8px;
  font-size: 1.4rem; letter-spacing: .06em; line-height: normal; text-align: center;
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.niac-btn--main { background: #30A0BE; color: #fff; }
.niac-btn--main:hover { background: #2790AC; color: #fff; }
.niac-btn--teal { background: #009999; color: #fff; }
.niac-btn--teal:hover { background: #008585; color: #fff; }
.niac-btn--dark { background: #123642; color: #fff; }
.niac-btn--dark:hover { background: #0C2831; color: #fff; }
.niac-btn--ghost { border: 1px solid rgba(199, 242, 255, .45); color: #EAF7FB; }
.niac-btn--ghost:hover { background: rgba(199, 242, 255, .12); color: #EAF7FB; }
.niac-btn--outline { border: 1px solid #30A0BE; color: #166278; }
.niac-btn--outline:hover { background: #30A0BE; color: #fff; }
/* hover時は背景がアイコン円と同色になるため、円を白抜きに反転させる */
.niac-btn--outline:hover .niac-btn__ico--fill { background: #fff; color: #166278; }

/* サイズ（元データの実数値） */
.niac-btn--hero       { padding: 20px 34px; border-radius: 10px; font-size: 1.45rem; font-weight: 700; box-shadow: 0 6px 18px rgba(18, 54, 66, .28); }
.niac-btn--achieve    { padding: 20px 44px; border-radius: 10px; font-size: 1.45rem; }
.niac-btn--pledge     { padding: 22px 52px; border-radius: 10px; font-size: 1.55rem; }
.niac-btn--join       { padding: 18px 32px; font-size: 1.45rem; white-space: nowrap; }
.niac-btn--memberlist { padding: 18px 34px; font-size: 1.5rem; letter-spacing: .05em; }
.niac-btn--back       { padding: 18px 40px; font-size: 1.45rem; }
.niac-btn--submit     { padding: 22px 56px; border-radius: 10px; font-size: 1.55rem; border: none; cursor: pointer; font-family: inherit; }

.niac-btn__ico {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%;
  background: #fff; color: #166278; font-size: 1.1rem;
}
.niac-btn__ico--fill { background: #30A0BE; color: #fff; transition: background .3s ease, color .3s ease; }

.niac-tlink {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 1.4rem; letter-spacing: .06em; line-height: normal;
  border-bottom: 1px solid #30A0BE; padding-bottom: 6px; color: #166278;
}
.niac-tlink:hover { color: #30A0BE; }
.niac-tlink--tight { letter-spacing: .05em; }
.niac-tlink--plain { letter-spacing: normal; }
/* 右寄せ（下線幅は文字幅のままにしたいので fit-content ＋ margin-left:auto） */
.niac-tlink--right { display: flex; width: fit-content; margin-left: auto; }
.niac-tlink__ico {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 50%;
  background: #30A0BE; color: #fff; font-size: .9rem;
}

/* ==========================================================================
   セクション見出し / 余白
   ========================================================================== */
.niac-heading .heading__en {
  margin: 0; font-size: 1.7rem; font-weight: 600; letter-spacing: .15em;
  color: #30A0BE; line-height: normal; scroll-margin-top: 130px;
}
.niac-heading .heading__ja {
  margin: 12px 0 0; font-size: 3.2rem; font-weight: 700; letter-spacing: .05em;
  color: #123642; line-height: normal;
}
.niac-heading--sm .heading__ja { font-size: 2.8rem; }
.niac-heading--mb8 .heading__ja { margin-bottom: 8px; }
.niac-heading--mb24 .heading__ja { margin-bottom: 24px; }
.niac-heading--mb32 .heading__ja { margin-bottom: 32px; }
.niac-heading--mb40 .heading__ja { margin-bottom: 40px; }
.niac-heading--lh15 .heading__ja { line-height: 1.5; }
.niac-heading--white .heading__en { color: #C7F2FF; }
.niac-heading--white .heading__ja { margin-top: 14px; font-size: 3.4rem; letter-spacing: .06em; color: #fff; }

.niac-py-104 { padding: 104px 0; }
.niac-py-110 { padding: 110px 0; }
.niac-py-news { padding: 80px 0 110px; }

.niac-lead { font-size: 1.5rem; line-height: 2.1; color: #3B5460; text-wrap: pretty; }
.niac-lead--wide { max-width: 900px; }
.niac-lead--15 { font-size: 1.55rem; }
.niac-text-15 { font-size: 1.5rem; color: #3B5460; }

.niac-sub {
  margin: 52px 0 18px; font-size: 1.7rem; font-weight: 700; letter-spacing: .06em;
  color: #166278; line-height: normal;
}
.niac-sub--top0 { margin-top: 0; }
.niac-sub--mt56 { margin-top: 56px; }
.niac-sub--mb8 { margin-bottom: 8px; }
.niac-sub--mb22 { margin-bottom: 22px; }
.niac-sub__note { font-size: 1.25rem; font-weight: 400; color: #6B8A95; margin-left: 12px; }
.niac-note { font-size: 1.3rem; color: #6B8A95; line-height: normal; }
.niac-note--sub { margin: 8px 0 40px; }
.niac-note--list { margin: 0 0 24px; }
.niac-note--after { margin: 18px 0 0; font-size: 1.35rem; }

.niac-gap-28 { gap: 28px; }
.niac-stack-64 { display: grid; gap: 64px; }

/* ==========================================================================
   パンくず / 下層ヒーロー
   ========================================================================== */
.niac-bc { background: #F5F7F8; border-bottom: 1px solid #E3EDF0; }
.niac-bc .breadcrumb { padding: 16px 0; font-size: 1.25rem; color: #6B8A95; }
.niac-bc .breadcrumb__item:not(:last-child)::after { content: "＞"; margin: 0 1em; color: #6B8A95; }
.niac-bc .breadcrumb__link { color: #166278; }
.niac-bc .breadcrumb__link:hover { color: #30A0BE; text-decoration: none; }
.niac-bc .breadcrumb__current { color: #6B8A95; }

.niac-hero { background: #0E3B49; padding: 74px 0; }
.niac-hero__deco { position: absolute; right: 70px; top: -80px; width: 300px; height: auto; opacity: .24; }
.niac-hero__inner { position: relative; z-index: 1; }
.niac-hero__en { margin: 0; font-size: 1.2rem; letter-spacing: .3em; color: #7FC9DC; line-height: normal; }
.niac-hero__ja { margin: 12px 0 0; font-size: 3.6rem; font-weight: 700; letter-spacing: .07em; color: #fff; line-height: normal; }
.niac-hero__sub { margin: 14px 0 0; font-size: 1.45rem; letter-spacing: .04em; color: #A8DCE9; line-height: 1.8; }

/* ==========================================================================
   メインビュー（CMSスライダー差し替え前提）
   ========================================================================== */
.niac-mv { position: relative; overflow: hidden; background: #0E3B49; }
/* #slideshow（外枠）：CMSスライダーの出力（Swiper構造）を外枠いっぱいに追従させる。
   z-index:1 で内部Swiperのページネーション等を閉じ込め、オーバーレイ／キャッチを上に出す */
#slideshow { position: relative; height: 640px; overflow: hidden; z-index: 1; }
/* CMS側の既定は --swiper-wrapper-height:98vh。外枠（640px）に合わせて上書きする */
#slideshow #main_slider { --swiper-wrapper-height: 100%; }
#slideshow #cms-slider-1-1-area,
#slideshow .swiper,
#slideshow .swiper-container,
#slideshow .swiper-wrapper,
#slideshow .swiper-slide,
#slideshow .main_slider__inner { width: 100%; height: 100%; }
/* スライダー写真が暗く・似た色味に見えるとのご指摘のため、明度と彩度をわずかに持ち上げる */
#slideshow img { display: block; width: 100%; height: 100%; object-fit: cover; filter: brightness(1.2) saturate(1.12) contrast(1.02); }
/* オーバーレイとキャッチは全面に重なるため、pointer-events を通してCMSスライダー側の
   操作（スワイプ・矢印・ページネーション）を妨げないようにする。ボタンだけ操作可に戻す。 */
.niac-mv__overlay {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  /* 写真を暗くしすぎないよう、文字が読める範囲まで濃度を下げている */
  background: linear-gradient(180deg, rgba(6, 38, 48, .14) 0%, rgba(6, 38, 48, .24) 55%, rgba(6, 38, 48, .16) 100%);
}
.niac-mv__body { position: absolute; inset: 0; z-index: 2; display: flex; pointer-events: none; }
.niac-mv__inner {
  width: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
}
/* 写真の明るい部分でも読めるよう、うっすら影を落とす */
.niac-mv__title {
  margin: 0; font-size: 5.2rem; line-height: 1.55; font-weight: 700; letter-spacing: .05em; color: #fff;
  text-wrap: pretty; text-shadow: 0 2px 12px rgba(6, 38, 48, .5);
}
.niac-mv__line { display: block; width: 64px; height: 3px; background: #30A0BE; margin: 34px auto 26px; }
.niac-mv__lead {
  margin: 0 auto; max-width: 720px; font-size: 1.8rem; line-height: 2.1; color: #fff;
  text-align: center; text-wrap: balance; word-break: auto-phrase;
  text-shadow: 0 1px 8px rgba(6, 38, 48, .5);
}
/* 親（.niac-mv__body）が pointer-events:none なので、ボタンだけ操作可に戻す */
.niac-mv__btns { display: flex; justify-content: center; gap: 16px; margin-top: 44px; pointer-events: auto; }
.niac-mv__dots { position: absolute; left: 0; right: 0; bottom: 28px; z-index: 3; display: flex; justify-content: center; gap: 12px; }
.niac-mv__dot { width: 34px; height: 3px; background: rgba(255, 255, 255, .3); }
.niac-mv__dot span { display: block; height: 3px; background: #C7F2FF; opacity: 0; }
.niac-mv__dot.is-active span { opacity: 1; }

/* ==========================================================================
   TOP：新着情報
   ========================================================================== */
.niac-newsgrid { display: grid; grid-template-columns: 300px 1fr; gap: 60px; align-items: start; }
.niac-newslist { border-top: 1px solid #E3EDF0; }
.niac-newslist__item {
  display: grid; grid-template-columns: 110px 130px 1fr; gap: 24px; align-items: center;
  padding: 26px 8px; border-bottom: 1px solid #E3EDF0; color: #123642;
  transition: background .3s ease;
}
.niac-newslist__item:hover { background: #F6F8F9; color: #123642; }
.niac-newslist--alt .niac-newslist__item:hover { background: #F5F7F8; }
.niac-newslist__date { font-family: "Jost", sans-serif; font-size: 1.4rem; letter-spacing: .08em; color: #6B8A95; line-height: normal; }
.niac-newslist__cat {
  font-size: 1.15rem; letter-spacing: .08em; color: #166278; border: 1px solid #A8DCE9;
  text-align: center; border-radius: 4px; padding: 5px 0; line-height: normal;
}
.niac-newslist__title { font-size: 1.55rem; line-height: 1.8; }
/* 開催実績：日付／カテゴリー／タイトルをボタン状にして1列で並べる（お知らせ一覧と同じ並び）。
   CMS側がサムネイルを出しても表示しない */
.niac-newslist--btn { display: grid; grid-template-columns: 1fr; gap: 12px; border-top: none; }
.niac-newslist--btn .niac-newslist__item {
  grid-template-columns: 100px 130px 1fr; gap: 16px;
  background: #fff; border: 1px solid #DCEAEF; padding: 20px 24px;
}
.niac-newslist--btn .niac-newslist__item:hover { background: #F5F7F8; }
.niac-newslist--btn .niac-newslist__thumb { display: none; }
.niac-newslist--btn .niac-newslist__title { font-size: 1.5rem; line-height: 1.7; }
/* 活動内容ページの抜粋表示：3件を超えたら枠内スクロールにする（3件分＋次の行が少し覗く高さ） */
.niac-newslist--btn-scroll { max-height: 300px; overflow-y: auto; padding-right: 6px; }
/* 一覧ページ：記事が画面の高さを超えたら枠内スクロールにする */
.niac-newslist--scroll {
  max-height: calc(100vh - 220px);
  max-height: calc(100dvh - 220px);
  overflow-y: auto;
}
.niac-newslist--scroll::-webkit-scrollbar,
.niac-newslist--btn-scroll::-webkit-scrollbar { width: 8px; }
.niac-newslist--scroll::-webkit-scrollbar-track,
.niac-newslist--btn-scroll::-webkit-scrollbar-track { background: #F1F6F8; }
.niac-newslist--scroll::-webkit-scrollbar-thumb,
.niac-newslist--btn-scroll::-webkit-scrollbar-thumb { background: #A8D3E0; border-radius: 4px; }
.niac-newslist--scroll,
.niac-newslist--btn-scroll { scrollbar-color: #A8D3E0 #F1F6F8; scrollbar-width: thin; }

/* ==========================================================================
   TOP：4つの事業分野
   ========================================================================== */
.niac-headrow { display: grid; grid-template-columns: 1fr 460px; gap: 60px; align-items: end; margin-bottom: 56px; }
.niac-fieldgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: #E3EDF0; border: 1px solid #E3EDF0; }
.niac-field { background: #fff; padding: 44px 40px; transition: background .3s ease; }
.niac-field:hover { background: #F7F9F9; }
.niac-field__num { display: block; font-family: "Jost", sans-serif; font-size: 3.8rem; font-weight: 600; color: #7FC0D3; line-height: 1; }
.niac-field__title { margin: 14px 0 16px; font-size: 2rem; font-weight: 700; letter-spacing: .04em; color: #123642; line-height: 1.6; }
.niac-field__text { margin: 0; font-size: 1.45rem; line-height: 2; color: #3B5460; text-wrap: pretty; }

/* ==========================================================================
   TOP：代表ごあいさつ
   ========================================================================== */
/* 左カラム（写真＋肩書＋リンク）は本文をスクロールする間セクション内で追従させる */
.niac-greet { display: grid; grid-template-columns: 320px 1fr; gap: 64px; align-items: start; }
.niac-greet__col { position: sticky; top: 132px; } /* sticky ヘッダー96px＋余白36px */
.niac-greet__photo img { display: block; width: 100%; height: auto; }
.niac-greet__org { margin: 20px 0 0; font-size: 1.2rem; letter-spacing: .06em; color: #6B8A95; line-height: 1.8; }
.niac-greet__name { margin: 6px 0 0; font-size: 2rem; font-weight: 700; letter-spacing: .08em; color: #123642; line-height: normal; }
.niac-greet__body { font-size: 1.55rem; line-height: 2.15; color: #3B5460; text-wrap: pretty; }
.niac-greet__body p { margin: 0 0 26px; }
.niac-greet__body p.niac-mb-20 { margin-bottom: 20px; }
.niac-greet__body p:last-child { margin-bottom: 0; }

.niac-checklist {
  margin: 0 0 26px; padding: 26px 30px; list-style: none; background: #fff;
  border-left: 3px solid #30A0BE; display: flex; flex-direction: column; gap: 12px;
}
.niac-checklist li { font-size: 1.5rem; color: #123642; display: flex; align-items: flex-start; gap: 12px; }
.niac-checklist__ico {
  flex: none; margin-top: 3px; width: 20px; height: 20px; border-radius: 3px;
  background: #30A0BE; color: #fff; display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.1rem;
}

/* ==========================================================================
   TOP：賛助会員募集
   ========================================================================== */
.niac-support { background: #30A0BE; position: relative; overflow: hidden; }
.niac-support__deco { position: absolute; left: -50px; top: -60px; width: 280px; height: auto; opacity: .22; }
.niac-support__inner { position: relative; z-index: 1; }
.niac-support__head { text-align: center; margin-bottom: 52px; }
.niac-support__catch {
  margin: 26px 0 0; font-size: 2rem; font-weight: 500; letter-spacing: .06em; color: #EAFAFF; line-height: normal;
  text-align: center; text-wrap: balance; word-break: auto-phrase;
}
.niac-support__lead { margin: 22px auto 0; max-width: 840px; font-size: 1.5rem; line-height: 2.1; color: #E3F6FC; text-align: left; text-wrap: pretty; }
.niac-support__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

.niac-merit { background: #fff; padding: 0 0 34px; position: relative; border-radius: 10px; }
.niac-merit__num {
  display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 44px;
  background: #123642; color: #fff; font-family: "Jost", sans-serif; font-size: 1.7rem;
  letter-spacing: .15em; font-weight: 600; line-height: normal;
  /* カード左上に接するため、親の角丸10pxに合わせる */
  border-radius: 10px 0 14px 0;
}
.niac-merit__img { display: block; width: 62%; height: auto; margin: 16px auto 0; aspect-ratio: 4 / 3; object-fit: contain; }
.niac-merit__title {
  margin: 16px 25px 14px;
  font-size: 1.65rem;
  font-weight: 700;
  line-height: 1.7;
  color: #123642;
  text-align: center;
  text-wrap: balance;
  word-break: auto-phrase;
}
.niac-merit__text { margin: 0 28px; font-size: 1.35rem; line-height: 1.95; color: #4A6672; text-wrap: pretty; }

/* ==========================================================================
   財団概要
   ========================================================================== */
.niac-purpose { background: #F5F7F8; border-left: 3px solid #30A0BE; padding: 38px 40px; }
.niac-purpose__title { margin: 0 0 18px; font-size: 1.7rem; font-weight: 700; letter-spacing: .06em; color: #166278; line-height: normal; }
.niac-purpose__text { margin: 0; font-size: 1.55rem; line-height: 2.15; color: #3B5460; text-wrap: pretty; }

.niac-bullets { margin: 0; padding: 0; list-style: none; }
.niac-bullets li {
  padding: 18px 4px; border-bottom: 1px dotted #B9CBD2; font-size: 1.5rem; line-height: 1.9;
  color: #3B5460; display: flex; align-items: flex-start; gap: 14px;
}
.niac-bullets li::before { content: ""; flex: none; width: 6px; height: 6px; margin-top: 12px; background: #30A0BE; border-radius: 50%; }

/* テーブル（table-basic の寸法・配色を元データに合わせる） */
.niac-table { background: #fff; font-size: 1.5rem; }
.niac-table th,
.niac-table td { box-sizing: content-box; padding: 16px 24px; border: 1px solid #DCEAEF; text-align: left; line-height: normal; }
.niac-table thead th { background: #EDF1F2; font-weight: 500; color: #166278; font-size: 1.35rem; letter-spacing: .06em; }
.niac-table tbody th { background: #EDF1F2; font-weight: 500; color: #166278; font-size: 1.35rem; }
.niac-table td { color: #3B5460; }
.niac-table .niac-table__em { color: #123642; font-weight: 500; }
.niac-table .niac-table__tel { font-family: "Jost", sans-serif; font-size: 1.7rem; color: #123642; }
.niac-table .niac-table__fax { font-family: "Jost", sans-serif; font-size: 1.7rem; color: #6B8A95; }
.niac-table--plain { background: transparent; }
.niac-table--compact th { padding: 15px 24px; }
.niac-table--compact td { padding: 14px 24px; }
.niac-table--compact .niac-table__year { color: #6B8A95; font-size: 1.4rem; vertical-align: middle; }
/* ニュースレター：号数の横に PDF アイコン */
.niac-pdflink { display: inline-flex; align-items: center; gap: 10px; }
.niac-pdflink__ico { font-size: 1.8rem; line-height: 1; color: #30A0BE; transition: color .3s ease; }
.niac-pdflink:hover .niac-pdflink__ico { color: #166278; }
.niac-table--dept td { padding: 18px 24px; }
.niac-table--dept td:first-child { color: #123642; font-weight: 700; }
.niac-table--access th { width: 30%; }
.niac-table--access th,
.niac-table--access td { padding: 18px 24px; }
.niac-table--access td { line-height: 1.9; }
.niac-table td.niac-table__note { line-height: 1.9; }

/* 横スクロールする表の上に出す注記（JSが .table-scroll の溢れを検知して is-visible を付与） */
.niac-scrollnote {
  display: none; align-items: center; gap: 8px; margin: 0 0 10px;
  font-size: 1.25rem; color: #6B8A95; letter-spacing: .04em; line-height: normal;
}
.niac-scrollnote.is-visible { display: flex; }
.niac-scrollnote i { font-size: 1.3rem; color: #30A0BE; }

.niac-w130 { width: 130px; }
.niac-w140 { width: 140px; }
.niac-w160 { width: 160px; }
.niac-w180 { width: 180px; }
.niac-w200 { width: 200px; }
.niac-w340 { width: 340px; }

/* 組織図 */
.niac-orgbox { background: #F5F7F8; border: 1px solid #E3EDF0; padding: 40px 44px; }
.niac-org { position: relative; max-width: 900px; margin: 0 auto; }
.niac-org__row { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.niac-org__node {
  box-sizing: content-box;
  border: 1px solid #123642; border-radius: 6px; background: #fff; padding: 11px 8px;
  text-align: center; font-size: 1.5rem; font-weight: 500; letter-spacing: .16em;
  color: #123642; position: relative; z-index: 1; line-height: normal;
}
.niac-org__node--col3 { grid-column: 3; }
.niac-org__node--w200 { width: 200px; }
.niac-org__center { display: flex; justify-content: center; }
.niac-org__vline { position: relative; height: 18px; }
.niac-org__vline--20 { height: 20px; }
.niac-org__vline::before { content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 2px; height: 100%; background: #8FA9B3; }
.niac-org__hline { position: absolute; top: 50%; left: 16.66%; right: 16.66%; height: 2px; background: #8FA9B3; }
.niac-org__vfull { position: absolute; left: 50%; transform: translateX(-50%); top: 0; bottom: 0; width: 2px; background: #8FA9B3; }
.niac-org__hleft { position: absolute; top: 50%; left: 16.6%; width: 33.4%; height: 2px; background: #8FA9B3; }
.niac-org__hright { position: absolute; top: 50%; left: 50%; width: 33.4%; height: 2px; background: #8FA9B3; }
.niac-org__branch { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; height: 18px; }
.niac-org__branch > div { position: relative; }
.niac-org__branch > div::before { content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 2px; height: 18px; background: #8FA9B3; }
.niac-org__branch > div::after { content: ""; position: absolute; top: 0; height: 2px; background: #8FA9B3; }
.niac-org__branch > div:nth-child(1)::after { left: 50%; right: -12px; }
.niac-org__branch > div:nth-child(2)::after,
.niac-org__branch > div:nth-child(3)::after { left: -12px; right: -12px; }
.niac-org__branch > div:nth-child(4)::after { left: -12px; right: 50%; }
.niac-org__row4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }

/* 賛助会員（特典カード・入会ボックス・会員一覧） */
.niac-mcard { background: #fff; border-top: 3px solid #30A0BE; padding: 32px 28px; }
.niac-mcard__title { margin: 0 0 14px; font-size: 1.6rem; font-weight: 700; line-height: 1.7; color: #123642; }
.niac-mcard__text { margin: 0; font-size: 1.35rem; line-height: 1.95; color: #4A6672; text-wrap: pretty; }

.niac-joinbox {
  margin-top: 32px; background: #fff; border: 1px solid #DCEAEF; padding: 32px 36px;
  display: flex; align-items: center; justify-content: space-between; gap: 40px;
}
.niac-joinbox__title { margin: 0 0 8px; font-size: 1.6rem; font-weight: 700; letter-spacing: .06em; line-height: normal; }
.niac-joinbox__text { margin: 0; font-size: 1.5rem; color: #3B5460; line-height: normal; }
.niac-joinbox__tel { font-family: "Jost", sans-serif; font-size: 2.2rem; letter-spacing: .03em; color: #123642; }

.niac-memberlist {
  background: #fff; border: 1px solid #DCEAEF; padding: 36px 40px;
  columns: 3; column-gap: 44px; font-size: 1.45rem; line-height: 2.3;
}
/* 部署・支店名まで入る長い社名は2行になるため、段の境界で分断されないようにする */
.niac-memberlist a,
.niac-memberlist span { display: block; break-inside: avoid; } /* span = 公式サイトURL未確認の社（リンクなし表示） */
.niac-memberlist span { color: #3B5460; }

/* ==========================================================================
   活動内容
   ========================================================================== */
/* 事業スキーム図（提供画像は960px幅。拡大でぼやけないよう上限を原寸に合わせる） */
.niac-schemefig { margin: 0; background: #F5F7F8; border: 1px solid #E3EDF0; padding: 40px 44px; text-align: center; }
.niac-schemefig__img { display: block; width: 100%; max-width: 960px; height: auto; margin: 0 auto; }
.niac-schemefig__cap { margin: 22px 0 0; font-size: 1.3rem; color: #6B8A95; letter-spacing: .06em; line-height: normal; }

.niac-ph {
  box-sizing: content-box;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  background: #F5F7F8; border: 1px dashed #A8D3E0; height: 340px; text-align: center; padding: 0 20px;
}
.niac-ph__label { font-family: "Jost", sans-serif; font-size: 1.1rem; letter-spacing: .24em; color: #7FB6C6; }
.niac-ph__note { font-size: 1.3rem; color: #6B8A95; }
.niac-ph--photo {
  background: #E4F2F7; border: 1px solid #CFE7EE; border-style: solid;
  color: #7FB6C6; font-family: "Jost", sans-serif; font-size: 1.1rem; letter-spacing: .2em; height: 400px;
}
.niac-ph--flat { background: #EDF1F2; border: none; color: #7FB6C6; font-family: "Jost", sans-serif; font-size: 1.1rem; letter-spacing: .2em; height: 200px; }
.niac-ph--hero { background: #EDF1F2; border: 1px solid #CFE7EE; border-style: solid; color: #7FB6C6; font-family: "Jost", sans-serif; font-size: 1.1rem; letter-spacing: .2em; height: 420px; }

.niac-pillars { display: flex; flex-direction: column; gap: 1px; background: #DCEAEF; border: 1px solid #DCEAEF; }
.niac-pillar { background: #fff; display: grid; grid-template-columns: 320px 1fr; }
.niac-pillar__head { background: #EDF1F2; padding: 32px 30px; font-size: 1.7rem; font-weight: 700; line-height: 1.7; color: #123642; }
.niac-pillar__list { margin: 0; padding: 32px 36px; list-style: none; display: flex; flex-direction: column; gap: 10px; font-size: 1.45rem; line-height: 1.9; color: #3B5460; }

.niac-tags { background: #fff; border: 1px solid #DCEAEF; padding: 34px 36px; display: flex; flex-wrap: wrap; gap: 12px; }
.niac-tag {
  display: inline-flex; align-items: center; gap: 8px;
  border: 1px solid #A8DCE9; padding: 12px 22px; border-radius: 999px;
  font-size: 1.4rem; letter-spacing: .04em; color: #166278; line-height: normal;
  transition: background .3s ease, color .3s ease;
}
.niac-tag:hover { background: #30A0BE; color: #fff; }
/* 「2026年5月」「2025年12月」のように文字数が揃わない一覧は、グリッドでボタン幅を統一する */
.niac-tags--grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
.niac-tags--grid .niac-tag { justify-content: center; padding-left: 10px; padding-right: 10px; }

.niac-scard { border: 1px solid #DCEAEF; }
/* 写真枠は元データどおり高さ200px。人物が入るので上寄りでトリミングする */
.niac-scard__photo { height: 200px; overflow: hidden; }
.niac-scard__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.niac-scard__body { padding: 34px 34px 38px; }
.niac-scard__title { margin: 0 0 16px; font-size: 2rem; font-weight: 700; letter-spacing: .04em; color: #123642; line-height: normal; }
.niac-scard__text { margin: 0 0 24px; font-size: 1.45rem; line-height: 2; color: #3B5460; text-wrap: pretty; }

/* ==========================================================================
   活動内容 : 景気ウォッチャー調査 / 産学官交流サロン
   ========================================================================== */
/* ブロック見出しの右に添える時点表記（2026年5月調査 / 令和7年度 等） */
.niac-blockttl__term {
  margin-left: 16px; font-size: 1.35rem; font-weight: 500; letter-spacing: .04em; color: #6B8A95;
}

/* 実施体制フロー（ノード＋矢印を1列に並べる） */
.niac-flow {
  display: flex; align-items: stretch; justify-content: center; gap: 10px;
  background: #fff; border: 1px solid #DCEAEF; padding: 32px 26px;
}
.niac-flow__node {
  flex: 1 1 0; display: flex; flex-direction: column; justify-content: center; gap: 8px;
  background: #F5F7F8; border: 1px solid #DCEAEF; padding: 20px 16px; text-align: center;
}
.niac-flow__node--em { background: #166278; border-color: #166278; }
.niac-flow__name { font-size: 1.45rem; font-weight: 700; line-height: 1.6; color: #123642; }
.niac-flow__role { font-size: 1.2rem; line-height: 1.7; color: #6B8A95; }
.niac-flow__node--em .niac-flow__name { color: #fff; }
.niac-flow__node--em .niac-flow__role { color: #A8DCE9; }
.niac-flow__arrow { flex: none; display: flex; align-items: center; color: #30A0BE; font-size: 1.6rem; }

/* DIの見方（3枚カード） */
.niac-diinfo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; }
.niac-dicard { background: #fff; outline: 1px solid #DCEAEF; padding: 26px 28px; }
.niac-dicard--note { background: #F5F7F8; }
.niac-dicard__ttl { margin: 0 0 10px; font-size: 1.6rem; font-weight: 700; letter-spacing: .04em; color: #166278; line-height: normal; }
.niac-dicard__text { margin: 0; font-size: 1.4rem; line-height: 1.9; color: #3B5460; }

/* 直近の調査結果（DI値＋スケールバー） */
.niac-dires { background: #fff; border: 1px solid #DCEAEF; padding: 36px 40px 40px; }
.niac-dires__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; }
.niac-dires__item { background: #F5F7F8; border: 1px solid #E3EDF0; padding: 26px 30px 22px; }
.niac-dires__label { margin: 0; font-size: 1.35rem; letter-spacing: .06em; color: #6B8A95; line-height: normal; }
.niac-dires__value {
  margin: 6px 0 20px; font-family: "Jost", sans-serif; font-size: 4.4rem; font-weight: 600;
  letter-spacing: .02em; color: #166278; line-height: normal;
}
/* スケールバー：DI 30〜70 を帯幅に対応させ、丸印で位置を示す */
.niac-discale { position: relative; height: 8px; border-radius: 999px; background: linear-gradient(90deg, #DCEAEF, #A8DCE9); }
.niac-discale__center { position: absolute; left: 50%; top: -5px; width: 1px; height: 18px; background: #7B959F; }
.niac-discale__dot {
  position: absolute; top: 50%; width: 16px; height: 16px; margin-left: -8px;
  transform: translateY(-50%); border-radius: 50%; background: #30A0BE; border: 3px solid #fff;
  box-shadow: 0 0 0 1px #30A0BE;
}
.niac-dires__axis {
  margin: 14px 0 0; display: flex; justify-content: space-between;
  font-size: 1.15rem; letter-spacing: .04em; color: #7B959F; line-height: normal;
}
.niac-dires__comment { margin: 28px 0 0; font-size: 1.45rem; line-height: 2; color: #3B5460; text-wrap: pretty; }

/* 問い合わせ先の小ボックス */
.niac-inq { margin-top: 36px; background: #F5F7F8; border-left: 4px solid #30A0BE; padding: 22px 26px; }
.niac-inq__ttl { margin: 0 0 8px; font-size: 1.5rem; font-weight: 700; color: #123642; line-height: normal; }
.niac-inq__text { margin: 0; font-size: 1.4rem; line-height: 1.9; color: #3B5460; }

/* 活動内容の「見出し＋リード文」と写真の2カラム（テキスト左・写真右で全セクション統一）。
   提供画像は横640pxなので、引き伸ばしでぼやけないよう写真側は 480px 固定。
   リード文は写真より背が低く上下に余白が出るため、写真の高さをリード文に追従させ
   （align-items: stretch ＋ object-fit: cover）、短すぎる場合だけ min-height で支える */
.niac-actrow { display: grid; grid-template-columns: 1fr 480px; gap: 48px; align-items: stretch; }
/* 写真を絶対配置にして枠の高さの計算から外す。これで行の高さはリード文だけで決まり、
   写真はその高さいっぱいに収まる（テキスト側の上下に余白が出ない） */
.niac-actrow__body { min-width: 0; }
.niac-actrow__fig { position: relative; margin: 0; min-height: 300px; }
.niac-actrow__img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }

/* 産学官交流サロン 開催実績の年度アコーディオン */
.niac-acc { display: flex; flex-direction: column; gap: 12px; }
.niac-acc__item { background: #fff; border: 1px solid #DCEAEF; }
.niac-acc__head {
  display: flex; align-items: center; gap: 16px; padding: 20px 26px; cursor: pointer;
  list-style: none; /* Safari は ::-webkit-details-marker 側で消す */
}
.niac-acc__head::-webkit-details-marker { display: none; }
.niac-acc__head:hover { background: #F5F7F8; }
.niac-acc__year { font-size: 1.7rem; font-weight: 700; letter-spacing: .04em; color: #123642; line-height: normal; }
.niac-acc__count { font-size: 1.3rem; letter-spacing: .04em; color: #6B8A95; line-height: normal; }
.niac-acc__ico { margin-left: auto; font-size: 1.4rem; color: #30A0BE; transition: transform .3s ease; }
.niac-acc__item[open] .niac-acc__ico { transform: rotate(180deg); }
.niac-acc__body { padding: 0 26px 26px; }

/* 産学官交流サロン 開催実績のカード */
.niac-salon { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; }
.niac-salonrec { background: #fff; outline: 1px solid #DCEAEF; padding: 26px 28px 28px; }
.niac-salonrec__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.niac-salonrec__no {
  flex: none; background: #166278; color: #fff; font-family: "Jost", sans-serif;
  font-size: 1.2rem; letter-spacing: .06em; padding: 5px 12px; border-radius: 3px; line-height: normal;
}
.niac-salonrec__date { font-size: 1.3rem; letter-spacing: .04em; color: #6B8A95; line-height: normal; }
.niac-salonrec__ttl { margin: 0 0 14px; font-size: 1.55rem; font-weight: 700; line-height: 1.8; color: #123642; text-wrap: pretty; }
.niac-salonrec__lect { margin: 0; font-size: 1.35rem; line-height: 1.9; color: #3B5460; }
.niac-salonrec__lect i { margin-right: 8px; color: #30A0BE; }

/* ==========================================================================
   ディスクロージャー / 関連リンク
   ========================================================================== */
.niac-blockttl {
  margin: 0 0 22px; font-size: 2.2rem; font-weight: 700; letter-spacing: .06em;
  border-left: 4px solid #30A0BE; padding-left: 16px; color: #123642; line-height: normal;
  scroll-margin-top: 130px;
}
.niac-doclist { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; }
.niac-doc {
  background: #fff; outline: 1px solid #DCEAEF; padding: 22px 26px; font-size: 1.5rem;
  display: flex; justify-content: space-between; align-items: center;
  color: #166278; line-height: normal; transition: background .3s ease;
}
.niac-doc:hover { background: #F5F7F8; color: #166278; }

/* 見出しのあしらいは .niac-blockttl と同じ青の左罫線 */
.niac-linkttl {
  margin: 0 0 12px; font-size: 2.4rem; font-weight: 700; letter-spacing: .05em;
  border-left: 4px solid #30A0BE; padding-left: 16px; color: #123642; line-height: normal;
  scroll-margin-top: 130px;
}
.niac-linknote { margin: 0 0 24px; font-size: 1.45rem; line-height: 1.9; color: #6B8A95; }
/* 罫線は各セルの outline で描く（.niac-doclist と同方式）。
   これで項目が奇数のときの空きセルに背景色・罫線が出ない。 */
.niac-linkgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; }
.niac-linkgrid > a,
.niac-linkgrid > span { display: block; background: #fff; outline: 1px solid #DCEAEF; padding: 20px 26px; font-size: 1.5rem; line-height: normal; }
.niac-linkgrid > a { color: #166278; transition: background .3s ease; }
.niac-linkgrid > a:hover { background: #F5F7F8; color: #166278; }
.niac-linkgrid > span { color: #3B5460; }

/* ==========================================================================
   お問い合わせ
   ========================================================================== */
.niac-formbox { background: #fff; border: 1px solid #DCEAEF; padding: 56px 60px; }
.niac-form { display: grid; grid-template-columns: 280px 1fr; gap: 0 40px; align-items: start; }
.niac-form__label {
  padding: 20px 0; border-top: 1px solid #E3EDF0;
  display: flex; align-items: center; gap: 12px; font-size: 1.5rem; font-weight: 500; line-height: normal;
}
.niac-form__field { padding: 20px 0; border-top: 1px solid #E3EDF0; }
.niac-form__label--last,
.niac-form__field--last { border-bottom: 1px solid #E3EDF0; }
.niac-form__req { font-size: 1.05rem; letter-spacing: .08em; background: #30A0BE; color: #fff; border-radius: 4px; padding: 4px 9px; }
.niac-form__any { font-size: 1.05rem; letter-spacing: .08em; border: 1px solid #C3D5DB; color: #7B959F; border-radius: 4px; padding: 3px 8px; }
.niac-form input[type="text"],
.niac-form input[type="tel"],
.niac-form input[type="email"],
.niac-form select,
.niac-form textarea {
  display: block; width: 100%; box-sizing: border-box;
  border: 1px solid #CFDFE5; border-radius: 6px; padding: 16px 18px;
  background: #FBFDFE; font-size: 1.5rem; font-family: inherit; color: #123642;
  line-height: normal; outline: none;
}
.niac-form input[type="text"],
.niac-form input[type="tel"],
.niac-form input[type="email"] { height: 54px; }
.niac-form textarea { height: 174px; resize: vertical; }
.niac-form select { height: 56px; appearance: none; color: #6B8A95; background-image: none; }
.niac-form__select { position: relative; }
.niac-form__select::after {
  content: "\f078"; font-family: "Font Awesome 6 Free"; font-weight: 900;
  position: absolute; right: 18px; top: 50%; transform: translateY(-50%);
  color: #30A0BE; font-size: 1.1rem; pointer-events: none;
}
.niac-form input:focus,
.niac-form select:focus,
.niac-form textarea:focus { border-color: #30A0BE; }
.niac-form__opts { margin: 12px 0 0; font-size: 1.25rem; line-height: 1.9; color: #7B959F; }
.niac-form__foot { margin-top: 40px; text-align: center; }
.niac-form__privacy { margin: 16px 0 0; font-size: 1.25rem; color: #7B959F; line-height: normal; }

/* CMSフォームの余白調整。
   CMS標準（cdn.rs-sys.jp/css/cms/mail-form.css）が .form-contents に padding:35px 30px を
   持っており、外枠 .niac-formbox の余白と二重になる＋SPでフォーム幅が約60px狭まるため打ち消す。
   CMSのCSSは実行時にページ後方へ読み込まれるので、クラス2つ（.niac-formbox .form-contents）で
   詳細度を上げて上書きする（!important は不要）。 */
.niac-formbox .form-contents { padding: 0; }

/* 【一時対応】フォーム準備中の掲載。フォーム再開時はこのブロックごと削除する。 */
.niac-prep { text-align: center; }
.niac-prep__title { margin: 0 0 16px; font-size: 2rem; font-weight: 700; letter-spacing: .06em; color: #123642; line-height: normal; }
.niac-prep__text { margin: 0; font-size: 1.5rem; color: #3B5460; line-height: 1.9; }
.niac-prep__link { margin: 24px 0 0; font-size: 1.4rem; line-height: normal; }
.niac-prep__link a { display: inline-flex; align-items: center; gap: 8px; color: #166278; text-decoration: underline; transition: color .3s ease; }
.niac-prep__link a:hover { color: #30A0BE; }

/* プライバシーポリシー同意チェック（JSでCMSフォーム内・送信ボタン直前へ移動する） */
.niac-agree { margin: 24px 0 20px; text-align: center; }
.niac-agree__label {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 1.4rem; line-height: 1.6; color: #123642; cursor: pointer;
}
.niac-agree__label input { flex: none; width: 18px; height: 18px; accent-color: #30A0BE; cursor: pointer; }
.niac-agree__label a { color: #166278; text-decoration: underline; }
.niac-agree__label a:hover { color: #30A0BE; }
.niac-agree__req,
.niac-agree__label em {
  flex: none; padding: 2px 8px; border-radius: 3px; background: #E7392B;
  color: #fff; font-size: 1.1rem; font-style: normal; letter-spacing: .04em;
}

/* プライバシー・ポリシー（フォーム直下・高さを決めてスクロールさせる） */
.niac-privacy { margin-top: 28px; background: #fff; border: 1px solid #DCEAEF; padding: 26px 30px 30px; }
.niac-privacy__title { margin: 0 0 6px; font-size: 1.7rem; font-weight: 700; letter-spacing: .06em; color: #123642; line-height: normal; scroll-margin-top: 130px; }
.niac-privacy__hint { margin: 0 0 12px; font-size: 1.2rem; color: #6B8A95; letter-spacing: .04em; line-height: normal; }
.niac-privacy__title span { display: inline-block; margin-left: 10px; font-size: 1.2rem; font-weight: 400; letter-spacing: .04em; color: #6B8A95; }
.niac-privacy__body {
  max-height: 340px; overflow-y: auto; padding: 4px 20px 4px 2px;
  border-top: 1px solid #E3EDF0; border-bottom: 1px solid #E3EDF0;
}
.niac-privacy__body:focus-visible { outline: 2px solid #30A0BE; outline-offset: 2px; }
.niac-privacy__body::-webkit-scrollbar { width: 8px; }
.niac-privacy__body::-webkit-scrollbar-track { background: #F1F6F8; }
.niac-privacy__body::-webkit-scrollbar-thumb { background: #A8D3E0; border-radius: 4px; }
.niac-privacy__body { scrollbar-color: #A8D3E0 #F1F6F8; scrollbar-width: thin; }
.niac-privacy__lead { margin: 18px 0 0; font-size: 1.35rem; line-height: 1.95; color: #3B5460; text-wrap: pretty; }
.niac-privacy__sub { margin: 26px 0 2px; font-size: 1.45rem; font-weight: 700; letter-spacing: .04em; color: #166278; line-height: normal; }
.niac-privacy__body .niac-bullets li { padding: 12px 4px; font-size: 1.35rem; line-height: 1.85; }
.niac-privacy__body .niac-bullets li::before { margin-top: 9px; width: 5px; height: 5px; }
.niac-privacy__body .niac-purpose { padding: 20px 24px; }
.niac-privacy__body .niac-purpose__title { margin: 0 0 8px; font-size: 1.4rem; }
.niac-privacy__body .niac-purpose__text { font-size: 1.35rem; line-height: 1.9; }

.niac-access { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.niac-map { box-sizing: content-box; height: 420px; border: 1px solid #CFE7EE; border-radius: 0; }
.niac-map iframe { height: 420px; }
.niac-access__sub { font-size: 1.3rem; color: #7B959F; }

/* ==========================================================================
   お知らせ一覧 / 詳細
   ========================================================================== */
.niac-blog { display: grid; grid-template-columns: 1fr 300px; gap: 64px; align-items: start; }

.niac-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.niac-filter__item {
  border: 1px solid #CFDFE5; color: #3B5460; font-size: 1.35rem; letter-spacing: .06em;
  padding: 12px 24px; border-radius: 999px; line-height: normal;
  transition: border-color .3s ease, color .3s ease, background .3s ease;
}
.niac-filter__item:hover { border-color: #30A0BE; color: #166278; }
.niac-filter__item.is-current { background: #30A0BE; color: #fff; border: none; }

.niac-pager { display: flex; justify-content: center; gap: 8px; margin-top: 48px; }
.niac-pager__item {
  box-sizing: content-box;
  width: 44px; height: 44px; border: 1px solid #CFDFE5; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-family: "Jost", sans-serif; font-size: 1.5rem; color: #3B5460;
  transition: border-color .3s ease;
}
.niac-pager__item:hover { border-color: #30A0BE; color: #3B5460; }
.niac-pager__item.is-current { background: #30A0BE; border: none; color: #fff; }
.niac-pager__next { width: auto; gap: 10px; padding: 0 20px; font-family: inherit; font-size: 1.4rem; }
/* ↑ページ送りはブログCMSの一覧出力に含まれる。CMS管理画面のテンプレートで上記クラスを付けて使う */

.niac-side { display: flex; flex-direction: column; gap: 40px; }
.niac-side__title { margin: 0 0 16px; font-size: 1.5rem; font-weight: 700; letter-spacing: .08em; border-bottom: 2px solid #30A0BE; padding-bottom: 12px; color: #123642; line-height: normal; }
.niac-side__list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
.niac-side__list li { border-bottom: 1px solid #E3EDF0; }
.niac-side__list a { display: block; padding: 13px 4px; font-size: 1.45rem; line-height: normal; }
.niac-side__list--sm a { padding: 12px 4px; font-size: 1.4rem; }
.niac-side__recent { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 14px; }
.niac-side__recent a { display: block; font-size: 1.4rem; line-height: 1.7; }
/* 記事詳細の前後リンク。左＝前の記事／中央＝一覧／右＝次の記事の3枠で、
   該当が無い側は空の枠を置いて中央がずれないようにする */
.niac-entrynav {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px;
  margin-top: 56px; padding-top: 28px; border-top: 1px solid #E3EDF0;
}
.niac-entrynav__link { display: inline-flex; align-items: center; gap: 10px; font-size: 1.45rem; color: #166278; line-height: normal; }
.niac-entrynav__link--next { justify-self: end; }
.niac-entrynav__ico {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border: 1px solid #A8DCE9; border-radius: 50%; font-size: 1.1rem; color: #30A0BE;
  transition: background .3s ease, color .3s ease;
}
.niac-entrynav__link:hover .niac-entrynav__ico { background: #30A0BE; border-color: #30A0BE; color: #fff; }
.niac-entrynav__index { justify-self: center; font-size: 1.4rem; letter-spacing: .06em; color: #6B8A95; }
.niac-entrynav__index:hover { color: #30A0BE; }

/* 月別アーカイブはCMS出力（リンクの羅列）。.niac-side__list--sm と同じ体裁を当てる */
.niac-side__archive a { display: block; padding: 12px 4px; border-bottom: 1px solid #E3EDF0; font-size: 1.4rem; line-height: normal; }
.niac-side__archive ul { margin: 0; padding: 0; list-style: none; }

.niac-entry__meta { display: flex; align-items: center; gap: 16px; }
.niac-entry__cat { font-size: 1.15rem; letter-spacing: .08em; color: #fff; background: #30A0BE; padding: 6px 16px; border-radius: 4px; line-height: normal; }
.niac-entry__date { font-family: "Jost", sans-serif; font-size: 1.4rem; letter-spacing: .08em; color: #6B8A95; line-height: normal; }
.niac-entry__title { margin: 20px 0 32px; font-size: 2.2rem; font-weight: 700; line-height: 1.7; letter-spacing: .03em; color: #123642; text-wrap: pretty; }
/* CMSに登録があるときだけ出るアイキャッチ */
.niac-entry__thumb img { display: block; width: 100%; height: auto; }
.niac-entry__body { font-size: 1.55rem; line-height: 2.15; color: #3B5460; display: flex; flex-direction: column; gap: 26px; text-wrap: pretty; }
.niac-entry__body p { margin: 0; }
.niac-entry__foot { margin-top: 56px; display: flex; justify-content: center; }

/* ==========================================================================
   レスポンシブ
   ========================================================================== */
/* ヘッダーが68pxに切り替わる幅に合わせて sticky の追従位置を詰める */
@media (max-width: 1280px) {
  .niac-greet__col { top: 90px; }
}

@media (max-width: 1100px) {
  .niac-newsgrid { grid-template-columns: 240px 1fr; gap: 40px; }
  .niac-headrow { grid-template-columns: 1fr 380px; gap: 40px; }
  .niac-greet { grid-template-columns: 280px 1fr; gap: 40px; }
  .niac-support__grid { grid-template-columns: repeat(2, 1fr); }
  .niac-blog { grid-template-columns: 1fr 260px; gap: 40px; }
  .niac-memberlist { columns: 2; }
  .niac-actrow { grid-template-columns: 1fr 380px; gap: 36px; }
}

@media (max-width: 896px) {
  .niac-inner { padding-left: 30px; padding-right: 30px; }
  .niac-mt-44 { margin-top: 22px; }
  .niac-mt-48 { margin-top: 24px; }
  .niac-mt-56 { margin-top: 28px; }
  .niac-mb-44 { margin-bottom: 22px; }
  .niac-mb-52 { margin-bottom: 26px; }
  .niac-mb-56 { margin-bottom: 28px; }
  .niac-py-104 { padding: 52px 0; }
  .niac-py-110 { padding: 55px 0; }
  .niac-py-news { padding: 40px 0 55px; }
  .niac-stack-64 { gap: 40px; }

  #slideshow { height: 520px; }
  .niac-mv__title { font-size: 3.4rem; }
  .niac-mv__lead { font-size: 1.4rem; line-height: 2; }
  .niac-mv__btns { flex-wrap: wrap; margin-top: 32px; }

  .niac-heading .heading__ja { font-size: 2.6rem; }
  .niac-heading--sm .heading__ja { font-size: 2.4rem; }
  .niac-heading--white .heading__ja { font-size: 2.8rem; }
  .niac-hero { padding: 48px 0; }
  .niac-hero__ja { font-size: 2.8rem; }
  .niac-hero__deco { right: -20px; width: 220px; }

  .niac-newsgrid { grid-template-columns: 1fr; gap: 28px; }
  .niac-newslist__item { grid-template-columns: 100px 110px 1fr; gap: 16px; }
  .niac-headrow { grid-template-columns: 1fr; gap: 24px; margin-bottom: 32px; }
  .niac-greet { grid-template-columns: 1fr; gap: 32px; }
  .niac-greet__col { position: static; top: auto; }
  .niac-fieldgrid { grid-template-columns: 1fr; }
  .niac-field { padding: 32px 24px; }
  .niac-support__grid { grid-template-columns: repeat(2, 1fr); }
  .niac-pillar { grid-template-columns: 1fr; }
  .niac-pillar__head { padding: 20px 24px; }
  .niac-pillar__list { padding: 24px; }
  .niac-doclist { grid-template-columns: repeat(2, 1fr); }
  .niac-linkgrid { grid-template-columns: 1fr; }
  .niac-joinbox { flex-direction: column; align-items: flex-start; gap: 24px; padding: 28px; }
  .niac-access { grid-template-columns: 1fr; gap: 32px; }
  .niac-blog { grid-template-columns: 1fr; gap: 48px; }
  .niac-formbox { padding: 32px 24px; }
  .niac-prep__title { font-size: 1.7rem; }
  .niac-prep__text { font-size: 1.35rem; text-align: left; word-break: auto-phrase; }
  .niac-prep__text br { display: none; }
  .niac-form { grid-template-columns: 1fr; gap: 0; }
  .niac-form__label { padding: 20px 0 8px; }
  .niac-form__field { padding: 0 0 20px; border-top: none; }
  .niac-form__label--last { border-bottom: none; }
  .niac-orgbox { padding: 24px 16px; }
  .niac-schemefig { padding: 24px; }
  /* 組織図はSPでも横スクロールさせず、同じ構造のまま縮めて収める */
  .niac-org__row { gap: 12px; }
  .niac-org__node { font-size: 1.2rem; letter-spacing: .06em; padding: 9px 2px; }
  .niac-org__node--w200 { box-sizing: border-box; width: 56%; }
  .niac-org__branch,
  .niac-org__row4 { gap: 8px; }
  .niac-org__branch > div:nth-child(1)::after { right: -4px; }
  .niac-org__branch > div:nth-child(2)::after,
  .niac-org__branch > div:nth-child(3)::after { left: -4px; right: -4px; }
  .niac-org__branch > div:nth-child(4)::after { left: -4px; }
  .niac-table th,
  .niac-table td { padding: 12px 16px; }
  .niac-entry__title { font-size: 2.4rem; }

  /* 実施体制フローは縦積みにして矢印を下向きに回す */
  .niac-flow { flex-direction: column; align-items: stretch; padding: 24px 20px; }
  .niac-flow__arrow { justify-content: center; transform: rotate(90deg); }
  .niac-diinfo { grid-template-columns: 1fr; }
  .niac-dires { padding: 28px 24px 30px; }
  .niac-dires__grid { grid-template-columns: 1fr; gap: 20px; }
  .niac-salon { grid-template-columns: 1fr; }
  /* 縦積みでは写真の高さを追従させず、元の比率のまま出す */
  .niac-actrow { grid-template-columns: 1fr; gap: 28px; }
  .niac-actrow__fig { position: static; min-height: 0; }
  .niac-actrow__img { position: static; height: auto; max-width: 480px; margin: 0 auto; }
  .niac-acc__head { padding: 16px 20px; gap: 12px; }
  .niac-acc__body { padding: 0 20px 20px; }
}

@media (max-width: 639px) {
  .niac-inner { padding-left: 20px; padding-right: 20px; }
  .niac-topbar { display: none; } /* スマホではヘッダー上の紺帯を出さない */

  /* スマホは画面の高さ基準（dvh でアドレスバー分の変動を吸収）。
     CMSスライダーは --swiper-wrapper-height:100% でこの高さに追従する */
  #slideshow { height: 90vh; height: 90dvh; }
  .niac-mv__title { font-size: 2.4rem; line-height: 1.5; }
  .niac-mv__line { margin: 24px auto 20px; }
  .niac-mv__lead { font-size: 1.3rem; line-height: 1.9; }
  .niac-mv__btns { flex-direction: column; align-items: stretch; gap: 12px; }
  .niac-btn { max-width: 100%; }
  .niac-btn--hero,
  .niac-btn--join,
  .niac-btn--pledge,
  .niac-btn--achieve,
  .niac-btn--memberlist,
  .niac-btn--back,
  .niac-btn--submit { padding: 16px 20px; font-size: 1.3rem; white-space: normal; }
  .niac-joinbox { padding: 24px 20px; }

  .niac-heading .heading__en { font-size: 1.4rem; }
  .niac-heading .heading__ja { font-size: 2.2rem; }
  .niac-heading--sm .heading__ja { font-size: 2rem; }
  .niac-heading--white .heading__ja { font-size: 2.2rem; }
  .niac-hero__ja { font-size: 2.2rem; }
  .niac-hero__sub { font-size: 1.3rem; }
  .niac-hero__deco { display: none; }
  .niac-blockttl__term { display: block; margin: 8px 0 0; }
  .niac-dires__value { font-size: 3.6rem; }
  .niac-dires__item { padding: 20px 20px 18px; }
  .niac-salonrec { padding: 22px 20px 24px; }
  .niac-acc__year { font-size: 1.6rem; }
  .niac-inq { padding: 20px; }

  .niac-support__grid { grid-template-columns: 1fr; }
  .niac-support__lead { font-size: 1.35rem; }
  .niac-doclist { grid-template-columns: 1fr; }
  .niac-memberlist { columns: 1; padding: 24px; }
  .niac-purpose { padding: 24px; }
  .niac-blockttl { font-size: 1.9rem; }
  .niac-linkttl { font-size: 2rem; }
  .niac-scard__body { padding: 24px 20px 28px; }
  .niac-tags { padding: 24px 20px; }
  .niac-ph { height: 240px; }
  .niac-ph--photo { height: 300px; }
  .niac-ph--hero { height: 240px; }
  .niac-schemefig { padding: 16px; }
  .niac-schemefig__cap { margin-top: 16px; font-size: 1.2rem; text-align: left; }
  .niac-checklist li { font-size: 1.4rem; }
  /* 同意チェック：CMSフォームの幅（SPは約225px）に収まらず折り返すため、
     チェックとバッジを上揃えにし、文節単位で改行させる */
  .niac-agree__label { align-items: flex-start; gap: 8px; font-size: 1.25rem; }
  .niac-agree__label input { width: 16px; height: 16px; margin-top: 2px; }
  .niac-agree__label span { text-align: left; word-break: auto-phrase; }
  .niac-agree__req,
  .niac-agree__label em { padding: 2px 6px; font-size: 1rem; }
  /* 組織図（さらに詰める）・研究員体制はSPでも横スクロールなし */
  .niac-orgbox { padding: 16px 10px; }
  .niac-org__row { gap: 8px; }
  .niac-org__node { font-size: 1rem; letter-spacing: .02em; padding: 8px 1px; }
  .table-scroll > .niac-table--fit { min-width: 0; } /* この表だけ最小幅を解除して折り返しで収める */
  .niac-field__title { margin: 14px 0 16px; font-size: 1.8rem; }
  .niac-btn__ico { width: 15px; height: 15px; }
  .niac-map,
  .niac-map iframe { height: 300px; }

  /* --- テーブル（SP）：文字と余白を詰め、横スクロール量を減らす --- */
  .niac-table { font-size: 1.3rem; }
  .niac-table th,
  .niac-table td,
  .niac-table--dept td,
  .niac-table--access th,
  .niac-table--access td,
  .niac-table--compact th,
  .niac-table--compact td { padding: 10px 12px; }
  .niac-table thead th,
  .niac-table tbody th { font-size: 1.2rem; letter-spacing: .04em; }
  .niac-table .niac-table__tel,
  .niac-table .niac-table__fax { font-size: 1.5rem; }
  .niac-table--compact .niac-table__year { font-size: 1.25rem; }
  .niac-pdflink__ico { font-size: 1.6rem; }
  /* 固定列幅は解除（幅の内訳を内容に任せてスクロール量を最小化） */
  .niac-w130, .niac-w140, .niac-w160,
  .niac-w180, .niac-w200, .niac-w340 { width: auto; }
  .table-scroll > table { min-width: 540px; }
  /* 短いラベル列は折り返さない（「総務／部」のような分断を防ぐ） */
  .niac-table thead th,
  .niac-table--dept td:first-child,
  .niac-table--compact .niac-table__year { white-space: nowrap; }

  /* アクセス表は横スクロールさせず、見出しを値の上に積む */
  .niac-table--access tr,
  .niac-table--access th,
  .niac-table--access td { display: block; width: auto; }
  .niac-table--access th { border-bottom: none; padding-bottom: 4px; }
  .niac-table--access td { border-top: none; }
  .niac-table--access tr + tr th { border-top: none; }

  .niac-entry__title { font-size: 2rem; }
  /* カテゴリタブは2列グリッドで「3＋1」の不揃いな折り返しを防ぐ */
  .niac-filter { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 24px; }
  .niac-filter__item { padding: 10px 8px; font-size: 1.25rem; text-align: center; }
  /* 日付・カテゴリは固定幅で位置を揃え、3列目の 1fr で残り幅を確保する。
     （2列だけにするとタイトルが2列分の幅しか使えず早く折り返してしまう） */
  .niac-newslist--btn .niac-newslist__item { grid-template-columns: 88px 104px 1fr; gap: 8px 14px; padding: 16px 18px; }
  .niac-newslist__item { grid-template-columns: 88px 104px 1fr; gap: 8px 14px; padding: 18px 4px; }
  .niac-newslist__cat { padding: 4px 6px; }
  .niac-newslist__title { grid-column: 1 / -1; font-size: 1.45rem; line-height: 1.7; }
}

/* ==========================================================================
   フッター
   ========================================================================== */
.niac-footer { background: #0E3B49; color: #CFE4EB; padding: 72px 0 0; }
.niac-footer__inner { display: grid; grid-template-columns: 360px 1fr; gap: 64px; align-items: start; }
.niac-footer__logo img { height: 56px; width: auto; display: block; }
.niac-footer__address { margin: 26px 0 0; font-size: 1.4rem; line-height: 2; color: #AFCED8; }
.niac-footer__contact { margin-top: 22px; display: flex; flex-direction: column; gap: 10px; font-size: 1.4rem; line-height: 1.9; color: #AFCED8; }
/* 部署名と電話番号を行分けし、番号の途中で折り返さないようにする */
.niac-footer__dept { display: flex; flex-direction: column; margin: 0; }
.niac-footer__dept-num { white-space: nowrap; }
.niac-footer__hours { margin: 0; }
.niac-footer__btns { margin-top: 26px; display: flex; gap: 12px; }

.niac-footer__sitemap { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 28px; }
.niac-footer__sitemap .footer-sitemap__group { flex: none; min-width: 0; }
.niac-footer__sitemap .footer-sitemap__title {
  display: inline; margin: 0; padding: 0; border-bottom: none;
  font-size: 1.45rem; font-weight: 700; color: #fff; line-height: normal;
}
.niac-footer__sitemap .footer-sitemap__title:hover { color: #C7F2FF; }
.niac-footer__sitemap .footer-sitemap__list { margin: 12px 0 0; display: flex; flex-direction: column; gap: 8px; }
.niac-footer__sitemap .footer-sitemap__item { margin: 0; }
.niac-footer__sitemap .footer-sitemap__item a { font-size: 1.3rem; color: #AFCED8; line-height: normal; }
.niac-footer__sitemap .footer-sitemap__item a::before { content: "－ "; margin-right: 0; font-size: 1em; opacity: 1; }
.niac-footer__sitemap .footer-sitemap__item a:hover { color: #fff; }

.niac-footer__bottom { margin-top: 64px; padding: 0; border-top: 1px solid rgba(199, 242, 255, .16); text-align: left; }
.niac-footer__bottom .footer-bottom__copyright {
  display: block; padding: 22px 0; font-size: 1.2rem; letter-spacing: .1em; color: #7FA3AF; line-height: normal;
}

@media (max-width: 1100px) {
  .niac-footer__inner { grid-template-columns: 1fr; gap: 40px; }
  .niac-footer__sitemap { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 896px) {
  .niac-footer { padding-top: 48px; }
  .niac-footer__sitemap { grid-template-columns: repeat(2, 1fr); }
  .niac-footer__bottom { margin-top: 40px; }
}
@media (max-width: 639px) {
  /* スマホではフッターナビを出さない（ハンバーガーのSPナビで代替）
     ※ .niac-footer__sitemap の基本指定はこのブロックより前にあるため、display はここで上書きする */
  .niac-footer__sitemap { display: none; }
  .niac-footer__btns { flex-direction: column; }
  .niac-footer__bottom .footer-bottom__copyright { padding-bottom: 22px; }
}

/* ページトップボタン */
.page-top__link { background: #30A0BE; color: #fff; }
.page-top__link:hover { background: #2790AC; color: #fff; }

/* ==========================================================================
   余白 utility（元データ固有値・共通utilityの刻みに無いもの）
   ※ component の既定余白を上書きできるようファイル末尾に置く
   ========================================================================== */
.niac-mt-8  { margin-top: 8px; }
.niac-mt-26 { margin-top: 26px; }
.niac-mt-32 { margin-top: 32px; }
.niac-mt-34 { margin-top: 34px; }
.niac-mt-44 { margin-top: 44px; }
.niac-mt-48 { margin-top: 48px; }
.niac-mt-56 { margin-top: 56px; }
.niac-mb-8  { margin-bottom: 8px; }
.niac-mb-12 { margin-bottom: 12px; }
.niac-mb-24 { margin-bottom: 24px; }
.niac-mb-28 { margin-bottom: 28px; }
.niac-mb-32 { margin-bottom: 32px; }
.niac-mb-36 { margin-bottom: 36px; }
.niac-mb-44 { margin-bottom: 44px; }
.niac-mb-52 { margin-bottom: 52px; }
.niac-mb-56 { margin-bottom: 56px; }




/* ※ SPハンバーガーボタン（fixed）と上部インフォバーの重なり回避は
      ヘッダーの 1280px 切替ブロック（上部）に統合済み */
