.jt-transfer-form {
	--jt-accent: #f25623;
	--jt-accent-alt: #f16623;
	--jt-accent-dark: #d25216;
	--jt-text: #111;
	--jt-muted: #666;
	--jt-border: #dedede;
	--jt-bg: #f7f7f5;
	--jt-card: #ffffff;
	--jt-danger: #b42318;
	--jt-ok: #067647;
	--jt-placeholder: rgba(102, 102, 102, 0.6);

	width: 100%;
	max-width: 491px;
	margin: 0 auto;
	padding: 32px;
	color: var(--jt-text);
	font-family: inherit;
	box-sizing: border-box;
	background: var(--jt-card);
	border-radius: 16px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}

.jt-transfer-form *,
.jt-transfer-form *::before,
.jt-transfer-form *::after {
	box-sizing: border-box;
}

#jt-booking-form {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.jt-loader {
	position: absolute;
	inset: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.78);
	backdrop-filter: blur(2px);
	border-radius: 16px;
}

.jt-loader[hidden] {
	display: none !important;
}

.jt-loader-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
}

.jt-spinner {
	width: 36px;
	height: 36px;
	border: 3px solid #e8e8e8;
	border-top-color: var(--jt-accent);
	border-radius: 50%;
	animation: jt-spin 0.7s linear infinite;
}

.jt-loader-text {
	font-size: 0.9rem;
	color: var(--jt-muted);
	font-weight: 500;
}

@keyframes jt-spin {
	to {
		transform: rotate(360deg);
	}
}

.jt-transfer-form.is-loading .jt-actions .jt-btn {
	pointer-events: none;
}

.jt-progress {
	height: 4px;
	background: #e8e8e8;
	border-radius: 999px;
	overflow: hidden;
	margin: 0 0 6px;
}

.jt-progress-bar {
	height: 100%;
	width: 25%;
	background: var(--jt-accent-alt);
	transition: width 0.25s ease;
}

.jt-step-label {
	margin: 0 0 32px;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	color: var(--jt-muted);
}

.jt-section-title {
	margin: 0 0 16px;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--jt-text);
}

.jt-step {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.jt-step[hidden] {
	display: none !important;
}

.jt-field {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
	width: 100%;
	min-width: 0;
}

.jt-field label,
.jt-field .jt-label {
	display: block;
	margin: 0;
	padding-left: 16px;
	font-size: 16px;
	font-weight: 600;
	line-height: 20px;
	color: var(--jt-muted);
}

.jt-field input[type="text"],
.jt-field input[type="email"],
.jt-field input[type="tel"],
.jt-field input[type="number"],
.jt-field select,
.jt-field .jt-flatpickr-input {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--jt-border);
	border-radius: 24px;
	background: var(--jt-card);
	font-size: 16px;
	font-weight: 500;
	line-height: 20px;
	color: var(--jt-text);
	font-family: inherit;
}

.jt-field .jt-flatpickr-input {
	cursor: pointer;
}

.jt-field input::placeholder,
.jt-field textarea::placeholder,
.jt-field .jt-flatpickr-input::placeholder {
	color: var(--jt-placeholder);
	opacity: 1;
}

.jt-field input:focus,
.jt-field select:focus,
.jt-field .jt-flatpickr-input:focus {
	outline: none;
	border-color: var(--jt-accent);
	box-shadow: 0 0 0 2px rgba(242, 86, 35, 0.2);
}

.jt-field-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	align-items: start;
}

.jt-toggle {
	display: flex;
	gap: 1.25rem;
	flex-wrap: wrap;
}

.jt-toggle label {
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.jt-live-price {
	margin: 0;
	padding: 0.75rem 1rem;
	background: var(--jt-bg);
	border-radius: 16px;
	font-size: 1rem;
}

.jt-vehicles-block {
	margin: 0 0 1rem;
}

.jt-discount-notice {
	margin: 0.35rem 0 0.75rem;
	padding: 0.7rem 0.9rem;
	border-radius: 16px;
	border: 1px solid rgba(34, 140, 74, 0.35);
	background: linear-gradient(135deg, rgba(34, 140, 74, 0.14), rgba(34, 140, 74, 0.05));
	color: #1a6b38;
	font-size: 0.92rem;
	font-weight: 650;
}

.jt-discount-notice[hidden] {
	display: none !important;
}

.jt-discount-notice-summary {
	margin: -0.15rem 0 0.85rem;
}

.jt-vehicles-block[hidden] {
	display: none !important;
}

.jt-transfer-form--teaser .jt-vehicles-block,
.jt-transfer-form--teaser [data-step="2"],
.jt-transfer-form--teaser [data-step="3"],
.jt-transfer-form--teaser [data-step="4"],
.jt-transfer-form--teaser #jt-btn-back,
.jt-transfer-form--teaser #jt-btn-submit {
	display: none !important;
}

