/* ============================================================
   BlockCalendar 公開側スタイル（自己完結・外部CDN不使用）
   月グリッド（6週固定）＋ 曜日ヘッダ ＋ イベントドット ＋ 下部イベント一覧
   ============================================================ */
.bk-calendar{ max-width:100%; box-sizing:border-box; font-size:14px; color:#28221f; }
.bk-calendar *{ box-sizing:border-box; }

.bk-calendar .bkcal-head{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap; margin:0 0 12px; }
.bk-calendar .bkcal-title{ font-size:17px; font-weight:900; color:#26221e; line-height:1.4; }
.bk-calendar .bkcal-ym{ font-size:13px; font-weight:800; color:#8a5c00; background:#fdf1dc; border-radius:99px; padding:4px 14px; line-height:1.6; white-space:nowrap; }

.bk-calendar .bkcal-grid{ border:1px solid #e7e2da; border-radius:12px; overflow:hidden; background:#fff; }
.bk-calendar .bkcal-row{ display:flex; }
.bk-calendar .bkcal-row + .bkcal-row{ border-top:1px solid #eee8e0; }

.bk-calendar .bkcal-weekdays{ background:#faf8f4; }
.bk-calendar .bkcal-wd{ flex:1 1 0; min-width:0; text-align:center; font-size:11.5px; font-weight:800; color:#7a746c; padding:8px 2px; }
.bk-calendar .bkcal-wd-sun{ color:#c0392b; }
.bk-calendar .bkcal-wd-sat{ color:#2f6fb0; }

.bk-calendar .bkcal-cell{ position:relative; flex:1 1 0; min-width:0; min-height:56px; padding:6px 4px 8px; text-align:center; border-right:1px solid #f1ede6; }
.bk-calendar .bkcal-row .bkcal-cell:last-child{ border-right:0; }
.bk-calendar .bkcal-cell-empty{ background:#fbfaf8; }
.bk-calendar .bkcal-daynum{ display:inline-flex; align-items:center; justify-content:center; min-width:24px; min-height:24px; border-radius:99px; font-size:13px; font-weight:700; color:#4a443e; }
.bk-calendar .bkcal-cell-sun .bkcal-daynum{ color:#c0392b; }
.bk-calendar .bkcal-cell-sat .bkcal-daynum{ color:#2f6fb0; }
.bk-calendar .bkcal-cell-today{ background:#fff2ea; }
.bk-calendar .bkcal-cell-today .bkcal-daynum{ background:#e8681f; color:#fff; }
.bk-calendar .bkcal-cell-has-event{ cursor:pointer; }
.bk-calendar .bkcal-cell-has-event:hover,
.bk-calendar .bkcal-cell-has-event:focus{ background:#f5f2ec; outline:none; }
.bk-calendar .bkcal-cell-has-event.bkcal-cell-active{ background:#fdeef5; box-shadow:inset 0 0 0 2px #e21d7a; }

.bk-calendar .bkcal-dots{ display:flex; align-items:center; justify-content:center; gap:3px; margin-top:4px; min-height:7px; }
.bk-calendar .bkcal-dot{ width:6px; height:6px; border-radius:99px; display:inline-block; flex:0 0 auto; }

.bk-calendar .bkcal-list{ list-style:none; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.bk-calendar .bkcal-list-item{ display:flex; align-items:center; gap:10px; padding:9px 12px; border:1px solid #eee8e0; border-radius:9px; background:#fcfbf9; transition:background .2s,box-shadow .2s; }
.bk-calendar .bkcal-list-item.bkcal-list-active{ background:#fdeef5; box-shadow:inset 0 0 0 2px #e21d7a; }
.bk-calendar .bkcal-list-date{ flex:0 0 auto; font-size:12px; font-weight:800; color:#8a5c00; background:#fdf1dc; border-radius:99px; padding:3px 10px; white-space:nowrap; }
.bk-calendar .bkcal-list-chip{ flex:0 0 auto; width:11px; height:11px; border-radius:3px; }
.bk-calendar .bkcal-list-label{ flex:1 1 auto; min-width:0; font-size:13.5px; font-weight:600; color:#3a342f; overflow-wrap:break-word; }

.bk-calendar .bkcal-hint{ border:2px dashed #dcc98f; border-radius:12px; background:#fdfaf2; padding:18px 16px; text-align:center; color:#94824f; font-size:13px; font-weight:700; margin-top:14px; }

@media (max-width:480px){
  .bk-calendar .bkcal-cell{ min-height:44px; padding:5px 2px 6px; }
  .bk-calendar .bkcal-daynum{ font-size:12px; min-width:21px; min-height:21px; }
  .bk-calendar .bkcal-title{ font-size:15.5px; }
  .bk-calendar .bkcal-list-item{ padding:8px 10px; }
}
