/**
 * JaBizHub public components.
 *
 * Every class is scoped under .jbh so the theme cannot leak into these
 * templates and these templates cannot leak into the theme. Measurements
 * follow the demo: 48px buttons, 52px search bars, 44px minimum touch
 * targets, 1280px maximum content width.
 */

.jbh {
	font-family: 'Inter', system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
	color: var(--jbh-text);
	background: var(--jbh-canvas);
	font-size: 16px;
	line-height: 24px;
	-webkit-font-smoothing: antialiased;
}

.jbh *,
.jbh *::before,
.jbh *::after {
	box-sizing: border-box;
}

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

.jbh img {
	max-width: 100%;
	display: block;
}

.jbh h1,
.jbh h2,
.jbh h3,
.jbh h4 {
	margin: 0;
	font-weight: 650;
	letter-spacing: -.01em;
}

.jbh p {
	margin: 0;
}

.jbh :focus-visible {
	outline: 3px solid var(--jbh-focus);
	outline-offset: 2px;
	border-radius: var(--jbh-r-xs);
}

/* ---------- type scale ---------- */
.jbh-h1 { font-size: 44px; line-height: 50px; }
.jbh-h2 { font-size: 34px; line-height: 40px; }
.jbh-h3 { font-size: 26px; line-height: 32px; }
.jbh-h4 { font-size: 20px; line-height: 26px; }
.jbh-lead { font-size: 18px; line-height: 28px; }
.jbh-sm { font-size: 14px; line-height: 20px; }
.jbh-xs { font-size: 12px; line-height: 16px; }
.jbh-muted { color: var(--jbh-text-2); }

@media (max-width: 1199px) {
	.jbh-h1 { font-size: 40px; line-height: 46px; }
	.jbh-h2 { font-size: 32px; line-height: 38px; }
	.jbh-h3 { font-size: 24px; line-height: 30px; }
}

@media (max-width: 767px) {
	.jbh-h1 { font-size: 34px; line-height: 40px; }
	.jbh-h2 { font-size: 28px; line-height: 34px; }
	.jbh-h3 { font-size: 22px; line-height: 28px; }
}

/* ---------- layout ---------- */
.jbh-wrap {
	max-width: var(--jbh-max);
	margin: 0 auto;
	padding: 0 var(--jbh-s8);
}

.jbh-section {
	padding: var(--jbh-s12) 0;
}

@media (max-width: 1199px) {
	.jbh-wrap { padding: 0 var(--jbh-s6); }
}

@media (max-width: 767px) {
	.jbh-wrap { padding: 0 var(--jbh-s5); }
	.jbh-section { padding: var(--jbh-s8) 0; }
}

.jbh-grid { display: grid; gap: var(--jbh-s6); }
.jbh-g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jbh-g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.jbh-g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1199px) {
	.jbh-g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jbh-g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	.jbh-g4,
	.jbh-g3,
	.jbh-g2 { grid-template-columns: 1fr; }
	.jbh-grid { gap: var(--jbh-s4); }
}

.jbh-flex { display: flex; }
.jbh-ac { align-items: center; }
.jbh-as { align-items: flex-start; }
.jbh-jb { justify-content: space-between; }
.jbh-wr { flex-wrap: wrap; }
.jbh-g-2 { gap: var(--jbh-s2); }
.jbh-g-3 { gap: var(--jbh-s3); }
.jbh-g-4 { gap: var(--jbh-s4); }
.jbh-g-6 { gap: var(--jbh-s6); }

.jbh-mt2 { margin-top: var(--jbh-s2); }
.jbh-mt3 { margin-top: var(--jbh-s3); }
.jbh-mt4 { margin-top: var(--jbh-s4); }
.jbh-mt5 { margin-top: var(--jbh-s5); }
.jbh-mt6 { margin-top: var(--jbh-s6); }
.jbh-mt8 { margin-top: var(--jbh-s8); }
.jbh-mt10 { margin-top: var(--jbh-s10); }
.jbh-mb2 { margin-bottom: var(--jbh-s2); }
.jbh-mb3 { margin-bottom: var(--jbh-s3); }
.jbh-mb4 { margin-bottom: var(--jbh-s4); }
.jbh-mb5 { margin-bottom: var(--jbh-s5); }
.jbh-mb6 { margin-bottom: var(--jbh-s6); }

.jbh-divider {
	height: 1px;
	background: var(--jbh-border);
	margin: var(--jbh-s6) 0;
	border: 0;
}

/* ---------- buttons ---------- */
.jbh-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--jbh-s2);
	height: 48px;
	padding: 0 var(--jbh-s5);
	border-radius: var(--jbh-r-sm);
	font-size: 15px;
	line-height: 20px;
	font-weight: 600;
	font-family: inherit;
	border: 1px solid transparent;
	cursor: pointer;
	white-space: nowrap;
	transition: background var(--jbh-fast), border-color var(--jbh-fast);
}

.jbh-btn-primary {
	background: var(--jbh-action);
	color: #fff;
}

.jbh-btn-primary:hover {
	background: var(--jbh-action-hover);
	color: #fff;
}

.jbh-btn-secondary {
	background: var(--jbh-surface);
	color: var(--jbh-text);
	border-color: var(--jbh-border);
}

.jbh-btn-secondary:hover {
	border-color: var(--jbh-border-strong);
}

.jbh-btn-sage {
	background: var(--jbh-sage);
	color: #fff;
}

.jbh-btn-sage:hover {
	background: #255F54;
	color: #fff;
}

.jbh-btn-sm {
	height: 40px;
	padding: 0 var(--jbh-s4);
	font-size: 14px;
}

.jbh-btn-block { width: 100%; }

/* ---------- badges ---------- */
.jbh-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--jbh-s1);
	font-size: 12px;
	line-height: 16px;
	font-weight: 550;
	padding: var(--jbh-s1) var(--jbh-s3);
	border-radius: var(--jbh-r-pill);
	white-space: nowrap;
}