.jt-vehicles-loading {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0.5rem 0 0.75rem;
	font-size: 0.9rem;
	color: var(--jt-muted);
}

.jt-vehicles-loading[hidden] {
	display: none !important;
}

.jt-vehicles {
	display: grid;
	gap: 0.75rem;
}

.jt-transfer-form .jt-vehicle {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem;
	border: 1px solid var(--jt-border);
	border-radius: 16px;
	background: var(--jt-card);
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.jt-transfer-form .jt-vehicle-img,
.jt-transfer-form img.jt-vehicle-img {
	display: block;
	flex: 0 0 80px;
	flex-shrink: 0;
	width: 80px !important;
	max-width: 80px !important;
	height: 56px !important;
	max-height: 56px !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: contain !important;
	object-position: center !important;
	border-radius: 4px;
	vertical-align: middle;
}

.jt-vehicle-info {
	flex: 1;
	min-width: 0;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
}

.jt-vehicle-copy {
	min-width: 0;
	flex: 1;
}

.jt-vehicle:hover {
	border-color: var(--jt-accent);
}

.jt-vehicle.is-selected {
	border-color: var(--jt-accent);
	box-shadow: inset 0 0 0 1px var(--jt-accent);
	background: rgba(241, 102, 35, 0.08);
}

.jt-vehicle input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.jt-vehicle-title {
	font-weight: 600;
	margin-bottom: 0.25rem;
}

.jt-vehicle-price {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	flex-shrink: 0;
	gap: 0.35rem;
	text-align: right;
	line-height: 1.2;
}

.jt-vehicle-price-was {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.35rem;
}

.jt-vehicle-price-old {
	font-size: 0.78rem;
	font-weight: 500;
	color: var(--jt-muted);
	text-decoration: line-through;
}

.jt-vehicle-discount {
	display: inline-block;
	padding: 0.08rem 0.38rem;
	border-radius: 999px;
	background: rgba(34, 140, 74, 0.15);
	color: #1a6b38;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.3;
}

.jt-vehicle-price-current {
	color: var(--jt-accent-dark);
	white-space: nowrap;
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.jt-vehicle-price.has-discount .jt-vehicle-price-current {
	font-size: 1.28rem;
}

.jt-vehicle-meta {
	font-size: 0.85rem;
	color: var(--jt-muted);
}

.jt-summary {
	display: grid;
	grid-template-columns: minmax(110px, 40%) 1fr;
	gap: 0.5rem 1rem;
	margin: 0;
	padding: 1rem;
	background: var(--jt-bg);
	border-radius: 16px;
}

.jt-summary dt {
	margin: 0;
	color: var(--jt-muted);
	font-weight: 500;
}

.jt-summary dd {
	margin: 0;
	font-weight: 600;
}

.jt-total-line {
	font-size: 1.25rem;
	margin: 0 0 0.5rem;
}

.jt-payment-line {
	margin: 0 0 0.75rem;
	color: var(--jt-muted);
	font-size: 0.95rem;
}

.jt-consent {
	margin: 0 0 0.25rem;
	font-size: 0.78rem;
	line-height: 1.45;
	color: var(--jt-muted);
}

.jt-actions {
	display: flex;
	gap: 12px;
	justify-content: stretch;
	margin: 0;
	flex-wrap: wrap;
}

.jt-btn {
	appearance: none;
	border: none;
	border-radius: 32px;
	padding: 12px 24px;
	min-height: 50px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.25;
	cursor: pointer;
	min-width: 120px;
	flex: 1 1 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	box-shadow: inset 0 0 0 999px transparent;
	transition: background-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease, opacity 0.25s ease, border-color 0.25s ease;
}

.jt-btn[hidden] {
	display: none !important;
}

.jt-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.jt-btn-primary {
	background-color: var(--jt-accent);
	color: #ffffff;
}

.jt-btn-primary:hover:not(:disabled) {
	box-shadow: inset 0 0 0 999px rgba(0, 0, 0, 0.3);
}

.jt-btn-secondary {
	background-color: #f7f7f5;
	border: 1px solid #171717;
	color: var(--jt-text);
}

.jt-btn-secondary:hover:not(:disabled) {
	box-shadow: inset 0 0 0 999px rgba(0, 0, 0, 0.1);
}

.jt-alert {
	padding: 0.85rem 1rem;
	border-radius: 16px;
	margin: 0 0 1rem;
	font-size: 0.95rem;
}

.jt-alert-error {
	background: #fef3f2;
	color: var(--jt-danger);
	border: 1px solid #fecdca;
}

.jt-alert-success {
	background: #ecfdf3;
	color: var(--jt-ok);
	border: 1px solid #abefc6;
}

.jt-modal {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
}

.jt-modal[hidden] {
	display: none !important;
}

.jt-modal-backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	padding: 0;
	margin: 0;
	background: rgba(17, 17, 17, 0.48);
	cursor: pointer;
}

.jt-modal-panel {
	position: relative;
	z-index: 1;
	width: min(100%, 420px);
	padding: 1.5rem;
	border-radius: 16px;
	background: var(--jt-card);
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
	text-align: center;
}

.jt-modal-title {
	margin: 0 0 1.25rem !important;
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: 0;
	color: var(--jt-text);
}

.jt-modal-message {
	margin: 0 0 1.5rem;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--jt-text);
}

