/* Most styling lives in theme.json. Only add what theme.json can't do. */

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
main {
    margin: 0;
}
/* Sticky header */
.site-header {
	position: relative;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

/* Logo lockup */
.bg-logo {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	text-decoration: none;
}
.bg-logo svg {
	height: 3rem;
	width: auto;
	transition: transform 0.2s ease;
}
.bg-logo:hover svg {
	transform: scale(1.05);
}
.bg-logo__text {
	display: flex;
	flex-direction: column;
	padding-top: 0.25rem;
}
.bg-logo__name {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.875rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.025em;
	color: var(--wp--preset--color--charcoal);
}
.bg-logo__tag {
	margin-top: 0.25rem;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--wp--preset--color--moss);
}
.bg-logo--light .bg-logo__name {
	color: #fff;
}
.bg-logo--light svg .bg-logo__b {
	stroke: #fff;
}

/* Footer accent border */
footer {
    margin: 0;
}
.site-footer {
	border-top: 8px solid var(--wp--preset--color--moss);
}
.site-footer a:hover {
	color: var(--wp--preset--color--sage);
}

/* ==========================================================================
   SERVICES – single service page
   ========================================================================== */

/* Hero */
.bg-hero {
	background-image: linear-gradient(to right, rgba(37, 50, 55, 0.95) 0%, rgba(37, 50, 55, 0.7) 100%);
}
.bg-breadcrumb {
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #fff;
}
.bg-breadcrumb p {
	margin: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: inherit;
	font-weight: inherit;
}
.bg-breadcrumb a {
	color: var(--wp--preset--color--sage);
	text-decoration: none;
}
.bg-breadcrumb a:hover {
	color: #fff;
}
.bg-breadcrumb > p:first-child::after {
	content: "›";
	margin-left: 0.5rem;
	color: var(--wp--preset--color--sage);
}
.bg-hero__subtitle {
	max-width: 42rem;
	margin-top: 1rem;
	font-size: 1.125rem;
	font-weight: 300;
	color: var(--wp--preset--color--light);
}

/* Main content */
.bg-service-content {
	color: var(--wp--preset--color--gray);
	font-size: 1.125rem;
	font-weight: 300;
}
.bg-service-content h2,
.bg-service-content h3 {
	margin-top: 2.5rem;
}

/* Sticky sidebar (desktop only) */
@media (min-width: 782px) {
	.bg-sticky {
		position: sticky;
		top: 8rem;
	}
}

/* Sidebar cards */
.bg-card {
	padding: 1.5rem;
	border: 1px solid rgba(226, 232, 240, 0.6);
	border-radius: 8px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.bg-card > * + * {
	margin-top: 1rem;
}

/* Expert contact card */
.bg-expert__icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 4rem;
	border: 2px solid #fff;
	border-radius: 50%;
	background: var(--wp--preset--color--moss);
	color: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.bg-expert__title {
	margin: 0;
	font-size: 1.125rem;
}
.bg-expert__team {
	margin: 0;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--wp--preset--color--moss);
}
.bg-expert__text {
	padding-bottom: 1.25rem;
	border-bottom: 1px solid rgba(226, 232, 240, 0.6);
	font-size: 0.875rem;
	font-weight: 300;
	line-height: 1.6;
	color: var(--wp--preset--color--gray);
}

/* Phone / email links (Button blocks styled as icon links) */
.bg-contact-link .wp-block-button__link {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0;
	border-radius: 0;
	background: none;
	color: var(--wp--preset--color--charcoal);
	font-size: 0.875rem;
	font-weight: 500;
}
.bg-contact-link .wp-block-button__link:hover {
	background: none;
	color: var(--wp--preset--color--moss);
}
.bg-contact-link .wp-block-button__link::before {
	content: "";
	flex-shrink: 0;
	width: 2.25rem;
	height: 2.25rem;
	border: 1px solid #f1f5f9;
	border-radius: 50%;
	background: #fff center / 16px no-repeat;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	transition: background-color 0.2s, border-color 0.2s;
}
.bg-contact-link .wp-block-button__link:hover::before {
	border-color: var(--wp--preset--color--moss);
	background-color: var(--wp--preset--color--moss);
}
.bg-contact-link--phone .wp-block-button__link::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415D43' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}
.bg-contact-link--phone .wp-block-button__link:hover::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}
.bg-contact-link--email .wp-block-button__link::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415D43' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
}
.bg-contact-link--email .wp-block-button__link:hover::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
}

