/* ==========================================================================
   BUSY BEES — THEME COMPONENT STYLES
   ==========================================================================

   CSS architecture
   - General browser rules and WordPress overrides come first.
   - Shared layout primitives and reusable components come before page sections.
   - Component variants stay with their base component.
   - Responsive rules stay with the component they modify.
   - Template-specific rules are kept separate from reusable site components.
   - Design tokens and global presets belong in theme.json.
   - Comments explain structure or non-obvious implementation details only.
   ========================================================================== */

/* ==========================================================================
   GLOBAL / GENERAL
   ========================================================================== */

html {
	scroll-behavior: smooth;
}

:where(*, *::before, *::after) {
	box-sizing: border-box;
}

img,
video,
iframe,
embed,
object {
	max-width: 100%;
}

img,
video {
	height: auto;
}

/* Focus States */
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

input,
select,
textarea {
	max-width: 100%;
	border-radius: var(--wp--preset--spacing--xs);
}

textarea {
	min-height: 140px;
	resize: vertical;
}


/* FAQ — Native Details / Summary */

details {
	margin-block: var(--wp--preset--spacing--sm);
	border: 1px solid color-mix(in srgb, currentColor 14%, transparent);
	border-radius: var(--wp--custom--border-radius--medium, 0.5rem);
	background: var(--wp--preset--color--background);
	overflow: hidden;
}

summary {
	position: relative;
	display: flex;
	align-items: center;
	padding-block: var(--wp--preset--spacing--xs);
	padding-inline: var(--wp--preset--spacing--md) var(--wp--preset--spacing--lg);
	cursor: pointer;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.4;
	list-style: none;
	transition:
		background-color 180ms ease,
		color 180ms ease;
}

summary::-webkit-details-marker {
	display: none;
}

summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 1.25rem;
	width: 0.55rem;
	height: 0.55rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-65%) rotate(45deg);
	transition: transform 180ms ease;
}

details[open] summary::after {
	transform: translateY(-35%) rotate(225deg);
}

summary:hover {
	background: color-mix(in srgb, currentColor 5%, transparent);
}

summary:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -2px;
}

details[open] summary {
	border-bottom: 1px solid color-mix(in srgb, currentColor 10%, transparent);
}

details > :not(summary) {
	padding-inline: 1.25rem;
}

details > p:first-of-type {
	margin-block-start: 1.15rem;
}

details > p:last-child {
	margin-block-end: 1.25rem;
}


@media (max-width: 600px) {

	summary {
		min-height: 3.25rem;
		padding: 0.9rem 2.75rem 0.9rem 1rem;
	}

	summary::after {
		right: 1rem;
	}

	details > :not(summary) {
		padding-inline: 1rem;
	}
}


/* ==========================================================================
   WORDPRESS CORE & BLOCK OVERRIDES
   ========================================================================== */

/* Page, Post & Query Titles */

.wp-block-post-title {
	font-size: clamp(1.6rem, 3vw, 2.25rem);
	line-height: 1.15;
	letter-spacing: -0.018em;
	margin-block-end: var(--wp--preset--spacing--lg);
}

.wp-block-query-title {
	font-size: clamp(1.7rem, 3.2vw, 2.4rem);
	line-height: 1.15;
	letter-spacing: -0.018em;
}


/* Entry Content */

.wp-block-post-content > * {
	margin-block-start: var(--wp--preset--spacing--md);
	margin-block-end: var(--wp--preset--spacing--md);
}

.wp-block-post-content > :first-child {
	margin-block-start: 0;
}

.wp-block-post-content > :last-child {
	margin-block-end: 0;
}


/* WordPress Alignment */

/*
 * Keep these explicit because the post-content spacing rules above apply
 * margins to every direct child.
 */

.wp-block-post-content > .alignnone {
	margin-inline-start: 0;
	margin-inline-end: 0;
}

.wp-block-post-content > .aligncenter {
	display: block;
	float: none;
	clear: both;
	margin-inline-start: auto;
	margin-inline-end: auto;
}

.wp-block-post-content > .alignleft {
	float: left;
	margin-inline-start: 0;
	margin-inline-end: 1.5rem;
	margin-block-end: 1rem;
}

.wp-block-post-content > .alignright {
	float: right;
	margin-inline-start: 1.5rem;
	margin-inline-end: 0;
	margin-block-end: 1rem;
}


/* WordPress Pagination */

.wp-block-query-pagination {
	margin-block-start: var(--wp--preset--spacing--xl);
}

.wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination .wp-block-query-pagination-current {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 2.5rem;
	min-height: 2.5rem;

	padding-inline: 0.65rem;

	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--spacing--xs);

	text-decoration: none;
}

.wp-block-query-pagination .wp-block-query-pagination-current {
	font-weight: 700;
}


/* WordPress Search */

.wp-block-search__inside-wrapper {
	gap: var(--wp--preset--spacing--sm);
}

.wp-block-search__input,
.wp-block-search__button {
	min-height: 46px;
}



/* ==========================================================================
   Image Block
   ========================================================================== */

.wp-block-image {
	display: block;
	max-width: 100%;
	margin-block: 0;
}

.wp-block-image img {
	display: block;
	max-width: 100%;
	height: auto;
}


/* Image Alignment */

.wp-block-image.alignnone {
	margin-inline-start: 0;
	margin-inline-end: 0;
}

.wp-block-image.aligncenter {
	float: none;
	clear: both;
	margin-inline: auto;
}

.wp-block-image.alignleft {
	float: left;
	margin-inline-start: 0;
	margin-inline-end: 1.5rem;
}

.wp-block-image.alignright {
	float: right;
	margin-inline-start: 1.5rem;
	margin-inline-end: 0;
}


/* Image / Link Wrapper */

.wp-block-image > a {
	display: inline-block;
	max-width: 100%;
}

.wp-block-image > a > img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;

	transition:
		opacity 160ms ease,
		transform 160ms ease;
}


/* Image Caption */

.wp-block-image figcaption {
	width: 100%;
	max-width: 100%;
	margin-block-start: var(--wp--preset--spacing--xs);
	font-size: 0.875rem;
	line-height: 1.5;
}


/* Linked Image */

.wp-block-image > a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}


/* Responsive Alignment */

@media (max-width: 767px) {

	.wp-block-post-content > .alignleft,
	.wp-block-post-content > .alignright,
	.wp-block-image.alignleft,
	.wp-block-image.alignright {
		float: none;
		margin-inline-start: 0;
		margin-inline-end: 0;
	}

	.wp-block-image.aligncenter {
		margin-inline: auto;
	}
}

/* WordPress Buttons */

.wp-block-button__link {
	text-decoration: none;
}

.wp-element-button,
.wp-block-button__link {
	cursor: pointer;
}


/* WordPress Navigation */

.wp-block-navigation a {
	text-decoration: none;
}

.wp-block-navigation-item__content {
	transition:
		color 160ms ease,
		background-color 160ms ease;
}


/* WordPress Separators */

.wp-block-separator {
	margin-block: var(--wp--preset--spacing--lg);
}


/* WordPress Tables */

.wp-block-table {
	overflow-x: auto;
}

.wp-block-table table {
	width: 100%;
}

.wp-block-table figcaption {
	margin-block-start: var(--wp--preset--spacing--xs);
}


/* WordPress Details */

.wp-block-details summary {
	cursor: pointer;
}


/* Screen Reader Text */

.screen-reader-text {
	position: absolute !important;

	width: 1px;
	height: 1px;

	padding: 0;
	margin: -1px;

	overflow: hidden;

	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);

	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus {
	z-index: 100000;

	width: auto;
	height: auto;

	padding: 0.75rem 1rem;
	margin: 0;

	overflow: visible;

	clip: auto;
	clip-path: none;

	white-space: normal;

	background: #fff;
	color: #000;

	box-shadow: 0 0 0 2px #000;
}


/* Legacy WordPress Classes */

.sticky,
.bypostauthor {
	display: block;
}


/* Reduced Motion */

@media (prefers-reduced-motion: reduce) {

	.wp-block-image > a > img {
		transition: none;
	}
}

/* ==========================================================================
   SHARED THEME FOUNDATION
   ========================================================================== */

/* Shared interaction */

.bxb-service-feature,
.bxb-faq,
.bxb-highlights-membership {
	transition:
		transform 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

a:focus-visible,
button:focus-visible,
.wp-element-button:focus-visible,
.bxb-card a:focus-visible,
.bxb-service-feature a:focus-visible,
.bxb-faq summary:focus-visible,
.bxb-hero a:focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

/* ==========================================================================
   FLOATING CTA BAR
   ========================================================================== */

/* CTA Bar */

.bxb-cta-bar {
	display: none;
}


/* Mobile CTA Bar */

@media (max-width: 781px) {

	.bxb-cta-bar {
		position: fixed;
		z-index: 9999;

		right: 0;
		bottom: 0;
		left: 0;

		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));

		width: 100%;
		max-width: none;

		margin: 0;
		padding: 0;

		background: var(--wp--preset--color--primary-dark);

		border-top: 1px solid rgba(0, 0, 0, 0.12);

		box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.12);

		padding-bottom: env(safe-area-inset-bottom);

		gap: 0;
	}


	/* --------------------
	   CTA Panels
	   -------------------- */

	.bxb-cta-bar-call,
	.bxb-cta-bar-schedule {
		box-sizing: border-box;

		display: flex;
		align-items: center;
		justify-content: center;

		min-width: 0;
		min-height: 68px;

		margin: 0 !important;
		padding: 0.65rem 1rem;

		gap: 0.65rem;

		-webkit-tap-highlight-color: transparent;

		text-decoration: none;
		cursor: pointer;
	}


	/* --------------------
	   Call
	   -------------------- */

	.bxb-cta-bar-call {
		background: var(--wp--preset--color--accent);
		color: var(--wp--preset--color--primary-strong);
	}

	.bxb-cta-bar-call:hover,
	.bxb-cta-bar-call:focus,
	.bxb-cta-bar-call:active {
		background: var(--wp--preset--color--accent);
		color: var(--wp--preset--color--primary-strong);
		text-decoration: none;
	}


	/* --------------------
	   Schedule Appointment
	   -------------------- */

	.bxb-cta-bar-schedule {
		background: var(--wp--preset--color--primary-strong);
		color: var(--wp--preset--color--surface);
	}

	.bxb-cta-bar-schedule:hover,
	.bxb-cta-bar-schedule:focus,
	.bxb-cta-bar-schedule:active {
		background: var(--wp--preset--color--primary-strong);
		color: var(--wp--preset--color--surface);
		text-decoration: none;
	}


	/* --------------------
	   SVG Icons
	   -------------------- */

	.bxb-cta-bar-icon {
		display: block;

		flex: 0 0 auto;

		width: 1.5rem;
		height: 1.5rem;

		fill: none;
		stroke: currentColor;
		stroke-width: 1.8;
		stroke-linecap: round;
		stroke-linejoin: round;
	}


	/* --------------------
	   Content
	   -------------------- */

	.bxb-cta-bar-content {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;

		min-width: 0;

		margin: 0 !important;

		gap: 0.15rem;
	}


	/* --------------------
	   Labels
	   -------------------- */

	.bxb-cta-bar-label {
		margin: 0 !important;

		font-size: 0.9rem;
		font-weight: 700;
		line-height: 1.2;
	}


	.bxb-cta-bar-label a {
		display: block;

		max-width: 100%;

		color: inherit;

		font-size: 0.95rem;
		font-weight: 700;
		line-height: 1.2;

		text-decoration: none;
	}


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

	.bxb-cta-bar-phone {
		display: block;

		color: inherit;

		font-size: 0.95rem;
		font-weight: 700;
		line-height: 1.2;

		text-decoration: none;
		white-space: nowrap;

		margin-block: 0 !important;
	}


	/* --------------------
	   Keyboard Focus
	   -------------------- */

	.bxb-cta-bar a:focus-visible {
		outline: 3px solid currentColor;
		outline-offset: -4px;
	}


	/* --------------------
	   Block Spacing
	   -------------------- */

	.bxb-cta-bar > .wp-block-group {
		margin-block-start: 0;
		margin-block-end: 0;
	}


	.bxb-cta-bar p {
		margin-block-start: 0;
		margin-block-end: 0;
	}

}


/* Small Screens */

@media (max-width: 380px) {

	.bxb-cta-bar-call,
	.bxb-cta-bar-schedule {
		min-height: 64px;

		padding-right: 0.6rem;
		padding-left: 0.6rem;

		gap: 0.45rem;
	}


	.bxb-cta-bar-icon {
		width: 1.35rem;
		height: 1.35rem;
	}


	.bxb-cta-bar-label,
	.bxb-cta-bar-phone,
	.bxb-cta-bar-label a {
		font-size: 0.85rem;
	}

}


/* Desktop CTA Bar */

@media (min-width: 782px) {

	.bxb-cta-bar {
		position: fixed;
		z-index: 9999;

		right: 1.5rem;
		bottom: 1.5rem;

		display: flex;
		flex-direction: column;

		width: auto;
		max-width: 320px;

		margin: 0;
		padding: 0;

		overflow: hidden;

		border-radius: 0.75rem;

		box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18);
		border: 1px solid #ffffff;

		gap: 0;
	}


	/* --------------------
	   CTA Panels
	   -------------------- */

	.bxb-cta-bar-call,
	.bxb-cta-bar-schedule {
		box-sizing: border-box;

		display: flex;
		align-items: center;
		justify-content: flex-start;

		width: 100%;
		min-width: 280px;
		min-height: 64px;

		margin: 0 !important;
		padding: 0.75rem 1.25rem;

		gap: 0.75rem;

		text-decoration: none;
		cursor: pointer;

		-webkit-tap-highlight-color: transparent;
	}


	/* --------------------
	   Call
	   -------------------- */

	.bxb-cta-bar-call {
		background: var(--wp--preset--color--accent);
		color: var(--wp--preset--color--primary-strong);
	}


	.bxb-cta-bar-call:hover,
	.bxb-cta-bar-call:focus,
	.bxb-cta-bar-call:active {
		color: var(--wp--preset--color--primary-strong);
		text-decoration: none;
	}


	/* --------------------
	   Schedule
	   -------------------- */

	.bxb-cta-bar-schedule {
		background: var(--wp--preset--color--primary-strong);
		color: var(--wp--preset--color--surface);
	}


	.bxb-cta-bar-schedule:hover,
	.bxb-cta-bar-schedule:focus,
	.bxb-cta-bar-schedule:active {
		color: var(--wp--preset--color--surface);
		text-decoration: none;
	}


	/* --------------------
	   Icons
	   -------------------- */

	.bxb-cta-bar-icon {
		display: block;

		flex: 0 0 auto;

		width: 1.5rem;
		height: 1.5rem;

		fill: none;
		stroke: currentColor;
		stroke-width: 1.8;
		stroke-linecap: round;
		stroke-linejoin: round;
	}


	/* --------------------
	   Content
	   -------------------- */

	.bxb-cta-bar-content {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;

		min-width: 0;

		margin: 0 !important;

		gap: 0.15rem;
	}


	/* --------------------
	   Labels
	   -------------------- */

	.bxb-cta-bar-label {
		margin: 0 !important;

		font-size: 0.85rem;
		font-weight: 700;
		line-height: 1.2;
	}


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

	.bxb-cta-bar-phone {
		display: block;

		color: inherit;

		font-size: 1rem;
		font-weight: 700;
		line-height: 1.2;

		white-space: nowrap;
	}

}