/* Listing types */
.jbh-badge-business { background: #E4EEF9; color: #1E4E8C; }
.jbh-badge-provider { background: #FBEEDA; color: var(--jbh-warning); }
.jbh-badge-organization { background: #EDE7F6; color: #5B3FA0; }

/* Trust */
.jbh-badge-verified { background: #E4F1EC; color: var(--jbh-success); }
.jbh-badge-founding { background: #FBEEDA; color: var(--jbh-warning); }
.jbh-badge-featured { background: #FBEEDA; color: var(--jbh-warning); }
.jbh-badge-neutral { background: var(--jbh-surface-subtle); color: var(--jbh-text-2); }

/* ---------- cards ---------- */
.jbh-card {
	background: var(--jbh-surface);
	border: 1px solid var(--jbh-border);
	border-radius: var(--jbh-r-md);
}

.jbh-card-p { padding: var(--jbh-s5); }
.jbh-card-p6 { padding: var(--jbh-s6); }

@media (max-width: 767px) {
	.jbh-card-p,
	.jbh-card-p6 { padding: var(--jbh-s4); }
}

.jbh-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--jbh-s2);
	height: 36px;
	padding: 0 var(--jbh-s3);
	border-radius: var(--jbh-r-pill);
	border: 1px solid var(--jbh-border);
	background: var(--jbh-surface);
	font-size: 13px;
}

/* ---------- breadcrumb ---------- */
.jbh-crumb {
	display: flex;
	align-items: center;
	gap: var(--jbh-s2);
	font-size: 14px;
	color: var(--jbh-text-2);
	margin-bottom: var(--jbh-s4);
	flex-wrap: wrap;
}

.jbh-crumb a:hover { text-decoration: underline; }
.jbh-crumb .jbh-current { color: var(--jbh-text); font-weight: 550; }

/* ---------- location context ---------- */
.jbh-locctx {
	display: inline-flex;
	align-items: center;
	gap: var(--jbh-s2);
	font-size: 14px;
	color: var(--jbh-text-2);
	background: var(--jbh-surface-subtle);
	border-radius: var(--jbh-r-pill);
	padding: var(--jbh-s2) var(--jbh-s4);
}

.jbh-locctx b { color: var(--jbh-text); font-weight: 550; }
.jbh-locctx a { color: var(--jbh-sage); font-weight: 600; text-decoration: underline; }

/* ---------- profile header ---------- */
.jbh-profile-head {
	display: flex;
	gap: var(--jbh-s6);
	align-items: flex-start;
	flex-wrap: wrap;
}

.jbh-avatar {
	width: 104px;
	height: 104px;
	border-radius: var(--jbh-r-md);
	background: var(--jbh-sage);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 32px;
	font-weight: 650;
	flex-shrink: 0;
	overflow: hidden;
}

.jbh-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* An independent provider is a person, not a storefront. */
.jbh-avatar-provider { background: var(--jbh-gold); }
.jbh-avatar-organization { background: #5B3FA0; }

.jbh-profile-main { flex: 1; min-width: 280px; }

@media (max-width: 767px) {
	.jbh-avatar { width: 72px; height: 72px; font-size: 24px; }
	.jbh-profile-head { gap: var(--jbh-s4); }
}

/* ---------- profile body ---------- */
.jbh-profile-cols {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: var(--jbh-s10);
	align-items: start;
}

@media (max-width: 1099px) {
	.jbh-profile-cols {
		grid-template-columns: 1fr;
		gap: var(--jbh-s8);
	}
}

.jbh-actions {
	display: flex;
	gap: var(--jbh-s3);
	flex-wrap: wrap;
	margin-top: var(--jbh-s6);
}

/* Actions become a scrollable rail on phones rather than stacking into a
   tall column that pushes the content below the fold. */
@media (max-width: 600px) {
	.jbh-actions {
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-bottom: var(--jbh-s2);
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.jbh-actions::-webkit-scrollbar { display: none; }
	.jbh-actions .jbh-btn { flex-shrink: 0; }
}

/* ---------- hours table ---------- */
.jbh-hours {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	line-height: 20px;
}

.jbh-hours td {
	padding: var(--jbh-s3) var(--jbh-s4);
	border-bottom: 1px solid var(--jbh-border);
}

.jbh-hours tr:last-child td { border-bottom: 0; }
.jbh-hours td:first-child { font-weight: 550; }
.jbh-hours td:last-child { text-align: right; }
.jbh-hours .jbh-closed { color: var(--jbh-text-2); }

/* Today's row is what people are actually looking for. */
.jbh-hours .jbh-today { background: var(--jbh-canvas-warm); }

/* Open/closed is stated in words, never colour alone. */
.jbh-open-now { color: var(--jbh-success); font-weight: 550; }
.jbh-closed-now { color: var(--jbh-text-2); font-weight: 550; }

/* ---------- gallery ---------- */
.jbh-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--jbh-s3);
}

.jbh-gallery img {
	width: 100%;
	height: 160px;
	object-fit: cover;
	border-radius: var(--jbh-r-md);
}

@media (max-width: 600px) {
	.jbh-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jbh-gallery img { height: 130px; }
}

/* ---------- contact panel ---------- */
.jbh-contact-row { margin-bottom: var(--jbh-s4); }
.jbh-contact-row:last-child { margin-bottom: 0; }
.jbh-contact-label { font-size: 12px; line-height: 16px; color: var(--jbh-text-2); }
.jbh-contact-value { font-weight: 550; word-break: break-word; }

/* Connect: bold heading and coloured icons, as the client asked. */
.jbh-connect-title {
	font-size: 16px;
	font-weight: 700;
	margin-bottom: var(--jbh-s3);
}

.jbh-social {
	display: flex;
	gap: var(--jbh-s2);
	flex-wrap: wrap;
}

.jbh-social a {
	width: 40px;
	height: 40px;
	border-radius: var(--jbh-r-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	transition: transform var(--jbh-fast);
}

.jbh-social a:hover { transform: translateY(-1px); }

.jbh-social .jbh-facebook { background: #1877F2; }
.jbh-social .jbh-instagram { background: linear-gradient(45deg, #F58529, #DD2A7B, #8134AF); }
.jbh-social .jbh-linkedin { background: #0A66C2; }
.jbh-social .jbh-tiktok { background: #010101; }
.jbh-social .jbh-x { background: #000; }
.jbh-social .jbh-youtube { background: #FF0000; }
.jbh-social .jbh-whatsapp { background: #25D366; }

/* ---------- map ---------- */
.jbh-map {
	height: 200px;
	border-radius: var(--jbh-r-md);
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #D9E8DF 0%, #C5DCD2 40%, #E8EFE9 100%);
}

.jbh-map::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, .55) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .55) 1px, transparent 1px);
	background-size: 26px 26px;
}

.jbh-map-road {
	position: absolute;
	background: #fff;
	opacity: .9;
}

.jbh-map-pin {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--jbh-coral);
	border: 3px solid #fff;
	box-shadow: var(--jbh-e2);
}

.jbh-map-label {
	position: absolute;
	top: var(--jbh-s3);
	left: var(--jbh-s3);
	font-size: 12px;
	font-weight: 550;
	background: rgba(255, 255, 255, .9);
	padding: 3px 9px;
	border-radius: var(--jbh-r-xs);
	color: var(--jbh-text-2);
}

/* ---------- service highlights ---------- */
.jbh-highlights {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--jbh-s2);
}

@media (max-width: 600px) {
	.jbh-highlights { grid-template-columns: 1fr; }
}

.jbh-highlight {
	display: flex;
	gap: var(--jbh-s2);
	align-items: flex-start;
	font-size: 14px;
	line-height: 20px;
}

.jbh-highlight svg { flex-shrink: 0; margin-top: 2px; }

/* ---------- privacy note ---------- */
.jbh-privacy-note {
	font-size: 12px;
	line-height: 18px;
	color: var(--jbh-text-2);
	margin-top: var(--jbh-s2);
}

/* ---------- empty state ---------- */
.jbh-empty {
	border: 1px solid var(--jbh-border);
	border-radius: var(--jbh-r-md);
	background: var(--jbh-surface);
	padding: var(--jbh-s10) var(--jbh-s6);
	text-align: center;
}

.jbh-empty p {
	color: var(--jbh-text-2);
	max-width: 380px;
	margin: var(--jbh-s2) auto var(--jbh-s5);
}

/* ---------- screen reader only ---------- */
.jbh-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- page intro, shared by every directory page ---------- */
.jbh-intro {
	padding: var(--jbh-s8) 0 var(--jbh-s6);
}

.jbh-intro p {
	max-width: 62ch;
}

/* ---------- section heading ---------- */
.jbh-section-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: var(--jbh-s4);
	margin-bottom: var(--jbh-s5);
	flex-wrap: wrap;
}

.jbh-section-link {
	font-size: 14px;
	font-weight: 600;
	color: var(--jbh-sage);
	white-space: nowrap;
}

.jbh-section-link:hover { text-decoration: underline; }

.jbh-section-note {
	font-size: 13px;
	font-weight: 550;
	color: var(--jbh-text-2);
}

/* ---------- listing card ---------- */
.jbh-listing-card {
	display: flex;
	gap: var(--jbh-s4);
	align-items: flex-start;
	padding: var(--jbh-s5);
	border: 1px solid var(--jbh-border);
	border-radius: var(--jbh-r-md);
	background: var(--jbh-surface);
	transition: border-color var(--jbh-base);
}

.jbh-listing-card:hover { border-color: var(--jbh-border-strong); }

.jbh-listing-media {
	width: 84px;
	height: 84px;
	border-radius: var(--jbh-r-sm);
	overflow: hidden;
	flex-shrink: 0;
	background: var(--jbh-surface-subtle);
}

.jbh-listing-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.jbh-listing-initials {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	font-weight: 700;
	color: #fff;
	background: var(--jbh-sage);
}

.jbh-listing-initials.jbh-avatar-provider { background: var(--jbh-gold); }
.jbh-listing-initials.jbh-avatar-organization { background: #5B3FA0; }

.jbh-listing-body { flex: 1; min-width: 0; }

.jbh-listing-name {
	font-size: 17px;
	line-height: 23px;
	font-weight: 600;
}

.jbh-listing-name a:hover { text-decoration: underline; }

.jbh-listing-meta {
	font-size: 13px;
	line-height: 19px;
	color: var(--jbh-text-2);
	margin-top: 2px;
}

.jbh-listing-side {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--jbh-s2);
	flex-shrink: 0;
}

.jbh-listing-distance {
	font-size: 12px;
	font-weight: 600;
	color: var(--jbh-text-2);
}

@media (max-width: 600px) {
	.jbh-listing-card {
		flex-wrap: wrap;
		padding: var(--jbh-s4);
	}

	.jbh-listing-media { width: 64px; height: 64px; }

	.jbh-listing-side {
		width: 100%;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
	}
}

/* ---------- category tile ---------- */
.jbh-cat {
	display: block;
	border: 1px solid var(--jbh-border);
	border-radius: var(--jbh-r-md);
	background: var(--jbh-surface);
	padding: var(--jbh-s5);
	transition: border-color var(--jbh-base), box-shadow var(--jbh-base);
}

.jbh-cat:hover {
	border-color: var(--jbh-border-strong);
	box-shadow: var(--jbh-e1);
}

.jbh-cat-top {
	display: flex;
	align-items: flex-start;
	gap: var(--jbh-s3);
	margin-bottom: var(--jbh-s3);
}

.jbh-cat-mark {
	width: 34px;
	height: 34px;
	border-radius: var(--jbh-r-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 700;
	flex-shrink: 0;
	background: var(--jbh-canvas-warm);
	color: var(--jbh-sage);
}

.jbh-cat-name {
	font-size: 16px;
	line-height: 22px;
	font-weight: 600;
}

.jbh-cat-desc {
	font-size: 13px;
	line-height: 19px;
	color: var(--jbh-text-2);
}

.jbh-cat-foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: var(--jbh-s4);
	font-size: 13px;
}

.jbh-cat-foot span:first-child {
	font-weight: 650;
	color: var(--jbh-sage);
}

.jbh-cat-count { color: var(--jbh-text-2); }

/* ---------- place card ---------- */
.jbh-place {
	border: 1px solid var(--jbh-border);
	border-radius: var(--jbh-r-md);
	background: var(--jbh-surface);
	overflow: hidden;
	display: block;
	transition: border-color var(--jbh-base);
}

.jbh-place:hover { border-color: var(--jbh-border-strong); }

.jbh-place-media {
	height: 160px;
	background: var(--jbh-surface-subtle);
	overflow: hidden;
}

.jbh-place-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.jbh-place-body { padding: var(--jbh-s4); }

.jbh-place-name {
	font-size: 16px;
	line-height: 22px;
	font-weight: 600;
}

.jbh-place-meta {
	font-size: 12.5px;
	line-height: 18px;
	color: var(--jbh-text-2);
	margin-top: var(--jbh-s1);
}

.jbh-place-desc {
	font-size: 13px;
	line-height: 19px;
	color: var(--jbh-text-2);
	margin-top: var(--jbh-s2);
}

/* ---------- area tile, for parishes and states ---------- */
.jbh-area {
	display: block;
	border: 1px solid var(--jbh-border);
	border-radius: var(--jbh-r-md);
	background: var(--jbh-surface);
	padding: var(--jbh-s5);
	transition: border-color var(--jbh-base);
}

.jbh-area:hover { border-color: var(--jbh-border-strong); }

.jbh-area-name {
	font-size: 15.5px;
	line-height: 21px;
	font-weight: 600;
}

.jbh-area-meta {
	font-size: 12.5px;
	line-height: 18px;
	color: var(--jbh-text-2);
	margin-top: var(--jbh-s1);
}

.jbh-area-go {
	font-size: 13px;
	font-weight: 650;
	color: var(--jbh-sage);
	margin-top: var(--jbh-s4);
	display: inline-block;
}

/* ---------- pagination ---------- */
.jbh-pagination {
	display: flex;
	justify-content: center;
	gap: var(--jbh-s2);
	margin-top: var(--jbh-s8);
	flex-wrap: wrap;
}

.jbh-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 var(--jbh-s3);
	border: 1px solid var(--jbh-border);
	border-radius: var(--jbh-r-sm);
	background: var(--jbh-surface);
	font-size: 14px;
	font-weight: 550;
}

.jbh-pagination .page-numbers:hover { border-color: var(--jbh-border-strong); }

.jbh-pagination .page-numbers.current {
	background: var(--jbh-ink);
	border-color: var(--jbh-ink);
	color: #fff;
}

.jbh-pagination .dots { border: 0; background: none; }

/* ---------- result count line ---------- */
.jbh-result-count {
	font-size: 14px;
	color: var(--jbh-text-2);
	margin-bottom: var(--jbh-s5);
}

/* ---------- homepage hero ---------- */
.jbh-hero {
	background: var(--jbh-canvas-warm);
	padding: var(--jbh-s20) 0;
	border-bottom: 1px solid var(--jbh-border);
}

.jbh-hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
	gap: var(--jbh-s16);
	align-items: center;
}

@media (max-width: 1023px) {
	.jbh-hero { padding: var(--jbh-s12) 0; }
	.jbh-hero-grid { grid-template-columns: 1fr; gap: var(--jbh-s10); }
	/* On a phone the photo below the fold is wasted space above it. */
	.jbh-hero-media { order: -1; }
}

.jbh-hero-media img,
.jbh-hero-placeholder {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--jbh-r-lg);
	box-shadow: var(--jbh-e2);
}

.jbh-hero-placeholder {
	background: linear-gradient(135deg, var(--jbh-sage) 0%, #1F5A4E 100%);
}

.jbh-hero-search {
	display: flex;
	gap: var(--jbh-s2);
	max-width: 560px;
}

.jbh-hero-search input {
	flex: 1;
	min-width: 0;
	height: 52px;
	padding: 0 var(--jbh-s5);
	font-size: 16px;
	font-family: inherit;
	color: var(--jbh-text);
	background: var(--jbh-surface);
	border: 1px solid var(--jbh-border);
	border-radius: var(--jbh-r-sm);
}

.jbh-hero-search input::placeholder { color: var(--jbh-text-2); }
.jbh-hero-search .jbh-btn { height: 52px; }

@media (max-width: 600px) {
	.jbh-hero-search { flex-direction: column; }
	.jbh-hero-search .jbh-btn { width: 100%; }
}

/* ---------- alternating band ---------- */
.jbh-band {
	background: var(--jbh-canvas-warm);
	border-top: 1px solid var(--jbh-border);
	border-bottom: 1px solid var(--jbh-border);
}

/* ---------- category tile ---------- */
.jbh-cat-tile {
	display: block;
	transition: border-color var(--jbh-fast);
}

.jbh-cat-tile:hover { border-color: var(--jbh-border-strong); }

/* ---------- call to action ---------- */
.jbh-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--jbh-s8);
	flex-wrap: wrap;
	background: var(--jbh-ink);
	color: #fff;
	border-radius: var(--jbh-r-lg);
	padding: var(--jbh-s10);
}

.jbh-cta .jbh-muted { color: rgba(255, 255, 255, .78); }
.jbh-cta p { color: rgba(255, 255, 255, .82); }

@media (max-width: 767px) {
	.jbh-cta { padding: var(--jbh-s6); }
}

/* ---------- pricing ---------- */
.jbh-plan-price { display: flex; align-items: baseline; gap: var(--jbh-s2); }

.jbh-plan-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.jbh-plan-list li {
	display: flex;
	gap: var(--jbh-s3);
	align-items: flex-start;
	margin-bottom: var(--jbh-s3);
	font-size: 15px;
	line-height: 22px;
}

.jbh-plan-list svg { flex-shrink: 0; margin-top: 3px; }

/* ---------- FAQ ---------- */
.jbh-faq summary {
	cursor: pointer;
	font-weight: 600;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--jbh-s4);
}

.jbh-faq summary::-webkit-details-marker { display: none; }

.jbh-faq summary::after {
	content: "+";
	font-size: 20px;
	line-height: 1;
	color: var(--jbh-text-2);
	flex-shrink: 0;
}

.jbh-faq details[open] summary::after { content: "−"; }

/* ---------- prose ---------- */
.jbh-prose { max-width: 68ch; }

.jbh-note {
	background: var(--jbh-canvas-warm);
	border-left: 3px solid var(--jbh-gold);
	padding: var(--jbh-s4) var(--jbh-s5);
	border-radius: var(--jbh-r-xs);
	font-size: 14px;
	line-height: 22px;
	color: var(--jbh-text-2);
}

.jbh-mt16 { margin-top: var(--jbh-s16); }
.jbh-mt1 { margin-top: var(--jbh-s1); }

/* ---------- contact page ---------- */
.jbh-contact-cols {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: var(--jbh-s8);
	align-items: start;
}

@media (max-width: 899px) {
	.jbh-contact-cols { grid-template-columns: 1fr; }
}

.jbh-address {
	font-style: normal;
	line-height: 26px;
}

.jbh-inline-link {
	color: var(--jbh-sage);
	font-weight: 600;
	text-decoration: none;
}

.jbh-inline-link:hover { text-decoration: underline; }

/* ---------- forms ---------- */
.jbh-field { margin-bottom: var(--jbh-s5); }

.jbh-field label {
	display: block;
	font-weight: 600;
	font-size: 15px;
	margin-bottom: var(--jbh-s2);
}

.jbh-field input,
.jbh-field textarea {
	width: 100%;
	font: inherit;
	font-size: 16px;
	color: var(--jbh-text);
	background: var(--jbh-surface);
	border: 1px solid var(--jbh-border);
	border-radius: var(--jbh-r-sm);
	padding: var(--jbh-s3) var(--jbh-s4);
}

.jbh-field input { height: 48px; }
.jbh-field textarea { min-height: 140px; resize: vertical; }
.jbh-field input::placeholder,
.jbh-field textarea::placeholder { color: var(--jbh-text-2); }

.jbh-field input:focus,
.jbh-field textarea:focus {
	outline: 3px solid var(--jbh-focus);
	outline-offset: 1px;
	border-color: var(--jbh-focus);
}

/* ---------- legal pages ---------- */
.jbh-legal-cols {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: var(--jbh-s12);
	align-items: start;
}

@media (max-width: 899px) {
	.jbh-legal-cols { grid-template-columns: 1fr; gap: var(--jbh-s8); }
}

.jbh-toc {
	position: sticky;
	top: var(--jbh-s6);
}

@media (max-width: 899px) {
	.jbh-toc {
		position: static;
		border: 1px solid var(--jbh-border);
		border-radius: var(--jbh-r-md);
		padding: var(--jbh-s5);
		background: var(--jbh-surface);
	}
}

.jbh-toc-title {
	font-size: 13px;
	font-weight: 650;
	color: var(--jbh-text-2);
	margin-bottom: var(--jbh-s3);
}

.jbh-toc ul { list-style: none; margin: 0; padding: 0; }

.jbh-toc li { margin-bottom: var(--jbh-s2); }

.jbh-toc a {
	font-size: 14px;
	color: var(--jbh-text-2);
	border-left: 2px solid var(--jbh-border);
	padding-left: var(--jbh-s3);
	display: block;
}

.jbh-toc a:hover {
	color: var(--jbh-text);
	border-left-color: var(--jbh-sage);
}

.jbh-closing {
	font-size: 20px;
	font-weight: 650;
	color: var(--jbh-sage);
}

.jbh-mb10 { margin-bottom: var(--jbh-s10); }

/* =========================================================
   Approved public shell + reference-page parity
   ========================================================= */
.jbh-site { margin: 0; background: var(--jbh-canvas); color: var(--jbh-text); }
.jbh-site .jbh { min-height: 20px; }
.jbh-skip { position: absolute; left: -9999px; top: 8px; z-index: 9999; background: #fff; color: var(--jbh-ink); padding: 8px 12px; border-radius: 4px; }
.jbh-skip:focus { left: 8px; }

.jbh-pubhead { position: sticky; top: 0; z-index: 100; background: #fff; box-shadow: 0 1px 0 var(--jbh-border); }
.jbh-pubhead-top { display: flex; align-items: center; gap: 16px; padding: 10px 24px; max-width: var(--jbh-max); margin: 0 auto; }
.jbh-head-logo { display: inline-flex; align-items: center; flex-shrink: 0; }
.jbh-head-logo img { display: block; width: 170px; height: 40px; object-fit: contain; }
.jbh-headsearch { position: relative; display: flex; align-items: center; flex: 1; height: 48px; border: 1.5px solid var(--jbh-sage); border-radius: 8px; background: #fff; overflow: visible; }
.jbh-headsearch:focus-within { outline: 2px solid rgba(47,119,104,.18); }
.jbh-headsearch-ic { display: flex; align-items: center; padding: 0 12px; flex-shrink: 0; }
.jbh-headsearch-q { flex: 1; min-width: 0; height: 100%; padding: 0; border: 0; outline: 0; background: transparent; color: var(--jbh-ink); font: 15px/20px inherit; }
.jbh-headsearch-q::placeholder { color: #9AA3AF; }
.jbh-headsearch-div { width: 1px; height: 28px; background: var(--jbh-border); flex-shrink: 0; }
.jbh-headsearch-locwrap { position: relative; height: 100%; display: flex; align-items: center; flex-shrink: 0; }
.jbh-headsearch-loc { height: 100%; padding: 0 12px; display: flex; align-items: center; gap: 6px; border: 0; background: transparent; color: var(--jbh-text); font: 550 14px/20px inherit; cursor: pointer; white-space: nowrap; }
.jbh-headsearch-loc:hover { background: var(--jbh-surface-subtle); }
.jbh-location-dropdown { display: none; position: absolute; right: 0; top: calc(100% + 10px); width: 380px; max-width: calc(100vw - 32px); background: #fff; border: 1px solid var(--jbh-border); border-radius: 12px; box-shadow: var(--jbh-e3); padding: 8px; z-index: 120; }
.jbh-location-dropdown.is-open { display: block; }
.jbh-loc-option { width: 100%; min-height: 44px; display: flex; align-items: flex-start; gap: 10px; padding: 11px 12px; border: 0; background: transparent; border-radius: 8px; color: var(--jbh-text); font: 500 14px/20px inherit; text-align: left; text-decoration: none; cursor: pointer; }
.jbh-loc-option:hover { background: var(--jbh-surface-subtle); }
.jbh-loc-recent-label { padding: 12px 12px 6px; color: var(--jbh-text-2); font-size: 12px; line-height: 16px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.jbh-loc-dot { color: var(--jbh-text-2); font-size: 20px; line-height: 16px; margin-left: 1px; }
.jbh-headsearch-go { width: 54px; height: 100%; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 0 7px 7px 0; background: var(--jbh-sage); cursor: pointer; flex-shrink: 0; }
.jbh-headsearch-go:hover { background: #255f54; }
.jbh-head-burger { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid var(--jbh-border); border-radius: 8px; background: #fff; cursor: pointer; padding: 0; }
.jbh-head-burger span { display: block; width: 18px; height: 2px; margin: 2px 0; background: var(--jbh-ink); }
.jbh-pubnav { background: var(--jbh-sage); }
.jbh-pubnav-in { max-width: var(--jbh-max); margin: 0 auto; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; }
.jbh-navlinks { display: flex; }
.jbh-navlinks a { min-height: 44px; display: flex; align-items: center; padding: 10px 16px; color: #fff; font-size: 15px; line-height: 20px; font-weight: 550; border-bottom: 2px solid transparent; opacity: .9; }
.jbh-navlinks a:hover, .jbh-navlinks a.on { opacity: 1; border-color: #fff; }
.jbh-navright { display: flex; align-items: center; gap: 12px; }
.jbh-navright > a:first-child { color: #fff; font-size: 14px; opacity: .9; padding: 8px 4px; }
.jbh-navright > a:first-child:hover { opacity: 1; text-decoration: underline; }
.jbh-btn-register { height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 0 18px; border: 2px solid #fff; border-radius: 8px; background: var(--jbh-sage); color: #fff !important; font-size: 14px; font-weight: 650; }
.jbh-btn-register:hover { background: #255f54; }

.jbh-footer { background: var(--jbh-ink); color: #fff; padding: var(--jbh-s16) 0 var(--jbh-s8); margin-top: 0; }
.jbh-footer-in { max-width: var(--jbh-max); margin: 0 auto; padding: 0 var(--jbh-s8); }
.jbh-footer-grid { display: grid; grid-template-columns: 1.6fr repeat(4, 1fr); gap: var(--jbh-s8); }
.jbh-footer-brand { display: inline-flex; align-items: center; background: #fff; border-radius: 3px; padding: 7px 10px; line-height: 0; }
.jbh-footer-brand img { width: 178px; height: 42px; object-fit: contain; }
.jbh-footer-copy { font-size: 14px; line-height: 20px; opacity: .75; max-width: 240px; margin-top: var(--jbh-s4); }
.jbh-footer h5 { font-size: 14px; line-height: 20px; font-weight: 600; margin: 0 0 var(--jbh-s4); }
.jbh-footer a { display: block; padding: var(--jbh-s2) 0; font-size: 14px; line-height: 20px; color: #fff; opacity: .75; text-decoration: none; }
.jbh-footer a:hover { opacity: 1; text-decoration: underline; }
.jbh-footer-bottom { border-top: 1px solid rgba(255,255,255,.16); margin-top: var(--jbh-s10); padding-top: var(--jbh-s6); display: flex; justify-content: space-between; align-items: center; gap: var(--jbh-s4); flex-wrap: wrap; font-size: 13px; line-height: 20px; opacity: .7; }
.jbh-footer-social { display: flex; gap: 8px; align-items: center; }
.jbh-footer-social a { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; opacity: .72; font-weight: 600; }

/* Reference-page widths */
.jbh-page-faq .jbh-wrap { max-width: 760px; }
.jbh-page-about .jbh-wrap { max-width: 760px; }
.jbh-page-contact .jbh-wrap { max-width: 960px; }
.jbh-page-legal .jbh-wrap { max-width: 900px; }

/* FAQ: flat accordion, matching the approved demo rather than separate cards. */
.jbh-static-faq { max-width: 760px; margin: var(--jbh-s8) auto 0; }
.jbh-static-faq details { border-bottom: 1px solid var(--jbh-border); margin: 0; }
.jbh-static-faq summary { min-height: 44px; padding: var(--jbh-s5) 0; display: flex; align-items: center; justify-content: space-between; gap: var(--jbh-s4); cursor: pointer; font-size: 17px; line-height: 24px; font-weight: 600; list-style: none; }
.jbh-static-faq summary::-webkit-details-marker { display: none; }
.jbh-static-faq summary::after { content: "+"; font-size: 20px; line-height: 1; color: var(--jbh-text-2); flex-shrink: 0; }
.jbh-static-faq details[open] summary::after { content: "−"; }
.jbh-static-faq .jbh-faq-answer { padding: 0 0 var(--jbh-s5); max-width: 70ch; font-size: 15px; line-height: 24px; color: var(--jbh-text-2); }

.jbh-page-about .jbh-about-vision { background: var(--jbh-canvas-warm); }
.jbh-page-about .jbh-about-close { font-size: 18px; line-height: 28px; font-weight: 600; }
.jbh-page-about .jbh-about-brandline { color: var(--jbh-sage); font-weight: 650; }

.jbh-page-legal .jbh-legal-grid { display: grid; grid-template-columns: 240px 1fr; gap: var(--jbh-s10); align-items: start; margin-top: var(--jbh-s8); }
.jbh-page-legal .jbh-toc { position: sticky; top: 96px; border: 1px solid var(--jbh-border); border-radius: var(--jbh-r-md); background: #fff; padding: var(--jbh-s5); }
.jbh-page-legal .jbh-toc-title { font-size: 12px; line-height: 16px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; color: var(--jbh-text-2); margin: 0; }
.jbh-page-legal .jbh-toc ul { margin: var(--jbh-s3) 0 0; padding: 0; list-style: none; }
.jbh-page-legal .jbh-toc li { margin: 0; }
.jbh-page-legal .jbh-toc a { display: block; padding: var(--jbh-s2) 0; font-size: 14px; line-height: 20px; color: var(--jbh-text); }
.jbh-page-legal .jbh-toc a:hover { text-decoration: underline; }
.jbh-page-legal .jbh-legal-body { max-width: 70ch; }

/* Pricing reference */
.jbh-pricing-intro { max-width: 760px; }
.jbh-billing-toggle { display: inline-flex; padding: 4px; gap: 4px; border: 1px solid var(--jbh-border); border-radius: 10px; background: var(--jbh-surface-subtle); }
.jbh-billing-toggle button { min-width: 96px; height: 40px; border: 0; border-radius: 7px; background: transparent; color: var(--jbh-text-2); font: 600 14px/20px inherit; cursor: pointer; }
.jbh-billing-toggle button.is-active { background: #fff; color: var(--jbh-text); box-shadow: var(--jbh-e1); }
.jbh-pricing-grid { align-items: stretch; }
.jbh-pricing-card { position: relative; height: 100%; padding: var(--jbh-s8); border: 1px solid var(--jbh-border); border-radius: var(--jbh-r-md); background: #fff; }
.jbh-pricing-card.is-business { border: 2px solid var(--jbh-gold); }
.jbh-pricing-badge { display: inline-flex; padding: 4px 10px; border-radius: 999px; background: var(--jbh-canvas-warm); color: var(--jbh-text); font-size: 12px; line-height: 16px; font-weight: 650; }
.jbh-pricing-badge.provider { color: var(--jbh-sage); }
.jbh-pricing-best { position: absolute; top: -12px; right: 20px; padding: 4px 10px; border-radius: 4px; background: var(--jbh-gold); color: var(--jbh-ink); font-size: 12px; line-height: 16px; font-weight: 650; }
.jbh-pricing-desc { margin-top: var(--jbh-s3); color: var(--jbh-text-2); font-size: 14px; line-height: 20px; }
.jbh-pricing-old { margin-top: var(--jbh-s5); color: var(--jbh-text-2); font-size: 15px; text-decoration: line-through; }
.jbh-pricing-price { font-size: 44px; line-height: 50px; font-weight: 650; }
.jbh-pricing-per { font-size: 16px; color: var(--jbh-text-2); }
.jbh-pricing-equivalent { margin-top: 2px; color: var(--jbh-text-2); font-size: 14px; line-height: 20px; }
.jbh-pricing-save { margin-top: var(--jbh-s1); color: var(--jbh-sage); font-size: 13px; line-height: 19px; font-weight: 600; }
.jbh-pricing-cta { width: 100%; height: 46px; margin-top: var(--jbh-s5); border: 0; border-radius: 8px; background: var(--jbh-ink); color: #fff; font: 650 14px/20px inherit; cursor: pointer; }
.jbh-pricing-card h3 { margin-top: var(--jbh-s8); font-size: 16px; line-height: 22px; font-weight: 600; }
.jbh-pricing-foot { margin-top: var(--jbh-s6); padding-top: var(--jbh-s4); border-top: 1px solid var(--jbh-border); color: var(--jbh-text-2); font-size: 13px; line-height: 20px; }
.jbh-pricing-foot strong { color: var(--jbh-text); }
.jbh-pricing-card .jbh-plan-list li { margin-bottom: var(--jbh-s3); }

@media (max-width: 1199px) {
  .jbh-pubhead-top, .jbh-pubnav-in, .jbh-footer-in { padding-left: 20px; padding-right: 20px; }
  .jbh-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 899px) {
  .jbh-headsearch-loc { max-width: 190px; }
  .jbh-page-legal .jbh-legal-grid { grid-template-columns: 1fr; gap: var(--jbh-s8); }
  .jbh-page-legal .jbh-toc { position: static; }
}
@media (max-width: 767px) {
  .jbh-pubhead-top { display: grid; grid-template-columns: minmax(0,1fr) 38px; grid-template-rows: auto auto; gap: 10px; padding: 8px 14px 12px; }
  .jbh-head-logo { grid-column: 1; grid-row: 1; }
  .jbh-head-logo img { width: 164px; height: 38px; }
  .jbh-head-burger { grid-column: 2; grid-row: 1; display: inline-flex; width: 38px; height: 38px; }
  .jbh-headsearch { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: minmax(0,1fr) 92px; grid-template-rows: 44px 42px; gap: 8px; height: auto; border: 0; background: transparent; }
  .jbh-headsearch-ic { position: absolute; left: 0; top: 0; width: 40px; height: 44px; justify-content: center; padding: 0; z-index: 2; }
  .jbh-headsearch-q { grid-column: 1 / -1; grid-row: 1; height: 44px; padding: 0 12px 0 40px; border: 1px solid var(--jbh-border); border-radius: 8px; background: #fff; font-size: 13px; }
  .jbh-headsearch-div { display: none; }
  .jbh-headsearch-locwrap { grid-column: 1; grid-row: 2; width: 100%; height: 42px; }
  .jbh-headsearch-loc { width: 100%; height: 42px; padding: 0 10px; border: 1px solid var(--jbh-border); border-radius: 8px; background: #fff; font-size: 12px; overflow: hidden; justify-content: flex-start; }
  .jbh-headsearch-loc span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .jbh-location-dropdown { left: 0; right: auto; width: 100%; max-width: none; top: calc(100% + 8px); }
  .jbh-headsearch-go { grid-column: 2; grid-row: 2; width: 100%; height: 42px; border-radius: 8px; }
  .jbh-pubnav { position: relative; display: none; }
  .jbh-pubnav.is-open { display: block; }
  .jbh-pubnav-in { flex-direction: column; align-items: stretch; padding: 8px 14px 12px; }
  .jbh-navlinks { display: grid; grid-template-columns: 1fr 1fr; }
  .jbh-navlinks a { min-height: 40px; padding: 8px 10px; border: 0; border-radius: 7px; }
  .jbh-navlinks a.on { background: rgba(255,255,255,.12); }
  .jbh-navright { margin-top: 6px; justify-content: space-between; }
  .jbh-footer { padding-top: var(--jbh-s12); }
  .jbh-footer-grid { grid-template-columns: 1fr; gap: var(--jbh-s6); }
  .jbh-footer-in { padding-left: 16px; padding-right: 16px; }
  .jbh-footer-bottom { flex-direction: column; align-items: flex-start; }
  .jbh-page-legal .jbh-wrap, .jbh-page-contact .jbh-wrap, .jbh-page-about .jbh-wrap, .jbh-page-faq .jbh-wrap { padding-left: 16px; padding-right: 16px; }
  .jbh-pricing-card { padding: var(--jbh-s6); }
}

/* Homepage reference sections */
.jbh-home-hero { background: var(--jbh-canvas-warm); padding: 48px 0 60px; }
.jbh-home-hero-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 40px; align-items: center; max-width: var(--jbh-max); margin: 0 auto; padding: 0 var(--jbh-s8); }
.jbh-eyebrow { color: var(--jbh-sage); font-size: 12px; line-height: 16px; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; }
.jbh-home-hero-image { border-radius: 16px; overflow: hidden; height: 320px; }
.jbh-home-hero-image img, .jbh-home-hero-image .jbh-hero-placeholder { width: 100%; height: 320px; object-fit: cover; border-radius: 16px; box-shadow: none; }
.jbh-home-listed-link { display: inline-flex; align-items: center; min-height: 48px; color: var(--jbh-sage); font-weight: 650; }
.jbh-home-section-alt { background: var(--jbh-canvas-warm); }
.jbh-catcard2 { display: block; padding: 20px 16px; border: 1px solid var(--jbh-border); border-radius: 12px; background: #fff; text-align: left; }
.jbh-catcard2:hover { border-color: var(--jbh-border-strong); box-shadow: var(--jbh-e1); }
.jbh-catcard2-icon { width: 44px; height: 44px; display:flex; align-items:center; justify-content:center; margin-bottom:14px; border-radius:10px; background:var(--jbh-canvas-warm); color:var(--jbh-sage); font-size:13px; font-weight:700; }
.jbh-catcard2 h3 { font-size:16px; line-height:22px; font-weight:600; }
.jbh-catcard2 p { margin-top:4px; color:var(--jbh-text-2); font-size:13px; line-height:19px; }
.jbh-catcard2 span { display:block; margin-top:14px; color:var(--jbh-sage); font-size:13px; font-weight:650; }
.jbh-home-values { background:#fff; }
.jbh-home-values > .jbh-wrap > .jbh-grid { border:1px solid var(--jbh-border); border-radius:12px; padding:24px; }
.jbh-home-values h3 { font-size:18px; line-height:24px; font-weight:650; }
.jbh-home-values p { margin-top:8px; color:var(--jbh-text-2); font-size:14px; line-height:20px; }
.jbh-home-community { padding: 28px; border:1px solid var(--jbh-border); border-radius:12px; background:#fff; }
.jbh-community-card { min-height:140px; display:flex; flex-direction:column; justify-content:flex-end; padding:20px; border:1px solid var(--jbh-border); border-radius:12px; background:var(--jbh-canvas-warm); }
.jbh-community-card strong { font-size:20px; line-height:26px; }
.jbh-community-card span { margin-top:6px; color:var(--jbh-text-2); font-size:13px; line-height:19px; }
.jbh-testimonial { padding:24px; border:1px solid var(--jbh-border); border-radius:12px; background:#fff; }
.jbh-testimonial-avatar { width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--jbh-ink); color:#fff; font-size:12px; font-weight:650; }
.jbh-testimonial p { margin-top:14px; font-size:16px; line-height:24px; }
.jbh-testimonial span { display:block; margin-top:12px; font-size:12px; line-height:18px; color:var(--jbh-text-2); }
.jbh-stay { background:#EAF4F0; border-radius:9px; padding:20px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.jbh-stay h2 { font-size:20px; line-height:26px; }
.jbh-stay p { margin-top:4px; color:var(--jbh-text-2); font-size:13px; line-height:19px; }
@media (max-width: 900px) {
  .jbh-home-hero-grid { grid-template-columns:1fr; gap:28px; padding:0 20px; }
  .jbh-home-hero-image, .jbh-home-hero-image img, .jbh-home-hero-image .jbh-hero-placeholder { height:280px; }
  .jbh-home-cat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767px) {
  .jbh-home-hero { padding:36px 0 48px; }
  .jbh-home-hero-grid { padding:0 16px; }
  .jbh-home-cat-grid, .jbh-testimonials { grid-template-columns:1fr; }
  .jbh-home-hero-image, .jbh-home-hero-image img, .jbh-home-hero-image .jbh-hero-placeholder { height:220px; }
  .jbh-home-community { padding:18px; }
  .jbh-stay { flex-direction:column; align-items:flex-start; }
}

/* Directory/business archive */
.jbh-directory-search { display:flex; gap:var(--jbh-s2); max-width:720px; }
.jbh-directory-search input { flex:1; min-width:0; height:52px; padding:0 var(--jbh-s5); border:1px solid var(--jbh-border); border-radius:var(--jbh-r-sm); background:#fff; color:var(--jbh-text); font:16px/24px inherit; }
.jbh-directory-search input:focus { outline:3px solid var(--jbh-focus); outline-offset:1px; border-color:var(--jbh-focus); }
.jbh-business-results { grid-template-columns:1fr; gap:var(--jbh-s4); }
@media(max-width:600px){ .jbh-directory-search{flex-direction:column;} .jbh-directory-search .jbh-btn{width:100%;} }
