/*
Theme Name:     LPA Fibracast 1
Theme URI:      n/a
Template:       kadence
Author:         Lorne Pike
Author URI:     https://lornepike.com
Description:    Child Theme Description
Version:        1.0.162
License:        GNU General Public License v3.0 (or later)
License URI:    https://www.gnu.org/licenses/gpl-3.0.html
*/

.lpa-hero-slider,
kb-advanced-slider.kb-advanced-slider-3730_409c7c-1b.alignwide.wp-block-kadence-slider {
  width: 100vw !important;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
}

.lpa-hero-slider,
.kb-advanced-slide-inner h2 {
	color: #fff !important;
	font-size: 3.2rem;
	text-align: left;
	text-shadow: 2px 2px 6px #000;
	padding-bottom: 0px;
	margin-bottom: 0px;
}

.lpa-hero-slider,
.kb-advanced-slide-inner p {
	color: #fff !important;
	font-size: 1.3rem !important;
	font-weight: 500;
	text-align: left;
	text-shadow: 1px 1px 6px #000;
}

.lpa-slider-icon-row {
  margin: -118px auto 0px !important;
  padding-top: 20px;
  background: rgba(0, 0, 0, 0.7);
  width: 100vw !important;
  position: relative;
  z-index: 15;
  left: 50%;
  right: 50%;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
}

.lpa-slider-icon-row .kt-blocks-info-box-title {
	text-shadow: #000 2px 2px 3px !important;
	margin-bottom: 0px !important;
}

.lpa-button-row-1 {
}

.lpa-case-study {
  width: 100vw !important;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
}

.lpa-case-study h2,
.lpa-case-study h3,
.lpa-case-study p {
	max-width: 1250px;
	margin: 0 auto;
}

.lpa-case-study .lpa-case-study-table {
	max-width: 1250px;
	margin: 0 auto;
}

/* Home Success Story (East Valley): zero vertical gap between Location / Application / Capacity / Commissioned rows only.
   Chain: page + .lpa-case-study (unique to home in DB) + .lpa-case-study-table column rows. Preserves last row bottom margin. Inner column gutter removal is portrait-phone only (see @media below). */
body.page-id-3863 .lpa-case-study .wp-block-columns.lpa-case-study-table {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
	padding-block: 0 !important;
}
body.page-id-3863 .lpa-case-study .wp-block-columns.lpa-case-study-table:last-child {
	margin-block-end: var(--wp--preset--spacing--40) !important;
}
body.page-id-3863 .lpa-case-study .wp-block-columns.lpa-case-study-table .wp-block-column {
	margin-block: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
body.page-id-3863 .lpa-case-study .wp-block-columns.lpa-case-study-table .wp-block-column p {
	margin: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Home Success Story table: portrait phones only — remove ~40px inner gutter (double spacing--30) + fixed label column; landscape and ≥768px keep editor padding and inline 15/85 flex. */
@media (max-width: 767px) and (orientation: portrait) {
	body.page-id-3863 .lpa-case-study .wp-block-columns.lpa-case-study-table {
		gap: 0 !important;
	}
	body.page-id-3863 .lpa-case-study .wp-block-columns.lpa-case-study-table > .wp-block-column:first-child {
		padding-right: 0 !important;
		flex: 0 0 9.25rem !important;
		min-width: 0;
	}
	body.page-id-3863 .lpa-case-study .wp-block-columns.lpa-case-study-table > .wp-block-column:last-child {
		padding-left: 0 !important;
		flex: 1 1 0% !important;
		min-width: 0;
	}
}

/*
 * Home Success Story: phone landscape — iPhone landscape width is often >767px, so max-width:767px never matched.
 * Short viewport height + landscape + bounded width targets phone landscape without tablets (taller min dimension).
 */
@media (orientation: landscape) and (max-height: 500px) and (max-width: 926px) {
	body.page-id-3863 .lpa-case-study .wp-block-columns.lpa-case-study-table > .wp-block-column:first-child {
		flex: 0 0 12.5rem !important;
		min-width: 0;
	}
	body.page-id-3863 .lpa-case-study .wp-block-columns.lpa-case-study-table > .wp-block-column:last-child {
		flex: 1 1 0% !important;
		min-width: 0;
	}
}

/* Home Success Story: portrait tablet (768–1024) only — wider label column; does not apply to desktop widths or phone portrait. */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
	body.page-id-3863 .lpa-case-study .wp-block-columns.lpa-case-study-table > .wp-block-column:first-child {
		flex: 0 0 12rem !important;
		min-width: 0;
	}
	body.page-id-3863 .lpa-case-study .wp-block-columns.lpa-case-study-table > .wp-block-column:last-child {
		flex: 1 1 0% !important;
		min-width: 0;
	}
}

/*
 * Home Success Story (3863, .lpa-case-study): main section h2 vs assumed 2.25rem Kadence-scale baseline.
 * Was ×0.75 (−25%); bumped by half that cut (×0.125) → ×0.875 (−12.5% vs full baseline). Same breakpoints as before.
 * If editor h2 base differs from ~2.25rem, adjust the leading rem once.
 * Subline h3 directly under that h2: −10% vs assumed ~1.75rem (calc ×0.9); tune 1.75rem if block editor size differs.
 * Success Story row 5cae29-d3: Kadence inline CSS puts the photo on the row and the blue translucent panel on
 * .kadence-column3863_c024de-0d > .kt-inside-inner-col — NOT on .kt-row-column-wrap. Pad that inner col only (4vw L/R; same breakpoints as h2/h3).
 * White band intro above Success Story: same 4vw L/R on centered .lpa-text-wide paragraph only at those breakpoints (home only; single instance on 3863).
 */
@media (max-width: 767px),
	(min-width: 768px) and (max-width: 1366px) and (orientation: portrait),
	(orientation: landscape) and (max-height: 520px) and (max-width: 1000px) {
	html body.page-id-3863 .kb-row-layout-id3863_5cae29-d3 .kadence-column3863_c024de-0d > .kt-inside-inner-col {
		padding-left: 4vw !important;
		padding-right: 4vw !important;
		box-sizing: border-box !important;
	}
	html body.page-id-3863 p.has-text-align-center.lpa-text-wide {
		padding-left: 4vw !important;
		padding-right: 4vw !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .lpa-case-study h2.wp-block-heading,
	body.page-id-3863 .lpa-case-study > h2 {
		font-size: calc(2.25rem * 0.875) !important;
		line-height: 1.22 !important;
	}
	body.page-id-3863 .lpa-case-study h2.wp-block-heading + h3.wp-block-heading,
	body.page-id-3863 .lpa-case-study > h2 + h3 {
		font-size: calc(1.75rem * 0.9) !important;
		line-height: 1.25 !important;
	}
}

.lpa-animation {
	max-width: 800px;
	margin: 0 auto;
}

.lpa-video-2 {
	max-width: 1250px;
	margin: 0 auto;	
}

.lpa-text-wide {
	max-width: 1200px;
	margin: 0 auto;
	font-size: 19px;
}

.page-id-3863 .entry-hero.page-hero-section,
.page-id-3730 .entry-hero.page-hero-section,
.page-id-3358 .entry-hero.page-hero-section,
.page-id-3477 .entry-hero.page-hero-section {
	display: none;
}

.page-id-3863 #primary,
.page-id-3730 #primary,
.page-id-3477 #primary,
.page-id-3358 #primary {
	margin-top: 0px;
}

#lpa-text-with-icons {
        margin-left: -115px;
        margin-right: -115px;
        width: unset;
        max-width: unset;
}

#lpa-text-with-icons .kt-blocks-info-box-title {
	color: #fff;
	max-width: 400px;
} 

#lpa-text-with-icons {
  padding-left: 5vw;
}

.page-id-3863 .wp-block-kadence-image:not(:last-child),
.page-id-3730 .wp-block-kadence-image:not(:last-child),
.page-id-3477 .wp-block-kadence-image:not(:last-child),
.page-id-3358 .wp-block-kadence-image:not(:last-child) {
    margin-bottom: 0em;
}

.lpa-home-section-text h2 {
	font-size: 34px;
}

h2.kt-adv-heading3358_b3b63f-09 {
	max-width: 1000px !important;
	padding: 0 0 40px;
}

.lpa-image-full-content-width {
	max-width: 1245px !important;
	margin: 0 auto !important;
}

/* Kadence footer builder — bottom HTML row only (copyright / “All Rights Reserved”); not header/nav */
#colophon.site-footer .footer-html-inner p {
	font-size: 14px;
}

/* Brand blue #0360c0 (Kadence global palette 1) — site footer row wrappers */
#colophon.site-footer,
.site-footer#colophon,
#colophon .site-footer-wrap,
#colophon .site-top-footer-wrap,
#colophon .site-middle-footer-wrap,
#colophon .site-bottom-footer-wrap {
	background-color: #0360c0 !important;
}

.lpa-image-full-content-width-with-button figcaption {
	display: none;
}

#backToTop {
  position: fixed;
  bottom: 40px;
  right: 40px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #015fbf; /* brand dark blue */
  color: #fff;
  border: none;
  font-size: 20px;
  cursor: pointer;
  display: none;
  z-index: 9999;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

#backToTop:hover {
  transform: translateY(-4px);
}

#footer-menu {
	margin-bottom: 30px !important;
}

/* Footer menu only: align first top-level item with content column (not primary nav) */
#colophon #footer-menu .menu > li:first-child > a,
#colophon #footer-navigation .footer-menu-container .menu > li:first-child > a {
	margin-left: 0 !important;
	padding-left: 0 !important;
}

#colophon #footer-menu .menu > li:first-child,
#colophon #footer-navigation .footer-menu-container .menu > li:first-child {
	margin-left: 0;
	padding-left: 0;
}

/*
 * Footer hub menu on small viewports: Kadence footer.min.css uses (max-width:1024px) tablet-center
 * rules AND margin-left:auto on the first .content-tablet-align-center widget — iPhones still match
 * 1024px, so 767-only overrides never won. Row .site-footer-row-columns-1 also uses justify-content:center.
 * Scoped to #colophon only; does not change header or primary nav.
 */
@media screen and (max-width: 1024px) {
	#colophon.site-footer .site-middle-footer-inner-wrap.site-footer-row.site-footer-row-columns-1 {
		justify-content: flex-start !important;
	}
	#colophon.site-footer .site-middle-footer-inner-wrap.site-footer-row-columns-1 > .site-footer-section {
		text-align: left !important;
	}
	#colophon.site-footer .site-footer-middle-section-1.footer-section-inner-items-2 .footer-navigation-wrap.footer-widget-area.content-tablet-align-center:first-child {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	#colophon.site-footer .footer-widget-area.footer-navigation-wrap.content-tablet-align-center {
		text-align: left !important;
		align-items: flex-start !important;
	}
	#colophon.site-footer .footer-widget-area.footer-navigation-wrap.content-tablet-align-center .footer-navigation,
	#colophon.site-footer .footer-widget-area.footer-navigation-wrap.content-tablet-align-center .footer-navigation .menu,
	#colophon.site-footer #footer-navigation .footer-menu-container,
	#colophon.site-footer #footer-menu.menu {
		justify-content: flex-start !important;
	}
	#colophon.site-footer .footer-navigation-wrap .footer-navigation-inner,
	#colophon.site-footer .footer-navigation-wrap .footer-widget-area-inner,
	#colophon.site-footer #footer-navigation.footer-navigation {
		text-align: left !important;
		align-items: flex-start !important;
	}
	/*
	 * Kadence applies symmetric horizontal padding on every li > a; we previously zeroed only :first-child,
	 * so wrapped rows looked indented vs "About Us". Uniform padding + flex gap keeps all rows flush left.
	 */
	#colophon.site-footer #footer-navigation .footer-menu-container > ul#footer-menu.menu > li > a {
		padding-left: 0 !important;
		padding-right: 0 !important;
		padding-top: 0.35em !important;
		padding-bottom: 0.35em !important;
	}
	#colophon.site-footer #footer-navigation .footer-menu-container > ul#footer-menu.menu > li {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	#colophon.site-footer #footer-menu.menu {
		column-gap: 1rem !important;
		row-gap: 0.25rem !important;
	}
	/* Social row + PHP legal links: same tablet-center as nav — left-align with hub menu (not header). */
	#colophon.site-footer .site-footer-middle-section-1 .footer-social.footer-widget-area.content-tablet-align-center {
		margin-left: 0 !important;
		margin-right: 0 !important;
		text-align: left !important;
		align-items: flex-start !important;
	}
	#colophon.site-footer .footer-widget-area.footer-social.content-tablet-align-center .footer-widget-area-inner,
	#colophon.site-footer .footer-widget-area.footer-social.content-tablet-align-center .footer-social-inner-wrap,
	#colophon.site-footer .footer-social-wrap .footer-social-inner-wrap {
		justify-content: flex-start !important;
		align-self: flex-start !important;
		width: 100% !important;
	}
	#colophon.site-footer .footer-social-inner-wrap .lpa-footer-legal-inline {
		margin-left: 0 !important;
		align-self: flex-start !important;
		justify-content: flex-start !important;
	}
	/* Pull hub menu block 40px closer to logo row (small viewports only). */
	#colophon.site-footer .site-middle-footer-wrap.site-footer-row-container {
		margin-top: -40px !important;
	}
}

/*
 * Phone (Kadence mobile breakpoint ≤719px): tighten vertical gap logo row → middle footer.
 */
@media screen and (max-width: 719px) {
	#colophon.site-footer .site-top-footer-inner-wrap.site-footer-row {
		padding-bottom: 8px !important;
		min-height: 0 !important;
	}
	#colophon.site-footer .site-top-footer-inner-wrap .widget {
		margin-bottom: 4px !important;
	}
	#colophon.site-footer .site-middle-footer-inner-wrap.site-footer-row {
		padding-top: 0 !important;
	}
}

.footer-social-inner-wrap {
	padding-left: 2px;
}

/*
 * Contact / Privacy / Terms: output after footer email icon in functions.php (same row as social icons).
 */
#colophon .footer-social-inner-wrap .lpa-footer-legal-inline {
	display: inline-flex;
	align-items: center;
	align-self: center;
	flex-wrap: wrap;
	column-gap: 45px;
	row-gap: 0.35em;
	margin-left: 0.65em;
}

#colophon .footer-social-inner-wrap .lpa-footer-legal-link {
	display: inline;
	padding: 0 0.05em;
	font-family: Heebo, sans-serif;
	font-size: 15px;
	font-weight: normal;
	line-height: 1.2;
	color: #ffffff;
	text-decoration: none;
	border: none;
	background: transparent;
	vertical-align: middle;
}

#colophon .footer-social-inner-wrap .lpa-footer-legal-link:hover,
#colophon .footer-social-inner-wrap .lpa-footer-legal-link:focus-visible {
	border: none !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	color: #3cb9fd !important;
	text-decoration: none !important;
}

/* Footer social icons: hover/focus state only (normal state unchanged) */
.footer-social-inner-wrap .wp-social-link:hover,
.footer-social-inner-wrap .wp-social-link:focus-within,
.footer-social-inner-wrap .wp-social-link a:hover,
.footer-social-inner-wrap .wp-social-link a:focus-visible,
.footer-social-inner-wrap .wp-block-social-links .wp-social-link:hover,
.footer-social-inner-wrap .wp-block-social-links .wp-social-link:focus-within,
.footer-social-inner-wrap .wp-block-social-links .wp-social-link .wp-block-social-link-anchor:hover,
.footer-social-inner-wrap .wp-block-social-links .wp-social-link .wp-block-social-link-anchor:focus-visible,
.footer-social-inner-wrap .kt-social-links-list li:hover,
.footer-social-inner-wrap .kt-social-links-list li:focus-within,
.footer-social-inner-wrap .kt-social-links-list a:hover,
.footer-social-inner-wrap .kt-social-links-list a:focus-visible,
.footer-social-inner-wrap .kt-svg-icons-list li:hover,
.footer-social-inner-wrap .kt-svg-icons-list li:focus-within,
.footer-social-inner-wrap .kt-svg-icons-list a:hover,
.footer-social-inner-wrap .kt-svg-icons-list a:focus-visible,
.footer-social-inner-wrap a:hover,
.footer-social-inner-wrap a:focus-visible {
	background-color: transparent !important;
	background-image: none !important;
	border: 2px solid #ffffff !important;
	border-color: #ffffff !important;
	color: #ffffff !important;
}

.footer-social-inner-wrap .wp-social-link:hover svg,
.footer-social-inner-wrap .wp-social-link:focus-within svg,
.footer-social-inner-wrap .wp-social-link a:hover svg,
.footer-social-inner-wrap .wp-social-link a:focus-visible svg,
.footer-social-inner-wrap .wp-block-social-links .wp-social-link:hover svg,
.footer-social-inner-wrap .wp-block-social-links .wp-social-link:focus-within svg,
.footer-social-inner-wrap .wp-block-social-links .wp-social-link .wp-block-social-link-anchor:hover svg,
.footer-social-inner-wrap .wp-block-social-links .wp-social-link .wp-block-social-link-anchor:focus-visible svg,
.footer-social-inner-wrap .wp-block-social-links .wp-social-link:hover .wp-block-social-link-anchor,
.footer-social-inner-wrap .wp-block-social-links .wp-social-link:focus-within .wp-block-social-link-anchor,
.footer-social-inner-wrap .kt-social-links-list li:hover svg,
.footer-social-inner-wrap .kt-social-links-list li:focus-within svg,
.footer-social-inner-wrap .kt-social-links-list a:hover svg,
.footer-social-inner-wrap .kt-social-links-list a:focus-visible svg,
.footer-social-inner-wrap .kt-svg-icons-list li:hover svg,
.footer-social-inner-wrap .kt-svg-icons-list li:focus-within svg,
.footer-social-inner-wrap .kt-svg-icons-list a:hover svg,
.footer-social-inner-wrap .kt-svg-icons-list a:focus-visible svg,
.footer-social-inner-wrap a:hover svg,
.footer-social-inner-wrap a:focus-visible svg {
	fill: #ffffff !important;
	color: #ffffff !important;
}

/* Kadence Footer Builder social icons (hover/focus only) */
#colophon .footer-social-inner-wrap .kt-social-item:hover .kt-social-link,
#colophon .footer-social-inner-wrap .kt-social-item:focus-within .kt-social-link,
#colophon .footer-social-inner-wrap .kt-social-link:hover,
#colophon .footer-social-inner-wrap .kt-social-link:focus-visible,
.site-footer .footer-social-inner-wrap .kt-social-item:hover .kt-social-link,
.site-footer .footer-social-inner-wrap .kt-social-item:focus-within .kt-social-link,
.site-footer .footer-social-inner-wrap .kt-social-link:hover,
.site-footer .footer-social-inner-wrap .kt-social-link:focus-visible {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 2px solid #ffffff !important;
	border-color: #ffffff !important;
	color: #ffffff !important;
}

#colophon .footer-social-inner-wrap .kt-social-item:hover .kt-social-link svg,
#colophon .footer-social-inner-wrap .kt-social-item:focus-within .kt-social-link svg,
#colophon .footer-social-inner-wrap .kt-social-link:hover svg,
#colophon .footer-social-inner-wrap .kt-social-link:focus-visible svg,
.site-footer .footer-social-inner-wrap .kt-social-item:hover .kt-social-link svg,
.site-footer .footer-social-inner-wrap .kt-social-item:focus-within .kt-social-link svg,
.site-footer .footer-social-inner-wrap .kt-social-link:hover svg,
.site-footer .footer-social-inner-wrap .kt-social-link:focus-visible svg {
	fill: #ffffff !important;
	color: #ffffff !important;
}

.search.search-results h1 {
	font-size: 36px;
}

.search.search-results h2.entry-title {
	font-size: 24px;
}

.search.search-results p {
	font-size: 16px;
}

/* Home Page Button Rows */

/* Full tile setup for Kadence Info Boxes inside .lpa-button-rows */

.lpa-button-rows .wp-block-kadence-infobox{
  width: 100%;
}

.wp-block-kadence-rowlayout .kt-row-column-wrap.kb-theme-content-width {
	padding: 0px 0px 30px;
}

.lpa-button-rows .kt-blocks-info-box-link-wrap{
  display: flex !important;
  width: 100% !important;
  aspect-ratio: 7 / 4;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  padding: 24px;
  background-image: url("/wp-content/uploads/2026/03/bkg-blue-abstract-2.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Overlay */
.lpa-button-rows .kt-blocks-info-box-link-wrap::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.18);
  transition: background 0.25s ease;
  z-index: 1;
}

