.tint-hbe-engine {
	--tint-hbe-color: #17324d;
	--tint-hbe-accent: #b78a45;
	--tint-hbe-border: #d9dee3;
	max-width: 1180px;
	margin: 24px auto;
	color: #17202a;
}

.tint-hbe-search,
.tint-hbe-results {
	margin-bottom: 28px;
}

.tint-hbe-search-form {
	display: grid;
	grid-template-columns: repeat(4, minmax(130px, 1fr));
	gap: 14px;
	padding: 20px;
	border: 1px solid var(--tint-hbe-border);
	background: #fff;
	box-shadow: 0 8px 24px rgba(23, 50, 77, .08);
}

.tint-hbe-search-form label,
.tint-hbe-child-ages label {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.tint-hbe-search-form label span {
	font-size: .88rem;
	font-weight: 700;
}

.tint-hbe-search-form input,
.tint-hbe-search-form select {
	min-height: 44px;
	padding: 8px 10px;
	border: 1px solid var(--tint-hbe-border);
	border-radius: 3px;
	background: #fff;
	font: inherit;
}

.tint-hbe-child-ages {
	display: contents;
}

.tint-hbe-button {
	align-self: end;
	min-height: 44px;
	padding: 10px 18px;
	border: 0;
	border-radius: 3px;
	color: #fff;
	background: var(--tint-hbe-color);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.tint-hbe-button:disabled {
	opacity: .6;
	cursor: not-allowed;
}

.tint-hbe-errors,
.tint-hbe-no-results {
	padding: 12px 16px;
	border-left: 4px solid #b32d2e;
	background: #fcf0f1;
}

.tint-hbe-errors ul {
	margin: 0;
	padding-left: 20px;
}

.tint-hbe-room-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 22px;
}

.tint-hbe-room-card {
	overflow: hidden;
	border: 1px solid var(--tint-hbe-border);
	border-radius: 4px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(23, 50, 77, .08);
}

.tint-hbe-room-image img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
}

.tint-hbe-room-content {
	padding: 20px;
}

.tint-hbe-room-content h3 {
	margin-top: 0;
	color: var(--tint-hbe-color);
}

.tint-hbe-booking-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
	gap: 24px;
	align-items: start;
}

.tint-hbe-guest-form,
.tint-hbe-booking-summary,
.tint-hbe-confirmation {
	padding: 22px;
	border: 1px solid var(--tint-hbe-border);
	background: #fff;
	box-shadow: 0 8px 24px rgba(23, 50, 77, .08);
}

.tint-hbe-guest-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-bottom: 18px;
}

.tint-hbe-guest-grid label {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.tint-hbe-guest-grid input,
.tint-hbe-guest-grid textarea {
	width: 100%;
	padding: 9px 10px;
	border: 1px solid var(--tint-hbe-border);
	font: inherit;
}

.tint-hbe-full-field {
	grid-column: 1 / -1;
}

.tint-hbe-policy {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	margin: 12px 0;
}

.tint-hbe-booking-summary dl,
.tint-hbe-confirmation dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 7px 14px;
}

.tint-hbe-booking-summary dd,
.tint-hbe-confirmation dd {
	margin: 0;
}

.tint-hbe-booking-summary table {
	width: 100%;
	border-collapse: collapse;
}

.tint-hbe-booking-summary th,
.tint-hbe-booking-summary td {
	padding: 8px 4px;
	border-bottom: 1px solid var(--tint-hbe-border);
	text-align: left;
}

.tint-hbe-confirmation-number {
	display: inline-flex;
	flex-direction: column;
	gap: 4px;
	margin: 14px 0;
	padding: 14px 18px;
	background: #edf6ef;
}

.tint-hbe-confirmation-number strong {
	font-size: 1.4rem;
}

.tint-hbe-capacity {
	font-size: .9rem;
}

.tint-hbe-price {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 10px;
	align-items: baseline;
	margin: 18px 0;
}

.tint-hbe-price strong {
	color: var(--tint-hbe-color);
	font-size: 1.35rem;
}

.tint-hbe-price small {
	flex-basis: 100%;
}

@media (max-width: 760px) {
	.tint-hbe-search-form {
		grid-template-columns: 1fr 1fr;
	}

	.tint-hbe-booking-layout {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.tint-hbe-search-form {
		grid-template-columns: 1fr;
	}

	.tint-hbe-guest-grid {
		grid-template-columns: 1fr;
	}
}
