/* Registry colors intentionally inherit the active theme palette variables. */
.br-profile-hero {
	margin-bottom: 28px;
}

.br-profile-banner {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 5;
	min-height: 220px;
	max-height: 420px;
	overflow: hidden;
	border-radius: 18px;
	background: #f3f3f3;
	margin-top: 30px;
}

.br-profile-banner img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	object-position: center center;
}

.br-profile-banner--empty {
	background: #f3f3f3;
}

.br-profile-hero-content {
	position: relative;
	display: flex;
	align-items: flex-end;
	gap: 22px;
	padding: 0 24px;
	margin-top: -58px;
}

.br-profile-logo-wrap {
	flex: 0 0 auto;
	position: relative;
	z-index: 2;
}

.br-profile-logo {
	display: block;
	width: 132px;
	height: 132px;
	object-fit: cover;
	border-radius: 50%;
	border: 5px solid #fff;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
}

.br-profile-heading {
	flex: 1 1 auto;
	min-width: 0;
	padding: 68px 0 4px;
}

.br-profile-heading h1 {
	margin: 0 0 6px;
}

.br-profile-person,
.br-profile-vacation,
.br-profile-rating {
	margin: 5px 0;
	font-weight: bold;
}

.br-identity-confirmed {
	white-space: nowrap;
	font-weight: 600;
	color: #fff;
	background: var(--accent-2);
    border-radius: 25px;
    padding: 4px 8px;
    margin-left: 15px;
}

.br-profile-rating a {
	text-decoration: none;
}

.br-profile-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 14px;
}

.br-profile-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	padding: 10px 16px;
	border: 1px solid currentColor;
	border-radius: 999px;
	font-weight: 600;
	line-height: 1.2;
}

.br-profile-action--primary {
	font-weight: 700;
}

.br-collapsible-form {
	margin-top: 12px;
}

.br-collapsible-form > summary {
	cursor: pointer;
	font-weight: 700;
	list-style: none;
}

.br-collapsible-form > summary::-webkit-details-marker {
	display: none;
}

.br-collapsible-form > summary::after {
	content: " +";
}

.br-collapsible-form[open] > summary::after {
	content: " −";
}

.br-collapsible-form-content {
	padding-top: 12px;
}

.br-review {
	margin: 18px 0;
	padding: 18px 0;
	border-top: 1px solid rgba(0, 0, 0, 0.12);
}

.br-review-date {
	margin-top: -4px;
}

@media (max-width: 700px) {
	.br-profile-banner {
		aspect-ratio: 16 / 7;
		min-height: 180px;
		border-radius: 14px;
	}

	.br-profile-hero-content {
		display: block;
		padding: 0 16px;
		margin-top: -48px;
	}

	.br-profile-logo {
		width: 112px;
		height: 112px;
		border-width: 4px;
	}

	.br-profile-heading {
		padding-top: 12px;
	}

	.br-profile-actions {
		align-items: stretch;
	}

	.br-profile-action {
		width: 100%;
		box-sizing: border-box;
	}
}


/* The Breeder Registry design system */
/* Public profile links */
.br-profile-hero a:not(.br-profile-action),
.br-profile-content a,
#reviews a,
#contact a,
#leave-review a {
	color: var(--accent-2);
}

/* Profile actions */
.br-profile-action,
.br-contact-button,
.br-review-button,
.br-collapsible-form button[type="submit"],
#contact button[type="submit"],
#leave-review button[type="submit"] {
	border: 0;
	border-radius: 25px;
	background: var(--contrast-3);
	color: var(--base-3);
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.18s ease;
}

.br-profile-action:hover,
.br-profile-action:focus-visible,
.br-contact-button:hover,
.br-contact-button:focus-visible,
.br-review-button:hover,
.br-review-button:focus-visible,
.br-collapsible-form button[type="submit"]:hover,
.br-collapsible-form button[type="submit"]:focus-visible,
#contact button[type="submit"]:hover,
#contact button[type="submit"]:focus-visible,
#leave-review button[type="submit"]:hover,
#leave-review button[type="submit"]:focus-visible {
	background: var(--contrast);
	color: var(--base-3);
}

.br-profile-action {
	padding: 11px 20px;
}

/* Review summary */
.br-profile-rating a {
	color: var(--accent-2);
}

/* Published review cards */
#reviews .br-review {
	margin: 16px 0;
	padding: 20px;
	border: 0;
	border-radius: 14px;
	background: var(--base-2);
}

#reviews .br-review p {
	margin-top: 7px;
	margin-bottom: 7px;
}

#reviews .br-review p:first-child {
	margin-top: 0;
	color: var(--contrast-2);
	font-size: 1.05em;
}

#reviews .br-review-date {
	color: var(--contrast);
	opacity: 0.7;
}

/* Contact and review forms */
.br-collapsible-form {
	margin-top: 14px;
	border-radius: 14px;
	background: var(--base-2);
	overflow: hidden;
}

.br-collapsible-form > summary {
	padding: 15px 18px;
	color: var(--contrast);
}

.br-collapsible-form[open] > summary {
	border-bottom: 1px solid var(--base);
}

.br-collapsible-form-content {
	padding: 18px;
}

.br-collapsible-form input[type="text"],
.br-collapsible-form input[type="email"],
.br-collapsible-form select,
.br-collapsible-form textarea,
#contact input[type="text"],
#contact input[type="email"],
#contact select,
#contact textarea,
#leave-review input[type="text"],
#leave-review input[type="email"],
#leave-review select,
#leave-review textarea {
	box-sizing: border-box;
	max-width: 100%;
	border: 1px solid var(--base);
	border-radius: 8px;
	background: var(--base-3);
	color: var(--contrast);
	padding: 10px 12px;
}

.br-collapsible-form textarea,
#contact textarea,
#leave-review textarea {
	width: 100%;
}

.br-collapsible-form input:focus,
.br-collapsible-form select:focus,
.br-collapsible-form textarea:focus,
#contact input:focus,
#contact select:focus,
#contact textarea:focus,
#leave-review input:focus,
#leave-review select:focus,
#leave-review textarea:focus {
	outline: 2px solid var(--contrast-3);
	outline-offset: 2px;
}

/* Keep button text white even when global link styles apply. */
.br-profile-actions .br-profile-action,
.br-profile-actions .br-profile-action:visited,
.br-profile-actions .br-profile-action:hover,
.br-profile-actions .br-profile-action:focus {
	color: var(--base-3);
}

@media (max-width: 700px) {
	#reviews .br-review {
		padding: 16px;
	}

	.br-collapsible-form-content {
		padding: 16px;
	}
}

/* v1.0.7 public profile finishing pass */
.br-profile-body { color: var(--contrast); }
.br-profile-body > section, .br-profile-body > div { margin-top: 80px; margin-bottom: 32px; }
.br-profile-body h2 { margin-top: 0; margin-bottom: 14px; color: var(--contrast); }
.br-profile-body p, .br-profile-body ul { line-height: 1.65; }
.br-profile-body section + section { margin-top: 38px; }
.br-collapsible-form button[type="submit"], #contact button[type="submit"], #leave-review button[type="submit"] {
	padding: 11px 22px; font-weight: 600;
}
@media (max-width: 700px) {
	.br-profile-banner { border-radius: 0; }
	.br-profile-body { padding-left: 18px; padding-right: 18px; box-sizing: border-box; }
}


/* v1.0.8 site spacing and directory card pass */

/* Standard Registry horizontal spacing */
.br-profile-hero,
.br-profile-body,
.br-directory,
.br-site-width {
	box-sizing: border-box;
	padding-left: 60px;
	padding-right: 60px;
}

/* Keep the hero content from receiving accidental double padding. */
.br-profile-hero .br-profile-hero-content {
	padding-left: 24px;
	padding-right: 24px;
}