.lpa-button-rows .wp-block-kadence-infobox:hover .kt-blocks-info-box-link-wrap::before{
  background: rgba(0, 0, 0, 0.34);
}

/* Content wrapper */
.lpa-button-rows .kt-infobox-textcontent{
  width: 100%;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  position: relative;
  z-index: 2;
}

/* Title */
.lpa-button-rows h2.kt-blocks-info-box-title{
  margin: 0 !important;
  padding: 0 !important;
  color: var(--global-palette9, #ffffff);
	font-weight: 500;
  font-size:  1.6rem;
	text-shadow: 1px 1px 4px #000;
  line-height: 1.2;
  text-align: center;
  transform: translateY(20px);
  transition: transform 0.35s ease, opacity 0.35s ease;
}

/* Hide unused paragraph text area */
.lpa-button-rows .kt-blocks-info-box-text{
  display: none;
  margin: 0 !important;
  padding: 0 !important;
}

/* Hover title move */
.lpa-button-rows .wp-block-kadence-infobox:hover h2.kt-blocks-info-box-title{
  transform: translateY(0px);
}

/* Learn More button */
.lpa-button-rows .kt-infobox-textcontent::after{
  content: "Learn More";
  display: inline-block;
  padding: 8px 24px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  color: #fff;
  border: 2px solid #fff;
  border-radius: 4px;
  background: transparent;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.35s ease, transform 0.35s ease;
  pointer-events: none;
}

/* Reveal button on hover */
.lpa-button-rows .wp-block-kadence-infobox:hover .kt-infobox-textcontent::after{
  opacity: 1;
  transform: translateY(0);
}

/********************/

body {
  font-family: "effra", sans-serif !important;
  font-size: 21px !important;
}
/* Main menu (desktop header row only): dropdown panel width. Uses Kadence CPT nav class (*-cpt-id), not off-canvas nav (e.g. navigation56_*). */
header.wp-block-kadence-header .wp-block-kadence-header-desktop .wp-block-kadence-navigation[class*="-cpt-id"] {
	--kb-nav-dropdown-link-width: 300px !important;
}
/* Same chain: Technology & Solutions hub only — wider first-level dropdown (340px). Top-level li only (:has direct .kb-link-wrap > a; not nested sub-items). Trailing slash variants. */
header.wp-block-kadence-header .wp-block-kadence-header-desktop .wp-block-kadence-navigation[class*="-cpt-id"] ul.kb-navigation.menu > li.menu-item-has-children:has(> .kb-link-wrap > a.kb-nav-link-content[href$="/technology-solutions/"]),
header.wp-block-kadence-header .wp-block-kadence-header-desktop .wp-block-kadence-navigation[class*="-cpt-id"] ul.kb-navigation.menu > li.menu-item-has-children:has(> .kb-link-wrap > a.kb-nav-link-content[href$="/technology-solutions"]) {
	--kb-nav-dropdown-link-width: 340px !important;
}

/* Header dropdown + off-canvas: match top-level nav link size.
   Kadence outputs font-size on .menu > li > .kb-link-wrap only; .sub-menu .kb-link-wrap does not get that rule,
   so dropdown text often inherits a different (smaller) size from the navigation block / theme.
   If you change primary nav link font size in the Kadence Header Navigation block, set the same px here. */
header.wp-block-kadence-header .wp-block-kadence-navigation .sub-menu .kb-link-wrap,
header.wp-block-kadence-header .wp-block-kadence-navigation .sub-menu .kb-nav-link-content,
header.wp-block-kadence-header .wp-block-kadence-navigation .kb-nav-sub-menu .kb-link-wrap,
header.wp-block-kadence-header .wp-block-kadence-navigation .kb-nav-sub-menu .kb-nav-link-content,
header.wp-block-kadence-header .wp-block-kadence-navigation .kb-nav-sub-wrap .kb-link-wrap,
header.wp-block-kadence-header .wp-block-kadence-navigation .kb-nav-sub-wrap .kb-nav-link-content,
.site-top-header-wrap .wp-block-kadence-navigation .sub-menu .kb-link-wrap,
.site-top-header-wrap .wp-block-kadence-navigation .sub-menu .kb-nav-link-content,
.site-top-header-wrap .wp-block-kadence-navigation .kb-nav-sub-menu .kb-link-wrap,
.site-top-header-wrap .wp-block-kadence-navigation .kb-nav-sub-menu .kb-nav-link-content,
.wp-block-kadence-off-canvas .wp-block-kadence-navigation .sub-menu .kb-link-wrap,
.wp-block-kadence-off-canvas .wp-block-kadence-navigation .sub-menu .kb-nav-link-content,
.wp-block-kadence-off-canvas .sub-menu .kb-link-wrap,
.wp-block-kadence-off-canvas .sub-menu .kb-nav-link-content,
.wp-block-kadence-off-canvas .kb-nav-sub-wrap a {
    font-size: 17px !important;
}

/* Fibracast header drawer only: same CPT nav keeps “horizontal” classes off-canvas — stack items, left-align (desktop header unchanged). */
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] > .navigation {
	justify-content: flex-start !important;
	align-items: stretch !important;
	text-align: left !important;
	width: 100%;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] .menu-container {
	width: 100%;
	max-width: 100%;
	text-align: left !important;
	justify-content: flex-start !important;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.kb-navigation.menu {
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	justify-content: flex-start !important;
	width: 100% !important;
	max-width: 100% !important;
	text-align: left !important;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.kb-navigation.menu > li {
	width: 100% !important;
	max-width: 100% !important;
	flex: 0 0 auto !important;
	text-align: left !important;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.kb-navigation.menu > li > .kb-link-wrap {
	display: flex !important;
	justify-content: flex-start !important;
	align-items: center !important;
	text-align: left !important;
	width: 100%;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.kb-navigation.menu .kb-nav-link-content {
	text-align: left !important;
	font-size: 17px !important;
	color: var(--global-palette3, #1a202c) !important;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.sub-menu.kb-nav-sub-menu .kb-nav-link-content {
	font-size: 17px !important;
	color: var(--global-palette3, #1a202c) !important;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.kb-navigation.menu .kb-nav-link-content:hover,
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.kb-navigation.menu .kb-nav-link-content:focus-visible,
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.sub-menu.kb-nav-sub-menu .kb-nav-link-content:hover,
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.sub-menu.kb-nav-sub-menu .kb-nav-link-content:focus-visible {
	color: #0060bf !important;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.sub-menu.kb-nav-sub-menu {
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	width: 100% !important;
	text-align: left !important;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.sub-menu.kb-nav-sub-menu > li {
	width: 100% !important;
	max-width: 100% !important;
	text-align: left !important;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.sub-menu.kb-nav-sub-menu > li > .kb-link-wrap {
	justify-content: flex-start !important;
	text-align: left !important;
	width: 100%;
}

/* Home mobile/tablet drawer stacking: fixed-position off-canvas layers above hero checkbox row (451254-46 / lpa-slider-icon-row). */
@media (max-width: 1024px) {
	body.page-id-3863 .site-header-wrap,
	body.page-id-3863 .site-top-header-wrap,
	body.page-id-3863 .wp-block-kadence-header3490-cpt-id {
		position: relative !important;
		z-index: 99990 !important;
	}
	body.page-id-3863 .wp-block-kadence-off-canvas3490_d83563-a9 {
		position: fixed !important;
		inset: 0 !important;
		z-index: 100000 !important;
	}
	body.page-id-3863 .wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-overlay3490_d83563-a9 {
		position: fixed !important;
		inset: 0 !important;
		z-index: 100001 !important;
	}
	body.page-id-3863 .wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner-wrap {
		position: fixed !important;
		z-index: 100002 !important;
		background-color: rgba(255, 255, 255, 0.85) !important;
	}
}

/*
 * Fibracast header drawer only, mobile/tablet (≤1024px): CPT nav keeps horizontal flyout CSS off-canvas —
 * submenus overlay and break toggle/flow. Reset dropdown ULs to in-flow; indent dropdown rows only.
 * Does not apply above 1024px; does not target desktop header or other off-canvas blocks.
 */
@media (max-width: 1024px) {
	.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.sub-menu {
		position: static !important;
		top: auto !important;
		left: auto !important;
		right: auto !important;
		bottom: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 0 !important;
		z-index: auto !important;
		box-shadow: none !important;
		transform: none !important;
		--kb-nav-dropdown-show-left: 0 !important;
		--kb-nav-dropdown-show-right: auto !important;
		--kb-nav-dropdown-hide-transform-x: 0 !important;
		--kb-nav-dropdown-show-transform-x: 0 !important;
		--kb-nav-dropdown-show-transform-y: 0 !important;
		--kb-nav-dropdown-hide-transform-y: 0 !important;
	}
	/*
	 * Top-level flush left: Kadence applies padding-left on .kb-nav-link-content via --kb-nav-link-padding-left (default 0.5em).
	 * Only rows inside ul.menu > li > .kb-link-wrap match here — dropdown links sit under ul.sub-menu, not under that wrap.
	 */
	.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.kb-navigation.menu > li > .kb-link-wrap {
		padding-left: 0 !important;
		padding-inline-start: 0 !important;
		--kb-nav-top-link-padding-left: 0 !important;
		--kb-nav-link-padding-left: 0 !important;
	}
	.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.kb-navigation.menu > li > .kb-link-wrap .kb-nav-link-content {
		padding-left: 0 !important;
		padding-inline-start: 0 !important;
	}
	/* Dropdown rows only: indent the row; zero link inner padding so it isn’t added to Kadence’s default .5em */
	.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.sub-menu.kb-nav-sub-menu > li > .kb-link-wrap {
		padding-left: 20px !important;
		padding-inline-start: 20px !important;
		box-sizing: border-box;
		--kb-nav-link-padding-left: 0 !important;
	}
	.wp-block-kadence-off-canvas3490_d83563-a9 .wp-block-kadence-navigation[class*="-cpt-id"] ul.sub-menu.kb-nav-sub-menu > li > .kb-link-wrap .kb-nav-link-content {
		padding-left: 0 !important;
		padding-inline-start: 0 !important;
	}
}

/* Fibracast header drawer only (unique off-canvas): search + About/Contact after main nav — match nav: full width, left, one row each. */
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .kb-search {
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(0, 0, 0, 0.12);
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	text-align: left !important;
	align-self: stretch;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .kb-search form.kb-search-form,
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .kb-search .kb-search-form {
	margin-left: 0 !important;
	margin-right: auto !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .kb-search .kb-search-input-wrapper {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .kb-search .kb-search-input[type="text"] {
	font-size: 17px !important;
	color: var(--global-palette3, #1a202c) !important;
	font-family: inherit !important;
	line-height: 1.4 !important;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .kb-search .kb-search-input[type="text"]::placeholder {
	color: var(--global-palette3, #1a202c) !important;
	opacity: 0.55;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .wp-block-kadence-advancedbtn.kb-buttons-wrap {
	margin-top: 1rem;
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	justify-content: flex-start !important;
	gap: 0.5rem;
	width: 100%;
	max-width: 100%;
	align-self: stretch;
	box-sizing: border-box;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .wp-block-kadence-advancedbtn.kb-buttons-wrap a.kb-button,
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .wp-block-kadence-advancedbtn.kb-buttons-wrap .kb-button {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
	justify-content: flex-start !important;
	text-align: left !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	font-family: inherit !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	color: var(--global-palette3, #1a202c) !important;
	background: transparent !important;
	background-color: transparent !important;
	border-width: 0 !important;
	border-style: none !important;
	box-shadow: none !important;
	padding-top: 0.35rem !important;
	padding-bottom: 0.35rem !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	min-height: 0 !important;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .wp-block-kadence-advancedbtn.kb-buttons-wrap a.kb-button:hover,
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .wp-block-kadence-advancedbtn.kb-buttons-wrap a.kb-button:focus-visible {
	color: #0060bf !important;
	background: transparent !important;
	background-color: transparent !important;
}
.wp-block-kadence-off-canvas3490_d83563-a9 .kb-off-canvas-inner > .wp-block-kadence-advancedbtn.kb-buttons-wrap .kt-btn-inner-text {
	text-align: left !important;
	color: inherit !important;
}

.entry-content p {
    margin-bottom: 24px !important;
}

/* Default paragraph size sitewide; main column uses #primary rule below (exceptions after that). */
p {
  font-size: 25px;
}

.home p {
	font-size: 17px;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "effra", sans-serif !important;
	color: #015fbf;
}

h2.wp-block-heading {
	font-weight: 400;
	color: #015fbf;
}

.site-top-header-wrap {
	border-bottom: 1px solid #ccc;
}

/*
 * Header CPT 3490 — tablet row logo (cloned via lpa_fibracast_1_header_tablet_logo_fallback in functions.php):
 * scale image in the visible tablet header only; does not affect desktop row or footer/nav.
 */
@media (max-width: 1024px) {
	header.wp-block-kadence-header3490-cpt-id.wp-block-kadence-header .wp-block-kadence-header-tablet .kb-identity .wp-block-site-logo img.custom-logo {
		max-width: min(220px, 55vw);
		height: auto;
		width: auto;
	}
}

.lpa-logo-row {
	padding: 20px 0;
}

.lpa-logo-row .kt-blocks-carousel ul li {
	max-width: 80px;
}

.lpa-logo-row .kt-blocks-carousel ul li {
	max-width: 80px;
}

.lpa-row-headline-block h2 {
	padding:10px auto 0px;
  padding-top: 10px;
	margin-bottom: 4px;
}

.infinite-carousel .kb-carousel-track {
  display: flex;
  animation: infiniteScroll 30s linear infinite;
}

.infinite-carousel .kb-carousel-track:hover {
  animation-play-state: paused; /* optional */
}

.kt-row-column-wrap .kt-blocks-info-box-title {
	padding: 0px 30px 0 0  !important;
}

.wp-block-kadence-countup .kb-count-up-process.kb-count-up-number {
	text-align: center !important;
	padding-bottom: 0px;
}

.wp-block-kadence-countup.kb-count-up.lpa-countup-1 {
	paddingtop: 20px; !important;
}

.wp-block-kadence-countup.kb-count-up.lpa-countup-1 .kb-count-up-title {
	font-size: 17px;
	line-height: 130%;
}

@keyframes infiniteScroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/*** Sub Pages ***/

/* Page hero height; posts: same band as pages (Customizer can output lower post hero min-height inline). */
.entry-hero.page-hero-section .entry-header {
	min-height: 360px;
}
.single-post .entry-hero.post-hero-section .entry-header {
	min-height: 360px !important;
}

.wp-site-blocks .page-title h1,
.single-post .wp-site-blocks .post-title h1 {
	text-shadow: 1px 1px 20px #000;
}

/** MOBILE RESPONSIVE **/

/* Base styles = mobile first */
body {
  font-size: 16px;
}

/* Small mobile (≤480px) */
@media (max-width: 480px) { 
	.lpa-home-hero .kt-row-column-wrap.kt-has-3-columns.kt-row-layout-last-row.kt-tab-layout-row.kt-mobile-layout-row.kt-row-valign-middle.kb-theme-content-width {
		padding-top: 100px !important;
	}

}

/* Mobile (481–640) */
@media (min-width: 481px) and (max-width: 640px) { }

/* Large mobile / small tablet (641–768) */
@media (min-width: 641px) and (max-width: 768px) { 
	.lpa-home-hero {
		height: 80vw;
	}

	.lpa-home-hero .kt-row-column-wrap.kt-has-3-columns.kt-row-layout-last-row.kt-tab-layout-row.kt-mobile-layout-row.kt-row-valign-middle.kb-theme-content-width {
		padding-top: 10px !important;
	}
}

/* Tablet (769–1024) */
@media (min-width: 769px) and (max-width: 1024px) { 
	.lpa-home-hero {
		height: 75vw;
	}
	.lpa-home-hero .kt-row-column-wrap.kt-has-3-columns.kt-row-layout-last-row.kt-tab-layout-row.kt-mobile-layout-row.kt-row-valign-middle.kb-theme-content-width {
		padding-top: 10px !important;
	}
}

/* Laptop (1025–1280) */
@media (min-width: 1025px) and (max-width: 1280px) { }

/* Large screens (1281–1536) */
@media (min-width: 1281px) and (max-width: 1536px) { }

/* XL desktop (>1536px) */
@media (min-width: 1537px) { }

/* ============================================
   FIBRACAST HERO OVERLAY v10
   Dark blue top slides from top, light blue bottom slides from bottom
   Gap between. Always translucent. Stay permanently.
   ============================================ */

.lpa-hero-slider,
.kb-advanced-slider {
    position: relative !important;
}

/* --- Homepage: no extra margin between hidden entry-hero and content-area --- */
body.page-id-3863 .entry-hero.page-hero-section + .content-area {
    margin-top: 0 !important;
}

/* --- Checkmark bar flush with slider bottom; stack above .fc-hero-overlay (z-index 40) --- */
.kb-row-layout-id3863_451254-46 {
    margin-top: -106px !important;
    position: relative;
    z-index: 50 !important;
}
/* --- Homepage slider min-height to contain overlays --- */
.kb-advanced-slider-3863_0c8f59-8f,
.kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide,
.kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner-wrap {
    min-height: 714px !important;
}
/*
 * Stacking: #fc-hero-overlay is a sibling BEFORE the slider. Kadence Blocks Pro sets
 * .kb-advanced-slide-inner { z-index: 11 } in wp-content/plugins/kadence-blocks-pro/dist/style-blocks-slider.css
 * — if this overlay is ≤11, slide content paints on top and the hero looks “reverted.”
 * Keep below .kb-slider-pause-button (z-index: 100) so the pause control stays usable.
 */
.fc-hero-overlay {
    position: absolute;
    top: 0;
    left: calc(-50vw + 50%);
    width: 100vw;
    height: 100%;
    z-index: 40;
    pointer-events: none;
    overflow: hidden;
}

/* Homepage: Kadence .kb-advanced-slide-inner uses z-index: 11; overlay must stack above slide content (pause ~100).
   Canonical with .fc-hero-text translateY below — if “overlays vanished,” restore these; do not use slide heading margins. See reminders-log.md. */
body.page-id-3863 .fc-hero-overlay {
	z-index: 40;
}

/* TOP shape — brand navy, slides DOWN from above */
.fc-overlay-left {
    position: absolute;
    top: 0;
    left: 0;
    width: 60%;
    height: 54.5%;
    background: rgba(240, 120, 35, 0.85);
    z-index: 2;
    clip-path: polygon(0 0, 85% 0, 70% 100%, 0 100%);
    transform: translateY(-100%);
    transition: transform 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* BOTTOM shape — brand blue, slides UP from below */
.fc-overlay-right {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60%;
    height: 44%;
    background: linear-gradient(135deg, rgba(245, 100, 35, 0.65) 0%, rgba(250, 160, 60, 0.50) 100%);
    z-index: 2;
    clip-path: polygon(0 0, 70% 0, 55% 100%, 0 100%);
    transform: translateY(100%);
    transition: transform 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    transition-delay: 0.15s;
}

/* Home main hero only: bottom trapezoid — neutral gray toward top, existing orange tones toward bottom (same opacity band as default gradient). */
/* Midpoint between steep (gray→32%, orange→48%) and prior multi-stop (gray→50%, orange→86%): plateau ~41%, main orange ~67%. */
body.page-id-3863 .fc-hero-overlay .fc-overlay-right {
    background: linear-gradient(
        to bottom,
        rgba(128, 128, 128, 0.65) 0%,
        rgba(128, 128, 128, 0.65) 41%,
        rgba(188, 115, 72, 0.64) 54%,
        rgba(245, 100, 35, 0.65) 67%,
        rgba(250, 160, 60, 0.50) 100%
    );
}

/* Both slide into place */
.fc-hero-overlay.revealed .fc-overlay-left {
    transform: translateY(0);
}

.fc-hero-overlay.revealed .fc-overlay-right {
    transform: translateY(0);
}

/* Text container — matches site content width */
.fc-hero-text {
    position: absolute;
    z-index: 10;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    max-width: 1230px;
    margin-left: auto;
    margin-right: auto;
    padding: 0;
    text-align: left;
    pointer-events: none;
}

/* Homepage only: vertical offset for headline block (tuned: 3.5rem − 14px desktop; 2rem − 14px ≤768px). */
body.page-id-3863 .fc-hero-text {
    transform: translateY(calc(-50% + 3.5rem - 14px));
}

.fc-hero-heading {
    font-family: effra, sans-serif;
    font-size: 48px;
    font-weight: 400;
    color: #FFFFFF;
    text-align: left;
    line-height: 48px;
    margin: 0 0 20px 0;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.3);
}

.fc-hero-subheading {
    font-family: effra, sans-serif;
    font-size: 19.5px;
    font-weight: 500;
    color: #FFFFFF;
    text-align: left;
    line-height: 31.2px;
    margin: 0;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    text-shadow: 1px 1px 6px rgba(0, 0, 0, 0.3);
}

/* Home hero slider: visible headline + tagline live in #fc-hero-overlay .fc-hero-text (above overlay shapes, z-index:10).
   Kadence h2.wp-block-heading in .kb-advanced-slide-inner stays hidden (opacity:0).
   Do NOT use padding-top on .fc-hero-text: base rule uses translateY(-50%) for vertical centering; extra height changes -50% and cancels most of the padding visually.
   Shift the whole centered stack down with calc instead. */
body.page-id-3863 #fc-hero-overlay .fc-hero-text {
    transform: translateY(calc(-50% + 42px)) !important;
}

body.page-id-3863 .fc-hero-text .fc-hero-subheading {
    padding-top: 48px;
}

/* Text appears after shapes arrive */
.fc-hero-overlay.revealed .fc-hero-heading {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 1.2s;
}

.fc-hero-overlay.revealed .fc-hero-subheading {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 1.5s;
}

/* Home hero tagline: “Ultrafiltration MBR Specialists…” (+2px vs .fc-hero-subheading base). */
body.page-id-3863 .fc-hero-overlay .fc-hero-subheading {
    font-size: 21.5px;
    line-height: 34.4px;
}

/* Hide duplicate Kadence slide text on first slide — hero slider (0c8f59-8f) only; not the 7-slide carousel below */
body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide:first-child .kb-advanced-slide-inner {
    opacity: 0 !important;
}

/* ---- Responsive ---- */
@media (max-width: 1280px) {
    .fc-hero-text { max-width: 90%; padding: 0 45px; }
}

@media (max-width: 1024px) {
    .fc-hero-heading { font-size: 40px; line-height: 44px; }
    .fc-hero-subheading { font-size: 17px; }
    body.page-id-3863 .fc-hero-overlay .fc-hero-subheading { font-size: 19px; }
    .fc-overlay-left, .fc-overlay-right { width: 70%; }
}

@media (max-width: 768px) {
    .fc-hero-heading { font-size: 32px; line-height: 36px; }
    .fc-hero-subheading { font-size: 15px; }
    body.page-id-3863 .fc-hero-overlay .fc-hero-subheading { font-size: 17px; }
    .fc-hero-text { padding: 0 20px; }
    body.page-id-3863 .fc-hero-text {
        transform: translateY(calc(-50% + 2rem - 14px));
    }
    .fc-overlay-left, .fc-overlay-right { width: 80%; }
    body.page-id-3863 .fc-hero-text {
        transform: translateY(calc(-50% + 2rem - 14px));
    }
}

@media (max-width: 480px) {
    .fc-hero-heading { font-size: 26px; line-height: 30px; }
    .fc-hero-subheading { font-size: 14px; }
    body.page-id-3863 .fc-hero-overlay .fc-hero-subheading { font-size: 16px; }
    .fc-overlay-left, .fc-overlay-right { width: 100%; clip-path: none; }
}

/*
 * Homepage main hero slider (0c8f59-8f) — phone only (≤767px).
 * Evidence (staging HTML): first slide uses Kadence inline background-position: 88% 18% → image anchors right
 * on narrow screens; slider has data-slider-center-mode=true; #fc-hero-overlay sits above slider in DOM.
 * Prior left:0 + width:100% matched a narrow column while alignwide slider differed — stacked/wrong bleed.
 * Fix: viewport-centered breakout (left 50% + margin-left -50vw + width 100vw) for overlay + main hero slider
 * only; center slide backgrounds; keep max-width:none on slide inners. Desktop .fc-hero-overlay rule unchanged.
 */
@media (max-width: 767px) {
	/*
	 * Full-bleed: use margin calc only — clears global .lpa-hero-slider left:50%/right:50%/width:100vw
	 * (style.css L13–21) which stacks badly on phone and visually shifts the hero ~50%.
	 */
	body.page-id-3863 #fc-hero-overlay.fc-hero-overlay {
		left: auto !important;
		right: auto !important;
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .fc-hero-overlay .fc-overlay-left,
	body.page-id-3863 .fc-hero-overlay .fc-overlay-right {
		max-width: 100% !important;
		box-sizing: border-box !important;
	}
	/*
	 * v1.0.48 over-corrected: 60% height dropped grey too low (big gap above); ~0.56 gradient too light to read.
	 * Triangulate vs v1.0.47 (70% + ~0.9 = no photo strip): 67% was best-yet; 1.0.50 nudges +1% to close gap slightly vs 1.0.49.
	 * Gradient unchanged from 1.0.49. Checkmark row global 0.7.
	 */
	body.page-id-3863 .fc-hero-overlay .fc-overlay-left {
		height: 30% !important;
	}
	body.page-id-3863 .fc-hero-overlay .fc-overlay-right {
		height: 68% !important;
		background: linear-gradient(
			to bottom,
			rgba(44, 46, 50, 0.80) 0%,
			rgba(50, 50, 54, 0.77) 24%,
			rgba(68, 58, 54, 0.75) 44%,
			rgba(125, 70, 48, 0.73) 64%,
			rgba(158, 82, 44, 0.70) 100%
		) !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f.alignwide.lpa-hero-slider {
		position: relative !important;
		left: auto !important;
		right: auto !important;
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .splide,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .splide__track,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .splide__list {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner-wrap,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner {
		width: 100% !important;
		max-width: none !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner-wrap {
		background-position: center center !important;
		background-size: cover !important;
	}
	/* Match Kadence inline chain (.kb-slide-3863_ec6487-20) so 88% 18% never wins on load order. */
	body.page-id-3863 .wp-block-kadence-slider.kb-advanced-slider-3863_0c8f59-8f .kb-slide-3863_ec6487-20 .kb-advanced-slide-inner-wrap {
		background-position: center center !important;
		background-size: cover !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner {
		background-size: cover !important;
		background-position: center center !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner-wrap {
		min-height: min(58vh, 440px) !important;
	}
	/* Titles: keep just under shortened orange (~30% band). */
	body.page-id-3863 #fc-hero-overlay .fc-hero-text {
		top: 17% !important;
		transform: translateY(0) !important;
		max-width: 100% !important;
		width: 100% !important;
		box-sizing: border-box !important;
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}
	body.page-id-3863 #fc-hero-overlay .fc-hero-text .fc-hero-subheading {
		padding-top: 0.65rem !important;
	}
	/* Row-gap on checkmark strip adds height — pull up vs -220px so band stays on hero photo (1.0.51 overflow). */
	body.page-id-3863 .kb-row-layout-id3863_451254-46 {
		margin-top: min(-34vw, -242px) !important;
	}
	body.page-id-3863 #fc-hero-overlay.fc-hero-overlay,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f.lpa-hero-slider {
		overflow-x: hidden !important;
	}
}

/*
 * Short landscape (e.g. iPhone 15 Pro Max ~932×430): width > 767px skips the phone hero block. Keep hero bleed + shorter
 * plate; 1.0.53 stacked checkmarks — user: restore 3-up row, larger headline vs 1024→40px cascade, strip Kadence media
 * pseudo echo (double ring) in this band only.
 */
@media (orientation: landscape) and (max-height: 520px) and (min-width: 768px) and (max-width: 1400px) {
	body.page-id-3863 #fc-hero-overlay.fc-hero-overlay {
		left: auto !important;
		right: auto !important;
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .fc-hero-overlay .fc-overlay-left,
	body.page-id-3863 .fc-hero-overlay .fc-overlay-right {
		max-width: 100% !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .fc-hero-overlay .fc-overlay-left {
		width: 56% !important;
		height: 33% !important;
		clip-path: polygon(0 0, 92% 0, 84% 100%, 0 100%) !important;
	}
	body.page-id-3863 .fc-hero-overlay .fc-overlay-right {
		width: 66% !important;
		bottom: 30px !important;
		height: calc(65% - 30px) !important;
		clip-path: polygon(0 0, 71% 0, 59% 100%, 0 100%) !important;
		background: linear-gradient(
			to bottom,
			rgba(44, 46, 50, 0.80) 0%,
			rgba(50, 50, 54, 0.77) 24%,
			rgba(68, 58, 54, 0.75) 44%,
			rgba(125, 70, 48, 0.73) 64%,
			rgba(158, 82, 44, 0.70) 100%
		) !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f.alignwide.lpa-hero-slider {
		position: relative !important;
		left: auto !important;
		right: auto !important;
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .splide,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .splide__track,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .splide__list {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner-wrap,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner {
		width: 100% !important;
		max-width: none !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner-wrap {
		background-position: center center !important;
		background-size: cover !important;
	}
	body.page-id-3863 .wp-block-kadence-slider.kb-advanced-slider-3863_0c8f59-8f .kb-slide-3863_ec6487-20 .kb-advanced-slide-inner-wrap {
		background-position: center center !important;
		background-size: cover !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner {
		background-size: cover !important;
		background-position: center center !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner-wrap {
		min-height: min(32vh, 300px) !important;
	}
	body.page-id-3863 #fc-hero-overlay .fc-hero-text {
		top: 13% !important;
		transform: translateY(0) !important;
		max-width: 100% !important;
		width: 100% !important;
		box-sizing: border-box !important;
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}
	body.page-id-3863 #fc-hero-overlay .fc-hero-text .fc-hero-subheading {
		padding-top: calc(0.3rem + 20px) !important;
	}
	/* Short landscape: smaller H2 than 1.0.54 2.5rem; user asked to free vertical room for tagline. */
	body.page-id-3863 #fc-hero-overlay .fc-hero-heading {
		font-size: 1.875rem !important;
		line-height: 1.1 !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_451254-46 > .kt-row-column-wrap {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		column-gap: 0.35rem !important;
		row-gap: 0 !important;
		align-items: start !important;
		padding-left: 0.25rem !important;
		padding-right: 0.25rem !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_451254-46 .kt-blocks-info-box-title {
		font-size: 0.875rem !important;
		line-height: 1.25 !important;
	}
	/* Kadence drawborder / media layers can paint a second ring behind the SVG in tight landscape — hide pseudo only here. */
	body.page-id-3863 .kb-row-layout-id3863_451254-46 .wp-block-kadence-infobox .kt-blocks-info-box-media::before,
	body.page-id-3863 .kb-row-layout-id3863_451254-46 .wp-block-kadence-infobox .kt-blocks-info-box-media::after {
		display: none !important;
		content: none !important;
	}
	/* Less negative pull — row may extend below fold; frees vertical space between hero copy and strip. */
	body.page-id-3863 .kb-row-layout-id3863_451254-46 {
		margin-top: min(-17vw, -152px) !important;
	}
	body.page-id-3863 #fc-hero-overlay.fc-hero-overlay,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f.lpa-hero-slider {
		overflow-x: hidden !important;
	}
}

/* =============================================================================
 * Home hero — full tablet LANDSCAPE only (isolated scope)
 * Applies only to full-height tablets in landscape (portrait uses separate block below).
 * - min-width: 768px, max-width: 1366px, min-height: 521px, orientation: landscape
 *
 * Portrait iPad was inheriting overflow-y:visible + fixed bottom offsets here, which
 * caused overlay bleed into the checkmark strip and a white wedge beside the hero.
 *
 * Protected ranges (no overlap):
 * - phone: max-width: 767px
 * - portrait tablet: same width band + orientation portrait (block below)
 * - short-screen landscape band: max-height: 520px
 * - desktop: widths above 1366px
 * ============================================================================= */
@media (min-width: 768px) and (max-width: 1366px) and (min-height: 521px) and (orientation: landscape) {
	/*
	 * Bottom trapezoid extends past the synced overlay box; default .fc-hero-overlay is overflow:hidden
	 * and clips the lower edge — height-only tweaks then read as “top moved, bottom didn’t.”
	 * Scoped to full tablet + home hero overlay id only.
	 */
	body.page-id-3863 #fc-hero-overlay.fc-hero-overlay {
		overflow-x: hidden !important;
		overflow-y: visible !important;
	}
	/* Full-tablet hero tune: shorten top overlay, shift copy upward, and reduce oversized lower overlay. */
	body.page-id-3863 .fc-hero-overlay .fc-overlay-left {
		height: 38% !important;
		clip-path: polygon(0 0, 86% 0, 72% 100%, 0 100%) !important;
	}
	body.page-id-3863 .fc-hero-overlay .fc-overlay-right {
		width: calc(64% - 3px) !important;
		/* Bottom 2px higher, top unchanged: +2 bottom, −2px from height (same bottom+height sum). */
		bottom: 143px !important;
		height: calc(48% - 56px) !important;
		clip-path: polygon(0 0, 68% 0, 54% 100%, 0 100%) !important;
	}
	body.page-id-3863 #fc-hero-overlay .fc-hero-text {
		top: 24% !important;
		transform: translateY(0) !important;
		max-width: 100% !important;
		width: 100% !important;
		padding-left: 2rem !important;
		padding-right: 2rem !important;
	}
	body.page-id-3863 #fc-hero-overlay .fc-hero-heading {
		font-size: 2.8rem !important;
		line-height: 1.1 !important;
	}
	body.page-id-3863 #fc-hero-overlay .fc-hero-text .fc-hero-subheading {
		padding-top: 0.5rem !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_451254-46 {
		margin-top: min(-20vw, -200px) !important;
	}
}

/* =============================================================================
 * Home hero — portrait tablet / iPad only (768–1366, portrait, min-height 521px).
 * NOT phone, NOT landscape tablet, NOT desktop. Same width band as former “full tablet”
 * but excluded from that block — avoids overflow-y:visible + bottom:143px plate tuning
 * that misaligned overlays vs the checkmark row on tall portrait viewports.
 * Targets: #fc-hero-overlay, main hero slider 0c8f59-8f, kb-row-layout-id3863_451254-46 only.
 * Refinements: hero height, plate widths, copy vertical position, slide bg anchor (this band only).
 * ============================================================================= */
@media (min-width: 768px) and (max-width: 1366px) and (orientation: portrait) and (min-height: 521px) {
	body.page-id-3863 #fc-hero-overlay.fc-hero-overlay {
		left: auto !important;
		right: auto !important;
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .fc-hero-overlay .fc-overlay-left,
	body.page-id-3863 .fc-hero-overlay .fc-overlay-right {
		max-width: 100% !important;
		box-sizing: border-box !important;
	}
	/* Tall hero + strip overlap: photo fills behind checkmark row (portrait iPad band only). */
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner-wrap {
		min-height: min(78vh, 720px) !important;
	}
	/* Plates: ~halfway between last tweak (66/64) and prior wide pass (78/72) so headlines stay on orange/grey. */
	body.page-id-3863 .fc-hero-overlay .fc-overlay-left {
		width: 72% !important;
		height: 48% !important;
		clip-path: polygon(0 0, 88% 0, 72% 100%, 0 100%) !important;
	}
	body.page-id-3863 .fc-hero-overlay .fc-overlay-right {
		width: calc(70% + 18px) !important;
		/* Bottom +2px, top fixed: increase bottom and shrink height by same px (bottom+height sum unchanged). */
		height: calc(49% - 24px) !important;
		bottom: 34px !important;
		clip-path: polygon(0 0, 71% 0, 57% 100%, 0 100%) !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f.alignwide.lpa-hero-slider {
		position: relative !important;
		left: auto !important;
		right: auto !important;
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .splide,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .splide__track,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .splide__list {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner-wrap,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner {
		width: 100% !important;
		max-width: none !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box !important;
	}
	/* cover = largest uniform scale to fill slide (118% was often smaller here); anchor upper-right like Kadence 88%/18%. */
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner-wrap {
		background-position: 88% 18% !important;
		background-size: cover !important;
	}
	body.page-id-3863 .wp-block-kadence-slider.kb-advanced-slider-3863_0c8f59-8f .kb-slide-3863_ec6487-20 .kb-advanced-slide-inner-wrap {
		background-position: 88% 18% !important;
		background-size: cover !important;
	}
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f .kb-advanced-slide-inner {
		background-size: cover !important;
		background-position: 88% 18% !important;
	}
	body.page-id-3863 #fc-hero-overlay.fc-hero-overlay,
	body.page-id-3863 .kb-advanced-slider-3863_0c8f59-8f.lpa-hero-slider {
		overflow: hidden !important;
	}
	body.page-id-3863 #fc-hero-overlay .fc-hero-text {
		top: 26% !important;
		transform: translateY(60px) !important;
		max-width: 100% !important;
		width: 100% !important;
		padding-left: 1.75rem !important;
		padding-right: 1.75rem !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 #fc-hero-overlay .fc-hero-heading {
		font-size: 2.5rem !important;
		line-height: 1.12 !important;
	}
	body.page-id-3863 #fc-hero-overlay .fc-hero-text .fc-hero-subheading {
		padding-top: 0.5rem !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_451254-46 {
		margin-top: calc(min(-17vw, -158px) - 18px) !important;
	}
	/* Checkbox strip: col1/col2 vs Kadence 35/30/35 (gap-none); third unchanged. Portrait iPad band only. */
	body.page-id-3863 .kb-row-layout-id3863_451254-46 > .kt-row-column-wrap {
		grid-template-columns:
			minmax(0, calc(35% - 15px))
			minmax(0, calc(30% + 15px))
			minmax(0, 35%) !important;
	}
}

/* =============================================================================
 * Phone typography (max-width: 767px only) — B2B-style scale for small screens.
 * Scope: #primary .entry-content, entry-hero titles, archive hero h1, home fc-hero (page 3863).
 * Does not apply above 767px (desktop/tablet wide unchanged). Not header, footer, or off-canvas.
 * Placed after existing fc-hero width breakpoints so these font sizes win at ≤767px.
 * ============================================================================= */
@media (max-width: 767px) {
	/*
	 * Main column copy — must beat later file-order rules:
	 * body:not(.home) #primary .entry-content p… / ul li / ol li { font-size: 25px !important; }
	 * (same specificity + !important; those rules load after this @media block and were winning on phones).
	 */
	html body:not(.home) #primary .entry-content p:not(.lpa-about-person__title),
	html body:not(.home) #primary .entry-content ul li,
	html body:not(.home) #primary .entry-content ol li {
		font-size: 19px !important;
		line-height: 1.52 !important;
	}

	/* Content headings — hierarchy within #primary .entry-content only (+ Kadence title hooks). */
	html body:not(.home) #primary .entry-content h1 {
		font-size: 1.875rem !important; /* ~30px */
		line-height: 1.25 !important;
	}
	/* px + html body prefix: beats later body:not(.home) #primary … 25px !important; h2 > h3 > body. */
	html body:not(.home) #primary .entry-content h2,
	html body:not(.home) #primary .entry-content h2.wp-block-heading,
	html body:not(.home) #primary .entry-content .wp-block-kadence-infobox h2,
	html body:not(.home) #primary .entry-content .wp-block-kadence-infobox h2.wp-block-heading,
	html body:not(.home) #primary .entry-content h2.kt-blocks-info-box-title {
		font-size: 26px !important;
		line-height: 1.3 !important;
	}
	html body:not(.home) #primary .entry-content h3,
	html body:not(.home) #primary .entry-content h3.kt-blocks-info-box-title,
	html body:not(.home) #primary .entry-content .wp-block-kadence-infobox h3 {
		font-size: 22px !important;
		line-height: 1.35 !important;
	}
	html body:not(.home) #primary .entry-content h4,
	html body:not(.home) #primary .entry-content h5,
	html body:not(.home) #primary .entry-content h6 {
		font-size: 18px !important;
		line-height: 1.45 !important;
	}

	/* Subpage / single / archive hero band titles (not site header). */
	.entry-hero.page-hero-section .entry-header .entry-title,
	.single-post .entry-hero.post-hero-section .entry-header .entry-title,
	.entry-hero.post-archive-hero-section .post-archive-title h1.page-title.archive-title {
		font-size: 1.75rem !important; /* ~28px */
		line-height: 1.2 !important;
		padding-top: 10px !important;
		padding-bottom: 10px !important;
	}

	/* Home hero overlay copy (3863) — tighter than wider breakpoints for narrow phones. */
	body.page-id-3863 .fc-hero-heading {
		font-size: 1.75rem !important;
		line-height: 1.15 !important;
	}
	body.page-id-3863 .fc-hero-overlay .fc-hero-subheading,
	body.page-id-3863 .fc-hero-text .fc-hero-subheading {
		font-size: 1rem !important;
		line-height: 1.45 !important;
	}
}

/* ============================================
   INDUSTRIAL SUBPAGES — Icon Bar, Content, Colour Blocks
   ============================================ */

/* --- Icon Navigation Bar --- */
.industry-icon-bar {
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
    padding: 25px 20px;
    border-bottom: 1px solid #e0e0e0;
    max-width: var(--global-content-width, 1290px);
    margin: 0 auto;
    background: #fff;
}

.industry-icon-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    width: 12.5%;
    padding: 10px 5px;
    border-bottom: 3px solid transparent;
    transition: border-color 0.3s ease;
}

.industry-icon-item .icon-placeholder {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: #ccc;
    transition: background 0.3s ease;
}

.industry-icon-item.active .icon-placeholder {
    background: #004e7d;
}

.industry-icon-item:hover .icon-placeholder {
    background: #015fbf;
}

.industry-icon-item img {
    width: 120px;
    height: 120px;
    object-fit: contain;
    filter: grayscale(100%) contrast(1.8);
    transition: filter 0.3s ease;
}

.industry-icon-item.active img,
.industry-icon-item:hover img {
    filter: none;
}

.industry-icon-item.active {
    border-bottom: 3px solid transparent;
    padding-bottom: 7px;
}

.industry-icon-item .icon-label {
    margin-top: 8px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    text-align: center;
    color: #666;
    line-height: 1.3;
}

.industry-icon-item.active .icon-label {
    color: #004e7d;
    font-weight: 800;
}

/* --- Industrial Wastewater hub + children (3292): four amber benefit tiles
     (#primary + parent/hub scope only — not menus). body:not(.home).parent-pageid-3292… beats later
     body:not(.home) #primary .entry-content p { 25px } (same chain + extra page class + .industrial-benefit). --- */
body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefits-row,
body:not(.home).page-id-3292 #primary .entry-content .industrial-benefits-row {
    display: flex !important;
    gap: 4px !important;
    background-color: #ffffff !important;
    margin-top: 40px !important;
    max-width: var(--global-content-width, 1290px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 0 !important;
}
body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefit,
body:not(.home).page-id-3292 #primary .entry-content .industrial-benefit {
    flex: 1 !important;
    padding: 30px 20px !important;
    text-align: left !important;
    box-sizing: border-box !important;
    border-radius: 12px !important;
}
body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefit:nth-child(1),
body:not(.home).page-id-3292 #primary .entry-content .industrial-benefit:nth-child(1) {
    background-color: #f29900 !important;
}
body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefit:nth-child(2),
body:not(.home).page-id-3292 #primary .entry-content .industrial-benefit:nth-child(2) {
    background-color: #f5b340 !important;
}
body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefit:nth-child(3),
body:not(.home).page-id-3292 #primary .entry-content .industrial-benefit:nth-child(3) {
    background-color: #f8cc73 !important;
}
body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefit:nth-child(4),
body:not(.home).page-id-3292 #primary .entry-content .industrial-benefit:nth-child(4) {
    background-color: #fbe0a6 !important;
}
body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefit h3,
body:not(.home).page-id-3292 #primary .entry-content .industrial-benefit h3 {
    color: #222 !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    margin-bottom: 10px !important;
    margin-top: 0 !important;
    text-align: center !important;
}
body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefit:nth-child(n + 3) h3,
body:not(.home).page-id-3292 #primary .entry-content .industrial-benefit:nth-child(n + 3) h3 {
    color: #333 !important;
}
body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefit p,
body:not(.home).page-id-3292 #primary .entry-content .industrial-benefit p {
    color: #333 !important;
    font-size: 21px !important;
    line-height: 1.5 !important;
    margin-bottom: 0 !important;
    text-align: left !important;
}
body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefit:nth-child(n + 3) p,
body:not(.home).page-id-3292 #primary .entry-content .industrial-benefit:nth-child(n + 3) p {
    color: #444 !important;
}
@media (max-width: 768px) {
    body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefits-row,
    body:not(.home).page-id-3292 #primary .entry-content .industrial-benefits-row {
        flex-direction: column !important;
    }
    body:not(.home).parent-pageid-3292 #primary .entry-content .industrial-benefit,
    body:not(.home).page-id-3292 #primary .entry-content .industrial-benefit {
        flex: none !important;
        width: 100% !important;
    }
}

/* --- Main Content Area --- */
.fb-content-area {
    display: flex;
    max-width: 1200px;
    margin: 50px auto;
    padding: 0 20px;
    gap: 40px;
    align-items: flex-start;
}

.fb-content-text {
    flex: 2;
}

.fb-content-image {
    flex: 3;
}

.fb-page-title {
    font-size: 36px;
    font-weight: 700;
    color: #004e7d;
    margin-bottom: 20px;
    line-height: 1.2;
}

.fb-content-text p {
    font-size: 16px;
    line-height: 1.7;
    color: #444;
    margin-bottom: 16px;
}

.fb-content-image img {
    width: 100%;
    max-height: 400px;
    object-fit: cover;
    border-radius: 4px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}

/* --- Colour Blocks (Municipal Categories) --- */
.municipal-blocks-row {
    display: flex;
    width: 100%;
    margin-top: 0;
}

.municipal-block {
    flex: 1;
    padding: 40px 30px;
    text-align: center;
}

.municipal-block h3 {
    font-size: 22px;
    font-weight: 700;
    color: #222;
    margin-bottom: 15px;
}

.municipal-block p {
    font-size: 14px;
    color: #555;
    line-height: 1.6;
    margin-bottom: 20px;
}

.municipal-block .block-link {
    color: #333;
    font-weight: 600;
    text-decoration: none;
    font-size: 14px;
}

.municipal-block .block-link:hover {
    text-decoration: underline;
}

/* --- Responsive --- */
@media (max-width: 768px) {
    .municipal-blocks-row {
        flex-direction: column;
    }
    .industry-icon-bar {
        overflow-x: auto;
        flex-wrap: nowrap;
    }
    /* Industrial 10-icon bar: readable two-column wrap instead of one squeezed row */
    body.parent-pageid-3292 .industry-icon-bar,
    body.page-id-3292 .industry-icon-bar {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        overflow-x: visible !important;
    }
    body.parent-pageid-3292 .industry-icon-bar .industry-icon-item,
    body.page-id-3292 .industry-icon-bar .industry-icon-item {
        flex: 0 0 50% !important;
        width: 50% !important;
        max-width: 50% !important;
        min-width: 0 !important;
    }
    .industry-icon-item {
        min-width: 100px;
    }
    .fb-content-area {
        flex-direction: column;
    }
    .fb-content-text,
    .fb-content-image {
        flex: none;
        width: 100%;
    }
}

/* --- Icon Background Trapezoid Shape --- */
.industry-icon-item {
    position: relative;
    text-align: center;
}
.industry-icon-item::before {
    content: '';
    position: absolute;
    top: 35px;
    left: 50%;
    width: 95px;
    height: 80px;
    transform: translateX(-50%) rotate(45deg);
    background: #FCEABC;
    clip-path: polygon(12% 0%, 88% 2%, 100% 96%, 0% 100%);
    transition: background 0.35s ease, transform 0.35s ease, clip-path 0.35s ease;
    z-index: 0;
    pointer-events: none;
}
.industry-icon-item:hover::before,
.industry-icon-item.active::before {
    /* #D4A035 lightened 25% toward white */
    background: #dfb868;
    transform: translateX(-50%) rotate(135deg);
    clip-path: polygon(10% 1%, 90% 0%, 100% 97%, 0% 100%);
}
.industry-icon-item img,
.industry-icon-item .icon-label {
    position: relative;
    z-index: 1;
}

/* Triangle Shape block removed — using Trapezoid Shape block above */

/* ======================================================
   HOMEPAGE — Industry Info Blocks (8 sectors)
   Scoped to row kb-row-layout-id3863_5fbd88-99 only
   ====================================================== */

/* --- Shared styles for all 8 industry info blocks --- */
/* Scoped to row kb-row-layout-id3863_5fbd88-99 only */

/* Base block: transparent, no border, content pushed to top */
/* padding-top reserves icon column: 16px + 80px icon + 6px gap below icon */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap {
    background: transparent !important;
    border: none !important;
    border-radius: 12px !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start !important;
    text-align: center;
    padding: 102px 16px 22px !important;
    position: relative;
    /* Above infobox pseudos (trap z1, colour z2); gray ::before lives inside this link */
    z-index: 3;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}

.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap:hover {
    border-color: transparent;
    box-shadow: none;
}

/* Title: dark blue, 22px, no shadow */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox .kt-blocks-info-box-title {
    color: #000 !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-shadow: none !important;
    transform: translateY(0) !important;
    margin-top: 4px;
    transition: color 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Icon crossfade: full-colour layer on infobox (below), gray PNG on link (above, fades out) */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox {
    position: relative;
}
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox::before {
    content: '' !important;
    position: absolute;
    top: 16px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 80px;
    margin: 0;
    background-color: transparent !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    /* Above trapezoid (::after z1), below link (z3) */
    z-index: 2;
    pointer-events: none;
}
/* Trapezoid on infobox so colour icon can sit above it; link-wrap ::after kept free */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox::after {
    content: '' !important;
    position: absolute !important;
    top: 18px;
    left: 50%;
    width: 68px;
    height: 57px;
    background: #FBE0A6 !important;
    clip-path: polygon(12% 0%, 88% 2%, 100% 96%, 0% 100%);
    transform: translateX(-50%) rotate(45deg) scale(0);
    opacity: 0;
    transition: transform 0.75s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.65s cubic-bezier(0.4, 0, 0.2, 1), background 0.75s ease;
    z-index: 1 !important;
    pointer-events: none;
}
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox:hover::after,
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox:focus-within::after {
    /* #F8CC73 lightened 25% toward white */
    background: #fad996 !important;
    transform: translateX(-50%) rotate(135deg) scale(1) !important;
    opacity: 1;
    top: 18px;
    left: 50%;
}
/* Gray state (no CSS grayscale — assets are pre-gray) */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap::before {
    content: '';
    display: block;
    position: absolute !important;
    top: 16px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 80px !important;
    height: 80px !important;
    margin: 0 !important;
    background-color: transparent !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    filter: none !important;
    opacity: 1;
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
    z-index: 3 !important;
    pointer-events: none;
}
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox:hover .kt-blocks-info-box-link-wrap::before,
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox:focus-within .kt-blocks-info-box-link-wrap::before {
    opacity: 0;
}

/* Learn More button: always visible, dark blue */
.kb-row-layout-id3863_5fbd88-99 .kt-infobox-textcontent::after {
    opacity: 1 !important;
    transform: translateY(0) !important;
    color: #015fbf !important;
    border-color: #015fbf !important;
    margin-top: 2px;
    transition: color 0.75s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.75s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}

/* --- Per-block icon assignments (gray + colour PNG crossfade) --- */
/* Food & Beverage */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_6cb784-e8::before {
    background-image: url('/wp-content/uploads/2026/03/food-beverage-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_6cb784-e8 .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/food-beverage-gray-fine-d1.png') !important;
}
/* Oil & Gas */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_45c893-1c::before {
    background-image: url('/wp-content/uploads/2026/03/oil-gas-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_45c893-1c .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/oil-gas-gray-fine-d1.png') !important;
}
/* Pulp & Paper */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b2e29d-df::before {
    background-image: url('/wp-content/uploads/2026/03/pulp-paper-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_b2e29d-df .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/pulp-paper-gray-fine-d1.png') !important;
}
/* Pharmaceutical & Life Science */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b59c4c-c1::before {
    background-image: url('/wp-content/uploads/2026/03/pharmaceutical-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_b59c4c-c1 .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/pharmaceutical-gray-fine-d1.png') !important;
}
/* Chemical */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c1::before {
    background-image: url('/wp-content/uploads/2026/04/012-chemical-color.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_b91e42-c1 .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/04/011-chemical-gray-w-fills.png') !important;
}
/* Cosmetics */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c2::before {
    background-image: url('/wp-content/uploads/2026/04/013-cosmetics-skincare-color.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_b91e42-c2 .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/04/014-cosmetics-skincare-gray-w-fills.png') !important;
}
/* Chemical + Cosmetics: gray PNGs are partly transparent; colour ::before would show through.
   Hide colour until hover/focus so default matches the other industrial tiles. */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c1::before,
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c2::before {
    opacity: 0 !important;
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c1:hover::before,
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c1:focus-within::before,
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c2:hover::before,
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c2:focus-within::before {
    opacity: 1 !important;
}
/* Marine */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_3b12b2-ed::before {
    background-image: url('/wp-content/uploads/2026/03/marine-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_3b12b2-ed .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/marine-gray-fine-d1.png') !important;
}
/* Data Centers */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_290f2e-ca::before {
    background-image: url('/wp-content/uploads/2026/03/data-centers-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_290f2e-ca .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/data-centers-gray-fine-d1.png') !important;
}
/* Microelectronics */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_046b8f-e9::before {
    background-image: url('/wp-content/uploads/2026/03/microelectronics-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_046b8f-e9 .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/microelectronics-gray-fine-d1.png') !important;
}
/* Textile */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_eccfa9-d3::before {
    background-image: url('/wp-content/uploads/2026/03/textiles-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_eccfa9-d3 .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/textiles-gray-fine-d1.png') !important;
}
/* Chemical */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c1::before {
    background-image: url('/wp-content/uploads/2026/04/012-chemical-color.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_b91e42-c1 .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/04/011-chemical-gray-w-fills.png') !important;
}
/* Cosmetics */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c2::before {
    background-image: url('/wp-content/uploads/2026/04/013-cosmetics-skincare-color.png') !important;
}
.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_b91e42-c2 .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/04/014-cosmetics-skincare-gray-w-fills.png') !important;
}

/* Home industrial grid: wide screens only — 90px row-gap must not apply in 768–1024 tablet band (own row-gap there). */
@media (min-width: 1025px) {
	body.page-id-3863 .kb-row-layout-id3863_5fbd88-99 > .kt-row-column-wrap {
		row-gap: 90px !important;
	}
}

/* --- Industrial home row: Kadence already uses CSS grid (5 cols × 2 rows for 10 items).
     Only add row-gap here — flex/width overrides on grid children made columns ~20% of a cell
     (~4% of row) and broke titles/buttons to one character per line. --- */
.kb-row-layout-id3863_5fbd88-99 > .kt-row-column-wrap {
    row-gap: 52px !important;
}

/*
 * Home (3863) portrait iPad / compact tablet widths: Kadence can collapse the industrial row (5fbd88-99)
 * to a single column with huge row gaps. Force four per row (10 tiles → 4+4+2). Municipal row (d79e44-81) unchanged.
 * >1024px: no override (desktop stays Kadence five-per-row). ≤767px: two-per-row block below.
 */
@media (min-width: 768px) and (max-width: 1024px) {
	body.page-id-3863 .kb-row-layout-id3863_5fbd88-99 > .kt-row-column-wrap {
		display: grid !important;
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		grid-auto-flow: row !important;
		grid-auto-rows: auto !important;
		column-gap: 0.625rem !important;
		/* Vertical rhythm between icon rows (+40% vs prior pass; footer inline mirrors). */
		row-gap: clamp(3.5rem, 9.8vw, 6.3rem) !important;
		align-items: start !important;
	}
	body.page-id-3863 .kb-row-layout-wrap.kb-row-layout-id3863_d79e44-81.wp-block-kadence-rowlayout {
		margin-top: clamp(1.75rem, 4.2vw, 3.15rem) !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_d79e44-81 > .kt-row-column-wrap {
		row-gap: clamp(3.5rem, 9.8vw, 6.3rem) !important;
		column-gap: 0.625rem !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-column {
		min-width: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
		min-height: min-content !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-column > .kt-inside-inner-col {
		min-height: min-content !important;
		height: auto !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox {
		min-height: min-content !important;
		height: auto !important;
		flex-shrink: 0 !important;
	}
}

/* Home (3863) wastewater icon rows: title size at tablet width and below (matches Kadence ≤1024 band). */
@media (max-width: 1024px) {
	body.page-id-3863 .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox h2.kt-blocks-info-box-title,
	body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox h2.kt-blocks-info-box-title {
		font-size: 18px !important;
	}
}

/*
 * Home (3863) only — municipal + industrial wastewater infobox rows (d79e44-81, 5fbd88-99):
 * Kadence mobile layout stacks one tile per row; force two equal columns on small viewports.
 * Scoped to these row IDs + home body class — not header/nav/menus.
 */
@media (max-width: 767px) {
	body.page-id-3863 .kb-row-layout-wrap.kb-row-layout-id3863_d79e44-81.wp-block-kadence-rowlayout {
		margin-top: clamp(1.75rem, 4.2vw, 3.15rem) !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_5fbd88-99 > .kt-row-column-wrap,
	body.page-id-3863 .kb-row-layout-id3863_d79e44-81 > .kt-row-column-wrap {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		grid-auto-flow: row !important;
		/* Prevent implicit rows from shrinking below tile content (avoids next-row icons painting over titles/buttons). */
		grid-auto-rows: auto !important;
		column-gap: 0.75rem !important;
		/* Between-row air (footer inline CSS mirrors this). */
		row-gap: clamp(2.8rem, 9.1vw, 4.9rem) !important;
		align-items: start !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-column,
	body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-column {
		min-width: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
		min-height: min-content !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-column > .kt-inside-inner-col,
	body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-column > .kt-inside-inner-col {
		min-height: min-content !important;
		height: auto !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox,
	body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox {
		min-height: min-content !important;
		height: auto !important;
		flex-shrink: 0 !important;
	}
	/* Undo min-height:0 on link-wrap for this breakpoint so nested flex/grid cannot collapse tile height. */
	body.page-id-3863 .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap {
		min-height: auto !important;
		padding-bottom: 18px !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap {
		min-height: auto !important;
		padding-bottom: 17px !important;
	}
}

/* ============================================================ */
/* --- Municipal Wastewater Info Blocks (row d79e44-81) --- */
/* ============================================================ */

/* Base block: transparent, no border, content pushed to top */
/* padding-top reserves icon column: 2px + 120px icon + 2px gap below icon */
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap {
    background: transparent !important;
    border: none !important;
    border-radius: 12px !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start !important;
    text-align: center;
    padding: 124px 16px 10px !important;
    position: relative;
    /* Above infobox pseudos (trap z1, colour z2); gray ::before lives inside this link */
    z-index: 3;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap:hover {
    border-color: transparent;
    box-shadow: none;
}

/* Title */
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox .kt-blocks-info-box-title {
    color: #000 !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-shadow: none !important;
    transform: translateY(0) !important;
    margin-top: 0;
    transition: color 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Icon crossfade: colour on infobox (below), gray PNG on link (above, fades out) */
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox {
    position: relative;
}
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox::before {
    content: '' !important;
    position: absolute;
    top: 2px;
    left: 50%;
    transform: translateX(-50%);
    width: 130px;
    height: 120px;
    margin: 0;
    background-color: transparent !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    /* Above trapezoid (::after z1), below link (z3) */
    z-index: 2;
    pointer-events: none;
}
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox::after {
    content: '' !important;
    position: absolute !important;
    top: 38px;
    left: 50%;
    width: 68px;
    height: 57px;
    background: #A0DFEA !important;
    clip-path: polygon(12% 0%, 88% 2%, 100% 96%, 0% 100%);
    transform: translateX(-50%) rotate(45deg) scale(0);
    opacity: 0;
    transition: transform 0.75s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.65s cubic-bezier(0.4, 0, 0.2, 1), background 0.75s ease;
    z-index: 1 !important;
    pointer-events: none;
}
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox:hover::after,
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox:focus-within::after {
    background: #6DBDD9 !important;
    transform: translateX(-50%) rotate(135deg) scale(1) !important;
    opacity: 1;
    top: 38px;
    left: 50%;
}
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap::before {
    content: '';
    display: block;
    position: absolute !important;
    top: 2px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 130px !important;
    height: 120px !important;
    margin: 0 !important;
    background-color: transparent !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    filter: none !important;
    opacity: 1;
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
    z-index: 3 !important;
    pointer-events: none;
}
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox:hover .kt-blocks-info-box-link-wrap::before,
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox:focus-within .kt-blocks-info-box-link-wrap::before {
    opacity: 0;
}

/* Learn More button: always visible, dark blue */
.kb-row-layout-id3863_d79e44-81 .kt-infobox-textcontent::after {
    opacity: 1 !important;
    transform: translateY(0) !important;
    color: #015fbf !important;
    border-color: #015fbf !important;
    margin-top: 2px;
    transition: color 0.75s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.75s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}

/* --- Per-block icon URLs (municipal wastewater — gray + colour PNG crossfade) --- */
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox.kt-info-box3863_5deb13-62::before {
    background-image: url('/wp-content/uploads/2026/03/municipal-mbr-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_d79e44-81 .kt-info-box3863_5deb13-62 .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/municipal-mbr-gray-fine-d1.png') !important;
}
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox.kt-info-box3863_450f11-8a::before {
    background-image: url('/wp-content/uploads/2026/03/municipal-retrofit-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_d79e44-81 .kt-info-box3863_450f11-8a .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/municipal-retrofit-gray-fine-d1.png') !important;
}
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox.kt-info-box3863_bf009f-41::before {
    background-image: url('/wp-content/uploads/2026/03/municipal-reuse-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_d79e44-81 .kt-info-box3863_bf009f-41 .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/municipal-reuse-gray-fine-d1.png') !important;
}
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox.kt-info-box3863_d037c8-7b::before {
    background-image: url('/wp-content/uploads/2026/03/municipal-greenfield-color-fine-d1.png') !important;
}
.kb-row-layout-id3863_d79e44-81 .kt-info-box3863_d037c8-7b .kt-blocks-info-box-link-wrap::before {
    background-image: url('/wp-content/uploads/2026/03/municipal-greenfield-gray-fine-d1.png') !important;
}

/* Home (3863) only: four municipal wastewater tiles (row d79e44-81).
   Industrial row uses 80×80 icon boxes; municipal fineline PNGs need a slightly larger square box + contain()
   so art matches visual weight without clipping (no oversize background on fixed small rects). */
body.page-id-3863 .kb-row-layout-id3863_d79e44-81 > .kt-row-column-wrap,
body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-column,
body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox {
    overflow: visible !important;
}
body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap {
    /* 16px offset + 104px icon + 6px gap below icon (same rhythm as industrial 16+80+6) */
    padding: 126px 16px 22px !important;
}
body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox::before {
    top: 16px;
    width: 104px;
    height: 104px;
    background-size: contain !important;
    background-position: center center !important;
}
/* Trapezoid (68×57) vertically centered on 104×104 icon: icon center 16+52=68 → top ≈ 68−28.5 */
body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox::after {
    top: 40px;
}
body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox:hover::after,
body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox:focus-within::after {
    top: 40px;
}
body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap::before {
    top: 16px !important;
    width: 104px !important;
    height: 104px !important;
    background-size: contain !important;
    background-position: center center !important;
}
body.page-id-3863 .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox .kt-blocks-info-box-title {
    margin-top: 4px;
}

/* ============================================================ */
/* --- Learn More button: 20% larger text (14px → 17px) --- */
/* ============================================================ */
.kb-row-layout-id3863_5fbd88-99 .kt-infobox-textcontent::after,
.kb-row-layout-id3863_d79e44-81 .kt-infobox-textcontent::after {
    font-size: 17px !important;
}

/* ============================================================ */
/* --- Hover: reverse title + button colours --- */
/* ============================================================ */
/* Title: #000 → #004e7d on hover */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox:hover .kt-blocks-info-box-link-wrap .kt-blocks-info-box-title,
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox:hover .kt-blocks-info-box-link-wrap .kt-blocks-info-box-title {
    color: #015fbf !important;
}
/* Learn More button: reversed on hover — filled background, white text */
.kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox:hover .kt-blocks-info-box-link-wrap .kt-infobox-textcontent::after,
.kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox:hover .kt-blocks-info-box-link-wrap .kt-infobox-textcontent::after {
    color: #fff !important;
    border-color: #015fbf !important;
    background: #015fbf !important;
}

@media (prefers-reduced-motion: reduce) {
    .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap::before,
    .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox .kt-blocks-info-box-link-wrap::before,
    .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c1::before,
    .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox.kt-info-box3863_b91e42-c2::before,
    .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox::after,
    .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox::after,
    .kb-row-layout-id3863_5fbd88-99 .wp-block-kadence-infobox .kt-blocks-info-box-title,
    .kb-row-layout-id3863_d79e44-81 .wp-block-kadence-infobox .kt-blocks-info-box-title,
    .kb-row-layout-id3863_5fbd88-99 .kt-infobox-textcontent::after,
    .kb-row-layout-id3863_d79e44-81 .kt-infobox-textcontent::after {
        transition-duration: 0.05s !important;
    }
    body.page-id-3272 .industry-icon-bar .industry-icon-item::before,
    body.page-id-3276 .industry-icon-bar .industry-icon-item::before,
    body.page-id-3278 .industry-icon-bar .industry-icon-item::before,
    body.page-id-3280 .industry-icon-bar .industry-icon-item::before,
    body.page-id-3289 .industry-icon-bar .industry-icon-item::before,
    body.page-id-3272 .industry-icon-bar .industry-icon-item > img,
    body.page-id-3276 .industry-icon-bar .industry-icon-item > img,
    body.page-id-3278 .industry-icon-bar .industry-icon-item > img,
    body.page-id-3280 .industry-icon-bar .industry-icon-item > img,
    body.page-id-3289 .industry-icon-bar .industry-icon-item > img,
    body.page-id-3272 .industry-icon-bar .industry-icon-item .icon-label,
    body.page-id-3276 .industry-icon-bar .industry-icon-item .icon-label,
    body.page-id-3278 .industry-icon-bar .industry-icon-item .icon-label,
    body.page-id-3280 .industry-icon-bar .industry-icon-item .icon-label,
    body.page-id-3289 .industry-icon-bar .industry-icon-item .icon-label {
        transition-duration: 0.05s !important;
    }
    body.parent-pageid-3292 .industry-icon-bar .industry-icon-item::before,
    body.parent-pageid-3292 .industry-icon-bar .industry-icon-item::after,
    body.parent-pageid-3292 .industry-icon-bar .industry-icon-item > img,
    body.parent-pageid-3292 .industry-icon-bar .industry-icon-item .icon-label,
    body.page-id-3292 .industry-icon-bar .industry-icon-item::before,
    body.page-id-3292 .industry-icon-bar .industry-icon-item::after,
    body.page-id-3292 .industry-icon-bar .industry-icon-item > img,
    body.page-id-3292 .industry-icon-bar .industry-icon-item .icon-label {
        transition-duration: 0.05s !important;
    }
}

.kb-row-layout-id3863_5fbd88-99 .kt-info-box3863_b59c4c-c1 .kt-blocks-info-box-title {
    margin-top: 0 !important;
    line-height: 1.1 !important;
}
/* Industrial heading top margin */
.kb-row-layout-id3863_dcd7a4-62 {
    margin-top: 60px !important;
}
/* updated */

/* --- Homepage heading-to-icon spacing reduction --- */
.kb-row-layout-id3863_c51d4d-51 .kt-row-column-wrap,
.kb-row-layout-id3863_dcd7a4-62 .kt-row-column-wrap {
    padding-bottom: 0 !important;
}

/* --- Hero Page Title Text Shadow (readability over bright photos) --- */
.entry-hero.page-hero-section .entry-header .entry-title,
.single-post .entry-hero.post-hero-section .entry-header .entry-title {
    font-size: 33px !important;
    font-weight: 400 !important;
    line-height: 33px !important;
    background: transparent !important;
    padding: 15px 0 !important;
    text-shadow: none !important;
    position: relative !important;
    z-index: 2 !important;
}
/* News archive hero title: Kadence only outputs `.post-archive-title h1{color:…}` — otherwise global `h1` (65px) wins. Match subpage `.entry-title` rules above — no nav/other templates. */
.entry-hero.post-archive-hero-section .post-archive-title h1.page-title.archive-title {
    font-size: 33px !important;
    font-weight: 400 !important;
    line-height: 33px !important;
    background: transparent !important;
    padding: 15px 0 !important;
    text-shadow: none !important;
    position: relative !important;
    z-index: 2 !important;
}
.entry-hero.post-archive-hero-section header.post-archive-title {
    align-items: flex-start !important;
    justify-content: flex-end !important;
    padding-left: 0 !important;
    text-align: left !important;
}
/* Position subpage title: vertically centered, left-aligned */
.page-hero-section .entry-header,
.single-post .post-hero-section .entry-header {
    align-items: flex-start !important;
    justify-content: flex-end !important;
    padding-left: 0 !important;
    text-align: left !important;
}

/* --- Reduce white space between hero banner and icon bar (60% reduction) --- */
.entry-hero.page-hero-section + .content-area,
.entry-hero-container-inner + .content-area,
body:not(.home) .content-area {
    margin-top: 30px !important;
}
body:not(.home) .content-area {
    margin-bottom: 50px !important;
}
.industry-icon-bar {
    padding-top: 12px;
    padding-bottom: 20px;
}

/* --- Municipal Page Trapezoid Colour Overrides (blue/teal instead of amber) --- */
body.page-id-3272 .industry-icon-item::before,
body.page-id-3276 .industry-icon-item::before,
body.page-id-3278 .industry-icon-item::before,
body.page-id-3280 .industry-icon-item::before,
body.page-id-3289 .industry-icon-item::before {
    background: #BBEAF2;
}
body.page-id-3272 .industry-icon-item:hover::before,
body.page-id-3272 .industry-icon-item.active::before,
body.page-id-3276 .industry-icon-item:hover::before,
body.page-id-3276 .industry-icon-item.active::before,
body.page-id-3278 .industry-icon-item:hover::before,
body.page-id-3278 .industry-icon-item.active::before,
body.page-id-3280 .industry-icon-item:hover::before,
body.page-id-3280 .industry-icon-item.active::before,
body.page-id-3289 .industry-icon-item:hover::before,
body.page-id-3289 .industry-icon-item.active::before {
    background: #3E8FAE;
}

/* --- Municipal Technology icon bar (3272–3280): fineline gray/colour crossfade + slower trapezoid (matches homepage) --- */
/* Gray src comes from PHP filter; colour sits on ::after under img; trapezoid remains ::before */
body.page-id-3272 .industry-icon-bar .industry-icon-item::before,
body.page-id-3276 .industry-icon-bar .industry-icon-item::before,
body.page-id-3278 .industry-icon-bar .industry-icon-item::before,
body.page-id-3280 .industry-icon-bar .industry-icon-item::before,
body.page-id-3289 .industry-icon-bar .industry-icon-item::before {
    z-index: 1;
    transition: background 0.75s ease, transform 0.75s cubic-bezier(0.4, 0, 0.2, 1), clip-path 0.75s ease;
}
body.page-id-3272 .industry-icon-bar .industry-icon-item::after,
body.page-id-3276 .industry-icon-bar .industry-icon-item::after,
body.page-id-3278 .industry-icon-bar .industry-icon-item::after,
body.page-id-3280 .industry-icon-bar .industry-icon-item::after,
body.page-id-3289 .industry-icon-bar .industry-icon-item::after {
    content: '' !important;
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
    height: 120px;
    margin: 0;
    background-color: transparent !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    z-index: 2;
    pointer-events: none;
}
body.page-id-3272 .industry-icon-bar .industry-icon-item > img,
body.page-id-3276 .industry-icon-bar .industry-icon-item > img,
body.page-id-3278 .industry-icon-bar .industry-icon-item > img,
body.page-id-3280 .industry-icon-bar .industry-icon-item > img,
body.page-id-3289 .industry-icon-bar .industry-icon-item > img {
    position: relative;
    z-index: 3;
    filter: none !important;
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
body.page-id-3272 .industry-icon-bar .industry-icon-item:hover > img,
body.page-id-3272 .industry-icon-bar .industry-icon-item.active > img,
body.page-id-3272 .industry-icon-bar .industry-icon-item:focus-visible > img,
body.page-id-3276 .industry-icon-bar .industry-icon-item:hover > img,
body.page-id-3276 .industry-icon-bar .industry-icon-item.active > img,
body.page-id-3276 .industry-icon-bar .industry-icon-item:focus-visible > img,
body.page-id-3278 .industry-icon-bar .industry-icon-item:hover > img,
body.page-id-3278 .industry-icon-bar .industry-icon-item.active > img,
body.page-id-3278 .industry-icon-bar .industry-icon-item:focus-visible > img,
body.page-id-3280 .industry-icon-bar .industry-icon-item:hover > img,
body.page-id-3280 .industry-icon-bar .industry-icon-item.active > img,
body.page-id-3280 .industry-icon-bar .industry-icon-item:focus-visible > img,
body.page-id-3289 .industry-icon-bar .industry-icon-item:hover > img,
body.page-id-3289 .industry-icon-bar .industry-icon-item.active > img,
body.page-id-3289 .industry-icon-bar .industry-icon-item:focus-visible > img {
    opacity: 0;
}
body.page-id-3272 .industry-icon-bar .industry-icon-item .icon-label,
body.page-id-3276 .industry-icon-bar .industry-icon-item .icon-label,
body.page-id-3278 .industry-icon-bar .industry-icon-item .icon-label,
body.page-id-3280 .industry-icon-bar .industry-icon-item .icon-label,
body.page-id-3289 .industry-icon-bar .industry-icon-item .icon-label {
    position: relative;
    z-index: 4;
    transition: color 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Per-icon colour layer (:has requires modern browsers; gray filenames set by PHP) */
body.page-id-3272 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-mbr-gray"])::after,
body.page-id-3276 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-mbr-gray"])::after,
body.page-id-3278 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-mbr-gray"])::after,
body.page-id-3280 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-mbr-gray"])::after,
body.page-id-3289 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-mbr-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/municipal-mbr-color-fine-d1.png') !important;
}
body.page-id-3272 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-retrofit-gray"])::after,
body.page-id-3276 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-retrofit-gray"])::after,
body.page-id-3278 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-retrofit-gray"])::after,
body.page-id-3280 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-retrofit-gray"])::after,
body.page-id-3289 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-retrofit-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/municipal-retrofit-color-fine-d1.png') !important;
}
body.page-id-3272 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-reuse-gray"])::after,
body.page-id-3276 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-reuse-gray"])::after,
body.page-id-3278 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-reuse-gray"])::after,
body.page-id-3280 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-reuse-gray"])::after,
body.page-id-3289 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-reuse-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/municipal-reuse-color-fine-d1.png') !important;
}
body.page-id-3272 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-greenfield-gray"])::after,
body.page-id-3276 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-greenfield-gray"])::after,
body.page-id-3278 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-greenfield-gray"])::after,
body.page-id-3280 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-greenfield-gray"])::after,
body.page-id-3289 .industry-icon-bar .industry-icon-item:has(img[src*="municipal-greenfield-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/municipal-greenfield-color-fine-d1.png') !important;
}

/* --- Technology Solutions (Municipal): copy between colour blocks and icon bar (four pages + Applications hub 3289) --- */
body.page-id-3272 #primary .entry-content p.lpa-muni-tech-separator,
body.page-id-3276 #primary .entry-content p.lpa-muni-tech-separator,
body.page-id-3278 #primary .entry-content p.lpa-muni-tech-separator,
body.page-id-3280 #primary .entry-content p.lpa-muni-tech-separator,
body.page-id-3289 #primary .entry-content p.lpa-muni-tech-separator {
    font-size: 25px;
    line-height: 1.6;
    margin-bottom: 24px;
    color: #24364a;
}
body.page-id-3272 #primary .entry-content p.lpa-muni-tech-separator--lead,
body.page-id-3276 #primary .entry-content p.lpa-muni-tech-separator--lead,
body.page-id-3278 #primary .entry-content p.lpa-muni-tech-separator--lead,
body.page-id-3280 #primary .entry-content p.lpa-muni-tech-separator--lead,
body.page-id-3289 #primary .entry-content p.lpa-muni-tech-separator--lead {
    margin-top: 36px;
}
body.page-id-3272 #primary .entry-content p.lpa-muni-tech-separator:not(.lpa-muni-tech-separator--lead),
body.page-id-3276 #primary .entry-content p.lpa-muni-tech-separator:not(.lpa-muni-tech-separator--lead),
body.page-id-3278 #primary .entry-content p.lpa-muni-tech-separator:not(.lpa-muni-tech-separator--lead),
body.page-id-3280 #primary .entry-content p.lpa-muni-tech-separator:not(.lpa-muni-tech-separator--lead),
body.page-id-3289 #primary .entry-content p.lpa-muni-tech-separator:not(.lpa-muni-tech-separator--lead) {
    margin-bottom: 40px;
}

/* --- Municipal Benefits Bottom Blocks --- */
.municipal-benefits-row {
    display: flex;
    gap: 0;
    margin-top: 40px;
}
.municipal-benefit {
    flex: 1;
    padding: 30px 20px;
    text-align: center;
}
.municipal-benefit h3 {
    font-size: 18px;
    margin-bottom: 10px;
}
.municipal-benefit p {
    font-size: 14px !important;
    line-height: 1.5 !important;
}
@media (max-width: 768px) {
    .municipal-benefits-row {
        flex-direction: column;
    }
    .municipal-benefit {
        padding: 20px 15px;
    }
}

/* --- Subpage icon bar full width spacing (industrial hub/children override below with grid) --- */
.industry-icon-bar {
    justify-content: space-evenly !important;
    gap: 0 !important;
    width: 100% !important;
    padding: 0 !important;
}

/* --- Industrial hub + subpages: icon size (revert to original, do not enlarge like municipal) --- */
body.parent-pageid-3292 .industry-icon-item img,
body.page-id-3292 .industry-icon-item img {
    width: 80px !important;
    height: 80px !important;
}
body.parent-pageid-3292 .industry-icon-item .icon-placeholder,
body.page-id-3292 .industry-icon-item .icon-placeholder {
    width: 80px !important;
    height: 80px !important;
}

/* --- Industrial hub + subpages: trapezoid size (scaled to match 80px icons) --- */
body.parent-pageid-3292 .industry-icon-item::before,
body.page-id-3292 .industry-icon-item::before {
    width: 82px !important;
    height: 69px !important;
    top: 15px !important;
}

/* --- Industrial Wastewater hub (3292) + sector children: fineline gray/colour crossfade + slower trapezoid --- */
/* Gray src from PHP filter on hub + children; colour on ::after; hub uses body.page-id-3292 (not parent-pageid-3292). */
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item::before,
body.page-id-3292 .industry-icon-bar .industry-icon-item::before {
    z-index: 1;
    transition: background 0.75s ease, transform 0.75s cubic-bezier(0.4, 0, 0.2, 1), clip-path 0.75s ease;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item::after {
    content: '' !important;
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 80px;
    margin: 0;
    background-color: transparent !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    z-index: 2;
    pointer-events: none;
    /* Gray PNGs use transparency; color ::after was visible through them. Hide until hover/active/focus. */
    opacity: 0 !important;
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:hover::after,
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item.active::after,
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:focus-visible::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:hover::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item.active::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:focus-visible::after {
    opacity: 1 !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item > img,
body.page-id-3292 .industry-icon-bar .industry-icon-item > img {
    position: relative;
    z-index: 3;
    display: block;
    filter: none !important;
    opacity: 1;
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:hover > img,
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item.active > img,
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:focus-visible > img,
body.page-id-3292 .industry-icon-bar .industry-icon-item:hover > img,
body.page-id-3292 .industry-icon-bar .industry-icon-item.active > img,
body.page-id-3292 .industry-icon-bar .industry-icon-item:focus-visible > img {
    opacity: 0 !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item .icon-label,
body.page-id-3292 .industry-icon-bar .industry-icon-item .icon-label {
    position: relative;
    z-index: 4;
    transition: color 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:has(img[src*="food-beverage-gray"])::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:has(img[src*="food-beverage-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/food-beverage-color-fine-d1.png') !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:has(img[src*="oil-gas-gray"])::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:has(img[src*="oil-gas-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/oil-gas-color-fine-d1.png') !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:has(img[src*="pulp-paper-gray"])::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:has(img[src*="pulp-paper-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/pulp-paper-color-fine-d1.png') !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:has(img[src*="pharmaceutical-gray"])::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:has(img[src*="pharmaceutical-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/pharmaceutical-color-fine-d1.png') !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:has(img[src*="chemical-gray"])::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:has(img[src*="chemical-gray"])::after {
    background-image: url('/wp-content/uploads/2026/04/012-chemical-color.png') !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:has(img[src*="cosmetics-skincare-gray"])::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:has(img[src*="cosmetics-skincare-gray"])::after {
    background-image: url('/wp-content/uploads/2026/04/013-cosmetics-skincare-color.png') !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:has(img[src*="data-centers-gray"])::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:has(img[src*="data-centers-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/data-centers-color-fine-d1.png') !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:has(img[src*="microelectronics-gray"])::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:has(img[src*="microelectronics-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/microelectronics-color-fine-d1.png') !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:has(img[src*="marine-gray"])::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:has(img[src*="marine-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/marine-color-fine-d1.png') !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:has(img[src*="textiles-gray"])::after,
body.page-id-3292 .industry-icon-bar .industry-icon-item:has(img[src*="textiles-gray"])::after {
    background-image: url('/wp-content/uploads/2026/03/textiles-color-fine-d1.png') !important;
}

/* --- Industrial IW: 5×2 grid (same sector order as home row), icon above label, trapezoid spin on hover --- */
body.parent-pageid-3292 .industry-icon-bar,
body.page-id-3292 .industry-icon-bar {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 36px 12px !important;
    justify-content: stretch !important;
    justify-items: center !important;
    align-items: start !important;
    width: 100% !important;
    max-width: var(--global-content-width, 1290px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item,
body.page-id-3292 .industry-icon-bar .industry-icon-item {
    width: 100% !important;
    max-width: 132px !important;
    flex: unset !important;
    min-width: 0 !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    box-sizing: border-box !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item > img,
body.page-id-3292 .industry-icon-bar .industry-icon-item > img {
    order: 0 !important;
    display: block !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item .icon-label,
body.page-id-3292 .industry-icon-bar .industry-icon-item .icon-label {
    order: 1 !important;
    margin-top: 8px !important;
}
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item:hover::before,
body.page-id-3292 .industry-icon-bar .industry-icon-item:hover::before,
body.parent-pageid-3292 .industry-icon-bar .industry-icon-item.active::before,
body.page-id-3292 .industry-icon-bar .industry-icon-item.active::before {
    background: #dfb868 !important;
    transform: translateX(-50%) rotate(135deg) !important;
    clip-path: polygon(10% 1%, 90% 0%, 100% 97%, 0% 100%) !important;
}

/* --- Industrial hub + subpages (3292): cap direct blocks to Kadence content width (figures = wp-block-image) --- */
body.parent-pageid-3292 .entry-content > p, body.page-id-3292 .entry-content > p,
body.parent-pageid-3292 .entry-content > h2, body.page-id-3292 .entry-content > h2,
body.parent-pageid-3292 .entry-content > h3, body.page-id-3292 .entry-content > h3,
body.parent-pageid-3292 .entry-content > ul, body.page-id-3292 .entry-content > ul,
body.parent-pageid-3292 .entry-content > ol, body.page-id-3292 .entry-content > ol,
body.parent-pageid-3292 .entry-content > figure, body.page-id-3292 .entry-content > figure {
    max-width: var(--global-content-width, 1290px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* --- Home checkmark bar (slider strip): row background only — not .fc-hero-overlay --- */
body.page-id-3863 .kb-row-layout-id3863_451254-46 {
    background: rgba(0, 0, 0, 0.7) !important;
}

/*
 * Checkmark row (451254-46): #1 uses kt-info-media-animate-none vs #2–3 drawborder — 1.0.51 at 24px read smaller than peers.
 * Nudge to 28px + 8px padding (near Kadence 30/10) for parity; row-gap unchanged; margin-top in @media767 hero block pulls strip up.
 */
body.page-id-3863 .kb-row-layout-id3863_451254-46 .kt-info-box3863_7a29d7-4e .kt-blocks-info-box-media {
	padding: 8px !important;
	margin-right: 10px !important;
}
body.page-id-3863 .kb-row-layout-id3863_451254-46 .kt-info-box3863_7a29d7-4e .kadence-info-box-icon-container .kt-info-svg-icon,
body.page-id-3863 .kb-row-layout-id3863_451254-46 .kt-info-box3863_7a29d7-4e .kadence-info-box-icon-container .kt-blocks-info-box-number {
	font-size: 28px !important;
}
body.page-id-3863 .kb-row-layout-id3863_451254-46 .kt-info-box3863_7a29d7-4e .kt-info-svg-icon svg {
	width: 28px !important;
	height: 28px !important;
	max-width: 28px !important;
	max-height: 28px !important;
}
@media (max-width: 767px) {
	body.page-id-3863 .kb-row-layout-id3863_451254-46 > .kt-row-column-wrap {
		row-gap: 0.65rem !important;
	}
}

/* --- Homepage animated slideshow max-width --- */
.kb-advanced-slider-3863_e524ff-24 {
    max-width: 800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Home 7-slide carousel (NOT hero): caption strip below image.
   Kadence’s inner-wrap is position:absolute (out of flex flow). A sole in-flow .lpa-e524ff-caption-below was flex-aligned to the
   TOP (flex-start) — inspector: caption above image / clipped. Fix: extend slide padding for caption band; pin inner-wrap with
   bottom offset; absolutely position caption in bottom strip (same containing block as inner-wrap). */
body.page-id-3863 .kb-advanced-slider-3863_e524ff-24 .kb-advanced-slide {
    padding-bottom: calc(62.5% + 3.75rem) !important;
    overflow: visible !important;
    position: relative !important;
}
body.page-id-3863 .kb-advanced-slider-3863_e524ff-24 li.wp-block-kadence-slide,
body.page-id-3863 .kb-advanced-slider-3863_e524ff-24 .splide__slide {
    overflow: visible !important;
}
body.page-id-3863 .kb-advanced-slider-3863_e524ff-24 .kb-advanced-slide-inner-wrap {
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 3.75rem !important;
    height: auto !important;
    flex: unset !important;
    display: block !important;
}
body.page-id-3863 .kb-advanced-slider-3863_e524ff-24 .kb-advanced-slide-inner {
    margin-top: 0 !important;
    padding: 0 !important;
}
body.page-id-3863 .kb-advanced-slider-3863_e524ff-24 .lpa-e524ff-caption-below {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100%;
    box-sizing: border-box;
    padding: 8px 16px 10px;
    margin: 0 !important;
    text-align: center;
    z-index: 12;
    background: transparent;
}
body.page-id-3863 .kb-advanced-slider-3863_e524ff-24 .lpa-e524ff-slide-caption {
    margin: 0 auto !important;
    padding: 0;
    max-width: 36em;
    box-sizing: border-box;
    color: #000 !important;
    font-size: 18px !important;
    line-height: 1.35;
    text-align: center;
    font-weight: 500;
}
/* Same chain: block markup often wraps caption copy in <p>; keep size scoped to this slideshow only. */
body.page-id-3863 .kb-advanced-slider-3863_e524ff-24 .lpa-e524ff-slide-caption p {
    font-size: 18px !important;
}

/* --- Remove spacing below bottom colour blocks to sit on footer --- */
.municipal-benefits-row {
    margin-bottom: 0 !important;
}
.entry-content-wrap {
    padding-bottom: 0 !important;
}
.content-container.site-container {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}
.content-area {
    margin-bottom: 0 !important;
}

/* Subpage body copy: 25px is global (see body:not(.home) #primary .entry-content p). */

/* --- Icon bar spacing overrides (March 20, 2026) --- */
body.parent-pageid-3292 .industry-icon-bar,
body.page-id-3292 .industry-icon-bar {
    padding-top: 60px !important;
    padding-bottom: 30px !important;
}

/* --- Industrial Wastewater hub (3292) + sector children: 10 icons = 5 per row (base .industry-icon-item is 12.5% = 8-wide; flex default nowrap squeezed all into one row) --- */
body.parent-pageid-3292 .industry-icon-bar,
body.page-id-3292 .industry-icon-bar {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    justify-content: stretch !important;
    justify-items: center !important;
    align-items: start !important;
    column-gap: 0.5rem !important;
    row-gap: 1.5rem !important;
}

body.parent-pageid-3292 .industry-icon-bar .industry-icon-item,
body.page-id-3292 .industry-icon-bar .industry-icon-item {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

body.parent-pageid-3289 .industry-icon-bar {
    padding-top: 0 !important;
    padding-bottom: 30px !important;
}

/* --- Force icon bar to bottom on municipal pages via flex order (cache-proof) --- */
body.parent-pageid-3289 .entry-content {
    display: flex !important;
    flex-direction: column !important;
}
body.parent-pageid-3289 .entry-content > .industry-icon-bar {
    order: 99 !important;
}

/* --- Industrial hub (3292): keep bottom icon bar after teaser blocks --- */
body.page-id-3292 .entry-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
}
/* Flex column: hub / tiles / icon bar must stay full content width (otherwise CQ + cqi could see ~0 inline size) */
body.page-id-3292 .entry-content > .iw-hub-industry-sections,
body.page-id-3292 .entry-content > .industrial-benefits-row,
body.page-id-3292 .entry-content > .industry-icon-bar {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    flex-shrink: 0;
    align-self: stretch !important;
}
body.page-id-3292 .entry-content > .wp-block-html:has(.industry-icon-bar),
body.page-id-3292 .entry-content > .industry-icon-bar {
    order: 99 !important;
}

/* --- Homepage 7-image slideshow top spacing --- */
.kb-row-layout-id3863_b469bb-19 {
    margin-top: 50px;
}

/* Home page testimonials slideshow spacing (no full-area background — map + text sit on page bg) */
.lpa-testimonial-slideshow.lpa-home-testimonials {
    margin-top: 70px !important;
    margin-bottom: 50px !important;
}

/* Home page - hide Request a Quote button and center remaining two */
.lpa-button-row-1 > .wp-block-column:first-child {
    display: none;
}
.lpa-button-row-1 {
    justify-content: center;
    gap: 2em;
}
.lpa-button-row-1 > .wp-block-column:not(:first-child) {
    flex-basis: 30% !important;
}

/* Home page - Cassette image: reduce 5%, center section vertically */
.kb-row-layout-id3863_a31726-74 > .kt-row-column-wrap {
    padding-top: 15px !important;
    padding-bottom: 15px !important;
    align-items: center;
}
.kb-image3863_e55de1-d7 img {
    max-width: 85% !important;
    height: auto;
}
.kb-image3863_e55de1-d7 {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/*
 * Home blue row (a31726-74) — tablet portrait + phone landscape only (same bands as side-by-side layout).
 * Cassette img ~92% of column (~+15% vs 80%) to use horizontal slack in image column; text column rules unchanged.
 * Image *column* must not use a huge % of the row
 * (that stole text width in 1.0.127) — cap with min(px, %) so text flex:1 gains space; tight row gap.
 * :has(.kb-image3863_e55de1-d7); order:-1. Phone landscape >767px: short-landscape band (~L123).
 */
@media (min-width: 768px) and (max-width: 1366px) and (orientation: portrait) and (min-height: 521px),
	(max-width: 767px) and (orientation: landscape),
	(orientation: landscape) and (max-height: 520px) and (max-width: 1000px) {
	body.page-id-3863 .kb-row-layout-id3863_a31726-74 > .kt-row-column-wrap {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		gap: clamp(0.35rem, 1.2vw, 0.65rem) !important;
		grid-template-columns: none !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_a31726-74 > .kt-row-column-wrap > .wp-block-kadence-column:has(.kb-image3863_e55de1-d7) {
		flex: 0 0 auto !important;
		width: auto !important;
		/* Do not use ~50% here — reserves half the row and shrinks the copy column; px cap matches cassette scale */
		max-width: min(280px, 38%) !important;
		min-width: 0 !important;
		align-self: center !important;
		order: -1 !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_a31726-74 > .kt-row-column-wrap > .wp-block-kadence-column:not(:has(.kb-image3863_e55de1-d7)) {
		flex: 1 1 0% !important;
		min-width: 0 !important;
		width: auto !important;
		max-width: none !important;
		align-self: center !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_a31726-74 .kb-image3863_e55de1-d7 img {
		width: 92% !important;
		max-width: 92% !important;
		height: auto !important;
	}
}

/*
 * Home cassette row (a31726-74): first three feature h2s only — −20% vs .lpa-home-section-text h2 base (34px).
 * Tablet portrait and smaller: phone widths + portrait tablets to 1366px; does not affect 6bc0c6-0b or header/nav.
 */
@media (max-width: 767px),
	(min-width: 768px) and (max-width: 1366px) and (orientation: portrait) {
	html body.page-id-3863 .kb-row-layout-id3863_a31726-74 .lpa-home-section-text .kt-adv-heading3863_febbd5-77,
	html body.page-id-3863 .kb-row-layout-id3863_a31726-74 .lpa-home-section-text .kt-adv-heading3863_a191f8-a4,
	html body.page-id-3863 .kb-row-layout-id3863_a31726-74 .lpa-home-section-text .kt-adv-heading3863_105c48-cc {
		font-size: calc(34px * 0.8) !important;
	}
}

/*
 * Home (3863) — blue intro row below hero (kb-row-layout-id3863_a31726-74): viewport widths ≤1366px
 * (includes wider tablets; same upper bound as full-tablet hero band). Full-bleed row background 100vw;
 * horizontal 3vw inset on inner wrap. Portrait vs landscape tuning deferred — do not broaden scope here.
 * Scoped: body.page-id-3863 + row class kb-row-layout-id3863_a31726-74 only — no header/nav.
 */
@media (max-width: 1366px) {
	body.page-id-3863 .kb-row-layout-id3863_a31726-74 {
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		box-sizing: border-box !important;
	}
	body.page-id-3863 .kb-row-layout-id3863_a31726-74 > .kt-row-column-wrap {
		padding-left: 3vw !important;
		padding-right: 3vw !important;
	}
}

/* --- Homepage Slide 1: Remove dark gradient overlay (March 21 2026) --- */
.wp-block-kadence-slider .kb-slide-3863_ec6487-20 .kb-advanced-slide-overlay {
    background: none !important;
}

/* --- Homepage Slide 1: Show full photo width at all screen sizes (March 21 2026) --- */
.wp-block-kadence-slider .kb-slide-3863_ec6487-20 .kb-advanced-slide-inner-wrap {
    background-size: 100% auto !important;
    background-position: center -60px !important;
}

/* --- Homepage Slide 1: Responsive image sizing (March 21 2026) --- */
.wp-block-kadence-slider .kb-slide-3863_ec6487-20 .kb-advanced-slide-inner-wrap {
    background-size: 100% auto !important;
    background-position: right top !important;
}

/* Home main slider — three checkmark links: no icon animation/background shift; hover/focus title + icon #3cb9fd */
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox .kt-blocks-info-box-media,
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox .kadence-info-box-icon-container,
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox svg {
    transition: none !important;
    animation: none !important;
}
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox a.kt-blocks-info-box-link-wrap .kt-blocks-info-box-title,
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox a.kt-blocks-info-box-link-wrap .kadence-info-box-icon-inner-container {
    transition: color 0.2s ease !important;
}
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox a.kt-blocks-info-box-link-wrap:hover .kadence-info-box-icon-inner-container,
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox a.kt-blocks-info-box-link-wrap:focus .kadence-info-box-icon-inner-container,
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox a.kt-blocks-info-box-link-wrap:hover .kt-blocks-info-box-title,
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox a.kt-blocks-info-box-link-wrap:focus .kt-blocks-info-box-title {
    color: #3cb9fd !important;
}
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox a.kt-blocks-info-box-link-wrap:hover svg,
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox a.kt-blocks-info-box-link-wrap:focus svg {
    fill: #3cb9fd !important;
    stroke: #3cb9fd !important;
}
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox a.kt-blocks-info-box-link-wrap:hover .kadence-info-box-icon-container,
body.page-id-3863 .lpa-slider-icon-row .wp-block-kadence-infobox a.kt-blocks-info-box-link-wrap:focus .kadence-info-box-icon-container {
    transform: none !important;
}
body.page-id-3863 .lpa-slider-icon-row .kt-info-box3863_7a29d7-4e a.kt-blocks-info-box-link-wrap:hover .kt-blocks-info-box-media,
body.page-id-3863 .lpa-slider-icon-row .kt-info-box3863_7a29d7-4e a.kt-blocks-info-box-link-wrap:focus .kt-blocks-info-box-media {
    background: rgba(255, 255, 255, 0) !important;
    border-color: #eeeeee !important;
}
body.page-id-3863 .lpa-slider-icon-row .kt-info-box3863_18abd5-a4 a.kt-blocks-info-box-link-wrap:hover .kt-blocks-info-box-media,
body.page-id-3863 .lpa-slider-icon-row .kt-info-box3863_18abd5-a4 a.kt-blocks-info-box-link-wrap:focus .kt-blocks-info-box-media,
body.page-id-3863 .lpa-slider-icon-row .kt-info-box3863_2c2e42-1e a.kt-blocks-info-box-link-wrap:hover .kt-blocks-info-box-media,
body.page-id-3863 .lpa-slider-icon-row .kt-info-box3863_2c2e42-1e a.kt-blocks-info-box-link-wrap:focus .kt-blocks-info-box-media {
    background: rgba(227, 231, 239, 0) !important;
    border-color: #eeeeee !important;
}

/* Testimonial slideshow layout fix (March 21 2026) */
.lpa-testimonial-slideshow {
    overflow: hidden !important;
    position: relative !important;
}
.lpa-testimonial-track {
    display: flex !important;
    flex-wrap: nowrap !important;
}
.lpa-testimonial-slide {
    flex: 0 0 100% !important;
    min-width: 0 !important;
}

/*
 * Home (3863) testimonials slideshow only — portrait phone: stack headline, body copy, and map
 * full width (not side-by-side). Scoped: page + .lpa-home-testimonials; max-width 767px + portrait only.
 * Does not affect tablet/desktop or phone landscape.
 */
@media (max-width: 767px) and (orientation: portrait) {
	body.page-id-3863 .lpa-testimonial-slideshow.lpa-home-testimonials .lpa-testimonial-slide {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 1.25rem !important;
	}
	body.page-id-3863 .lpa-testimonial-slideshow.lpa-home-testimonials .lpa-testimonial-text,
	body.page-id-3863 .lpa-testimonial-slideshow.lpa-home-testimonials .lpa-testimonial-map {
		flex: none !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}
	body.page-id-3863 .lpa-testimonial-slideshow.lpa-home-testimonials .lpa-testimonial-map {
		min-height: 0 !important;
	}
}
/* Testimonial Read More button — matches site button standard (March 21 2026) */
.lpa-testimonial-readmore {
    display: inline-block;
    margin-top: 12px;
    padding: 8px 18px;
    background: transparent;
    color: #015fbf !important;
    text-decoration: none !important;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: normal;
    line-height: 17px;
    border: 2px solid #015fbf;
    border-radius: 4px;
    transition: all 0.3s ease;
}
.lpa-testimonial-readmore:hover {
    background: #015fbf;
    color: #fff !important;
    border-color: #015fbf;
}

/* Homepage blue buttons — unified via .lpa-blue-button (March 21 2026) */
/* Normal state: invisible border to prevent layout shift on hover */
.lpa-blue-button {
    border: 2px solid transparent !important;
    transition: all 0.3s ease;
}
/* Hover/active: outlined with blue text, clear background */
.lpa-blue-button:hover,
.lpa-blue-button:active {
    background: transparent !important;
    color: #015fbf !important;
    border-color: #015fbf !important;
}

/* Override: blue buttons on blue background — invert to white fill (March 21 2026) */
.kb-row-layout-id3863_a31726-74 .lpa-blue-button:hover,
.kb-row-layout-id3863_a31726-74 .lpa-blue-button:active {
    background: #fff !important;
    color: #015fbf !important;
    border: 2px solid #fff !important;
}

/* Fibreplate button on blue bar — white border in normal state (March 21 2026) */
.kb-row-layout-id3863_a31726-74 .lpa-blue-button {
    border: 2px solid #fff !important;
}

/* Home (3863) CTA labels in case-study panel: phone widths only (<=767), Book a Meeting + Contact Us */
@media (max-width: 767px) {
    html body.page-id-3863 .lpa-button-row-1 {
        flex-wrap: wrap !important;
    }
    html body.page-id-3863 .lpa-button-row-1 > .wp-block-column:has(.kb-btn3863_bfd813-e0),
    html body.page-id-3863 .lpa-button-row-1 > .wp-block-column:has(.kb-btn3863_85cbc5-36) {
        flex-basis: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    html body.page-id-3863 .kb-btns3863_cd188d-69,
    html body.page-id-3863 .kb-btns3863_27bf22-b7 {
        display: flex !important;
        justify-content: center !important;
        width: 100% !important;
    }
    html body.page-id-3863 .kb-btns3863_cd188d-69 {
        margin-top: -42px !important;
    }
    html body.page-id-3863 .kb-btns3863_27bf22-b7 {
        margin-top: -12px !important;
    }
    html body.page-id-3863 .kb-btn3863_bfd813-e0,
    html body.page-id-3863 .kb-btn3863_85cbc5-36 {
        font-size: 20px !important;
        width: calc(338px * 0.8) !important;
        max-width: calc(338px * 0.8) !important;
    }
    html body.page-id-3863 .kb-btn3863_bfd813-e0 .kt-btn-inner-text,
    html body.page-id-3863 .kb-btn3863_85cbc5-36 .kt-btn-inner-text {
        font-size: 20px !important;
    }
}

/* --- Breadcrumbs: Below Hero, Before Content (static pages only; single posts = title-only hero) --- */
.page-hero-section .entry-hero-container-inner {
    overflow: visible !important;
}
.page-hero-section .entry-header {
    position: relative;
}
.page-hero-section .entry-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(33px + 30px);
    background: rgba(0, 0, 0, 0.50);
    z-index: 1;
    pointer-events: none;
}
.page-hero-section .entry-header .kadence-breadcrumbs {
    position: absolute;
    top: calc(100% + 20px);
    left: 0;
    right: 0;
    background: #f5f5f5;
    padding: 8px 10px;
    font-size: 16px;
    color: #555;
    z-index: 10;
}
.page-hero-section .entry-header .kadence-breadcrumbs a {
    color: #015fbf;
    text-decoration: none;
}
.page-hero-section .entry-header .kadence-breadcrumbs a:hover {
    text-decoration: underline;
}

/* Single post heroes: mirror page hero title band (::after) — posts use .post-hero-section only; Kadence prints content-width-narrow so .hero-container is narrower than pages without this override. Scoped to body.single-post; does not affect /about/ etc. */
body.single-post .post-hero-section .entry-hero-container-inner {
    overflow: visible !important;
}
body.single-post .post-hero-section .entry-header {
    position: relative;
}
body.single-post .post-hero-section .entry-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(33px + 30px);
    background: rgba(0, 0, 0, 0.50);
    z-index: 1;
    pointer-events: none;
}

/* Blog posts index (/news-and-events/): mirror .page-hero-section title band (::after). Scoped body.blog + .post-archive-hero-section — does not affect static pages (.page-hero-section) or single posts (.post-hero-section). */
body.blog .post-archive-hero-section .entry-hero-container-inner {
    overflow: visible !important;
}
body.blog .post-archive-hero-section .entry-header {
    position: relative;
}
body.blog .post-archive-hero-section .entry-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(33px + 30px);
    background: rgba(0, 0, 0, 0.50);
    z-index: 1;
    pointer-events: none;
}
/* Match normal page hero max-width (.content-width-normal on pages vs .content-width-narrow on singles). */
body.single-post.content-width-narrow .entry-hero.post-hero-section .hero-container.site-container {
    max-width: var(--global-content-width);
}

/* Single posts: Other News / Kadence .entry-related — restore inner padding (v1.0.25 wrongly zeroed .entry-related-inner-content), collapse only the strip between band and #colophon (not nav/header). */
body.single-post:not(.home) .content-area,
body.single-post:not(.home) #primary.content-area {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}
body.single-post:not(.home) #primary .site-main,
body.single-post:not(.home) #primary .content-wrap {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}
body.single-post:not(.home) #colophon.site-footer {
	margin-top: 0 !important;
}
/* Outer band: no extra margin below (Kadence default --global-lg-spacing); do not strip inner rhythm. */
body.single-post .entry-related {
	margin-bottom: 0 !important;
}
body.single-post .entry-related.alignfull {
	margin-bottom: 0 !important;
}
/* Match kadence/assets/css/related-posts.min.css — v1.0.25 padding-bottom:0 on these selectors removed comfortable inner spacing. */
body.single-post .entry-related-inner-content {
	padding-top: calc(var(--global-xl-spacing) * 0.5) !important;
	padding-bottom: calc(var(--global-xl-spacing) * 0.5) !important;
	padding-left: var(--global-sm-spacing) !important;
	padding-right: var(--global-sm-spacing) !important;
	margin-bottom: 0 !important;
}
body.single-post .entry-related-inner {
	margin-bottom: 0 !important;
}
@media screen and (min-width: 1025px) {
	body.single-post.content-width-narrow .entry-related-inner-content {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* Posts index: same footer gap sources as singles when .blog applies; no .entry-related on typical “posts page” layouts — only collapse outer #primary/content-wrap tail. */
body.blog:not(.home) .content-area,
body.blog:not(.home) #primary.content-area {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}
body.blog:not(.home) #primary .site-main,
body.blog:not(.home) #primary .content-wrap {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}
body.blog:not(.home) #colophon.site-footer {
	margin-top: 0 !important;
}

/* Authorship UI only: hide loop/related bylines if any plugin or legacy meta still outputs .posted-by (does not alter body copy). */
body.single-post .entry-related .posted-by,
body.single-post .entry-related .author.vcard,
body.blog:not(.home) .content-area .posted-by,
body.blog:not(.home) .content-area .entry-meta .author.vcard,
body.archive:not(.home) .content-area .posted-by,
body.archive:not(.home) .content-area .entry-meta .author.vcard {
	display: none !important;
}

.entry-hero.page-hero-section + .content-area {
    margin-top: 106px !important;
}

/* --- System Architectures: Three Circle Info Cards --- */
.sa-info-cards {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 0;
    margin: 50px auto;
    max-width: 100%;
    padding: 0;
}
.sa-card {
    flex: 0 0 464px;
    width: 464px;
    height: 464px;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    padding: 70px 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
    position: relative;
    margin: 0 -25px;
    border: 6px solid rgba(255,255,255,0.8);
    box-shadow: 0 0 0 6px currentColor;
}
.sa-card-gold {
    background: #f5cc6a;
    color: #e8b83a;
    z-index: 3;
}
.sa-card-lightblue {
    background: #b8ddf5;
    color: #8ec8e8;
    z-index: 2;
}
.sa-card-blue {
    background: #a8b8dc;
    color: #8a9cc8;
    z-index: 1;
}
.sa-card .sa-card-inner {
    position: relative;
    z-index: 5;
    width: 100%;
    max-width: 100%;
}
.sa-card-blue .sa-card-inner {
    margin-top: -20px;
}
/* Circle-card titles + subtitles: System Architectures (3274) only — not global .sa-card (avoids any reuse bleed; beats sitewide #primary p 25px !important). */
body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card h4 {
    color: #1a2a44;
    font-size: 21px !important;
    font-weight: 700;
    margin: 0 0 8px 0;
    line-height: 1 !important;
}
body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card p.sa-subtitle {
    color: #1a2a44;
    font-size: 21px !important;
    font-weight: 600;
    margin: 6px 0 0 0 !important;
    line-height: 1.3 !important;
}
/*
 * Circle-card bullet lists only (Modular Architecture / System-Level Configurations / Configuration Range).
 * Must beat body:not(.home) #primary .entry-content ul li { font-size: 25px !important; } — same #primary chain + higher class count + !important.
 * Nav/menus do not use .sa-info-cards inside #primary .entry-content.
 */
body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card ul {
    list-style: disc;
    text-align: left;
    padding-left: 16px;
    margin: 0 !important;
    padding-top: 0 !important;
}
body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card ul li {
    color: #1a2a44;
    font-size: 17px !important;
    line-height: 1.45 !important;
    margin-bottom: 2px;
}
@media (max-width: 900px) {
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card {
        flex: 0 0 auto;
        margin: 0;
        width: min(92vw, 380px);
        max-width: 380px;
        height: min(92vw, 380px);
        aspect-ratio: 1 / 1;
    }
}

/* System Architectures (3274) only: tp/pls keep circles round by widening lines and tuning spacing. */
@media (min-width: 768px) and (max-width: 1366px) and (orientation: portrait),
       (orientation: landscape) and (max-height: 520px) and (max-width: 1000px) {
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card {
        flex: 0 0 auto;
        width: min(94vw, 440px);
        max-width: 440px;
        height: min(94vw, 440px) !important;
        aspect-ratio: 1 / 1;
        padding: 52px 20px;
    }
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card h4 {
        margin: 0 0 6px 0;
        line-height: 1.05 !important;
    }
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card p.sa-subtitle {
        margin: 4px 0 0 0 !important;
        line-height: 1.22 !important;
    }
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card ul {
        width: fit-content;
        max-width: 100%;
        margin: 0 auto !important;
        padding-left: 14px;
    }
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card ul li {
        font-size: 16px !important;
        line-height: 1.32 !important;
        margin-bottom: 0;
    }
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card-blue .sa-card-inner {
        margin-top: -4px;
    }
}

/* System Architectures (3274) phone portrait only: wider lines before aggressive font reduction. */
@media (max-width: 767px) and (orientation: portrait) {
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card {
        flex: 0 0 auto;
        width: min(94vw, 392px);
        max-width: 392px;
        height: min(94vw, 392px) !important;
        aspect-ratio: 1 / 1;
        padding: 40px 20px;
    }
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card h4 {
        font-size: 20px !important;
        margin: 0 0 4px 0;
        line-height: 1.04 !important;
    }
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card p.sa-subtitle {
        font-size: 18px !important;
        margin: 2px 0 0 0 !important;
        line-height: 1.18 !important;
    }
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card ul {
        width: fit-content;
        max-width: 100%;
        margin: 0 auto !important;
        padding-left: 13px;
    }
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card ul li {
        font-size: 16px !important;
        line-height: 1.3 !important;
        margin-bottom: 0;
    }
    body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card-blue .sa-card-inner {
        margin-top: -2px;
    }
}

/* --- System Architectures: Dark Blue Brand Band --- */
.sa-dark-band {
    background: #0a1e3d;
    padding: 50px 40px;
    text-align: center;
    margin: 40px -40px;
    position: relative;
}
.sa-dark-band .sa-band-logo {
    max-width: 220px;
    margin-bottom: 15px;
    display: block;
}
.sa-dark-band .sa-band-text {
    color: #ffffff;
    font-size: 18px !important;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    line-height: 1.4;
    margin: 0;
}
.sa-dark-band .sa-band-image {
    max-width: 100%;
    margin-top: 30px;
    border-radius: 4px;
}
.sa-dark-band .sa-band-video {
    max-width: 100%;
    margin-top: 30px;
    border-radius: 4px;
}

body.page-id-3292 .entry-content .wp-block-image {
    clear: both;
    position: relative;
}

/* --- Industrial hub (3292): sector group — contain floats; CQ column so “50%” = half content width --- */
body.page-id-3292 .iw-hub-industry-sections.wp-block-group,
body.page-id-3292 .wp-block-group.iw-hub-industry-sections {
    display: flow-root !important;
    max-width: var(--global-content-width, 1290px);
    margin-left: auto;
    margin-right: auto;
    container-type: inline-size;
    container-name: lpa-iw-hub-col;
}

/* Inner wrapper (Core / themes): must be full width of hub or % widths resolve against the wrong box */
body.page-id-3292 .iw-hub-industry-sections .wp-block-group__inner-container {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

/* --- Industrial hub (3292): sector row photos — half hub column × 400px (.iw-hub-industry-sections only) --- */
/*
 * WP 6.x: <div class="wp-block-image lpa-iw-sector-featured"><figure class="alignleft|alignright"> — figure often lacks .wp-block-image.
 * Core uses .wp-block-image .alignleft { display: table } so the floated figure shrink-wraps to intrinsic image width (639px vs 540px, etc.).
 * Set width on the floated figure (not only the wrapper) so text still wraps beside it; override display:table → block.
 */
/* Gutters: float-left image needs space to the right of the photo; float-right needs space to the left (matches core intent). */
body.page-id-3292 .iw-hub-industry-sections .wp-block-image.lpa-iw-sector-featured figure.alignleft {
    width: 50% !important;
    max-width: 50% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
    margin: 0.5em 1.5rem 0.75em 0 !important;
    flex: 0 0 50% !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
}

body.page-id-3292 .iw-hub-industry-sections .wp-block-image.lpa-iw-sector-featured figure.alignright {
    width: 50% !important;
    max-width: 50% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
    margin: 0.5em 0 0.75em 1.5rem !important;
    flex: 0 0 50% !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
}

/* Legacy markup: single figure.wp-block-image */
body.page-id-3292 .iw-hub-industry-sections figure.wp-block-image.alignleft {
    width: 50% !important;
    max-width: 50% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
    margin: 0.5em 1.5rem 0.75em 0 !important;
    flex: 0 0 50% !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
}

body.page-id-3292 .iw-hub-industry-sections figure.wp-block-image.alignright {
    width: 50% !important;
    max-width: 50% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
    margin: 0.5em 0 0.75em 1.5rem !important;
    flex: 0 0 50% !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
}

body.page-id-3292 .iw-hub-industry-sections figure.wp-block-image.alignwide,
body.page-id-3292 .iw-hub-industry-sections figure.wp-block-image.alignfull {
    width: 50% !important;
    max-width: 50% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    flex: 0 0 50% !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
}

/* NOTE: Do not use @container (min-width: 0px) + 50cqi here — it always matches; if the hub group’s
   used inline size collapses (e.g. flex item sizing), 50cqi → ~0 and body copy becomes one character wide. */

body.page-id-3292 .iw-hub-industry-sections .wp-block-image.lpa-iw-sector-featured img,
body.page-id-3292 .iw-hub-industry-sections figure.wp-block-image img {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 400px !important;
    min-height: 400px !important;
    object-fit: cover;
    display: block;
}

/* --- Industrial hub (3292): sector copy — no vertical blue bars; horizontal rules between rows --- */
body.page-id-3292:not(.home) #primary .entry-content .iw-hub-industry-sections h2.wp-block-heading {
    border-left: none !important;
    padding-left: 0 !important;
    overflow: visible !important;
}
body.page-id-3292:not(.home) #primary .entry-content .iw-hub-industry-sections h2 ~ p {
    border-left: none !important;
    padding-left: 0 !important;
    overflow: visible !important;
    /* Match standard main-column body copy (not the 20px hub h2~p banded exception below). */
    font-size: 25px !important;
    line-height: 1.44 !important;
    margin-top: 0 !important;
    margin-bottom: 19px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
body.page-id-3292 .iw-hub-industry-sections hr.lpa-iw-hub-sector-rule {
    clear: both !important;
    border: 0 !important;
    border-top: 2px solid #888 !important;
    margin: 0 0 20px 0 !important;
    padding: 0 !important;
    height: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}
/*
 * Hub filter wraps each sector in .lpa-iw-sector-profile (flow-root).
 * Space above the following <hr>: margin-bottom on the wrapper (beats theme .wp-block-group padding resets; does not alter <hr> rule).
 */
body.page-id-3292:not(.home) #primary .entry-content .iw-hub-industry-sections .lpa-iw-sector-profile.wp-block-group {
    display: flow-root !important;
    margin-top: 0 !important;
    margin-bottom: 15px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* --- Industrial hub (3292): four amber tiles — own row below sector floats (guards flex layout on .entry-content) --- */
body.page-id-3292 #primary .entry-content > .wp-block-html:has(.industrial-benefits-row) {
    clear: both !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    flex: 0 0 auto !important;
    align-self: stretch !important;
    box-sizing: border-box;
}

body.page-id-3292 .entry-content h2 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 4px;
    padding-bottom: 8px;
    overflow: hidden;
    border-left: 8px solid #015fbf;
    padding-left: 16px;
}

/* --- H2 headings clear floated images — always full width below --- */
body.page-child .entry-content h2 {
    clear: both;
}
/* --- Subpage h2 and h3 font sizes (excludes homepage) --- */
body:not(.home) .entry-content h2 {
    font-size: 28px !important;
}
body:not(.home) .entry-content h3 {
    font-size: 24px !important;
}
/* --- Bullet lists: contain beside floated images --- */
body.page-child .entry-content ul,
body.page-child .entry-content ol {
    overflow: hidden;
}

/* --- MBR Fundamentals (3272): H2s flow beside floated image, page-specific exception --- */
body.page-id-3272 .entry-content h2,
body.page-id-3276 .entry-content h2,
body.page-id-3292 .entry-content h2,
body.page-id-3296 .entry-content h2,
body.page-id-3298 .entry-content h2,
body.page-id-3300 .entry-content h2,
body.page-id-3311 .entry-content h2,
body.page-id-3313 .entry-content h2 {
    clear: none;
}

/* --- Content-area bullet lists only (20% above prior 1.2 test) --- */
#primary .entry-content ul.wp-block-list li,
#primary .entry-content ul.wp-block-list li p {
    line-height: 1.44 !important;
}

/* --- Non-home pages: tighten spacing before/after content bullet lists --- */
body:not(.home) #primary .entry-content ul.wp-block-list {
    margin-top: 0 !important;
    margin-bottom: 19px !important;
}

/* --- Non-home: main column paragraphs = 25px (excludes leadership role lines; see exceptions below) --- */
body:not(.home) #primary .entry-content p:not(.lpa-about-person__title) {
    font-size: 25px !important;
    line-height: 1.44 !important;
    margin-bottom: 19px !important;
}

body:not(.home) #primary .entry-content ul li,
body:not(.home) #primary .entry-content ol li {
    font-size: 25px !important;
}

/* --- Industrial Wastewater hub (3292): banded h2-adjacent copy stays 20px (explicit exception) --- */
body.page-id-3292:not(.home) #primary .entry-content h2 ~ p {
    font-size: 20px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 6px;
    padding-bottom: 6px;
    overflow: hidden;
    border-left: 8px solid #015fbf;
    padding-left: 16px;
}

/* --- Industrial hub (3292): floated sector copy — inside group only (guards hub intro + benefits; not nav) --- */
body.page-id-3292 .iw-hub-industry-sections {
    /* flow-root + CQ live on .iw-hub-industry-sections.wp-block-group above; keep overflow visible */
    display: flow-root !important;
    max-width: var(--global-content-width, 1290px);
    margin-left: auto;
    margin-right: auto;
    overflow: visible;
}
body.page-id-3292 .iw-hub-industry-sections::after {
    content: "";
    display: table;
    clear: both;
}
body.page-id-3292:not(.home) #primary .entry-content .iw-hub-industry-sections h2.wp-block-heading {
    border-left: none !important;
    padding-left: 0 !important;
    overflow: visible !important;
    text-align: left !important;
}
body.page-id-3292:not(.home) #primary .entry-content .iw-hub-industry-sections h2 ~ p {
    border-left: none !important;
    padding-left: 0 !important;
    overflow: visible !important;
}

/* Hub 3292 only: sector teaser “Learn more ▸” links — 21px; does not touch teaser body <p> or other pages. */
body.page-id-3292:not(.home) #primary .entry-content .iw-hub-industry-sections a.block-link {
    font-size: 21px !important;
}

/* --- Municipal benefit tiles: small copy inside main content --- */
body:not(.home) #primary .entry-content .municipal-benefits-row .municipal-benefit p {
    font-size: 14px !important;
    line-height: 1.5 !important;
}

/* --- Municipal blue tiles: Applications hub 3289 + Technology 3272/3276/3278/3280 only (not other pages with .municipal-benefit) --- */
body.page-id-3289:not(.home) #primary .entry-content .municipal-benefits-row,
body.page-id-3272:not(.home) #primary .entry-content .municipal-benefits-row,
body.page-id-3276:not(.home) #primary .entry-content .municipal-benefits-row,
body.page-id-3278:not(.home) #primary .entry-content .municipal-benefits-row,
body.page-id-3280:not(.home) #primary .entry-content .municipal-benefits-row {
    gap: 4px !important;
}
body.page-id-3289:not(.home) #primary .entry-content .municipal-benefit,
body.page-id-3272:not(.home) #primary .entry-content .municipal-benefit,
body.page-id-3276:not(.home) #primary .entry-content .municipal-benefit,
body.page-id-3278:not(.home) #primary .entry-content .municipal-benefit,
body.page-id-3280:not(.home) #primary .entry-content .municipal-benefit {
    border-radius: 12px !important;
    text-align: left !important;
    box-sizing: border-box !important;
}
body.page-id-3272:not(.home) #primary .entry-content .municipal-benefit h3,
body.page-id-3276:not(.home) #primary .entry-content .municipal-benefit h3,
body.page-id-3278:not(.home) #primary .entry-content .municipal-benefit h3,
body.page-id-3280:not(.home) #primary .entry-content .municipal-benefit h3 {
    text-align: center !important;
}
/* Municipal Wastewater hub (3289) only: blue tile headlines */
body.page-id-3289:not(.home) #primary .entry-content .municipal-benefit h3 {
    text-align: center !important;
    font-size: 20px !important;
    font-weight: 700 !important;
}
body.page-id-3289:not(.home) #primary .entry-content .municipal-benefits-row .municipal-benefit p,
body.page-id-3272:not(.home) #primary .entry-content .municipal-benefits-row .municipal-benefit p,
body.page-id-3276:not(.home) #primary .entry-content .municipal-benefits-row .municipal-benefit p,
body.page-id-3278:not(.home) #primary .entry-content .municipal-benefits-row .municipal-benefit p,
body.page-id-3280:not(.home) #primary .entry-content .municipal-benefits-row .municipal-benefit p {
    font-size: 21px !important;
    line-height: 1.5 !important;
    text-align: left !important;
}

/* --- Non-home pages: tighten paragraph-to-list transition spacing --- */
body:not(.home) #primary .entry-content p + ul.wp-block-list,
body:not(.home) #primary .entry-content p + ol.wp-block-list {
    margin-top: 0 !important;
}

/* --- Non-home pages: reduce bottom margin on paragraph right before a list --- */
body:not(.home) #primary .entry-content p:has(+ ul.wp-block-list),
body:not(.home) #primary .entry-content p:has(+ ol.wp-block-list) {
    margin-bottom: 8px !important;
}

/* Client testimonials page: intro copy above grid — full width like other body copy (no centered max-width inset) */
body.page-id-3323 #primary .entry-content .lpa-testimonials-page-intro {
    margin: 0 0 28px;
    padding-left: 0;
    max-width: none;
}
body.page-id-3323 #primary .entry-content .lpa-testimonials-page-intro p {
    font-size: 25px;
    line-height: 1.6;
    margin: 0 0 24px;
    padding-left: 0;
    text-indent: 0;
    color: #24364a;
}
body.page-id-3323 #primary .entry-content .lpa-testimonials-page-intro p:last-child {
    margin-bottom: 0;
}

/* Client testimonials page: two independent columns (flex, not CSS grid rows) */
body.page-id-3323 #primary .entry-content .lpa-testimonials-grid {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 28px;
    margin: 22px 0 26px;
}

body.page-id-3323 #primary .entry-content .lpa-testimonials-col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

body.page-id-3323 #primary .entry-content .lpa-testimonial-card {
    border: 1px solid #015fbf;
    border-radius: 10px;
    background: #ffffff;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 50, 100, 0.06);
    width: 100%;
}

body.page-id-3323 #primary .entry-content .lpa-testimonial-card__body {
    padding: 22px 22px 14px;
}

/* When the blue meta block is nested inside the body (markup), body bottom padding sat below the blue band as a white gap — remove it so the card border matches the blue height. Does not affect cards where meta is a sibling of body (correct structure). */
body.page-id-3323 #primary .entry-content .lpa-testimonial-card__body:has(> .lpa-testimonial-card__meta) {
    padding-bottom: 0;
}

body.page-id-3323 #primary .entry-content .lpa-testimonial-card__title {
    margin: 0 0 12px;
    font-size: 24px;
    line-height: 1.25;
    font-weight: 700;
    color: #015fbf;
}

body.page-id-3323 #primary .entry-content .lpa-testimonial-card__quote {
    margin: 0;
    color: #24364a;
    line-height: 1.6;
    font-size: 25px;
}

/* “Proactive Support Improves Performance” (Ana Villalobos): four quote paragraphs — +0.2% line-height vs 1.6; !important beats block/Kadence inline. Documented: reminders-log.md. */
body.page-id-3323 #primary .entry-content .lpa-testimonials-col:last-child .lpa-testimonial-card:nth-child(2) .lpa-testimonial-card__quote {
    line-height: 1.6032 !important;
}

body.page-id-3323 #primary .entry-content .lpa-testimonial-card__meta {
    padding: 14px 22px 16px;
    background: #015fbf;
    color: #ffffff;
}

/* Last card on page (Ana Villalobos): meta bottom padding 7px not 16px. Documented: reminders-log.md. */
body.page-id-3323 #primary .entry-content .lpa-testimonials-col:last-child .lpa-testimonial-card:last-child .lpa-testimonial-card__meta {
	padding-bottom: 7px !important;
}

/* Left column only: less white space in the card *above* the blue bar (body bottom padding), not padding inside the blue */
body.page-id-3323 #primary .entry-content .lpa-testimonials-col:first-child .lpa-testimonial-card:has(> .lpa-testimonial-card__body + .lpa-testimonial-card__meta) > .lpa-testimonial-card__body {
    padding-bottom: 8px; /* default 14px minus 6px */
}

/* Left column + meta nested in body: pull quote block 6px closer to blue without changing blue bar padding */
body.page-id-3323 #primary .entry-content .lpa-testimonials-col:first-child .lpa-testimonial-card__body:has(> .lpa-testimonial-card__meta) > .lpa-testimonial-card__quote:last-of-type {
    margin-bottom: -6px;
}

/* Left column only: blue meta bars — less bottom padding than right column */
body.page-id-3323 #primary .entry-content .lpa-testimonials-col:first-child .lpa-testimonial-card__meta {
    padding-bottom: 6px;
}

body.page-id-3323 #primary .entry-content .lpa-testimonial-card__name {
    margin: 0 0 2px;
    color: #ffffff;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 700;
}

body.page-id-3323 #primary .entry-content .lpa-testimonial-card__role {
    margin: 0;
    color: #d9ecff;
    font-size: 16px;
    line-height: 1.45;
}

@media (max-width: 900px) {
    body.page-id-3323 #primary .entry-content .lpa-testimonials-grid {
        flex-direction: column;
    }
    /* Flatten columns; original row-major mobile order: Todd, John, Percy, Dale, Jeff, Ana */
    body.page-id-3323 #primary .entry-content .lpa-testimonials-col {
        display: contents;
    }
    body.page-id-3323 #primary .entry-content .lpa-testimonials-col:first-child .lpa-testimonial-card:nth-child(1) {
        order: 1;
    }
    body.page-id-3323 #primary .entry-content .lpa-testimonials-col:first-child .lpa-testimonial-card:nth-child(2) {
        order: 2;
    }
    body.page-id-3323 #primary .entry-content .lpa-testimonials-col:first-child .lpa-testimonial-card:nth-child(3) {
        order: 3;
    }
    body.page-id-3323 #primary .entry-content .lpa-testimonials-col:last-child .lpa-testimonial-card:nth-child(1) {
        order: 4;
    }
    body.page-id-3323 #primary .entry-content .lpa-testimonials-col:first-child .lpa-testimonial-card:nth-child(4) {
        order: 5;
    }
    body.page-id-3323 #primary .entry-content .lpa-testimonials-col:last-child .lpa-testimonial-card:nth-child(2) {
        order: 6;
    }
}

