/*はい、承知いたしました。提供されたCSSコードには、同じセレクタに対するスタイル定義が複数箇所に存在し、コメントアウトされた古い修正案や説明文が混在していますね。これを整理し、最新の意図（おそらく提案1: HTMLクラス変更 + CSS簡略化をベースにした調整）に合わせて重複を削除し、イベントリストの間隔調整と折り返し抑制のスタイルを適用した最終的な形に書き換えます。

ヘッダーやサイドバーの z-index 問題は解決済みとし、主にイベントリストのレイアウトに焦点を当てます。
最新の custom.css (重複削除・イベントリスト調整適用版):*/
/*emHP(20250519)*/

@charset "UTF-8";

/* ======== Reset & Base ======== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 100%; scroll-behavior: smooth; }

body {
  background-color: #ffffff;
  display: flex; flex-direction: column; min-height: 100vh;
  color: #343a40; font-family: 'Noto Sans JP', sans-serif; line-height: 1.7;
  position: relative;
  padding-top: 72px !important; /* ★ 固定ヘッダー高に合わせて調整 */
}

/* 背景画像 (必要なら有効化) */
body::before {
  content: ""; position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  z-index: -10 !important;
  /*background-image: url('../img/EM_top.jpg'); /* ★画像のパス */
  /*background-size: cover; background-position: center center; background-repeat: no-repeat; background-attachment: fixed;
  opacity: 0.1; /* ★透明度 */
  background-color: #f8f9fa; /* 単色の背景を指定 (より明るい色や白でも良い) */
  display: flex;
  flex-direction: column;
  min-height: 100vh;

}

