:root {
	--ccbfe-ink: #08284a;
	--ccbfe-muted: #4e6683;
	--ccbfe-accent: #138f82;
	--ccbfe-blue: #2b7de1;
	--ccbfe-blue-hover: #226ed0;
	--ccbfe-green: #22b95f;
	--ccbfe-border: rgba(8, 40, 74, 0.12);
}

.canary-booking-form {
	display: grid;
	grid-template-columns: minmax(260px, 0.42fr) minmax(500px, 0.58fr);
	gap: 30px;
	align-items: center;
	padding: 28px;
	border: 1px solid var(--ccbfe-border);
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(19, 143, 130, 0.09) 0%, rgba(43, 125, 225, 0.07) 48%, rgba(255, 255, 255, 0) 100%),
		#fff;
	box-shadow: 0 18px 46px rgba(8, 40, 74, 0.09);
}

.canary-booking-form.canary-booking-reveal-ready .canary-booking-form__intro,
.canary-booking-form.canary-booking-reveal-ready .canary-booking-form__form {
	opacity: 0;
	transform: translate3d(0, 24px, 0);
	transition:
		opacity 680ms ease,
		transform 820ms cubic-bezier(0.22, 0.68, 0.28, 1),
		box-shadow 220ms ease,
		border-color 220ms ease,
		background-color 220ms ease;
	transition-delay: var(--canary-booking-reveal-delay, 0ms);
	will-change: opacity, transform;
}

.canary-booking-form.canary-booking-reveal-ready .canary-booking-form__form {
	transform: translate3d(0, 30px, 0);
}

.canary-booking-form.canary-booking-reveal-ready.is-visible .canary-booking-form__intro,
.canary-booking-form.canary-booking-reveal-ready.is-visible .canary-booking-form__form {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.canary-booking-form,
.canary-booking-form * {
	box-sizing: border-box;
}

.canary-booking-form [hidden] {
	display: none !important;
}

.canary-booking-form__intro p {
	margin: 0 0 8px;
	color: var(--ccbfe-accent);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.canary-booking-form__intro h2 {
	margin: 0;
	color: var(--ccbfe-ink);
	font-size: clamp(26px, 2.5vw, 36px);
	font-weight: 850;
	line-height: 1.08;
}

.canary-booking-form__intro div {
	max-width: 500px;
	margin-top: 10px;
	color: var(--ccbfe-muted);
	font-size: 14px;
	line-height: 1.55;
}

.canary-booking-form__form {
	position: relative;
	overflow: hidden;
	padding: 18px;
	border: 1px solid rgba(8, 40, 74, 0.1);
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.78);
	box-shadow: 0 14px 34px rgba(8, 40, 74, 0.07);
}

.canary-booking-form__trap {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.canary-booking-form__progress {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin-bottom: 14px;
}

.canary-booking-form__progress span {
	display: block;
	height: 4px;
	border-radius: 999px;
	background: rgba(8, 40, 74, 0.12);
	transition: background 220ms ease;
}

.canary-booking-form__progress span.is-active {
	background: linear-gradient(135deg, var(--ccbfe-accent), var(--ccbfe-blue));
}

.canary-booking-form__steps {
	position: relative;
	height: 236px;
	transition: height 240ms ease;
}

.canary-booking-form__step {
	position: absolute;
	inset: 0;
	display: block;
	min-width: 0;
	margin: 0;
	border: 0;
	padding: 0;
	opacity: 0;
	pointer-events: none;
	transform: translateX(28px);
	transition: opacity 240ms ease, transform 260ms ease;
}

.canary-booking-form__step.is-before {
	transform: translateX(-28px);
}

.canary-booking-form__step.is-active {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(0);
}

.canary-booking-form__step legend {
	display: block;
	width: 100%;
	margin: 0 0 14px;
	color: var(--ccbfe-ink);
	font-size: 18px;
	font-weight: 850;
	line-height: 1.2;
}

.canary-booking-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.canary-booking-form__wide {
	grid-column: 1 / -1;
}

.canary-booking-form label {
	display: grid;
	gap: 6px;
	margin: 0;
}

.canary-booking-form label span {
	color: var(--ccbfe-ink);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.canary-booking-form input,
.canary-booking-form select,
.canary-booking-form textarea {
	width: 100%;
	min-height: 44px;
	border: 1px solid rgba(8, 40, 74, 0.13);
	border-radius: 6px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(246, 251, 252, 0.98) 100%);
	color: var(--ccbfe-ink);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.3;
	padding: 0 13px;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.92),
		0 10px 24px rgba(8, 40, 74, 0.06);
	outline: none;
	transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.canary-booking-form select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--ccbfe-ink) 50%),
		linear-gradient(135deg, var(--ccbfe-ink) 50%, transparent 50%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(246, 251, 252, 0.98) 100%);
	background-position:
		calc(100% - 24px) 50%,
		calc(100% - 18px) 50%,
		0 0;
	background-repeat: no-repeat;
	background-size: 6px 6px, 6px 6px, 100% 100%;
	padding-right: 46px;
}