/* Testimonial card */
.bg-testimonial {
	position: relative;
	overflow: hidden;
	border-color: transparent;
}
.bg-testimonial::before {
	content: "\201C";
	position: absolute;
	top: -0.5rem;
	left: 1rem;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 5rem;
	line-height: 1;
	color: rgba(112, 141, 113, 0.2);
}
.bg-testimonial__quote {
	position: relative;
	padding-top: 1rem;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 0.875rem;
	font-style: italic;
	line-height: 1.65;
	color: #fff;
}
.bg-testimonial__quote::before { content: "\201C"; }
.bg-testimonial__quote::after { content: "\201D"; }
.bg-testimonial__author {
	padding-top: 1rem;
	border-top: 1px solid #475569;
}
.bg-testimonial__author p {
	margin: 0;
}
.bg-testimonial__initials {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--wp--preset--color--moss);
	color: #fff;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 0.75rem;
	font-weight: 700;
}
.bg-testimonial__name {
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--wp--preset--color--light);
}
.bg-testimonial__role {
	font-size: 0.625rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sage);
}

/* Other services list */
.bg-other-services {
	border-color: #e2e8f0;
}
.bg-other-services__title {
	margin: 0;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid #f1f5f9;
	font-size: 1.25rem;
}
.bg-other-services__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.bg-other-services__list li + li {
	margin-top: 0.75rem;
}
.bg-other-services__list .wp-block-post-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.875rem;
	font-weight: 500;
}
.bg-other-services__list a {
	display: flex;
	justify-content: space-between;
	color: var(--wp--preset--color--gray);
	text-decoration: none;
}
.bg-other-services__list a::after {
	content: "→";
	opacity: 0;
	color: var(--wp--preset--color--moss);
	transition: opacity 0.2s;
}
.bg-other-services__list a:hover {
	color: var(--wp--preset--color--moss);
}
.bg-other-services__list a:hover::after {
	opacity: 1;
}

/* Bottom CTA */
.bg-cta {
	border-top: 1px solid rgba(112, 141, 113, 0.2);
}
.bg-cta__text {
	font-size: 1.125rem;
	font-weight: 300;
	color: rgba(249, 250, 251, 0.9);
}

/* Button style: Light */
.wp-block-button.is-style-bg-light .wp-block-button__link {
	padding: 1rem 2rem;
	background: #fff;
	color: var(--wp--preset--color--moss);
	font-size: 1.125rem;
	font-weight: 700;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
.wp-block-button.is-style-bg-light .wp-block-button__link:hover {
	background: var(--wp--preset--color--beige);
	color: var(--wp--preset--color--moss);
}

/* ==========================================================================
   SERVICES – archive (/services/)
   ========================================================================== */

/* Centered hero */
.bg-eyebrow {
	margin-bottom: 1rem;
}
.bg-eyebrow span {
	display: inline-block;
	padding: 0.25rem 0.75rem;
	border: 1px solid rgba(112, 141, 113, 0.3);
	border-radius: 4px;
	background: rgba(37, 50, 55, 0.5);
	color: var(--wp--preset--color--sage);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.bg-hero__intro {
	margin-top: 1.5rem;
	font-size: clamp(1.125rem, 2vw, 1.25rem);
	font-weight: 300;
	line-height: 1.65;
	color: #cbd5e1;
}

/* Service cards */
.bg-service-grid {
	margin: 0;
	padding: 0;
	list-style: none;
}
.bg-service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 2rem;
	border: 1px solid #f1f5f9;
	border-bottom: 4px solid transparent;
	border-radius: 8px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	transition: box-shadow 0.3s, border-color 0.3s;
}
.bg-service-card:hover {
	border-bottom-color: var(--wp--preset--color--moss);
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

/* Icon in a beige circle; turns white on a moss circle on hover */
.bg-service-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	margin: 0 0 1.25rem;
	border-radius: 50%;
	background: var(--wp--preset--color--beige);
	transition: background-color 0.3s;
}
.bg-service-card__icon img {
	width: 1.5rem;
	height: 1.5rem;
	object-fit: contain;
	transition: filter 0.3s;
}
.bg-service-card:hover .bg-service-card__icon {
	background: var(--wp--preset--color--moss);
}
.bg-service-card:hover .bg-service-card__icon img {
	filter: brightness(0) invert(1);
}

.bg-service-card__title {
	margin: 0 0 0.75rem;
	font-size: 1.25rem;
}

/* Excerpt grows so "Learn More" sits at the bottom of every card */
.bg-service-card__excerpt {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	margin: 0;
}
.bg-service-card__excerpt .wp-block-post-excerpt__excerpt {
	margin: 0 0 1.5rem;
	font-size: 0.875rem;
	font-weight: 300;
	line-height: 1.65;
	color: var(--wp--preset--color--gray);
}
.bg-service-card__excerpt .wp-block-post-excerpt__more-text {
	margin: auto 0 0;
}
.bg-service-card__excerpt .wp-block-post-excerpt__more-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--wp--preset--color--moss);
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
}
.bg-service-card__excerpt .wp-block-post-excerpt__more-link::after {
	content: "→";
	font-size: 0.75rem;
}
.bg-service-card__excerpt .wp-block-post-excerpt__more-link:hover {
	color: var(--wp--preset--color--charcoal);
}

