.jlf {
	--jlf-cream: #f5f1eb;
	--jlf-navy: #1b2840;
	--jlf-navy-900: #0e1828;
	--jlf-name: #1b2a4a;
	--jlf-bronze: #c97c2f;
	--jlf-bronze-dark: #b06b23;
	--jlf-slate: #4a5568;
	--jlf-line: #dde1e3;
	--jlf-addr: #5c6678;
	--jlf-hours: #6f756f;
	--jlf-pill-bg: #d5e8f0;
	--jlf-pill-ink: #2e75b6;
	--jlf-muted: #7c8894;
	--jlf-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--jlf-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	width: 100%;
	color: var(--jlf-navy);
	font-family: var(--jlf-sans);
	font-size: 15px;
	line-height: 1.45;
}

.jlf--cards {
	margin-inline: auto;
}

.jlf__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;
}

.jlf__label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 600;
}

/* ---- Search row ------------------------------------------------------- */

.jlf__search {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px;
	min-height: 67px;
	background: #fff;
	border: 1px solid var(--jlf-line);
	border-radius: 10px;
	box-shadow: 0 8px 13px rgba(27, 42, 74, 0.08);
}

.jlf__input {
	flex: 1;
	min-width: 0;
	padding: 0.5rem 0.75rem;
	border: 0;
	background: transparent;
	font-size: 16px;
	color: inherit;
}

.jlf__input:focus {
	outline: none;
}

.jlf__input:focus-visible {
	outline: 2px solid var(--jlf-bronze);
	outline-offset: 2px;
	border-radius: 4px;
}

.jlf__submit {
	flex: none;
	padding: 13px 22px;
	border: 0;
	border-radius: 50px;
	background: var(--jlf-bronze);
	color: #fff;
	font: 600 16px/1 var(--jlf-sans);
	cursor: pointer;
	transition: background 0.15s ease;
}

.jlf__submit:hover {
	background: var(--jlf-bronze-dark);
}

.jlf__submit:focus-visible {
	outline: 2px solid var(--jlf-navy-900);
	outline-offset: 2px;
}

/* Standalone [junction_lab_search_form] */
.jlf-search__row {
	display: flex;
	gap: 0.6rem;
}

.jlf-search__row .jlf__input {
	flex: 1;
	padding: 0.7rem 0.9rem;
	border: 1px solid var(--jlf-line);
	border-radius: 8px;
	background: #fff;
}

/* ---- Status -------------------------------------------------------- */

.jlf.is-loading .jlf__list {
	opacity: 0.5;
}

/* ---- Results header ---------------------------------------------------- */

.jlf__results-head {
	margin-top: 60px;
}

.jlf__results-head[hidden] {
	display: none;
}

.jlf__results-eyebrow {
	margin: 0;
	font: 800 11px/1 var(--jlf-sans);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--jlf-slate);
}

.jlf__count {
	margin: 0.4rem 0 0.2rem;
	font-family: var(--jlf-serif);
	font-weight: 500;
	font-size: clamp(32px, 5vw, 48px);
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--jlf-navy);
}

.jlf__count b {
	font-weight: 700;
	color: var(--jlf-bronze);
}

.jlf__results-sub {
	margin: 0;
	font-size: 16px;
	color: var(--jlf-slate);
}

/* ---- List / cards --------------------------------------------------- */

.jlf__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
}

.jlf-card {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(16px, 4vw, 50px);
	align-items: flex-start;
	justify-content: space-between;
	padding: 20px 40px;
	background: #fff;
	border: 1px solid var(--jlf-line);
	border-radius: 14px;
}

.jlf-card__body {
	display: flex;
	flex-direction: column;
	gap: 16px;
	flex: 1;
	min-width: min(100%, 340px);
}

.jlf-card__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.jlf-card__name {
	font: 700 18px/1.33 var(--jlf-sans);
	color: var(--jlf-name);
}

.jlf-card__lab-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
}

.jlf-card__lab {
	flex: none;
	padding: 6px 8px;
	border-radius: 999px;
	background: var(--jlf-pill-bg);
	color: var(--jlf-pill-ink);
	font: 900 13px/1.3 var(--jlf-sans);
	white-space: nowrap;
}

.jlf-card__dist {
	color: #1B2A4A;
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
}

.jlf-card__dist i{
	color: #C97C2F!important;
}