/* Directory grid/cards */
.br-directory-grid,
.br-breeder-grid,
.br-directory-results {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.br-directory-card,
.br-breeder-card {
	box-sizing: border-box;
	min-width: 0;
	background: var(--base-2);
	border: 0;
	border-radius: 25px;
	padding: 22px;
	color: var(--contrast);
	text-decoration: none;
	overflow: hidden;
}

a.br-directory-card,
a.br-breeder-card {
	display: block;
	color: var(--contrast);
}

.br-directory-card:hover,
.br-breeder-card:hover {
	color: var(--contrast);
}

.br-directory-card h2,
.br-directory-card h3,
.br-breeder-card h2,
.br-breeder-card h3 {
	margin-top: 0;
	margin-bottom: 6px;
	color: var(--contrast);
}

.br-directory-card a:not(.br-profile-action),
.br-breeder-card a:not(.br-profile-action) {
	color: var(--accent-2);
}

.br-directory-card img,
.br-breeder-card img {
	max-width: 100%;
}

.br-directory-card .br-card-logo,
.br-breeder-card .br-card-logo,
.br-directory-card .br-directory-logo,
.br-breeder-card .br-directory-logo {
	width: 84px;
	height: 84px;
	object-fit: cover;
	border-radius: 50%;
	background: var(--base-3);
}

.br-directory-card .br-species,
.br-breeder-card .br-species,
.br-directory-card .br-species-pill,
.br-breeder-card .br-species-pill {
	display: inline-block;
	margin: 3px 4px 3px 0;
	padding: 5px 10px;
	border-radius: 25px;
	background: var(--base);
	color: var(--contrast);
	font-size: 0.9em;
	line-height: 1.2;
}

/* Tablet */
@media (max-width: 1000px) {
	.br-directory-grid,
	.br-breeder-grid,
	.br-directory-results {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Mobile */
@media (max-width: 700px) {
	.br-profile-hero,
	.br-profile-body,
	.br-directory,
	.br-site-width {
		padding-left: 20px;
		padding-right: 20px;
	}

	/* Banner remains genuinely edge-to-edge on phones. */
	.br-profile-hero {
		padding-left: 0;
		padding-right: 0;
	}

	.br-profile-hero .br-profile-hero-content {
		padding-left: 20px;
		padding-right: 20px;
	}

	.br-profile-body {
		padding-left: 20px;
		padding-right: 20px;
	}

	.br-directory-grid,
	.br-breeder-grid,
	.br-directory-results {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}

	.br-directory-card,
	.br-breeder-card {
		padding: 20px;
	}
}


/* v1.0.9 directory card alignment refinements */
.br-directory-card,
.br-breeder-card {
	text-align: center;
}

.br-directory-card .br-card-logo,
.br-breeder-card .br-card-logo,
.br-directory-card .br-directory-logo,
.br-breeder-card .br-directory-logo,
.br-directory-card > img:first-child,
.br-breeder-card > img:first-child {
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 18px;
}

.br-directory-card h2,
.br-directory-card h3,
.br-breeder-card h2,
.br-breeder-card h3 {
	margin-top: 0;
	margin-bottom: 10px;
}

.br-directory-card p,
.br-breeder-card p {
	margin-left: auto;
	margin-right: auto;
}

.br-directory-card .br-species,
.br-breeder-card .br-species,
.br-directory-card .br-species-pill,
.br-breeder-card .br-species-pill {
	margin-left: 2px;
	margin-right: 2px;
}

/* Breeds remain plain text, not pills. */
.br-directory-card .br-breeds,
.br-breeder-card .br-breeds,
.br-directory-card .br-breed-list,
.br-breeder-card .br-breed-list {
	display: block;
	margin-top: 10px;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	color: var(--contrast);
}

/* Keep centered cards balanced when some profile fields are missing. */
.br-directory-card > *:last-child,
.br-breeder-card > *:last-child {
	margin-bottom: 0;
}


/* v1.0.10 directory card fixes using the actual card markup */
.br-breeder-card-image {
	margin-bottom: 0;
}

.br-breeder-card-image img {
	display: block;
	width: 96px;
	height: 96px;
	margin: 0 auto;
	object-fit: cover;
	border-radius: 50%;
	background: var(--base-3);
}

.br-breeder-card-content {
	padding-top: 15px;
	text-align: center;
}

.br-card-species {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 7px;
	margin: 12px 0;
}

.br-card-species span {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 25px;
	background: var(--base);
	color: var(--contrast);
	font-size: 0.9em;
	line-height: 1.2;
}

.br-breeder-card-content > p {
	text-align: center;
}


/* v1.0.11 directory card visual refinement */
.br-directory-card,
.br-breeder-card {
	background: transparent;
	border: 2px solid var(--contrast-2);
	border-radius: 25px;
}

.br-card-species span {
	background: var(--accent-2);
	color: var(--base-3);
}


/* v1.0.12 directory card image and farm-name refinement */
.br-breeder-card-image img {
	width: 85%;
	height: auto;
	aspect-ratio: 1 / 1;
	margin: 20px auto;
	object-fit: cover;
	border-radius: 50%;
}

.br-breeder-card-content h2 {
	font-family: Merriweather, Georgia, serif;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.25;
}


/* v1.0.13 preserve the breeder's entered capitalization for farm names */
.br-breeder-card-content h2 {
	text-transform: none;
}


/* v1.0.15 directory search/filter and results polish */
.br-directory {
	max-width: 1500px;
	margin: 0 auto;
}

.br-directory-filters {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px 20px;
	align-items: end;
	margin: 0 0 28px;
	padding: 24px;
	border: 2px solid var(--contrast-2);
	border-radius: 25px;
	background: transparent;
}

.br-directory-filters > div {
	min-width: 0;
}

.br-directory-filters label {
	display: inline-block;
	margin-bottom: 7px;
	color: var(--contrast);
}

.br-directory-filters input[type="search"],
.br-directory-filters select {
	box-sizing: border-box;
	width: 100%;
	min-height: 46px;
	padding: 10px 14px;
	border: 1px solid var(--base);
	border-radius: 14px;
	background: var(--base-3);
	color: var(--contrast);
	font: inherit;
}

.br-directory-filters input[type="search"]:focus,
.br-directory-filters select:focus {
	outline: 2px solid var(--contrast-3);
	outline-offset: 1px;
	border-color: var(--contrast-3);
}

.br-directory-filters button,
.br-directory-submit,
.br-clear-filters {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 10px 22px;
	border: 0;
	border-radius: 25px;
	background: var(--contrast-3);
	color: var(--base-3) !important;
	font: inherit;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}

.br-directory-filters button:hover,
.br-directory-filters button:focus,
.br-directory-submit:hover,
.br-directory-submit:focus,
.br-clear-filters:hover,
.br-clear-filters:focus {
	background: var(--contrast);
	color: var(--base-3) !important;
}

.br-directory-summary {
	margin: 0 0 22px;
}

.br-directory-summary p {
	margin: 0;
}

.br-directory-summary strong {
	font-family: Merriweather, Georgia, serif;
	font-size: 1.15rem;
}

.br-directory-summary small {
	display: inline-block;
	margin-top: 4px;
	color: var(--contrast);
	opacity: 0.8;
}

.br-directory-empty {
	margin: 24px 0 0;
	padding: 34px 28px;
	text-align: center;
	border: 2px solid var(--contrast-2);
	border-radius: 25px;
}

.br-directory-empty h2 {
	margin-top: 0;
	font-family: Merriweather, Georgia, serif;
}

.br-directory-empty .br-clear-filters {
	margin-top: 8px;
}

.br-directory .page-numbers,
.br-directory-pagination a,
.br-directory-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	min-height: 42px;
	margin: 0 4px 6px;
	padding: 6px 12px;
	border: 1px solid var(--contrast-2);
	border-radius: 25px;
	color: var(--contrast-2);
	text-decoration: none;
}

.br-directory .page-numbers.current,
.br-directory-pagination .current {
	background: var(--contrast-2);
	color: var(--base-3);
}

.br-directory .page-numbers:hover,
.br-directory .page-numbers:focus,
.br-directory-pagination a:hover,
.br-directory-pagination a:focus {
	background: var(--contrast);
	border-color: var(--contrast);
	color: var(--base-3);
}

@media (max-width: 1100px) {
	.br-directory-filters {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.br-directory-filters {
		grid-template-columns: minmax(0, 1fr);
		padding: 20px;
		gap: 15px;
	}

	.br-directory-filters button,
	.br-directory-submit,
	.br-clear-filters {
		width: 100%;
	}

	.br-directory-summary {
		text-align: center;
	}

	.br-directory-empty {
		padding: 28px 20px;
	}
}


/* =========================================================
   v1.0.16 broad Registry visual system pass
   ========================================================= */

/* Shared front-end widths and typography */
.br-account-wrap,
.br-dashboard,
.br-profile-editor {
	box-sizing: border-box;
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 60px;
	padding-right: 60px;
	color: var(--contrast);
}

.br-account-wrap h1,
.br-account-wrap h2,
.br-dashboard h1,
.br-dashboard h2,
.br-profile-editor h1,
.br-profile-editor h2,
.br-profile-editor legend,
.br-reviews-section h2,
.br-contact-section h2 {
	font-family: Merriweather, Georgia, serif;
	color: var(--contrast);
}

.br-account-wrap a,
.br-dashboard a,
.br-profile-editor a,
.br-reviews-section a,
.br-contact-section a {
	color: var(--accent-2);
}

/* Notices */
.br-notice {
	box-sizing: border-box;
	margin: 0 0 18px;
	padding: 14px 18px;
	border: 1px solid var(--base);
	border-left: 5px solid var(--contrast-2);
	border-radius: 14px;
	background: var(--base-2);
	color: var(--contrast);
}

.br-notice.br-success {
	border-left-color: var(--contrast-3);
}

.br-notice.br-error {
	border-left-color: var(--accent-2);
}

/* Shared front-end forms */
.br-account-wrap form,
.br-profile-editor form,
.br-contact-form,
.br-review-form {
	color: var(--contrast);
}

.br-account-wrap input[type="text"],
.br-account-wrap input[type="email"],
.br-account-wrap input[type="password"],
.br-profile-editor input[type="text"],
.br-profile-editor input[type="email"],
.br-profile-editor input[type="url"],
.br-profile-editor input[type="password"],
.br-profile-editor input[type="file"],
.br-profile-editor select,
.br-profile-editor textarea,
.br-contact-form input[type="text"],
.br-contact-form input[type="email"],
.br-contact-form textarea,
.br-review-form input[type="text"],
.br-review-form input[type="email"],
.br-review-form select,
.br-review-form textarea {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-height: 46px;
	padding: 10px 14px;
	border: 1px solid var(--base);
	border-radius: 14px;
	background: var(--base-3);
	color: var(--contrast);
	font: inherit;
}

.br-profile-editor textarea,
.br-contact-form textarea,
.br-review-form textarea {
	min-height: 130px;
	resize: vertical;
}

.br-account-wrap input:focus,
.br-profile-editor input:focus,
.br-profile-editor select:focus,
.br-profile-editor textarea:focus,
.br-contact-form input:focus,
.br-contact-form textarea:focus,
.br-review-form input:focus,
.br-review-form select:focus,
.br-review-form textarea:focus {
	outline: 2px solid var(--contrast-3);
	outline-offset: 1px;
	border-color: var(--contrast-3);
}

.br-account-wrap label,
.br-profile-editor label,
.br-contact-form label,
.br-review-form label {
	color: var(--contrast);
}

.br-account-wrap small,
.br-profile-editor small,
.br-contact-form small,
.br-review-form small {
	line-height: 1.45;
	opacity: 0.82;
}

/* Shared buttons */
.br-account-wrap button,
.br-profile-editor button,
.br-contact-form button,
.br-review-form button,
.br-dashboard button,
.br-dashboard-primary,
.br-dashboard-view {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 10px 22px;
	border: 0;
	border-radius: 25px;
	background: var(--contrast-3);
	color: var(--base-3) !important;
	font: inherit;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}

.br-account-wrap button:hover,
.br-account-wrap button:focus,
.br-profile-editor button:hover,
.br-profile-editor button:focus,
.br-contact-form button:hover,
.br-contact-form button:focus,
.br-review-form button:hover,
.br-review-form button:focus,
.br-dashboard button:hover,
.br-dashboard button:focus,
.br-dashboard-primary:hover,
.br-dashboard-primary:focus,
.br-dashboard-view:hover,
.br-dashboard-view:focus {
	background: var(--contrast);
	color: var(--base-3) !important;
}

/* Registration and sign-in */
.br-account-wrap {
	padding-top: 18px;
	padding-bottom: 30px;
}

.br-register-form,
.br-login-form {
	max-width: 680px;
	padding: 26px;
	border: 2px solid var(--contrast-2);
	border-radius: 25px;
}

.br-register-form p,
.br-login-form p {
	margin: 0 0 18px;
}

.br-register-form button,
.br-login-form button {
	margin-top: 4px;
}

/* Breeder dashboard */
.br-dashboard {
	padding-top: 18px;
	padding-bottom: 36px;
}

.br-dashboard > h2 {
	margin-bottom: 6px;
	display: none;
}

.br-dashboard > h2 + p {
	margin-top: 0;
	font-size: 1.05rem;
}

.br-dashboard dl {
	display: grid;
	grid-template-columns: minmax(130px, 180px) 1fr;
	max-width: 700px;
	margin: 24px 0 30px;
	border: 2px solid var(--contrast-2);
	border-radius: 25px;
	overflow: hidden;
}

.br-dashboard dt,
.br-dashboard dd {
	margin: 0;
	padding: 13px 16px;
	border-bottom: 1px solid var(--base);
}

.br-dashboard dt {
	font-weight: 700;
	background: var(--base-2);
}

.br-dashboard dd {
	background: var(--base-3);
}

.br-dashboard dt:last-of-type,
.br-dashboard dd:last-of-type {
	border-bottom: 0;
}

.br-dashboard-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}

.br-dashboard-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 10px 22px;
	border: 2px solid var(--contrast-2);
	border-radius: 25px;
	color: var(--contrast-2) !important;
	font-weight: 700;
	text-decoration: none;
}

.br-dashboard-secondary:hover,
.br-dashboard-secondary:focus {
	background: var(--contrast-2);
	color: var(--base-3) !important;
}

/* Profile editor sections */
.br-profile-editor {
	padding-top: 18px;
	padding-bottom: 50px;
}

.br-profile-editor > h2 {
	margin-bottom: 22px;
}

.br-profile-editor fieldset {
	min-width: 0;
	margin: 0 0 24px;
	padding: 24px;
	border: 2px solid var(--contrast-2);
	border-radius: 25px;
}

.br-profile-editor legend {
	padding: 0 10px;
	font-size: 1.1rem;
	font-weight: 700;
}

.br-profile-editor fieldset > p:first-of-type {
	margin-top: 6px;
}

.br-profile-editor .br-species-options,
.br-profile-editor .br-breed-group {
	line-height: 1.65;
}

.br-profile-editor input[type="checkbox"],
.br-profile-editor input[type="radio"],
.br-review-form input[type="checkbox"] {
	width: auto;
	min-height: 0;
	accent-color: var(--contrast-2);
}

.br-profile-editor .br-save-bar {
	position: sticky;
	bottom: 0;
	z-index: 5;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: 26px;
	padding: 16px 18px;
	border: 2px solid var(--contrast-2);
	border-radius: 25px;
	background: rgba(255,255,255,0.96);
}

.br-profile-editor .br-save-bar .br-notice {
	flex: 1 1 100%;
	margin-bottom: 0;
}

/* Collapsible contact/review forms */
.br-collapsible-form {
	margin: 16px 0 24px;
	border: 2px solid var(--contrast-2);
	border-radius: 25px;
	overflow: hidden;
	background: var(--base-3);
}

.br-collapsible-form summary {
	padding: 16px 20px;
	background: var(--base-2);
	color: var(--contrast);
	font-family: Merriweather, Georgia, serif;
	font-weight: 700;
	cursor: pointer;
}

.br-collapsible-form[open] summary {
	border-bottom: 1px solid var(--base);
}

.br-collapsible-form-content {
	padding: 20px;
}

.br-contact-form p,
.br-review-form p {
	margin: 0 0 18px;
}

/* Published reviews */
.br-reviews-section {
	margin-top: 34px;
}

.br-review {
	margin: 0 0 18px;
	padding: 20px;
	border: 1px solid var(--base);
	border-radius: 20px;
	background: var(--base-2);
}

.br-review p:first-child {
	margin-top: 0;
}

.br-review p:last-child {
	margin-bottom: 0;
}

.br-review-date {
	opacity: 0.75;
}

/* Directory filter actions */
.br-directory-filter-actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 7px;
}