/* Whole card is clickable (via the "Learn More" link) */
.bg-service-card__excerpt .wp-block-post-excerpt__more-link::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 8px;
}
/* Service card subtitle */
.bg-service-card__subtitle {
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--wp--preset--color--gray);
}

/* ==========================================================================
   LAYOUT – full-width pages & site structure
   ========================================================================== */

/* No gaps between header, main and footer */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* Sections on full-width pages sit directly on top of each other */
.bg-sections > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Sticky header: must be on the template-part wrapper to work */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
}

/* ==========================================================================
   HOMEPAGE – hero
   ========================================================================== */

.bg-home-hero {
	position: relative;
	background-position: center;
	background-size: cover;
}

/* Dark gradient overlay (sits on top of the background photo) */
.bg-home-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(37, 50, 55, 0.95) 0%, rgba(37, 50, 55, 0.7) 100%);
	pointer-events: none;
}
.bg-home-hero > * {
	position: relative;
	z-index: 1;
}

.bg-home-hero .bg-eyebrow {
	margin-bottom: 1.5rem;
}
.bg-home-hero .bg-eyebrow span {
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.bg-home-hero__title {
	margin-top: 0;
	line-height: 1.15;
}
.bg-home-hero .bg-hero__intro {
	max-width: 42rem;
	margin-bottom: 2.5rem;
}

/* Large buttons */
.wp-block-button.bg-btn-lg .wp-block-button__link {
	padding: 1rem 2rem;
	font-size: 1.125rem;
	font-weight: 600;
}
.bg-home-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2);
}
.bg-home-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: var(--wp--preset--color--sage);
}

/* Outline button on dark background */
.bg-home-hero .is-style-outline .wp-block-button__link {
	border: 1px solid rgba(255, 255, 255, 0.3);
	background: transparent;
	color: #fff;
}
.bg-home-hero .is-style-outline .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.1);
}

/* Buttons stack full-width on small screens */
@media (max-width: 599px) {
	.bg-home-hero__buttons {
		flex-direction: column;
		align-items: stretch;
	}
	.bg-home-hero__buttons .wp-block-button__link {
		width: 100%;
		text-align: center;
	}
}

/* ==========================================================================
   HOMEPAGE – welcome & core services
   ========================================================================== */