/* ==========================================================================
   REUSABLE LAYOUT
   ========================================================================== */

.bxb-grid {
	display: grid;
	width: 100%;
	min-width: 0;

	gap: var(--bb-grid-gap, var(--wp--preset--spacing--md));

	align-items: stretch;
}

.bxb-grid-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bxb-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bxb-grid-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bxb-grid-5 {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.bxb-grid-6 {
	grid-template-columns: repeat(6, minmax(0, 1fr));
}


/* Large tablet */

@media (max-width: 1024px) {

	.bxb-grid-6,
	.bxb-grid-5 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.bxb-grid-4,
	.bxb-grid-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}


/* Mobile */

@media (max-width: 600px) {

	.bxb-grid-6,
	.bxb-grid-5,
	.bxb-grid-4,
	.bxb-grid-3,
	.bxb-grid-2 {
		grid-template-columns: 1fr;
	}

}

/* ==========================================================================
   REUSABLE COMPONENTS — CARD SYSTEM
   ========================================================================== */

.bxb-card {
	display: flex;
	flex-direction: column;

	width: 100%;
	min-width: 0;
	height: 100%;

	box-sizing: border-box;
	overflow: hidden;

	border: 1px solid var(--wp--preset--color--border, currentColor);
	border-radius: var(--wp--preset--border-radius--md, 0.5rem);

	background: var(--wp--preset--color--surface, transparent);

	box-shadow: var(--wp--preset--shadow--sm);

	transition:
		transform 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.bxb-card > * {
	box-sizing: border-box;
}


/* Card interaction */

.bxb-card:hover {
	transform: translateY(-3px);

	border-color: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 45%,
		var(--wp--preset--color--border)
	);

	box-shadow: var(--wp--preset--shadow--card);
}


/* Card image */

.bxb-card-image {
	display: block;

	width: 100%;

	margin: 0 !important;

	overflow: hidden;

	aspect-ratio: 16 / 9;
}

.bxb-card-image a {
	display: block;

	width: 100%;
	height: 100%;
}

.bxb-card-image img {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;
	border-radius: 0;

	transition: transform 300ms ease;
}

.bxb-card:hover .bxb-card-image img {
	transform: scale(1.035);
}


/* Card content */

.bxb-card-content {
	display: flex;
	flex: 1;
	flex-direction: column;

	width: 100%;
	min-width: 0;

	padding: var(--wp--preset--spacing--lg);
}


/* Card heading */

.bxb-card-title {
	margin: 0 0 var(--wp--preset--spacing--xs);

	font-size: clamp(
		var(--wp--preset--font-size--lg),
		1.8vw,
		1.35rem
	);

	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.015em;
}

.bxb-card-title a {
	color: inherit;
	text-decoration: none;
}

.bxb-card-title a:hover,
.bxb-card-title a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 3px;
}


/* Card description */

.bxb-card-description {
	margin: 0 0 var(--wp--preset--spacing--md);

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.6;
}


/* Card emphasis / eyebrow */

.bxb-card-emphasis {
	margin: 0 0 var(--wp--preset--spacing--xs);

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.06em;

	text-transform: uppercase;
}


/* Card actions */

.bxb-card-actions {
	display: flex;
	flex-wrap: wrap;

	gap: var(--wp--preset--spacing--sm);

	margin-block-start: auto;
}

.bxb-card-link {
	margin-block: auto 0 !important;
}

.bxb-card-link a {
	font-weight: 700;
	text-decoration: none;
}

.bxb-card-link a:hover,
.bxb-card-link a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bxb-card-icon {
	display: flex;
	flex-direction: column;

	gap: var(--wp--preset--spacing--md);

	padding: var(--wp--preset--spacing--lg);

	border: 1px solid var(--wp--preset--color--border, currentColor);
	border-radius: var(--wp--preset--border-radius--md, 0.5rem);

	background: var(--wp--preset--color--surface, transparent);

	box-shadow: var(--wp--preset--shadow--sm);
}

.bxb-card-icon:hover {
	transform: translateY(-3px);

	border-color: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 40%,
		var(--wp--preset--color--border)
	);

	box-shadow: var(--wp--preset--shadow--card);
}

.bxb-card-icon-wrap {
	flex-shrink: 0;
}

.bxb-card-icon-wrap img,
.bxb-card-icon-wrap svg {
	display: block;

	width: 48px;
	height: 48px;
}

.bxb-card-icon-wrap img {
	object-fit: contain;
}

.bxb-card-icon .bxb-card-content {
	gap: var(--wp--preset--spacing--sm);

	padding: 0;
}

.bxb-card-icon .bxb-card-title,
.bxb-card-icon .bxb-card-description {
	margin: 0;
}

.bxb-card-accent {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: flex-start;

	width: 100%;

	text-align: center;

	border: 1px solid color-mix(
		in srgb,
		var(--wp--preset--color--foreground) 10%,
		transparent
	);

	border-radius: var(--wp--preset--border-radius--md, 0.5rem);

	background: var(--wp--preset--color--surface, transparent);

	box-shadow: var(--wp--preset--shadow--sm);
}

.bxb-card-accent:hover {
	transform: translateY(-4px);

	border-color: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 35%,
		var(--wp--preset--color--border)
	);

	box-shadow: var(--wp--preset--shadow--card);
}

.bxb-card-accent::before {
	content: "";

	position: absolute;
	top: 0;
	left: 50%;

	width: 44px;
	height: 3px;

	transform: translateX(-50%);

	border-radius: 0 0 999px 999px;

	background: var(--wp--preset--color--accent);
}

.bxb-card-accent .bxb-card-content {
	align-items: center;

	padding: var(--wp--preset--spacing--lg);

	text-align: center;
}

.bxb-card-accent .bxb-card-title {
	font-size: var(--wp--preset--font-size--lg);
	line-height: 1.15;
}


/* Accent icon */

.bxb-card-accent-icon {
	display: flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	width: 68px;
	height: 68px;

	margin: 0 0 var(--wp--preset--spacing--sm) !important;

	box-sizing: border-box;

	border: 2px solid color-mix(
		in srgb,
		var(--wp--preset--color--accent) 28%,
		transparent
	);

	border-radius: 50%;

	background: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 7%,
		transparent
	);

	color: var(--wp--preset--color--accent);

	line-height: 1;

	transition:
		transform 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease;
}

.bxb-card-accent-icon svg {
	display: block;

	width: 30px;
	height: 30px;

	fill: none;

	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.bxb-card-accent-icon i,
.bxb-card-accent-icon .dashicons {
	display: block;

	width: 30px;
	height: 30px;

	font-size: 30px;
	line-height: 30px;
}

.bxb-card-accent-icon img {
	display: block;

	width: 32px;
	height: 32px;

	object-fit: contain;
}

.bxb-card-accent:hover .bxb-card-accent-icon {
	transform: scale(1.05);

	background: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 12%,
		transparent
	);

	border-color: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 45%,
		transparent
	);
}

.bxb-card-quote {
	padding: var(--wp--preset--spacing--lg);

	border: 1px solid var(--wp--preset--color--border, currentColor);
	border-radius: var(--wp--preset--border-radius--md, 0.5rem);

	background: var(--wp--preset--color--surface, transparent);

	box-shadow: var(--wp--preset--shadow--sm);
}

.bxb-card-quote:hover {
	transform: translateY(-3px);

	border-color: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 40%,
		var(--wp--preset--color--border)
	);

	box-shadow: var(--wp--preset--shadow--card);
}

.bxb-card-rating {
	margin: 0 0 var(--wp--preset--spacing--sm);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1;
	letter-spacing: 0.08em;
}

.bxb-card-quote-text {
	margin: 0 0 var(--wp--preset--spacing--lg);

	font-size: var(--wp--preset--font-size--md);
	line-height: 1.6;
}

.bxb-card-author {
	display: flex;
	align-items: center;

	gap: var(--wp--preset--spacing--sm);

	margin-block-start: auto;
}

.bxb-card-author-image {
	flex-shrink: 0;
	margin: 0;
}

.bxb-card-author-image img {
	display: block;

	width: 48px;
	height: 48px;

	border-radius: 50%;

	object-fit: cover;
}

.bxb-card-author-content {
	min-width: 0;
}

.bxb-card-author-name,
.bxb-card-author-meta {
	margin: 0;
}

.bxb-card-author-name {
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	line-height: 1.4;
}

.bxb-card-author-meta {
	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.4;
}

/* ==========================================================================
   REUSABLE COMPONENTS — SECTION STRUCTURE
   ========================================================================== */

.bxb-section {
	padding-block: var(--wp--preset--spacing--xl);
}

.bxb-eyebrow {
	margin-block: 0 var(--wp--preset--spacing--xs) !important;

	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.08em;

	color: var(--wp--preset--color--muted);
	text-transform: uppercase;
}

.bxb-section-title {
	max-width: 720px;

	margin: 0 auto var(--wp--preset--spacing--sm) !important;

	font-size: var(--wp--preset--font-size--xl);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.015em;

	text-wrap: balance;
}

.bxb-section-description {
	max-width: 720px;

	margin-block: 0 var(--wp--preset--spacing--lg) !important;
	margin-inline: auto !important;

	color: var(--wp--preset--color--muted);

	line-height: 1.65;
}

/* ==========================================================================
   SITE HEADER
   ========================================================================== */

.bxb-header {
	position: relative;
	z-index: 20;
	padding-block: var(--wp--preset--spacing--sm);
}

.bxb-header-inner {
	min-height: 78px;

	gap: var(--wp--preset--spacing--lg);

	align-items: center;
}

.bxb-header-logo {
	flex: 0 0 auto;
	line-height: 0;
}

.bxb-header-logo img {
	display: block;

	width: auto;
	max-width: 240px;
	height: auto;
	border-radius: 0;
}

.bxb-header-navigation,
.bxb-main-navigation {
	flex: 1 1 auto;
	min-width: 0;
}

.bxb-header-navigation .wp-block-navigation__container,
.bxb-main-navigation .wp-block-navigation__container {
	justify-content: flex-end;

	gap: var(--wp--preset--spacing--xs);
}

.bxb-header-navigation .wp-block-navigation-item__content,
.bxb-main-navigation .wp-block-navigation-item__content {
	padding: 0.5rem 0.65rem;

	border-radius: var(--wp--preset--border-radius--sm);

	font-weight: 600;
	line-height: 1.3;

	text-decoration: none;

	transition:
		color 160ms ease,
		background-color 160ms ease;
}

.bxb-header-navigation .wp-block-navigation-item__content:hover,
.bxb-header-navigation .wp-block-navigation-item__content:focus-visible,
.bxb-main-navigation .wp-block-navigation-item__content:hover,
.bxb-main-navigation .wp-block-navigation-item__content:focus-visible {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--primary);
}


/* Header contact */

.bxb-header-contact {
	flex: 0 0 auto;

	min-width: 205px;

	align-items: flex-end !important;
	justify-content: center !important;

	gap: 0.25rem !important;

	padding-inline-start: var(--wp--preset--spacing--lg);

	border-inline-start: 1px solid var(--wp--preset--color--border);

	text-align: right;
}

.bxb-phone-label,
.bxb-header-phone,
.bxb-header-location {
	margin: 0 !important;
}

.bxb-phone-label {
	margin-block-end: 0.25rem !important;

	color: var(--wp--preset--color--primary);

	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 0.07em;

	text-transform: uppercase;
}


/* Phone CTA */

.bxb-header-phone {
	line-height: 1;
}

.bxb-header-phone a {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	gap: 0.5rem;

	min-height: 46px;

	padding: 0.5rem 2rem;

	border: 2px solid var(--wp--preset--color--accent);
	border-radius: var(--wp--preset--border-radius--sm);

	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--foreground);

	font-size: var(--wp--preset--font-size--background);
	font-weight: 700;
	line-height: 1.15;

	text-decoration: none;
	white-space: nowrap;

	box-shadow: var(--wp--preset--shadow--sm);

	transition:
		background-color 160ms ease,
		border-color 160ms ease,
		color 160ms ease,
		transform 160ms ease,
		box-shadow 160ms ease;
}

/* Automatically add phone icon */
.bxb-header-phone.bxb-with-icon a::before {
	content: "";
	width: 1.15em;
	height: 1.15em;
	flex: 0 0 auto;
	background: url("../icons/phone.svg") center / contain no-repeat;
}

.bxb-header-phone .bxb-icon {
	display: block;

	flex: 0 0 auto;

	width: 1.15em;
	height: 1.15em;

	margin: 0;

	color: currentColor;
}

.bxb-header-phone .bxb-icon * {
	fill: currentColor;
	stroke: currentColor;
}

.bxb-header-phone a:hover,
.bxb-header-phone a:focus-visible {
	transform: translateY(-2px);

	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--primary-strong);
	color: var(--wp--preset--color--background);

	box-shadow: var(--wp--preset--shadow--md);
}

.bxb-header-location {
	margin-block-start: 0.3rem !important;

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	line-height: 1.15;

	white-space: nowrap;
}


/* Header — large tablet */

@media (max-width: 1024px) {

	.bxb-header-inner {
		gap: var(--wp--preset--spacing--md);
	}

	.bxb-header-navigation .wp-block-navigation-item__content,
	.bxb-main-navigation .wp-block-navigation-item__content {
		padding-inline: 0.45rem;
	}

	.bxb-header-contact {
		min-width: 190px;

		padding-inline-start: var(--wp--preset--spacing--md);
	}

}


/* Header — WordPress mobile breakpoint */

@media (max-width: 781px) {

	.bxb-header-inner {
		min-height: 0;

		flex-wrap: wrap;
		gap: 0;
	}

	.bxb-header-logo {
		margin-inline-end: auto;
	}

	.bxb-header-logo img {
		max-width: 200px;
	}

	.bxb-header-navigation,
	.bxb-main-navigation {
		flex: 0 0 auto;

		margin-inline-start: auto;
	}

	.bxb-header-contact {
		order: 3;

		flex: 0 0 100%;

		width: 100%;
		min-width: 0;

		align-items: center !important;
		justify-content: center !important;

		margin-block-start: var(--wp--preset--spacing--lg);

		padding-block-start: var(--wp--preset--spacing--lg);
		padding-inline-start: 0;

		border-inline-start: 0;

		text-align: center;
	}

	.bxb-phone-label,
	.bxb-header-location {
		display: none;
	}

	.bxb-header-phone {
		width: 100%;
	}

	.bxb-header-phone a {
		display: flex;

		width: 100%;
		min-height: 44px;

		box-sizing: border-box;

		padding-inline: 1rem;

		font-size: var(--wp--preset--font-size--lg);
	}

	.bxb-header-navigation .wp-block-navigation__responsive-container-open,
	.bxb-main-navigation .wp-block-navigation__responsive-container-open {
		display: flex;
		align-items: center;
		justify-content: center;

		width: 44px;
		height: 44px;

		padding: 0;

		border: 1px solid var(--wp--preset--color--border);
		border-radius: var(--wp--preset--border-radius--sm);

		background: var(--wp--preset--color--background);

		transition:
			color 160ms ease,
			border-color 160ms ease,
			background-color 160ms ease;
	}

	.bxb-header-navigation .wp-block-navigation__responsive-container-open:hover,
	.bxb-header-navigation .wp-block-navigation__responsive-container-open:focus-visible,
	.bxb-main-navigation .wp-block-navigation__responsive-container-open:hover,
	.bxb-main-navigation .wp-block-navigation__responsive-container-open:focus-visible {
		border-color: var(--wp--preset--color--primary);

		background: var(--wp--preset--color--surface);
		color: var(--wp--preset--color--primary);
	}

}


