/*
 * Taxi theme: redesigned search bar + available-ticket cards.
 *
 * Performance rules this file follows:
 *  - CSS only: no JS, no images, no web fonts (system / Vazirmatn-if-installed stack).
 *  - Animations use only transform + opacity (GPU-friendly, no layout work) and run once.
 *  - Everything is switched off for users who prefer reduced motion.
 *  - It only restyles existing markup, so search / seat / cart logic is untouched.
 *
 * Colour: set the Theme Color in plugin settings to change --prime_card_accent; the
 * defaults below are a deep teal with a taxi-amber highlight.
 */

/* ============ Design tokens ============ */
.prime_search_area,
.prime_search_result {
	--t-accent: var(--prime_card_accent, #082c86);
	--t-accent-dark: #061f5f;       /* fallback; refined below where color-mix() exists */
	--t-accent-soft: var(--prime_card_accent_soft, #eef3fc);
	--t-hi: #f59e0b;                /* taxi amber highlight */
	--t-ink: #0f172a;
	--t-muted: #64748b;
	--t-line: #e2e8f0;
	--t-surface: #ffffff;
	--t-radius: 18px;
	--t-shadow: 0 18px 44px -20px rgba(15, 23, 42, .28), 0 3px 10px rgba(15, 23, 42, .05);
	--t-font: Vazirmatn, Vazir, IRANSans, "Segoe UI", Tahoma, system-ui, -apple-system, sans-serif;
	font-family: var(--t-font);
}

/* Derive shades from the admin's Theme Color when the browser supports it. */
@supports (color: color-mix(in srgb, red, blue)) {
	.prime_search_area,
	.prime_search_result {
		--t-accent-dark: color-mix(in srgb, var(--t-accent) 82%, #000);
		--t-accent-soft: var(--prime_card_accent_soft, color-mix(in srgb, var(--t-accent) 9%, #fff));
	}
}

@media (prefers-color-scheme: dark) {
	.prime_search_area.prime-bar-redesign,
	.prime_search_result { color-scheme: light; } /* cards stay light: they sit on the theme's own background */
}

/* ============ Keyframes (transform / opacity only) ============ */
@keyframes prime-rise  { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes prime-drop  { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
@keyframes prime-fade  { from { opacity: 0; } to { opacity: 1; } }
@keyframes prime-shine { from { transform: translateX(-130%) skewX(-18deg); } to { transform: translateX(260%) skewX(-18deg); } }
@keyframes prime-trip  { 0% { transform: translateX(0); } 100% { transform: translateX(var(--trip, 90px)); } }
@keyframes prime-spin  { to { transform: rotate(360deg); } }

/* ============ SEARCH BAR ============ */
body .prime_search_area.prime-bar-redesign {
	position: relative;
	padding: 22px 22px 20px;
	margin: 0 0 22px;
	background:
		linear-gradient(180deg, var(--t-accent-soft), #fff 62%);
	border: 1px solid var(--t-line);
	border-radius: 22px;
	box-shadow: var(--t-shadow);
	/* NOT overflow:hidden: the city drop-downs are absolutely positioned below the fields
	   and must be able to extend past the bar. z-index keeps them above the result cards. */
	z-index: 20;
	font-family: var(--t-font);
	animation: prime-drop .45s cubic-bezier(.2, .7, .2, 1) backwards;
}
/* decorative amber "taxi light" strip along the top */
body .prime_search_area.prime-bar-redesign::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	border-radius: 22px 22px 0 0;
	background: linear-gradient(90deg, var(--t-accent), var(--t-hi));
}
body .prime_search_area.prime-bar-redesign > h4 {
	margin: 0 0 14px;
	font-size: 18px;
	font-weight: 800;
	color: var(--t-ink);
	display: flex;
	align-items: center;
	gap: 8px;
}
body .prime_search_area.prime-bar-redesign > h4::before {
	content: "";
	width: 10px; height: 10px;
	border-radius: 50%;
	background: var(--t-hi);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--t-hi) 25%, transparent);
}

/* field row: location pair + date pair + button */
body .prime_search_area .prime_search_input_fields_holder {
	display: flex;
	align-items: flex-end;
	gap: 14px;
	flex-wrap: wrap;
}
body .prime_search_area .prime_input_fields_holder {
	display: flex;
	flex: 1 1 560px;
	gap: 14px;
	flex-wrap: wrap;
	align-items: flex-end;
}
body .prime_search_area .prime_input_start_end_location {
	position: relative;
	display: flex;
	flex: 2 1 380px;
	gap: 10px;
	align-items: flex-end;
}
body .prime_search_area .prime_input_start_end_location > .prime_inputList { flex: 1 1 0; min-width: 0; }
body .prime_search_area .prime_input_start_end_date {
	display: flex;
	flex: 1.4 1 260px;
	gap: 10px;
}
body .prime_search_area .prime_input_start_end_date > .prime_inputList { flex: 1 1 0; min-width: 0; }

/* each field: small label above a roomy, rounded input with its icon */
body .prime_search_area .prime_inputList label,
body .prime_search_area .prime_fdColumn { display: block; width: 100%; }
body .prime_search_area .prime_inputList label > span:first-child,
body .prime_search_area .prime_fdColumn > span:first-child {
	display: block;
	margin-bottom: 6px;
	font-size: 12.5px;
	font-weight: 700;
	color: var(--t-muted);
}
body .prime_search_area .marker,
body .prime_search_area .prime_inputList .formControl:not(.marker .formControl) { position: relative; }
body .prime_search_area .formControl,
body .prime_search_area input.formControl,
body .prime_search_area select.formControl {
	width: 100%;
	height: 50px;
	padding: 0 14px;
	background: var(--t-surface);
	color: var(--t-ink);
	border: 1.5px solid var(--t-line);
	border-radius: 14px;
	font: 600 15px/1 var(--t-font);
	box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
body .prime_search_area .marker { display: flex; align-items: center; gap: 0; position: relative; }
body .prime_search_area .marker > i {
	position: absolute;
	inset-inline-start: 14px;
	z-index: 1;
	color: var(--t-accent);
	font-size: 16px;
	pointer-events: none;
}
body .prime_search_area .marker > .formControl { padding-inline-start: 42px; }
body .prime_search_area .formControl:hover { border-color: color-mix(in srgb, var(--t-accent) 45%, var(--t-line)); }
body .prime_search_area .formControl:focus,
body .prime_search_area .formControl:focus-visible {
	outline: none;
	border-color: var(--t-accent);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--t-accent) 18%, transparent);
}
body .prime_search_area .formControl::placeholder { color: #94a3b8; font-weight: 500; }

/* swap button between origin and destination */
body .prime_search_area .prime_search_location_toggle {
	flex: 0 0 44px;
	width: 44px; height: 44px;
	margin-bottom: 3px;
	display: grid;
	place-items: center;
	background: #fff;
	color: var(--t-accent);
	border: 1.5px solid var(--t-line);
	border-radius: 50%;
	box-shadow: 0 6px 14px -6px rgba(15, 23, 42, .3);
	cursor: pointer;
	transition: transform .35s cubic-bezier(.3, 1.4, .5, 1), background .2s, color .2s;
}
body .prime_search_area .prime_search_location_toggle:hover { background: var(--t-accent); color: #fff; transform: rotate(180deg); }
body .prime_search_area .prime_search_location_toggle:active { transform: rotate(180deg) scale(.92); }

/* city suggestion list: positioned/styled by the template; only anchor it to the reading side in RTL */
html[dir="rtl"] body #prime_area .prime_search_area.prime-bar-redesign ul.prime_input_select_list,
body.rtl #prime_area .prime_search_area.prime-bar-redesign ul.prime_input_select_list {
	left: auto !important;
	right: 0 !important;
}

/* search button: gradient, one soft shine sweep on hover */
body .prime_search_area .prime_search_action_button {
	position: relative;
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 150px;
	height: 50px;
	padding: 0 26px;
	border: 0;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--t-accent), var(--t-accent-dark));
	color: #fff;
	font: 800 15px/1 var(--t-font);
	box-shadow: 0 12px 24px -10px color-mix(in srgb, var(--t-accent) 70%, transparent);
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
body .prime_search_area .prime_search_action_button::after {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 40%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent);
	transform: translateX(-130%) skewX(-18deg);
	pointer-events: none;
}
body .prime_search_area .prime_search_action_button:hover { transform: translateY(-2px); filter: brightness(1.06); }
body .prime_search_area .prime_search_action_button:hover::after { animation: prime-shine .7s ease; }
body .prime_search_area .prime_search_action_button:active { transform: translateY(0) scale(.98); }
body .prime_search_area .prime_search_action_button.prime_is_loading { filter: saturate(.7); cursor: progress; }
body .prime_search_area .prime-loading-btn-spinner,
body .prime_search_result .prime-loading-btn-spinner {
	width: 16px; height: 16px;
	border: 2px solid rgba(255, 255, 255, .45);
	border-top-color: #fff;
	border-radius: 50%;
	animation: prime-spin .7s linear infinite;
}
body .prime_search_area .prime_search_button_spacer { display: none; }
body .prime_search_area .prime_taxi_search_button_holder { flex: 0 0 auto; }

/* ============ RESULTS: list header, filters ============ */
body .prime_search_result .prime-list-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 16px;
	margin-bottom: 14px;
	background: var(--t-surface);
	border: 1px solid var(--t-line);
	border-radius: 16px;
	box-shadow: 0 6px 18px -12px rgba(15, 23, 42, .25);
	animation: prime-fade .35s ease backwards;
}
body .prime_search_result .prime-list-count { font-weight: 800; color: var(--t-ink); }
body .prime_search_result .prime-list-sort select {
	height: 40px;
	padding: 0 12px;
	border: 1.5px solid var(--t-line);
	border-radius: 12px;
	background: #fff;
	font: 600 14px var(--t-font);
	color: var(--t-ink);
}
body .prime_search_result .prime-filter-card {
	background: var(--t-surface);
	border: 1px solid var(--t-line);
	border-radius: var(--t-radius);
	box-shadow: 0 10px 28px -18px rgba(15, 23, 42, .3);
	animation: prime-fade .4s ease backwards;
}
body .prime_search_result .prime-filter-header-title { font-weight: 800; color: var(--t-ink); }
body .prime_search_result .prime-filter-reset-btn { color: var(--t-accent); font-weight: 700; }

/* ============ RESULTS: ticket card (Payaneh-style) ============ */
/*
 * ┌───────────────────────────────────────────────────────────────┐
 * │  [logo]   ┌ from ○──────  13:45  ──────○ to ┐                  │
 * │  name     │       سه‌شنبه ۱۴۰۵/۰۸/۱۲           │                  │
 * │           └ کمتر از ۳۰ دقیقه به حرکت مانده ──┘                  │
 * │  (مقصد نهایی …) (VIP - شارژر - …)                               │
 * │  🪑 ۱۰ صندلی خالی      مشاهده جزئیات ⌄      ۶۲۷٬۰۰۰ تومان [انتخاب] │
 * └───────────────────────────────────────────────────────────────┘
 * The template disables animation/transition on every descendant of .prime-taxi-list with
 * !important (to keep jQuery's filter fade smooth), so the few effects here use !important
 * on a more specific selector, and only ever animate transform / opacity.
 */

body .prime_search_result {
	--tk-brand: var(--prime_card_accent, #082c86);   /* price, links, button */
	--tk-box: #f8fbfd;                               /* journey box + chips */
	--tk-rail: #e5e7eb;
	--tk-green: #14701f;
	--tk-red: #fb2c36;
}

/* The list item is only a container; the ticket draws itself (overflow visible so the
   hover shadow is not clipped). */
body .prime_search_result .prime_search_result_holder .prime-taxi-list,
body .prime_search_result .prime-taxi-list {
	margin: 0 0 16px;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	overflow: visible;
	box-shadow: none !important;
}
body .prime_search_result .prime-taxi-list.prime-sold-out { opacity: 1; }
/* prime.css makes every row a flex container (space-between, nowrap from 768px up) for the old
   card; the ticket must fill the row instead of shrinking to its content. Not !important:
   jQuery's filter fade sets display:none inline and must still win. */
body .prime_search_result .prime_taxi_list_area .prime-taxi-list,
body .prime_search_result .prime-taxi-list { display: block; }

body .prime_search_result .prime-tk {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	flex: 1 1 100%;
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 22px 24px 18px;
	background: #fff;
	border: 1px solid #edf0f4;
	border-radius: 12px;
	font-family: var(--t-font);
	color: #111318;
	text-align: start;
}
body .prime_search_result .prime-taxi-list .prime-tk {
	transition: transform .2s cubic-bezier(.2, .7, .2, 1), box-shadow .2s ease, border-color .2s ease !important;
	animation: prime-rise .4s cubic-bezier(.2, .7, .2, 1) backwards !important;
}
body .prime_search_result .prime-taxi-list:nth-of-type(2) .prime-tk { animation-delay: 40ms !important; }
body .prime_search_result .prime-taxi-list:nth-of-type(3) .prime-tk { animation-delay: 80ms !important; }
body .prime_search_result .prime-taxi-list:nth-of-type(4) .prime-tk { animation-delay: 120ms !important; }
body .prime_search_result .prime-taxi-list:nth-of-type(5) .prime-tk { animation-delay: 160ms !important; }
body .prime_search_result .prime-taxi-list:nth-of-type(6) .prime-tk { animation-delay: 200ms !important; }
body .prime_search_result .prime-taxi-list:nth-of-type(7) .prime-tk { animation-delay: 240ms !important; }
body .prime_search_result .prime-taxi-list:nth-of-type(8) .prime-tk { animation-delay: 280ms !important; }
body .prime_search_result .prime-taxi-list:nth-of-type(n+9) .prime-tk { animation: none !important; }
@media (hover: hover) {
	body .prime_search_result .prime-taxi-list .prime-tk:not(.is-soldout):hover {
		transform: translateY(-2px);
		border-color: #dde3ec;
		box-shadow: 0 14px 30px -18px rgba(8, 44, 134, .35);
	}
}
body .prime_search_result .prime-taxi-list.in_cart .prime-tk { border-color: #16a34a; box-shadow: 0 0 0 3px rgba(22, 163, 74, .12); }

/* ---- top: operator + journey box ---- */
body .prime_search_result .prime-tk-top {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	align-items: center;
	gap: 20px;
}
body .prime_search_result .prime-tk-company {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	min-width: 0;
	text-align: center;
}
body .prime_search_result .prime-tk-logo { width: 82px; height: 50px; display: grid; place-items: center; }
body .prime_search_result .prime-tk-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
body .prime_search_result .prime-tk-company .prime-operator-name {
	max-width: 100%;
	font-size: 15px;
	font-weight: 500;
	color: #111318 !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
body .prime_search_result .prime-tk-no { font-size: 11.5px; color: #6b7280; }

body .prime_search_result .prime-tk-journey {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	padding: 16px 22px;
	background: var(--tk-box);
	border-radius: 8px;
}
body .prime_search_result .prime-tk-end { flex: 0 0 auto; max-width: 30%; line-height: 1.5; }
body .prime_search_result .prime-tk-end strong {
	display: block;
	font-size: 16px;
	font-weight: 600;
	color: #111318;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
body .prime_search_result .prime-tk-mid { flex: 1 1 auto; display: flex; align-items: center; gap: 14px; min-width: 0; }
body .prime_search_result .prime-tk-rail { position: relative; flex: 1 1 0; min-width: 24px; height: 1px; background: var(--tk-rail); }
body .prime_search_result .prime-tk-rail::before {
	content: "";
	position: absolute;
	top: 50%;
	width: 9px; height: 9px;
	margin-top: -5px;
	border-radius: 50%;
	box-sizing: border-box;
}
/* origin dot (filled) at the outer start, destination dot (hollow) at the outer end */
body .prime_search_result .prime-tk-rail:first-child::before { inset-inline-start: -2px; background: #c3c8d0; border: 2px solid #eef1f5; box-shadow: 0 0 0 1px #c3c8d0; }
body .prime_search_result .prime-tk-rail:last-child::before { inset-inline-end: -2px; background: #fff; border: 1px solid #c3c8d0; }

body .prime_search_result .prime-tk-when { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; gap: 2px; text-align: center; line-height: 1.4; }
body .prime_search_result .prime-tk-time { font-size: 19px; font-weight: 700; color: #111318; font-variant-numeric: tabular-nums; }
body .prime_search_result .prime-tk-date { font-size: 12.5px; color: #4b5563; white-space: nowrap; }
body .prime_search_result .prime-tk-soon { font-size: 12px; color: var(--tk-red); white-space: nowrap; }

/* ---- chips + note ---- */
body .prime_search_result .prime-tk-chips { display: flex; flex-wrap: wrap; gap: 8px; }
body .prime_search_result .prime-tk-chip {
	display: inline-flex;
	align-items: center;
	max-width: 100%;
	padding: 7px 16px;
	background: var(--tk-box);
	border-radius: 9999px;
	font-size: 13.5px;
	color: #111318;
	line-height: 1.5;
}
body .prime_search_result .prime-tk-note { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: #374151; line-height: 1.6; }
body .prime_search_result .prime-tk-note i { margin-top: 3px; color: #6b7280; }

/* ---- bottom row: seats · details · price ---- */
body .prime_search_result .prime-tk-bottom {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 12px;
}
body .prime_search_result .prime-tk-seats {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 14px;
	color: var(--tk-green);
	white-space: nowrap;
}
body .prime_search_result .prime-tk-seats i { font-size: 15px; }
body .prime_search_result .prime-tk.is-low .prime-tk-seats { color: #c2410c; }
body .prime_search_result .prime-tk-seats.is-full { color: var(--tk-red); }

/* one "مشاهده جزئیات ⌄" link: the popup it opens already has every tab */
body .prime_search_result .prime-tk-links { justify-self: center; padding: 0; margin: 0; border: 0; min-width: 0; }
body .prime_search_result .prime-tk-links .prime_taxi_details_tabs_holder { padding: 0; margin: 0; }
body .prime_search_result .prime-tk-links .prime_taxi_details_tabs_holder::after { display: none !important; }
body .prime_search_result .prime-tk-links .prime_taxi_popup_links { display: flex; gap: 0; overflow: visible; padding: 0; }
body .prime_search_result .prime-tk-links .prime_taxi_popup_link { display: none; }
body .prime_search_result .prime-tk-links .prime_taxi_popup_link:first-child {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 10px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	font-size: 0;              /* hide the tab's own label + icon … */
	color: var(--tk-brand);
	cursor: pointer;
}
body .prime_search_result .prime-tk-links .prime_taxi_popup_link:first-child > * { display: none; }
body .prime_search_result .prime-tk-links .prime_taxi_popup_link:first-child::before { /* … and show Payaneh's wording */
	content: "مشاهده جزئیات";
	font: 500 14px/1.4 var(--t-font);
}
body .prime_search_result .prime-tk-links .prime_taxi_popup_link:first-child::after {
	content: "";
	width: 7px; height: 7px;
	margin-top: -4px;
	border-right: 1.6px solid currentColor;   /* physical sides: a ⌄ chevron in both RTL and LTR */
	border-bottom: 1.6px solid currentColor;
	transform: rotate(45deg);
}
body .prime_search_result .prime-taxi-list .prime-tk-links .prime_taxi_popup_link:first-child { transition: background .15s !important; }
body .prime_search_result .prime-tk-links .prime_taxi_popup_link:first-child:hover { background: #eef3fc; }
body .prime_search_result .prime-tk-links .prime_no_tabs .prime_taxi_popup_links { display: none; }

body .prime_search_result .prime-tk-buy { justify-self: end; display: flex; align-items: center; gap: 14px; min-width: 0; }
body .prime_search_result .prime-tk-price {
	font-size: 18px;
	font-weight: 600;
	color: var(--tk-brand);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
body .prime_search_result .prime-tk-buy .prime-seat-book { display: flex; align-items: center; gap: 8px; margin: 0; }
body .prime_search_result .prime-tk-buy .prime-tk-btn {
	min-height: 40px;
	padding: 8px 18px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: var(--tk-brand) !important;
	color: #fff !important;
	font: 600 14px/1.3 var(--t-font) !important;
	white-space: nowrap;
	cursor: pointer;
}
body .prime_search_result .prime-taxi-list .prime-tk-buy .prime-tk-btn { transition: transform .15s ease, filter .15s ease !important; }
body .prime_search_result .prime-tk-buy .prime-tk-btn:hover { filter: brightness(1.15); transform: translateY(-1px); }
body .prime_search_result .prime-tk-buy .prime-tk-btn:active { transform: none; }
body .prime_search_result .prime-tk-buy .prime-tk-btn.mActive { background: #111318 !important; }
body .prime_search_result .prime-tk-buy .prime-full-taxi-booking .prime_full_taxi_book_now { border-radius: 10px !important; font: 600 12.5px/1.3 var(--t-font) !important; white-space: nowrap; }
body .prime_search_result .prime-tk-buy .prime-route-unavailable { font-size: 13px; color: #6b7280; }

/* ---- sold out: card stays, greyed, button disabled ---- */
body .prime_search_result .prime-tk.is-soldout .prime-tk-top,
body .prime_search_result .prime-tk.is-soldout .prime-tk-chips,
body .prime_search_result .prime-tk.is-soldout .prime-tk-price { opacity: .55; }
body .prime_search_result .prime-tk.is-soldout .prime-tk-logo img { filter: grayscale(1); }
body .prime_search_result .prime-tk.is-soldout .prime-tk-btn { background: #e5e7eb !important; color: #6b7280 !important; cursor: not-allowed; }

/* ============ Tablet ============ */
@media (max-width: 1024px) {
	body .prime_search_result .prime-tk { padding: 18px; }
	body .prime_search_result .prime-tk-top { grid-template-columns: 92px minmax(0, 1fr); gap: 14px; }
	body .prime_search_result .prime-tk-journey { padding: 14px 16px; }
}

/* ============ Phones ============ */
@media (max-width: 700px) {
	body .prime_search_area.prime-bar-redesign { padding: 18px 14px 16px; border-radius: 18px; }
	body .prime_search_area .prime_input_start_end_location { flex-direction: column; align-items: stretch; flex-basis: 100%; }
	body .prime_search_area .prime_search_location_toggle { align-self: center; margin: -6px 0; transform: rotate(90deg); z-index: 2; }
	body .prime_search_area .prime_search_location_toggle:hover,
	body .prime_search_area .prime_search_location_toggle:active { transform: rotate(270deg); }
	body .prime_search_area .prime_input_start_end_date { flex-basis: 100%; }
	body .prime_search_area .prime_taxi_search_button_holder,
	body .prime_search_area .prime_search_action_button { width: 100%; }
	body .prime_search_result .prime-list-header { flex-wrap: wrap; }

	body .prime_search_result .prime-tk { padding: 14px; gap: 12px; }
	/* operator becomes a compact row above the journey box */
	body .prime_search_result .prime-tk-top { grid-template-columns: 1fr; gap: 10px; }
	body .prime_search_result .prime-tk-company { flex-direction: row; justify-content: flex-start; gap: 10px; text-align: start; }
	body .prime_search_result .prime-tk-logo { width: 52px; height: 32px; }
	body .prime_search_result .prime-tk-company .prime-operator-name { font-size: 14px; font-weight: 600; }
	body .prime_search_result .prime-tk-journey { padding: 12px; gap: 8px; }
	body .prime_search_result .prime-tk-end strong { font-size: 14px; }
	body .prime_search_result .prime-tk-mid { gap: 8px; }
	body .prime_search_result .prime-tk-rail { min-width: 14px; }
	body .prime_search_result .prime-tk-time { font-size: 18px; }
	body .prime_search_result .prime-tk-date { font-size: 11.5px; }
	body .prime_search_result .prime-tk-chip { padding: 6px 12px; font-size: 12.5px; }
	/* bottom: seats + details on one line, price + button full width below */
	body .prime_search_result .prime-tk-bottom {
		grid-template-columns: auto auto;
		grid-template-areas: "seats links" "buy buy";
		justify-content: space-between;
		row-gap: 10px;
	}
	body .prime_search_result .prime-tk-seats { grid-area: seats; font-size: 13px; }
	body .prime_search_result .prime-tk-links { grid-area: links; justify-self: end; }
	body .prime_search_result .prime-tk-buy {
		grid-area: buy;
		justify-self: stretch;
		justify-content: space-between;
		padding-top: 10px;
		border-top: 1px solid #f1f3f6;
	}
	body .prime_search_result .prime-tk-buy .prime-seat-book { flex: 0 1 auto; }
	body .prime_search_result .prime-tk-buy .prime-tk-btn { min-height: 44px; padding: 10px 22px !important; font-size: 15px !important; }
}
@media (max-width: 360px) {
	body .prime_search_result .prime-tk-buy { flex-wrap: wrap; }
	body .prime_search_result .prime-tk-buy .prime-seat-book,
	body .prime_search_result .prime-tk-buy .prime-tk-btn { width: 100%; }
}

/* ============ Reduced motion: everything static ============ */
@media (prefers-reduced-motion: reduce) {
	body .prime_search_area.prime-bar-redesign,
	body .prime_search_result .prime-list-header,
	body .prime_search_result .prime-filter-card,
	body .prime_search_result .prime-taxi-list .prime-tk { animation: none !important; }
	body .prime_search_result .prime-taxi-list .prime-tk,
	body .prime_search_result .prime-taxi-list .prime-tk-buy .prime-tk-btn,
	body .prime_search_area .prime_search_action_button,
	body .prime_search_area .prime_search_location_toggle { transition: none !important; }
	body .prime_search_result .prime-taxi-list .prime-tk:hover,
	body .prime_search_result .prime-tk-buy .prime-tk-btn:hover { transform: none; }
	body .prime_search_area .prime_search_action_button:hover::after { animation: none !important; }
}

/* =====================================================================
 * v2 — live-site fixes + dates strip + trip info + filters + search bars
 * ===================================================================== */

/* ---- card: details link always visible (base CSS hides it until hover), name may wrap ---- */
body .prime_search_result .prime-tk .prime-tk-links .prime_taxi_popup_links {
	visibility: visible !important;
	opacity: 1 !important;
	transform: none !important;
	justify-content: center;
}
body .prime_search_result .prime-tk-links { grid-column: auto; grid-row: auto; width: auto; }
body .prime_search_result .prime-tk-company .prime-operator-name {
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	line-height: 1.45;
}
body .prime_search_result .prime-tk-price .woocommerce-Price-currencySymbol,
body .prime_search_result .prime-tk-price .amount { white-space: nowrap; }

/* old "Select departure taxi" step tab + big route banner are not used any more */
body .prime_search_result .prime_taxi_tab_wrapper,
body .prime_search_result .prime_search_route_title_holder,
body .prime_search_result .prime-date-suggetion { display: none !important; }

/* ---- dates strip + trip info row ---- */
body .prime_search_result .prime-rx {
	display: flex;
	align-items: stretch;
	gap: 14px;
	margin: 0 0 16px;
	font-family: var(--t-font);
}
body .prime_search_result .prime-dates {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 8px;
	background: #fff;
	border: 1px solid #edf0f4;
	border-radius: 12px;
}
body .prime_search_result .prime-dates-track {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	gap: 8px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
body .prime_search_result .prime-dates-track::-webkit-scrollbar { display: none; }
body .prime_search_result .prime-date-item {
	flex: 0 0 calc((100% - 24px) / 4);   /* 4 visible */
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	min-height: 58px;
	padding: 8px 6px;
	margin: 0;
	background: #fff !important;
	border: 1px solid transparent !important;
	border-radius: 10px !important;
	color: #111318 !important;
	font: 500 13.5px/1.35 var(--t-font) !important;
	box-shadow: none !important;
	cursor: pointer;
	white-space: nowrap;
}
body .prime_search_result .prime-taxi-list ~ * .prime-date-item,
body .prime_search_result .prime-date-item { transition: background .15s, border-color .15s !important; }
body .prime_search_result .prime-date-item:hover { background: var(--tk-box) !important; }
body .prime_search_result .prime-date-item .prime-date-price { font-size: 12.5px; color: #4b5563; }
body .prime_search_result .prime-date-item.is-active {
	border-color: var(--tk-brand) !important;
	background: #f3f6fd !important;
}
body .prime_search_result .prime-date-item.is-active .prime-date-day,
body .prime_search_result .prime-date-item.is-active .prime-date-price { color: var(--tk-brand); font-weight: 600; }
body .prime_search_result .prime-dates-nav {
	flex: 0 0 32px;
	width: 32px; height: 32px;
	display: grid;
	place-items: center;
	padding: 0 !important;
	border: 1px solid #e5e7eb !important;
	border-radius: 50% !important;
	background: #fff !important;
	color: #374151 !important;
	font-size: 12px;
	cursor: pointer;
}
body .prime_search_result .prime-dates-nav:disabled { opacity: .35; cursor: default; }
/* chevrons: right/left icons are written for RTL; mirror for LTR sites */
html:not([dir="rtl"]) body .prime_search_result .prime-dates-nav i { transform: scaleX(-1); }

body .prime_search_result .prime-tripinfo {
	flex: 0 0 290px;
	box-sizing: border-box;
	padding: 12px 16px;
	background: #fff;
	border: 1px solid #edf0f4;
	border-radius: 12px;
	font-size: 13.5px;
}
body .prime_search_result .prime-tripinfo-title { margin-bottom: 6px; font-weight: 700; color: var(--tk-brand); }
body .prime_search_result .prime-tripinfo dl { margin: 0; }
body .prime_search_result .prime-tripinfo dl > div {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 5px 0;
	border-top: 1px solid #f1f3f6;
}
body .prime_search_result .prime-tripinfo dl > div:first-child { border-top: 0; }
body .prime_search_result .prime-tripinfo dt { color: #4b5563; display: inline-flex; align-items: center; gap: 6px; font-weight: 400; white-space: nowrap; }
body .prime_search_result .prime-tripinfo dt i { color: #9ca3af; font-size: 12px; }
body .prime_search_result .prime-tripinfo dd { margin: 0; font-weight: 600; color: #111318; text-align: end; }

/* ---- filters: cleaner card, brand colours, time-of-day as tiles ---- */
body .prime_search_result .prime-filter-card {
	padding: 16px;
	background: #fff;
	border: 1px solid #edf0f4;
	border-radius: 12px;
	box-shadow: none;
	font-family: var(--t-font);
}
body .prime_search_result .prime-filter-header { padding-bottom: 10px; margin-bottom: 6px; border-bottom: 1px solid #f1f3f6; }
body .prime_search_result .prime-filter-header-title { font-size: 16px; font-weight: 700; color: #111318; }
body .prime_search_result .prime-filter-section { padding: 10px 0; border-bottom: 1px solid #f1f3f6; }
body .prime_search_result .prime-filter-section:last-of-type { border-bottom: 0; }
body .prime_search_result .prime-filter-section-label {
	margin-bottom: 8px;
	font-size: 13.5px;
	font-weight: 600;
	color: #111318 !important;
	text-transform: none;
	letter-spacing: 0;
}
body .prime_search_result .prime-filter-cb-row {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 5px 0;
	font-size: 13.5px;
	color: #374151;
	cursor: pointer;
}
body .prime_search_result .prime-filter-cb-row input[type="checkbox"] {
	width: 17px; height: 17px;
	margin: 0;
	accent-color: var(--tk-brand);
	cursor: pointer;
}
/* departure time → 2×2 tiles */
body .prime_search_result .prime-filter-section:has(input[data-filter="prime_departure_time"]) {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
}
body .prime_search_result .prime-filter-section:has(input[data-filter="prime_departure_time"]) .prime-filter-section-label { grid-column: 1 / -1; margin-bottom: 2px; }
body .prime_search_result .prime-filter-cb-row:has(input[data-filter="prime_departure_time"]) {
	justify-content: center;
	padding: 9px 4px;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	font-size: 12.5px;
	text-align: center;
}
body .prime_search_result .prime-filter-cb-row:has(input[data-filter="prime_departure_time"]) input { position: absolute; opacity: 0; pointer-events: none; }
body .prime_search_result .prime-filter-cb-row:has(input[data-filter="prime_departure_time"]:checked) {
	border-color: var(--tk-brand);
	background: #f3f6fd;
	color: var(--tk-brand);
	font-weight: 600;
}
body .prime_search_result .prime-filter-reset-btn {
	display: inline-flex;
	padding: 6px 12px;
	border-radius: 8px;
	color: var(--tk-brand) !important;
	font-weight: 600;
	font-size: 13px;
	text-decoration: none !important;
	cursor: pointer;
}
body .prime_search_result .prime-filter-reset-btn:hover { background: #f3f6fd; }

/* collapse handle: in RTL the panel sits on the right edge, so the base rule (positioned with
   `left`, relative to a panel that shrinks to 0px) pushed the handle outside the clipped
   container once collapsed — nothing left to click. Keep it on the list side in both states. */
@media (min-width: 1100px) {
	html[dir="rtl"] body .prime_taxi_left_filter_holder .prime-mobile-filter-toggle,
	body.rtl .prime_taxi_left_filter_holder .prime-mobile-filter-toggle {
		left: -16px !important;
		right: auto !important;
		z-index: 5;
	}
	html[dir="rtl"] body .prime_taxi_left_filter_holder.prime-filter-collapsed .prime-mobile-filter-toggle,
	body.rtl .prime_taxi_left_filter_holder.prime-filter-collapsed .prime-mobile-filter-toggle {
		left: -34px !important;
	}
	html[dir="rtl"] body .prime_taxi_left_filter_holder::after,
	body.rtl .prime_taxi_left_filter_holder::after { left: auto; right: 0; }
	/* chevron points the way the panel will move */
	html[dir="rtl"] body .prime_taxi_left_filter_holder .prime-mobile-filter-caret i,
	body.rtl .prime_taxi_left_filter_holder .prime-mobile-filter-caret i { transform: scaleX(-1); }
	/* the collapsed panel's container must not clip the handle */
	body .prime_search_result .prime_search_result_holder { overflow: visible; }
}

/* ---- main search bar: calmer, cleaner ---- */
body .prime_search_area.prime-bar-redesign {
	background: #fff;
	border: 1px solid #edf0f4;
	border-radius: 16px;
	box-shadow: 0 10px 30px -20px rgba(8, 44, 134, .35);
}
body .prime_search_area.prime-bar-redesign::before { background: var(--tk-brand, #082c86); height: 3px; border-radius: 16px 16px 0 0; }
body .prime_search_area .prime_search_action_button {
	background: var(--tk-brand, #082c86) !important;
	border-radius: 12px !important;
	box-shadow: 0 10px 20px -12px rgba(8, 44, 134, .7);
}

/* ---- route pages ([prime-route]): slim one-row bar, like Payaneh's results page ---- */
body .prime-route-page .prime_search_area.prime-bar-redesign {
	padding: 8px !important;
	margin-bottom: 14px;
	background: #fff;
	border-radius: 12px;
	box-shadow: none;
}
body .prime-route-page .prime_search_area.prime-bar-redesign::before,
body .prime-route-page .prime_search_area.prime-bar-redesign > h4 { display: none; }
/* field captions are bare text nodes inside the <label>: hide them via font-size, restore children */
body .prime-route-page .prime_search_area label.prime_fdColumn { font-size: 0 !important; line-height: 0; gap: 0 !important; }
body .prime-route-page .prime_search_area label.prime_fdColumn > * { font-size: 14.5px; line-height: normal; }
body .prime-route-page .prime_search_area .prime_search_button_spacer { display: none !important; }
body .prime-route-page .prime_search_area .formControl,
body .prime-route-page .prime_search_area input.formControl {
	height: 46px;
	background: var(--tk-box, #f8fbfd);
	border-color: transparent;
	border-radius: 10px;
	font-size: 14.5px;
}
body .prime-route-page .prime_search_area .prime_search_action_button { height: 46px; min-width: 130px; border-radius: 10px !important; box-shadow: none; }
body .prime-route-page .prime_search_area .prime_search_location_toggle { width: 36px; height: 36px; flex-basis: 36px; margin-bottom: 5px; }

/* ---- responsive ---- */
@media (max-width: 900px) {
	body .prime_search_result .prime-rx { flex-direction: column; }
	body .prime_search_result .prime-tripinfo { flex-basis: auto; }
	body .prime_search_result .prime-tripinfo dl { display: flex; flex-wrap: wrap; gap: 4px 18px; }
	body .prime_search_result .prime-tripinfo dl > div { border-top: 0; padding: 2px 0; }
}
@media (max-width: 480px) {
	body .prime_search_result .prime-date-item { flex-basis: calc((100% - 16px) / 3); min-height: 54px; font-size: 12.5px !important; }
	body .prime_search_result .prime-dates-nav { flex-basis: 28px; width: 28px; height: 28px; font-size: 11px; }
	body .prime_search_result .prime-dates { padding: 6px 4px; gap: 4px; }
}


/* =====================================================================
 * v3 — mobile search button, logo box, terminals
 * ===================================================================== */

/* logo: a hard box no theme rule (img{height:auto}, max-width:none …) can push the name out of */
body .prime_search_result .prime-tk-logo {
	flex: 0 0 auto;
	overflow: hidden;
	position: relative;
}
body .prime_search_result .prime-tk-logo img {
	position: static !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: contain !important;
	transform: none !important;
	border: 0 !important;
	box-shadow: none !important;
}
body .prime_search_result .prime-tk-company .prime-operator-name { position: relative; z-index: 1; max-width: 100%; }

/* terminal under each city */
body .prime_search_result .prime-tk-terminal {
	display: block;
	margin-top: 1px;
	font-size: 12px;
	font-weight: 400;
	color: #6b7280;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
body .prime_search_result .prime-tk-end { min-width: 0; }

/* phones: the form's own CSS keeps the desktop margin-right:20px on the button holder while the
   button becomes 100% wide, so it stuck out of the card */
@media (max-width: 767px) {
	body #prime_area .prime-bar-redesign .prime_taxi_search_button_holder,
	body .prime_search_area .prime_taxi_search_button_holder {
		flex: 1 1 100% !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 10px !important;
		box-sizing: border-box !important;
	}
	body #prime_area .prime-bar-redesign .prime_taxi_search_button_holder .search_button_holder { width: 100%; }
	body #prime_area .prime-bar-redesign .prime_search_action_button,
	body .prime_search_area .prime_search_action_button {
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
		margin: 0 !important;
	}
	body .prime_search_area.prime-bar-redesign,
	body #prime_area .prime-bar-redesign .prime_search_input_fields_holder { max-width: 100%; box-sizing: border-box; }
	body .prime_search_result .prime-tk-terminal { font-size: 11px; }
	body .prime_search_result .prime-tk-end { max-width: 34%; }
}


/* logo is a background now: always the whole picture, scaled to fit, never cropped */
body .prime_search_result .prime-tk-logo {
	display: block !important;
	width: 88px;
	height: 56px;
	background-color: transparent;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: contain !important;
	overflow: visible;
}
body .prime_search_result .prime-tk-company { gap: 8px; }
body .prime_search_result .prime-tk-company .prime-operator-name { position: static; z-index: auto; }
body .prime_search_result .prime-tk.is-soldout .prime-tk-logo { filter: grayscale(1); }
@media (max-width: 700px) {
	body .prime_search_result .prime-tk-logo { width: 56px; height: 36px; }
}

/* =====================================================================
 * v4 — phones: route header + search bottom sheet (Payaneh-style)
 * ===================================================================== */
.prime-mhead,
.prime-sheet-backdrop,
.prime-sheet-head { display: none; }

@media (max-width: 767px) {
	html.prime-sheet-lock,
	html.prime-sheet-lock body { overflow: hidden; }

	/* navy header: back · "مبدأ به مقصد" + date · search */
	body .prime-mhead {
		position: relative;
		display: flex;
		align-items: center;
		gap: 10px;
		margin: 0;
		padding: 14px;
		background: radial-gradient(120% 140% at 0% 0%, rgba(255, 255, 255, .10), transparent 55%), #082c86;
		border-radius: 16px;
		color: #fff;
		font-family: var(--t-font, Vazirmatn, Tahoma, sans-serif);
		overflow: hidden;
	}
	body .prime-mhead-title { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
	body .prime-mhead-title strong {
		font-size: 16px;
		font-weight: 700;
		color: #fff;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	body .prime-mhead-title strong span { font-weight: 400; opacity: .8; margin: 0 2px; }
	body .prime-mhead-title small { font-size: 12px; color: rgba(255, 255, 255, .75); }
	body .prime-mhead-btn {
		flex: 0 0 38px;
		width: 38px; height: 38px;
		display: grid;
		place-items: center;
		padding: 0 !important;
		margin: 0;
		border: 0 !important;
		border-radius: 50% !important;
		background: #fff !important;
		color: #082c86 !important;
		font-size: 15px;
		cursor: pointer;
		box-shadow: none !important;
	}
	html:not([dir="rtl"]) body .prime-mhead-back i { transform: scaleX(-1); }

	/* the date strip rides up over the header like Payaneh's */
	/* plain spacing under the header (pulling the strip up under it got clipped by the
	   results wrapper's overflow:hidden and hid the day names) */
	body #prime_area .prime-mhead { margin-bottom: 12px !important; }
	body #prime_area .prime-mhead ~ .prime_search_result .prime-rx { position: static; margin-top: 0 !important; }
	body #prime_area .prime-mhead ~ .prime_search_result { margin-top: 0 !important; padding-top: 0 !important; }
	/* long prices ("از ۱۱٬۶۰۰٬۰۰۰ ریال") wrap instead of being cut */
	body .prime_search_result .prime-date-item { white-space: normal !important; text-align: center; }
	body .prime_search_result .prime-date-item .prime-date-price { font-size: 11px; line-height: 1.35; }
	body .prime_search_result .prime-date-item.is-active {
		border-color: transparent !important;
		background: #fff !important;
		box-shadow: inset 0 -2px 0 var(--tk-brand) !important;
		border-radius: 0 !important;
	}

	/* the form becomes a bottom sheet (hidden until the header's search button) */
	body #prime_area .prime_search_area.prime-sheetable {
		position: fixed !important;
		inset: auto 0 0 0 !important;
		z-index: 100000 !important;
		max-height: 92vh;
		overflow-y: auto;
		overscroll-behavior: contain;
		margin: 0 !important;
		padding: 6px 16px calc(16px + env(safe-area-inset-bottom, 0px)) !important;
		background: #fff !important;
		border: 0 !important;
		border-radius: 20px 20px 0 0 !important;
		box-shadow: 0 -12px 40px rgba(15, 23, 42, .28) !important;
		transform: translateY(105%);
		visibility: hidden;
		transition: transform .28s cubic-bezier(.2, .7, .2, 1), visibility 0s linear .28s !important;
		animation: none !important;
	}
	body #prime_area.prime-sheet-open .prime_search_area.prime-sheetable {
		transform: none;
		visibility: visible;
		transition: transform .28s cubic-bezier(.2, .7, .2, 1) !important;
	}
	body #prime_area .prime_search_area.prime-sheetable::before,
	body #prime_area .prime_search_area.prime-sheetable > h4 { display: none !important; }

	body .prime-sheet-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 99999;
		background: rgba(15, 23, 42, .45);
		-webkit-backdrop-filter: blur(3px);
		backdrop-filter: blur(3px);
		opacity: 0;
		pointer-events: none;
		transition: opacity .25s ease;
	}
	body #prime_area.prime-sheet-open .prime-sheet-backdrop { opacity: 1; pointer-events: auto; }

	body .prime_search_area.prime-sheetable .prime-sheet-head {
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
		height: 30px;
		margin-bottom: 6px;
	}
	body .prime-sheet-grip { width: 42px; height: 4px; border-radius: 4px; background: #d1d5db; }
	body .prime-sheet-x {
		position: absolute;
		inset-inline-end: 0;
		top: 2px;
		width: 30px; height: 30px;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 50% !important;
		background: #f3f4f6 !important;
		color: #374151 !important;
		font-size: 20px;
		line-height: 30px;
		cursor: pointer;
	}

	/* fields: pale rounded boxes, no captions (like Payaneh's sheet) */
	body #prime_area .prime_search_area.prime-sheetable .prime_search_input_fields_holder,
	body #prime_area .prime_search_area.prime-sheetable .prime_input_fields_holder,
	body #prime_area .prime_search_area.prime-sheetable .prime_input_start_end_location,
	body #prime_area .prime_search_area.prime-sheetable .prime_input_start_end_date {
		display: flex !important;
		flex-direction: column !important;
		gap: 10px !important;
		padding: 0 !important;
		margin: 0 !important;
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		width: 100% !important;
	}
	body #prime_area .prime_search_area.prime-sheetable .prime_input_fields_holder { gap: 10px !important; }
	/* the swap button is centred on the origin/destination pair, so that pair is its box */
	body #prime_area .prime_search_area.prime-sheetable .prime_input_start_end_location { position: relative !important; }
	body #prime_area .prime_search_area.prime-sheetable .prime_inputList {
		position: relative;
		padding: 5px 14px !important;
		min-height: 0 !important;
		background: #f4f7fb !important;
		border: 0 !important;
		border-radius: 12px !important;
	}
	body #prime_area .prime_search_area.prime-sheetable label.prime_fdColumn { display: block !important; font-size: 0 !important; line-height: 0; gap: 0 !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important; }
	body #prime_area .prime_search_area.prime-sheetable label.prime_fdColumn > * { font-size: 15px; line-height: normal; }
	body #prime_area .prime_search_area.prime-sheetable .formControl,
	body #prime_area .prime_search_area.prime-sheetable input.formControl {
		height: 40px !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		font-size: 15.5px !important;
		font-weight: 600;
	}
	body #prime_area .prime_search_area.prime-sheetable .prime_search_location_toggle {
		position: absolute !important;
		top: 50% !important;
		left: 14px !important;
		right: auto !important;
		transform: translateY(-50%) !important;
		width: 38px !important; height: 38px !important;
		margin: 0 !important;
		background: #fff !important;
		border: 1px solid #e5e7eb !important;
		border-radius: 50% !important;
		z-index: 3;
	}
	/* city list opens inside the sheet (pushes content down) instead of off-screen below it */
	body #prime_area .prime_search_area.prime-sheetable ul.prime_input_select_list {
		position: static !important;
		inset: auto !important;
		width: 100% !important;
		max-height: 36vh !important;
		overflow-y: auto !important;
		margin: 8px 0 0 !important;
		box-shadow: none !important;
		border: 1px solid #e5e7eb !important;
		border-radius: 12px !important;
		transform: none !important;
	}
	body #prime_area .prime_search_area.prime-sheetable .prime_taxi_search_button_holder { padding: 14px 0 0 !important; }
	body #prime_area .prime_search_area.prime-sheetable .prime_search_button_spacer { display: none !important; }
	body #prime_area .prime_search_area.prime-sheetable .prime_search_action_button {
		height: 50px !important;
		border-radius: 12px !important;
		background: #082c86 !important;
		font-size: 16px !important;
		box-shadow: none !important;
	}
}


/* =====================================================================
 * v5 — icon fonts can't be replaced by a theme's "font on everything" rule
 * Many themes force their font with `* { font-family: … !important }` (often only on phones),
 * which also replaces Font Awesome / mage-icon and turns every icon into an empty box.
 * ===================================================================== */
:is(#prime_area, .prime_style, .prime_search_result, .prime-taxi-popup, .prime_registration_area, .prime-mhead, .prime-jd) :is(.fas, .fa-solid, .fa:not(.far):not(.fab)),
:is(#prime_area, .prime_style, .prime_search_result, .prime-taxi-popup, .prime_registration_area, .prime-mhead, .prime-jd) :is(.fas, .fa-solid, .fa:not(.far):not(.fab))::before {
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free" !important;
	font-weight: 900 !important;
	font-style: normal !important;
}
:is(#prime_area, .prime_style, .prime_search_result, .prime-taxi-popup, .prime_registration_area, .prime-mhead, .prime-jd) :is(.far, .fa-regular),
:is(#prime_area, .prime_style, .prime_search_result, .prime-taxi-popup, .prime_registration_area, .prime-mhead, .prime-jd) :is(.far, .fa-regular)::before {
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free" !important;
	font-weight: 400 !important;
	font-style: normal !important;
}
:is(#prime_area, .prime_style, .prime_search_result, .prime-taxi-popup, .prime_registration_area, .prime-mhead, .prime-jd) :is(.fab, .fa-brands),
:is(#prime_area, .prime_style, .prime_search_result, .prime-taxi-popup, .prime_registration_area, .prime-mhead, .prime-jd) :is(.fab, .fa-brands)::before {
	font-family: "Font Awesome 6 Brands", "Font Awesome 5 Brands" !important;
	font-weight: 400 !important;
	font-style: normal !important;
}
:is(#prime_area, .prime_style, .prime_search_result, .prime-taxi-popup, .prime_registration_area) .mi,
:is(#prime_area, .prime_style, .prime_search_result, .prime-taxi-popup, .prime_registration_area) .mi::before {
	font-family: mageicon !important;
}

/* =====================================================================
 * v6 — phones/tablets: tighter, even spacing; closed filter panel takes no room
 * ===================================================================== */
@media (max-width: 1099px) {
	/* closed accordion must collapse to 0 — the v2 padding:16px kept ~35px of invisible height */
	body .prime_search_result .prime_taxi_left_filter_holder:not(.prime-mobile-open) .prime-filter-card {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		border-width: 0 !important;
	}
	body .prime_search_result .prime_taxi_left_filter_holder.prime-mobile-open .prime-filter-card {
		padding-top: 14px !important;
		padding-bottom: 14px !important;
	}
	body .prime_search_result .prime_taxi_left_filter_holder { margin: 0 !important; padding: 0 !important; }
	body .prime_search_result .prime_taxi_left_filter_holder .prime-mobile-filter-toggle {
		padding: 10px 14px !important;
		border-color: #edf0f4 !important;
		border-radius: 12px !important;
		box-shadow: none !important;
	}
	body .prime_search_result .prime_taxi_left_filter_holder .prime-mobile-filter-toggle-label i { color: var(--tk-brand, #082c86) !important; }
}
@media (max-width: 767px) {
	/* one rhythm: 10px between every block */
	body .prime_search_result .prime_search_result_holder { gap: 10px !important; }
	body .prime_search_result .prime-rx { gap: 10px !important; margin: 0 0 10px !important; }
	body .prime_search_result .prime-dates { padding: 4px !important; margin-inline: 0 !important; }
	body .prime_search_result .prime-date-item { min-height: 50px !important; padding: 6px 4px !important; }
	body .prime_search_result .prime-tripinfo { padding: 10px 12px !important; }
	body .prime_search_result .prime-tripinfo-title { margin-bottom: 4px !important; }
	body .prime_search_result .prime-list-header {
		margin: 0 0 10px !important;
		padding: 8px 12px !important;
		border-radius: 12px !important;
	}
	body .prime_search_result .prime-list-count { font-size: 13.5px; line-height: 1.5; }
	body .prime_search_result .prime-list-count .prime-list-count-break { display: none; }
	body .prime_search_result .prime-list-sort select { height: 36px !important; }
	body .prime_search_result .prime-taxi-list { margin: 0 0 10px !important; }
	body .prime_search_result .prime-tk { padding: 12px !important; gap: 10px !important; }
	body #prime_area .prime-mhead { margin-bottom: 10px !important; padding: 12px !important; }
	body .prime_search_result .prime-taxi-lists,
	body .prime_search_result .prime_departure_taxi_lists_holder,
	body .prime_search_result #start_taxi { padding: 0 !important; margin: 0 !important; }
}

/* =====================================================================
 * v7 — sticky route header on phones + "refresh your search" notice (all screens)
 * ===================================================================== */
.prime-mhead-fixed { display: none; }
@media (max-width: 767px) {
	/* sits right under the site's own header (--prime-top is measured by prime-route-extras.js) */
	body .prime-mhead.prime-mhead-fixed {
		display: flex;
		position: fixed;
		top: var(--prime-top, 0px);
		left: 0;
		right: 0;
		z-index: 60;   /* above the results, below the site's header / menu drawers */
		margin: 0 !important;
		padding: 14px 16px !important;
		border-radius: 0 0 18px 18px;
		box-shadow: 0 8px 24px -10px rgba(8, 44, 134, .55);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(-10px);
		transition: transform .22s cubic-bezier(.2, .7, .2, 1), opacity .22s ease, visibility 0s linear .22s;
	}
	body .prime-mhead.prime-mhead-fixed.is-shown {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
		transition: transform .22s cubic-bezier(.2, .7, .2, 1), opacity .22s ease;
	}
	body .prime-mhead.prime-mhead-fixed .prime-mhead-title strong { font-size: 17px; }
	body .prime-mhead.prime-mhead-fixed .prime-mhead-btn { width: 40px; height: 40px; flex-basis: 40px; }
}
@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
	body .prime-mhead.prime-mhead-fixed { transition: none; }
}
/* never above the site header: just enough to float the city lists over the result cards */
body .prime_search_area.prime-bar-redesign { z-index: 3; }
/* desktop filter panel sticks below the site header too */
body .prime_taxi_left_filter_holder.prime-filter-settled #prime_taxi_filter-options,
body .prime_taxi_left_filter_holder.prime-filter-settled .prime-filter-card,
body #prime_taxi_filter-options,
body .prime-filter-card { top: calc(var(--prime-top, 0px) + 20px); }

.prime-stale {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	background: rgba(15, 23, 42, .5);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
	font-family: var(--t-font, Vazirmatn, Tahoma, sans-serif);
	direction: rtl;
	animation: prime-fade .2s ease both;
}
.prime-stale-box {
	width: 100%;
	max-width: 420px;
	padding: 28px 24px 22px;
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 24px 60px -20px rgba(15, 23, 42, .5);
	text-align: center;
	color: #111318;
	animation: prime-rise .28s cubic-bezier(.2, .7, .2, 1) both;
}
.prime-stale-icon { display: block; width: 96px; height: 96px; margin: 0 auto 18px; }
.prime-stale-title { margin: 0 0 10px; font-size: 18px; font-weight: 700; color: #111318; }
.prime-stale-text { margin: 0 0 18px; font-size: 14px; line-height: 1.9; color: #374151; }
.prime-stale-home {
	display: inline-block;
	margin-bottom: 16px;
	color: #082c86 !important;
	font-size: 14.5px;
	font-weight: 500;
	text-decoration: none !important;
}
.prime-stale-home:hover { text-decoration: underline !important; }
.prime-stale-btn {
	display: block;
	width: 100%;
	height: 50px;
	border: 0;
	border-radius: 12px;
	background: #082c86;
	color: #fff;
	font: 600 15.5px/1 var(--t-font, Vazirmatn, Tahoma, sans-serif);
	cursor: pointer;
}
.prime-stale-btn:hover { filter: brightness(1.12); }
@media (prefers-reduced-motion: reduce) {
	.prime-stale, .prime-stale-box { animation: none; }
}

/* =====================================================================
 * v8 — details popup above the search bar / sticky header (moved to <body> by JS)
 * ===================================================================== */
body > .prime-taxi-popup {
	z-index: 100002 !important;
	font-family: var(--t-font, Vazirmatn, Tahoma, sans-serif);
	direction: rtl;
	overscroll-behavior: contain;
}
html.prime-popup-open,
html.prime-popup-open body { overflow: hidden !important; }
html.prime-popup-open .prime-mhead-fixed { visibility: hidden !important; opacity: 0 !important; }
@media (max-width: 767px) {
	body > .prime-taxi-popup .prime-taxi-popup-inner {
		position: absolute !important;
		inset: auto 0 0 0 !important;
		margin: 0 !important;
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		max-height: 88vh !important;
		padding: 44px 14px calc(16px + env(safe-area-inset-bottom, 0px)) !important;
		background: #fff;
		border-radius: 18px 18px 0 0 !important;
	}
	body > .prime-taxi-popup .prime-popup-close {
		position: absolute !important;
		top: 8px !important;
		left: 10px !important;
		right: auto !important;
		width: 32px; height: 32px;
		display: flex !important; align-items: center; justify-content: center;
		font-size: 24px; line-height: 1;
		border-radius: 50%;
		background: #f1f5f9;
	}
}

/* =====================================================================
 * v9 — seat step (Payaneh / Safar724 style)
 *   .prime-sp            grid: vehicle on the start side, details on the other
 *   .prime-sp-map        "انتخاب صندلی": vehicle body with windshield + wheel, seats, legend
 *   .prime-sp-side       picked-seat chips, extra services, passenger fields, payment box
 * Seat shape = cushion (::before) + backrest (::after) drawn on .seat_visual.
 * ===================================================================== */
.prime-sp {
	--sp-brand: var(--tk-brand, #082c86);
	--sp-ink: #0f172a;
	--sp-muted: #64748b;
	--sp-line: #e2e8f0;
	--sp-free-bg: #ffffff;
	--sp-free-bd: #94a3b8;
	--sp-sel-bg: #16a34a;
	--sp-sel-bd: #15803d;
	--sp-sold-bg: #e2e8f0;
	--sp-sold-bd: #cbd5e1;
	--sp-cart-bg: #fde68a;
	--sp-cart-bd: #f59e0b;
	display: grid !important;
	grid-template-columns: minmax(280px, 380px) minmax(0, 1fr);
	gap: 20px;
	align-items: start;
	font-family: var(--t-font, inherit);
	color: var(--sp-ink);
	text-align: right;
}
.prime-sp > * { min-width: 0; }
.prime_registration_area:has(.prime-sp) { background: transparent !important; padding: 14px 0 0 !important; border: 0 !important; }

/* headings of both columns */
.prime-sp .prime-sp-head { display: flex; flex-direction: column; gap: 3px; margin: 0 0 14px; }
.prime-sp .prime-sp-title { font-size: 16px; font-weight: 800; color: var(--sp-ink); line-height: 1.5; }
.prime-sp .prime-sp-hint { font-size: 12.5px; color: var(--sp-muted); line-height: 1.7; }

/* ---------- map column ---------- */
.prime-sp .prime-sp-map {
	background: #fff;
	border: 1px solid var(--sp-line);
	border-radius: 18px;
	padding: 18px 16px 16px;
	box-shadow: 0 10px 30px -22px rgba(8, 44, 134, .45);
	position: sticky;
	top: calc(var(--prime-top, 0px) + 16px);
}
.prime-sp .prime-sp-map ._dLayout_xs { padding: 0 !important; margin: 0 !important; border: 0 !important; box-shadow: none !important; background: none !important; }
.prime-sp .prime_seat_plan_area {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: none !important;
	overflow: visible !important;
}

/* the vehicle: rounded nose on top, windshield, light floor */
.prime-sp .prime_seat_plan_lower,
.prime-sp .prime_seat_plan_upper,
.prime-sp .prime_cabin_seat_plan .prime_deck_pane {
	position: relative;
	display: inline-block !important;
	max-width: 100%;
	overflow-x: auto !important;
	overflow-y: visible !important;
	margin: 0 auto !important;
	padding: 34px 18px 20px !important;
	background: linear-gradient(180deg, #f1f5fb 0, #f8fafc 70px) !important;
	border: 2px solid #cfd8e6 !important;
	border-radius: 64px 64px 26px 26px !important;
	box-shadow: inset 0 0 0 6px #fff, 0 12px 26px -18px rgba(15, 23, 42, .35) !important;
	box-sizing: border-box;
}
.prime-sp .prime_seat_plan_lower::before,
.prime-sp .prime_seat_plan_upper::before {
	content: "";
	position: absolute;
	top: 12px;
	left: 22%;
	right: 22%;
	height: 12px;
	border-radius: 14px 14px 4px 4px;
	background: linear-gradient(180deg, #c7d7f0, #e3ecf9);
	pointer-events: none;
}
.prime-sp .prime_seat_plan_area table {
	border-collapse: separate !important;
	border-spacing: 10px 12px !important;
	margin: 0 auto !important;
	width: auto !important;
	border: 0 !important;
	background: none !important;
	table-layout: auto !important;
}
.prime-sp .prime_seat_plan_area table tr,
.prime-sp .prime_seat_plan_area table th,
.prime-sp .prime_seat_plan_area table td {
	border: 0 !important;
	background: none !important;
	padding: 0 !important;
	box-shadow: none !important;
	vertical-align: middle;
	text-align: center;
}
.prime-sp .prime_seat_plan_area table td:empty { width: 46px; }
.prime-sp .prime_seat_plan_area table td.prime_aisle_blank { width: 22px !important; }

/* driver row */
.prime-sp .prime_seat_plan_area thead th {
	position: relative;
	padding: 0 0 6px !important;
	border-bottom: 1px dashed #cfd8e6 !important;
}
.prime-sp .prime-veh-front {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-size: 10.5px;
	font-weight: 600;
	color: #94a3b8;
	white-space: nowrap;
}
.prime-sp .mp_driver_image {
	float: none !important;
	width: 46px !important;
	height: 46px !important;
	margin: 0 auto 0 0 !important;   /* driver on the left (Iran) */
	display: flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #fff;
	border: 1px solid #e2e8f0;
}
.prime-sp .mp_driver_image.fRight { margin: 0 0 0 auto !important; }
.prime-sp .mp_driver_image > * { width: 30px !important; height: 30px !important; background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; opacity: .75; }

/* ---------- seats ---------- */
.prime-sp .mp_seat_item { position: relative; width: 46px !important; height: 50px !important; margin: 0 auto !important; padding: 0 !important; }
.prime-sp .mp_seat_item .mp_seat {
	position: relative !important;
	display: block !important;
	width: 46px !important;
	height: 50px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: transform .12s ease !important;
}
.prime-sp .mp_seat .seat_visual {
	position: absolute !important;
	inset: 0 !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
	--seat-bg: var(--sp-free-bg);
	--seat-bd: var(--sp-free-bd);
}
/* cushion */
.prime-sp .mp_seat .seat_visual::before {
	content: "";
	position: absolute;
	top: 0;
	left: 5px;
	right: 5px;
	bottom: 11px;
	border-radius: 12px 12px 7px 7px;
	background: var(--seat-bg);
	border: 1.5px solid var(--seat-bd);
	box-sizing: border-box;
	transition: background-color .15s ease, border-color .15s ease !important;
}
/* backrest */
.prime-sp .mp_seat .seat_visual::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 14px;
	border-radius: 6px 6px 9px 9px;
	background: var(--seat-bg);
	border: 1.5px solid var(--seat-bd);
	box-sizing: border-box;
	transition: background-color .15s ease, border-color .15s ease !important;
}
.prime-sp .mp_seat .seat_number {
	position: absolute !important;
	top: 0 !important;
	left: 5px !important;
	right: 5px !important;
	bottom: 11px !important;
	z-index: 1;
	display: flex !important;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	color: #334155 !important;
	background: none !important;
	pointer-events: none;
}
/* states */
.prime-sp .mp_seat.seat_available:hover .seat_visual { --seat-bd: var(--sp-brand); --seat-bg: #eef3fc; }
.prime-sp .mp_seat.seat_available:active { transform: scale(.94); }
.prime-sp .mp_seat.seat_available.seat_selected .seat_visual { --seat-bg: var(--sp-sel-bg); --seat-bd: var(--sp-sel-bd); }
.prime-sp .mp_seat.seat_available.seat_selected .seat_number { color: #fff !important; font-size: 0 !important; }
.prime-sp .mp_seat.seat_available.seat_selected .seat_number::before {
	content: "";
	width: 16px;
	height: 9px;
	margin-top: -4px;
	border: solid #fff;
	border-width: 0 0 3px 3px;
	transform: rotate(-45deg);
}
.prime-sp .mp_seat.seat_booked { cursor: not-allowed; }
.prime-sp .mp_seat.seat_booked .seat_visual { --seat-bg: var(--sp-sold-bg); --seat-bd: var(--sp-sold-bd); }
.prime-sp .mp_seat.seat_booked .seat_number { color: #94a3b8 !important; text-decoration: line-through; }
.prime-sp .mp_seat.seat_in_cart { cursor: not-allowed; }
.prime-sp .mp_seat.seat_in_cart .seat_visual { --seat-bg: var(--sp-cart-bg); --seat-bd: var(--sp-cart-bd); }
.prime-sp .mp_seat.seat_in_cart .seat_number { color: #92400e !important; }
.prime-sp .mp_seat.seat_available:focus-visible { outline: 2px solid var(--sp-brand); outline-offset: 3px; border-radius: 10px !important; }

/* ticket-type picker that pops over a seat (only when the taxi sells several types) */
.prime-sp .mp_seat_item .prime_seat_item_list { z-index: 30 !important; border-radius: 12px !important; box-shadow: 0 14px 34px -12px rgba(15, 23, 42, .4) !important; }

/* deck / cabin tabs */
.prime-sp .prime_cabin_deck_tabs { display: flex; gap: 6px; justify-content: center; margin: 0 0 12px; }
.prime-sp .prime_cabin_deck_tab { border-radius: 999px !important; padding: 6px 14px !important; font-family: inherit !important; }

/* legend */
.prime-sp .prime_seat_legend {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 14px !important;
	margin: 16px 0 0 !important;
	padding: 12px 0 0 !important;
	border: 0 !important;
	border-top: 1px solid #eef1f5 !important;
	background: none !important;
}
.prime-sp .prime_seat_legend_item { display: inline-flex !important; align-items: center; gap: 6px; font-size: 12px !important; color: var(--sp-muted) !important; margin: 0 !important; }
.prime-sp .prime_seat_legend_swatch {
	display: inline-block !important;
	width: 16px !important;
	height: 17px !important;
	border-radius: 5px 5px 4px 4px !important;
	border: 1.5px solid var(--sp-free-bd) !important;
	background: var(--sp-free-bg) !important;
	box-shadow: inset 0 -4px 0 rgba(15, 23, 42, .08) !important;
	box-sizing: border-box;
}
.prime-sp .prime_seat_legend_swatch.is_selected { background: var(--sp-sel-bg) !important; border-color: var(--sp-sel-bd) !important; }
.prime-sp .prime_seat_legend_swatch.is_booked { background: var(--sp-sold-bg) !important; border-color: var(--sp-sold-bd) !important; }
.prime-sp .prime_seat_legend_swatch.is_in_cart { background: var(--sp-cart-bg) !important; border-color: var(--sp-cart-bd) !important; }
.prime-sp .prime_seat_legend_cart { display: none !important; }
.prime-sp:has(.seat_in_cart) .prime_seat_legend_cart { display: inline-flex !important; }

/* ---------- side column ---------- */
.prime-sp .prime-sp-side { display: flex; flex-direction: column; gap: 14px; }
.prime-sp .prime-sp-side > * { margin: 0 !important; }
.prime-sp .prime-sp-picked,
.prime-sp .prime-sp-side .prime_ex_service_area,
.prime-sp .prime-sp-side .prime_location_points_card,
.prime-sp .prime-sp-side .prime_attendee_area,
.prime-sp .prime-sp-side .prime_taxi_fields_area,
.prime-sp .prime-sp-side .prime_booking_summary_preview {
	background: #fff !important;
	border: 1px solid var(--sp-line) !important;
	border-radius: 18px !important;
	box-shadow: 0 10px 30px -24px rgba(8, 44, 134, .45) !important;
	padding: 16px !important;
	box-sizing: border-box;
}
.prime-sp .prime-sp-side .prime_attendee_area:has(.prime_taxi_fields_area) { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }

/* picked seats → chips (the real, live list the price code reads; shown again here) */
.prime-sp .prime-sp-picked .prime-sp-head { margin-bottom: 10px; }
.prime-sp .prime-sp-empty { margin: 0 !important; font-size: 13px; color: var(--sp-muted); }
.prime-sp .prime-sp-picked:has(.prime_item_insert .prime_remove_area) .prime-sp-empty { display: none; }
.prime-sp .prime-sp-picked .prime_selected_seat_details {
	display: block !important;
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: visible !important;
}
.prime-sp .prime-sp-picked .prime_selected_seat_details table { border: 0 !important; background: none !important; }
.prime-sp .prime-sp-picked .prime_selected_seat_details tbody.prime_item_insert { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 8px !important; }
.prime-sp .prime-sp-picked .prime_selected_seat_details tbody.prime_item_insert:empty { display: none !important; }
.prime-sp .prime-sp-picked tr.prime_remove_area {
	display: inline-flex !important;
	align-items: center;
	gap: 8px !important;
	padding: 6px 12px 6px 6px !important;
	background: #f0fdf4 !important;
	border: 1px solid #bbf7d0 !important;
	border-radius: 999px !important;
	animation: prime-chip-in .18s ease-out both;
}
@keyframes prime-chip-in { from { opacity: 0; transform: scale(.9); } to { opacity: 1; transform: none; } }
.prime-sp .prime-sp-picked tr.prime_remove_area td { display: block; border: 0 !important; padding: 0 !important; background: none !important; font-size: 13px; }
.prime-sp .prime-sp-picked td.insert_seat_label { display: none !important; }
.prime-sp .prime-sp-picked td.insert_seat_name { font-weight: 800 !important; color: #166534 !important; }
.prime-sp .prime-sp-picked td.insert_seat_name::before { content: "صندلی "; font-weight: 600; }
.prime-sp .prime-sp-picked td.insert_seat_price { font-weight: 600 !important; color: #334155 !important; font-size: 12.5px !important; }
.prime-sp .prime-sp-picked .prime_item_remove {
	width: 24px !important;
	height: 24px !important;
	min-width: 0 !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 50% !important;
	border: 0 !important;
	background: #fff !important;
	color: #dc2626 !important;
	box-shadow: 0 0 0 1px #fecaca !important;
	font-size: 11px !important;
	cursor: pointer;
}
.prime-sp .prime-sp-picked .prime_item_remove:hover { background: #fee2e2 !important; }

/* payment box */
.prime-sp .prime_booking_summary_preview { position: relative; }
.prime-sp .prime_booking_summary_title { font-size: 16px !important; font-weight: 800 !important; margin: 0 0 4px !important; padding: 0 !important; background: none !important; border: 0 !important; color: var(--sp-ink) !important; }
.prime-sp .prime_booking_summary_route { font-size: 13px !important; color: var(--sp-muted) !important; margin: 0 0 12px !important; padding: 0 !important; background: none !important; border: 0 !important; }
.prime-sp .prime_booking_summary_card { border: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; margin: 0 !important; }
.prime-sp .prime_booking_summary_table { display: none !important; }   /* same list as the chips above */
.prime-sp .prime_booking_summary_subtotal,
.prime-sp .prime_summary_preview_service_row,
.prime-sp .prime_summary_services_subtotal {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 8px 0 !important;
	border: 0 !important;
	border-bottom: 1px dashed #e5e7eb !important;
	font-size: 13.5px !important;
	color: #475569 !important;
}
.prime-sp .prime_booking_summary_subtotal span:last-child,
.prime-sp .prime_summary_preview_service_row span:last-child { font-size: 14px !important; font-weight: 700 !important; color: var(--sp-ink) !important; }
.prime-sp .prime_booking_summary_total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 10px 0 0 !important;
	padding: 12px 14px !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: #f1f5fb !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: var(--sp-ink) !important;
}
.prime-sp .prime_summary_preview_total { font-size: 18px !important; font-weight: 800 !important; color: var(--sp-brand) !important; }
.prime-sp .prime_summary_preview_book_now {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100% !important;
	min-height: 50px;
	margin: 14px 0 0 !important;
	padding: 12px 18px !important;
	border: 0 !important;
	border-radius: 14px !important;
	background: var(--sp-brand) !important;
	color: #fff !important;
	font-family: inherit !important;
	font-size: 16px !important;
	font-weight: 800 !important;
	cursor: pointer;
	box-shadow: 0 12px 24px -14px var(--sp-brand) !important;
	transition: filter .15s ease, transform .1s ease !important;
}
.prime-sp .prime_summary_preview_book_now:hover { filter: brightness(1.1); }
.prime-sp .prime_summary_preview_book_now:active { transform: scale(.985); }
.prime-sp .prime_summary_preview_book_now:disabled { background: #cbd5e1 !important; box-shadow: none !important; cursor: not-allowed; filter: none; }
.prime-sp .prime_booking_summary_note { display: none !important; }   /* the cancellation policy is set per site, not promised here */
.prime-sp .prime_hold_badge { margin: 12px 0 0 !important; border-radius: 12px !important; font-size: 12.5px !important; }

/* ---------- tablets & phones ---------- */
@media (max-width: 860px) {
	.prime-sp { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.prime-sp .prime-sp-map { position: static; padding: 16px 12px 14px; }
}
@media (max-width: 767px) {
	.prime_registration_area:has(.prime-sp) { padding: 10px 0 0 !important; }
	.prime-sp .prime-sp-title { font-size: 15px; }
}
@media (max-width: 380px) {
	.prime-sp .prime_seat_plan_area table { border-spacing: 7px 10px !important; }
	.prime-sp .prime_seat_plan_lower, .prime-sp .prime_seat_plan_upper { padding: 32px 12px 18px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.prime-sp .prime-sp-picked tr.prime_remove_area { animation: none; }
}

/* =====================================================================
 * v10 — booking wizard: one step at a time (seat → passengers → confirm & pay)
 *   [data-prime-wizard]  .prime-wz-top (back + stepper) | .prime-wz-main (panes)
 *                       .prime-wz-side (trip + invoice) | .prime-wz-action (main button)
 * ===================================================================== */
.prime-sp.prime-wz {
	grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
	grid-template-areas:
		"top    top"
		"main   side"
		"main   action";
	grid-template-rows: auto auto 1fr;
	gap: 16px 20px;
}
.prime_registration_area:has(.prime-wz),
.prime_registration_area:has(.prime-wz) > form,
.prime-sp.prime-wz { width: 100% !important; max-width: 100% !important; box-sizing: border-box; }
.prime-wz .prime-wz-top { grid-area: top; display: flex; align-items: center; gap: 12px; }
.prime-wz .prime-wz-main { grid-area: main; min-width: 0; }
.prime-wz .prime-wz-side { grid-area: side; min-width: 0; }
.prime-wz .prime-wz-action { grid-area: action; align-self: start; }
.prime-wz [hidden] { display: none !important; }
.prime-wz .prime-sp-map { position: static; }

/* back + stepper */
.prime-wz .prime-wz-back {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; gap: 6px;
	padding: 8px 12px !important;
	border: 1px solid var(--sp-line) !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: var(--sp-ink) !important;
	font: 600 13px/1 var(--t-font, inherit) !important;
	cursor: pointer;
}
.prime-wz .prime-wz-back:hover { border-color: var(--sp-brand) !important; color: var(--sp-brand) !important; }
.prime-wz .prime-wz-steps {
	flex: 1 1 auto;
	display: flex;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	counter-reset: wz;
}
.prime-wz .prime-wz-step {
	position: relative;
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	font-size: 13px;
	color: #94a3b8;
	text-align: center;
}
.prime-wz .prime-wz-step::before { /* connector to the previous step (RTL: to the right) */
	content: "";
	position: absolute;
	top: 11px;
	left: 50%;              /* RTL: runs from this dot to the previous step's dot on the right */
	width: 100%;
	height: 2px;
	background: #e2e8f0;
	z-index: 0;
}
.prime-wz .prime-wz-step:first-child::before { display: none; }
.prime-wz .prime-wz-step.is-done::before,
.prime-wz .prime-wz-step.is-current::before { background: var(--sp-brand); }
.prime-wz .prime-wz-dot {
	position: relative;
	z-index: 1;
	width: 24px; height: 24px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid #cbd5e1;
	box-sizing: border-box;
	display: flex; align-items: center; justify-content: center;
}
.prime-wz .prime-wz-dot::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #cbd5e1; }
.prime-wz .prime-wz-step.is-current { color: var(--sp-brand); font-weight: 700; }
.prime-wz .prime-wz-step.is-current .prime-wz-dot { border-color: var(--sp-brand); box-shadow: 0 0 0 4px rgba(8, 44, 134, .12); }
.prime-wz .prime-wz-step.is-current .prime-wz-dot::after { width: 10px; height: 10px; background: var(--sp-brand); }
.prime-wz .prime-wz-step.is-done { color: var(--sp-ink); cursor: pointer; }
.prime-wz .prime-wz-step.is-done .prime-wz-dot { background: var(--sp-brand); border-color: var(--sp-brand); }
.prime-wz .prime-wz-step.is-done .prime-wz-dot::after { width: 9px; height: 5px; border-radius: 0; background: none; border: solid #fff; border-width: 0 0 2px 2px; transform: translateY(-1px) rotate(-45deg); }

/* panes */
.prime-wz .prime-wz-pane.is-active { animation: prime-wz-in .22s ease-out both; }
.prime-wz [data-pane="info"] .prime_taxi_fields_area h3 { font-size: 15px !important; font-weight: 800 !important; margin: 0 0 12px !important; color: var(--sp-ink) !important; }
.prime-wz [data-pane="info"] .prime_tf_item { margin: 0 0 12px !important; }
.prime-wz [data-pane="info"] .prime_tf_item > label { display: block; margin: 0 0 6px !important; font-size: 13px !important; font-weight: 600 !important; color: #334155 !important; }
.prime-wz [data-pane="info"] .formControl {
	width: 100% !important;
	min-height: 44px;
	padding: 8px 12px !important;
	border: 1px solid #cbd5e1 !important;
	border-radius: 12px !important;
	background: #fff !important;
	font: 500 14px/1.6 var(--t-font, inherit) !important;
	box-sizing: border-box;
}
.prime-wz [data-pane="info"] .formControl:focus { outline: none; border-color: var(--sp-brand) !important; box-shadow: 0 0 0 3px rgba(8, 44, 134, .12) !important; }
@keyframes prime-wz-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.prime-wz .prime-wz-card {
	background: #fff;
	border: 1px solid var(--sp-line);
	border-radius: 18px;
	padding: 18px 16px;
	box-shadow: 0 10px 30px -22px rgba(8, 44, 134, .45);
}
.prime-wz .prime-wz-card > * + * { margin-top: 14px !important; }
.prime-wz .prime-wz-card .prime-sp-head { margin-bottom: 4px; }
.prime-wz [data-pane="info"] .prime_ex_service_area,
.prime-wz [data-pane="info"] .prime_location_points_card,
.prime-wz [data-pane="info"] .prime_taxi_fields_area {
	background: #f8fafc !important;
	border: 1px solid #eef1f5 !important;
	border-radius: 14px !important;
	box-shadow: none !important;
	padding: 14px !important;
	margin: 12px 0 0 !important;
}
.prime-wz [data-pane="info"] .prime_attendee_area { display: block !important; }
.prime-wz .prime-wz-error {
	margin: 0 !important;
	padding: 10px 12px;
	border-radius: 12px;
	background: #fef2f2;
	color: #b91c1c;
	font-size: 13px;
}
.prime-wz .prime_input_error { border-color: #ef4444 !important; box-shadow: 0 0 0 3px rgba(239, 68, 68, .12) !important; }
.prime-wz .prime-wz-invalid { color: #b91c1c !important; }

/* review + coupon (last step) */
.prime-wz .prime-wz-review { display: flex; flex-direction: column; gap: 0; border: 1px solid #eef1f5; border-radius: 14px; overflow: hidden; }
.prime-wz .prime-wz-review-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 14px; font-size: 13.5px; }
.prime-wz .prime-wz-review-row + .prime-wz-review-row { border-top: 1px solid #eef1f5; }
.prime-wz .prime-wz-review-row span { color: var(--sp-muted); }
.prime-wz .prime-wz-review-row b { font-weight: 700; color: var(--sp-ink); text-align: left; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.prime-wz .prime-wz-seat-pill { font-style: normal; padding: 3px 10px; border-radius: 999px; background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; font-size: 12.5px; }
.prime-wz .prime-wz-coupon { padding: 14px; border: 1px dashed #c7d2fe; border-radius: 14px; background: #f8faff; }
.prime-wz .prime-wz-coupon-label { display: block; margin: 0 0 8px; font-size: 13.5px; font-weight: 700; color: var(--sp-ink); }
.prime-wz .prime-wz-coupon-row { display: flex; gap: 8px; }
.prime-wz .prime-wz-coupon-input {
	flex: 1 1 auto; min-width: 0;
	height: 44px !important;
	padding: 0 12px !important;
	border: 1px solid #cbd5e1 !important;
	border-radius: 12px !important;
	background: #fff !important;
	font: 600 14px/1 var(--t-font, inherit) !important;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-align: left;
}
.prime-wz .prime-wz-coupon-input::placeholder { text-transform: none; letter-spacing: 0; text-align: right; font-weight: 400; }
.prime-wz .prime-wz-coupon-input:focus { outline: none; border-color: var(--sp-brand) !important; box-shadow: 0 0 0 3px rgba(8, 44, 134, .12) !important; }
.prime-wz .prime-wz-coupon-apply {
	flex: 0 0 auto;
	height: 44px;
	padding: 0 18px !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: var(--sp-ink) !important;
	color: #fff !important;
	font: 700 14px/1 var(--t-font, inherit) !important;
	cursor: pointer;
}
.prime-wz .prime-wz-coupon-apply.is-loading { opacity: .6; cursor: progress; }
.prime-wz .prime-wz-coupon-applied { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 12px; background: #ecfdf5; color: #065f46; font-size: 13.5px; }
.prime-wz .prime-wz-coupon-remove { border: 0 !important; background: none !important; color: #b91c1c !important; font: 700 13px var(--t-font, inherit) !important; cursor: pointer; padding: 0 !important; }
.prime-wz .prime-wz-coupon-msg { margin: 8px 0 0 !important; padding: 0 !important; font-size: 12.5px !important; line-height: 1.7 !important; color: #b91c1c !important; }
.prime-wz .prime-wz-coupon-msg.is-ok { color: #047857 !important; }

/* side: trip card + invoice */
.prime-wz .prime-wz-trip {
	background: #fff;
	border: 1px solid var(--sp-line);
	border-radius: 18px;
	padding: 16px;
	box-shadow: 0 10px 30px -22px rgba(8, 44, 134, .45);
}
.prime-wz .prime-wz-trip > * + * { border-top: 1px solid #eef1f5; padding-top: 14px; margin-top: 14px; }
.prime-wz .prime-wz-company { font-size: 15px; font-weight: 800; color: var(--sp-ink); }
.prime-wz .prime-wz-when { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; font-size: 12.5px; color: var(--sp-muted); }
.prime-wz .prime-wz-when b { color: var(--sp-ink); font-weight: 800; font-size: 13.5px; }
.prime-wz .prime-wz-route { display: flex; align-items: flex-start; gap: 10px; }
.prime-wz .prime-wz-city { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 0 1 auto; }
.prime-wz .prime-wz-city b { font-size: 16px; font-weight: 800; color: var(--sp-ink); }
.prime-wz .prime-wz-city small { font-size: 11.5px; color: var(--sp-muted); line-height: 1.6; }
.prime-wz .prime-wz-city.is-to { text-align: left; margin-inline-start: auto; }
.prime-wz .prime-wz-route-line { flex: 1 1 40px; min-width: 30px; height: 2px; margin-top: 12px; background: repeating-linear-gradient(to left, #cbd5e1 0 6px, transparent 6px 10px); position: relative; }
.prime-wz .prime-wz-route-line::before,
.prime-wz .prime-wz-route-line::after { content: ""; position: absolute; top: -3px; width: 8px; height: 8px; border-radius: 50%; }
.prime-wz .prime-wz-route-line::before { right: -2px; background: var(--sp-brand); }
.prime-wz .prime-wz-route-line::after { left: -2px; background: #fff; border: 2px solid var(--sp-brand); box-sizing: border-box; }
.prime-wz .prime-wz-rules summary { cursor: pointer; font-size: 13.5px; font-weight: 700; color: var(--sp-ink); list-style: none; display: flex; justify-content: space-between; align-items: center; }
.prime-wz .prime-wz-rules summary::-webkit-details-marker { display: none; }
.prime-wz .prime-wz-rules summary::after { content: ""; width: 8px; height: 8px; border: solid #64748b; border-width: 0 0 2px 2px; transform: rotate(-45deg); transition: transform .15s; }
.prime-wz .prime-wz-rules[open] summary::after { transform: rotate(135deg); }
.prime-wz .prime-wz-rule { margin-top: 10px; font-size: 12.5px; line-height: 1.9; color: #475569; }
.prime-wz .prime-wz-rule b { display: block; color: var(--sp-ink); }
.prime-wz .prime-wz-invoice { display: flex; flex-direction: column; gap: 10px; }
.prime-wz .prime-wz-invoice-title { font-size: 15px; font-weight: 800; color: var(--sp-ink); }
.prime-wz .prime-wz-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 13.5px; color: #475569; }
.prime-wz .prime-wz-row > span:last-child { color: var(--sp-ink); font-weight: 700; }
.prime-wz .prime-wz-discount > span:last-child { color: #047857; }
.prime-wz .prime-wz-payable { padding-top: 10px; border-top: 1px dashed #e2e8f0; }
.prime-wz .prime-wz-payable small { color: var(--sp-muted); }
.prime-wz .prime-wz-payable-amount { color: var(--sp-brand); font-size: 17px; font-weight: 800; }
.prime-wz:not(.has-seats) .prime-wz-payable-amount { font-size: 14px; }
/* the plugin's own summary card lives in the invoice: keep its subtotal / service lines and
   the seat-hold timer, drop what the invoice already shows */
.prime-wz .prime-wz-invoice .prime_booking_summary_preview { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }
.prime-wz .prime-wz-invoice .prime_booking_summary_title,
.prime-wz .prime-wz-invoice .prime_booking_summary_route,
.prime-wz .prime-wz-invoice .prime_booking_summary_total,
.prime-wz .prime-wz-invoice .prime_summary_preview_book_now,
.prime-wz .prime-wz-invoice .prime_booking_summary_note { display: none !important; }
.prime-wz:not(.has-seats) .prime-wz-invoice .prime_booking_summary_card { display: none !important; }
.prime-wz .prime-wz-invoice .prime_booking_summary_subtotal { border-bottom: 0 !important; padding: 0 !important; }
.prime-wz .prime-wz-invoice .prime-sp-picked { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
.prime-wz .prime-wz-invoice .prime-sp-empty { font-size: 12.5px; }
.prime-wz .prime-wz-invoice .prime-sp-picked tr.prime_remove_area { padding: 4px 10px 4px 4px !important; }
.prime-wz .prime-wz-invoice .prime-sp-picked td.insert_seat_price { display: none !important; }

/* main button */
.prime-wz .prime-wz-action { display: flex; align-items: center; gap: 12px; }
.prime-wz .prime-wz-action-sum { display: none; }
.prime-wz .prime-wz-next {
	flex: 1 1 auto;
	min-height: 52px;
	padding: 12px 18px !important;
	border: 0 !important;
	border-radius: 14px !important;
	background: var(--sp-brand) !important;
	color: #fff !important;
	font: 800 16px/1.2 var(--t-font, inherit) !important;
	cursor: pointer;
	box-shadow: 0 14px 26px -16px var(--sp-brand) !important;
	transition: filter .15s ease, transform .1s ease !important;
}
.prime-wz .prime-wz-next:hover:not(:disabled) { filter: brightness(1.12); }
.prime-wz .prime-wz-next:active:not(:disabled) { transform: scale(.985); }
.prime-wz .prime-wz-next:disabled { background: #93a7cf !important; box-shadow: none !important; cursor: not-allowed; }
.prime-wz .prime-wz-next.is-loading { cursor: progress; background: var(--sp-brand) !important; opacity: .75; }
.prime-wz > .prime_form_submit_area { display: none !important; }

/* tablets & phones: one column, the button bar sticks to the bottom of the screen */
@media (max-width: 991px) {
	.prime-sp.prime-wz {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "top" "main" "side" "action";
		grid-template-rows: none;
		gap: 12px;
	}
	.prime-wz .prime-wz-action {
		position: sticky;
		bottom: 0;
		z-index: 6;
		margin: 0;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
		border-radius: 16px 16px 0 0;
		background: rgba(255, 255, 255, .96);
		-webkit-backdrop-filter: blur(6px);
		backdrop-filter: blur(6px);
		border-top: 1px solid #e2e8f0;
		box-shadow: 0 -10px 24px -18px rgba(15, 23, 42, .5);
	}
	.prime-wz .prime-wz-action-sum { display: flex; flex-direction: column; gap: 2px; flex: 0 0 auto; }
	.prime-wz .prime-wz-action-sum small { font-size: 11px; color: var(--sp-muted); }
	.prime-wz .prime-wz-action-sum b { font-size: 15px; font-weight: 800; color: var(--sp-brand); white-space: nowrap; }
	.prime-wz .prime-wz-next { min-height: 48px; font-size: 15px !important; }
}
@media (max-width: 600px) {
	.prime-wz .prime-wz-top { flex-direction: column; align-items: stretch; gap: 10px; }
	.prime-wz .prime-wz-back { align-self: flex-start; }
	.prime-wz .prime-wz-step { font-size: 11.5px; gap: 6px; }
	.prime-wz .prime-wz-card { padding: 16px 12px; }
	.prime-wz .prime-wz-coupon-row { flex-wrap: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
	.prime-wz .prime-wz-pane.is-active { animation: none; }
}

/* =====================================================================
 * v11 — wizard refinements
 *   • computers: bigger seats; trip card + invoice + button form one rail that stays in view
 *     while scrolling (e.g. many passengers), the button always reachable
 *   • phones: trip details hidden once seats are picked and on the passengers step; the button
 *     bar is pinned to the bottom of the screen on every step
 *   • passenger fields wide enough to read a whole national ID
 * ===================================================================== */
.prime-sp.prime-wz {
	grid-template-areas:
		"top    top"
		"main   rail";
	grid-template-rows: auto 1fr;
}
.prime-wz .prime-wz-rail {
	grid-area: rail;
	align-self: start;
	position: sticky;
	top: calc(var(--prime-top, 0px) + 16px);
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-height: calc(100vh - var(--prime-top, 0px) - 32px);
	min-width: 0;
}
.prime-wz .prime-wz-rail .prime-wz-side {
	flex: 0 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	border-radius: 18px;
}
.prime-wz .prime-wz-rail .prime-wz-action { flex: 0 0 auto; align-self: stretch; }

/* passenger fields: never two cramped columns */
.prime-wz [data-pane="info"] .prime_attendee_area .mpPanelBody,
.prime-wz [data-pane="info"] .prime_taxi_seat_item .mpPanelBody {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
	gap: 14px 16px !important;
}
.prime-wz [data-pane="info"] .mp_form_item,
.prime-wz [data-pane="info"] .prime_tf_item { display: block !important; width: 100% !important; min-width: 0 !important; }
.prime-wz [data-pane="info"] .mp_form_item > label,
.prime-wz [data-pane="info"] .prime_tf_item > label { display: block !important; margin: 0 0 6px !important; }
.prime-wz [data-pane="info"] .prime_attendee_area .formControl,
.prime-wz [data-pane="info"] .prime_attendee_area input,
.prime-wz [data-pane="info"] .prime_attendee_area select {
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	min-height: 46px;
	padding: 10px 12px !important;
	font-size: 15px !important;
	box-sizing: border-box !important;
}
.prime-wz [data-pane="info"] .prime_tf_nid { letter-spacing: .08em; text-align: left !important; }

/* computers: larger seat plan */
@media (min-width: 992px) {
	.prime-wz .prime-sp-map { padding: 22px 22px 18px; }
	.prime-wz .prime_seat_plan_lower,
	.prime-wz .prime_seat_plan_upper { padding: 46px 30px 28px !important; border-radius: 84px 84px 34px 34px !important; }
	.prime-wz .prime_seat_plan_lower::before,
	.prime-wz .prime_seat_plan_upper::before { top: 16px; height: 16px; }
	.prime-wz .prime_seat_plan_area table { border-spacing: 18px 18px !important; }
	.prime-wz .prime_seat_plan_area table td:empty { width: 64px; }
	.prime-wz .prime_seat_plan_area table td.prime_aisle_blank { width: 30px !important; }
	.prime-wz .mp_seat_item,
	.prime-wz .mp_seat_item .mp_seat { width: 64px !important; height: 70px !important; }
	.prime-wz .mp_seat .seat_visual::before { left: 7px; right: 7px; bottom: 15px; border-radius: 16px 16px 9px 9px; border-width: 2px; }
	.prime-wz .mp_seat .seat_visual::after { height: 19px; border-radius: 8px 8px 12px 12px; border-width: 2px; }
	.prime-wz .mp_seat .seat_number { left: 7px !important; right: 7px !important; bottom: 15px !important; font-size: 18px !important; }
	.prime-wz .mp_seat.seat_available.seat_selected .seat_number::before { width: 20px; height: 11px; border-width: 0 0 3.5px 3.5px; }
	.prime-wz .mp_driver_image { width: 58px !important; height: 58px !important; }
	.prime-wz .mp_driver_image > * { width: 38px !important; height: 38px !important; }
	.prime-wz .prime-veh-front { font-size: 12px; }
	.prime-wz .prime_seat_legend { gap: 10px 22px !important; margin-top: 20px !important; }
	.prime-wz .prime_seat_legend_item { font-size: 13px !important; }
	.prime-wz .prime_seat_legend_swatch { width: 18px !important; height: 19px !important; }
}

/* phones & tablets */
@media (max-width: 991px) {
	.prime-sp.prime-wz {
		grid-template-areas: "top" "main" "side" "action";
		grid-template-rows: none;
		padding-bottom: 0;
	}
	.prime-wz .prime-wz-rail { display: contents; }
	.prime-wz .prime-wz-rail .prime-wz-side { overflow: visible; max-height: none; }
	/* details are not needed once seats are picked, nor while typing passenger details */
	.prime-wz.has-seats[data-step="seat"] .prime-wz-side,
	.prime-wz[data-step="info"] .prime-wz-side { display: none !important; }
	/* button bar: pinned to the bottom of the screen while the booking is on screen */
	.prime-wz .prime-wz-action {
		position: sticky;
		bottom: var(--prime-bottom, 0px);   /* above the theme's own sticky footer bar, if any */
		z-index: 20;
	}
	.prime-wz .prime-wz-action-sum small span { font-size: 11px; }
	.prime-wz [data-pane="info"] .prime-wz-card { padding: 14px 12px; }
}
@media (max-width: 600px) {
	.prime-wz [data-pane="info"] .prime_attendee_area .mpPanelBody,
	.prime-wz [data-pane="info"] .prime_taxi_seat_item .mpPanelBody { grid-template-columns: minmax(0, 1fr) !important; padding: 14px !important; }
	.prime-wz [data-pane="info"] .prime_attendee_area .formControl,
	.prime-wz [data-pane="info"] .prime_attendee_area input { font-size: 16px !important; } /* no zoom-in on iPhone */
	.prime-wz [data-pane="info"] .formControl { font-size: 16px !important; }
}

/* =====================================================================
 * v12 — passenger gender & nationality
 *   sold seats: blue = آقا, pink = خانم (gray when the gender is unknown)
 *   your picked seats turn blue / pink once the passenger's gender is chosen
 * ===================================================================== */
.prime-sp { --sp-m-bg: #dbeafe; --sp-m-bd: #93c5fd; --sp-m-ink: #1e40af; --sp-f-bg: #fce7f3; --sp-f-bd: #f9a8d4; --sp-f-ink: #9d174d; }
.prime-sp .mp_seat.seat_booked.seat_booked_male .seat_visual { --seat-bg: var(--sp-m-bg); --seat-bd: var(--sp-m-bd); }
.prime-sp .mp_seat.seat_booked.seat_booked_female .seat_visual { --seat-bg: var(--sp-f-bg); --seat-bd: var(--sp-f-bd); }
.prime-sp .mp_seat.seat_booked.seat_booked_male .seat_number { color: var(--sp-m-ink) !important; text-decoration: none; }
.prime-sp .mp_seat.seat_booked.seat_booked_female .seat_number { color: var(--sp-f-ink) !important; text-decoration: none; }
.prime-sp .mp_seat.seat_available.seat_selected[data-gender="m"] .seat_visual { --seat-bg: #2563eb; --seat-bd: #1d4ed8; }
.prime-sp .mp_seat.seat_available.seat_selected[data-gender="f"] .seat_visual { --seat-bg: #db2777; --seat-bd: #be185d; }
.prime-sp .prime_seat_legend_swatch.is_booked_male { background: var(--sp-m-bg) !important; border-color: var(--sp-m-bd) !important; }
.prime-sp .prime_seat_legend_swatch.is_booked_female { background: var(--sp-f-bg) !important; border-color: var(--sp-f-bd) !important; }
.prime-sp .prime_seat_legend_sold { display: none !important; }
.prime-sp:has(.seat_booked:not(.seat_booked_male):not(.seat_booked_female)) .prime_seat_legend_sold { display: inline-flex !important; }
.prime-wz .prime-wz-seat-pill.is-m { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }
.prime-wz .prime-wz-seat-pill.is-f { background: #fdf2f8; border-color: #fbcfe8; color: #9d174d; }

/* two-button switches (ملیت / جنسیت) */
.prime_tf_seg {
	display: flex;
	gap: 4px;
	padding: 4px;
	border: 1px solid #cbd5e1;
	border-radius: 12px;
	background: #f8fafc;
	min-height: 46px;
	box-sizing: border-box;
}
.prime_tf_seg .prime_tf_seg_btn {
	flex: 1 1 0;
	min-height: 36px;
	padding: 6px 10px !important;
	border: 0 !important;
	border-radius: 9px !important;
	background: transparent !important;
	color: #475569 !important;
	font: 600 14px/1.2 var(--t-font, inherit) !important;
	cursor: pointer;
	box-shadow: none !important;
	transition: background-color .15s ease, color .15s ease !important;
}
.prime_tf_seg .prime_tf_seg_btn:hover { background: #eef2f7 !important; }
.prime_tf_seg .prime_tf_seg_btn.is-on { background: #fff !important; color: var(--tk-brand, #082c86) !important; box-shadow: 0 1px 3px rgba(15, 23, 42, .15) !important; }
.prime_tf_seg[data-kind="gender"] .prime_tf_seg_btn.is-on[data-g="m"] { background: #2563eb !important; color: #fff !important; }
.prime_tf_seg[data-kind="gender"] .prime_tf_seg_btn.is-on[data-g="f"] { background: #db2777 !important; color: #fff !important; }
.prime_tf_seg.is-invalid { border-color: #ef4444; box-shadow: 0 0 0 3px rgba(239, 68, 68, .12); }
.prime_tf_item[hidden],
.prime-wz [data-pane="info"] .mp_form_item[hidden],
.prime-wz [data-pane="info"] .prime_tf_item[hidden] { display: none !important; }
.prime_tf_passport { letter-spacing: .06em; text-transform: uppercase; text-align: left !important; }
/* the passenger block gets a coloured edge once the gender is chosen */
.prime_taxi_seat_item[data-gender="m"] { box-shadow: inset -4px 0 0 #2563eb !important; }
.prime_taxi_seat_item[data-gender="f"] { box-shadow: inset -4px 0 0 #db2777 !important; }
.prime-sp .prime-sp-picked tr.prime_remove_area[data-gender="m"] { background: #eff6ff !important; border-color: #bfdbfe !important; }
.prime-sp .prime-sp-picked tr.prime_remove_area[data-gender="m"] td.insert_seat_name { color: #1e40af !important; }
.prime-sp .prime-sp-picked tr.prime_remove_area[data-gender="f"] { background: #fdf2f8 !important; border-color: #fbcfe8 !important; }
.prime-sp .prime-sp-picked tr.prime_remove_area[data-gender="f"] td.insert_seat_name { color: #9d174d !important; }
.prime_tf_seg .prime_tf_seg_btn.is-on:hover { filter: none; opacity: 1; }

/* phones: with a theme footer bar below it, our bar needs no extra space for the home indicator */
@media (max-width: 991px) {
	html.prime-has-bottom-bar .prime-wz .prime-wz-action { padding-bottom: 10px; border-radius: 16px; margin-bottom: 6px; }
}

/* =====================================================================
 * v13 — "غیرقابل رزرو" seat (e.g. the rear middle seat of a 3-passenger taxi)
 * ===================================================================== */
.prime-sp .mp_seat.seat_blocked { cursor: not-allowed; }
.prime-sp .mp_seat.seat_blocked .seat_visual { --seat-bg: #f1f5f9; --seat-bd: #cbd5e1; }
.prime-sp .mp_seat.seat_blocked .seat_visual::before,
.prime-sp .mp_seat.seat_blocked .seat_visual::after {
	background-image: repeating-linear-gradient(45deg, rgba(148, 163, 184, .22) 0 3px, transparent 3px 7px);
	border-style: dashed;
}
.prime-sp .mp_seat.seat_blocked .seat_number { color: #94a3b8 !important; font-weight: 700 !important; }
.prime-sp:has(.seat_blocked) .prime_seat_legend_sold { display: inline-flex !important; }
.prime-sp .prime_seat_plan_area th.prime_blocked_cell { padding: 0 !important; }
/* taxi presets put the driver IN the front row: draw the steering wheel there, beside the
   front passenger, and drop the separate wheel from the header row */
.prime-sp .prime_seat_plan_area table:has(td.prime_ns_driver) .mp_driver_image { display: none !important; }
.prime-sp .prime_seat_plan_area td.prime_ns_driver {
	width: 46px;
	height: 50px;
	background: url("../images/prime-driving-wheel.svg") center 4px / 30px 30px no-repeat !important;
	opacity: .6;
	vertical-align: bottom !important;
	text-align: center;
}
.prime-sp .prime_seat_plan_area td.prime_ns_driver .prime_non_seat_icon { display: none !important; }
.prime-sp .prime_seat_plan_area td.prime_ns_driver .prime_non_seat_label { display: block; font-size: 10.5px; color: #64748b; line-height: 1; padding-top: 34px; }
@media (min-width: 992px) {
	.prime-wz .prime_seat_plan_area td.prime_ns_driver { width: 64px; height: 70px; background-size: 40px 40px !important; background-position: center 6px !important; }
	.prime-wz .prime_seat_plan_area td.prime_ns_driver .prime_non_seat_label { padding-top: 50px; font-size: 12px; }
}

/* =====================================================================
 * v14 — the button bar / invoice always use the plugin font (themes often force their own
 *        font on b / small / button), and the passenger-count step for taxis without a seat plan
 * ===================================================================== */
.prime-wz .prime-wz-action,
.prime-wz .prime-wz-action *,
.prime-wz .prime-wz-invoice,
.prime-wz .prime-wz-invoice *:not([class*="fa-"]):not(.fas):not(.far):not(.fab),
.prime-wz .prime-wz-trip *:not([class*="fa-"]):not(.fas):not(.far):not(.fab),
.prime-wz .prime-wz-steps *,
.prime-wz .prime-wz-back,
.prime-wz .prime-wz-review * { font-family: var(--t-font, Vazirmatn, Tahoma, sans-serif) !important; }

.prime-wz-qty table { display: block !important; width: 100% !important; margin: 0 !important; border: 0 !important; }
.prime-wz-qty thead { display: none !important; }
.prime-wz-qty tbody { display: flex !important; flex-direction: column; gap: 10px; }
.prime-wz-qty tbody tr {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto auto;
	grid-template-areas: "name price step";
	align-items: center;
	gap: 6px 16px;
	padding: 14px 16px;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	background: #f8fafc;
}
.prime-wz-qty tbody th,
.prime-wz-qty tbody td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: right !important; }
.prime-wz-qty tbody tr > th:first-child { grid-area: name; font-size: 15px !important; font-weight: 800 !important; color: var(--sp-ink); }
.prime-wz-qty tbody tr > td { grid-area: step; }
.prime-wz-qty tbody tr > th:last-child { grid-area: price; font-size: 14px !important; font-weight: 700 !important; color: var(--sp-brand) !important; white-space: nowrap; }
@media (max-width: 600px) {
	.prime-wz-qty tbody tr { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name step" "price step"; }
}
.prime-wz-qty .qtyIncDec { display: inline-flex !important; align-items: center; gap: 10px; border: 0 !important; background: none !important; width: auto !important; }
.prime-wz-qty .qtyIncDec .decQty,
.prime-wz-qty .qtyIncDec .incQty {
	width: 42px !important;
	height: 42px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 50% !important;
	border: 1px solid #cbd5e1 !important;
	background: #fff !important;
	color: var(--sp-brand) !important;
	cursor: pointer;
	padding: 0 !important;
}
.prime-wz-qty .qtyIncDec .incQty { background: var(--sp-brand) !important; border-color: var(--sp-brand) !important; color: #fff !important; }
.prime-wz-qty .qtyIncDec .mpDisabled { opacity: .4; cursor: not-allowed; }
.prime-wz-qty .qtyIncDec label { margin: 0 !important; }
.prime-wz-qty .qtyIncDec input.formControl {
	width: 52px !important;
	height: 42px !important;
	min-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	text-align: center !important;
	font: 800 20px/1 var(--t-font, inherit) !important;
	color: var(--sp-ink) !important;
}

/* passenger-count steppers (taxis without a seat plan) */
.prime-wz-qty-list { display: flex; flex-direction: column; gap: 10px; }
.prime-wz-qty-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	background: #f8fafc;
}
.prime-wz-qty-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.prime-wz-qty-info strong { font-size: 15px; font-weight: 800; color: var(--sp-ink, #0f172a); }
.prime-wz-qty-info span { font-size: 13.5px; font-weight: 700; color: var(--sp-brand, #082c86); }
.prime-wz-stepper { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; direction: rtl; }
.prime-wz-stepper .prime-wz-step-btn {
	width: 44px !important;
	height: 44px !important;
	min-width: 0 !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 50% !important;
	border: 1.5px solid var(--sp-brand, #082c86) !important;
	background: #fff !important;
	color: var(--sp-brand, #082c86) !important;
	font: 700 24px/1 var(--t-font, inherit) !important;
	cursor: pointer;
	box-shadow: none !important;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
	transition: background-color .15s ease, transform .1s ease !important;
}
.prime-wz-stepper .prime-wz-step-btn.is-plus { background: var(--sp-brand, #082c86) !important; color: #fff !important; }
.prime-wz-stepper .prime-wz-step-btn:active:not(:disabled) { transform: scale(.92); }
.prime-wz-stepper .prime-wz-step-btn:disabled { opacity: .35; cursor: not-allowed; }
.prime-wz-stepper .prime-wz-qty-input {
	width: 44px !important;
	height: 44px !important;
	min-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	text-align: center !important;
	font: 800 22px/44px var(--t-font, inherit) !important;
	color: var(--sp-ink, #0f172a) !important;
	pointer-events: none;
	caret-color: transparent;
}
.prime-wz-qty-note { margin: 2px 0 0 !important; font-size: 12.5px !important; line-height: 1.7 !important; color: var(--sp-muted, #64748b) !important; }

/* =====================================================================
 * v15 — service types: «دربست» (whole car) booking step + type badge on cards
 * ===================================================================== */
.prime-wz-private-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 16px;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	background: linear-gradient(180deg, #f8fafc, #fff);
}
.prime-wz-private-ico {
	flex: 0 0 52px;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: #eef3fc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23082c86' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17h14v-5l-2-5H7l-2 5z'/%3E%3Cpath d='M5 12h14'/%3E%3Ccircle cx='8' cy='17' r='1.6'/%3E%3Ccircle cx='16' cy='17' r='1.6'/%3E%3C/svg%3E") center / 30px no-repeat;
}
.prime-wz-private-info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.prime-wz-private-info strong { font-size: 16px; font-weight: 800; color: var(--sp-ink, #0f172a); }
.prime-wz-private-info span { font-size: 13px; color: var(--sp-muted, #64748b); }
.prime-wz-private-price { flex: 0 0 auto; font-size: 18px; font-weight: 800; color: var(--sp-brand, #082c86); white-space: nowrap; }
.prime-wz--private .prime-wz-invoice .prime_booking_summary_preview,
.prime-wz--private .prime-wz-invoice .prime_totals,
.prime-wz[data-mode="private"] .prime-wz-invoice .prime_booking_summary_preview,
.prime-wz[data-mode="private"] .prime-wz-invoice .prime_totals { display: none !important; }
@media (max-width: 480px) {
	.prime-wz-private-card { flex-wrap: wrap; }
	.prime-wz-private-price { width: 100%; text-align: left; }
}
body .prime_search_result .prime-tk-chip.prime-tk-svc { background: #eef3fc; color: var(--tk-brand, #082c86); font-weight: 700; }
body .prime_search_result .prime-tk-chip.prime-tk-svc.is-private { background: #fff7ed; color: #9a3412; }


/* ===== v16: «سرویسی یافت نشد» — animated taxi + call support ===== */
.prime-empty{--prime-empty-c:var(--prime-empty-color,#1f3c88);display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 12px 8px;text-align:center}
.prime-empty-art{width:190px;max-width:60%;line-height:0}
.prime-empty-art svg{width:100%;height:auto;display:block;overflow:visible}
.prime-empty-road path{fill:none;stroke:#d9dce3;stroke-width:6;stroke-linecap:butt}
.prime-empty-road .prime-empty-dash{stroke-width:5;stroke-dasharray:12 10;animation:prime-empty-road .7s linear infinite}
.prime-empty-car{transform-box:fill-box;transform-origin:50% 100%;animation:prime-empty-bob 1.4s ease-in-out infinite}
.prime-empty-body{fill:var(--prime-empty-c)}
.prime-empty-glass{fill:#dbe6ff}
.prime-empty-shine{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;opacity:.85}
.prime-empty-grill{fill:rgba(0,0,0,.22)}
.prime-empty-tyre{fill:var(--prime-empty-c);filter:brightness(.7)}
.prime-empty-light{fill:#fff;animation:prime-empty-light 1.4s ease-in-out infinite}
.prime-empty-sign{fill:#ffc928}
.prime-empty-car text{font:700 7px/1 Arial,sans-serif;fill:#1f2430;letter-spacing:.5px}
@keyframes prime-empty-road{from{stroke-dashoffset:0}to{stroke-dashoffset:-22}}
@keyframes prime-empty-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.5px)}}
@keyframes prime-empty-light{0%,100%{opacity:1}50%{opacity:.7}}
@media (prefers-reduced-motion:reduce){.prime-empty-road .prime-empty-dash,.prime-empty-car,.prime-empty-light{animation:none}}
html .prime-empty .prime-empty-title{margin:0;font-size:15px;color:#3a4152;font-weight:500}
.prime-empty-box{width:100%;max-width:780px;box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;background:#fff;border:1px solid #edf0f5;border-radius:12px;padding:16px 20px;box-shadow:0 1px 3px rgba(20,30,60,.04)}
html .prime-empty .prime-empty-text{font-size:14px;color:#5b6375;text-align:right}
html .prime-empty a.prime-empty-call{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:190px;padding:10px 22px;border:1.5px solid var(--prime-empty-c);border-radius:10px;color:var(--prime-empty-c);background:#fff;font-weight:700;font-size:15px;text-decoration:none;transition:background .15s,color .15s}
html .prime-empty a.prime-empty-call:hover,html .prime-empty a.prime-empty-call:focus-visible{background:var(--prime-empty-c);color:#fff}
.prime-empty-call svg{width:18px;height:18px;fill:currentColor;flex:none}
@media (max-width:600px){.prime-empty-box{flex-direction:column;text-align:center;padding:16px}html .prime-empty .prime-empty-text{text-align:center}html .prime-empty a.prime-empty-call{width:100%;min-width:0}}

.prime-empty-box.is-text-only{justify-content:center}
html .prime-empty .prime-empty-box.is-text-only .prime-empty-text{text-align:center}


/* Ticket frames by service type:
   «بلیط نفری» and «دربست درب ترمینال» — yellow; «دربست درب منزل» — teal-blue with an «اختصاصی» tag (black text). */
body .prime_search_result .prime-tk.is-seat,
body .prime_search_result .prime-tk.is-terminal {
	border: 2px solid #f5c518 !important;
	box-shadow: 0 8px 22px -16px rgba(202, 160, 10, .6);
}
body .prime_search_result .prime-tk.is-exclusive {
	position: relative;
	border: 2px solid #0ea5a4 !important;
	box-shadow: 0 8px 22px -14px rgba(13, 148, 136, .55);
	margin-top: 14px;
}
body .prime_search_result .prime-tk-excl,
body .prime-taxi-flix-style .prime-tk-excl {
	position: absolute;
	top: -13px;
	inset-inline-start: 20px;
	z-index: 2;
	padding: 2px 14px;
	border-radius: 999px;
	background: #0ea5a4;
	color: #111 !important;
	font-size: 12.5px;
	font-weight: 800;
	line-height: 22px;
	white-space: nowrap;
	box-shadow: 0 0 0 3px #fff;
}
/* flix-style cards */
body .prime-taxi-flix-style.is-seat,
body .prime-taxi-flix-style.is-terminal,
body .prime-taxi-flix-style.is-exclusive { position: relative; border-radius: 12px; }
body .prime-taxi-flix-style.is-seat,
body .prime-taxi-flix-style.is-terminal { border: 2px solid #f5c518 !important; }
body .prime-taxi-flix-style.is-exclusive { border: 2px solid #0ea5a4 !important; margin-top: 14px; }

/* «دربست»: number of passengers (+ / −) and the optional details of the others */
.prime-wz-pax { margin: 14px 0 0; }
.prime-wz-pax-count { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid #e3e8f2; border-radius: 14px; background: #fff; }
.prime-wz-pax-label { display: flex; flex-direction: column; gap: 2px; }
.prime-wz-pax-label small { color: #6b7383; font-size: 12px; }
.prime-wz-pax-stepper { display: inline-flex; align-items: center; gap: 4px; padding: 4px; border-radius: 999px; background: #f1f4fa; direction: ltr; }
.prime-wz-pax .prime-wz-pax-step { width: 38px; height: 38px; border-radius: 50% !important; border: 0 !important; padding: 0 !important; font: 700 22px/1 inherit; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; background: var(--sp-brand, #082c86) !important; color: #fff !important; transition: transform .12s, opacity .12s; }
.prime-wz-pax .prime-wz-pax-step:active:not(:disabled) { transform: scale(.92); }
.prime-wz-pax .prime-wz-pax-step:disabled { background: #fff !important; color: #b4bccd !important; cursor: not-allowed; }
.prime-wz-pax-num { min-width: 34px; text-align: center; font-weight: 800; font-size: 18px; color: #1f2a44; }
.prime-wz-pax-more { margin-top: 10px; }
.prime-wz-pax .prime-wz-pax-toggle { width: 100%; display: flex; align-items: center; gap: 8px; padding: 12px 14px; border: 1px dashed #b9c3da !important; border-radius: 14px !important; background: #fafbfe !important; color: var(--sp-brand, #082c86) !important; font: inherit; font-weight: 700; cursor: pointer; text-align: right; }
.prime-wz-pax-toggle small { color: #6b7383; font-weight: 400; margin-inline-start: auto; }
.prime-wz-pax-chev { width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .15s; margin-inline-start: 6px; }
.prime-wz-pax-toggle[aria-expanded="true"] .prime-wz-pax-chev { transform: rotate(-135deg); }
.prime-wz-pax-list { margin-top: 10px; }
.prime-wz-pax-item { border: 1px solid #e3e8f2; border-radius: 12px; padding: 12px; margin-bottom: 10px; background: #fafbfe; }
.prime-wz-pax-title { display: block; margin-bottom: 8px; }
.prime-wz-pax-grid { display: grid; grid-template-columns: 1.4fr .9fr 1fr .8fr; gap: 10px; }
.prime-wz-pax-grid label[hidden] { display: none; }
.prime-wz-pax-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.prime-wz-pax-grid input, .prime-wz-pax-grid select { height: 42px; border: 1px solid #d5dbe8; border-radius: 10px; padding: 0 10px; font: inherit; background: #fff; width: 100%; box-sizing: border-box; }
.prime-wz-pax-grid .prime_input_error { border-color: #d92d20; }
.prime-wz-paxname span:last-child { font-weight: 600; }
@media (max-width: 640px) { .prime-wz-pax-grid { grid-template-columns: 1fr; } }
.prime-wz-pax button.prime-wz-pax-toggle,
.prime-wz-pax button.prime-wz-pax-toggle:hover,
.prime-wz-pax button.prime-wz-pax-toggle:focus,
.prime-wz-pax button.prime-wz-pax-toggle:active { background: #fafbfe !important; color: var(--sp-brand, #082c86) !important; outline: 0 !important; box-shadow: none !important; }
.prime-wz-pax button.prime-wz-pax-toggle:focus-visible { box-shadow: 0 0 0 3px rgba(8,44,134,.18) !important; }
.prime-wz-pax button.prime-wz-pax-toggle .prime-wz-pax-toggle-t { color: inherit !important; }
.prime-wz-pax button.prime-wz-pax-toggle small { color: #6b7383 !important; }

/* Persian-only notice */
.prime-fa-modal { position: fixed; inset: 0; z-index: 2147483000; background: rgba(15,23,42,.5); backdrop-filter: blur(3px); display: flex; align-items: center; justify-content: center; padding: 16px; animation: pfaFade .18s ease both; }
.prime-fa-box { background: #fff; border-radius: 24px; width: min(380px, 100%); padding: 26px 22px 22px; text-align: center; box-shadow: 0 28px 70px rgba(15,23,42,.35); direction: rtl; animation: pfaPop .32s cubic-bezier(.2,1.25,.4,1) both; }
.prime-fa-ico { width: 96px; height: 96px; margin: 0 auto 14px; border-radius: 50%; background: radial-gradient(circle at 30% 25%, #eaf2ff, #dbe8ff); display: flex; align-items: center; justify-content: center; }
.prime-fa-ico svg { width: 66px; height: 66px; overflow: visible; }
.prime-fa-ico .k { fill: #fff; stroke: #1f6feb; stroke-width: 3; }
.prime-fa-ico .keys rect, .prime-fa-ico .space { fill: #b7cdf5; }
.prime-fa-ico .b { fill: #f25c3d; stroke: #fff; stroke-width: 2.5; animation: pfaBeat 1.6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.prime-fa-ico .t { fill: #fff; font-size: 12px; font-weight: 700; }
.prime-fa-title { display: block; font-size: 17px; font-weight: 800; color: #0f1b3d; margin-bottom: 6px; }
.prime-fa-msg { margin: 0 0 20px; color: #5b6477; font-size: 14px; line-height: 1.8; }
.prime-fa-box .prime-fa-ok { width: 100%; height: 48px; border: 0; border-radius: 14px; background: linear-gradient(135deg, #0b3aa8, #1f6feb); color: #fff; font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; box-shadow: 0 8px 18px rgba(31,111,235,.35); }
@keyframes pfaFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pfaPop { from { transform: translateY(14px) scale(.92); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes pfaBeat { 0%,100% { transform: scale(1); } 50% { transform: scale(1.18); } }

.prime-fa-box { padding: 28px 22px 22px; }
.prime-fa-msg { color: #1f2a44; font-weight: 700; font-size: 15px; margin: 4px 0 22px; }

/* Search in progress: three pulsing dots cover the label (only for a real click on the button) */
body #prime_area .prime_search_action_button.prime_is_loading:not(.prime-no-dots){position:relative;cursor:progress}
body #prime_area .prime_search_action_button .prime-btn-dots{position:absolute!important;inset:0;display:flex!important;align-items:center;justify-content:center;gap:9px;margin:0!important;direction:ltr;background:inherit;border-radius:inherit}
body #prime_area .prime_search_action_button .prime-btn-dots i{display:block!important;flex:none;width:10px;height:10px;border-radius:50%;background:#fff;animation:prime-dot-p 1s ease-in-out infinite}
body #prime_area .prime_search_action_button .prime-btn-dots i:nth-child(2){animation-delay:.18s}
body #prime_area .prime_search_action_button .prime-btn-dots i:nth-child(3){animation-delay:.36s}
@keyframes prime-dot-p{0%,80%,100%{transform:scale(.45);opacity:.35}40%{transform:scale(1.15);opacity:1}}
@media (prefers-reduced-motion:reduce){body #prime_area .prime_search_action_button .prime-btn-dots i{animation:none}}

/* No grey frame around the search form / its results */
body .prime_container:has(> #prime_area > .prime_search_area){background:transparent!important;padding:0!important;box-shadow:none!important;border:0!important;border-radius:0!important}
body .prime_container > #prime_area > .prime_search_area.prime_search_area{margin-bottom:0!important}
body .prime_container > #prime_area > .prime_search_result:has(*){margin-top:18px}
