/*
Theme Name: Waterproofing Integrity
Theme URI: https://www.waterproofingintegrity.com.au
Author: Storm Jarvie
Author URI: https://www.waterproofingintegrity.com.au
Description: WordPress FSE Block Theme for Waterproofing Integrity
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 8.1
License: Private
Text Domain: waterproofing-integrity
*/

/* ==========================================================================
   SKIP LINK — visible on focus for keyboard users
   ========================================================================== */

.wi-skip-link {
	position: absolute;
	top: -100%;
	left: 1rem;
	z-index: 999;
	padding: 0.75rem 1.5rem;
	background: var(--wp--preset--color--navy);
	color: #fff;
	font-weight: 600;
	border-radius: 0 0 8px 8px;
	text-decoration: none;
}

.wi-skip-link:focus {
	top: 0;
}

/* ==========================================================================
   BASE RESET & GLOBAL
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

img,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

/* ==========================================================================
   STICKY NAVIGATION
   Mobile-first: full styles apply from mobile upward.
   ========================================================================== */

/* WordPress core sets overflow-x:clip on .wp-site-blocks which prevents
   position:sticky on descendants. Override to unset to restore sticky behaviour. */
.wp-site-blocks {
	overflow-x: unset;
}

/* Remove WP blockGap between sticky header and first content block */
.wp-block-template-part:has(.wi-site-header) + * {
	margin-block-start: 0 !important;
}

/* Remove WP auto-generated block gap margins between sections on every page.
   All section spacing is handled by each section's own padding. */
main.wp-block-group > *,
.wi-homepage-main > *,
.wp-block-post-content > *,
.entry-content > *,
.wi-services-lifecycle {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* The wp-block-template-part container is only as tall as its header child (~80px).
   Sticky must live here so it sticks against the viewport scroll container, not
   within an 80px parent that immediately exhausts its sticky range. */
.wp-block-template-part:has(.wi-site-header) {
	position: sticky;
	top: 0;
	z-index: 100;
}

.wp-site-blocks > .wi-site-header {
	position: sticky;
	top: 0;
	z-index: 100;
}

.wi-site-header {
	background-color: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--wp--preset--color--border);
	transition: box-shadow 0.25s ease;
	min-height: 64px;
	display: flex;
	align-items: center;
	position: relative;
}


.wi-site-header.is-scrolled {
	box-shadow: 0 2px 12px rgba(30, 58, 95, 0.15);
}

.wi-site-header .wi-nav-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 0 1rem;
	gap: 1rem;
}

.wi-logo-link {
	display: block;
	line-height: 0;
}

.wi-logo-img {
	max-height: 48px;
	width: auto;
	display: block;
}

/* Desktop nav height */
@media (min-width: 768px) {
	.wi-site-header {
		min-height: 80px;
	}

	.wi-site-header .wi-nav-inner {
		padding: 0 2rem;
	}
}

/* ==========================================================================
   NAVIGATION — Custom JS-driven nav
   JS reads the hidden .wi-primary-nav block for link data then builds
   a custom nav DOM that matches the Loveable design exactly.
   ========================================================================== */

/* Header stacking context for the flyout is set via position: relative above */

/* Hide WP nav block — kept in DOM as editable data source, not rendered */
.wi-primary-nav {
	display: none !important;
}

/* ── CTA button group — hidden below 480px ── */
.wi-nav-inner > .wp-block-group {
	display: none !important;
}
@media (min-width: 480px) {
	.wi-nav-inner > .wp-block-group {
		display: flex !important;
	}
}

/* ── Mobile layout: flex-start, CTA left of hamburger ── */
@media (max-width: 1149px) {
	.wi-site-header .wi-nav-inner {
		justify-content: flex-start;
	}
	/* CTA group (visible ≥480px): margin-left:auto pushes it right; hamburger follows */
	.wi-site-header .wi-nav-inner > .wp-block-group {
		order: 2;
		margin-left: auto;
	}
	/* Hamburger: rightmost item */
	.wi-site-header .wi-nav-inner .wi-custom-nav {
		order: 3;
	}
}
/* Below 480px the CTA is hidden — hamburger needs the auto margin instead */
@media (max-width: 479px) {
	.wi-site-header .wi-nav-inner .wi-custom-nav {
		margin-left: auto;
	}
}

/* ── Desktop layout: space-between so nav links sit between logo and CTA ── */
@media (min-width: 1150px) {
	.wi-site-header .wi-nav-inner {
		justify-content: space-between;
	}
}

/* ── Custom nav container ── */
.wi-custom-nav {
	display: flex;
	align-items: center;
}

/* Desktop inline nav links — hidden on mobile */
.wi-custom-nav__desktop {
	display: none;
}
@media (min-width: 1150px) {
	.wi-custom-nav__desktop {
		display: flex;
		align-items: center;
		gap: 2rem;
	}
}

/* Regular nav link (Projects, About, etc.) */
.wi-custom-nav__link {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	transition: color 0.2s ease;
	white-space: nowrap;
}
.wi-custom-nav__link:hover,
.wi-custom-nav__link:focus-visible {
	color: var(--wp--preset--color--navy);
	outline: none;
}

/* Services dropdown wrapper */
.wi-custom-nav__dropdown {
	position: relative;
}

/* Services trigger link */
.wi-custom-nav__dropdown-btn {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--wp--preset--color--muted);
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	text-decoration: none;
	transition: color 0.2s ease;
	white-space: nowrap;
}
.wi-custom-nav__dropdown-btn:hover,
.wi-custom-nav__dropdown-btn[aria-expanded="true"] {
	color: var(--wp--preset--color--navy);
	outline: none;
}

/* Chevron SVG inside dropdown button */
.wi-custom-nav__chevron {
	width: 14px;
	height: 14px;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform 0.2s ease;
	flex-shrink: 0;
}
.wi-custom-nav__dropdown-btn[aria-expanded="true"] .wi-custom-nav__chevron {
	transform: rotate(180deg);
}

/* Invisible bridge that keeps hover active across the gap to the flyout */
.wi-custom-nav__dropdown::after {
	content: '';
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	height: 0.75rem;
	background: transparent;
	z-index: 201;
}

/* Flyout panel */
.wi-custom-nav__flyout {
	display: none;
	position: absolute;
	top: calc(100% + 0.75rem);
	left: 0;
	min-width: 680px;
	max-width: calc(100vw - 2rem);
	background: white;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	box-shadow: 0 20px 25px -5px rgba(30, 58, 95, 0.12), 0 8px 10px -6px rgba(30, 58, 95, 0.08);
	padding: 1.5rem;
	z-index: 200;
}
.wi-custom-nav__flyout.is-open {
	display: block;
	animation: wi-nav-fade-in 0.15s ease;
}
@keyframes wi-nav-fade-in {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* 4-column grid inside flyout */
.wi-custom-nav__flyout-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}

/* Column heading (Design, Inspect, etc.) */
.wi-custom-nav__col-heading {
	display: block;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--blue);
	text-decoration: none;
	margin-bottom: 0.5rem;
	transition: color 0.2s ease;
	background: none;
	border: none;
	padding: 0;
	text-align: left;
	cursor: pointer;
}
.wi-custom-nav__col-heading:hover {
	color: var(--wp--preset--color--navy);
}

/* Sub-links list */
.wi-custom-nav__sub-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}
.wi-custom-nav__sub-link {
	display: block;
	font-size: 0.75rem;
	font-weight: 400;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	line-height: 1.4;
	transition: color 0.2s ease;
}
.wi-custom-nav__sub-link:hover {
	color: var(--wp--preset--color--navy);
}

/* Description text for columns without sub-links */
.wi-custom-nav__col-desc {
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.4;
	margin: 0;
}

/* ── Hamburger button (mobile/tablet only) ── */
.wi-custom-nav__hamburger {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 8px;
	position: relative;
}
@media (min-width: 1150px) {
	.wi-custom-nav__hamburger {
		display: none;
	}
}

/* Top bar (::before) + bottom bar via box-shadow */
.wi-custom-nav__hamburger::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 22px;
	height: 2px;
	background: var(--wp--preset--color--navy);
	border-radius: 2px;
	transform: translate(-50%, calc(-50% - 7px));
	box-shadow: 0 14px 0 var(--wp--preset--color--navy);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
/* Middle bar */
.wi-custom-nav__hamburger::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 22px;
	height: 2px;
	background: var(--wp--preset--color--navy);
	border-radius: 2px;
	transform: translate(-50%, -50%);
	transition: opacity 0.2s ease, transform 0.3s ease;
}
/* X state when open */
.wi-custom-nav__hamburger.is-open::before {
	transform: translate(-50%, -50%) rotate(45deg);
	box-shadow: 0 0 0 transparent;
}
.wi-custom-nav__hamburger.is-open::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

/* ── Mobile overlay drawer ── */
/* top is set dynamically in JS from the actual header height.
   No bottom/height — overlay sizes to its content with a max-height guard. */
.wi-custom-nav__mobile {
	display: none;
	position: fixed;
	top: 64px; /* overridden by JS on open */
	left: 0;
	right: 0;
	max-height: calc(100vh - 64px); /* fallback; JS updates to match real header */
	background: white;
	border-top: 1px solid var(--wp--preset--color--border);
	overflow-y: auto;
	z-index: 99999;
	padding: 0.5rem 1.5rem 1.5rem;
	box-shadow: 0 8px 16px rgba(30, 58, 95, 0.1);
}
@media (min-width: 1150px) {
	.wi-custom-nav__mobile {
		display: none !important;
	}
}
.wi-custom-nav__mobile.is-open {
	display: block;
}
.wi-custom-nav__mobile-inner {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

/* Mobile: top-level link (Projects, About, etc.) */
.wi-custom-nav__mobile-link {
	display: block;
	width: 100%;
	text-align: left;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1rem;
	font-weight: 500;
	color: var(--wp--preset--color--navy);
	padding: 0.5rem 0;
	border: none;
	background: none;
	text-decoration: none;
	line-height: 1.5;
	cursor: pointer;
}

/* Services accordion toggle */
.wi-custom-nav__mobile-services-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	text-align: left;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1rem;
	font-weight: 500;
	color: var(--wp--preset--color--navy);
	padding: 0.5rem 0;
	border: none;
	background: none;
	cursor: pointer;
}
.wi-custom-nav__mobile-chevron {
	width: 16px;
	height: 16px;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform 0.2s ease;
	flex-shrink: 0;
}
.wi-custom-nav__mobile-services-toggle[aria-expanded="true"] .wi-custom-nav__mobile-chevron {
	transform: rotate(180deg);
}

/* Services accordion panel */
.wi-custom-nav__mobile-services-content {
	display: none;
	padding: 0.25rem 0 0.25rem 1rem;
}
.wi-custom-nav__mobile-services-content.is-open {
	display: block;
}

/* Column heading that has sub-links (expandable) */
.wi-custom-nav__mobile-col-toggle {
	display: flex;
	align-items: center;
	background: none;
	border: none;
	padding: 0.25rem;
	cursor: pointer;
	color: var(--wp--preset--color--muted);
}
.wi-custom-nav__col-chevron {
	width: 14px;
	height: 14px;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform 0.2s ease;
	flex-shrink: 0;
}
.wi-custom-nav__mobile-col-toggle[aria-expanded="true"] .wi-custom-nav__col-chevron {
	transform: rotate(90deg);
}

/* Row wrapping col link + chevron toggle */
.wi-custom-nav__mobile-col-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.wi-custom-nav__mobile-col-header .wi-custom-nav__mobile-col-toggle {
	flex-shrink: 0;
}

/* Column link — section heading */
.wi-custom-nav__mobile-col-link {
	display: block;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--blue);
	padding: 0.5rem 0;
	text-decoration: none;
}

/* Column sub-link panel */
.wi-custom-nav__mobile-col-content {
	display: none;
	padding: 0.125rem 0 0.375rem 1rem;
}
.wi-custom-nav__mobile-col-content.is-open {
	display: block;
}
.wi-custom-nav__mobile-sub-link {
	display: block;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--muted);
	padding: 0.25rem 0;
	text-decoration: none;
}
.wi-custom-nav__mobile-sub-link:hover {
	color: var(--wp--preset--color--navy);
}

/* View all Services link — top of mobile services panel */
.wi-custom-nav__mobile-view-all {
	display: block;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	padding: 0.5rem 0 0.75rem;
	text-decoration: none;
	border-bottom: 1px solid var(--wp--preset--color--border);
	margin-bottom: 0.5rem;
}
.wi-custom-nav__mobile-view-all:hover {
	color: var(--wp--preset--color--blue);
}

/* Mobile CTA button */
.wi-custom-nav__mobile-cta {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--wp--preset--color--gold);
	color: white;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.9375rem;
	font-weight: 600;
	padding: 0.75rem 1.5rem;
	border-radius: 8px;
	border: none;
	cursor: pointer;
	text-decoration: none;
	margin-top: 1.5rem;
}
/* Hide CTA in drawer when the header CTA is visible (≥480px).
   Rule placed after the base style so it wins the cascade. */
@media (min-width: 480px) {
	.wi-custom-nav__mobile-cta {
		display: none;
	}
}

/* ==========================================================================
   HERO
   ========================================================================== */

.wi-hero {
	min-height: 55vh;
	display: flex;
	align-items: center;
	background:
		linear-gradient(135deg, rgba(30, 58, 95, 0.88) 0%, rgba(30, 58, 95, 0.75) 100%),
		url('/wp-content/themes/waterproofing-integrity/assets/images/hero-bg-waterproofing.jpg') center / cover no-repeat;
}

.wi-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 2rem;
	width: 100%;
}

/* CTA row: stack on mobile, inline on desktop */
.wi-hero-cta-row {
	flex-direction: column !important;
	align-items: flex-start !important;
}

@media (min-width: 768px) {
	.wi-hero-cta-row {
		flex-direction: row !important;
		align-items: center !important;
	}
}

.wi-hero-subtitle {
	font-size: 1.125rem;
	color: rgba(255, 255, 255, 0.85);
}

.wi-hero-trust {
	margin: 0 !important;
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.7);
}

/* ==========================================================================
   HERO — GRADIENT SPLIT (Option A)
   ========================================================================== */

.wi-hero-gs {
	position: relative;
	overflow: hidden;
	margin-bottom: -1px;
}

.wi-hero-gs .wp-block-cover__background {
	background: linear-gradient(
		to right,
		#051c2e 0%,
		#051c2e 45%,
		rgba(5, 28, 46, 0.85) 55%,
		rgba(5, 28, 46, 0.4) 68%,
		rgba(5, 28, 46, 0.12) 80%,
		transparent 92%
	) !important;
	opacity: 1 !important;
}

.wi-hero-gs::after {
	content: '';
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	height: 50px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 50,0 100,100' fill='%23ffffff'/%3E%3C/svg%3E");
	background-size: 100% 100%;
	z-index: 2;
}

.wi-hero-gs .wp-block-cover__inner-container {
	position: relative;
	z-index: 1;
	max-width: 1200px !important;
	margin: 0 auto;
	padding: 3.5rem 1.5rem 5.5rem;
}

@media (min-width: 768px) {
	.wi-hero-gs .wp-block-cover__inner-container {
		padding: 4.5rem 2rem 6rem;
	}
}

@media (min-width: 1200px) {
	.wi-hero-gs .wp-block-cover__inner-container {
		padding: 5rem 0 7rem;
	}
}

.wi-hero-gs__content {
	max-width: 720px;
}

.wi-hero-gs__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 800;
	font-size: clamp(2.5rem, 6vw, 3.75rem);
	line-height: 1.08;
	color: #ffffff;
	margin: 0 0 1rem 0;
}

.wi-hero-gs__heading-accent {
	color: var(--wp--preset--color--blue);
}

.wi-hero-gs__accent-bar {
	width: 52px;
	height: 4px;
	background: var(--wp--preset--color--blue);
	border-radius: 2px;
	margin: 0 0 1.25rem 0;
}

.wi-hero-gs__subtitle {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.3125rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.7);
	margin: 0 0 1.75rem 0;
}

.wi-hero-gs__callouts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin-bottom: 2rem;
}

.wi-hero-gs__callout {
	display: flex;
	align-items: center;
	gap: 10px;
	color: rgba(255, 255, 255, 0.9);
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.1875rem;
	font-weight: 400;
	line-height: 1.3;
}

.wi-hero-gs__callout-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: rgba(255, 255, 255, 0.8);
}

.wi-hero-gs__callout-icon svg {
	width: 28px;
	height: 28px;
}