/* Header — small phones */

@media (max-width: 480px) {

	.bxb-header-logo img {
		max-width: 200px;
	}

	.bxb-main-navigation .wp-block-navigation__responsive-container-open,
	.bxb-header-navigation .wp-block-navigation__responsive-container-open {
		width: 42px;
		height: 42px;
	}

	.bxb-header-phone a {
		font-size: var(--wp--preset--font-size--background);
	}

}


/* ==========================================================================
   SITE NAVIGATION — MOBILE OVERLAY
   ========================================================================== */

.site-header .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed;
	inset: 0;
	z-index: 9999;

	display: flex;
	align-items: stretch;
	justify-content: center;

	width: 100vw;
	max-width: none;
	height: 100dvh;

	margin: 0;
	padding:
		calc(var(--wp--preset--spacing--xl) + 1rem)
		var(--wp--preset--spacing--lg)
		var(--wp--preset--spacing--lg);

	box-sizing: border-box;

	overflow-y: auto;
	overscroll-behavior: contain;

	background: var(--wp--preset--color--background);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	display: flex;
	flex: 1 1 auto;

	align-items: stretch;
	justify-content: center;

	width: 100%;
	max-width: none;
	height: 100%;

	margin: 0;
	padding: 0;

	box-sizing: border-box;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;

	align-items: stretch;
	justify-content: center;

	width: 100%;
	max-width: none;

	margin: 0;
	padding: 0;

	box-sizing: border-box;

	gap: var(--wp--preset--spacing--md);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;

	align-items: stretch;
	justify-content: center;

	width: 100%;
	max-width: none;

	margin: 0;
	padding: 0;

	box-sizing: border-box;

	gap: 0;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;

	align-items: stretch;

	width: 100%;
	max-width: none;

	margin: 0;

	border-block-end: 1px solid color-mix(
		in srgb,
		var(--wp--preset--color--foreground) 9%,
		transparent
	);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:first-child {
	border-block-start: 1px solid color-mix(
		in srgb,
		var(--wp--preset--color--foreground) 9%,
		transparent
	);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: block;

	width: 100%;
	max-width: none;

	padding: 0.95rem 0;

	box-sizing: border-box;

	color: var(--wp--preset--color--foreground);

	font-size: var(--wp--preset--font-size--lg);
	font-weight: 600;
	line-height: 1.3;

	text-align: center;
	text-decoration: none;

	transition:
		color 160ms ease,
		background-color 160ms ease;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > .wp-block-navigation-item__content:focus-visible {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--primary);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	display: flex;
	flex-direction: column;
	align-items: stretch;

	width: 100%;
	max-width: none;

	margin: 0;
	padding: 0 0 var(--wp--preset--spacing--sm);

	gap: 0;

	background: transparent;
	box-shadow: none;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
	width: 100%;
	border: 0;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block;

	width: 100%;

	padding: 0.55rem 0;

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--background);
	font-weight: 500;

	text-align: center;
	text-decoration: none;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 10;

	display: flex;

	align-items: center;
	justify-content: center;

	width: 44px;
	height: 44px;

	margin: 0;
	padding: 0;

	border: 0;

	background: transparent;
}


/* ==========================================================================
   UTILITY BARS
   ========================================================================== */

/* Top bar */

.bxb-top-bar {
	padding-block: var(--wp--preset--spacing--xs);
}

.bxb-top-bar > p {
	margin-block: 0;
}


/* Information bar / utility bar */

.bxb-utility-bar {
	padding-block: var(--wp--preset--spacing--sm);
}

.bxb-utility-bar-inner {
	gap: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--lg);
}

.bxb-utility-bar p {
	margin: 0;
}


/**
 * Phone icon for phone buttons.
 */
.bxb-phone-icon {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.bxb-phone-icon::before {
	content: "";
	width: 1.25rem;
	height: 1.25rem;
	flex: 0 0 1.25rem;
	background: url("../icons/phone.svg") center / contain no-repeat;
}

.bxb-phone-icon a {
	display: inline-flex;
	align-items: center;
}

 /* Notice bar */

.bxb-notice-bar {
	margin-block: 0;
	padding-block: var(--wp--preset--spacing--xs);
}

.bxb-notice-bar p {
	margin: 0;
}


/* ==========================================================================
   HERO COMPONENTS
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Common Hero
   -------------------------------------------------------------------------- */

.bxb-hero {
	position: relative;

	margin-block: 0;

	padding-block: var(--wp--preset--spacing--xxl);

	overflow: hidden;
}

.bxb-hero-content {
	width: 100%;
	max-width: 780px;

	margin-inline: auto !important;

	text-align: center;
}

.bxb-hero .bxb-eyebrow {
	margin-block: 0 var(--wp--preset--spacing--sm) !important;

	color: var(--wp--preset--color--primary);

	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.12em;

	text-transform: uppercase;
}

.bxb-hero-title {
	max-width: 780px;

	margin-block: var(--wp--preset--spacing--lg);
	margin-inline: 0 !important;

	font-size: var(--wp--preset--font-size--xxl);
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: -0.03em;

	text-wrap: balance;
}

.bxb-hero-subtitle {
	max-width: 720px;

	margin: var(--wp--preset--spacing--sm) 0 0 !important;

	font-size: var(--wp--preset--font-size--lg);
	font-weight: 600;
	line-height: 1.35;
}

.bxb-hero-description {
	max-width: 680px;

	margin: var(--wp--preset--spacing--md) 0 0 !important;

	font-size: var(--wp--preset--font-size--md);
	line-height: 1.7;
}

.bxb-hero-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;

	gap: var(--wp--preset--spacing--sm);

	margin-block-start: var(--wp--preset--spacing--lg) !important;
}


/* Hero Buttons */

.bxb-hero-buttons .wp-block-button__link,
.bxb-cta .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 50px;

	padding: 0.8rem 1.45rem;

	border-radius: var(--wp--preset--border-radius--md);

	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	line-height: 1.15;

	text-decoration: none;

	transition:
		transform 180ms ease,
		box-shadow 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease,
		color 180ms ease;
}

.bxb-button-primary .wp-block-button__link {
	border: 1px solid var(--wp--preset--color--accent);

	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--foreground);

	box-shadow: var(--wp--preset--shadow--sm);
}

.bxb-button-primary .wp-block-button__link:hover,
.bxb-button-primary .wp-block-button__link:focus-visible {
	transform: translateY(-2px);

	background: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 88%,
		white
	);

	box-shadow: var(--wp--preset--shadow--card);
}

.bxb-button-secondary .wp-block-button__link {
	border: 1px solid var(--wp--preset--color--foreground);

	background: transparent;
	color: var(--wp--preset--color--foreground);

	box-shadow: none;
}

.bxb-button-secondary .wp-block-button__link:hover,
.bxb-button-secondary .wp-block-button__link:focus-visible {
	transform: translateY(-2px);

	background: var(--wp--preset--color--surface);
	border-color: var(--wp--preset--color--primary);

	box-shadow: var(--wp--preset--shadow--sm);
}


/* Hero Supporting Content */

.bxb-hero-highlight {
	margin-block: var(--wp--preset--spacing--sm) 0 !important;
	margin-inline: 0 !important;

	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.06em;

	text-transform: uppercase;
}


/* Hero Trust Indicators */

.bxb-hero-trust {
	display: flex;
	flex-wrap: wrap;
	align-items: center;

	gap: var(--wp--preset--spacing--xs);

	margin-block-start: var(--wp--preset--spacing--md) !important;
}

.bxb-hero-trust .bxb-trust-item {
	display: inline-flex;
	align-items: center;

	min-height: 38px;

	margin: 0 !important;
	padding: 0.25rem 0.7rem;

	border: 1px solid rgba(255, 255, 255, 0.78);
	border-radius: var(--wp--preset--border-radius--md);

	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--primary);

	box-shadow: var(--wp--preset--shadow--sm);

	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.15;
}

.bxb-hero-trust .bxb-trust-item::before {
	content: "";

	display: inline-block;
	flex: 0 0 auto;

	width: 1.25rem;
	height: 1.25rem;

	margin-inline-end: 0.4rem;

	background-color: var(--wp--preset--color--accent);

	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;

	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
}

.bxb-hero-trust .bxb-trust-licensed::before {
	mask-image: url("../icons/shield.svg");
	-webkit-mask-image: url("../icons/shield.svg");
}

.bxb-hero-trust .bxb-trust-established::before {
	mask-image: url("../icons/calendar.svg");
	-webkit-mask-image: url("../icons/calendar.svg");
}

.bxb-hero-trust .bxb-trust-local::before {
	mask-image: url("../icons/home-1.svg");
	-webkit-mask-image: url("../icons/home-1.svg");
}

.bxb-hero-trust .bxb-trust-rated::before {
	mask-image: url("../icons/star.svg");
	-webkit-mask-image: url("../icons/star.svg");
}

.bxb-hero-trust .bxb-trust-item strong {
	font-weight: 700;
}


/* Common Hero — Responsive */

@media (max-width: 900px) {

	.bxb-hero {
		padding-block: var(--wp--preset--spacing--xl);
	}

}

@media (max-width: 781px) {

	.bxb-hero-content {
		max-width: 100%;
	}

	.bxb-hero-buttons {
		flex-direction: column;
		align-items: stretch;
	}

	.bxb-hero-buttons .wp-block-button,
	.bxb-hero-buttons .wp-block-button__link {
		width: 100%;
	}

	.bxb-hero-buttons .wp-block-button__link {
		text-align: center;
	}

	.bxb-hero-trust {
		display: flex !important;
		flex-wrap: wrap;
		gap: var(--wp--preset--spacing--xs);
	}

	.bxb-hero-trust .bxb-trust-item,
	.bxb-hero-trust p {
		flex: 1 1 auto;
	}

}

@media (max-width: 600px) {

	.bxb-hero {
		padding-block: var(--wp--preset--spacing--xl);
	}

	.bxb-hero-buttons {
		gap: var(--wp--preset--spacing--xs);

		margin-block-start: var(--wp--preset--spacing--md) !important;
	}

	.bxb-hero-highlight {
		margin-block-start: var(--wp--preset--spacing--md) !important;

		line-height: 1.7;
	}

	.bxb-hero-trust {
		display: grid !important;

		grid-template-columns: repeat(2, minmax(0, 1fr));

		gap: var(--wp--preset--spacing--xs);

		margin-block-start: var(--wp--preset--spacing--md) !important;
	}

	.bxb-hero-trust .bxb-trust-item,
	.bxb-hero-trust p {
		width: auto;
		min-width: 0;

		padding: 0.5rem 0.55rem;
	}

	.bxb-hero-trust .bxb-trust-item::before,
	.bxb-hero-trust p::before {
		width: 1.2rem;
		height: 1.2rem;

		margin-inline-end: 0.35rem;
	}

}

@media (max-width: 420px) {

	.bxb-hero-trust {
		grid-template-columns: 1fr;
	}

}


/* --------------------------------------------------------------------------
   2. Overlay Hero
   Hero section with background image and layered overlay.
   -------------------------------------------------------------------------- */

.bxb-hero-overlay {
	position: relative;

	min-height: 560px;

	overflow: hidden;
}

.bxb-hero-overlay .wp-block-cover__background {
	background:
		linear-gradient(
			90deg,
			rgba(0, 0, 0, 0.88) 0%,
			rgba(0, 0, 0, 0.82) 24%,
			rgba(0, 0, 0, 0.68) 48%,
			rgba(0, 0, 0, 0.40) 70%,
			rgba(0, 0, 0, 0.12) 100%
		) !important;

	opacity: 1 !important;
}

.bxb-hero-overlay .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;

	width: 100%;

	margin-inline: auto;
}

.bxb-hero-overlay::after {
	content: "";

	position: absolute;
	z-index: 1;

	inset: auto 0 0;

	height: 42%;

	background:
		linear-gradient(
			180deg,
			rgba(0, 0, 0, 0) 0%,
			rgba(0, 0, 0, 0.22) 48%,
			rgba(0, 0, 0, 0.62) 100%
		);

	pointer-events: none;
}


/* Overlay Content */

.bxb-hero-overlay-content {
	width: 100%;
	max-width: var(--wp--style--global--content-size);

	margin-inline: auto !important;

	padding: var(--wp--preset--spacing--xl) 0;

	text-align: left;
}

.bxb-hero-overlay .bxb-eyebrow {
	margin-block: 0 var(--wp--preset--spacing--sm) !important;

	color: var(--wp--preset--color--accent);

	text-shadow:
		0 1px 2px rgba(0, 0, 0, 0.85),
		0 2px 5px rgba(0, 0, 0, 0.5);
}

.bxb-hero-overlay .bxb-hero-title {
	max-width: 680px;

	margin-block: 0 var(--wp--preset--spacing--sm) !important;

	color: #fff;

	font-size: var(--wp--preset--font-size--xxl);
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: -0.03em;

	text-shadow:
		0 1px 2px rgba(0, 0, 0, 0.95),
		0 3px 8px rgba(0, 0, 0, 0.75);

	text-wrap: balance;
}

.bxb-hero-overlay .bxb-hero-subtitle {
	max-width: 650px;

	margin-block: 0 var(--wp--preset--spacing--sm) !important;

	color: #fff;

	font-size: var(--wp--preset--font-size--lg);
	font-weight: 700;
	line-height: 1.35;

	text-shadow:
		0 1px 2px rgba(0, 0, 0, 0.95),
		0 2px 6px rgba(0, 0, 0, 0.7);
}

.bxb-hero-overlay .bxb-hero-description {
	max-width: 640px;

	margin: 0 !important;

	color: rgba(255, 255, 255, 0.95);

	font-size: var(--wp--preset--font-size--md);
	font-weight: 500;
	line-height: 1.6;

	text-shadow:
		0 1px 2px rgba(0, 0, 0, 0.95),
		0 2px 6px rgba(0, 0, 0, 0.72);
}


/* Overlay Buttons */

.bxb-hero-overlay .bxb-hero-buttons {
	justify-content: flex-start;

	margin-block-start: var(--wp--preset--spacing--lg) !important;
}

.bxb-hero-overlay .bxb-button-primary .wp-block-button__link,
.bxb-hero-overlay .bxb-button-secondary .wp-block-button__link {
	min-height: 52px;
}

.bxb-hero-overlay .bxb-button-secondary .wp-block-button__link {
	background: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--primary);

	box-shadow: var(--wp--preset--shadow--sm);
}

.bxb-hero-overlay .bxb-button-secondary .wp-block-button__link:hover,
.bxb-hero-overlay .bxb-button-secondary .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground);

	box-shadow: var(--wp--preset--shadow--card);
}


/* Overlay Supporting Content */