.jt-modal-close {
	width: 100%;
}

body.jt-modal-open {
	overflow: hidden;
}

.jt-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
}

.jt-transfer-form .iti {
	width: 100%;
}

.jt-transfer-form .iti input.iti__tel-input,
.jt-transfer-form .iti input[type="tel"] {
	width: 100%;
	padding: 12px 16px;
	padding-left: 90px;
	border: 1px solid var(--jt-border);
	border-radius: 24px;
	background: var(--jt-card);
	font-size: 16px;
	font-weight: 500;
	line-height: 20px;
	color: var(--jt-text);
}

.jt-transfer-form .iti input.iti__tel-input:focus,
.jt-transfer-form .iti input[type="tel"]:focus {
	outline: none;
	border-color: var(--jt-accent);
	box-shadow: 0 0 0 2px rgba(242, 86, 35, 0.2);
}

.jt-transfer-form .jt-field-phone .jt-field-hint {
	margin: 0.4rem 0 0;
	padding-left: 16px;
	font-size: 14px;
	line-height: 20px;
	color: var(--jt-muted);
}

.jt-transfer-form .iti__selected-country,
.jt-transfer-form .iti__selected-dial-code {
	font-weight: 600;
}

.jt-flight-field[hidden] {
	display: none !important;
}

.jt-extra-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 0.85rem 1rem;
	margin: 0;
	border: 1px solid var(--jt-border);
	border-radius: 16px;
	background: var(--jt-card);
}

.jt-extras {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.jt-extra-label {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.jt-extra-price {
	font-size: 0.85rem;
	color: var(--jt-muted);
}

.jt-extra-control {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-shrink: 0;
}

.jt-extra-control input[type="number"] {
	width: 72px;
	padding: 0.5rem 0.65rem;
	border: 1px solid var(--jt-border);
	border-radius: 24px;
}

.jt-extra-control label {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-weight: 500;
}

.jt-field textarea {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--jt-border);
	border-radius: 24px;
	background: var(--jt-card);
	font-size: 16px;
	font-weight: 500;
	line-height: 20px;
	font-family: inherit;
	resize: vertical;
	min-height: 100px;
	color: var(--jt-text);
}

.jt-field textarea:focus {
	outline: none;
	border-color: var(--jt-accent);
	box-shadow: 0 0 0 2px rgba(242, 86, 35, 0.2);
}

.jt-hint {
	margin: -8px 0 0;
	padding-left: 16px;
	font-size: 14px;
	line-height: 20px;
	color: var(--jt-muted);
}

.jt-price-banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 0.25rem 0 0.25rem;
	padding: 0.95rem 1.1rem;
	border-radius: 16px;
	border: 1px solid rgba(241, 102, 35, 0.35);
	background: linear-gradient(135deg, rgba(241, 102, 35, 0.14), rgba(241, 102, 35, 0.06));
	box-shadow: 0 6px 18px rgba(241, 102, 35, 0.12);
}

.jt-price-banner[hidden] {
	display: none !important;
}

.jt-price-banner-label {
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--jt-text);
}

.jt-price-banner-amount {
	font-size: 1.35rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--jt-accent-dark);
	white-space: nowrap;
}

.jt-price-banner-loading {
	display: none;
	align-items: center;
	gap: 0.55rem;
	margin-left: auto;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--jt-muted);
}

.jt-price-banner-loading::before {
	content: '';
	width: 18px;
	height: 18px;
	border: 2px solid rgba(241, 102, 35, 0.25);
	border-top-color: var(--jt-accent);
	border-radius: 50%;
	animation: jt-spin 0.7s linear infinite;
}

.jt-price-banner.is-loading .jt-price-banner-label,
.jt-price-banner.is-loading .jt-price-banner-amount {
	display: none;
}

.jt-price-banner.is-loading .jt-price-banner-loading {
	display: inline-flex;
}

.jt-price-banner:not(.is-loading) .jt-price-banner-loading {
	display: none;
}

.jt-place-field {
	position: relative;
}