.wi-hero-gs__callout-divider {
	width: 1px;
	height: 32px;
	background: rgba(255, 255, 255, 0.2);
	display: none;
}

@media (min-width: 768px) {
	.wi-hero-gs__callouts {
		flex-wrap: nowrap;
		gap: 1.25rem;
	}

	.wi-hero-gs__callout-divider {
		display: block;
	}
}

.wi-hero-gs__cta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem;
}

.wi-hero-gs__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--wp--preset--color--gold);
	color: #ffffff;
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1.0625rem;
	padding: 16px 40px;
	border-radius: 4px;
	text-decoration: none;
	transition: opacity 0.15s;
}

.wi-hero-gs__cta:hover {
	opacity: 0.9;
}

.wi-hero-gs__credentials {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.0625rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.6);
	letter-spacing: 0.02em;
}

@media (max-width: 767px) {
	.wi-hero-gs .wp-block-cover__background {
		background: linear-gradient(
			180deg,
			#051c2e 0%,
			rgba(5, 28, 46, 0.95) 60%,
			rgba(5, 28, 46, 0.85) 100%
		) !important;
	}

	.wi-hero-gs__callouts {
		gap: 0.75rem;
	}

	.wi-hero-gs__callout {
		width: calc(50% - 0.5rem);
	}
}

/* ==========================================================================
   HERO — CINEMATIC (Option B)
   ========================================================================== */

.wi-hero-cin {
	position: relative;
	overflow: hidden;
	margin-bottom: -1px;
}

.wi-hero-cin .wp-block-cover__background {
	background: rgba(5, 28, 46, 0.88) !important;
	opacity: 1 !important;
}

.wi-hero-cin::after {
	content: '';
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	height: 50px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 50,0 100,100' fill='%23ffffff'/%3E%3C/svg%3E");
	background-size: 100% 100%;
	z-index: 2;
}

.wi-hero-cin .wp-block-cover__inner-container {
	position: relative;
	z-index: 1;
	max-width: 1200px !important;
	margin: 0 auto;
	padding: 3.5rem 1.5rem 5.5rem;
}

@media (min-width: 768px) {
	.wi-hero-cin .wp-block-cover__inner-container {
		padding: 4.5rem 2rem 6rem;
	}
}

@media (min-width: 1200px) {
	.wi-hero-cin .wp-block-cover__inner-container {
		padding: 5rem 0 7rem;
	}
}

.wi-hero-cin__content {
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}

.wi-hero-cin__eyebrow {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 0.8125rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
	text-align: center;
	margin: 0 0 1.25rem 0;
}

.wi-hero-cin__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 800;
	font-size: clamp(2.5rem, 6vw, 3.75rem);
	line-height: 1.08;
	color: #ffffff;
	margin: 0 0 1rem 0;
}

.wi-hero-cin__accent-bar {
	width: 52px;
	height: 4px;
	background: var(--wp--preset--color--gold);
	border-radius: 2px;
	margin: 0 auto 1.25rem auto;
}

.wi-hero-cin__subtitle {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.125rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.7);
	margin: 0 auto 2rem auto;
	max-width: 640px;
	text-align: center;
}

.wi-hero-cin__stats {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin-bottom: 2.25rem;
}

.wi-hero-cin__stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	min-width: 100px;
}

.wi-hero-cin__stat-value {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 800;
	font-size: 1.625rem;
	color: #ffffff;
	line-height: 1;
}

.wi-hero-cin__stat-label {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.75rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.5);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.wi-hero-cin__stat-divider {
	width: 1px;
	height: 36px;
	background: rgba(255, 255, 255, 0.2);
	display: none;
}

@media (min-width: 768px) {
	.wi-hero-cin__stats {
		flex-wrap: nowrap;
		gap: 2.5rem;
	}

	.wi-hero-cin__stat-divider {
		display: block;
	}

	.wi-hero-cin__stat-value {
		font-size: 1.875rem;
	}
}

@media (max-width: 767px) {
	.wi-hero-cin .wp-block-cover__background {
		background: rgba(5, 28, 46, 0.88) !important;
	}

	.wi-hero-cin__stat {
		width: calc(50% - 1rem);
	}
}

.wi-hero-cin__cta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
}

.wi-hero-cin__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--wp--preset--color--gold);
	color: #ffffff;
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1rem;
	padding: 15px 36px;
	border-radius: 4px;
	text-decoration: none;
	transition: opacity 0.15s;
}

.wi-hero-cin__cta:hover {
	opacity: 0.9;
}

/* ==========================================================================
   CTA BUTTON
   ========================================================================== */

.cta-button,
.wp-block-button.cta-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--wp--preset--color--gold);
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1rem;
	text-decoration: none;
	border-radius: 8px;
	border: 2px solid transparent;
	padding: 8px 21px;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
	white-space: nowrap;
}

.cta-button:hover,
.wp-block-button.cta-button .wp-block-button__link:hover {
	background-color: #e8a000 !important;
	box-shadow: 0 4px 12px rgba(240, 165, 0, 0.35);
}

.wp-block-button.cta-button .wp-block-button__link:hover,
.wp-block-button.cta-button .wp-block-button__link:focus {
	outline: none !important;
	box-shadow: 0 4px 12px rgba(240, 165, 0, 0.35) !important;
}

.cta-button:focus-visible,
.wp-block-button.cta-button .wp-block-button__link:focus-visible {
	outline: 3px solid var(--wp--preset--color--gold);
	outline-offset: 3px;
}

.wp-block-button.cta-button .wp-block-button__link.wp-element-button {
	background-color: var(--wp--preset--color--gold) !important;
	transition: background-color 0.2s ease, box-shadow 0.2s ease !important;
}

.wp-block-button.cta-button .wp-block-button__link.wp-element-button:hover {
	background-color: #e8a000 !important;
	box-shadow: 0 4px 12px rgba(240, 165, 0, 0.35) !important;
	filter: none !important;
}

.wp-block-button.cta-button {
	padding: 0 !important;
}

.wp-block-button.cta-button .wp-block-button__link {
	display: inline-flex;
}

.wp-block-button.cta-button .wp-block-button__link svg {
	display: inline-block;
	vertical-align: middle;
	margin-left: 16px;
	transition: transform 0.2s ease;
}

.wp-block-button.cta-button .wp-block-button__link:hover svg {
	transform: translateX(4px);
}

/* Outline variant */
.cta-button--outline {
	background-color: transparent;
	color: var(--wp--preset--color--gold);
	border-color: var(--wp--preset--color--gold);
}

.cta-button--outline:hover {
	background-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy);
}

/* ==========================================================================
   TEL LINKS
   ========================================================================== */

.tel-link {
	color: inherit;
	text-decoration: none;
	white-space: nowrap;
}

.tel-link:hover {
	text-decoration: underline;
}

/* ==========================================================================
   SOCIAL PROOF STATS
   ========================================================================== */

/* Override global 7rem section padding — stats section uses tighter spacing */
.wi-social-proof {
	padding-top: 2rem !important;
	padding-bottom: 3rem !important;
}

@media (min-width: 768px) {
	.wi-social-proof {
		padding-top: 3rem !important;
		padding-bottom: 3rem !important;
	}
}

/* Section gutters — inner constrained group */
.wi-social-proof > .wp-block-group {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-social-proof > .wp-block-group {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-social-proof > .wp-block-group {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Stats grid: 1-col mobile → 2-col tablet → 4-col desktop */
@media (max-width: 767px) {
	.wi-stats-grid {
		flex-wrap: wrap !important;
	}

	.wi-stats-grid .wp-block-column {
		flex-basis: 100% !important;
		max-width: 100% !important;
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	.wi-stats-grid {
		flex-wrap: wrap !important;
	}

	.wi-stats-grid .wp-block-column {
		flex-basis: calc(50% - 1rem) !important;
		max-width: calc(50% - 1rem) !important;
	}
}

/* TRUSTED BY section */
.wi-trusted-by-section {
	margin-top: var(--wp--preset--spacing--xl);
	padding-top: var(--wp--preset--spacing--lg);
	padding-bottom: var(--wp--preset--spacing--lg);
	border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.wi-trusted-by-label {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 0.65rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.7);
	text-align: center;
	margin: 0 0 1rem 0;
}

.wi-company-names {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	column-gap: 2.5rem;
	row-gap: 1rem;
}

@media (min-width: 768px) {
	.wi-company-names {
		gap: 3.5rem;
	}
}

.wi-company-names span {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1.2rem;
	letter-spacing: 0.05em;
	color: rgba(255, 255, 255, 0.4);
	text-transform: uppercase;
	text-decoration: none;
	transition: color 0.2s ease;
	cursor: pointer;
}

.wi-company-names span:hover {
	color: var(--wp--preset--color--gold);
}

/* ==========================================================================
   GOOGLE REVIEWS
   ========================================================================== */

.wi-reviews > .wp-block-group {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-reviews > .wp-block-group {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-reviews > .wp-block-group {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Header row — left-aligned */
.wi-reviews-header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 2.5rem;
}

.wi-reviews-rating {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.75rem;
	font-weight: 800;
	color: var(--wp--preset--color--navy);
	line-height: 1;
}

.wi-reviews-stars {
	color: var(--wp--preset--color--gold);
	font-size: 1.125rem;
	letter-spacing: 1px;
	line-height: 1;
}

.wi-reviews-source {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
}

.wi-reviews-viewall {
	margin-left: auto;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--blue);
	text-decoration: none;
}

.wi-reviews-viewall:hover {
	text-decoration: underline;
}

/* Equal-height card columns */
.wi-reviews .wp-block-columns {
	align-items: stretch !important;
}

.wi-reviews .wp-block-column {
	display: flex;
	flex-direction: column;
}

/* Review card */
.wi-review-card {
	flex: 1;
	display: flex;
	flex-direction: column;
	background: #F2F2F2;
	border-radius: 8px;
	padding: var(--wp--preset--spacing--lg);
}

/* Author row: avatar + name/date */
.wi-review-author {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 0.75rem;
}

.wi-review-avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(46, 134, 171, 0.15);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--wp--preset--color--navy);
	flex-shrink: 0;
}

.wi-review-author-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

/* Name + stars on same line */
.wi-review-name-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.wi-review-name {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
	line-height: 1.3;
}

.wi-review-stars {
	color: var(--wp--preset--color--gold);
	font-size: 0.875rem;
	letter-spacing: 1px;
	line-height: 1;
}

.wi-review-date {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.3;
}

/* Review text */
.wi-review-text {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
	line-height: 1.65;
	font-weight: 400;
}

/* ==========================================================================
   SECTORS — WHO WE WORK WITH
   ========================================================================== */

.wi-sectors > .wp-block-group,
.wi-who-we-work-with > .wp-block-group {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-sectors > .wp-block-group,
	.wi-who-we-work-with > .wp-block-group {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-sectors > .wp-block-group,
	.wi-who-we-work-with > .wp-block-group {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Card header row: icon + gold label */
.wi-sector-card-header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.wi-sector-icon {
	width: 44px;
	height: 44px;
	background: rgba(255, 255, 255, 0.08);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.wi-sector-label {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
}

/* Section label: uppercase muted overline used across navy-bg sections */
.wi-section-label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.7);
}

/* Card body text */
.wi-sector-description {
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.9375rem;
	line-height: 1.65;
}

/* "Learn More →" link row */
.wi-sector-learn-more {
	font-weight: 600;
	font-size: 0.9375rem;
}

.wi-sector-learn-more a,
.wi-sector-learn-more span {
	color: #fff;
	text-decoration: none;
}

/* Card is an <a> element — reset link defaults */
a.wi-sector-card {
	text-decoration: none;
	color: inherit;
}

/* Equal-height sector cards */
.wi-who-we-work-with .wp-block-column {
	display: flex;
	flex-direction: column;
}

.wi-sector-card {
	flex: 1;
	display: flex;
	flex-direction: column;
	background: rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 12px;
	padding: var(--wp--preset--spacing--xl) var(--wp--preset--spacing--lg);
	transition: all 0.3s ease;
}

.wi-sector-card h3.wp-block-heading {
	font-size: 1.125rem;
	font-weight: 700;
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--sm);
}

.wi-sector-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--wp--preset--shadow--card-hover);
	border: 1px solid rgba(255, 255, 255, 0.2) !important;
}

/* ==========================================================================
   AUTHORITY — WHY INDEPENDENCE MATTERS
   ========================================================================== */

.wi-authority > .wp-block-group,
.wi-locations > .wp-block-group {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-authority > .wp-block-group,
	.wi-locations > .wp-block-group {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-authority > .wp-block-group,
	.wi-locations > .wp-block-group {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Icon + heading on same row */
.wi-authority-title-row {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.wi-authority-icon {
	background: rgba(27, 45, 75, 0.1);
	border-radius: 10px;
	padding: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.wi-authority-icon svg {
	stroke: rgb(27, 45, 75);
}

.wi-authority-heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: clamp(1.5rem, 3.5vw, 2.25rem);
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0;
	line-height: 1.2;
}

/* Latest Resources label */
.wi-resource-label {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy);
	margin: 0 0 0.75rem;
}

/* Resource cards */
.wi-resource-card {
	display: block;
	background: #fff;
	border: 1px solid #E0E0E0;
	border-radius: 8px;
	padding: 1rem 1.25rem;
	margin-bottom: 0.5rem;
	text-decoration: none;
	transition: box-shadow 0.2s ease;
}

.wi-resource-card:last-child {
	margin-bottom: 0;
}

.wi-resource-card:hover {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.wi-resource-card-top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 0.5rem;
	margin-bottom: 0.25rem;
}

.wi-resource-title {
	font-weight: 600;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
	line-height: 1.4;
	transition: color 0.2s ease;
}

.wi-resource-arrow {
	color: var(--wp--preset--color--navy);
	font-size: 1rem;
	flex-shrink: 0;
	transition: color 0.2s ease;
}

.wi-resource-card:hover .wi-resource-title,
.wi-resource-card:hover .wi-resource-arrow {
	color: var(--wp--preset--color--blue);
}

.wi-resource-date {
	font-size: 0.875rem;
	color: #6B7E9A;
}

/* ==========================================================================
   PROOF TICKER
   ========================================================================== */

.wi-proof-ticker {
	overflow: hidden;
	background-color: var(--wp--preset--color--navy);
	padding: 0.75rem 0;
	width: 100%;
}

.wi-ticker-track {
	display: flex;
	gap: 0;
	width: max-content;
	animation: ticker-scroll 36s linear infinite;
}

.wi-ticker-track:hover {
	animation-play-state: paused;
}

.wi-ticker-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0 2.5rem;
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 600;
	font-size: 0.9375rem;
	white-space: nowrap;
}

.wi-ticker-item::after {
	content: "•";
	color: rgba(255, 255, 255, 0.3);
	margin-left: 2.5rem;
}

.wi-ticker-item:last-child::after {
	content: "";
}

.wi-ticker-number {
	color: var(--wp--preset--color--white);
	font-weight: 800;
	font-size: 1.125rem;
}

@keyframes ticker-scroll {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
	.wi-ticker-track {
		animation: none;
		flex-wrap: wrap;
		width: auto;
		justify-content: center;
	}
}

/* ==========================================================================
   FLIP CARD
   ========================================================================== */

/* 2-col mobile/tablet, 4-col desktop */
.wi-flip-cards-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

@media (min-width: 1024px) {
	.wi-flip-cards-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.wi-flip-card {
	perspective: 1000px;
	min-height: 160px;
	aspect-ratio: 1 / 1;
}

.wi-flip-card__inner {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 160px;
	transform-style: preserve-3d;
	transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}

.wi-flip-card:hover .wi-flip-card__inner,
.wi-flip-card.is-flipped .wi-flip-card__inner {
	transform: rotateY(180deg);
}

.wi-flip-card__front,
.wi-flip-card__back {
	position: absolute;
	inset: 0;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	gap: 10px;
}

.wi-flip-card__front {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
	align-items: center;
	justify-content: center;
	text-align: center;
}

a.wi-flip-card__back {
	text-decoration: none;
	cursor: pointer;
}

.wi-flip-card__back {
	transform: rotateY(180deg);
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
	align-items: flex-start;
	justify-content: center;
	text-align: left;
}

.wi-flip-card__cta {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--wp--preset--color--gold);
	letter-spacing: 0.03em;
	margin-top: auto;
}

/* Card title (front and back) */
.wi-flip-card__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1rem;
	color: #fff;
}

/* "HOVER TO LEARN MORE" hint */
.wi-flip-card__hint {
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.7);
	text-transform: uppercase;
}

/* Back face description text */
.wi-flip-card__desc {
	font-size: 0.675rem;
	color: rgba(255, 255, 255, 0.9);
	line-height: 1.5;
}

@media (min-width: 768px) {
	.wi-flip-card__desc {
		font-size: 0.875rem;
	}
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
	.wi-flip-card__inner {
		transition: none;
	}
}

/* ==========================================================================
   LOCATIONS SECTION
   ========================================================================== */

.wi-locations-header {
	margin-bottom: 2rem;
}

.wi-location-label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #2E86AB;
	margin: 0 0 0.75rem;
}

.wi-location-heading-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.wi-location-heading {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0;
}

.wi-location-phone {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	white-space: nowrap;
}

.wi-location-phone:hover {
	color: var(--wp--preset--color--blue);
}

/* Office cards — locations page (full-size cards) */

.wi-locations .wi-office-card {
	background: #F2F2F2;
	border-radius: 8px;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.wi-office-city-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.625rem;
}

.wi-office-city {
	font-weight: 700;
	font-size: 1.0625rem;
	color: #1E3A5F !important;
}

.wi-office-badge {
	background: rgba(46, 134, 171, 0.12) !important;
	color: #2E86AB !important;
	border: none;
	border-radius: 6px;
	padding: 3px 10px;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.wi-office-address {
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.5;
	margin: 0 0 0.75rem;
}

.wi-office-address--soon {
	font-style: italic;
}

.wi-office-card__upper {
	flex: 1;
}

.wi-office-divider {
	display: block;
	width: 100%;
	height: 1px;
	background: #E0E0E0;
	border: none;
	margin: 0 0 0.75rem !important;
	padding: 0;
	flex-shrink: 0;
	align-self: stretch;
}

.wi-office-coverage {
	font-size: 0.875rem;
	color: #1E3A5F !important;
	line-height: 1.4;
	margin: 0 0 0.625rem;
}

.wi-office-coverage strong {
	margin-right: 0.25em;
}

.wi-office-contact-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: #6B7E9A;
	text-decoration: none;
	word-break: break-all;
	margin-bottom: 0.375rem;
}

.wi-office-contact-row:last-child {
	margin-bottom: 0;
}

.wi-office-contact-row:hover {
	color: #6B7E9A;
	text-decoration: none;
}

/* Mobile: 2rem section padding across all section-level blocks */
@media (max-width: 767px) {
	.wi-404-links,
	.wi-authority,
	.wi-blog-grid,
	.wi-case-studies,
	.wi-case-studies-grid,
	.wi-case-study-content-area,
	.wi-contact-body,
	.wi-contact-form,
	.wi-faq,
	.wi-locations,
	.wi-memberships,
	.wi-pillars,
	.wi-policy-content,
	.wi-post-content-area,
	.wi-process-steps,
	.wi-related-cases,
	.wi-reviews,
	.wi-sectors,
	.wi-service-design,
	.wi-service-detail,
	.wi-service-inspect,
	.wi-service-remediate,
	.wi-service-test,
	.wi-services,
	.wi-services-navy,
	.wi-social-proof,
	.wi-team,
	.wi-team-member-profile,
	.wi-testimonials-about,
	.wi-thank-you-contact,
	.wi-what-happens-next,
	.wi-who-we-help,
	.wi-services-cta-close,
	.wi-services-sectors,
	.wi-where-we-worked,
	.wi-who-we-work-with,
	.wi-about-cta-close,
	.wi-how-we-help,
	.wi-why-independence,
	.wi-why-we-exist {
		padding-top: 2rem !important;
		padding-bottom: 2rem !important;
	}

	.wi-location-heading-row {
		flex-direction: column;
		align-items: flex-start;
	}

	.wi-office-card {
		padding: 1.25rem;
	}
}

/* ==========================================================================
   FORM TAP TARGETS & INPUTS
   ========================================================================== */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="url"],
