/* =============================================================================
   HT Banner — natural ratio desktop · 2:3 portrait crop mobile · search CTA
   Applies to non-parallax banner mode only (.header-section__simple-image).
   Parallax banners render as background-image divs and are unaffected.
   ============================================================================= */

/* Collapse whitespace gap below inline-block img */
.header-section--with-banner .header-section__simple-image {
	overflow: hidden;
	line-height: 0;
}

.header-section--with-banner .header-section__simple-image picture {
	display: block;
}

/* Desktop: natural aspect ratio — no forced height, no object-fit override */
.header-section--with-banner .ht-banner-img {
	display: block;
	width: 100%;
	height: auto;
}

/* Mobile: center-crop same landscape image to 2:3 portrait (≈ 480×720) */
@media (max-width: 767px) {
	.header-section--with-banner .ht-banner-img {
		aspect-ratio: 2 / 3;
		object-fit: cover;
		object-position: center center;
	}
}

/* =============================================================================
   CTA button inside banner header (explicit override via ht_banner_meta)
   font-size in px — immune to the 0.5em @media(max-width:500px) parent rule
   that halves em-based text inside .header-section__content on phones.
   ============================================================================= */
.ht-banner-cta {
	display: inline-block;
	margin-top: 14px;
	padding: 10px 26px;
	background: #01A347;
	color: #fff !important;
	border-radius: 4px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-decoration: none;
	transition: background 0.18s ease;
	border: none;
	cursor: pointer;
	line-height: 1.4;
}

.ht-banner-cta:hover,
.ht-banner-cta:focus {
	background: #013C1A;
	color: #fff !important;
	text-decoration: none;
	outline: 2px solid rgba(255, 255, 255, 0.4);
	outline-offset: 2px;
}

/* =============================================================================
   Banner search pill — absolute within .header-section--with-banner (position:relative)
   Mobile:  bottom-centre, 10% from banner bottom edge
   Desktop: right-aligned 5% from right, vertically centred in banner
   ============================================================================= */
.ht-banner-search {
	position: absolute;
	z-index: 5;
	bottom: 10%;
	left: 50%;
	transform: translateX(-50%);
	width: 88%;
	max-width: 640px;
	margin: 0;
}

.ht-banner-search__wrap {
	display: flex;
	align-items: center;
	height: 58px;
	border-radius: 29px;
	padding: 0 10px 0 18px;
	background: linear-gradient(
		to right,
		rgba(1, 163, 71, 0.18) 0%,
		rgba(0,   8, 18, 0.62) 100%
	);
	backdrop-filter: blur(18px) saturate(1.5);
	-webkit-backdrop-filter: blur(18px) saturate(1.5);
	border: 1.5px solid rgba(255, 255, 255, 0.20);
	box-shadow:
		0 4px 32px rgba(0, 0, 0, 0.38),
		inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

/* Left: white AI sparkle */
.ht-banner-search__sparkle {
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
	fill: rgba(255, 255, 255, 0.82);
	margin-right: 11px;
}

/* Search input — transparent, italic placeholder */
.ht-banner-search__input {
	flex: 1 1 auto;
	min-width: 0;
	background: transparent;
	border: none;
	outline: none;
	color: rgba(255, 255, 255, 0.90);
	font-size: 15px;
	font-family: inherit;
	font-style: italic;
	font-weight: 400;
	padding: 0;
	-webkit-appearance: none;
	appearance: none;
}

.ht-banner-search__input::placeholder {
	color: rgba(255, 255, 255, 0.55);
	font-style: italic;
}

.ht-banner-search__input::-webkit-search-cancel-button,
.ht-banner-search__input::-webkit-search-decoration { display: none; }

/* Right: green circle — AI magnifying-glass icon is the submit */
.ht-banner-search__btn {
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: #01A347;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	margin-left: 8px;
	transition: background 0.18s;
	box-shadow: 0 2px 12px rgba(1, 163, 71, 0.40);
}

.ht-banner-search__btn:hover,
.ht-banner-search__btn:focus {
	background: #013C1A;
	outline: 2px solid rgba(255, 255, 255, 0.40);
	outline-offset: 2px;
}

.ht-banner-search__ai-icon {
	width: 26px;
	height: 26px;
}

/* Desktop: right-aligned, 5% padding from right, banner-centred */
@media (min-width: 768px) {
	.ht-banner-search {
		bottom: auto;
		left: auto;
		right: 5%;
		top: 50%;
		transform: translateY(-50%);
		width: 400px;
		max-width: 400px;
	}

	.ht-banner-search__wrap {
		height: 52px;
		border-radius: 26px;
		padding: 0 8px 0 18px;
	}

	.ht-banner-search__sparkle {
		width: 15px;
		height: 15px;
		margin-right: 10px;
	}

	.ht-banner-search__input {
		font-size: 14px;
	}

	.ht-banner-search__btn {
		width: 40px;
		height: 40px;
		margin-left: 7px;
	}

	.ht-banner-search__ai-icon {
		width: 22px;
		height: 22px;
	}
}
