/* Ecological Improvements theme: measured from the Squarespace site (8 Nov 2026). */

/* ---------- Sections (Squarespace section themes) ---------- */
.is-style-section-white { background-color: var(--wp--preset--color--white); color: var(--wp--preset--color--black); }
.is-style-section-light { background-color: var(--wp--preset--color--sand); color: var(--wp--preset--color--dark-blue); }
.is-style-section-accent { background-color: var(--wp--preset--color--sage); color: var(--wp--preset--color--black); }
.is-style-section-dark { background-color: var(--wp--preset--color--dark-blue); color: var(--wp--preset--color--white); }
.is-style-section-dark a { color: var(--wp--preset--color--sage); }
.is-style-section-dark .wp-element-button,
.is-style-section-dark .wp-block-button__link { background-color: var(--wp--preset--color--white); color: var(--wp--preset--color--black); }
.is-style-section-light :where(h1, h2, h3, h4, h5, h6) { color: var(--wp--preset--color--dark-blue); }

/* Paragraph sizes Squarespace used */
p { margin-top: 16px; }
.is-style-small, p.is-style-small { font-size: 0.892rem; line-height: 1.5; }
.is-style-large, p.is-style-large { font-size: var(--wp--preset--font-size--large); line-height: 1.5; }

/* Buttons */
.wp-block-button.is-style-outline-light .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border: 2px solid currentColor;
	padding: 22px 33.2px;
}
.wp-block-button.is-style-outline-light .wp-block-button__link { color: #fff; border-color: #fff; }
.wp-element-button:hover, .wp-block-button__link:hover { opacity: .8; }

/* ---------- Header ---------- */
.ei-header {
	padding-top: 14.4px;
	padding-bottom: 14.4px;
	padding-left: 8vw !important;
	padding-right: 8vw !important;
	background: #fff;
	position: relative;
	z-index: 50;
}
.ei-header__inner { gap: 24px; }
.ei-header__logo { margin: 0; flex: 0 0 auto; }
.ei-header__logo img { display: block; width: 97px !important; height: 97px !important; object-fit: contain; }
.ei-header__nav { flex: 0 1 410px; font-size: 16px !important; line-height: 1.5; }
.ei-header__nav .wp-block-navigation__container { justify-content: center; row-gap: 3px; column-gap: 15px; }
.ei-header__nav .wp-block-navigation-item__content { padding: 1.6px 0; color: #000; text-decoration: none; }
.ei-header__nav .wp-block-navigation-item__content:hover { opacity: .7; }
.ei-header__nav .current-menu-item > .wp-block-navigation-item__content,
.ei-header__nav .wp-block-navigation-item__content[aria-current="page"] {
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-size: 100% 1px;
	background-position: 0 100%;
}
.ei-header__social { flex: 0 0 auto; margin: 0 !important; }
.ei-header__social .wp-social-link { color: #000 !important; background: none !important; }
.ei-header__social .wp-social-link a { padding: 0; }
.ei-header__social .wp-social-link svg { width: 16px; height: 16px; fill: currentColor; }

/* Mobile menu button: two thin lines, like Squarespace */
.ei-header .wp-block-navigation__responsive-container-open svg { width: 35px; height: 24px; }
.ei-header .wp-block-navigation__responsive-container-open { padding: 0; }

/* Mobile overlay menu: full screen, white, large links */
.ei-header .wp-block-navigation__responsive-container.is-menu-open {
	background: #fff;
	padding: 30px 6vw;
}
.ei-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 18px; align-items: center !important; }
.ei-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--poppins);
	font-size: 8.5vmin;
	line-height: 1.2;
}
.ei-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: center; padding-top: 80px; }