.br-directory-filter-actions button {
	width: 100%;
}

.br-directory-clear-link {
	align-self: center;
	color: var(--accent-2);
	font-size: 0.93rem;
	font-weight: 700;
	text-decoration: none;
}

.br-directory-clear-link:hover,
.br-directory-clear-link:focus {
	color: var(--contrast);
	text-decoration: underline;
}

/* Pagination alignment */
.br-directory nav,
.br-directory .br-pagination,
.br-directory .br-directory-pagination {
	margin-top: 28px;
	text-align: center;
}

/* Small visual consistency improvements */
.br-profile-body section,
.br-contact-section,
.br-reviews-section {
	scroll-margin-top: 24px;
}

@media (max-width: 700px) {
	.br-account-wrap,
	.br-dashboard,
	.br-profile-editor {
		padding-left: 20px;
		padding-right: 20px;
	}

	.br-register-form,
	.br-login-form,
	.br-profile-editor fieldset {
		padding: 20px;
	}

	.br-dashboard dl {
		grid-template-columns: 1fr;
	}

	.br-dashboard dt {
		padding-bottom: 5px;
		border-bottom: 0;
	}

	.br-dashboard dd {
		padding-top: 5px;
	}

	.br-dashboard-actions {
		flex-direction: column;
	}

	.br-dashboard-primary,
	.br-dashboard-view,
	.br-dashboard-secondary {
		width: 100%;
		box-sizing: border-box;
	}

	.br-profile-editor .br-save-bar {
		border-radius: 20px;
	}

	.br-profile-editor .br-save-bar button {
		width: 100%;
	}

	.br-collapsible-form-content {
		padding: 18px;
	}
}


