/* ============================================================
    10. お知らせ（カード・カテゴリ・詳細画面）
 ============================================================ */
.notice-body { font-size:16px; }
.notice-filters { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 24px; }
.notice-filter { border:1px solid #b7b7b7; border-radius:30px; padding:7px 13px; background:#fff; color:#222; cursor:pointer; font:inherit; font-size:14px; transition:background .25s,color .25s,border-color .25s; }
.notice-filter:hover,.notice-filter:focus-visible { border-color:#204280; }
.notice-filter.is-active { background:#204280; color:#fff; border-color:#204280; }
.notice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; position:relative; }
.notice-card { min-width:0; aspect-ratio:1/1.06; border:1px solid #dedede; background:#fff; box-shadow:0 2px 9px rgba(0,0,0,.09); overflow:hidden; }
.notice-card-button { width:100%; height:100%; display:flex; flex-direction:column; border:0; padding:0; background:transparent; color:inherit; text-align:left; cursor:pointer; font:inherit; }
.notice-card-button:focus-visible { outline:3px solid #204280; outline-offset:-3px; }
.notice-card-media { position:relative; width:100%; height:43%; flex-shrink:0; background:#e9e9e9; overflow:hidden; display:grid; place-items:center; }
.notice-card-media img { width:100%; height:100%; display:block; object-fit:cover; }
.notice-card-placeholder { font-size:clamp(20px,2.5vw,34px); color:#777; font-weight:700; }
.notice-play { position:absolute; inset:auto 12px 12px auto; display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:#204280; color:white; font-size:20px; }
.notice-card-copy { display:flex; flex:1; min-height:0; flex-direction:column; gap:5px; padding:12px 14px; overflow:hidden; }
.notice-card-meta { color:#666; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.notice-card-title { font-size:clamp(15px,1.5vw,20px); font-weight:700; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.notice-card-excerpt { color:#555; font-size:13px; line-height:1.5; flex:none; min-height:0; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5; white-space:pre-line; }
.notice-empty { margin:20px 0; }
.notice-more { display:block; margin:24px auto 0; border:1px solid #204280; background:#fff; color:#204280; border-radius:5px; padding:12px 28px; font:inherit; cursor:pointer; }
.notice-more:hover { background:#204280; color:#fff; }
.notice-dialog { width:min(720px,calc(100% - 28px)); max-height:90vh; max-height:90dvh; border:0; border-radius:8px; padding:30px; box-shadow:0 12px 45px rgba(0,0,0,.25); }
.notice-dialog::backdrop { background:rgba(0,0,0,.65); }
.notice-close { position:absolute; right:10px; top:8px; border:0; background:transparent; font-size:32px; cursor:pointer; }
.notice-dialog h2 { margin:10px 34px 20px 0; font-size:clamp(22px,3vw,32px); line-height:1.4; }
.notice-dialog p { margin:0 0 16px; line-height:1.85; white-space:pre-wrap; overflow-wrap:anywhere; }
.notice-dialog img { display:block; max-width:100%; height:auto; margin:0 0 20px; }
.notice-dialog iframe { width:100%; aspect-ratio:16/9; border:0; margin:0 0 20px; }
@media (max-width:900px) { .notice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .notice-grid { grid-template-columns:minmax(0,1fr); gap:14px; } .notice-dialog { padding:22px 18px; } }
@media (prefers-reduced-motion:reduce) { .notice-filter { transition:none; } }


/* スマートフォン：番号付き箇条書きの左余白を縮小 */
@media (max-width:600px) {
  .content-section ol { padding-inline-start:1.45em; margin-inline-start:0; }
  .content-section ol > li { padding-inline-start:0.1em; }
}

/* 画面幅に応じた本文の省略行数。途中の行が切れないようにする */
@media (min-width:601px) and (max-width:900px) { .notice-card-excerpt { -webkit-line-clamp:6; } }
@media (max-width:600px) { .notice-card-excerpt { -webkit-line-clamp:8; } }

/* カード写真の表示枠を4:3にする。カード全体の高さは文章領域を確保するため自動拡張。 */
.notice-card { aspect-ratio:auto; min-height:0; }
.notice-card-media { height:auto; aspect-ratio:4/3; flex-shrink:0; background:#111; }
.notice-card-media img { object-fit:contain; }
.notice-card-copy { min-height:160px; }
.notice-card-excerpt { -webkit-line-clamp:6; }
@media(max-width:600px) { .notice-card-excerpt { -webkit-line-clamp:8; } }

/* 投稿本文・タイトル内の安全なリンク */
.notice-card-title a,.notice-card-excerpt a,.notice-dialog a { color:#204280; text-decoration:underline; text-underline-offset:2px; }
.notice-card-title a:hover,.notice-card-excerpt a:hover,.notice-dialog a:hover { color:#102a5a; }
.notice-card-button a:focus-visible { outline:2px solid #204280; outline-offset:2px; }