input[type="search"],
input[type="password"],
select,
textarea {
	min-height: 44px;
	padding: 0.625rem 0.875rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	font-family: var(--wp--preset--font-family--system-ui);
	font-size: 1rem;
	width: 100%;
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--navy);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 2px;
	border-color: var(--wp--preset--color--blue);
}

textarea {
	min-height: 120px;
	resize: vertical;
}

label {
	display: block;
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 600;
	font-size: 0.9375rem;
	margin-bottom: 0.375rem;
	color: var(--wp--preset--color--navy);
}

/* ==========================================================================
   FOCUS STATES (global)
   ========================================================================== */

:focus-visible {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 3px;
	border-radius: 2px;
}

a:focus-visible {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 3px;
	border-radius: 2px;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.wi-site-footer {
	background-color: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
}

.wi-footer-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	padding: 4rem 1rem;
	align-items: start;
}

@media (min-width: 768px) {
	.wi-footer-grid {
		grid-template-columns: 1.5fr 0.75fr 2fr 1fr;
		padding: 4rem 2rem;
	}
}

.wi-footer-col--links,
.wi-footer-col--contact,
.wi-footer-col--social {
	margin-block-start: 0 !important;
}

.wi-footer-col__title {
	margin-block-start: 0 !important;
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.8);
	margin: 0 0 1rem;
}

/* Footer logo — invert to white */
.wi-footer-logo {
	max-width: 160px;
	height: auto;
	display: block;
	filter: brightness(0) invert(1);
	opacity: 0.9;
	margin-bottom: 0.75rem;
}

/* Footer brand tagline */
.wi-footer-tagline {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.65;
	margin: 0.75rem 0 0;
}

/* Quick links list */
.wi-footer-quick-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

/* Contact icon+text rows (phone, email, LinkedIn) */
.wi-footer-contact-rows {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.wi-footer-contact-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	line-height: 1.4;
	transition: color 0.2s ease;
}

.wi-footer-contact-row:hover {
	color: #fff;
}

.wi-footer-contact-row svg {
	flex-shrink: 0;
}

/* Locations line under contact details */
.wi-footer-locations {
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.4);
	margin: 0.75rem 0 0;
}

/* Legal sub-section in col 4 */
.wi-footer-legal {
	margin-top: 1.5rem;
}

.wi-footer-legal-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.wi-footer-legal-links a {
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.4);
	text-decoration: none;
	line-height: 2;
	display: block;
	transition: color 0.2s ease;
}

.wi-footer-legal-links a:hover {
	color: rgba(255, 255, 255, 0.7);
}

.wi-footer-col a {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	font-size: 0.9375rem;
	line-height: 2;
	display: block;
	transition: color 0.2s ease;
}

.wi-footer-col a:hover {
	color: var(--wp--preset--color--white);
}

/* Restore flex display for icon+text rows — overrides .wi-footer-col a { display:block } */
.wi-footer-col a.wi-footer-contact-row {
	display: flex;
	align-items: center;
}

.wi-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.10);
	padding: 2rem 1rem 1rem;
	text-align: center;
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.4);
}

@media (min-width: 768px) {
	.wi-footer-bottom {
		padding: 2rem 2rem 1rem;
	}
}

/* ==========================================================================
   SECTION UTILITIES
   ========================================================================== */

.wi-section {
	padding: 5rem 1rem;
}

@media (min-width: 768px) {
	.wi-section {
		padding: 4rem 2rem;
	}
}

.wi-section--lg {
	padding: 5rem 1rem;
}

@media (min-width: 768px) {
	.wi-section--lg {
		padding: 4rem 2rem;
	}
}

/* Zero the WP block-gap margin so sections sit flush with no space between them */
.wp-site-blocks > * + * {
	margin-block-start: 0 !important;
}

/* Desktop padding override for all section-level wrappers that use --spacing--2xl.
   Inline WP block styles require !important to be overridden.
   Mobile: 2rem, Desktop 768px+: 4rem. */
@media (min-width: 768px) {
	.wi-404-links,
	.wi-authority,
	.wi-blog-grid,
	.wi-case-studies,
	.wi-case-studies-grid,
	.wi-case-study-content-area,
	.wi-contact-body,
	.wi-contact-form,
	.wi-faq,
	.wi-locations,
	.wi-memberships,
	.wi-pillars,
	.wi-policy-content,
	.wi-post-content-area,
	.wi-process-steps,
	.wi-related-cases,
	.wi-reviews,
	.wi-sectors,
	.wi-service-design,
	.wi-service-detail,
	.wi-service-inspect,
	.wi-service-remediate,
	.wi-service-test,
	.wi-services,
	.wi-services-navy,
	.wi-social-proof,
	.wi-team,
	.wi-team-member-profile,
	.wi-testimonials-about,
	.wi-thank-you-contact,
	.wi-what-happens-next,
	.wi-who-we-help,
	.wi-services-cta-close,
	.wi-services-sectors,
	.wi-where-we-worked,
	.wi-who-we-work-with,
	.wi-about-cta-close,
	.wi-how-we-help,
	.wi-why-independence,
	.wi-why-we-exist {
		padding-top: 4rem !important;
		padding-bottom: 4rem !important;
	}
}

.wi-section--light-grey {
	background-color: var(--wp--preset--color--light-grey);
}

.wi-section--navy {
	background-color: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
}

/* ==========================================================================
   CONTACT PAGE HERO
   ========================================================================== */

.wi-contact-hero {
	position: relative;
	background: linear-gradient(135deg, #152d4a 0%, #1E3A5F 100%);
	padding: 4rem 1.5rem 3rem;
	overflow: hidden;
}

/* Repeating plus-sign SVG texture overlay — matches Loveable Contact.tsx exactly */
.wi-contact-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	background-repeat: repeat;
	opacity: 0.03;
	pointer-events: none;
	z-index: 0;
}

.wi-contact-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
}

.wi-contact-hero__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: clamp(2rem, 5vw, 3rem);
	color: #fff;
	line-height: 1.15;
	margin: 0 0 1rem;
}

.wi-contact-hero .wp-block-heading {
	color: #fff;
	font-weight: 700;
}

.wi-contact-hero__desc {
	font-size: 1.0625rem;
	color: rgba(255, 255, 255, 0.8);
	max-width: 560px;
	line-height: 1.7;
	margin: 0 0 1.75rem;
}

.wi-contact-hero__trust {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
}

@media (min-width: 768px) {
	.wi-contact-hero {
		padding: 5.5rem 2rem 4rem;
	}
}

/* ==========================================================================
   ABOUT PAGE HERO
   ========================================================================== */

.wi-about-hero {
	position: relative;
	min-height: 55vh;
	display: flex;
	align-items: center;
	background:
		linear-gradient(135deg, hsla(218, 47%, 16%, 0.93) 0%, hsla(218, 47%, 24%, 0.87) 100%),
		url('/wp-content/themes/waterproofing-integrity/assets/images/hero-bg-waterproofing.jpg') center / cover no-repeat;
	padding: 5rem 1.5rem 3.5rem;
}

@media (min-width: 768px) {
	.wi-about-hero {
		padding: 7rem 2rem 5rem;
	}
}

.wi-about-hero__inner {
	max-width: 1200px;
	margin: 0 auto;
	width: 100%;
}

.wi-about-hero__content {
	max-width: 48rem;
	margin: 0 auto;
}

.wi-about-hero__eyebrow {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
	margin: 0 0 0.75rem;
}

.wi-about-hero__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 800;
	font-size: clamp(1.75rem, 4vw, 3rem);
	line-height: 1.15;
	color: #fff;
	margin: 0 0 1.25rem;
}

.wi-about-hero__heading-blue {
	color: #2E86AB;
}

.wi-about-hero__desc {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.8);
	max-width: 560px;
	line-height: 1.65;
	margin: 0 0 1.5rem;
}

@media (min-width: 768px) {
	.wi-about-hero__desc {
		font-size: 1.125rem;
	}
}

/* Trust-tag pills */
.wi-about-hero__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
	margin: 0 0 2rem;
}

.wi-about-hero__tag {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 9999px;
	padding: 0.375rem 0.75rem;
	font-size: 0.75rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.9);
}

.wi-about-hero__tag svg {
	color: var(--wp--preset--color--gold);
	flex-shrink: 0;
}

/* CTA row */
.wi-about-hero__cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: center;
}

/* Primary CTA — gold */
.wi-about-hero__btn-primary {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy);
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1rem;
	padding: 14px 28px;
	border-radius: 4px;
	text-decoration: none;
	transition: background 0.2s;
}

.wi-about-hero__btn-primary:hover {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	box-shadow: none;
}

.wi-about-hero__btn-primary:hover .wi-btn-arrow {
	transform: translateX(4px);
}

.wi-btn-arrow {
	display: inline-block;
	transition: transform 0.2s ease;
}

/* Secondary CTA — outline */
.wi-about-hero__btn-secondary {
	display: inline-flex;
	align-items: center;
	background: transparent;
	border: 2px solid rgba(255, 255, 255, 0.3);
	color: #fff;
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 600;
	font-size: 1rem;
	padding: 12px 24px;
	border-radius: 4px;
	text-decoration: none;
	transition: background 0.2s;
}

.wi-about-hero__btn-secondary:hover {
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
	text-decoration: none;
}

/* ==========================================================================
   PILLARS SECTION
   ========================================================================== */

.wi-pillars {
	background: var(--wp--preset--color--light-grey);
	padding-left: var(--wp--preset--spacing--md);
	padding-right: var(--wp--preset--spacing--md);
}

/* Icon wrapper — w-12 h-12 rounded-lg bg-accent/10 mb-5 */
.wi-pillar-icon {
	width: 48px;
	height: 48px;
	background: hsl(45 90% 50% / 0.1);
	border-radius: 0.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 1.25rem 0;
}

/* Icon SVG — h-6 w-6 text-accent */
.wi-pillar-icon svg {
	width: 24px;
	height: 24px;
	stroke: var(--wp--preset--color--gold);
}

/* Card — bg-card rounded-xl p-7 shadow-brand-md card-hover border border-border */
.wi-pillars .wp-block-group.has-white-background-color {
	border-radius: 0.75rem;
	padding: 1.75rem;
	box-shadow: 0 4px 6px -1px hsl(218 47% 20% / 0.08), 0 2px 4px -2px hsl(218 47% 20% / 0.06);
	border: 1px solid hsl(0 0% 88%);
	transition: all 300ms;
}

/* card-hover: hover:shadow-lg hover:-translate-y-1 */
.wi-pillars .wp-block-group.has-white-background-color:hover {
	box-shadow: 0 10px 15px -3px hsl(218 47% 20% / 0.1), 0 4px 6px -4px hsl(218 47% 20% / 0.08);
	transform: translateY(-0.25rem);
}

/* Section h2 — text-2xl md:text-3xl font-bold mb-3 text-center */
.wi-pillars > .wp-block-group > .wp-block-heading {
	text-align: center;
	font-size: 1.5rem;
	margin-bottom: 0.75rem;
}

@media (min-width: 768px) {
	.wi-pillars > .wp-block-group > .wp-block-heading {
		font-size: 1.875rem;
	}
}

/* Section subtext — text-muted-foreground max-w-xl mx-auto + mb-10 from wrapper */
.wi-pillars > .wp-block-group > p {
	text-align: center;
	max-width: 36rem;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 2.5rem;
}

/* Card h3 — font-bold text-lg mb-3 */
.wi-pillars .wp-block-heading {
	font-weight: 700;
	font-size: 1.125rem;
	margin-bottom: 0.75rem;
}

/* Card paragraph — text-sm leading-relaxed (overrides shared .wi-body-sm) */
.wi-pillars .wp-block-group.has-white-background-color .wi-body-sm {
	font-size: 0.875rem;
	line-height: 1.625;
}

/* ==========================================================================
   SHARED TYPOGRAPHY UTILITIES
   ========================================================================== */

.wi-body-lg {
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--wp--preset--color--muted);
}

.wi-body-lg--emphasis {
	font-weight: 500;
	color: var(--wp--preset--color--navy);
}

.wi-why-we-exist {
	padding-left: var(--wp--preset--spacing--md);
	padding-right: var(--wp--preset--spacing--md);
}

.wi-why-we-exist__heading {
	font-size: 1.5rem;
	margin-bottom: 1.5rem;
}

@media (min-width: 768px) {
	.wi-why-we-exist__heading {
		font-size: 1.875rem;
	}
}

.wi-why-we-exist .wi-body-lg + .wi-body-lg {
	margin-top: 1rem;
}

.wi-body-sm {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted);
}

/* ==========================================================================
   CONTACT BODY SECTION
   ========================================================================== */

/* Override WP white background preset */
.wi-contact-body {
	background: #F2F2F2 !important;
	padding: var(--wp--preset--spacing--2xl) var(--wp--preset--spacing--md);
}