/* v1.0.18 link consistency and transparent review/contact surfaces */

/* Ordinary text links generated by the Registry use accent-2.
   UI controls keep their dedicated button/pill/pagination colors. */
.br-account-wrap a:not(.br-dashboard-primary):not(.br-dashboard-view):not(.br-dashboard-secondary),
.br-dashboard a:not(.br-dashboard-primary):not(.br-dashboard-view):not(.br-dashboard-secondary),
.br-profile-editor a,
.br-profile-body a:not(.br-profile-action):not(.br-button):not(.button),
.br-contact-section a,
.br-reviews-section a,
.br-directory-summary a {
	color: var(--accent-2);
}

.br-account-wrap a:not(.br-dashboard-primary):not(.br-dashboard-view):not(.br-dashboard-secondary):hover,
.br-dashboard a:not(.br-dashboard-primary):not(.br-dashboard-view):not(.br-dashboard-secondary):hover,
.br-profile-editor a:hover,
.br-profile-body a:not(.br-profile-action):not(.br-button):not(.button):hover,
.br-contact-section a:hover,
.br-reviews-section a:hover,
.br-directory-summary a:hover {
	color: var(--contrast);
}

/* Keep the contact/review containers and published review cards unfilled. */
.br-collapsible-form,
.br-collapsible-form summary,
.br-collapsible-form-content,
.br-review,
.br-contact-form,
.br-review-form {
	background: transparent;
}

.br-collapsible-form[open] summary {
	background: transparent;
}


/* v1.0.19 typography and profile hero refinement */

/* Registry section headings */
.br-account-wrap h1,
.br-account-wrap h2,
.br-account-wrap h3,
.br-dashboard h1,
.br-dashboard h2,
.br-dashboard h3,
.br-profile-editor h1,
.br-profile-editor h2,
.br-profile-editor h3,
.br-profile-editor legend,
.br-profile-body h2,
.br-profile-body h3,
.br-contact-section h2,
.br-contact-section h3,
.br-reviews-section h2,
.br-reviews-section h3,
.br-directory h1,
.br-directory h2,
.br-directory h3 {
	font-family: Merriweather, Georgia, serif;
	font-weight: 700;
}

/* The breeder/farm name is a title, but should preserve entered capitalization. */
.br-profile-hero h1,
.br-profile-hero .br-profile-title,
.br-profile-hero .br-farm-name {
	font-family: Merriweather, Georgia, serif;
	font-weight: 700;
	text-transform: none;
}

/* Desktop/tablet profile image: larger and overlapping the banner. */
@media (min-width: 701px) {
	.br-profile-hero {
		position: relative;
	}

	.br-profile-hero .br-profile-avatar,
	.br-profile-hero .br-profile-logo,
	.br-profile-hero .br-profile-image {
		position: relative;
		z-index: 2;
		width: 180px;
		height: 180px;
		margin-top: -90px;
	}

	.br-profile-hero .br-profile-avatar img,
	.br-profile-hero .br-profile-logo img,
	.br-profile-hero .br-profile-image img {
		width: 180px;
		height: 180px;
		object-fit: cover;
		border-radius: 50%;
	}
}


/* v1.0.20 desktop profile logo overlap correction */
@media (min-width: 701px) {
	.br-profile-hero .br-profile-hero-content {
		margin-top: -90px;
	}

	.br-profile-hero .br-profile-logo-wrap {
		position: relative;
		z-index: 3;
		flex: 0 0 180px;
	}

	.br-profile-hero img.br-profile-logo {
		display: block;
		width: 180px;
		height: 180px;
		margin-top: 0;
		object-fit: cover;
		border-radius: 50%;
		border-width: 5px;
	}

	.br-profile-hero .br-profile-heading {
		padding-top: 96px;
	}
}


/* v1.0.21 desktop profile hero positioning correction */
@media (min-width: 701px) {
	/* Keep the text/actions in the normal flow below the banner. */
	.br-profile-hero .br-profile-hero-content {
		position: relative;
		display: block;
		margin-top: 0;
		padding-top: 24px;
		min-height: 112px;
	}

	/* Move only the logo upward so it overlaps the banner. */
	.br-profile-hero .br-profile-logo-wrap {
		position: absolute;
		z-index: 3;
		top: -90px;
		left: 24px;
		width: 180px;
		height: 180px;
	}

	.br-profile-hero img.br-profile-logo {
		display: block;
		width: 180px;
		height: 180px;
		margin: 0;
		object-fit: cover;
		border-radius: 50%;
		border-width: 5px;
	}

	/* Leave room for the overlapping logo without pulling the heading upward. */
	.br-profile-hero .br-profile-heading {
		margin-left: 202px;
		padding-top: 0;
		min-height: 88px;
	}
}


