/* H-Lead Cards — category, destination, fleet, transfer, blog, routes
 * Verified against Figma styleguide components:
 * fleet-card-desktop_new_v2, transfer-card-desktop_v3, routes-card-desktop_v1,
 * blog-card-desktop_v1, destination-card-desktop_new_v1, card-category-home-desktop_v1.
 */

/* ---- Shared card CTA (Figma "buttons" Primary) ---- */
.hl-card__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--hl-space-8);
	padding: var(--hl-space-12) var(--hl-space-32);
	border-radius: var(--hl-radius-8);
	background-color: var(--hl-btn-primary-surface);
	color: var(--hl-btn-primary-content);
	font-family: var(--hl-font-family);
	font-size: var(--hl-body-default-size);
	line-height: var(--hl-body-default-line-height);
	font-weight: var(--hl-font-weight-semibold);
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.hl-card__cta:hover {
	background-color: var(--hl-btn-primary-surface-hover);
	color: var(--hl-btn-primary-content);
}

.hl-card__cta--full {
	display: flex;
	width: 100%;
}

/* =========================================================
 * Fleet card (fleet-card-desktop_new_v2) — 507 wide reference
 * white, 1px #c6c8cc, radius 16; image TOP on #f1f1f2;
 * then title/subtitle (+ optional price), divider, 2-col specs, CTA.
 * ========================================================= */
.hl-card-fleet {
	background-color: var(--hl-color-white);
	border: 1px solid var(--hl-color-grey-200);
	border-radius: var(--hl-radius-16);
	overflow: hidden;
	font-family: var(--hl-font-family);
	display: flex;
	flex-direction: column;
	gap: var(--hl-space-20);
	transition: box-shadow 0.2s ease;
}

.hl-card-fleet:hover {
	box-shadow: var(--hl-shadow-card);
}

.hl-card-fleet__img {
	width: 100%;
	aspect-ratio: 506 / 325;
	background-color: var(--hl-color-grey-50);
	border-radius: var(--hl-radius-16) var(--hl-radius-16) 0 0;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.hl-card-fleet__img img {
	max-width: 78%;
	max-height: 82%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
	transition: transform 0.3s ease;
}

.hl-card-fleet:hover .hl-card-fleet__img img {
	transform: scale(1.04);
}

.hl-card-fleet__main {
	display: flex;
	flex-direction: column;
	gap: var(--hl-space-32);
	padding: 0 var(--hl-space-16) var(--hl-space-20);
}

.hl-card-fleet__title-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: var(--hl-space-32);
}

.hl-card-fleet__title {
	margin: 0;
	color: var(--hl-color-brand-800);
	font-size: var(--hl-text-h3-size);
	line-height: var(--hl-text-h3-line-height);
	font-weight: var(--hl-font-weight-bold);
}

.hl-card-fleet__subtitle {
	margin: 0;
	color: var(--hl-color-text-subtext);
	font-size: var(--hl-body-default-size);
	line-height: var(--hl-body-default-line-height);
	font-weight: var(--hl-font-weight-regular);
}

.hl-card-fleet__price {
	text-align: right;
	white-space: nowrap;
}

.hl-card-fleet__price-amount {
	display: block;
	color: var(--hl-color-brand-800);
	font-size: var(--hl-body-default-size);
	line-height: var(--hl-accordion-title-line-height);
	font-weight: var(--hl-font-weight-bold);
}

.hl-card-fleet__price-period {
	display: block;
	color: var(--hl-color-brand-800);
	font-size: var(--hl-form-label-size);
	line-height: var(--hl-form-label-line-height);
	font-weight: var(--hl-font-weight-medium);
}

.hl-card-fleet__divider {
	border: none;
	border-top: 1px solid var(--hl-color-grey-100);
	margin: 0;
}

.hl-card-fleet__specs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--hl-space-20);
	row-gap: var(--hl-space-12);
	margin: 0;
	padding: 0;
	list-style: none;
}

.hl-card-fleet__spec {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--hl-space-4);
	min-width: 0;
	overflow-wrap: anywhere;
	font-size: var(--hl-body-default-size);
	line-height: var(--hl-body-default-line-height);
	color: var(--hl-color-brand-700);
}