/* Form card */
.wi-contact-form-card {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	padding: 2rem;
	height: 100%;
}

.wi-contact-form-card__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1.375rem;
	color: var(--wp--preset--color--navy);
	margin: 0 0 0.75rem;
}

.wi-contact-form-card__desc {
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.65;
	margin: 0 0 1.5rem;
}

/* Offices sidebar heading */
.wi-offices-sidebar__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1.0625rem;
	color: var(--wp--preset--color--navy);
	margin: 0 0 0.75rem;
}

/* Office card stack */
.wi-office-cards {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-block-start: 0 !important;
}

.wi-office-card {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.07);
	padding: 14px 16px;
	margin-bottom: 10px;
}

.wi-office-card__header {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
}

.wi-office-card__city {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1rem;
	color: var(--wp--preset--color--navy);
}

.wi-office-card__badge {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.75rem;
	font-weight: 400;
	color: #2E86AB;
}

.wi-office-card__row {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.875rem;
	color: rgb(94, 111, 141);
	padding-bottom: 8px;
}

.wi-office-card__row svg {
	flex-shrink: 0;
	width: 12px;
	height: 12px;
}

.wi-office-card__coverage {
	font-size: 0.75rem;
	font-weight: 400;
	color: var(--wp--preset--color--muted);
	opacity: 0.7;
	margin: 4px 0 0;
}

.wi-office-card__tel {
	font-size: 0.875rem;
	font-weight: 400;
	color: rgb(94, 111, 141);
	text-decoration: none;
}

.wi-office-card__tel:hover {
	color: var(--wp--preset--color--navy);
	text-decoration: none;
}

.wi-office-card .wp-block-paragraph { margin-bottom: 0 !important; }

.wi-office-card :where(.is-layout-flow) > * {
	margin-block-start: 0 !important;
}

.wi-office-card > * {
	margin-block-start: 0 !important;
}

/* Override WP core layout-flow margin-block-start preset — applied globally to .is-layout-flow children */
.wi-office-cards > * {
	margin-block-start: 0 !important;
}

.wi-offices-contacts > * {
	margin-block-start: 0 !important;
}

/* Offices contact row (email + LinkedIn) */
.wi-offices-contacts {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-top: 14px;
}

.wi-offices-contacts__link {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	transition: color 0.2s ease;
	word-break: break-all;
}

.wi-offices-contacts__link:hover {
	color: var(--wp--preset--color--blue);
}

.wi-offices-contacts__link svg {
	flex-shrink: 0;
	width: 12px;
	height: 12px;
	color: #2E86AB;
}

.wi-offices-contacts__link a {
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	font-size: 0.875rem;
	transition: color 0.2s ease;
}

.wi-offices-contacts__link a:hover {
	color: var(--wp--preset--color--blue);
}

.wi-offices-contacts__link a svg {
	flex-shrink: 0;
	width: 14px;
	height: 14px;
	color: var(--wp--preset--color--blue);
}

/* SVG icon colour — all office card icons use currentColor; enforce blue */
.wi-office-card__row svg {
	color: #2E86AB;
}

/* ==========================================================================
   WHAT HAPPENS NEXT — 3-step section
   ========================================================================== */

/* Override WP light-grey background preset */
.wi-what-happens-next {
	background: #fff !important;
	padding: var(--wp--preset--spacing--2xl) var(--wp--preset--spacing--md);
	padding-left: var(--wp--preset--spacing--md);
	padding-right: var(--wp--preset--spacing--md);
}

.wi-what-happens-next .wp-block-heading {
	font-weight: 700;
	margin-bottom: var(--wp--preset--spacing--sm);
}

.wi-what-happens-next__steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--lg);
}

@media (max-width: 600px) {
	.wi-what-happens-next__steps {
		grid-template-columns: 1fr;
	}
}

.wi-step {
	text-align: center;
}

.wi-step__icon-wrap {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #EBF4FA;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 1rem;
	color: #2E86AB;
}

.wi-step__icon-wrap svg {
	color: #2E86AB;
}

.wi-step__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1rem;
	color: var(--wp--preset--color--navy);
	margin: 0 0 0.5rem;
}

.wi-step__desc {
	font-size: 0.9rem;
	color: var(--wp--preset--color--muted);
	margin: 0;
	line-height: 1.6;
}

/* ==========================================================================
   FAQ ACCORDION
   ========================================================================== */

.wi-faq {
	background: var(--wp--preset--color--light-grey);
	padding: var(--wp--preset--spacing--2xl) var(--wp--preset--spacing--md);
	padding-left: var(--wp--preset--spacing--md);
	padding-right: var(--wp--preset--spacing--md);
}

.wi-faq .wp-block-heading {
	font-weight: 700;
	margin-bottom: var(--wp--preset--spacing--xl);
}

.wi-faq-list details {
	background: #fff;
	border-radius: 8px;
	border: 1px solid var(--wp--preset--color--border);
	margin-bottom: 8px;
	margin-block-start: 0 !important;
	overflow: hidden;
}

.wi-faq-list summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 20px 24px;
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1rem;
	color: var(--wp--preset--color--navy);
	cursor: pointer;
	list-style: none;
	-webkit-user-select: none;
	user-select: none;
}

.wi-faq-list summary::-webkit-details-marker {
	display: none;
}

.wi-faq-list summary::after {
	content: "";
	display: block;
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236B7E9A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
	transition: transform 0.2s ease;
}

.wi-faq-list details[open] summary::after {
	transform: rotate(180deg);
}

.wi-faq-list .wi-faq-body,
.wi-faq-list .wp-block-details > p {
	padding: 0 24px 20px;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.7;
}

.wi-faq-list .wi-faq-body p,
.wi-faq-list .wp-block-details > p {
	margin: 0;
}

/* ==========================================================================
   CONTACT FORM SECTION
   ========================================================================== */

.wi-contact-form .wi-contact-description {
	margin-block-start: 0.5rem;
	color: rgba(255, 255, 255, 0.8);
}

.wi-contact-form a {
	color: #ffffff;
	text-decoration: underline;
	cursor: pointer;
}

.wi-contact-form a:hover,
.wi-contact-form a:visited {
	color: #ffffff;
}

/* Section gutters — inner constrained group */
.wi-contact-form > .wp-block-group,
.wi-contact-body > .wp-block-group {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-contact-form > .wp-block-group,
	.wi-contact-body > .wp-block-group {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-contact-form > .wp-block-group,
	.wi-contact-body > .wp-block-group {
		padding-left: 0;
		padding-right: 0;
	}
}

/* ==========================================================================
   CONTACT CTA STRIP
   ========================================================================== */

.wi-contact-cta-strip {
	background: linear-gradient(135deg, hsla(218, 47%, 14%, 1) 0%, hsla(218, 47%, 20%, 1) 100%);
	padding: var(--wp--preset--spacing--xl) var(--wp--preset--spacing--md);
}

.wi-cta-strip__inner {
	position: relative;
	z-index: 1;
	text-align: center;
}

.wi-cta-strip__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: clamp(1.375rem, 3vw, 1.75rem);
	color: #fff;
	margin: 0 0 0.5rem;
}

.wi-cta-strip__desc {
	font-size: 0.9375rem;
	color: rgba(255, 255, 255, 0.7);
	margin: 0 0 1.5rem;
}

/* Large phone tel: link — not a button */
.wi-cta-strip__tel {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff;
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 800;
	font-size: clamp(1.5rem, 4vw, 2.25rem);
	text-decoration: none;
	transition: color 0.2s ease;
	margin-bottom: 1.5rem;
}

.wi-cta-strip__tel:hover {
	color: var(--wp--preset--color--gold);
	text-decoration: none;
}

.wi-cta-strip__tel svg {
	flex-shrink: 0;
}

.wi-cta-strip__actions {
	margin-top: 0.25rem;
}

/* White outline "Back to Form" button */
.wi-cta-strip__back-btn,
.wi-services-cta-close__tel {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	border: 2px solid rgba(255, 255, 255, 0.3);
	color: #fff;
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 600;
	font-size: 1rem;
	padding: 10px 24px;
	border-radius: 4px;
	text-decoration: none;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.wi-cta-strip__back-btn:hover,
.wi-services-cta-close__tel:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.7);
	color: #fff;
}

/* ==========================================================================
   SERVICE CARDS
   ========================================================================== */

/* Equal-height columns: override WP flex columns so cards stretch to match tallest */
.wi-services .wp-block-columns {
	align-items: stretch;
	gap: 1rem;
}

.wi-services .wp-block-column {
	display: flex;
	flex-direction: column;
}

.wi-service-card {
	flex: 1;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	padding: 1.25rem;
	box-shadow: var(--wp--preset--shadow--card-md);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
	gap: 0;
}

.wi-service-card > * {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.wi-service-card h3.wp-block-heading {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 0.375rem !important;
}

.wi-service-card .wi-body-sm {
	font-size: 0.875rem;
	line-height: 1.55;
	margin-bottom: 0.75rem !important;
}

.wi-service-card .wi-stat {
	font-size: 0.7rem;
	font-weight: 500;
	margin-bottom: 0.5rem !important;
}

.wi-service-card .has-blue-color {
	font-size: 0.875rem;
	font-weight: 600;
	margin-top: auto !important;
}

.wi-service-card:hover {
	box-shadow: var(--wp--preset--shadow--card-hover);
	transform: translateY(-0.25rem);
}

/* Card header: icon + label row */
.wi-service-card-header {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem !important;
}

.wi-service-icon {
	width: 36px;
	height: 36px;
	background: rgba(46, 134, 171, 0.10);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.wi-service-label {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--blue);
}

/* Stat line */
.wi-stat {
	color: #2E86AB;
	text-decoration: none;
}

/* Remove underline from card links */
.wi-service-card a {
	text-decoration: none;
}

/* ==========================================================================
   WI-SERVICES-NAVY SECTION
   ========================================================================== */

/* card-hover: transition background opacity */
.wi-services-navy-card {
	background: rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 8px;
	padding: var(--wp--preset--spacing--lg);
	height: 100%;
	transition: background 300ms;
}

.wi-services-navy-card__icon {
	width: 48px;
	height: 48px;
	background: rgba(255, 255, 255, 0.08);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
}

.wi-services-navy-card h3 {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1.25rem;
	color: #ffffff;
	margin: 0 0 4px 0;
}

.wi-services-navy-card p {
	font-size: 0.9375rem;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.65;
	margin: 0;
}

.wi-services-navy-card:hover {
	background: rgba(255, 255, 255, 0.1) !important;
}

/* Service tagline — 12px gold below the card heading */
.wi-services-navy-tagline {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--wp--preset--color--gold);
	margin-bottom: 0.75rem;
}

@media (min-width: 768px) {
	.wi-services-navy-card p {
		font-size: 0.875rem;
	}
}

/* ==========================================================================
   CARD BASE
   ========================================================================== */

.wi-card {
	background-color: var(--wp--preset--color--white);
	border-radius: 8px;
	box-shadow: var(--wp--preset--shadow--card);
	overflow: hidden;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.wi-card:hover {
	box-shadow: var(--wp--preset--shadow--card-hover);
	transform: translateY(-0.25rem);
}

.wi-card--large {
	border-radius: 12px;
}

/* ==========================================================================
   SCREEN READER / ACCESSIBILITY
   ========================================================================== */

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	clip: auto !important;
	clip-path: none;
	display: block;
	font-size: 1rem;
	height: auto;
	left: 1rem;
	padding: 1rem 1.5rem;
	top: 1rem;
	width: auto;
	z-index: 999;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
	font-weight: 700;
	border-radius: 4px;
}

/* ==========================================================================
   PAGE HERO — INNER PAGES (.wi-page-hero)
   ========================================================================== */

.wi-page-hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, hsla(218, 47%, 16%, 0.97) 0%, hsla(218, 47%, 22%, 0.95) 100%);
	padding: 6rem var(--wp--preset--spacing--md) 4rem;
}

.wi-page-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.03;
	background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	pointer-events: none;
}

.wi-page-hero__desc {
	font-size: 1.125rem;
	color: rgba(255, 255, 255, 0.8);
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}

.wi-page-hero--left {
	text-align: left;
}

.wi-page-hero--left .wp-block-heading {
	text-align: left !important;
	margin-left: 0 !important;
}

.wi-page-hero--left .wi-page-hero__desc {
	text-align: left !important;
	margin-left: 0 !important;
	margin-right: auto !important;
	max-width: 48rem;
}


/* Body paragraph — wi-paragraph-section + wi-paragraph reusable pattern */
.wi-paragraph-section {
	padding: 3rem 1.5rem 2rem;
}

@media (min-width: 768px) {
	.wi-paragraph-section {
		padding: 3rem 2rem 2rem;
	}
}

.wi-paragraph-section__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.wi-paragraph-section p,
.wi-paragraph-section ul,
.wi-paragraph-section ol {
	color: var(--wp--preset--color--muted) !important;
	font-size: 1rem;
	line-height: 1.625;
	max-width: 56rem;
	margin: 0;
}

@media (min-width: 768px) {
	.wi-paragraph-section p,
	.wi-paragraph-section ul,
	.wi-paragraph-section ol {
		font-size: 1.125rem;
	}
}