/* v1.0.22 desktop profile heading/action layout */
@media (min-width: 701px) {
	.br-profile-hero .br-profile-heading {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"title actions"
			"person actions"
			"vacation rating";
		column-gap: 28px;
		row-gap: 4px;
		align-items: start;
		margin-left: 202px;
		margin-right: 24px;
		padding-top: 0;
		min-height: 88px;
	}

	.br-profile-hero .br-profile-heading h1 {
		grid-area: title;
		margin: 0;
	}

	.br-profile-hero .br-profile-person {
		grid-area: person;
		margin: 0;
	}

	.br-profile-hero .br-profile-vacation {
		grid-area: vacation;
		margin: 4px 0 0;
		font-family: Merriweather;
		font-weight: bold;
		color: var(--contrast-2);
	}

	.br-profile-hero .br-profile-actions {
		grid-area: actions;
		display: flex;
		justify-content: flex-end;
		align-items: center;
		gap: 10px;
		margin: 0;
	}

	.br-profile-hero .br-profile-rating {
		grid-area: rating;
		justify-self: end;
		margin: 4px 0 0;
		text-align: right;
	}
}


/* v1.0.23 public profile layout refinements */

/* Slightly reduce the public farm title without changing card titles. */
.br-profile-hero .br-profile-heading h1 {
	font-size: 1.9rem;
	line-height: 1.2;
}

/* Location belongs with the breeder identity in the hero. */
.br-profile-location {
	margin: -10px 0 0;
}

/* Use desktop space more efficiently for profile details. */
.br-profile-info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 60px 36px;
	margin-top: 40px;
}

.br-profile-info-section {
	min-width: 0;
}

.br-profile-info-section--full {
	grid-column: 1 / -1;
}

/* Full-width horizontal profile links. */
.br-profile-online-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 12px;
}

.br-profile-online-links a {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 7px 14px;
	border-radius: 25px;
	background: var(--contrast-3);
	color: var(--base-3) !important;
	text-decoration: none;
	font-weight: 700;
}

.br-profile-online-links a:hover {
	background: var(--contrast);
	color: var(--base-3) !important;
}

/* Desktop heading grid: rating directly below the buttons. */
@media (min-width: 701px) {
	.br-profile-hero .br-profile-heading {
		grid-template-areas:
			"title actions"
			"person rating"
			"location ."
			"vacation .";
		row-gap: 4px;
	}

	.br-profile-hero .br-profile-rating {
		align-self: start;
		margin-top: 8px;
	}

	.br-profile-hero .br-profile-actions {
		align-self: end;
	}
}

@media (max-width: 700px) {
	.br-profile-info-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 22px;
		margin-top: 22px;
	}

	.br-profile-info-section--full {
		grid-column: auto;
	}

	.br-profile-hero .br-profile-heading h1 {
		font-size: 1.65rem;
	}
}


/* v1.0.24 align paired profile sections by row */
@media (min-width: 701px) {
	.br-profile-info-grid {
		align-items: start;
	}

	.br-profile-info-section {
		align-self: start;
		margin-top: 0;
		margin-bottom: 0;
	}

	.br-profile-info-section > h2:first-child {
		margin-top: 0;
	}
}


/* v1.0.25 remove legacy stacked-section spacing inside profile grid */
.br-profile-body .br-profile-info-grid > section + section {
	margin-top: 0;
}


/* v1.0.26 profile breed grouping and top-row breathing room */
.br-profile-info-grid {
	padding-top: 18px;
}

.br-profile-breed-group + .br-profile-breed-group,
.br-profile-other-breeds {
	margin-top: 20px;
}

.br-profile-breeds h3 {
	margin: 0 0 9px;
	font-family: Merriweather, Georgia, serif;
	font-size: 0.95rem;
	font-weight: 700;
	text-transform: uppercase;
}

.br-profile-breed-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.br-profile-breed-pills span {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	border-radius: 25px;
	background: var(--contrast-3);
	color: var(--base-3);
	line-height: 1.25;
}

.br-profile-other-breeds p {
	margin: 0;
}


/* v1.0.27 profile actions, offerings, and breeding project */

/* Both hero action buttons intentionally share the same visual treatment. */
.br-profile-actions .br-profile-action,
.br-profile-actions .br-profile-action--primary,
.br-profile-actions .br-contact-button,
.br-profile-actions .br-review-button {
	background: var(--contrast-3);
	color: var(--base-3);
	border: 0;
	border-radius: 25px;
	font-weight: 700;
	text-decoration: none;
}

.br-profile-actions .br-profile-action:hover,
.br-profile-actions .br-profile-action--primary:hover,
.br-profile-actions .br-contact-button:hover,
.br-profile-actions .br-review-button:hover {
	background: var(--contrast);
	color: var(--base-3);
}

/* Offerings use the same compact pill language as breeds. */
.br-profile-offering-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: 8px 0 12px;
}

.br-profile-offering-pills span {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	border-radius: 25px;
	background: var(--contrast-3);
	color: var(--base-3);
	line-height: 1.25;
}

/* Repurposed former Other Breeds field. */
.br-profile-breeding-project {
	margin-top: 20px;
}

.br-profile-breeding-project p {
	margin: 0;
}


/* v1.0.28 notices: transparent surface with one consistent border color */
.br-notice,
.br-success,
.br-error,
.br-message,
.br-contact-message,
.br-review-message {
	background: transparent !important;
	border-color: var(--contrast-2) !important;
	border-left-color: var(--contrast-2) !important;
}


/* v1.0.33 breeder photo gallery */
.br-profile-gallery-section {
	margin-top: 38px;
	margin-bottom: 38px;
}

.br-profile-gallery {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 10px;
}

.br-profile-gallery-item {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border: 2px solid var(--contrast-2);
	border-radius: 12px;
	background: var(--base-2);
}

.br-profile-gallery-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.18s ease;
}

.br-profile-gallery-item:hover .br-profile-gallery-image,
.br-profile-gallery-item:focus .br-profile-gallery-image {
	transform: scale(1.03);
}

.br-profile-gallery-item:focus-visible {
	outline: 3px solid var(--accent-2);
	outline-offset: 3px;
}

@media (max-width: 1000px) {
	.br-profile-gallery {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.br-profile-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}
}

.br-gallery-lightbox[hidden] {
	display: none !important;
}

.br-gallery-lightbox {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 55px;
	background: var(--contrast);
}

.br-gallery-lightbox-image {
	display: block;
	max-width: min(92vw, 1500px);
	max-height: 86vh;
	width: auto;
	height: auto;
	object-fit: contain;
}

.br-gallery-lightbox-close,
.br-gallery-lightbox-prev,
.br-gallery-lightbox-next {
	position: absolute;
	z-index: 2;
	border: 0;
	border-radius: 25px;
	background: var(--contrast-3);
	color: var(--base-3);
	font-weight: 700;
	cursor: pointer;
}

.br-gallery-lightbox-close:hover,
.br-gallery-lightbox-prev:hover,
.br-gallery-lightbox-next:hover,
.br-gallery-lightbox-close:focus,
.br-gallery-lightbox-prev:focus,
.br-gallery-lightbox-next:focus {
	background: var(--base-3);
	color: var(--contrast);
}

.br-gallery-lightbox-close {
	top: 18px;
	right: 18px;
	width: 42px;
	height: 42px;
	padding: 0;
	font-size: 28px;
	line-height: 1;
}

.br-gallery-lightbox-prev,
.br-gallery-lightbox-next {
	top: 50%;
	transform: translateY(-50%);
	width: 46px;
	height: 46px;
	padding: 0;
	font-size: 24px;
	line-height: 1;
}

.br-gallery-lightbox-prev {
	left: 18px;
}

.br-gallery-lightbox-next {
	right: 18px;
}

.br-gallery-open {
	overflow: hidden;
}

@media (max-width: 700px) {
	.br-gallery-lightbox {
		padding: 58px 16px 70px;
	}

	.br-gallery-lightbox-prev,
	.br-gallery-lightbox-next {
		top: auto;
		bottom: 14px;
		transform: none;
	}

	.br-gallery-lightbox-prev {
		left: calc(50% - 58px);
	}

	.br-gallery-lightbox-next {
		right: calc(50% - 58px);
	}
}

/* Front-end gallery editor */
.br-gallery-editor {
	display: grid;
	grid-template-columns: repeat(6, minmax(90px, 1fr));
	gap: 12px;
	margin: 14px 0;
}

