.rxrm-booking-flow {
	--rxrm-ink: #261625;
	--rxrm-ink-soft: #4a3047;
	--rxrm-muted: #695761;
	--rxrm-line: #ead7dc;
	--rxrm-line-strong: #c99aaa;
	--rxrm-surface: #ffffff;
	--rxrm-soft: #fbf4e8;
	--rxrm-accent: #a81832;
	--rxrm-accent-dark: #861127;
	--rxrm-emphasis: #a81832;
	--rxrm-danger: #861127;
	--rxrm-danger-soft: #fff1ef;
	--rxrm-success: #6f3b57;
	--rxrm-success-soft: #f6e8ec;
	color: var(--rxrm-ink);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	margin: 0 auto;
	max-width: 800px;
	position: relative;
	width: min(100%, 800px);
}

.rxrm-booking-flow,
.rxrm-booking-flow * {
	box-sizing: border-box;
	letter-spacing: 0;
}

.rxrm-booking-flow button,
.rxrm-booking-flow input,
.rxrm-booking-flow select,
.rxrm-booking-flow textarea {
	font: inherit;
	letter-spacing: 0;
	max-width: 100%;
}

.rxrm-booking-flow button,
.rxrm-booking-flow [type="checkbox"],
.rxrm-booking-flow select,
.rxrm-booking-flow input,
.rxrm-booking-flow textarea {
	accent-color: var(--rxrm-accent);
}

.rxrm-booking-flow button:focus-visible,
.rxrm-booking-flow input:focus-visible,
.rxrm-booking-flow select:focus-visible,
.rxrm-booking-flow textarea:focus-visible,
.rxrm-booking-flow [tabindex="0"]:focus-visible {
	outline: 3px solid rgba(168, 24, 50, 0.28) !important;
	outline-offset: 2px;
}

.rxrm-shell {
	background: var(--rxrm-surface);
	border: 1px solid var(--rxrm-line);
	border-radius: 8px;
	box-shadow: 0 22px 60px rgba(38, 22, 37, 0.12);
	overflow: hidden;
	position: relative;
}

.rxrm-header {
	background: var(--rxrm-ink);
	border-top: 4px solid var(--rxrm-accent);
	color: #ffffff;
	padding: 22px 20px 24px;
}

.rxrm-header p,
.rxrm-header h2,
.rxrm-header span {
	margin: 0;
}

.rxrm-header > p {
	color: #861127;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.3;
	text-transform: uppercase;
}

.rxrm-header-row {
	align-items: end;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	margin-top: 7px;
}

.rxrm-header-row > div {
	min-width: 0;
}

.rxrm-header h2 {
	color: #ffffff;
	font-family: var(--rxrm-font-display, "Titan One", sans-serif);
	font-size: 34px;
	font-weight: 400;
	line-height: 1.08;
	overflow-wrap: anywhere;
}

.rxrm-header-row span {
	color: rgba(255, 255, 255, 0.8);
	display: block;
	font-size: 14px;
	line-height: 1.45;
	margin-top: 8px;
}

.rxrm-change-service {
	appearance: none;
	background: transparent !important;
	border: 1px solid rgba(255, 255, 255, 0.38) !important;
	border-radius: 6px;
	color: #ffffff !important;
	cursor: pointer;
	flex: 0 0 auto;
	font-size: 12px !important;
	font-weight: 800;
	line-height: 1.25;
	min-height: 44px;
	padding: 9px 12px;
	white-space: normal;
}

.rxrm-change-service:hover {
	background: rgba(255, 255, 255, 0.1) !important;
}

.rxrm-hub {
	padding: 22px 20px 24px;
}

.rxrm-hub h3 {
	color: var(--rxrm-ink);
	font-size: 21px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 16px;
}

.rxrm-service-grid {
	display: grid;
	gap: 12px;
	grid-template-columns: 1fr;
}

.rxrm-service {
	appearance: none;
	background: #ffffff !important;
	border: 1px solid var(--rxrm-line) !important;
	border-radius: 8px;
	color: var(--rxrm-ink) !important;
	cursor: pointer;
	display: grid;
	gap: 7px;
	min-height: 148px;
	padding: 18px;
	text-align: left;
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
	width: 100%;
}

.rxrm-service:hover,
.rxrm-service:focus-visible {
	border-color: var(--rxrm-accent) !important;
	box-shadow: 0 12px 24px rgba(38, 22, 37, 0.08);
	transform: translateY(-1px);
}

.rxrm-service strong {
	color: var(--rxrm-ink);
	font-size: 17px;
	font-weight: 850;
	line-height: 1.25;
	overflow-wrap: anywhere;
}

.rxrm-service span {
	color: var(--rxrm-muted);
	font-size: 13px;
	line-height: 1.45;
	overflow-wrap: anywhere;
}

.rxrm-service em {
	align-self: end;
	color: var(--rxrm-accent-dark);
	font-size: 12px;
	font-style: normal;
	font-weight: 850;
	line-height: 1.3;
	text-transform: uppercase;
}

.rxrm-service.is-unavailable,
.rxrm-service:disabled {
	background: #f3f5f5 !important;
	border-color: #dfe4e6 !important;
	box-shadow: none;
	cursor: not-allowed;
	opacity: 0.72;
	transform: none;
}

.rxrm-progress {
	background: var(--rxrm-soft);
	border-bottom: 1px solid var(--rxrm-line);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	padding: 12px 8px;
}

.rxrm-progress-step {
	align-content: start;
	appearance: none;
	background: transparent !important;
	border: 0 !important;
	color: var(--rxrm-muted) !important;
	cursor: pointer;
	display: grid;
	gap: 6px;
	justify-items: center;
	min-height: 64px;
	min-width: 0;
	padding: 0 3px;
	position: relative;
	text-align: center;
}

.rxrm-progress-step::before,
.rxrm-progress-step::after {
	background: var(--rxrm-line-strong);
	content: "";
	height: 2px;
	position: absolute;
	top: 16px;
	width: 50%;
	z-index: 0;
}

.rxrm-progress-step::before {
	left: 0;
}

.rxrm-progress-step::after {
	right: 0;
}

.rxrm-progress-step:first-child::before,
.rxrm-progress-step:last-child::after {
	display: none;
}

.rxrm-progress-step.is-done::before,
.rxrm-progress-step.is-done::after,
.rxrm-progress-step.is-current::before {
	background: var(--rxrm-accent);
}

.rxrm-progress-step:disabled {
	cursor: not-allowed;
	opacity: 0.68;
}

.rxrm-progress-step b {
	align-items: center;
	background: #ffffff;
	border: 2px solid var(--rxrm-line-strong);
	border-radius: 50%;
	color: var(--rxrm-muted);
	display: flex;
	font-size: 12px;
	font-weight: 900;
	height: 34px;
	justify-content: center;
	line-height: 1;
	position: relative;
	width: 34px;
	z-index: 1;
}

.rxrm-progress-step span {
	color: inherit;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.22;
	max-width: 100%;
	overflow-wrap: anywhere;
	white-space: normal;
}

.rxrm-progress-step.is-current,
.rxrm-progress-step.is-done {
	color: var(--rxrm-ink) !important;
}

.rxrm-progress-step.is-current b,
.rxrm-progress-step.is-done b {
	background: var(--rxrm-accent);
	border-color: var(--rxrm-accent);
	color: #ffffff;
}

.rxrm-progress-step.is-current b {
	box-shadow: 0 0 0 4px rgba(168, 24, 50, 0.14);
}

.rxrm-form {
	animation: rxrm-enter 180ms ease both;
	display: grid;
	gap: 20px;
	padding: 20px;
}

