/* ------------------------------------------------------------------
   Bridge: map WordPress core block markup onto the original Slate CSS.
   Core block styles are dequeued, so these are the only block rules.
   ------------------------------------------------------------------ */

/* --- generic ------------------------------------------------------- */
.entry-content > *:last-child { margin-bottom: 0; }
.alignwide, .alignfull { width: 100%; }
.aligncenter { margin-left: auto; margin-right: auto; text-align: center; }
.wp-block-spacer { display: block; }

/* --- images = .image.fit ------------------------------------------- */
figure.wp-block-image {
	display: block;
	margin: 0 0 2em 0;
	width: 100%;
	position: relative;
	border: 0;
}
figure.wp-block-image img { display: block; width: 100%; height: auto; }
figure.wp-block-image a { display: block; border-bottom: 0; }
figure.wp-block-image figcaption {
	font-size: 0.8em; color: #909090; text-align: center; margin: 0.5em 0 0 0;
}
figure.wp-block-image.is-style-rounded img { border-radius: 100%; }

/* --- columns = .row ------------------------------------------------ */
.wp-block-columns {
	display: -webkit-flex; display: -ms-flex; display: flex;
	-webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap;
	box-sizing: border-box; align-items: stretch;
	margin: 0 0 2em -2em;
}
.wp-block-columns > .wp-block-column {
	box-sizing: border-box;
	padding: 0 0 0 2em;
	-webkit-flex: 1; -ms-flex: 1; flex: 1;
	min-width: 0;
}
.wp-block-columns.is-not-stacked-on-mobile { flex-wrap: nowrap; }
.wp-block-columns > .wp-block-column > *:last-child { margin-bottom: 0; }
.sl-intro { font-size: 1.05em; }
.wp-block-columns.uniform { margin: -2em 0 2em -2em; }
.wp-block-columns.uniform > .wp-block-column { padding: 2em 0 0 2em; }

/* --- gallery = .box.alt .row.uniform ------------------------------- */
.wp-block-gallery {
	display: -webkit-flex; display: -ms-flex; display: flex;
	-webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap;
	margin: -1em 0 2em -1em;
	padding: 0; border: 0;
}
.wp-block-gallery > figure.wp-block-image {
	box-sizing: border-box;
	padding: 1em 0 0 1em;
	margin: 0;
	width: 25%;
}
.wp-block-gallery.columns-2 > figure.wp-block-image { width: 50%; }
.wp-block-gallery.columns-3 > figure.wp-block-image { width: 33.33333%; }
.wp-block-gallery.columns-5 > figure.wp-block-image { width: 20%; }
.wp-block-gallery.columns-6 > figure.wp-block-image { width: 16.66666%; }