/* Shared section heading styles */
.bg-section-title {
	margin-top: 0;
	font-size: clamp(1.875rem, 3vw, 2.25rem);
}
.bg-kicker {
	margin-bottom: 0.5rem;
	color: var(--wp--preset--color--moss);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.bg-section-intro {
	margin-top: 1rem;
	font-size: 1.125rem;
	color: var(--wp--preset--color--gray);
}
.bg-section-head {
	margin-bottom: 4rem;
}
.bg-section-head > * + * {
	margin-top: 0;
}

/* Short moss divider line */
.wp-block-separator.bg-divider {
	width: 5rem;
	height: 4px;
	margin: 1.5rem auto 2.5rem;
	border: 0;
	border-radius: 9999px;
	background: var(--wp--preset--color--moss);
	opacity: 1;
}

/* Large intro paragraphs */
.bg-lead {
	font-size: clamp(1.125rem, 2vw, 1.25rem);
	font-weight: 300;
	line-height: 1.65;
	color: var(--wp--preset--color--gray);
}

/* Core services section */
.bg-core-services {
	border-top: 1px solid rgba(226, 232, 240, 0.6);
}

/* Larger card variant (homepage) */
.bg-service-card--lg {
	padding: 2.5rem;
}
.bg-service-card--lg .bg-service-card__icon {
	width: 3.5rem;
	height: 3.5rem;
	margin-bottom: 1.5rem;
}
.bg-service-card--lg .bg-service-card__icon img {
	width: 1.75rem;
	height: 1.75rem;
}
.bg-service-card--lg .bg-service-card__title {
	font-size: 1.5rem;
}
.bg-service-card--lg .bg-service-card__excerpt .wp-block-post-excerpt__excerpt {
	font-size: 1rem;
}
.bg-service-card--lg .bg-service-card__excerpt .wp-block-post-excerpt__more-link {
	font-size: 1rem;
}

/* "View All Services" – white outline button */
.bg-btn-quiet .wp-block-button__link {
	padding: 0.75rem 2rem;
	border: 1px solid #cbd5e1;
	background: #fff;
	color: var(--wp--preset--color--charcoal);
	font-weight: 600;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	transition: all 0.2s;
}
.bg-btn-quiet .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--moss);
	background: var(--wp--preset--color--moss);
	color: #fff;
}

/* ==========================================================================
   HOMEPAGE – why choose
   ========================================================================== */

.bg-why__intro {
	margin-bottom: 2.5rem;
	font-size: 1.125rem;
	font-weight: 300;
	line-height: 1.65;
	color: var(--wp--preset--color--gray);
}

/* Feature list with sage check icons */
.bg-features > * + * {
	margin-top: 2rem;
}
.bg-feature {
	position: relative;
	padding-left: 2.75rem;
}
.bg-feature::before {
	content: "";
	position: absolute;
	top: 0.125rem;
	left: 0;
	width: 1.5rem;
	height: 1.5rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%23708D71'/%3E%3Cpath d='M7 12.5l3.2 3.2L17 9' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.bg-feature__title {
	margin: 0 0 0.5rem;
	font-size: 1.25rem;
}
.bg-feature__text {
	margin: 0;
	font-weight: 300;
	color: var(--wp--preset--color--gray);
}

/* Photo with two tilted decorative frames behind it */
.bg-framed-image {
	position: relative;
	margin: 1rem;
}
.bg-framed-image::before,
.bg-framed-image::after {
	content: "";
	position: absolute;
	inset: -1rem;
	border-radius: 8px;
}
.bg-framed-image::before {
	background: var(--wp--preset--color--beige);
	transform: rotate(2deg);
}
.bg-framed-image::after {
	border: 2px solid rgba(65, 93, 67, 0.2);
	transform: rotate(-2deg);
}
.bg-framed-image img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: auto;
	border-radius: 8px;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
	object-fit: cover;
}

/* ==========================================================================
   HOMEPAGE – software & testimonials
   ========================================================================== */

/* Software strip */
.bg-software {
	border-top: 1px solid #f1f5f9;
	border-bottom: 1px solid #f1f5f9;
}
.bg-software__label {
	margin-bottom: 2rem;
	color: var(--wp--preset--color--gray);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.bg-software__list {
	gap: 2.5rem 5rem;
	opacity: 0.6;
	filter: grayscale(1);
	transition: opacity 0.5s, filter 0.5s;
}
.bg-software__list:hover {
	opacity: 1;
	filter: grayscale(0);
}
.bg-software__item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	color: var(--wp--preset--color--charcoal);
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	font-weight: 700;
}
.bg-software__item::before {
	content: "";
	width: 0.6em;
	height: 0.6em;
	border-radius: 2px;
	background: var(--wp--preset--color--moss);
}

/* Testimonials */
.bg-testimonials .bg-divider {
	margin-bottom: 4rem;
}
.bg-testimonial-grid {
	margin: 0;
	padding: 0;
	list-style: none;
}
.bg-review {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 2.5rem;
	border: 1px solid #f1f5f9;
	border-radius: 8px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.bg-review::before {
	content: "\201C";
	position: absolute;
	top: 1rem;
	left: 2rem;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 5rem;
	line-height: 1;
	color: rgba(112, 141, 113, 0.3);
}
.bg-review__quote {
	position: relative;
	flex-grow: 1;
	margin: 0 0 2rem;
	padding-top: 1.5rem;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.125rem;
	font-style: italic;
	line-height: 1.65;
	color: var(--wp--preset--color--charcoal);
}
.bg-review__quote::before { content: "\201C"; }
.bg-review__quote::after { content: "\201D"; }
.bg-review__author {
	padding-top: 1.5rem;
	border-top: 1px solid #f1f5f9;
}
.bg-review__author p {
	margin: 0;
}
.bg-review__initials {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--wp--preset--color--charcoal);
	color: #fff;
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 700;
}
.bg-testimonial-grid > li:nth-child(even) .bg-review__initials {
	background: var(--wp--preset--color--moss);
}
.bg-review__name {
	font-weight: 700;
	color: var(--wp--preset--color--charcoal);
}
.bg-review__role {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--moss);
}