.br-gallery-editor-item {
	padding: 8px;
	border: 2px solid var(--contrast-2);
	border-radius: 12px;
	cursor: grab;
	text-align: center;
	background: var(--base-3);
}

.br-gallery-editor-item.is-dragging {
	opacity: 0.55;
}

.br-gallery-editor-thumb {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	margin-bottom: 7px;
	border-radius: 8px;
}

.br-gallery-editor-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.br-gallery-editor-item label {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 0.9rem;
}

@media (max-width: 1000px) {
	.br-gallery-editor {
		grid-template-columns: repeat(3, minmax(90px, 1fr));
	}
}

@media (max-width: 700px) {
	.br-gallery-editor {
		grid-template-columns: repeat(2, minmax(90px, 1fr));
	}
}


/* v1.0.35 full-screen light gallery */
.br-gallery-lightbox {
	inset: 0;
	width: 100vw;
	height: 100vh;
	box-sizing: border-box;
	padding: 60px 72px;
	background: var(--base-3);
}

.br-gallery-lightbox-image {
	max-width: calc(100vw - 144px);
	max-height: calc(100vh - 120px);
}

.br-gallery-lightbox-close,
.br-gallery-lightbox-prev,
.br-gallery-lightbox-next {
	background: var(--contrast-3);
	color: var(--base-3);
}

.br-gallery-lightbox-close:hover,
.br-gallery-lightbox-prev:hover,
.br-gallery-lightbox-next:hover,
.br-gallery-lightbox-close:focus,
.br-gallery-lightbox-prev:focus,
.br-gallery-lightbox-next:focus {
	background: var(--contrast);
	color: var(--base-3);
}

@media (max-width: 700px) {
	.br-gallery-lightbox {
		width: 100vw;
		height: 100vh;
		padding: 60px 12px 72px;
		background: var(--base-3);
	}

	.br-gallery-lightbox-image {
		max-width: calc(100vw - 24px);
		max-height: calc(100vh - 132px);
	}
}


/* v1.0.36 lightbox viewport and mobile control fixes */
.br-gallery-lightbox {
	position: fixed !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 100vw;
	min-height: 100vh;
	margin: 0 !important;
	background: var(--base-3) !important;
	opacity: 1 !important;
}

.br-gallery-lightbox-prev,
.br-gallery-lightbox-next {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	top: 50% !important;
	bottom: auto !important;
	transform: translateY(-50%) !important;
}

@media (max-width: 700px) {
	.br-gallery-lightbox {
		padding: 58px 8px !important;
	}

	.br-gallery-lightbox-image {
		max-width: calc(100vw - 16px);
		max-height: calc(100vh - 116px);
	}

	.br-gallery-lightbox-prev,
	.br-gallery-lightbox-next {
		width: 42px;
		height: 42px;
		top: 50% !important;
		bottom: auto !important;
		transform: translateY(-50%) !important;
	}

	.br-gallery-lightbox-prev {
		left: 8px !important;
	}

	.br-gallery-lightbox-next {
		right: 8px !important;
	}
}


/* v1.0.40 vacation status icon and all-screen color */
.br-profile-vacation {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--contrast-2);
}

.br-profile-vacation-icon {
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}


/* v1.0.41 full-width profile sections and offering pricing */

/* Main profile information now stacks as full-width sections. */
.br-profile-info-grid {
	grid-template-columns: minmax(0, 1fr);
}

.br-profile-info-section {
	grid-column: 1 / -1;
}

/* Public What We Offer layout */
.br-profile-offer-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 32px 48px;
	align-items: start;
}

.br-profile-offer-layout--two-column {
	grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr);
}

.br-profile-offer-list {
	display: grid;
	gap: 0;
}

.br-profile-offer-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(120px, auto);
	gap: 24px;
	align-items: baseline;
	padding: 11px 0;
	border-bottom: 1px solid var(--base);
}

.br-profile-offer-row:first-child {
	padding-top: 0;
}

.br-profile-offer-name {
	font-weight: 700;
}

.br-profile-offer-price {
	text-align: right;
	color: var(--contrast-2);
	font-weight: 700;
}

.br-profile-offer-additional h3 {
	margin: 0 0 10px;
}

.br-profile-offer-additional p {
	margin: 0;
}

/* Front-end profile editor pricing rows */
.br-offering-editor {
	display: grid;
	gap: 12px;
	margin: 8px 0 22px;
}

.br-offering-editor-row {
	display: grid;
	grid-template-columns: minmax(180px, 1fr) minmax(220px, 0.8fr);
	gap: 24px;
	align-items: center;
	padding: 12px 0;
	border-bottom: 1px solid var(--base);
}

.br-offering-editor-choice {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-weight: 700;
}

.br-offering-editor-price {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 10px;
	align-items: center;
}

.br-profile-editor .br-offering-editor-price input[type="text"] {
	min-height: 42px;
}

@media (max-width: 700px) {
	.br-profile-offer-layout--two-column {
		grid-template-columns: minmax(0, 1fr);
	}

	.br-profile-offer-row {
		grid-template-columns: minmax(0, 1fr) minmax(95px, auto);
		gap: 14px;
	}

	.br-offering-editor-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
	}

	.br-offering-editor-price {
		grid-template-columns: 52px minmax(0, 1fr);
		padding-left: 26px;
	}
}


/* v1.0.42 breed layout, section heading spacing, and save-link refinement */
.br-profile-breeds > h2,
.br-profile-offers > h2 {
	margin-bottom: 29px;
}

.br-profile-breed-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px 48px;
	align-items: start;
}

.br-profile-breed-grid--single {
	grid-template-columns: minmax(0, 1fr);
}

.br-profile-breed-grid .br-profile-breed-group {
	margin-top: 0;
}

.br-profile-breeding-project {
	margin-top: 32px;
}

@media (max-width: 700px) {
	.br-profile-breeds > h2,
	.br-profile-offers > h2 {
		margin-bottom: 29px;
	}

	.br-profile-breed-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
	}
}


/* v1.0.43 profile editor order and sticky save bar polish */
.br-profile-editor .br-save-bar {
	border: 0;
	border-radius: 25px;
	background: var(--contrast-3);
	color: var(--base-3);
}

.br-profile-editor .br-save-bar button[type="submit"] {
	background: var(--base-3);
	color: var(--contrast-2) !important;
	border: 0;
}

.br-profile-editor .br-save-bar button[type="submit"]:hover,
.br-profile-editor .br-save-bar button[type="submit"]:focus {
	background: var(--contrast);
	color: var(--base-3) !important;
}

.br-profile-editor .br-save-bar .br-notice,
.br-profile-editor .br-save-bar .br-success,
.br-profile-editor .br-save-bar .br-error {
	background: transparent !important;
	border: 0 !important;
	color: var(--base-3) !important;
	padding: 0;
}

.br-profile-editor .br-save-bar .br-notice a,
.br-profile-editor .br-save-bar .br-success a,
.br-profile-editor .br-save-bar .br-error a {
	color: var(--contrast-2) !important;
	font-weight: 700;
}

.br-profile-editor .br-save-bar .br-notice a:hover,
.br-profile-editor .br-save-bar .br-success a:hover,
.br-profile-editor .br-save-bar .br-error a:hover {
	color: var(--contrast) !important;
}


/* v1.0.44 save-link contrast, gallery captions, and mobile identity spacing */

/* Sticky save notice link needs stronger contrast against contrast-3. */
.br-profile-editor .br-save-bar .br-notice a,
.br-profile-editor .br-save-bar .br-success a,
.br-profile-editor .br-save-bar .br-error a {
	color: var(--contrast) !important;
}

.br-profile-editor .br-save-bar .br-notice a:hover,
.br-profile-editor .br-save-bar .br-success a:hover,
.br-profile-editor .br-save-bar .br-error a:hover {
	color: var(--base-3) !important;
	text-decoration: underline;
}

