/* =========================================
   公開講座：アコーディオン（新規CSS）
   依存なし／既存CSSは変更しない
   ========================================= */

/* ベース */
.events-accordion {
  margin: 1.5rem 0;
}

/* 各アイテムの枠 */
.acc-item {
  border: 1px solid #d9e5dd;          /* 既存サイトの淡緑に近い色味 */
  border-radius: 4px;
  background: #fff;
  margin-bottom: 1rem;
  overflow: hidden;
}

/* 見出し行 */
.acc-summary {
  list-style: none;
  cursor: pointer;
  padding: 1rem 1.25rem;
  position: relative;
  display: block;
}

/* ブラウザ標準マーカーを非表示（対応ブラウザのみ） */
.acc-summary::-webkit-details-marker { display: none; }
.acc-summary::marker { content: ""; }

/* 開閉アイコン（CSSのみ） */
.acc-summary::after {
  content: "＋";                        /* SJIS安全な記号 */
  position: absolute;
  right: 1rem;
  top: 1rem;
  font-size: 1.1rem;
  color: #0a8a6a;                       /* ブランド感のある緑系 */
  line-height: 1;
}
.acc-item[open] .acc-summary::after {
  content: "−";
}

/* 見出し内タイトル */
.acc-title {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.5;
  font-weight: 700;
}
.acc-title time {
  display: inline-block;
  margin-right: .5rem;
  color: #0a8a6a;
  font-weight: 700;
}

/* パネル内側 */
.acc-panel {
  padding: 0 1.25rem 1.25rem;
  border-top: 1px solid #eef3ef;
}

/* 行（ラベル＋本文） */
.acc-row {
  display: grid;
  grid-template-columns: 11rem 1fr;
  gap: .75rem 1rem;
  padding-top: 1rem;
}
.acc-row:first-child { padding-top: 1rem; }

.acc-row-label {
  margin: 0;
  font-size: .95rem;
  font-weight: 700;
  color: #2d2d2d;
  background: #f3f7f4;
  border-left: 3px solid #0a8a6a;
  padding: .5rem .75rem;
  align-self: start;
}

.acc-row-body {
  min-width: 0;
}

.acc-row-body p {
  margin: 0 0 .75rem 0;
}

/* ステータス */
.acc-status {
  display: inline-block;
  margin-top: .5rem;
  font-size: .9rem;
  font-weight: 700;
}
.acc-status--finished { color: #c40000; }

/* 添付（PDF・画像） */
.acc-material a {
  display: inline-block;
  margin-right: .75rem;
}
.acc-thumb {
  max-width: 140px;
  height: auto;
  border: 1px solid #e6e6e6;
}

/* レスポンシブ（スマホ） */
@media (max-width: 768px) {
  .acc-summary { padding-right: 2.25rem; }  /* アイコン余白 */
  .acc-row {
    grid-template-columns: 1fr;            /* 縦積み */
  }
  .acc-row-label {
    border-left-width: 2px;
  }
}

/* アニメ（環境配慮） */
@media (prefers-reduced-motion: no-preference) {
  .acc-item .acc-panel {
    transition: padding .2s ease;
  }
  .acc-item[open] .acc-panel {
    padding-top: .75rem;
  }
}
/* ===== PCでのずれ対策（Gridを確実に2カラム化） ===== */

/* 既存CSSのdisplay/float指定などを無効化するため、強制指定 */
.events-accordion .acc-row {
  display: grid !important;
  grid-template-columns: 7em minmax(0, 1fr) !important; /* ラベル列を広めに */
  column-gap: 1.25rem;
  align-items: start;
}

/* ラベルと本文のグリッド列を明示（自動配置の乱れを防止） */
.events-accordion .acc-row-label { grid-column: 1 !important; }
.events-accordion .acc-row-body  { grid-column: 2 !important; }

/* ラベルのベース調整（余白の衝突を回避） */
.events-accordion .acc-row-label {
  margin: 0 !important;
  padding: .5rem .75rem !important;
  line-height: 1.6;
}

/* 本文側の予期せぬインデント（ul, p のマージン等）を吸収 */
.events-accordion .acc-row-body,
.events-accordion .acc-row-body p,
.events-accordion .acc-row-body ul,
.events-accordion .acc-row-body ol {
  margin-top: 0;
}

/* details/summary周りの既定マーカー・余白のリセット強化 */
.events-accordion .acc-summary { list-style: none; }
.events-accordion .acc-summary::-webkit-details-marker { display: none; }
.events-accordion .acc-summary::marker { content: ""; }

/* 長いURLや連続日本語の折返しで列幅が崩れないように */
.events-accordion .acc-row-body {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* PCのみ適用（スマホは既存の1カラムでOK） */
@media (min-width: 769px) {
  .events-accordion .acc-panel { padding: 0 1.25rem 1.25rem; }
  .events-accordion .acc-row   { padding-top: 1rem; }
}

/* 画像のはみ出し対策（既存CSSのwidth:100%等に勝つ） */
.events-accordion .acc-thumb {
  max-width: 140px !important;
  width: auto !important;
  height: auto !important;
  box-sizing: border-box;
  border: 1px solid #e6e6e6;
}