@keyframes rxrm-enter {
	from {
		opacity: 0;
		transform: translateY(5px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.rxrm-step-intro {
	display: grid;
	gap: 6px;
}

.rxrm-step-intro > span {
	color: var(--rxrm-accent-dark);
	font-size: 11px;
	font-weight: 900;
	line-height: 1.3;
	text-transform: uppercase;
}

.rxrm-step-intro h3 {
	color: var(--rxrm-ink);
	font-size: 24px;
	font-weight: 850;
	line-height: 1.15;
	margin: 0;
	overflow-wrap: anywhere;
}

.rxrm-step-intro p {
	color: var(--rxrm-muted);
	font-size: 14px;
	line-height: 1.5;
	margin: 0;
}

.rxrm-section {
	display: flow-root;
	margin: 0;
	min-width: 0;
}

.rxrm-section h4,
.rxrm-weight-fieldset legend {
	color: var(--rxrm-ink);
	font-size: 12px;
	font-weight: 900;
	line-height: 1.3;
	margin: 0 0 10px;
	padding: 0;
	text-transform: uppercase;
}

.rxrm-calendar {
	border: 1px solid var(--rxrm-line);
	border-radius: 8px;
	overflow: hidden;
}

.rxrm-cal-head {
	align-items: center;
	background: var(--rxrm-soft);
	display: grid;
	grid-template-columns: 48px 1fr 48px;
	min-height: 54px;
}

.rxrm-cal-head button {
	align-items: center;
	appearance: none;
	background: transparent !important;
	border: 0 !important;
	color: var(--rxrm-ink) !important;
	cursor: pointer;
	display: flex;
	height: 48px;
	justify-content: center;
	min-height: 48px;
	min-width: 48px;
	padding: 0;
}

.rxrm-cal-head button:disabled {
	cursor: not-allowed;
	opacity: 0.35;
}

.rxrm-cal-head svg {
	fill: none;
	height: 24px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
	width: 24px;
}

.rxrm-cal-head strong {
	color: var(--rxrm-ink);
	font-size: 17px;
	font-weight: 850;
	line-height: 1.3;
	text-align: center;
	text-transform: capitalize;
}

.rxrm-cal-head strong span {
	color: var(--rxrm-emphasis);
}

.rxrm-cal-scroll {
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
}

.rxrm-cal-body {
	min-width: 504px;
}

.rxrm-cal-weekdays,
.rxrm-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(66px, 1fr));
}

.rxrm-cal-weekdays {
	background: #ffffff;
	border-bottom: 1px solid var(--rxrm-line);
	color: var(--rxrm-muted);
	font-size: 10px;
	font-weight: 900;
	line-height: 1.2;
	padding: 8px 6px;
	text-align: center;
	text-transform: uppercase;
}

.rxrm-cal-weekdays span {
	overflow-wrap: anywhere;
}

.rxrm-cal-grid {
	background: #ffffff;
	gap: 4px;
	padding: 6px;
}

.rxrm-cal-empty,
.rxrm-cal-day {
	min-height: 94px;
}

.rxrm-cal-day {
	align-content: center;
	appearance: none;
	background: #f7e9eb !important;
	border: 1px solid #dab7c0 !important;
	border-radius: 6px;
	color: var(--rxrm-ink) !important;
	cursor: pointer;
	display: grid;
	gap: 2px;
	justify-items: center;
	min-width: 66px;
	padding: 6px 3px;
	text-align: center;
	white-space: normal;
}

.rxrm-cal-day strong {
	color: var(--rxrm-ink);
	font-size: 18px;
	font-weight: 900;
	line-height: 1;
}

.rxrm-cal-day span,
.rxrm-cal-day small {
	display: block;
	font-size: 9px;
	font-weight: 750;
	line-height: 1.12;
	max-width: 100%;
	overflow-wrap: normal;
	word-break: normal;
	white-space: normal;
}

.rxrm-cal-day .rxrm-cal-price {
	color: var(--rxrm-accent-dark);
	font-weight: 900;
}

.rxrm-cal-day .rxrm-cal-state {
	color: var(--rxrm-ink-soft);
}

.rxrm-cal-day .rxrm-cal-capacity {
	color: var(--rxrm-accent-dark);
}

.rxrm-cal-day:hover,
.rxrm-cal-day:focus-visible,
.rxrm-cal-day.is-selected {
	background: var(--rxrm-ink) !important;
	border-color: var(--rxrm-ink) !important;
	box-shadow: 0 7px 16px rgba(38, 22, 37, 0.18);
}

.rxrm-cal-day:hover strong,
.rxrm-cal-day:hover span,
.rxrm-cal-day:hover small,
.rxrm-cal-day:focus-visible strong,
.rxrm-cal-day:focus-visible span,
.rxrm-cal-day:focus-visible small,
.rxrm-cal-day.is-selected strong,
.rxrm-cal-day.is-selected span,
.rxrm-cal-day.is-selected small {
	color: #ffffff;
}

.rxrm-cal-day:disabled {
	background: #f2f4f5 !important;
	border-color: #e3e7e9 !important;
	box-shadow: none;
	color: #84919a !important;
	cursor: not-allowed;
	opacity: 1;
}

.rxrm-cal-day:disabled strong,
.rxrm-cal-day:disabled span,
.rxrm-cal-day:disabled small {
	color: #84919a !important;
}

.rxrm-calendar-legend {
	align-items: center;
	background: #ffffff;
	border-top: 1px solid var(--rxrm-line);
	color: var(--rxrm-muted);
	display: flex;
	flex-wrap: wrap;
	font-size: 11px;
	font-weight: 750;
	gap: 8px 14px;
	line-height: 1.3;
	padding: 10px 12px;
}

.rxrm-calendar-legend span {
	align-items: center;
	display: inline-flex;
	gap: 6px;
}

.rxrm-calendar-legend i {
	background: #f7e9eb;
	border: 1px solid #dab7c0;
	border-radius: 3px;
	display: inline-block;
	height: 12px;
	width: 12px;
}

.rxrm-calendar-legend i.is-selected {
	background: var(--rxrm-ink);
	border-color: var(--rxrm-ink);
}

.rxrm-calendar-legend i.is-blocked {
	background: #f2f4f5;
	border-color: #e3e7e9;
}

.rxrm-slot-grid {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rxrm-slot {
	appearance: none;
	background: #ffffff !important;
	border: 1px solid var(--rxrm-line-strong) !important;
	border-radius: 8px;
	color: var(--rxrm-ink) !important;
	cursor: pointer;
	display: grid;
	gap: 4px;
	min-height: 76px;
	padding: 12px;
	text-align: left;
	white-space: normal;
}

.rxrm-slot strong {
	color: var(--rxrm-ink);
	font-size: 17px;
	font-weight: 900;
	line-height: 1.2;
}

.rxrm-slot span {
	color: var(--rxrm-muted);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.rxrm-slot:hover,
.rxrm-slot:focus-visible,
.rxrm-slot.is-active {
	background: #f7e9eb !important;
	border-color: var(--rxrm-accent) !important;
	box-shadow: inset 0 0 0 1px var(--rxrm-accent);
}

.rxrm-slot:disabled {
	background: #f3f5f6 !important;
	border-color: var(--rxrm-line) !important;
	cursor: not-allowed;
	opacity: 0.7;
}

.rxrm-selection-note {
	align-items: center;
	background: var(--rxrm-soft);
	border-left: 4px solid var(--rxrm-accent);
	color: var(--rxrm-ink);
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	justify-content: space-between;
	min-height: 48px;
	padding: 10px 12px;
}

.rxrm-selection-note strong,
.rxrm-selection-note span {
	font-size: 13px;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.rxrm-counter-list {
	border-bottom: 1px solid var(--rxrm-line);
	border-top: 1px solid var(--rxrm-line);
}

.rxrm-counter-row {
	align-items: center;
	display: grid;
	gap: 14px;
	grid-template-columns: minmax(0, 1fr) auto;
	min-height: 84px;
	padding: 12px 0;
}

.rxrm-counter-row + .rxrm-counter-row {
	border-top: 1px solid var(--rxrm-line);
}

.rxrm-counter-row > div:first-child {
	min-width: 0;
}

.rxrm-counter-row strong,
.rxrm-counter-row span {
	display: block;
	overflow-wrap: anywhere;
}

.rxrm-counter-row strong {
	color: var(--rxrm-ink);
	font-size: 15px;
	font-weight: 850;
	line-height: 1.3;
}

.rxrm-counter-row span {
	color: var(--rxrm-muted);
	font-size: 12px;
	line-height: 1.4;
	margin-top: 3px;
}

.rxrm-stepper {
	align-items: center;
	border: 1px solid var(--rxrm-line-strong);
	border-radius: 8px;
	display: grid;
	grid-template-columns: 48px 60px 48px;
	height: 48px;
	overflow: hidden;
}

.rxrm-stepper button {
	appearance: none;
	background: #ffffff !important;
	border: 0 !important;
	color: var(--rxrm-accent-dark) !important;
	cursor: pointer;
	font-size: 21px;
	font-weight: 700;
	height: 48px;
	min-height: 48px;
	min-width: 48px;
	padding: 0;
}

.rxrm-stepper button:disabled {
	color: #aeb8bd !important;
	cursor: not-allowed;
}

.rxrm-stepper input {
	appearance: textfield;
	background: var(--rxrm-soft) !important;
	border: 0 !important;
	border-left: 1px solid var(--rxrm-line) !important;
	border-radius: 0 !important;
	border-right: 1px solid var(--rxrm-line) !important;
	color: var(--rxrm-ink);
	font-size: 16px;
	font-weight: 900;
	height: 48px;
	min-height: 48px;
	padding: 0;
	text-align: center;
	width: 60px;
}

.rxrm-stepper input::-webkit-inner-spin-button,
.rxrm-stepper input::-webkit-outer-spin-button {
	appearance: none;
	margin: 0;
}

.rxrm-weight-fieldset {
	border: 0;
	margin: 0;
	min-width: 0;
	padding: 0;
}

.rxrm-weight-fieldset > p {
	color: var(--rxrm-muted);
	font-size: 13px;
	line-height: 1.45;
	margin: -3px 0 12px;
}

.rxrm-weight-grid {
	display: grid;
	gap: 10px;
	grid-template-columns: 1fr;
}

.rxrm-weight-card {
	background: var(--rxrm-soft);
	border: 1px solid var(--rxrm-line);
	border-radius: 8px;
	display: grid;
	gap: 7px;
	padding: 12px;
}

.rxrm-weight-card > span,
.rxrm-fields label > span {
	color: var(--rxrm-ink-soft);
	display: block;
	font-size: 11px;
	font-weight: 850;
	line-height: 1.3;
	margin-bottom: 6px;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.rxrm-fields {
	display: grid;
	gap: 12px;
	grid-template-columns: 1fr;
}

.rxrm-fields label {
	display: block;
	min-width: 0;
}

.rxrm-input {
	background: #ffffff !important;
	border: 1px solid var(--rxrm-line-strong) !important;
	border-radius: 7px !important;
	color: var(--rxrm-ink) !important;
	font-size: 16px !important;
	line-height: 1.35;
	min-height: 50px;
	padding: 12px;
	width: 100%;
}

.rxrm-input:focus {
	border-color: var(--rxrm-accent) !important;
	box-shadow: 0 0 0 3px rgba(168, 24, 50, 0.12) !important;
}

.rxrm-input.is-invalid {
	border-color: var(--rxrm-danger) !important;
	box-shadow: 0 0 0 3px rgba(156, 47, 47, 0.1) !important;
}

.rxrm-field-error {
	color: var(--rxrm-danger);
	display: block;
	font-size: 12px;
	font-weight: 750;
	line-height: 1.35;
	margin-top: 6px;
}

textarea.rxrm-input {
	min-height: 100px;
	resize: vertical;
}

.rxrm-wide {
	grid-column: 1 / -1;
}

.rxrm-tour-info {
	background: var(--rxrm-soft);
	border-left: 4px solid var(--rxrm-emphasis);
	display: grid;
	gap: 7px;
	padding: 12px 14px;
}

.rxrm-tour-info p {
	color: var(--rxrm-muted);
	font-size: 13px;
	line-height: 1.45;
	margin: 0;
}

.rxrm-tour-info strong {
	color: var(--rxrm-ink);
}

.rxrm-addon-grid {
	display: grid;
	gap: 12px;
	grid-template-columns: 1fr;
}

.rxrm-addon {
	align-content: start;
	background: #ffffff;
	border: 1px solid var(--rxrm-line);
	border-radius: 8px;
	cursor: pointer;
	display: grid;
	gap: 10px;
	grid-template-columns: 24px minmax(0, 1fr);
	min-height: 112px;
	padding: 12px;
	position: relative;
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.rxrm-addon:hover,
.rxrm-addon:focus-within {
	border-color: var(--rxrm-accent);
	transform: translateY(-1px);
}

.rxrm-addon.is-selected {
	border-color: var(--rxrm-accent);
	box-shadow: inset 0 0 0 1px var(--rxrm-accent), 0 10px 24px rgba(168, 24, 50, 0.1);
}

.rxrm-addon input {
	grid-column: 1;
	height: 22px;
	margin: 1px 0 0;
	width: 22px;
}

.rxrm-addon-media {
	aspect-ratio: 16 / 9;
	background: var(--rxrm-soft);
	border-radius: 6px;
	display: block;
	grid-column: 1 / -1;
	grid-row: 1;
	overflow: hidden;
	width: 100%;
}

.rxrm-addon-media img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.rxrm-addon.has-image input {
	grid-row: 2;
}

.rxrm-addon-copy {
	display: grid;
	gap: 4px;
	grid-column: 2;
	min-width: 0;
}

.rxrm-addon.has-image .rxrm-addon-copy {
	grid-row: 2;
}

.rxrm-addon-copy strong,
.rxrm-addon-copy em {
	display: block;
	overflow-wrap: anywhere;
}

.rxrm-addon-copy strong {
	color: var(--rxrm-ink);
	font-size: 14px;
	font-weight: 850;
	line-height: 1.3;
}

.rxrm-addon-copy em {
	color: var(--rxrm-muted);
	font-size: 12px;
	font-style: normal;
	line-height: 1.4;
}

.rxrm-addon-meta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	grid-column: 2;
}

.rxrm-addon-meta b {
	color: var(--rxrm-accent-dark);
	font-size: 13px;
	font-weight: 900;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.rxrm-addon-meta small {
	background: #f3e7d7;
	border-radius: 999px;
	color: var(--rxrm-accent-dark);
	font-size: 10px;
	font-weight: 850;
	line-height: 1.2;
	padding: 4px 7px;
	white-space: normal;
}

.rxrm-addon-total {
	align-items: center;
	border-bottom: 1px solid var(--rxrm-line);
	border-top: 1px solid var(--rxrm-line);
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	justify-content: space-between;
	margin-top: 14px;
	min-height: 54px;
	padding: 10px 0;
}

.rxrm-addon-total span {
	color: var(--rxrm-muted);
	font-size: 13px;
	line-height: 1.35;
}

.rxrm-addon-total strong {
	color: var(--rxrm-ink);
	font-size: 17px;
	font-weight: 900;
}

.rxrm-summary {
	background: var(--rxrm-soft);
	border: 1px solid var(--rxrm-line);
	border-radius: 8px;
	display: grid;
	gap: 0;
	padding: 14px;
}

.rxrm-summary-head,
.rxrm-summary-total {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	justify-content: space-between;
}

.rxrm-summary-head {
	border-bottom: 1px solid var(--rxrm-line-strong);
	padding-bottom: 12px;
}

.rxrm-summary-head span,
.rxrm-summary-total span {
	color: var(--rxrm-muted);
	font-size: 11px;
	font-weight: 900;
	line-height: 1.3;
	text-transform: uppercase;
}

.rxrm-summary-head strong,
.rxrm-summary-total strong {
	color: var(--rxrm-ink);
	font-size: 20px;
	font-weight: 900;
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.rxrm-summary-lines {
	display: grid;
	padding: 7px 0;
}

.rxrm-summary-line {
	align-items: start;
	display: grid;
	gap: 10px;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
	padding: 6px 0;
}

.rxrm-summary-line span,
.rxrm-summary-line strong {
	font-size: 12px;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.rxrm-summary-line span {
	color: var(--rxrm-muted);
}

.rxrm-summary-line strong {
	color: var(--rxrm-ink);
	font-weight: 800;
	text-align: right;
}

.rxrm-summary-line.is-subtotal strong {
	font-weight: 900;
}

.rxrm-summary-group {
	border-top: 1px solid var(--rxrm-line);
	margin-top: 5px;
	padding-top: 8px;
}

.rxrm-summary-group h5 {
	color: var(--rxrm-ink);
	font-size: 11px;
	font-weight: 900;
	line-height: 1.3;
	margin: 0 0 2px;
	text-transform: uppercase;
}

.rxrm-summary-total {
	border-top: 2px solid var(--rxrm-ink);
	padding-top: 12px;
}

.rxrm-payment-section {
	display: grid;
	gap: 10px;
}

.rxrm-payment-state {
	align-items: center;
	background: #fbf4e8;
	border: 1px solid #d9d5d7;
	border-radius: 7px;
	color: var(--rxrm-ink);
	display: grid;
	gap: 9px;
	grid-template-columns: 12px minmax(0, 1fr);
	min-height: 50px;
	padding: 10px 12px;
}

.rxrm-payment-state > span {
	background: var(--rxrm-accent);
	border-radius: 50%;
	height: 10px;
	width: 10px;
}

.rxrm-payment-state strong {
	font-size: 13px;
	font-weight: 800;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.rxrm-payment-state.is-error {
	background: var(--rxrm-danger-soft);
	border-color: #efc7c1;
	color: var(--rxrm-danger);
}

.rxrm-payment-state.is-error > span {
	background: var(--rxrm-danger);
}

.rxrm-payment-state.is-success {
	background: var(--rxrm-success-soft);
	border-color: #bcdcca;
	color: var(--rxrm-success);
}

.rxrm-payment-state.is-success > span {
	background: var(--rxrm-success);
}

.rxrm-payment-state.is-pending {
	background: #f6e8ec;
	border-color: #dab7c0;
	color: #4a3047;
}

.rxrm-payment-state.is-pending > span {
	background: #a81832;
}

.rxrm-payment-recovery {
	display: grid;
	gap: 9px;
	grid-template-columns: 1fr;
}

.rxrm-inline-button {
	appearance: none;
	background: var(--rxrm-ink) !important;
	border: 1px solid var(--rxrm-ink) !important;
	border-radius: 7px;
	color: #ffffff !important;
	cursor: pointer;
	font-size: 13px !important;
	font-weight: 850;
	line-height: 1.3;
	min-height: 48px;
	padding: 10px 14px;
	white-space: normal;
}

.rxrm-inline-button.is-secondary {
	background: #ffffff !important;
	border-color: var(--rxrm-line-strong) !important;
	color: var(--rxrm-ink) !important;
}

.rxrm-woo-notice {
	border: 1px solid var(--rxrm-line);
	border-radius: 7px;
	padding: 13px;
}

.rxrm-woo-notice strong {
	color: var(--rxrm-ink);
	font-size: 14px;
	font-weight: 900;
}

.rxrm-woo-notice p {
	color: var(--rxrm-muted);
	font-size: 13px;
	line-height: 1.45;
	margin: 4px 0 0;
}

.rxrm-stripe-box {
	background: #ffffff;
	border: 1px solid var(--rxrm-line);
	border-radius: 8px;
	display: grid;
	gap: 14px;
	padding: 14px;
}

.rxrm-stripe-express[hidden],
.rxrm-stripe-divider[hidden],
.rxrm-stripe-loading[hidden] {
	display: none !important;
}

.rxrm-stripe-divider {
	align-items: center;
	color: var(--rxrm-muted);
	display: grid;
	font-size: 11px;
	font-weight: 850;
	gap: 8px;
	grid-template-columns: 1fr auto 1fr;
	text-transform: uppercase;
}

.rxrm-stripe-divider::before,
.rxrm-stripe-divider::after {
	background: var(--rxrm-line);
	content: "";
	height: 1px;
}

.rxrm-stripe-loading {
	background: var(--rxrm-soft);
	border-radius: 6px;
	color: var(--rxrm-muted);
	font-size: 13px;
	font-weight: 750;
	line-height: 1.4;
	padding: 16px;
	text-align: center;
}

.rxrm-stripe-payment {
	min-height: 0;
}

.rxrm-stripe-payment.is-ready {
	min-height: 180px;
}

.rxrm-actions {
	align-items: stretch;
	background: rgba(255, 255, 255, 0.97);
	border-top: 1px solid var(--rxrm-line);
	display: grid;
	gap: 9px;
	grid-template-columns: 1fr;
	margin: 0 -20px -20px;
	padding: 12px 20px max(12px, env(safe-area-inset-bottom));
	position: sticky;
	bottom: 0;
	z-index: 4;
}

.rxrm-primary,
.rxrm-secondary {
	appearance: none;
	border-radius: 7px;
	cursor: pointer;
	font-size: 14px !important;
	font-weight: 900;
	line-height: 1.3;
	min-height: 52px;
	padding: 12px 16px;
	text-transform: uppercase;
	white-space: normal;
	width: 100%;
}

.rxrm-primary {
	background: var(--rxrm-ink) !important;
	border: 1px solid var(--rxrm-ink) !important;
	color: #ffffff !important;
}

.rxrm-primary:hover,
.rxrm-primary:focus-visible {
	background: var(--rxrm-accent-dark) !important;
	border-color: var(--rxrm-accent-dark) !important;
}

.rxrm-primary:disabled {
	background: #a8b1b6 !important;
	border-color: #a8b1b6 !important;
	cursor: not-allowed;
}

.rxrm-secondary {
	background: #ffffff !important;
	border: 1px solid var(--rxrm-line-strong) !important;
	color: var(--rxrm-ink) !important;
}

.rxrm-secondary:hover,
.rxrm-secondary:focus-visible {
	border-color: var(--rxrm-ink) !important;
}

.rxrm-alert,
.rxrm-empty,
.rxrm-loading {
	font-size: 14px;
	line-height: 1.45;
	overflow-wrap: anywhere;
}

.rxrm-alert {
	border-radius: 7px;
	margin: 16px 20px 0;
	padding: 12px 14px;
}

.rxrm-alert.is-error {
	background: var(--rxrm-danger-soft);
	border: 1px solid #efc7c1;
	color: var(--rxrm-danger);
}

.rxrm-alert.is-success {
	background: var(--rxrm-success-soft);
	border: 1px solid #bcdcca;
	color: var(--rxrm-success);
}

.rxrm-empty,
.rxrm-loading {
	background: var(--rxrm-soft);
	color: var(--rxrm-muted);
	margin: 16px;
	min-height: 50px;
	padding: 14px;
}

.rxrm-overlay {
	align-items: center;
	background: rgba(255, 255, 255, 0.88);
	color: var(--rxrm-ink);
	display: flex;
	font-size: 15px;
	font-weight: 900;
	inset: 0;
	justify-content: center;
	padding: 20px;
	position: absolute;
	text-align: center;
	z-index: 8;
}

.rxrm-hp {
	height: 1px;
	left: -9999px;
	opacity: 0;
	position: absolute;
	top: auto;
	width: 1px;
}

@media (min-width: 640px) {
	.rxrm-header {
		padding: 26px 28px 28px;
	}

	.rxrm-header h2 {
		font-size: 42px;
	}

	.rxrm-hub,
	.rxrm-form {
		padding: 24px 28px 28px;
	}

	.rxrm-service-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.rxrm-progress {
		padding: 14px 20px;
	}

	.rxrm-progress-step span {
		font-size: 12px;
	}

	.rxrm-cal-body {
		min-width: 0;
	}

	.rxrm-cal-day,
	.rxrm-cal-empty {
		min-height: 106px;
	}

	.rxrm-cal-day span,
	.rxrm-cal-day small {
		font-size: 10px;
	}

	.rxrm-weight-grid,
	.rxrm-addon-grid,
	.rxrm-fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rxrm-fields-single {
		grid-template-columns: 1fr;
	}

	.rxrm-payment-recovery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rxrm-actions {
		grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
		margin: 4px 0 0;
		padding: 0;
		position: static;
	}

	.rxrm-actions .rxrm-primary:only-child,
	.rxrm-actions .rxrm-secondary:only-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 639px) {
	.rxrm-booking-flow {
		width: 100%;
	}

	.rxrm-shell {
		border-left: 0;
		border-radius: 0;
		border-right: 0;
	}

	.rxrm-header-row {
		align-items: start;
		flex-direction: column;
	}

	.rxrm-header h2 {
		font-size: 31px;
	}

	.rxrm-change-service {
		width: 100%;
	}

	.rxrm-counter-row {
		align-items: stretch;
		grid-template-columns: 1fr;
	}

	.rxrm-stepper {
		grid-template-columns: 48px minmax(60px, 1fr) 48px;
		width: 100%;
	}

	.rxrm-stepper input {
		width: 100%;
	}

	.rxrm-summary-line {
		grid-template-columns: 1fr;
		gap: 2px;
	}

	.rxrm-summary-line strong {
		text-align: left;
	}
}

@media (max-width: 380px) {
	.rxrm-progress {
		padding-left: 3px;
		padding-right: 3px;
	}

	.rxrm-progress-step {
		padding-left: 1px;
		padding-right: 1px;
	}

	.rxrm-progress-step span {
		font-size: 10px;
	}

	.rxrm-slot-grid {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rxrm-form,
	.rxrm-service,
	.rxrm-addon {
		animation: none;
		transition: none;
	}

	.rxrm-booking-flow {
		scroll-behavior: auto;
	}
}

body.rxrm-embed-active div.product form.cart,
body.rxrm-embed-active form.cart .quantity,
body.rxrm-embed-active form.cart .single_add_to_cart_button,
body.rxrm-embed-active div.product .quantity,
body.rxrm-embed-active div.product .single_add_to_cart_button,
body.rxrm-embed-active .woocommerce-variation-add-to-cart,
body.rxrm-embed-active .elementor-widget-woocommerce-product-add-to-cart form.cart {
	display: none !important;
}

body.rxrm-embed-active .rxrm-booking-flow {
	margin: 18px 0 10px;
	max-width: 100%;
	overflow-x: clip;
	width: 100%;
}

.rxrm-loop-book {
	text-decoration: none;
}

/* --------------------------------------------------------------------------
 * Booking flow 3.2.0: compact, responsive reservation experience.
 * Every component rule stays below .rxrm-booking-flow; the single body rule
 * only disables the product-page sticky CTA while the embedded flow is active.
 * -------------------------------------------------------------------------- */

.rxrm-booking-flow {
	--rxrm-surcharge: #861127;
	--rxrm-surcharge-soft: #f6e8ec;
	--rxrm-focus: #a81832;
	--rxrm-radius-sm: 8px;
	--rxrm-radius-md: 12px;
	container-name: rxrm-flow;
	container-type: inline-size;
	min-width: 0;
	overflow-x: clip;
}

.rxrm-booking-flow .rxrm-shell,
.rxrm-booking-flow .rxrm-form,
.rxrm-booking-flow .rxrm-section,
.rxrm-booking-flow .rxrm-calendar,
.rxrm-booking-flow .rxrm-cal-scroll,
.rxrm-booking-flow .rxrm-cal-body,
.rxrm-booking-flow .rxrm-cal-grid,
.rxrm-booking-flow .rxrm-fields,
.rxrm-booking-flow .rxrm-passenger-list,
.rxrm-booking-flow .rxrm-passenger-card,
.rxrm-booking-flow .rxrm-passenger-fields,
.rxrm-booking-flow .rxrm-contact-grid,
.rxrm-booking-flow .rxrm-phone-field,
.rxrm-booking-flow .rxrm-addon-grid,
.rxrm-booking-flow .rxrm-summary,
.rxrm-booking-flow .rxrm-summary-compact {
	max-width: 100%;
	min-width: 0;
}

.rxrm-booking-flow .rxrm-header {
	padding: 20px clamp(14px, 4cqi, 26px) 21px;
}

.rxrm-booking-flow .rxrm-header h2 {
	font-size: clamp(28px, 5.5cqi, 38px);
	line-height: 1.08;
}

.rxrm-booking-flow .rxrm-header-row span {
	font-size: 13px;
	margin-top: 6px;
}

.rxrm-booking-flow .rxrm-form {
	gap: clamp(14px, 3.2cqi, 20px);
	padding: clamp(12px, 4cqi, 24px);
}

.rxrm-booking-flow .rxrm-step-intro {
	gap: 4px;
}

.rxrm-booking-flow .rxrm-step-intro h3 {
	font-size: clamp(22px, 4.8cqi, 29px);
	line-height: 1.12;
	scroll-margin-top: 16px;
}

.rxrm-booking-flow .rxrm-step-intro p {
	font-size: 13px;
	line-height: 1.42;
}

.rxrm-booking-flow .rxrm-section h4,
.rxrm-booking-flow .rxrm-weight-fieldset legend {
	margin-bottom: 8px;
}

/* Calendar: one real seven-column grid at every width, never a scroller. */
.rxrm-booking-flow .rxrm-calendar {
	border-radius: var(--rxrm-radius-md);
	overflow: hidden;
}

.rxrm-booking-flow .rxrm-cal-head {
	grid-template-columns: 44px minmax(0, 1fr) 44px;
	min-height: 50px;
}

.rxrm-booking-flow .rxrm-cal-head button {
	height: 44px;
	min-height: 44px;
	min-width: 44px;
}

.rxrm-booking-flow .rxrm-cal-head strong {
	font-size: clamp(15px, 3.8cqi, 18px);
	min-width: 0;
}

.rxrm-booking-flow .rxrm-cal-scroll {
	overflow: hidden;
	overscroll-behavior: auto;
	width: 100%;
}

.rxrm-booking-flow .rxrm-cal-body {
	min-width: 0;
	width: 100%;
}

.rxrm-booking-flow .rxrm-cal-weekdays,
.rxrm-booking-flow .rxrm-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	min-width: 0;
	width: 100%;
}

.rxrm-booking-flow .rxrm-cal-weekdays {
	font-size: clamp(8px, 2.3cqi, 10px);
	gap: 0;
	padding: 7px 4px;
}

.rxrm-booking-flow .rxrm-cal-weekdays span {
	min-width: 0;
	overflow: hidden;
	text-overflow: clip;
	white-space: nowrap;
}

.rxrm-booking-flow .rxrm-cal-grid {
	gap: clamp(1px, 0.65cqi, 4px);
	padding: clamp(3px, 1.2cqi, 7px);
}

.rxrm-booking-flow .rxrm-cal-empty,
.rxrm-booking-flow .rxrm-cal-day {
	min-height: clamp(38px, 10cqi, 48px);
	min-width: 0;
	width: 100%;
}

.rxrm-booking-flow .rxrm-cal-day {
	align-content: center;
	background: transparent !important;
	border: 0 !important;
	border-radius: var(--rxrm-radius-sm);
	box-shadow: none;
	gap: 0;
	justify-items: center;
	padding: 1px;
	position: relative;
}

.rxrm-booking-flow .rxrm-cal-day strong {
	align-items: center;
	border: 1px solid transparent;
	border-radius: 50%;
	display: flex;
	font-size: clamp(13px, 3.7cqi, 17px);
	height: clamp(30px, 8.6cqi, 38px);
	justify-content: center;
	line-height: 1;
	transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
	width: clamp(30px, 8.6cqi, 38px);
}

.rxrm-booking-flow .rxrm-cal-day .rxrm-cal-price,
.rxrm-booking-flow .rxrm-cal-day .rxrm-cal-state,
.rxrm-booking-flow .rxrm-cal-day .rxrm-cal-capacity {
	display: none !important;
}

.rxrm-booking-flow .rxrm-cal-day:hover,
.rxrm-booking-flow .rxrm-cal-day:focus-visible,
.rxrm-booking-flow .rxrm-cal-day.is-selected {
	background: transparent !important;
	border-color: transparent !important;
	box-shadow: none;
}

.rxrm-booking-flow .rxrm-cal-day:hover strong,
.rxrm-booking-flow .rxrm-cal-day:focus-visible strong {
	background: #f3e7d7;
	border-color: #c99aaa;
	color: var(--rxrm-accent-dark) !important;
}

.rxrm-booking-flow .rxrm-cal-day.is-selected strong,
.rxrm-booking-flow .rxrm-cal-day.is-selected:hover strong,
.rxrm-booking-flow .rxrm-cal-day.is-selected:focus-visible strong {
	background: var(--rxrm-accent);
	border-color: var(--rxrm-accent);
	box-shadow: 0 5px 12px rgba(134, 17, 39, 0.24);
	color: #ffffff !important;
}

.rxrm-booking-flow .rxrm-cal-day:disabled {
	background: transparent !important;
	border-color: transparent !important;
	opacity: 1;
}

.rxrm-booking-flow .rxrm-cal-day:disabled strong {
	background: transparent;
	border-color: transparent;
	color: #9aa6ae !important;
}

.rxrm-booking-flow .rxrm-calendar-legend {
	display: none;
}

/* Selected date, available times, and the compact schedule recap. */
.rxrm-booking-flow .rxrm-date-panel,
.rxrm-booking-flow .rxrm-schedule-panel {
	background: #ffffff;
	border: 1px solid var(--rxrm-line);
	border-radius: var(--rxrm-radius-md);
	display: grid;
	gap: 12px;
	margin-top: 12px;
	padding: clamp(12px, 3.2cqi, 16px);
}

.rxrm-booking-flow .rxrm-date-panel-main {
	display: grid;
	gap: 4px;
	grid-template-columns: minmax(0, 1fr);
	min-width: 0;
}

.rxrm-booking-flow .rxrm-date-panel-main > span {
	color: var(--rxrm-muted);
	font-size: 10px;
	font-weight: 850;
	line-height: 1.25;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.rxrm-booking-flow .rxrm-date-panel-main > strong {
	color: var(--rxrm-ink);
	font-family: var(--rxrm-font-body, "Baloo 2", sans-serif);
	font-size: clamp(17px, 4.2cqi, 21px);
	font-weight: 700;
	line-height: 1.24;
	min-width: 0;
	overflow-wrap: anywhere;
}

.rxrm-booking-flow .rxrm-date-panel-title {
	color: var(--rxrm-ink);
	font-family: var(--rxrm-font-body, "Baloo 2", sans-serif);
	font-size: clamp(17px, 4.2cqi, 21px);
	font-weight: 700;
	grid-column: 1 / -1;
	line-height: 1.24;
	margin: 0;
	overflow-wrap: anywhere;
}

.rxrm-booking-flow .rxrm-date-panel-meta {
	align-items: center;
	color: var(--rxrm-muted);
	display: flex;
	flex-wrap: wrap;
	font-size: 12px;
	gap: 5px 9px;
	grid-column: 1 / -1;
	line-height: 1.35;
}

.rxrm-booking-flow .rxrm-date-panel-meta > * + * {
	border-left: 1px solid var(--rxrm-line-strong);
	padding-left: 9px;
}

.rxrm-booking-flow .rxrm-slot-grid {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 132px), 1fr));
}

.rxrm-booking-flow .rxrm-slot {
	align-content: center;
	border-radius: var(--rxrm-radius-sm);
	gap: 2px;
	min-height: 54px;
	padding: 8px 10px;
	text-align: center;
}

.rxrm-booking-flow .rxrm-slot strong {
	font-family: var(--rxrm-font-body, "Baloo 2", sans-serif);
	font-size: 17px;
}

.rxrm-booking-flow .rxrm-slot span {
	font-size: 11px;
}

.rxrm-booking-flow .rxrm-slot.is-active {
	background: var(--rxrm-accent) !important;
	border-color: var(--rxrm-accent) !important;
	box-shadow: 0 5px 12px rgba(134, 17, 39, 0.18);
	color: #ffffff !important;
}

.rxrm-booking-flow .rxrm-slot.is-active strong,
.rxrm-booking-flow .rxrm-slot.is-active span {
	color: #ffffff;
}

.rxrm-booking-flow .rxrm-selection-note {
	align-items: center;
	background: var(--rxrm-soft);
	border: 1px solid var(--rxrm-line);
	border-left: 3px solid var(--rxrm-accent);
	border-radius: var(--rxrm-radius-sm);
	display: grid;
	gap: 3px 12px;
	grid-template-columns: minmax(0, 1fr) auto;
	min-height: 0;
	padding: 11px 12px;
}
.rxrm-booking-flow .rxrm-selection-note strong {
	font-size: 13px;
	grid-column: 1;
}

.rxrm-booking-flow .rxrm-selection-note span {
	color: var(--rxrm-muted);
	font-size: 12px;
	grid-column: 1;
}

/* Current markup is h5 + .rxrm-slot-grid, so both rows must span the panel. */
.rxrm-booking-flow .rxrm-date-panel .rxrm-schedule-summary {
	background: transparent;
	border: 0;
	border-radius: 0;
	border-top: 1px solid var(--rxrm-line);
	display: grid;
	gap: 8px;
	grid-template-columns: minmax(0, 1fr);
	min-width: 0;
	padding: 11px 0 0;
}

.rxrm-booking-flow .rxrm-schedule-summary > h5 {
	color: var(--rxrm-ink);
	font-size: 12px;
	font-weight: 900;
	grid-column: 1 / -1;
	line-height: 1.3;
	margin: 0;
	text-transform: uppercase;
}

.rxrm-booking-flow .rxrm-schedule-summary > .rxrm-slot-grid {
	grid-column: 1 / -1;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-width: 0;
	width: 100%;
}

.rxrm-booking-flow .rxrm-schedule-summary .rxrm-slot strong,
.rxrm-booking-flow .rxrm-schedule-summary .rxrm-slot span {
	grid-column: auto;
}

.rxrm-booking-flow .rxrm-schedule-summary [data-edit-schedule] {
	align-self: center;
	background: transparent !important;
	border: 0 !important;
	color: var(--rxrm-accent-dark) !important;
	cursor: pointer;
	font-size: 12px;
	font-weight: 900;
	grid-column: 2;
	grid-row: 1 / span 2;
	min-height: 44px;
	padding: 6px;
}

/* Passenger cards: one name row plus compact age/weight fields. */
.rxrm-booking-flow .rxrm-counter-row {
	min-height: 0;
	padding: 9px 0;
}

.rxrm-booking-flow .rxrm-section:has([data-people-input]) .rxrm-counter-row {
	gap: 6px;
	grid-template-columns: minmax(0, 1fr);
}

.rxrm-booking-flow .rxrm-section:has([data-people-input]) .rxrm-counter-row > div:first-child {
	order: 2;
	text-align: center;
}

.rxrm-booking-flow .rxrm-section:has([data-people-input]) .rxrm-counter-row > div:first-child strong {
	display: none;
}

.rxrm-booking-flow .rxrm-section:has([data-people-input]) .rxrm-counter-row > div:first-child span {
	margin-top: 0;
}

.rxrm-booking-flow .rxrm-section:has([data-people-input]) .rxrm-stepper {
	order: 1;
	width: 100%;
}

.rxrm-booking-flow .rxrm-stepper {
	grid-template-columns: 44px minmax(64px, 1fr) 44px;
	height: 46px;
}

.rxrm-booking-flow .rxrm-stepper button,
.rxrm-booking-flow .rxrm-stepper input {
	height: 44px;
	min-height: 44px;
}

.rxrm-booking-flow .rxrm-stepper button {
	min-width: 44px;
}

.rxrm-booking-flow .rxrm-stepper input {
	width: 100%;
}

.rxrm-booking-flow .rxrm-minimum-note {
	color: var(--rxrm-muted);
	font-size: 12px;
	line-height: 1.35;
	margin: 6px 0 0;
	text-align: center;
}

.rxrm-booking-flow .rxrm-passenger-list {
	display: grid;
	gap: 10px;
}

.rxrm-booking-flow .rxrm-passenger-nav {
	display: flex;
	gap: 8px;
	margin-bottom: 10px;
	overflow-x: auto;
	padding: 2px 1px 7px;
	scrollbar-width: thin;
}

.rxrm-booking-flow .rxrm-passenger-tab {
	align-items: flex-start;
	background: #fff;
	border: 1px solid var(--rxrm-line);
	border-radius: 999px;
	color: var(--rxrm-ink);
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 auto;
	flex-direction: column;
	gap: 1px;
	justify-content: center;
	min-height: 48px;
	max-width: min(260px, 78vw);
	min-width: 180px;
	padding: 7px 14px;
	text-align: left;
}

.rxrm-booking-flow .rxrm-passenger-tab span {
	font-size: 12px;
	font-weight: 850;
	line-height: 1.2;
}

.rxrm-booking-flow .rxrm-passenger-tab small {
	color: var(--rxrm-muted);
	font-size: 10px;
	font-weight: 750;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.rxrm-booking-flow .rxrm-passenger-tab.is-complete:not(.is-active) {
	border-color: color-mix(in srgb, var(--rxrm-accent) 45%, var(--rxrm-line));
}

.rxrm-booking-flow .rxrm-passenger-tab.is-complete:not(.is-active) small {
	color: var(--rxrm-success);
}

.rxrm-booking-flow .rxrm-passenger-tab.is-active {
	background: var(--rxrm-accent);
	border-color: var(--rxrm-accent);
	box-shadow: 0 5px 14px rgb(168 24 50 / 20%);
	color: #fff;
}

.rxrm-booking-flow .rxrm-passenger-tab.is-active small {
	color: rgb(255 255 255 / 82%);
}

.rxrm-booking-flow .rxrm-passenger-card {
	background: #ffffff;
	border: 1px solid var(--rxrm-line);
	border-radius: var(--rxrm-radius-md);
	display: grid;
	gap: 9px;
	margin: 0;
	min-inline-size: 0;
	padding: clamp(10px, 3cqi, 14px);
}

.rxrm-booking-flow .rxrm-passenger-card-title {
	align-items: center;
	color: var(--rxrm-ink);
	display: flex;
	font-size: 14px;
	font-weight: 900;
	gap: 8px;
	justify-content: space-between;
	line-height: 1.3;
	margin: 0;
	min-width: 0;
	padding: 0 2px;
	width: 100%;
}

.rxrm-booking-flow .rxrm-passenger-card-title small {
	color: var(--rxrm-muted);
	font-size: 11px;
	font-weight: 750;
	max-width: 58%;
	overflow-wrap: anywhere;
	text-align: right;
}

.rxrm-booking-flow .rxrm-passenger-card-title small.is-error {
	color: var(--rxrm-danger);
}

.rxrm-booking-flow .rxrm-passenger-fields {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rxrm-booking-flow .rxrm-passenger-fields > label,
.rxrm-booking-flow .rxrm-passenger-field {
	display: block;
	min-width: 0;
}

.rxrm-booking-flow .rxrm-passenger-fields > label:first-child,
.rxrm-booking-flow .rxrm-passenger-name,
.rxrm-booking-flow .rxrm-passenger-field--name,
.rxrm-booking-flow .rxrm-passenger-card label:has([data-passenger-field="name"]) {
	grid-column: 1 / -1;
}

.rxrm-booking-flow .rxrm-passenger-help,
.rxrm-booking-flow .rxrm-contact-section > p {
	color: var(--rxrm-muted);
	font-size: 12px;
	line-height: 1.45;
	margin: 0;
	overflow-wrap: anywhere;
}

.rxrm-booking-flow .rxrm-passenger-card label > span,
.rxrm-booking-flow .rxrm-contact-section label > span,
.rxrm-booking-flow .rxrm-phone-field > span {
	color: var(--rxrm-ink-soft);
	display: block;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.25;
	margin-bottom: 5px;
}

.rxrm-booking-flow .rxrm-passenger-card .rxrm-input,
.rxrm-booking-flow .rxrm-contact-section .rxrm-input,
.rxrm-booking-flow .rxrm-phone-field .rxrm-input {
	min-height: 46px;
	padding: 10px 11px;
}

.rxrm-booking-flow .rxrm-weight-feedback {
	background: var(--rxrm-success-soft);
	border-left: 3px solid var(--rxrm-success);
	color: var(--rxrm-success);
	font-size: 11px;
	font-weight: 750;
	line-height: 1.35;
	margin: 0;
	padding: 7px 9px;
}

.rxrm-booking-flow .rxrm-weight-feedback.is-surcharge {
	background: var(--rxrm-surcharge-soft);
	border-left-color: var(--rxrm-surcharge);
	color: #4a3047;
}

.rxrm-booking-flow .rxrm-weight-feedback.is-blocked {
	background: var(--rxrm-danger-soft);
	border-left-color: var(--rxrm-danger);
	color: var(--rxrm-danger);
}

/* Contact and normalized international phone. */
.rxrm-booking-flow .rxrm-contact-section,
.rxrm-booking-flow .rxrm-contact-grid {
	display: grid;
	gap: 10px;
}

.rxrm-booking-flow .rxrm-contact-grid,
.rxrm-booking-flow .rxrm-fields {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

.rxrm-booking-flow .rxrm-fields label.rxrm-phone-field {
	display: grid;
	gap: 5px 8px;
	grid-column: 1 / -1;
	grid-template-columns: minmax(98px, 0.38fr) minmax(0, 1fr);
}

.rxrm-booking-flow .rxrm-phone-field > span,
.rxrm-booking-flow .rxrm-phone-field > .rxrm-field-error {
	grid-column: 1 / -1;
}

.rxrm-booking-flow .rxrm-phone-code,
.rxrm-booking-flow .rxrm-phone-number {
	min-width: 0;
	width: 100%;
}

.rxrm-booking-flow .rxrm-phone-code {
	background-color: var(--rxrm-soft) !important;
	font-weight: 800;
}

.rxrm-booking-flow .rxrm-phone-number {
	font-variant-numeric: tabular-nums;
}

/* Compact extras that remain usable with or without an image. */
.rxrm-booking-flow .rxrm-addon-grid {
	display: grid;
	gap: 9px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}

.rxrm-booking-flow .rxrm-addon {
	align-items: start;
	border-radius: var(--rxrm-radius-md);
	gap: 6px 9px;
	grid-template-areas: "check copy meta";
	grid-template-columns: 22px minmax(0, 1fr) auto;
	min-height: 0;
	padding: 10px;
}

.rxrm-booking-flow .rxrm-addon input {
	grid-area: check;
	height: 20px;
	margin: 1px 0 0;
	width: 20px;
}

.rxrm-booking-flow .rxrm-addon-copy,
.rxrm-booking-flow .rxrm-addon.has-image .rxrm-addon-copy {
	grid-area: copy;
}

.rxrm-booking-flow .rxrm-addon-copy strong {
	font-size: 13px;
}

.rxrm-booking-flow .rxrm-addon-copy em {
	font-size: 11px;
	line-height: 1.35;
}

.rxrm-booking-flow .rxrm-addon-meta {
	align-items: end;
	display: grid;
	gap: 3px;
	grid-area: meta;
	justify-items: end;
	text-align: right;
}

.rxrm-booking-flow .rxrm-addon-meta b {
	font-size: 12px;
	overflow-wrap: normal;
	white-space: nowrap;
}

.rxrm-booking-flow .rxrm-addon-media {
	aspect-ratio: 1;
	grid-area: media;
	height: 62px;
	width: 62px;
}

.rxrm-booking-flow .rxrm-addon.has-image {
	grid-template-areas:
		"check media copy"
		"check media meta";
	grid-template-columns: 22px 62px minmax(0, 1fr);
}

.rxrm-booking-flow .rxrm-addon.has-image .rxrm-addon-meta {
	justify-items: start;
	text-align: left;
}

.rxrm-booking-flow .rxrm-addon-total {
	margin-top: 9px;
	min-height: 46px;
	padding: 7px 0;
}

/* Review: dense two-column facts, readable passenger blocks, dominant total. */
.rxrm-booking-flow .rxrm-summary,
.rxrm-booking-flow .rxrm-summary-compact {
	background: #ffffff;
	border-radius: var(--rxrm-radius-md);
	padding: clamp(11px, 3cqi, 16px);
}

.rxrm-booking-flow .rxrm-summary-head {
	padding-bottom: 9px;
}

.rxrm-booking-flow .rxrm-summary-head > strong {
	display: none;
}

.rxrm-booking-flow .rxrm-summary-lines {
	padding: 3px 0;
}

.rxrm-booking-flow .rxrm-summary-line,
.rxrm-booking-flow .rxrm-summary-row {
	align-items: start;
	display: grid;
	gap: 8px;
	grid-template-columns: minmax(88px, 0.72fr) minmax(0, 1.28fr);
	padding: 7px 0;
}

.rxrm-booking-flow .rxrm-summary-line + .rxrm-summary-line,
.rxrm-booking-flow .rxrm-summary-row + .rxrm-summary-row {
	border-top: 1px solid var(--rxrm-line);
}

.rxrm-booking-flow .rxrm-summary-line strong,
.rxrm-booking-flow .rxrm-summary-row strong,
.rxrm-booking-flow .rxrm-summary-row dd {
	color: var(--rxrm-ink);
	font-size: 12px;
	font-weight: 850;
	line-height: 1.35;
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
	text-align: right;
}

.rxrm-booking-flow .rxrm-summary-row span,
.rxrm-booking-flow .rxrm-summary-row dt {
	color: var(--rxrm-muted);
	font-size: 12px;
	line-height: 1.35;
	margin: 0;
}

.rxrm-booking-flow .rxrm-summary-group {
	margin-top: 3px;
	padding-top: 8px;
}

.rxrm-booking-flow .rxrm-summary-group:empty,
.rxrm-booking-flow .rxrm-summary-extras:empty {
	display: none;
}

.rxrm-booking-flow .rxrm-summary-passengers {
	display: grid;
	gap: 0;
}

.rxrm-booking-flow .rxrm-summary-passenger {
	border-top: 1px solid var(--rxrm-line);
	display: grid;
	gap: 2px;
	padding: 8px 0;
}

.rxrm-booking-flow .rxrm-summary-passenger strong {
	color: var(--rxrm-ink);
	font-size: 13px;
	font-weight: 900;
}

.rxrm-booking-flow .rxrm-summary-passenger span {
	color: var(--rxrm-muted);
	font-size: 11px;
	line-height: 1.35;
}

.rxrm-booking-flow .rxrm-summary-total {
	border-top: 2px solid var(--rxrm-ink);
	margin-top: 4px;
	padding-top: 11px;
}

.rxrm-booking-flow .rxrm-summary-total strong {
	color: var(--rxrm-surcharge);
	font-size: clamp(21px, 5cqi, 27px);
}

.rxrm-booking-flow .rxrm-payment-section {
	gap: 9px;
}

.rxrm-booking-flow .rxrm-stripe-box {
	gap: 11px;
	padding: clamp(10px, 3cqi, 14px);
}

/* Internal actions stay visible; the competing product CTA is removed. */
.rxrm-booking-flow .rxrm-actions {
	gap: 8px;
}

.rxrm-booking-flow .rxrm-primary,
.rxrm-booking-flow .rxrm-secondary {
	min-height: 48px;
	padding: 10px 14px;
}

body.rxrm-embed-active .rmpp-sticky-cta {
	display: none !important;
}

/* Error, focus, and keyboard states remain visible against every surface. */
.rxrm-booking-flow :is(button, input, select, textarea, [tabindex="0"]):focus-visible {
	outline: 3px solid rgba(168, 24, 50, 0.34) !important;
	outline-offset: 2px;
}

.rxrm-booking-flow :is(input, select, textarea)[aria-invalid="true"],
.rxrm-booking-flow .rxrm-input.is-invalid,
.rxrm-booking-flow .has-error .rxrm-input {
	background: #fffafa !important;
	border-color: var(--rxrm-danger) !important;
	box-shadow: 0 0 0 3px rgba(156, 47, 47, 0.11) !important;
}

.rxrm-booking-flow .rxrm-field-error,
.rxrm-booking-flow [role="alert"] {
	overflow-wrap: anywhere;
}

.rxrm-booking-flow .rxrm-field-error {
	font-size: 11px;
	margin-top: 4px;
}

.rxrm-booking-flow [aria-busy="true"] {
	cursor: progress;
}

@media (max-width: 639px) {
	.rxrm-booking-flow .rxrm-shell {
		border-left: 0;
		border-radius: 0;
		border-right: 0;
	}

	.rxrm-booking-flow .rxrm-header {
		padding-bottom: 18px;
		padding-top: 17px;
	}

	.rxrm-booking-flow .rxrm-header-row {
		gap: 10px;
	}

	.rxrm-booking-flow .rxrm-progress {
		padding: 10px 4px;
	}

	.rxrm-booking-flow .rxrm-progress-step {
		gap: 4px;
		min-height: 58px;
	}

	.rxrm-booking-flow .rxrm-progress-step b {
		height: 32px;
		width: 32px;
	}

	.rxrm-booking-flow .rxrm-progress-step span {
		font-size: clamp(9px, 2.8cqi, 11px);
	}

	.rxrm-booking-flow .rxrm-counter-row {
		gap: 8px;
		grid-template-columns: 1fr;
	}

	.rxrm-booking-flow .rxrm-actions {
		grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
		margin: 0 calc(0px - clamp(12px, 4cqi, 24px)) calc(0px - clamp(12px, 4cqi, 24px));
		padding: 10px clamp(12px, 4cqi, 24px) max(10px, env(safe-area-inset-bottom));
	}

	.rxrm-booking-flow .rxrm-actions .rxrm-primary:only-child,
	.rxrm-booking-flow .rxrm-actions .rxrm-secondary:only-child {
		grid-column: 1 / -1;
	}
}

@container rxrm-flow (max-width: 420px) {
	.rxrm-booking-flow .rxrm-date-panel-meta > * + * {
		border-left: 0;
		padding-left: 0;
	}

	.rxrm-booking-flow .rxrm-addon {
		grid-template-areas:
			"check copy"
			"check meta";
		grid-template-columns: 22px minmax(0, 1fr);
	}

	.rxrm-booking-flow .rxrm-addon-meta {
		justify-items: start;
		text-align: left;
	}

	.rxrm-booking-flow .rxrm-addon.has-image {
		grid-template-areas:
			"check media copy"
			"check media meta";
		grid-template-columns: 22px 56px minmax(0, 1fr);
	}

	.rxrm-booking-flow .rxrm-addon.has-image .rxrm-addon-media {
		height: 56px;
		width: 56px;
	}
}

@container rxrm-flow (max-width: 340px) {
	.rxrm-booking-flow .rxrm-form {
		padding-left: 10px;
		padding-right: 10px;
	}

	.rxrm-booking-flow .rxrm-cal-head {
		grid-template-columns: 40px minmax(0, 1fr) 40px;
	}

	.rxrm-booking-flow .rxrm-cal-weekdays {
		font-size: 8px;
		padding-inline: 1px;
	}

	.rxrm-booking-flow .rxrm-cal-grid {
		padding-inline: 2px;
	}

	.rxrm-booking-flow .rxrm-cal-day strong {
		height: 29px;
		width: 29px;
	}

	.rxrm-booking-flow .rxrm-fields label.rxrm-phone-field {
		grid-template-columns: 94px minmax(0, 1fr);
	}

	.rxrm-booking-flow .rxrm-actions {
		margin-left: -10px;
		margin-right: -10px;
		padding-left: 10px;
		padding-right: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rxrm-booking-flow .rxrm-cal-day strong,
	.rxrm-booking-flow .rxrm-addon,
	.rxrm-booking-flow .rxrm-slot {
		transition: none;
	}
}

@media (forced-colors: active) {
	.rxrm-booking-flow .rxrm-cal-day.is-selected strong,
	.rxrm-booking-flow .rxrm-slot.is-active,
	.rxrm-booking-flow .rxrm-primary {
		border: 2px solid CanvasText !important;
	}

	.rxrm-booking-flow :is(button, input, select, textarea):focus-visible {
		outline: 3px solid Highlight !important;
	}
}

@supports not (overflow: clip) {
	.rxrm-booking-flow {
		overflow-x: hidden;
	}
}

.rxrm-booking-flow .rxrm-payment-options {
	border: 0;
	display: grid;
	gap: 12px;
	margin: 0 0 14px;
	padding: 0;
}

.rxrm-booking-flow .rxrm-payment-options legend {
	font-size: 14px;
	font-weight: 800;
	margin-bottom: 10px;
}

.rxrm-booking-flow .rxrm-payment-option {
	align-items: center;
	background: var(--rxrm-surface);
	border: 1px solid var(--rxrm-line);
	border-radius: 16px;
	cursor: pointer;
	display: grid;
	gap: 12px;
	grid-template-columns: auto minmax(0, 1fr) auto;
	padding: 16px;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.rxrm-booking-flow .rxrm-payment-option:hover,
.rxrm-booking-flow .rxrm-payment-option.is-selected {
	border-color: var(--rxrm-accent);
	box-shadow: 0 8px 24px rgba(168, 24, 50, 0.12);
}

.rxrm-booking-flow .rxrm-payment-option input {
	accent-color: var(--rxrm-accent);
	height: 20px;
	margin: 0;
	width: 20px;
}

.rxrm-booking-flow .rxrm-payment-option span {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.rxrm-booking-flow .rxrm-payment-option strong,
.rxrm-booking-flow .rxrm-payment-option b {
	color: var(--rxrm-ink);
	font-size: 15px;
}

.rxrm-booking-flow .rxrm-payment-option small,
.rxrm-booking-flow .rxrm-payment-deadline {
	color: var(--rxrm-muted);
	font-size: 13px;
	line-height: 1.45;
}

.rxrm-booking-flow .rxrm-payment-option.is-disabled {
	cursor: not-allowed;
	opacity: 0.58;
}

.rxrm-booking-flow .rxrm-payment-deadline {
	margin: 0 0 16px;
}

@media (max-width: 540px) {
	.rxrm-booking-flow .rxrm-payment-option {
		align-items: start;
		grid-template-columns: auto minmax(0, 1fr);
	}

	.rxrm-booking-flow .rxrm-payment-option b {
		grid-column: 2;
	}
}

/* --------------------------------------------------------------------------
 * Booking flow 3.2.9: production-derived Ruta Magica presentation.
 * The compact public structure is retained and recolored without changing
 * availability, pricing, checkout, or payment contracts.
 * -------------------------------------------------------------------------- */

.rxrm-booking-flow {
	--rxrm-ivory: #fbf4e8;
	--rxrm-white: #fffdf8;
	--rxrm-aubergine: #261625;
	--rxrm-aubergine-soft: #4a3047;
	--rxrm-mauve: #c99aaa;
	--rxrm-rose: #e8c9c4;
	--rxrm-ruby: #a81832;
	--rxrm-ruby-deep: #861127;
	--rxrm-neutral: #d9d5d7;
	--rxrm-neutral-strong: #aaa4a7;
	--rxrm-font-display: "Titan One", "Arial Rounded MT Bold", sans-serif;
	--rxrm-font-body: "Baloo 2", "Arial Rounded MT Bold", sans-serif;
	--rxrm-ink: var(--rxrm-aubergine);
	--rxrm-ink-soft: var(--rxrm-aubergine-soft);
	--rxrm-muted: #695761;
	--rxrm-line: var(--rxrm-neutral);
	--rxrm-line-strong: var(--rxrm-neutral-strong);
	--rxrm-surface: var(--rxrm-white);
	--rxrm-soft: var(--rxrm-ivory);
	--rxrm-accent: var(--rxrm-ruby);
	--rxrm-accent-dark: var(--rxrm-ruby-deep);
	background: var(--rxrm-ivory);
	color: var(--rxrm-aubergine);
	font-family: var(--rxrm-font-body);
	margin-inline: auto;
	max-width: 1248px;
	scroll-margin-top: 128px;
	width: min(100%, 1248px);
}

.rxrm-booking-flow button,
.rxrm-booking-flow input,
.rxrm-booking-flow select,
.rxrm-booking-flow textarea,
.rxrm-booking-flow .rxrm-progress-step,
.rxrm-booking-flow .rxrm-step-intro p {
	font-family: var(--rxrm-font-body);
}

.rxrm-booking-flow input,
.rxrm-booking-flow select,
.rxrm-booking-flow textarea,
.rxrm-booking-flow .rxrm-input {
	font-size: 16px;
}

.rxrm-booking-flow .rxrm-shell {
	background: var(--rxrm-white);
	border: 1px solid var(--rxrm-neutral);
	border-radius: 20px;
	box-shadow: 0 18px 48px rgba(38, 22, 37, 0.1);
}

.rxrm-booking-flow .rxrm-header {
	background: var(--rxrm-white);
	border-bottom: 1px solid var(--rxrm-neutral);
	border-top: 0;
	color: var(--rxrm-aubergine);
}

.rxrm-booking-flow .rxrm-header > p {
	color: var(--rxrm-ruby-deep);
	font-family: var(--rxrm-font-body);
	letter-spacing: 0.08em;
}

.rxrm-booking-flow .rxrm-header h2,
.rxrm-booking-flow .rxrm-step-intro h3 {
	color: var(--rxrm-aubergine);
	font-family: var(--rxrm-font-display);
	font-weight: 400;
}

.rxrm-booking-flow .rxrm-header h2 {
	font-size: clamp(30px, 6cqi, 44px);
	line-height: 1.04;
}

.rxrm-booking-flow .rxrm-header-row span {
	color: var(--rxrm-aubergine-soft);
	font-size: 15px;
}

.rxrm-booking-flow .rxrm-change-service {
	border-color: var(--rxrm-mauve) !important;
	color: var(--rxrm-ruby-deep) !important;
}

.rxrm-booking-flow .rxrm-change-service:hover {
	background: var(--rxrm-rose) !important;
}

.rxrm-booking-flow .rxrm-progress {
	background: var(--rxrm-ivory);
	border-bottom-color: var(--rxrm-neutral);
}

.rxrm-booking-flow .rxrm-progress-step {
	color: var(--rxrm-aubergine-soft) !important;
	min-height: 70px;
}

.rxrm-booking-flow .rxrm-progress-step::before,
.rxrm-booking-flow .rxrm-progress-step::after {
	background: var(--rxrm-neutral);
	top: 21px;
}

.rxrm-booking-flow .rxrm-progress-step.is-done::before,
.rxrm-booking-flow .rxrm-progress-step.is-done::after,
.rxrm-booking-flow .rxrm-progress-step.is-current::before {
	background: var(--rxrm-ruby);
}

.rxrm-booking-flow .rxrm-progress-icon {
	align-items: center;
	background: var(--rxrm-ivory);
	border: 1px solid var(--rxrm-neutral-strong);
	border-radius: 50%;
	color: var(--rxrm-aubergine);
	display: inline-flex;
	height: 44px;
	justify-content: center;
	position: relative;
	width: 44px;
	z-index: 1;
}

.rxrm-booking-flow .rxrm-progress-icon svg {
	display: block;
	height: 24px;
	width: 24px;
}

.rxrm-booking-flow .rxrm-progress-step.is-current .rxrm-progress-icon,
.rxrm-booking-flow .rxrm-progress-step.is-done .rxrm-progress-icon {
	background: var(--rxrm-ruby);
	border-color: var(--rxrm-ruby);
	color: var(--rxrm-white);
}

.rxrm-booking-flow .rxrm-progress-step.is-current .rxrm-progress-icon {
	box-shadow: 0 0 0 4px rgba(168, 24, 50, 0.13);
}

.rxrm-booking-flow .rxrm-form {
	background: var(--rxrm-white);
}

.rxrm-booking-flow .rxrm-step-intro > span,
.rxrm-booking-flow .rxrm-section h4,
.rxrm-booking-flow .rxrm-schedule-summary > h5 {
	color: var(--rxrm-ruby-deep);
}

.rxrm-booking-flow .rxrm-calendar,
.rxrm-booking-flow .rxrm-date-panel,
.rxrm-booking-flow .rxrm-schedule-panel,
.rxrm-booking-flow .rxrm-passenger-card,
.rxrm-booking-flow .rxrm-summary,
.rxrm-booking-flow .rxrm-summary-compact,
.rxrm-booking-flow .rxrm-addon,
.rxrm-booking-flow .rxrm-stripe-box {
	background: var(--rxrm-white);
	border-color: var(--rxrm-neutral);
	border-radius: 12px;
}

.rxrm-booking-flow .rxrm-cal-head,
.rxrm-booking-flow .rxrm-selection-note,
.rxrm-booking-flow .rxrm-counter-list {
	background: #f4e6e7;
}

.rxrm-booking-flow .rxrm-cal-day:hover strong,
.rxrm-booking-flow .rxrm-cal-day:focus-visible strong {
	background: var(--rxrm-rose);
	border-color: var(--rxrm-mauve);
	color: var(--rxrm-aubergine) !important;
}

.rxrm-booking-flow .rxrm-cal-day.is-selected strong,
.rxrm-booking-flow .rxrm-cal-day.is-selected:hover strong,
.rxrm-booking-flow .rxrm-cal-day.is-selected:focus-visible strong,
.rxrm-booking-flow .rxrm-slot.is-active {
	background: var(--rxrm-ruby) !important;
	border-color: var(--rxrm-ruby) !important;
	box-shadow: 0 5px 14px rgba(134, 17, 39, 0.2);
}

.rxrm-booking-flow .rxrm-schedule-people {
	background: #f4e6e7;
	border: 1px solid var(--rxrm-neutral);
	border-radius: 12px;
	display: grid;
	gap: 8px;
	margin-top: 14px;
	padding: clamp(12px, 3.2cqi, 17px);
}

.rxrm-booking-flow .rxrm-schedule-people h4 {
	margin: 0;
}

.rxrm-booking-flow .rxrm-schedule-people .rxrm-counter-list {
	border-bottom-color: var(--rxrm-mauve);
	border-top-color: var(--rxrm-mauve);
}

.rxrm-booking-flow .rxrm-capacity-notice {
	background: var(--rxrm-ivory);
	border-left: 4px solid var(--rxrm-ruby);
	border-radius: 8px 18px 10px 14px;
	color: var(--rxrm-aubergine);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.45;
	margin-top: 10px;
	padding: 10px 12px;
}

.rxrm-booking-flow .rxrm-stepper {
	background: var(--rxrm-white);
	border-color: var(--rxrm-mauve);
	border-radius: 14px 8px 14px 8px;
}

.rxrm-booking-flow .rxrm-stepper button {
	color: var(--rxrm-ruby-deep) !important;
	min-height: 44px;
	min-width: 44px;
}

.rxrm-booking-flow .rxrm-stepper input {
	background: var(--rxrm-ivory) !important;
	font-family: var(--rxrm-font-body);
	font-size: 18px;
	font-weight: 800;
}

.rxrm-booking-flow .rxrm-primary {
	background: var(--rxrm-ruby) !important;
	border-color: var(--rxrm-ruby) !important;
}

.rxrm-booking-flow .rxrm-primary:hover,
.rxrm-booking-flow .rxrm-primary:focus-visible {
	background: var(--rxrm-ruby-deep) !important;
	border-color: var(--rxrm-ruby-deep) !important;
}

.rxrm-booking-flow .rxrm-secondary {
	background: var(--rxrm-ivory) !important;
	border-color: var(--rxrm-mauve) !important;
	color: var(--rxrm-aubergine) !important;
}

.rxrm-booking-flow :is(button, input, select, textarea, [tabindex="0"]):focus-visible {
	outline-color: var(--rxrm-ruby) !important;
}

@media (max-width: 639px) {
	.rxrm-booking-flow .rxrm-shell {
		border-radius: 20px;
	}

	.rxrm-booking-flow .rxrm-progress {
		padding-inline: 2px;
	}

	.rxrm-booking-flow .rxrm-progress-step {
		gap: 5px;
		min-height: 66px;
		padding-inline: 1px;
	}

	.rxrm-booking-flow .rxrm-progress-icon {
		height: 40px;
		width: 40px;
	}

	.rxrm-booking-flow .rxrm-progress-step::before,
	.rxrm-booking-flow .rxrm-progress-step::after {
		top: 19px;
	}

	.rxrm-booking-flow .rxrm-progress-step span {
		font-size: clamp(9px, 2.8cqi, 11px);
	}

	.rxrm-booking-flow .rxrm-actions {
		grid-template-columns: 1fr;
		padding-bottom: max(12px, env(safe-area-inset-bottom));
		position: static;
	}

	.rxrm-booking-flow .rxrm-primary,
	.rxrm-booking-flow .rxrm-secondary {
		min-height: 52px;
		width: 100%;
	}
}

@media (max-width: 340px) {
	.rxrm-booking-flow .rxrm-progress-icon {
		height: 36px;
		width: 36px;
	}

	.rxrm-booking-flow .rxrm-progress-icon svg {
		height: 21px;
		width: 21px;
	}

	.rxrm-booking-flow .rxrm-progress-step::before,
	.rxrm-booking-flow .rxrm-progress-step::after {
		top: 17px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rxrm-booking-flow .rxrm-progress-icon,
	.rxrm-booking-flow .rxrm-primary,
	.rxrm-booking-flow .rxrm-secondary {
		animation: none;
		transition: none;
	}
}

/* Included banner with photos and the customer's note (plugin 4.2.28). */
.rxrm-booking-flow .rxrm-extras-block {
	margin: 0 0 18px;
}

.rxrm-booking-flow .rxrm-extras-block h4 {
	color: var(--rxrm-ink);
	font-family: "Titan One", var(--rxrm-font-display, sans-serif);
	font-size: 17px;
	font-weight: 400;
	margin: 0 0 4px;
}

.rxrm-booking-flow .rxrm-extras-block > p {
	color: var(--rxrm-muted);
	font-size: 14px;
	line-height: 1.42;
	margin: 0 0 12px;
}

.rxrm-booking-flow .rxrm-banner-grid {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr));
}

.rxrm-booking-flow .rxrm-banner {
	background: #ffffff;
	border: 1px solid var(--rxrm-line);
	border-radius: var(--rxrm-radius-md, 12px);
	cursor: pointer;
	display: grid;
	grid-template-rows: auto 1fr;
	overflow: hidden;
	position: relative;
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.rxrm-booking-flow .rxrm-banner:hover,
.rxrm-booking-flow .rxrm-banner:focus-within {
	border-color: var(--rxrm-accent);
	transform: translateY(-1px);
}

.rxrm-booking-flow .rxrm-banner.is-selected {
	border-color: var(--rxrm-accent);
	box-shadow: inset 0 0 0 2px var(--rxrm-accent), 0 10px 24px rgba(168, 24, 50, 0.12);
}

.rxrm-booking-flow .rxrm-banner input {
	accent-color: var(--rxrm-accent);
	height: 20px;
	left: 8px;
	margin: 0;
	position: absolute;
	top: 8px;
	width: 20px;
	z-index: 1;
}

.rxrm-booking-flow .rxrm-banner-media {
	aspect-ratio: 4 / 3;
	background: var(--rxrm-soft);
	display: block;
}

.rxrm-booking-flow .rxrm-banner-media img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.rxrm-booking-flow .rxrm-banner-copy {
	display: grid;
	gap: 2px;
	padding: 9px 10px 11px;
}

.rxrm-booking-flow .rxrm-banner.is-plain .rxrm-banner-copy {
	align-content: center;
	min-height: 64px;
	padding-left: 36px;
}

.rxrm-booking-flow .rxrm-banner-copy strong {
	color: var(--rxrm-ink);
	font-size: 14px;
	line-height: 1.25;
}

.rxrm-booking-flow .rxrm-banner-copy em {
	color: var(--rxrm-muted);
	font-size: 12px;
	font-style: normal;
}

/* Phones: the banners become one swipe row, so the paid extras and the note stay a short scroll away. */
@container rxrm-flow (max-width: 520px) {
	.rxrm-booking-flow .rxrm-banner-grid {
		grid-auto-columns: 128px;
		grid-auto-flow: column;
		grid-template-columns: none;
		margin: 0 -4px;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		padding: 2px 4px 8px;
		scroll-padding: 0 4px;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.rxrm-booking-flow .rxrm-banner-grid::-webkit-scrollbar {
		display: none;
	}

	.rxrm-booking-flow .rxrm-banner {
		scroll-snap-align: start;
	}

	.rxrm-booking-flow .rxrm-banner:hover,
	.rxrm-booking-flow .rxrm-banner:focus-within {
		transform: none;
	}

	.rxrm-booking-flow .rxrm-banner.is-selected {
		box-shadow: inset 0 0 0 2px var(--rxrm-accent);
	}
}