/* Gallery caption field in the profile editor. */
.br-gallery-editor-caption {
	display: grid !important;
	gap: 5px;
	margin: 8px 0;
	text-align: left;
}

.br-gallery-editor-caption span {
	font-weight: 700;
}

.br-profile-editor .br-gallery-editor-caption input[type="text"] {
	min-height: 40px;
	padding: 8px 10px;
}

.br-gallery-editor-remove {
	justify-content: center;
}

/* Lightbox caption appears only when a caption exists. */
.br-gallery-lightbox-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	max-height: 100%;
}

.br-gallery-lightbox-caption {
	box-sizing: border-box;
	max-width: min(92vw, 900px);
	margin-top: 14px;
	padding: 0 12px;
	color: var(--contrast);
	text-align: center;
	line-height: 1.5;
}

.br-gallery-lightbox-caption[hidden] {
	display: none !important;
}

/* Give the identity badge more breathing room on phones. */
@media (max-width: 700px) {
	.br-identity-confirmed {
		display: inline-block;
		margin: 8px 4px 4px 0;
	}
}


/* v1.0.45 vacation contact state */
.br-contact-vacation-note p {
	margin-bottom: 0;
}


/* v1.0.47 dashboard refinements */
.br-dashboard-actions--top {
	margin-top: 0;
	margin-bottom: 28px;
}

.br-my-reviews-note {
	padding-bottom: 20px;
	margin-bottom: 0;
}


/* v1.0.48 dashboard status summary */
.br-dashboard-settings-note {
	margin-top: -12px;
	margin-bottom: 50px;
}


/* v1.0.49 dashboard account/settings separation */
.br-dashboard .br-dashboard-settings-summary {
	margin-top: 18px;
	margin-bottom: 24px;
}

.br-dashboard-settings-note {
	margin-top: -8px;
}


/* v1.0.50 additional-link spacing and directory status polish */
.br-custom-link-row .br-remove-link {
	margin-top: 10px;
}

/* Keep directory-card statuses visually consistent with the public profile. */
.br-directory-card .br-profile-vacation {
	justify-content: center;
}

.br-directory-card .br-identity-confirmed {
	display: inline-block;
}


/* v1.0.51 directory card identity and species refinements */
.br-directory-card .br-card-person {
	font-weight: 700;
	padding-bottom: 7px;
}

/* Smaller than the species pills, without changing the public-profile badge. */
.br-directory-card .br-identity-confirmed {
	font-size: 0.78rem;
	line-height: 1.2;
	padding: 3px 7px;
	margin-left: 7px;
	vertical-align: middle;
}

/* Directory species pills use the softer contrast-3 background. */
.br-directory-card .br-card-species span {
	background: var(--contrast-3);
}


/* v1.0.60 profile expansion and SEO-supporting profile details */
.br-profile-updated {
	margin: 5px 0;
	font-size: 0.92rem;
}

.br-profile-breeding-goals {
	margin-top: 24px;
}

.br-profile-availability > h2,
.br-profile-buyer-options > h2 {
	margin-bottom: 22px;
}

.br-profile-availability-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}

.br-profile-availability-pills span {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 25px;
	background: var(--contrast-3);
	color: var(--base-3);
	font-weight: 700;
}

.br-profile-availability-info h3,
.br-profile-buyer-option h3 {
	margin-bottom: 8px;
}

.br-profile-buyer-option-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.br-profile-buyer-option {
	min-width: 0;
}

.br-profile-buyer-option p:last-child,
.br-profile-availability-info p:last-child {
	margin-bottom: 0;
}

.br-before-contact {
	margin: 50px 60px 0;
	padding: 28px 30px;
	border: 2px solid var(--contrast-2);
	border-radius: 25px;
}

.br-before-contact h2 {
	margin-top: 0;
}

.br-before-contact p:last-child {
	margin-bottom: 0;
}

.br-choice-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 24px;
	margin-bottom: 20px;
}

.br-choice-list label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

#br-delivery-details,
#br-shipping-details {
	margin-top: 8px;
}

#br-shipping-option[hidden],
#br-delivery-details[hidden],
#br-shipping-details[hidden] {
	display: none !important;
}

@media (max-width: 700px) {
	.br-profile-buyer-option-list {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}

	.br-before-contact {
		margin: 36px 20px 0;
		padding: 22px 20px;
	}
}


/* Keep Profile Last Updated in the intended header column on desktop. */
@media (min-width: 701px) {
	.br-profile-hero .br-profile-heading {
		grid-template-areas:
			"title actions"
			"person rating"
			"location ."
			"updated ."
			"vacation .";
	}

	.br-profile-hero .br-profile-updated {
		grid-area: updated;
	}
}


/* v1.0.61 public profile subheading consistency */
.br-public-profile .br-profile-info-section h3,
.br-public-profile .br-profile-offer-additional h3,
.br-public-profile .br-profile-availability-info h3,
.br-public-profile .br-profile-buyer-option h3,
.br-public-profile .br-profile-breeding-project h3,
.br-public-profile .br-profile-breeding-goals h3 {
	font-family: Merriweather, Georgia, serif;
	font-size: 1rem;
	line-height: 1.35;
	font-weight: 700;
	text-transform: uppercase;
	margin-top: 0;
	margin-bottom: 8px;
}

/* Breeder-only profile editor link beneath the review summary in the hero. */
.br-profile-edit-link {
	margin: 4px 0 0;
	font-size: 0.95rem;
}

.br-profile-edit-link a {
	color: var(--contrast) !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.br-profile-edit-link a:hover,
.br-profile-edit-link a:focus {
	color: var(--contrast-2) !important;
}

@media (min-width: 701px) {
	.br-profile-hero .br-profile-heading {
		grid-template-areas:
			"title actions"
			"person rating"
			"location edit"
			"updated ."
			"vacation .";
	}

	.br-profile-hero .br-profile-edit-link {
		grid-area: edit;
		justify-self: end;
		text-align: right;
	}
}


/* v1.0.62 species-aware pricing */
.br-offering-editor-group{padding:16px 0;border-bottom:1px solid var(--base)} .br-offering-editor-group:last-child{border-bottom:0}
.br-offering-editor-group>.br-offering-editor-choice{display:inline-flex;align-items:center;gap:7px;font-weight:700;margin-bottom:10px}
.br-offering-species-prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;padding-left:26px}
.br-offering-species-prices .br-offering-editor-price{display:grid;grid-template-columns:minmax(90px,auto) minmax(0,1fr);align-items:center;gap:10px}
.br-offering-species-prices [hidden],.br-offering-species-prices[hidden]{display:none!important}
.br-profile-offer-group+.br-profile-offer-group{margin-top:24px}.br-profile-offer-group>h3{margin-bottom:8px}.br-profile-offer-species-list .br-profile-offer-row{padding:5px 0}
@media(max-width:700px){.br-offering-species-prices{grid-template-columns:minmax(0,1fr);padding-left:0}.br-offering-species-prices .br-offering-editor-price{grid-template-columns:minmax(90px,.8fr) minmax(0,1.2fr)}}


/* v1.0.64 dashboard View Profile button */
.br-dashboard-view {
	background: var(--contrast-2);
	color: var(--base-3) !important;
}
.br-dashboard-view:hover,
.br-dashboard-view:focus {
	background: var(--contrast);
	color: var(--base-3) !important;
}


/* v1.0.66 per-species offering toggles */
.br-offering-species-prices .br-offering-editor-price {
	display: grid;
	grid-template-columns: minmax(140px, auto) minmax(0, 1fr);
	align-items: center;
	gap: 10px;
}

.br-offering-species-toggle {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-weight: 600;
}

.br-offering-species-price-input:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

@media (max-width: 700px) {
	.br-offering-species-prices .br-offering-editor-price {
		grid-template-columns: minmax(120px, 0.9fr) minmax(0, 1.1fr);
	}
}