.hl-card-fleet__spec-icon {
	flex: 0 0 auto;
	width: var(--hl-space-24);
	height: var(--hl-space-24);
	color: var(--hl-color-brand-700);
}

.hl-card-fleet__spec-icon svg {
	width: 100%;
	height: 100%;
	display: block;
}

.hl-card-fleet__spec-label {
	font-weight: var(--hl-font-weight-medium);
}

.hl-card-fleet__spec-value {
	font-weight: var(--hl-font-weight-bold);
	display: block;
	min-width: 150px;
}

/* =========================================================
 * Transfer card (transfer-card-desktop_v3)
 * Same shell as fleet; content: title, description, divider,
 * spec rows (wrapping), CTA. No price in default design.
 * ========================================================= */
.hl-card-transfer {
	background-color: var(--hl-color-white);
	border: 1px solid var(--hl-color-grey-200);
	border-radius: var(--hl-radius-16);
	overflow: hidden;
	font-family: var(--hl-font-family);
	display: flex;
	flex-direction: column;
	gap: var(--hl-space-20);
	transition: box-shadow 0.2s ease;
}

.hl-card-transfer:hover {
	box-shadow: var(--hl-shadow-card);
}

.hl-card-transfer__img {
	width: 100%;
	aspect-ratio: 506 / 325;
	background-color: var(--hl-color-grey-50);
	border-radius: var(--hl-radius-16) var(--hl-radius-16) 0 0;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.hl-card-transfer__img img {
	max-width: 78%;
	max-height: 82%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
	transition: transform 0.3s ease;
}

.hl-card-transfer:hover .hl-card-transfer__img img {
	transform: scale(1.04);
}

.hl-card-transfer__main {
	display: flex;
	flex-direction: column;
	gap: var(--hl-space-28, 28px);
	padding: 0 var(--hl-space-16) var(--hl-space-20);
}

.hl-card-transfer__title {
	margin: 0;
	color: var(--hl-color-brand-800);
	font-size: var(--hl-text-h3-size);
	line-height: var(--hl-text-h3-line-height);
	font-weight: var(--hl-font-weight-bold);
}

.hl-card-transfer__description {
	margin: 0;
	color: var(--hl-color-text-subtext);
	font-size: var(--hl-body-default-size);
	line-height: var(--hl-body-default-line-height);
}

.hl-card-transfer__header {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.hl-card-transfer__divider {
	border: none;
	border-top: 1px solid var(--hl-color-grey-100);
	margin: var(--hl-space-24) 0 0;
}

.hl-card-transfer__specs {
	display: flex;
	flex-wrap: wrap;
	column-gap: var(--hl-space-20);
	row-gap: var(--hl-space-12);
	margin: 0;
	padding: 0;
	list-style: none;
}

.hl-card-transfer__spec {
	display: flex;
	align-items: center;
	gap: var(--hl-space-4);
	font-size: var(--hl-body-default-size);
	line-height: var(--hl-body-default-line-height);
	color: var(--hl-color-brand-700);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.hl-card-transfer__spec-icon {
	flex: 0 0 auto;
	width: var(--hl-space-24);
	height: var(--hl-space-24);
	color: var(--hl-color-brand-700);
}

.hl-card-transfer__spec-icon svg {
	width: 100%;
	height: 100%;
	display: block;
}

.hl-card-transfer__spec-label {
	font-weight: var(--hl-font-weight-medium);
}

.hl-card-transfer__spec-value {
	font-weight: var(--hl-font-weight-bold);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* =========================================================
 * Blog card (blog-card-desktop_v1) — padding 20 all around,
 * gap 24; image radius 12; date, title, excerpt (gap 8); CTA.
 * ========================================================= */
.hl-card-blog {
	background-color: var(--hl-color-white);
	border: 1px solid var(--hl-color-grey-200);
	border-radius: var(--hl-radius-16);
	overflow: hidden;
	font-family: var(--hl-font-family);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--hl-space-24);
	padding: var(--hl-space-20);
	transition: box-shadow 0.2s ease;
}

.hl-card-blog:hover {
	box-shadow: var(--hl-shadow-card);
}

.hl-card-blog .hl-card__cta {
	margin-top: auto;
}

.hl-card-blog__img {
	width: 100%;
	aspect-ratio: 467 / 350;
	border-radius: var(--hl-radius-12);
	overflow: hidden;
}

.hl-card-blog__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.hl-card-blog:hover .hl-card-blog__img img {
	transform: scale(1.04);
}

.hl-card-blog__text {
	display: flex;
	flex-direction: column;
	gap: var(--hl-space-8);
}

.hl-card-blog__meta {
	margin: 0;
	color: var(--hl-color-brand-700);
	font-size: var(--hl-body-default-size);
	line-height: var(--hl-body-default-line-height);
	font-weight: var(--hl-font-weight-bold);
}

.hl-card-blog__title {
	margin: 0;
	color: var(--hl-color-brand-700);
	font-size: var(--hl-text-h3-size);
	line-height: var(--hl-text-h3-line-height);
	font-weight: var(--hl-font-weight-bold);
}

.hl-card-blog__excerpt {
	margin: 0;
	color: var(--hl-color-text-subtext);
	font-size: var(--hl-accordion-title-size);
	line-height: var(--hl-accordion-title-line-height);
}

/* =========================================================
 * Routes card (routes-card-desktop_v1) — padding 20/24,
 * gap 24; image radius 12; title then route rows (gap 12).
 * ========================================================= */
.hl-card-routes {
	background-color: var(--hl-color-white);
	border: 1px solid var(--hl-color-grey-200);
	border-radius: var(--hl-radius-16);
	overflow: hidden;
	font-family: var(--hl-font-family);
	display: flex;
	flex-direction: column;
	gap: var(--hl-space-24);
	padding: var(--hl-space-24) var(--hl-space-20);
}

.hl-card-routes__img {
	width: 100%;
	aspect-ratio: 467 / 280;
	border-radius: var(--hl-radius-12);
	overflow: hidden;
}

.hl-card-routes__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hl-card-routes__details {
	display: flex;
	flex-direction: column;
	gap: var(--hl-space-24);
}

.hl-card-routes__title {
	margin: 0;
	color: var(--hl-color-brand-700);
	font-size: var(--hl-text-h3-size);
	line-height: var(--hl-text-h3-line-height);
	font-weight: var(--hl-font-weight-bold);
}

.hl-card-routes__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--hl-space-12);
}

.hl-card-routes__row {
	display: flex;
	align-items: center;
	gap: var(--hl-space-4);
	color: var(--hl-color-grey-900);
	font-size: var(--hl-form-label-size);
	line-height: var(--hl-form-label-line-height);
	font-weight: var(--hl-font-weight-medium);
}

.hl-card-routes__from,
.hl-card-routes__to {
	color: currentColor;
	font-weight: var(--hl-font-weight-regular);
}

.hl-card-routes__time {
	color: var(--hl-color-brand-300);
	font-weight: var(--hl-font-weight-bold);
}

.hl-card-routes__arrow {
	flex: 0 0 auto;
	width: var(--hl-space-20);
	height: var(--hl-space-20);
	color: var(--hl-color-grey-900);
}

.hl-card-routes__arrow svg {
	width: 100%;
	height: 100%;
	display: block;
}

/* =========================================================
 * Destination card (destination-card-desktop_new_v1) — 375x360
 * image card, radius 16, black gradient; yellow pill label
 * top-left (24,12); city bottom-left; link CTA slides in on hover.
 * ========================================================= */
.hl-card-destination {
	position: relative;
	aspect-ratio: 375 / 360;
	border-radius: var(--hl-radius-16);
	overflow: hidden;
	font-family: var(--hl-font-family);
	display: block;
	transition: box-shadow 0.2s ease;
}

.hl-card-routes {
	transition: box-shadow 0.2s ease;
}

.hl-card-destination:hover,
.hl-card-routes:hover {
	box-shadow: var(--hl-shadow-card);
}

.hl-card-destination__img {
	position: absolute;
	inset: 0;
	/* Grey placeholder that shows when the card has no image. */
	background-color: var(--hl-color-grey-200);
}

.hl-card-destination__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.hl-card-destination:hover .hl-card-destination__img img {
	transform: scale(1.04);
}

.hl-card-destination__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
}

