/**
 * Bhumiwala widget components.
 *
 * Every colour and size comes from the design tokens in the child theme. Each
 * var() carries a fallback because these widgets live in the plugin and must
 * still render sanely if the theme is ever swapped — rule 3 of the working
 * agreement is that the site survives a theme change, and a component that
 * renders as unstyled black-on-white does not clear that bar.
 */

/* ══ Layout ═══════════════════════════════════════════════════════════ */

.bw-grid {
	display: grid;
	gap: var(--bw-space-5, 1.5rem);
	grid-template-columns: repeat(auto-fill, minmax(min(290px, 100%), 1fr));
}

@media (min-width: 1024px) {
	.bw-grid {
		grid-template-columns: repeat(var(--bw-grid-cols, 3), minmax(0, 1fr));
	}
}

.bw-empty {
	padding: var(--bw-space-7, 3rem) var(--bw-space-4, 1rem);
	text-align: center;
	color: var(--bw-text-muted, #5a544c);
	border: 1px dashed var(--bw-border, #e6e1da);
	border-radius: var(--bw-radius-md, 10px);
	max-width: 46ch;
	margin-inline: auto;
}

/* ══ Card ═════════════════════════════════════════════════════════════ */

.bw-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--bw-bg, #fff);
	border: 1px solid var(--bw-border, #e6e1da);
	border-radius: var(--bw-radius-md, 10px);
	overflow: hidden;
	transition:
		box-shadow var(--bw-duration-base, 200ms) var(--bw-ease, ease),
		border-color var(--bw-duration-base, 200ms) var(--bw-ease, ease);
}

.bw-card:hover,
.bw-card:focus-within {
	border-color: var(--bw-accent-300, #d9b062);
	box-shadow: var(--bw-shadow-lg, 0 12px 28px rgb(10 25 40 / 0.12));
}

.bw-card__media {
	position: relative;
	aspect-ratio: 3 / 2;
	background: var(--bw-brand-800, #0e2338);
	overflow: hidden;
}

.bw-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform var(--bw-duration-slow, 320ms) var(--bw-ease-out, ease);
}

.bw-card:hover .bw-card__img {
	transform: scale(1.03);
}

@media (prefers-reduced-motion: reduce) {
	.bw-card:hover .bw-card__img { transform: none; }
}

.bw-card__img--empty {
	background: linear-gradient(160deg, var(--bw-brand-700, #142f4d), var(--bw-brand-900, #0a1928));
}

.bw-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--bw-space-2, 0.5rem);
	padding: var(--bw-space-4, 1rem);
	flex: 1;
}

.bw-card__place {
	margin: 0;
	font-size: var(--bw-text-2xs, 0.6875rem);
	letter-spacing: var(--bw-tracking-wide, 0.04em);
	text-transform: uppercase;
	color: var(--bw-text-subtle, #7a736a);
}

.bw-card__name {
	margin: 0;
	font-size: var(--bw-text-md, 1.125rem);
	font-weight: var(--bw-weight-bold, 700);
	line-height: var(--bw-leading-snug, 1.3);
	letter-spacing: var(--bw-tracking-tight, -0.02em);
}

.bw-card__link {
	color: inherit;
	text-decoration: none;
}

/*
 * The title's hit area is stretched over the whole card, so a mouse gets a
 * large target while the keyboard still gets a single stop. Everything that
 * needs to stay separately clickable must sit above this.
 */
.bw-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.bw-card__usp {
	margin: 0;
	font-size: var(--bw-text-sm, 0.875rem);
	line-height: var(--bw-leading-normal, 1.6);
	color: var(--bw-text-muted, #5a544c);
}

.bw-card__price {
	margin: auto 0 0;
	padding-top: var(--bw-space-2, 0.5rem);
	font-size: var(--bw-text-md, 1.125rem);
	font-weight: var(--bw-weight-bold, 700);
	letter-spacing: var(--bw-tracking-tight, -0.02em);
	font-variant-numeric: tabular-nums;
	/* accent-600, not 500: brass at 500 is 3.6:1 on white, which is fine for
	   a button fill and not for text this size. */
	color: var(--bw-accent-600, #8f631d);
}

.bw-card__facts {
	display: flex;
	flex-wrap: wrap;
	gap: var(--bw-space-1, 0.25rem) var(--bw-space-4, 1rem);
	margin: 0;
	padding: var(--bw-space-3, 0.75rem) 0 0;
	list-style: none;
	border-top: 1px solid var(--bw-border, #e6e1da);
	font-size: var(--bw-text-xs, 0.75rem);
	color: var(--bw-text-muted, #5a544c);
	font-variant-numeric: tabular-nums;
}

.bw-card__rera {
	margin: 0;
	font-size: 0.625rem;
	letter-spacing: 0.045em;
	color: var(--bw-text-subtle, #7a736a);
}

/* ══ Badge ════════════════════════════════════════════════════════════ */

.bw-badge {
	position: absolute;
	inset-block-start: var(--bw-space-3, 0.75rem);
	inset-inline-start: var(--bw-space-3, 0.75rem);
	z-index: 2;
	padding: 0.3rem 0.55rem;
	border-radius: var(--bw-radius-xs, 4px);
	background: var(--bw-accent-400, #c9963c);
	color: var(--bw-brand-900, #0a1928);
	font-size: 0.625rem;
	font-weight: var(--bw-weight-bold, 700);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.bw-badge--quiet {
	background: rgb(255 255 255 / 0.92);
	color: var(--bw-brand-800, #0e2338);
}

/* ══ Filters ══════════════════════════════════════════════════════════ */

.bw-filters {
	display: flex;
	flex-direction: column;
	gap: var(--bw-space-4, 1rem);
}

.bw-filters__facets {
	display: flex;
	flex-wrap: wrap;
	gap: var(--bw-space-5, 1.5rem);
}

.bw-facet {
	border: 0;
	margin: 0;
	padding: 0;
	min-width: 0;
}

.bw-facet__legend {
	padding: 0 0 var(--bw-space-2, 0.5rem);
	font-size: var(--bw-text-2xs, 0.6875rem);
	font-weight: var(--bw-weight-semibold, 600);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bw-text-subtle, #7a736a);
}

.bw-facet__options {
	display: flex;
	flex-wrap: wrap;
	gap: var(--bw-space-2, 0.5rem);
}

.bw-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	min-height: 38px;
	padding: 0.45rem 0.85rem;
	border: 1px solid var(--bw-border, #e6e1da);
	border-radius: var(--bw-radius-full, 999px);
	background: var(--bw-bg, #fff);
	color: var(--bw-text-muted, #5a544c);
	font-size: var(--bw-text-sm, 0.875rem);
	font-weight: var(--bw-weight-semibold, 600);
	text-decoration: none;
	transition:
		border-color var(--bw-duration-fast, 120ms) var(--bw-ease, ease),
		color var(--bw-duration-fast, 120ms) var(--bw-ease, ease);
}

.bw-chip:hover {
	border-color: var(--bw-accent-400, #c9963c);
	color: var(--bw-text, #171412);
}

.bw-chip.is-on {
	background: var(--bw-brand-900, #0a1928);
	border-color: var(--bw-brand-900, #0a1928);
	color: var(--bw-accent-200, #e8cd93);
}

.bw-chip__n {
	font-size: var(--bw-text-2xs, 0.6875rem);
	font-variant-numeric: tabular-nums;
	opacity: 0.7;
}

/* ── Active pills ─────────────────────────────────────────────────── */

.bw-active {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--bw-space-2, 0.5rem);
}

.bw-active__label {
	font-size: var(--bw-text-2xs, 0.6875rem);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bw-text-subtle, #7a736a);
}

.bw-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 32px;
	padding: 0.25rem 0.7rem;
	border-radius: var(--bw-radius-full, 999px);
	background: var(--bw-accent-50, #fbf5e9);
	border: 1px solid var(--bw-accent-200, #e8cd93);
	color: var(--bw-accent-700, #6d4b17);
	font-size: var(--bw-text-xs, 0.75rem);
	font-weight: var(--bw-weight-semibold, 600);
	text-decoration: none;
}

.bw-pill:hover {
	background: var(--bw-accent-100, #f4e6c8);
}

.bw-pill__x {
	font-size: 1rem;
	line-height: 1;
}

.bw-active__clear {
	font-size: var(--bw-text-xs, 0.75rem);
	font-weight: var(--bw-weight-semibold, 600);
	color: var(--bw-link, #1d3f65);
}

/* ── Sort ─────────────────────────────────────────────────────────── */

.bw-sort {
	display: flex;
	align-items: center;
	gap: var(--bw-space-2, 0.5rem);
	margin-inline-start: auto;
}

.bw-sort__label {
	font-size: var(--bw-text-2xs, 0.6875rem);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bw-text-subtle, #7a736a);
}

.bw-sort select {
	min-height: 40px;
	padding: 0 2rem 0 0.75rem;
	border: 1px solid var(--bw-border, #e6e1da);
	border-radius: var(--bw-radius-sm, 6px);
	background: var(--bw-bg, #fff);
	color: var(--bw-text, #171412);
	font-size: var(--bw-text-sm, 0.875rem);
}

.bw-sort__go {
	min-height: 40px;
	padding: 0 0.9rem;
	border: 1px solid var(--bw-border, #e6e1da);
	border-radius: var(--bw-radius-sm, 6px);
	background: var(--bw-bg-subtle, #faf8f5);
	color: var(--bw-text, #171412);
	font-size: var(--bw-text-sm, 0.875rem);
	font-weight: var(--bw-weight-semibold, 600);
	cursor: pointer;
}

/* The script hides this once it can submit on change; without JavaScript it
   stays, because a select that only works with a script is a dead control. */
.bw-sort.is-enhanced .bw-sort__go {
	display: none;
}

/* ══ Pagination ═══════════════════════════════════════════════════════ */

.bw-pagination {
	margin-top: var(--bw-space-6, 2rem);
}

.bw-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--bw-space-2, 0.5rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.bw-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	min-height: 42px;
	padding: 0 0.7rem;
	border: 1px solid var(--bw-border, #e6e1da);
	border-radius: var(--bw-radius-sm, 6px);
	color: var(--bw-link, #1d3f65);
	font-size: var(--bw-text-sm, 0.875rem);
	font-weight: var(--bw-weight-semibold, 600);
	text-decoration: none;
	font-variant-numeric: tabular-nums;
}

.bw-pagination .page-numbers:hover {
	border-color: var(--bw-accent-400, #c9963c);
}

.bw-pagination .page-numbers.current {
	background: var(--bw-brand-900, #0a1928);
	border-color: var(--bw-brand-900, #0a1928);
	color: var(--bw-accent-200, #e8cd93);
}

.bw-pagination .page-numbers.dots {
	border-color: transparent;
}

/* ══ Utilities ════════════════════════════════════════════════════════ */

/* Repeated from the theme deliberately: these widgets must stay accessible
   even if the theme that normally provides it is replaced. */
.bw-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.bw-editor-notice {
	padding: var(--bw-space-4, 1rem);
	border: 1px dashed #c9963c;
	border-radius: var(--bw-radius-sm, 6px);
	background: #fbf5e9;
	color: #6d4b17;
	font-size: 0.875rem;
}

/* ══ Header and footer components ═════════════════════════════════════ */

/* The wordmark is type, not an image, until a logo file exists. Setting it in
   CSS rather than baking a styled string into the template means the day the
   logo arrives, only the template changes. */
.bw-wordmark {
	letter-spacing: -0.04em;
}

.bw-wordmark a {
	color: inherit;
	text-decoration: none;
}

/* ── Call / WhatsApp button ───────────────────────────────────────── */

.bw-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	padding: 0.6rem 1.05rem;
	border-radius: var(--bw-radius-sm, 6px);
	font-size: var(--bw-text-sm, 0.875rem);
	font-weight: var(--bw-weight-semibold, 600);
	text-decoration: none;
	white-space: nowrap;
	transition:
		background-color var(--bw-duration-fast, 120ms) var(--bw-ease, ease),
		color var(--bw-duration-fast, 120ms) var(--bw-ease, ease);
}

.bw-cta svg { flex: none; }

.bw-cta--outline {
	border: 1px solid rgb(217 176 98 / 0.45);
	color: var(--bw-accent-200, #e8cd93);
}

.bw-cta--outline:hover {
	background: rgb(217 176 98 / 0.14);
	color: #fff;
}

.bw-cta--solid {
	border: 1px solid transparent;
	background: var(--bw-accent-400, #c9963c);
	color: var(--bw-brand-900, #0a1928);
}

.bw-cta--solid:hover {
	background: var(--bw-accent-300, #d9b062);
}

/* ── Footer contact block ─────────────────────────────────────────── */

.bw-contact {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--bw-space-2, 0.5rem);
	font-size: var(--bw-text-sm, 0.875rem);
	line-height: var(--bw-leading-normal, 1.6);
	color: #a9bccd;
}

.bw-contact a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid rgb(169 188 205 / 0.3);
}

.bw-contact a:hover {
	color: #fff;
	border-bottom-color: var(--bw-accent-300, #d9b062);
}

/* ── Legal strip ──────────────────────────────────────────────────── */

.bw-legal {
	display: grid;
	gap: var(--bw-space-3, 0.75rem);
	padding-top: var(--bw-space-5, 1.5rem);
	border-top: 1px solid rgb(255 255 255 / 0.1);
	color: #7d92a8;
	font-size: var(--bw-text-xs, 0.75rem);
	line-height: 1.65;
}

.bw-legal p { margin: 0; }

.bw-legal__reg {
	font-family: var(--bw-font-mono, ui-monospace, monospace);
	letter-spacing: 0.03em;
}

/* The disclaimer is a legal statement and has to stay readable. Measured at
   7.5:1 against the footer ground, well past the 4.5:1 the standard asks. */
.bw-legal__text { max-width: 90ch; }

/* ══ Hero slider ══════════════════════════════════════════════════════ */

.bw-hero {
	position: relative;
	background: var(--bw-brand-900, #0a1928);
	overflow: hidden;
}

.bw-hero--short { --bw-hero-h: 420px; }
.bw-hero--tall  { --bw-hero-h: 620px; }
.bw-hero--full  { --bw-hero-h: min(82vh, 760px); }

/*
 * Scroll-snap rather than transforms. Touch swipe, keyboard scrolling and the
 * scrollbar all work without a line of JavaScript, and the whole set is in the
 * DOM rather than injected on demand.
 */
.bw-hero__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 100%;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.bw-hero__track::-webkit-scrollbar { display: none; }

.bw-hero__slide {
	position: relative;
	scroll-snap-align: center;
	scroll-snap-stop: always;
	min-height: var(--bw-hero-h, 620px);
	display: grid;
}

.bw-hero__img {
	grid-area: 1 / 1;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Navy, not black. A neutral scrim greys the photograph; a brand-tinted one
   holds the image and the palette together. */
.bw-hero__veil {
	grid-area: 1 / 1;
	background:
		linear-gradient(100deg, rgb(10 25 40 / 0.92) 0%, rgb(10 25 40 / 0.72) 42%, rgb(10 25 40 / 0.15) 78%),
		linear-gradient(0deg, rgb(10 25 40 / 0.55) 0%, transparent 45%);
}

.bw-hero__body {
	grid-area: 1 / 1;
	position: relative;
	align-self: center;
	width: 100%;
	max-width: var(--bw-container, 1280px);
	margin-inline: auto;
	padding: var(--bw-space-7, 3rem) var(--bw-gutter, 1.5rem) calc(var(--bw-space-8, 4rem) + 1.5rem);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--bw-space-3, 0.75rem);
	color: #eef3f8;
}

.bw-hero__eyebrow {
	margin: 0;
	font-size: var(--bw-text-2xs, 0.6875rem);
	font-weight: var(--bw-weight-semibold, 600);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bw-accent-300, #d9b062);
}

.bw-hero__title {
	margin: 0;
	max-width: 14ch;
	font-size: clamp(2.1rem, 1.4rem + 3vw, 3.6rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.032em;
	color: #fff;
}

.bw-hero__lede {
	margin: 0;
	max-width: 46ch;
	font-size: clamp(0.9375rem, 0.9rem + 0.25vw, 1.125rem);
	line-height: 1.55;
	color: #c3d1e0;
}

.bw-hero__meta {
	margin: 0;
	font-size: var(--bw-text-sm, 0.875rem);
	color: #90a4b8;
	font-variant-numeric: tabular-nums;
}

.bw-hero__cta {
	margin-top: var(--bw-space-2, 0.5rem);
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	padding: 0.7rem 1.4rem;
	border-radius: var(--bw-radius-sm, 6px);
	background: var(--bw-accent-400, #c9963c);
	color: var(--bw-brand-900, #0a1928);
	font-size: var(--bw-text-sm, 0.875rem);
	font-weight: var(--bw-weight-bold, 700);
	text-decoration: none;
	transition: background-color var(--bw-duration-fast, 120ms) var(--bw-ease, ease);
}

.bw-hero__cta:hover { background: var(--bw-accent-300, #d9b062); }

/* ── Controls ─────────────────────────────────────────────────────── */

.bw-hero__nav {
	position: absolute;
	inset-block-end: var(--bw-space-5, 1.5rem);
	inset-inline-start: 50%;
	transform: translateX(-50%);
	z-index: 2;
	display: flex;
	align-items: center;
	gap: var(--bw-space-3, 0.75rem);
	padding: 0.4rem 0.5rem;
	border-radius: var(--bw-radius-full, 999px);
	background: rgb(10 25 40 / 0.55);
	backdrop-filter: blur(6px);
}

.bw-hero__arrow {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	min-height: 38px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #eef3f8;
	cursor: pointer;
}

.bw-hero__arrow:hover { background: rgb(255 255 255 / 0.12); }

.bw-hero__dots {
	display: flex;
	align-items: center;
	gap: 0.45rem;
}

/* Dots are links to each slide's anchor, so they work before the script does.
   The transparent ring gives the 9px dot a real tap target. */
.bw-hero__dot {
	display: block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: rgb(238 243 248 / 0.35);
	box-shadow: 0 0 0 9px transparent;
	transition:
		background-color var(--bw-duration-fast, 120ms) var(--bw-ease, ease),
		width var(--bw-duration-base, 200ms) var(--bw-ease, ease);
}

.bw-hero__dot[aria-selected="true"] {
	width: 26px;
	border-radius: var(--bw-radius-full, 999px);
	background: var(--bw-accent-300, #d9b062);
}

@media (max-width: 640px) {
	.bw-hero__title { max-width: 100%; }
	.bw-hero__body { padding-bottom: var(--bw-space-9, 6rem); }
}

@media (prefers-reduced-motion: reduce) {
	.bw-hero__track { scroll-behavior: auto; }
	.bw-hero__dot { transition: none; }
}

/* ══ Search form ══════════════════════════════════════════════════════ */

.bw-search {
	position: relative;
	z-index: 3;
	width: 100%;
	max-width: var(--bw-container, 1280px);
	margin-inline: auto;
	padding-inline: var(--bw-gutter, 1.5rem);
}

/* Half over the hero, half below it. The negative pull is roughly half the
   panel's own height; the hero's bottom padding already leaves room so the
   slider dots are never covered. */
.bw-search--overlap {
	margin-top: -84px;
}

@media (max-width: 900px) {
	.bw-search--overlap { margin-top: -48px; }
}

/* ── Tabs ─────────────────────────────────────────────────────────── */

.bw-search__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	padding: 0;
	margin: 0 0 -1px;
}

.bw-search__tab {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	padding: 0.7rem 1.35rem;
	border: 1px solid var(--bw-border, #e6e1da);
	border-bottom: 0;
	border-radius: var(--bw-radius-md, 10px) var(--bw-radius-md, 10px) 0 0;
	background: rgb(255 255 255 / 0.72);
	color: var(--bw-text-muted, #5a544c);
	font-size: var(--bw-text-sm, 0.875rem);
	font-weight: var(--bw-weight-semibold, 600);
	cursor: pointer;
	backdrop-filter: blur(8px);
	transition:
		background-color var(--bw-duration-fast, 120ms) var(--bw-ease, ease),
		color var(--bw-duration-fast, 120ms) var(--bw-ease, ease);
}

.bw-search__tab:hover { color: var(--bw-text, #171412); }

/* The radio is the state; the label is what is seen. Checked wins here, so a
   tab works before any script runs. */
.bw-search__radio:checked + .bw-search__tab {
	background: var(--bw-bg, #fff);
	color: var(--bw-brand-900, #0a1928);
	box-shadow: inset 0 3px 0 0 var(--bw-accent-400, #c9963c);
}

.bw-search__radio:focus-visible + .bw-search__tab {
	outline: 3px solid var(--bw-accent-500, #b07d26);
	outline-offset: -3px;
}

/* ── Panel ────────────────────────────────────────────────────────── */

.bw-search__form {
	display: flex;
	flex-direction: column;
	gap: var(--bw-space-4, 1rem);
	padding: var(--bw-space-5, 1.5rem);
	background: var(--bw-bg, #fff);
	border: 1px solid var(--bw-border, #e6e1da);
	border-radius: 0 var(--bw-radius-lg, 16px) var(--bw-radius-lg, 16px) var(--bw-radius-lg, 16px);
	box-shadow: var(--bw-shadow-xl, 0 24px 56px rgb(10 25 40 / 0.16));
}

.bw-search__row {
	display: grid;
	gap: var(--bw-space-3, 0.75rem);
}

.bw-search__row--top {
	grid-template-columns: minmax(0, 280px);
	padding-bottom: var(--bw-space-4, 1rem);
	border-bottom: 1px solid var(--bw-rule-soft, #f0ece6);
}

.bw-search__row--main {
	grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
	align-items: end;
}

@media (max-width: 1080px) {
	.bw-search__row--main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bw-search__go { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
	.bw-search__row--main,
	.bw-search__row--top { grid-template-columns: minmax(0, 1fr); }
}

/* ── Fields ───────────────────────────────────────────────────────── */

.bw-field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	min-width: 0;
}

.bw-field__label {
	font-size: var(--bw-text-2xs, 0.6875rem);
	font-weight: var(--bw-weight-semibold, 600);
	letter-spacing: 0.11em;
	text-transform: uppercase;
	color: var(--bw-text-subtle, #7a736a);
}

.bw-field__control {
	width: 100%;
	min-height: 48px;
	padding: 0 0.85rem;
	border: 1px solid var(--bw-border, #e6e1da);
	border-radius: var(--bw-radius-sm, 6px);
	background: var(--bw-bg, #fff);
	color: var(--bw-text, #171412);
	font-size: var(--bw-text-base, 1rem);
	font-weight: var(--bw-weight-medium, 500);
}

select.bw-field__control {
	appearance: none;
	padding-inline-end: 2.2rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%238f631d' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.85rem center;
	background-size: 11px;
	cursor: pointer;
}

.bw-field__control:focus-visible {
	outline: 3px solid var(--bw-accent-500, #b07d26);
	outline-offset: 1px;
	border-color: var(--bw-accent-500, #b07d26);
}

/* A control the current tab has no use for is hidden rather than disabled:
   a greyed-out budget box on the Sell tab is a question the visitor still has
   to read before working out it is not for them. */
.bw-field[hidden] { display: none; }

.bw-search__go {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 48px;
	padding: 0 1.6rem;
	border: 0;
	border-radius: var(--bw-radius-sm, 6px);
	background: var(--bw-brand-900, #0a1928);
	color: var(--bw-accent-200, #e8cd93);
	font-size: var(--bw-text-sm, 0.875rem);
	font-weight: var(--bw-weight-bold, 700);
	white-space: nowrap;
	cursor: pointer;
	transition: background-color var(--bw-duration-fast, 120ms) var(--bw-ease, ease);
}

.bw-search__go:hover { background: var(--bw-brand-700, #142f4d); }

/* ── Contact block on a light ground ──────────────────────────────────
 * The block was first written for the footer and hard-coded the pale blue
 * that works on navy. On the contact page's warm off-white that is close to
 * unreadable, so the colours now come from the surrounding text and only the
 * footer overrides them.
 * ------------------------------------------------------------------- */

.bw-contact {
	color: var(--bw-text-muted, #5a544c);
}

.bw-contact a {
	color: var(--bw-link, #1d3f65);
	border-bottom-color: var(--bw-border-strong, #d2ccc3);
}

.bw-contact a:hover {
	color: var(--bw-brand-800, #0e2338);
	border-bottom-color: var(--bw-accent-500, #b07d26);
}

#bw-footer .bw-contact { color: #a9bccd; }

#bw-footer .bw-contact a {
	color: inherit;
	border-bottom-color: rgb(169 188 205 / 0.3);
}

#bw-footer .bw-contact a:hover {
	color: #fff;
	border-bottom-color: var(--bw-accent-300, #d9b062);
}