.bxb-hero-overlay .bxb-hero-highlight {
	color: rgba(255, 255, 255, 0.88);

	text-shadow:
		0 1px 2px rgba(0, 0, 0, 0.9),
		0 2px 5px rgba(0, 0, 0, 0.6);
}


/* Overlay Hero — Responsive */

@media (max-width: 900px) {

	.bxb-hero-overlay {
		min-height: 520px;
	}

	.bxb-hero-overlay-content {
		padding-block: var(--wp--preset--spacing--lg);
	}

	.bxb-hero-overlay .bxb-hero-title {
		max-width: 620px;
	}

	.bxb-hero-overlay .bxb-hero-description {
		max-width: 600px;
	}

	.bxb-hero-overlay::after {
		height: 48%;
	}

}

@media (max-width: 781px) {

	.bxb-hero-overlay-content {
		padding-block: var(--wp--preset--spacing--lg);
	}

	.bxb-hero-overlay .bxb-hero-title,
	.bxb-hero-overlay .bxb-hero-description {
		max-width: 100%;
	}

}

@media (max-width: 600px) {

	.bxb-hero-overlay {
		min-height: 0;
	}

	.bxb-hero-overlay .wp-block-cover__background {
		background:
			linear-gradient(
				180deg,
				rgba(0, 0, 0, 0.62) 0%,
				rgba(0, 0, 0, 0.72) 38%,
				rgba(0, 0, 0, 0.82) 70%,
				rgba(0, 0, 0, 0.88) 100%
			) !important;
	}

	.bxb-hero-overlay::after {
		height: 38%;

		background:
			linear-gradient(
				180deg,
				rgba(0, 0, 0, 0) 0%,
				rgba(0, 0, 0, 0.24) 50%,
				rgba(0, 0, 0, 0.55) 100%
			);
	}

	.bxb-hero-overlay-content {
		padding-block: var(--wp--preset--spacing--lg);
	}

	.bxb-hero-overlay .bxb-eyebrow {
		margin-block-end: var(--wp--preset--spacing--xs) !important;
	}

	.bxb-hero-overlay .bxb-hero-subtitle {
		font-size: var(--wp--preset--font-size--md);
	}

	.bxb-hero-overlay .bxb-hero-description {
		font-size: var(--wp--preset--font-size--sm);
		line-height: 1.6;
	}

	.bxb-hero-overlay .bxb-hero-trust {
		display: grid !important;

		grid-template-columns: repeat(2, minmax(0, 1fr));

		gap: var(--wp--preset--spacing--xs);

		margin-block-start: var(--wp--preset--spacing--md) !important;
	}

	.bxb-hero-overlay .bxb-hero-trust p {
		width: auto;
		min-width: 0;

		padding: 0.5rem 0.55rem;
	}

	.bxb-hero-overlay .bxb-hero-trust p::before {
		width: 1.2rem;
		height: 1.2rem;

		margin-inline-end: 0.35rem;
	}

}

@media (max-width: 420px) {

	.bxb-hero-overlay .bxb-hero-trust {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bxb-hero-overlay .bxb-hero-title {
		letter-spacing: -0.02em;
	}

}


/* --------------------------------------------------------------------------
   3. Single Hero
   Full-width hero with constrained inner content.
   -------------------------------------------------------------------------- */

.bxb-single-hero {
	position: relative;

	width: 100vw;
	max-width: 100vw;

	margin-block: 0 var(--wp--preset--spacing--xl);
	margin-inline: calc(50% - 50vw);

	padding-block: var(--wp--preset--spacing--xl);

	background:
		linear-gradient(
			45deg,
			color-mix(
				in srgb,
				var(--wp--preset--color--primary) 5%,
				var(--wp--preset--color--surface)
			),
			var(--wp--preset--color--surface)
		);

	overflow: hidden;
}


/* Single Hero Inner */

.bxb-single-hero .bxb-hero-inner {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;

	width: 100%;
	max-width: var(--wp--style--global--content-size);

	margin-inline: auto;

	gap: clamp(2rem, 5vw, 5rem);
}


/* Single Hero Content */

.bxb-single-hero .bxb-hero-content {
	flex: 1 1 55%;
	min-width: 0;
	width: 100%;
	max-width: none;

	margin: 0;
	padding: 0;

	text-align: left;
	justify-items: start;
	align-items: flex-start;
}

.bxb-single-hero .bxb-eyebrow {
	max-width: 640px;

	margin-block: 0 var(--wp--preset--spacing--sm);
	margin-inline: 0 !important;

	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.3;

	text-align: left;
	text-transform: uppercase;
}

.bxb-single-hero .bxb-hero-title {
	max-width: 640px;

	margin-block: 0 var(--wp--preset--spacing--lg) !important;
	margin-inline: 0 !important;

	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.08;

	text-align: left;
	text-wrap: balance;
}


/* Single Hero Buttons */

.bxb-single-hero .bxb-hero-buttons {
	width: 100%;

	margin-block-start: var(--wp--preset--spacing--lg);

	gap: 0.7rem;

	justify-content: flex-start !important;
	align-items: center;
}

.bxb-single-hero .bxb-hero-buttons > .wp-block-button {
	margin-inline: 0;
}


/* Single Hero Highlight */

.bxb-single-hero .bxb-hero-highlight {
	max-width: 640px;

	margin-block: var(--wp--preset--spacing--md);
	margin-inline: 0 !important;

	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.5;

	text-align: left;
}


/* Single Hero Trust */

.bxb-single-hero .bxb-hero-trust {
	width: 100%;

	margin-block-start: var(--wp--preset--spacing--lg);

	gap: 0.4rem 1.25rem;

	justify-content: flex-start !important;
	align-items: center;
}

.bxb-single-hero .bxb-hero-trust p {
	margin: 0;

	font-size: 0.85rem;
	line-height: 1.4;
}


/* Single Hero Featured Image */

.bxb-single-hero .bxb-hero-featured-image {
	flex: 0 1 44%;

	width: 100%;
	max-width: 520px;

	margin: 0;

	border-radius: var(--wp--preset--spacing--sm);

	overflow: hidden;

	box-shadow:
		0 12px 35px
		color-mix(
			in srgb,
			var(--wp--preset--color--foreground) 12%,
			transparent
		);
}

.bxb-single-hero .bxb-hero-featured-image img {
	display: block;

	width: 100%;
	height: 100%;
	min-height: 360px;

	object-fit: cover;

	transition: transform 0.4s ease;
}


/* Single Hero Contact / Summarybox */

.bxb-single-hero .smartbusiness-summarybox {
	width: 100%;

	margin-block-start: var(--wp--preset--spacing--md);
	margin-inline: 0;

	text-align: left;
}

.bxb-single-hero .smartbusiness-summarybox .summarybox-content {
	display: grid;

	gap: 0.45rem;

	text-align: left;
}

.bxb-single-hero .smartbusiness-summarybox p {
	margin: 0;
}

.bxb-single-hero .smartbusiness-summarybox .icon-item {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;

	gap: 0.55rem;

	line-height: 1.45;
	text-align: left;
}

.bxb-single-hero .smartbusiness-summarybox .icon-svg {
	flex: 0 0 1.25rem;

	width: 1.25rem;
	height: 1.25rem;

	margin-top: 0.15em;
}

.bxb-single-hero .smartbusiness-summarybox a {
	text-align: left;
}


/* Single Hero Locations */

.bxb-single-hero .bxb-hero-locations {
	margin-block: var(--wp--preset--spacing--md) var(--wp--preset--spacing--xs);
}

.bxb-single-hero .bxb-hero-locations-label {
	margin: 0 0 0.65rem;

	font-size: 0.9rem;
	line-height: 1.3;
}

.bxb-single-hero .bxb-hero-location-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;

	gap: 0.5rem;

	margin: 0;
}

.bxb-single-hero .bxb-hero-location-links a {
	display: inline-flex;
	align-items: center;

	min-height: 1.75rem;

	padding: 0.4rem 0.8rem;

	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--md, 9999px);

	background: var(--wp--preset--color--background);

	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease;
}

.bxb-single-hero .bxb-hero-location-links a:hover {
	border-color: currentcolor;

	background: var(--wp--preset--color--surface);
}

.bxb-single-hero .bxb-hero-location-links a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.bxb-single-hero .bxb-hero-location-links a:active {
	transform: translateY(1px);
}

/* Decorative separators are hidden because locations are individual tags. */

.bxb-single-hero .bxb-hero-location-links span {
	display: none;
}


/* Single Hero — Image Hover */

@media (hover: hover) {

	.bxb-single-hero .bxb-hero-featured-image:hover img {
		transform: scale(1.025);
	}

}


/* Single Hero — Responsive */

@media (max-width: 781px) {

	.bxb-single-hero {
		padding-block: var(--wp--preset--spacing--xl);
	}

	.bxb-single-hero .bxb-hero-inner {
		flex-direction: column;
		align-items: stretch;

		gap: var(--wp--preset--spacing--xl);
	}

	.bxb-single-hero .bxb-hero-content {
		flex-basis: auto;
	}

	.bxb-single-hero .bxb-hero-featured-image {
		flex: none;

		width: 100%;
		max-width: none;
	}

	.bxb-single-hero .bxb-hero-featured-image img {
		min-height: 300px;
		max-height: 420px;
	}

	.bxb-single-hero .bxb-hero-content > h1,
	.bxb-single-hero .bxb-hero-content > .wp-block-post-title {
		font-size: clamp(2rem, 7vw, 2.75rem);
	}

}

@media (max-width: 480px) {

	.bxb-single-hero {
		padding-block: var(--wp--preset--spacing--lg);
	}

	.bxb-single-hero .bxb-hero-inner {
		gap: var(--wp--preset--spacing--lg);
	}

	.bxb-single-hero .bxb-hero-buttons {
		flex-wrap: wrap;
	}

	.bxb-single-hero .bxb-hero-buttons > .wp-block-button {
		flex: 1 1 100%;

		width: 100%;
	}

	.bxb-single-hero .bxb-hero-buttons > .wp-block-button .wp-block-button__link {
		width: 100%;

		text-align: center;
	}

	.bxb-single-hero .bxb-hero-trust {
		flex-direction: column;
		align-items: flex-start;
	}

	.bxb-single-hero .bxb-hero-featured-image {
		border-radius: var(--wp--preset--spacing--sm);
	}

	.bxb-single-hero .bxb-hero-featured-image img {
		min-height: 240px;
	}

	.bxb-single-hero .bxb-hero-locations {
		margin-bottom: 1.5rem;
	}

	.bxb-single-hero .bxb-hero-location-links {
		gap: 0.4rem;
	}

	.bxb-single-hero .bxb-hero-location-links a {
		min-height: 2.1rem;

		padding: 0.35rem 0.7rem;

		font-size: 0.875rem;
	}

	.bxb-single-hero .bxb-hero-trust {
		gap: 0.4rem 1rem;
	}

}


/* ==========================================================================
   LISTBOX / DIRECTORY COMPONENT
   ========================================================================== */

/*
 * Directory-style lists used for locations, services, ZIP codes,
 * staff, vehicles and other archive-like collections.
 */
.bxb-listbox {
	width: 100%;
	max-width: var(--wp--style--global--content-size);
	margin-block: var(--wp--preset--spacing--xl);
	margin-inline: auto;
	padding: var(--wp--preset--spacing--xl) var(--wp--preset--spacing--md);

	background: var(--wp--preset--color--surface);
}

.bxb-listbox > :first-child {
	margin-block-start: 0;
}

.bxb-listbox > :last-child {
	margin-block-end: 0;
}

/* Header */

.bxb-listbox .bxb-listbox-title {
	max-width: 46rem;
	margin-block: 0 var(--wp--preset--spacing--sm);
	margin-inline: auto;

	font-size: clamp(1.5rem, 2.5vw, 2rem);
	line-height: 1.2;
	letter-spacing: -0.02em;
}

.bxb-listbox .bxb-listbox-intro {
	max-width: 46rem;
	margin-block: 0 var(--wp--preset--spacing--xl);
	margin-inline: auto;

	line-height: 1.6;
}

/* List */

.bxb-listbox .bxb-listbox-list {
	display: grid;
	grid-template-columns: repeat(
		auto-fill,
		minmax(min(100%, 11rem), 1fr)
	);
	gap: 0.375rem;

	width: 100%;
	margin: 0;
	padding: 0;

	list-style: none;
}

.bxb-listbox .bxb-listbox-list > li {
	min-width: 0;
	margin: 0;
	padding: 0;
}

.bxb-listbox .bxb-listbox-list > li > a {
	display: flex;
	align-items: center;

	padding-block: var(--wp--preset--spacing--xs);

	font-size: 0.9rem;
	font-weight: 500;
	line-height: 1.3;
	text-decoration: none;

	transition:
		background-color 160ms ease,
		border-color 160ms ease,
		color 160ms ease;
}

.bxb-listbox .bxb-listbox-list > li > a::before {
	content: "";

	flex: 0 0 0.3rem;

	width: 0.3rem;
	height: 0.3rem;
	margin-inline-end: 0.5rem;

	border-radius: 50%;
	background: currentColor;
	opacity: 0.35;
}

/* Interaction */

.bxb-listbox .bxb-listbox-list > li > a:hover {
	color: var(--wp--preset--color--accent);
	text-decoration: underline;
}

.bxb-listbox .bxb-listbox-list > li > a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Variants */

.bxb-listbox-locations,
.bxb-listbox-services,
.bxb-listbox-zipcodes,
.bxb-listbox-vehicles {
	padding: var(--wp--preset--spacing--lg);

	border: 1px solid color-mix(
		in srgb,
		var(--wp--preset--color--primary) 8%,
		transparent
	);
	border-radius: var(--wp--preset--spacing--sm);

	background: color-mix(
		in srgb,
		var(--wp--preset--color--primary) 2%,
		var(--wp--preset--color--background)
	);
}

/* Responsive */

@media (max-width: 781px) {

	.bxb-listbox .bxb-listbox-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}

@media (max-width: 640px) {

	.bxb-listbox {
		margin-block: var(--wp--preset--spacing--lg);
		padding-block: var(--wp--preset--spacing--lg);
	}

	.bxb-listbox .bxb-listbox-title {
		font-size: 1.5rem;
	}

	.bxb-listbox .bxb-listbox-intro {
		margin-bottom: var(--wp--preset--spacing--lg);
	}

	.bxb-listbox .bxb-listbox-list {
		grid-template-columns: repeat(
			auto-fill,
			minmax(min(100%, 9rem), 1fr)
		);
		gap: 0.3rem;
	}

	.bxb-listbox .bxb-listbox-list > li > a {
		font-size: 0.875rem;
	}

	.bxb-listbox-locations,
	.bxb-listbox-services,
	.bxb-listbox-zipcodes,
	.bxb-listbox-vehicles {
		padding: var(--wp--preset--spacing--md);
	}

}

@media (max-width: 480px) {

	.bxb-listbox {
		padding-inline: var(--wp--preset--spacing--sm);
	}

}

/* Reduced motion */

@media (prefers-reduced-motion: reduce) {

	.bxb-listbox .bxb-listbox-list > li > a {
		transition: none;
	}

}

/* ==========================================================================
   SECTION - LOCATIONS — SHARED / SHOP CARDS
   ==========================================================================
   Reusable location-card components used by the homepage locations section
   and other pages that display shop/location cards.
   ========================================================================== */

