.tcw-ffc-form {
	color: var(--tcw-ffc-text, #1d1e23);
}

.tcw-ffc-form label,
.tcw-ffc-form .ff-el-input--label label {
	color: var(--tcw-ffc-text, #1d1e23);
}

.tcw-ffc-form input[type="text"],
.tcw-ffc-form input[type="email"],
.tcw-ffc-form input[type="number"],
.tcw-ffc-form input[type="date"],
.tcw-ffc-form input[type="time"],
.tcw-ffc-form input[type="tel"],
.tcw-ffc-form input[type="url"],
.tcw-ffc-form select,
.tcw-ffc-form textarea {
	box-sizing: border-box;
	border-color: var(--tcw-ffc-input-border, #e5e5df) !important;
	border-radius: var(--tcw-ffc-input-radius, 8px) !important;
	background: var(--tcw-ffc-input-bg, #ffffff) !important;
	color: var(--tcw-ffc-input-text, #1d1e23) !important;
}

.tcw-ffc-form input[type="text"]:focus,
.tcw-ffc-form input[type="email"]:focus,
.tcw-ffc-form input[type="number"]:focus,
.tcw-ffc-form input[type="date"]:focus,
.tcw-ffc-form input[type="time"]:focus,
.tcw-ffc-form input[type="tel"]:focus,
.tcw-ffc-form input[type="url"]:focus,
.tcw-ffc-form select:focus,
.tcw-ffc-form textarea:focus {
	border-color: var(--tcw-ffc-input-focus-border, #f2be12) !important;
	box-shadow: 0 0 0 1px var(--tcw-ffc-input-focus-border, #f2be12) !important;
	outline: 0;
}

.tcw-ffc-form input[type="checkbox"] {
	accent-color: var(--tcw-ffc-checkbox-color, #f2be12);
}

.tcw-ffc-form input[type="radio"] {
	accent-color: var(--tcw-ffc-radio-color, #f2be12);
}

.tcw-ffc-price-box,
.tcw-ffc-message {
	box-sizing: border-box;
	margin: 16px 0;
	width: 100%;
}

.tcw-ffc-step-header {
	box-sizing: border-box;
	margin: 0 0 22px;
	border-bottom: 1px solid var(--tcw-ffc-border, #e5e5df);
	padding: 0 0 18px;
}

.tcw-ffc-step-header h3 {
	margin: 14px 0 6px;
	color: var(--tcw-ffc-dark, #2f343b);
	font-size: 1.25rem;
	line-height: 1.3;
}

.tcw-ffc-step-header p {
	margin: 0;
	color: var(--tcw-ffc-text, #1d1e23);
}

.tcw-ffc-contact-field {
	display: none;
}

.tcw-ffc-step-trip .tcw-ffc-contact-field,
.tcw-ffc-step-trip .tcw-ffc-submit-field {
	display: none !important;
}

.tcw-ffc-step-contact .tcw-ffc-trip-field,
.tcw-ffc-step-contact .tcw-ffc-calculate-button {
	display: none !important;
}

.tcw-ffc-step-contact .tcw-ffc-field-ride_type,
.tcw-ffc-step-contact .tcw-ffc-field-pickup_date,
.tcw-ffc-step-contact .tcw-ffc-field-pickup_time,
.tcw-ffc-step-contact .tcw-ffc-field-passengers,
.tcw-ffc-step-contact .tcw-ffc-field-luggage,
.tcw-ffc-step-contact .tcw-ffc-field-vehicle_type,
.tcw-ffc-step-contact .tcw-ffc-field-pickup_address,
.tcw-ffc-step-contact .tcw-ffc-field-destination_address,
.tcw-ffc-step-contact .tcw-ffc-field-airport_direction,
.tcw-ffc-step-contact .tcw-ffc-field-westland_city,
.tcw-ffc-step-contact .tcw-ffc-field-airport,
.tcw-ffc-step-contact .tcw-ffc-field-westland_address,
.tcw-ffc-step-contact .tcw-ffc-field-flight_number,
.tcw-ffc-step-contact .tcw-ffc-field-flight_arrival_time,
.tcw-ffc-step-contact .tcw-ffc-field-return_trip,
.tcw-ffc-step-contact .tcw-ffc-field-return_date,
.tcw-ffc-step-contact .tcw-ffc-field-return_time,
.tcw-ffc-step-contact .tcw-ffc-field-return_flight_number,
.tcw-ffc-step-contact .tcw-ffc-field-return_flight_arrival_time,
.tcw-ffc-step-contact .tcw-ffc-field-customer_note {
	display: none !important;
}

.tcw-ffc-step-contact .tcw-ffc-contact-field {
	display: block !important;
}

.tcw-ffc-step-contact .tcw-ffc-back-button {
	display: inline-flex !important;
}

.tcw-ffc-step-trip .tcw-ffc-price-box {
	display: none !important;
}

.tcw-ffc-stepper {
	display: grid;
	grid-template-columns: max-content minmax(36px, 1fr) max-content;
	align-items: center;
	gap: 10px;
	max-width: 560px;
}

.tcw-ffc-stepper__item {
	border: 1px solid var(--tcw-ffc-border, #e5e5df);
	border-radius: 999px;
	background: var(--tcw-ffc-card-bg, #ffffff);
	padding: 7px 12px;
	color: var(--tcw-ffc-text, #1d1e23);
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.2;
}

.tcw-ffc-stepper__item.is-active {
	border-color: var(--tcw-ffc-dark, #2f343b);
	background: var(--tcw-ffc-dark, #2f343b);
	color: var(--tcw-ffc-card-bg, #ffffff);
}

.tcw-ffc-stepper__item.is-complete {
	border-color: var(--tcw-ffc-primary, #f2be12);
	background: var(--tcw-ffc-light-bg, #f8f8f5);
	color: var(--tcw-ffc-dark, #2f343b);
}

.tcw-ffc-stepper__line {
	height: 1px;
	background: var(--tcw-ffc-border, #e5e5df);
}

.tcw-ffc-price-box {
	border: 1px solid var(--tcw-ffc-price-border, #f2be12);
	border-radius: var(--tcw-ffc-price-radius, 10px);
	background: var(--tcw-ffc-price-bg, #fff8df);
	padding: 18px;
	color: var(--tcw-ffc-price-text, #1d1e23);
}

.tcw-ffc-price-box h3 {
	margin: 0 0 8px;
	color: var(--tcw-ffc-price-text, #1d1e23);
	font-size: 1.15rem;
	line-height: 1.3;
}

.tcw-ffc-price-box p {
	margin: 0 0 10px;
	color: var(--tcw-ffc-price-text, #1d1e23);
}

.tcw-ffc-route-summary {
	margin: 0 0 12px;
	border-left: 3px solid var(--tcw-ffc-route-accent, #f2be12);
	padding: 8px 0 8px 12px;
}

.tcw-ffc-route-summary span {
	display: block;
	margin-bottom: 2px;
	color: var(--tcw-ffc-text, #1d1e23);
	font-size: 0.82rem;
	font-weight: 700;
	text-transform: uppercase;
}

.tcw-ffc-route-summary b {
	display: block;
	color: var(--tcw-ffc-price-text, #1d1e23);
	font-size: 1rem;
	line-height: 1.35;
}

.tcw-ffc-price-box strong {
	display: block;
	margin: 0 0 10px;
	color: var(--tcw-ffc-price-text, #1d1e23);
	font-size: 1.8rem;
	line-height: 1.2;
}

.tcw-ffc-price-lines {
	display: grid;
	gap: 8px;
	margin: 0 0 12px;
}

.tcw-ffc-price-lines div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	border-bottom: 1px solid var(--tcw-ffc-price-border, #f2be12);
	padding: 0 0 8px;
}

.tcw-ffc-price-lines div:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.tcw-ffc-price-lines dt {
	margin: 0;
	color: var(--tcw-ffc-price-text, #1d1e23);
	font-weight: 700;
}

.tcw-ffc-price-lines dd {
	margin: 0;
	color: var(--tcw-ffc-price-text, #1d1e23);
	font-size: 1.25rem;
	font-weight: 800;
}

.tcw-ffc-price-lines .is-total {
	margin-top: 2px;
	padding-top: 8px;
	border-top: 1px solid var(--tcw-ffc-price-border, #f2be12);
}

.tcw-ffc-price-lines .is-total dd {
	font-size: 1.65rem;
}

.tcw-ffc-price-box small {
	display: block;
	color: var(--tcw-ffc-price-text, #1d1e23);
}

.tcw-ffc-message {
	border-radius: var(--tcw-ffc-input-radius, 8px);
	padding: 12px 14px;
}

.tcw-ffc-message-error {
	border: 1px solid var(--tcw-ffc-error-border, #d63638);
	background: var(--tcw-ffc-error-bg, #fff5f5);
	color: var(--tcw-ffc-error-text, #8a1f1f);
}

.tcw-ffc-calculate-button,
.tcw-ffc-back-button,
.tcw-ffc-form .ff-btn-submit,
.tcw-ffc-form button[type="submit"],
.tcw-ffc-form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	border-radius: var(--tcw-ffc-button-radius, 8px) !important;
	padding: 10px 18px;
	font-weight: 700;
	cursor: pointer;
}

.tcw-ffc-calculate-button,
.tcw-ffc-form .ff-btn-submit,
.tcw-ffc-form button[type="submit"],
.tcw-ffc-form input[type="submit"] {
	border: 1px solid var(--tcw-ffc-primary, #f2be12) !important;
	background: var(--tcw-ffc-primary, #f2be12) !important;
	color: var(--tcw-ffc-button-text, #1d1e23) !important;
}

.tcw-ffc-calculate-button:hover,
.tcw-ffc-calculate-button:focus,
.tcw-ffc-form .ff-btn-submit:hover,
.tcw-ffc-form .ff-btn-submit:focus,
.tcw-ffc-form button[type="submit"]:hover,
.tcw-ffc-form button[type="submit"]:focus,
.tcw-ffc-form input[type="submit"]:hover,
.tcw-ffc-form input[type="submit"]:focus {
	border-color: var(--tcw-ffc-primary-hover, #d9a90f) !important;
	background: var(--tcw-ffc-primary-hover, #d9a90f) !important;
	color: var(--tcw-ffc-button-text, #1d1e23) !important;
}

.tcw-ffc-back-button {
	margin-left: 10px;
	border: 1px solid var(--tcw-ffc-border, #e5e5df);
	background: var(--tcw-ffc-card-bg, #ffffff);
	color: var(--tcw-ffc-dark, #2f343b);
}

.tcw-ffc-back-button:hover,
.tcw-ffc-back-button:focus {
	border-color: var(--tcw-ffc-primary, #f2be12);
	background: var(--tcw-ffc-light-bg, #f8f8f5);
	color: var(--tcw-ffc-dark, #2f343b);
}

.tcw-ffc-calculate-button:disabled,
.tcw-ffc-submit-disabled,
.tcw-ffc-form button[type="submit"]:disabled,
.tcw-ffc-form input[type="submit"]:disabled {
	cursor: not-allowed;
	opacity: 0.55;
}

.tcw-ffc-calculate-button.is-loading {
	position: relative;
}

.pac-container {
	z-index: 999999 !important;
}

.tcw-ffc-pac-container {
	box-sizing: border-box;
	z-index: 999999 !important;
}

@media (max-width: 520px) {
	.tcw-ffc-stepper {
		grid-template-columns: 1fr;
	}

	.tcw-ffc-stepper__line {
		display: none;
	}

	.tcw-ffc-back-button {
		margin-top: 10px;
		margin-left: 0;
	}
}