/* --- Contact page (154): contact info bar — Kadence column 154_d4b338-3b (shadow/radius live on .kt-inside-inner-col + ::before; not header/nav) --- */
body.page-id-154 #primary .entry-content .kadence-column154_d4b338-3b {
	align-self: stretch;
	display: flex;
	flex-direction: column;
	min-height: 100%;
}
body.page-id-154 #primary .entry-content .kadence-column154_d4b338-3b > .kt-inside-inner-col,
body.page-id-154 #primary .entry-content .kadence-column154_d4b338-3b > .kt-inside-inner-col::before {
	border-radius: 12px !important;
}
body.page-id-154 #primary .entry-content .kadence-column154_d4b338-3b > .kt-inside-inner-col {
	box-shadow: none !important;
	border: 1px solid #666666 !important;
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: var(--global-kb-spacing-md, 2rem) !important;
	padding-bottom: max(0px, calc(var(--global-kb-spacing-md, 2rem) - 30px)) !important;
	padding-left: var(--global-kb-spacing-md, 2rem) !important;
	padding-right: var(--global-kb-spacing-md, 2rem) !important;
}

/* Contact page (154): contact info bar — paragraphs in rounded column only. Must beat
   body:not(.home) #primary .entry-content p { 25px !important }: same :not(.home) chain + column class + !important. */