/* Content block — left-aligned heading + paragraphs within grid */
.wi-content-block {
	padding: 3rem 1rem 2rem;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

@media (min-width: 768px) {
	.wi-content-block {
		padding: 3rem 2rem 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-content-block {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-content-block__inner {
	max-width: 760px;
	margin-left: 0;
	margin-right: auto;
}

.wi-content-block__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 1rem;
	line-height: 1.25;
}

@media (min-width: 768px) {
	.wi-content-block__heading {
		font-size: 1.75rem;
	}
}

.wi-content-block__inner p,
.wi-content-block__inner ul,
.wi-content-block__inner ol {
	color: var(--wp--preset--color--muted);
	font-size: 1rem;
	line-height: 1.625;
	margin: 0 0 1rem;
}

@media (min-width: 768px) {
	.wi-content-block__inner p,
	.wi-content-block__inner ul,
	.wi-content-block__inner ol {
		font-size: 1.125rem;
	}
}

/* ==========================================================================
   ICON GRID — 2x2 cards with icon, title, description, button
   ========================================================================== */

.wi-icon-grid {
	padding: 3rem 1rem;
}

@media (min-width: 768px) {
	.wi-icon-grid {
		padding: 4rem 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-icon-grid {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-icon-grid__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.wi-icon-grid__row {
	gap: 2rem !important;
	margin-bottom: 2rem;
}

.wi-icon-grid__row:last-child {
	margin-bottom: 0;
}

.wi-icon-grid__card {
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	padding: 2rem;
	display: flex;
	flex-direction: column;
}

.wi-icon-grid__icon {
	color: var(--wp--preset--color--gold);
	margin-bottom: 1rem;
}

.wi-icon-grid__icon svg {
	display: block;
}

.wi-icon-grid__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 1rem;
	line-height: 1.3;
}

.wi-icon-grid__text {
	color: var(--wp--preset--color--muted) !important;
	font-size: 0.9375rem;
	line-height: 1.65;
	margin: 0 0 1rem;
}

.wi-icon-grid__card > .wp-block-buttons {
	margin-top: auto;
	padding-top: 1.5rem;
}

.wi-icon-grid__btn .wp-block-button__link {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy) !important;
	border: 2px solid var(--wp--preset--color--navy) !important;
	border-radius: 8px;
	padding: 0.625rem 1.5rem;
	background: transparent !important;
	transition: background 0.2s ease, color 0.2s ease;
}

.wi-icon-grid__btn .wp-block-button__link:hover {
	background: var(--wp--preset--color--navy) !important;
	color: #ffffff !important;
}

/* ==========================================================================
   DOWNLOAD CTA — image + blurb + download button
   ========================================================================== */

.wi-download-cta {
	padding: 3rem 1rem;
	background-color: var(--wp--preset--color--light-grey);
}

@media (min-width: 768px) {
	.wi-download-cta {
		padding: 4rem 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-download-cta {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-download-cta__cols {
	max-width: 780px;
	margin: 0 auto;
	align-items: center !important;
	gap: 2rem !important;
	flex-wrap: wrap !important;
}

.wi-download-cta__image-col {
	flex-basis: 100% !important;
	text-align: center;
}

.wi-download-cta__image img {
	border-radius: 8px;
	width: 163px;
	height: 233px;
	object-fit: cover;
	box-shadow: 0 10px 30px rgba(30, 58, 95, 0.12);
}

.wi-download-cta__content-col {
	flex-basis: 100% !important;
}

@media (min-width: 768px) {
	.wi-download-cta__cols {
		flex-wrap: nowrap !important;
	}

	.wi-download-cta__image-col {
		flex-basis: auto !important;
		flex-grow: 0 !important;
		flex-shrink: 0 !important;
		width: 163px !important;
	}

	.wi-download-cta__content-col {
		flex-basis: 0 !important;
		flex-grow: 1 !important;
	}
}

.wi-download-cta__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 1rem;
	line-height: 1.25;
}

@media (min-width: 768px) {
	.wi-download-cta__heading {
		font-size: 1.75rem;
	}
}

.wi-download-cta__desc {
	color: var(--wp--preset--color--muted) !important;
	font-size: 1rem;
	line-height: 1.65;
	margin: 0 0 1.5rem;
}

@media (min-width: 768px) {
	.wi-download-cta__desc {
		font-size: 1.125rem;
	}
}

.wi-download-cta__btn .wp-block-button__link {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 600;
	font-size: 1rem;
	border-radius: 8px;
	padding: 0.75rem 2rem;
	background-color: var(--wp--preset--color--gold) !important;
	color: var(--wp--preset--color--navy) !important;
	transition: opacity 0.2s ease;
}

.wi-download-cta__btn .wp-block-button__link:hover {
	opacity: 0.9;
}

/* ==========================================================================
   NAVY GRADIENT BACKGROUNDS — sections using inline gradients previously
   ========================================================================== */

/* Contact Zoho Form section */
.wi-contact-form {
	background: linear-gradient(135deg, var(--wp--preset--color--navy) 0%, #152d4a 100%);
}

/* Sectors / Who We Work With / Project Types */
.wi-sectors,
.wi-who-we-work-with {
	background: linear-gradient(135deg, var(--wp--preset--color--navy) 0%, #152d4a 100%);
}

/* Services — Navy Cards (How We Help) */
.wi-services-navy {
	background: linear-gradient(135deg, hsla(218, 47%, 14%, 1) 0%, hsla(218, 47%, 20%, 1) 100%);
}

/* ==========================================================================
   CTA BANNER — text colour classes
   ========================================================================== */

.wi-cta-banner {
	padding-top: 4rem;
	padding-bottom: 4rem;
}

.wi-cta-banner__desc {
	color: rgba(255, 255, 255, 0.8);
}

/* Outline phone/tel link in the CTA banner */
.wi-cta-banner-tel .wp-block-button__link,
.wi-cta-banner-tel__link {
	display: inline-block;
	background: transparent;
	border: 2px solid rgba(255, 255, 255, 0.5);
	color: #fff;
	font-weight: 600;
	font-size: 1rem;
	padding: 12px 30px;
	border-radius: 8px;
	font-family: var(--wp--preset--font-family--roboto);
	text-decoration: none;
}

.wi-cta-banner-tel .wp-block-button__link:hover,
.wi-cta-banner-tel__link:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.7);
	color: #fff;
}

/* ==========================================================================
   SOCIAL PROOF STATS — number and label typography
   ========================================================================== */

.wi-stat-number {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 800;
	font-size: clamp(2rem, 4vw, 3rem);
	text-align: center;
	line-height: 1.1;
	margin-bottom: 4px;
}

.wi-stat-label {
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.7);
	text-align: center;
	text-transform: uppercase;
	margin-top: 0;
}

.wi-stats-grid .wp-block-column {
	text-align: center;
}

/* ==========================================================================
   TEAM CARDS
   ========================================================================== */

.wi-team-card {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	overflow: hidden;
}

.wi-team-card__body {
	padding: 1.25rem;
}

.wi-team-card h3.wp-block-heading {
	font-size: 1.125rem;
	margin-bottom: 2px;
}

.wi-team-card .wi-body-sm {
	font-size: 0.875rem;
	line-height: 1.6;
	margin-bottom: 0.5rem !important;
}

.wi-team-card .wi-body-sm:last-child {
	margin-bottom: 0 !important;
}

.wi-team-card__body > * {
	margin-block-start: 0 !important;
}

.wi-team-card__body > * + * {
	margin-block-start: 0.5rem !important;
}

.wi-team .wp-block-columns {
	align-items: stretch !important;
}

.wi-team .wp-block-column {
	display: flex !important;
	flex-direction: column !important;
}

.wi-team .wi-team-card {
	height: 100% !important;
	display: flex !important;
	flex-direction: column !important;
}

.wi-team .wi-team-card__body {
	flex: 1 !important;
	display: flex !important;
	flex-direction: column !important;
}

.wi-team-card__role {
	font-weight: 600;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--blue);
	margin-bottom: var(--wp--preset--spacing--sm);
}

.wi-team-cta {
	margin-top: 2rem;
}

.wi-team-cta a {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 600;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--blue);
	text-decoration: none;
}

.wi-team-cta a:hover {
	text-decoration: underline;
}

/* ==========================================================================
   MEMBERSHIPS SECTION — inner white cards
   ========================================================================== */

.wi-memberships .wi-membership-card {
	padding: var(--wp--preset--spacing--xl) var(--wp--preset--spacing--lg);
	text-align: center;
	border-radius: 8px;
}

.wi-memberships h3.wp-block-heading {
	font-size: 1.0625rem;
	margin-bottom: var(--wp--preset--spacing--sm);
}

.wi-memberships .wp-block-columns {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	gap: 2rem !important;
	align-items: center !important;
}

.wi-memberships .wp-block-column {
	flex: 0 0 auto !important;
	width: 224px !important;
	max-width: 224px !important;
}

.wi-memberships .wi-membership-card p {
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted);
	text-align: center;
	margin: 0;
}

.wi-membership-card__icon {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: rgba(30, 58, 95, 0.05);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto var(--wp--preset--spacing--md) auto;
}

/* ==========================================================================
   SERVICES NAVY — intro description paragraph
   ========================================================================== */

.wi-services-navy__desc {
	color: rgba(255, 255, 255, 0.7);
	font-size: 1rem;
	margin-bottom: 3rem;
	text-align: center;
}

/* ==========================================================================
   SERVICES HERO
   ========================================================================== */

.wi-services-hero {
	padding: 6rem var(--wp--preset--spacing--md) 3.5rem;
	position: relative;
	overflow: hidden;
}

.wi-services-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.03;
	background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	pointer-events: none;
	z-index: 0;
}

.wi-services-hero__inner {
	max-width: 1200px;
	position: relative;
	z-index: 1;
}

.wi-services-hero__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 800;
	font-size: clamp(1.875rem, 4vw, 3.125rem);
	color: #ffffff;
	line-height: 1.15;
	margin: 0 0 1rem;
}

.wi-services-hero__heading-blue {
	color: var(--wp--preset--color--blue);
}

.wi-services-hero__subtitle {
	font-size: 1.0625rem;
	color: rgba(255, 255, 255, 0.8);
	margin: 0 0 1rem;
}

.wi-services-hero__badges {
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: 2rem;
}

.wi-services-hero__badge-divider {
	color: rgba(255, 255, 255, 0.2);
}

.wi-services-hero__anchors {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.wi-services-hero__anchor {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	color: #ffffff;
	font-size: 0.875rem;
	font-weight: 500;
	padding: 0.5rem 1rem;
	border-radius: 9999px;
	text-decoration: none;
	transition: background-color 0.2s;
}

.wi-services-hero__anchor:hover {
	background-color: rgba(255, 255, 255, 0.1);
}

@media (max-width: 767px) {
	.wi-services-hero {
		padding: 4rem var(--wp--preset--spacing--md) 2.5rem;
	}
}

/* ==========================================================================
   SERVICES LIFECYCLE STRIP
   ========================================================================== */

.wi-services-lifecycle {
	padding: 2.5rem var(--wp--preset--spacing--md);
}

.wi-lifecycle-strip {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

.wi-lifecycle-items {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.wi-lifecycle-item {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.wi-lifecycle-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none;
	color: var(--wp--preset--color--navy);
}

.wi-lifecycle-icon {
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 50%;
	background-color: rgba(46, 134, 171, 0.1);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--blue);
	transition: background-color 0.2s;
}

.wi-lifecycle-btn:hover .wi-lifecycle-icon {
	background-color: rgba(46, 134, 171, 0.2);
}

.wi-lifecycle-label {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--wp--preset--color--navy);
}

.wi-lifecycle-arrow {
	display: flex;
	align-items: center;
	color: var(--wp--preset--color--muted);
	margin-top: -1.25rem;
	gap: 0;
}

.wi-lifecycle-arrow__line {
	display: block;
	width: 3rem;
	height: 1px;
	background-color: var(--wp--preset--color--border);
}

.wi-lifecycle-tagline {
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	text-align: center;
	max-width: 36rem;
	margin: 0;
}

/* ==========================================================================
   CONTACT FORM — white inner card
   ========================================================================== */

.wi-contact-form__card {
	border-radius: 8px;
	padding: var(--wp--preset--spacing--xl);
}

/* Zoho HTML form — styled to match theme */
.wi-zoho-form__field {
	margin-bottom: 1.25rem;
}

.wi-zoho-form__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	margin-bottom: 1.25rem;
}

@media (min-width: 640px) {
	.wi-zoho-form__row {
		grid-template-columns: 1fr 1fr;
	}

	.wi-zoho-form__row .wi-zoho-form__field {
		margin-bottom: 0;
	}
}

.wi-zoho-form__label {
	display: block;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	margin-bottom: 0.375rem;
}

.wi-zoho-form__req {
	color: var(--wp--preset--color--gold);
}

.wi-zoho-form__input,
.wi-zoho-form__select,
.wi-zoho-form__textarea {
	width: 100%;
	font-family: inherit;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
	background: #f9fafb;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
	padding: 0.625rem 0.75rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.wi-zoho-form__input:focus,
.wi-zoho-form__select:focus,
.wi-zoho-form__textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--blue);
	box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}

.wi-zoho-form__select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231E3A5F' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	padding-right: 2.5rem;
}

.wi-zoho-form__textarea {
	resize: vertical;
	min-height: 120px;
}

.wi-zoho-form__file {
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
}

.wi-zoho-form__file::file-selector-button {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	background: #f3f4f6;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
	padding: 0.5rem 1rem;
	margin-right: 0.75rem;
	cursor: pointer;
	transition: background 0.2s ease;
}

.wi-zoho-form__file::file-selector-button:hover {
	background: #e5e7eb;
}

.wi-zoho-form__submit {
	display: block;
	width: 100%;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	background: var(--wp--preset--color--gold);
	border: none;
	border-radius: 8px;
	padding: 0.875rem 2rem;
	margin-top: 1.5rem;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.wi-zoho-form__submit:hover {
	opacity: 0.9;
}

.wi-zoho-form__input:invalid.is-touched,
.wi-zoho-form__select:invalid.is-touched,
.wi-zoho-form__textarea:invalid.is-touched {
	border-color: #dc2626;
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
}

.wi-zoho-form__error {
	display: none;
	font-size: 0.8125rem;
	color: #dc2626;
	margin-top: 0.25rem;
}

.is-touched:invalid ~ .wi-zoho-form__error {
	display: block;
}

/* ==========================================================================
   SERVICE DETAIL SECTIONS — content spacing
   ========================================================================== */

/* Italic tagline below service section H2 */
.wi-service-tagline {
	font-style: italic;
	font-size: 1.125rem;
	margin-bottom: var(--wp--preset--spacing--md);
}

/* Body paragraphs within service detail sections */
.wi-service-detail .wp-block-paragraph {
	margin-bottom: var(--wp--preset--spacing--md);
}

.wi-service-detail h2.wp-block-heading {
	font-weight: 700;
	margin-bottom: var(--wp--preset--spacing--sm);
}

/* ==========================================================================
   ABOUT / AUTHORITY — heading and paragraph spacing
   ========================================================================== */

.wi-team h2.wp-block-heading,
.wi-memberships h2.wp-block-heading,
.wi-process-steps h2.wp-block-heading,
.wi-reviews h2.wp-block-heading,
.wi-services h2.wp-block-heading,
.wi-services-navy h2.wp-block-heading,
.wi-case-studies h2.wp-block-heading,
.wi-cta-banner h2.wp-block-heading,
.wi-locations h2.wp-block-heading,
.wi-authority h2.wp-block-heading {
	font-weight: 700;
	margin-bottom: var(--wp--preset--spacing--sm);
}

/* Reusable muted subtitle below section H2 */
.wi-section-subtitle {
	margin-bottom: var(--wp--preset--spacing--xl);
}

/* ==========================================================================
   SERVICE DETAIL — icon + heading row
   ========================================================================== */

/* Flex row containing the icon box and the H2 heading */
.wi-service-detail-icon-row {
	display: flex !important;
	align-items: center !important;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.wi-service-detail-icon-row .wp-block-heading {
	margin-bottom: 0 !important;
	margin-top: 0 !important;
}

/* Icon box — matches Loveable 40×40 rounded square with gold tint */
.wi-service-detail-icon-box {
	width: 40px;
	height: 40px;
	background: rgba(240, 165, 0, 0.10);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

/* Chevron bullet list inside service detail copy column */
.wi-service-chevron-list {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--wp--preset--spacing--md);
}

.wi-service-chevron-list li {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
	margin-bottom: 0.625rem;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.6;
}

.wi-service-chevron-list li svg {
	flex-shrink: 0;
	margin-top: 3px;
	color: var(--wp--preset--color--gold);
}

/* Bullet list wrapper — flex column with gap and top margin (Fix 2) */
.wi-service-detail .wi-service-list {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	margin-top: 1rem;
}


/* Section horizontal gutters — target inner constrained group, mobile-first */
.wi-about-cta-close > .wp-block-group,
.wi-how-we-help > .wp-block-group,
.wi-memberships > .wp-block-group,
.wi-services > .wp-block-group,
.wi-services-navy > .wp-block-group,
.wi-team > .wp-block-group,
.wi-testimonials-about > .wp-block-group,
.wi-who-we-help > .wp-block-group,
.wi-service-detail > .wp-block-group,
.wi-services-sectors > .wp-block-group,
.wi-where-we-worked > .wp-block-group,
.wi-why-independence > .wp-block-group,
.wi-services-cta-close > .wp-block-group {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-about-cta-close > .wp-block-group,
	.wi-how-we-help > .wp-block-group,
	.wi-memberships > .wp-block-group,
	.wi-services > .wp-block-group,
	.wi-services-navy > .wp-block-group,
	.wi-team > .wp-block-group,
	.wi-testimonials-about > .wp-block-group,
	.wi-who-we-help > .wp-block-group,
	.wi-service-detail > .wp-block-group,
	.wi-services-sectors > .wp-block-group,
	.wi-where-we-worked > .wp-block-group,
	.wi-why-independence > .wp-block-group,
	.wi-services-cta-close > .wp-block-group {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1280px) {
	.wi-about-cta-close > .wp-block-group,
	.wi-how-we-help > .wp-block-group,
	.wi-memberships > .wp-block-group,
	.wi-services > .wp-block-group,
	.wi-services-navy > .wp-block-group,
	.wi-team > .wp-block-group,
	.wi-testimonials-about > .wp-block-group,
	.wi-who-we-help > .wp-block-group,
	.wi-service-detail > .wp-block-group,
	.wi-services-sectors > .wp-block-group,
	.wi-where-we-worked > .wp-block-group,
	.wi-why-independence > .wp-block-group,
	.wi-services-cta-close > .wp-block-group {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Testing method full-width card stack spacing */
.wi-service-test .wi-test-full-width-cards > div {
	margin-bottom: 12px;
}

.wi-service-test .wi-test-full-width-cards > div:last-child {
	margin-bottom: 0;
}

.wi-service-test .wi-test-full-width-cards + div {
	margin-top: 0 !important;
}

/* ==========================================================================
   SERVICES PAGE — WHO WE WORK WITH (white bg card grid)
   ========================================================================== */

.wi-services-sector-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin-top: 2rem;
}

@media (min-width: 640px) {
	.wi-services-sector-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wi-services-sector-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.wi-services-sector-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wi-services-sector-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 25px -5px rgba(27, 45, 75, 0.15), 0 4px 10px -5px rgba(27, 45, 75, 0.1);
	border-left: 4px solid var(--wp--preset--color--gold);
}

.wi-services-sector-card-header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
}

.wi-services-sector-card-header h3 {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0;
}

.wi-services-sector-headline {
	font-style: italic;
	color: var(--wp--preset--color--blue);
	font-size: 0.9375rem;
	margin: 0 0 0.75rem 0;
	line-height: 1.4;
}

.wi-services-sector-body {
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.6;
	flex: 1;
	margin: 0 0 1rem 0;
}

.wi-services-sector-learn-more {
	margin: 0;
}

.wi-services-sector-learn-more a {
	color: var(--wp--preset--color--gold);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
}

.wi-services-sector-learn-more a:hover {
	text-decoration: underline;
}

/* ==========================================================================
   SERVICES PAGE — WHERE WE HAVE WORKED pill tags
   ========================================================================== */

.wi-project-pills {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-bottom: 2.5rem;
}

.wi-project-pill {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	padding: 8px 16px;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--wp--preset--color--navy);
	display: inline-block;
}

/* ==========================================================================
   SERVICES PAGE — WHY INDEPENDENCE
   ========================================================================== */

/* Left column — gold border-left points */
.wi-independence-point {
	border-left: 4px solid var(--wp--preset--color--gold);
	padding-left: 20px;
}

.wi-independence-point h3 {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 8px 0;
}

.wi-independence-point p {
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
	margin: 0;
	line-height: 1.7;
}

/* Right column — navy credential card */
.wi-independence-card {
	background: var(--wp--preset--color--navy);
	border-radius: 12px;
	padding: 28px;
	box-sizing: border-box;
}

.wi-independence-credential {
	margin-bottom: 20px;
}

.wi-independence-credential + .wi-independence-credential {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: 20px;
}

.wi-independence-credential:last-child {
	padding-bottom: 0;
	margin-bottom: 0;
}

.wi-independence-credential-row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 8px;
}

.wi-independence-credential-row svg {
	flex-shrink: 0;
	margin-top: 2px;
	width: 32px;
	height: 32px;
}

.wi-independence-credential-heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1rem;
	color: #fff;
	margin: 0 0 2px 0;
}

