/* ===========================
   全体
   =========================== */
body {
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  color: #222;
  background-color: #f2f2f2;
}



/* ===========================
   ヘッダー
   =========================== */

.site-header {
  border-bottom: 1px solid #ddd;
}

/* 上部バー（ロゴ帯） */
.site-header .container-fluid.bg-light {
  background-color: #ffffff !important;
}

/* NIFSロゴ部分の仮スタイル */
.site-header .fs-4.fw-bold {
  letter-spacing: 0.04em;
}

/* サイト名（MS10DS）レスポンシブ */
.site-title {
  font-weight: 700;
  color: #555;
  font-size: clamp(1.2rem, 2vw, 2rem);
}
.site-title:hover {
  color: #000;
}

/* ヘッダー右側のロゴリンク */
.site-header a.text-muted {
  white-space: nowrap;
}

.site-header img {
  display: block;
}

/* ヘッダーロゴの高さ調整（レスポンシブ） */
.site-header .logo-nifs,
.site-header .logo-partner {
  height: auto;
  width: auto;
  max-height: 32px;
}

@media (min-width: 768px) {
  .site-header .logo-nifs,
  .site-header .logo-partner {
    max-height: 58px;
  }
}

@media (min-width: 1200px) {
  .site-header .logo-nifs,
  .site-header .logo-partner {
    max-height: 66px;
  }
}


/* ===========================
   メニューバー（PC/SP共通）
   =========================== */

.navbar-brand {
  font-weight: 700 !important;
}

.menu-bar {
  background-color: #ffffff !important;
  border-top: 1px solid #CCCCCC;
  border-bottom: 1px solid #CCCCCC;
}

.menu-bar .navbar-toggler {
  border: none !important;
  box-shadow: none !important;
}

.menu-bar .navbar-nav .nav-link {
  color: #333 !important;
}

.menu-bar .navbar-nav .nav-link:hover {
  color: #000 !important;
  text-decoration: underline;
}

