.bc-event-calendar {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
}

.bc-event-box {
	border: 1px solid #ccc;
	padding: 10px;
	width: 250px;
	border-radius: 5px;
	background: #f9f9f9;
}

.bc-event-box.available {
	border-left: 5px solid #2ecc71;
}

.bc-event-box.full {
	opacity: 0.6;
	border-left: 5px solid #e74c3c;
}

.bc-event-book-button {
	display: inline-block;
	margin-top: 8px;
	padding: 5px 10px;
	background: #0073aa;
	color: white;
	text-decoration: none;
	border-radius: 3px;
}

.bc-event-full {
	display: inline-block;
	margin-top: 8px;
	color: #888;
}

/* ── Occurrence tile picker (product page) ── */
.bc-occ-wrap { margin: 12px 0; padding: 12px; border: 1px solid #eee; border-radius: 8px; }
.bc-occ-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.bc-occ-title { margin: 0; font-weight: 600; }
.bc-occ-nav { display: flex; gap: 8px; }
.bc-occ-btn { border: 1px solid #ddd; background: #fff; border-radius: 8px; padding: 8px 10px; cursor: pointer; }
.bc-occ-btn[disabled] { opacity: .45; cursor: not-allowed; }
.bc-occ-viewport { overflow: hidden; }
.bc-occ-track { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding-bottom: 6px; }
.bc-occ-track::-webkit-scrollbar { height: 8px; }
.bc-occ-tile { flex: 0 0 220px; scroll-snap-align: start; }
.bc-occ-tile input { position: absolute; opacity: 0; pointer-events: none; }
.bc-occ-card { display: block; border: 1px solid #ddd; border-radius: 12px; padding: 10px; cursor: pointer; background: #fff; transition: border-color .15s; }
.bc-occ-card:hover { border-color: #bbb; }
.bc-occ-card.is-disabled { opacity: .55; cursor: not-allowed; }
.bc-occ-card.is-selected { border-color: #222; box-shadow: 0 0 0 1px #222 inset; }
.bc-occ-top { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.bc-occ-date { font-weight: 700; }
.bc-occ-time { opacity: .8; }
.bc-occ-price { font-weight: 600; }
.bc-occ-name { font-weight: 600; margin: 0 0 6px 0; line-height: 1.2; }
.bc-occ-meta { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; opacity: .9; }

/* ── Event listing (shortcode) ── */
.bc-events-listing { display: flex; flex-wrap: wrap; gap: 16px; }
.bc-events-listing .bc-event-box { width: 280px; }
.bc-events-listing .bc-event-title { margin: 6px 0 4px; font-size: 16px; }
.bc-events-listing .bc-event-details { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; margin-top: 4px; }
.bc-events-listing .bc-event-date { font-size: 14px; }
.bc-events-listing .bc-event-time { opacity: .8; margin-left: 6px; }
.bc-events-listing .bc-event-price { font-weight: 600; }
.bc-events-empty { padding: 20px; text-align: center; color: #666; }

/* ── Calendar grid ── */
.bc-calendar { max-width: 700px; }
.bc-calendar-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.bc-calendar-month-label { margin: 0; font-size: 18px; font-weight: 600; }
.bc-calendar-nav { border: 1px solid #ddd; background: #fff; border-radius: 6px; padding: 6px 12px; cursor: pointer; font-size: 18px; }
.bc-calendar-nav:hover { background: #f5f5f5; }
.bc-calendar-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; font-weight: 600; font-size: 13px; margin-bottom: 4px; }
.bc-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.bc-calendar-cell { position: relative; min-height: 48px; border: 1px solid #eee; border-radius: 4px; padding: 4px 6px; cursor: pointer; transition: background .15s; }
.bc-calendar-cell:hover { background: #f5f5f5; }
.bc-calendar-cell--empty { border-color: transparent; cursor: default; }
.bc-calendar-cell--empty:hover { background: transparent; }
.bc-calendar-cell--has-events { background: #eaf7ee; }
.bc-calendar-cell--has-events:hover { background: #d4f0dc; }
.bc-calendar-cell--selected { border-color: #222; background: #f0f0f0; }
.bc-calendar-day-num { font-size: 14px; }
.bc-calendar-badge { position: absolute; top: 4px; right: 4px; background: #2ecc71; color: #fff; font-size: 11px; font-weight: 700; width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.bc-calendar-day-events { margin-top: 16px; }
.bc-calendar-day-title { font-size: 16px; font-weight: 600; margin: 0 0 10px; }
.bc-calendar-day-list { display: flex; flex-wrap: wrap; gap: 12px; }
.bc-calendar-day-list .bc-event-box { width: 250px; }

/* ── Responsive ── */
@media (max-width: 600px) {
    .bc-events-listing .bc-event-box,
    .bc-calendar-day-list .bc-event-box { width: 100%; }
    .bc-occ-tile { flex: 0 0 180px; }
}