.wi-independence-credential-subtext {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
}

.wi-independence-credential-body {
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.7);
	margin: 8px 0 0 0;
	line-height: 1.5;
}

/* ==========================================================================
   ABOUT PAGE — HOW WE HELP (navy bg 4-col card grid)
   ========================================================================== */

.wi-how-we-help-subtitle {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.875rem;
}

.wi-how-we-help-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

@media (min-width: 640px) {
	.wi-how-we-help-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wi-how-we-help-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.wi-how-we-help-card {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.10);
	border-radius: 12px;
	padding: 24px;
	transition: background 0.2s ease;
}

.wi-how-we-help-card:hover {
	background: rgba(255, 255, 255, 0.10);
}

.wi-how-we-help-icon {
	width: 40px;
	height: 40px;
	border-radius: 8px;
	background: rgba(240, 165, 0, 0.20);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1rem;
}

.wi-how-we-help-name {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--wp--preset--color--white);
	margin: 0 0 4px 0;
}

.wi-how-we-help-tagline {
	color: var(--wp--preset--color--gold);
	font-size: 0.75rem;
	font-weight: 600;
	margin: 0 0 12px 0;
}

.wi-how-we-help-body {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.875rem;
	line-height: 1.65;
	margin: 0;
}

/* ==========================================================================
   ABOUT PAGE — WHO WE HELP (white bg audience cards)
   ========================================================================== */

.wi-who-we-help-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	margin-bottom: 1.5rem;
}

@media (min-width: 640px) {
	.wi-who-we-help-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.wi-who-we-help-card {
	background: var(--wp--preset--color--light-grey);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	padding: 24px;
}

.wi-who-we-help-card-header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}

.wi-who-we-help-icon {
	width: 40px;
	height: 40px;
	border-radius: 8px;
	background: rgba(240, 165, 0, 0.10);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.wi-who-we-help-card-title {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0;
}

.wi-who-we-help-card-body {
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

.wi-who-we-help-extra-label {
	text-align: center;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--blue);
	margin: 0 0 1.25rem 0;
}

.wi-who-we-help-extra-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin-top: 1.25rem;
}

@media (min-width: 640px) {
	.wi-who-we-help-extra-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.wi-who-we-help-extra-card {
	background: rgba(243, 244, 246, 0.5);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	padding: 20px;
	margin-bottom: 0.75rem;
}

.wi-who-we-help-extra-title {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--wp--preset--color--navy);
	margin: 0 0 4px 0;
}

.wi-who-we-help-extra-body {
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

#wi-who-we-help-toggle {
	cursor: pointer;
	user-select: none;
}

#wi-who-we-help-toggle svg {
	display: inline-block;
	vertical-align: middle;
	margin-left: 4px;
	transition: transform 0.2s ease;
}

#wi-who-we-help-toggle[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

/* ==========================================================================
   ABOUT PAGE — CTA CLOSE (navy bg)
   ========================================================================== */

.wi-cta-close-subtitle {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.875rem;
	max-width: 32rem;
	margin-left: auto;
	margin-right: auto;
}

.wi-cta-close-note {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.75rem;
}

.wi-cta-close-phone-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	margin-top: 1.5rem;
	flex-wrap: wrap;
}

.wi-cta-close-phone-row .tel-link {
	display: flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.875rem;
	text-decoration: none;
	transition: color 0.2s ease;
}

.wi-cta-close-phone-row .tel-link:hover {
	color: var(--wp--preset--color--white);
}

.wi-cta-close-separator {
	color: rgba(255, 255, 255, 0.2);
}

.wi-cta-close-tagline {
	color: rgba(255, 255, 255, 0.4);
	font-size: 0.75rem;
}

/* ==========================================================================
   ABOUT PAGE — TESTIMONIALS (white bg 3-col card grid)
   ========================================================================== */

.wi-testimonials-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.wi-testimonials-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.wi-testimonials-card {
	background: var(--wp--preset--color--light-grey);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	padding: 24px;
	position: relative;
}

.wi-testimonials-quote-icon {
	position: absolute;
	top: 20px;
	right: 20px;
	opacity: 0.2;
}

.wi-testimonials-quote {
	font-style: italic;
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
	line-height: 1.6;
	margin: 0 0 16px 0;
}

.wi-testimonials-attribution {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	margin: 0;
}

/* ==========================================================================
   BREADCRUMBS — shared across Projects hub, sector archive, single project
   ========================================================================== */

.wi-breadcrumbs {
	margin-bottom: 1.5rem;
}

.wi-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.875rem;
}

.wi-breadcrumbs__list li {
	color: rgba(255, 255, 255, 0.7);
}

.wi-breadcrumbs__list a {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	transition: color 0.2s ease;
}

.wi-breadcrumbs__list a:hover {
	color: #ffffff;
}

.wi-breadcrumbs__list [aria-current="page"] {
	color: #ffffff;
}

/* ==========================================================================
   PROJECTS HUB — /projects/ archive
   ========================================================================== */

.wi-projects-hub__intro {
	padding-top: 3rem;
	padding-bottom: 1.5rem;
}

.wi-projects-hub__intro > .wp-block-group {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-projects-hub__intro > .wp-block-group {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-projects-hub__intro > .wp-block-group {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-projects-hub__intro-text {
	font-size: 1rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.75;
	max-width: 56rem;
}

.wi-projects-hub__sectors {
	padding-top: 1.5rem;
	padding-bottom: 4rem;
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-projects-hub__sectors {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-projects-hub__sectors {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Sector card grid — 1-col mobile, 2-col desktop */
.wi-projects-hub-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 2rem !important;
	padding: 0;
}

@media (min-width: 768px) {
	.wi-projects-hub-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Individual sector card */
.wi-projects-hub-card {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	border-radius: 8px;
	overflow: hidden;
	background-color: var(--wp--preset--color--navy);
	background-size: cover;
	background-position: center;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wi-projects-hub-card__link {
	position: absolute;
	inset: 0;
	z-index: 1;
	text-decoration: none;
}

.wi-projects-hub-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(30, 58, 95, 0.2);
}

.wi-projects-hub-card__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
}

.wi-projects-hub-card__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 40%, transparent 100%);
}

.wi-projects-hub-card__footer {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.wi-projects-hub-card__title-group {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.wi-projects-hub-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--gold);
	flex-shrink: 0;
}

.wi-projects-hub-card__icon svg {
	width: 1.5rem;
	height: 1.5rem;
}

.wi-projects-hub-card__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.25rem;
	font-weight: 700;
	color: #ffffff;
	margin: 0;
	line-height: 1.2;
}

@media (min-width: 768px) {
	.wi-projects-hub-card__title {
		font-size: 1.5rem;
	}
}

.wi-projects-hub-card__cta {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--gold);
	white-space: nowrap;
	margin-left: 1rem;
	flex-shrink: 0;
}

.wi-projects-hub-card:hover .wi-projects-hub-card__cta {
	text-decoration: underline;
}

/* Projects Hub Hero — matches wi-about-hero structure */
.wi-projects-hub-hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, hsla(218, 47%, 16%, 0.97) 0%, hsla(218, 47%, 22%, 0.95) 100%);
	padding: 6rem 1.5rem 3.5rem;
}

.wi-projects-hub-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.03;
	background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	pointer-events: none;
}

@media (min-width: 768px) {
	.wi-projects-hub-hero {
		padding: 7rem 2rem 5rem;
	}
}

.wi-projects-hub-hero__inner {
	max-width: 1200px;
	margin: 0 auto;
	width: 100%;
	position: relative;
	z-index: 1;
}

/* Prevent WP flow layout auto-margins from centering the content group */
.wi-projects-hub-hero__inner > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.wi-projects-hub-hero__content {
	max-width: 48rem;
}

.wi-projects-hub-hero__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 800;
	font-size: 1.875rem;
	color: #ffffff;
	line-height: 1.2;
	margin: 0 0 1rem 0;
}

@media (min-width: 768px) {
	.wi-projects-hub-hero__heading {
		font-size: 2.25rem;
	}
}

@media (min-width: 1024px) {
	.wi-projects-hub-hero__heading {
		font-size: 3rem;
	}
}

.wi-projects-hub-hero__desc {
	color: rgba(255, 255, 255, 0.8);
	font-size: 1rem;
	line-height: 1.625;
	margin: 0;
}

.wi-projects-hub-hero a {
	color: #ffffff;
	text-decoration: underline;
	cursor: pointer;
}

.wi-projects-hub-hero a:hover,
.wi-projects-hub-hero a:visited {
	color: #ffffff;
}

@media (min-width: 768px) {
	.wi-projects-hub-hero__desc {
		font-size: 1.125rem;
	}
}

/* Projects hub hero (legacy wp:html — kept for reference, not rendered) */
.wi-projects-hub__hero {
	position: relative;
	overflow: hidden;
	background-color: var(--wp--preset--color--navy);
	padding: 6rem 1rem 2.5rem;
}

@media (min-width: 768px) {
	.wi-projects-hub__hero {
		padding: 7rem 2rem 3.5rem;
	}
}