/* Location Grid */

.bxb-locations-grid,
.bxb-location-grid {
	margin-block-start: var(--wp--preset--spacing--lg);
}


/* Location Card */

.bxb-location-card {
	display: flex;
	flex-direction: column;

	height: 100%;

	text-align: left;
}

.bxb-location-card .bxb-card-image {
	position: relative;

	margin: 0;

	aspect-ratio: 16 / 9;

	overflow: hidden;
}

.bxb-location-card .bxb-card-image a {
	position: relative;

	display: block;

	height: 100%;
}

.bxb-location-card .bxb-card-image img {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;
}


/* Card Content */

.bxb-location-card .bxb-card-content {
	display: flex;
	flex: 1;
	flex-direction: column;

	text-align: left;
}

.bxb-location-card .bxb-card-content > * {
	text-align: left;
}


/* Location Title */

.bxb-location-title {
	margin: 0 0 var(--wp--preset--spacing--xs);

	font-size: var(--wp--preset--font-size--lg);
	font-weight: 700;
	line-height: 1.15;
}

.bxb-location-title a {
	color: inherit;

	text-decoration: none;
}

.bxb-location-title a:hover,
.bxb-location-title a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 3px;
}


/* Location Details */

.bxb-location-phone,
.bxb-location-address,
.bxb-location-hours {
	margin: 0 0 var(--wp--preset--spacing--sm);

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.55;
}


/* Phone */

.bxb-location-phone {
	display: flex;
	align-items: center;

	gap: 0.45em;

	color: var(--wp--preset--color--primary);

	font-size: var(--wp--preset--font-size--md);
	font-weight: 700;
	line-height: 1.4;
}

.bxb-location-phone::before {
	content: "";

	flex: 0 0 1em;

	width: 1em;
	height: 1em;

	background-color: currentColor;

	mask-image: url("../icons/phone.svg");
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;

	-webkit-mask-image: url("../icons/phone.svg");
	-webkit-mask-position: center;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: contain;
}

.bxb-location-phone a {
	color: inherit;

	font-weight: 700;
	text-decoration: none;
}

.bxb-location-phone a:hover,
.bxb-location-phone a:focus-visible {
	color: var(--wp--preset--color--accent);
}


/* Address */

.bxb-location-address a {
	color: inherit;

	text-decoration: underline;
	text-underline-offset: 3px;
}

.bxb-location-address a:hover,
.bxb-location-address a:focus-visible {
	color: var(--wp--preset--color--accent);
}


/* Hours */

.bxb-location-hours {
	margin-block-end: var(--wp--preset--spacing--md);
}


/* Location Actions */

.bxb-location-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;

	gap: var(--wp--preset--spacing--md);

	margin-block-start: auto;
	padding-block-start: var(--wp--preset--spacing--sm);
}

.bxb-location-actions .wp-element-button {
	display: inline-flex;
	align-items: center;

	gap: 0.4em;

	white-space: nowrap;
}


/* Get Directions */

.bxb-location-direction {
	display: inline-flex;
	align-items: center;

	gap: 0.4em;

	flex: 0 0 auto;

	color: var(--wp--preset--color--primary);

	font-weight: 600;
	text-decoration: none;
}

.bxb-location-direction:hover,
.bxb-location-direction:focus-visible {
	color: var(--wp--preset--color--accent);

	text-decoration: underline;
	text-underline-offset: 3px;
}

.bxb-location-direction-icon {
	display: inline-block;

	flex: 0 0 1em;

	width: 1em;
	height: 1em;

	background-color: currentColor;

	mask-image: url("../icons/location.svg");
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;

	-webkit-mask-image: url("../icons/location.svg");
	-webkit-mask-position: center;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: contain;
}


/* External Link Indicator */

.bxb-external-link-icon {
	display: inline-block;

	flex: 0 0 0.85em;

	width: 0.85em;
	height: 0.85em;

	background-color: currentColor;

	mask-image: url("../icons/link-1.svg");
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;

	-webkit-mask-image: url("../icons/link-1.svg");
	-webkit-mask-position: center;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: contain;
}


/* Shop Label */

.bxb-location-shop-label {
	position: absolute;
	top: var(--wp--preset--spacing--sm);
	right: var(--wp--preset--spacing--sm);

	display: inline-flex;
	align-items: center;
	justify-content: center;

	padding: 0.35em 0.7em;

	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--background);

	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.05em;

	border-radius: 999px;

	pointer-events: none;
}


/* Section Actions */

.bxb-locations-actions,
.bxb-view-all-locations {
	margin-block-start: var(--wp--preset--spacing--lg);
}


/* Responsive */

@media (max-width: 600px) {

	.bxb-location-card {
		padding: 0 !important;
	}

	.bxb-location-card .bxb-card-content {
		padding: var(--wp--preset--spacing--md);
	}

	.bxb-location-actions {
		align-items: flex-start;
		flex-direction: column;

		gap: var(--wp--preset--spacing--sm);
	}

	.bxb-location-actions .wp-element-button {
		width: auto;
	}
}




/* ==========================================================================
   SECTION / CARD GRID - HIGHLIGHTS
   ========================================================================== */

.bxb-highlights-card {
	display: flex;
	flex-direction: column;

	align-items: center;
	justify-content: flex-start;

	padding: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md);

	text-align: center;

	background: var(--wp--preset--color--white);
}

.bxb-highlights-card .bxb-card-accent-icon {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 2.75rem;
	height: 2.75rem;

	margin: 0 auto var(--wp--preset--spacing--sm) !important;
}

.bxb-highlights-card .bxb-card-accent-icon svg {
	display: block;

	width: 1.5rem;
	height: 1.5rem;

	fill: none;

	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.bxb-highlights-label {
	margin: 0 0 var(--wp--preset--spacing--xs) !important;

	font-size: var(--wp--preset--font-size--md);
	font-weight: 700;
	line-height: 1.3;
}

.bxb-highlights-description {
	max-width: 280px;

	margin: 0 auto !important;

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.55;
}


/* Membership */

.bxb-highlights-membership {
	position: relative;

	margin-block-start: var(--wp--preset--spacing--md);

	padding: var(--wp--preset--spacing--sm);

	border: 1px solid color-mix(
		in srgb,
		var(--wp--preset--color--foreground) 10%,
		transparent
	);

	border-radius: 999px;

	background: var(--wp--preset--color--white);

	box-shadow: var(--wp--preset--shadow--sm);
}

.bxb-highlights-membership:hover {
	border-color: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 30%,
		var(--wp--preset--color--border)
	);

	box-shadow: var(--wp--preset--shadow--card);
}

.bxb-highlights-membership-text {
	margin: 0 !important;

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.5;

	text-align: center;
}

.bxb-highlights-closing {
	margin: var(--wp--preset--spacing--md) auto 0 !important;

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.5;

	text-align: center;
}

@media (max-width: 600px) {

	.bxb-highlights .bxb-grid,
	.bxb-highlights-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bxb-highlights-card {
		padding: var(--wp--preset--spacing--md) var(--wp--preset--spacing--sm);
	}

	.bxb-highlights-membership {
		border-radius: var(--wp--preset--border-radius--md);
	}

	.bxb-highlights-membership-text {
		line-height: 1.8;
	}

}

/* ==========================================================================
   SECTION / CARD GRID- SERVICES
   ========================================================================== */

/* --------------------------------------------------------------------------
   Services Grid Cards
   -------------------------------------------------------------------------- */

.bxb-services-grid {
	display: grid;

	grid-template-columns: repeat(3, minmax(0, 1fr));

	gap: var(--wp--preset--spacing--md);

	align-items: stretch;
}

.bxb-services-grid > .bxb-card {
	min-width: 0;
}

.bxb-services-grid .bxb-card-content {
	display: flex;
	flex: 1;
	flex-direction: column;

	min-width: 0;
}

.bxb-services-grid .bxb-card-link {
	margin-block-start: auto !important;
}


/* --------------------------------------------------------------------------
   Mobile Service Feature
   Homepage emergency / mobile locksmith feature.
   -------------------------------------------------------------------------- */

.bxb-service-feature {
	margin-block-start: var(--wp--preset--spacing--xl);

	padding: var(--wp--preset--spacing--lg);

	border: 1px solid color-mix(
		in srgb,
		var(--wp--preset--color--foreground) 10%,
		transparent
	);

	border-radius: var(--wp--preset--border-radius--md);

	background: var(--wp--preset--color--surface);

	box-shadow: var(--wp--preset--shadow--sm);
}

.bxb-service-feature:hover {
	border-color: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 30%,
		var(--wp--preset--color--border)
	);

	box-shadow: var(--wp--preset--shadow--card);
}


/* Feature Image */

.bxb-service-feature-image {
	margin: 0 !important;

	overflow: hidden;

	border-radius: var(--wp--preset--border-radius--md);
}

.bxb-service-feature-image a {
	display: block;
}

.bxb-service-feature-image img {
	display: block;

	width: 100%;
	height: auto;

	object-fit: cover;

	transition: transform 300ms ease;
}

.bxb-service-feature:hover .bxb-service-feature-image img {
	transform: scale(1.02);
}


/* Feature Content */

.bxb-service-feature .bxb-eyebrow {
	margin-block-end: var(--wp--preset--spacing--xs);
}

.bxb-service-feature-title {
	margin-block: 0 var(--wp--preset--spacing--sm);
}

.bxb-service-feature-description {
	margin-block: 0;
}

.bxb-service-feature-hours {
	margin-block-start: var(--wp--preset--spacing--md);
}

.bxb-service-feature-actions {
	margin-block-start: var(--wp--preset--spacing--md);
}


/* --------------------------------------------------------------------------
   Services Actions
   Homepage services section.
   -------------------------------------------------------------------------- */

.bxb-services-actions {
	margin-block-start: var(--wp--preset--spacing--lg);
}


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

@media (max-width: 900px) {

	.bxb-services-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}

@media (max-width: 781px) {

	.bxb-service-feature {
		padding: var(--wp--preset--spacing--md);
	}

}

@media (max-width: 600px) {

	.bxb-services-grid {
		grid-template-columns: 1fr;
	}

	.bxb-service-feature {
		margin-block-start: var(--wp--preset--spacing--lg);
	}

	.bxb-service-feature-image {
		margin-block-end: var(--wp--preset--spacing--md) !important;
	}

}

/* ==========================================================================
   SECTION - TESTIMONIALS
   ========================================================================== */

.bxb-testimonials,
.bxb-affiliations,
.bxb-faqs,
.bxb-about {
	overflow: hidden;
}

.bxb-testimonials-inner,
.bxb-affiliations-inner {
	width: 100%;
}

.bxb-review-summary {
	max-width: 620px;

	margin-inline: auto !important;
	margin-block: 0 var(--wp--preset--spacing--xl) !important;

	padding: var(--wp--preset--spacing--md);

	border: 1px solid color-mix(
		in srgb,
		var(--wp--preset--color--foreground) 10%,
		transparent
	);

	border-radius: var(--wp--preset--border-radius--md);

	background: var(--wp--preset--color--white);

	text-align: center;
}

.bxb-review-stars {
	margin: 0 0 var(--wp--preset--spacing--xs) !important;

	color: var(--wp--preset--color--accent);

	font-size: var(--wp--preset--font-size--lg);
	line-height: 1;
	letter-spacing: 0.08em;
}

.bxb-review-summary-text {
	margin: 0 !important;

	color: var(--wp--preset--color--muted);

	line-height: 1.5;
}

.bxb-review-summary-text strong,
.bxb-testimonials-trust strong {
	color: var(--wp--preset--color--foreground);
}

.bxb-testimonial-card {
	background: var(--wp--preset--color--white);
}

.bxb-testimonial-card .bxb-card-content {
	gap: 0;
}

.bxb-testimonial-card .bxb-card-rating {
	margin: 0 0 var(--wp--preset--spacing--sm) !important;

	color: var(--wp--preset--color--accent);

	font-size: var(--wp--preset--font-size--md);
	line-height: 1;
	letter-spacing: 0.06em;
}

.bxb-testimonial-card .bxb-testimonial-text {
	flex: 1;

	margin: 0 0 var(--wp--preset--spacing--md) !important;

	color: var(--wp--preset--color--foreground);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.7;
}

.bxb-testimonial-author {
	margin: auto 0 0 !important;

	padding-block-start: var(--wp--preset--spacing--sm);

	border-block-start: 1px solid color-mix(
		in srgb,
		var(--wp--preset--color--foreground) 10%,
		transparent
	);

	color: var(--wp--preset--color--foreground);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.45;
}

.bxb-testimonial-author strong {
	display: inline-block;

	margin-block-end: 2px;
}

.bxb-testimonial-author span {
	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--xs);
}

.bxb-testimonial-card .bxb-card-link {
	margin: 0 !important;

	padding-block-start: var(--wp--preset--spacing--sm);
}

.bxb-testimonial-card .bxb-card-link a {
	display: inline-flex;
	align-items: center;

	gap: 0.4rem;

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	line-height: 1.3;

	text-decoration: none;
}

.bxb-testimonial-card .bxb-card-link a:hover,
.bxb-testimonial-card .bxb-card-link a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bxb-testimonial-card .bxb-card-link svg {
	display: block;

	flex: 0 0 auto;

	width: 1em;
	height: 1em;

	fill: none;

	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;

	transition: transform 180ms ease;
}

.bxb-testimonial-card .bxb-card-link a:hover svg,
.bxb-testimonial-card .bxb-card-link a:focus-visible svg {
	transform: translate(1px, -1px);
}

.bxb-testimonials-trust {
	max-width: 850px;

	margin: var(--wp--preset--spacing--lg) auto 0 !important;
}

.bxb-testimonials-trust p {
	margin-block-end: 0 !important;

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.65;
}

.bxb-testimonials .bxb-social-proof {
	margin-block: var(--wp--preset--spacing--md);
}

.bxb-testimonials .bxb-social-proof-label {
	color: var(--wp--preset--color--muted);
}

@media (max-width: 600px) {

	.bxb-testimonial-card .bxb-card-content {
		padding: var(--wp--preset--spacing--md);
	}

	.bxb-testimonials .bxb-section-description {
		line-height: 1.6;
	}

}

/* ==========================================================================
   SECTION - GOOGLE REVIEWS
   ========================================================================== */

/* Component Tokens */

.bxb-google-reviews {
	--bxb-review-surface: var(--wp--preset--color--surface);
	--bxb-review-background: var(--wp--preset--color--background);
	--bxb-review-border: rgb(0 0 0 / 10%);

	gap: var(--wp--preset--spacing--md);

	margin-bottom: var(--wp--preset--spacing--lg);
}


/* Review Card */

.bxb-google-reviews .bxb-google-review-card {
	display: flex;
	flex-direction: column;

	padding: var(--wp--preset--spacing--md);

	background-color: var(--bxb-review-background);
	border: 1px solid var(--bxb-review-border);
	border-radius: 0.75rem;

	box-shadow: 0 2px 10px rgb(0 0 0 / 3%);
}


/* Business Name */

.bxb-google-reviews .bxb-google-review-business {
	margin: 0;

	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.3;
}


/* Address */