body.page-id-154:not(.home) #primary .entry-content .kadence-column154_d4b338-3b p:not(.lpa-about-person__title) {
	font-size: 21px !important;
}

/* --- Contact page (154): hero band — same min-height as default subpages (child § “Sub Pages” 360px; beats Kadence inline 200px) --- */
body.page-id-154 .entry-hero.page-hero-section .entry-header,
body.page-id-154 .entry-hero.page-hero-section .entry-hero-container-inner {
	min-height: 360px !important;
}

/* Contact page (154): form column — remove palette8 gray; left rule on inner wrap so Kadence padding sits between rule and fields */
body.page-id-154 #primary .entry-content .kadence-column154_b55e3c-16 > .kt-inside-inner-col,
body.page-id-154 #primary .entry-content .kadence-column154_b55e3c-16 > .kt-inside-inner-col::before {
	background-color: transparent !important;
	background: transparent !important;
}
body.page-id-154 #primary .entry-content .kadence-column154_b55e3c-16 > .kt-inside-inner-col {
	border-left: 1px solid #666666 !important;
	box-sizing: border-box;
}

/* --- Contact page (154): map — embed place card can’t be moved in DOM; clip top of iframe + ::after panel at bottom:50px (same address); not header/nav --- */
body.page-id-154 .kb-google-maps-container154_e45b3b-54 {
	max-width: calc(100% - 40px);
	width: 100%;
	height: 799px;
	margin-top: 47px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	overflow: hidden;
	position: relative;
	/* Kadence grayscale on container would gray the ::after panel — scope filter to iframe only */
	filter: none;
}