/* ==========================================================================
   HOMEPAGE – final CTA
   ========================================================================== */

.bg-final-cta {
	position: relative;
	overflow: hidden;
}

/* Subtle cube pattern (replaces the external texture image) */
.bg-final-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	opacity: 0.1;
	background-image: url("../images/cubes.png");
	background-repeat: repeat;
	pointer-events: none;
}
.bg-final-cta > * {
	position: relative;
	z-index: 1;
}

.bg-final-cta__title {
	margin-top: 0;
	margin-bottom: 1.5rem;
	font-size: clamp(1.875rem, 4.5vw, 3rem);
}
.bg-final-cta__text {
	margin-bottom: 2.5rem;
	font-size: clamp(1.125rem, 2vw, 1.25rem);
	font-weight: 300;
	color: var(--wp--preset--color--light);
}

/* Outline button on moss background */
.bg-final-cta .is-style-outline .wp-block-button__link {
	border: 1px solid rgba(255, 255, 255, 0.5);
	background: transparent;
	color: #fff;
	font-weight: 700;
}
.bg-final-cta .is-style-outline .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.1);
}

/* Buttons stack full-width on small screens (reusable) */
@media (max-width: 599px) {
	.bg-stack-mobile {
		flex-direction: column;
		align-items: stretch;
	}
	.bg-stack-mobile .wp-block-button__link {
		width: 100%;
		text-align: center;
	}
}

/* ==========================================================================
   ABOUT US
   ========================================================================== */

/* Page hero title (reusable for About, Contact, etc.) */
.bg-page-title {
	margin-top: 0;
	margin-bottom: 1.5rem;
	font-size: clamp(2.25rem, 4.5vw, 3rem);
	line-height: 1.15;
}
.bg-page-hero .bg-hero__intro {
	margin-top: 0;
	color: var(--wp--preset--color--light);
}

/* Text column */
.bg-about__text {
	color: var(--wp--preset--color--gray);
	font-size: 1.125rem;
	font-weight: 300;
	line-height: 1.75;
}
.bg-about__text > p {
	margin: 0 0 1.5rem;
}
.bg-about__text > p.bg-about__lead {
	margin-bottom: 2rem;
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.6;
	color: var(--wp--preset--color--charcoal);
}

/* Pull quote */
.wp-block-quote.bg-pullquote {
	margin: 2.5rem 0;
	padding: 0.5rem 0 0.5rem 1.5rem;
	border-left: 4px solid var(--wp--preset--color--moss);
	border-radius: 0 8px 8px 0;
	background: rgba(249, 250, 251, 0.5);
}
.wp-block-quote.bg-pullquote p {
	margin: 0;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.125rem;
	font-style: italic;
	color: var(--wp--preset--color--charcoal);
}
.wp-block-quote.bg-pullquote p::before { content: "\201C"; }
.wp-block-quote.bg-pullquote p::after { content: "\201D"; }

/* Photo + decorations */
.bg-about__media {
	position: relative;
}
.bg-about__media::before {
	content: "";
	position: absolute;
	top: -1.5rem;
	right: -1.5rem;
	width: 8rem;
	height: 8rem;
	border-radius: 50%;
	background: rgba(112, 141, 113, 0.2);
	filter: blur(40px);
}
.bg-about__photo {
	position: relative;
	z-index: 1;
	margin: 0;
}
.bg-about__photo::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border: 2px solid rgba(65, 93, 67, 0.2);
	border-radius: 8px;
	transform: translate(-0.5rem, 0.5rem);
}
.bg-about__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 8px;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
	object-fit: cover;
}