.bxb-google-reviews .bxb-google-review-address {
	margin-block: var(--wp--preset--spacing--xs) 0;
	padding-top: var(--wp--preset--spacing--xs);

	border-top: 1px solid var(--bxb-review-border);

	font-size: 0.85rem;
	line-height: 1.45;

	opacity: 0.72;
}


/* Rating */

.bxb-google-reviews .bxb-google-review-rating {
	gap: 0.5rem;

	margin-top: var(--wp--preset--spacing--sm);
}

.bxb-google-reviews .bxb-google-review-score {
	margin: 0;

	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
}

.bxb-google-reviews .bxb-google-review-stars {
	margin: 0;

	font-size: 1rem;
	line-height: 1;
	letter-spacing: 0.04em;

	color: #f4b400;
}


/* Review Count */

.bxb-google-reviews .bxb-google-review-count {
	margin-block: 0.5rem 0;

	font-size: 0.85rem;
	line-height: 1.4;

	opacity: 0.72;
}

.bxb-google-reviews .bxb-google-review-count strong {
	font-weight: 700;

	opacity: 1;
}


/* Google Link */

.bxb-google-reviews .bxb-google-review-link {
	margin-block: var(--wp--preset--spacing--sm) 0;
}

.bxb-google-reviews .bxb-google-review-link a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;

	padding: 0.55rem 0.85rem;

	background-color: var(--bxb-review-surface);
	border: 1px solid var(--bxb-review-border);
	border-radius: 0.4rem;

	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1.3;

	text-decoration: none;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease;
}

.bxb-google-reviews .bxb-google-review-link a:hover {
	border-color: currentColor;

	text-decoration: none;

	transform: translateY(-1px);
}

.bxb-google-reviews .bxb-google-review-link a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}


/* Mobile */

@media (max-width: 781px) {

	.bxb-google-reviews {
		gap: var(--wp--preset--spacing--sm);
	}

	.bxb-google-reviews .bxb-google-review-card {
		padding: var(--wp--preset--spacing--sm);
	}

}

/* ==========================================================================
   REVIEW RATINGS
   ========================================================================== */

/* Review Ratings Block
   Full-width badge container. Badges wrap naturally when space is limited. */

.bxb-review-ratings {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: flex-start;
	gap: var(--wp--preset--spacing--20);

	width: 100%;
	max-width: 100%;

	margin-block: 0;
	margin-inline: 0;

	clear: both;
}

/* Badge Alignment */

.bxb-review-ratings.alignleft {
	justify-content: flex-start;
}

.bxb-review-ratings.aligncenter {
	justify-content: center;
}

.bxb-review-ratings.alignright {
	justify-content: flex-end;
}


/* Review Badge
   Content-sized platform badge. */

.bxb-review-ratings__badge {
	display: flex;
	flex: 0 1 auto;
	flex-direction: row;
	align-items: center;
	gap: 0.5rem;

	width: max-content;
	max-width: 100%;

	padding: 0.5rem 0.7rem;

	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0.6rem;

	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--foreground);

	text-decoration: none;

	box-shadow: 0 1px 3px rgb(0 0 0 / 5%);

	transition:
		border-color 160ms ease,
		box-shadow 160ms ease,
		transform 160ms ease;
}

.bxb-review-ratings__badge:hover,
.bxb-review-ratings__badge:focus-visible {
	border-color: var(--wp--preset--color--foreground);
	box-shadow: 0 4px 12px rgb(0 0 0 / 9%);
	transform: translateY(-1px);
}

.bxb-review-ratings__badge:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}


/* Platform Logo */

.bxb-review-ratings__logo {
	display: block;

	width: 1.85rem;
	height: 1.85rem;

	flex: 0 0 1.85rem;

	max-width: 1.85rem;
}

.bxb-review-ratings__logo--yelp {
	color: #d32323;
}


/* Badge Content */

.bxb-review-ratings__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 0.05rem;

	min-width: 0;

	line-height: 1.15;
}


/* Review Score */

.bxb-review-ratings__score {
	display: inline-flex;
	align-items: center;
	gap: 0.2rem;

	font-size: 1.25rem;
	line-height: 1.1;
}

.bxb-review-ratings__score strong {
	font-weight: 700;
}


/* Rating Star */

.bxb-review-ratings__star {
	font-size: 1.15rem;
	line-height: 1;
	color: gold;
}


/* Review Count */

.bxb-review-ratings__count {
	font-size: 0.75rem;
	font-weight: 500;

	white-space: nowrap;

	opacity: 0.72;
}


/* Profile Trigger */

.bxb-review-ratings__view {
	display: inline-flex;
	align-items: center;
	gap: 0.15rem;

	margin-top: 0.1rem;

	font-size: 0.7rem;
	font-weight: 600;
	line-height: 1.15;

	white-space: nowrap;
}

.bxb-review-ratings__view span {
	font-size: 0.78rem;
}


/* ==========================================================================
   RESPONSIVE BADGES
   ========================================================================== */

/* Small Desktop / Tablet */

@media (max-width: 600px) {

	.bxb-review-ratings {
		gap: 0.5rem;
	}

	.bxb-review-ratings__badge {
		flex: 0 1 auto;

		padding: 0.5rem 0.6rem;
		gap: 0.45rem;
	}

	.bxb-review-ratings__logo {
		width: 1.7rem;
		height: 1.7rem;

		flex-basis: 1.7rem;
		max-width: 1.7rem;
	}

	.bxb-review-ratings__score {
		font-size: 0.9rem;
	}

	.bxb-review-ratings__count {
		font-size: 0.68rem;
	}

	.bxb-review-ratings__view {
		font-size: 0.67rem;
	}
}


/* Mobile
   Keep badges compact and allow flex-wrap to stack them automatically
   when the available width is insufficient. */

@media (max-width: 480px) {

	.bxb-review-ratings {
		gap: 0.4rem;
	}

	.bxb-review-ratings__badge {
		flex: 0 1 auto;

		width: max-content;
		max-width: 100%;

		padding: 0.45rem 0.5rem;
		gap: 0.4rem;

		border-radius: 0.5rem;
	}

	.bxb-review-ratings__logo {
		width: 1.55rem;
		height: 1.55rem;

		flex-basis: 1.55rem;
		max-width: 1.55rem;
	}

	.bxb-review-ratings__score {
		font-size: 0.85rem;
	}

	.bxb-review-ratings__star {
		font-size: 0.75rem;
	}

	.bxb-review-ratings__count {
		font-size: 0.65rem;
	}

	.bxb-review-ratings__view {
		font-size: 0.65rem;
	}

	.bxb-review-ratings__view span {
		font-size: 0.72rem;
	}
}


/* Reduced motion */

@media (prefers-reduced-motion: reduce) {

	.bxb-review-ratings__badge {
		transition: none;
	}
}


/* ==========================================================================
   SECTION - AFFILIATIONS
   ========================================================================== */

.bxb-affiliations {
	padding-block: var(--wp--preset--spacing--xl);
}

.bxb-affiliation-card {
	min-width: 0;

	display: flex;
	flex-direction: column;
	align-items: center;

	text-align: center;
}

/* Logos */

.bxb-affiliation-logo {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	height: 125px;

	margin: 0 0 var(--wp--preset--spacing--xs) !important;
}

.bxb-affiliation-logo img {
	display: block;

	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 125px;

	object-fit: contain;
}

/* Labels */

.bxb-affiliation-card p {
	margin-block: 0;

	color: var(--wp--preset--color--foreground);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.4;
}

@media (max-width: 600px) {

	.bxb-affiliations .bxb-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bxb-affiliation-logo {
		height: 90px;

		margin-block-end: var(--wp--preset--spacing--xs) !important;
	}

	.bxb-affiliation-logo img {
		max-height: 72px;
	}

	.bxb-affiliation-card p {
		font-size: var(--wp--preset--font-size--xs);
	}
}

/* ==========================================================================
   SECTION - FAQ / DETAILS
   ========================================================================== */

/* FAQ Grid */

.bxb-faqs-grid {
	margin-block-start: var(--wp--preset--spacing--lg);
	align-items: start;
}


/* FAQ Item */

.bxb-faq {
	align-self: start;
	min-width: 0;

	margin-block: var(--wp--preset--spacing--sm);
	padding: 0;

	border: 1px solid color-mix(in srgb, currentColor 14%, transparent);
	border-radius: var(--wp--custom--border-radius--medium, 0.5rem);
	background: var(--wp--preset--color--background);

	overflow: hidden;
}


/* FAQ Summary */

.bxb-faq > summary {
	position: relative;

	display: flex;
	align-items: center;

	padding-block: var(--wp--preset--spacing--sm);
	padding-inline: var(--wp--preset--spacing--md) var(--wp--preset--spacing--lg);

	cursor: pointer;

	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.4;

	list-style: none;

	transition:
		background-color 180ms ease,
		color 180ms ease;
}

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

.bxb-faq > summary::marker {
	content: "";
}


/* FAQ Indicator */

.bxb-faq > summary::after {
	content: "";

	position: absolute;
	top: 50%;
	right: 1.25rem;

	width: 0.55rem;
	height: 0.55rem;

	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;

	transform: translateY(-65%) rotate(45deg);

	transition: transform 180ms ease;
}

.bxb-faq[open] > summary::after {
	transform: translateY(-35%) rotate(225deg);
}


/* FAQ Interaction */

.bxb-faq > summary:hover {
	background: color-mix(in srgb, currentColor 5%, transparent);
}

.bxb-faq > summary:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -2px;
}

.bxb-faq[open] > summary {
	border-bottom: 1px solid color-mix(in srgb, currentColor 10%, transparent);
}


/* FAQ Content */

.bxb-faq > :not(summary) {
	padding-inline: 1.25rem;
}

.bxb-faq > p:first-of-type {
	margin-block-start: 1.15rem;
}

.bxb-faq > p:last-child {
	margin-block-end: 1.25rem;
}


/* FAQ Footer */

.bxb-faqs-footer {
	max-width: 850px;

	margin:
		var(--wp--preset--spacing--lg)
		auto 0;
}

.bxb-faqs-footer p {
	margin: 0 !important;

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.65;
}

.bxb-faqs-footer strong {
	color: var(--wp--preset--color--foreground);
}


/* Compact Mobile Spacing */

@media (max-width: 600px) {

	.bxb-faq > summary {
		min-height: 3.25rem;

		padding: 0.9rem 2.75rem 0.9rem 1rem;
	}

	.bxb-faq > summary::after {
		right: 1rem;
	}

	.bxb-faq > :not(summary) {
		padding-inline: 1rem;
	}
}

/* ==========================================================================
   SECTION - ABOUT
   ========================================================================== */

.bxb-about {
}

.bxb-about-hero {
	width: 100%;
	margin-block-end: var(--wp--preset--spacing--xl);
}

.bxb-about-logo {
	margin-block-end: var(--wp--preset--spacing--md);
	border-radius: 0;
}

.bxb-about-logo img{
	border-radius: 0;
}

.bxb-about-title {
	margin-block: 0 var(--wp--preset--spacing--sm) !important;

	font-size: var(--wp--preset--font-size--xl);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.015em;
	text-wrap: balance;
}

.bxb-about-actions {
	margin-block-start: var(--wp--preset--spacing--md);
}

.bxb-about-contact {
	height: 100%;
}

.bxb-about-contact p:last-child {
	margin-block-end: 0;
}

.bxb-about-contact hr {
	margin-block: var(--wp--preset--spacing--md);
}

.bxb-about-mobile-service {
	margin-block: var(--wp--preset--spacing--xl);
	padding: var(--wp--preset--spacing--md) var(--wp--preset--spacing--lg);
	border-radius: var(--wp--preset--border-radius--lg);
}

.bxb-about-mobile-service h3 {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--xs);

	margin-block: 0 var(--wp--preset--spacing--xs);

	font-size: var(--wp--preset--font-size--md);
	line-height: 1.155;
}

.bxb-about-mobile-service p {
	margin-block-end: 0;
}

.bxb-about-service-hours {
	margin-block-end: 0 !important;
}

.bxb-about-locations {
	margin-block-start: var(--wp--preset--spacing--xl);
}

.bxb-about-locations-title {
	margin-block: 0 var(--wp--preset--spacing--xs) !important;

	font-size: var(--wp--preset--font-size--md);
	line-height: 1.155;
}

.bxb-about-closing {
	margin-block-start: var(--wp--preset--spacing--lg) !important;
}


/* Icons */

.bxb-icon {
	display: inline-block;

	width: 1em;
	height: 1em;

	margin-inline-end: 0.35em;

	vertical-align: -0.15em;
}

.bxb-icon-heading {
	flex: 0 0 auto;

	width: 1.1em;
	height: 1.1em;

	margin-inline-end: 0;
}


/* About location cards */

.bxb-about-locations .bxb-grid-3 {
	align-items: stretch;
}

.bxb-about-location-card {
	height: 100%;

	padding: var(--wp--preset--spacing--md);

	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--md);

	background: var(--wp--preset--color--background);

	box-shadow: var(--wp--preset--shadow--sm);

	transition:
		transform 180ms ease,
		box-shadow 180ms ease,
		border-color 180ms ease;
}

.bxb-about-location-card:hover {
	transform: translateY(-3px);

	border-color: var(--wp--preset--color--primary);

	box-shadow: var(--wp--preset--shadow--card);
}

.bxb-about-location-card h3 {
	margin-block: 0 var(--wp--preset--spacing--sm) !important;

	line-height: 1.155;

	text-wrap: balance;
}

.bxb-about-location-card p {
	margin-block: 0 var(--wp--preset--spacing--sm);
}

.bxb-about-location-card p:last-child {
	margin-block-end: 0;
}

.bxb-about-location-card a {
	font-weight: 600;
	text-underline-offset: 0.15em;
}

@media (max-width: 600px) {

	.bxb-about {
		padding-block: var(--wp--preset--spacing--lg);
	}

	.bxb-about-logo {
		margin-block-end: var(--wp--preset--spacing--sm);
	}

	.bxb-about-mobile-service {
		padding: var(--wp--preset--spacing--md);
	}

	.bxb-about-service-hours {
		text-align: left !important;
	}

	.bxb-about-locations .bxb-grid-3 {
		gap: var(--wp--preset--spacing--sm);
	}

	.bxb-about-location-card {
		display: flex;
		flex-direction: column;
		align-items: center;

		padding:
			var(--wp--preset--spacing--md)
			var(--wp--preset--spacing--sm);

		border-radius: var(--wp--preset--border-radius--lg);

		text-align: center;
	}

	.bxb-about-location-card h3 {
		max-width: 100%;

		margin-block-end: var(--wp--preset--spacing--sm) !important;
	}

	.bxb-about-location-card p {
		width: 100%;

		margin-block-end: var(--wp--preset--spacing--sm);
	}

	.bxb-about-location-card p:last-child {
		padding-block-start: var(--wp--preset--spacing--xs);

		border-block-start: 1px solid var(--wp--preset--color--border);
	}

	.bxb-about-location-card p:first-of-type a {
		display: inline-flex;
		align-items: center;
		justify-content: center;

		width: auto;

		margin-block-start: var(--wp--preset--spacing--xs);

		padding: 0.45rem 0.75rem;

		border-radius: var(--wp--preset--border-radius--md);

		background: var(--wp--preset--color--surface);

		font-weight: 700;

		text-decoration: none;
	}

}

