/* ==========================================================================
   Trip Search – Book Nile Cruise
   ========================================================================== */
.tt-ts, .tt-ts *, .tt-ts *::before, .tt-ts *::after{ box-sizing: border-box; }
.tt-ts{
	--tt-orange: #f2a135;
	--tt-orange-dark: #dd8a1c;
	--tt-gold: #c59f63;
	--tt-navy: #17293b;
	--tt-text: #2a2f36;
	--tt-muted: #7a8291;
	position: relative;
	z-index: 20;
	max-width: 1080px;
	margin: 40px 0 0;
	font-family: inherit;
	text-align: left;
	animation: ttTsIn .7s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes ttTsIn{ from{ opacity: 0; transform: translateY(24px); } to{ opacity: 1; transform: none; } }

/* tabs */
.tt-ts-tabs{ display: flex; gap: 6px; padding-left: 26px; }
.tt-ts-tab{
	appearance: none; border: 0; cursor: pointer;
	padding: 13px 24px; border-radius: 16px 16px 0 0;
	font-size: 15px; font-weight: 600; letter-spacing: .2px;
	color: #fff; background: rgba(255,255,255,.18);
	backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
	transition: background .25s, color .25s;
}
.tt-ts-tab i{ margin-right: 6px; opacity: .85; }
.tt-ts .tt-ts-tab{
	padding: 13px 24px !important; margin: 0 !important; border: 0 !important; border-radius: 16px 16px 0 0 !important;
	font-size: 15px !important; font-weight: 600 !important; letter-spacing: .2px !important; text-transform: none !important; line-height: 1.4 !important;
	color: #fff !important; background: rgba(255,255,255,.18) !important; box-shadow: none !important;
}
.tt-ts .tt-ts-tab:hover{ background: rgba(255,255,255,.3) !important; }
.tt-ts .tt-ts-tab.tt-active{ background: rgba(255,255,255,.97) !important; color: var(--tt-navy) !important; }
.tt-ts .tt-ts-submit{ text-transform: none !important; letter-spacing: .3px !important; margin: 0 !important; border: 0 !important; }
.tt-ts-tab.tt-active i{ color: var(--tt-orange); opacity: 1; }

/* card */
.tt-ts-panels{
	background: rgba(255,255,255,.97);
	border-radius: 22px;
	box-shadow: 0 24px 60px rgba(10,20,35,.35), 0 2px 0 rgba(255,255,255,.6) inset;
	padding: 22px 22px 18px;
}
.tt-ts-panel{ display: none; flex-wrap: wrap; align-items: flex-end; gap: 14px; margin: 0; }
.tt-ts-panel.tt-active{ display: flex; animation: ttTsFade .35s ease both; }
@keyframes ttTsFade{ from{ opacity: 0; transform: translateY(6px); } to{ opacity: 1; transform: none; } }

.tt-ts-field{ position: relative; flex: 1 1 200px; min-width: 0; }
.tt-ts-keyword{ flex: 2.2 1 300px; }
.tt-ts-small{ flex: .7 1 120px; }
.tt-ts-field label{
	display: block; margin: 0 0 6px 4px;
	font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .8px;
	color: var(--tt-muted);
}
.tt-ts-input-wrap{ position: relative; }
.tt-ts-input-wrap > i{
	position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
	color: var(--tt-orange); font-size: 16px; pointer-events: none; z-index: 1;
}
.tt-ts .tt-ts-input-wrap input,
.tt-ts .tt-ts-input-wrap select{
	width: 100% !important; height: 56px !important; margin: 0 !important;
	padding: 0 18px 0 46px !important;
	border: 1.5px solid #e6e8ec !important; border-radius: 40px !important;
	background: #f7f8fa !important; color: var(--tt-text) !important;
	font-size: 15px !important; font-weight: 500; line-height: 56px;
	box-shadow: none !important; outline: none;
	transition: border-color .2s, background .2s, box-shadow .2s;
	-webkit-appearance: none; appearance: none;
}
.tt-ts .tt-ts-input-wrap select{
	cursor: pointer; padding-right: 40px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23f2a135' d='M6 8 0 1.4 1.4 0 6 4.9 10.6 0 12 1.4z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 18px center !important;
}
.tt-ts .tt-ts-input-wrap input[type="date"]{ line-height: normal; padding-right: 14px !important; }
.tt-ts .tt-ts-input-wrap input:focus,
.tt-ts .tt-ts-input-wrap select:focus{
	border-color: var(--tt-orange) !important; background-color: #fff !important;
	box-shadow: 0 0 0 4px rgba(242,161,53,.15) !important;
}
.tt-ts .tt-ts-input-wrap input::placeholder{ color: #a2a9b4; font-weight: 400; }
.tt-ts input[type="search"]::-webkit-search-cancel-button{ cursor: pointer; }

/* submit */
.tt-ts-submit{
	flex: 0 0 auto; height: 56px; padding: 0 34px; border: 0; cursor: pointer;
	border-radius: 40px; color: #fff; font-size: 16px; font-weight: 700; letter-spacing: .3px;
	background: linear-gradient(135deg, #f7b44f 0%, var(--tt-orange) 45%, var(--tt-orange-dark) 100%);
	box-shadow: 0 10px 24px rgba(242,161,53,.45);
	transition: transform .2s, box-shadow .2s, filter .2s;
	display: inline-flex; align-items: center; gap: 10px;
}
.tt-ts-submit:hover{ transform: translateY(-2px); box-shadow: 0 14px 30px rgba(242,161,53,.55); filter: brightness(1.04); }
.tt-ts-submit:active{ transform: translateY(0); }
.tt-ts-wa{ background: linear-gradient(135deg, #3ad46b 0%, #25d366 50%, #1ea952 100%); box-shadow: 0 10px 24px rgba(37,211,102,.4); }
.tt-ts-wa:hover{ box-shadow: 0 14px 30px rgba(37,211,102,.5); }
.tt-ts-wa i{ font-size: 20px; }

.tt-ts-shake{ animation: ttTsShake .4s; }
@keyframes ttTsShake{ 20%,60%{ transform: translateX(-6px); } 40%,80%{ transform: translateX(6px); } }

/* chips + note */
.tt-ts-chips{ flex: 1 1 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 2px; font-size: 13px; }
.tt-ts-chips > span{ color: var(--tt-muted); font-weight: 600; margin-right: 2px; }
.tt-ts-chip{
	padding: 6px 14px; border-radius: 30px; background: #fdf3e4; color: #b9771b !important;
	font-weight: 600; text-decoration: none; transition: background .2s, color .2s, transform .2s;
}
.tt-ts-chip:hover{ background: var(--tt-orange); color: #fff !important; transform: translateY(-1px); }
.tt-ts-note{ flex: 1 1 100%; margin: 2px 0 0 !important; font-size: 13px; color: var(--tt-muted) !important; }
.tt-ts-note a{ color: var(--tt-orange) !important; font-weight: 600; }

/* spinner */
.tt-ts-spinner{
	position: absolute; right: 44px; top: 50%; width: 18px; height: 18px; margin-top: -9px;
	border: 2px solid rgba(242,161,53,.25); border-top-color: var(--tt-orange); border-radius: 50%;
	opacity: 0; animation: ttTsSpin .7s linear infinite; pointer-events: none;
}
.tt-ts-loading .tt-ts-spinner{ opacity: 1; }
@keyframes ttTsSpin{ to{ transform: rotate(360deg); } }

/* live results dropdown */
.tt-ts-results{
	display: none; position: absolute; left: 0; right: 0; top: calc(100% + 10px); z-index: 50;
	max-height: 420px; overflow-y: auto; padding: 8px;
	background: #fff; border-radius: 18px; box-shadow: 0 24px 50px rgba(10,20,35,.25);
	border: 1px solid #eef0f3;
}
.tt-ts-results.tt-open{ display: block; animation: ttTsFade .2s ease both; }
.tt-ts-item{
	display: flex; align-items: center; gap: 14px; padding: 9px 10px; border-radius: 12px;
	color: var(--tt-text) !important; text-decoration: none !important; transition: background .15s;
}
.tt-ts-item:hover, .tt-ts-item.tt-hover{ background: #fdf5ea; }
.tt-ts-item img, .tt-ts-item .tt-ts-noimg{
	width: 54px; height: 54px; flex: 0 0 54px; border-radius: 10px; object-fit: cover; background: #f1f2f4;
	display: flex; align-items: center; justify-content: center; color: var(--tt-gold); font-size: 20px;
}
.tt-ts-item-body{ flex: 1; min-width: 0; }
.tt-ts-item-title{ display: block; font-size: 15px; font-weight: 600; line-height: 1.35; color: var(--tt-navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tt-ts-item-title mark{ background: none; color: var(--tt-orange-dark); padding: 0; }
.tt-ts-item-meta{ display: block; font-size: 12px; color: var(--tt-muted); margin-top: 2px; }
.tt-ts-item-price{ flex: 0 0 auto; font-size: 14px; font-weight: 700; color: var(--tt-orange-dark); }
.tt-ts-all{
	display: block; margin-top: 6px; padding: 12px; border-radius: 12px; text-align: center;
	background: var(--tt-navy); color: #fff !important; font-weight: 600; font-size: 14px; text-decoration: none !important;
	transition: background .2s;
}
.tt-ts-all:hover, .tt-ts-all.tt-hover{ background: #1f3a55; }
.tt-ts-empty{ padding: 18px 12px; text-align: center; color: var(--tt-muted); font-size: 14px; }

/* placement: home hero (desktop) */
.main-hero .tt-ts{ clear: both; margin-left: 20px; margin-right: 20px; }
/* placement: under the hero on tablet / mobile */
.tt-ts-mobile-section{
	padding: 30px 15px 34px;
	background: linear-gradient(160deg, #17293b 0%, #1f4f86 100%);
}
.tt-ts-mobile-section .tt-ts-mobile-title{ color: #fff; font-size: 24px; font-weight: 700; margin: 0 0 4px; line-height: 1.3; }
.tt-ts-mobile-section .tt-ts-mobile-sub{ color: rgba(255,255,255,.8) !important; margin: 0 0 6px; font-size: 15px; }
.tt-ts-mobile-section .tt-ts{ margin-top: 16px; }

/* compact (results page) */
.tt-ts-compact{ margin-top: 26px; }
.tt-ts-compact .tt-ts-tabs{ display: none; }
.tt-ts-compact .tt-ts-panels{ padding: 16px; }

@media (max-width: 767px){
	.tt-ts-tabs{ padding-left: 12px; }
	.tt-ts-tab{ padding: 11px 16px; font-size: 14px; }
	.tt-ts-panels{ padding: 16px 14px 14px; border-radius: 18px; }
	.tt-ts-field, .tt-ts-keyword, .tt-ts-small{ flex: 1 1 100%; }
	.tt-ts-plan .tt-ts-small{ flex: 1 1 calc(50% - 7px); }
	.tt-ts-submit{ width: 100%; justify-content: center; }
	.tt-ts-item-price{ display: none; }
}

/* ==========================================================================
   Results page
   ========================================================================== */
.tt-sr-hero{
	position: relative; padding: 70px 0 50px;
	background: linear-gradient(160deg, #17293b 0%, #1f4f86 100%);
	overflow: hidden;
}
.tt-sr-hero::after{
	content: ""; position: absolute; right: -120px; top: -120px; width: 420px; height: 420px; border-radius: 50%;
	background: radial-gradient(circle, rgba(242,161,53,.35), rgba(242,161,53,0) 70%); pointer-events: none;
}
.tt-sr-hero .traveltour-container{ position: relative; z-index: 2; }
.tt-sr-caption{ display: inline-block; padding: 5px 14px; border-radius: 30px; background: rgba(242,161,53,.18); color: #f7c072; font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.tt-sr-title{ color: #fff !important; font-size: 34px; font-weight: 700; margin: 14px 0 6px; line-height: 1.3; }
.tt-sr-title span{ color: #f2a135; }
.tt-sr-filter{ color: rgba(255,255,255,.8) !important; margin: 0; }
.tt-sr-filter a{ color: #f7c072 !important; text-decoration: underline; }
.tt-sr-hero .tt-ts{ max-width: none; }

.tt-sr-body{ padding-top: 50px; padding-bottom: 70px; }
.tt-sr-grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 28px; }
.tt-sr-card{
	display: flex; flex-direction: column; background: #fff; border-radius: 18px; overflow: hidden;
	box-shadow: 0 8px 28px rgba(23,41,59,.08); border: 1px solid #f0f0f0;
	transition: transform .3s, box-shadow .3s;
}
.tt-sr-card:hover{ transform: translateY(-6px); box-shadow: 0 18px 40px rgba(23,41,59,.16); }
.tt-sr-thumb{ position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #eef0f3; }
.tt-sr-thumb img{ width: 100% !important; height: 100%; object-fit: cover; transition: transform .6s; }
.tt-sr-card:hover .tt-sr-thumb img{ transform: scale(1.06); }
.tt-sr-noimg{ display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font-size: 40px; color: #c59f63; }
.tt-sr-label{ position: absolute; left: 14px; top: 14px; padding: 5px 12px; border-radius: 30px; background: rgba(23,41,59,.85); color: #fff; font-size: 12px; font-weight: 600; backdrop-filter: blur(4px); }
.tt-sr-content{ display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; }
.tt-sr-card-title{ font-size: 19px !important; font-weight: 700; line-height: 1.35; margin: 0 0 8px !important; }
.tt-sr-card-title a{ color: #17293b !important; }
.tt-sr-card-title a:hover{ color: #f2a135 !important; }
.tt-sr-excerpt{ color: #5d6470 !important; font-size: 14px; line-height: 1.7; margin: 0 0 16px !important; }
.tt-sr-footer{ margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 14px; border-top: 1px solid #f0f0f0; }
.tt-sr-price{ font-size: 20px; font-weight: 800; color: #dd8a1c; }
.tt-sr-price small{ font-size: 12px; font-weight: 600; color: #7a8291; }
.tt-sr-more{ margin-left: auto; font-weight: 700; font-size: 14px; color: #f2a135 !important; }
.tt-sr-more i{ transition: transform .2s; margin-left: 4px; }
.tt-sr-more:hover i{ transform: translateX(4px); }

.tt-sr-pagination{ margin-top: 44px; text-align: center; }
.tt-sr-pagination .page-numbers{
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; margin: 0 4px; padding: 0 12px;
	border-radius: 30px; background: #fff; color: #17293b; font-weight: 700; box-shadow: 0 4px 14px rgba(23,41,59,.08); transition: background .2s, color .2s;
}
.tt-sr-pagination .page-numbers.current, .tt-sr-pagination a.page-numbers:hover{ background: #f2a135; color: #fff; }

.tt-sr-empty{ max-width: 620px; margin: 10px auto; padding: 50px 30px; text-align: center; background: #fff; border-radius: 22px; box-shadow: 0 10px 34px rgba(23,41,59,.08); }
.tt-sr-empty > i{ font-size: 54px; color: #f2a135; }
.tt-sr-empty h2{ font-size: 26px; color: #17293b; margin: 14px 0 8px; }
.tt-sr-empty p{ color: #5d6470 !important; }
.tt-sr-empty-actions{ display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 22px; }
.tt-sr-btn{ padding: 12px 22px; border-radius: 30px; background: #f2a135; color: #fff !important; font-weight: 700; transition: transform .2s, filter .2s; }
.tt-sr-btn:hover{ transform: translateY(-2px); filter: brightness(1.05); }
.tt-sr-btn-alt{ background: #17293b; }
.tt-sr-btn-wa{ background: #25d366; }

@media (max-width: 767px){
	.tt-sr-hero{ padding: 44px 0 34px; }
	.tt-sr-title{ font-size: 25px; }
}
