/*
Theme Name: Zone Surface Worx
Theme URI: https://zonesurfaceworx.com
Author: Zone Surface Worx
Author URI: https://zonesurfaceworx.com
Description: Block theme for Zone Surface Worx — commercial and industrial concrete flooring throughout British Columbia. Every page, photo and menu is editable in the WordPress editor.
Version: 2.1.0
Requires at least: 6.6
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: zone-surface-worx
*/

:root {
	--zsw-max: 1240px;
	--zsw-ink: var(--wp--preset--color--ink);
	--zsw-paper: var(--wp--preset--color--paper);
	--zsw-surface: var(--wp--preset--color--surface);
	--zsw-muted: var(--wp--preset--color--muted);
	--zsw-line: var(--wp--preset--color--line);
	--zsw-accent: var(--wp--preset--color--accent);
	--zsw-accent-deep: var(--wp--preset--color--accent-deep);
	--zsw-dark: var(--wp--preset--color--dark);
	--zsw-condensed: var(--wp--preset--font-family--condensed);
	--zsw-focus: #1e6da8;
}
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { margin: 0; }
:focus-visible { outline: 2px solid var(--zsw-focus); outline-offset: 2px; }
.zsw-topbar :focus-visible, .zsw-hero :focus-visible, .zsw-page-hero :focus-visible, .zsw-projects :focus-visible,
.zsw-split :focus-visible, .zsw-footer :focus-visible, .zsw-cred :focus-visible, .zsw-coverage :focus-visible { outline-color: #fff; }

/* ---------- layout helpers ---------- */
.zsw-container { width: min(calc(100% - 40px), var(--zsw-max)); margin-inline: auto; box-sizing: border-box; }
.wp-site-blocks > * { margin-block-start: 0; }
.wp-block-post-content > *, .is-root-container > * { margin-block-start: 0; }
.wp-block-post-content.is-layout-constrained > * + * { margin-block-start: 1rem; }
.zsw-section { padding: 104px 0; }
.zsw-section > .wp-block-post-content.is-layout-constrained,
.zsw-section > .wp-block-query,
.zsw-section > .wp-block-group.is-layout-constrained { padding-inline: 20px; }

/* ---------- small labels (block styles for paragraphs) ---------- */
.is-style-eyebrow {
	display: flex; align-items: center; gap: 12px; margin: 0 0 18px;
	font-family: var(--zsw-condensed); font-size: .82rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase;
}
.is-style-eyebrow::before { content: ""; flex: 0 0 44px; height: 3px; background: var(--zsw-accent); }
.is-style-kicker {
	font-family: var(--zsw-condensed); text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; font-weight: 600;
	color: var(--zsw-accent); margin: 0 0 14px;
}
.is-style-kicker::before { content: "— "; }
.is-style-kicker + h2 { margin-top: 0; }

/* ---------- buttons ---------- */
.wp-block-buttons { gap: 12px; }
.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; box-sizing: border-box; text-decoration: none; }
.wp-block-button.zsw-arrow .wp-block-button__link::after { content: "→"; }
.wp-block-button.is-style-secondary .wp-block-button__link { background: rgba(17, 19, 21, .54); border-color: rgba(255, 255, 255, .5); color: #fff; }
.wp-block-button.is-style-secondary .wp-block-button__link:hover { background: #fff; color: #151719; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 1px solid var(--zsw-ink); color: var(--zsw-ink); padding: 13px 19px; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--zsw-ink); color: #fff; }

/* ---------- lists (block styles) ---------- */
ul.is-style-plain { list-style: none; margin: 0; padding: 0; }
ul.is-style-tags { list-style: none; padding: 0; margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
ul.is-style-tags li { border: 1px solid var(--zsw-line); padding: 6px 10px; font-size: .86rem; background: var(--zsw-surface); }
ul.is-style-boxes { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
ul.is-style-boxes li { border: 1px solid var(--zsw-line); background: var(--zsw-surface); padding: 12px 14px; }
ul.is-style-ruled { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #383d3f; }
ul.is-style-ruled li { padding: 14px 16px 14px 0; border-bottom: 1px solid #383d3f; font-family: var(--zsw-condensed); font-weight: 600; }
ul.is-style-ruled li:nth-child(even) { padding-left: 18px; border-left: 1px solid #383d3f; }

/* ---------- header ---------- */
.wp-site-blocks > header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
.zsw-topbar { background: rgba(17, 19, 21, .96); color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.zsw-nav { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.zsw-nav > * { margin: 0; }
.zsw-nav .wp-block-site-logo { flex: 0 0 auto; line-height: 0; }
.zsw-nav .wp-block-navigation { font-family: var(--zsw-condensed); font-size: .86rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; gap: 24px; }
.zsw-nav .wp-block-navigation .wp-block-navigation__container { gap: 24px; }
.zsw-nav .wp-block-navigation-item__content { opacity: .88; text-decoration: none; }
.zsw-nav .wp-block-navigation-item__content:hover, .zsw-nav .wp-block-navigation-item__content:focus-visible { opacity: 1; color: #ff795a; }
.zsw-nav .wp-block-navigation-item.zsw-nav-cta > .wp-block-navigation-item__content { background: var(--zsw-accent); padding: 11px 16px; opacity: 1; color: #fff; }
.zsw-nav .wp-block-navigation-item.zsw-nav-cta > .wp-block-navigation-item__content:hover { background: #ff6540; color: #fff; }
.zsw-nav .wp-block-navigation__responsive-container-open { border: 1px solid rgba(255, 255, 255, .3); padding: 9px 12px; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 22px 20px 28px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 48px; align-items: stretch; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; align-items: stretch; gap: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: block; width: 100%; padding: 13px 0; border-bottom: 1px solid #303436; font-size: 1.05rem; opacity: 1; }
.wp-block-navigation__responsive-container.is-menu-open .zsw-nav-cta > .wp-block-navigation-item__content { text-align: center; margin-top: 14px; border-bottom: 0; padding: 13px 16px; }
/* The menu collapses to a button below 1000px (WordPress's own switch is at 600px). */
@media (min-width: 600px) and (max-width: 1000px) {
	.zsw-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.zsw-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
}

/* ---------- home hero ---------- */
.wp-block-cover.zsw-hero { min-height: 760px; padding: 0; align-items: flex-end; background: var(--zsw-dark); color: #fff; }
.zsw-hero .wp-block-cover__image-background { filter: saturate(.78) contrast(1.06); }
.zsw-hero .wp-block-cover__inner-container { width: 100%; color: #fff; }
.zsw-hero-inner { padding: 116px 0 86px; display: grid; grid-template-columns: minmax(0, 770px) 1fr; gap: 48px; align-items: end; }
.zsw-hero-inner > * { margin: 0; }
.zsw-hero h1 { max-width: 900px; }
.zsw-lead { max-width: 710px; font-size: clamp(1.05rem, 1.8vw, 1.3rem); line-height: 1.62; color: #eef0ef; margin: 25px 0 32px; }
.zsw-hero-aside { border-top: 1px solid rgba(255, 255, 255, .4); padding-top: 18px; font-family: var(--zsw-condensed); color: #dfe3e2; }
.zsw-hero-aside strong { display: block; color: #fff; font-size: 2.3rem; line-height: 1; margin-bottom: 7px; }

/* ---------- inner page banner ---------- */
.zsw-page-hero { background: var(--zsw-dark); color: #fff; padding: 72px 0 60px; }
.zsw-page-hero h1 { font-size: clamp(2.4rem, 5vw, 4.2rem); max-width: 820px; }
.zsw-page-hero-intro { max-width: 720px; color: #e7eae9; font-size: 1.1rem; margin: 18px 0 0; }

/* ---------- orange bands ---------- */
.zsw-cred, .zsw-coverage { background: var(--zsw-accent); color: #fff; }
.zsw-cred > .zsw-container { display: grid; grid-template-columns: 1fr 1.7fr; gap: 48px; align-items: center; padding-block: 42px; }
.zsw-cred > .zsw-container > * { margin: 0; }
.zsw-cred h2 { font-size: clamp(2rem, 3.6vw, 3.45rem); }
.zsw-cred p { font-size: 1.05rem; max-width: 760px; }
.zsw-coverage > .zsw-container { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; padding-block: 76px; }
.zsw-coverage > .zsw-container > * { margin: 0; }
.zsw-coverage p { font-size: 1.1rem; max-width: 600px; }
.zsw-coverage .is-style-kicker { color: #fff; font-size: .8rem; }
.zsw-regions { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid rgba(255, 255, 255, .45); }
.zsw-regions > p { margin: 0; padding: 28px 18px; border-right: 1px solid rgba(255, 255, 255, .45); font-family: var(--zsw-condensed); font-weight: 600; font-size: 1.1rem; max-width: none; }
.zsw-regions > p:last-child { border-right: 0; }
.zsw-contact-grid .zsw-regions { border-color: var(--zsw-line); background: var(--zsw-accent); color: #fff; margin-top: 20px; }

/* ---------- section heading row ---------- */
.zsw-section-head { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: 48px; }
.zsw-section-head > * { margin: 0; }
.zsw-section-head > p { max-width: 620px; color: var(--zsw-muted); font-size: 1.05rem; }

/* ---------- services ---------- */
.zsw-services { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--zsw-line); border-left: 1px solid var(--zsw-line); }
.zsw-services > * { margin: 0; }
.zsw-service { background: var(--zsw-surface); border-right: 1px solid var(--zsw-line); border-bottom: 1px solid var(--zsw-line); min-height: 390px; padding: 28px; display: flex; flex-direction: column; box-sizing: border-box; }
.zsw-service > * { margin: 0; }
.zsw-num { font-family: var(--zsw-condensed); font-size: .8rem; color: var(--zsw-accent); font-weight: 700; }
.zsw-service h3 { margin: 48px 0 16px; font-size: 1.65rem; }
.zsw-service > p:not(.zsw-num):not(.zsw-link) { color: var(--zsw-muted); margin: 0 0 22px; }
.zsw-link a { font-weight: 600; color: var(--zsw-accent-deep); text-decoration: none; }
.zsw-link a::after { content: " →"; }
.zsw-link a:hover { text-decoration: underline; }
.zsw-services.is-stacked { grid-template-columns: 1fr; }
.zsw-service-full { display: grid; grid-template-columns: 340px 1fr; gap: 28px; min-height: 0; }
.zsw-service-full > .wp-block-image { margin: 0; height: 100%; }
.zsw-service-full > .wp-block-image img { width: 100%; height: 100%; min-height: 240px; object-fit: cover; display: block; }
.zsw-service-full > .wp-block-group > * { margin: 0; }
.zsw-service-full > .wp-block-group > h3 { margin: 18px 0 14px; }
.zsw-service-full > .wp-block-group > p:not(.zsw-num) { color: var(--zsw-muted); }
.zsw-service-full .wp-block-buttons { margin-top: 22px; }

/* ---------- photo beside dark panel ---------- */
.zsw-split { display: grid; grid-template-columns: 1.12fr .88fr; min-height: 620px; background: var(--zsw-dark); color: #fff; }
.zsw-split > * { margin: 0; }
.zsw-split > .wp-block-image img { width: 100%; height: 100%; min-height: 620px; object-fit: cover; display: block; }
.zsw-split-copy { padding: clamp(48px, 7vw, 100px); display: flex; flex-direction: column; justify-content: center; }
.zsw-split-copy > * { margin-block: 0; }
.zsw-split-copy > p:not(.is-style-kicker) { color: #cbd0cf; max-width: 570px; margin-top: 1rem; }
.zsw-split-copy > .is-style-kicker { margin-bottom: 14px; }
.zsw-split-copy > .wp-block-buttons { margin-top: 28px; }

/* ---------- why ---------- */
.zsw-why, .zsw-quote { background: var(--zsw-surface); }
.zsw-why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--zsw-line); }
.zsw-why-grid > * { margin: 0; }
.zsw-reason { padding: 32px 28px 32px 0; border-bottom: 1px solid var(--zsw-line); margin-right: 30px; }
.zsw-reason::before { content: ""; display: block; width: 12px; height: 12px; background: var(--zsw-accent); margin-bottom: 25px; }
.zsw-reason p { color: var(--zsw-muted); margin: 1rem 0 0; }
.zsw-why-grid.is-compact { margin-top: 28px; }

/* ---------- projects ---------- */
.zsw-projects { background: var(--zsw-dark); color: #fff; }
.zsw-projects .zsw-section-head > p { color: #bfc5c4; }
.zsw-project-grid { display: grid; grid-template-columns: 1.15fr .85fr .85fr; grid-auto-rows: 260px; gap: 12px; }
.zsw-project-grid > * { margin: 0; }
.zsw-project-grid > .wp-block-image { position: relative; overflow: hidden; background: #24282b; }
.zsw-project-grid > .wp-block-image:first-child { grid-row: span 2; }
.zsw-project-grid > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.8); transition: transform .5s ease; }
.zsw-project-grid > .wp-block-image:hover img { transform: scale(1.025); }
.zsw-project-grid > .wp-block-image figcaption {
	position: absolute; inset: auto 0 0; margin: 0; padding: 50px 22px 20px; text-align: left; color: #fff; font-size: 1rem;
	background: linear-gradient(transparent, rgba(0, 0, 0, .82)); font-family: var(--zsw-condensed); font-weight: 600;
}
.zsw-project-grid > .wp-block-image figcaption strong { display: block; color: #ff795a; font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 2px; font-weight: 600; }
.zsw-project-grid > .wp-block-image.is-hidden { display: none; }
.zsw-project-note { margin: 28px 0 0; padding: 20px 0; border-top: 1px solid #383d3f; color: #bfc5c4; display: flex; justify-content: space-between; gap: 30px; align-items: center; }
.zsw-project-note > * { margin: 0; }
.zsw-project-note strong { color: #fff; }
.zsw-filter-bar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 26px; }
.zsw-filter-btn { font: inherit; border: 1px solid var(--zsw-line); background: var(--zsw-surface); color: var(--zsw-ink); padding: 10px 16px; cursor: pointer; font-weight: 600; }
.zsw-filter-btn.is-active { background: var(--zsw-accent); border-color: var(--zsw-accent); color: #fff; }

/* ---------- process ---------- */
.zsw-process { display: grid; grid-template-columns: .65fr 1.35fr; gap: 70px; }
.zsw-process > * { margin: 0; }
.zsw-process-intro { position: sticky; top: 110px; align-self: start; }
.zsw-process-intro > p:not(.is-style-kicker) { color: var(--zsw-muted); max-width: 440px; }
.zsw-steps { counter-reset: zsw-step; }
.zsw-steps > * { margin: 0; }
.zsw-step { counter-increment: zsw-step; display: grid; grid-template-columns: 72px 1fr; column-gap: 24px; border-top: 1px solid var(--zsw-line); padding: 28px 0; }
.zsw-step::before { content: "0" counter(zsw-step); grid-row: 1 / span 2; font-family: var(--zsw-condensed); font-size: 2rem; font-weight: 700; color: var(--zsw-accent); line-height: 1.6; }
.zsw-step > * { grid-column: 2; margin: 0; }
.zsw-step > p { margin-top: 8px; color: var(--zsw-muted); }
.zsw-process-band { background: var(--zsw-surface); border-block: 1px solid var(--zsw-line); }

/* ---------- quote + contact ---------- */
.zsw-quote-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 80px; }
.zsw-quote-grid > * { margin: 0; }
.zsw-quote-copy { align-self: start; position: sticky; top: 110px; }
.zsw-quote-copy > p:not(.is-style-kicker) { color: var(--zsw-muted); }
.zsw-contact-card { border-top: 3px solid var(--zsw-accent); padding-top: 20px; margin-top: 34px; }
.zsw-row { margin: 0; padding: 13px 0; border-bottom: 1px solid var(--zsw-line); font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--zsw-muted); }
.zsw-row br { display: none; }
.zsw-row strong { display: block; font-family: var(--zsw-condensed); font-size: 1rem; text-transform: none; letter-spacing: 0; color: var(--zsw-ink); }
.zsw-contact-grid { display: grid; grid-template-columns: 420px 1fr; gap: 36px; align-items: start; }
.zsw-contact-grid > * { margin: 0; }
.zsw-contact-main .zsw-contact-card { margin-top: 0; }
.zsw-contact-main > .zsw-row + p { margin-top: 1rem; }
.zsw-contact-photo { margin: 0; }
.zsw-contact-photo img { width: 100%; height: 320px; object-fit: cover; display: block; }

.zsw-quote-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.zsw-quote-form .zsw-field { display: flex; flex-direction: column; gap: 6px; }
.zsw-quote-form .zsw-field.is-full { grid-column: 1 / -1; }
.zsw-quote-form label { font-size: .83rem; font-weight: 600; }
.zsw-quote-form .zsw-req { color: var(--zsw-accent-deep); }
.zsw-quote-form input, .zsw-quote-form select, .zsw-quote-form textarea {
	font: inherit; width: 100%; box-sizing: border-box; background: #fff; color: var(--zsw-ink);
	border: 1px solid var(--zsw-line); border-radius: 0; padding: 12px 14px; min-height: 49px;
}
.zsw-quote-form textarea { min-height: 150px; resize: vertical; }
.zsw-quote-form input:focus, .zsw-quote-form select:focus, .zsw-quote-form textarea:focus { outline: 2px solid var(--zsw-focus); outline-offset: 1px; border-color: transparent; }
.zsw-quote-form .zsw-field-note { font-size: .84rem; color: var(--zsw-muted); }
.zsw-quote-form .zsw-form-actions { grid-column: 1 / -1; }
.zsw-quote-form button { cursor: pointer; display: inline-flex; align-items: center; gap: 10px; min-height: 50px; }
.zsw-quote-form button::after { content: "→"; }
.zsw-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.zsw-form-status { border: 1px solid var(--zsw-line); border-top: 3px solid var(--zsw-accent); background: var(--zsw-paper); padding: 20px 24px; margin-bottom: 20px; }
.zsw-form-status h3 { margin-bottom: 8px; }
.zsw-form-status p { margin: 0; color: var(--zsw-muted); }

/* ---------- service detail + about ---------- */
.zsw-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: start; }
.zsw-detail-grid > * { margin: 0; }
.zsw-lead-img { margin: 0 0 24px; }
.zsw-lead-img img { width: 100%; max-height: 440px; object-fit: cover; display: block; }
h2.zsw-subhead { font-size: 1.7rem; letter-spacing: -.012em; margin: 32px 0 14px; }
.zsw-detail-grid .zsw-steps { margin-top: 1rem; }
.zsw-detail-grid .zsw-steps + .wp-block-buttons { margin-top: 1rem; }
.zsw-aside { display: grid; gap: 20px; }
.zsw-aside > * { margin: 0; }
.zsw-aside-card { border: 1px solid var(--zsw-line); background: var(--zsw-surface); padding: 22px; }
.zsw-aside-card ul { margin-top: 10px; }
.zsw-aside-card li { padding: 8px 0; border-bottom: 1px solid var(--zsw-line); }
.zsw-aside-card.is-dark { background: var(--zsw-dark); color: #fff; border-color: var(--zsw-dark); }
.zsw-aside-card.is-dark p a { color: #ffb59f; }
.zsw-aside-photo { margin: 0; }
.zsw-aside-photo img { width: 100%; height: 220px; object-fit: cover; display: block; }

/* ---------- industries ---------- */
.zsw-industries-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.zsw-industries-grid > * { margin: 0; }
.zsw-industry-card { border: 1px solid var(--zsw-line); background: var(--zsw-surface); padding: 22px; }
.zsw-cta-strip { margin-top: 36px; background: var(--zsw-dark); color: #fff; padding: 28px; display: flex; justify-content: space-between; gap: 20px; align-items: center; flex-wrap: wrap; }
.zsw-cta-strip > * { margin: 0; }

/* ---------- blog ---------- */
.zsw-post-card { border-bottom: 1px solid var(--zsw-line); padding: 26px 0; }
.zsw-post-card .wp-block-post-title { font-size: 1.7rem; }

/* ---------- footer ---------- */
.zsw-footer { background: #090a0b; color: #d9dcdb; padding: 62px 0 30px; }
.zsw-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 50px; }
.zsw-footer-grid > * { margin: 0; }
.zsw-footer .wp-block-site-logo { margin: 0 0 26px; }
.zsw-footer h3 { color: #fff; font-size: 1.15rem; margin-bottom: 14px; letter-spacing: 0; }
.zsw-footer p, .zsw-footer a { color: #aeb5b6; }
.zsw-footer a:hover { color: #fff; }
.zsw-footer li { margin-bottom: 8px; }
.zsw-footer .zsw-footer-contact a { color: #ffb59f; }
.zsw-footer-bottom { margin-top: 50px; padding-top: 24px; border-top: 1px solid #2c3032; display: flex; justify-content: space-between; gap: 24px; }
.zsw-footer-bottom p { margin: 0; font-size: .78rem; color: #8d9699; }

/* ---------- responsive ---------- */
@media (max-width: 1000px) {
	.zsw-hero-inner, .zsw-section-head, .zsw-cred > .zsw-container, .zsw-quote-grid, .zsw-coverage > .zsw-container { grid-template-columns: 1fr; gap: 28px; }
	.zsw-hero-aside { max-width: 300px; }
	.zsw-services { grid-template-columns: 1fr 1fr; }
	.zsw-services.is-stacked { grid-template-columns: 1fr; }
	.zsw-project-grid { grid-template-columns: 1fr 1fr; }
	.zsw-project-grid > .wp-block-image:first-child { grid-row: auto; }
	.zsw-process { grid-template-columns: 1fr; gap: 34px; }
	.zsw-process-intro, .zsw-quote-copy { position: static; }
	.zsw-split { grid-template-columns: 1fr; }
	.zsw-split > .wp-block-image img { min-height: 430px; max-height: 520px; }
	.zsw-footer-grid { grid-template-columns: 1fr 1fr; }
	.zsw-footer-grid > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
	.zsw-service-full, .zsw-detail-grid, .zsw-contact-grid { grid-template-columns: 1fr; }
	.zsw-quote-form, ul.is-style-boxes { grid-template-columns: 1fr; }
	.zsw-quote-form .zsw-field { grid-column: 1; }
	.zsw-why-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
	.zsw-container { width: min(calc(100% - 28px), var(--zsw-max)); }
	.zsw-nav .wp-block-site-logo img { width: 160px; }
	.wp-block-cover.zsw-hero { min-height: 680px; }
	.zsw-hero-inner { padding: 95px 0 58px; }
	.zsw-hero .wp-block-cover__background { background: rgba(8, 10, 11, .66) !important; }
	.zsw-hero-aside { display: none; }
	.zsw-cred > .zsw-container { padding-block: 34px; }
	.zsw-section { padding: 76px 0; }
	.zsw-section-head { margin-bottom: 32px; }
	.zsw-services { grid-template-columns: 1fr; }
	.zsw-service { min-height: 0; }
	.zsw-service h3 { margin-top: 28px; }
	.zsw-split-copy { padding: 50px 22px; }
	ul.is-style-ruled { grid-template-columns: 1fr; }
	ul.is-style-ruled li:nth-child(even) { padding-left: 0; border-left: 0; }
	.zsw-why-grid { grid-template-columns: 1fr; }
	.zsw-reason { margin-right: 0; }
	.zsw-project-grid { grid-template-columns: 1fr; grid-auto-rows: 280px; }
	.zsw-project-note { align-items: flex-start; flex-direction: column; }
	.zsw-regions { grid-template-columns: 1fr; }
	.zsw-regions > p { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .45); }
	.zsw-regions > p:last-child { border-bottom: 0; }
	.zsw-quote-grid { gap: 42px; }
	.zsw-footer-grid { grid-template-columns: 1fr; }
	.zsw-footer-grid > :first-child { grid-column: auto; }
	.zsw-footer-bottom { flex-direction: column; }
	.zsw-step { grid-template-columns: 54px 1fr; }
	.zsw-hero .wp-block-buttons, .zsw-hero .wp-block-button, .zsw-hero .wp-block-button__link { width: 100%; }
	.zsw-quote-form button { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.zsw-project-grid > .wp-block-image img { transition: none; }
}