/* --- buttons = .actions / .button ---------------------------------- */
.wp-block-buttons {
	display: -webkit-flex; display: -ms-flex; display: flex;
	-webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap;
	list-style: none; padding-left: 0; margin: 0 0 2em -1em;
}
.wp-block-buttons > .wp-block-button { padding: 0 0 0 1em; margin: 0; }
.wp-block-button__link {
	-webkit-appearance: none; appearance: none;
	-webkit-transition: background-color 0.2s ease-in-out; transition: background-color 0.2s ease-in-out;
	border: 0; border-radius: 0; cursor: pointer; display: inline-block;
	font-family: "Raleway", Helvetica, sans-serif; font-weight: 700;
	height: 2.75em; line-height: 2.75em; padding: 0 1.5em;
	text-align: center; text-decoration: none; text-transform: uppercase; white-space: nowrap;
	background-color: transparent; color: #444 !important; box-shadow: inset 0 0 0 1px #444;
}
.wp-block-button__link:hover { background-color: #f6f6f6; }
.wp-block-button__link:active { background-color: #e2e2e2; }
.wp-block-button.is-style-fill .wp-block-button__link,
.wp-block-button.special .wp-block-button__link {
	box-shadow: none; background-color: #444; color: #fff !important;
}
.wp-block-button.is-style-fill .wp-block-button__link:hover,
.wp-block-button.special .wp-block-button__link:hover { background-color: #515151; }

/* --- media & text = .spotlight ------------------------------------- */
.wp-block-media-text {
	display: -webkit-flex; display: -ms-flex; display: flex;
	-webkit-align-items: center; -ms-align-items: center; align-items: center;
	-webkit-justify-content: space-between; justify-content: space-between;
	margin: 0 0 2em 0;
}
.wp-block-media-text > .wp-block-media-text__content { width: 45%; }
.wp-block-media-text > .wp-block-media-text__media { width: 45%; margin: 0; }
.wp-block-media-text > .wp-block-media-text__media img { display: block; width: 100%; height: auto; }
.wp-block-media-text.has-media-on-the-right { -webkit-flex-direction: row; flex-direction: row; }
.wp-block-media-text > .wp-block-media-text__content > *:last-child { margin-bottom: 0; }

/* --- features / posts sections built from group + columns ---------- */
.features > .wp-block-columns { margin: 0; }
.features.wp-block-columns { display: flex; justify-content: space-between; margin: 0; }
.features.wp-block-columns > .wp-block-column {
	width: calc(33.33333333% - 5em); -webkit-flex: none; flex: none; position: relative;
}
.features.wp-block-columns > .wp-block-column:before {
	content: ''; display: block; height: 100%; margin-left: -3.75em;
	position: absolute; top: 0; width: 1px; background-color: #e6e6e6;
}
.features.wp-block-columns > .wp-block-column:first-child:before { display: none; }

.posts.wp-block-columns { margin: 0 0 2em 0; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: space-between; justify-content: space-between; }
.posts.wp-block-columns > .wp-block-column {
	width: calc(33.33333333% - 1.25em); -webkit-flex: none; flex: none; padding: 0;
	margin: 0 0 2em 0;
	display: -webkit-flex; display: flex;
	-webkit-flex-direction: column; flex-direction: column;
	-webkit-align-items: stretch; align-items: stretch;
}
.posts.wp-block-columns > .wp-block-column > figure.wp-block-image.image {
	display: block; margin: 0 0 1em 0; width: 100%; -ms-flex: 0 0 auto;
}
.posts.wp-block-columns > .wp-block-column > figure.wp-block-image.image img { width: 100%; }
.posts .wp-block-group.content {
	padding: 2.5em 2.5em 0.5em 2.5em;
	-webkit-flex-grow: 1; flex-grow: 1;
	background-color: #fff; border: 0;
}
.posts .wp-block-group.content h3 { margin: 0 0 0.5em 0; }

/* --- separator ------------------------------------------------------ */
.wp-block-separator { border: 0; border-bottom: solid 1px #e6e6e6; margin: 3em 0; }

/* --- contact list = .bulleted-icons -------------------------------- */
.sl-contact-list { list-style: none; padding-left: 0; }
.sl-contact-list li { padding-left: 0; margin-bottom: 1.5em; }

/* --- forms (Contact Form 7) ---------------------------------------- */
.wpcf7 p { margin-bottom: 1em; }
.wpcf7 label { display: block; font-family: "Raleway", Helvetica, sans-serif; font-weight: 700; font-size: 0.8em; text-transform: uppercase; letter-spacing: 0.075em; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"],
.wpcf7 select, .wpcf7 textarea { width: 100%; }
.wpcf7 textarea { height: 10em; }
.wpcf7 input[type="submit"] {
	-webkit-appearance: none; appearance: none; border: 0; border-radius: 0; cursor: pointer;
	font-family: "Raleway", Helvetica, sans-serif; font-weight: 700; height: 2.75em; line-height: 2.75em;
	padding: 0 1.5em; text-transform: uppercase; background-color: #444; color: #fff;
}
.wpcf7 input[type="submit"]:hover { background-color: #515151; }

/* --- responsive ----------------------------------------------------- */
@media screen and (max-width: 980px) {
	.features.wp-block-columns { flex-direction: column; }
	.features.wp-block-columns > .wp-block-column { width: 100%; }
	.features.wp-block-columns > .wp-block-column:before {
		width: 100%; height: 1px; margin-left: 0; position: relative; top: -3em;
	}
	.posts.wp-block-columns > .wp-block-column { width: calc(50% - 1em); }
	.wp-block-media-text { flex-direction: column; }
	.wp-block-media-text > .wp-block-media-text__content,
	.wp-block-media-text > .wp-block-media-text__media { width: 100%; }
	.wp-block-media-text > .wp-block-media-text__media { margin-top: 2em; }
	.wp-block-gallery > figure.wp-block-image { width: 33.33333%; }
}
@media screen and (max-width: 736px) {
	.wp-block-columns { display: block; margin-left: 0; }
	.wp-block-columns > .wp-block-column { width: 100% !important; padding-left: 0; margin-bottom: 2em; }
	.posts.wp-block-columns > .wp-block-column { width: 100%; }
	.wp-block-gallery > figure.wp-block-image { width: 50%; }
}


/* ------------------------------------------------------------------
   Group blocks emit an extra .wp-block-group__inner-container div.
   Treat that container as the original ".inner" wrapper.
   ------------------------------------------------------------------ */
.wrapper > .wp-block-group__inner-container,
.wrapper > .inner {
	margin: 0 auto; max-width: 90em; width: 90%;
}
.wrapper.split > .wp-block-group__inner-container,
.wrapper.split > .inner {
	display: -webkit-flex; display: -ms-flex; display: flex;
	-webkit-justify-content: space-between; justify-content: space-between;
}
.wrapper.split > .wp-block-group__inner-container > *,
.wrapper.split > .inner > * { width: calc(50% - 3.75em); position: relative; }
.wrapper.split > .wp-block-group__inner-container > * + *:before,
.wrapper.split > .inner > * + *:before {
	content: ''; display: block; width: 1px; height: 100%;
	position: absolute; top: 0; margin-left: -3.75em; background-color: #e6e6e6;
}

.spotlight > .wp-block-group__inner-container {
	display: -webkit-flex; display: -ms-flex; display: flex;
	-webkit-justify-content: space-between; justify-content: space-between;
}
.spotlight > .wp-block-group__inner-container > .content { width: calc(33.3333333% - 1.25em); }
.spotlight > .wp-block-group__inner-container > .image {
	width: calc(66.6666666% - 2.5em); margin: 0 0 2em 0;
}
.spotlight > .wp-block-group__inner-container > .image img { width: 100%; }

/* section backgrounds/padding come from Slate: keep the group transparent */
.wp-block-group__inner-container > *:last-child { margin-bottom: 0; }

@media screen and (max-width: 980px) {
	.spotlight > .wp-block-group__inner-container { display: block; }
	.spotlight > .wp-block-group__inner-container > .content,
	.spotlight > .wp-block-group__inner-container > .image { width: 100%; }
	.wrapper.split > .wp-block-group__inner-container { display: block; }
	.wrapper.split > .wp-block-group__inner-container > * { width: 100%; }
	.wrapper.split > .wp-block-group__inner-container > * + *:before { display: none; }
}

/* Split two-column layout for in-page use (contact page). */
.sl-split > .wp-block-group__inner-container {
	display: -webkit-flex; display: -ms-flex; display: flex;
	-webkit-justify-content: space-between; justify-content: space-between;
}
.sl-split > .wp-block-group__inner-container > * { width: calc(50% - 3.75em); position: relative; }
.sl-split > .wp-block-group__inner-container > * + *:before {
	content: ''; display: block; width: 1px; height: 100%;
	position: absolute; top: 0; margin-left: -3.75em; background-color: #e6e6e6;
}
.sl-contact-list, ul.bulleted-icons { list-style: none; padding-left: 0; }
@media screen and (max-width: 980px) {
	.sl-split > .wp-block-group__inner-container { display: block; }
	.sl-split > .wp-block-group__inner-container > * { width: 100%; }
	.sl-split > .wp-block-group__inner-container > * + *:before { display: none; }
}

/* ------------------------------------------------------------------
   Hard overrides for WordPress' per-block inline styles.
   ------------------------------------------------------------------ */
figure.wp-block-image > a,
figure.wp-block-image a.image { display: block !important; width: 100%; }
figure.wp-block-image img { max-width: 100%; box-sizing: border-box; }

.spotlight > .wp-block-group__inner-container > figure.image { width: calc(66.6666666% - 2.5em) !important; }
.spotlight > .wp-block-group__inner-container > .wp-block-group.content { width: calc(33.3333333% - 1.25em) !important; }

.posts.wp-block-columns { flex-wrap: wrap !important; }
.features.wp-block-columns { flex-wrap: nowrap !important; }

.wp-block-gallery.has-nested-images { gap: 0 !important; }
.wp-block-gallery.has-nested-images > figure.wp-block-image { flex-grow: 0 !important; }
.wp-block-gallery.has-nested-images > figure.wp-block-image > a { flex: none; }

@media screen and (max-width: 980px) {
	.spotlight > .wp-block-group__inner-container > figure.image,
	.spotlight > .wp-block-group__inner-container > .wp-block-group.content { width: 100% !important; }
	.features.wp-block-columns { flex-wrap: wrap !important; }
}


/* --- fixes: section rhythm, product cards, sidebar brochures ---------- */

/* Feature columns keep the original 4em/2em breathing room. */
.wrapper.content-pad .features.wp-block-columns > .wp-block-column.content {
	padding: 4em 0 2em 0 !important;
}

/* Product cards: white panel under each image, evenly padded. */
.wrapper.style2 .posts .wp-block-group.content { background-color: #fff; border: 0; }
.posts .wp-block-group.content > .wp-block-group__inner-container > *:last-child { margin-bottom: 2em; }

/* Colour-chart brochures in the sidebar are thumbnails, as on the original. */
.sl-chart-thumb { width: 40%; margin: 0 0 1em 0; }
.sl-chart-thumb .image.fit { margin: 0; }
.sl-chart-thumb img { width: 100%; height: auto; }

/* Swipebox lightbox chrome. */
#swipebox-overlay { z-index: 99999; }
#swipebox-title { font-family: "Raleway", Helvetica, sans-serif; text-transform: none; }

@media screen and (max-width: 1280px) {
	.posts .wp-block-group.content { padding: 2em 2em 0.1em 2em; }
}
@media screen and (max-width: 736px) {
	.wrapper.content-pad .features.wp-block-columns > .wp-block-column.content {
		padding: 3em 0 1em 0 !important;
	}
	.posts .wp-block-group.content { padding: 2em 1.5em 0.1em 1.5em; }
	.sl-chart-thumb { width: 55%; }
}

/* --- Projects ------------------------------------------------------- */
.sl-projects { margin: 3em 0 0 0; }
.sl-projects > h2 { margin-bottom: 1.5em; }
.sl-projects .posts .post .content { background-color: #fff; border: solid 1px #e6e6e6; }
.sl-projects .posts .post .content p { margin-bottom: 1em; }
#main.wrapper .posts { margin-bottom: 2em; }
.posts .post .image img { width: 100%; height: auto; display: block; }
.nav-links { margin: 2em 0 0 0; }
.nav-links .page-numbers {
	display: inline-block; padding: 0 0.8em; height: 2.5em; line-height: 2.5em;
	border: solid 1px #e6e6e6; margin-right: 0.4em; text-decoration: none;
}
.nav-links .page-numbers.current { background-color: #444; color: #fff; border-color: #444; }
.sl-projects .actions { list-style: none; padding-left: 0; }

/* ------------------------------------------------------------------
   Editable product sidebar: block content inside Slate's .sidebar
   ------------------------------------------------------------------ */
.sidebar .sl-sidebar-content > *:first-child { margin-top: 0; }

/* Headings, paragraphs and buttons deliberately inherit Slate's defaults so
   the block-built sidebar renders identically to the original static site. */

.sidebar .sl-sidebar-content figure.wp-block-image { margin: 0 0 1em 0; display: block; }
.sidebar .sl-sidebar-content figure.wp-block-image img { width: 100%; height: auto; display: block; }
.sidebar .sl-sidebar-content figure.wp-block-image a { display: block; border-bottom: 0; }

.sidebar .sl-sidebar-content .wp-block-buttons { margin: 0 0 2em 0; }

.sidebar .sl-sidebar-content hr.wp-block-separator { margin: 2em 0; }

/* the automatic cross-promo shortcode keeps the original Slate markup */
.sidebar .sl-sidebar-content section { margin-bottom: 0; }