.hl-card-destination__label {
	position: absolute;
	top: var(--hl-space-12);
	left: var(--hl-space-24);
	display: inline-flex;
	align-items: center;
	padding: 2px var(--hl-space-12);
	border-radius: var(--hl-radius-9999);
	background-color: var(--hl-color-yellow-500);
	color: var(--hl-color-brand-800);
	font-size: var(--hl-text-badge-size);
	line-height: var(--hl-text-badge-line-height);
	font-weight: var(--hl-font-weight-medium);
}

.hl-card-destination__footer {
	position: absolute;
	left: var(--hl-space-24);
	right: var(--hl-space-24);
	bottom: var(--hl-space-16);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	/* gap: var(--hl-space-8); */
}

.hl-card-destination__city {
	margin: 0;
	color: var(--hl-color-white);
	font-size: var(--hl-text-h3-size);
	line-height: var(--hl-text-h3-line-height);
	font-weight: var(--hl-font-weight-bold);
}

.hl-card-destination__cta {
	display: inline-flex;
	align-items: center;
	gap: var(--hl-space-8);
	color: var(--hl-color-white);
	font-size: var(--hl-text-link-size);
	line-height: var(--hl-text-link-line-height);
	font-weight: var(--hl-font-weight-semibold);
	text-decoration: none;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height 0.25s ease, opacity 0.25s ease;
}