body.page-id-154 .kb-google-maps-container154_e45b3b-54 iframe {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	border: 0;
	display: block;
	filter: grayscale(100%);
	/* !important: Kadence / block CSS can set iframe transform; without it edits appear to “do nothing” on staging */
	transform: translate(0, -30px) scaleX(1.1625) !important;
	transform-origin: center center !important;
	/* Hide Google’s fixed top-left place card; tune if Google changes UI */
	clip-path: inset(105px 0 0 0) !important;
}

/* Address panel (replaces clipped embed card); not interactive — use map or page contact row for links */
body.page-id-154 .kb-google-maps-container154_e45b3b-54::after {
	content: "525 Glover Road, Hannon, ON\A Canada L0R 1P0";
	white-space: pre-line;
	position: absolute;
	left: 50%;
	bottom: 50px;
	transform: translateX(-50%);
	max-width: min(320px, calc(100% - 2rem));
	padding: 14px 18px;
	background: #ffffff;
	border-radius: 8px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.22);
	font-size: 14px;
	line-height: 1.45;
	color: #3c4043;
	z-index: 2;
	pointer-events: none;
	font-family: inherit;
	text-align: left;
}

/* --- About page (153): hero — focal point between prior “too high” / “too low” tries; +100px photo band vs theme 360px --- */
body.page-id-153 .entry-hero.page-hero-section .entry-header {
    min-height: 460px !important; /* child theme subpage default 360px + 100px */
}

