.wpcafe-cruise-boat-step {
	background: #fff;
	border: 1px solid rgb(0 0 0 / 10%);
	border-radius: 12px;
	box-shadow: 0 1px 2px rgb(0 0 0 / 5%);
	display: grid;
	gap: 12px;
	margin: 0 0 20px;
	padding: 24px;
}

.wpcafe-cruise-boat-step label {
	color: #3f4658;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.4;
}

.wpcafe-cruise-boat-step label span {
	color: #ef2b2d;
}

.wpcafe-cruise-boat-select {
	appearance: none;
	background-color: #fff;
	background-image: linear-gradient(45deg, transparent 50%, #8b91a1 50%), linear-gradient(135deg, #8b91a1 50%, transparent 50%);
	background-position: calc(100% - 22px) calc(50% - 3px), calc(100% - 16px) calc(50% - 3px);
	background-repeat: no-repeat;
	background-size: 6px 6px, 6px 6px;
	border: 1px solid #a8b0ca;
	border-radius: 10px;
	color: #3f4658;
	font-size: 18px;
	min-height: 52px;
	padding: 10px 46px 10px 16px;
	width: 100%;
}

.wpcafe-cruise-boat-select:focus {
	border-color: var(--wpcafe-primary-color, #f45925);
	box-shadow: 0 0 0 2px rgb(244 89 37 / 16%);
	outline: 0;
}

.wpcafe-native-location-source {
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	left: -10000px !important;
	overflow: hidden !important;
	position: fixed !important;
	top: 0 !important;
	white-space: nowrap !important;
	width: 1px !important;
}

.wpcafe-cruise-end-time-source {
	display: none !important;
}

.wpcafe-breakfast-dining-field {
	background: rgb(63 70 88 / 4%);
	border: 1px solid rgb(63 70 88 / 12%);
	border-radius: 10px;
	display: block !important;
	padding: 16px;
}

.wpcafe-breakfast-dining-field > * {
	display: none !important;
}

.wpcafe-breakfast-dining-field::before,
.wpcafe-breakfast-dining-field::after {
	display: block;
}

.wpcafe-breakfast-dining-field::before {
	color: #3f4658;
	content: attr(data-wpcafe-breakfast-title);
	font-size: 0.875rem;
	font-weight: 500;
	margin-bottom: 8px;
}

.wpcafe-breakfast-dining-field::after {
	color: #3f4658;
	content: attr(data-wpcafe-breakfast-description);
	font-size: 1rem;
	line-height: 1.5;
}

/*
 * WPCafe renders the reservation form with React. Keep its text and child
 * elements in place, then draw the cruise-friendly copy without changing the
 * DOM tree React owns.
 */
.wpcafe-cruise-visual-text {
	--wpcafe-cruise-display-size: 1rem;

	font-size: 0 !important;
}

.wpcafe-cruise-visual-text::before {
	content: attr(data-wpcafe-display-label);
	font-size: var(--wpcafe-cruise-display-size) !important;
	line-height: inherit;
}

.wpcafe-cruise-visual-field-label,
.wpcafe-cruise-visual-select,
.wpcafe-cruise-visual-option {
	--wpcafe-cruise-display-size: 0.875rem;
}

.wpcafe-cruise-visual-field-label .text-danger {
	font-size: 0.875rem !important;
}

.wpcafe-cruise-visual-heading {
	--wpcafe-cruise-display-size: 1.5rem;
}

.wpcafe-cruise-visual-summary {
	--wpcafe-cruise-display-size: 1rem;
}

.wpcafe-cruise-visual-select > svg,
.wpcafe-cruise-visual-option > svg {
	font-size: 1rem !important;
}

[data-component="wpc-reservation-form"] .wcf-reservation-cancel-btn {
	display: none !important;
}

[data-component="wpc-reservation-form"] .wcf-reservation-cancel-btn + .wcf-btn {
	margin-left: auto;
}

@media (max-width: 767px) {
	.wpcafe-cruise-boat-step {
		padding: 16px;
	}

	.wpcafe-cruise-boat-step label,
	.wpcafe-cruise-boat-select {
		font-size: 16px;
	}

	.wpcafe-cruise-visual-heading {
		--wpcafe-cruise-display-size: 1rem;
	}
}