.hl-card-destination__cta svg {
	width: var(--hl-space-20);
	height: var(--hl-space-20);
	display: block;
}

.hl-card-destination:hover .hl-card-destination__cta,
.hl-card-destination:focus-within .hl-card-destination__cta {
	max-height: var(--hl-space-24);
	opacity: 1;
}

.hl-card-destination__cta:hover {
	color: var(--hl-color-yellow-500);
}

/* =========================================================
 * Category card (card-category-home-desktop_v1) — 507x622
 * image card, radius 16, black gradient; bottom-left title,
 * description, yellow (Secondary) CTA. Content inset 24.
 * ========================================================= */
.hl-card-category {
	position: relative;
	aspect-ratio: 507 / 622;
	border-radius: var(--hl-radius-16);
	overflow: hidden;
	font-family: var(--hl-font-family);
	display: block;
}

.hl-card-category__img {
	position: absolute;
	inset: 0;
}

.hl-card-category__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.hl-card-category:hover .hl-card-category__img img {
	transform: scale(1.05);
}

.hl-card-category__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
}

.hl-card-category__content {
	position: absolute;
	left: var(--hl-space-24);
	right: var(--hl-space-26, 26px);
	bottom: var(--hl-space-24);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--hl-space-20);
}

.hl-card-category__text {
	display: flex;
	flex-direction: column;
	gap: var(--hl-space-4);
}

.hl-card-category__title {
	margin: 0;
	color: var(--hl-color-white);
	font-size: var(--hl-text-h3-size);
	line-height: var(--hl-text-h3-line-height);
	font-weight: var(--hl-font-weight-bold);
}

.hl-card-category__description {
	margin: 0;
	color: var(--hl-color-grey-25);
	font-size: var(--hl-accordion-title-size);
	line-height: var(--hl-accordion-title-line-height);
}

.hl-card-category__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--hl-space-8);
	padding: var(--hl-space-12) var(--hl-space-32);
	border-radius: var(--hl-radius-8);
	background-color: var(--hl-btn-secondary-surface);
	color: var(--hl-btn-secondary-content);
	font-size: var(--hl-body-default-size);
	line-height: var(--hl-body-default-line-height);
	font-weight: var(--hl-font-weight-semibold);
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.hl-card-category__cta:hover {
	background-color: var(--hl-btn-secondary-surface-hover);
	color: var(--hl-btn-secondary-content);
}