.wi-projects-hub__hero-bg-pattern {
	position: absolute;
	inset: 0;
	opacity: 0.03;
	background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

.wi-projects-hub__hero-inner {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1rem;
}

@media (min-width: 768px) {
	.wi-projects-hub__hero-inner {
		padding: 0 2rem;
	}
}

.wi-projects-hub__hero-title {
	font-family: var(--wp--preset--font-family--roboto), sans-serif;
	font-size: clamp(1.875rem, 4vw, 3rem);
	font-weight: 800;
	color: #ffffff;
	line-height: 1.2;
	margin: 0 0 1rem 0;
}

.wi-projects-hub__hero-subtitle {
	color: rgba(255, 255, 255, 0.8);
	font-size: 1rem;
	max-width: 48rem;
	margin: 0;
	line-height: 1.6;
}

@media (min-width: 768px) {
	.wi-projects-hub__hero-subtitle {
		font-size: 1.125rem;
	}
}

/* ==========================================================================
   PROJECTS SECTOR ARCHIVE — /projects/[sector-slug]/
   ========================================================================== */

.wi-projects-sector__hero {
	padding-bottom: 3rem;
}

.wi-projects-sector__hero > .wp-block-group {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-projects-sector__hero > .wp-block-group {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-projects-sector__hero > .wp-block-group {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-cs-sector-hero__title {
	font-size: clamp(1.75rem, 4vw, 3rem);
	font-weight: 800;
	color: #ffffff;
	margin: 0 0 0.75rem 0;
	line-height: 1.15;
}

.wi-cs-sector-hero__content {
	width: 100%;
}

.wi-cs-sector-hero__desc {
	font-size: 1.0625rem;
	color: rgba(255, 255, 255, 0.8);
	max-width: 48rem;
	margin: 0;
	line-height: 1.65;
}

/* Sector grid section */
.wi-projects-sector__grid {
	padding-top: 3rem;
	padding-bottom: 3rem;
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-projects-sector__grid {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-projects-sector__grid {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Projects grid (PHP-rendered cards with Load More) */
.wi-projects-grid__cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.wi-projects-grid__cards {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wi-projects-grid__cards {
		grid-template-columns: repeat(3, 1fr);
	}
}

.wi-cs-card__img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.wi-cs-card > a {
	display: block;
}

/* Sector experience section */
.wi-projects-sector__experience {
	border-top: 1px solid var(--wp--preset--color--border);
	padding-top: 3rem;
	padding-bottom: 4rem;
}

.wi-projects-sector__experience > .wi-cs-sector-experience {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-projects-sector__experience > .wi-cs-sector-experience {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-projects-sector__experience > .wi-cs-sector-experience {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-cs-sector-experience {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	align-items: center;
}

@media (min-width: 1024px) {
	.wi-cs-sector-experience {
		grid-template-columns: repeat(2, 1fr);
	}
}

.wi-cs-sector-experience__heading {
	font-size: clamp(1.25rem, 3vw, 1.75rem);
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 1rem 0;
}

.wi-cs-sector-experience__desc {
	font-size: 1rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.75;
	margin: 0;
}

.wi-cs-sector-experience__image-wrap {
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 10px 15px -3px rgba(30, 58, 95, 0.1), 0 4px 6px -4px rgba(30, 58, 95, 0.08);
}

.wi-cs-sector-experience__image {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

/* Pagination */
.wi-projects-sector__pagination {
	margin-top: 3rem;
}

/* Empty state */
.wi-projects-sector__empty {
	padding: 4rem 0;
	color: var(--wp--preset--color--muted);
}

/* ==========================================================================
   CASE STUDY CARD — shared between sector grid, related projects
   ========================================================================== */

.wi-cs-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	overflow: hidden;
	position: relative;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wi-cs-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 15px -3px rgba(30, 58, 95, 0.1), 0 4px 6px -4px rgba(30, 58, 95, 0.08);
}

.wi-cs-card__link {
	position: absolute;
	inset: 0;
	z-index: 1;
	text-decoration: none;
}

.wi-cs-card__img-wrap {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 8px 8px 0 0;
	margin-bottom: var(--wp--style--block-gap, 1rem);
}

.wi-cs-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.wi-cs-card:hover .wi-cs-card__img {
	transform: scale(1.05);
}

/* Also applies when card image is rendered by wp:post-featured-image inside wi-cs-card */
.wi-cs-card .wp-block-post-featured-image img {
	transition: transform 0.3s ease;
}

.wi-cs-card:hover .wp-block-post-featured-image img {
	transform: scale(1.05);
}

.wi-cs-card__body {
	padding: 0 1.25rem 1.25rem;
}

/* Prevent wp-block-group from intercepting as containing block for stretched link */
.wi-cs-card__body.wp-block-group {
	position: static !important;
}

/* Stretched link — covers the entire .wi-cs-card (which has position:relative) */
.wi-cs-card .wp-block-post-title a::after,
.wi-cs-card .wi-cs-card__title a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

.wi-cs-card__title a {
	color: inherit;
	text-decoration: none;
}

.wi-cs-card__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	margin-bottom: 0.75rem;
}

.wi-cs-card__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0;
	line-height: 1.35;
}

.wi-cs-card:hover .wi-cs-card__title {
	color: var(--wp--preset--color--blue);
}

/* wp:post-title inside wi-cs-card */
.wi-cs-card .wp-block-post-title {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
	margin: 0;
}

.wi-cs-card .wp-block-post-title a {
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	transition: color 0.2s ease;
}

.wi-cs-card:hover .wp-block-post-title a {
	color: var(--wp--preset--color--blue);
}

/* ==========================================================================
   BADGES — region, date, sector pills
   ========================================================================== */

.wi-cs-badge {
	display: inline-block;
	border-radius: 999px;
	padding: 0.125rem 0.625rem;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
}

.wi-cs-badge--region {
	background: rgba(31, 127, 163, 0.1);
	color: var(--wp--preset--color--blue);
}

.wi-cs-badge--date {
	background: rgba(30, 58, 95, 0.08);
	color: var(--wp--preset--color--navy);
}

/* Hero badges on single project */
.wi-cs-hero-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.wi-cs-hero-badges .wi-cs-badge--sector {
	background: rgba(31, 127, 163, 0.2);
	color: #ffffff;
}

.wi-cs-hero-badges .wi-cs-badge--region {
	background: rgba(255, 255, 255, 0.1);
	color: #ffffff;
}

/* ==========================================================================
   SINGLE PROJECT — /case-studies/[slug]/
   ========================================================================== */

.wi-single-project__hero {
	padding-bottom: 5rem;
}

.wi-single-project__hero > .wp-block-group {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-single-project__hero > .wp-block-group {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-single-project__hero > .wp-block-group {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-single-project__title.wp-block-post-title {
	font-size: clamp(1.5rem, 3.5vw, 2.75rem);
	font-weight: 800;
	color: #ffffff;
	line-height: 1.15;
	margin: 0;
}

/* Featured image — negative top margin pulls it up over hero.
   Doubled class selector (0-2-0) beats .wi-single-project > * (0-1-0)
   so margin-block-start wins regardless of source order. */
.wi-single-project .wi-single-project__image-section {
	margin-block-start: -1.5rem !important;
	padding-bottom: 0;
}

.wi-single-project__image-section > .wp-block-post-featured-image {
	padding-left: 1rem;
	padding-right: 1rem;
	position: relative;
	z-index: 1;
}

@media (min-width: 768px) {
	.wi-single-project__image-section > .wp-block-post-featured-image {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-single-project__image-section > .wp-block-post-featured-image {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-single-project__featured-image.wp-block-post-featured-image img {
	border-radius: 8px;
	box-shadow: 0 20px 25px -5px rgba(30, 58, 95, 0.2), 0 8px 10px -6px rgba(30, 58, 95, 0.12);
	width: 100%;
	object-fit: cover;
}

/* Content columns */
.wi-single-project__content {
	padding-top: 3rem;
	padding-bottom: 4rem;
}

.wi-single-project__content > .wp-block-columns {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-single-project__content > .wp-block-columns {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-single-project__content > .wp-block-columns {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-single-project__body .wp-block-post-content {
	font-size: 1rem;
	line-height: 1.75;
	color: var(--wp--preset--color--navy);
}

.wi-single-project__sidebar-col.wp-block-column {
	align-self: flex-start;
}

.wi-single-project__body .wi-paragraph-section {
	padding-top: 0;
}

/* Case Study Review blockquote — matches ProjectDetail.tsx review component */
.wi-cs-review {
	margin-top: 2.5rem;
	border-left: 4px solid var(--wp--preset--color--blue);
	background-color: var(--wp--preset--color--light-grey);
	border-radius: 0 8px 8px 0;
	padding: 1.5rem;
}

.wi-cs-review__icon {
	color: var(--wp--preset--color--blue);
	display: block;
	margin-bottom: 0.75rem;
}

.wi-cs-review__text {
	font-style: italic;
	color: var(--wp--preset--color--navy);
	margin: 0 0 0.75rem 0;
}

.wi-cs-review__author {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

/* ==========================================================================
   PROJECT SIDEBAR — Project Details aside
   ========================================================================== */

.wi-project-sidebar {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	padding: 1.5rem;
}

.wi-project-sidebar__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy);
	margin: 0 0 1.25rem 0;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.wi-project-sidebar__items {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

/* ==========================================================================
   PROJECT INFO ITEM — icon + label + value row (InfoItem from ProjectDetail.tsx)
   ========================================================================== */

.wi-project-info-item {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}

.wi-project-info-item__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-top: 0.125rem;
	color: var(--wp--preset--color--blue);
}

.wi-project-info-item__label {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin: 0 0 0.25rem 0;
}

.wi-project-info-item__value {
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
	margin: 0;
	line-height: 1.5;
}

.wi-project-info-item__value a {
	color: var(--wp--preset--color--blue);
	text-decoration: underline;
}

.wi-project-info-item__value a:hover {
	color: var(--wp--preset--color--navy);
}

/* ==========================================================================
   RELATED PROJECTS — light-grey section
   ========================================================================== */

.wi-related-projects {
	background: var(--wp--preset--color--light-grey);
	padding: 4rem 1rem;
}

@media (min-width: 768px) {
	.wi-related-projects {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-related-projects {
		padding-left: calc((100% - 1200px) / 2);
		padding-right: calc((100% - 1200px) / 2);
	}
}

.wi-related-projects__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.wi-related-projects__heading {
	font-size: clamp(1.25rem, 3vw, 1.875rem);
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 2rem 0;
}

.wi-related-projects__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.wi-related-projects__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wi-related-projects__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ==========================================================================
   MARGIN SUPPRESSION — new project section wrappers
   ========================================================================== */

/* Suppress WP block-gap margin-block-start on all direct children of the new
   project page wrappers. The global main.wp-block-group > * rule covers the
   <main> elements; this targets .wi-related-projects which lives inside <main>
   as shortcode output and may not be caught by the broader selector. */
.wi-projects-hub > *,
.wi-projects-hub-hero > *,
.wi-projects-sector > *,
.wi-single-project > *,
.wi-related-projects > *,
.wi-insights-archive > *,
.wi-single-post > *,
.wi-related-articles > *,
.wi-eld-what-is > *,
.wi-eld-methods > *,
.wi-eld-how-it-works > *,
.wi-eld-stats > *,
.wi-eld-applications > * {
	margin-block-start: 0 !important;
}

/* ==========================================================================
   INSIGHTS ARCHIVE — /insights/
   ========================================================================== */

/* Badge modifiers for insights (reuses .wi-cs-badge base styles) */
.wi-cs-badge--category {
	background: rgba(31, 127, 163, 0.10);
	color: var(--wp--preset--color--blue);
}

.wi-cs-badge--location {
	background: rgba(30, 58, 95, 0.08);
	color: var(--wp--preset--color--navy);
}

/* Hero heading and desc — reuses .wi-page-hero and .wi-page-hero--left */
.wi-page-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
}

.wi-page-hero__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: clamp(28px, 4vw, 48px);
	font-weight: 800;
	line-height: 1.15;
	color: #ffffff;
	margin: 0 0 1rem 0;
}

/* Filter bar section */
.wi-insights-filter {
	padding: 2rem 1rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

@media (min-width: 768px) {
	.wi-insights-filter {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-insights-filter {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-insights-filter__form {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: flex-end;
	padding-bottom: 1.25rem;
}

.wi-insights-filter__group {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	flex: 1 1 100%;
}

@media (min-width: 768px) {
	.wi-insights-filter__group {
		flex: 0 1 auto;
	}
}

.wi-insights-filter__label {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.wi-insights-filter__select {
	appearance: none;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	background: #ffffff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231e3a5f' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: 8px;
	padding: 0.5rem 2.25rem 0.5rem 0.875rem;
	cursor: pointer;
	width: 100%;
	min-width: 180px;
	transition: border-color 0.15s;
}

.wi-insights-filter__select:hover,
.wi-insights-filter__select:focus {
	border-color: var(--wp--preset--color--blue);
	outline: none;
}

.wi-insights-count {
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	margin: 0.75rem 0 0;
	padding-bottom: 1rem;
}

/* Grid section */
.wi-insights-grid {
	padding: 3rem 1rem;
	background-color: var(--wp--preset--color--light-grey);
}

@media (min-width: 768px) {
	.wi-insights-grid {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-insights-grid {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Card */
.wi-insights-card {
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	overflow: hidden;
	position: relative;
	transition: box-shadow 0.25s ease, transform 0.25s ease;
	height: 100%;
	display: grid;
	grid-template-rows: auto 1fr;
}

.wi-insights-card .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}

.wi-insights-card .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.wi-insights-card:hover {
	box-shadow: 0 10px 24px rgba(30, 58, 95, 0.10);
	transform: translateY(-2px);
}

/* Prevent wp-block-group becoming containing block for stretched link */
.wi-insights-card__body.wp-block-group {
	position: static !important;
	margin-block-start: 0 !important;
}

.wi-insights-card__body {
	padding: 1.25rem;
	flex: 1;
	display: flex;
	flex-direction: column;
}



.wi-insights-card__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	margin-bottom: 0.75rem;
}

.wi-insights-card__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	line-height: 1.35;
	margin: 0 0 0.625rem;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.wi-insights-card__title a {
	color: inherit;
	text-decoration: none;
}

.wi-insights-card__title a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

.wi-insights-card:hover .wi-insights-card__title {
	color: var(--wp--preset--color--blue);
}

.wi-insights-card .wp-block-post-excerpt,
.wi-insights-card .wp-block-post-excerpt__excerpt,
.wi-insights-card__excerpt {
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.55;
	margin: 0 0 0.875rem;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.wi-insights-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--muted);
	margin-top: auto;
}

/* Card image link — remove inline whitespace gap */
.wi-insights-card > a {
	display: block;
}

/* Card image wrap — enforces consistent height across all cards */
.wi-insights-card__img-wrap {
	height: 200px;
	overflow: hidden;
	width: 100%;
}

.wi-insights-card__img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.wi-insights-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.wi-insights-card:hover .wi-insights-card__img {
	transform: scale(1.05);
}

/* Insights grid (PHP-rendered cards with Load More) */
.wi-insights-grid__cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.wi-insights-grid__cards {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wi-insights-grid__cards {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Load More button */
.wi-insights-load-more-wrap {
	display: flex;
	justify-content: center;
	margin-top: 2.5rem;
}

.wi-insights-load-more {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	background: transparent;
	border: 2px solid var(--wp--preset--color--navy);
	border-radius: 8px;
	padding: 0.75rem 2.5rem;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.wi-insights-load-more:hover {
	background: var(--wp--preset--color--navy);
	color: #ffffff;
}

.wi-insights-load-more:disabled {
	opacity: 0.6;
	cursor: wait;
}

/* Pagination (legacy — kept for archive template) */
.wi-insights-pagination {
	margin-top: var(--wp--preset--spacing--xl);
}

.wi-insights-no-results {
	padding: var(--wp--preset--spacing--xl) 0;
	color: var(--wp--preset--color--muted);
}

/* ==========================================================================
   SINGLE INSIGHT POST — /insights/[slug]/
   ========================================================================== */

.wi-article {
	background: #ffffff;
	padding: 3rem 1rem;
}

@media (min-width: 768px) {
	.wi-article {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-article {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-article__breadcrumbs {
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	margin-bottom: 1.5rem;
	line-height: 1.4;
}

.wi-article__breadcrumbs a {
	color: var(--wp--preset--color--navy);
	text-decoration: none;
}

.wi-article__breadcrumbs a:hover {
	text-decoration: underline;
}

.wi-article__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	margin-bottom: 1rem;
}

.wi-article__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	margin-bottom: 2rem;
}

/* Featured image */
.wi-article__hero-image.wp-block-post-featured-image {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	margin-bottom: 2rem;
}

.wi-article__hero-image.wp-block-post-featured-image img,
.wi-article .wp-block-post-featured-image img {
	border-radius: 8px;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Prose / article body */
.wi-article .wp-block-post-content p {
	margin-bottom: 1.5rem;
	line-height: 1.7;
}

.wi-article .wp-block-post-content h2 {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 2rem 0 0.75rem;
	line-height: 1.25;
}

.wi-article .wp-block-post-content h3 {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0;
	line-height: 1.3;
}

.wi-article .wp-block-post-content ul,
.wi-article .wp-block-post-content ol {
	margin-left: 1.5rem;
	margin-bottom: 1.5rem;
}

.wi-article .wp-block-post-content li {
	margin-bottom: 0.5rem;
	line-height: 1.65;
}

.wi-article .wp-block-post-content a {
	color: var(--wp--preset--color--blue);
	text-decoration: underline;
}

.wi-article .wp-block-post-content strong {
	color: var(--wp--preset--color--navy);
}

.wi-article .wp-block-post-content img {
	border-radius: 8px;
	margin: 0;
	max-width: 100%;
	height: auto;
}

/* Video — constrained with gutters */
.wi-video {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-video {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-video {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Self-hosted video */
.wi-video video {
	width: 100%;
	border-radius: 8px;
	margin-bottom: 1.5rem;
}

.wi-video .wp-block-embed__wrapper {
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 1.5rem;
}

.wi-video .wp-block-embed__wrapper iframe {
	display: block;
}

.wi-video figcaption {
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	text-align: center;
	margin-top: 0.5rem;
}

/* Share bar */
.wi-article__share-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	border-top: 1px solid var(--wp--preset--color--border);
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding: 1.5rem 0;
	margin: 2rem 0 0;
}

.wi-share-group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.wi-share__icon {
	color: var(--wp--preset--color--muted);
	flex-shrink: 0;
}

.wi-article__share-label {
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	font-weight: 600;
}

.wi-article__share-link {
	display: inline-flex;
	align-items: center;
	gap: 0.3125rem;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	background: var(--wp--preset--color--light-grey);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
	padding: 0.375rem 0.875rem;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.wi-article__share-link:hover {
	background: var(--wp--preset--color--navy);
	color: #ffffff;
	border-color: var(--wp--preset--color--navy);
}

/* Like button */
.wi-like-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--muted);
	background: var(--wp--preset--color--light-grey);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	padding: 0.5rem 1rem;
	cursor: pointer;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.wi-like-btn:hover {
	border-color: #e57373;
	color: #c62828;
}

.wi-like-btn.is-liked {
	background: #fce4ec;
	border-color: #e57373;
	color: #c62828;
}

.wi-like-btn.is-liked .wi-like__heart-icon {
	fill: #e57373;
	stroke: #e57373;
}

.wi-like__heart-icon {
	fill: none;
	transition: fill 0.15s, stroke 0.15s;
}

/* Article title h1 */
.wi-article__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.75rem;
	font-weight: 800;
	color: var(--wp--preset--color--navy);
	line-height: 1.2;
	margin: 1rem 0 1.5rem;
}

@media (min-width: 768px) {
	.wi-article__title {
		font-size: 2.25rem;
	}
}

/* View count in meta row */
.wi-article__meta-icon {
	display: inline-block;
	vertical-align: middle;
	flex-shrink: 0;
}

.wi-article__view-count {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
}

/* Comments heading */
.wi-comments-heading {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 1.5rem;
}

.wi-comments-heading__icon {
	color: var(--wp--preset--color--blue);
	flex-shrink: 0;
}

/* Comment card */
.wi-comment-item {
	background: var(--wp--preset--color--light-grey);
	border-radius: 8px;
	padding: 1rem;
	margin-bottom: 1rem;
}

.wi-comment-item__header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.5rem;
}

.wi-comment-item .wp-block-comment-author-name {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0;
}

.wi-comment-item .wp-block-comment-date {
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

.wi-comment-item .wp-block-comment-date a {
	color: inherit;
	text-decoration: none;
}

.wi-comment-item .wp-block-comment-content p {
	font-size: 0.875rem;
	margin: 0;
	color: var(--wp--preset--color--navy);
	line-height: 1.6;
}

/* Comment form */
.wi-article-comments .comment-form-author {
	max-width: 24rem;
	margin-bottom: 1rem;
}

.wi-article-comments .comment-form-comment {
	margin-bottom: 1.25rem;
}

.wi-article-comments .comment-form input[type="text"],
.wi-article-comments .comment-form textarea {
	width: 100%;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
	padding: 0.625rem 0.875rem;
	transition: border-color 0.15s;
	box-sizing: border-box;
}

.wi-article-comments .comment-form input[type="text"]:focus,
.wi-article-comments .comment-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--blue);
}

.wi-article-comments .comment-form textarea {
	min-height: 7rem;
	resize: vertical;
}

.wi-article-comments .comment-form label {
	display: block;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	margin-bottom: 0.375rem;
}

.wi-comment-submit {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	background: var(--wp--preset--color--gold);
	border: none;
	border-radius: 6px;
	padding: 0.75rem 1.5rem;
	cursor: pointer;
	transition: background 0.15s;
}

.wi-comment-submit:hover {
	background: var(--wp--preset--color--orange);
}

/* Comments section */
.wi-article-comments {
	padding: 2.5rem 1rem;
}

@media (min-width: 768px) {
	.wi-article-comments {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-article-comments {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Related articles */
.wi-related-articles {
	background: var(--wp--preset--color--light-grey);
	padding: 4rem 1rem;
}

@media (min-width: 768px) {
	.wi-related-articles {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-related-articles {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-related-articles__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.wi-related-articles__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 2rem;
}

.wi-related-articles__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.wi-related-articles__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wi-related-articles__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ==========================================================================
   RECENT POSTS — [wi_recent_posts] shortcode
   ========================================================================== */

.wi-recent-posts {
	padding: 4rem 1rem;
}

@media (min-width: 768px) {
	.wi-recent-posts {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-recent-posts {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-recent-posts__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.wi-recent-posts__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 2rem;
}

.wi-recent-posts__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.wi-recent-posts__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wi-recent-posts__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.wi-recent-posts .wi-insights-card__title {
	-webkit-line-clamp: unset;
	font-size: 1rem;
	margin-block-start: 0;
}

.wi-recent-posts .wi-insights-card__title a {
	color: rgb(30, 58, 95);
	text-decoration: none;
}

.wi-recent-posts .wi-insights-card {
	display: flex;
	flex-direction: column;
}

.wi-recent-posts .wi-insights-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.wi-recent-posts__stats {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-top: auto;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--muted);
}

.wi-recent-posts__stat {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
}

.wi-recent-posts__stat svg {
	flex-shrink: 0;
}

.wi-recent-posts p:empty {
	display: none;
}

/* ==========================================================================
   ELD — ELECTRONIC LEAK DETECTION SERVICE PAGE
   ========================================================================== */

/* ── Hero (wp:cover block — background image editable per page via Media Library) ── */

/* Override wp:cover solid-colour overlay with the exact Lovable gradient.
   Opacity is controlled by dimRatio:90 (0.9) — lets a subtle image texture show through. */
.wi-eld-hero .wp-block-cover__background {
	background: linear-gradient(135deg, rgb(22, 36, 60) 0%, rgb(32, 54, 90) 100%) !important;
}

/* Padding for cover block inner content area */
.wi-eld-hero .wp-block-cover__inner-container {
	padding-top: 5rem;
	padding-bottom: 4rem;
	padding-left: 1rem;
	padding-right: 1rem;
	width: 100%;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	text-align: left;
}

/* WordPress flow layout injects margin:auto !important on every direct child —
   override to keep all hero content left-aligned */
.wi-eld-hero .wp-block-cover__inner-container > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

@media (min-width: 768px) {
	.wi-eld-hero .wp-block-cover__inner-container {
		padding-top: 7rem;
		padding-bottom: 6rem;
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-eld-hero .wp-block-cover__inner-container {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Legacy support: keep old __bg and __inner CSS while any pages still have the
   pre-cover-block hero HTML. Once all pages are re-saved with the new pattern,
   these rules can be removed. */
.wi-eld-hero {
	position: relative;
	overflow: hidden;
}

.wi-eld-hero__bg {
	position: absolute;
	inset: 0;
	opacity: 0.2;
}

.wi-eld-hero__bg-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	max-width: none;
}

.wi-eld-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
}

.wi-eld-eyebrow {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--wp--preset--color--blue);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin: 0 0 1rem;
}

.wi-eld-hero__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: clamp(2rem, 5vw, 3.75rem);
	font-weight: 800;
	color: #ffffff;
	line-height: 1.1;
	max-width: 48rem;
	margin: 0 0 1.5rem;
}

.wi-eld-hero__subtitle {
	font-size: 1.125rem;
	color: rgba(255, 255, 255, 0.8);
	line-height: 1.6;
	max-width: 36rem;
	margin: 0 0 2rem;
}

@media (min-width: 768px) {
	.wi-eld-hero__subtitle {
		font-size: 1.25rem;
	}
}

/* Button + trust line side by side on tablet/desktop */
.wi-eld-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25rem;
	margin-top: 0.25rem;
}

.wi-eld-hero__actions .wp-block-buttons {
	margin: 0;
}

/* Gold button with blue text + animated arrow */
.wi-eld-hero__btn .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	transition: background-color 0.2s ease;
}

.wi-eld-hero__btn .wp-block-button__link::after {
	content: '';
	display: inline-block;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
	transition: transform 0.2s ease;
	flex-shrink: 0;
}

.wi-eld-hero__btn .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--orange) !important;
}

.wi-eld-hero__btn .wp-block-button__link:hover::after {
	transform: translateX(4px);
}

.wi-eld-hero__trust {
	font-size: 0.875rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
}

/* ── What is ELD ── */
.wi-eld-what-is {
	background: #ffffff;
	padding: 4rem 1rem;
}

@media (min-width: 768px) {
	.wi-eld-what-is {
		padding: 6rem 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-eld-what-is {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-eld-what-is__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.wi-eld-what-is__grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 3rem;
	align-items: center;
}

@media (min-width: 768px) {
	.wi-eld-what-is__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.wi-eld-what-is__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 1.5rem;
}

.wi-eld-what-is__body p {
	color: var(--wp--preset--color--muted);
	line-height: 1.7;
	margin: 0 0 1rem;
}

.wi-eld-what-is__body p:last-child {
	margin-bottom: 0;
}

.wi-eld-what-is__image {
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 10px 15px -3px rgba(30, 58, 95, 0.1), 0 4px 6px -4px rgba(30, 58, 95, 0.08);
	margin: 0;
}

.wi-eld-what-is__image img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	display: block;
	margin: 0;
}

/* ── Methods ── */
.wi-eld-methods {
	background: var(--wp--preset--color--light-grey);
	padding: 4rem 1rem;
}

@media (min-width: 768px) {
	.wi-eld-methods {
		padding: 6rem 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-eld-methods {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-eld-methods__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.wi-eld-methods__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	text-align: center;
	margin: 0 0 1rem;
}

.wi-eld-methods__subtitle {
	text-align: center;
	color: var(--wp--preset--color--muted);
	max-width: 40rem;
	margin: 0 auto 3rem;
}

.wi-eld-methods__grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 2rem;
}

@media (min-width: 768px) {
	.wi-eld-methods__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Column is a grid item (stretches by default) — card fills it and distributes body space */
.wi-eld-methods__grid > .wp-block-column {
	display: flex;
	flex-direction: column;
}

.wi-eld-method-card {
	background: #ffffff;
	border-radius: 12px;
	border: 1px solid var(--wp--preset--color--border);
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(30, 58, 95, 0.06);
	display: flex;
	flex-direction: column;
	height: 100%;
}

.wi-eld-method-card__img-wrap {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	margin: 0;
}

.wi-eld-method-card__img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
	max-width: none;
}

.wi-eld-method-card__body {
	padding: 1.5rem 2rem 2rem;
	flex: 1;
}

.wi-eld-method-card__title-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}

.wi-eld-method-card__icon {
	color: var(--wp--preset--color--blue);
	flex-shrink: 0;
}

.wi-eld-method-card__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0;
}

.wi-eld-method-card__desc {
	color: var(--wp--preset--color--muted);
	line-height: 1.7;
	margin: 0 0 1rem;
}

/* ── Checklist (shared by methods + applications) ── */
.wi-eld-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}

.wi-eld-checklist__item {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
}

.wi-eld-checklist__icon {
	color: var(--wp--preset--color--blue);
	flex-shrink: 0;
	margin-top: 0.125rem;
}

/* ── How It Works ── */
.wi-eld-how-it-works {
	background: #ffffff;
	padding: 4rem 1rem;
}

@media (min-width: 768px) {
	.wi-eld-how-it-works {
		padding: 6rem 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-eld-how-it-works {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-eld-how-it-works__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.wi-eld-how-it-works__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	text-align: center;
	margin: 0 0 3rem;
}

.wi-eld-steps__grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.wi-eld-steps__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wi-eld-steps__grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.wi-eld-steps__grid > .wp-block-column {
	display: flex;
	flex-direction: column;
}

.wi-eld-step {
	background: var(--wp--preset--color--light-grey);
	border-radius: 12px;
	border: 1px solid var(--wp--preset--color--border);
	padding: 1.5rem;
	flex: 1;
	box-sizing: border-box;
}

.wi-eld-step__number {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 2.5rem;
	font-weight: 800;
	color: rgba(31, 127, 163, 0.3);
	line-height: 1;
	display: block;
	margin-bottom: 0.5rem;
}

.wi-eld-step__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 0.5rem;
}

.wi-eld-step__desc {
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.6;
	margin: 0;
}

/* ── Stats ── */
.wi-eld-stats {
	background: linear-gradient(135deg, hsla(218, 47%, 16%, 0.97) 0%, hsla(218, 47%, 22%, 0.95) 100%);
	padding: 4rem 1rem;
}

@media (min-width: 768px) {
	.wi-eld-stats {
		padding: 5rem 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-eld-stats {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-eld-stats__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.wi-eld-stats__grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 2rem;
	text-align: center;
}

@media (min-width: 640px) {
	.wi-eld-stats__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Prevent WordPress default margins inside ELD blocks */
.wi-eld-method-card .wp-block-group,
.wi-eld-step .wp-block-heading,
.wi-eld-step .wp-block-paragraph {
	margin-block-start: 0;
}

.wi-eld-stats__grid > .wp-block-column > .wp-block-paragraph {
	margin-block-start: 0;
}

.wi-eld-stat__icon {
	display: block;
	margin: 0 auto 0.75rem;
	color: var(--wp--preset--color--blue);
}

.wi-eld-stat__value {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 1.75rem;
	font-weight: 800;
	color: #ffffff;
	margin: 0 0 0.25rem;
}

@media (min-width: 768px) {
	.wi-eld-stat__value {
		font-size: 2rem;
	}
}

.wi-eld-stat__label {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
}

/* ── Applications ── */
.wi-eld-applications {
	background: #ffffff;
	padding: 4rem 1rem;
}

@media (min-width: 768px) {
	.wi-eld-applications {
		padding: 6rem 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-eld-applications {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-eld-applications__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.wi-eld-applications__grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 3rem;
	align-items: center;
}

@media (min-width: 768px) {
	.wi-eld-applications__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.wi-eld-applications__image {
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 10px 15px -3px rgba(30, 58, 95, 0.1), 0 4px 6px -4px rgba(30, 58, 95, 0.08);
	margin: 0;
}

.wi-eld-applications__image img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	display: block;
	margin: 0;
}

.wi-eld-applications__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 1.5rem;
}

.wi-eld-checklist__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	margin: 0 0 0.25rem;
}

.wi-eld-checklist__desc {
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
	margin: 0;
	line-height: 1.6;
}

/* Service Hub — child pages grid (top-level service landing pages) */
.wi-service-hub-children {
	padding: 3rem 0;
}

@media (min-width: 768px) {
	.wi-service-hub-children {
		padding: 4rem 0;
	}
}

.wi-service-hub-children > .wp-block-group {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 768px) {
	.wi-service-hub-children > .wp-block-group {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media (min-width: 1200px) {
	.wi-service-hub-children > .wp-block-group {
		padding-left: 0;
		padding-right: 0;
	}
}

.wi-child-cards-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.wi-child-cards-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wi-child-cards-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 2rem;
	}
}

@media (min-width: 1280px) {
	.wi-child-cards-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.wi-child-card {
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
	color: var(--wp--preset--color--navy);
	box-shadow: var(--wp--preset--shadow--card);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.wi-child-card:hover,
.wi-child-card:focus-visible {
	transform: translateY(-4px);
	box-shadow: var(--wp--preset--shadow--card-hover);
	border-color: var(--wp--preset--color--blue);
	text-decoration: none;
	color: var(--wp--preset--color--navy);
}

.wi-child-card:visited {
	color: var(--wp--preset--color--navy);
}

.wi-child-card__img-wrap {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--wp--preset--color--light-grey);
}

.wi-child-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.wi-child-card:hover .wi-child-card__img {
	transform: scale(1.03);
}

.wi-child-card__title {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1.125rem;
	line-height: 1.3;
	padding: 1.25rem 1.25rem 1.5rem;
}

@media (min-width: 768px) {
	.wi-child-card__title {
		font-size: 1.25rem;
	}
}

/* ==========================================================================
   TEAM DIRECTORY — Photo-forward layout
   ========================================================================== */

/* ── Hero section (light bg, leadership) ── */

.wi-team-dir__hero {
	background: #ffffff;
	padding: 3rem 0 2rem;
}

.wi-team-dir__hero-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1rem;
}

.wi-team-dir__heading {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 800;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	color: var(--wp--preset--color--navy);
	margin: 0.5rem 0 0.25rem;
}

.wi-team-dir__subtitle {
	color: var(--wp--preset--color--muted);
	font-size: 1.0625rem;
	margin: 0 0 2.5rem;
}

.wi-team-dir__hero-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
}

/* ── Primary member cards (photo-forward) ── */

.wi-team-dir__card--primary {
	text-align: left;
}

.wi-team-dir__card--primary .wi-team-dir__photo-wrap {
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 10px;
	overflow: hidden;
	background: var(--wp--preset--color--light-grey);
	margin-bottom: 1rem;
}

.wi-team-dir__card--primary .wi-team-dir__photo {
	object-position: top;
}

.wi-team-dir__card--primary .wi-team-dir__name {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1.25rem;
	color: var(--wp--preset--color--navy);
	margin: 0 0 2px;
}

.wi-team-dir__card--primary .wi-team-dir__title {
	color: var(--wp--preset--color--muted);
	font-size: 0.9375rem;
	line-height: 1.4;
	margin: 0 0 6px;
}

.wi-team-dir__card--primary .wi-team-dir__state {
	display: inline-block;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--blue);
	background: rgba(0, 87, 184, 0.08);
	padding: 3px 12px;
	border-radius: 100px;
}

.wi-team-dir__card--primary .wi-team-dir__initials {
	font-size: 3rem;
}

/* ── Team groups section ── */

.wi-team-dir__groups {
	padding: 3rem 0;
	background: var(--wp--preset--color--light-grey);
}

.wi-team-dir__groups-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1rem;
}

.wi-team-dir__group + .wi-team-dir__group {
	margin-top: 2.5rem;
}

.wi-team-dir__group-heading {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	background: none;
	border: none;
	border-bottom: 2px solid var(--wp--preset--color--border);
	padding: 0 0 0.75rem;
	cursor: default;
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1.25rem;
	color: var(--wp--preset--color--navy);
	text-align: left;
}

.wi-team-dir__group-count {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--wp--preset--color--muted);
	background: #ffffff;
	padding: 2px 10px;
	border-radius: 100px;
}

.wi-team-dir__chevron {
	display: none;
}

.wi-team-dir__group-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	margin-top: 1.25rem;
}

/* ── Regular member cards ── */

.wi-team-dir__card {
	text-align: center;
}

.wi-team-dir__photo-wrap {
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 8px;
	overflow: hidden;
	background: var(--wp--preset--color--light-grey);
	margin-bottom: 0.75rem;
}

.wi-team-dir__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	display: block;
	transition: transform 0.3s ease;
}

.wi-team-dir__card:hover .wi-team-dir__photo {
	transform: scale(1.03);
}

.wi-team-dir__initials {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--gold);
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 1.5rem;
}

.wi-team-dir__name {
	font-family: var(--wp--preset--font-family--roboto);
	font-weight: 700;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
	margin: 0 0 2px;
	line-height: 1.3;
}

.wi-team-dir__title {
	font-size: 0.8125rem;
	color: var(--wp--preset--color--muted);
	margin: 0 0 6px;
	line-height: 1.4;
}

.wi-team-dir__state {
	display: inline-block;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--blue);
	background: rgba(0, 87, 184, 0.08);
	padding: 2px 10px;
	border-radius: 100px;
}

/* ── Tablet ── */

@media (min-width: 640px) {
	.wi-team-dir__hero-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 2.5rem;
	}

	.wi-team-dir__group-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ── Tablet large ── */

@media (min-width: 768px) {
	.wi-team-dir__hero-inner,
	.wi-team-dir__groups-inner {
		padding: 0 2rem;
	}

	.wi-team-dir__hero {
		padding: 4rem 0 2rem;
	}

	.wi-team-dir__groups {
		padding: 4rem 0;
	}

	.wi-team-dir__hero-grid {
		max-width: none;
	}
}

/* ── Desktop ── */

@media (min-width: 1024px) {
	.wi-team-dir__group-grid {
		grid-template-columns: repeat(5, 1fr);
	}
}

@media (min-width: 1280px) {
	.wi-team-dir__hero-inner,
	.wi-team-dir__groups-inner {
		padding: 0;
	}

	.wi-team-dir__hero {
		padding: 5rem 0 3rem;
	}

	.wi-team-dir__groups {
		padding: 5rem 0;
	}
}

/* ── Section gutter for pattern wrapper ── */

.wi-team-dir.wp-block-group {
	padding: 0 !important;
}