.canary-booking-form input[type="date"] {
	color-scheme: light;
	cursor: pointer;
	padding-right: 12px;
}

.canary-booking-form input[type="date"]::-webkit-calendar-picker-indicator {
	cursor: pointer;
	filter: invert(17%) sepia(31%) saturate(1962%) hue-rotate(176deg) brightness(88%) contrast(96%);
	opacity: 0.9;
}

.canary-booking-form textarea {
	min-height: 86px;
	padding-top: 11px;
	resize: vertical;
}

.canary-booking-form input:focus,
.canary-booking-form select:focus,
.canary-booking-form textarea:focus {
	border-color: rgba(19, 143, 130, 0.62);
	background:
		linear-gradient(180deg, #fff 0%, rgba(250, 253, 253, 1) 100%);
	box-shadow:
		0 0 0 3px rgba(19, 143, 130, 0.12),
		0 12px 28px rgba(8, 40, 74, 0.08);
	transform: translateY(-1px);
}

.canary-booking-form select:focus {
	background-image:
		linear-gradient(45deg, transparent 50%, var(--ccbfe-ink) 50%),
		linear-gradient(135deg, var(--ccbfe-ink) 50%, transparent 50%),
		linear-gradient(180deg, #fff 0%, rgba(250, 253, 253, 1) 100%);
	background-position:
		calc(100% - 24px) 50%,
		calc(100% - 18px) 50%,
		0 0;
	background-repeat: no-repeat;
	background-size: 6px 6px, 6px 6px, 100% 100%;
}

.canary-booking-form input:hover,
.canary-booking-form select:hover,
.canary-booking-form textarea:hover {
	border-color: rgba(8, 40, 74, 0.22);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.92),
		0 12px 26px rgba(8, 40, 74, 0.075);
}

.canary-booking-form label.has-error input,
.canary-booking-form label.has-error select {
	border-color: rgba(190, 24, 24, 0.55);
}

.canary-booking-form__status {
	min-height: 20px;
	margin-top: 12px;
	color: var(--ccbfe-muted);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.4;
}

.canary-booking-form__status.is-error {
	color: #9b1c1c;
}

.canary-booking-form__status.is-success {
	color: #0b7c45;
}

.canary-booking-form__actions {
	display: grid;
	grid-template-columns: minmax(112px, 0.42fr) minmax(160px, 0.72fr) minmax(160px, 0.72fr);
	gap: 10px;
	align-items: center;
	justify-content: end;
	margin-top: 12px;
}

.canary-booking-form button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 11px;
	min-height: 44px;
	border: 0;
	border-radius: 6px;
	color: #fff;
	cursor: pointer;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.15;
	padding: 13px 18px;
	text-align: center;
	text-transform: uppercase;
	transition: background 160ms ease, box-shadow 160ms ease, transform 160ms ease, opacity 160ms ease;
}

.canary-booking-form button[hidden] {
	display: none;
}

.canary-booking-form .ccbfe-native-field {
	position: absolute;
	width: 1px;
	height: 1px;
	min-height: 0;
	margin: 0;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
}

.canary-booking-form .ccbfe-select,
.canary-booking-form .ccbfe-date {
	position: relative;
	width: 100%;
}

.canary-booking-form .ccbfe-select__button,
.canary-booking-form .ccbfe-date__button {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 44px;
	border: 1px solid rgba(8, 40, 74, 0.13) !important;
	border-radius: 6px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(246, 251, 252, 0.98) 100%) !important;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.92),
		0 10px 24px rgba(8, 40, 74, 0.06);
	color: var(--ccbfe-ink) !important;
	font-size: 13px;
	font-weight: 850;
	line-height: 1.3;
	padding: 0 13px;
	text-align: left;
	text-transform: none;
}