/* ==========================================================================
   CALLS TO ACTION
   ========================================================================== */

.bxb-cta {
	margin-block: 0 !important;

	padding: var(--wp--preset--spacing--xxl) var(--wp--preset--spacing--lg);
}

.bxb-cta-inner {
	width: 100%;

	margin-inline: auto;
}

.bxb-cta .bxb-eyebrow {
	color: var(--wp--preset--color--accent);
}

.bxb-cta-title {
	max-width: 760px;

	margin: 0 auto var(--wp--preset--spacing--sm) !important;

	font-size: var(--wp--preset--font-size--xl);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.015em;

	text-wrap: balance;
}

.bxb-cta-description {
	max-width: 760px;

	margin: 0 auto var(--wp--preset--spacing--md) !important;

	text-wrap: pretty;
}

.bxb-cta-buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;

	gap: var(--wp--preset--spacing--md);

	margin:
		var(--wp--preset--spacing--lg)
		0 !important;
}

.bxb-cta-buttons .wp-block-button {
	margin: 0;
}

.bxb-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	border: 1px solid var(--wp--preset--color--accent);

	box-shadow: var(--wp--preset--shadow--sm);
}

.bxb-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.bxb-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link:focus-visible {
	transform: translateY(-2px);

	background: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 88%,
		white
	);

	border-color: color-mix(
		in srgb,
		var(--wp--preset--color--accent) 88%,
		white
	);

	box-shadow: var(--wp--preset--shadow--card);
}

.bxb-cta .is-style-outline .wp-block-button__link {
	border-color: color-mix(
		in srgb,
		var(--wp--preset--color--surface) 65%,
		transparent
	);
}

.bxb-cta .is-style-outline .wp-block-button__link:hover,
.bxb-cta .is-style-outline .wp-block-button__link:focus-visible {
	transform: translateY(-2px);

	background: var(--wp--preset--color--surface);
	border-color: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground) !important;

	box-shadow: var(--wp--preset--shadow--sm);
}

.bxb-cta-trust {
	max-width: 760px;

	margin:
		var(--wp--preset--spacing--lg)
		auto
		var(--wp--preset--spacing--xs) !important;

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.6;
}

.bxb-cta-trust strong {
	font-weight: 700;
}

.bxb-cta-service-area {
	max-width: 760px;

	margin:
		var(--wp--preset--spacing--xs)
		auto 0 !important;

	color: color-mix(
		in srgb,
		var(--wp--preset--color--surface) 76%,
		transparent
	);

	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.6;
}

@media (max-width: 900px) {

	.bxb-cta {
		padding-block: var(--wp--preset--spacing--xl);
	}

	.bxb-cta-title,
	.bxb-cta-description,
	.bxb-cta-service-area {
		max-width: 680px;
	}

}

@media (max-width: 781px) {

	.bxb-cta {
		padding-inline: var(--wp--preset--spacing--md);
	}

	.bxb-cta-buttons {
		gap: var(--wp--preset--spacing--sm);
	}

}

@media (max-width: 600px) {

	.bxb-cta {
		padding-block: var(--wp--preset--spacing--xl);
	}

	.bxb-cta-description {
		line-height: 1.65;
	}

	.bxb-cta-buttons {
		flex-direction: column;
		align-items: stretch;

		width: 100%;

		margin-top: var(--wp--preset--spacing--md) !important;
	}

	.bxb-cta-buttons .wp-block-button,
	.bxb-cta-buttons .wp-block-button__link {
		width: 100%;
	}

	.bxb-cta-buttons .wp-block-button__link {
		text-align: center;
	}

	.bxb-cta-trust {
		margin-top: var(--wp--preset--spacing--md) !important;

		line-height: 1.7;
	}

	.bxb-cta-service-area {
		line-height: 1.65;
	}

}

@media (max-width: 480px) {

	.bxb-cta {
		padding-inline: var(--wp--preset--spacing--sm);
	}

	.bxb-cta-title {
		line-height: 1.152;
	}

	.bxb-cta-buttons {
		gap: var(--wp--preset--spacing--xs);
	}

	.bxb-cta-trust {
		font-size: var(--wp--preset--font-size--xs);
	}

}


/* ==========================================================================
   SITE FOOTER
   ========================================================================== */

.site-footer .wp-block-site-title a,
.bxb-footer-navigation .wp-block-navigation-item__content,
.bxb-footer-legal-navigation .wp-block-navigation-item__content {
	text-decoration: none;
}

.site-footer .wp-block-site-title a:hover {
	color: var(--wp--preset--color--background);
}

.footer-navigation .wp-block-navigation a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bxb-footer {
	margin-block: 0;

	padding-block:
		var(--wp--preset--spacing--lg)
		150px;
}

.bxb-footer-inner {
	text-align: center;
}

.bxb-footer-title {
	margin: 0;

	font-size: var(--wp--preset--font-size--lg);
	font-weight: 700;
	line-height: 1.15;
}

.bxb-footer-tagline {
	margin-block-start: var(--wp--preset--spacing--sm);
}

.bxb-footer-trust {
	margin-block-start: var(--wp--preset--spacing--md);
}

.bxb-footer-navigation-wrap {
	margin-block-start: var(--wp--preset--spacing--lg);
}

.bxb-footer-navigation .wp-block-navigation__container,
.bxb-footer-legal-navigation .wp-block-navigation__container {
	justify-content: center;
	flex-wrap: wrap;

	gap:
		var(--wp--preset--spacing--sm)
		var(--wp--preset--spacing--md);
}

.bxb-footer-navigation .wp-block-navigation-item__content:hover,
.bxb-footer-navigation .wp-block-navigation-item__content:focus-visible,
.bxb-footer-legal-navigation .wp-block-navigation-item__content:hover,
.bxb-footer-legal-navigation .wp-block-navigation-item__content:focus-visible {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bxb-footer-area {
	max-width: 48rem;

	margin: var(--wp--preset--spacing--lg) auto 0;
}

.bxb-footer-separator {
	width: 100%;

	margin-block: var(--wp--preset--spacing--lg);
}

.bxb-footer-bottom {
	display: flex;
	flex-direction: column;
	align-items: center;

	gap: var(--wp--preset--spacing--sm);
}

.bxb-footer-copyright {
	margin: 0;
}

.bxb-footer a {
	color: inherit;
}

.bxb-footer a:hover,
.bxb-footer a:focus-visible {
	color: var(--wp--preset--color--primary);
}

/* ==========================================================================
   SHARED SINGLE CONTENT
   ========================================================================== */

.bxb-content-header {
	margin-block-end: var(--wp--preset--spacing--xl);

	padding-block-end: var(--wp--preset--spacing--lg);

	border-block-end: 1px solid var(--wp--preset--color--border);
}

.bxb-content-header > :first-child {
	margin-block-start: 0;
}

.bxb-content-header > :last-child {
	margin-block-end: 0;
}

.bxb-content-header .wp-block-post-title,
.bxb-content-header .wp-block-heading {
	margin: 0;
	font-size: clamp(1.7rem, 3.2vw, 2.4rem);
	line-height: 1.15;
	letter-spacing: -0.018em;
}

.bxb-content-header .wp-block-post-excerpt {
	margin-block-start: var(--wp--preset--spacing--sm);
}

.bxb-content-header .wp-block-post-excerpt p {
	margin: 0;
}


/* Single (Posts - Pages) Content Wrappers */

.bxb-single {
	margin-block: var(--wp--preset--spacing--xl);
}

/* Single Types With Hero */

.bxb-single-staff,
.bxb-single-service,
.bxb-single-location,
.bxb-single-vehicle,
.bxb-single-zipcode {
	margin-block: 0;
}


/* Single Content */

.bxb-single-post > .wp-block-post-content,
.bxb-single-staff .bxb-staff-content {
	margin-block-end: var(--wp--preset--spacing--xl);
}


/* Page */

.bxb-page {
	margin-block: var(--wp--preset--spacing--xl);
}

.bxb-page .bxb-content-header {
	margin-block-end: var(--wp--preset--spacing--xl);
}

/* ==========================================================================
   SINGLE POST
   ========================================================================== */

.bxb-single-post .bxb-content-header {
	margin-block-end: var(--wp--preset--spacing--xl);
}

.bxb-post-meta {
	display: flex;
	align-items: center;

	gap: var(--wp--preset--spacing--md);

	margin-block: var(--wp--preset--spacing--sm);

	padding-block: var(--wp--preset--spacing--sm);

	border-block: 1px solid var(--wp--preset--color--border);

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.4;
}

.bxb-post-meta .wp-block-post-author,
.bxb-post-meta .wp-block-post-date {
	display: inline-flex;
	align-items: center;

	margin: 0;
}

.bxb-post-meta .wp-block-post-author {
	gap: var(--wp--preset--spacing--xs);

	color: var(--wp--preset--color--foreground);

	font-weight: 600;
}

.bxb-post-meta .wp-block-post-date {
	color: var(--wp--preset--color--muted);
}

.bxb-post-meta .wp-block-post-author__avatar {
	width: 32px;
	height: 32px;

	margin: 0;

	border-radius: 50%;
}

.bxb-post-meta .wp-block-post-author__name {
	margin: 0;
}

.bxb-post-meta .wp-block-post-date a {
	color: inherit;

	text-decoration: none;
}

.bxb-post-categories {
	display: flex;
	flex-wrap: wrap;
	align-items: center;

	gap: var(--wp--preset--spacing--xs);

	margin-block: var(--wp--preset--spacing--md) 0;

	font-size: var(--wp--preset--font-size--sm);
}

.bxb-post-categories a {
	display: inline-flex;
	align-items: center;

	padding: 0.35rem 0.7rem;

	border-radius: var(--wp--preset--border-radius--sm);

	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--primary-strong);

	font-weight: 700;
	line-height: 1.2;

	text-decoration: none;
}

.bxb-post-categories a:hover,
.bxb-post-categories a:focus-visible {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--background);
}

.bxb-single-post > .wp-block-post-content {
	margin-block-end: var(--wp--preset--spacing--xl);
}

.bxb-post-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;

	gap: var(--wp--preset--spacing--xs);

	margin-block: var(--wp--preset--spacing--xl);

	padding-block: var(--wp--preset--spacing--md);

	border-block: 1px solid var(--wp--preset--color--border);

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
}

.bxb-post-tags a {
	display: inline-flex;

	padding: 0.3rem 0.6rem;

	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--sm);

	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground);

	text-decoration: none;
}

.bxb-post-tags a:hover,
.bxb-post-tags a:focus-visible {
	border-color: var(--wp--preset--color--primary-light);

	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--primary);
}

.bxb-post-tags:not(:has(a)) {
	display: none;
}


/* Comments */

.bxb-post-comments {
	margin-block: var(--wp--preset--spacing--xxl);
}

.bxb-post-comments .wp-block-comments-title {
	margin-block-end: var(--wp--preset--spacing--lg);
}

.bxb-comment {
	margin-block: var(--wp--preset--spacing--lg);
}

.bxb-comment .wp-block-columns {
	margin-block-end: 0;
}

.bxb-comment-meta {
	display: flex;
	flex-wrap: wrap;

	gap: var(--wp--preset--spacing--xs);

	margin-block: var(--wp--preset--spacing--xs);
}

.bxb-comment-meta > * {
	margin-block: 0;
}

.bxb-comment .wp-block-comment-content {
	margin-block: var(--wp--preset--spacing--sm);
}

.bxb-comment .wp-block-comment-reply-link {
	margin-block-start: var(--wp--preset--spacing--sm);
}

.bxb-post-comments .wp-block-comments-pagination {
	display: flex;
	flex-wrap: wrap;

	gap: var(--wp--preset--spacing--sm);

	margin-block-start: var(--wp--preset--spacing--xl);
}

.bxb-post-comments .wp-block-comments-pagination > * {
	margin-block: 0;
}


/* Post navigation */

.bxb-post-navigation {
	display: flex;

	margin-block: var(--wp--preset--spacing--xxl);

	padding-block-start: var(--wp--preset--spacing--lg);

	border-block-start: 1px solid var(--wp--preset--color--border);

	gap: var(--wp--preset--spacing--lg);
}

.bxb-post-navigation .wp-block-post-navigation-link {
	margin: 0;
}

.bxb-post-navigation .post-navigation-link__label {
	display: block;

	margin-block-end: var(--wp--preset--spacing--xs);

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
}

@media (max-width: 781px) {

	.bxb-single-post,
	.bxb-single-staff,
	.bxb-single-service,
	.bxb-single-location,
	.bxb-single-vehicle,
	.bxb-single-zipcode {
		margin-block: var(--wp--preset--spacing--lg);
	}

	.bxb-content-header {
		margin-block-end: var(--wp--preset--spacing--lg);

		padding-block-end: var(--wp--preset--spacing--md);
	}

	.bxb-post-meta {
		flex-direction: column;
		align-items: flex-start;

		gap: var(--wp--preset--spacing--xs);
	}

	.bxb-post-comments {
		margin-block: var(--wp--preset--spacing--xl);
	}

	.bxb-post-navigation {
		align-items: stretch;

		gap: var(--wp--preset--spacing--md);
	}

	.bxb-post-navigation .wp-block-post-navigation-link {
		flex: 1 1 100%;
	}

}

/* ==========================================================================
   QUERY & QUERY LOOP
   ========================================================================== */

.bxb-post-grid {
	margin-block: 0;
}

.bxb-post-grid.is-layout-flow > * {
	margin-block-start: var(--wp--preset--spacing--md);
}

.bxb-post-card {
	display: flex;
	flex-direction: column;

	height: 100%;

	margin: 0;

	overflow: hidden;

	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--md);

	background: var(--wp--preset--color--background);

	box-shadow: var(--wp--preset--shadow--soft);
}

.bxb-post-card .wp-block-post-featured-image {
	margin: 0;
}

.bxb-post-card .wp-block-post-featured-image a {
	display: block;
}

.bxb-post-card .wp-block-post-featured-image img {
	display: block;

	width: 100%;

	aspect-ratio: 16 / 9;

	object-fit: cover;

	transition: transform 250ms ease;
}

.bxb-post-card:hover .wp-block-post-featured-image img {
	transform: scale(1.02);
}

.bxb-post-card-content {
	display: flex;
	flex: 1;
	flex-direction: column;

	gap: var(--wp--preset--spacing--sm);

	padding: var(--wp--preset--spacing--md);
}

.bxb-post-card-content > * {
	margin-block: 0;
}

.bxb-post-card-categories {
	display: flex;
	flex-wrap: wrap;

	gap: var(--wp--preset--spacing--xs);

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.05em;

	text-transform: uppercase;
}

.bxb-post-card-categories a {
	color: var(--wp--preset--color--primary-light);

	text-decoration: none;
}

.bxb-post-card-categories a:hover,
.bxb-post-card-categories a:focus-visible {
	color: var(--wp--preset--color--primary);

	text-decoration: underline;
}

.bxb-post-card .wp-block-post-title {
	margin: 0;

	font-size: var(--wp--preset--font-size--xl);
	line-height: 1.18;
}

.bxb-post-card .wp-block-post-title a {
	color: var(--wp--preset--color--foreground);

	text-decoration: none;
}