@media (max-width: 767px) {
	.ei-header { padding: 30px 6vw !important; }
	.ei-header__logo img { width: 37px !important; height: 37px !important; }
	.ei-header__social { display: none !important; }
	.ei-header__nav { flex: 0 0 auto; }
}
/* Squarespace shows the burger below 768px; WordPress's default is 600px. */
@media (min-width: 600px) and (max-width: 767px) {
	.ei-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ei-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* ---------- Footer ---------- */
.ei-footer { padding-left: 8vw !important; padding-right: 8vw !important; margin-top: 0; }
.ei-footer__cols { max-width: 1400px; margin: 0 auto; }
.ei-header__inner { max-width: 1400px; margin: 0 auto; }
.ei-footer a { color: var(--wp--preset--color--sage); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ei-footer p { margin-top: 0; }
.ei-footer__left { display: flex; flex-direction: column; align-items: center; gap: 56px; }
.ei-footer__tagline { max-width: 270px; margin: 0 auto; }
.ei-footer__badge { margin: 0 0 0 -60px; width: 240px; }
.ei-footer__badge img { width: 100% !important; height: auto; display: block; }
.ei-footer__name {
	font-size: 1.75rem !important;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #fff !important;
	margin-bottom: 28px !important;
}
.ei-footer__mid p + p { margin-top: 32px; }
.ei-footer__links { line-height: 2.2; }

@media (min-width: 782px) {
	.ei-footer__left { align-items: flex-start; }
	.ei-footer__left > * { align-self: stretch; }
	.ei-footer__badge { align-self: flex-start !important; }
	.ei-footer__right { padding-left: 4vw; }
}
@media (max-width: 781px) {
	.ei-footer { padding-top: 40px !important; }
	.ei-footer__cols { display: flex; flex-direction: column; }
	.ei-footer__mid { order: -1; }
	.ei-footer__left { flex-direction: column-reverse; gap: 48px; padding-top: 72px; }
	.ei-footer__badge { width: 100%; max-width: 440px; margin: 0 auto; }
	.ei-footer__left { gap: 0; padding-top: 24px; }
	.ei-footer__links { line-height: 2.3; }
}

/* ---------- Content ---------- */
.ei-main > .wp-block-post-content > .alignfull:first-child { margin-top: 0; }
.ei-main > .wp-block-post-content > .alignfull { margin-top: 0; margin-bottom: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-top: 0; }

/* Accordions: core Details block styled like Squarespace's */
.wp-block-details { border-top: 1px solid currentColor; padding: 22px 0; }
.wp-block-details:last-of-type { border-bottom: 1px solid currentColor; }
.wp-block-details summary {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--h-4);
	letter-spacing: -0.02em;
	cursor: pointer;
	list-style: none;
	position: relative;
	padding-right: 40px;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: 0; top: 0; font-weight: 300; }
.wp-block-details[open] summary::after { content: "\2212"; }

/* Blog list and posts */
.ei-blog-grid { gap: 48px 32px; }
.ei-blog-grid .wp-block-post-title a { text-decoration: none; }
.ei-post__meta { gap: 8px 16px; opacity: .75; }
.ei-post__meta > * + *::before { content: "\00B7"; margin-right: 16px; }
.ei-post__content { font-size: 1rem; line-height: 1.5; }

/* Images */
.wp-block-image img { height: auto; }
.wp-block-cover { min-height: 0; }

/* Card grids (Squarespace list sections: Who we serve, Case studies) */
.ei-cards { gap: 40px 32px; }
.ei-card { display: flex; flex-direction: column; gap: 12px; }
.ei-card .wp-block-image { margin: 0 0 8px; }
.ei-card .wp-block-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.ei-card h3 { font-size: var(--wp--preset--font-size--h-4); margin: 0; }
.ei-card p { margin: 0; }
.ei-card .wp-block-buttons { margin-top: auto; padding-top: 8px; }

/* Outline buttons on photos and dark sections are white */
.wp-block-cover .is-style-outline .wp-block-button__link,
.is-style-section-dark .is-style-outline .wp-block-button__link { color: #fff; border-color: #fff; background: transparent; }
.wp-block-cover .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: #000; }
.wp-block-cover h1, .wp-block-cover h2, .wp-block-cover h3, .wp-block-cover p { color: #fff; }

/* Sections sit edge to edge like Squarespace */
.wp-block-post-content > .alignfull { margin-block: 0 !important; }
.ei-main .wp-block-post-content { margin-top: 0; }
.wp-block-columns { align-items: center; }
.wp-block-image img { border-radius: 0; }
.wp-block-embed { margin-block: 24px; }
.ei-main > .wp-block-post-content.alignfull { max-width: none; margin: 0; padding-left: 0; padding-right: 0; }
.wp-block-post-content.alignfull > .alignfull { width: 100%; max-width: none; margin-left: 0 !important; margin-right: 0 !important; }
.wp-block-post-content.alignfull > .alignfull { padding-left: max(6vw, 24px); padding-right: max(6vw, 24px); }
.wp-block-cover.alignfull { min-height: min(75vh, 760px) !important; }
@media (max-width: 1000px) { .ei-cards.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .ei-cards.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; } }

/* Buttons: Squarespace spacing after text, side by side pairs sit together */
:where(.wp-block-post-content) :where(p, ul, ol, h1, h2, h3, h4, .wp-block-details, .wp-block-image) + .wp-block-buttons { margin-top: 32px; }
.wp-block-buttons { gap: 16px 24px; }
.wp-block-heading + p { margin-top: 0; }
.sharedaddy, .jp-relatedposts, .sd-like { display: none !important; }
.wp-block-group:has(> .wp-block-buttons:only-child) { margin-top: 32px; }

/* Heading spacing (WordPress's block gap was overriding the Squarespace rhythm) */
.wp-block-post-content :is(h1, h2, h3, h4).wp-block-heading + * { margin-top: 24px !important; }
.ei-post__content > :is(h2, h3, h4).wp-block-heading:not(:first-child) { margin-top: 56px !important; }
.ei-post__content > .wp-block-image { margin-block: 40px; }

/* Footer text sizes as on the live site (large text, small tagline) */
.ei-footer__mid p, .ei-footer__links { font-size: var(--wp--preset--font-size--large); line-height: 1.5; }
.ei-footer__tagline { font-size: 1rem !important; }
.ei-footer__social { justify-content: center; margin-top: 16px !important; }
.ei-footer__social .wp-social-link { color: #fff !important; background: none !important; }
.ei-footer__social .wp-social-link svg { width: 22px; height: 22px; fill: currentColor; }

/* Accordion answers use the small text size */
.wp-block-details > :not(summary) { font-size: 0.892rem; }

/* Light sections: grey on the live site, headings dark blue, buttons dark blue */
/* Light (grey) sections: text sections are dark blue with black buttons; list sections (cards) are black with dark blue buttons */
.is-style-section-light { color: var(--wp--preset--color--dark-blue); }
.is-style-section-light :is(h1, h2, h3, h4, summary) { color: var(--wp--preset--color--dark-blue); }
.is-style-section-light:has(.ei-carousel, .ei-cards, .ei-slideshow) { color: #000; }
.is-style-section-light:has(.ei-carousel, .ei-cards, .ei-slideshow) :is(h1, h2, h3, h4) { color: #000; }
.is-style-section-light .ei-card .wp-block-button__link { background-color: var(--wp--preset--color--dark-blue); color: #fff; }

/* Card grid (Who we serve): centred text, filled buttons */
.ei-cards .ei-card { align-items: stretch; text-align: inherit; }
.ei-card h3 { font-size: var(--wp--preset--font-size--h-4); line-height: 1.17; }
.ei-cards .ei-card .wp-block-buttons { margin-top: 24px; }

/* Slideshow (testimonials): one quote at a time, arrows either side */
.ei-slideshow { position: relative; padding: 0 72px; }
.ei-slideshow.is-ready > .ei-slide { display: none; }
.ei-slideshow.is-ready > .ei-slide.is-active { display: block; }
.ei-slide .ei-quote { font-size: var(--wp--preset--font-size--h-4); line-height: 1.11; margin-bottom: 40px; }
.ei-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 60px; height: 60px; border-radius: 50%; border: 0;
	background: rgba(0,0,0,.75); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 2; }
.ei-arrow:hover { background: #000; }
.ei-arrow:focus-visible { outline: 2px solid var(--wp--preset--color--dark-blue); outline-offset: 3px; }
.ei-arrow svg { width: 32px; height: 14px; }
.ei-arrow--prev { left: 0; } .ei-arrow--next { right: 0; }

/* Carousel (case studies): sideways strip of cards */
.ei-carousel-wrap { position: relative; }
.ei-carousel { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; gap: 20px !important; padding-bottom: 4px; }
.ei-carousel::-webkit-scrollbar { display: none; }
.ei-carousel > .ei-card { flex: 0 0 calc((100% - 60px) / 3.4); scroll-snap-align: start; min-width: 260px; }
.ei-carousel .ei-card h3 { font-size: 1.27rem; margin-top: 8px; }
.ei-carousel .ei-card p { font-size: 0.892rem; }
.ei-carousel .ei-card .wp-block-buttons { margin-top: 24px; }
.ei-carousel-wrap .ei-arrow { top: 36%; }
.ei-carousel-wrap .ei-arrow--prev { left: -30px; } .ei-carousel-wrap .ei-arrow--next { right: -30px; }
@media (max-width: 781px) {
	.ei-slideshow { padding: 0 0 80px; }
	.ei-slideshow .ei-arrow { top: auto; bottom: 0; transform: none; }
	.ei-slideshow .ei-arrow--prev { left: calc(50% - 70px); } .ei-slideshow .ei-arrow--next { right: calc(50% - 70px); }
	.ei-carousel > .ei-card { flex-basis: 80%; }
	.ei-carousel-wrap .ei-arrow { display: none; }
}

/* Newsletter popup (same offer, timing and look as the Squarespace one) */
.ei-popup { display: none !important; }
.ei-popup-overlay { position: fixed; inset: 0; z-index: 1000; background: rgba(0,0,0,.45); display: flex; align-items: center; justify-content: center;
	padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); }
.ei-popup-overlay .ei-popup { display: flex !important; position: relative; background: #fff; width: min(820px, 100%); max-height: 90vh; overflow: auto; margin: 0; padding: 0 !important; gap: 0 !important; }
.ei-popup-overlay .ei-popup > .wp-block-column:first-child { flex: 0 0 48%; }
.ei-popup .wp-block-image, .ei-popup .wp-block-image img { margin: 0; height: 100%; width: 100%; object-fit: cover; }
.ei-popup .ei-popup__body { padding: 40px 36px; align-self: center; }
.ei-popup h2 { font-size: var(--wp--preset--font-size--h-3); margin-bottom: 16px; }
.ei-popup p { font-size: 0.95rem; }
.ei-popup .wp-block-jetpack-contact-form { gap: 12px; }
.ei-popup .wp-block-jetpack-contact-form input[type="email"] { border: 1px solid #ccc; padding: 12px; width: 100%; font: inherit; }
.ei-popup .wp-block-button__link, .ei-popup button[type="submit"] { width: 100%; background: #000; color: #fff; border-radius: 0; padding: 14px; }
.ei-popup__close { position: absolute; top: 10px; right: 12px; background: none; border: 0; font-size: 28px; line-height: 1; cursor: pointer; z-index: 3; color: #000; }
@media (max-width: 640px) { .ei-popup-overlay .ei-popup > .wp-block-column:first-child { display: none; } .ei-popup .ei-popup__body { padding: 40px 24px 28px; } }
@media (prefers-reduced-motion: no-preference) { .ei-popup-overlay { animation: ei-fade .25s ease; } }
@keyframes ei-fade { from { opacity: 0; } to { opacity: 1; } }
.wp-block-jetpack-sharing-buttons { display: none !important; }
.ei-popup .wp-block-jetpack-contact-form label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

/* Galleries (Squarespace gallery sections): same columns, crop and spacing */
.ei-gallery.wp-block-gallery { gap: 50px !important; }
.ei-gallery--1.wp-block-gallery > .wp-block-image { width: 100% !important; }
.ei-gallery.ei-ar-16-9 img { aspect-ratio: 16/9; object-fit: cover; width: 100%; height: auto !important; }
.ei-gallery.ei-ar-1-1 img { aspect-ratio: 1/1; object-fit: cover; width: 100%; height: auto !important; }
.ei-gallery.ei-ar-4-3 img { aspect-ratio: 4/3; object-fit: cover; width: 100%; height: auto !important; }
.ei-gallery.ei-ar-3-2 img { aspect-ratio: 3/2; object-fit: cover; width: 100%; height: auto !important; }
.ei-gallery.ei-ar-3-4 img { aspect-ratio: 3/4; object-fit: cover; width: 100%; height: auto !important; }
@media (max-width: 781px) { .ei-gallery.wp-block-gallery { gap: 20px !important; } }

/* Previous / next case study links */
.ei-item-pagination { padding: 40px max(6vw, 24px) !important; border-top: 1px solid rgba(0,0,0,.12); margin: 0 !important; }
.ei-item-pagination p { margin: 0; font-family: var(--wp--preset--font-family--manrope); font-size: var(--wp--preset--font-size--large); }
.ei-item-pagination a { text-decoration: none; }

/* Education listing: like the Squarespace blog grid */
.ei-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.ei-blog-grid { gap: 64px 40px !important; }
.ei-blog-grid .wp-block-post-featured-image { margin: 0 0 20px; }
.ei-blog-grid .wp-block-post-featured-image img { aspect-ratio: 3/2; object-fit: cover; }
.ei-blog-grid .wp-block-post-date { font-size: 0.892rem; margin: 0 0 12px; }
.ei-blog-grid .wp-block-post-title { font-size: var(--wp--preset--font-size--h-4) !important; line-height: 1.17; margin: 0 0 16px; }
.ei-blog-grid .wp-block-post-excerpt { font-size: 1rem; margin: 0; }
.ei-blog-grid .wp-block-post-excerpt__more-link { display: inline-block; margin-top: 12px; font-size: 0.892rem; }
@media (max-width: 1000px) { .ei-blog-grid.is-layout-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; } }
@media (max-width: 600px) { .ei-blog-grid.is-layout-grid { grid-template-columns: minmax(0,1fr) !important; } }

/* Card spacing: title, line, button sit close together like the live cards */
.ei-card > * { margin-block: 0 !important; }
.ei-card > .wp-block-image { margin-bottom: 16px !important; }
.ei-card > h3 { margin-bottom: 6px !important; }
.ei-card > .wp-block-buttons { margin-top: 20px !important; }
.ei-cards .ei-card > .wp-block-buttons { margin-top: 24px !important; }

/* Testimonials as quote cards */
.ei-quotes { gap: 32px !important; }
.ei-quote-card { background: var(--wp--preset--color--white); border-top: 3px solid var(--wp--preset--color--dark-blue); padding: 32px 28px; display: flex; flex-direction: column; gap: 20px; text-align: left; }
.is-style-section-white .ei-quote-card { background: var(--wp--preset--color--sand); }
.ei-quote-card .ei-quote { font-size: 1.27rem !important; line-height: 1.35; margin: 0 !important; text-align: left !important; }
.ei-quote-card p { margin: 0 !important; text-align: left !important; font-size: 0.892rem; opacity: .8; }

/* Left-aligned card grids (case studies) */
.ei-cards--left .ei-card { text-align: left; }
.ei-cards--left .ei-card h3 { font-size: 1.27rem; }
.ei-cards--left .ei-card h3 a { text-decoration: none; }
.ei-cards--left .wp-block-buttons { justify-content: flex-start; }
.ei-cards--4.is-layout-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Text and photo rows: photos fill their column neatly */
.wp-block-columns.are-vertically-aligned-center > .wp-block-column > .wp-block-image:only-child img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }

/* Sections with a wide text-and-photo row: headings and text share the row's left edge */
.wp-block-group.alignfull:has(> .wp-block-columns.alignwide):not(:has(> .ei-cards, > .ei-quotes)) > :not(.alignfull):not(.alignwide):not(.wp-block-buttons) { max-width: var(--wp--style--global--wide-size) !important; }
.wp-block-group.alignfull:has(> .wp-block-columns.alignwide):not(:has(> .ei-cards, > .ei-quotes)) > .wp-block-heading.has-text-align-center { max-width: var(--wp--style--global--content-size) !important; }

/* ================= Homepage (hand-designed) ================= */
.ei-eyebrow { font-family: var(--wp--preset--font-family--poppins); font-size: 0.8rem !important; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--dark-blue); margin: 0 0 16px !important; }
.is-style-section-dark .ei-eyebrow, .ei-hero .ei-eyebrow { color: var(--wp--preset--color--sage); }
.ei-home-section h2.wp-block-heading { font-size: var(--wp--preset--font-size--h-2); line-height: 1.1; margin-bottom: 20px; text-wrap: balance; }
.ei-home-section h2 + p { margin-top: 0; }
.ei-home-section > .wp-block-heading.has-text-align-center, .ei-home-section > p.has-text-align-center { margin-left: auto !important; margin-right: auto !important; }
.ei-home-section > .ei-steps, .ei-home-section > .ei-services, .ei-home-section > .ei-quotes, .ei-home-section > .ei-cases, .ei-home-section > .ei-audiences { margin-top: clamp(32px, 4vw, 56px) !important; }
.ei-home-section > .wp-block-buttons { margin-top: 40px !important; }

/* Hero */
.ei-hero { padding: clamp(96px, 14vh, 160px) max(6vw, 24px) !important; }
.ei-hero h1 { font-size: clamp(2.6rem, 1.4rem + 4vw, 4.6rem) !important; line-height: 1.04; margin: 0 0 24px !important; color: #fff; text-wrap: balance; }
.ei-hero .is-style-large { max-width: 640px; margin: 0 auto 36px !important; color: #fff; }
.ei-hero .wp-block-button__link, .ei-final .wp-block-button__link { background: #fff !important; color: #000 !important; padding: 22px 40px; font-weight: 500; }
.ei-hero__phone { font-size: 0.95rem; margin-top: 18px !important; opacity: .9; }
.ei-hero__phone a { color: inherit; }

/* Proof strip */
.ei-proof { background: var(--wp--preset--color--dark-blue); color: #fff; padding: 28px max(6vw, 24px) !important; margin: 0 !important; }
.ei-proof__label { font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--sage); margin: 0 0 10px !important; }
.ei-proof__names { font-family: var(--wp--preset--font-family--manrope); font-size: clamp(1rem, 0.9rem + 0.5vw, 1.3rem); margin: 0 !important; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; }
.ei-proof__names a { color: #fff; text-decoration: none; }
.ei-proof__names a:hover { text-decoration: underline; }
.ei-proof__names span { opacity: .5; }

/* Problem section image */
.ei-home-section .wp-block-column > .wp-block-image { margin: 0; }
.ei-home-section .wp-block-column > .wp-block-image img { width: 100%; height: auto; }

/* Steps */
.ei-steps { gap: 24px !important; }
.ei-step { background: #fff; padding: 36px 32px; border-top: 3px solid var(--wp--preset--color--dark-blue); }
.ei-step__num { font-family: var(--wp--preset--font-family--manrope); font-size: 3rem !important; line-height: 1; color: var(--wp--preset--color--dark-blue); margin: 0 0 16px !important; }
.ei-step h3 { font-size: var(--wp--preset--font-size--h-4) !important; color: #000 !important; margin: 0 0 10px !important; }
.ei-step p:last-child { margin: 0; color: #000; }

/* Services */
.ei-services { gap: 0 !important; border-top: 1px solid rgba(0,0,0,.14); border-left: 1px solid rgba(0,0,0,.14); }
.ei-service { padding: 32px 28px; border-right: 1px solid rgba(0,0,0,.14); border-bottom: 1px solid rgba(0,0,0,.14); display: flex; flex-direction: column; }
.ei-service h3 { font-size: 1.27rem !important; line-height: 1.25; margin: 0 0 12px !important; }
.ei-service h3 a { text-decoration: none; }
.ei-service p { margin: 0 0 16px; font-size: 0.95rem; }
.ei-service .ei-service__more { margin: auto 0 0 !important; font-weight: 500; }
.ei-service .ei-service__more a { text-decoration: none; color: var(--wp--preset--color--dark-blue); }
.ei-service:hover { background: var(--wp--preset--color--sand); }

/* Quotes (sage section) */
.ei-quotes { gap: 24px !important; }
.ei-quotes .ei-quote-card { background: #fff; border-top: 3px solid var(--wp--preset--color--dark-blue); padding: 32px 28px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; }
.ei-quote-card__text { font-family: var(--wp--preset--font-family--manrope); font-size: 1.12rem !important; line-height: 1.45; margin: 0 !important; }
.ei-quote-card__who { font-size: 0.85rem !important; margin: 0 !important; color: var(--wp--preset--color--dark-blue); }

/* Case studies and audiences */
.ei-cases, .ei-audiences { gap: 32px !important; }
.ei-case .wp-block-image, .ei-audience .wp-block-image { margin: 0 0 16px; overflow: hidden; }
.ei-case img, .ei-audience img { width: 100%; transition: transform .4s ease; }
.ei-case:hover img, .ei-audience:hover img { transform: scale(1.03); }
.ei-case h3, .ei-audience h3 { font-size: 1.27rem !important; margin: 0 0 4px !important; color: #000 !important; }
.ei-case h3 a, .ei-audience h3 a { text-decoration: none; color: inherit; }
.ei-case__meta { font-size: 0.9rem; margin: 0 !important; opacity: .75; }
@media (prefers-reduced-motion: reduce) { .ei-case img, .ei-audience img { transition: none; } }

/* Why it matters checklists */
.ei-why h3 { font-size: var(--wp--preset--font-size--h-4) !important; margin-bottom: 16px !important; }
.ei-checks { list-style: none; padding: 0 !important; margin: 0; }
.ei-checks li { position: relative; padding: 10px 0 10px 34px; border-bottom: 1px solid rgba(0,0,0,.1); }
.ei-checks li::before { content: ""; position: absolute; left: 4px; top: 16px; width: 14px; height: 8px; border-left: 2px solid var(--wp--preset--color--dark-blue); border-bottom: 2px solid var(--wp--preset--color--dark-blue); transform: rotate(-45deg); }

/* Closing action */
.ei-final h2 { color: #fff !important; }
.ei-final .is-style-large { max-width: 640px; margin-left: auto !important; margin-right: auto !important; }
.ei-final .ei-hero__phone a { color: var(--wp--preset--color--sage); }

@media (max-width: 1000px) {
	.ei-steps.is-layout-grid, .ei-services.is-layout-grid, .ei-quotes.is-layout-grid, .ei-cases.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; }
	.ei-audiences.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 600px) { .ei-audiences.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; } .ei-hero { padding-top: 72px !important; padding-bottom: 72px !important; } }

/* No gaps between the page, the last section and the footer */
.wp-site-blocks > * + * { margin-block-start: 0 !important; }
.ei-main, .ei-main > .wp-block-post-content { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.ei-home-section { padding-left: max(6vw, 24px) !important; padding-right: max(6vw, 24px) !important; }

/* Hero text block centred on the page */
.ei-hero { justify-content: center !important; }
.ei-hero .wp-block-cover__inner-container { width: 100% !important; max-width: 880px !important; margin: 0 auto !important; text-align: center; }
.ei-hero .wp-block-cover__inner-container > * { margin-left: auto !important; margin-right: auto !important; max-width: 100% !important; }
.ei-hero .wp-block-buttons { justify-content: center; }

/* Who we serve: two per row on phones */
@media (max-width: 600px) {
	.ei-audiences.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 20px 14px !important; }
	.ei-audience h3 { font-size: 1rem !important; }
}

/* ================= Designed inner pages ================= */
.ei-page-hero { min-height: 62vh !important; }
.ei-page-hero h1 { font-size: clamp(2.4rem, 1.4rem + 3.4vw, 4.15rem) !important; }
.ei-title-band { padding-top: clamp(56px, 7vw, 96px) !important; padding-bottom: clamp(24px, 3vw, 40px) !important; }
.ei-title-band h1 { margin: 0 !important; text-wrap: balance; }
.ei-title-band + .ei-page-section { padding-top: clamp(24px, 3vw, 40px) !important; }
.ei-section-title { font-size: var(--wp--preset--font-size--h-2) !important; line-height: 1.1; text-wrap: balance; }
.ei-page-section h3 { font-size: var(--wp--preset--font-size--h-4); margin: 32px 0 12px; }
.ei-page-section h4 { font-size: 1.27rem; margin: 28px 0 10px; }
.ei-page-section :is(h3, h4) + p { margin-top: 0; }
.ei-page-section p, .ei-page-section li { line-height: 1.65; }
.ei-page-section ul.wp-block-list, .ei-page-section ol.wp-block-list { padding-left: 1.2em; }
.ei-page-section li + li { margin-top: 6px; }
.ei-page-section .wp-block-buttons { margin-top: 32px !important; }

/* Text and photo side by side, alternating */
.ei-split { gap: clamp(32px, 6vw, 96px) !important; }
.ei-split > .wp-block-column > :first-child { margin-top: 0; }
.ei-split .wp-block-image { margin: 0; }
.ei-split .wp-block-image img { width: 100%; height: auto; }
@media (min-width: 782px) { .ei-split--reverse { flex-direction: row-reverse; } }
.ei-split--faq .wp-block-image { margin-top: 32px; }
.ei-split--form .wp-block-embed { margin-top: 24px; }

/* Extra photos */
.ei-photo-grid { gap: 20px !important; margin-top: clamp(32px, 4vw, 56px) !important; }
.ei-photo-grid .wp-block-image { margin: 0; }
.ei-photo-grid img { width: 100%; }
@media (max-width: 781px) { .ei-photo-grid.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }

/* Readable text column and centred short sections */
.ei-text-column > * { max-width: 760px; }
.ei-text-centre > .wp-block-buttons { justify-content: center; }

/* Photo band in the middle of a page */
.ei-photo-band { padding: clamp(72px, 10vw, 140px) max(6vw, 24px) !important; min-height: 0 !important; }
.ei-photo-band h2, .ei-photo-band h3, .ei-photo-band h4, .ei-photo-band p, .ei-photo-band li { color: #fff !important; }
.ei-photo-band h2 { font-size: var(--wp--preset--font-size--h-2); }
.ei-photo-band ul, .ei-photo-band ol { text-align: left; display: inline-block; }
.ei-photo-band .wp-block-cover__inner-container { text-align: center; }

/* Grids carried over from Squarespace inside designed sections */
.ei-page-section > .ei-cards, .ei-page-section > .ei-quotes, .ei-page-section > .wp-block-gallery { margin-top: clamp(32px, 4vw, 56px) !important; }
.ei-page-section > .wp-block-heading.has-text-align-center { margin-left: auto !important; margin-right: auto !important; }

/* ================= End of every Education post ================= */
.ei-post-end { margin-top: 64px; }
.ei-post-cta { background: var(--wp--preset--color--dark-blue); color: #fff; padding: 40px 36px; text-align: center; }
.ei-post-cta h2 { color: #fff; font-size: var(--wp--preset--font-size--h-3); margin: 0 0 12px; }
.ei-post-cta p { margin: 0 auto 24px; max-width: 560px; }
.ei-post-cta a.ei-btn { display: inline-block; background: #fff; color: #000; border-radius: 300px; padding: 20px 36px; text-decoration: none; font-weight: 500; }
.ei-post-cta .ei-post-cta__phone { margin: 16px 0 0; font-size: .95rem; }
.ei-post-cta .ei-post-cta__phone a { color: var(--wp--preset--color--sage); }
.ei-related { margin-top: 56px; }
.ei-related h2 { font-size: var(--wp--preset--font-size--h-4); margin: 0 0 24px; }
.ei-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.ei-related__item a { text-decoration: none; color: inherit; display: block; }
.ei-related__item img { width: 100%; aspect-ratio: 3/2; object-fit: cover; display: block; margin-bottom: 12px; }
.ei-related__item h3 { font-size: 1.1rem; line-height: 1.3; margin: 0; }
.ei-related__item:hover h3 { text-decoration: underline; }
@media (max-width: 781px) { .ei-related__grid { grid-template-columns: minmax(0, 1fr); } .ei-post-cta { padding: 32px 22px; } }

/* Offer cards on a photo */
.ei-offers-band { padding: clamp(72px, 9vw, 128px) max(6vw, 24px) !important; }
.ei-offers-band .ei-section-title, .ei-offers-band > .wp-block-cover__inner-container > p { color: #fff !important; }
.ei-offers { gap: 24px !important; margin-top: 40px !important; }
.ei-offer { background: #fff; color: #000; padding: 36px 32px; text-align: left; border-top: 3px solid var(--wp--preset--color--sage); }
.ei-offer h3 { font-size: var(--wp--preset--font-size--h-4) !important; color: var(--wp--preset--color--dark-blue) !important; margin: 0 0 16px !important; }
.ei-offer p, .ei-offer li { color: #000 !important; font-size: .95rem; text-align: left !important; }
.ei-offer ul { margin: 8px 0 16px; }
.ei-offer .wp-block-buttons { margin-top: 20px !important; justify-content: flex-start !important; }
.ei-offer .wp-block-button__link { background: var(--wp--preset--color--dark-blue) !important; color: #fff !important; }
@media (max-width: 781px) { .ei-offers.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; } }

/* Never let a button touch the photo below it */
.wp-block-buttons + .wp-block-image { margin-top: 40px !important; }

/* Header phone: always one tap away */
.ei-header__right { gap: 22px; flex: 0 0 auto; }
.ei-header__phone { margin: 0 !important; font-size: 15px; font-weight: 500; white-space: nowrap; }
.ei-header__phone a { text-decoration: none; color: var(--wp--preset--color--dark-blue); border: 1.5px solid var(--wp--preset--color--dark-blue); border-radius: 300px; padding: 8px 16px; }
.ei-header__phone a:hover { background: var(--wp--preset--color--dark-blue); color: #fff; }
@media (max-width: 767px) { .ei-header__phone a { padding: 6px 12px; font-size: 13px; } .ei-header__right { gap: 10px; } }
@media (max-width: 400px) { .ei-header__phone { display: none; } }

/* Icon benefits on dark blue */
.ei-benefits-section h2 { color: var(--wp--preset--color--dark-blue) !important; }
.ei-benefits { gap: 48px 40px !important; margin-top: 48px !important; }
.ei-benefit { color: #000; }
.ei-benefit .ei-icon { color: var(--wp--preset--color--dark-blue); display: block; margin-bottom: 14px; }
.ei-benefit h3 { color: var(--wp--preset--color--dark-blue) !important; font-size: 1.27rem !important; margin: 0 0 8px !important; }
.ei-benefit p { margin: 0; font-size: .97rem; }
.is-style-section-light .ei-quotes .ei-quote-card { background: #fff; }
@media (max-width: 1000px) { .ei-benefits.is-layout-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; } }
@media (max-width: 600px) { .ei-benefits.is-layout-grid { grid-template-columns: minmax(0,1fr) !important; } }

/* BMP page: compact type cards and 4-up steps */
.ei-types .ei-service--compact { padding: 22px 20px; }
.ei-types .ei-service--compact h3 { margin: 0 !important; font-size: 1.05rem !important; }
.ei-steps.ei-cards--4, .ei-steps { }
@media (max-width: 1000px) { .ei-types.is-layout-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; } }

/* ---------- Two ways in (9 Nov): erosion quote, or an inspection first ---------- */
.ei-header__cta { margin: 0 !important; font-size: 15px; font-weight: 500; white-space: nowrap; }
.ei-header__cta a { text-decoration: none; background: var(--wp--preset--color--dark-blue); color: #fff; border: 1.5px solid var(--wp--preset--color--dark-blue); border-radius: 300px; padding: 8px 16px; }
.ei-header__cta a:hover { opacity: .85; }
@media (max-width: 781px) { .ei-header__cta { display: none; } }

.ei-hero .is-style-outline .wp-block-button__link, .ei-final .is-style-outline .wp-block-button__link { background: transparent !important; color: #fff !important; border: 2px solid #fff; padding: 20px 38px; }
.ei-hero .wp-block-buttons, .ei-final .wp-block-buttons { gap: 14px; }

.ei-paths.is-layout-grid { gap: 24px !important; }
.ei-path { background: #fff; border: 1px solid rgba(0,0,0,.12); border-top: 4px solid var(--wp--preset--color--dark-blue); padding: 36px 32px; display: flex; flex-direction: column; }
.ei-path h3 { font-size: 1.45rem !important; line-height: 1.25; margin: 0 0 12px !important; }
.ei-path p { margin: 0 0 24px; }
.ei-path .wp-block-buttons { margin-top: auto; }
.ei-path__tag { font-size: .8rem !important; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--wp--preset--color--dark-blue); margin: 0 0 10px !important; }
.is-style-section-light .ei-path, .is-style-section-accent .ei-path { border-color: transparent; }
@media (max-width: 781px) { .ei-paths.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; } .ei-path { padding: 28px 22px; } }

.ei-form-card { background: #fff; padding: 36px 32px; border-top: 4px solid var(--wp--preset--color--dark-blue); box-shadow: 0 12px 40px rgba(20,53,73,.08); }
.ei-form-card > h2, .ei-form-card > h3 { margin-top: 0 !important; }
.ei-form-card .wp-block-jetpack-contact-form { gap: 14px; }
.ei-form-card input:not([type=checkbox]):not([type=radio]), .ei-form-card select, .ei-form-card textarea { width: 100%; border: 1px solid #c9ced2; padding: 12px; font: inherit; background: #fff; border-radius: 0; }
.ei-form-card textarea { min-height: 110px; }
.ei-form-card .wp-block-button__link, .ei-form-card button { background: var(--wp--preset--color--dark-blue) !important; color: #fff !important; border-radius: 300px; padding: 18px 36px; font-weight: 500; }
@media (max-width: 781px) { .ei-form-card { padding: 26px 18px; } }

.ei-steps--stack.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 14px !important; }
.ei-step--row { display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 16px; padding: 20px 22px; }
.ei-step--row .ei-step__num { grid-row: span 2; font-size: 2.2rem !important; margin: 0 !important; }
.ei-step--row h3 { margin: 0 0 4px !important; font-size: 1.1rem !important; }
.ei-step--row p:last-child { margin: 0; }

.ei-post-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.ei-post-cta a.ei-btn--outline { background: transparent; color: #fff; border: 2px solid #fff; padding: 18px 34px; }

.ei-mobilebar { display: none; }
@media (max-width: 781px) {
	.ei-mobilebar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; background: var(--wp--preset--color--dark-blue); padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); gap: 10px; box-shadow: 0 -4px 18px rgba(0,0,0,.15); }
	.ei-mobilebar a { flex: 1 1 auto; text-align: center; text-decoration: none; font-weight: 600; font-size: 15px; padding: 13px 10px; border-radius: 300px; }
	.ei-mobilebar__quote { background: #fff; color: #000; }
	.ei-mobilebar__call { flex: 0 0 30% !important; color: #fff; border: 1.5px solid #fff; }
	body { padding-bottom: 72px; }
}
