.bb-cal-wrap {
	font-family: inherit;
	max-width: 100%;
	margin: 1em 0;
}

.bb-cal-scroll {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.bb-cal {
	width: 100%;
	min-width: 280px;
	border-collapse: collapse;
	table-layout: fixed;
	background: #fff;
}

.bb-cal th,
.bb-cal td {
	border: 1px solid #d4d4d4;
	padding: clamp(4px, 1.2vw, 10px) clamp(2px, 0.8vw, 6px);
	text-align: center;
	vertical-align: middle;
	font-size: clamp(11px, 2.4vw, 14px);
	line-height: 1.2;
	word-break: break-word;
}

.bb-cal-row-head th {
	background: #f4f4f4;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: clamp(10px, 2vw, 12px);
	padding: clamp(4px, 1vw, 8px) 2px;
}

.bb-cal-row-date td {
	font-weight: 700;
	font-size: clamp(13px, 3.4vw, 18px);
	height: clamp(36px, 8vw, 52px);
}

.bb-cal-row-avail td {
	font-size: clamp(10px, 2.2vw, 12px);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	height: clamp(26px, 5.5vw, 34px);
}

.bb-cal-empty {
	background: #fafafa;
	color: transparent;
}

.bb-cal-avail-available {
	color: #1e7a1e;
}

.bb-cal-avail-low {
	color: #b56a00;
}

.bb-cal-avail-verylow {
	color: #b22222;
}

.bb-cal-avail-soldout {
	color: #b22222;
}

.bb-cal-avail-passed {
	color: #888;
}

/* Per-cell "Mark as passed" — independent of the availability dropdown.
   Greys out the date cell (overriding any tier background) and dims text. */
.bb-cal-cell.is-passed {
	background-color: #e8e8e8;
	color: #888;
}
.bb-cal-row-avail .bb-cal-cell.is-passed {
	background-color: #e8e8e8;
	color: #888;
}

/* Label swap: full text on wider screens, short token on narrow ones */
.bb-cal-avail-full {
	display: inline;
}
.bb-cal-avail-short {
	display: none;
	font-size: 1.4em;
	line-height: 1;
}

@media (max-width: 520px) {
	.bb-cal-avail-full {
		display: none;
	}
	.bb-cal-avail-short {
		display: inline;
	}
}

.bb-cal-legend {
	display: flex;
	gap: 8px;
	margin-top: 12px;
	flex-wrap: wrap;
}

.bb-cal-legend-item {
	padding: clamp(6px, 1.5vw, 10px) clamp(10px, 2vw, 16px);
	border-radius: 4px;
	font-weight: 600;
	color: #000;
	display: inline-flex;
	gap: 8px;
	align-items: baseline;
	border: 1px solid rgba(0, 0, 0, 0.08);
	font-size: clamp(12px, 2.4vw, 14px);
}

.bb-cal-legend-amount {
	font-weight: 700;
}

.bb-cal-booking-fee {
	margin-top: 6px;
	font-size: clamp(11px, 2vw, 13px);
	color: #555;
	font-style: italic;
}

.bb-cal-booking-fee-inline {
	margin-top: 0;
	align-self: center;
	padding: 0 4px;
}