.bxb-post-card .wp-block-post-title a:hover,
.bxb-post-card .wp-block-post-title a:focus-visible {
	color: var(--wp--preset--color--primary);
}

.bxb-post-card .wp-block-post-excerpt {
	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.65;
}

.bxb-post-card .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.bxb-post-card-date {
	margin-top: auto !important;

	padding-top: var(--wp--preset--spacing--xs);

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--xs);
}


/* Empty query */

.bxb-query-empty {
	margin-block: var(--wp--preset--spacing--xl);

	padding: var(--wp--preset--spacing--lg);

	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--md);

	background: var(--wp--preset--color--surface);

	text-align: center;
}

.bxb-query-empty > * {
	margin-block: 0;
}

.bxb-query-empty .wp-block-heading {
	margin-block-end: var(--wp--preset--spacing--xs);
}


/* Pagination */

.bxb-query-pagination {
	display: flex;
	flex-wrap: wrap;

	margin-block: var(--wp--preset--spacing--xl) 0;

	padding-block-start: var(--wp--preset--spacing--lg);

	border-block-start: 1px solid var(--wp--preset--color--border);

	gap: var(--wp--preset--spacing--xs);
}

.bxb-query-pagination .page-numbers,
.bxb-query-pagination a {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 40px;
	min-height: 40px;

	padding-inline: var(--wp--preset--spacing--xs);

	border-radius: var(--wp--preset--border-radius--sm);

	color: var(--wp--preset--color--foreground);

	text-decoration: none;
}

.bxb-query-pagination .page-numbers.current {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--background);

	font-weight: 700;
}

.bxb-query-pagination a:hover,
.bxb-query-pagination a:focus-visible {
	background: var(--wp--preset--color--surface);
}

@media (max-width: 600px) {

	.bxb-post-card .wp-block-post-title {
		font-size: var(--wp--preset--font-size--lg);
	}

	.bxb-query-pagination {
		margin-block-start: var(--wp--preset--spacing--lg);

		padding-block-start: var(--wp--preset--spacing--md);
	}

}

/* ==========================================================================
   ARCHIVE TEMPLATES
   ========================================================================== */

.bxb-archive {
	margin-block: var(--wp--preset--spacing--xl);
}

.bxb-archive-header {
	margin-block-end: var(--wp--preset--spacing--xl);

	padding-block-end: var(--wp--preset--spacing--lg);

	border-block-end: 1px solid var(--wp--preset--color--border);
}

.bxb-archive-header > :first-child {
	margin-block-start: 0;
}

.bxb-archive-header > :last-child {
	margin-block-end: 0;
}

.bxb-archive-header .wp-block-query-title {
	margin: 0 0 var(--wp--preset--spacing--sm);
}

.bxb-archive-header .wp-block-term-description {
	max-width: 760px;

	margin: 0;

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--md);
	line-height: 1.65;
}

.bxb-archive-header .wp-block-term-description > :first-child {
	margin-block-start: 0;
}

.bxb-archive-header .wp-block-term-description > :last-child {
	margin-block-end: 0;
}

.bxb-archive .bxb-query {
	margin-block: var(--wp--preset--spacing--xl);
}


/* Title grid */

.bxb-title-grid .wp-block-post {
	margin-block-start: 0 !important;
}

.bxb-title-grid .wp-block-post-title {
	margin: 0;

	font-size: var(--wp--preset--font-size--lg);
	line-height: 1.3;
}

.bxb-title-grid .wp-block-post-title a {
	display: block;

	padding-block: var(--wp--preset--spacing--sm);

	border-block-end: 2px solid var(--wp--preset--color--primary);

	text-decoration: none;
}

.bxb-title-grid .wp-block-post-title a:hover,
.bxb-title-grid .wp-block-post-title a:focus-visible {
	border-block-end-color: var(--wp--preset--color--accent);
}

.bxb-archive .bxb-query-empty {
	margin-block: var(--wp--preset--spacing--xl);
}

.bxb-archive .bxb-query-pagination {
	margin-block-start: var(--wp--preset--spacing--xl);
}

@media (max-width: 781px) {

	.bxb-archive {
		margin-block: var(--wp--preset--spacing--lg);
	}

	.bxb-archive-header {
		margin-block-end: var(--wp--preset--spacing--lg);

		padding-block-end: var(--wp--preset--spacing--md);
	}

	.bxb-title-grid .wp-block-post-title {
		font-size: var(--wp--preset--font-size--md);
	}

	.bxb-archive .bxb-query-pagination {
		margin-block-start: var(--wp--preset--spacing--lg);
	}

}

/* ==========================================================================
   AUTHOR ARCHIVE
   ========================================================================== */

.bxb-author-archive {
	margin-block: var(--wp--preset--spacing--xl);
}

.bxb-author-header {
	margin-block-end: var(--wp--preset--spacing--xl);

	padding-block-end: var(--wp--preset--spacing--lg);

	border-block-end: 1px solid var(--wp--preset--color--border);
}

.bxb-author-header .wp-block-post-author {
	display: flex;
	align-items: center;

	gap: var(--wp--preset--spacing--md);

	margin: 0;
}

.bxb-author-header .wp-block-post-author__avatar {
	width: 96px;
	height: 96px;

	margin: 0;

	border-radius: 50%;
}

.bxb-author-header .wp-block-post-author__content {
	display: flex;
	flex-direction: column;

	gap: var(--wp--preset--spacing--xs);
}

.bxb-author-header .wp-block-post-author__name {
	margin: 0;

	font-size: var(--wp--preset--font-size--xl);
	font-weight: 700;
	line-height: 1.2;
}

.bxb-author-header .wp-block-post-author__bio {
	max-width: 680px;

	margin: 0;

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.65;
}

@media (max-width: 600px) {

	.bxb-author-archive {
		margin-block: var(--wp--preset--spacing--lg);
	}

	.bxb-author-header {
		margin-block-end: var(--wp--preset--spacing--lg);

		padding-block-end: var(--wp--preset--spacing--md);
	}

	.bxb-author-header .wp-block-post-author {
		align-items: flex-start;
	}

	.bxb-author-header .wp-block-post-author__avatar {
		width: 72px;
		height: 72px;
	}

	.bxb-author-header .wp-block-post-author__name {
		font-size: var(--wp--preset--font-size--lg);
	}

}

/* ==========================================================================
   SEARCH
   ========================================================================== */

.bxb-search {
	margin-block: var(--wp--preset--spacing--xl);
}

.bxb-search-header {
	margin-block-end: var(--wp--preset--spacing--xl);

	padding-block-end: var(--wp--preset--spacing--lg);

	border-block-end: 1px solid var(--wp--preset--color--border);
}

.bxb-search-header .wp-block-query-title {
	margin: 0;
}

@media (max-width: 781px) {

	.bxb-search {
		margin-block: var(--wp--preset--spacing--lg);
	}

	.bxb-search-header {
		margin-block-end: var(--wp--preset--spacing--lg);

		padding-block-end: var(--wp--preset--spacing--md);
	}

}

/* ==========================================================================
   404 PAGE
   ========================================================================== */

.bxb-404 {
	margin-block: var(--wp--preset--spacing--xxl);
}

.bxb-404-content {
	display: flex;
	flex-direction: column;
	align-items: center;

	max-width: 680px;

	margin-inline: auto;

	text-align: center;
}

.bxb-404-content > * {
	margin-block: 0;
}

.bxb-404-content .wp-block-heading:first-child {
	margin-block-end: var(--wp--preset--spacing--xs);

	color: var(--wp--preset--color--accent);

	font-size: clamp(4rem, 10vw, 7rem);
	font-weight: 700;
	line-height: 0.9;
	letter-spacing: -0.05em;
}

.bxb-404-content .wp-block-heading:nth-child(2) {
	margin-block-end: var(--wp--preset--spacing--sm);

	font-size: var(--wp--preset--font-size--xxl);
}

.bxb-404-content > .wp-block-paragraph {
	max-width: 560px;

	color: var(--wp--preset--color--muted);

	font-size: var(--wp--preset--font-size--md);
	line-height: 1.65;
}

.bxb-404-search {
	width: 100%;

	margin-block-start: var(--wp--preset--spacing--lg);
}

.bxb-404-content > .wp-block-buttons {
	margin-block-start: var(--wp--preset--spacing--md);
}

@media (max-width: 600px) {

	.bxb-404 {
		margin-block: var(--wp--preset--spacing--xl);
	}

	.bxb-404-content .wp-block-heading:first-child {
		font-size: clamp(3.5rem, 18vw, 5rem);
	}

	.bxb-404-content .wp-block-heading:nth-child(2) {
		font-size: var(--wp--preset--font-size--xl);
	}

	.bxb-404-search {
		margin-block-start: var(--wp--preset--spacing--md);
	}

}

/* ==========================================================================
   ARCHIVES + SINGLE PAGE - STAFF
   ========================================================================== */

/* Staff archive */

.bxb-archive-staff .bxb-archive-header {
	margin-block-end: var(--wp--preset--spacing--lg);
}

.bxb-archive-staff .bxb-query {
	margin-block-start: var(--wp--preset--spacing--lg);
}

.bxb-archive-staff .bxb-post-template,
.bxb-archive-staff .bxb-grid {
	margin-block: 0;
}

.bxb-archive-staff .bxb-grid > *,
.bxb-archive-staff .bxb-post-template > * {
	min-width: 0;
}

.bxb-archive-staff .wp-block-post-title {
	margin-block: 0;
}


/* Single staff */

.bxb-single-staff {
	width: 100%;
	padding-block: var(--wp--preset--spacing--xl);
}

/* Staff header */

.bxb-single-staff .bxb-staff-header {
	width: 100%;
	margin-block: 0 var(--wp--preset--spacing--xl);
}

/*
 * Use a two-column layout only when a featured image exists.
 * Plugin-generated staff pages may omit the featured image entirely.
 */

.bxb-staff-header:has(.wp-block-post-featured-image) {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: var(--wp--preset--spacing--xl);
	align-items: center;
}

.bxb-staff-header:not(:has(.wp-block-post-featured-image)) {
	display: block;
}

.bxb-staff-header .wp-block-post-featured-image {
	width: 240px;
	height: 240px;
	margin: 0;
	overflow: hidden;
	border-radius: var(--wp--custom--border-radius--medium, 8px);
}

.bxb-staff-header .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bxb-staff-header-content {
	width: 100%;
	margin: 0;
	min-width: 0;
}

.bxb-staff-header-content .wp-block-post-title {
	margin-block: 0 var(--wp--preset--spacing--sm);
}

.bxb-staff-header-content .wp-block-post-excerpt {
	margin: 0;
}

.bxb-staff-header-content .wp-block-post-excerpt p {
	margin: 0;
}


/* Staff content */

.bxb-single-staff .bxb-staff-content {
	width: 100%;
	margin-block: 0;
	min-width: 0;
}

.bxb-staff-content .entry-content {
	width: 100%;
	min-width: 0;
}

.bxb-staff-content > * {
	margin-block: var(--wp--preset--spacing--md) 0;
}

.bxb-staff-content > :first-child {
	margin-block-start: 0;
}


/* Plugin staff summary */

.bxb-staff-content .smartbusiness-summarybox {
	max-width: 100%;
	min-width: 0;
}

.bxb-staff-content .smartbusiness-summarybox img {
	max-width: 100%;
	height: auto;
}

.bxb-staff-content .smartbusiness-summarybox .summarybox-content {
	min-width: 0;
}


/* Responsive */

@media (max-width: 781px) {

	.bxb-single-staff {
		padding-block: var(--wp--preset--spacing--lg);
	}

	.bxb-single-staff .bxb-staff-header {
		margin-block-end: var(--wp--preset--spacing--lg);
	}

	.bxb-staff-header:has(.wp-block-post-featured-image) {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--lg);
		align-items: start;
	}

	.bxb-staff-header .wp-block-post-featured-image {
		width: 200px;
		height: 200px;
		margin-inline: auto;
	}

	.bxb-staff-header-content {
		text-align: center;
	}

}

/* ==========================================================================
   SINGLE PAGE - SERVICES
   ========================================================================== */

/* --------------------------------------------------------------------------
   Single Service Hero
   Individual service pages only.
   -------------------------------------------------------------------------- */

.bxb-service-hero .bxb-hero-locations {
	margin-block-end: var(--wp--preset--spacing--md);
}

.bxb-service-hero .bxb-hero-locations-label {
	margin-block-end: var(--wp--preset--spacing--xs);

	font-size: var(--wp--preset--font-size--sm);
}

.bxb-service-hero .bxb-hero-location-links {
	display: flex;
	flex-wrap: wrap;

	gap: 0.35rem 0.75rem;

	margin: 0;
}

.bxb-service-hero .bxb-hero-location-links a {
	white-space: nowrap;
}

.bxb-service-hero .bxb-hero-buttons {
	margin-block-end: var(--wp--preset--spacing--md);
}

.bxb-service-hero .bxb-hero-proof {
	display: flex;
	flex-wrap: wrap;
	align-items: center;

	gap: 0.35rem 0.75rem;

	margin: 0;

	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.4;
}


/* Responsive */

@media (max-width: 781px) {

	.bxb-service-hero .bxb-hero-locations {
		margin-block-end: var(--wp--preset--spacing--sm);
	}

	.bxb-service-hero .bxb-hero-location-links {
		gap: 0.35rem 0.65rem;
	}

	.bxb-service-hero .bxb-hero-buttons {
		margin-block-end: var(--wp--preset--spacing--sm);
	}

}

@media (max-width: 480px) {

	.bxb-service-hero .bxb-hero-location-links,
	.bxb-service-hero .bxb-hero-proof {
		gap: 0.35rem 0.5rem;
	}

}

/* ==========================================================================
   SINGLE PAGE - LOCATION
   ==========================================================================


/* ==========================================================================
   ACCESSIBILITY & REDUCED MOTION
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	.bxb-card-standard:hover,
	.bxb-card-icon:hover,
	.bxb-card-accent:hover,
	.bxb-card-quote:hover,
	.bxb-service-feature:hover,
	.bxb-faq:hover,
	.bxb-highlights-membership:hover,
	.bxb-about-location-card:hover,
	.bxb-cta .wp-block-button__link:hover,
	.bxb-hero-buttons .wp-block-button__link:hover {
		transform: none;
	}

	.bxb-card-standard:hover .bxb-card-image img,
	.bxb-service-feature:hover .bxb-service-feature-image img,
	.bxb-card-accent:hover .bxb-card-accent-icon,
	.bxb-post-card:hover .wp-block-post-featured-image img {
		transform: none;
	}

	.bxb-testimonial-card .bxb-card-link a:hover svg,
	.bxb-testimonial-card .bxb-card-link a:focus-visible svg {
		transform: none;
	}

}

/* ==========================================================================
   CONTACT FORM 7
   ========================================================================== */
:root {
	--cf7-extend-color-primary: var(--wp--preset--color--primary);
	--cf7-extend-color-accent: var(--wp--preset--color--accent);
	--cf7-extend-color-background: var(--wp--preset--color--background);
	--cf7-extend-color-surface: var(--wp--preset--color--surface);
	--cf7-extend-color-foreground: var(--wp--preset--color--foreground);
	--cf7-extend-color-muted: var(--wp--preset--color--muted);
	--cf7-extend-color-border: var(--wp--preset--color--border);
}