/*
 * GreenFlow CMS — public block styles.
 *
 * Layout only — no colours or typography, so the active theme's styles cascade.
 * Override per block via {your-theme}/greenflow/blocks/{name}.php, or restyle
 * these classes in your theme.
 */

/* Page scaffolding (single / archive / combo templates). */
.gfcms-page__header {
	margin-bottom: 2rem;
}

.gfcms-page__hero-media img {
	max-width: 100%;
	height: auto;
}

.gfcms-page__brand-logo img {
	max-width: 280px;
}

.gfcms-page__hero-cta {
	margin-top: 1.5rem;
}

.gfcms-page__filters {
	margin-bottom: 1.5rem;
}

.gfcms-page__filter-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.gfcms-page__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin-bottom: 2rem;
}

.gfcms-page__trust-hours {
	white-space: pre-line;
}

.gfcms-section {
	margin: 2.5rem 0;
}

.gfcms-section__title {
	margin-top: 0;
}

.gfcms-block {
	margin: 0 0 2rem;
}

.gfcms-section > .gfcms-block:last-child {
	margin-bottom: 0;
}

.gfcms-block--empty {
	font-style: italic;
	opacity: 0.7;
}

/* Service Highlights — card list. */
.gfcms-block-service-highlights__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.gfcms-block-service-highlights__icon img {
	max-width: 64px;
	height: auto;
}

.gfcms-block-service-highlights__title {
	margin: 0.5rem 0 0.25rem;
}

.gfcms-block-service-highlights__desc {
	margin: 0;
}

/* Brands We Service — logo grid. */
.gfcms-block-brands-we-service__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	align-items: center;
}

.gfcms-block-brands-we-service__link {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 64px;
}

.gfcms-block-brands-we-service__logo img {
	max-width: 100%;
	height: auto;
}

/* Service Areas — city grid. */
.gfcms-block-service-areas__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.gfcms-block-service-areas__region {
	display: block;
	font-size: 0.875em;
	opacity: 0.8;
}

/* Testimonials. */
.gfcms-block-testimonials__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.5rem;
}

.gfcms-block-testimonials__quote {
	margin: 0;
}

.gfcms-block-testimonials__author {
	margin: 0.5rem 0 0;
	font-weight: 600;
}

/* FAQs. */
.gfcms-block-faqs__item {
	margin-bottom: 1.25rem;
}

.gfcms-block-faqs__question {
	margin: 0 0 0.25rem;
}

.gfcms-block-faqs__answer {
	margin: 0;
}

/* Call to action. */
.gfcms-block-cta {
	padding: 2rem;
	text-align: center;
}

.gfcms-block-cta__heading {
	margin-top: 0;
}

.gfcms-block-cta__action {
	margin-bottom: 0;
}