a { color: #0056b3; text-decoration: none; font-weight: 500; transition: color 0.2s ease-in-out; }
a:hover { color: #003d80; text-decoration: underline; }
img { max-width: 100%; height: auto; vertical-align: middle; }
h1, h2, h3, h4, h5, h6 { font-family: 'Montserrat', 'Noto Sans JP', sans-serif; font-weight: 700; color: #1A2A4D; line-height: 1.4; margin-bottom: 1.2rem; }
h1 { font-size: 2.6rem; } h2 { font-size: 1.8rem; } h3 { font-size: 1.4rem; } h4 { font-size: 1.2rem; }
p { margin-bottom: 1.2em; } ul, ol { list-style: none; }

/* ======== ヘッダー Navbar ======== */
header {
    position: relative;
    z-index: 1035 !important;
}
header .navbar {
  position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important;
  z-index: 1030 !important;
  background-color: #1A2A4D !important;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.2);
  padding-top: 0.8rem; padding-bottom: 0.8rem;
}
.navbar-dark .navbar-brand,
.navbar-dark .navbar-nav .nav-link { color: rgba(255, 255, 255, 0.85); }
.navbar-dark .navbar-nav .nav-link { font-weight: 500; padding: 0.6rem 1rem !important; transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; }
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus { color: #ffffff; background-color: rgba(0, 86, 179, 0.3); }
.navbar-dark .navbar-nav .nav-link.active { color: #ffffff; font-weight: 700; border-bottom: 3px solid #A0B4D1; padding-bottom: calc(0.6rem - 3px) !important; }
.navbar-dark .navbar-toggler { border-color: rgba(255,255,255,0.3); }
.navbar-dark .navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.5' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
.navbar-brand img { max-height: 45px; }

/* --- ドロップダウンメニュー --- */
.dropdown-menu {
    border: 1px solid #1A2A4D; box-shadow: 0 6px 12px rgba(0,0,0,.2);
    background-color: #ffffff; border-radius: 0;
    position: absolute !important;
    z-index: 1040 !important;
}
.dropdown-item { color: #1A2A4D; font-weight: 500; padding: 0.7rem 1.3rem; }
.dropdown-item:hover, .dropdown-item:focus { background-color: #e4eaf3; color: #003d80; }
.dropdown-item.active, .dropdown-item:active { background-color: #0D47A1; color: #fff; }

/* ======== Layout ======== */
.site-container {
  width: 1140px; max-width: 95%; margin: 2rem auto;
  background-color: rgba(255, 255, 255, 0.95); /* 半透明白 */
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); border-radius: 6px; overflow: hidden;
  display: flex; flex-direction: column; flex-grow: 1;
  position: relative; z-index: 1;
}
.main-wrapper {
  display: flex; padding: 2rem; flex-grow: 1; gap: 2.5rem;
  position: relative; z-index: 1;
}
.sidebar {
  width: 260px; flex-shrink: 0;
  position: relative; z-index: 10;
}
.main-content {
  flex: 1; min-width: 0;
  position: relative; z-index: 5;
}
/* レスポンシブ調整 */
@media (max-width: 991.98px) { .main-wrapper { flex-direction: column; gap: 2rem; } .sidebar { width: 100%; } }
@media (max-width: 767.98px) { .site-container { width: 100%; max-width: 100%; margin: 0 auto; border-radius: 0; } .main-wrapper { padding: 1.5rem; } }

/* ======== Sidebar ======== */
aside .sticky-lg-top {
  top: calc(72px + 1.5rem) !important; /* ★ body.padding-top + 余白 */
  z-index: 1020 !important; /* Navbar/Dropdownより低い */
  max-height: calc(100vh - 72px - 3rem); overflow-y: auto;
}
aside .bg-light {
    background-color: #f0f4f8 !important; border: 1px solid #ced4da;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05); border-radius: 5px;
    padding: 1.5rem !important;
}
aside h4 { color: #1A2A4D; font-size: 1.2rem; font-weight: 700; border-bottom: 2px solid #34568B; padding-bottom: 0.6rem; margin-bottom: 1.2rem; }
aside .list-group-item { color: #1A2A4D; font-weight: 600; border-left: 4px solid transparent; transition: background-color 0.2s ease-in-out, border-left-color 0.2s ease-in-out, color 0.2s ease-in-out; background-color: transparent; border: none; padding: 0.6rem 1rem; font-size: 0.95rem; }
aside .list-group-item:hover { background-color: #d6dde7; color: #0056b3; border-left-color: #A0B4D1; }
aside .list-group-item.active { background-color: #0D47A1; border-color: #0D47A1; color: #fff; border-left-color: #1A2A4D; font-weight: 700; }

/* ======== Main Content ======== */
main h1 { font-size: 2.6rem; font-weight: 700; color: #1A2A4D; border-bottom: 5px solid #0D47A1; padding-bottom: 0.8rem; margin-bottom: 3rem; text-align: center; }
main h2 { color: #1A2A4D; padding: 0.6rem 0; padding-left: 1.2rem; margin-top: 3rem; margin-bottom: 2rem; font-size: 1.7rem; font-weight: 700; border-left: 8px solid #0D47A1; border-bottom: 1px solid #dee2e6; border-radius: 0; background-color: transparent; }
.accordion .accordion-item h2 { background-color: transparent; padding: 0; margin: 0; border: none; font-size: inherit; color: inherit; } /* アコーディオン内は除外 */
main h3 { color: #0D47A1; font-weight: 600; margin-top: 2.5rem; margin-bottom: 1.2rem; padding-bottom: 0.4rem; border-bottom: 2px solid #A0B4D1; display: inline-block; }
.funding-list .year-heading { border-left: 4px solid #0D47A1; padding-left: 0.8rem; border-bottom: none; display: block; }

/* === custom.css 内の event-section スタイルを確認・修正 === */

.event-section article.event-item { /* Bootstrap化前のクラス名と合わせる場合 */
/* .event-section article { */ /* またはこちらのセレクタで */
    background-color: #ffffff;
    border: 1px solid #e0e7f1; /* 枠線を少し柔らかく */
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: 0.375rem;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    border-left: 5px solid var(--color-primary-light); /* 左ボーダー色調整 */
}

.event-section h5 { /* イベントタイトル (例: 第16回...) */
    font-size: 1.25rem; /* 少し大きく */
    font-weight: 700;
    color: var(--color-primary-dark);
    margin-bottom: 1.2rem; /* 詳細との間隔 */
}

/* イベント詳細の各行 */
.event-section .event-detail-item {
    margin-bottom: 0.5rem; /* デフォルトの行間 */
    font-size: 0.95rem;
    line-height: 1.7;
}
.event-section .event-detail-item:last-child {
    margin-bottom: 0;
}

/* ラベル部分 (デスクトップ表示 sm以上) */
@media (min-width: 576px) {
    .event-section .event-detail-label {
        font-weight: 600;
        color: #495057;
        padding-right: 0.5rem;
        text-align: right; /* 右揃え */
        /* width指定は削除し、col-sm-3で幅を確保 */
    }
    .event-section .event-detail-value {
        padding-left: 0; /* 左パディング不要 */
    }
}

/* トップページ用の Information Box (もしあれば、これらのスタイルで上書き) */
/* body に .chushikoku-em-top などのクラスを付与して区別 */
body.chushikoku-em-top main .info-box {
     max-height: 220px; /* 固定高さは内容量によってスクロールバーが出るため、auto推奨か、内容に合わせて調整 */
    height: auto; /* 高さを自動にして内容に合わせる */
    min-height: 180px; /* 最低限の高さを確保しつつ、内容が増えれば伸びる */
    border: 1px solid #ced4da; /* index.htmlのスタイルから */
    border-left: 5px solid #0D47A1; /* こちらの左ボーダーを優先 */
    font-size: 0.9rem; /* index.htmlのスタイルから */
    max-width: none; /* 幅は親要素(col-lg-8)に合わせる */
}


/* ==================================================
   Main Content (メインコンテンツ - mainタグ内部の共通スタイル)
================================================== */

/* ... (既存の main スタイル) ... */

/* Information Box (汎用的なスタイル) */
.info-box {
    overflow-y: auto;
    background-color: #ffffff; /* 背景を白に */
    padding: 1.2rem 1.5rem;
    margin-bottom: 2rem;
    border-radius: 6px; /* 少し角丸を増やす */
    box-shadow: 0 3px 8px rgba(0,0,0,0.07); /* 少し影を濃く */
    font-size: 0.9rem; /* info-box全体の基準フォントサイズ (16px bodyなら 14.4px) - 必要なら調整 */
                         /* 例えば 0.9375rem (15px) や 1rem (16px) に */
    border-left: 3px solid #0D47A1; /* 左のアクセントボーダーを少し太く、色も統一感のある青に */
}

.info-box dl dt {
    font-weight: 600; /* 少し太字に */
    margin-top: 1rem; /* dt間のスペースを少し広げる */
    color: #1A2A4D;   /* 濃い青で見出し感を強調 */
    font-size: 1.05em; /* 親(.info-box)のフォントサイズに対して少し大きく (例: 15px * 1.05 = ~15.75px) */
                       /* または固定値 1rem (16px) など */
    padding-bottom: 0.1em; /* 文字と下線の間隔 */
    /* border-bottom: 1px dashed #d0d9e8; */ /* dtの下に薄い点線 (オプション) */
}
.info-box dl dt:first-child {
    margin-top: 0;
}

.info-box dl dd {
    margin-left: 0.5rem;  /* dtからのインデント */
    padding-left: 1rem;  /* 左ボーダーからのパディング */
    margin-bottom: 0.8rem;/* dd間のスペース */
    font-size: 1em;     /* 親(.info-box)のフォントサイズと同じ (例: 15px) */
    color: #495057;     /* 内容の文字色を少し濃くして読みやすく */
    border-left: 2px solid #79a6dc; /* 左ボーダーの色を少し明るいアクセントブルーに */
    line-height: 1.6;   /* dd内の行間を調整 */
}
.info-box dl dd br { /* dd内の改行後のスペース調整 */
    /* content: ""; */ /* display: block; */ /* margin-top: 0.2em; */ /* 必要なら微調整 */
}

/* 内容部分 */
.event-section .event-detail-value {
    color: var(--color-text);
}

/* モバイル表示 (画面幅が狭い場合 sm未満) のバランス調整 */
@media (max-width: 575.98px) {
    .event-section .event-detail-item {
        /* モバイル表示ではrowクラスを解除して縦積みに */
        display: block;
        margin-bottom: 0.8rem;
    }
    .event-section .event-detail-label {
        /* col-sm-3クラスは無効になる */
        display: block; /* ブロック要素に */
        text-align: left; /* 左揃え */
        font-weight: bold; /* 強調 */
        margin-bottom: 0.1rem; /* 内容との間隔を詰める */
        padding-right: 0;
        color: var(--color-primary); /* ラベル色を少し変える */
        width: auto; /* 幅自動 */
    }
    .event-section .event-detail-value {
         /* col-sm-9クラスは無効になる */
        display: block; /* ブロック要素に */
        padding-left: 0.8rem; /* モバイルでは少しインデント */
        width: auto; /* 幅自動 */
    }
}

/* 「過去の活動報告一覧へ」ボタン */
.event-section p > a.btn {
    margin-top: 1rem; /* ボタンの上の余白 */
}

/* ==================================================
   Sidebar (サイドバー)
================================================== */
/* ... (既存の aside.sidebar .sticky-lg-top スタイル) ... */

aside.sidebar .bg-light {
    background-color: #ffffff !important; /* 背景を白に統一 */
    border: 1px solid #e0e6ed; /* ボーダーを少し柔らかく */
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.06); /* 少し影を調整 */
    padding: 1.25rem !important; /* パディングを少し調整 */
}

aside.sidebar h4 {
    color: #1A2A4D; /* 濃い青で見出し感を出す */
    font-size: 1.2rem;  /* 少し大きく (16px bodyなら 19.2px) */
    font-weight: 600;
    border-bottom: 2px solid #0D47A1; /* アクセントカラーの下線 */
    padding-bottom: 0.6rem;
    margin-bottom: 1.2rem;
}

aside.sidebar .list-group-item {
    color: #343a40;
    font-weight: 500;
    border-left: 3px solid transparent;
    transition: background-color 0.2s ease-in-out, border-left-color 0.2s ease-in-out, color 0.2s ease-in-out;
    font-size: 1rem; /* 少し大きく (16px bodyなら 16px) */
    background-color: transparent;
    padding: 0.7rem 0.85rem; /* パディングを少し増やす */
    border-radius: 5px; /* 各アイテムに角丸 */
    margin-bottom: 0.2rem; /* アイテム間のわずかなスペース */
}
aside.sidebar .list-group-item:hover {
    background-color: #e9f2ff; /* 薄い青のホバー背景 */
    color: #0056b3;      /* ホバー時の文字色を濃く */
    border-left-color: #0D47A1;
}
aside.sidebar .list-group-item.active {
    background-color: #0D47A1;
    border-color: #0D47A1;
    color: #ffffff;      /* アクティブ時の文字色を白に */
    border-left-color: #05386b; /* アクティブ時の左ボーダーをさらに濃く */
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(13, 71, 161, 0.2); /* アクティブ時に軽い影 */
}
aside.sidebar hr {
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
    border-top: 1px solid #e0e6ed;
}

/* サイドバー内アコーディオンボタン */
#sidebarOlderYearsAccordion .accordion-button {
    font-size: 1rem; /* 他のリストアイテムと合わせる */
    color: #343a40;
    /* 他のスタイルは既存のものを継承または調整 */
    padding: 0.7rem 0.85rem; /* 他のリストアイテムと合わせる */
    font-weight: 500;
}
#sidebarOlderYearsAccordion .accordion-button:not(.collapsed) {
    color: #0056b3;
    background-color: #e9f2ff; /* 開いている親アイテムの背景色 */
}
/* アイコンの色は既存のままで良いか、必要なら調整 */

#sidebarOlderYearsAccordion .list-group-item { /* インデントされたアイテム */
    font-size: 0.95rem; /* 親より少しだけ小さく (16px bodyなら 15.2px) */
    padding-left: 1.75rem; /* インデントを少し深めに */
}
    


/* ======== イベントリストのスタイル (section + dl 方式 - Bootstrap Grid ベース) ======== */
.event-item {
    background-color: #ffffff; border: 1px solid #dee2e6;
    /*!★ パディングを少し詰める */
    padding: 1.2rem;
    margin-bottom: 1rem; /*!★ アイテム間のマージンも詰める */
    border-radius: 0.375rem; box-shadow: 0 3px 6px rgba(0,0,0,0.05);
    border-left: 6px solid #0056b3;
    overflow: hidden; /* floatクリア用 */
}
.event-item:last-child { margin-bottom: 0; }

.event-item h2.h5 { font-size: 1.2rem; /* タイトルサイズ少し調整 */
    font-weight: 700; color: #1A2A4D; margin-top: 0; margin-bottom: 0.4rem;
	padding-bottom: 0; border-bottom: none; }
.event-item .host-info { font-size: 0.9rem; /* 主催者情報少し小さく */
    color: #6c757d; margin-bottom: 0.8rem; }

.event-item .event-details dl.row {
    margin-bottom: 0; font-size: 0.9rem; /* 文字サイズ少し小さく */
    /*!★ 行間を詰める */
    line-height: 1.6; /* 例: 1.7から詰める */
    margin-left: 0; margin-right: 0;
}

/* ラベル列 (dt) - col-sm-auto を想定 */
.event-item .event-details dt[class*="col-"] {
    font-weight: 600; color: #495057;
    padding-top: 0; padding-bottom: 0;
    text-align: right;
    padding-right: 0.5rem; /* 内容との隙間 */
    /*!★ 下マージンを詰める */
    margin-bottom: 0.1rem;
    line-height: inherit;
    /* width指定はHTML側(col-sm-auto)に任せる */
}

/* 内容列 (dd) - col-sm を想定 */
.event-item .event-details dd[class*="col-"] {
    padding-top: 0; padding-bottom: 0;
    padding-left: 0.2rem; /* ラベルとの隙間 */
    /*!★ 下マージンを詰める */
    margin-bottom: 0.1rem;
    word-break: break-word;
    line-height: inherit;
    /*!★ 折り返し抑制 (はみ出し注意) */
    /*white-space: nowrap; */
    /*overflow: hidden; */
    /*text-overflow: ellipsis; */
}

/* レスポンシブ対応 (sm breakpoint 以下) */
@media (max-width: 575.98px) {
    .event-item .event-details dt[class*="col-"] {
        text-align: left; padding-right: var(--bs-gutter-x, 0.75rem); margin-bottom: 0;
    }
    .event-item .event-details dd[class*="col-"] {
        padding-left: 0.5rem; margin-bottom: 0.5rem; /* 項目間隔 */
        /* white-space: normal; */ /* 折り返し許可 */
    }
}

/* ======== Footer ======== */
footer {
  background-color: #1A2A4D; color: #adb5bd; padding: 2rem 0;
  border-top: 4px solid #0D47A1; margin-top: auto; text-align: center;
}
footer a { color: #dee2e6; text-decoration: none; font-weight: 500; }
footer a:hover { color: #ffffff; text-decoration: underline; }
.footer-navigation ul { display: flex; justify-content: center; flex-wrap: wrap; gap: 1.5rem; margin-bottom: 1rem; padding-left: 0; }
.copyright-text { font-size: 0.9rem; color: #adb5bd; margin: 0; }

/* ======== Tables (もし使用する場合) ======== */
table { border-collapse: collapse; width: 100%; margin-bottom: 1.5em; line-height: 1.6; }
th, td { padding: 0.7em 1em; /* パディング少し調整 */ text-align: left; border: 1px solid #dee2e6; vertical-align: middle; }
th { background-color: #e9ecef; font-weight: 600; white-space: nowrap; }
/* テーブル列幅指定が必要な場合の例 */
/* .activity-report-table td:nth-child(1) { width: 35%; font-weight: 600; } */
/* .activity-report-table td:nth-child(3) { width: 18%; white-space: nowrap; } */
.responsive-table { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 1.5rem; border: 1px solid #dee2e6; border-radius: 4px; }
.responsive-table table { margin-bottom: 0; border: none; }

/*      デフォルト値から少し狭くした例 */
@media (min-width: 576px) {
  .container, .container-sm { /* .container-sm も対象にする場合 */
    max-width: 500/*450px*/; /* Bootstrapデフォルトと同じ */
  }
}
@media (min-width: 768px) {
  .container, .container-md, .container-sm {
    max-width: 680px; /* Bootstrapデフォルトと同じ */
  }
}
@media (min-width: 992px) {
  .container, .container-lg, .container-md, .container-sm {
     /*max-width: 960px;  /* デフォルト */
    max-width: 900px; /* ★少し狭くする */
  }
}
@media (min-width: 1200px) {
  .container, .container-xl, .container-lg, .container-md, .container-sm {
    /* max-width: 1140px*/;  /* デフォルト */
    max-width: 1000px; /* ★少し狭くする */
  }
}
@media (min-width: 1400px) {
  .container, .container-xxl, .container-xl, .container-lg, .container-md, .container-sm {
    /* max-width: 1100px;  /* デフォルト */
   max-width: 1000px; /* ★少し狭くする */
  }
}

.accordion-button {
  font-weight: bold; /* 年の部分を太字に */
  color: #0d6efd;   /* Bootstrapのプライマリカラーなど、任意の色に */
}

.accordion-button:not(.collapsed) {
  background-color: #e7f1ff; /* 開いているときボタンの背景色を薄い青に */
  color: #0a58ca; /* 開いているときの文字色 */
}

.accordion-button:focus {
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); /* フォーカス時の影 */
}

/* サイドバーの年別リンク用スタイル (HTML内のstyleタグから移動する場合) */
.sidebar-year-link.active {
   font-weight: bold;
   color: #0d6efd; /* アクティブな年の色 */
}
.sidebar-year-link {
    /* 必要に応じて通常時のスタイルも調整 */
}

  /* ★画像を一回り小さくするための追加スタイル */
/*  display auto; margin-right: auto;`**: `max-width` を指定した際に、画像がカラム内で中央に配置されるようにします。*/
.image-gallery-intro img {
  max-width: 80%; /* ★カラム幅に対する割合で指定 (例: 80% や 70%) */ /* max-width: いえ120px; */ /* ★または固定ピクセル値で指定 (例: 120px) */
  height: auto;
  display: block; /* 中央揃えのために追加 */
  margin-left: auto; /*いえ、大丈夫ですよ！ /* 中央揃えのために追加 */
  margin-right: auto; /*中央揃えのために追加 */ /*回り小さくしたい、ということですね。*/

/*`css/custom.css` ファイル内の `*/
/*.image-gallery-intro */
  imgborder: 1px solid #ced4da;
  padding: 4px;
  border-radius: 4px;
  background-color: #fff;
  box-shadow: 0 2
} 