/* Callout box overlapping the photo */
.bg-callout {
	position: relative;
	z-index: 2;
	max-width: 24rem;
	margin: -3rem 0 0 2rem;
	padding: 2rem;
	border-bottom: 4px solid var(--wp--preset--color--moss);
	border-radius: 8px;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.15);
}
@media (min-width: 640px) {
	.bg-callout {
		margin-left: -2rem;
	}
}
.bg-callout__head {
	margin-bottom: 0.75rem;
}
.bg-callout__icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--wp--preset--color--moss);
	color: #fff;
}
.bg-callout__title {
	margin: 0;
	font-size: 1.25rem;
	line-height: 1.25;
}
.bg-callout__text {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 300;
	line-height: 1.65;
	color: #cbd5e1;
}

/* Callout without a photo: no overlap */
.bg-about__media:not(:has(.bg-about__photo)) .bg-callout {
	margin: 0;
}

/* ==========================================================================
   CONTACT US
   ========================================================================== */

/* Form card */
.bg-form-card {
	padding: clamp(2rem, 4vw, 2.5rem);
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	scroll-margin-top: 8rem;
}
.bg-form-card__title {
	margin: 0 0 0.5rem;
	font-size: 1.5rem;
}
.bg-form-card__intro {
	margin: 0 0 2rem;
	font-size: 0.875rem;
	font-weight: 300;
	color: var(--wp--preset--color--gray);
}

/* Fluent Forms – match the mockup */
.bg-form-card .fluentform .ff-el-group {
	margin-bottom: 1.5rem;
}
.bg-form-card .fluentform .ff-el-input--label label {
	margin-bottom: 0.5rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--charcoal);
}
.bg-form-card .fluentform .ff-el-is-required.asterisk-right label::after {
	color: var(--wp--preset--color--moss);
}
.bg-form-card .fluentform .ff-el-form-control {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background: #fff;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 300;
	color: var(--wp--preset--color--charcoal);
	transition: border-color 0.2s, box-shadow 0.2s;
}
.bg-form-card .fluentform .ff-el-form-control:focus {
	border-color: var(--wp--preset--color--moss);
	outline: none;
	box-shadow: 0 0 0 3px rgba(65, 93, 67, 0.25);
}
.bg-form-card .fluentform textarea.ff-el-form-control {
	resize: vertical;
}
.bg-form-card .fluentform .ff-btn-submit {
	padding: 0.75rem 2rem;
	border: 0;
	border-radius: 4px;
	background: var(--wp--preset--color--moss) !important;
	color: #fff !important;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 700;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
	cursor: pointer;
	transition: background-color 0.2s;
}
.bg-form-card .fluentform .ff-btn-submit:hover {
	background: var(--wp--preset--color--charcoal) !important;
	opacity: 1;
}
.bg-form-card .fluentform .ff-el-tc label {
	font-size: 0.875rem;
	font-weight: 300;
	color: var(--wp--preset--color--gray);
}
.bg-form-card .ff-message-success {
	padding: 1.25rem;
	border: 0;
	border-left: 4px solid var(--wp--preset--color--moss);
	border-radius: 0 8px 8px 0;
	background: #fff;
	color: var(--wp--preset--color--charcoal);
	box-shadow: none;
}
@media (max-width: 599px) {
	.bg-form-card .fluentform .ff-btn-submit {
		width: 100%;
	}
}

/* Contact details */
.bg-contact__title {
	margin: 0 0 2rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid #f1f5f9;
	font-size: 1.5rem;
}
.bg-contact-item {
	position: relative;
	min-height: 3rem;
	margin: 0 0 2rem;
	padding-left: 4rem;
}
.bg-contact-item::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--wp--preset--color--beige) center / 20px no-repeat;
}
.bg-contact-item h4 {
	margin: 0 0 0.25rem;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 1rem;
	font-weight: 700;
}
.bg-contact-item p {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 300;
	line-height: 1.65;
	color: var(--wp--preset--color--gray);
}
.bg-contact-item a {
	color: inherit;
	text-decoration: none;
}
.bg-contact-item a:hover {
	color: var(--wp--preset--color--moss);
}

/* Icons (moss, inside the beige circle) */
.bg-contact-item--location::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415D43' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}
.bg-contact-item--phone::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415D43' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}
.bg-contact-item--email::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415D43' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
}
.bg-contact-item--hours::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415D43' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E");
}

/* Map */
.bg-map {
	position: relative;
	height: 18rem;
	margin-top: 2.5rem;
	overflow: hidden;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	background: #f1f5f9;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}
.bg-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}