body.page-id-153 .entry-hero.page-hero-section .entry-hero-container-inner {
    min-height: 460px !important;
}

body.page-id-153.content-title-style-above .page-hero-section .entry-hero-container-inner {
    background-position: center 38% !important;
}

@media (min-width: 1200px) {
    body.page-id-153.content-title-style-above .page-hero-section .entry-hero-container-inner {
        background-position: center 40% !important;
    }
}

/* ≥1600px only: focal point ~20% higher in frame than prior 42% (42 × 0.8 ≈ 34%) */
@media (min-width: 1600px) {
    body.page-id-153.content-title-style-above .page-hero-section .entry-hero-container-inner {
        background-position: center 34% !important;
    }
}

/* --- About page (153): Kadence uses content-width-fullwidth on this page — box #primary inner container so copy and images match standard content width --- */
body.page-id-153 #primary .content-container.site-container {
    max-width: var(--global-content-width, 1290px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100%;
    box-sizing: border-box;
}

/* --- About page (153): team photos band — full-viewport white background + top rule; inner stays content width --- */
body.page-id-153 #primary .entry-content .lpa-about-team-band {
    position: relative;
    margin: 2.5rem 0 0;
    padding: 3.5rem 0 4rem;
    box-sizing: border-box;
    color: #444444;
    background: transparent;
    isolation: isolate;
}

