.rswb-booking-shell {
	background: #f7f1e8;
	color: #342c22;
	margin: 0 auto;
	padding: clamp(32px, 5vw, 72px) 18px;
}

.rswb-booking-hero,
.rswb-booking-grid {
	margin: 0 auto;
	max-width: 1120px;
}

.rswb-booking-hero {
	margin-bottom: 30px;
}

.rswb-kicker,
.rswb-summary-label {
	color: #9a7942;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.rswb-booking-hero h1,
.rswb-service-summary h2 {
	color: #173f31;
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.12;
	margin: 8px 0 12px;
}

.rswb-booking-hero h1 {
	font-size: clamp(34px, 5vw, 58px);
	max-width: 760px;
}

.rswb-booking-hero p {
	color: #6b5d4b;
	font-size: 17px;
	max-width: 700px;
}

.rswb-booking-grid {
	align-items: start;
	display: grid;
	gap: 24px;
	grid-template-columns: minmax(260px, 340px) 1fr;
}

.rswb-service-summary,
.rswb-booking-form {
	background: #fffaf1;
	border: 1px solid #e1d0b8;
	border-radius: 8px;
	box-shadow: 0 18px 45px rgba(52, 44, 34, .08);
}

.rswb-service-summary {
	padding: 26px;
	position: sticky;
	top: 24px;
}

.rswb-service-summary h2 {
	font-size: 30px;
}

.rswb-service-summary p {
	color: #746552;
	margin: 0 0 18px;
}

.rswb-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.rswb-badges span {
	background: #efe2ce;
	border: 1px solid #d6bd93;
	border-radius: 999px;
	color: #173f31;
	display: inline-flex;
	font-weight: 700;
	padding: 8px 12px;
}

.rswb-booking-form {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	padding: clamp(22px, 4vw, 34px);
}

.rswb-field,
.rswb-message,
.rswb-submit,
.rswb-field-full {
	grid-column: span 2;
}

@media (min-width: 760px) {
	.rswb-field {
		grid-column: span 1;
	}

	.rswb-field-full {
		grid-column: span 2;
	}
}

.rswb-field label {
	color: #173f31;
	display: block;
	font-weight: 700;
	margin-bottom: 7px;
}

.rswb-field input,
.rswb-field select,
.rswb-field textarea {
	background: #fffef9;
	border: 1px solid #d8c5a7;
	border-radius: 6px;
	box-sizing: border-box;
	color: #342c22;
	font: inherit;
	min-height: 46px;
	padding: 10px 12px;
	width: 100%;
}

.rswb-field textarea {
	resize: vertical;
}

.rswb-phone-row {
	display: grid;
	gap: 8px;
	grid-template-columns: minmax(130px, 46%) 1fr;
}

.rswb-error {
	color: #9f2f1f;
	display: block;
	font-size: 13px;
	margin-top: 6px;
	min-height: 18px;
}

.rswb-lock-note {
	color: #8a714c;
	display: block;
	font-size: 13px;
	margin-top: 6px;
}

.rswb-message {
	border-radius: 6px;
	padding: 12px 14px;
}

.rswb-message.success {
	background: #e8f1e4;
	color: #173f31;
}

.rswb-message.error {
	background: #f7e2dc;
	color: #7e271b;
}

.rswb-submit,
.rswb-book-now {
	background: #173f31;
	border: 0;
	border-radius: 6px;
	color: #fffaf1;
	cursor: pointer;
	display: inline-flex;
	font-weight: 700;
	justify-content: center;
	min-height: 48px;
	padding: 14px 22px;
	text-decoration: none;
	transition: background .2s ease, transform .2s ease;
}

.rswb-submit:hover,
.rswb-book-now:hover {
	background: #9a7942;
	color: #fffaf1;
	transform: translateY(-1px);
}

.rswb-submit:disabled {
	cursor: wait;
	opacity: .65;
}

@media (max-width: 759px) {
	.rswb-booking-grid,
	.rswb-booking-form {
		grid-template-columns: 1fr;
	}

	.rswb-field,
	.rswb-message,
	.rswb-submit,
	.rswb-field-full {
		grid-column: 1;
	}

	.rswb-service-summary {
		position: static;
	}

	.rswb-phone-row {
		grid-template-columns: 1fr;
	}
}

.rswb-portal {
	background: #f7f1e8;
	color: #342c22;
	min-height: 80vh;
	padding: clamp(26px, 5vw, 58px) 18px;
}

.rswb-portal-head,
.rswb-portal-login,
.rswb-portal-table-wrap {
	margin: 0 auto;
	max-width: 1180px;
}

.rswb-portal-head {
	align-items: center;
	background: #173f31;
	border-radius: 8px;
	color: #fffaf1;
	display: flex;
	justify-content: space-between;
	margin-bottom: 18px;
	padding: 26px;
}

.rswb-portal-head h1,
.rswb-portal-login h1 {
	color: inherit;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(30px, 4vw, 46px);
	font-weight: 500;
	line-height: 1.1;
	margin: 6px 0 8px;
}

.rswb-portal-head p {
	color: #efe2ce;
	margin: 0;
}

.rswb-portal-logout,
.rswb-portal-action {
	background: #d8bd82;
	border: 0;
	border-radius: 4px;
	color: #173f31;
	cursor: pointer;
	display: inline-flex;
	font-weight: 700;
	margin: 0 4px 6px 0;
	padding: 9px 12px;
	text-decoration: none;
}

.rswb-portal-action[data-status="cancelled"] {
	background: #f8dfd9;
	color: #8a2b1f;
}

.rswb-portal-action[data-status="completed"] {
	background: #e0edf2;
	color: #27576b;
}

.rswb-portal-login {
	background: #fffaf1;
	border: 1px solid #e1d0b8;
	border-radius: 8px;
	box-shadow: 0 18px 45px rgba(52, 44, 34, .08);
	max-width: 520px;
	padding: 28px;
}

.rswb-portal-login h1 {
	color: #173f31;
}

.rswb-portal-login input {
	box-sizing: border-box;
	width: 100%;
}

.rswb-live-meta {
	color: #756955;
	font-size: 13px;
	margin: 0 auto 14px;
	max-width: 1180px;
}

.rswb-portal-message {
	border-radius: 6px;
	margin: 0 auto 14px;
	max-width: 1180px;
	padding: 12px 14px;
}

.rswb-portal-message.success {
	background: #e8f1e4;
	color: #173f31;
}

.rswb-portal-message.error {
	background: #f7e2dc;
	color: #7e271b;
}

.rswb-portal-table-wrap {
	overflow-x: auto;
}

.rswb-portal-table {
	background: #fffaf1;
	border: 1px solid #e1d0b8;
	border-collapse: collapse;
	border-radius: 8px;
	min-width: 980px;
	overflow: hidden;
	width: 100%;
}

.rswb-portal-table th {
	background: #efe2ce;
	color: #173f31;
	font-weight: 700;
	padding: 13px 12px;
	text-align: left;
}

.rswb-portal-table td {
	border-top: 1px solid #eadfce;
	padding: 13px 12px;
	vertical-align: top;
}

.rswb-portal-table tr:nth-child(even) td {
	background: #fbf4e8;
}

.rswb-status {
	border-radius: 999px;
	display: inline-flex;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	padding: 7px 10px;
	text-transform: uppercase;
}

.rswb-status-pending {
	background: #fff0cf;
	color: #8a5a00;
}

.rswb-status-approved {
	background: #dff2e7;
	color: #17613c;
}

.rswb-status-cancelled {
	background: #f8dfd9;
	color: #8a2b1f;
}

.rswb-status-completed {
	background: #e0edf2;
	color: #27576b;
}

.rswb-status-rescheduled {
	background: #ebe3f7;
	color: #553b81;
}
