/* Blockmason Pro – header and footer variants. */

/* Header with centred logo: stacked, then one compact line when the page scrolls. */
.bmp-bar-centered .bmp-bar-centered__inner {
	align-items: center;
}
.bmp-bar-centered .blockmason-brand .wp-block-site-title {
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
}
header.is-stuck .bmp-bar-centered .bmp-bar-centered__inner {
	flex-direction: row !important;
	justify-content: space-between !important;
}
header.is-stuck .bmp-bar-centered .blockmason-brand .wp-block-site-title {
	font-size: 1.35rem;
}
@media (max-width: 1199.98px) {
	.bmp-bar-centered .bmp-bar-centered__inner {
		flex-direction: row !important;
		justify-content: space-between !important;
	}
}

/* Header with contact details. */
.bmp-header-top {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}
header.is-overlay .bmp-header-top {
	background: transparent;
	color: var(--wp--preset--color--base);
	border-bottom: 1px solid rgb(255 255 255 / 0.14);
}
header.is-overlay .bmp-header-top a {
	color: inherit;
}
.bmp-info__item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.35;
}
.bmp-info__item a {
	color: inherit;
	font-weight: 700;
	text-decoration: none;
}
.bmp-info__item a:hover {
	color: var(--wp--preset--color--accent);
}
.bmp-info__label {
	display: block;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.7;
}
.bmp-info__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 2.6rem;
	height: 2.6rem;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent-contrast);
}
.bmp-info__icon svg,
.bmp-contact-card__icon svg {
	width: 1.3rem;
	height: 1.3rem;
}
.bmp-bar-dark.blockmason-bar a:not(.wp-element-button) {
	color: var(--wp--preset--color--base);
}
header.is-stuck .bmp-bar-dark.blockmason-bar {
	background: var(--wp--preset--color--contrast);
}

/* Footers. */
.bmp-footer-nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--base);
	text-decoration: none;
}
.bmp-footer-nav .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--accent);
}
.bmp-footer-centered .blockmason-brand {
	justify-content: center;
}
.bmp-footer-centered .blockmason-footer__muted {
	max-width: 32rem;
	margin-inline: auto;
}
.bmp-contact-card {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 1rem;
	align-items: start;
}
.bmp-contact-card > * {
	grid-column: 2;
	margin: 0;
}
.bmp-contact-card > .bmp-contact-card__icon {
	grid-column: 1;
	grid-row: 1 / span 2;
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--accent);
}
.bmp-contact-card h2 {
	margin-bottom: 0.3rem;
}
.bmp-contact-card a {
	color: inherit;
	font-weight: 700;
}

/* ---------- Pro sections ---------- */
.bmp-icon {
	display: inline-grid;
	flex: none;
	place-items: center;
	width: 1.4rem;
	height: 1.4rem;
	vertical-align: middle;
}
.bmp-icon svg {
	width: 100%;
	height: 100%;
}
.bmp-icon--square {
	width: 3.25rem;
	height: 3.25rem;
	padding: 0.85rem;
	box-sizing: border-box;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent-contrast);
}

/* Client logos */
.bmp-logos__title {
	margin-bottom: var(--wp--preset--spacing--40) !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	opacity: 0.7;
}
.bmp-logos {
	align-items: center;
}
.bmp-logo {
	margin: 0;
	text-align: center;
}
.bmp-logo img {
	width: 100%;
	max-width: 170px;
	height: auto;
	opacity: 0.55;
	filter: grayscale(1);
	transition: opacity 0.2s ease;
}
.bmp-logo img:hover {
	opacity: 0.9;
}
.is-style-section-dark .bmp-logo img {
	filter: grayscale(1) invert(1);
}

/* Certifications, services with icons */
.bmp-cert > *,
.bmp-svc > * {
	margin-block: 0 0.6rem;
}
.bmp-cert .bmp-icon--square {
	margin-bottom: 1rem;
}
.bmp-svc {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 1rem;
	border: 1px solid var(--wp--preset--color--border);
	transition: border-color 0.2s ease;
}
.bmp-svc:hover {
	border-color: var(--wp--preset--color--accent);
}
.bmp-svc > * {
	margin: 0;
}

/* Hero with survey card */
.bmp-hero-callback .wp-block-cover__inner-container {
	color: var(--wp--preset--color--base);
}
.bmp-callback > * {
	margin-block: 0 1rem;
}
.bmp-callback > :last-child {
	margin-bottom: 0;
}
.bmp-callback__phone {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 800;
}
.bmp-callback__phone a {
	color: inherit;
	text-decoration: none;
}
.bmp-callback__phone .bmp-icon {
	color: var(--bmp-accent-on-dark, var(--wp--preset--color--accent));
}

/* Comparison table */
.bmp-compare table {
	width: 100%;
	border-collapse: collapse;
}
.bmp-compare th,
.bmp-compare td {
	padding: 0.9rem 1rem;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.bmp-compare thead th {
	border-bottom: 3px solid var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.bmp-compare thead th:nth-child(2) {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent-contrast);
}
.bmp-compare td:nth-child(2) {
	background: var(--wp--preset--color--base-2);
}
.bmp-yes {
	font-size: 1.2rem;
	font-weight: 800;
}
.bmp-no {
	color: var(--wp--preset--color--contrast-2);
}

/* Locations */
.bmp-loc {
	padding: var(--wp--preset--spacing--50);
	border-top: 4px solid var(--wp--preset--color--accent);
	background: var(--wp--preset--color--base-2);
}
.bmp-loc > * {
	margin-block: 0 0.8rem;
}
.bmp-loc__line {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	margin: 0 0 0.6rem;
}
.bmp-loc__line .bmp-icon {
	margin-top: 0.15rem;
}
.bmp-loc__line a {
	color: inherit;
}

/* FAQ in two columns */
.bmp-faq__item {
	margin: 0 0 0.75rem;
	padding: 1.1rem 1.25rem;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
}
.bmp-faq__item summary {
	cursor: pointer;
	font-weight: 700;
}
.bmp-faq__item[open] {
	border-color: var(--wp--preset--color--accent);
}
.bmp-faq__item p {
	margin: 0.8rem 0 0;
}

/* Founder quote */
.bmp-founder__mark {
	display: block;
	height: 3.5rem;
	color: var(--wp--preset--color--accent);
	font-family: Georgia, serif;
	font-size: 7rem;
	font-weight: 700;
	line-height: 1;
}
.bmp-founder__quote {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	line-height: 1.4;
}

/* Warranty */
.bmp-warranty__badge {
	display: grid;
	place-items: center;
	align-content: center;
	width: min(100%, 13rem);
	aspect-ratio: 1;
	margin-inline: auto;
	border: 6px solid var(--wp--preset--color--accent);
	border-radius: 50%;
	text-align: center;
}
.bmp-warranty__num {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 5rem;
	font-weight: 800;
	line-height: 1;
}
.bmp-warranty__unit {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Case study facts */
.bmp-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(8.5rem, max-content));
	gap: var(--wp--preset--spacing--50);
	margin: 0;
	padding: var(--wp--preset--spacing--40) 0;
	border-block: 1px solid var(--wp--preset--color--border);
}
.bmp-facts dt {
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.75;
}
.bmp-facts dd {
	margin: 0.2rem 0 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 800;
}

/* Emergency band */
.bmp-emergency__text {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	margin: 0;
}
.bmp-emergency .wp-block-button__link {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* Editor message when a block has nothing to show. */
.bmp-empty {
	margin: 0;
	padding: 1.25rem;
	border: 1px dashed currentColor;
	font-size: 0.9rem;
}
