.kbc-calendar-wrap { --kbc-accent:#c3953e; --kbc-border:#d8d1c4; --kbc-bg:#fff; --kbc-text:#222; --kbc-closed:#b43b3b; display:grid; gap:28px; margin:28px auto; color:var(--kbc-text); }
.kbc-calendar { max-width:760px; width:100%; margin:0 auto; }
.kbc-calendar h3 { margin:0 0 18px; text-align:center; font-size:26px; }
.kbc-week-row, .kbc-days { display:grid; grid-template-columns:repeat(7, 1fr); }
.kbc-week-row span { padding:8px 4px; text-align:center; font-weight:700; background:var(--kbc-accent); color:#fff; }
.kbc-front-day { position:relative; min-height:86px; padding:8px; background:var(--kbc-bg); border-right:1px solid var(--kbc-border); border-bottom:1px solid var(--kbc-border); }
.kbc-front-day:nth-child(7n+1) { border-left:1px solid var(--kbc-border); }
.kbc-front-day.is-empty { background:var(--kbc-bg); }
.kbc-day-number { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; font-weight:700; }
.kbc-front-day.is-sunday .kbc-day-number { color:#c33; }
.kbc-front-day.is-saturday .kbc-day-number { color:#286bb3; }
.kbc-front-day.is-closed { background:#f4e8e8; }
.kbc-front-day.has-note:not(.is-closed) { background:#fbf3e4; }
.kbc-front-day.is-closed .kbc-day-number { color:var(--kbc-closed); }
.kbc-status { float:right; color:var(--kbc-closed); }
.kbc-front-day small { display:block; margin-top:8px; line-height:1.35; color:#8a5a00; font-weight:700; overflow-wrap:anywhere; }
.kbc-note-short { display:none; }
.kbc-legend { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:12px 20px; margin-top:14px; font-size:13px; line-height:1.4; }
.kbc-legend span { display:inline-flex; align-items:center; gap:6px; padding:4px 9px; border:1px solid; border-radius:3px; white-space:nowrap; }
.kbc-legend i { flex:0 0 14px; width:14px; height:14px; border:1px solid var(--kbc-border); box-sizing:border-box; }
.kbc-legend .is-closed-label { color:var(--kbc-closed); background:#f4e8e8; border-color:var(--kbc-closed); }
.kbc-legend .has-note-label { color:#704900; background:#fbf3e4; border-color:var(--kbc-accent); }
.kbc-legend i.is-closed { background:#f4e8e8; border-color:var(--kbc-closed); }
.kbc-legend i.has-note { background:#fbf3e4; border-color:var(--kbc-accent); }
.kbc-event-list { max-width:520px; margin:18px auto 0; padding:14px 16px; background:#fbf3e4; border:1px solid var(--kbc-accent); color:#222; }
.kbc-event-list h4 { margin:0 0 10px; color:#704900; font-size:16px; text-align:center; }
.kbc-event-list ul { margin:0; padding:0; list-style:none; }
.kbc-event-list li { display:grid; grid-template-columns:auto 1fr; gap:10px; padding:7px 0; border-top:1px solid #e4cfaa; line-height:1.5; }
.kbc-event-list li:first-child { border-top:0; }
.kbc-event-date { color:#704900; white-space:nowrap; }
.kbc-event-list strong { color:#222; }
.kbc-event-list a { color:#704900; text-decoration:underline; text-underline-offset:3px; }
.kbc-event-list a:hover, .kbc-event-list a:focus { color:#3f2900; }
.kbc-image-calendar { text-align:center; }
.kbc-image-calendar img { max-width:100%; height:auto; }
.kbc-notices { --kbc-accent:#c3953e; --kbc-border:#5b4933; width:100%; max-width:none; margin:0; }
.kbc-notices .kbc-notice-item { display:grid !important; grid-template-columns:140px minmax(0,1fr) !important; gap:20px; padding:20px 8px; border-bottom:1px solid var(--kbc-border); scroll-margin-top:80px; transition:background-color .25s ease; }
.kbc-notice-item .news-date, .kbc-notice-item time { color:var(--kbc-accent); font-size:13px; }
.kbc-notice-title { color:inherit; font-weight:700; }
.kbc-notice-image { margin-top:12px; }
.kbc-notice-image img { display:block; width:100%; max-width:520px; height:auto; border-radius:4px; }
.kbc-notice-content { margin-top:8px; font-size:13px; line-height:1.8; }
.kbc-notice-content, .kbc-notice-content p { color:inherit; }
.kbc-notice-content p { margin:0; }
.kbc-notice-item:target { padding-left:14px; padding-right:14px; background:rgba(195,149,62,.12); outline:1px solid var(--kbc-accent); }
.kbc-extra-list { display:grid; gap:18px; margin:22px 0; }
.kbc-extra-card { padding:20px; border:1px solid #c3953e; border-radius:8px; background:#fff; color:#222; }
.kbc-extra-card > img { display:block; width:100%; max-width:620px; height:auto; margin:0 0 16px; border-radius:6px; }
.kbc-extra-card time { color:#a66c00; font-weight:700; }
.kbc-extra-card h3 { margin:7px 0 12px; }
.kbc-extra-card p { margin:7px 0; line-height:1.7; }
.kbc-closure-list .kbc-extra-card { border-color:#b43b3b; background:#fff5f5; }
.kbc-race-card { background:linear-gradient(135deg,#20190c,#080706); border-color:#c3953e; color:#fff; text-align:center; box-shadow:0 6px 18px rgba(0,0,0,.24); }
.kbc-race-card h3 { color:#fff; font-size:23px; }
.kbc-race-eyebrow { color:#d8b45a; font-size:12px; font-weight:700; letter-spacing:.14em; }
.kbc-race-message { color:#f3dfaa; font-weight:700; }
.kbc-race-message p { color:inherit; }
.kbc-race-benefit { margin-top:14px; padding:12px 14px; background:#f5e3a8; border:1px solid #d8b45a; border-radius:6px; color:#392500; font-weight:700; }
.kbc-race-benefit p { margin:0; color:inherit; }

@media (max-width: 600px) {
  .kbc-calendar h3 { font-size:22px; }
  .kbc-week-row span { padding:7px 2px; font-size:12px; }
  .kbc-front-day { min-height:64px; padding:4px; font-size:12px; }
  .kbc-day-number { width:22px; height:22px; }
  .kbc-status { font-size:12px; }
  .kbc-front-day small { margin-top:4px; font-size:10px; }
  .kbc-note-full { display:none; }
  .kbc-note-short { display:block; }
  .kbc-front-day.has-note small { width:1.4em; margin:4px auto 0; line-height:1.15; letter-spacing:.04em; writing-mode:vertical-rl; text-orientation:upright; white-space:nowrap; overflow-wrap:normal; }
  .kbc-legend { flex-direction:column; align-items:center; gap:7px; font-size:12px; }
  .kbc-event-list { padding:12px; font-size:13px; }
  .kbc-event-list li { grid-template-columns:1fr; gap:1px; }
  .kbc-notices .kbc-notice-item { display:block !important; padding:16px 4px; }
  .kbc-notice-item .news-date { margin-bottom:6px; }
  .kbc-notice-title { font-size:14px; }
}