.canary-booking-form .ccbfe-select__button span,
.canary-booking-form .ccbfe-date__button span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.canary-booking-form .ccbfe-select__button i,
.canary-booking-form .ccbfe-date__button i {
	color: var(--ccbfe-accent);
	font-size: 13px;
}

.canary-booking-form .ccbfe-select__button:hover,
.canary-booking-form .ccbfe-select__button:focus,
.canary-booking-form .ccbfe-date__button:hover,
.canary-booking-form .ccbfe-date__button:focus {
	border-color: rgba(19, 143, 130, 0.42) !important;
	background:
		linear-gradient(180deg, #fff 0%, rgba(248, 253, 253, 1) 100%) !important;
	box-shadow:
		0 0 0 3px rgba(19, 143, 130, 0.1),
		0 12px 28px rgba(8, 40, 74, 0.08);
	transform: translateY(-1px);
}

.canary-booking-form .ccbfe-select__menu,
.canary-booking-form .ccbfe-date__panel {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	z-index: 30;
	width: 100%;
	overflow: hidden;
	border: 1px solid rgba(8, 40, 74, 0.13);
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.98);
	box-shadow:
		0 18px 42px rgba(8, 40, 74, 0.16),
		inset 0 1px 0 rgba(255, 255, 255, 0.9);
	opacity: 0;
	pointer-events: none;
	transform: translateY(-7px) scale(0.98);
	transform-origin: top center;
	transition: opacity 170ms ease, transform 190ms ease;
}

.canary-booking-form .ccbfe-select.is-open .ccbfe-select__menu,
.canary-booking-form .ccbfe-date.is-open .ccbfe-date__panel {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0) scale(1);
}

.canary-booking-form .ccbfe-select__option {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	min-height: 38px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--ccbfe-ink);
	font-size: 13px;
	font-weight: 800;
	padding: 10px 14px;
	text-align: left;
	text-transform: none;
}

.canary-booking-form .ccbfe-select__option:hover,
.canary-booking-form .ccbfe-select__option:focus,
.canary-booking-form .ccbfe-select__option.is-selected {
	background: linear-gradient(90deg, rgba(19, 143, 130, 0.12), rgba(43, 125, 225, 0.09));
	box-shadow: none;
	color: var(--ccbfe-ink);
	transform: none;
}

.canary-booking-form .ccbfe-date__panel {
	width: 292px;
	max-width: calc(100vw - 48px);
	padding: 14px;
}

.canary-booking-form .ccbfe-date.is-open {
	margin-bottom: 308px;
}

.canary-booking-form .ccbfe-date__head {
	display: grid;
	grid-template-columns: 34px 1fr 34px;
	gap: 8px;
	align-items: center;
	margin-bottom: 12px;
}

.canary-booking-form .ccbfe-date__head strong {
	color: var(--ccbfe-ink);
	font-size: 14px;
	font-weight: 900;
	text-align: center;
	text-transform: capitalize;
}

.canary-booking-form .ccbfe-date__nav {
	min-height: 34px;
	border: 1px solid rgba(8, 40, 74, 0.1);
	border-radius: 999px;
	background: rgba(246, 251, 252, 0.95);
	box-shadow: none;
	color: var(--ccbfe-ink);
	padding: 0;
}

.canary-booking-form .ccbfe-date__nav:hover,
.canary-booking-form .ccbfe-date__nav:focus {
	background: rgba(19, 143, 130, 0.1);
	box-shadow: none;
	color: var(--ccbfe-ink);
	transform: none;
}

.canary-booking-form .ccbfe-date__week,
.canary-booking-form .ccbfe-date__days {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 5px;
}

.canary-booking-form .ccbfe-date__week {
	margin-bottom: 6px;
}

.canary-booking-form .ccbfe-date__week span {
	color: var(--ccbfe-muted);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: 0;
	text-align: center;
	text-transform: uppercase;
}

.canary-booking-form .ccbfe-date__day {
	min-height: 32px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	box-shadow: none;
	color: var(--ccbfe-ink);
	font-size: 12px;
	font-weight: 850;
	padding: 0;
	text-transform: none;
}

