/* ============================================================
   HOME TRIP CARD
   ============================================================ */

.home_trip_box {
	position: relative;
	border: 1px solid #ececec;
	border-radius: 14px;
	background: #ffffff;
	margin: 0 0 14px 0;
	box-shadow: 0 2px 8px rgba(27, 111, 168, 0.04);
	transition: box-shadow 0.2s ease-in-out, border-color 0.2s ease-in-out, transform 0.2s ease-in-out;
	overflow: hidden;
}
.home_trip_box:hover {
	border-color: #349dda;
	box-shadow: 0 8px 22px rgba(27, 111, 168, 0.12);
	transform: translateY(-2px);
}

/* ---------- CARD-WIDE CLICK (stretched-link pattern) ---------- */
.home_trip_box .htp_card_link {
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: 14px;
	text-decoration: none;
}
/* Interactive elements above the card overlay */
.home_trip_box .htp_destination_title a,
.home_trip_box .htp_thumb_large a,
.home_trip_box .htp_trip_tag,
.home_trip_box a.htp_tmmlink {
	position: relative;
	z-index: 2;
}

/* ---------- HEADER ---------- */

.htp_header {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 10px 14px 12px;
	border-bottom: 1px solid #f0f3f7;
	background: linear-gradient(180deg, #ffffff 0%, #fafcfe 100%);
}

/* Row 1: title+stars block [left] | badge [right] */
.htp_header_top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
}
/* Left column: destination stacked above stars */
.htp_header_title_block {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.htp_destination_title,
.htp_destination_title a {
	font-family: 'Poppins', sans-serif;
	font-size: 1.15em;
	font-weight: 700;
	text-transform: uppercase;
	text-decoration: none;
	color: #1b6fa8;
	letter-spacing: 0.4px;
	line-height: 1.25em;
}
.htp_destination_title a:hover {
	color: #349dda;
}

.htp_header_meta {
	display: flex;
	align-items: center;
	gap: 7px;
	flex-shrink: 0;
}
.htp_overnight_pill {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: #fff4d6;
	color: #8a6d00;
	font-size: 0.75em;
	font-weight: 700;
	letter-spacing: 1.1px;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 20px;
	border: 1px solid #fce9a8;
	white-space: nowrap;
}
.htp_overnight_pill i {
	font-size: 0.95em;
}
.htp_total_badge {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-end;
	line-height: 1.15em;
	padding: 5px 14px;
	border-radius: 9px;
	background: linear-gradient(135deg, #1b6fa8 0%, #349dda 100%);
	color: #ffffff;
	box-shadow: 0 2px 8px rgba(27, 111, 168, 0.2);
	flex-shrink: 0;
}
.htp_total_label {
	font-size: 0.68em;
	font-weight: 700;
	letter-spacing: 1.3px;
	text-transform: uppercase;
	opacity: 0.9;
}
.htp_total_value {
	font-size: 1.15em;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.3px;
}

/* Row 2: star rating */
.htp_rating_row {
	display: flex;
	align-items: center;
}
.htp_rating {
	white-space: nowrap;
	line-height: 1;
}
.htp_rating i {
	margin: 0 1px;
}

/* Row 3: tags full-width */
.htp_tags {
	display: flex;
	flex-direction: row;
	gap: 5px;
	flex-wrap: wrap;
	width: 100%;
}
.htp_trip_tag,
.htp_trip_tag_active {
	border-radius: 20px;
	padding: 3px 11px;
	font-weight: 600;
	cursor: pointer;
	font-size: 0.82em;
	background: #ffffff;
	border: 1px solid #d9e6f2;
	transition: border-color 0.15s ease-in-out, background 0.15s ease-in-out, color 0.15s ease-in-out;
	line-height: 1.5em;
}
.htp_trip_tag a,
.htp_trip_tag a:link,
.htp_trip_tag a:visited,
.htp_trip_tag a:active {
	color: #349dda;
	text-decoration: none;
}
.htp_trip_tag_active a,
.htp_trip_tag_active a:link,
.htp_trip_tag_active a:visited,
.htp_trip_tag_active a:active {
	text-decoration: none;
	color: #B22222;
}
.htp_trip_tag:hover {
	border-color: #349dda;
	background: #eff7fd;
}
.htp_trip_tag:hover a,
.htp_trip_tag:hover a:visited {
	color: #1b6fa8;
	text-decoration: none;
}
.htp_trip_tag_active {
	border-color: #f4c4c4;
	background: #fff3f3;
}

/* ---------- BODY ---------- */

.htp_body {
	display: flex;
	padding: 11px 14px;
	gap: 14px;
	align-items: stretch;
}
.htp_thumb_large {
	width: 200px;
	flex-shrink: 0;
	display: block;
}
.htp_thumb_large a {
	display: block;
	position: relative;
	border-radius: 11px;
	overflow: hidden;
	background: #ffffff;
	padding: 4px;
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.05),
		0 4px 14px rgba(27, 111, 168, 0.1);
	transition: box-shadow 0.2s ease-in-out;
	height: 100%;
}
.home_trip_box:hover .htp_thumb_large a {
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.05),
		0 8px 20px rgba(27, 111, 168, 0.2);
}
.htp_thumb_large img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 7px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Right column: flights + bottom row */
.htp_right {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

/* ---------- FLIGHT MINI-CARDS (side-by-side) ---------- */

.htp_flights {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}
.htp_flight_card {
	position: relative;
	padding: 6px 10px 7px 12px;
	border-radius: 9px;
	background: #f4faff;
	border-left: 3px solid #349dda;
	line-height: 1.3em;
	min-width: 0;
}
.htp_flight_card_return {
	background: #fffdf4;
	border-left-color: #ffcf31;
}
.htp_flight_head {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-bottom: 3px;
}
.htp_flight_label {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 0.76em;
	font-weight: 700;
	letter-spacing: 1.1px;
	text-transform: uppercase;
	padding: 2px 8px;
	border-radius: 20px;
	background: rgba(52, 157, 218, 0.14);
	color: #1b6fa8;
	align-self: flex-start;
}
.htp_flight_card_return .htp_flight_label {
	background: rgba(255, 207, 49, 0.24);
	color: #8a6d00;
}
.htp_flight_label i {
	font-size: 0.88em;
}
.htp_flight_route {
	color: #5a5a5a;
	font-weight: 600;
	font-size: 0.96em;
	line-height: 1.3em;
	overflow-wrap: anywhere;
}
.htp_flight_route i {
	color: #bdbdbd;
	margin: 0 2px;
}
.htp_flight_times {
	font-size: 0.88em;
	color: #6d6d6d;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}
.htp_flight_time_label {
	font-size: 0.82em;
	font-weight: 600;
	letter-spacing: 0.7px;
	text-transform: uppercase;
	color: #9a9a9a;
	margin-right: 1px;
}
.htp_flight_time_value {
	font-weight: 600;
	color: #5a5a5a;
	font-variant-numeric: tabular-nums;
}
.htp_flight_time_sep {
	width: 10px;
	height: 1px;
	background: #d6d6d6;
	display: inline-block;
}

/* ---------- BOTTOM ROW: View trip (left) + Costs ---------- */

.htp_bottomrow {
	display: flex;
	align-items: stretch;
	gap: 10px;
	flex-wrap: wrap;
}
.htp_costswrap {
	display: flex;
	flex-wrap: wrap;
	flex: 1;
	align-items: stretch;
	background: #f6f9fc;
	border: 1px solid #eef2f6;
	border-radius: 9px;
	padding: 3px 8px;
	min-width: 0;
}
.htp_costswrap .htp_costbox {
	font-size: 0.88em;
	flex: 1 1 25%;
	min-width: 130px;
	padding: 5px 9px;
	line-height: 1.35em;
}
.htp_costswrap .htp_costbox span {
	color: #B22222;
	font-weight: 600;
	display: inline-block;
	margin-bottom: 0;
	font-size: 0.95em;
}
.htp_costswrap .htp_costbox span i {
	margin-right: 3px;
}

/* CTA: View trip (left-aligned in bottom row) */
a.htp_tmmlink,
a.htp_tmmlink:visited {
	text-decoration: none;
	color: #5a3a00;
	align-self: center;
}
.htp_tellmemore {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border-radius: 22px;
	background: linear-gradient(135deg, #ffcf31 0%, #ffbf00 100%);
	padding: 8px 16px;
	font-weight: 700;
	font-size: 0.88em;
	letter-spacing: 0.5px;
	color: #5a3a00;
	box-shadow: 0 3px 9px rgba(255, 191, 0, 0.28);
	transition: box-shadow 0.18s ease-in-out, transform 0.18s ease-in-out, background 0.18s ease-in-out;
	white-space: nowrap;
}
.htp_tellmemore i {
	transition: transform 0.18s ease-in-out;
}
a.htp_tmmlink:hover .htp_tellmemore,
.home_trip_box:hover .htp_tellmemore {
	background: linear-gradient(135deg, #ffd94a 0%, #ffc927 100%);
	box-shadow: 0 5px 13px rgba(255, 191, 0, 0.38);
	transform: translateY(-1px);
}
a.htp_tmmlink:hover .htp_tellmemore i,
.home_trip_box:hover .htp_tellmemore i {
	transform: translateX(3px);
}


/* ============================================================
   RESPONSIVE
   ============================================================ */

/* MOBILE */
@media only screen and (max-width: 640px) {
	.htp_header {
		padding: 8px 12px 10px;
		gap: 5px;
	}
	.htp_destination_title,
	.htp_destination_title a {
		font-size: 1em;
	}
	.htp_total_badge {
		padding: 4px 10px;
	}
	.htp_total_label {
		font-size: 0.62em;
	}
	.htp_total_value {
		font-size: 1.05em;
	}
	/* Body: stack image above flight/cost info */
	.htp_body {
		flex-direction: column;
		padding: 0;
		gap: 0;
	}
	/* Image: full-width banner, 16:9 */
	.htp_thumb_large {
		width: 100%;
	}
	.htp_thumb_large a {
		height: auto;
		border-radius: 0;
		padding: 0;
		box-shadow: none;
	}
	.htp_thumb_large img {
		aspect-ratio: 16 / 9;
		max-height: none;
		height: auto;
		border-radius: 0;
	}
	/* Right column: add padding back */
	.htp_right {
		padding: 10px 12px 12px;
		gap: 8px;
	}
	/* Flights: keep 2-column grid — fits fine at 390px */
	.htp_flights {
		grid-template-columns: 1fr 1fr;
		gap: 6px;
	}
	.htp_flight_card {
		padding: 5px 8px 6px 10px;
	}
	.htp_flight_route {
		font-size: 0.82em;
	}
	.htp_flight_label {
		font-size: 0.7em;
		padding: 2px 6px;
	}
	/* Bottom row: stack costs above button */
	.htp_bottomrow {
		flex-direction: column;
		gap: 8px;
	}
	/* Cost boxes: 3 across */
	.htp_costswrap {
		padding: 2px 4px;
	}
	.htp_costswrap .htp_costbox {
		flex: 1 1 30%;
		min-width: 0;
		padding: 5px 6px;
		font-size: 0.82em;
	}
	/* View trip: full width */
	a.htp_tmmlink {
		display: block;
		width: 100%;
	}
	.htp_tellmemore {
		display: flex;
		width: 100%;
		justify-content: center;
		padding: 10px 14px;
		font-size: 0.9em;
		border-radius: 10px;
	}
}

/* TABLET */
@media only screen and (min-width: 641px) and (max-width: 1024px) {
	.htp_thumb_large {
		width: 190px;
	}
	.htp_costswrap .htp_costbox {
		flex: 1 1 33%;
	}
}

/* NARROW DESKTOP */
@media only screen and (min-width: 1025px) and (max-width: 1200px) {
	.htp_thumb_large {
		width: 190px;
	}
}
