/**
 * Newstour Supplier Hub — Frontend stilleri
 * Uçak Bileti sekmesi + sonuç sayfası. Bootstrap 5 uyumlu, mobil responsive, RTL destekli.
 */

:root {
	/* === Marka renkleri — premium seyahat kimliği (v1.0 redesign) ===
	 * Token İSİMLERİ korunur (geriye uyum); değerler premium'a yükseltilir.
	 * Eski primary #5191fa → --nsh-primary-light olarak yaşamaya devam eder. */
	--nsh-primary: #2f6bf6;            /* derin güven mavisi */
	--nsh-primary-dark: #1e54d4;
	--nsh-primary-light: #5191fa;      /* açık mavi — placeholder/rozet uyumu */
	--nsh-primary-soft: rgba(47, 107, 246, 0.10);
	--nsh-accent: #0bb6d4;             /* turkuaz — gökyüzü/deniz aksanı */
	--nsh-accent-dark: #0894ad;
	--nsh-gold: #f5a623;               /* sıcak amber — premium vurgu */
	--nsh-ink: #0f1e3d;                /* lacivert — başlık metni */
	--nsh-secondary: #ffc107;

	/* === Metin / yüzey === */
	--nsh-text: #1e2a3a;
	--nsh-muted: #5e6d77;
	--nsh-border: #e6ebf2;
	--nsh-bg: #ffffff;
	/* Hafif mavi-gri zemin — kart/panel saf beyazla öne çıksın. */
	--nsh-bg-soft: #f4f7fb;
	--nsh-surface-glass: rgba(255, 255, 255, 0.72);

	/* === Gradient'ler === */
	--nsh-gradient: linear-gradient(135deg, #2f6bf6 0%, #0bb6d4 100%);
	--nsh-gradient-soft: linear-gradient(135deg, rgba(47, 107, 246, 0.08), rgba(11, 182, 212, 0.08));
	--nsh-gradient-ink: linear-gradient(135deg, #16294d 0%, #0f1e3d 100%);

	/* === Radius ölçeği === */
	--nsh-radius-sm: 8px;
	--nsh-radius: 14px;
	--nsh-radius-lg: 20px;
	--nsh-radius-pill: 999px;

	/* === Gölge ölçeği === */
	--nsh-shadow: 0 10px 30px rgba(15, 30, 61, 0.10);
	--nsh-shadow-sm: 0 2px 8px rgba(15, 30, 61, 0.06);
	--nsh-shadow-md: 0 8px 24px rgba(15, 30, 61, 0.10);
	--nsh-shadow-lg: 0 20px 48px rgba(15, 30, 61, 0.16);
	--nsh-glow: 0 8px 24px rgba(47, 107, 246, 0.28);

	/* === Geriye uyum (mevcut kullanımlar bu token'lara bağlı) === */
	--nsh-card-shadow: var(--nsh-shadow-sm);
	--nsh-card-shadow-hover: var(--nsh-shadow-lg);
	--nsh-card-border: 1px solid rgba(15, 30, 61, 0.06);

	/* === Hareket eğrileri === */
	--nsh-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--nsh-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ----------------------------------------------------------------------- *
 * SEKME FORMU — premium responsive arama çubuğu (v0.3.1)
 * Mobile-first: dikey stack → tablet 2col → masaüstü tek satır.
 * Renkler tema mavisinden (#5191fa) miras; yeni renk icat edilmez.
 * ----------------------------------------------------------------------- */
.nsh-flight-tab {
	/* v0.5.0: çift kırık-beyaz temizliği — zemini .st-search-form-el veriyor
	 * (tek kaynak). Burada şeffaf; kendi padding'i yok (hücreler kendi boşluğu). */
	background: transparent;
	padding: 0;
}

/* Kap kırık-beyaz iken alanlar (input/tarih/yolcu/buton görünümü) saf beyaz.
 * DİKKAT: .nsh-check-in-out (daterangepicker'ın şeffaf bağlı input'u) HARİÇ —
 * aksi halde beyaz zemin şeffaf input'u görünür kılıp saatli değeri sızdırır
 * (v0.4.0 regresyonu). Sadece gerçek metin alanları hedeflenir. */
.nsh-flight-form .nsh-airport-from,
.nsh-flight-form .nsh-airport-to,
.nsh-flight-form .nsh-form-date-search,
.nsh-flight-form .nsh-pax-trigger {
	background: var(--nsh-bg);
}

/* Picker input'u her zaman tamamen şeffaf kalmalı (saatli değer görünmesin;
 * görünen değer saatsiz render span'leridir). */
.nsh-flight-form .nsh-check-in-out {
	background: transparent !important;
	color: transparent !important;
}

/* -----------------------------------------------------------------------
 * KIRIK-BEYAZ — TÜM banner arama sekmeleri (Hotel/Tours/Activity/Rental/
 * Cars/Transfer + Uçak). Tema'nın her sekmeyi saran kabı .st-search-form-el'e
 * scoped CSS verilir (tema DOSYASI değişmez). Plugin CSS'i yalnızca anasayfada
 * (ve sonuç sayfasında — orada banner yok) yüklendiğinden etki ANASAYFA ile
 * sınırlıdır; iç sayfalara sızmaz.
 * --------------------------------------------------------------------- */
.st-banner-search-form .st-search-form-el {
	background: var(--nsh-bg-soft) !important;
}

/* İçindeki alanlar saf beyaz (derinlik kontrastı). ŞEFFAF picker input'u
 * (.nsh-check-in-out) HARİÇ — v0.4.1 saat-gizleme kuralı korunur. */
.st-banner-search-form .st-search-form-el input:not(.nsh-check-in-out),
.st-banner-search-form .st-search-form-el select,
.st-banner-search-form .st-search-form-el textarea,
.st-banner-search-form .st-search-form-el .form-control:not(.nsh-check-in-out) {
	background-color: #fff;
}

.nsh-flight-form {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nsh-field {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

/* --- HÜCRE DİLİ (tema otel formu replikası) ---
 * label (üstte, gri #5E6D77 / 14px / 400) + değer (altta, mavi #5191FA).
 * Tema class'ları KULLANILMAZ; tema CSS değerleri kendi .nsh- class'larımızda. */
.nsh-flight-form label {
	font-size: 14px;
	font-weight: 400;
	color: var(--nsh-muted); /* #5E6D77 = tema --grey-color */
	margin-bottom: 2px;
	display: block;
}

/* Hücre: [ikon] + [body: label + mavi değer]. Borderless. */
.nsh-flight-form .nsh-cell {
	flex-direction: row;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	position: relative;
	min-width: 0;
}

.nsh-cell-icon {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	color: var(--nsh-muted); /* gri ikon */
}

.nsh-cell-icon svg {
	width: 22px;
	height: 22px;
}

/* Varış ikonu — uçak iniş hissi için yatay aynalama. */
.nsh-cell-icon-arrive svg {
	transform: scaleX(-1);
}

.nsh-cell-body {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1 1 auto;
}

/* Değer/input — kutusuz, şeffaf, MAVİ metin (#5191FA = tema --main-color). */
.nsh-flight-form .nsh-cell-input,
.nsh-flight-form .nsh-airport-from,
.nsh-flight-form .nsh-airport-to {
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	/* 16px: iOS Safari odak zoom engeli (v0.3.1 kuralı korunur). */
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary); /* mavi değer */
	outline: none;
}

.nsh-flight-form .nsh-airport-from::placeholder,
.nsh-flight-form .nsh-airport-to::placeholder {
	color: var(--nsh-primary);
	opacity: 0.55;
}

/* Borderless odak — kutu yerine sübtil zemin tonu (erişilebilirlik). */
.nsh-flight-form .nsh-cell:focus-within {
	background: rgba(81, 145, 250, 0.04);
}

/* --- Seyahat tipi radyolar — her zaman en üstte, ayrı satır --- */
.nsh-trip-type {
	display: flex;
	gap: 22px;
}

.nsh-radio {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	font-size: 14px;
	color: var(--nsh-text);
}

/* --- Ana arama "card"ı — beyaz, hücreler içinde (mobil default: tek sütun stack) --- */
.nsh-flight-search {
	display: grid;
	grid-template-columns: 1fr;
	background: var(--nsh-bg); /* beyaz card — kırık-beyaz wrapper üzerinde derinlik */
	border-radius: 10px;
	box-shadow: var(--nsh-card-shadow);
}

/* Mobilde stacked hücreler arası ince ayraç (dikey çizgi mobilde yok). */
.nsh-flight-search .nsh-cell + .nsh-cell,
.nsh-flight-search .nsh-cell + .nsh-field-submit {
	border-top: 1px solid #eef1f4;
}

/* --- Tarih kutusu (tema daterangepicker bağlanır) --- */
.nsh-form-date-search {
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
}

.nsh-date-wrapper {
	width: 100%;
	pointer-events: none;
}

.nsh-check-in-wrapper {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 16px;
	color: var(--nsh-primary); /* mavi değer (tema dili) */
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.nsh-date-sep {
	color: var(--nsh-muted);
}

/* Generic gizleme — banner formundaki ayraç/dönüş render'ını Tek Yön'de gizler.
 * (Sonuç kartlarının kendi yüksek-specificity .nsh-hidden kuralı ayrı; çakışmaz.) */
.nsh-hidden {
	display: none !important;
}

/* Bağlı input görünmez ama kutuyu kaplar → tıklayınca picker açılır. */
.nsh-check-in-out {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent;
	color: transparent;
	cursor: pointer;
}

/* --- Yolcu + Sınıf tetikleyici + popover --- */
.nsh-field-pax {
	position: relative;
}

/* Pax tetikleyici — borderless, mavi değer (tema "Guests" hücresi dili). */
.nsh-pax-trigger {
	display: block;
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	cursor: pointer;
	text-align: left;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	overflow: hidden;
}

.nsh-pax-summary {
	display: block;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--nsh-primary);
}

/* Chevron — hücrenin sağında (tema .arrow gibi), dekoratif. */
.nsh-field-pax .nsh-cell-body {
	padding-right: 20px;
}

.nsh-pax-caret {
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	width: 18px;
	height: 18px;
	color: #a0a9b2;
	pointer-events: none;
}

.nsh-pax-caret svg {
	width: 18px;
	height: 18px;
}

.nsh-pax-popover {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	width: 300px;
	max-width: 92vw;
	background: #fff;
	border: 1px solid var(--nsh-border);
	border-radius: var(--nsh-radius);
	box-shadow: var(--nsh-shadow);
	padding: 14px;
	/* Tema daterangepicker'ı (z-index ~3001) üstte kalsın diye düşük tutuldu. */
	z-index: 900;
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity 0.15s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.15s cubic-bezier(0.22, 1, 0.36, 1);
}

.nsh-pax-popover.nsh-open {
	opacity: 1;
	transform: translateY(0);
}

/* Popover içi stepper satırları */
.nsh-pax-popover .nsh-stepper,
.nsh-pax-class {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 0;
	border-bottom: 1px solid var(--nsh-border);
}

.nsh-pax-class {
	border-bottom: none;
}

.nsh-stepper-label {
	display: flex;
	flex-direction: column;
	font-size: 14px;
	font-weight: 600;
	color: var(--nsh-text);
}

.nsh-stepper-label small {
	font-size: 11px;
	font-weight: 400;
	color: var(--nsh-muted);
}

.nsh-stepper-controls {
	display: flex;
	align-items: center;
	gap: 4px;
}

/* −/+ butonları: minimum 44×44 dokunma hedefi */
.nsh-stepper-controls button {
	width: 44px;
	height: 44px;
	border: 1px solid var(--nsh-border);
	background: #f7f9fc;
	border-radius: 8px;
	cursor: pointer;
	font-size: 18px;
	line-height: 1;
	color: var(--nsh-text);
}

.nsh-stepper-controls button:hover:not(:disabled) {
	border-color: var(--nsh-primary);
	color: var(--nsh-primary);
}

.nsh-stepper-controls button:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.nsh-stepper-controls input {
	width: 40px;
	text-align: center;
	border: none;
	font-size: 16px;
	color: var(--nsh-text);
	background: transparent;
	-moz-appearance: textfield;
}

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

.nsh-class-options {
	display: flex;
	gap: 14px;
}

.nsh-pax-done {
	width: 100%;
	margin-top: 12px;
}

/* --- Ara butonu — tema primary search butonu (btn btn-primary btn-search) --- */
.nsh-field-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12px 16px;
}

.nsh-search-btn {
	width: 100%;
	/* Tema btn-search: padding 15px 35px, font 14px/500. */
	padding: 15px 35px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	white-space: nowrap;
}

.nsh-form-error {
	color: #c0392b;
	font-size: 13px;
	margin-top: 6px;
}

/* --- ≥768px: tek satır yatay (tema otel formu gibi); dikey çizgi henüz YOK --- */
@media (min-width: 768px) {
	.nsh-flight-search {
		grid-template-columns: 1.3fr 1.3fr 1.4fr 1.5fr auto;
		align-items: stretch; /* dikey çizgiler hücre boyu kadar uzasın */
	}
	/* Yatay düzende üst ayraçlar kalkar (mobil stack ayracı). */
	.nsh-flight-search .nsh-cell + .nsh-cell,
	.nsh-flight-search .nsh-cell + .nsh-field-submit {
		border-top: none;
	}
	.nsh-field-submit {
		justify-content: flex-end;
	}
	.nsh-search-btn {
		width: auto;
		margin-left: auto;
	}
}

/* --- ≥992px: hücreler arası DİKEY ÇİZGİ görünür (#d7dce3, tema değeri) ---
 * Tema gibi: son alan (Yolcular) ve Ara butonu öncesinde çizgi YOK. */
@media (min-width: 992px) {
	.nsh-flight-search .nsh-field-from,
	.nsh-flight-search .nsh-field-to,
	.nsh-flight-search .nsh-field-date {
		border-right: 1px solid #d7dce3;
	}
}

/* Hareket azaltma tercihi (ZORUNLU): tüm transform animasyonları kapalı. */
@media (prefers-reduced-motion: reduce) {
	.nsh-pax-popover {
		transition: none;
	}
	/* Sonuç kartları: reveal animasyonu yok, anında görünür; hover lift yok. */
	.nsh-flight-results-page .nsh-reveal,
	.nsh-flight-results-page .nsh-reveal.is-visible {
		animation: none !important;
		opacity: 1 !important;
	}
	.nsh-flight-results-page .nsh-flight-card,
	.nsh-flight-results-page .nsh-flight-card:hover {
		transition: none !important;
		transform: none !important;
	}
	.nsh-flight-results-page .nsh-book-button:hover {
		transform: none !important;
	}
	/* Modal: anında aç/kapa, panel scale yok, başarı tiki animasyonsuz. */
	.nsh-modal-overlay,
	.nsh-modal-content,
	.nsh-modal-overlay.nsh-open .nsh-modal-content {
		transition: none !important;
		transform: none !important;
	}
	.nsh-success-icon.nsh-pop-go {
		animation: none !important;
	}
}

/* ----------------------------------------------------------------------- *
 * HİZMET GRUBU SEKMELERİ + ALT-SEÇİCİ PILL (v0.8.0)
 * Çift-kademeli yapı: üst = grup sekme barı, alt = hizmet pill seçici.
 * Generic .nsh-service-* — Otobüs ve gelecek gruplar aynı bileşeni kullanır.
 * --------------------------------------------------------------------- */

/* Üst kademe: Grup sekme barı */
.nsh-service-group-tabs {
	display: flex;
	background: #1a2e50;
	border-radius: 10px 10px 0 0;
	overflow-x: auto;
	scrollbar-width: none; /* Firefox */
}

.nsh-service-group-tabs::-webkit-scrollbar {
	display: none; /* Chrome/Safari */
}

.nsh-service-group-tab {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0; /* 5 sekme sıkışmasın */
	padding: 11px 20px 9px;
	background: transparent;
	color: rgba(255, 255, 255, 0.55);
	border: none;
	border-bottom: 2px solid transparent;
	cursor: pointer;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.nsh-service-group-tab:hover {
	color: rgba(255, 255, 255, 0.85);
}

.nsh-service-group-tab.is-active {
	color: #fff;
	border-bottom-color: var(--nsh-primary);
}

/* Grup paneli — kırık-beyaz zemin, rounded bottom */
.nsh-service-group-panel {
	background: var(--nsh-bg-soft);
	border-radius: 0 0 10px 10px;
	padding: 12px 16px 16px;
}

/* Gizli grup paneli */
.nsh-service-group-panel[hidden] {
	display: none !important;
}

/* Alt kademe: Hizmet seçici pill */
.nsh-service-switch {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 14px;
}

.nsh-service-switch-pill {
	display: inline-flex;
	align-items: center;
	padding: 6px 18px;
	border: 1.5px solid var(--nsh-border);
	border-radius: 999px;
	background: #fff;
	color: var(--nsh-muted);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	line-height: 1.4;
	transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.nsh-service-switch-pill:hover:not(.is-active) {
	border-color: var(--nsh-primary);
	color: var(--nsh-primary);
}

.nsh-service-switch-pill.is-active {
	background: var(--nsh-primary);
	border-color: var(--nsh-primary);
	color: #fff;
}

/* Hizmet paneli gizleme */
.nsh-service-panel[hidden] {
	display: none !important;
}

/* Otobüs "yakında" placeholder */
.nsh-coming-soon {
	padding: 40px 20px;
	text-align: center;
	background: #fff;
	border-radius: var(--nsh-radius);
	border: 1px dashed var(--nsh-border);
	color: var(--nsh-muted);
	font-size: 15px;
}

.nsh-coming-soon p {
	margin: 0;
}

/* ----------------------------------------------------------------------- *
 * SONUÇ SAYFASI (shortcode — gerçek WP page içinde)
 * Tema CSS'i güçlü olduğu için kritik layout kuralları !important ile yazıldı.
 * ----------------------------------------------------------------------- */
.nsh-flight-results-page {
	padding: 40px 0;
	/* Kırık-beyaz zemin — kartlar/filtre paneli saf beyazla öne çıksın. */
	background: var(--nsh-bg-soft);
}

.nsh-flight-results-page .nsh-flight-results-container {
	max-width: 1200px !important;
	margin: 0 auto !important;
	padding: 0 20px !important;
}

.nsh-flight-results-page .nsh-results-header {
	margin-bottom: 30px;
}

.nsh-flight-results-page .nsh-results-header h1 {
	font-size: 28px;
	color: #5191fa;
	margin-bottom: 8px;
}

.nsh-flight-results-page .nsh-results-meta {
	color: #666;
	font-size: 14px;
	margin: 0;
}

.nsh-flight-results-page .nsh-results-layout {
	display: grid !important;
	grid-template-columns: 300px 1fr !important;
	gap: 30px !important;
}

/* --- Filtre sidebar --- */
.nsh-flight-results-page .nsh-filter-sidebar {
	background: #fff;
	padding: 20px;
	border-radius: 8px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
	height: fit-content;
	position: sticky;
	top: 100px;
}

.nsh-flight-results-page .nsh-filter-sidebar .nsh-filter-title {
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid #e5e7eb;
}

.nsh-flight-results-page .nsh-filter-group {
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid #f3f4f6;
}

.nsh-flight-results-page .nsh-filter-group:last-child {
	border-bottom: none;
}

.nsh-flight-results-page .nsh-filter-label {
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 10px;
	color: #374151;
}

.nsh-flight-results-page .nsh-filter-checkbox {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px 0;
	cursor: pointer;
	font-size: 14px;
}

.nsh-flight-results-page .nsh-filter-checkbox input[type="checkbox"] {
	accent-color: #5191fa;
	cursor: pointer;
}

.nsh-flight-results-page .nsh-price-range-inputs {
	display: flex;
	align-items: center;
	gap: 8px;
}

.nsh-flight-results-page .nsh-filter-price-input {
	width: 80px;
	padding: 6px 8px;
	border: 1px solid #d1d5db;
	border-radius: 4px;
	font-size: 13px;
}

/* Para birimi göstergeleri (kozmetik — dönüşüm yok, fiyatlar TL) */
.nsh-flight-results-page .nsh-filter-currency-badge {
	font-size: 11px;
	font-weight: 500;
	color: #6b7280;
	background: #f3f4f6;
	padding: 2px 8px;
	border-radius: 4px;
	margin-left: 6px;
	vertical-align: middle;
}

.nsh-flight-results-page .nsh-price-input-wrapper {
	position: relative;
	display: inline-flex;
	align-items: center;
	flex: 1;
}

.nsh-flight-results-page .nsh-price-input-wrapper .nsh-filter-price-input {
	padding-right: 24px !important;
	width: 100% !important;
}

.nsh-flight-results-page .nsh-price-suffix {
	position: absolute;
	right: 8px;
	color: #6b7280;
	font-size: 13px;
	pointer-events: none;
}

.nsh-flight-results-page .nsh-price-separator {
	color: #9ca3af;
	font-weight: 500;
	margin: 0 4px;
}

.nsh-flight-results-page .nsh-filter-currency-note {
	font-size: 11px;
	color: #9ca3af;
	margin-top: 8px;
	margin-bottom: 0;
	font-style: italic;
}

.nsh-flight-results-page .nsh-filter-no-results {
	background: #fef3c7;
	padding: 16px;
	border-radius: 6px;
	margin-top: 16px;
	text-align: center;
}

.nsh-flight-results-page .nsh-reset-filters {
	background: #5191fa;
	color: #fff;
	border: none;
	padding: 8px 16px;
	border-radius: 4px;
	cursor: pointer;
	margin-top: 8px;
	font-size: 13px;
}

/* --- Uçuş kartları --- */
.nsh-flight-results-page .nsh-flight-cards {
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
}

.nsh-flight-results-page .nsh-flight-card {
	display: grid !important;
	grid-template-columns: 120px 1fr auto 1fr auto auto !important;
	align-items: center !important;
	gap: 20px !important;
	padding: 20px !important;
	background: var(--nsh-bg) !important;
	border-radius: 10px !important;
	border: var(--nsh-card-border) !important;
	box-shadow: var(--nsh-card-shadow) !important;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.nsh-flight-results-page .nsh-flight-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--nsh-card-shadow-hover) !important;
}

/* --- Sıralı giriş animasyonu (.nsh-reveal) --- */
/* animation kullanılır (transition DEĞİL) → hover transform'uyla çakışmaz. */
@keyframes nsh-reveal-in {
	from { opacity: 0; transform: translateY(14px); }
	to   { opacity: 1; transform: translateY(0); }
}

.nsh-flight-results-page .nsh-reveal {
	opacity: 0;
}

.nsh-flight-results-page .nsh-reveal.is-visible {
	animation: nsh-reveal-in 0.45s var(--nsh-ease) both;
}

/* Animasyon bitince: görünür kal, transform serbest (hover lift çalışır). */
.nsh-flight-results-page .nsh-reveal.nsh-revealed {
	opacity: 1;
}

.nsh-flight-results-page .nsh-flight-airline {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.nsh-flight-results-page .nsh-airline-code {
	display: inline-block;
	background: #5191fa;
	color: #fff;
	padding: 6px 10px;
	border-radius: 4px;
	font-weight: bold;
	font-size: 13px;
	margin-right: 8px;
	align-self: flex-start;
}

.nsh-flight-results-page .nsh-airline-name {
	font-size: 13px;
	color: var(--nsh-muted);
}

.nsh-flight-results-page .nsh-flight-time {
	font-size: 20px;
	font-weight: 600;
	color: #333;
}

.nsh-flight-results-page .nsh-flight-airport {
	color: #888;
	font-size: 12px;
	display: block;
}

.nsh-flight-results-page .nsh-flight-duration {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	text-align: center;
	color: var(--nsh-muted);
	font-size: 13px;
}

.nsh-flight-results-page .nsh-duration-label {
	color: var(--nsh-muted);
}

/* Direkt/aktarmalı chip rozeti (generic .nsh-stop-chip). */
.nsh-flight-results-page .nsh-stop-chip {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.6;
}

.nsh-flight-results-page .nsh-stop-direct {
	background: rgba(81, 145, 250, 0.10);
	color: var(--nsh-primary);
}

.nsh-flight-results-page .nsh-stop-connecting {
	background: #f1f3f5;
	color: #6b7280;
}

.nsh-flight-results-page .nsh-flight-price {
	font-size: 20px;
	font-weight: 700;
	color: #5191fa;
	text-align: right;
}

/* CTA — tema primary mavisiyle (#5191fa) tutarlı; "Ara"/"Search" ile aynı dil. */
.nsh-flight-results-page .nsh-book-button {
	background: var(--nsh-primary) !important;
	color: #fff !important;
	padding: 10px 20px;
	border-radius: 8px;
	border: none;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background 0.2s ease, transform 0.2s ease;
}

.nsh-flight-results-page .nsh-book-button:hover {
	background: var(--nsh-primary-dark) !important;
	transform: translateY(-1px);
}

.nsh-flight-results-page .nsh-no-results {
	text-align: center;
	padding: 60px 20px;
	color: var(--nsh-muted);
	font-size: 16px;
	background: #fff;
	border: 1px dashed var(--nsh-border);
	border-radius: 8px;
}

.nsh-flight-results-page .nsh-error {
	color: #c0392b;
	text-align: center;
	padding: 24px;
}

/* ----------------------------------------------------------------------- *
 * MOBİL RESPONSIVE
 * ----------------------------------------------------------------------- */
@media (max-width: 768px) {
	.nsh-flight-results-page .nsh-results-layout {
		grid-template-columns: 1fr !important;
	}

	.nsh-flight-results-page .nsh-flight-card {
		grid-template-columns: 1fr !important;
		text-align: center !important;
	}

	.nsh-flight-results-page .nsh-flight-price {
		text-align: center;
	}

	.nsh-flight-results-page .nsh-airline-code {
		align-self: center;
		margin-right: 0;
	}

	.nsh-flight-results-page .nsh-filter-sidebar {
		position: relative !important;
		top: auto !important;
	}
}

/* ----------------------------------------------------------------------- *
 * RTL DESTEĞİ (Arapça vb. — GTranslate ile uyumlu)
 * ----------------------------------------------------------------------- */
[dir="rtl"] .nsh-flight-tab {
	direction: rtl;
	text-align: right;
}

[dir="rtl"] .nsh-flight-results-page {
	direction: rtl;
}

[dir="rtl"] .nsh-airport-from,
[dir="rtl"] .nsh-airport-to {
	text-align: right;
}

/* Flexbox yönlerini ve boşlukları aynala */
[dir="rtl"] .nsh-trip-type,
[dir="rtl"] .nsh-flight-airline {
	flex-direction: row-reverse;
}

[dir="rtl"] .nsh-pax-popover {
	left: auto;
	right: 0;
}

[dir="rtl"] .nsh-pax-trigger {
	text-align: right;
}

[dir="rtl"] .nsh-flight-results-page .nsh-flight-price {
	text-align: left;
}

[dir="rtl"] .nsh-flight-results-page .nsh-airline-code {
	margin-right: 0;
	margin-left: 8px;
}

[dir="rtl"] .nsh-flight-results-page .nsh-results-layout {
	direction: rtl;
}

/* ----------------------------------------------------------------------- *
 * FİLTRE GİZLEME
 * Kart '.nsh-flight-card { display: grid !important }' olduğu için jQuery
 * .hide() (inline display:none) ezilir. Class-based gizleme ile çözülür.
 * ----------------------------------------------------------------------- */
.nsh-flight-results-page .nsh-flight-card.nsh-hidden {
	display: none !important;
}

/* ----------------------------------------------------------------------- *
 * noUiSlider (hibrit fiyat slider'ı)
 * ----------------------------------------------------------------------- */
.nsh-flight-results-page .noUi-target {
	background: #e5e7eb;
	height: 6px;
	border: none;
	box-shadow: none;
}
.nsh-flight-results-page .noUi-connect {
	background: #5191fa;
}
.nsh-flight-results-page .noUi-handle {
	width: 20px !important;
	height: 20px !important;
	border-radius: 50% !important;
	background: #5191fa !important;
	border: 3px solid #fff !important;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2) !important;
	cursor: pointer;
	top: -8px !important;
	right: -10px !important;
}
.nsh-flight-results-page .noUi-handle::before,
.nsh-flight-results-page .noUi-handle::after {
	display: none;
}

/* ----------------------------------------------------------------------- *
 * LEAD MODAL
 * ----------------------------------------------------------------------- */
.nsh-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	/* Backdrop fade-in (JS .nsh-open ekler). */
	opacity: 0;
	transition: opacity 0.2s ease;
}

.nsh-modal-overlay.nsh-open {
	opacity: 1;
}

/* Kapanış daha hızlı (~160ms). */
.nsh-modal-overlay.nsh-closing,
.nsh-modal-overlay.nsh-closing .nsh-modal-content {
	transition-duration: 0.16s;
}

.nsh-modal-content {
	background: #fff;
	border-radius: 12px;
	max-width: 480px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	padding: 32px;
	position: relative;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
	/* Panel scale/fade — açılışta 0.96 → 1. */
	transform: scale(0.96);
	opacity: 0;
	transition: transform 0.24s var(--nsh-ease), opacity 0.24s var(--nsh-ease);
}

.nsh-modal-overlay.nsh-open .nsh-modal-content {
	transform: scale(1);
	opacity: 1;
}

.nsh-modal-close {
	position: absolute;
	top: 16px;
	right: 16px;
	background: transparent;
	border: none;
	font-size: 28px;
	color: #888;
	cursor: pointer;
	line-height: 1;
	padding: 4px 10px;
}
.nsh-modal-close:hover {
	color: #333;
}

.nsh-modal-header h2 {
	margin: 0 0 8px 0;
	font-size: 22px;
	color: #1f2937;
}

.nsh-modal-subtitle {
	color: #6b7280;
	font-size: 14px;
	margin: 0 0 24px 0;
}

.nsh-modal-flight-summary {
	/* İç özet zemini kırık-beyaz (panel beyazıyla hafif kontrast). */
	background: var(--nsh-bg-soft);
	border: var(--nsh-card-border);
	border-radius: 8px;
	padding: 16px;
	margin-bottom: 24px;
}

.nsh-modal-flight-airline {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
}

.nsh-modal-flight-airline .nsh-airline-code {
	background: #5191fa;
	color: #fff;
	padding: 4px 10px;
	border-radius: 4px;
	font-weight: bold;
	font-size: 13px;
}

.nsh-modal-flight-route {
	font-size: 18px;
	font-weight: 600;
	margin: 8px 0;
}

.nsh-modal-flight-details {
	color: #6b7280;
	font-size: 13px;
	margin-bottom: 12px;
}

.nsh-modal-separator {
	margin: 0 6px;
}

.nsh-modal-flight-price {
	font-size: 22px;
	font-weight: 700;
	color: #5191fa;
}

.nsh-form-row {
	margin-bottom: 16px;
}

.nsh-form-row label {
	display: block;
	margin-bottom: 6px;
	font-weight: 500;
	font-size: 14px;
	color: #374151;
}

.nsh-required {
	color: #ef4444;
}

.nsh-form-row input[type="text"],
.nsh-form-row input[type="tel"],
.nsh-form-row input[type="email"],
.nsh-form-row textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	font-size: 14px;
	box-sizing: border-box;
}

.nsh-form-row input:focus,
.nsh-form-row textarea:focus {
	outline: none;
	border-color: #5191fa;
	box-shadow: 0 0 0 3px rgba(81, 145, 250, 0.1);
}

.nsh-form-kvkk .nsh-checkbox-label {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	font-size: 13px;
	color: #6b7280;
}

.nsh-form-kvkk a {
	color: #5191fa;
	text-decoration: underline;
}

.nsh-form-actions {
	display: flex;
	gap: 12px;
	margin-top: 24px;
}

.nsh-modal-cancel {
	flex: 1;
	background: #f3f4f6;
	color: #374151;
	border: none;
	padding: 12px 24px;
	border-radius: 6px;
	font-weight: 500;
	cursor: pointer;
}

.nsh-modal-submit {
	flex: 2;
	background: #5191fa;
	color: #fff;
	border: none;
	padding: 12px 24px;
	border-radius: 6px;
	font-weight: 600;
	cursor: pointer;
}

.nsh-modal-submit:hover {
	background: #3d7fe8;
}

.nsh-form-loading {
	text-align: center;
	padding: 40px 20px;
	color: #6b7280;
}

.nsh-spinner {
	display: inline-block;
	width: 24px;
	height: 24px;
	border: 3px solid #f3f4f6;
	border-top-color: #5191fa;
	border-radius: 50%;
	animation: nsh-spin 0.8s linear infinite;
	margin-right: 10px;
	vertical-align: middle;
}

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

.nsh-modal-success {
	text-align: center;
	padding: 30px 20px;
}

.nsh-success-icon {
	width: 60px;
	height: 60px;
	background: #10b981;
	color: #fff;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 32px;
	margin-bottom: 16px;
}

/* Başarı tiki "pop" — hafif overshoot (JS .nsh-pop-go ekler). */
@keyframes nsh-pop {
	0%   { transform: scale(0.6); }
	100% { transform: scale(1); }
}

.nsh-success-icon.nsh-pop-go {
	animation: nsh-pop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

.nsh-modal-success h3 {
	color: #10b981;
	margin: 0 0 8px 0;
}

.nsh-success-detail {
	color: #6b7280;
	font-size: 13px;
	margin-top: 12px;
}

.nsh-modal-close-success {
	background: #5191fa;
	color: #fff;
	border: none;
	padding: 10px 24px;
	border-radius: 6px;
	font-weight: 500;
	cursor: pointer;
	margin-top: 20px;
}

.nsh-modal-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	padding: 16px;
	border-radius: 6px;
	color: #991b1b;
	text-align: center;
}

.nsh-modal-retry {
	background: #5191fa;
	color: #fff;
	border: none;
	padding: 8px 20px;
	border-radius: 4px;
	cursor: pointer;
	margin-top: 8px;
}

/* =========================================================================
 * HAVALİMANI AUTOCOMPLETE — generic .nsh-autocomplete-* (uçak + gelecekte otobüs)
 * Tema "hücre dili"yle uyumlu: kırık-beyaz panel, mavi IATA rozeti, gri ad.
 * Animasyon yok (anlık) → prefers-reduced-motion güvenli.
 * ===================================================================== */
.nsh-autocomplete {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	z-index: 60;
	max-height: 320px;
	overflow-y: auto;
	background: var(--nsh-bg);
	border: 1px solid var(--nsh-border);
	border-radius: 10px;
	box-shadow: 0 12px 32px rgba(43, 47, 51, 0.12);
	padding: 6px;
	box-sizing: border-box;
	/* Mobil/dar ekran guard: input'u/ekranı aşıp yatay scroll yaratma. */
	max-width: calc(100vw - 24px);
}

.nsh-autocomplete[hidden] {
	display: none;
}

/* Masaüstü: dropdown içeriğe göre genişlesin — havalimanı adları kırpılmasın.
 * right:auto + width:max-content ile sağa doğru açılır; min-width tabanı,
 * max-width tavanı (çok uzun adlarda ellipsis emniyeti yine devrede). */
@media (min-width: 992px) {
	.nsh-autocomplete {
		right: auto;
		min-width: 360px;
		width: max-content;
		max-width: min(460px, calc(100vw - 24px));
	}
}

/* Grup başlığı (Türkiye / Uluslararası) */
.nsh-ac-group {
	padding: 8px 10px 4px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nsh-muted);
}

/* Öneri satırı */
.nsh-ac-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 9px 10px;
	border-radius: 8px;
	cursor: pointer;
}

.nsh-ac-item.is-active,
.nsh-ac-item:hover {
	background: var(--nsh-bg-soft);
}

/* Sol ikon (uçak) */
.nsh-ac-ico {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	color: var(--nsh-muted);
}

.nsh-ac-ico svg {
	width: 18px;
	height: 18px;
	display: block;
}

/* Orta blok: şehir (koyu) + havalimanı adı (gri, altta) */
.nsh-ac-main {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}

.nsh-ac-city {
	font-size: 15px;
	font-weight: 600;
	color: var(--nsh-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.nsh-ac-name {
	font-size: 12.5px;
	color: var(--nsh-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Sağ: IATA kodu rozeti (mavi) */
.nsh-ac-code {
	flex: 0 0 auto;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.03em;
	color: var(--nsh-primary);
	background: rgba(81, 145, 250, 0.10);
	border-radius: 6px;
	padding: 3px 8px;
}

/* =========================================================================
 * OTOBÜS FORMU — flight form kurallarını yansıt, ek otobüse özel ekler
 * nsh-bus-* sınıfları: flight form ile özdeş değer/davranış, ayrı selector.
 * ========================================================================= */

/* Label + hücre dili (uçakla aynı). */
.nsh-bus-form {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nsh-bus-form label {
	font-size: 14px;
	font-weight: 400;
	color: var(--nsh-muted);
	margin-bottom: 2px;
	display: block;
}

.nsh-bus-form .nsh-cell {
	flex-direction: row;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	position: relative;
	min-width: 0;
}

/* Beyaz zemin — bus-from/to input ve date-search, pax-trigger. */
.nsh-bus-form .nsh-bus-from,
.nsh-bus-form .nsh-bus-to,
.nsh-bus-form .nsh-bus-date-search,
.nsh-bus-form .nsh-bus-pax-trigger {
	background: var(--nsh-bg);
}

/* Input kutusuz şeffaf mavi değer. */
.nsh-bus-form .nsh-cell-input,
.nsh-bus-form .nsh-bus-from,
.nsh-bus-form .nsh-bus-to {
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	outline: none;
}

.nsh-bus-form .nsh-bus-from::placeholder,
.nsh-bus-form .nsh-bus-to::placeholder {
	color: var(--nsh-primary);
	opacity: 0.55;
}

.nsh-bus-form .nsh-cell:focus-within {
	background: rgba(81, 145, 250, 0.04);
}

/* Picker overlay input — tamamen şeffaf, kutuyu kaplar. */
.nsh-bus-form .nsh-bus-check-in-out,
.nsh-bus-check-in-out {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent !important;
	color: transparent !important;
	cursor: pointer;
}

/* Date search wrapper. */
.nsh-bus-date-search {
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
}

/* Render span'leri — check-in-wrapper ile aynı. */
.nsh-bus-form .nsh-check-in-wrapper {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 16px;
	color: var(--nsh-primary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Otobüs arama grid'i (uçak ile aynı yapı). */
.nsh-bus-search {
	display: grid;
	grid-template-columns: 1fr;
	background: var(--nsh-bg);
	border-radius: 10px;
	box-shadow: var(--nsh-card-shadow);
}

.nsh-bus-search .nsh-cell + .nsh-cell,
.nsh-bus-search .nsh-cell + .nsh-field-submit {
	border-top: 1px solid #eef1f4;
}

/* Yolcu pax trigger — uçak .nsh-pax-trigger ile aynı. */
.nsh-bus-pax-trigger {
	display: block;
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	cursor: pointer;
	text-align: left;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	overflow: hidden;
}

.nsh-bus-pax-summary {
	display: block;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--nsh-primary);
}

/* Bus pax popover — .nsh-pax-popover ile aynı animasyon + boyut. */
.nsh-bus-pax-popover {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	width: 280px;
	max-width: 92vw;
	background: #fff;
	border: 1px solid var(--nsh-border);
	border-radius: var(--nsh-radius);
	box-shadow: var(--nsh-shadow);
	padding: 14px;
	z-index: 900;
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity 0.15s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.15s cubic-bezier(0.22, 1, 0.36, 1);
}

.nsh-bus-pax-popover.nsh-open {
	opacity: 1;
	transform: translateY(0);
}

.nsh-bus-pax-popover .nsh-stepper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 0;
}

/* Tamam butonu. */
.nsh-bus-pax-done {
	width: 100%;
	margin-top: 12px;
}

/* ≥768px: otobüs arama tek satır yatay (uçak gibi; tarih + kalkış + varış + yolcu + ara). */
@media (min-width: 768px) {
	.nsh-bus-search {
		grid-template-columns: 1.3fr 1.3fr 1.4fr 1.2fr auto;
		align-items: stretch;
	}
	.nsh-bus-search .nsh-cell + .nsh-cell,
	.nsh-bus-search .nsh-cell + .nsh-field-submit {
		border-top: none;
	}
}

/* ≥992px: dikey ayraç (uçak gibi). */
@media (min-width: 992px) {
	.nsh-bus-search .nsh-field-from,
	.nsh-bus-search .nsh-field-to,
	.nsh-bus-search .nsh-field-date {
		border-right: 1px solid #d7dce3;
	}
}

/* =========================================================================
 * OTOBÜS SONUÇ SAYFASI — .nsh-bus-results-page wrapper + kart görünürlüğü
 * ========================================================================= */

/* Otobüs sonuç sayfası wrapper — flight-results-page ile paralel. */
.nsh-bus-results-page .nsh-flight-results-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px 16px;
}

/* Başlık — iki satırlı güzergah (şehir koyu + terminal gri). */
.nsh-bus-results-page .nsh-bus-results-title {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0 4px;
	line-height: 1.2;
}

.nsh-bus-results-page .nsh-bus-route-loc {
	display: inline-flex;
	flex-direction: column;
}

.nsh-bus-results-page .nsh-bus-city-name {
	font-size: 28px;
	font-weight: 700;
	color: #5191fa;
	line-height: 1.1;
}

.nsh-bus-results-page .nsh-bus-terminal-label {
	font-size: 12px;
	font-weight: 400;
	color: #888;
	line-height: 1.5;
}

.nsh-bus-results-page .nsh-bus-route-arrow {
	font-size: 24px;
	color: #5191fa;
	padding: 0 6px;
	line-height: 1.3;
	align-self: flex-start;
}

.nsh-bus-results-page .nsh-bus-route-suffix {
	font-size: 28px;
	font-weight: 700;
	color: #5191fa;
	align-self: flex-start;
	line-height: 1.1;
	padding-left: 4px;
}

/* Kart içi iki satırlı terminal (şehir + otogar adı). */
.nsh-bus-results-page .nsh-bus-airport {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.nsh-bus-results-page .nsh-bus-city {
	font-size: 12px;
	font-weight: 600;
	color: #555;
	line-height: 1.3;
}

.nsh-bus-results-page .nsh-bus-terminal {
	font-size: 10px;
	color: #999;
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 110px;
}

/* Filtrelenmiş otobüs kartları gizleme. */
.nsh-bus-card.nsh-hidden {
	display: none !important;
}

/* Hareket azaltma: otobüs sonuç animasyonları kapalı. */
@media (prefers-reduced-motion: reduce) {
	.nsh-bus-results-page .nsh-reveal,
	.nsh-bus-results-page .nsh-reveal.is-visible {
		animation: none !important;
		opacity: 1 !important;
	}
	.nsh-bus-results-page .nsh-flight-card,
	.nsh-bus-results-page .nsh-flight-card:hover {
		transition: none !important;
		transform: none !important;
	}
	.nsh-bus-pax-popover {
		transition: none;
	}
}

/* =========================================================================
 * TUR FORMU — bus form kurallarını yansıtır; .nsh-tour-form-wrap scoped
 * ========================================================================= */

/* Wrapper: dikey stack + boşluk (bus-form ile aynı). */
.nsh-tour-form-wrap {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

/* Label dili: gri, 14px, 400 (bus-form ile aynı). */
.nsh-tour-form-wrap label {
	font-size: 14px;
	font-weight: 400;
	color: var(--nsh-muted);
	margin-bottom: 2px;
	display: block;
}

/* Hücre: ikon + body satırı, padding, relative (bus-form ile aynı). */
.nsh-tour-form-wrap .nsh-cell {
	flex-direction: row;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	position: relative;
	min-width: 0;
}

/* Odak tonu (bus-form ile aynı). */
.nsh-tour-form-wrap .nsh-cell:focus-within {
	background: rgba(81, 145, 250, 0.04);
}

/* Input + select: borderless, şeffaf zemin, mavi değer. */
.nsh-tour-form-wrap .nsh-cell-input {
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	outline: none;
}

/* Select native ok gizle (konum: serbest metin; kişi sayısı: select). */
.nsh-tour-form-wrap select.nsh-cell-input {
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

/* Konum placeholder (soluk mavi — bus/flight ile aynı). */
.nsh-tour-form-wrap .nsh-tour-location::placeholder {
	color: var(--nsh-primary);
	opacity: 0.55;
}

/* Date search wrapper: relative + flex (bus-date-search ile aynı). */
.nsh-tour-date-search {
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
}

/* ⚠️ KRİTİK — picker overlay input: TAMAMEN ŞEFFAF, kutuyu kaplar.
 * Saatli/ham değer asla görünmez; görünen = .nsh-tour-check-in-render span'leridir.
 * bus-check-in-out kuralının birebir kopyası (.nsh-tour-* prefix). */
.nsh-tour-form-wrap .nsh-tour-check-in-out,
.nsh-tour-check-in-out {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent !important;
	color: transparent !important;
	cursor: pointer;
}

/* Render span'leri satırı: mavi, ellipsis (bus .nsh-check-in-wrapper ile aynı). */
.nsh-tour-form-wrap .nsh-check-in-wrapper {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 16px;
	color: var(--nsh-primary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Tur arama grid'i: mobil 1 sütun, beyaz kart (bus-search ile aynı yapı). */
.nsh-tour-search {
	display: grid;
	grid-template-columns: 1fr;
	background: var(--nsh-bg);
	border-radius: 10px;
	box-shadow: var(--nsh-card-shadow);
}

/* Mobil: üst ayraç (bus-search ile aynı). */
.nsh-tour-search .nsh-cell + .nsh-cell,
.nsh-tour-search .nsh-cell + .nsh-field-submit {
	border-top: 1px solid #eef1f4;
}

/* ≥768px: tek satır yatay — Konum | Tarih | Kişi | Ara. */
@media (min-width: 768px) {
	.nsh-tour-search {
		grid-template-columns: 1.6fr 1.4fr 1.2fr auto;
		align-items: stretch;
	}

	.nsh-tour-search .nsh-cell + .nsh-cell,
	.nsh-tour-search .nsh-cell + .nsh-field-submit {
		border-top: none;
	}
}

/* ≥992px: dikey ayraç (Konum + Tarih sonrası, Kişi + Ara öncesinde yok). */
@media (min-width: 992px) {
	.nsh-tour-search .nsh-field-from,
	.nsh-tour-search .nsh-field-date {
		border-right: 1px solid #d7dce3;
	}
}

/* Kişi alanı: saf beyaz zemin (bus-form ile aynı). */
.nsh-tour-form-wrap .nsh-tour-date-search,
.nsh-tour-form-wrap .nsh-tour-pax-trigger {
	background: var(--nsh-bg);
}

/* Kişi sayısı trigger butonu — .nsh-bus-pax-trigger ile aynı desen. */
.nsh-tour-pax-trigger {
	display: block;
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	cursor: pointer;
	text-align: left;
	font-size: inherit;
	line-height: inherit;
	white-space: nowrap;
	overflow: hidden;
}

.nsh-tour-pax-summary {
	display: block;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--nsh-primary);
}

/* Kişi popover — .nsh-bus-pax-popover ile aynı animasyon + boyut. */
.nsh-tour-pax-popover {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 9999;
	background: var(--nsh-bg);
	border: 1px solid var(--nsh-border);
	border-radius: var(--nsh-radius);
	box-shadow: var(--nsh-shadow);
	padding: 16px;
	min-width: 220px;
	opacity: 0;
	transform: translateY(-6px);
	transition:
		opacity 0.15s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.15s cubic-bezier(0.22, 1, 0.36, 1);
}

.nsh-tour-pax-popover.nsh-open {
	opacity: 1;
	transform: translateY(0);
}

.nsh-tour-pax-popover .nsh-stepper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

/* Tamam butonu. */
.nsh-tour-pax-done {
	width: 100%;
	margin-top: 12px;
}

@media (prefers-reduced-motion: reduce) {
	.nsh-tour-pax-popover {
		transition: none;
	}
}

[dir="rtl"] .nsh-tour-pax-popover {
	left: auto;
	right: 0;
}

/* =========================================================================
 * AKTİVİTE FORMU — tour-form kurallarını yansıtır; kişi seçici YOK (Konum | Tarih | Ara)
 * .nsh-activity-* sınıfları, .nsh-tour-* ile birebir aynı yapı.
 * ========================================================================= */

.nsh-activity-form-wrap {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nsh-activity-form-wrap label {
	font-size: 14px;
	font-weight: 400;
	color: var(--nsh-muted);
	margin-bottom: 2px;
	display: block;
}

.nsh-activity-form-wrap .nsh-cell {
	flex-direction: row;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	position: relative;
	min-width: 0;
}

.nsh-activity-form-wrap .nsh-cell:focus-within {
	background: rgba(81, 145, 250, 0.04);
}

.nsh-activity-form-wrap .nsh-cell-input {
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	outline: none;
}

.nsh-activity-form-wrap .nsh-activity-location::placeholder {
	color: var(--nsh-primary);
	opacity: 0.55;
}

.nsh-activity-date-search {
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
}

/* ⚠️ KRİTİK — picker overlay input: TAMAMEN ŞEFFAF, kutuyu kaplar.
 * Saatli/ham değer asla görünmez; görünen = .nsh-activity-check-in-render span'leridir.
 * .nsh-tour-check-in-out kuralının birebir kopyası (.nsh-activity-* prefix). */
.nsh-activity-form-wrap .nsh-activity-check-in-out,
.nsh-activity-check-in-out {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent !important;
	color: transparent !important;
	cursor: pointer;
}

.nsh-activity-form-wrap .nsh-check-in-wrapper {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 16px;
	color: var(--nsh-primary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Aktivite arama grid'i: mobil 1 sütun, beyaz kart (tour-search ile aynı yapı). */
.nsh-activity-search {
	display: grid;
	grid-template-columns: 1fr;
	background: var(--nsh-bg);
	border-radius: 10px;
	box-shadow: var(--nsh-card-shadow);
}

.nsh-activity-search .nsh-cell + .nsh-cell,
.nsh-activity-search .nsh-cell + .nsh-field-submit {
	border-top: 1px solid #eef1f4;
}

/* ≥768px: tek satır yatay — Konum | Tarih | Ara (kişi seçici YOK; tur'dan 1 sütun az). */
@media (min-width: 768px) {
	.nsh-activity-search {
		grid-template-columns: 1.6fr 1.4fr auto;
		align-items: stretch;
	}

	.nsh-activity-search .nsh-cell + .nsh-cell,
	.nsh-activity-search .nsh-cell + .nsh-field-submit {
		border-top: none;
	}
}

/* ≥992px: dikey ayraç (Konum + Tarih sonrası; Ara öncesinde yok). */
@media (min-width: 992px) {
	.nsh-activity-search .nsh-field-from,
	.nsh-activity-search .nsh-field-date {
		border-right: 1px solid #d7dce3;
	}
}

/* Tarih alanı: saf beyaz zemin. */
.nsh-activity-form-wrap .nsh-activity-date-search {
	background: var(--nsh-bg);
}

/* =========================================================================
 * OTEL FORMU — tour-form kurallarını yansıtır; Konum | Tarih | Misafir | Ara (4 sütun)
 * .nsh-hotel-* sınıfları, .nsh-tour-* ile aynı yapı + oda sayısı stepper.
 * ========================================================================= */

.nsh-hotel-form-wrap {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nsh-hotel-form-wrap label {
	font-size: 14px;
	font-weight: 400;
	color: var(--nsh-muted);
	margin-bottom: 2px;
	display: block;
}

.nsh-hotel-form-wrap .nsh-cell {
	flex-direction: row;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	position: relative;
	min-width: 0;
}

.nsh-hotel-form-wrap .nsh-cell:focus-within {
	background: rgba(81, 145, 250, 0.04);
}

.nsh-hotel-form-wrap .nsh-cell-input {
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	outline: none;
}

.nsh-hotel-form-wrap .nsh-hotel-location::placeholder {
	color: var(--nsh-primary);
	opacity: 0.55;
}

.nsh-hotel-date-search {
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
}

/* ⚠️ KRİTİK — picker overlay input: TAMAMEN ŞEFFAF.
 * Ham/saatli değer asla görünmez; görünen = .nsh-hotel-check-in-render span'leridir. */
.nsh-hotel-form-wrap .nsh-hotel-check-in-out,
.nsh-hotel-check-in-out {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent !important;
	color: transparent !important;
	cursor: pointer;
}

.nsh-hotel-form-wrap .nsh-check-in-wrapper {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 16px;
	color: var(--nsh-primary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Otel arama grid'i: mobil 1 sütun. */
.nsh-hotel-search {
	display: grid;
	grid-template-columns: 1fr;
	background: var(--nsh-bg);
	border-radius: 10px;
	box-shadow: var(--nsh-card-shadow);
}

.nsh-hotel-search .nsh-cell + .nsh-cell,
.nsh-hotel-search .nsh-cell + .nsh-field-submit {
	border-top: 1px solid #eef1f4;
}

/* ≥768px: tek satır yatay — Konum | Tarih | Misafir | Ara (tur ile aynı 4 sütun). */
@media (min-width: 768px) {
	.nsh-hotel-search {
		grid-template-columns: 1.6fr 1.4fr 1.2fr auto;
		align-items: stretch;
	}

	.nsh-hotel-search .nsh-cell + .nsh-cell,
	.nsh-hotel-search .nsh-cell + .nsh-field-submit {
		border-top: none;
	}
}

/* ≥992px: dikey ayraç (Konum + Tarih + Misafir sonrası; Ara öncesinde yok). */
@media (min-width: 992px) {
	.nsh-hotel-search .nsh-field-from,
	.nsh-hotel-search .nsh-field-date,
	.nsh-hotel-search .nsh-field-hotel-pax {
		border-right: 1px solid #d7dce3;
	}
}

/* Tarih alanı: saf beyaz zemin. */
.nsh-hotel-form-wrap .nsh-hotel-date-search {
	background: var(--nsh-bg);
}

/* Misafir trigger butonu — .nsh-bus-pax-trigger ile aynı desen. */
.nsh-hotel-pax-trigger {
	display: block;
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	cursor: pointer;
	text-align: left;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	overflow: hidden;
}

.nsh-hotel-pax-summary {
	display: block;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--nsh-primary);
}

/* ⚠️ KRİTİK — Misafir popover: position:absolute + z-index zorunlu.
 * Aksi halde normal akışta render olur, grid layout'unu iter/bozar.
 * .nsh-bus-pax-popover referans alındı (birebir aynı konumlandırma). */
.nsh-hotel-pax-popover {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	width: 300px;
	max-width: 92vw;
	background: #fff;
	border: 1px solid var(--nsh-border);
	border-radius: var(--nsh-radius);
	box-shadow: var(--nsh-shadow);
	padding: 14px;
	z-index: 900;
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity 0.15s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.15s cubic-bezier(0.22, 1, 0.36, 1);
}

.nsh-hotel-pax-popover.nsh-open {
	opacity: 1;
	transform: translateY(0);
}

.nsh-hotel-pax-popover .nsh-stepper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 0;
	border-bottom: 1px solid var(--nsh-border);
}

.nsh-hotel-pax-popover .nsh-stepper:last-of-type {
	border-bottom: none;
}

.nsh-hotel-pax-done {
	width: 100%;
	margin-top: 12px;
}

@media (prefers-reduced-motion: reduce) {
	.nsh-hotel-pax-popover {
		transition: none;
	}
}

[dir="rtl"] .nsh-hotel-pax-popover {
	left: auto;
	right: 0;
}

/* =========================================================================
 * KİRALAMA FORMU — otel-form kurallarını yansıtır; Konum | Tarih | Misafir | Ara (4 sütun)
 * .nsh-rental-* sınıfları. Otel'den farkı: oda sayısı stepper yok.
 * ========================================================================= */

.nsh-rental-form-wrap {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nsh-rental-form-wrap label {
	font-size: 14px;
	font-weight: 400;
	color: var(--nsh-muted);
	margin-bottom: 2px;
	display: block;
}

.nsh-rental-form-wrap .nsh-cell {
	flex-direction: row;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	position: relative;
	min-width: 0;
}

.nsh-rental-form-wrap .nsh-cell:focus-within {
	background: rgba(81, 145, 250, 0.04);
}

.nsh-rental-form-wrap .nsh-cell-input {
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	outline: none;
}

.nsh-rental-form-wrap .nsh-rental-location::placeholder {
	color: var(--nsh-primary);
	opacity: 0.55;
}

.nsh-rental-date-search {
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
}

/* ⚠️ KRİTİK — picker overlay input: TAMAMEN ŞEFFAF.
 * Ham/saatli değer asla görünmez; görünen = .nsh-rental-check-in-render span'leridir. */
.nsh-rental-form-wrap .nsh-rental-check-in-out,
.nsh-rental-check-in-out {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent !important;
	color: transparent !important;
	cursor: pointer;
}

.nsh-rental-form-wrap .nsh-check-in-wrapper {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 16px;
	color: var(--nsh-primary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Kiralama arama grid'i: mobil 1 sütun. */
.nsh-rental-search {
	display: grid;
	grid-template-columns: 1fr;
	background: var(--nsh-bg);
	border-radius: 10px;
	box-shadow: var(--nsh-card-shadow);
}

.nsh-rental-search .nsh-cell + .nsh-cell,
.nsh-rental-search .nsh-cell + .nsh-field-submit {
	border-top: 1px solid #eef1f4;
}

/* ≥768px: tek satır yatay — Konum | Tarih | Misafir | Ara (4 sütun). */
@media (min-width: 768px) {
	.nsh-rental-search {
		grid-template-columns: 1.6fr 1.4fr 1.2fr auto;
		align-items: stretch;
	}

	.nsh-rental-search .nsh-cell + .nsh-cell,
	.nsh-rental-search .nsh-cell + .nsh-field-submit {
		border-top: none;
	}
}

/* ≥992px: dikey ayraç (Konum + Tarih + Misafir sonrası). */
@media (min-width: 992px) {
	.nsh-rental-search .nsh-field-from,
	.nsh-rental-search .nsh-field-date,
	.nsh-rental-search .nsh-field-rental-pax {
		border-right: 1px solid #d7dce3;
	}
}

/* Tarih alanı: saf beyaz zemin. */
.nsh-rental-form-wrap .nsh-rental-date-search {
	background: var(--nsh-bg);
}

/* Misafir trigger butonu — .nsh-hotel-pax-trigger ile aynı desen. */
.nsh-rental-pax-trigger {
	display: block;
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	cursor: pointer;
	text-align: left;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	overflow: hidden;
}

.nsh-rental-pax-summary {
	display: block;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--nsh-primary);
}

/* ⚠️ KRİTİK — Misafir popover: position:absolute + z-index zorunlu.
 * Aksi halde normal akışta render olur, grid layout'unu iter/bozar.
 * .nsh-hotel-pax-popover referans alındı (birebir aynı konumlandırma). */
.nsh-rental-pax-popover {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	width: 280px;
	max-width: 92vw;
	background: #fff;
	border: 1px solid var(--nsh-border);
	border-radius: var(--nsh-radius);
	box-shadow: var(--nsh-shadow);
	padding: 14px;
	z-index: 900;
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity 0.15s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.15s cubic-bezier(0.22, 1, 0.36, 1);
}

.nsh-rental-pax-popover.nsh-open {
	opacity: 1;
	transform: translateY(0);
}

.nsh-rental-pax-popover .nsh-stepper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 0;
	border-bottom: 1px solid var(--nsh-border);
}

.nsh-rental-pax-popover .nsh-stepper:last-of-type {
	border-bottom: none;
}

.nsh-rental-pax-done {
	width: 100%;
	margin-top: 12px;
}

@media (prefers-reduced-motion: reduce) {
	.nsh-rental-pax-popover {
		transition: none;
	}
}

[dir="rtl"] .nsh-rental-pax-popover {
	left: auto;
	right: 0;
}

/* =========================================================================
 * ARAÇ KİRALAMA FORMU — activity-form kurallarını yansıtır; Alış Yeri | Tarih | Ara
 * (3 sütun, yolcu YOK). .nsh-cars-* sınıfları, .nsh-activity-* ile aynı yapı —
 * kişi seçici içermeyen Tip 2 forma en yakın örnek activity idi.
 * ========================================================================= */

.nsh-cars-form-wrap {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nsh-cars-form-wrap label {
	font-size: 14px;
	font-weight: 400;
	color: var(--nsh-muted);
	margin-bottom: 2px;
	display: block;
}

.nsh-cars-form-wrap .nsh-cell {
	flex-direction: row;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	position: relative;
	min-width: 0;
}

.nsh-cars-form-wrap .nsh-cell:focus-within {
	background: rgba(81, 145, 250, 0.04);
}

.nsh-cars-form-wrap .nsh-cell-input {
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	outline: none;
}

.nsh-cars-form-wrap .nsh-cars-location::placeholder {
	color: var(--nsh-primary);
	opacity: 0.55;
}

.nsh-cars-date-search {
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
}

/* ⚠️ KRİTİK — picker overlay input: TAMAMEN ŞEFFAF, kutuyu kaplar.
 * Saatli/ham değer asla görünmez; görünen = .nsh-cars-check-in-render span'leridir.
 * .nsh-rental-check-in-out kuralının birebir kopyası (.nsh-cars-* prefix). */
.nsh-cars-form-wrap .nsh-cars-check-in-out,
.nsh-cars-check-in-out {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent !important;
	color: transparent !important;
	cursor: pointer;
}

.nsh-cars-form-wrap .nsh-check-in-wrapper {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 16px;
	color: var(--nsh-primary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Araç kiralama arama grid'i: mobil 1 sütun, beyaz kart. */
.nsh-cars-search {
	display: grid;
	grid-template-columns: 1fr;
	background: var(--nsh-bg);
	border-radius: 10px;
	box-shadow: var(--nsh-card-shadow);
}

.nsh-cars-search .nsh-cell + .nsh-cell,
.nsh-cars-search .nsh-cell + .nsh-field-submit {
	border-top: 1px solid #eef1f4;
}

/* ≥768px: tek satır yatay — Alış Yeri | Tarih | Ara (yolcu seçici YOK). */
@media (min-width: 768px) {
	.nsh-cars-search {
		grid-template-columns: 1.6fr 1.4fr auto;
		align-items: stretch;
	}

	.nsh-cars-search .nsh-cell + .nsh-cell,
	.nsh-cars-search .nsh-cell + .nsh-field-submit {
		border-top: none;
	}
}

/* ≥992px: dikey ayraç (Alış Yeri + Tarih sonrası; Ara öncesinde yok). */
@media (min-width: 992px) {
	.nsh-cars-search .nsh-field-from,
	.nsh-cars-search .nsh-field-date {
		border-right: 1px solid #d7dce3;
	}
}

/* Tarih alanı: saf beyaz zemin. */
.nsh-cars-form-wrap .nsh-cars-date-search {
	background: var(--nsh-bg);
}

/* =========================================================================
 * TRANSFER FORMU — bus-form kurallarını yansıtır; Nereden | Nereye | Tarih | Yolcu | Ara
 * (5 sütun + gidiş-dönüş/tek yön toggle). .nsh-transfer-* sınıfları — servis anahtarı
 * 'cartransfer' (panel id nsh-panel-cartransfer), ama CSS/JS/HTML tutarlılığı için
 * kısa 'transfer' öneki kullanılır.
 * ========================================================================= */

.nsh-transfer-form-wrap {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nsh-transfer-form-wrap label {
	font-size: 14px;
	font-weight: 400;
	color: var(--nsh-muted);
	margin-bottom: 2px;
	display: block;
}

.nsh-transfer-form-wrap .nsh-cell {
	flex-direction: row;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	position: relative;
	min-width: 0;
}

.nsh-transfer-form-wrap .nsh-cell:focus-within {
	background: rgba(81, 145, 250, 0.04);
}

.nsh-transfer-form-wrap .nsh-cell-input {
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	outline: none;
}

.nsh-transfer-form-wrap .nsh-transfer-from::placeholder,
.nsh-transfer-form-wrap .nsh-transfer-to::placeholder {
	color: var(--nsh-primary);
	opacity: 0.55;
}

.nsh-transfer-date-search {
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
}

/* ⚠️ KRİTİK — picker overlay input: TAMAMEN ŞEFFAF, kutuyu kaplar.
 * Saatli/ham değer asla görünmez; görünen = .nsh-transfer-check-in-render span'leridir. */
.nsh-transfer-form-wrap .nsh-transfer-check-in-out,
.nsh-transfer-check-in-out {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent !important;
	color: transparent !important;
	cursor: pointer;
}

.nsh-transfer-form-wrap .nsh-check-in-wrapper {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 16px;
	color: var(--nsh-primary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Transfer arama grid'i: mobil 1 sütun. */
.nsh-transfer-search {
	display: grid;
	grid-template-columns: 1fr;
	background: var(--nsh-bg);
	border-radius: 10px;
	box-shadow: var(--nsh-card-shadow);
}

.nsh-transfer-search .nsh-cell + .nsh-cell,
.nsh-transfer-search .nsh-cell + .nsh-field-submit {
	border-top: 1px solid #eef1f4;
}

/* ≥768px: tek satır yatay — Nereden | Nereye | Tarih | Yolcu | Ara (otobüs ile aynı 5 sütun). */
@media (min-width: 768px) {
	.nsh-transfer-search {
		grid-template-columns: 1.3fr 1.3fr 1.4fr 1.2fr auto;
		align-items: stretch;
	}

	.nsh-transfer-search .nsh-cell + .nsh-cell,
	.nsh-transfer-search .nsh-cell + .nsh-field-submit {
		border-top: none;
	}
}

/* ≥992px: dikey ayraç (Nereden + Nereye + Tarih sonrası; Yolcu + Ara öncesinde yok). */
@media (min-width: 992px) {
	.nsh-transfer-search .nsh-field-from,
	.nsh-transfer-search .nsh-field-to,
	.nsh-transfer-search .nsh-field-date {
		border-right: 1px solid #d7dce3;
	}
}

/* Tarih + yolcu tetikleyici alanları: saf beyaz zemin. */
.nsh-transfer-form-wrap .nsh-transfer-date-search,
.nsh-transfer-form-wrap .nsh-transfer-pax-trigger {
	background: var(--nsh-bg);
}

/* Yolcu trigger butonu — .nsh-bus-pax-trigger ile aynı desen. */
.nsh-transfer-pax-trigger {
	display: block;
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	cursor: pointer;
	text-align: left;
	font-size: 16px;
	line-height: 1.3;
	color: var(--nsh-primary);
	overflow: hidden;
}

.nsh-transfer-pax-summary {
	display: block;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--nsh-primary);
}

/* ⚠️ KRİTİK — Yolcu popover: position:absolute + z-index zorunlu.
 * Aksi halde normal akışta render olur, grid layout'unu iter/bozar.
 * .nsh-rental-pax-popover referans alındı (birebir aynı konumlandırma). */
.nsh-transfer-pax-popover {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	width: 280px;
	max-width: 92vw;
	background: #fff;
	border: 1px solid var(--nsh-border);
	border-radius: var(--nsh-radius);
	box-shadow: var(--nsh-shadow);
	padding: 14px;
	z-index: 900;
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity 0.15s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.15s cubic-bezier(0.22, 1, 0.36, 1);
}

.nsh-transfer-pax-popover.nsh-open {
	opacity: 1;
	transform: translateY(0);
}

.nsh-transfer-pax-popover .nsh-stepper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 0;
}

.nsh-transfer-pax-done {
	width: 100%;
	margin-top: 12px;
}

@media (prefers-reduced-motion: reduce) {
	.nsh-transfer-pax-popover {
		transition: none;
	}
}

[dir="rtl"] .nsh-transfer-pax-popover {
	left: auto;
	right: 0;
}

/* Dokunmatik hedefler — çift-dokunma zoom'unu engelle (responsive-mobile-web standardı).
 * Diğer servis formlarının buton/tetikleyicileri bu kuraldan önce eklenmedi; burada
 * SADECE bu görevde eklenen yeni etkileşimli öğeler kapsanır (regresyon riski yok). */
.nsh-cars-search-btn,
.nsh-transfer-search-btn,
.nsh-transfer-pax-trigger,
.nsh-transfer-pax-done {
	touch-action: manipulation;
}

/* =========================================================================
 * ╔═══════════════════════════════════════════════════════════════════════╗
 * ║  REDESIGN v1.0 — PREMIUM GÖRSEL KATMAN                                  ║
 * ║  Newstour seyahat kimliği: derin mavi + turkuaz aksan + sıcak amber.   ║
 * ║  Bu katman mevcut yapısal/fonksiyonel kuralları EZMEZ; yalnızca görsel ║
 * ║  yüzeyi (renk, gradient, gölge, hover, tipografi) premium'a yükseltir. ║
 * ║  Korunan kurallar: grid layout, datepicker şeffaflığı, .nsh-hidden.    ║
 * ╚═══════════════════════════════════════════════════════════════════════╝
 * ===================================================================== */

/* ---- 1) ANASAYFA ARAMA FORMU — premium kart + gradient CTA --------------- */
.nsh-flight-search,
.nsh-bus-form .nsh-flight-search {
	border-radius: var(--nsh-radius-lg);
	box-shadow: var(--nsh-shadow-md);
	/* overflow:hidden, autocomplete + tarih dropdown'ını formun altına taştığında
	   KIRPIYORDU (#011 — uçak/otobüs havalimanı önerileri görünmüyordu; araç kiralama
	   bu kuralda olmadığı için çalışıyordu). Dropdown'ların taşabilmesi için visible.
	   Radius + gölge görünümü korunur (grid hücreleri köşelere padding'li oturur). */
	overflow: visible;
}

/* Sekme grup barı — derin lacivert gradient + ince üst parlama */
.nsh-service-group-tabs {
	background: var(--nsh-gradient-ink);
	border-radius: var(--nsh-radius-lg) var(--nsh-radius-lg) 0 0;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.nsh-service-group-tab.is-active {
	border-bottom-color: var(--nsh-accent);
	color: #fff;
}

.nsh-service-group-panel {
	border-radius: 0 0 var(--nsh-radius-lg) var(--nsh-radius-lg);
}

/* Hizmet pill — aktifte gradient + yumuşak glow */
.nsh-service-switch-pill {
	transition: background 0.18s var(--nsh-ease), color 0.18s var(--nsh-ease),
		border-color 0.18s var(--nsh-ease), box-shadow 0.18s var(--nsh-ease), transform 0.18s var(--nsh-ease);
}

.nsh-service-switch-pill.is-active {
	background: var(--nsh-gradient);
	border-color: transparent;
	box-shadow: var(--nsh-glow);
}

.nsh-service-switch-pill:hover:not(.is-active) {
	transform: translateY(-1px);
}

/* Ana CTA "Ara" butonu — gradient + glow + ışıltı hover (genel buton dili) */
.nsh-search-btn,
.nsh-tour-search-btn,
.nsh-activity-search-btn,
.nsh-hotel-search-btn,
.nsh-rental-search-btn,
.nsh-cars-search-btn,
.nsh-transfer-search-btn {
	position: relative;
	overflow: hidden;
	border: none;
	border-radius: var(--nsh-radius-pill);
	background: var(--nsh-gradient);
	color: #fff;
	box-shadow: var(--nsh-glow);
	letter-spacing: 0.01em;
	transition: transform 0.2s var(--nsh-ease), box-shadow 0.2s var(--nsh-ease), filter 0.2s var(--nsh-ease);
}

.nsh-search-btn:hover,
.nsh-tour-search-btn:hover,
.nsh-activity-search-btn:hover,
.nsh-hotel-search-btn:hover,
.nsh-rental-search-btn:hover,
.nsh-cars-search-btn:hover,
.nsh-transfer-search-btn:hover {
	transform: translateY(-2px);
	box-shadow: var(--nsh-shadow-lg), var(--nsh-glow);
	filter: saturate(1.08);
}

.nsh-search-btn::after,
.nsh-tour-search-btn::after,
.nsh-activity-search-btn::after,
.nsh-hotel-search-btn::after,
.nsh-rental-search-btn::after,
.nsh-cars-search-btn::after,
.nsh-transfer-search-btn::after {
	content: "";
	position: absolute;
	top: 0;
	left: -120%;
	width: 60%;
	height: 100%;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.35), transparent);
	transform: skewX(-18deg);
	transition: left 0.6s var(--nsh-ease);
}

.nsh-search-btn:hover::after,
.nsh-tour-search-btn:hover::after,
.nsh-activity-search-btn:hover::after,
.nsh-hotel-search-btn:hover::after,
.nsh-rental-search-btn:hover::after,
.nsh-cars-search-btn:hover::after,
.nsh-transfer-search-btn:hover::after {
	left: 130%;
}

/* Yolcu/sınıf popover + stepper — premium yüzey */
.nsh-pax-popover,
.nsh-hotel-pax-popover,
.nsh-rental-pax-popover,
.nsh-transfer-pax-popover {
	border-radius: var(--nsh-radius);
	border-color: rgba(15, 30, 61, 0.08);
	box-shadow: var(--nsh-shadow-lg);
}

.nsh-stepper-controls button {
	border-radius: 10px;
	transition: border-color 0.15s var(--nsh-ease), color 0.15s var(--nsh-ease), background 0.15s var(--nsh-ease);
}

.nsh-stepper-controls button:hover:not(:disabled) {
	background: var(--nsh-primary-soft);
	border-color: var(--nsh-primary);
}

/* ---- 2) SONUÇ SAYFASI — zemin, başlık, meta ----------------------------- */
.nsh-flight-results-page {
	background:
		radial-gradient(1200px 480px at 80% -10%, rgba(11, 182, 212, 0.07), transparent 60%),
		radial-gradient(900px 420px at -5% 0%, rgba(47, 107, 246, 0.07), transparent 55%),
		var(--nsh-bg-soft);
}

.nsh-flight-results-page .nsh-results-header {
	margin-bottom: 28px;
}

.nsh-flight-results-page .nsh-results-header h1,
.nsh-bus-results-page .nsh-results-header h1 {
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--nsh-ink);
	line-height: 1.18;
}

.nsh-flight-results-page .nsh-results-meta {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 2px;
	color: var(--nsh-muted);
	font-size: 14px;
	font-weight: 500;
	background: var(--nsh-surface-glass);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border: 1px solid rgba(15, 30, 61, 0.05);
	padding: 7px 14px;
	border-radius: var(--nsh-radius-pill);
}

/* Bus başlık şehir adı — ink */
.nsh-bus-results-page .nsh-bus-city-name {
	color: var(--nsh-ink);
}

/* ---- 3) FİLTRE SIDEBAR — premium kart ----------------------------------- */
.nsh-flight-results-page .nsh-filter-sidebar {
	background: #fff;
	border: 1px solid rgba(15, 30, 61, 0.05);
	border-radius: var(--nsh-radius-lg);
	box-shadow: var(--nsh-shadow-sm);
	padding: 22px;
}

.nsh-flight-results-page .nsh-filter-sidebar .nsh-filter-title {
	font-size: 17px;
	font-weight: 700;
	color: var(--nsh-ink);
	border-bottom: 2px solid var(--nsh-bg-soft);
}

.nsh-flight-results-page .nsh-filter-label {
	color: var(--nsh-ink);
	letter-spacing: 0.01em;
}

.nsh-flight-results-page .nsh-filter-checkbox {
	border-radius: 8px;
	padding: 5px 6px;
	margin: 0 -6px;
	transition: background 0.14s var(--nsh-ease);
}

.nsh-flight-results-page .nsh-filter-checkbox:hover {
	background: var(--nsh-bg-soft);
}

.nsh-flight-results-page .nsh-filter-checkbox input[type="checkbox"] {
	accent-color: var(--nsh-primary);
	width: 16px;
	height: 16px;
}

.nsh-flight-results-page .nsh-filter-price-input {
	border-radius: 8px;
	border-color: var(--nsh-border);
}

.nsh-flight-results-page .nsh-filter-price-input:focus {
	outline: none;
	border-color: var(--nsh-primary);
	box-shadow: 0 0 0 3px var(--nsh-primary-soft);
}

/* "Filtreleri sıfırla" uyarısı + butonu */
.nsh-flight-results-page .nsh-filter-no-results {
	background: linear-gradient(135deg, rgba(245, 166, 35, 0.12), rgba(245, 166, 35, 0.05));
	border: 1px solid rgba(245, 166, 35, 0.25);
	border-radius: var(--nsh-radius);
	color: #8a5a00;
}

.nsh-flight-results-page .nsh-reset-filters,
.nsh-reset-filters {
	background: var(--nsh-gradient);
	border: none;
	border-radius: var(--nsh-radius-pill);
	padding: 9px 18px;
	font-weight: 600;
	box-shadow: var(--nsh-glow);
	transition: transform 0.18s var(--nsh-ease), box-shadow 0.18s var(--nsh-ease);
}

.nsh-flight-results-page .nsh-reset-filters:hover,
.nsh-reset-filters:hover {
	transform: translateY(-1px);
	box-shadow: var(--nsh-shadow-md), var(--nsh-glow);
}

/* ---- 4) UÇUŞ / OTOBÜS KARTLARI — premium yüzey + hover lift+glow --------- */
.nsh-flight-results-page .nsh-flight-card {
	position: relative !important;
	border-radius: var(--nsh-radius-lg) !important;
	border: 1px solid rgba(15, 30, 61, 0.05) !important;
	box-shadow: var(--nsh-shadow-sm) !important;
	transition: transform 0.22s var(--nsh-ease), box-shadow 0.22s var(--nsh-ease) !important;
}

.nsh-flight-results-page .nsh-flight-card:hover {
	transform: translateY(-3px) !important;
	box-shadow: var(--nsh-shadow-lg), inset 4px 0 0 var(--nsh-accent) !important;
}

/* Havayolu/firma kod rozeti — gradient */
.nsh-flight-results-page .nsh-airline-code,
.nsh-modal-flight-airline .nsh-airline-code {
	background: var(--nsh-gradient) !important;
	border-radius: 8px;
	letter-spacing: 0.03em;
	box-shadow: 0 3px 8px rgba(47, 107, 246, 0.25);
}

.nsh-flight-results-page .nsh-flight-time {
	color: var(--nsh-ink);
	font-weight: 700;
	letter-spacing: -0.01em;
}

/* Süre bloğu — kalkış→varış görsel uçuş çizgisi */
.nsh-flight-results-page .nsh-flight-duration::before {
	content: "";
	display: block;
	width: 100%;
	max-width: 120px;
	height: 2px;
	margin: 0 auto 2px;
	background: linear-gradient(90deg, var(--nsh-primary), var(--nsh-accent));
	border-radius: 2px;
	opacity: 0.5;
}

.nsh-flight-results-page .nsh-stop-direct {
	background: var(--nsh-primary-soft);
	color: var(--nsh-primary);
}

/* Fiyat — ink, güçlü */
.nsh-flight-results-page .nsh-flight-price {
	color: var(--nsh-ink);
	font-weight: 800;
	letter-spacing: -0.01em;
}

/* "Rezervasyon Yap" CTA — gradient + glow + ışıltı */
.nsh-flight-results-page .nsh-book-button {
	position: relative;
	overflow: hidden;
	background: var(--nsh-gradient) !important;
	border-radius: var(--nsh-radius-pill);
	box-shadow: var(--nsh-glow);
	transition: transform 0.2s var(--nsh-ease), box-shadow 0.2s var(--nsh-ease), filter 0.2s var(--nsh-ease) !important;
}

.nsh-flight-results-page .nsh-book-button:hover {
	background: var(--nsh-gradient) !important;
	transform: translateY(-2px);
	box-shadow: var(--nsh-shadow-md), var(--nsh-glow);
	filter: saturate(1.08);
}

.nsh-flight-results-page .nsh-book-button::after {
	content: "";
	position: absolute;
	top: 0;
	left: -120%;
	width: 55%;
	height: 100%;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.4), transparent);
	transform: skewX(-18deg);
	transition: left 0.6s var(--nsh-ease);
}

.nsh-flight-results-page .nsh-book-button:hover::after {
	left: 140%;
}

/* Boş sonuç durumu — premium */
.nsh-flight-results-page .nsh-no-results {
	background: #fff;
	border: 1px dashed rgba(15, 30, 61, 0.12);
	border-radius: var(--nsh-radius-lg);
	color: var(--nsh-muted);
	font-weight: 500;
}

/* noUiSlider — gradient connect + premium handle */
.nsh-flight-results-page .noUi-connect {
	background: var(--nsh-gradient);
}

.nsh-flight-results-page .noUi-handle {
	background: #fff !important;
	border: 2px solid var(--nsh-primary) !important;
	box-shadow: 0 2px 8px rgba(47, 107, 246, 0.35) !important;
}

/* ---- 5) LEAD MODAL — premium glass panel + gradient aksan --------------- */
.nsh-modal-overlay {
	background: rgba(15, 30, 61, 0.55);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.nsh-modal-content {
	border-radius: var(--nsh-radius-lg);
	box-shadow: var(--nsh-shadow-lg);
	border: 1px solid rgba(255, 255, 255, 0.6);
	/* Üstte ince gradient aksan şeridi */
	border-top: 3px solid transparent;
	background:
		linear-gradient(#fff, #fff) padding-box,
		var(--nsh-gradient) border-box;
}

.nsh-modal-header h2 {
	color: var(--nsh-ink);
	font-weight: 800;
	letter-spacing: -0.01em;
}

.nsh-modal-flight-summary {
	background: var(--nsh-gradient-soft);
	border: 1px solid rgba(47, 107, 246, 0.12);
	border-radius: var(--nsh-radius);
}

.nsh-modal-flight-route {
	color: var(--nsh-ink);
}

.nsh-modal-flight-price {
	color: var(--nsh-ink);
	font-weight: 800;
}

.nsh-form-row input[type="text"],
.nsh-form-row input[type="tel"],
.nsh-form-row input[type="email"],
.nsh-form-row textarea {
	border-radius: 10px;
	border-color: var(--nsh-border);
	transition: border-color 0.15s var(--nsh-ease), box-shadow 0.15s var(--nsh-ease);
}

.nsh-form-row input:focus,
.nsh-form-row textarea:focus {
	border-color: var(--nsh-primary);
	box-shadow: 0 0 0 3px var(--nsh-primary-soft);
}

.nsh-form-kvkk a {
	color: var(--nsh-primary);
}

.nsh-modal-cancel {
	border-radius: 10px;
	transition: background 0.15s var(--nsh-ease);
}

.nsh-modal-cancel:hover {
	background: #e9edf3;
}

.nsh-modal-submit {
	position: relative;
	overflow: hidden;
	background: var(--nsh-gradient);
	border-radius: 10px;
	box-shadow: var(--nsh-glow);
	transition: transform 0.18s var(--nsh-ease), box-shadow 0.18s var(--nsh-ease), filter 0.18s var(--nsh-ease);
}

.nsh-modal-submit:hover {
	background: var(--nsh-gradient);
	transform: translateY(-1px);
	box-shadow: var(--nsh-shadow-md), var(--nsh-glow);
	filter: saturate(1.08);
}

.nsh-spinner {
	border-top-color: var(--nsh-primary);
}

/* Başarı durumu — yeşil korunur ama yumuşak gölge */
.nsh-success-icon {
	box-shadow: 0 8px 20px rgba(16, 185, 129, 0.35);
}

.nsh-modal-close-success,
.nsh-modal-retry {
	background: var(--nsh-gradient);
	border-radius: 10px;
	box-shadow: var(--nsh-glow);
	transition: transform 0.18s var(--nsh-ease);
}

.nsh-modal-close-success:hover,
.nsh-modal-retry:hover {
	transform: translateY(-1px);
}

/* ---- 6) AUTOCOMPLETE — premium yüzey + gradient IATA rozeti ------------- */
.nsh-autocomplete {
	border-radius: var(--nsh-radius);
	border-color: rgba(15, 30, 61, 0.08);
	box-shadow: var(--nsh-shadow-lg);
}

.nsh-ac-item {
	transition: background 0.12s var(--nsh-ease);
}

.nsh-ac-item.is-active,
.nsh-ac-item:hover {
	background: var(--nsh-gradient-soft);
}

.nsh-ac-city {
	color: var(--nsh-ink);
}

.nsh-ac-code {
	background: var(--nsh-gradient);
	color: #fff;
	box-shadow: 0 2px 6px rgba(47, 107, 246, 0.22);
}

/* ---- 7) HAREKET AZALTMA — yeni efektleri de kapat ---------------------- */
@media (prefers-reduced-motion: reduce) {
	.nsh-search-btn,
	.nsh-book-button,
	.nsh-modal-submit,
	.nsh-reset-filters,
	.nsh-service-switch-pill,
	.nsh-flight-results-page .nsh-flight-card {
		transition: none !important;
	}
	.nsh-search-btn::after,
	.nsh-book-button::after {
		display: none !important;
	}
	.nsh-search-btn:hover,
	.nsh-book-button:hover,
	.nsh-modal-submit:hover,
	.nsh-reset-filters:hover {
		transform: none !important;
	}
}