/* v1.0.67 editor help text and public profile spacing */
.br-profile-editor small,
.br-profile-editor .description {
	font-size: 0.95rem;
	line-height: 1.55;
}

/* Keep the main public profile sections evenly spaced. */
.br-public-profile .br-profile-info-grid {
	gap: 80px;
}

.br-public-profile .br-profile-gallery-section,
.br-public-profile .br-reviews-section,
.br-public-profile .br-before-contact,
.br-public-profile .br-contact-section {
	margin-top: 80px;
}

@media (max-width: 700px) {
	.br-public-profile .br-profile-info-grid {
		gap: 80px;
	}
}


/* v1.0.68 visually consistent public profile section spacing
   The Breeding section could look farther from the next section because its
   final paragraph carried its own bottom margin. Normalize the content edge,
   then add a deliberate spacer so every section reads like that larger gap. */
.br-public-profile .br-profile-info-section {
	padding-bottom: 20px;
}

.br-public-profile .br-profile-info-section > p:last-child,
.br-public-profile .br-profile-info-section > div:last-child > p:last-child,
.br-public-profile .br-profile-info-section > div:last-child > div:last-child > p:last-child {
	margin-bottom: 0;
}


/* v1.0.69 align Before You Contact with the rest of the profile content */
.br-public-profile .br-before-contact {
	margin-left: 0;
	margin-right: 0;
}


/* v1.0.70 force Before You Contact to the full profile content width */
.br-public-profile .br-profile-body > .br-before-contact {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	margin-left: 0;
	margin-right: 0;
}


/* v1.0.71 mobile editor width, Policies spacing, and fulfillment cards */
.br-profile-editor .br-profile-policies textarea {
	margin-top: 12px;
}

.br-profile-editor .br-fulfillment-options {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin-top: 18px;
}

.br-profile-editor .br-fulfillment-card {
	min-width: 0;
	padding: 18px;
	border: 1px solid var(--base);
	border-radius: 18px;
	background: var(--base-3);
}

.br-profile-editor .br-fulfillment-choice {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0;
}

.br-profile-editor .br-fulfillment-choice input {
	margin-top: 4px;
	flex: 0 0 auto;
}

.br-profile-editor .br-fulfillment-card > div:not([hidden]),
.br-profile-editor .br-fulfillment-help {
	margin-top: 16px;
}

.br-profile-editor .br-fulfillment-card p:last-child {
	margin-bottom: 0;
}

@media (max-width: 700px) {
	/* The WordPress page already supplies the mobile page inset. Removing the
	   editor's second inset makes its fieldset edges line up with the public
	   breeder profile content and gives the form more usable width. */
	.br-profile-editor {
		padding-left: 0;
		padding-right: 0;
	}

	.br-profile-editor .br-fulfillment-options {
		grid-template-columns: minmax(0, 1fr);
		gap: 14px;
	}
}


/* v1.0.72 move Pickup / Delivery / Shipping cards to the public breeder profile */

/* The edit form returns to the simpler checkbox layout. */
.br-profile-editor .br-fulfillment-options,
.br-profile-editor .br-fulfillment-card,
.br-profile-editor .br-fulfillment-choice,
.br-profile-editor .br-fulfillment-help {
	all: revert;
}

/* Public profile: present each available fulfillment method as its own card. */
.br-public-profile .br-profile-buyer-option-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.br-public-profile .br-profile-buyer-option {
	min-width: 0;
	padding: 22px;
	border: 2px solid var(--contrast-2);
	border-radius: 25px;
	box-sizing: border-box;
}

.br-public-profile .br-profile-buyer-option h3 {
	margin-top: 0;
}

.br-public-profile .br-profile-buyer-option p:last-child {
	margin-bottom: 0;
}

@media (max-width: 700px) {
	.br-public-profile .br-profile-buyer-option-list {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}
}


/* v1.0.74 keep public review/contact panels consistent with the light site UI */
.br-public-profile .br-collapsible-form {
	background: var(--base-3);
	color: var(--contrast);
}

.br-public-profile .br-collapsible-form > summary {
	background: var(--base-3);
	color: var(--contrast);
}

.br-public-profile .br-collapsible-form[open] > summary {
	border-bottom: 1px solid var(--base);
}

.br-public-profile .br-collapsible-form-content {
	background: var(--base-3);
	color: var(--contrast);
}

.br-public-profile .br-review-form,
.br-public-profile .br-contact-form,
.br-public-profile .br-review-form input,
.br-public-profile .br-review-form select,
.br-public-profile .br-review-form textarea,
.br-public-profile .br-contact-form input,
.br-public-profile .br-contact-form select,
.br-public-profile .br-contact-form textarea {
}


/* v1.0.77 custom mobile select menus.
   Native Android/Samsung select popups follow the device theme and cannot be
   reliably recolored with site CSS. On phones, Registry selects use a
   Registry-styled picker instead. Desktop keeps the browser/theme default. */
.br-mobile-select-trigger,
.br-mobile-select-backdrop {
	display: none;
}

@media (max-width: 700px) {
	.br-mobile-selects-ready .br-mobile-native-select {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		padding: 0 !important;
		margin: 0 !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	.br-mobile-selects-ready .br-mobile-select-trigger {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		box-sizing: border-box;
		width: 100%;
		min-height: 46px;
		padding: 10px 14px;
		border: 1px solid var(--base);
		border-radius: 14px;
		background: var(--base-3);
		color: var(--contrast);
		font: inherit;
		text-align: left;
		cursor: pointer;
	}

	.br-mobile-select-trigger::after {
		content: "";
		width: 9px;
		height: 9px;
		flex: 0 0 9px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg) translateY(-2px);
	}

	.br-mobile-select-trigger:focus-visible {
		outline: 2px solid var(--contrast-3);
		outline-offset: 1px;
		border-color: var(--contrast-3);
	}

	.br-mobile-select-backdrop {
		position: fixed;
		inset: 0;
		z-index: 1000000;
		display: flex;
		align-items: flex-end;
		justify-content: center;
		padding: 12px;
		background: rgba(47, 45, 46, 0.45);
		box-sizing: border-box;
	}

	.br-mobile-select-panel {
		width: 100%;
		max-width: 560px;
		max-height: min(72vh, 650px);
		overflow: hidden;
		border: 2px solid var(--contrast-2);
		border-radius: 25px;
		background: var(--base-3);
		color: var(--contrast);
		box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
	}

	.br-mobile-select-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		padding: 18px 20px;
		border-bottom: 1px solid var(--base);
		background: var(--base-3);
	}

	.br-mobile-select-title {
		margin: 0;
		font-family: Merriweather, Georgia, serif;
		font-size: 1rem;
		font-weight: 700;
		color: var(--contrast);
	}

	.br-mobile-select-close {
		flex: 0 0 auto;
		width: 38px;
		height: 38px;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: var(--base-2);
		color: var(--contrast);
		font-size: 24px;
		line-height: 1;
		cursor: pointer;
	}

	.br-mobile-select-options {
		max-height: calc(min(72vh, 650px) - 76px);
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		background: var(--base-3);
	}

	.br-mobile-select-option {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		width: 100%;
		min-height: 58px;
		padding: 14px 20px;
		border: 0;
		border-bottom: 1px solid var(--base);
		border-radius: 0;
		background: var(--base-3);
		color: var(--contrast);
		font: inherit;
		text-align: left;
		cursor: pointer;
	}

	.br-mobile-select-option:last-child {
		border-bottom: 0;
	}

	.br-mobile-select-option:hover,
	.br-mobile-select-option:focus-visible {
		background: var(--base-2);
		color: var(--contrast);
	}

	.br-mobile-select-option[aria-selected="true"] {
		font-weight: 700;
	}

	.br-mobile-select-option[aria-selected="true"]::after {
		content: "✓";
		flex: 0 0 auto;
		color: var(--contrast-2);
		font-weight: 700;
	}

	.br-mobile-select-option:disabled {
		opacity: 0.5;
		cursor: not-allowed;
	}
}