body.page-id-153 #primary .entry-content .lpa-about-team-band::before {
    content: "";
    position: absolute;
    top: 0;
    right: auto;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    max-width: 100vw;
    z-index: 0;
    pointer-events: none;
    background: #ffffff;
    border-top: 2px solid #e0e0e0;
    box-sizing: border-box;
}

body.page-id-153 #primary .entry-content .lpa-about-team-inner {
    position: relative;
    z-index: 1;
    /* Match paragraph column: no second max-width/padding inside already-constrained #primary .content-container */
    max-width: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
    container-type: inline-size;
    container-name: lpa-about-team;
}

/* About (153): ~2px white hairline between leadership band and footer — overrides body:not(.home) .content-area margin-bottom */
body.page-id-153:not(.home) .content-area {
    margin-bottom: 2px !important;
}

body.page-id-153 #primary .entry.content-bg.single-entry {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.page-id-153 .lpa-about-team-heading {
    color: #004e7d !important;
    font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
    font-weight: 700 !important;
    margin: 0 0 1.75rem !important;
    text-align: left;
    border-left: 0 !important;
    padding-left: 0 !important;
}

body.page-id-153 .lpa-about-team-band .lpa-about-team-heading + .lpa-about-grid {
    margin-top: 0;
}

/*
 * Board: 3×1fr; tighter gaps (~⅔ less than prior 20px / 60px) so portraits read larger in the band.
 * Exec: 4 equal columns + modest gap (~⅔ less than prior space-between slack) — not header/nav.
 */