.jt-place-field:has(.jt-suggestions.is-open),
.jt-place-field:focus-within {
	z-index: 30;
}

.jt-place-field:has(.jt-suggestions.is-open) input[type="text"] {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}

.jt-transfer-form .jt-suggestions {
	position: absolute;
	z-index: 200;
	left: 0;
	right: 0;
	top: 100%;
	margin: 0.15rem 0 0;
	padding: 0.25rem 0;
	list-style: none;
	background: var(--jt-card);
	border: 1px solid var(--jt-border);
	border-radius: 16px;
	box-shadow: 0 12px 32px rgba(26, 26, 26, 0.14);
	max-height: 280px;
	overflow-x: hidden;
	overflow-y: auto;
	display: none;
}

.jt-transfer-form .jt-suggestions[hidden] {
	display: none !important;
}

.jt-transfer-form .jt-suggestions.is-open {
	display: block !important;
}

.jt-transfer-form .jt-suggestions li {
	margin: 0;
	padding: 0.7rem 0.9rem;
	font-size: 0.9rem;
	line-height: 1.35;
	cursor: pointer;
	border-bottom: 1px solid #f0f0f0;
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.jt-transfer-form .jt-suggestions li:last-child {
	border-bottom: none;
}

.jt-transfer-form .jt-suggestions li:hover,
.jt-transfer-form .jt-suggestions li:focus {
	background: rgba(241, 102, 35, 0.08);
	outline: none;
}

.jt-suggestion-title {
	display: block;
	font-weight: 600;
	color: var(--jt-text);
}

.jt-suggestion-meta {
	display: block;
	margin-top: 0.15rem;
	font-size: 0.82rem;
	font-weight: 400;
	line-height: 1.4;
	color: var(--jt-muted);
}

.jt-transfer-form .jt-suggestions li.jt-suggestion-empty {
	cursor: default;
	color: var(--jt-muted);
	font-size: 0.88rem;
}

.jt-transfer-form .jt-suggestions li.jt-suggestion-empty:hover,
.jt-transfer-form .jt-suggestions li.jt-suggestion-empty:focus {
	background: transparent;
}

.jt-distance-line {
	margin: 0;
	padding: 0.75rem 1rem;
	background: var(--jt-bg);
	border-radius: 16px;
	font-weight: 600;
}

@media (max-width: 520px) {
	.jt-transfer-form {
		padding: 24px 16px;
		border-radius: 16px;
	}

	.jt-field-row {
		grid-template-columns: 1fr;
	}

	.jt-actions {
		flex-direction: column-reverse;
	}

	.jt-btn {
		width: 100%;
	}

	.jt-summary {
		grid-template-columns: 1fr;
		gap: 0.15rem 0;
	}

	.jt-summary dt {
		margin-top: 0.5rem;
	}
}

/* Flatpickr — match Joy Taxi form chrome across browsers */
.flatpickr-calendar {
	z-index: 10050;
	font-family: inherit;
	border: 1px solid var(--jt-border, #dedede);
	border-radius: 16px;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
	overflow: hidden;
}

.flatpickr-calendar.arrowTop:before,
.flatpickr-calendar.arrowTop:after,
.flatpickr-calendar.arrowBottom:before,
.flatpickr-calendar.arrowBottom:after {
	display: none;
}

.flatpickr-months .flatpickr-month {
	height: 44px;
}

.flatpickr-current-month {
	font-size: 14px;
	font-weight: 600;
	padding-top: 10px;
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
	padding: 12px 10px;
	fill: var(--jt-text, #111);
}

.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
	fill: var(--jt-accent, #f25623);
}

.flatpickr-weekdays {
	background: transparent;
}

span.flatpickr-weekday {
	color: var(--jt-muted, #666);
	font-weight: 600;
	font-size: 12px;
}

.flatpickr-day {
	border-radius: 999px;
	font-weight: 500;
	color: var(--jt-text, #111);
}

.flatpickr-day:hover,
.flatpickr-day:focus,
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover {
	background: rgba(242, 86, 35, 0.12);
	border-color: transparent;
	color: var(--jt-text, #111);
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus {
	background: var(--jt-accent, #f25623);
	border-color: var(--jt-accent, #f25623);
	color: #fff;
	font-weight: 600;
}

.flatpickr-day.today {
	border-color: var(--jt-accent, #f25623);
}

.flatpickr-day.today:hover,
.flatpickr-day.today:focus {
	background: rgba(242, 86, 35, 0.12);
	border-color: var(--jt-accent, #f25623);
	color: var(--jt-text, #111);
}

.flatpickr-day.today.selected {
	background: var(--jt-accent, #f25623);
	border-color: var(--jt-accent, #f25623);
	color: #fff;
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
	color: rgba(17, 17, 17, 0.25);
}