/* SP版メニュー調整（〜991.98px） */
@media (max-width: 991.98px) {
  .navbar .container {
    max-width: 100% !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .navbar-collapse {
    width: 100%;
    background-color: #ffffff;
  }

  .navbar-nav .nav-link {
    border-top: 1px solid #e5e5e5;
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
  }

  .navbar-nav .nav-item:last-child .nav-link {
    border-bottom: 1px solid #e5e5e5;
  }
}


/* ===========================
   ヒーロー（キービジュアル）
   =========================== */

/* indexページ */
.hero {
  /*
  background-image: url("../img/mainimg_bg_01.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #003366;
  */
  background: none;
  color: #fff;
  /*padding: 4rem 0 180px;*/
}
@media (min-width: 991px) {
  .hero {
    height: 430px;
    overflow: hidden;
  }
}

.hero [id^="metaslider-id-"] .flexslider .caption-wrap {
  background: none !important;
  top: 50px !important;
  opacity: 1 !important;
}
@media (max-width: 991px) {
  .hero [id^="metaslider-id-"] .flexslider .caption-wrap {
    background: none !important;
    top: 20px !important;
    opacity: 1 !important;
  }
}
@media (max-width: 767.98px) {
  .hero [id^="metaslider-id-"] .flexslider .caption-wrap {
    background: none !important;
    top: 15px !important;
    opacity: 1 !important;
  }
}

.hero [id^="metaslider-id-"] [id^="metaslider_container_"] .flex-viewport {
    max-height: 500px;
    height: 400px;
    transition: all 1s ease;
}

@media (max-width: 991px) {
  .hero [id^="metaslider-id-"] [id^="metaslider_container_"] .flex-viewport {
      height: 600px;
      height: auto;
      transition: all 1s ease;
  }
}
@media (max-width: 767.98px) {
  .metaslider .slides img {
      /* width: auto; */
      min-width: 767.98px;
      display: block;
      min-height: 200px;
  }
}


/* subページ */
.hero-sub {
  background-image: url("../img/mainimg_bg_01.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #003366;
  color: #fff;
  padding: 4rem 0 100px;
}

/* (1) タイトル */
.hero-title-top {
  font-size: clamp(1.2rem, 2.0vw, 1.6rem);
  font-weight: 700;
  margin-bottom: 0.3rem;
}
.hero-title {
  font-size: clamp(1.2rem, 2.0vw, 1.6rem);
  font-weight: 700;
  margin-bottom: 0.3rem;
  text-align: center;
}
/* (2) キャッチコピー */
.hero-subtitle.big {
  font-size: clamp(1.5rem, 3.0vw, 2.3rem);
  font-weight: 600;
  line-height: 1.4;
  margin-top: 1rem;
}
/* (3) プロマネ情報 */
.hero-subtitle.normal {
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  font-weight: 400;
  margin-top: 0.5rem;
}

/* 共通の行間など */
.hero-subtitle {
  line-height: 1.7;
  max-width: 52rem;
}
@media (max-width: 991px) {
    /* (1) タイトル */
  .hero-title {
    font-size: clamp(1.3rem, 2.0vw, 1.4rem);
    font-weight: 700;
    margin-bottom: 0.3rem;
  }
  /* (2) キャッチコピー */
  .hero-subtitle.big {
    font-size: clamp(1.0rem, 3.0vw, 1.8rem);
    font-weight: 600;
    line-height: 1.4;
    margin-top: 1rem;
  }
  /* (3) プロマネ情報 */
  .hero-subtitle.normal {
    font-size: clamp(0.6rem, 1.8vw, 1.0rem);
    font-weight: 400;
    margin-top: 0.5rem;
  }

  /* 共通の行間など */
  .hero-subtitle {
    line-height: 1.7;
    max-width: 52rem;
  }

  .hero {
    /*padding: 2rem 0 150px;*/
    padding: 0;
  }
}

/* モバイルのパディング調整 */
@media (max-width: 767.98px) {
  .hero {
    /*padding: 2rem 0 150px;*/
    padding: 0;
  }
}


section.hero [id^="metaslider-id-"] .flexslider .flex-progress-bar {
    background-color: #007ec2 !important;
}


/* ===========================
   パンくずリスト
   =========================== */

nav.breadcrumb-bar {
  background-image: url("../img/breadcrumb_bg_01.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 5px 15px;
  margin-top: -34px;
  color: #ffffff;
}
nav.breadcrumb-bar a{
  color: #ffffff;
}
nav.breadcrumb-bar ol li.breadcrumb-item {
  color: #ffffff;
}
nav.breadcrumb-bar ol li.breadcrumb-item a {
  color: #ffffff;
}


/* ===========================
   main
   =========================== */

.main-overlap {
  background: #ffffff;
  margin-top: -120px;
  position: relative;
  z-index: 10;
  padding: 3rem 2rem;
  border-top: 5px solid #1D7DC2;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.06);
}
@media (max-width: 991px) {
  .main-overlap {
    background: #ffffff;
    margin-top: -60px;
    position: relative;
    z-index: 10;
    padding: 3rem 2rem;
    border-top: 5px solid #1D7DC2;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.06);
  }
}
/* モバイルのパディング調整 */
@media (max-width: 767.98px) {
  .main-overlap {
  background: #ffffff;
  margin-top: -60px;
  position: relative;
  z-index: 10;
  padding: 3rem 2rem;
  border-top: 5px solid #1D7DC2;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.06);
}
}

.main-sub {
  background: #ffffff;
  position: relative;
  z-index: 10;
  padding: 2rem 2rem;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.06);
}


/* ===========================
   見出し（subページ用）
   =========================== */

main .main-sub h2 {
  font-size: 1.6rem;
  font-weight: 700;
  text-align: left;
  margin-top: 2rem;
  margin-bottom: 35px;
  position: relative;
  padding-bottom: 18px;
}

main .main-sub h2.news {
  font-size: 1.6rem;
  font-weight: 700;
  text-align: left;
  margin-top: 0.5rem;
  margin-bottom: 35px;
  position: relative;
  padding-bottom: 18px;
}

/* 青いライン（手前） */
main .main-sub h2::before {
  content: "";
  width: 250px;
  height: 5px;
  position: absolute;
  left: 0;
  bottom: 0;
  background-color: #1472AE;
  z-index: 2;
}

/* 灰色ライン（奥） */
main .main-sub h2::after {
  content: "";
  width: 100%;
  height: 5px;
  background: #cccccc;
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1;
}

/* モバイルでライン短縮 */
@media (max-width: 767.98px) {
  main .main-sub h2 {
    font-size: 1.3rem;
    margin-bottom: 25px;
  }
  main .main-sub h2::before {
    width: 150px;
    height: 4px;
  }
  main .main-sub h2::after {
    height: 4px;
  }
}

main .main-sub h3 {
  font-size: clamp(1.2rem, 2.0vw, 1.4rem);
  font-weight: 700;
  margin-top: 2.4rem;
  margin-bottom: 1.5rem;
  padding: 0.5rem 1rem;
  background: #eeeeee;
  border-left: 5px solid #1D7DC2;
}

/* ニュース（リスト用）の h3 */
main .main-sub h3.news {
  font-size: clamp(1.1rem, 2.0vw, 1.1rem);
  font-weight: 600;
  margin-top: 0;
  margin-bottom: 0.5rem;
  padding: 0;
  background: none;
  border-left: none;
}

main .main-sub h4 {
  font-size: clamp(1.4rem, 1.6vw, 1.6rem);
  font-weight: 700;
  margin-top: 2.4rem;
  margin-bottom: 1.5rem;
}

main .main-sub h5 {
  font-size: clamp(1.2rem, 1.4vw, 1.2rem);
  font-weight: 700;
  margin-top: 2.4rem;
  margin-bottom: 1.5rem;
}


/* メンバーリスト */
.member-img-wrapper {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.member-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.member-card {
  border-radius: 0px;
  border: none;
  /*border-width: 4px;*/
  border-color: #eeeeee;
  background-color: #f5f5f5;
}

.member-card .card-body {
  padding-top: 1rem;
  padding-left: 0.6rem;
  padding-right: 0.6rem;
}
main .main-sub .member-card .card-body h5 {
    font-size: clamp(1.1rem, 1.4vw, 1.1rem);
    font-weight: 700;
    margin-top: 0.5rem;
    margin-bottom: 1.5rem;
}


/* ===========================
   Sidebar QuickLinks
   =========================== */

/* サイドバー全体の上ライン */
.sidebar-links {
  border-top: 1px solid #277DC2;
}

/* 各リンク（間の仕切り線 + 最下段の線） */
.sidebar-links .sidebar-link-item {
  display: flex;
  justify-content: space-between;
  align-items: center;

  padding: 1.2rem 0.5rem;
  color: #277DC2;
  text-decoration: none;
  transition: all .25s ease;
  background-color: #f8f9fa;

  /* ▼ 仕切り線：デフォルトで「下線」を付けておけばOK */
  border-bottom: 1px solid #277DC2;


}

/* ▼ 最後の項目にも通常通り下線を残す（明示のため記述） */
.sidebar-links .sidebar-link-item:last-child {
  border-bottom: 1px solid #277DC2;

}


/* 丸矢印アイコン（小）*/
.arrow-circle-small {
  width: 18px;
  height: 18px;
  background-color: transparent;
  border: 1px solid #277DC2;
  border-radius: 50%;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  transition: all .25s ease;
}

.arrow-circle-small i {
  font-size: 0.75rem;
  color: #277DC2;
}

/* Hover/active で反転 */
.sidebar-link-item:hover,
.sidebar-link-item:focus,
.sidebar-link-item.active {
  background-color: #277DC2;
  color: #ffffff;


}

.sidebar-link-item:hover .arrow-circle-small,
.sidebar-link-item:focus .arrow-circle-small,
.sidebar-link-item.active .arrow-circle-small {
  background-color: #ffffff;
  border-color: #ffffff;

}

.sidebar-link-item:hover .arrow-circle-small i,
.sidebar-link-item:focus .arrow-circle-small i,
.sidebar-link-item.active .arrow-circle-small i {
  color: #277DC2;


}



/* ===========================
   SP/タブレット時アコーディオン
   =========================== */

/* トグルボタン本体 （〜991.98px で使用）*/
.sidebar-toggle {
  background-color: #277DC2;
  color: #ffffff;

  font-weight: 600;

  border-radius: 4px;
  padding-right: 2.5rem !important;
  position: relative;
  transition: all .25s ease;
}

/* ▼ 下向き矢印アイコン（丸背景） */
.arrow-down {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  transition: all .25s ease;
  width: 22px;
  height: 22px;
  background-color: #ffffff;   /* 初期：白背景 */
  color: #277DC2;              /* 初期：青矢印 */
  border-radius: 50%;
  border: 1px solid #ffffff;   /* 初期は枠なし */
  display: flex;
  justify-content: center;
  align-items: center;

}

.arrow-down i {
  font-size: 0.85rem;
  line-height: 1;
}

/* 展開（open）時に矢印回転 */
.sidebar-toggle.collapsed .arrow-down {
  transform: translateY(-50%) rotate(0deg);
}
.sidebar-toggle:not(.collapsed) .arrow-down {
  transform: translateY(-50%) rotate(180deg);
}

/* ホバー時：ボタン & アイコン反転 */
.sidebar-toggle:hover {
  background-color: #ffffff;
  color: #277DC2;
  border: 1px solid #277DC2;
}

.sidebar-toggle:hover .arrow-down {
  background-color: #277DC2;  /* 青背景 */
  color: #ffffff;             /* 白矢印 */
  border: 1px solid #277DC2;  /* 青枠 */
}

/* PC（992px以上）ではトグル非表示 */
@media (min-width: 992px) {
  .sidebar-toggle {
    display: none;
  }
}

/* ===========================
   お知らせリスト
   =========================== */

main h2#section-news {
  font-size: clamp(1.4rem, 2.2vw, 2.4rem);
}
main h2#section-news::first-letter {
  color: #2E74A9;
}

/* 左側：年月日＋ラベル */
.news-meta {
  width: 4.8rem;
  min-width: 4.8rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 年と日付 */
.news-year {
  font-size: 0.9rem;
  font-weight: 700;
}

.news-day {
  font-size: 0.8rem;
  color: #6c757d;
}

/* 年月日のブロック（text-center使用時） */
.news-meta,
.list-group-item > .text-center {
  padding: 0.75rem 0;
}

/* 重要バッジ（青枠・青文字・白背景） */
.badge-important {
  background-color: #1D7DC2 !important;
  color: #ffffff !important;
  border: 1px solid #1D7DC2;
  padding: 0.2rem 0.6rem;
  font-weight: 600;
  border-radius: 0;
  font-size: 0.75rem;
}
.badge-cat {
  background-color: #ffffff !important;
  color: #1D7DC2 !important;
  border: 1px solid #1D7DC2;
  padding: 0.2rem 0.6rem;
  font-weight: 600;
  border-radius: 0;
  font-size: 0.75rem;
}

.category-badge {
  text-decoration: none;
}
.category-badge:hover {
  opacity: 0.75;
  text-decoration: underline;
}

/* ニュース一覧のパネル角丸をなくす */
.list-group {
  border-radius: 0 !important;
}
.list-group-item {
  border-radius: 0 !important;
    border: none;
}

/* ニュース1行全体 */
.news-item {
  position: relative;
  overflow: visible;
  /*padding-top: 0 !important;
  padding-bottom: 0 !important;*/
  transition: background-color .25s ease;
  background-color: #f5f5f5;
  background-image: url(../img/bg_news_item.jpg);
  background-position: center left;
    background-size: cover;
    background-repeat: no-repeat;
  margin-bottom: 10px;
}

/* 左右の仕切り線 */
.list-group-item .border-start {
  border-left: 1px solid #dee2e6 !important;
}

/* 右側本文：リンクコンテナ */
.news-body {
  position: relative;
  z-index: 1;
  padding: 0.3rem 0 0.75rem;
}

/* 右側全体をクリック可能にするリンク */
.news-link {
  display: block;
  padding: 0;
  color: inherit;
  text-decoration: none;
  width: 100%;
}

.news-link:hover {
  color: inherit;
  text-decoration: none;
}

/* ホバー時にタイトルだけ下線を出す */
.news-link:hover h3 {
  text-decoration: underline;
}

/* タイトル行 */
.list-group-item h3.h6 {
  margin-bottom: 0.25rem;
}

/* タイトルと右側要素が並ぶ場合の間隔 */
.list-group-item .d-flex.justify-content-between {
  gap: 0.5rem;
}

/* ニュース行：ホバーで背景色を変える */
.news-item:hover {
  background-color: #e8eff9;
  background-image:linear-gradient(
      rgba(232, 239, 249, 0.4),
      rgba(232, 239, 249, 0.4)
    ),url(../img/bg_news_item.jpg);
}


/* ===== ニュース下のカテゴリボタン ===== */
.category-btn {
  background-color: #1D7DC2;
  color: #ffffff;
  font-size: 1.1rem;
  font-weight: 600;
  border: 2px solid #1D7DC2;
  border-radius: 4px;
  transition: all .25s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  padding-right: 2.8rem !important;
}

.category-btn .btn-text {
  text-align: center;
  flex-grow: 1;
}

/* 小さめの丸矢印（青背景＋白矢印） */
.arrow-circle {
  position: absolute;
  right: 12px;
  width: 16px;
  height: 16px;
  background-color: #1D7DC2;
  color: #ffffff;
  border-radius: 50%;
  border: 0.8px solid #ffffff;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all .25s ease;
}

.arrow-circle i {
  font-size: 0.5rem;
}

/* ホバー時（ボタン・矢印の反転） */
.category-btn:hover {
  background-color: #ffffff;
  color: #1D7DC2;
  border-color: #1D7DC2;
}

.category-btn:hover .arrow-circle {
  background-color: #ffffff;
  color: #1D7DC2;
  border: 1px solid #1D7DC2;
}


/* ===========================
   投稿ページ（ニュース個別）
   =========================== */

/* 念のため残す：ニュース個別ページ用 */
.news-post {
  padding-bottom: 4rem;
}

/* カテゴリバッジ */
.news-post .category-badge {
  display: inline-block;
  margin-bottom: 0.4rem;
  padding: 5px 16px;
}

/* 日付 */
.news-post .news-date {
  font-size: 1rem;
  font-weight: bold;
  color: #6c757d;
  margin-bottom: 0.25rem;
}

/* ニュース個別タイトルは下線ナシ */
main .main-sub h2.news-title {
  font-size: clamp(1.7rem, 2.4vw, 1.7rem);
  font-weight: 700;
  margin-top: 0.4rem;
  margin-bottom: 1.5rem;
  padding-bottom: 0;
  position: static;
}
main .main-sub h2.news-title::before,
main .main-sub h2.news-title::after {
  content: none;
}

/* 本文 */
.news-post-article {
  font-size: 1rem;
  line-height: 1.9;
  /*padding: 1rem;
  background-color: #f9f9f9;*/
}
.news-post-article p + p {
  margin-top: 1em;
}


/* ===========================
   お問合せテーブル
   =========================== */

.table-contact th {
  width: 22%;
  min-width: 130px;
  background-color: #f8f9fa;
  font-weight: 600;
  vertical-align: middle;
}

.table-contact td {
  width: 78%;
}

/* スマホ時は縦積みっぽく */
@media (max-width: 575.98px) {
  .table-contact th,
  .table-contact td {
    display: block;
    width: 100%;
  }
  .table-contact th {
    border-bottom: none;
  }
}



/* お問合せフォーム（テーブル内のフォーム） */
.table-contact th {
  width: 22%;
  min-width: 130px;
  background-color: #f8f9fa;
  font-weight: 600;
  vertical-align: middle;
}

.table-contact td {
  width: 78%;
}

.table-contact .form-control,
.table-contact textarea.form-control {
  width: 100%;
}

/* スマホでは縦積みに */
@media (max-width: 575.98px) {
  .table-contact th,
  .table-contact td {
    display: block;
    width: 100%;
  }
  .table-contact th {
    border-bottom: none;
  }
}



/* ===========================
   ボタン 共通（個別ページ用）
   =========================== */
.common-btn {
  background-color: #1D7DC2;
  display: inline-flex;
  width: auto;
  color: #ffffff;
  font-size: 1.1rem;
  font-weight: 600;
  border: 2px solid #1D7DC2;
  border-radius: 4px;
  transition: all .25s ease;
  justify-content: center;
  align-items: center;
  position: relative;
  padding-right: 2.8rem !important;
  padding-left: 2.8rem;
}

.common-btn .btn-text {
  text-align: center;
  flex-grow: 1;
}

.common-btn:hover {
  background-color: #ffffff;
  color: #1D7DC2;
  border-color: #1D7DC2;
}

.common-btn:hover .arrow-circle {
  background-color: #ffffff;
  color: #1D7DC2;
  border: 1px solid #1D7DC2;
}


/* ===========================
   フッター 共通
   =========================== */

.footer {
  margin-top: 3rem;
  font-size: 0.9rem;
}

/* (1) サイト名帯 ================== */

.footer-brand-bar {
  background-image: url("../img/footer_bg_01.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 1.6rem 0;
  text-align: center;
}

.footer-brand-title {
  color: #ffffff;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

/* (2) フッターメニュー帯 ========== */

.footer-nav-bar {
  background-image: url("../img/footer_bg_02.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 2.4rem 0;
}

.footer-nav {
  gap: 0.5rem;
  justify-content: center;
}

.footer-nav-link {
  color: #333;
  text-decoration: none;
  font-weight: 500;
}

.footer-nav-link:hover {
  color: #000;
  text-decoration: underline;
}

/* SP時は縦並び */
@media (max-width: 767.98px) {
  .footer-nav {
    flex-direction: column;
    align-items: flex-start;
  }
  .footer-nav .footer-nav-item {
    width: 100%;
    background-color: #ffffff;
    font-size: 1.2rem;
    margin: 0;
  }
  .footer-nav .footer-nav-item:hover {
    background-color: #cbdaff;
  }
  .footer-nav-link {
    display: block;
    padding: 1rem;
  }
}

/* (3) ロゴ帯 ======================= */

.footer-logo-bar {
  background-color: #ffffff;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}

.footer-logos {
  text-align: center;
}

.footer-logo-item {
  display: inline-block;
}

.footer-logo-img {
  max-height: 68px;
  height: auto;
  width: auto;
  transition: opacity .2s ease;
}

.footer-logo-img:hover {
  opacity: .8;
}

@media (max-width: 767.98px) {
  .footer-logo-img {
    max-height: 62px;
  }
}

/* (4) コピーライト帯 ============== */

.footer-bottom-bar {
  background-image: url("../img/footer_bg_01.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 0.8rem 0;
}

.footer-copy {
  color: #ffffff;
}