body.page-id-153 .lpa-about-grid--board,
body.page-id-153 .lpa-about-grid--exec {
    display: grid;
    list-style: none;
    padding: 0;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
}

body.page-id-153 .lpa-about-grid--board {
    justify-items: stretch;
    justify-content: stretch;
    column-gap: 8px;
    row-gap: 20px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 3.5rem;
}

body.page-id-153 .lpa-about-grid--exec {
    justify-items: stretch;
    column-gap: clamp(12px, 2.2vw, 28px);
    row-gap: 1.5rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    justify-content: stretch;
    margin-bottom: 0;
}

body.page-id-153 .lpa-about-grid--board .lpa-about-person {
    width: 100%;
    max-width: none;
}

body.page-id-153 .lpa-about-grid--board .lpa-about-person__frame {
    width: 100%;
    max-width: 100%;
}

body.page-id-153 .lpa-about-grid--board .lpa-about-person__img {
    aspect-ratio: auto;
    object-fit: unset;
    height: auto;
    width: 100%;
    display: block;
}

/* Default: portrait column width; exec grid uses full cell width below */
body.page-id-153 .lpa-about-person {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: fit-content;
    max-width: 100%;
    text-align: left;
    min-width: 0;
}

body.page-id-153 .lpa-about-grid--exec .lpa-about-person {
    width: 100%;
    max-width: 100%;
}

body.page-id-153 .lpa-about-person__frame {
    position: relative;
    margin: 0 0 12px;
    width: 250px;
    max-width: 100%;
    box-sizing: border-box;
}

body.page-id-153 .lpa-about-grid--exec .lpa-about-person__frame {
    width: 100%;
    max-width: 100%;
}

/* Full frame on portraits (revert: remove border/box-sizing below; restore L-corner via ::after — see reminders-log). */
body.page-id-153 .lpa-about-person__img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 6;
    object-fit: cover;
    vertical-align: top;
    background: #dfe8f2;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    box-sizing: border-box;
}

/* About (153): exec + strategic advisor grids — square portraits (board keeps portrait ratio above) */
body.page-id-153 .lpa-about-grid--exec .lpa-about-person__img {
    aspect-ratio: 1 / 1;
}

/* Pending headshots: light frame cue (exec grid only; not board / not nav) */
body.page-id-153 .lpa-about-grid--exec .lpa-about-person--photo-pending .lpa-about-person__frame {
    border: 1px dashed #c5ced9;
    box-sizing: border-box;
    border-radius: 12px;
}

body.page-id-153 .lpa-about-person__name {
    color: #004e7d !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    margin: 0 0 4px !important;
    line-height: 1.25 !important;
    max-width: 100%;
    text-align: left;
}

body.page-id-153 .lpa-about-person__title {
    margin: 0 !important;
    font-size: 0.95rem !important;
    line-height: 1.35 !important;
    color: #555555 !important;
    max-width: 100%;
    text-align: left;
}

/* Name + title block: consistent vertical space (About team band only; not nav) */
body.page-id-153 .lpa-about-team-band .lpa-about-person__meta {
    box-sizing: border-box;
    width: 100%;
    min-height: 90px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
}

@media (max-width: 782px) {
    body.page-id-153 .lpa-about-grid--board {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        justify-content: stretch;
    }
}

@media (max-width: 480px) {
    body.page-id-153 .lpa-about-grid--board {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    body.page-id-153 .lpa-about-grid--exec .lpa-about-person__frame {
        width: 100%;
        max-width: 100%;
    }
}

/* About (153) portrait phones only: board 1-up, exec 2-up. Keep 3-4 on tablet portrait + phone landscape. */
@media (max-width: 767px) and (orientation: portrait) {
    body.page-id-153 .lpa-about-grid--board {
        grid-template-columns: minmax(0, 1fr);
    }
    body.page-id-153 .lpa-about-grid--exec {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: clamp(10px, 3vw, 20px);
        justify-content: stretch;
    }
}

/* =============================================================================
 * Phone typography — EOF cascade tie-breaker (max-width: 767px only).
 * The first @media (767) block (~L1186) loses to later rules in THIS file
 * with equal/higher specificity + later source order, e.g.:
 * - body.page-id-3292… #primary .entry-content h2 ~ p (20px)
 * - body.page-id-3292… .iw-hub-industry-sections h2 ~ p (25px)
 * - body:not(.home) #primary .entry-content .municipal-benefits-row .municipal-benefit p (14px)
 * - body.page-id-3274… .sa-info-cards .sa-card ul li (17px)
 * Desktop/tablet >767px: unchanged (no rules outside this query).
 * ============================================================================= */
@media (max-width: 767px) {
	html body:not(.home) #primary .entry-content p:not(.lpa-about-person__title),
	html body:not(.home) #primary .entry-content ul li,
	html body:not(.home) #primary .entry-content ol li,
	html body:not(.home) #primary .entry-content ul.wp-block-list li,
	html body:not(.home) #primary .entry-content ul.wp-block-list li p {
		font-size: 19px !important;
		line-height: 1.52 !important;
	}
	/* Municipal hub tiles: prior 14px beat the first 767 block on specificity. */
	html body:not(.home) #primary .entry-content .municipal-benefits-row .municipal-benefit p,
	html body:not(.home) #primary .entry-content .municipal-benefit p {
		font-size: 19px !important;
		line-height: 1.52 !important;
	}
	/* Industrial hub (3292): h2-adjacent + sector teaser paragraphs. */
	html body.page-id-3292:not(.home) #primary .entry-content h2 ~ p,
	html body.page-id-3292:not(.home) #primary .entry-content .iw-hub-industry-sections h2 ~ p {
		font-size: 19px !important;
		line-height: 1.52 !important;
	}
	/* Applications hub cards: 17px list items beat generic ul li. */
	html body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card ul li {
		font-size: 19px !important;
		line-height: 1.52 !important;
	}
}

/* System Architectures (3274) phone portrait only: EOF override to beat generic max-767 typography. */
@media (max-width: 767px) and (orientation: portrait) {
	html body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card h4 {
		font-size: 20px !important;
		line-height: 1.04 !important;
		margin: 0 0 4px 0 !important;
	}
	html body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card p.sa-subtitle {
		font-size: 18px !important;
		line-height: 1.18 !important;
		margin: 2px 0 0 0 !important;
	}
	html body.page-id-3274:not(.home) #primary .entry-content .sa-info-cards .sa-card ul li {
		font-size: 16px !important;
		line-height: 1.3 !important;
	}
}

