.stb-app { margin-top: 8px; }
.stb-step { margin-bottom: 44px; }
.stb-step-heading {
	display: flex;
	align-items: center;
	gap: 12px;
}
.stb-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--c-messing, #AD8A54);
	color: var(--c-papier, #F7F4EF);
	font-family: var(--font-head, sans-serif);
	font-weight: 800;
	font-size: 14px;
	flex-shrink: 0;
}

.stb-date-nav {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 18px 0 16px;
}
.stb-nav-btn {
	padding: 8px 14px !important;
	font-size: 16px;
	line-height: 1;
}
.stb-week-label {
	font-size: 14px;
	font-weight: 600;
	color: var(--c-text-matt, #5A6170);
}

.stb-day-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 8px;
}
@media (max-width: 720px) {
	.stb-day-grid { grid-template-columns: repeat(4, 1fr); }
}
.stb-day {
	border: 1px solid var(--c-border, #DCD6C9);
	border-radius: 4px;
	background: #fff;
	padding: 12px 6px;
	text-align: center;
	cursor: pointer;
	font-size: 13px;
	color: var(--c-navy, #1E2C4C);
}
.stb-day .stb-day-weekday {
	display: block;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--c-text-matt, #5A6170);
	margin-bottom: 4px;
}
.stb-day .stb-day-num {
	display: block;
	font-weight: 700;
	font-size: 16px;
}
.stb-day:hover:not(.is-disabled) { border-color: var(--c-navy, #1E2C4C); }
.stb-day.is-selected {
	background: var(--c-navy, #1E2C4C);
	border-color: var(--c-navy, #1E2C4C);
	color: var(--c-papier, #F7F4EF);
}
.stb-day.is-selected .stb-day-weekday { color: #C9D0DE; }
.stb-day.is-disabled {
	opacity: .35;
	cursor: not-allowed;
}

.stb-selected-date {
	font-size: 14px;
	color: var(--c-text-matt, #5A6170);
	margin-bottom: 16px;
}

.stb-slot-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}
@media (max-width: 720px) {
	.stb-slot-grid { grid-template-columns: repeat(3, 1fr); }
}
.stb-slot {
	border: 1px solid var(--c-border, #DCD6C9);
	border-radius: 4px;
	background: #fff;
	padding: 10px 6px;
	text-align: center;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: var(--c-navy, #1E2C4C);
}
.stb-slot:hover { border-color: var(--c-navy, #1E2C4C); }
.stb-slot.is-selected {
	background: var(--c-messing, #AD8A54);
	border-color: var(--c-messing, #AD8A54);
	color: #fff;
}

.stb-slot-status {
	margin-top: 14px;
	font-size: 14px;
	color: var(--c-text-matt, #5A6170);
}

#stb-booking-form .cta-row { margin-top: 20px; }