.canary-booking-form .ccbfe-date__day:hover,
.canary-booking-form .ccbfe-date__day:focus {
	background: rgba(19, 143, 130, 0.1);
	box-shadow: none;
	color: var(--ccbfe-ink);
	transform: none;
}

.canary-booking-form .ccbfe-date__day.is-selected {
	background: linear-gradient(135deg, var(--ccbfe-accent), var(--ccbfe-blue));
	color: #fff;
}

.canary-booking-form .ccbfe-date__day:disabled {
	cursor: not-allowed;
	opacity: 0.28;
}

.canary-booking-form button span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.canary-booking-form button i {
	flex: 0 0 auto;
	font-size: 15px;
}

.canary-booking-form .canary-booking-form__back {
	grid-column: 1;
	justify-self: start;
	border: 1px solid rgba(8, 40, 74, 0.16) !important;
	background: linear-gradient(180deg, #f8fbfc 0%, #eaf3f4 100%) !important;
	color: var(--ccbfe-ink) !important;
	box-shadow: 0 10px 22px rgba(8, 40, 74, 0.08);
}

.canary-booking-form__next {
	grid-column: 3;
}

.canary-booking-form__submit {
	grid-column: 2;
}

.canary-booking-form__whatsapp {
	grid-column: 3;
}

.canary-booking-form__next,
.canary-booking-form__submit {
	background: linear-gradient(135deg, #2b84f0 0%, var(--ccbfe-blue) 100%);
	box-shadow: 0 14px 28px rgba(36, 120, 223, 0.2);
}

.canary-booking-form__whatsapp {
	background: linear-gradient(135deg, #25c466 0%, var(--ccbfe-green) 100%);
	box-shadow: 0 14px 28px rgba(34, 185, 95, 0.2);
}

.canary-booking-form button:hover,
.canary-booking-form button:focus {
	transform: translateY(-1px);
}

.canary-booking-form .canary-booking-form__back:hover,
.canary-booking-form .canary-booking-form__back:focus {
	background: linear-gradient(180deg, #fff 0%, #edf7f7 100%) !important;
	box-shadow: 0 10px 22px rgba(8, 40, 74, 0.09);
	color: var(--ccbfe-ink) !important;
}

.canary-booking-form__next:hover,
.canary-booking-form__next:focus,
.canary-booking-form__submit:hover,
.canary-booking-form__submit:focus {
	background: linear-gradient(135deg, #2379df 0%, var(--ccbfe-blue-hover) 100%);
	box-shadow: 0 16px 32px rgba(36, 120, 223, 0.26);
}

.canary-booking-form__whatsapp:hover,
.canary-booking-form__whatsapp:focus {
	background: linear-gradient(135deg, #22bd61 0%, #1faa57 100%);
	box-shadow: 0 16px 32px rgba(34, 185, 95, 0.26);
}

.canary-booking-form button:disabled {
	cursor: not-allowed;
	opacity: 0.48;
	transform: none;
}

.canary-booking-form__form.is-loading {
	cursor: progress;
}

.canary-booking-form__form.is-loading::after {
	position: absolute;
	inset: 0;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.44);
	content: "";
	pointer-events: none;
}

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

@media (prefers-reduced-motion: reduce) {
	.canary-booking-form.canary-booking-reveal-ready .canary-booking-form__intro,
	.canary-booking-form.canary-booking-reveal-ready .canary-booking-form__form {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

@media (max-width: 767px) {
	.canary-booking-form {
		gap: 28px;
		padding: 22px 16px;
		text-align: center;
	}

	.canary-booking-form__intro div {
		margin-left: auto;
		margin-right: auto;
	}

	.canary-booking-form__form {
		padding: 16px;
		text-align: left;
	}

	.canary-booking-form__steps {
		min-height: 0;
	}

	.canary-booking-form__grid,
	.canary-booking-form__actions {
		grid-template-columns: 1fr;
	}

	.canary-booking-form__back {
		grid-column: auto;
		order: 3;
		justify-self: stretch;
	}

	.canary-booking-form__next,
	.canary-booking-form__submit,
	.canary-booking-form__whatsapp {
		grid-column: auto;
	}
}
