.bb-widget {
	max-width: 900px;
	font-family: var(--bb-font-family, inherit);
	--bb-green: #4CAF80;
	--bb-green-light: #e5f5ee;
	--bb-red: #e8e8e8;
	--bb-red-text: #9a9a9a;
	--bb-blue: #2b6cb0;
	--bb-blue-light: #dbe9f7;
	--bb-btn-color: #c0532b;
}
.bb-calendar-wrap {
	position: relative;
}
.bb-date-fields {
	display: flex !important;
	border: 1px solid #ddd;
	border-radius: 12px;
	overflow: hidden;
	max-width: 420px;
	margin-bottom: 16px;
}
.bb-date-field {
	flex: 1 1 0;
	background: #fff;
	border: none;
	border-right: 1px solid #ddd;
	padding: 10px 16px;
	text-align: left;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: center;
	gap: 2px;
}
.bb-date-field:last-child { border-right: none; }
.bb-date-field-label {
	display: block;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: #888;
	font-weight: 700;
	line-height: 1.3;
}
.bb-date-field-value {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: #222;
	line-height: 1.3;
}

.bb-popup {
	background: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 14px;
	padding: 20px;
}
.bb-cal-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}
.bb-cal-nav button {
	background: #fff !important;
	border: 1px solid var(--bb-btn-color, #c0532b) !important;
	color: var(--bb-btn-color, #c0532b) !important;
	border-radius: 50%;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	cursor: pointer;
	font-size: 18px;
	font-weight: 700 !important;
	opacity: 1 !important;
	text-indent: 0 !important;
}
.bb-cal-nav button:hover { background: #faf1ec !important; }
.bb-cal-title { font-weight: 700; font-size: 15px; }

.bb-calendars {
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
}
.bb-month { flex: 1 1 260px; }
.bb-month-title {
	text-align: center;
	font-weight: 700;
	margin-bottom: 10px;
	font-size: 14px;
}
.bb-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
}
.bb-grid .bb-dow {
	font-size: 11px;
	color: #999;
	text-align: center;
	padding-bottom: 6px;
	font-weight: 600;
}
.bb-day {
	aspect-ratio: 1 / 1;
	min-width: 34px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	font-size: 13px;
	cursor: pointer;
	color: #222;
	user-select: none;
}
.bb-day .bb-day-num { font-weight: 500; }
.bb-day .bb-day-price { font-size: 9px; font-weight: 600; opacity: .7; }
.bb-day.bb-empty { visibility: hidden; cursor: default; }
.bb-day.bb-unavailable {
	color: #ccc;
	text-decoration: line-through;
	cursor: not-allowed;
}
.bb-day.bb-adjust {
	background: repeating-linear-gradient(45deg, #fff, #fff 6px, var(--bb-green-light) 6px, var(--bb-green-light) 8px);
}
.bb-day.bb-past {
	color: #ddd;
	text-decoration: line-through;
	cursor: not-allowed;
}
.bb-day:hover:not(.bb-unavailable):not(.bb-empty):not(.bb-past):not(.bb-range-start):not(.bb-range-end) {
	background: #f2f2f2;
}
.bb-day.bb-in-range {
	background: var(--bb-blue-light);
	border-radius: 0;
}
.bb-day.bb-range-start,
.bb-day.bb-range-end {
	background: #222;
	color: #fff;
	font-weight: 700;
}

.bb-popup-footer {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid #eee;
}
.bb-clear-dates {
	background: none;
	border: none;
	text-decoration: underline;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	color: #222;
}

.bb-legend { display: flex; gap: 16px; margin-top: 12px; font-size: 13px; }
.bb-legend-item { display: flex; align-items: center; gap: 6px; }
.bb-dot { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.bb-dot-available { background: var(--bb-green-light); border: 1px solid var(--bb-green); }
.bb-dot-adjust { background: repeating-linear-gradient(45deg, var(--bb-green-light), var(--bb-green-light) 3px, var(--bb-green) 3px, var(--bb-green) 4px); }
.bb-dot-selected { background: var(--bb-blue); }
.bb-dot-unavailable { background: var(--bb-red); }

.bb-selection-summary {
	margin-top: 14px;
	font-weight: 600;
}

.bb-booking-form {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid #e2e2e2;
}
.bb-form-row {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 12px;
}
.bb-form-row label {
	display: flex;
	flex-direction: column;
	font-size: 13px;
	gap: 4px;
	flex: 1 1 220px;
}
.bb-form-row input[type=text],
.bb-form-row input[type=email],
.bb-form-row input[type=tel],
.bb-form-row input[type=number],
.bb-form-row select,
.bb-form-row textarea {
	padding: 8px 10px;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-size: 14px;
}
.bb-checkbox {
	flex-direction: row !important;
	align-items: center;
	gap: 8px !important;
}
.bb-quote-box {
	background: #f7f7f7;
	border-radius: 8px;
	padding: 12px 16px;
	margin: 12px 0;
	font-size: 14px;
}
.bb-balia-block {
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex: 1 1 260px;
}
.bb-balia-note {
	font-size: 12px;
	color: #888;
	margin: 0 0 0 26px;
	line-height: 1.4;
}
.bb-warning {
	background: #fff6e5;
	border: 1px solid #ffd98a;
	color: #7a5200;
	padding: 8px 12px;
	border-radius: 6px;
	font-size: 13px;
	margin: 8px 0;
}
.bb-submit-btn {
	background: var(--bb-btn-color, #c0532b);
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: 12px 20px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}
.bb-submit-btn:disabled { opacity: .5; cursor: not-allowed; }
.bb-form-message { margin-top: 10px; font-weight: 600; }
.bb-form-message.bb-error { color: #a00; }
.bb-form-message.bb-ok { color: #147a3d; }

.bb-confirmation {
	margin-top: 20px;
	padding: 20px;
	border-radius: 10px;
	background: #f2f8f4;
	border: 1px solid #cbe6d6;
}
.bb-confirmation h3 { margin-top: 0; }