.jlf-card__addr {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 6px 40px;
	margin: 0;
	font-size: 14px;
	color: var(--jlf-addr);
	justify-content: space-between;
}

.jlf-card__addr-lines,
.jlf-card__phone-col {
	flex: none;
}

.jlf-card__phone-col {
	color: #5C6678;
    font-family: "DM Sans";
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 19px;
    text-decoration: none;
}


/* Two-line street / city address — keep the <br> break, no icon here. */
.jlf-card__addr .jlf-card__maps {
	display: inline-block;
	align-items: initial;
	gap: 0;
}

/* ---- Hours -------------------------------------------------------- */

.jlf-card__hours {
	font-size: 13px;
	color: var(--jlf-hours);
}

.jlf-card__hours-summary {
	margin: 0;
}

.jlf-card__hours-state--open {
	color: #1f7a3d;
	font-weight: 700;
}

.jlf-card__hours-state--closed {
	color: #9a4b2c;
	font-weight: 700;
}

.jlf-card__hours-toggle {
	margin-top: 4px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--jlf-bronze);
	font: 600 13px var(--jlf-sans);
	text-decoration: underline;
	cursor: pointer;
}

.jlf-card__hours-toggle:focus-visible {
	outline: 2px solid var(--jlf-bronze);
	outline-offset: 2px;
}

.jlf-card__hours-full {
	display: none;
	grid-template-columns: auto 1fr;
	gap: 2px 16px;
	margin: 8px 0 0;
	max-width: 360px;
}

.jlf-card.is-open .jlf-card__hours-full {
	display: grid;
}

.jlf-card__hours-row {
	display: contents;
}

.jlf-card__hours-full dt {
	font-weight: 500;
}

.jlf-card__hours-full dd {
	margin: 0;
	text-align: right;
}

.jlf-card__hours-row.is-today dt,
.jlf-card__hours-row.is-today dd {
	font-weight: 700;
	color: var(--jlf-navy);
}

/* ---- Maps link -------------------------------------------------------- */

.jlf-card__maps {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: #5C6678;
	font-family: "DM Sans";
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: 19px; /* 135.714% */
	text-decoration: none;
}

.jlf-card__maps:hover {
	text-decoration: underline;
}

.jlf-card__maps svg {
	width: 14px;
	height: 14px;
	flex: none;
}

/* ---- Phone ------------------------------------------------------------- */

.jlf-card__phone {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--jlf-bronze);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}

.jlf-card__phone:hover {
	text-decoration: underline;
}

.jlf-card__phone--plain {
	color: var(--jlf-addr);
}

.jlf-card__phone--plain:hover {
	text-decoration: none;
}

.jlf-card__phone svg {
	width: 14px;
	height: 14px;
	flex: none;
}

/* ---- Per-card CTA --------------------------------------------------- */

.jlf-card__cta {
	flex: none;
	padding: 15px 20px;
	border: 1px solid var(--jlf-navy-900);
	border-radius: 50px;
	color: var(--jlf-navy-900);
	font: 600 clamp(15px, 2vw, 18px)/1.06 var(--jlf-sans);
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.15s ease, color 0.15s ease;
}

.jlf-card__cta:hover {
	background: var(--jlf-navy-900);
	color: #fff;
}

/* ---- Load more ---------------------------------------------------- */

.jlf__more {
	display: block;
	margin: 20px auto 0;
	padding: 13px 26px;
	border: 1px solid var(--jlf-line);
	border-radius: 50px;
	background: #fff;
	font: 600 15px var(--jlf-sans);
	color: var(--jlf-navy);
	cursor: pointer;
	transition: border-color 0.15s ease;
}

.jlf__more[hidden] {
	display: none;
}

.jlf__more:hover {
	border-color: var(--jlf-navy-900);
}

.jlf__more:focus-visible {
	outline: 2px solid var(--jlf-navy-900);
	outline-offset: 2px;
}

/* ---- Responsive -------------------------------------------------------- */

@media (max-width: 640px) {
	.jlf__search {
		flex-wrap: wrap;
	}

	.jlf__submit {
		width: 100%;
	}

	.jlf-card {
		flex-direction: column;
		align-items: stretch;
		padding: 20px;
	}

	.jlf-card__cta {
		align-self: stretch;
		text-align: center;
	}

}

@media (prefers-reduced-motion: reduce) {
	.jlf__submit,
	.jlf-card__cta,
	.jlf__more {
		transition: none;
	}
}
