/**
 * Providers Map 0.9.0 — "finder" layout.
 *
 * Theme tokens only (ssrp-divi-child variables: --font-*, --blue-*, --gray-*,
 * --spacing-*, --radius-*, --shadow-*). Fallbacks mirror the theme values so
 * the map still reads correctly if a token is missing.
 */

:root {
	/* Certification orange: the Get Started page's Peptide Therapy
	   Certification colour. C = orange on cream, S = inverted. */
	--ssrpm-cert: var(--ssrp-orange-500, #fd5212);
	/* Certification orange for TEXT. #fd5212 is 3.1:1 on the card strip, under
	   WCAG AA's 4.5:1 for text; this is 4.9:1+ on white, the strip and the
	   selected strip. Pins and chip dots keep the brighter orange. */
	--ssrpm-cert-text: #c2410c;
	--ssrpm-cert-soft: var(--ssrp-orange-50, #fff5ed);
	--ssrpm-cert-line: #fbd9cc;
	--ssrpm-fellow: var(--blue-800, #0e4382);
	--ssrpm-faculty: var(--gray-900, #030712);
}

.ssrpm-map--v2 {
	--ssrpm-f-text: var(--gray-900, #030712);
	--ssrpm-f-muted: var(--gray-600, #4b5563);
	--ssrpm-f-line: var(--gray-200, #e5e7eb);
	--ssrpm-f-surface: var(--gray-50, #f8fafc);
	--ssrpm-f-primary: var(--blue-500, #1995e2);
	--ssrpm-f-primary-hover: var(--blue-600, #1281dd);
	--ssrpm-f-link: var(--blue-700, #116cc9);
	--ssrpm-f-radius: var(--radius-card, 12px);
	--ssrpm-f-results-height: clamp(560px, calc(100vh - 160px), 880px);

	display: block;
	max-width: var(--container-content, 1280px);
	margin: 0 auto;
	color: var(--ssrpm-f-text);
	font-family: var(--font-secondary, "Public Sans", sans-serif);
}

.ssrpm-map--v2 [hidden] {
	display: none !important;
}

/* Intro ------------------------------------------------------------------ */

.ssrpm-finder__intro {
	margin-bottom: var(--spacing-5, 1.25rem);
}

.ssrpm-map--v2 .ssrpm-finder__title {
	margin: 0 0 var(--spacing-1, 0.25rem);
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	font-weight: 600;
	line-height: 1.2;
	color: var(--ssrpm-f-text);
	text-wrap: balance;
}

.ssrpm-map--v2 .ssrpm-finder__subtitle {
	margin: 0;
	max-width: 68ch;
	font-size: 1rem;
	color: var(--ssrpm-f-muted);
}

.ssrpm-map--v2 .ssrpm-finder__note {
	margin-top: var(--spacing-2, 0.5rem);
	max-width: 68ch;
	font-size: 0.875rem;
	color: var(--ssrpm-f-muted);
}

.ssrpm-map--v2 .ssrpm-finder__note p {
	margin: 0;
}

.ssrpm-map--v2 .ssrpm-finder__note a {
	color: var(--ssrpm-f-link);
	font-weight: 600;
}

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

.ssrpm-finder__search {
	padding: var(--spacing-4, 1rem) var(--spacing-5, 1.25rem);
	background: var(--gray-0, #ffffff);
	border: 1px solid var(--ssrpm-f-line);
	border-radius: var(--ssrpm-f-radius);
	box-shadow: var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
}

.ssrpm-finder__fields {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.25fr) minmax(0, 0.8fr) auto;
	gap: var(--spacing-3, 0.75rem);
	align-items: end;
}

.ssrpm-finder__field {
	position: relative;
	min-width: 0;
}

.ssrpm-map--v2 .ssrpm-finder__label {
	display: block;
	margin-bottom: 6px;
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ssrpm-f-muted);
}

.ssrpm-map--v2 .ssrpm-finder__input {
	box-sizing: border-box;
	width: 100%;
	height: 44px;
	margin: 0;
	padding: 0 var(--spacing-4, 1rem);
	font-family: inherit;
	font-size: 0.9375rem;
	color: var(--ssrpm-f-text);
	background: var(--gray-0, #ffffff);
	border: 1px solid var(--gray-300, #d1d5db);
	border-radius: var(--radius-full, 9999px);
	box-shadow: none;
	transition: border-color var(--transition-fast, 150ms), box-shadow var(--transition-fast, 150ms);
}

.ssrpm-map--v2 .ssrpm-finder__input::placeholder {
	color: var(--gray-400, #9ca3af);
}

.ssrpm-map--v2 .ssrpm-finder__input:focus {
	outline: none;
	border-color: var(--ssrpm-f-primary);
	box-shadow: 0 0 0 3px var(--blue-100, #b6eaf8);
}

.ssrpm-map--v2 .ssrpm-finder__select {
	appearance: none;
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%234b5563' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	cursor: pointer;
}

.ssrpm-map--v2 .ssrpm-finder__submit {
	height: 44px;
	padding: 0 var(--spacing-8, 2rem);
	font-family: var(--font-primary, "Barlow", sans-serif);
	/* 19px bold is WCAG "large text" (>= 18.66px bold), which needs 3:1.
	   White on the brand blue is 3.26:1, so the button keeps the brand colour
	   and passes; at 16px it needed 4.5:1 and failed. */
	font-size: 1.1875rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--gray-0, #ffffff);
	background: var(--ssrpm-f-primary);
	border: 0;
	border-radius: var(--radius-full, 9999px);
	cursor: pointer;
	transition: background var(--transition-fast, 150ms);
}

.ssrpm-map--v2 .ssrpm-finder__submit:hover,
.ssrpm-map--v2 .ssrpm-finder__submit:focus-visible {
	background: var(--ssrpm-f-primary-hover);
}

.ssrpm-map--v2 .ssrpm-finder__submit:focus-visible,
.ssrpm-map--v2 .ssrpm-chip:focus-visible,
.ssrpm-map--v2 .ssrpm-finder__reset:focus-visible,
.ssrpm-map--v2 .ssrpm-finder__toggle-btn:focus-visible,
.ssrpm-map--v2 .ssrpm-card a:focus-visible {
	outline: 2px solid var(--color-focus, #2f7fef);
	outline-offset: 2px;
}

/* Place suggestions: drop below the field, never over the Search button. */
.ssrpm-map--v2 .ssrpm-autocomplete-dropdown {
	top: calc(100% + 6px);
	z-index: 40;
	max-height: 260px;
	background: var(--gray-0, #ffffff);
	border: 1px solid var(--ssrpm-f-line);
	border-radius: var(--ssrpm-f-radius);
	box-shadow: var(--shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
}

.ssrpm-map--v2 .ssrpm-autocomplete-item {
	font-family: inherit;
	color: var(--ssrpm-f-text);
}

.ssrpm-map--v2 .ssrpm-autocomplete-item:hover,
.ssrpm-map--v2 .ssrpm-autocomplete-item.is-active {
	background: var(--blue-50, #ebfcff);
}

/* Refine row: tier chips, count, clear ----------------------------------- */

.ssrpm-finder__refine {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--spacing-2, 0.5rem) var(--spacing-4, 1rem);
	margin-top: var(--spacing-3, 0.75rem);
	padding-top: var(--spacing-3, 0.75rem);
	border-top: 1px solid var(--gray-100, #f3f4f6);
}

.ssrpm-map--v2 .ssrpm-finder__tiers {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-2, 0.5rem);
}

.ssrpm-map--v2 .ssrpm-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 32px;
	padding: 0 14px;
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 500;
	background: var(--gray-0, #ffffff);
	border: 1px solid var(--ssrpm-f-line);
	border-radius: var(--radius-full, 9999px);
	cursor: pointer;
	transition: background var(--transition-fast, 150ms), border-color var(--transition-fast, 150ms), color var(--transition-fast, 150ms);
}

/* Pills start off (everyone shown); on = narrowing. */
.ssrpm-map--v2 .ssrpm-chip {
	color: var(--gray-700, #374151);
}

.ssrpm-map--v2 .ssrpm-chip:hover {
	border-color: var(--blue-200, #83d3f1);
}

.ssrpm-map--v2 .ssrpm-chip.active {
	color: var(--blue-800, #0e4382);
	background: var(--blue-50, #ebfcff);
	border-color: var(--blue-500, #1995e2);
	box-shadow: inset 0 0 0 1px var(--blue-500, #1995e2);
}

.ssrpm-map--v2 .ssrpm-chip__dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
}

.ssrpm-map--v2 .ssrpm-chip--fellow .ssrpm-chip__dot { background: var(--blue-700, #116cc9); }
.ssrpm-map--v2 .ssrpm-chip--faculty .ssrpm-chip__dot { background: var(--blue-900, #081a33); }
/* Match the card tiles: C = bright blue, S = navy. */
.ssrpm-map--v2 .ssrpm-chip--s .ssrpm-chip__dot { background: var(--ssrpm-cert-soft); box-shadow: inset 0 0 0 2px var(--ssrpm-cert); }
.ssrpm-map--v2 .ssrpm-chip--c .ssrpm-chip__dot { background: var(--ssrpm-cert); }
.ssrpm-map--v2 .ssrpm-chip--fellow .ssrpm-chip__dot { background: var(--ssrpm-fellow); }
.ssrpm-map--v2 .ssrpm-chip--faculty .ssrpm-chip__dot { background: var(--ssrpm-faculty); }

.ssrpm-map--v2 .ssrpm-finder__count {
	margin: 0 0 0 auto;
	font-size: 0.875rem;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	color: var(--ssrpm-f-muted);
}

.ssrpm-map--v2 .ssrpm-finder__reset {
	padding: 0;
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--ssrpm-f-link);
	background: none;
	border: 0;
	cursor: pointer;
}

.ssrpm-map--v2 .ssrpm-finder__reset:hover {
	text-decoration: underline;
}

/* Results: list beside a sticky map --------------------------------------- */

.ssrpm-finder__toggle {
	display: none;
}

.ssrpm-finder__results {
	display: grid;
	grid-template-columns: minmax(340px, 420px) minmax(0, 1fr);
	gap: var(--spacing-4, 1rem);
	height: var(--ssrpm-f-results-height);
	margin-top: var(--spacing-4, 1rem);
}

.ssrpm-finder__list {
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 2px 6px 2px 2px;
	scrollbar-width: thin;
	scrollbar-color: var(--gray-300, #d1d5db) transparent;
}

.ssrpm-finder__list:focus {
	outline: none;
}

.ssrpm-finder__grid {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-3, 0.75rem);
}

.ssrpm-finder__map {
	position: relative;
	min-height: 0;
}

.ssrpm-map--v2 .ssrpm-map__canvas {
	height: 100%;
	min-height: 0;
	border: 1px solid var(--ssrpm-f-line);
	border-radius: var(--ssrpm-f-radius);
	box-shadow: none;
}

/* p.ssrpm-map__empty: beats the plugin's own "p { padding-bottom: 0 }"
   Divi reset below, which left the text sitting on the bottom border. */
.ssrpm-map--v2 p.ssrpm-map__empty,
.ssrpm-map--v2 .ssrpm-map__empty,
.ssrpm-finder__empty {
	margin: 0;
	padding: var(--spacing-8, 2rem) var(--spacing-4, 1rem);
	font-size: 0.9375rem;
	font-style: normal;
	line-height: 1.4;
	text-align: center;
	color: var(--ssrpm-f-muted);
	border: 1px dashed var(--gray-300, #d1d5db);
	border-radius: var(--ssrpm-f-radius);
}

.ssrpm-map--v2 p.ssrpm-map__empty--loading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.ssrpm-map--v2 .ssrpm-map__empty--loading::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	border: 2px solid var(--gray-200, #e5e7eb);
	border-top-color: var(--blue-500, #1995e2);
	border-radius: 50%;
	animation: ssrpm-spin 0.8s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
	.ssrpm-map--v2 .ssrpm-map__empty--loading::before {
		animation: none;
	}
}

.ssrpm-finder__empty p {
	margin: 0 0 4px;
}

.ssrpm-finder__empty strong {
	color: var(--ssrpm-f-text);
}

.ssrpm-finder__empty--view {
	margin-bottom: var(--spacing-3, 0.75rem);
}

/* Card — course-card language in a light key -------------------------------
   Header strip with a condensed uppercase label and the SSRP emblem on a
   tier-coloured tile (the course cards' category tile), a Barlow title, and
   the round arrow as the single action. */

.ssrpm-map--v2 .ssrpm-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--gray-0, #ffffff);
	border: 1px solid var(--ssrpm-f-line);
	border-radius: var(--ssrpm-f-radius);
	box-shadow: var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
	cursor: pointer;
	transition: transform var(--transition-fast, 150ms), box-shadow var(--transition-fast, 150ms), border-color var(--transition-fast, 150ms);
}

.ssrpm-map--v2 .ssrpm-card:hover {
	transform: translateY(-2px);
	border-color: var(--blue-200, #83d3f1);
	box-shadow: var(--shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));
}

.ssrpm-map--v2 .ssrpm-card.is-selected {
	border-color: var(--ssrpm-f-primary);
	box-shadow: 0 0 0 3px var(--blue-100, #b6eaf8);
}

.ssrpm-card__strip {
	display: flex;
	align-items: center;
	gap: var(--spacing-3, 0.75rem);
	margin: 8px 8px 0;
	padding: 6px 6px 6px 12px;
	background: var(--gray-50, #f8fafc);
	border: 1px solid var(--gray-100, #f3f4f6);
	border-radius: 10px;
}

.ssrpm-map--v2 .ssrpm-card.is-selected .ssrpm-card__strip {
	background: var(--blue-50, #ebfcff);
	border-color: var(--blue-100, #b6eaf8);
}

/* No class or tier: no bar, just the emblem at the top right, with the name
   pulled up beside it. */
.ssrpm-map--v2 .ssrpm-card__strip--bare,
.ssrpm-map--v2 .ssrpm-card.is-selected .ssrpm-card__strip--bare {
	position: relative;
	z-index: 1;
	margin-bottom: -40px;
	background: none;
	border-color: transparent;
	pointer-events: none;
}


.ssrpm-map--v2 .ssrpm-card__label {
	flex: 1 1 auto;
	min-width: 0;
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--gray-800, #1f2937);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ssrpm-map--v2 .ssrpm-card__distance {
	flex: none;
	font-size: 0.8125rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--ssrpm-f-muted);
	white-space: nowrap;
}

.ssrpm-card__emblem {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	color: var(--gray-0, #ffffff);
	background: var(--blue-500, #1995e2);
}

/* Class tiles: Specialist = hollow (orange on cream), Clinician = solid (white on orange), no class yet = muted emblem. */
.ssrpm-card__emblem--s,
.ssrpm-card__emblem--c {
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1;
}

.ssrpm-card__emblem--s {
	color: var(--ssrpm-cert) !important;
	background: var(--ssrpm-cert-soft);
	box-shadow: inset 0 0 0 1.5px var(--ssrpm-cert);
}
.ssrpm-card__emblem--c {
	color: var(--gray-0, #ffffff) !important;
	background: var(--ssrpm-cert);
}

.ssrpm-map--v2 .ssrpm-card__label-part--class { color: var(--ssrpm-cert-text); font-weight: 600; }
.ssrpm-map--v2 .ssrpm-card__label-part--fellow { color: var(--ssrpm-fellow); font-weight: 600; }
.ssrpm-map--v2 .ssrpm-card__label-part--faculty { color: var(--ssrpm-faculty); font-weight: 600; }
.ssrpm-card__emblem--none { background: var(--gray-300, #d1d5db); }

.ssrpm-card__emblem .ssrpm-icon,
.ssrpm-card__emblem svg {
	width: 22px;
	height: 22px;
}

.ssrpm-card__main {
	display: flex;
	align-items: center;
	gap: var(--spacing-4, 1rem);
	padding: var(--spacing-4, 1rem) var(--spacing-4, 1rem) var(--spacing-4, 1rem) var(--spacing-5, 1.25rem);
}

.ssrpm-card__photo {
	flex: none;
	align-self: flex-start;
	width: 64px;
	height: 64px;
	overflow: hidden;
	border-radius: 10px;
	background: var(--blue-50, #ebfcff);
}

.ssrpm-card__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ssrpm-card__body {
	flex: 1 1 auto;
	min-width: 0;
}

.ssrpm-map--v2 .ssrpm-card__name {
	margin: 0;
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: normal;
	color: var(--ssrpm-f-text);
	text-wrap: balance;
}

/* Clinic, address and phone: one icon line each, like the provider page. */
.ssrpm-map--v2 .ssrpm-card__line {
	position: relative;
	margin: 6px 0 0;
	padding-left: 22px;
	font-size: 0.875rem;
	line-height: 1.4;
	color: var(--gray-700, #374151);
}

.ssrpm-map--v2 .ssrpm-card__line::before {
	content: "";
	position: absolute;
	top: 2px;
	left: 0;
	width: 15px;
	height: 15px;
	background-color: var(--blue-500, #1995e2);
	-webkit-mask: var(--ssrpm-line-icon) center / contain no-repeat;
	mask: var(--ssrpm-line-icon) center / contain no-repeat;
}

.ssrpm-map--v2 .ssrpm-card__line--clinic {
	margin-top: var(--spacing-2, 0.5rem);
	font-weight: 600;
	color: var(--ssrpm-f-text);
	--ssrpm-line-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 21V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v5h3a1 1 0 0 1 1 1v11h1v2H3v-2h2Zm2 0h4v-3h2v3h5V11h-3v10h-1V5H7v16Zm1-14h2v2H8V7Zm4 0h2v2h-2V7Zm-4 4h2v2H8v-2Zm4 0h2v2h-2v-2Zm-4 4h2v2H8v-2Z'/%3E%3C/svg%3E");
}

.ssrpm-map--v2 .ssrpm-card__line--address {
	--ssrpm-line-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E");
}

.ssrpm-map--v2 .ssrpm-card__line--phone {
	--ssrpm-line-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1L6.6 10.8Z'/%3E%3C/svg%3E");
}

.ssrpm-map--v2 .ssrpm-card__line--phone a {
	color: var(--blue-700, #116cc9);
	text-decoration: none;
}

.ssrpm-map--v2 .ssrpm-card__line--phone a:hover,
.ssrpm-map--v2 .ssrpm-card__line--phone a:focus-visible {
	text-decoration: underline;
}

/* The course cards' round arrow button. */
.ssrpm-map--v2 .ssrpm-card__arrow {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	color: var(--blue-700, #116cc9);
	background: var(--blue-50, #ebfcff);
	border: 1px solid var(--blue-100, #b6eaf8);
	text-decoration: none;
	transition: transform var(--transition-fast, 150ms), background var(--transition-fast, 150ms), color var(--transition-fast, 150ms);
}

.ssrpm-map--v2 .ssrpm-card__arrow::after {
	content: "";
	width: 22px;
	height: 22px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 17L17 7M17 7H7M17 7V17' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 17L17 7M17 7H7M17 7V17' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.ssrpm-map--v2 .ssrpm-card:hover .ssrpm-card__arrow,
.ssrpm-map--v2 .ssrpm-card__arrow:focus-visible {
	color: var(--gray-0, #ffffff);
	background: var(--blue-500, #1995e2);
	border-color: var(--blue-500, #1995e2);
	transform: translate(2px, -2px);
}

/* C/S chips in the finder use theme blues (the theme has no purple scale). */
.ssrpm-map--v2 .ssrpm-class-chip,
.ssrpm-pop .ssrpm-class-chip {
	height: 22px;
	padding: 0 9px;
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-size: 0.8125rem;
	letter-spacing: 0.05em;
	line-height: 20px;
	color: var(--ssrpm-cert-text);
	background: var(--ssrpm-cert-soft);
	border: 1px solid var(--ssrpm-cert);
}

.ssrpm-map--v2 .ssrpm-class-chip--c,
.ssrpm-pop .ssrpm-class-chip--c {
	color: var(--gray-0, #ffffff);
	background: var(--ssrpm-cert);
	border-color: var(--ssrpm-cert);
}

.ssrpm-map--v2 .ssrpm-card__where {
	display: flex;
	flex-direction: column;
	gap: 1px;
	margin: var(--spacing-2, 0.5rem) 0 0;
	font-size: 0.875rem;
	line-height: 1.4;
	color: var(--gray-700, #374151);
}

.ssrpm-card__actions,
.ssrpm-pop__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--spacing-2, 0.5rem) var(--spacing-4, 1rem);
	margin-top: var(--spacing-3, 0.75rem);
}

.ssrpm-map--v2 .ssrpm-card__primary,
.ssrpm-pop .ssrpm-card__primary {
	display: inline-flex;
	align-items: center;
	height: 34px;
	padding: 0 var(--spacing-4, 1rem);
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--gray-0, #ffffff);
	background: var(--blue-500, #1995e2);
	border-radius: var(--radius-full, 9999px);
	text-decoration: none;
	transition: background var(--transition-fast, 150ms);
}

.ssrpm-map--v2 .ssrpm-card__primary:hover,
.ssrpm-pop .ssrpm-card__primary:hover {
	color: var(--gray-0, #ffffff);
	background: var(--blue-600, #1281dd);
	text-decoration: none;
}

.ssrpm-map--v2 .ssrpm-card__link,
.ssrpm-pop .ssrpm-pop__link {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--blue-700, #116cc9);
	text-decoration: none;
	white-space: nowrap;
}

.ssrpm-map--v2 .ssrpm-card__link:hover,
.ssrpm-pop .ssrpm-pop__link:hover {
	text-decoration: underline;
}

/* Map popup --------------------------------------------------------------- */

.ssrpm-pop {
	width: 280px;
	max-width: 100%;
	font-family: var(--font-secondary, "Public Sans", sans-serif);
	/* Google's info window sets weight 300; match the cards. */
	font-weight: 400;
	color: var(--gray-900, #030712);
}

.ssrpm-pop__head {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	gap: 10px;
	align-items: center;
}

.ssrpm-pop__photo {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
	background: var(--blue-50, #ebfcff);
}

.ssrpm-pop__photo--initials {
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-weight: 600;
	color: var(--blue-700, #116cc9);
}

.ssrpm-pop__name {
	display: block;
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.25;
}

/* Clinic, address and phone in the popup use the card's icon lines
   (.ssrpm-card__line), so the two always match. */

/* Layout switch (desktop): side by side, or map on top ---------------------
   Icon pair at the end of the filter row, after Clear. "Map on top" puts the
   map full width above a grid of cards. The list still shows only the pins in
   view; the page scrolls instead of the list. */

.ssrpm-finder__layout {
	display: inline-flex;
	gap: 2px;
	padding: 2px;
	background: var(--gray-100, #f3f4f6);
	border-radius: var(--radius-full, 9999px);
}

.ssrpm-map--v2 .ssrpm-finder__layout-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 28px;
	padding: 0;
	color: var(--gray-500, #6b7280);
	background: transparent;
	border: 0;
	border-radius: var(--radius-full, 9999px);
	cursor: pointer;
	transition: color var(--transition-fast, 150ms), background var(--transition-fast, 150ms);
}

.ssrpm-map--v2 .ssrpm-finder__layout-btn:hover {
	color: var(--gray-900, #030712);
}

.ssrpm-map--v2 .ssrpm-finder__layout-btn.is-active {
	color: var(--gray-900, #030712);
	background: var(--gray-0, #ffffff);
	box-shadow: var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
}

.ssrpm-map--v2 .ssrpm-finder__layout-btn:focus-visible {
	outline: 2px solid var(--ssrpm-f-primary);
	outline-offset: 2px;
}

.ssrpm-map--v2 .ssrpm-finder__layout-btn {
	position: relative;
}

/* Tooltip, WCAG 1.4.13: shows on hover AND keyboard focus; stays while the
   pointer is on it (it is inside the button, and ::after bridges the gap);
   Esc hides it (frontend.js sets .is-tip-hidden until the pointer or focus
   leaves). It is also each button's accessible name (aria-labelledby). */
.ssrpm-map--v2 .ssrpm-finder__layout-tip {
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	z-index: 40;
	padding: 6px 10px;
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--gray-0, #ffffff);
	white-space: nowrap;
	background: var(--gray-900, #030712);
	border-radius: 6px;
	box-shadow: var(--shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));
	transform: translateX(-50%);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity var(--transition-fast, 150ms), visibility var(--transition-fast, 150ms);
}

/* The last icon sits at the box's right edge: align its tip right. */
.ssrpm-map--v2 .ssrpm-finder__layout-btn:last-child .ssrpm-finder__layout-tip {
	left: auto;
	right: 0;
	transform: none;
}

.ssrpm-map--v2 .ssrpm-finder__layout-tip::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	height: 8px;
}

.ssrpm-map--v2 .ssrpm-finder__layout-btn:hover:not(.is-tip-hidden) .ssrpm-finder__layout-tip,
.ssrpm-map--v2 .ssrpm-finder__layout-btn:focus-visible:not(.is-tip-hidden) .ssrpm-finder__layout-tip {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

@media (min-width: 900px) {
	.ssrpm-map--v2[data-layout="stacked"] .ssrpm-finder__results {
		display: flex;
		flex-direction: column;
		height: auto;
	}

	.ssrpm-map--v2[data-layout="stacked"] .ssrpm-finder__map {
		order: -1;
		height: clamp(420px, 60vh, 640px);
	}

	.ssrpm-map--v2[data-layout="stacked"] .ssrpm-finder__list {
		overflow: visible;
		padding: 2px;
	}

	.ssrpm-map--v2[data-layout="stacked"] .ssrpm-finder__grid {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	}

	/* Cards in a row share a height; the card's own column flex keeps its
	   action pinned where it is in the list. */
	.ssrpm-map--v2[data-layout="stacked"] .ssrpm-finder__grid > * {
		height: 100%;
	}
}

/* Tablet and phone: one column, List / Map toggle -------------------------- */

@media (max-width: 899px) {
	.ssrpm-finder__fields {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.ssrpm-finder__field--name,
	.ssrpm-finder__field--location {
		grid-column: 1 / -1;
	}

	.ssrpm-map--v2 .ssrpm-finder__submit {
		width: 100%;
	}

	.ssrpm-map--v2 .ssrpm-finder__tiers {
		flex: 1 1 100%;
	}

	.ssrpm-map--v2 .ssrpm-finder__count {
		order: 3;
		margin-left: 0;
	}

	.ssrpm-map--v2 .ssrpm-finder__reset {
		order: 4;
		margin-left: auto;
	}

	.ssrpm-finder__layout {
		display: none;
	}

	.ssrpm-map--v2 .ssrpm-finder__toggle {
		position: sticky;
		top: calc(env(safe-area-inset-top, 0px) + 96px);
		z-index: 30;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 4px;
		margin-top: var(--spacing-4, 1rem);
		padding: 4px;
		background: var(--gray-100, #f3f4f6);
		border-radius: var(--radius-full, 9999px);
	}

	.ssrpm-map--v2 .ssrpm-finder__toggle-btn {
		height: 38px;
		font-family: var(--font-primary, "Barlow", sans-serif);
		font-size: 0.9375rem;
		font-weight: 600;
		color: var(--gray-600, #4b5563);
		background: transparent;
		border: 0;
		border-radius: var(--radius-full, 9999px);
		cursor: pointer;
	}

	.ssrpm-map--v2 .ssrpm-finder__toggle-btn.is-active {
		color: var(--gray-900, #030712);
		background: var(--gray-0, #ffffff);
		box-shadow: var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
	}

	.ssrpm-finder__results {
		display: block;
		height: auto;
	}

	.ssrpm-finder__list {
		overflow: visible;
		padding: 0;
	}

	.ssrpm-map--v2[data-view="list"] .ssrpm-finder__map,
	.ssrpm-map--v2[data-view="map"] .ssrpm-finder__list {
		display: none;
	}

	.ssrpm-map--v2 .ssrpm-map__canvas {
		height: 70vh;
		min-height: 420px;
	}
}

@media (max-width: 479px) {
	.ssrpm-finder__search {
		padding: var(--spacing-4, 1rem);
	}

	.ssrpm-finder__fields {
		grid-template-columns: minmax(0, 1fr);
	}

	.ssrpm-card__main {
		padding: var(--spacing-3, 0.75rem) var(--spacing-3, 0.75rem) var(--spacing-3, 0.75rem) var(--spacing-4, 1rem);
	}

	.ssrpm-card__photo {
		width: 52px;
		height: 52px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ssrpm-map--v2 *,
	.ssrpm-pop * {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}

.ssrpm-map--v2 .ssrpm-card--no-pin {
	cursor: default;
}

.ssrpm-map--v2 .ssrpm-card--no-pin:hover {
	border-color: var(--ssrpm-f-line);
	box-shadow: none;
}

/* The 0.8 stylesheet stacks tier buttons full-width on small screens;
   the finder keeps them as a row of compact chips. */
.ssrpm-map--v2 .ssrpm-finder__tiers.ssrpm-tier-filter-group {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	width: auto;
}

.ssrpm-map--v2 .ssrpm-finder__tiers .ssrpm-chip.ssrpm-tier-filter {
	flex: 0 0 auto;
	width: auto;
	min-width: 0;
	justify-content: flex-start;
}

/* ==========================================================================
   Provider profile page (single ssrp_provider) — 0.9.0
   Reuses the theme hero (.ssrp-hero) and the theme's house gradient.
   ========================================================================== */

/* The 0.8 stylesheet boxed .ssrpm-single-provider at 1100px; the profile
   runs full width like every other page with a theme hero. */
.ssrpm-profile.ssrpm-single-provider {
	max-width: none;
	margin: 0;
	padding: 0;
	width: 100%;
}

.ssrpm-profile {
	--ssrpm-p-line: var(--gray-200, #e5e7eb);
	font-family: var(--font-secondary, "Public Sans", sans-serif);
	color: var(--gray-900, #030712);
}

.ssrpm-profile .ssrpm-profile__hero {
	display: flex;
	/* Same gradient as the theme's archive and course heroes. */
	background: linear-gradient(135deg, #174d8b 0, #051221 15.69%, #061b2e 66.13%, #174f8a 100%);
	min-height: 0;
	padding-top: 136px;
	padding-bottom: var(--spacing-12, 3rem);
}

@media (max-width: 768px) {
	.ssrpm-profile .ssrpm-profile__hero {
		padding-top: 150px;
	}
}

.ssrpm-profile .ssrp-hero__overlay {
	background: none;
}

/* Hexagon texture over the gradient; the cluster sits right, behind the photo. */
.ssrpm-profile .ssrpm-profile__texture {
	background-repeat: no-repeat;
	background-position: right center;
	background-size: cover;
}

/* Phones: the texture fills the whole hero, so fade it out behind the text. */
@media (max-width: 640px) {
	.ssrpm-profile .ssrpm-profile__texture + .ssrp-hero__overlay {
		background: linear-gradient(to top, rgb(5 18 33 / 0.92) 0, rgb(5 18 33 / 0.7) 50%, rgb(5 18 33 / 0.1) 100%);
	}
}

.ssrpm-profile__hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--spacing-8, 2rem);
	align-items: end;
}

/* Photo sits on the right when the provider has one. */
.ssrpm-profile__hero-grid.has-photo {
	grid-template-columns: minmax(0, 1fr) auto;
}

.ssrpm-profile__photo {
	width: 168px;
	height: 168px;
	border-radius: 50%;
	overflow: hidden;
	border: 4px solid rgb(255 255 255 / 0.9);
	background: var(--blue-50, #ebfcff);
	box-shadow: 0 12px 30px rgb(0 0 0 / 0.35);
}

.ssrpm-profile__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ssrpm-profile__photo--initials {
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-size: 3.25rem;
	font-weight: 600;
	color: var(--blue-700, #116cc9);
}

.ssrpm-profile .ssrpm-profile__back {
	display: inline-flex;
	gap: 6px;
	color: var(--blue-200, #83d3f1);
	text-decoration: none;
	text-transform: uppercase;
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-weight: 600;
	letter-spacing: 0.08em;
}

.ssrpm-profile .ssrpm-profile__back:hover {
	color: var(--gray-0, #ffffff);
	text-decoration: none;
}

.ssrpm-profile .ssrpm-profile__name {
	margin: 0 0 var(--spacing-2, 0.5rem);
	font-size: clamp(2rem, 1.4rem + 2.4vw, 3.5rem);
	line-height: 1.1;
	text-wrap: balance;
}

.ssrpm-profile__where {
	display: flex;
	flex-wrap: wrap;
	gap: 4px var(--spacing-4, 1rem);
	margin: 0 0 var(--spacing-4, 1rem);
	font-size: 1.125rem;
	color: rgb(255 255 255 / 0.85);
}

.ssrpm-profile__where span + span::before {
	content: "·";
	margin-right: var(--spacing-4, 1rem);
	color: rgb(255 255 255 / 0.5);
}

.ssrpm-profile__badges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--spacing-2, 0.5rem);
	margin: 0 0 var(--spacing-5, 1.25rem);
	padding: 0;
	list-style: none;
}

.ssrpm-profile__badges li {
	margin: 0;
}

.ssrpm-profile__badges li::before {
	content: none !important;
}

.ssrpm-profile__badge {
	display: inline-flex;
	align-items: center;
	height: 28px;
	padding: 0 12px;
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	border-radius: var(--radius-full, 9999px);
	color: var(--gray-0, #ffffff);
	background: rgb(255 255 255 / 0.12);
	border: 1px solid rgb(255 255 255 / 0.35);
}

.ssrpm-profile__badge--s {
	color: var(--ssrpm-cert-text);
	background: var(--ssrpm-cert-soft);
	border-color: var(--ssrpm-cert);
}

.ssrpm-profile__badge--c {
	color: var(--gray-0, #ffffff);
	background: var(--ssrpm-cert);
	border-color: var(--ssrpm-cert);
}

.ssrpm-profile__badge--fellow {
	background: var(--ssrpm-fellow);
	border-color: rgb(255 255 255 / 0.45);
}

.ssrpm-profile__badge--faculty {
	background: var(--ssrpm-faculty);
	border-color: rgb(255 255 255 / 0.45);
}

.ssrpm-profile__since {
	font-size: 0.9375rem;
	color: rgb(255 255 255 / 0.75);
}

.ssrpm-profile__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--spacing-3, 0.75rem) var(--spacing-5, 1.25rem);
}

.ssrpm-profile .ssrpm-profile__primary {
	display: inline-flex;
	align-items: center;
	height: 48px;
	padding: 0 var(--spacing-6, 1.5rem);
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--gray-0, #ffffff);
	background: var(--blue-500, #1995e2);
	border-radius: var(--radius-full, 9999px);
	text-decoration: none;
	transition: background var(--transition-fast, 150ms);
}

.ssrpm-profile .ssrpm-profile__primary:hover {
	color: var(--gray-0, #ffffff);
	background: var(--blue-600, #1281dd);
	text-decoration: none;
}

.ssrpm-profile .ssrpm-profile__secondary {
	font-weight: 600;
	color: var(--gray-0, #ffffff);
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-color: rgb(255 255 255 / 0.4);
}

.ssrpm-profile .ssrpm-profile__secondary:hover {
	color: var(--blue-200, #83d3f1);
}

/* Body ------------------------------------------------------------------ */

.ssrpm-profile__body {
	display: grid;
	gap: var(--spacing-12, 3rem);
	max-width: var(--container-content, 1280px);
	margin: 0 auto;
	padding: var(--spacing-12, 3rem) var(--spacing-6, 1.5rem) var(--spacing-20, 5rem);
}

/* Band 1: About beside the certification note. */
.ssrpm-profile__intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--spacing-10, 2.5rem);
	align-items: start;
}

.ssrpm-profile__intro.has-about {
	grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
}

.ssrpm-profile .ssrpm-profile__heading {
	margin: 0 0 var(--spacing-4, 1rem);
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-size: 1.75rem;
	font-weight: 600;
	letter-spacing: normal;
	color: var(--gray-900, #030712);
}

.ssrpm-profile .ssrpm-profile__subheading {
	margin: var(--spacing-8, 2rem) 0 var(--spacing-3, 0.75rem);
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gray-600, #4b5563);
}

.ssrpm-profile__lead {
	max-width: 65ch;
	margin: 0 0 var(--spacing-5, 1.25rem);
	font-size: 1.1875rem;
	line-height: 1.55;
	color: var(--gray-800, #1f2937);
}

.ssrpm-profile__prose {
	max-width: 68ch;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--gray-700, #374151);
}

.ssrpm-profile__prose p {
	margin: 0 0 var(--spacing-4, 1rem);
}

.ssrpm-profile__services {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-2, 0.5rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.ssrpm-profile__services li {
	margin: 0;
	padding: 6px 14px;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--blue-800, #0e4382);
	background: var(--blue-50, #ebfcff);
	border-radius: var(--radius-full, 9999px);
}

.ssrpm-profile__services li::before {
	content: none !important;
}

.ssrpm-profile__trust {
	padding: var(--spacing-6, 1.5rem);
	background: var(--gray-50, #f8fafc);
	border: 1px solid var(--ssrpm-p-line);
	border-radius: var(--radius-card, 12px);
}

.ssrpm-profile__trust .ssrpm-profile__heading {
	font-size: 1.25rem;
	margin-bottom: var(--spacing-2, 0.5rem);
}

.ssrpm-profile__trust p {
	max-width: 68ch;
	margin: 0;
	color: var(--gray-700, #374151);
}

/* Band 2: Location & Hours ---------------------------------------------- */

/* Location tabs: one per practice location, above the map/contact/hours. */
.ssrpm-profile__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-2, 0.5rem);
	margin: 0 0 var(--spacing-5, 1.25rem);
}

.ssrpm-profile .ssrpm-profile__tab {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1px;
	padding: 10px 16px;
	font-family: inherit;
	text-align: left;
	color: var(--gray-700, #374151);
	background: var(--gray-0, #ffffff);
	border: 1px solid var(--ssrpm-p-line);
	border-radius: var(--radius-card, 12px);
	cursor: pointer;
	transition: border-color var(--transition-fast, 150ms), background var(--transition-fast, 150ms);
}

.ssrpm-profile .ssrpm-profile__tab:hover {
	border-color: var(--blue-300, #55bfea);
}

.ssrpm-profile .ssrpm-profile__tab[aria-selected="true"] {
	color: var(--blue-800, #0e4382);
	background: var(--blue-50, #ebfcff);
	border-color: var(--blue-500, #1995e2);
	box-shadow: inset 0 0 0 1px var(--blue-500, #1995e2);
}

.ssrpm-profile .ssrpm-profile__tab:focus-visible {
	outline: 2px solid var(--color-focus, #2f7fef);
	outline-offset: 2px;
}

.ssrpm-profile__tab-clinic {
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
}

.ssrpm-profile__tab-place {
	font-size: 0.875rem;
	line-height: 1.3;
	color: var(--gray-500, #6b7280);
}

.ssrpm-profile__visit-grid[hidden] {
	display: none;
}

@media (max-width: 640px) {
	.ssrpm-profile .ssrpm-profile__tab {
		flex: 1 1 100%;
	}
}

.ssrpm-profile__visit-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--spacing-6, 1.5rem);
	align-items: stretch;
}

.ssrpm-profile__visit-grid.has-map,
.ssrpm-profile__visit-grid.has-hours {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ssrpm-profile__visit-grid.has-map.has-hours {
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
}

.ssrpm-profile__panel {
	display: flex;
	flex-direction: column;
	padding: var(--spacing-6, 1.5rem);
	background: var(--gray-0, #ffffff);
	border: 1px solid var(--ssrpm-p-line);
	border-radius: var(--radius-card, 12px);
	box-shadow: var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
}

.ssrpm-profile .ssrpm-profile__map {
	height: auto;
	min-height: 340px;
	margin: 0;
	border: 1px solid var(--ssrpm-p-line);
	border-radius: var(--radius-card, 12px);
	box-shadow: var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
	overflow: hidden;
}

/* The bottom margin keeps Get directions clear of the last row; the button's
   auto top margin pins it to the panel's foot when the panel is taller. */
.ssrpm-profile__contact {
	display: grid;
	gap: var(--spacing-4, 1rem);
	margin: 0 0 var(--spacing-6, 1.5rem);
	padding: 0;
}

.ssrpm-profile__contact dt,
.ssrpm-profile .ssrpm-profile__panel-title {
	margin: 0 0 2px;
	padding: 0;
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gray-500, #6b7280);
}

.ssrpm-profile .ssrpm-profile__panel-title {
	margin-bottom: var(--spacing-3, 0.75rem);
}

.ssrpm-profile__contact dd {
	margin: 0;
	font-size: 1rem;
	font-style: normal;
	line-height: 1.5;
	color: var(--gray-900, #030712);
	overflow-wrap: anywhere;
}

.ssrpm-profile__contact a {
	color: var(--blue-700, #116cc9);
	font-weight: 500;
	text-decoration: none;
}

.ssrpm-profile__contact a:hover {
	text-decoration: underline;
}

.ssrpm-profile .ssrpm-profile__card-action {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 44px;
	margin: auto 0 0;
	padding-top: 0;
	font-family: var(--font-primary, "Barlow", sans-serif);
	font-weight: 600;
	color: var(--blue-700, #116cc9);
	background: var(--gray-0, #ffffff);
	border: 1px solid var(--blue-300, #55bfea);
	border-radius: var(--radius-full, 9999px);
	text-decoration: none;
}

.ssrpm-profile .ssrpm-profile__card-action:hover {
	background: var(--blue-50, #ebfcff);
	text-decoration: none;
}

/* Hours table: one row per day, today highlighted by frontend.js. */
.ssrpm-profile .ssrpm-profile__hours {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 0.9375rem;
	line-height: 1.4;
}

.ssrpm-profile .ssrpm-profile__hours th,
.ssrpm-profile .ssrpm-profile__hours td {
	padding: 7px 10px;
	border: 0;
	border-bottom: 1px solid var(--gray-100, #f1f5f9);
	background: none;
	text-align: left;
	vertical-align: top;
	font-family: inherit;
	font-size: inherit;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--gray-900, #030712);
}

.ssrpm-profile .ssrpm-profile__hours td {
	text-align: right;
	white-space: nowrap;
}

.ssrpm-profile .ssrpm-profile__hours tr:last-child th,
.ssrpm-profile .ssrpm-profile__hours tr:last-child td {
	border-bottom: 0;
}

.ssrpm-profile .ssrpm-profile__hours tr.is-closed th,
.ssrpm-profile .ssrpm-profile__hours tr.is-closed td {
	color: var(--gray-500, #6b7280);
}

.ssrpm-profile .ssrpm-profile__hours tr.is-today th,
.ssrpm-profile .ssrpm-profile__hours tr.is-today td {
	font-weight: 600;
	color: var(--blue-800, #0e4382);
	background: var(--blue-50, #ebfcff);
}

.ssrpm-profile .ssrpm-profile__hours tr.is-today th {
	border-radius: 8px 0 0 8px;
}

.ssrpm-profile .ssrpm-profile__hours tr.is-today td {
	border-radius: 0 8px 8px 0;
}

.ssrpm-profile__today {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 7px;
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	vertical-align: 1px;
	color: var(--gray-0, #ffffff);
	background: var(--blue-700, #116cc9);
	border-radius: var(--radius-full, 9999px);
}

.ssrpm-profile__hours-note,
.ssrpm-profile__hours-text {
	margin: var(--spacing-3, 0.75rem) 0 0;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--gray-700, #374151);
}

.ssrpm-profile__hours-text {
	margin-top: 0;
	color: var(--gray-900, #030712);
}

.ssrpm-profile a:focus-visible {
	outline: 2px solid var(--color-focus, #2f7fef);
	outline-offset: 2px;
}

@media (max-width: 1024px) {
	.ssrpm-profile__intro.has-about {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Map across the top, contact and hours side by side below it. */
	.ssrpm-profile__visit-grid.has-map.has-hours {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ssrpm-profile__visit-grid.has-map.has-hours .ssrpm-profile__map {
		grid-column: 1 / -1;
		min-height: 300px;
	}
}

@media (max-width: 640px) {
	.ssrpm-profile__visit-grid.has-map,
	.ssrpm-profile__visit-grid.has-hours,
	.ssrpm-profile__visit-grid.has-map.has-hours {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Phones: how to reach them first, then hours, then the map. */
	.ssrpm-profile__visit-grid .ssrpm-profile__map {
		order: 2;
		min-height: 260px;
	}
}

@media (max-width: 640px) {
	.ssrpm-profile__hero-grid,
	.ssrpm-profile__hero-grid.has-photo {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--spacing-5, 1.25rem);
	}

	.ssrpm-profile__photo {
		order: -1;
	}

	.ssrpm-profile__photo {
		width: 104px;
		height: 104px;
	}

	.ssrpm-profile__photo--initials {
		font-size: 2.25rem;
	}

	.ssrpm-profile__body {
		padding: var(--spacing-8, 2rem) var(--spacing-4, 1rem) var(--spacing-16, 4rem);
	}
}

/* Card text: the theme gives every <p> a bottom margin. */
.ssrpm-map--v2 .ssrpm-card__line,
.ssrpm-map--v2 .ssrpm-card__name {
	margin-bottom: 0;
}

/* Emblem mark: solid white on the tier tile, like the course cards. */
.ssrpm-map--v2 .ssrpm-card__emblem .ssrpm-icon,
.ssrpm-map--v2 .ssrpm-card__emblem .ssrpm-icon--badge {
	display: inline-flex;
	width: 26px;
	height: 26px;
	color: var(--gray-0, #ffffff);
	opacity: 1;
}

.ssrpm-map--v2 .ssrpm-card__emblem svg {
	width: 26px;
	height: 26px;
}

/* The emblem takes the tile's text colour: orange on the hollow Specialist tile, white elsewhere. */
.ssrpm-map--v2 .ssrpm-card__emblem svg path {
	fill: currentColor;
}

.ssrpm-map--v2 .ssrpm-card__emblem--s .ssrpm-icon,
.ssrpm-map--v2 .ssrpm-card__emblem--s .ssrpm-icon--badge {
	color: var(--ssrpm-cert);
}

.ssrpm-map--v2 .ssrpm-card--no-pin:hover {
	transform: none;
}

/* Divi adds p { padding-bottom: 1em } site-wide. */
.ssrpm-map--v2 p,
.ssrpm-pop p,
.ssrpm-profile p {
	padding-bottom: 0;
}

/* Find a Provider FAQs (Map_Faq): group headings and the disclaimer. */
.ssrpm-map-faq__group {
	margin: var(--spacing-10, 2.5rem) 0 var(--spacing-2, 0.5rem);
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gray-600, #4b5563);
}

.ssrpm-map-faq__group:first-child {
	margin-top: 0;
}

.ssrpm-map-disclaimer {
	margin-top: var(--spacing-12, 3rem);
	padding-top: var(--spacing-6, 1.5rem);
	border-top: 1px solid var(--gray-200, #e5e7eb);
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--gray-600, #4b5563);
}

.ssrpm-map-faq .ssrpm-map-disclaimer p {
	margin: 0 0 var(--spacing-3, 0.75rem);
	padding-bottom: 0;
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--gray-600, #4b5563);
}

.ssrpm-map-disclaimer a {
	color: var(--blue-700, #116cc9);
}

.ssrpm-map-disclaimer .ssrpm-map-disclaimer__title {
	margin: 0 0 var(--spacing-2, 0.5rem);
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gray-600, #4b5563);
}

/* Redox Smart Pen Prescribers (0.11.2) ------------------------------------------ */

/* Checkbox bar pinned to the top of the scrolling results list. */
.ssrpm-map--v2 .ssrpm-finder__list-bar {
	position: sticky;
	top: 0;
	z-index: 2;
	margin: 0 0 var(--spacing-3, 0.75rem);
	padding: var(--spacing-2, 0.5rem) var(--spacing-3, 0.75rem);
	background: var(--gray-0, #ffffff);
	border: 1px solid var(--ssrpm-f-line);
	border-radius: var(--ssrpm-f-radius);
}

.ssrpm-map--v2 .ssrpm-finder__pen-toggle {
	display: flex;
	align-items: center;
	gap: var(--spacing-2, 0.5rem);
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--ssrpm-f-text);
	cursor: pointer;
}

.ssrpm-map--v2 .ssrpm-finder__pen-toggle input {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--ssrpm-f-primary);
	cursor: pointer;
}

.ssrpm-map--v2 .ssrpm-finder__pen-toggle .ssrpm-finder__pen-icon {
	flex: none;
	width: 28px;
	height: 28px;
	margin: 0;
}

.ssrpm-map--v2 .ssrpm-finder__pen-toggle input:disabled,
.ssrpm-map--v2 .ssrpm-finder__pen-toggle input:disabled + span {
	cursor: progress;
	opacity: 0.6;
}

/* Stacked layout and phones: the list doesn't scroll on its own, so the bar
   sits in flow above the cards. */
.ssrpm-map--v2[data-layout="stacked"] .ssrpm-finder__list-bar {
	position: static;
}

@media (max-width: 899px) {
	.ssrpm-map--v2 .ssrpm-finder__list-bar {
		position: static;
	}
}

/* Badge on cards and map popups. */
.ssrpm-map--v2 .ssrpm-card__pen,
.ssrpm-pop .ssrpm-card__pen {
	display: inline-flex;
	align-items: center;
	height: 22px;
	margin-top: 6px;
	padding: 0 9px;
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 20px;
	text-transform: uppercase;
	white-space: nowrap;
	color: #1f3a26;
	background: #99c7a1;
	border: 1px solid #99c7a1;
	border-radius: var(--radius-full, 9999px);
}

.ssrpm-pop .ssrpm-card__pen {
	margin-top: 0;
}

/* Provider page hero badge. Redox green (#99C7A1, Matt 2026-10-07); dark text,
   because white on this green fails contrast. */
.ssrpm-profile__badge--redox-pen {
	color: #1f3a26;
	background: #99c7a1;
	border-color: #99c7a1;
}

/* Popup credential chips (0.11.2): one row that wraps, with even gaps, and
   every chip the same size and type. The class chip, the Fellow/Faculty chip
   and the Redox Smart Pen chip used to run together, and Fellow/Faculty was
   unstyled text. */
.ssrpm-pop .ssrpm-pop__badges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 6px;
	margin-top: 6px;
}

.ssrpm-pop .ssrpm-pop__badges > * {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	height: 22px;
	margin: 0;
	padding: 0 9px;
	font-family: var(--font-condensed, "Barlow Condensed", sans-serif);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 20px;
	text-transform: uppercase;
	white-space: nowrap;
	border-radius: var(--radius-full, 9999px);
}

.ssrpm-pop .ssrpm-card__tier {
	color: var(--gray-0, #ffffff);
	border: 1px solid transparent;
}

.ssrpm-pop .ssrpm-card__tier--fellow {
	background: var(--ssrpm-fellow);
	border-color: var(--ssrpm-fellow);
}

.ssrpm-pop .ssrpm-card__tier--faculty {
	background: var(--ssrpm-faculty);
	border-color: var(--ssrpm-faculty);
}
