.sm8tb-widget {
	max-width: 520px;
	margin: 16px auto 0;
	font-family: inherit;
}

.sm8tb-widget label {
	display: block;
	margin-bottom: 12px;
	font-size: 14px;
	font-weight: 600;
}

.sm8tb-widget input,
.sm8tb-widget textarea {
	display: block;
	width: 100%;
	margin-top: 4px;
	padding: 8px 10px;
	font-size: 15px;
	font-weight: normal;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
}

.sm8tb-row {
	display: flex;
	gap: 12px;
}

.sm8tb-row label {
	flex: 1;
	min-width: 0; /* allow flex children to shrink below content width instead of overflowing */
}

.sm8tb-row .sm8tb-narrow {
	flex: 0 0 90px;
}

/* On narrow screens, City gets its own full-width row and State/ZIP share
   the row below it, instead of all three squeezing into one tight row. */
@media ( max-width: 480px ) {
	.sm8tb-row {
		flex-wrap: wrap;
	}

	.sm8tb-row label:first-child {
		flex: 1 1 100%;
	}

	.sm8tb-row .sm8tb-narrow {
		flex: 1 1 calc( 50% - 6px );
	}
}

/* Base button reset shared by every button in the widget. Colors are set
   per-button-type below. */
.sm8tb-widget button {
	cursor: pointer;
	border: none;
	border-radius: 10px;
	padding: 12px 20px;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 1em;
	font-weight: 700;
	color: #fff;
}

.sm8tb-widget button:hover {
	filter: brightness( 0.92 );
}

.sm8tb-widget button:active {
	filter: brightness( 0.85 );
}

/* Check Availability */
.sm8tb-address-form button[type="submit"] {
	background: #E57A1F;
}

/* Change address / Back / Continue (secondary navigation actions) and
   individual time-slot buttons all share the same treatment. */
.sm8tb-back,
.sm8tb-continue,
.sm8tb-slot-btn {
	background: #1F4E79;
	display: inline-block;
}

.sm8tb-back {
	margin-top: 16px;
}

.sm8tb-step[data-step="details"] .sm8tb-back {
	margin-top: 0;
	margin-bottom: 16px;
}

.sm8tb-continue {
	margin-top: 16px;
}

/* Confirm Booking */
.sm8tb-details-form button[type="submit"] {
	background: #008000;
}

.sm8tb-step[data-step="slots"] h3 {
	margin-bottom: 24px;
}

.sm8tb-slot-day {
	margin-bottom: 28px;
}

.sm8tb-slot-day h4 {
	margin: 0 0 10px;
}

.sm8tb-slot-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sm8tb-selected-slot {
	margin-bottom: 16px;
	padding: 10px 12px;
	background: #f2f7f4;
	border-radius: 4px;
	font-weight: 600;
}

/* Confirmation: a self-contained success card so it reads clearly on its
   own, regardless of whatever page content (headings, etc.) surrounds the
   widget once the form itself is hidden. */
.sm8tb-confirmation-card {
	text-align: center;
	padding: 32px 24px;
	background: #f2f9f2;
	border: 1px solid #cfe8cf;
	border-radius: 10px;
}

.sm8tb-confirmation-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: #008000;
	color: #fff;
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
}

.sm8tb-confirmation-card h3 {
	margin: 0 0 10px;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-weight: 700;
}

.sm8tb-confirmation-message {
	font-size: 15px;
	color: #2f2f2f;
}

.sm8tb-calendar-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 20px;
}

.sm8tb-cal-link {
	display: inline-block;
	padding: 8px 14px;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	color: #1F4E79;
	background: #fff;
	border: 1px solid #1F4E79;
	border-radius: 10px;
}

.sm8tb-cal-link:hover {
	background: #eaf1f7;
}

.sm8tb-error {
	margin-top: 14px;
	padding: 10px 12px;
	background: #fdecec;
	color: #8a1f1f;
	border-radius: 4px;
	font-size: 14px;
}

.sm8tb-loading {
	margin-top: 10px;
	font-size: 14px;
	color: #666;
}
